From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id C8E6B44FCD for ; Thu, 16 Mar 2023 20:49:50 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DD0BA68C0D3; Thu, 16 Mar 2023 22:49:47 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2062.outbound.protection.outlook.com [40.92.74.62]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2CE3C68C096 for ; Thu, 16 Mar 2023 22:49:42 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bIQsYgO9HWxc9MEmTKw3S44xsWP9uQQfHGBWqupYd27SSwmJF9S0Oy5hL7kBWE0X4pkfvVuP2icia/T/zdxn7O6jCQ7IE1dk5hoGFbV+tdbZ8HwV4NHJE6jXBnyy87E3tjFxPmbwRMCoOauuka/FEdSbyoan1cLNWalSR+IOOL0nCa8nV+5uRvi4qh3zFTtYnv8CPiiQLPF9fojgoeDuWN5q4vd2lLvI2ETnjAaR4DJDEDWrSGtVSHboMV4tAV78LauXlBzkSiAWpckUexG+iowhbPUGe3qLfgXQ5oV0mFfAb787KBzveZRzr4XTJCHbhIiGfIaq5QHnGQWR0PFc6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+/9OORed5tIfnIZGGPgFO+6ClX/g9KHhV6BO8sSH8Qo=; b=I+dRIbmgIUe3F53Tcgku1+VyvUD2tN08eIEOlhGVjUo+9bCnn0zS9kDiVkuJcLastzjFFgCPtcRe5QlOaRQYlnwn4dssOWOdqVa+O6O9KwfGUD9j8cBPkuz37KQGLyUki00OmlClOZ44t0tXo0Ef2/YmlyTC26dim3BWQC5wS+LM0UBmsuGfVeu36I/Iefz/ixZupDWK7ryy/S9aQNubMGxGbkjCLTJcDZtYP7ATuDU5RSsn62PAlQ7AGVkVYHtQBuLgnstLq0fl3xdF6LLGZ7U1C0nbweLDge2lNB+foDoNz8B1ecG2EO6DOZzmDImAXfoZ1EAx0X2oY5is2lDPJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+/9OORed5tIfnIZGGPgFO+6ClX/g9KHhV6BO8sSH8Qo=; b=CmzIDs4EtsVDgtUv9ThTkVr9TF/DjeZRX//SFZK8gGIlY3C0NbhkNi/zYXMoz4EUwDIykcfhHbbQeE2NMmo6QEjlIoyeffpN9zPq0k/htz3lbt8u3p7uMRBP1LXXHsNSR8giDNvNi1js0lRMFaIsICHCN0ALbEPE4FATFwS/u/41TIzlci9aH9dz4JhhxGc4oKJsffpUwQSiGR1VtEFwJmVG08O4BL+cLFBE2ukKp7pA+F/88+5mMg3GECtaSo8y1G5mWkVaNO7WvVm7utvgohAyNIdWfIE7hGqEqgVm7A7yPPYIH8UbfqbAGY3K9WCx6j/r3VX/VqgGClxW2qrTcQ== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by AM8P250MB0263.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:32a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.8; Thu, 16 Mar 2023 20:49:40 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::76c9:5d22:5778:6206]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::76c9:5d22:5778:6206%5]) with mapi id 15.20.6178.016; Thu, 16 Mar 2023 20:49:40 +0000 Message-ID: Date: Thu, 16 Mar 2023 21:50:15 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <8CFD0240-4196-4E6C-8918-9DCDAED2A648@vimeo.com> From: Andreas Rheinhardt In-Reply-To: <8CFD0240-4196-4E6C-8918-9DCDAED2A648@vimeo.com> X-TMN: [UyCELdDA96QxOzpMgJaCtnMs4cLyFwBwibUYDpSZBOw=] X-ClientProxiedBy: ZR0P278CA0133.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:40::12) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|AM8P250MB0263:EE_ X-MS-Office365-Filtering-Correlation-Id: aeff4519-05af-4484-e003-08db265ff639 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cBroi9f6so/yzaCyaKiW/nwsf/j0GPCZjfYafiIfa/ubH2vplbqXHArnJ5qB0p2uRw0IIhCQfexNoeR6ySgn36Gzn1f8UWcrpI9hy/0RcjMfpoup2juUvtmlcbLyYYWqY7dhaIykL6CvYJ4qlUA3y7Yy22hIYidWcEdS3Q2OugHHHtfQfGwzx2hYEk7Py0z8TMAc2qXhFsjP+/20+ooE51l+stekry6taDPNhxjo86Z86lEwxSHlI2DfI1VTSOc4MySu8S80zN4cR3FvErFmunRCzEGgHMsl0BjczzmesRnADrW2jzELhalxUbzXZHf67j9k7Q+pMs8WjdrOSPC2HyagkBDUzwR9BWs2sxOd6UJsAKCWscE5CBSv/hX7SQCiYFs4nwgn3ffEK02A8l3U2kqL/LSQgNJKk8MMbAAuwjUY0YoNz/W3yVpafxuAchHKl/IIvfx/Wpi4IzTGVTQL6QSGufh6boq3WnzW9929bmptFIZaeMsDxrDwjv8aO6lamBT/nE562+Jp8oNxXgADXjnbWoCKDAa7ynex4SNnKCsgV+1jfDRpRQPOWUJSrsNZZmyRNzh1hWH7fl2FDrayHOXtLuGo2wNF1a11KymZLxdtNWSCvzoseTYa7hC8DQWe+zrY8qJRcN2WyZ5MezN5Wwg7cRqrF1nsJvgJlzq3Y2Q= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUZsdHBtZGdzNG1WamdhcDlEdUI4U0djY2JIV3YrS0VRNXE4OXZvUC8vWTJM?= =?utf-8?B?d1l6aDVaSUQ3enFCbTlhVEt1a1Brei9LcXllS1R4R0VkZURiVUdDWS9RdnFF?= =?utf-8?B?Vk02L2M4YUpLL3ozMDY0WEZXSUhpaHVYYXBEcFN5TnNqU3JlblBTaEJuejh0?= =?utf-8?B?S3VmQktzalJ4VGhDa3EzdDFoRWxCWlV1cEZPQ3ZWSHJTQTcwQ1hpZFBZa01P?= =?utf-8?B?THN3R0hvSytqOC85eUdnWjlYamRkZ0s2Mkh5alU4ZDlnYllyeXNwYVJhUC93?= =?utf-8?B?a292eWl4clpzYVJnRnlLZ3hrZ0JEVVVHSEFQVEtJUmFhSjR4SllzaDZMcW9i?= =?utf-8?B?TEhBN0ZYQ0lsSkJOTUFSVzVObnhIOXpIQnVHeENCMy9MZ0RybTdNZTFoMnp3?= =?utf-8?B?TCtiOXE1K1N6MzlmK1JrblpkRkdiNFlOcWM5UG1VSjNDR21Sb0duY2FraEFa?= =?utf-8?B?MzkwTXFpUEpOZHZyWldOblFvL25PaHdDTmxiUUFLdmMxWjdXb3hQSFk4bmx5?= =?utf-8?B?N2VySHQ1NTJtdUx1WXViSWw1aXExSDlPWkp2YWY3YzhjTGJ4UFJlWDhLRzBw?= =?utf-8?B?TjNKU1NXdVNQS0UwaWFzaWZhVkRHN2YzMlY3QWpwdXczVFBwaU9ySnY0ZUdy?= =?utf-8?B?VHNHQi9ONHZGcWR5UjRJcE15bW1vcGYrM2ZnWU8vM0tIRGpSVTBuYW9sVEEw?= =?utf-8?B?V1VhZE9iRExLZTlnaTRwUEthWHh2VnpFazYrVjdkTjJ6TjZodVhKMWJ5UGtN?= =?utf-8?B?YVZoS1U3KzJwZ0Q5QklZY0JpY2syekdQQkZJMVBaYTFIUnViUWNuZ3NhYVZm?= =?utf-8?B?TnZWeFlyZkF6WGdBS2dFNEJXRjQ1eU1xTUNIb0dHYldJMERiTXh2V3BnZWtD?= =?utf-8?B?Mmd6QVhkVzBtQXVRajJiUWczRGc2bkp5Z1lSSXBWV0pOMXlFRkhtWlZEL2hD?= =?utf-8?B?ZlRkN3ZMR0xVRmZaMjh1STcvQ3lHWnFETkswY0xDNWZQL3RHRTRjZE5lNWRq?= =?utf-8?B?ZklsRkpyQWRDTUI1VmhMWWlnQzhtNHdXV1U4dTV1QUdTaTE3eGR2SjJvdUFP?= =?utf-8?B?aFlVUzN1QllLYTQ1SHlES1o3Tjd6VVVWM3lqb2d2eUhrcm94Ry9pZGoyOHdY?= =?utf-8?B?a1dHSEQ4NmlMMXNobE1RUmd3SEhMWC9JRC9pelJqNzRpNzVSRHo2QmFiOWtQ?= =?utf-8?B?VWZmcmV2bmx6NVo1OENhWDZneHpTOHV2T0dtVkNNOUJGNGQxYTMxTkJSRWp2?= =?utf-8?B?blRBaTBLZEN3MGd5clo5bU9IRE9vNG5PdzVLVDJSZzhOVlN2RnhpUndRUm16?= =?utf-8?B?TDlpazdrNm4yZlNNT0pqekorMmgvZ3g1T0t0Rm1IRWcrNmlPU21kQUVYcUJl?= =?utf-8?B?TWpjY0RGUlZNN1pzck4xMTFVYmlGYVUrMEIvQ3lMT3JDMW5YdFJXbjMveUpG?= =?utf-8?B?cHAvenVveUNTdVdZQUZMS2FhMEtUN0cvQUR1aTJOSml6VFVrYXFMOW9UWUI3?= =?utf-8?B?cDJSRHU5eWFuanBtOTRlcC85UUxsZWlYNXFwcVlUSUFlOTlKUnk5cExhZFNp?= =?utf-8?B?V1MxZVJPcUs4S25rMFMzTG8yNjBRdk1qQnBwV1hLK1VZTWdaSzIvb1hYZWNQ?= =?utf-8?B?bUhFNERGS0h6R1l5eVQvYURZbldFcHUwTXYydGl2YS83b3VOZDA3U2dKOW96?= =?utf-8?B?cUVNSy93MU9yRXVoemNXWEdxRGpOeTN5ZEIyQmtkeHp4dUJJWE1VR1RKbW1M?= =?utf-8?Q?JUaFfW4DoY2P4YKVkTRsCGZt+yyWyijutoDi85w?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aeff4519-05af-4484-e003-08db265ff639 X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Mar 2023 20:49:39.9824 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0263 Subject: Re: [FFmpeg-devel] [PATCH v7 1/2] avcodec/avutil: move dynamic HDR10+ metadata parsing to libavutil X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: UmFwaGHDq2wgWnVtZXI6Cj4gCj4gCj4+IE9uIE1hciAxNiwgMjAyMywgYXQgMTY6MTksIEFuZHJl YXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPiB3cm90ZToKPj4K Pj4g77u/UmFwaGHDq2wgWnVtZXI6Cj4+PiBTaWduZWQtb2ZmLWJ5OiBSYXBoYcOrbCBadW1lciA8 cnp1bWVyQHRlYmFrby5uZXQ+Cj4+PiAtLS0KPj4+IGxpYmF2Y29kZWMvTWFrZWZpbGUgICAgICAg ICAgICAgIHwgICA2ICstCj4+PiBsaWJhdmNvZGVjL2F2MWRlYy5jICAgICAgICAgICAgICB8ICAg NiArLQo+Pj4gbGliYXZjb2RlYy9keW5hbWljX2hkcjEwX3BsdXMuYyAgfCAxOTggLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gbGliYXZjb2RlYy9keW5hbWljX2hkcjEwX3BsdXMu aCAgfCAgMzUgLS0tLS0tCj4+PiBsaWJhdmNvZGVjL2gyNjQ1X3NlaS5jICAgICAgICAgICB8ICAg NiArLQo+Pj4gbGliYXZjb2RlYy9saWJkYXYxZC5jICAgICAgICAgICAgfCAgIDYgKy0KPj4+IGxp YmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jIHwgMTg1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4+PiBsaWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCB8ICAxMyArKwo+ Pj4gOCBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgMjQ1IGRlbGV0aW9ucygtKQo+ Pj4gZGVsZXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmMKPj4+ IGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5oCj4+Pgo+ Pj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxl Cj4+PiBpbmRleCBhYmFlNDkwOWQyLi40MDhlY2QxZTMxIDEwMDY0NAo+Pj4gLS0tIGEvbGliYXZj b2RlYy9NYWtlZmlsZQo+Pj4gKysrIGIvbGliYXZjb2RlYy9NYWtlZmlsZQo+Pj4gQEAgLTEwNCw3 ICsxMDQsNyBAQCBPQkpTLSQoQ09ORklHX0gyNjRfU0VJKSAgICAgICAgICAgICAgICArPSBoMjY0 X3NlaS5vIGgyNjQ1X3NlaS5vCj4+PiBPQkpTLSQoQ09ORklHX0hFVkNQQVJTRSkgICAgICAgICAg ICAgICArPSBoZXZjX3BhcnNlLm8gaGV2Y19wcy5vIGhldmNfZGF0YS5vIFwKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgyNjQ1ZGF0YS5vIGgyNjQ1X3BhcnNl Lm8gaDI2NDVfdnVpLm8KPj4+IE9CSlMtJChDT05GSUdfSEVWQ19TRUkpICAgICAgICAgICAgICAg ICs9IGhldmNfc2VpLm8gaDI2NDVfc2VpLm8gXAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGR5bmFtaWNfaGRyMTBfcGx1cy5vIGR5bmFtaWNfaGRyX3Zpdmlk Lm8KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWlj X2hkcl92aXZpZC5vCj4+PiBPQkpTLSQoQ09ORklHX0hQRUxEU1ApICAgICAgICAgICAgICAgICAr PSBocGVsZHNwLm8KPj4+IE9CSlMtJChDT05GSUdfSFVGRk1BTikgICAgICAgICAgICAgICAgICs9 IGh1ZmZtYW4ubwo+Pj4gT0JKUy0kKENPTkZJR19IVUZGWVVWRFNQKSAgICAgICAgICAgICAgKz0g aHVmZnl1dmRzcC5vCj4+PiBAQCAtMjUwLDcgKzI1MCw3IEBAIE9CSlMtJChDT05GSUdfQVRSQUMz UEFMX0RFQ09ERVIpICAgICAgICs9IGF0cmFjM3BsdXNkZWMubyBhdHJhYzNwbHVzLm8gXAo+Pj4g T0JKUy0kKENPTkZJR19BVFJBQzlfREVDT0RFUikgICAgICAgICAgKz0gYXRyYWM5ZGVjLm8KPj4+ IE9CSlMtJChDT05GSUdfQVVSQV9ERUNPREVSKSAgICAgICAgICAgICs9IGN5dXYubwo+Pj4gT0JK Uy0kKENPTkZJR19BVVJBMl9ERUNPREVSKSAgICAgICAgICAgKz0gYXVyYS5vCj4+PiAtT0JKUy0k KENPTkZJR19BVjFfREVDT0RFUikgICAgICAgICAgICAgKz0gYXYxZGVjLm8gZHluYW1pY19oZHIx MF9wbHVzLm8KPj4+ICtPQkpTLSQoQ09ORklHX0FWMV9ERUNPREVSKSAgICAgICAgICAgICArPSBh djFkZWMubwo+Pj4gT0JKUy0kKENPTkZJR19BVjFfQ1VWSURfREVDT0RFUikgICAgICAgKz0gY3V2 aWRkZWMubwo+Pj4gT0JKUy0kKENPTkZJR19BVjFfTUVESUFDT0RFQ19ERUNPREVSKSAgKz0gbWVk aWFjb2RlY2RlYy5vCj4+PiBPQkpTLSQoQ09ORklHX0FWMV9OVkVOQ19FTkNPREVSKSAgICAgICAr PSBudmVuY19hdjEubyBudmVuYy5vCj4+PiBAQCAtMTA4Miw3ICsxMDgyLDcgQEAgT0JKUy0kKENP TkZJR19MSUJBUklCQjI0X0RFQ09ERVIpICAgICAgICAgKz0gbGliYXJpYmIyNC5vIGFzcy5vCj4+ PiBPQkpTLSQoQ09ORklHX0xJQkNFTFRfREVDT0RFUikgICAgICAgICAgICArPSBsaWJjZWx0X2Rl Yy5vCj4+PiBPQkpTLSQoQ09ORklHX0xJQkNPREVDMl9ERUNPREVSKSAgICAgICAgICArPSBsaWJj b2RlYzIubwo+Pj4gT0JKUy0kKENPTkZJR19MSUJDT0RFQzJfRU5DT0RFUikgICAgICAgICAgKz0g bGliY29kZWMyLm8KPj4+IC1PQkpTLSQoQ09ORklHX0xJQkRBVjFEX0RFQ09ERVIpICAgICAgICAg ICArPSBsaWJkYXYxZC5vIGR5bmFtaWNfaGRyMTBfcGx1cy5vCj4+PiArT0JKUy0kKENPTkZJR19M SUJEQVYxRF9ERUNPREVSKSAgICAgICAgICAgKz0gbGliZGF2MWQubwo+Pj4gT0JKUy0kKENPTkZJ R19MSUJEQVZTMl9ERUNPREVSKSAgICAgICAgICAgKz0gbGliZGF2czIubwo+Pj4gT0JKUy0kKENP TkZJR19MSUJGREtfQUFDX0RFQ09ERVIpICAgICAgICAgKz0gbGliZmRrLWFhY2RlYy5vCj4+PiBP QkpTLSQoQ09ORklHX0xJQkZES19BQUNfRU5DT0RFUikgICAgICAgICArPSBsaWJmZGstYWFjZW5j Lm8KPj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2F2MWRlYy5jIGIvbGliYXZjb2RlYy9hdjFk ZWMuYwo+Pj4gaW5kZXggYTgwZTM3ZTMzZi4uZGYzOTNmZTNkMCAxMDA2NDQKPj4+IC0tLSBhL2xp YmF2Y29kZWMvYXYxZGVjLmMKPj4+ICsrKyBiL2xpYmF2Y29kZWMvYXYxZGVjLmMKPj4+IEBAIC0y MCw2ICsyMCw3IEBACj4+Pgo+Pj4gI2luY2x1ZGUgImNvbmZpZ19jb21wb25lbnRzLmgiCj4+Pgo+ Pj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCIKPj4+ICNpbmNs dWRlICJsaWJhdnV0aWwvZmlsbV9ncmFpbl9wYXJhbXMuaCIKPj4+ICNpbmNsdWRlICJsaWJhdnV0 aWwvbWFzdGVyaW5nX2Rpc3BsYXlfbWV0YWRhdGEuaCIKPj4+ICNpbmNsdWRlICJsaWJhdnV0aWwv cGl4ZGVzYy5oIgo+Pj4gQEAgLTMwLDcgKzMxLDYgQEAKPj4+ICNpbmNsdWRlICJieXRlc3RyZWFt LmgiCj4+PiAjaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIKPj4+ICNpbmNsdWRlICJkZWNvZGUu aCIKPj4+IC0jaW5jbHVkZSAiZHluYW1pY19oZHIxMF9wbHVzLmgiCj4+PiAjaW5jbHVkZSAiaHdj b25maWcuaCIKPj4+ICNpbmNsdWRlICJwcm9maWxlcy5oIgo+Pj4gI2luY2x1ZGUgInRocmVhZC5o Igo+Pj4gQEAgLTkyNSw4ICs5MjUsOCBAQCBzdGF0aWMgaW50IGV4cG9ydF9pdHV0X3QzNShBVkNv ZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLAo+Pj4gICAgICAgICBpZiAoIWhkcnBs dXMpCj4+PiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+Pj4KPj4+IC0gICAg ICAgIHJldCA9IGZmX3BhcnNlX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3BsdXMoaGRycGx1 cywgZ2IuYnVmZmVyLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKPj4+ICsg ICAgICAgIHJldCA9IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoaGRycGx1cywgZ2IuYnVm ZmVyLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRl c3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKPj4+ICAgICAgICAgaWYgKHJldCA8IDApCj4+ PiAgICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4gICAgICAgICBicmVhazsKPj4+IGRpZmYgLS1n aXQgYS9saWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5jIGIvbGliYXZjb2RlYy9keW5hbWlj X2hkcjEwX3BsdXMuYwo+Pj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCAzNGE0 NGFhYzY1Li4wMDAwMDAwMDAwCj4+PiAtLS0gYS9saWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1 cy5jCj4+PiArKysgL2Rldi9udWxsCj4+PiBAQCAtMSwxOTggKzAsMCBAQAo+Pj4gLS8qCj4+PiAt ICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+Pj4gLSAqCj4+PiAtICogRkZtcGVnIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+Pj4gLSAqIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK Pj4+IC0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIKPj4+IC0gKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4+IC0gKgo+Pj4gLSAqIEZGbXBlZyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+Pj4gLSAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCj4+PiAtICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKPj4+IC0gKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgo+Pj4gLSAqCj4+PiAtICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+Pj4gLSAqIExpY2Vu c2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK Pj4+IC0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4+PiAtICovCj4+PiAtCj4+PiAtI2luY2x1ZGUg ImR5bmFtaWNfaGRyMTBfcGx1cy5oIgo+Pj4gLSNpbmNsdWRlICJnZXRfYml0cy5oIgo+Pj4gLQo+ Pj4gLXN0YXRpYyBjb25zdCBpbnQ2NF90IGx1bWluYW5jZV9kZW4gPSAxOwo+Pj4gLXN0YXRpYyBj b25zdCBpbnQzMl90IHBlYWtfbHVtaW5hbmNlX2RlbiA9IDE1Owo+Pj4gLXN0YXRpYyBjb25zdCBp bnQ2NF90IHJnYl9kZW4gPSAxMDAwMDA7Cj4+PiAtc3RhdGljIGNvbnN0IGludDMyX3QgZnJhY3Rp b25fcGl4ZWxfZGVuID0gMTAwMDsKPj4+IC1zdGF0aWMgY29uc3QgaW50MzJfdCBrbmVlX3BvaW50 X2RlbiA9IDQwOTU7Cj4+PiAtc3RhdGljIGNvbnN0IGludDMyX3QgYmV6aWVyX2FuY2hvcl9kZW4g PSAxMDIzOwo+Pj4gLXN0YXRpYyBjb25zdCBpbnQzMl90IHNhdHVyYXRpb25fd2VpZ2h0X2RlbiA9 IDg7Cj4+PiAtCj4+PiAtaW50IGZmX3BhcnNlX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3Bs dXMoQVZEeW5hbWljSERSUGx1cyAqcywgY29uc3QgdWludDhfdCAqZGF0YSwKPj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSkKPj4+IC17Cj4+ PiAtICAgIEdldEJpdENvbnRleHQgZ2JjLCAqZ2IgPSAmZ2JjOwo+Pj4gLSAgICBpbnQgcmV0Owo+ Pj4gLQo+Pj4gLSAgICBpZiAoIXMpCj4+PiAtICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p Owo+Pj4gLQo+Pj4gLSAgICByZXQgPSBpbml0X2dldF9iaXRzOChnYiwgZGF0YSwgc2l6ZSk7Cj4+ PiAtICAgIGlmIChyZXQgPCAwKQo+Pj4gLSAgICAgICAgcmV0dXJuIHJldDsKPj4+IC0KPj4+IC0g ICAgaWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgMTApCj4+PiAtICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKPj4+IC0KPj4+IC0gICAgcy0+YXBwbGljYXRpb25fdmVyc2lvbiA9IGdl dF9iaXRzKGdiLCA4KTsKPj4+IC0gICAgcy0+bnVtX3dpbmRvd3MgPSBnZXRfYml0cyhnYiwgMik7 Cj4+PiAtCj4+PiAtICAgIGlmIChzLT5udW1fd2luZG93cyA8IDEgfHwgcy0+bnVtX3dpbmRvd3Mg PiAzKSB7Cj4+PiAtICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4+IC0gICAg fQo+Pj4gLQo+Pj4gLSAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAoKDE5ICogOCArIDEpICog KHMtPm51bV93aW5kb3dzIC0gMSkpKQo+Pj4gLSAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7Cj4+PiAtCj4+PiAtICAgIGZvciAoaW50IHcgPSAxOyB3IDwgcy0+bnVtX3dpbmRvd3M7 IHcrKykgewo+Pj4gLSAgICAgICAgLy8gVGhlIGNvcm5lcnMgYXJlIHNldCB0byBhYnNvbHV0ZSBj b29yZGluYXRlcyBoZXJlLiBUaGV5IHNob3VsZCBiZQo+Pj4gLSAgICAgICAgLy8gY29udmVydGVk IHRvIHRoZSByZWxhdGl2ZSBjb29yZGluYXRlcyAoaW4gWzAsIDFdKSBpbiB0aGUgZGVjb2Rlci4K Pj4+IC0gICAgICAgIEFWSERSUGx1c0NvbG9yVHJhbnNmb3JtUGFyYW1zICpwYXJhbXMgPSAmcy0+ cGFyYW1zW3ddOwo+Pj4gLSAgICAgICAgcGFyYW1zLT53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJf eCA9Cj4+PiAtICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxNiksIDF9Owo+ Pj4gLSAgICAgICAgcGFyYW1zLT53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeSA9Cj4+PiAtICAg ICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxNiksIDF9Owo+Pj4gLSAgICAgICAg cGFyYW1zLT53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3ggPQo+Pj4gLSAgICAgICAgICAgIChB VlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTYpLCAxfTsKPj4+IC0gICAgICAgIHBhcmFtcy0+d2lu ZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl95ID0KPj4+IC0gICAgICAgICAgICAoQVZSYXRpb25hbCl7 Z2V0X2JpdHMoZ2IsIDE2KSwgMX07Cj4+PiAtCj4+PiAtICAgICAgICBwYXJhbXMtPmNlbnRlcl9v Zl9lbGxpcHNlX3ggPSBnZXRfYml0cyhnYiwgMTYpOwo+Pj4gLSAgICAgICAgcGFyYW1zLT5jZW50 ZXJfb2ZfZWxsaXBzZV95ID0gZ2V0X2JpdHMoZ2IsIDE2KTsKPj4+IC0gICAgICAgIHBhcmFtcy0+ cm90YXRpb25fYW5nbGUgPSBnZXRfYml0cyhnYiwgOCk7Cj4+PiAtICAgICAgICBwYXJhbXMtPnNl bWltYWpvcl9heGlzX2ludGVybmFsX2VsbGlwc2UgPSBnZXRfYml0cyhnYiwgMTYpOwo+Pj4gLSAg ICAgICAgcGFyYW1zLT5zZW1pbWFqb3JfYXhpc19leHRlcm5hbF9lbGxpcHNlID0gZ2V0X2JpdHMo Z2IsIDE2KTsKPj4+IC0gICAgICAgIHBhcmFtcy0+c2VtaW1pbm9yX2F4aXNfZXh0ZXJuYWxfZWxs aXBzZSA9IGdldF9iaXRzKGdiLCAxNik7Cj4+PiAtICAgICAgICBwYXJhbXMtPm92ZXJsYXBfcHJv Y2Vzc19vcHRpb24gPSBnZXRfYml0czEoZ2IpOwo+Pj4gLSAgICB9Cj4+PiAtCj4+PiAtICAgIGlm IChnZXRfYml0c19sZWZ0KGdiKSA8IDI4KQo+Pj4gLSAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5W QUxJRERBVEE7Cj4+PiAtCj4+PiAtICAgIHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X21heGlt dW1fbHVtaW5hbmNlID0KPj4+IC0gICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0c19sb25nKGdi LCAyNyksIGx1bWluYW5jZV9kZW59Owo+Pj4gLSAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxh eV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyA9IGdldF9iaXRzMShnYik7Cj4+PiAtCj4+PiAt ICAgIGlmIChzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2Vf ZmxhZykgewo+Pj4gLSAgICAgICAgaW50IHJvd3MsIGNvbHM7Cj4+PiAtICAgICAgICBpZiAoZ2V0 X2JpdHNfbGVmdChnYikgPCAxMCkKPj4+IC0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKPj4+IC0gICAgICAgIHJvd3MgPSBnZXRfYml0cyhnYiwgNSk7Cj4+PiAtICAgICAg ICBjb2xzID0gZ2V0X2JpdHMoZ2IsIDUpOwo+Pj4gLSAgICAgICAgaWYgKCgocm93cyA8IDIpIHx8 IChyb3dzID4gMjUpKSB8fCAoKGNvbHMgPCAyKSB8fCAoY29scyA+IDI1KSkpIHsKPj4+IC0gICAg ICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4+IC0gICAgICAgIH0KPj4+IC0g ICAgICAgIHMtPm51bV9yb3dzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1 bWluYW5jZSA9IHJvd3M7Cj4+PiAtICAgICAgICBzLT5udW1fY29sc190YXJnZXRlZF9zeXN0ZW1f ZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgPSBjb2xzOwo+Pj4gLQo+Pj4gLSAgICAgICAg aWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgKHJvd3MgKiBjb2xzICogNCkpCj4+PiAtICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+PiAtCj4+PiAtICAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IHJvd3M7IGkrKykgewo+Pj4gLSAgICAgICAgICAgIGZvciAoaW50IGogPSAw OyBqIDwgY29sczsgaisrKSB7Cj4+PiAtICAgICAgICAgICAgICAgIHMtPnRhcmdldGVkX3N5c3Rl bV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXSA9Cj4+PiAtICAgICAgICAgICAg ICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDQpLCBwZWFrX2x1bWluYW5jZV9kZW59 Owo+Pj4gLSAgICAgICAgICAgIH0KPj4+IC0gICAgICAgIH0KPj4+IC0gICAgfQo+Pj4gLSAgICBm b3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKPj4+IC0gICAgICAgIEFW SERSUGx1c0NvbG9yVHJhbnNmb3JtUGFyYW1zICpwYXJhbXMgPSAmcy0+cGFyYW1zW3ddOwo+Pj4g LSAgICAgICAgaWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgKDMgKiAxNyArIDE3ICsgNCkpCj4+PiAt ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+PiAtCj4+PiAtICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgewo+Pj4gLSAgICAgICAgICAgIHBhcmFtcy0+ bWF4c2NsW2ldID0KPj4+IC0gICAgICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdi LCAxNyksIHJnYl9kZW59Owo+Pj4gLSAgICAgICAgfQo+Pj4gLSAgICAgICAgcGFyYW1zLT5hdmVy YWdlX21heHJnYiA9Cj4+PiAtICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAx NyksIHJnYl9kZW59Owo+Pj4gLSAgICAgICAgcGFyYW1zLT5udW1fZGlzdHJpYnV0aW9uX21heHJn Yl9wZXJjZW50aWxlcyA9IGdldF9iaXRzKGdiLCA0KTsKPj4+IC0KPj4+IC0gICAgICAgIGlmIChn ZXRfYml0c19sZWZ0KGdiKSA8Cj4+PiAtICAgICAgICAgICAgKHBhcmFtcy0+bnVtX2Rpc3RyaWJ1 dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMgKiAyNCkpCj4+PiAtICAgICAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7Cj4+PiAtCj4+PiAtICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IHBhcmFtcy0+bnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM7IGkrKykgewo+Pj4g LSAgICAgICAgICAgIHBhcmFtcy0+ZGlzdHJpYnV0aW9uX21heHJnYltpXS5wZXJjZW50YWdlID0g Z2V0X2JpdHMoZ2IsIDcpOwo+Pj4gLSAgICAgICAgICAgIHBhcmFtcy0+ZGlzdHJpYnV0aW9uX21h eHJnYltpXS5wZXJjZW50aWxlID0KPj4+IC0gICAgICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dl dF9iaXRzKGdiLCAxNyksIHJnYl9kZW59Owo+Pj4gLSAgICAgICAgfQo+Pj4gLQo+Pj4gLSAgICAg ICAgaWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgMTApCj4+PiAtICAgICAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7Cj4+PiAtCj4+PiAtICAgICAgICBwYXJhbXMtPmZyYWN0aW9uX2Jy aWdodF9waXhlbHMgPSAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDEwKSwgZnJhY3Rpb25fcGl4 ZWxfZGVufTsKPj4+IC0gICAgfQo+Pj4gLSAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAxKQo+ Pj4gLSAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+PiAtICAgIHMtPm1hc3Rl cmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnID0gZ2V0X2JpdHMxKGdiKTsK Pj4+IC0gICAgaWYgKHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9m bGFnKSB7Cj4+PiAtICAgICAgICBpbnQgcm93cywgY29sczsKPj4+IC0gICAgICAgIGlmIChnZXRf Yml0c19sZWZ0KGdiKSA8IDEwKQo+Pj4gLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFM SUREQVRBOwo+Pj4gLSAgICAgICAgcm93cyA9IGdldF9iaXRzKGdiLCA1KTsKPj4+IC0gICAgICAg IGNvbHMgPSBnZXRfYml0cyhnYiwgNSk7Cj4+PiAtICAgICAgICBpZiAoKChyb3dzIDwgMikgfHwg KHJvd3MgPiAyNSkpIHx8ICgoY29scyA8IDIpIHx8IChjb2xzID4gMjUpKSkgewo+Pj4gLSAgICAg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+Pj4gLSAgICAgICAgfQo+Pj4gLSAg ICAgICAgcy0+bnVtX3Jvd3NfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNl ID0gcm93czsKPj4+IC0gICAgICAgIHMtPm51bV9jb2xzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVh bF9wZWFrX2x1bWluYW5jZSA9IGNvbHM7Cj4+PiAtCj4+PiAtICAgICAgICBpZiAoZ2V0X2JpdHNf bGVmdChnYikgPCAocm93cyAqIGNvbHMgKiA0KSkKPj4+IC0gICAgICAgICAgICByZXR1cm4gQVZF UlJPUl9JTlZBTElEREFUQTsKPj4+IC0KPj4+IC0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg cm93czsgaSsrKSB7Cj4+PiAtICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb2xzOyBq KyspIHsKPj4+IC0gICAgICAgICAgICAgICAgcy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3Bl YWtfbHVtaW5hbmNlW2ldW2pdID0KPj4+IC0gICAgICAgICAgICAgICAgICAgIChBVlJhdGlvbmFs KXtnZXRfYml0cyhnYiwgNCksIHBlYWtfbHVtaW5hbmNlX2Rlbn07Cj4+PiAtICAgICAgICAgICAg fQo+Pj4gLSAgICAgICAgfQo+Pj4gLSAgICB9Cj4+PiAtCj4+PiAtICAgIGZvciAoaW50IHcgPSAw OyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgewo+Pj4gLSAgICAgICAgQVZIRFJQbHVzQ29sb3JU cmFuc2Zvcm1QYXJhbXMgKnBhcmFtcyA9ICZzLT5wYXJhbXNbd107Cj4+PiAtICAgICAgICBpZiAo Z2V0X2JpdHNfbGVmdChnYikgPCAxKQo+Pj4gLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lO VkFMSUREQVRBOwo+Pj4gLQo+Pj4gLSAgICAgICAgcGFyYW1zLT50b25lX21hcHBpbmdfZmxhZyA9 IGdldF9iaXRzMShnYik7Cj4+PiAtICAgICAgICBpZiAocGFyYW1zLT50b25lX21hcHBpbmdfZmxh Zykgewo+Pj4gLSAgICAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDI4KQo+Pj4gLSAg ICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4+IC0KPj4+IC0gICAg ICAgICAgICBwYXJhbXMtPmtuZWVfcG9pbnRfeCA9Cj4+PiAtICAgICAgICAgICAgICAgIChBVlJh dGlvbmFsKXtnZXRfYml0cyhnYiwgMTIpLCBrbmVlX3BvaW50X2Rlbn07Cj4+PiAtICAgICAgICAg ICAgcGFyYW1zLT5rbmVlX3BvaW50X3kgPQo+Pj4gLSAgICAgICAgICAgICAgICAoQVZSYXRpb25h bCl7Z2V0X2JpdHMoZ2IsIDEyKSwga25lZV9wb2ludF9kZW59Owo+Pj4gLSAgICAgICAgICAgIHBh cmFtcy0+bnVtX2Jlemllcl9jdXJ2ZV9hbmNob3JzID0gZ2V0X2JpdHMoZ2IsIDQpOwo+Pj4gLQo+ Pj4gLSAgICAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IChwYXJhbXMtPm51bV9iZXpp ZXJfY3VydmVfYW5jaG9ycyAqIDEwKSkKPj4+IC0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7Cj4+PiAtCj4+PiAtICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBwYXJhbXMtPm51bV9iZXppZXJfY3VydmVfYW5jaG9yczsgaSsrKSB7Cj4+PiAtICAgICAgICAg ICAgICAgIHBhcmFtcy0+YmV6aWVyX2N1cnZlX2FuY2hvcnNbaV0gPQo+Pj4gLSAgICAgICAgICAg ICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxMCksIGJlemllcl9hbmNob3JfZGVu fTsKPj4+IC0gICAgICAgICAgICB9Cj4+PiAtICAgICAgICB9Cj4+PiAtCj4+PiAtICAgICAgICBp ZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAxKQo+Pj4gLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9S X0lOVkFMSUREQVRBOwo+Pj4gLSAgICAgICAgcGFyYW1zLT5jb2xvcl9zYXR1cmF0aW9uX21hcHBp bmdfZmxhZyA9IGdldF9iaXRzMShnYik7Cj4+PiAtICAgICAgICBpZiAocGFyYW1zLT5jb2xvcl9z YXR1cmF0aW9uX21hcHBpbmdfZmxhZykgewo+Pj4gLSAgICAgICAgICAgIGlmIChnZXRfYml0c19s ZWZ0KGdiKSA8IDYpCj4+PiAtICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwo+Pj4gLSAgICAgICAgICAgIHBhcmFtcy0+Y29sb3Jfc2F0dXJhdGlvbl93ZWlnaHQgPQo+ Pj4gLSAgICAgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDYpLCBzYXR1cmF0 aW9uX3dlaWdodF9kZW59Owo+Pj4gLSAgICAgICAgfQo+Pj4gLSAgICB9Cj4+PiAtCj4+PiAtICAg IHJldHVybiAwOwo+Pj4gLX0KPj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2R5bmFtaWNfaGRy MTBfcGx1cy5oIGIvbGliYXZjb2RlYy9keW5hbWljX2hkcjEwX3BsdXMuaAo+Pj4gZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCBjZDdhY2YwNDMyLi4wMDAwMDAwMDAwCj4+PiAtLS0g YS9saWJhdmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5oCj4+PiArKysgL2Rldi9udWxsCj4+PiBA QCAtMSwzNSArMCwwIEBACj4+PiAtLyoKPj4+IC0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1w ZWcuCj4+PiAtICoKPj4+IC0gKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCj4+PiAtICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+Pj4gLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+Pj4gLSAqIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u Lgo+Pj4gLSAqCj4+PiAtICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCj4+PiAtICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4+IC0gKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+Pj4gLSAq IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+PiAtICoK Pj4+IC0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCj4+PiAtICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+Pj4gLSAqIEZvdW5kYXRpb24sIEluYy4sIDUx IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EK Pj4+IC0gKi8KPj4+IC0KPj4+IC0jaWZuZGVmIEFWQ09ERUNfRFlOQU1JQ19IRFIxMF9QTFVTX0gK Pj4+IC0jZGVmaW5lIEFWQ09ERUNfRFlOQU1JQ19IRFIxMF9QTFVTX0gKPj4+IC0KPj4+IC0jaW5j bHVkZSAibGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgiCj4+PiAtCj4+PiAtLyoqCj4+ PiAtICogUGFyc2UgdGhlIHVzZXIgZGF0YSByZWdpc3RlcmVkIElUVS1UIFQuMzUgdG8gQVZidWZm ZXIgKEFWRHluYW1pY0hEUlBsdXMpLgo+Pj4gLSAqIEBwYXJhbSBzIEEgcG9pbnRlciBjb250YWlu aW5nIHRoZSBkZWNvZGVkIEFWRHluYW1pY0hEUlBsdXMgc3RydWN0dXJlLgo+Pj4gLSAqIEBwYXJh bSBkYXRhIFRoZSBieXRlIGFycmF5IGNvbnRhaW5pbmcgdGhlIHJhdyBJVFUtVCBULjM1IGRhdGEu Cj4+PiAtICogQHBhcmFtIHNpemUgU2l6ZSBvZiB0aGUgZGF0YSBhcnJheSBpbiBieXRlcy4KPj4+ IC0gKgo+Pj4gLSAqIEByZXR1cm4gMCBpZiBzdWNjZWVkLiBPdGhlcndpc2UsIHJldHVybnMgdGhl IGFwcHJvcHJpYXRlIEFWRVJST1IuCj4+PiAtICovCj4+PiAtaW50IGZmX3BhcnNlX2l0dV90X3Qz NV90b19keW5hbWljX2hkcjEwX3BsdXMoQVZEeW5hbWljSERSUGx1cyAqcywgY29uc3QgdWludDhf dCAqZGF0YSwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgc2l6ZSk7Cj4+PiAtCj4+PiAtI2VuZGlmIC8qIEFWQ09ERUNfRFlOQU1JQ19IRFIxMF9Q TFVTX0ggKi8KPj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2gyNjQ1X3NlaS5jIGIvbGliYXZj b2RlYy9oMjY0NV9zZWkuYwo+Pj4gaW5kZXggNmU0YTlhMWFmMi4uNjNhYjcxMWJjOSAxMDA2NDQK Pj4+IC0tLSBhL2xpYmF2Y29kZWMvaDI2NDVfc2VpLmMKPj4+ICsrKyBiL2xpYmF2Y29kZWMvaDI2 NDVfc2VpLmMKPj4+IEBAIC0yNywxMyArMjcsMTMgQEAKPj4+Cj4+PiAjaW5jbHVkZSAibGliYXZ1 dGlsL2FtYmllbnRfdmlld2luZ19lbnZpcm9ubWVudC5oIgo+Pj4gI2luY2x1ZGUgImxpYmF2dXRp bC9kaXNwbGF5LmgiCj4+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0 YS5oIgo+Pj4gI2luY2x1ZGUgImxpYmF2dXRpbC9maWxtX2dyYWluX3BhcmFtcy5oIgo+Pj4gI2lu Y2x1ZGUgImxpYmF2dXRpbC9waXhkZXNjLmgiCj4+PiAjaW5jbHVkZSAibGliYXZ1dGlsL3N0ZXJl bzNkLmgiCj4+Pgo+Pj4gI2luY2x1ZGUgImF0c2NfYTUzLmgiCj4+PiAjaW5jbHVkZSAiYXZjb2Rl Yy5oIgo+Pj4gLSNpbmNsdWRlICJkeW5hbWljX2hkcjEwX3BsdXMuaCIKPj4+ICNpbmNsdWRlICJk eW5hbWljX2hkcl92aXZpZC5oIgo+Pj4gI2luY2x1ZGUgImdldF9iaXRzLmgiCj4+PiAjaW5jbHVk ZSAiZ29sb21iLmgiCj4+PiBAQCAtNTIsOCArNTIsOCBAQCBzdGF0aWMgaW50IGRlY29kZV9yZWdp c3RlcmVkX3VzZXJfZGF0YV9keW5hbWljX2hkcl9wbHVzKEhFVkNTRUlEeW5hbWljSERSUGx1cyAq cwo+Pj4gICAgIGlmICghbWV0YWRhdGEpCj4+PiAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01F TSk7Cj4+Pgo+Pj4gLSAgICBlcnIgPSBmZl9wYXJzZV9pdHVfdF90MzVfdG9fZHluYW1pY19oZHIx MF9wbHVzKG1ldGFkYXRhLCBnYi0+YnVmZmVyLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0KGdi KSk7Cj4+PiArICAgIGVyciA9IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUobWV0YWRhdGEs IGdiLT5idWZmZXIsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ynl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQoZ2IpKTsKPj4+ICAgICBpZiAoZXJyIDwgMCkgewo+ Pj4gICAgICAgICBhdl9mcmVlKG1ldGFkYXRhKTsKPj4+ICAgICAgICAgcmV0dXJuIGVycjsKPj4+ IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2xpYmRhdjFkLmMgYi9saWJhdmNvZGVjL2xpYmRhdjFk LmMKPj4+IGluZGV4IGViMTIyNWVhMWEuLjUwYzRjZWVlNDAgMTAwNjQ0Cj4+PiAtLS0gYS9saWJh dmNvZGVjL2xpYmRhdjFkLmMKPj4+ICsrKyBiL2xpYmF2Y29kZWMvbGliZGF2MWQuYwo+Pj4gQEAg LTI0LDYgKzI0LDcgQEAKPj4+ICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCIKPj4+ICNp bmNsdWRlICJsaWJhdnV0aWwvY3B1LmgiCj4+PiAjaW5jbHVkZSAibGliYXZ1dGlsL2ZpbG1fZ3Jh aW5fcGFyYW1zLmgiCj4+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0 YS5oIgo+Pj4gI2luY2x1ZGUgImxpYmF2dXRpbC9tYXN0ZXJpbmdfZGlzcGxheV9tZXRhZGF0YS5o Igo+Pj4gI2luY2x1ZGUgImxpYmF2dXRpbC9pbWd1dGlscy5oIgo+Pj4gI2luY2x1ZGUgImxpYmF2 dXRpbC9vcHQuaCIKPj4+IEBAIC0zMyw3ICszNCw2IEBACj4+PiAjaW5jbHVkZSAiYnl0ZXN0cmVh bS5oIgo+Pj4gI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCj4+PiAjaW5jbHVkZSAiZGVjb2Rl LmgiCj4+PiAtI2luY2x1ZGUgImR5bmFtaWNfaGRyMTBfcGx1cy5oIgo+Pj4gI2luY2x1ZGUgImlu dGVybmFsLmgiCj4+Pgo+Pj4gI2RlZmluZSBGRl9EQVYxRF9WRVJTSU9OX0FUX0xFQVNUKHgseSkg XAo+Pj4gQEAgLTU1NSw4ICs1NTUsOCBAQCBGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MK Pj4+ICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4+PiAgICAgICAgICAgICB9Cj4+Pgo+Pj4g LSAgICAgICAgICAgIHJlcyA9IGZmX3BhcnNlX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3Bs dXMoaGRycGx1cywgZ2IuYnVmZmVyLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQo JmdiKSk7Cj4+PiArICAgICAgICAgICAgcmVzID0gYXZfZHluYW1pY19oZHJfcGx1c19mcm9tX3Qz NShoZHJwbHVzLCBnYi5idWZmZXIsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmZ2IpKTsKPj4+ICAg ICAgICAgICAgIGlmIChyZXMgPCAwKQo+Pj4gICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPj4+ ICAgICAgICAgICAgIGJyZWFrOwo+Pj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJfZHluYW1p Y19tZXRhZGF0YS5jIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKPj4+IGluZGV4 IDBmYTFlZTgyZGUuLjVlZDkwM2Y0NzUgMTAwNjQ0Cj4+PiAtLS0gYS9saWJhdnV0aWwvaGRyX2R5 bmFtaWNfbWV0YWRhdGEuYwo+Pj4gKysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRh LmMKPj4+IEBAIC0yMCw2ICsyMCwxOCBAQAo+Pj4KPj4+ICNpbmNsdWRlICJoZHJfZHluYW1pY19t ZXRhZGF0YS5oIgo+Pj4gI2luY2x1ZGUgIm1lbS5oIgo+Pj4gKyNpbmNsdWRlICJsaWJhdmNvZGVj L2dldF9iaXRzLmgiCj4+PiArI2luY2x1ZGUgImxpYmF2Y29kZWMvcHV0X2JpdHMuaCIKPj4+ICsK Pj4+ICsjZGVmaW5lIFQzNV9QQVlMT0FEX01BWF9TSVpFIDkwNwo+Pj4gKwo+Pj4gK3N0YXRpYyBj b25zdCBpbnQ2NF90IGx1bWluYW5jZV9kZW4gPSAxOwo+Pj4gK3N0YXRpYyBjb25zdCBpbnQzMl90 IHBlYWtfbHVtaW5hbmNlX2RlbiA9IDE1Owo+Pj4gK3N0YXRpYyBjb25zdCBpbnQ2NF90IHJnYl9k ZW4gPSAxMDAwMDA7Cj4+PiArc3RhdGljIGNvbnN0IGludDMyX3QgZnJhY3Rpb25fcGl4ZWxfZGVu ID0gMTAwMDsKPj4+ICtzdGF0aWMgY29uc3QgaW50MzJfdCBrbmVlX3BvaW50X2RlbiA9IDQwOTU7 Cj4+PiArc3RhdGljIGNvbnN0IGludDMyX3QgYmV6aWVyX2FuY2hvcl9kZW4gPSAxMDIzOwo+Pj4g K3N0YXRpYyBjb25zdCBpbnQzMl90IHNhdHVyYXRpb25fd2VpZ2h0X2RlbiA9IDg7Cj4+Pgo+Pj4g QVZEeW5hbWljSERSUGx1cyAqYXZfZHluYW1pY19oZHJfcGx1c19hbGxvYyhzaXplX3QgKnNpemUp Cj4+PiB7Cj4+PiBAQCAtNDUsMyArNTcsMTc2IEBAIEFWRHluYW1pY0hEUlBsdXMgKmF2X2R5bmFt aWNfaGRyX3BsdXNfY3JlYXRlX3NpZGVfZGF0YShBVkZyYW1lICpmcmFtZSkKPj4+Cj4+PiAgICAg cmV0dXJuIChBVkR5bmFtaWNIRFJQbHVzICopc2lkZV9kYXRhLT5kYXRhOwo+Pj4gfQo+Pj4gKwo+ Pj4gK2ludCBhdl9keW5hbWljX2hkcl9wbHVzX2Zyb21fdDM1KEFWRHluYW1pY0hEUlBsdXMgKnMs IGNvbnN0IHVpbnQ4X3QgKmRhdGEsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZV90IHNpemUpCj4+PiArewo+Pj4gKyAgICB1aW50OF90IHBhZGRlZF9idWZbVDM1X1BB WUxPQURfTUFYX1NJWkUgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFXTsKPj4+ICsgICAg R2V0Qml0Q29udGV4dCBnYmMsICpnYiA9ICZnYmM7Cj4+PiArICAgIGludCByZXQ7Cj4+PiArCj4+ PiArICAgIGlmICghcykKPj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4+PiAr Cj4+PiArICAgIG1lbWNweShwYWRkZWRfYnVmLCBkYXRhLCBzaXplKTsKPj4KPj4gWW91IGFyZSBw b3RlbnRpYWxseSBjb3B5aW5nIG1vcmUgdGhhbiBUMzVfUEFZTE9BRF9NQVhfU0laRSBieXRlcy4K Pj4gRnVydGhlcm1vcmUsIHlvdSBhcmUgbm90IHplcm9pbmcgdGhlIHBhZGRpbmc7IHRoaXMgbWln aHQgbWFrZSBWYWxncmluZAo+PiBjb21wbGFpbi4KPiAKPiBHb29kIHBvaW50IG9uIHRoZSBzaXpl IGlmIHRoZSB1c2VyIHNlbmRzIGFuIGluY29ycmVjdCB2YWx1ZSwgd2UgY2FuIHJldHVybiBBVkVS Uk9SKEVJTlZBTCkgaW4gdGhhdCBjYXNlLiBJIGRpZCBydW4gaXQgdGhyb3VnaCBWYWxncmluZCBh bmQgZGlkIG5vdCBnZXQgYW4gZXJyb3IgZHVlIHRvIG5vdCB6ZXJvaW5nIHRoZSBwYWRkZWQgYnVm ZmVyLiBJIGRvbuKAmXQgdGhpbmsgdGhhdCBzaG91bGQgYmUgbmVjZXNzYXJ5IHNpbmNlIGl04oCZ cyBjb250YWluZWQgd2l0aGluIHRoYXQgZnVuY3Rpb24gYW5kIHVuaW5pdGlhbGl6ZWQgYml0cyBz aG91bGQgbmV2ZXIgYmUgYWNjZXNzZWQsIGlzIHRoYXQgaW5jb3JyZWN0Pwo+IAoKVGhlIEdldEJp dCBBUEkgY2FuIG92ZXJyZWFkIGEgYml0LiBJdCBtb3N0bHkgcmVhZHMgMzJiaXRzIGF0IGEgdGlt ZSwgc28KdGhhdCBpdCBjYW4gcmVhZCBpbnRvIHRoZSBwYWRkaW5nIGV2ZW4gd2hlbiBubyBiaXQg b2YgdGhlIHBhZGRpbmcgaXMKYWN0dWFsbHkgdXNlZCAoYmVjYXVzZSBpdCBpcyBtYXNrZWQgYXdh eSk7IGJ1dCBWYWxncmluZCBkb2VzIG5vdCBhbHdheXMKZ2V0IHRoaXMuCgotIEFuZHJlYXMKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZl bCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3Jn L21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGlu ayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1 YmplY3QgInVuc3Vic2NyaWJlIi4K