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 A238C42417 for ; Fri, 15 Apr 2022 11:34:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8F45168B4CA; Fri, 15 Apr 2022 14:34:35 +0300 (EEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070069.outbound.protection.outlook.com [40.92.70.69]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A113568B3B1 for ; Fri, 15 Apr 2022 14:34:29 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lYTd+RM87MuivQQrfVGx+C4y2M9g7fyFdHibRDWylWfuHXbfJAV6A7H7AW8+4qgR4PGTQcNjFdJXwvZxu1qQfSEv5a2ONxHE+DFIF+rDcPYljJO94NsFfASKWo+uKF6lxz33paWv5Ve9J+OpWF5i7a5NwYvYE9C0b69JpAOFsP+J9bxeO24dhh1e8vl0EIq57FwvhE2esIs1cQj0LF2pbgBET+HaLTaIifVPF4p9rnSRLI8E5NLNTVRiK424FNlzZZsFhbbA6YhE6w05Fi4i7Tsni+v8zAWxUsCzSHKe0d/0yIgbN9+Dc3FyxbUdIpWhDb3gUkUzTTuTdqWnud1wWg== 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=zNXGG15teOe4Rz2XRH1XJjd99K4x7vk19pvcsesY4GM=; b=AhiOr8SQweeL7QYHICDZ+ZbkYTPZosqUwzOME2j+2x6kSt6+v/VJOokEe/Fu4mpbpn6rmeM+8JjBAqSTdRAFyVedxKRIIooNdJK9FDDIguaYiSTWK8XeAbLyPS+L5AIxXn+u4+EjLZM1DWpEM9tDt4ThkHuyUneu02R9l60X55zvJxpEl0d6kOP3go3tnfl9NQIfP4L8LLfufPjTF3UjauH9wPkHe4kCRqNeakgMLqv46Uq5TvmZAweVbmJJ9RtcYTnqloG9MNmHDewc+nU3sOU0wyTkaMWyk42sXSeD014bUloMv9FUMOlyW/oUsT/DhDfPZdO1vx9vjD9+lw3C+A== 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=zNXGG15teOe4Rz2XRH1XJjd99K4x7vk19pvcsesY4GM=; b=ueN3T2Gka7YTX2dZeBNYBoZn6lQlm/AFjjMmjeayJnjpd9RANN2a1gkmIAU05ymF+J0yy3KWCXL5iMF5y3887adKiE22gnslmnQpEzwuw510t6d43TIgUbCriGxJh7VdgblNp+Us7ADi4SqS202cDFrQe/wQLMluEyzQwxnKeAKoSdhbuLIy14EHKBQX11Xm3+jL1OL1V2vlri9Lp9+TZn3+p+WQamNsMfoxkxJLOsXBE4x9k5EKE5i8/y3JuJPVvNSVi/9+S0IH7oz7Icy+qbLone5k7CF4OKNKJPfQGOfFysvo7WEILU9Y8KhN9K1Jw/cSIqade3oqg73o2uN25w== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by HE1PR01MB3034.eurprd01.prod.exchangelabs.com (2603:10a6:7:20::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Fri, 15 Apr 2022 11:34:27 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::fcc3:1285:374c:9b2]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::fcc3:1285:374c:9b2%5]) with mapi id 15.20.5164.023; Fri, 15 Apr 2022 11:34:27 +0000 Message-ID: Date: Fri, 15 Apr 2022 13:34:26 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220412055333.62424-1-leo.izen@gmail.com> <20220412055333.62424-5-leo.izen@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20220412055333.62424-5-leo.izen@gmail.com> X-TMN: [i+lEQRUz8lt3hcWjHnFv3GvnD2F5iI4J] X-ClientProxiedBy: AM6PR08CA0045.eurprd08.prod.outlook.com (2603:10a6:20b:c0::33) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7c82d1bf-4efb-4bf1-d42a-08da1ed3e618 X-MS-TrafficTypeDiagnostic: HE1PR01MB3034:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UZ+40siR/8h+YL+OEESd9tHhGsnFMjBofq597qjrLURc6FrwtMuovm1cFcPKKIQ62/VDEbk5FOL3X+/VffLdj0NxnJazwzQQZ9RMfSGfhsYPYw4vW8XK14S2nRiSj14FysH0onGpvDZ4hC42s5rk3BTXs4UWditAZVnsZzRAAchwVWslm7/b/KGHM2x0Pi3mQXeCg33dyfxCwzPdd7QtAhP3TQpWXxbGMBjJTfWHkj8VYa3vKSwtaNMvOtSMTNPsAydHMHH7D9Bisl3OhM+BPxQVO8QEj+EiKIOgP6QdsUJbwsWXTQ+fTFIdBLrQjwhJ1AaUp19z7/GcH7XnhdDCng0kvPhXQz34jxosF1u7s0AqAM8qdsQWTJjHqvX8WPSIoDI6kFcRAJr8Np5G2Yxs1SjxsFrbxZCQ1bd1i6lEOEHubLkmnSlEp1RevS7AGXG199N768sFycDwNwPtghTLSPMNQryKmQnH6T3wAMTLQ7WR21TYF9thX389g2ANQgGJRit0JSE4lbe6XXL9KTIn4y2q5aQ+9NwLXo7YpCx9RCjhPPs8iL1AWiVkMqkPQkTkoziQDZnlC4vCTS/cesMg7A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RVVqQ2VncVArWnVqUTdYK05MWlhKWFpUMDlRWGZQeG9aQ0ViT2JwOUVwNjhp?= =?utf-8?B?WmFhdzhEeWliejBhNHYxL0ZaMkJoeWkwZGRKM24wTGo3c0VUNTFpSzhOQ0lQ?= =?utf-8?B?TXNIUDJRZFFBTVhUT1o5SzhnRTh0bmQ5U2g4dHVSTWhNNjlmb09jbWVrQi9s?= =?utf-8?B?WGFrY2QyMWZzQlRuOTJJUG5MVGdLaEpPVDVZZnlwWGVQTUxUNXcyNU5vQm0w?= =?utf-8?B?RWtRUkw4WElUNFpqQUd4bnB1K3VPaUJVZisxK1plVit6SDNBL2szRyt0RGlH?= =?utf-8?B?WUZPa01yWXNZcStyYTlrQW9hajkrU2YyQUxVcGxjYTFvalBRa0pYTGFTajUw?= =?utf-8?B?YlBwSlBhb3ZkNWpRSUxoNGV6VlErNVRKSVNEa0dIdm4vR3dteXF4NGNISDFn?= =?utf-8?B?SzRxb0laYXVLQUd5bVZVT3AxKy85c3hBRXd5T0lGS0ZWMHlBQkhhMW9MUGls?= =?utf-8?B?cWwzcWZKWElFU1pOQVozOXc1YjNBamVlQngvclVGLzI5b1VZb2JJYTl3eWtp?= =?utf-8?B?QmtxVUZFZXNqYmc1TWlvbnRLTE1ieHFtWEFlVEZ6WWRpZW1BQ2xlcDF3TDVk?= =?utf-8?B?MkhZZXJ3ZnVDOGJMWDd0WjQ3bmtHQWVrL1oxR1h1c2lIKy8wbU9IQWhrRGtU?= =?utf-8?B?Z3ZDVWF6ZFhpZlhEM25JOCszRjFOdTBIRkhSTGNtS0piVCsycDgrQWVKaFl5?= =?utf-8?B?RzRCdkZQdTExZ29wNUlHOWpMbUJrdGcvK2pISlN3czFBZERETlpRWFN0dG1a?= =?utf-8?B?RG5pbVVBK0cyK2xwdU90UFI0TTVhcEsxVzhmUDk1UkdsRTdsaHUyUWR0NXlq?= =?utf-8?B?TEFDKzFOdllEaXcyTjM5bGo1dGREcys0bnYzWmFERkJLeEpFL0tqbmdOUFUw?= =?utf-8?B?N2FxcTIxY2VxTWFHM1lHbldyd29SR3RSUmZSMTVSdmdFUHVabHR0ZUVsRGY2?= =?utf-8?B?SVZMRHpIYTBoNmc1WTVwMnVzYlpsY25IemxJbTk2SkIvQlA4NytGMGorQjVP?= =?utf-8?B?YmdpenVCb01HcnNNT0N0d0lvb0xrcFdaYUVORzRZWVRrZ2c1R1ZGQnU0cEoz?= =?utf-8?B?ckVrQis4WFR1MURsYzNQQ3d6ZjR5anlwR0N5dEdPQ3cxY2pzalVENTVsMG5J?= =?utf-8?B?ZVJmNkF6NUwxcVZFMzdvRkZtdmVNZ2cxcU5xY2NCOTQ4TDdJQ2s4SUFKYm93?= =?utf-8?B?U1NENG54MjNob3kvdVY4a01nQm5UNklIUTVMWm5DNmRSelYrTWtTNGtReTBS?= =?utf-8?B?ZmR4OEl2UnpKbTdTM3FVdmJPWkZUa0lqYmdhV0YveUJxaEhyeHlQclhUT3pQ?= =?utf-8?B?R2NmblFPelB6UEtUSVBlVUh1OXh4Ti94TmFpMWVTeTNuZEhmcVptZ0ZSRUJX?= =?utf-8?B?QjBqN2tvOGdMcTJYQmdpRG4yNjE2akplb2JXcjZ6WUJjQUZkdS9kOE9xOFdt?= =?utf-8?B?ODJDVkJXVml6Q0V4ZU0zdXlyY0t4V2NLMnR5c1ZTTnV0SWRqL3hjaXJuYkRj?= =?utf-8?B?a3h1NGxQU1ZRQXFrVEZpU1A3VVlZVE5TR05KclF2eFJ6TTNoTkxhRzUxTzg0?= =?utf-8?B?dGdHcjFXbVNhRSs3REMwQklBbTBUTGZRLytJWkJtdDhxZWhDL1RBeVd6WVpQ?= =?utf-8?B?eTNFa29LTDc1T0JOTkMwcytIYTByUkVEVEdzaXFZR3VIVG85R1JTWGh1SUpw?= =?utf-8?B?M25idmZ3N1MreFFPMlRWSEpNcUJoR1dvL284VXVyZmkrU1hvYk5mUXhzUGhv?= =?utf-8?B?QkJIR0lZOTlka3hjTktDZEpKa3NVSzJvbmFBVy9tcHBIMEszNDNlaHlidTFI?= =?utf-8?B?UEEyUFZSb0l2RWdkMTBHRUhvM1k5WXFpSWtsT2trRnNPM2dObkhFNnBIeHMr?= =?utf-8?B?NERQZHBpYUpseVc4NGJ6RWszMXQzWFNWRG9ac0ovSmI1OVV2QUx3Lzd5OUgw?= =?utf-8?B?OHJOcWNTRmRiZGF3eHRQVFNjTE1UVTVib0pwSFRPZlFjeEJMWmJhNGtUZzVi?= =?utf-8?B?cVJZTU9Dd2JRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c82d1bf-4efb-4bf1-d42a-08da1ed3e618 X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2022 11:34:27.5696 (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: HE1PR01MB3034 Subject: Re: [FFmpeg-devel] [PATCH v14 4/4] avformat/image2: add Jpeg XL as image2 format 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: TGVvIEl6ZW46Cj4gVGhpcyBjb21taXQgYWRkcyBzdXBwb3J0IHRvIGxpYmF2Zm9ybWF0IGZvciBt dXhpbmcKPiBhbmQgZGVtdXhpbmcgSnBlZyBYTCBpbWFnZXMgYXMgaW1hZ2UyIHN0cmVhbXMuCj4g LS0tCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgIHwgICAxICsKPiAgbGliYXZmb3JtYXQv TWFrZWZpbGUgICAgICAgfCAgIDEgKwo+ICBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgICB8ICAg MSArCj4gIGxpYmF2Zm9ybWF0L2ltZzIuYyAgICAgICAgIHwgICAxICsKPiAgbGliYXZmb3JtYXQv aW1nMmRlYy5jICAgICAgfCAgMTggKysKPiAgbGliYXZmb3JtYXQvaW1nMmVuYy5jICAgICAgfCAg IDYgKy0KPiAgbGliYXZmb3JtYXQvanBlZ3hsX3Byb2JlLmMgfCAzOTMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWJhdmZvcm1hdC9qcGVneGxfcHJvYmUuaCB8ICAz MiArKysKPiAgbGliYXZmb3JtYXQvbW92LmMgICAgICAgICAgfCAgIDEgKwo+ICA5IGZpbGVzIGNo YW5nZWQsIDQ1MSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgbGliYXZmb3JtYXQvanBlZ3hsX3Byb2JlLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxp YmF2Zm9ybWF0L2pwZWd4bF9wcm9iZS5oCj4gCj4gZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIv TUFJTlRBSU5FUlMKPiBpbmRleCBmYWVhODRlYmYxLi40NjcyMzk3MmRjIDEwMDY0NAo+IC0tLSBh L01BSU5UQUlORVJTCj4gKysrIGIvTUFJTlRBSU5FUlMKPiBAQCAtNDM5LDYgKzQzOSw3IEBAIE11 eGVycy9EZW11eGVyczoKPiAgICBpcG1vdmllLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1pa2UgTWVsYW5zb24KPiAgICBpcmNhbSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhdWwgQiBNYWhvbAo+ICAgIGlzcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RlZmFuIEdlaHJlcgo+ICsgIGpwZWd4bF9wcm9iZS4qICAgICAgICAgICAgICAgICAgICAgICAg TGVvIEl6ZW4KPiAgICBqdmRlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBldGVy IFJvc3MKPiAgICBrdmFnLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFphbmUgdmFu IElwZXJlbgo+ICAgIGxpYm1vZHBsdWcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgQ2zDqW1l bnQgQsWTc2NoCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlIGIvbGliYXZmb3Jt YXQvTWFrZWZpbGUKPiBpbmRleCBkNzE4MmQ2YmQ4Li5iZWVjZGY1YTY2IDEwMDY0NAo+IC0tLSBh L2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4gKysrIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKPiBAQCAt MjcyLDYgKzI3Miw3IEBAIE9CSlMtJChDT05GSUdfSU1BR0VfR0lGX1BJUEVfREVNVVhFUikgICAg ICs9IGltZzJkZWMubyBpbWcyLm8KPiAgT0JKUy0kKENPTkZJR19JTUFHRV9KMktfUElQRV9ERU1V WEVSKSAgICAgKz0gaW1nMmRlYy5vIGltZzIubwo+ICBPQkpTLSQoQ09ORklHX0lNQUdFX0pQRUdf UElQRV9ERU1VWEVSKSAgICArPSBpbWcyZGVjLm8gaW1nMi5vCj4gIE9CSlMtJChDT05GSUdfSU1B R0VfSlBFR0xTX1BJUEVfREVNVVhFUikgICs9IGltZzJkZWMubyBpbWcyLm8KPiArT0JKUy0kKENP TkZJR19JTUFHRV9KUEVHWExfUElQRV9ERU1VWEVSKSAgKz0gaW1nMmRlYy5vIGltZzIubyBqcGVn eGxfcHJvYmUubwo+ICBPQkpTLSQoQ09ORklHX0lNQUdFX1BBTV9QSVBFX0RFTVVYRVIpICAgICAr PSBpbWcyZGVjLm8gaW1nMi5vCj4gIE9CSlMtJChDT05GSUdfSU1BR0VfUEJNX1BJUEVfREVNVVhF UikgICAgICs9IGltZzJkZWMubyBpbWcyLm8KPiAgT0JKUy0kKENPTkZJR19JTUFHRV9QQ1hfUElQ RV9ERU1VWEVSKSAgICAgKz0gaW1nMmRlYy5vIGltZzIubwo+IGRpZmYgLS1naXQgYS9saWJhdmZv cm1hdC9hbGxmb3JtYXRzLmMgYi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPiBpbmRleCA3YzFk MGFjMzhmLi42Mzg3NmM0NjhmIDEwMDY0NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMu Ywo+ICsrKyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+IEBAIC01MTAsNiArNTEwLDcgQEAg ZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2ltYWdlX2dpZl9waXBlX2RlbXV4ZXI7Cj4g IGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9pbWFnZV9qMmtfcGlwZV9kZW11eGVyOwo+ ICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfaW1hZ2VfanBlZ19waXBlX2RlbXV4ZXI7 Cj4gIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9pbWFnZV9qcGVnbHNfcGlwZV9kZW11 eGVyOwo+ICtleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfaW1hZ2VfanBlZ3hsX3BpcGVf ZGVtdXhlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2ltYWdlX3BhbV9waXBl X2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9pbWFnZV9wYm1fcGlw ZV9kZW11eGVyOwo+ICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfaW1hZ2VfcGN4X3Bp cGVfZGVtdXhlcjsKPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMi5jIGIvbGliYXZmb3Jt YXQvaW1nMi5jCj4gaW5kZXggZmUyY2E3YmZmZi4uNTY2ZWY4NzNjYSAxMDA2NDQKPiAtLS0gYS9s aWJhdmZvcm1hdC9pbWcyLmMKPiArKysgYi9saWJhdmZvcm1hdC9pbWcyLmMKPiBAQCAtODgsNiAr ODgsNyBAQCBjb25zdCBJZFN0ck1hcCBmZl9pbWdfdGFnc1tdID0gewo+ICAgICAgeyBBVl9DT0RF Q19JRF9HRU0sICAgICAgICAieGltZyIgICAgIH0sCj4gICAgICB7IEFWX0NPREVDX0lEX0dFTSwg ICAgICAgICJ0aW1nIiAgICAgfSwKPiAgICAgIHsgQVZfQ09ERUNfSURfVkJOLCAgICAgICAgInZi biIgICAgICB9LAo+ICsgICAgeyBBVl9DT0RFQ19JRF9KUEVHWEwsICAgICAianhsIiAgICAgIH0s Cj4gICAgICB7IEFWX0NPREVDX0lEX05PTkUsICAgICAgIE5VTEwgICAgICAgfQo+ICB9Owo+ICAK PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaW1nMmRlYy5jIGIvbGliYXZmb3JtYXQvaW1nMmRl Yy5jCj4gaW5kZXggNTUxYjlkNTA4ZS4uNjI3YmI2NzIxMiAxMDA2NDQKPiAtLS0gYS9saWJhdmZv cm1hdC9pbWcyZGVjLmMKPiArKysgYi9saWJhdmZvcm1hdC9pbWcyZGVjLmMKPiBAQCAtMzYsNiAr MzYsNyBAQAo+ICAjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgo+ICAjaW5jbHVkZSAiaW50ZXJu YWwuaCIKPiAgI2luY2x1ZGUgImltZzIuaCIKPiArI2luY2x1ZGUgImpwZWd4bF9wcm9iZS5oIgo+ ICAjaW5jbHVkZSAibGliYXZjb2RlYy9tanBlZy5oIgo+ICAjaW5jbHVkZSAibGliYXZjb2RlYy92 Ym4uaCIKPiAgI2luY2x1ZGUgImxpYmF2Y29kZWMveHdkLmgiCj4gQEAgLTgzNyw2ICs4MzgsMjIg QEAgc3RhdGljIGludCBqcGVnbHNfcHJvYmUoY29uc3QgQVZQcm9iZURhdGEgKnApCj4gICAgICBy ZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIGludCBqcGVneGxfcHJvYmUoY29uc3QgQVZQcm9i ZURhdGEgKnApCj4gK3sKPiArICAgIGNvbnN0IHVpbnQ4X3QgKmIgPSBwLT5idWY7Cj4gKwo+ICsg ICAgLyogSVNPQk1GRi1iYXNlZCBjb250YWluZXIgKi8KPiArICAgIC8qIDB4NGE1ODRjMjAgPT0g IkpYTCAiICovCj4gKyAgICBpZiAoQVZfUkw2NChiKSA9PSBGRl9KUEVHWExfQ09OVEFJTkVSX1NJ R05BVFVSRV9MRSkKPiArICAgICAgICByZXR1cm4gQVZQUk9CRV9TQ09SRV9FWFRFTlNJT04gKyAx Owo+ICsgICAgLyogUmF3IGNvZGVzdHJlYW1zIGFsbCBzdGFydCB3aXRoIDB4ZmYwYSAqLwo+ICsg ICAgaWYgKEFWX1JMMTYoYikgIT0gRkZfSlBFR1hMX0NPREVTVFJFQU1fU0lHTkFUVVJFX0xFKQo+ ICsgICAgICAgIHJldHVybiAwOwo+ICsgICAgaWYgKGZmX2pwZWd4bF92ZXJpZnlfY29kZXN0cmVh bV9oZWFkZXIocC0+YnVmLCBwLT5idWZfc2l6ZSkgPj0gMCkKClRoaXMgd2lsbCBnaXZlIGEgbGlu a2luZyBmYWlsdXJlIGlmIHRoZSBpbWFnZV9qcGVneGxfcGlwZV9kZW11eGVyIGlzCmRpc2FibGVk LgoKPiArICAgICAgICByZXR1cm4gQVZQUk9CRV9TQ09SRV9NQVggLSAyOwo+ICsgICAgcmV0dXJu IDA7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgcGN4X3Byb2JlKGNvbnN0IEFWUHJvYmVEYXRhICpw KQo+ICB7Cj4gICAgICBjb25zdCB1aW50OF90ICpiID0gcC0+YnVmOwo+IEBAIC0xMTc2LDYgKzEx OTMsNyBAQCBJTUFHRUFVVE9fREVNVVhFUihnaWYsICAgICAgIEdJRikKPiAgSU1BR0VBVVRPX0RF TVVYRVJfRVhUKGoyaywgICBKUEVHMjAwMCwgSjJLKQo+ICBJTUFHRUFVVE9fREVNVVhFUl9FWFQo anBlZywgIE1KUEVHLCBKUEVHKQo+ICBJTUFHRUFVVE9fREVNVVhFUihqcGVnbHMsICAgIEpQRUdM UykKPiArSU1BR0VBVVRPX0RFTVVYRVIoanBlZ3hsLCAgICBKUEVHWEwpCj4gIElNQUdFQVVUT19E RU1VWEVSKHBhbSwgICAgICAgUEFNKQo+ICBJTUFHRUFVVE9fREVNVVhFUihwYm0sICAgICAgIFBC TSkKPiAgSU1BR0VBVVRPX0RFTVVYRVIocGN4LCAgICAgICBQQ1gpCj4gZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L2ltZzJlbmMuYyBiL2xpYmF2Zm9ybWF0L2ltZzJlbmMuYwo+IGluZGV4IGFlMzUx OTYzZDkuLjVlZDk3YmI4MzMgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvaW1nMmVuYy5jCj4g KysrIGIvbGliYXZmb3JtYXQvaW1nMmVuYy5jCj4gQEAgLTI2Myw5ICsyNjMsOSBAQCBzdGF0aWMg Y29uc3QgQVZDbGFzcyBpbWcybXV4X2NsYXNzID0gewo+ICBjb25zdCBBVk91dHB1dEZvcm1hdCBm Zl9pbWFnZTJfbXV4ZXIgPSB7Cj4gICAgICAubmFtZSAgICAgICAgICAgPSAiaW1hZ2UyIiwKPiAg ICAgIC5sb25nX25hbWUgICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJpbWFnZTIgc2VxdWVu Y2UiKSwKPiAtICAgIC5leHRlbnNpb25zICAgICA9ICJibXAsZHB4LGV4cixqbHMsanBlZyxqcGcs bGpwZyxwYW0scGJtLHBjeCxwZm0scGdtLHBnbXl1dixwbmcsIgo+IC0gICAgICAgICAgICAgICAg ICAgICAgInBwbSxzZ2ksdGdhLHRpZix0aWZmLGpwMixqMmMsajJrLHh3ZCxzdW4scmFzLHJzLGlt MSxpbTgsaW0yNCwiCj4gLSAgICAgICAgICAgICAgICAgICAgICAic3VucmFzLHZibix4Ym0seGZh Y2UscGl4LHkiLAo+ICsgICAgLmV4dGVuc2lvbnMgICAgID0gImJtcCxkcHgsZXhyLGpscyxqcGVn LGpwZyxqeGwsbGpwZyxwYW0scGJtLHBjeCxwZm0scGdtLHBnbXl1diwiCj4gKyAgICAgICAgICAg ICAgICAgICAgICAicG5nLHBwbSxzZ2ksdGdhLHRpZix0aWZmLGpwMixqMmMsajJrLHh3ZCxzdW4s cmFzLHJzLGltMSxpbTgsIgo+ICsgICAgICAgICAgICAgICAgICAgICAgImltMjQsc3VucmFzLHZi bix4Ym0seGZhY2UscGl4LHkiLAo+ICAgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKFZpZGVv TXV4RGF0YSksCj4gICAgICAudmlkZW9fY29kZWMgICAgPSBBVl9DT0RFQ19JRF9NSlBFRywKPiAg ICAgIC53cml0ZV9oZWFkZXIgICA9IHdyaXRlX2hlYWRlciwKPiBkaWZmIC0tZ2l0IGEvbGliYXZm b3JtYXQvanBlZ3hsX3Byb2JlLmMgYi9saWJhdmZvcm1hdC9qcGVneGxfcHJvYmUuYwo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4uZDNkMzgyMmZlZQo+IC0tLSAvZGV2 L251bGwKPiArKysgYi9saWJhdmZvcm1hdC9qcGVneGxfcHJvYmUuYwo+IEBAIC0wLDAgKzEsMzkz IEBACj4gKy8qCj4gKyAqIEpwZWcgWEwgaGVhZGVyIHZlcmlmaWNhdGlvbgo+ICsgKiBDb3B5cmln aHQgKGMpIDIwMjIgTGVvIEl6ZW4gPGxlby5pemVuQGdtYWlsLmNvbT4KPiArICoKPiArICogVGhp cyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+ICsgKgo+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4gKyAqIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4g KyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgo+ICsgKgo+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiAr ICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICoK PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKPiArICov Cj4gKwo+ICsjaW5jbHVkZSAianBlZ3hsX3Byb2JlLmgiCj4gKwo+ICsjZGVmaW5lIEJJVFNUUkVB TV9SRUFERVJfTEUKPiArI2luY2x1ZGUgImxpYmF2Y29kZWMvZ2V0X2JpdHMuaCIKPiArCj4gK2Vu dW0gSnBlZ1hMRXh0cmFDaGFubmVsVHlwZSB7Cj4gKyAgICBGRl9KUEVHWExfQ1RfQUxQSEEgPSAw LAo+ICsgICAgRkZfSlBFR1hMX0NUX0RFUFRILAo+ICsgICAgRkZfSlBFR1hMX0NUX1NQT1RfQ09M T1IsCj4gKyAgICBGRl9KUEVHWExfQ1RfU0VMRUNUSU9OX01BU0ssCj4gKyAgICBGRl9KUEVHWExf Q1RfQkxBQ0ssCj4gKyAgICBGRl9KUEVHWExfQ1RfQ0ZBLAo+ICsgICAgRkZfSlBFR1hMX0NUX1RI RVJNQUwsCj4gKyAgICBGRl9KUEVHWExfQ1RfTk9OX09QVElPTkFMID0gMTUsCj4gKyAgICBGRl9K UEVHWExfQ1RfT1BUSU9OQUwKPiArfTsKPiArCj4gK2VudW0gSnBlZ1hMQ29sb3JTcGFjZSB7Cj4g KyAgICBGRl9KUEVHWExfQ1NfUkdCID0gMCwKPiArICAgIEZGX0pQRUdYTF9DU19HUkFZLAo+ICsg ICAgRkZfSlBFR1hMX0NTX1hZQiwKPiArICAgIEZGX0pQRUdYTF9DU19VTktOT1dOCj4gK307Cj4g Kwo+ICtlbnVtIEpwZWdYTFdoaXRlUG9pbnQgewo+ICsgICAgRkZfSlBFR1hMX1dQX0Q2NSA9IDEs Cj4gKyAgICBGRl9KUEVHWExfV1BfQ1VTVE9NLAo+ICsgICAgRkZfSlBFR1hMX1dQX0UgPSAxMCwK PiArICAgIEZGX0pQRUdYTF9XUF9EQ0kgPSAxMQo+ICt9Owo+ICsKPiArZW51bSBKcGVnWExQcmlt YXJpZXMgewo+ICsgICAgRkZfSlBFR1hMX1BSX1NSR0IgPSAxLAo+ICsgICAgRkZfSlBFR1hMX1BS X0NVU1RPTSwKPiArICAgIEZGX0pQRUdYTF9QUl8yMTAwID0gOSwKPiArICAgIEZGX0pQRUdYTF9Q Ul9QMyA9IDExLAo+ICt9Owo+ICsKPiArI2RlZmluZSBqeGxfYml0cyhuKSBnZXRfYml0c19sb25n KGdiLCAobikpCj4gKyNkZWZpbmUganhsX2JpdHNfc2tpcChuKSBza2lwX2JpdHNfbG9uZyhnYiwg KG4pKQo+ICsjZGVmaW5lIGp4bF91MzIoYzAsIGMxLCBjMiwgYzMsIHUwLCB1MSwgdTIsIHUzKSBq cGVneGxfdTMyKGdiLCBcCj4gKyAgICAoY29uc3QgdWludDMyX3RbXSl7YzAsIGMxLCBjMiwgYzN9 LCAoY29uc3QgdWludDMyX3RbXSl7dTAsIHUxLCB1MiwgdTN9KQo+ICsjZGVmaW5lIGp4bF91NjQo KSBqcGVneGxfdTY0KGdiKQo+ICsjZGVmaW5lIGp4bF9lbnVtKCkganhsX3UzMigwLCAxLCAyLCAx OCwgMCwgMCwgNCwgNikKPiArCj4gKy8qIHJlYWQgYSBVMzIoY19pICsgdSh1X2kpKSAqLwo+ICtz dGF0aWMgdWludDMyX3QganBlZ3hsX3UzMihHZXRCaXRDb250ZXh0ICpnYiwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgY29uc3RhbnRzWzRdLCBjb25zdCB1aW50 MzJfdCB1Yml0c1s0XSkKPiArewo+ICsgICAgdWludDMyX3QgcmV0LCBjaG9pY2UgPSBqeGxfYml0 cygyKTsKPiArCj4gKyAgICByZXQgPSBjb25zdGFudHNbY2hvaWNlXTsKPiArICAgIGlmICh1Yml0 c1tjaG9pY2VdKQo+ICsgICAgICAgIHJldCArPSBqeGxfYml0cyh1Yml0c1tjaG9pY2VdKTsKPiAr Cj4gKyAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICsvKiByZWFkIGEgVTY0KCkgKi8KPiArc3Rh dGljIHVpbnQ2NF90IGpwZWd4bF91NjQoR2V0Qml0Q29udGV4dCAqZ2IpCj4gK3sKPiArICAgIHVp bnQ2NF90IHNoaWZ0ID0gMTIsIHJldDsKPiArCj4gKyAgICBzd2l0Y2ggKGp4bF9iaXRzKDIpKSB7 Cj4gKyAgICBjYXNlIDA6Cj4gKyAgICAgICAgcmV0ID0gMDsKPiArICAgICAgICBicmVhazsKPiAr ICAgIGNhc2UgMToKPiArICAgICAgICByZXQgPSAxICsganhsX2JpdHMoNCk7Cj4gKyAgICAgICAg YnJlYWs7Cj4gKyAgICBjYXNlIDI6Cj4gKyAgICAgICAgcmV0ID0gMTcgKyBqeGxfYml0cyg4KTsK PiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgMzoKPiArICAgICAgICByZXQgPSBqeGxfYml0 cygxMik7Cj4gKyAgICAgICAgd2hpbGUgKGp4bF9iaXRzKDEpKSB7Cj4gKyAgICAgICAgICAgIGlm IChzaGlmdCA8IDYwKSB7Cj4gKyAgICAgICAgICAgICAgICByZXQgfD0ganhsX2JpdHMoOCkgPDwg c2hpZnQ7Cj4gKyAgICAgICAgICAgICAgICBzaGlmdCArPSA4Owo+ICsgICAgICAgICAgICB9IGVs c2Ugewo+ICsgICAgICAgICAgICAgICAgcmV0IHw9IGp4bF9iaXRzKDQpIDw8IHNoaWZ0Owo+ICsg ICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICB9Cj4gKyAg ICAgICAgYnJlYWs7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiAr c3RhdGljIHVpbnQzMl90IGpwZWd4bF93aWR0aF9mcm9tX3JhdGlvKHVpbnQzMl90IGhlaWdodCwg aW50IHJhdGlvKQo+ICt7Cj4gKyAgICB1aW50NjRfdCBoZWlnaHQ2NCA9IGhlaWdodDsKPiArICAg IHN3aXRjaCAocmF0aW8pIHsKPiArICAgIGNhc2UgMToKPiArICAgICAgICByZXR1cm4gaGVpZ2h0 Owo+ICsgICAgY2FzZSAyOgo+ICsgICAgICAgIHJldHVybiAodWludDMyX3QpKChoZWlnaHQ2NCAq IDEyKSAvIDEwKTsKPiArICAgIGNhc2UgMzoKPiArICAgICAgICByZXR1cm4gKHVpbnQzMl90KSgo aGVpZ2h0NjQgKiA0KSAvIDMpOwo+ICsgICAgY2FzZSA0Ogo+ICsgICAgICAgIHJldHVybiAodWlu dDMyX3QpKChoZWlnaHQ2NCAqIDMpIC8gMik7Cj4gKyAgICBjYXNlIDU6Cj4gKyAgICAgICAgcmV0 dXJuICh1aW50MzJfdCkoKGhlaWdodDY0ICogMTYpIC8gOSk7Cj4gKyAgICBjYXNlIDY6Cj4gKyAg ICAgICAgcmV0dXJuICh1aW50MzJfdCkoKGhlaWdodDY0ICogNSkgLyA0KTsKPiArICAgIGNhc2Ug NzoKPiArICAgICAgICByZXR1cm4gKHVpbnQzMl90KShoZWlnaHQ2NCAqIDIpOwo+ICsgICAgZGVm YXVsdDoKPiArICAgICAgICBicmVhazsKPiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsgLyog bWFudWFsIHdpZHRoICovCj4gK30KPiArCj4gKy8qKgo+ICsgKiB2YWxpZGF0ZSBhIEpwZWcgWEwg U2l6ZSBIZWFkZXIKPiArICogQHJldHVybiA+PSAwIHVwb24gdmFsaWQgc2l6ZSwgPCAwIHVwb24g aW52YWxpZCBzaXplIGZvdW5kCj4gKyAqLwo+ICtzdGF0aWMgaW50IGpwZWd4bF9yZWFkX3NpemVf aGVhZGVyKEdldEJpdENvbnRleHQgKmdiKQo+ICt7Cj4gKyAgICB1aW50MzJfdCB3aWR0aCwgaGVp Z2h0Owo+ICsKPiArICAgIGlmIChqeGxfYml0cygxKSkgewo+ICsgICAgICAgIC8qIHNtYWxsIHNp emUgaGVhZGVyICovCj4gKyAgICAgICAgaGVpZ2h0ID0gKGp4bF9iaXRzKDUpICsgMSkgPDwgMzsK PiArICAgICAgICB3aWR0aCA9IGpwZWd4bF93aWR0aF9mcm9tX3JhdGlvKGhlaWdodCwganhsX2Jp dHMoMykpOwo+ICsgICAgICAgIGlmICghd2lkdGgpCj4gKyAgICAgICAgICAgIHdpZHRoID0gKGp4 bF9iaXRzKDUpICsgMSkgPDwgMzsKPiArICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgLyogbGFyZ2Ug c2l6ZSBoZWFkZXIgKi8KPiArICAgICAgICBoZWlnaHQgPSAxICsganhsX3UzMigwLCAwLCAwLCAw LCA5LCAxMywgMTgsIDMwKTsKPiArICAgICAgICB3aWR0aCA9IGpwZWd4bF93aWR0aF9mcm9tX3Jh dGlvKGhlaWdodCwganhsX2JpdHMoMykpOwo+ICsgICAgICAgIGlmICghd2lkdGgpCj4gKyAgICAg ICAgICAgIHdpZHRoID0gMSArIGp4bF91MzIoMCwgMCwgMCwgMCwgOSwgMTMsIDE4LCAzMCk7Cj4g KyAgICB9Cj4gKyAgICBpZiAod2lkdGggPiAoMSA8PCAxOCkgfHwgaGVpZ2h0ID4gKDEgPDwgMTgp Cj4gKyAgICAgICAgfHwgKHdpZHRoID4+IDQpICogKGhlaWdodCA+PiA0KSA+ICgxIDw8IDIwKSkK PiArICAgICAgICByZXR1cm4gLTE7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gKy8q Kgo+ICsgKiB2YWxpZGF0ZSBhIEpwZWcgWEwgUHJldmlldyBIZWFkZXIKPiArICogQHJldHVybiA+ PSAwIHVwb24gdmFsaWQgc2l6ZSwgPCAwIHVwb24gaW52YWxpZCBzaXplIGZvdW5kCj4gKyAqLwo+ ICtzdGF0aWMgaW50IGpwZWd4bF9yZWFkX3ByZXZpZXdfaGVhZGVyKEdldEJpdENvbnRleHQgKmdi KQo+ICt7Cj4gKyAgICB1aW50MzJfdCB3aWR0aCwgaGVpZ2h0Owo+ICsKPiArICAgIGlmIChqeGxf Yml0cygxKSkgewo+ICsgICAgICAgIC8qIGNvZGVkIGhlaWdodCBhbmQgd2lkdGggZGl2aWRlZCBi eSBlaWdodCAqLwo+ICsgICAgICAgIGhlaWdodCA9IGp4bF91MzIoMTYsIDMyLCAxLCAzMywgMCwg MCwgNSwgOSkgPDwgMzsKPiArICAgICAgICB3aWR0aCA9IGpwZWd4bF93aWR0aF9mcm9tX3JhdGlv KGhlaWdodCwganhsX2JpdHMoMykpOwo+ICsgICAgICAgIGlmICghd2lkdGgpCj4gKyAgICAgICAg ICAgIHdpZHRoID0ganhsX3UzMigxNiwgMzIsIDEsIDMzLCAwLCAwLCA1LCA5KSA8PCAzOwo+ICsg ICAgfSBlbHNlIHsKPiArICAgICAgICAvKiBmdWxsIGhlaWdodCBhbmQgd2lkdGggY29kZWQgKi8K PiArICAgICAgICBoZWlnaHQgPSBqeGxfdTMyKDEsIDY1LCAzMjEsIDEzNDUsIDYsIDgsIDEwLCAx Mik7Cj4gKyAgICAgICAgd2lkdGggPSBqcGVneGxfd2lkdGhfZnJvbV9yYXRpbyhoZWlnaHQsIGp4 bF9iaXRzKDMpKTsKPiArICAgICAgICBpZiAoIXdpZHRoKQo+ICsgICAgICAgICAgICB3aWR0aCA9 IGp4bF91MzIoMSwgNjUsIDMyMSwgMTM0NSwgNiwgOCwgMTAsIDEyKTsKPiArICAgIH0KPiArICAg IGlmICh3aWR0aCA+IDQwOTYgfHwgaGVpZ2h0ID4gNDA5NikKPiArICAgICAgICByZXR1cm4gLTE7 Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBza2lwIGEgSnBlZyBY TCBCaXREZXB0aCBIZWFkZXIuIFRoZXNlIGNhbm5vdCBiZSBpbnZhbGlkLgo+ICsgKi8KPiArc3Rh dGljIHZvaWQganBlZ3hsX3NraXBfYml0X2RlcHRoKEdldEJpdENvbnRleHQgKmdiKQo+ICt7Cj4g KyAgICBpZiAoanhsX2JpdHMoMSkpIHsKPiArICAgICAgICAvKiBmbG9hdCBzYW1wbGVzICovCj4g KyAgICAgICAganhsX3UzMigzMiwgMTYsIDI0LCAxLCAwLCAwLCAwLCA2KTsgLyogbWFudGlzc2Eg Ki8KPiArICAgICAgICBqeGxfYml0c19za2lwKDQpOyAvKiBleHBvbmVudCAqLwo+ICsgICAgfSBl bHNlIHsKPiArICAgICAgICAvKiBpbnRlZ2VyIHNhbXBsZXMgKi8KPiArICAgICAgICBqeGxfdTMy KDgsIDEwLCAxMiwgMSwgMCwgMCwgMCwgNik7Cj4gKyAgICB9Cj4gK30KPiArCj4gKy8qKgo+ICsg KiB2YWxpZGF0ZSBhIEpwZWcgWEwgUHJldmlldyBIZWFkZXIKPiArICogQHJldHVybiA+PSAwIHVw b24gdmFsaWQsIDwgMCB1cG9uIGludmFsaWQKPiArICovCj4gK3N0YXRpYyBpbnQganBlZ3hsX3Jl YWRfZXh0cmFfY2hhbm5lbF9pbmZvKEdldEJpdENvbnRleHQgKmdiKQo+ICt7Cj4gKyAgICBpbnQg YWxsX2RlZmF1bHQgPSBqeGxfYml0cygxKTsKPiArICAgIHVpbnQzMl90IHR5cGUsIG5hbWVfbGVu ID0gMDsKPiArCj4gKyAgICBpZiAoIWFsbF9kZWZhdWx0KSB7Cj4gKyAgICAgICAgdHlwZSA9IGp4 bF9lbnVtKCk7Cj4gKyAgICAgICAgaWYgKHR5cGUgPiA2MykKPiArICAgICAgICAgICAgcmV0dXJu IC0xOyAvKiBlbnVtIHR5cGVzIGNhbm5vdCBiZSA2NCsgKi8KPiArICAgICAgICBpZiAodHlwZSA9 PSBGRl9KUEVHWExfQ1RfQkxBQ0spCj4gKyAgICAgICAgICAgIHJldHVybiAtMTsKPiArICAgICAg ICBqcGVneGxfc2tpcF9iaXRfZGVwdGgoZ2IpOwo+ICsgICAgICAgIGp4bF91MzIoMCwgMywgNCwg MSwgMCwgMCwgMCwgMyk7IC8qIGRpbS1zaGlmdCAqLwo+ICsgICAgICAgIC8qIG1heCBvZiBuYW1l X2xlbiBpcyAxMDcxID0gNDggKyAyXjEwIC0gMSAqLwo+ICsgICAgICAgIG5hbWVfbGVuID0ganhs X3UzMigwLCAwLCAxNiwgNDgsIDAsIDQsIDUsIDEwKTsKPiArICAgIH0gZWxzZSB7Cj4gKyAgICAg ICAgdHlwZSA9IEZGX0pQRUdYTF9DVF9BTFBIQTsKPiArICAgIH0KPiArCj4gKyAgICAvKiBza2lw IG92ZXIgdGhlIG5hbWUgKi8KPiArICAgIGp4bF9iaXRzX3NraXAoOCAqIG5hbWVfbGVuKTsKPiAr Cj4gKyAgICBpZiAoIWFsbF9kZWZhdWx0ICYmIHR5cGUgPT0gRkZfSlBFR1hMX0NUX0FMUEhBKQo+ ICsgICAgICAgIGp4bF9iaXRzX3NraXAoMSk7Cj4gKwo+ICsgICAgaWYgKHR5cGUgPT0gRkZfSlBF R1hMX0NUX1NQT1RfQ09MT1IpCj4gKyAgICAgICAganhsX2JpdHNfc2tpcCgxNiAqIDQpOwo+ICsK PiArICAgIGlmICh0eXBlID09IEZGX0pQRUdYTF9DVF9DRkEpCj4gKyAgICAgICAganhsX3UzMigx LCAwLCAzLCAxOSwgMCwgMiwgNCwgOCk7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4g Ky8qIHZlcmlmeSB0aGF0IGEgY29kZXN0cmVhbSBoZWFkZXIgaXMgdmFsaWQgKi8KPiAraW50IGZm X2pwZWd4bF92ZXJpZnlfY29kZXN0cmVhbV9oZWFkZXIoY29uc3QgdWludDhfdCAqYnVmLCBpbnQg YnVmbGVuKQo+ICt7Cj4gKyAgICBHZXRCaXRDb250ZXh0IGdiaSwgKmdiID0gJmdiaTsKPiArICAg IGludCBhbGxfZGVmYXVsdCwgZXh0cmFfZmllbGRzID0gMDsKPiArICAgIGludCB4eWJfZW5jb2Rl ZCA9IDEsIGhhdmVfaWNjX3Byb2ZpbGUgPSAwOwo+ICsgICAgdWludDMyX3QgbnVtX2V4dHJhX2No YW5uZWxzOwo+ICsgICAgdWludDY0X3QgZXh0ZW5zaW9uczsKPiArCj4gKyAgICBpbml0X2dldF9i aXRzOChnYiwgYnVmLCBidWZsZW4pOwo+ICsKPiArICAgIGlmIChqeGxfYml0cygxNikgIT0gRkZf SlBFR1hMX0NPREVTVFJFQU1fU0lHTkFUVVJFX0xFKQo+ICsgICAgICAgIHJldHVybiAtMTsKPiAr Cj4gKyAgICBpZiAoanBlZ3hsX3JlYWRfc2l6ZV9oZWFkZXIoZ2IpIDwgMCkKPiArICAgICAgICBy ZXR1cm4gLTE7Cj4gKwo+ICsgICAgYWxsX2RlZmF1bHQgPSBqeGxfYml0cygxKTsKPiArICAgIGlm ICghYWxsX2RlZmF1bHQpCj4gKyAgICAgICAgZXh0cmFfZmllbGRzID0ganhsX2JpdHMoMSk7Cj4g Kwo+ICsgICAgaWYgKGV4dHJhX2ZpZWxkcykgewo+ICsgICAgICAgIGp4bF9iaXRzX3NraXAoMyk7 IC8qIG9yaWVudGF0aW9uICovCj4gKwo+ICsgICAgICAgIC8qCj4gKyAgICAgICAgICogaW50cmlu c3RpYyBzaXplCj4gKyAgICAgICAgICogYW55IHNpemUgaGVhZGVyIGhlcmUgaXMgdmFsaWQsIGJ1 dCBhcyBpdAo+ICsgICAgICAgICAqIGlzIHZhcmlhYmxlIGxlbmd0aCB3ZSBoYXZlIHRvIHJlYWQg aXQKPiArICAgICAgICAgKi8KPiArICAgICAgICBpZiAoanhsX2JpdHMoMSkpCj4gKyAgICAgICAg ICAgIGpwZWd4bF9yZWFkX3NpemVfaGVhZGVyKGdiKTsKPiArCj4gKyAgICAgICAgLyogcHJldmll dyBoZWFkZXIgKi8KPiArICAgICAgICBpZiAoanhsX2JpdHMoMSkpIHsKPiArICAgICAgICAgICAg aWYgKGpwZWd4bF9yZWFkX3ByZXZpZXdfaGVhZGVyKGdiKSA8IDApCj4gKyAgICAgICAgICAgICAg ICByZXR1cm4gLTE7Cj4gKyAgICAgICAgfQo+ICsKPiArICAgICAgICAvKiBhbmltYXRpb24gaGVh ZGVyICovCj4gKyAgICAgICAgaWYgKGp4bF9iaXRzKDEpKSB7Cj4gKyAgICAgICAgICAgIGp4bF91 MzIoMTAwLCAxMDAwLCAxLCAxLCAwLCAwLCAxMCwgMzApOwo+ICsgICAgICAgICAgICBqeGxfdTMy KDEsIDEwMDEsIDEsIDEsIDAsIDAsIDgsIDEwKTsKPiArICAgICAgICAgICAganhsX3UzMigwLCAw LCAwLCAwLCAwLCAzLCAxNiwgMzIpOwo+ICsgICAgICAgICAgICBqeGxfYml0c19za2lwKDEpOwo+ ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gKyAgICBpZiAoIWFsbF9kZWZhdWx0KSB7Cj4gKyAg ICAgICAganBlZ3hsX3NraXBfYml0X2RlcHRoKGdiKTsKPiArCj4gKyAgICAgICAgLyogbW9kdWxh cl8xNmJpdF9idWZmZXJzIG11c3QgZXF1YWwgMSAqLwo+ICsgICAgICAgIGlmICghanhsX2JpdHMo MSkpCj4gKyAgICAgICAgICAgIHJldHVybiAtMTsKPiArCj4gKyAgICAgICAgbnVtX2V4dHJhX2No YW5uZWxzID0ganhsX3UzMigwLCAxLCAyLCAxLCAwLCAwLCA0LCAxMik7Cj4gKyAgICAgICAgaWYg KG51bV9leHRyYV9jaGFubmVscyA+IDQpCj4gKyAgICAgICAgICAgIHJldHVybiAtMTsKPiArICAg ICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbnVtX2V4dHJhX2NoYW5uZWxzOyBpKyspIHsK PiArICAgICAgICAgICAgaWYgKGpwZWd4bF9yZWFkX2V4dHJhX2NoYW5uZWxfaW5mbyhnYikgPCAw KQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAg ICAgeHliX2VuY29kZWQgPSBqeGxfYml0cygxKTsKPiArCj4gKyAgICAgICAgLyogY29sb3IgZW5j b2RpbmcgYnVuZGxlICovCj4gKyAgICAgICAgaWYgKCFqeGxfYml0cygxKSkgewo+ICsgICAgICAg ICAgICB1aW50MzJfdCBjb2xvcl9zcGFjZTsKPiArICAgICAgICAgICAgaGF2ZV9pY2NfcHJvZmls ZSA9IGp4bF9iaXRzKDEpOwo+ICsgICAgICAgICAgICBjb2xvcl9zcGFjZSA9IGp4bF9lbnVtKCk7 Cj4gKyAgICAgICAgICAgIGlmIChjb2xvcl9zcGFjZSA+IDYzKQo+ICsgICAgICAgICAgICAgICAg cmV0dXJuIC0xOwo+ICsKPiArICAgICAgICAgICAgaWYgKCFoYXZlX2ljY19wcm9maWxlKSB7Cj4g KyAgICAgICAgICAgICAgICBpZiAoY29sb3Jfc3BhY2UgIT0gRkZfSlBFR1hMX0NTX1hZQikgewo+ ICsgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHdoaXRlX3BvaW50ID0ganhsX2VudW0oKTsK PiArICAgICAgICAgICAgICAgICAgICBpZiAod2hpdGVfcG9pbnQgPiA2MykKPiArICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+ICsgICAgICAgICAgICAgICAgICAgIGlmICh3aGl0 ZV9wb2ludCA9PSBGRl9KUEVHWExfV1BfQ1VTVE9NKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIC8qIHV4IGFuZCB1eSB2YWx1ZXMgKi8KPiArICAgICAgICAgICAgICAgICAgICAgICAganhs X3UzMigwLCA1MjQyODgsIDEwNDg1NzYsIDIwOTcxNTIsIDE5LCAxOSwgMjAsIDIxKTsKPiArICAg ICAgICAgICAgICAgICAgICAgICAganhsX3UzMigwLCA1MjQyODgsIDEwNDg1NzYsIDIwOTcxNTIs IDE5LCAxOSwgMjAsIDIxKTsKPiArICAgICAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAg ICAgICAgICAgaWYgKGNvbG9yX3NwYWNlICE9IEZGX0pQRUdYTF9DU19HUkFZKSB7Cj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIC8qIHByaW1hcmllcyAqLwo+ICsgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBwcmltYXJpZXMgPSBqeGxfZW51bSgpOwo+ICsgICAgICAgICAgICAgICAg ICAgICAgICBpZiAocHJpbWFyaWVzID4gNjMpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gLTE7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmltYXJpZXMgPT0g RkZfSlBFR1hMX1BSX0NVU1RPTSkgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog dXgvdXkgdmFsdWVzIGZvciByLGcsYiAqLwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCA2OyBpKyspCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAganhsX3UzMigwLCA1MjQyODgsIDEwNDg1NzYsIDIwOTcxNTIsIDE5LCAxOSwgMjAsIDIx KTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgICAgIH0K PiArICAgICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgICAvKiB0cmFuc2ZlciBj aGFyYWN0ZXJpc3RpY3MgKi8KPiArICAgICAgICAgICAgICAgIGlmIChqeGxfYml0cygxKSkgewo+ ICsgICAgICAgICAgICAgICAgICAgIC8qIGdhbW1hICovCj4gKyAgICAgICAgICAgICAgICAgICAg anhsX2JpdHNfc2tpcCgyNCk7Cj4gKyAgICAgICAgICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAg ICAgICAgICAgICAgIC8qIHRyYW5zZmVyIGZ1bmN0aW9uICovCj4gKyAgICAgICAgICAgICAgICAg ICAgaWYgKGp4bF9lbnVtKCkgPiA2MykKPiArICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC0xOwo+ICsgICAgICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgICAgIC8qIHJlbmRl cmluZyBpbnRlbnQgKi8KPiArICAgICAgICAgICAgICAgIGlmIChqeGxfZW51bSgpID4gNjMpCj4g KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+ICsgICAgICAgICAgICB9Cj4gKyAgICAg ICAgfQo+ICsKPiArICAgICAgICAvKiB0b25lIG1hcHBpbmcgYnVuZGxlICovCj4gKyAgICAgICAg aWYgKGV4dHJhX2ZpZWxkcyAmJiAhanhsX2JpdHMoMSkpCj4gKyAgICAgICAgICAgIGp4bF9iaXRz X3NraXAoMTYgKyAxNiArIDEgKyAxNik7Cj4gKwo+ICsgICAgICAgIGV4dGVuc2lvbnMgPSBqeGxf dTY0KCk7Cj4gKyAgICAgICAgaWYgKGV4dGVuc2lvbnMpIHsKPiArICAgICAgICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7Cj4gKyAgICAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9u cyAmIChVSU5UNjRfQygxKSA8PCBpKSkKPiArICAgICAgICAgICAgICAgICAgICBqeGxfdTY0KCk7 Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgLyogZGVm YXVsdCB0cmFuc2Zvcm0gKi8KPiArICAgIGlmICghanhsX2JpdHMoMSkpIHsKPiArICAgICAgICAv KiBvcHNpbiBpbnZlcnNlIG1hdHJpeCAqLwo+ICsgICAgICAgIGlmICh4eWJfZW5jb2RlZCAmJiAh anhsX2JpdHMoMSkpCj4gKyAgICAgICAgICAgIGp4bF9iaXRzX3NraXAoMTYgKiAxNik7Cj4gKyAg ICAgICAgLyogY3dfbWFzayBhbmQgZGVmYXVsdCB3ZWlnaHRzICovCj4gKyAgICAgICAgaWYgKGp4 bF9iaXRzKDEpKQo+ICsgICAgICAgICAgICBqeGxfYml0c19za2lwKDE2ICogMTUpOwo+ICsgICAg ICAgIGlmIChqeGxfYml0cygxKSkKPiArICAgICAgICAgICAganhsX2JpdHNfc2tpcCgxNiAqIDU1 KTsKPiArICAgICAgICBpZiAoanhsX2JpdHMoMSkpCj4gKyAgICAgICAgICAgIGp4bF9iaXRzX3Nr aXAoMTYgKiAyMTApOwo+ICsgICAgfQo+ICsKPiArICAgIGlmICghaGF2ZV9pY2NfcHJvZmlsZSkg ewo+ICsgICAgICAgIGludCBiaXRzX3JlbWFpbmluZyA9IDcgLSAoZ2ItPmluZGV4IC0gMSkgJSA4 OwoKVHJ5IHRvIGF2b2lkIGFjY2Vzc2luZyBHZXRCaXRDb250ZXh0IG1lbWJlcnMgZGlyZWN0bHk7 IGhlcmU6IFVzZQpnZXRfYml0c19jb3VudCgpLgoKPiArICAgICAgICBpZiAoYml0c19yZW1haW5p bmcgJiYganhsX2JpdHMoYml0c19yZW1haW5pbmcpKQo+ICsgICAgICAgICAgICByZXR1cm4gLTE7 Cj4gKyAgICB9Cj4gKwo+ICsgICAgaWYgKGdiLT5pbmRleCA+IGdiLT5zaXplX2luX2JpdHMpCgpn ZXRfYml0c19sZWZ0KGdiKSA8IDAKCj4gKyAgICAgICAgcmV0dXJuIC0xOwo+ICsKPiArICAgIHJl dHVybiAwOwo+ICt9CgpGb3IgdGhlIHJlY29yZDogSSdtIG5vdCByZWFsbHkgb2sgd2l0aCBkdXBs aWNhdGluZyB0aGlzIGNvZGUgaW4gbGF2ZiBhbmQKbGF2Yy4KCj4gZGlmZiAtLWdpdCBhL2xpYmF2 Zm9ybWF0L2pwZWd4bF9wcm9iZS5oIGIvbGliYXZmb3JtYXQvanBlZ3hsX3Byb2JlLmgKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAuLjI5NjBlODFlMTEKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvbGliYXZmb3JtYXQvanBlZ3hsX3Byb2JlLmgKPiBAQCAtMCwwICsxLDMy IEBACj4gKy8qCj4gKyAqIEpwZWcgWEwgaGVhZGVyIHZlcmlmaWNhdGlvbgo+ICsgKiBDb3B5cmln aHQgKGMpIDIwMjIgTGVvIEl6ZW4gPGxlby5pemVuQGdtYWlsLmNvbT4KPiArICoKPiArICogVGhp cyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+ICsgKgo+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4gKyAqIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4g KyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgo+ICsgKgo+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiAr ICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICoK PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKPiArICov Cj4gKwo+ICsjaWZuZGVmIEFWRk9STUFUX0pQRUdYTF9QUk9CRV9ICj4gKyNkZWZpbmUgQVZGT1JN QVRfSlBFR1hMX1BST0JFX0gKPiArCj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4KPiArCj4gKyNkZWZp bmUgRkZfSlBFR1hMX0NPREVTVFJFQU1fU0lHTkFUVVJFX0xFIDB4MGFmZgo+ICsjZGVmaW5lIEZG X0pQRUdYTF9DT05UQUlORVJfU0lHTkFUVVJFX0xFIDB4MjA0YzU4NGEwYzAwMDAwMAo+ICsKPiAr aW50IGZmX2pwZWd4bF92ZXJpZnlfY29kZXN0cmVhbV9oZWFkZXIoY29uc3QgdWludDhfdCAqYnVm LCBpbnQgYnVmbGVuKTsKPiArCj4gKyNlbmRpZiAvKiBBVkZPUk1BVF9KUEVHWExfUFJPQkVfSCAq Lwo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9tb3YuYyBiL2xpYmF2Zm9ybWF0L21vdi5jCj4g aW5kZXggNmM4NDdkZTE2NC4uYzRiODg3M2IwYSAxMDA2NDQKPiAtLS0gYS9saWJhdmZvcm1hdC9t b3YuYwo+ICsrKyBiL2xpYmF2Zm9ybWF0L21vdi5jCj4gQEAgLTc2OTcsNiArNzY5Nyw3IEBAIHN0 YXRpYyBpbnQgbW92X3Byb2JlKGNvbnN0IEFWUHJvYmVEYXRhICpwKQo+ICAgICAgICAgICAgICBp ZiAodGFnID09IE1LVEFHKCdmJywndCcsJ3knLCdwJykgJiYKPiAgICAgICAgICAgICAgICAgICAg ICAgICAoICAgQVZfUkwzMihwLT5idWYgKyBvZmZzZXQgKyA4KSA9PSBNS1RBRygnaicsJ3AnLCcy JywnICcpCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IEFWX1JMMzIocC0+YnVmICsgb2Zm c2V0ICsgOCkgPT0gTUtUQUcoJ2onLCdwJywneCcsJyAnKQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICB8fCBBVl9STDMyKHAtPmJ1ZiArIG9mZnNldCArIDgpID09IE1LVEFHKCdqJywneCcsJ2wn LCcgJykKPiAgICAgICAgICAgICAgICAgICAgICApKSB7Cj4gICAgICAgICAgICAgICAgICBzY29y ZSA9IEZGTUFYKHNjb3JlLCA1KTsKPiAgICAgICAgICAgICAgfSBlbHNlIHsKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5n IGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4v bGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwg b3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVu c3Vic2NyaWJlIi4K