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 9A65240335 for ; Fri, 21 Jan 2022 14:42:50 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AC03968B2C9; Fri, 21 Jan 2022 16:42:47 +0200 (EET) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067044.outbound.protection.outlook.com [40.92.67.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4AB8D68B160 for ; Fri, 21 Jan 2022 16:42:40 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YX8ud3tewPTdnM/8zzlBbMOYDm3IyF0uh7njV3ngQxppA6xX0/bbO5uUZOnEXRd344hFtPCjcW8DEZf5TspYrVRP5LkTzi2rPcRCUQdfqFREKZZfB5f/wAUNohU+QfljEY1nU2xDcEbv7AEC8kx7CzvPxdDa9A6ke045Inm2UOJUgeB4RtIFKVlyFKtA5nznd5NcS+vHlnHWL6fDnhM1SIcl8M1Go6nNngUAh47qpS7bThlf59GxRO49KaP0lNT7N03h9Xti3BJ3WzSW856dCFFEgpL+Kf8vzucTSwx9wqUhqOb/GsFPvbtnzc0UbOdJ6H7IR/dKUkKKPKGwPDeZCw== 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=rAyYcdOIsIVNpyYIDP90vMNL1fYQixXDKWu9MOejgDg=; b=JTobtbypAybZ6EG0NbZcW+44+5aac845mcYW1GRONIWgJS9r2b7esH2iX63udiHIoOf0yoUL30W6nMwe3o9IXkY22hW8dMOWTYA2GeVCfbyQTCqBbUq9N4tR/XVCjgHb5RBG1urt0wMaIU3vfFPL2wG+iHheG4x5a7wiGuadFA/gXXRqGzT5FYtYoLk8zVy/d4s8OY3b0EDza4j6hAUDgTW58lhVRTZJxxXNq8d8EMZNRFyTK/bOeE+hZIW+E95p1ldCvO15H2wehhyMnqkZs8z/Auz7Ym2wwxfhpO5re+P0jJsbM7Y4V/xHx+P2xWw5mLG+9pSGMj5fBN4QyGB44Q== 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=rAyYcdOIsIVNpyYIDP90vMNL1fYQixXDKWu9MOejgDg=; b=rEMJzHCpqbWQkKpcK4O60eaZ/tF+Lqz86aV34z9bcfsDoVa0Sgqsa5Jxr3hKl9617KjoxrnIntvlCJodtkacqq7tYlnktKqbqk3PdgJZqIK6CNhx8ItbNmwiyhMJykcSbE5gtEPn/4ZaT4jDN4DDVzqtxe3K2F2t8e2XHdeCHKvkEwXhZUVwEP3uUTdwwJwDtClMuSafFdpQRBv16kfuhPunOsUdZi0iYdGVBFwB0kF8piEP0PXNU30jVD+bJhozXJbGTfZNxO0jQs7mjS1/B/+pZWaIHzRevfUr0djACQfMQ/O9uBEmP38WiPXBiXESE5anCdVIOtkh5Q7olBBn+g== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by VI1PR03MB2880.eurprd03.prod.outlook.com (2603:10a6:802:2d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.8; Fri, 21 Jan 2022 14:42:37 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4909.008; Fri, 21 Jan 2022 14:42:37 +0000 Message-ID: Date: Fri, 21 Jan 2022 15:42:36 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220119203837.9047-1-martin@martin.st> <20220119203837.9047-2-martin@martin.st> <4cf21020-5cdf-6532-f6fb-3995ba1f3d78@martin.st> From: Andreas Rheinhardt In-Reply-To: <4cf21020-5cdf-6532-f6fb-3995ba1f3d78@martin.st> X-TMN: [7/ZWzxPAn37rqY/Ju5Ccjs0B7+1I+FyI] X-ClientProxiedBy: AM6PR05CA0001.eurprd05.prod.outlook.com (2603:10a6:20b:2e::14) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <6aae6f39-8f11-6c1f-aff7-4fa0b248451b@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5a53211e-6d09-43db-6b29-08d9dcec44d8 X-MS-TrafficTypeDiagnostic: VI1PR03MB2880:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: znG/zx1/o+6OwmpqB8wuBIh4gClBGOnbTc3rtmsQX3IOGvg4R/KV7WOBCt2SQLjgmG2mctzRLT5VjpfzkYfLgnIJ1w+76U/dQ6nUX5sST8ZEvVShfGxNx1vltdZ7rK+Qvsu6SPcxnYIKQEb3WkQmcQvs4gPXQLMObI6oTGZ/8X0vG8UeOrDuRhwkKUL0hqOzD1O8J9pH5FwbxtkIoDk6rzQDg5YMoGaIk2f1RI4GlScQ4+7u9t0B3Wn5rRlN4klrhuRhVmxfUmrlWgOP0J127To6dPz5Xk1X9rTkPP3rWKAKLXlPejDuVICc0+HyUHEjnijzO6grrjlstB/W9bZ7AJCB0Mq4bWinfmccMYBqGL5PDE38fX5+WI1GZgjn5mN+P8ncMhoq4x6pFSIeMxwvE2jUuxGFAggOZz57uS2gz64L1BVi6g1LYOAv4A9+44X+8jEkunUMjsPY18RK86cOowHywEDpQk5cpJfoXtC4Ehut6Rl9MNi61p7RF3Kd5+EWFdKDhGg5UguSIor6GlSIw+yhpzRbVLcpTlHiXHoN4S9o9mN8DWcDQZ3G/dlzUwp15YKxKOvLb9xYxrccAjTZyQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RUU4dUlDVTIzd284VW5HMGVLbnpUMmtXVXZlOGZnWVplOEx2d01BNlFENUtl?= =?utf-8?B?NXJscEtJSVhCdmxVa0d0eTRJTGkydHhpcXBHVHNoTXlLblFQYlFxMWRaV0ts?= =?utf-8?B?UjAweUZMWVZIUVExRDVzSlZDNjUra2hndHFsTVdpRUs5bkM0WDhMRUNTSVcx?= =?utf-8?B?MzhRRkVrQ3hFM0ZoakMyeGxrbWxmdjk0R3BRT0R6SS8rYy9CVHVBNnJ3SE9R?= =?utf-8?B?ZDd0TEFIN3U2TW9scDI0V1pTRyszc29jRnRtT2tnTHI0NERmZWVWWHVGNHhY?= =?utf-8?B?dm5BUFgrVlhEdStMVk5zdVVrWmo4NUtmeWUxNWdnSXhYMWpRRkIwQUtFQ3Nw?= =?utf-8?B?dUVoOUNlQ1hzNy9pcUMrVXU3RllHL0JxcUxaWHdhK1BwQTZIWURXTytxZlBQ?= =?utf-8?B?UXFENXNrZDRWeExrcEsyNkNXTDhTbjNjVVdnZXc4a0lCeFA5NmNxdWJNbENU?= =?utf-8?B?UktjWndiWVpaQm9TbGpzYllBMk9uLzUrdyt6aEJITlBDdC9RZ3BtME1USHly?= =?utf-8?B?aUlOcnJ3WFVkNjFTV3hwMy96b0pyRFIzR0JpNDR2eXFOZTU5T0NYTmx2MTUr?= =?utf-8?B?c0NVOGJmVkV5Q1V5VVVNS2tHSEFLWDRqYWx5RmFDS0wwNG9Uam1uNERuTXdM?= =?utf-8?B?WWFRV2JocStpWFAvaVFlUVc0empFenVyYXdiZWdzVjZYZUUybysxcVBCZmlq?= =?utf-8?B?K21BY2NSVENseVJVQUNUdjBLMys1UndTTUQySlJpMm9Uelg5UjF6TVdMZHVP?= =?utf-8?B?N1dacElGOERkOWR4cnhmTnVTSWFackdKZWNKdXRWd0NSZk12SGI0SWd0RE9l?= =?utf-8?B?VkZzc3hJZTViSE5sU3FYampZeTBvNEdqNzhTUU5Ic0thcUx3RW9zWEtIRkJx?= =?utf-8?B?eTc2aG8xMDQ3MmtJbHF0VUowM3U3WW9TUEFUbE5DQmNzOThSb3hOOFh0SmxM?= =?utf-8?B?UWgrSk0vV0tjNFFjVXFtNS9HV1BLZDArOVBKMHEzM2RmZkxsYS9ucWtzTkhE?= =?utf-8?B?cVNaQlhSUVNYank2TmZqVXN1dnhTS0VjT1UxTnFiU21DQUhUR3p0N3hlS1BM?= =?utf-8?B?UU1QUGdxSXczTHpqek9RaGhzZldWNU5NUWIyQzhEVjVFYS9jdlFUNjNsQng4?= =?utf-8?B?SGhMN0k0RGJnRStRL01TemFVeEpzZkhOL3BjMHhIU2ZmVWZSclZMenllT0ZL?= =?utf-8?B?cFBjUkZNL3I4dS91VmNjS0ZpdTRoZ2NhMTFTNFJQaWdsNzZPZFZEYmIyWm9v?= =?utf-8?B?TVNmdkNQSWhtNWhzUnVvWlVHaWVBY20wYS9hWStjOGJUZ3RYdz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a53211e-6d09-43db-6b29-08d9dcec44d8 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2022 14:42:37.7561 (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: VI1PR03MB2880 Subject: Re: [FFmpeg-devel] [PATCH 2/2] libfdk-aacdec: Flush delayed samples at the end 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: TWFydGluIFN0b3JzasO2Ogo+IE9uIEZyaSwgMjEgSmFuIDIwMjIsIEFuZHJlYXMgUmhlaW5oYXJk dCB3cm90ZToKPiAKPj4gTWFydGluIFN0b3JzasO2Ogo+Pj4gQWxzbyB0cmltIG9mZiBkZWxheSBz YW1wbGVzIGF0IHRoZSBzdGFydCBpbnN0ZWFkIG9mIGFkanVzdGluZyBwdHMKPj4+IHRvIGNvbXBl bnNhdGUgZm9yIHRoZW07IHRoaXMgYXZvaWRzIHVud2FudGVkIG9mZnNldHMgaWYgd29ya2luZwo+ Pj4gd2l0aCByYXcgc2FtcGxlcyB3aXRob3V0IGNvbnNpZGVyaW5nIHRoZWlyIHB0cy4KPj4+IC0t LQo+Pj4gwqBsaWJhdmNvZGVjL2xpYmZkay1hYWNkZWMuYyB8IDgwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tCj4+PiDCoDEgZmlsZSBjaGFuZ2VkLCA2NSBpbnNlcnRpb25z KCspLCAxNSBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9saWJm ZGstYWFjZGVjLmMgYi9saWJhdmNvZGVjL2xpYmZkay1hYWNkZWMuYwo+Pj4gaW5kZXggOTNiNTIw MjNiMC4uZDU2MGUzMTNjYSAxMDA2NDQKPj4+IC0tLSBhL2xpYmF2Y29kZWMvbGliZmRrLWFhY2Rl Yy5jCj4+PiArKysgYi9saWJhdmNvZGVjL2xpYmZkay1hYWNkZWMuYwo+Pj4gQEAgLTU4LDcgKzU4 LDExIEBAIHR5cGVkZWYgc3RydWN0IEZES0FBQ0RlY0NvbnRleHQgewo+Pj4gwqDCoMKgwqAgaW50 IGRyY19jdXQ7Cj4+PiDCoMKgwqDCoCBpbnQgYWxidW1fbW9kZTsKPj4+IMKgwqDCoMKgIGludCBs ZXZlbF9saW1pdDsKPj4+IC3CoMKgwqAgaW50IG91dHB1dF9kZWxheTsKPj4+ICsjaWYgRkRLREVD X1ZFUl9BVF9MRUFTVCgyLCA1KSAvLyAyLjUuMTAKPj4+ICvCoMKgwqAgaW50IG91dHB1dF9kZWxh eV9zZXQ7Cj4+PiArwqDCoMKgIGludCBmbHVzaF9zYW1wbGVzOwo+Pj4gK8KgwqDCoCBpbnQgZGVs YXlfc2FtcGxlczsKPj4+ICsjZW5kaWYKPj4+IMKgfSBGREtBQUNEZWNDb250ZXh0Owo+Pj4KPj4+ Cj4+PiBAQCAtMTIzLDcgKzEyNywxMiBAQCBzdGF0aWMgaW50IGdldF9zdHJlYW1faW5mbyhBVkNv ZGVjQ29udGV4dCAqYXZjdHgpCj4+PiDCoMKgwqDCoCBhdmN0eC0+c2FtcGxlX3JhdGUgPSBpbmZv LT5zYW1wbGVSYXRlOwo+Pj4gwqDCoMKgwqAgYXZjdHgtPmZyYW1lX3NpemXCoCA9IGluZm8tPmZy YW1lU2l6ZTsKPj4+IMKgI2lmIEZES0RFQ19WRVJfQVRfTEVBU1QoMiwgNSkgLy8gMi41LjEwCj4+ PiAtwqDCoMKgIHMtPm91dHB1dF9kZWxhecKgwqDCoCA9IGluZm8tPm91dHB1dERlbGF5Owo+Pj4g K8KgwqDCoCBpZiAoIXMtPm91dHB1dF9kZWxheV9zZXQgJiYgaW5mby0+b3V0cHV0RGVsYXkpIHsK Pj4+ICvCoMKgwqDCoMKgwqDCoCAvLyBTZXQgdGhpcyBvbmx5IG9uY2UuCj4+PiArwqDCoMKgwqDC oMKgwqAgcy0+Zmx1c2hfc2FtcGxlc8KgwqDCoCA9IGluZm8tPm91dHB1dERlbGF5Owo+Pj4gK8Kg wqDCoMKgwqDCoMKgIHMtPmRlbGF5X3NhbXBsZXPCoMKgwqAgPSBpbmZvLT5vdXRwdXREZWxheTsK Pj4+ICvCoMKgwqDCoMKgwqDCoCBzLT5vdXRwdXRfZGVsYXlfc2V0ID0gMTsKPj4+ICvCoMKgwqAg fQo+Pj4gwqAjZW5kaWYKPj4+Cj4+PiDCoMKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgaW5mby0+bnVt Q2hhbm5lbHM7IGkrKykgewo+Pj4gQEAgLTM2NywxNCArMzc2LDMxIEBAIHN0YXRpYyBpbnQgZmRr X2FhY19kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQKPj4+ICphdmN0eCwgdm9pZCAqZGF0YSwK Pj4+IMKgwqDCoMKgIGludCByZXQ7Cj4+PiDCoMKgwqDCoCBBQUNfREVDT0RFUl9FUlJPUiBlcnI7 Cj4+PiDCoMKgwqDCoCBVSU5UIHZhbGlkID0gYXZwa3QtPnNpemU7Cj4+PiArwqDCoMKgIFVJTlQg ZmxhZ3MgPSAwOwo+Pj4gK8KgwqDCoCBpbnQgaW5wdXRfb2Zmc2V0ID0gMDsKPj4+Cj4+PiAtwqDC oMKgIGVyciA9IGFhY0RlY29kZXJfRmlsbChzLT5oYW5kbGUsICZhdnBrdC0+ZGF0YSwgJmF2cGt0 LT5zaXplLAo+Pj4gJnZhbGlkKTsKPj4+IC3CoMKgwqAgaWYgKGVyciAhPSBBQUNfREVDX09LKSB7 Cj4+PiAtwqDCoMKgwqDCoMKgwqAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJhYWNEZWNv ZGVyX0ZpbGwoKSBmYWlsZWQ6Cj4+PiAleFxuIiwgZXJyKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4+ICvCoMKgwqAgaWYgKGF2cGt0LT5zaXplKSB7 Cj4+PiArwqDCoMKgwqDCoMKgwqAgZXJyID0gYWFjRGVjb2Rlcl9GaWxsKHMtPmhhbmRsZSwgJmF2 cGt0LT5kYXRhLCAmYXZwa3QtPnNpemUsCj4+PiAmdmFsaWQpOwo+Pj4gK8KgwqDCoMKgwqDCoMKg IGlmIChlcnIgIT0gQUFDX0RFQ19PSykgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZf bG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJhYWNEZWNvZGVyX0ZpbGwoKSBmYWlsZWQ6Cj4+PiAl eFxuIiwgZXJyKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SX0lO VkFMSUREQVRBOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4+ICvCoMKgwqAgfSBlbHNlIHsKPj4+ ICsjaWYgRkRLREVDX1ZFUl9BVF9MRUFTVCgyLCA1KSAvLyAyLjUuMTAKPj4+ICvCoMKgwqDCoMKg wqDCoCAvKiBIYW5kbGUgZGVjb2RlciBkcmFpbmluZyAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlm IChzLT5mbHVzaF9zYW1wbGVzID4gMCkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmxh Z3MgfD0gQUFDREVDX0ZMVVNIOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUl9FT0Y7Cj4+PiArwqDCoMKgwqDCoMKg wqAgfQo+Pj4gKyNlbHNlCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1JfRU9GOwo+ Pj4gKyNlbmRpZgo+Pj4gwqDCoMKgwqAgfQo+Pj4KPj4+IC3CoMKgwqAgZXJyID0gYWFjRGVjb2Rl cl9EZWNvZGVGcmFtZShzLT5oYW5kbGUsIChJTlRfUENNICopCj4+PiBzLT5kZWNvZGVyX2J1ZmZl ciwgcy0+ZGVjb2Rlcl9idWZmZXJfc2l6ZSAvIHNpemVvZihJTlRfUENNKSwgMCk7Cj4+PiArwqDC oMKgIGVyciA9IGFhY0RlY29kZXJfRGVjb2RlRnJhbWUocy0+aGFuZGxlLCAoSU5UX1BDTSAqKQo+ Pj4gcy0+ZGVjb2Rlcl9idWZmZXIsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5kZWNvZGVyX2J1ZmZlcl9zaXpl IC8KPj4+IHNpemVvZihJTlRfUENNKSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZsYWdzKTsKPj4+IMKgwqDCoMKg IGlmIChlcnIgPT0gQUFDX0RFQ19OT1RfRU5PVUdIX0JJVFMpIHsKPj4+IMKgwqDCoMKgwqDCoMKg wqAgcmV0ID0gYXZwa3QtPnNpemUgLSB2YWxpZDsKPj4+IMKgwqDCoMKgwqDCoMKgwqAgZ290byBl bmQ7Cj4+PiBAQCAtMzkwLDE2ICs0MTYsMzYgQEAgc3RhdGljIGludCBmZGtfYWFjX2RlY29kZV9m cmFtZShBVkNvZGVjQ29udGV4dAo+Pj4gKmF2Y3R4LCB2b2lkICpkYXRhLAo+Pj4gwqDCoMKgwqDC oMKgwqDCoCBnb3RvIGVuZDsKPj4+IMKgwqDCoMKgIGZyYW1lLT5uYl9zYW1wbGVzID0gYXZjdHgt PmZyYW1lX3NpemU7Cj4+Pgo+Pj4gKyNpZiBGREtERUNfVkVSX0FUX0xFQVNUKDIsIDUpIC8vIDIu NS4xMAo+Pj4gK8KgwqDCoCBpZiAoZmxhZ3MgJiBBQUNERUNfRkxVU0gpIHsKPj4+ICvCoMKgwqDC oMKgwqDCoCAvLyBPbmx5IHJldHVybiB0aGUgcmlnaHQgYW1vdW50IG9mIHNhbXBsZXMgYXQgdGhl IGVuZDsgaWYKPj4+IGNhbGxpbmcgdGhlCj4+PiArwqDCoMKgwqDCoMKgwqAgLy8gZGVjb2RlciB3 aXRoIEFBQ0RFQ19GTFVTSCwgaXQgd2lsbCBrZWVwIHJldHVybmluZyBmcmFtZXMKPj4+IGluZGVm aW5pdGVseS4KPj4+ICvCoMKgwqDCoMKgwqDCoCBmcmFtZS0+bmJfc2FtcGxlcyA9IEZGTUlOKHMt PmZsdXNoX3NhbXBsZXMsIGZyYW1lLT5uYl9zYW1wbGVzKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBh dl9sb2cocywgQVZfTE9HX0RFQlVHLCAiUmV0dXJuaW5nICVkLyVkIGRlbGF5ZWQgc2FtcGxlcy5c biIsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZnJhbWUtPm5iX3NhbXBsZXMsIHMtPmZsdXNoX3NhbXBsZXMpOwo+Pj4g K8KgwqDCoMKgwqDCoMKgIHMtPmZsdXNoX3NhbXBsZXMgLT0gZnJhbWUtPm5iX3NhbXBsZXM7Cj4+ PiArwqDCoMKgIH0gZWxzZSB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgLy8gVHJpbSBvZmYgc2FtcGxl cyBmcm9tIHRoZSBzdGFydCB0byBjb21wZW5zYXRlIGZvciBleHRyYQo+Pj4gZGVjb2Rlcgo+Pj4g K8KgwqDCoMKgwqDCoMKgIC8vIGRlbGF5LiBXZSBjb3VsZCBhbHNvIGp1c3QgYWRqdXN0IHRoZSBw dHMsIGJ1dCB0aGlzIGF2b2lkcwo+Pj4gK8KgwqDCoMKgwqDCoMKgIC8vIGluY2x1ZGluZyB0aGUg ZXh0cmEgc2FtcGxlcyBpbiB0aGUgb3V0cHV0IGFsdG9nZXRoZXIuCj4+PiArwqDCoMKgwqDCoMKg wqAgaWYgKHMtPmRlbGF5X3NhbXBsZXMpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlu dCBkcm9wX3NhbXBsZXMgPSBGRk1JTihzLT5kZWxheV9zYW1wbGVzLAo+Pj4gZnJhbWUtPm5iX3Nh bXBsZXMpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKHMsIEFWX0xPR19ERUJV RywgIkRyb3BwaW5nICVkLyVkIGRlbGF5ZWQKPj4+IHNhbXBsZXMuXG4iLAo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZHJvcF9zYW1wbGVzLCBzLT5kZWxheV9zYW1wbGVzKTsKPj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHMtPmRlbGF5X3NhbXBsZXPCoCAtPSBkcm9wX3NhbXBsZXM7Cj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBmcmFtZS0+bmJfc2FtcGxlcyAtPSBkcm9wX3NhbXBsZXM7Cj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnB1dF9vZmZzZXQgPSBkcm9wX3NhbXBsZXMgKiBhdmN0 eC0+Y2hhbm5lbHM7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoZnJhbWUtPm5iX3Nh bXBsZXMgPD0gMCkKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7 Cj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+Pj4gK8KgwqDCoCB9Cj4+PiArI2VuZGlmCj4+PiArCj4+ PiDCoMKgwqDCoCBpZiAoKHJldCA9IGZmX2dldF9idWZmZXIoYXZjdHgsIGZyYW1lLCAwKSkgPCAw KQo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVuZDsKPj4+Cj4+PiAtwqDCoMKgIGlmIChmcmFt ZS0+cHRzICE9IEFWX05PUFRTX1ZBTFVFKQo+Pj4gLcKgwqDCoMKgwqDCoMKgIGZyYW1lLT5wdHMg LT0gYXZfcmVzY2FsZV9xKHMtPm91dHB1dF9kZWxheSwKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoQVZSYXRp b25hbCl7MSwgYXZjdHgtPnNhbXBsZV9yYXRlfSwKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdmN0eC0+dGlt ZV9iYXNlKTsKPj4+IC0KPj4+IC3CoMKgwqAgbWVtY3B5KGZyYW1lLT5leHRlbmRlZF9kYXRhWzBd LCBzLT5kZWNvZGVyX2J1ZmZlciwKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoCBhdmN0eC0+Y2hh bm5lbHMgKiBhdmN0eC0+ZnJhbWVfc2l6ZSAqCj4+PiArwqDCoMKgIG1lbWNweShmcmFtZS0+ZXh0 ZW5kZWRfZGF0YVswXSwgcy0+ZGVjb2Rlcl9idWZmZXIgKyBpbnB1dF9vZmZzZXQsCj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqAgYXZjdHgtPmNoYW5uZWxzICogZnJhbWUtPm5iX3NhbXBsZXMgKgo+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9nZXRfYnl0ZXNfcGVyX3NhbXBsZShhdmN0eC0+ c2FtcGxlX2ZtdCkpOwo+Pj4KPj4+IMKgwqDCoMKgICpnb3RfZnJhbWVfcHRyID0gMTsKPj4+IEBA IC00MzIsNyArNDc4LDExIEBAIGNvbnN0IEFWQ29kZWMgZmZfbGliZmRrX2FhY19kZWNvZGVyID0g ewo+Pj4gwqDCoMKgwqAgLmRlY29kZcKgwqDCoMKgwqDCoMKgwqAgPSBmZGtfYWFjX2RlY29kZV9m cmFtZSwKPj4+IMKgwqDCoMKgIC5jbG9zZcKgwqDCoMKgwqDCoMKgwqDCoCA9IGZka19hYWNfZGVj b2RlX2Nsb3NlLAo+Pj4gwqDCoMKgwqAgLmZsdXNowqDCoMKgwqDCoMKgwqDCoMKgID0gZmRrX2Fh Y19kZWNvZGVfZmx1c2gsCj4+PiAtwqDCoMKgIC5jYXBhYmlsaXRpZXPCoMKgID0gQVZfQ09ERUNf Q0FQX0RSMSB8IEFWX0NPREVDX0NBUF9DSEFOTkVMX0NPTkYsCj4+PiArwqDCoMKgIC5jYXBhYmls aXRpZXPCoMKgID0gQVZfQ09ERUNfQ0FQX0RSMSB8IEFWX0NPREVDX0NBUF9DSEFOTkVMX0NPTkYK Pj4+ICsjaWYgRkRLREVDX1ZFUl9BVF9MRUFTVCgyLCA1KSAvLyAyLjUuMTAKPj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBBVl9DT0RFQ19DQVBfREVMQVkK Pj4+ICsjZW5kaWYKPj4+ICvCoMKgwqAgLAo+Pj4gwqDCoMKgwqAgLnByaXZfY2xhc3PCoMKgwqDC oCA9ICZmZGtfYWFjX2RlY19jbGFzcywKPj4+IMKgwqDCoMKgIC5jYXBzX2ludGVybmFswqAgPSBG Rl9DT0RFQ19DQVBfSU5JVF9USFJFQURTQUZFIHwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIEZGX0NPREVDX0NBUF9JTklUX0NMRUFOVVAsCj4+Pgo+Pgo+ PiBXaGVuIEkgdXNlIHRoZSBsaWJmZGstYWFjIGRlY29kZXIgSSBnZXQgdGhlIGV4YWN0IG51bWJl ciBvZiBzYW1wbGVzIGxpa2UKPj4gd2l0aCB0aGUgbmF0aXZlIGFhYyBkZWNvZGVyIChuYW1lbHkg bnVtYmVyIG9mIGZyYW1lcyAqIDEwMjQsIGFzCj4+IGV4cGVjdGVkKS4gV2hhdCBtYWtlcyB5b3Ug YmVsaWV2ZSB0aGlzIGlzIG5lY2Vzc2FyeT8KPiAKPiBUaGUgZmRrLWFhYyBkZWNvZGVyIGNhbiBo YXZlLCBkZXBlbmRpbmcgb24gY29tYmluYXRpb24gb2Ygb3B0aW9ucywgc29tZQo+IGFtb3VudCBv ZiBleHRyYSBpbnRlcm5hbCBkZWxheSwgdGhhdCB0aGUgbGliYXZjb2RlYyBpbnRlcm5hbCBhYWMg ZGVjb2Rlcgo+IGRvZXNuJ3QgaGF2ZS4gKEl0J3MgYWxzbyBwb3NzaWJsZSB0byBzZXQgdGhlIG9w dGlvbnMgaW4gYSBzdGF0ZSB3aGVyZQo+IHRoZSBmZGstYWFjIGRlY29kZXIgZG9lc24ndCBpbmR1 Y2UgYW55IGV4dHJhIGRlbGF5LikKPiAKPiBDdXJyZW50bHksIHdlIGNvbXBlbnNhdGUgZm9yIHRo YXQgZXh0cmEgZGVsYXkgYnkganVzdCBvZmZzZXR0aW5nIHB0cwo+IGJhY2t3YXJkcywgc28gZm9y IGEgc3RyZWFtIHdpdGggTiBwYWNrZXRzLCB3ZSByZXR1cm4gc2FtcGxlcyB3aXRoCj4gdGltZXN0 YW1wcyBbLWRlbGF5LE4qZnJhbWVzaXplLWRlbGF5XS4KPiAKPiBJbiBvcmRlciBub3QgdG8gbG9z ZSBkYXRhIGF0IHRoZSBlbmQsIHdlIG11c3QgbWFrZSB0aGUgZGVjb2RlciBmbHVzaGFibGUKPiBh bmQgZmx1c2ggdXAgdG8gKGRlbGF5KSBzYW1wbGVzIGF0IHRoZSBlbmQuIEFuZCBzaW5jZSBvbmUg ZG9lc24ndAo+IG5vcm1hbGx5IGV4cGVjdCBleHRyYSBkZWxheSBzYW1wbGVzIGF0IHRoZSBzdGFy dCBvZiBhbiBBQUMgZGVjb2Rlcgo+IG91dHB1dCwgd2UgYWxzbyB0cmltIG91dCB0aGUgc2FtZSBh bW91bnQgb2Ygc2FtcGxlcyBhdCB0aGUgc3RhcnQgKHRvCj4gc2ltcGxpZnkgZm9yIHVzZXJzIHRo YXQgZG9uJ3Qgb2JzZXJ2ZSB0aGUgcHRzLCB3aG8gb3RoZXJ3aXNlIGFyZQo+IHN1cnByaXNlZCBi eSB0aGUgc3RyZWFtIHN0YXJ0aW5nIGZyb20gcHRzIC1kZWxheSBpbnN0ZWFkIG9mIGF0IHB0cyAw KS4KPiAKCkludGVyZXN0aW5nOiBUaGVyZSBpcyBpbmRlZWQgYSBkZWxheSBhdCB0aGUgc3RhcnQg KDcyMCBzYW1wbGVzIGluIGEKcXVpY2sgdGVzdCkgY29tcGFyZWQgdG8gdGhlIG5hdGl2ZSBBQUMg ZGVjb2Rlci4KRnVydGhlcm1vcmUsIHRoZSBjdXJyZW50IGNvZGUgaXMgYnVnZ3ksIGFzIGl0IGJl bGlldmVzIHRoYXQKYXZjb2RlYy0+dGltZV9iYXNlIHRvIGJlIHRoZSB0aW1lX2Jhc2Ugb2YgdGhl IHJldHVybmVkIEFWRnJhbWVzIChpdCBpcwppbiByZWFsaXR5IGF2Y29kZWMtPnBrdF90aW1lYmFz ZTsganVzdCB0ZXN0IHdpdGggQUFDLWluLU1hdHJvc2thIGZvciB0aGlzKS4KSSBoYXZlbid0IHRl c3RlZCB5b3VyIHBhdGNoZXMsIGJ1dCBJIGhhdmUgbm93IHJlYWxpemVkIHRoYXQgdGhlcmUgaXMK aW5kZWVkIGFuIGlzc3VlLiBBbmQgeW91ciBwYXRjaCBzaG91bGQgYWxzbyBmaXggdGhlIHdyb25n IHRpbWViYXNlIGlzc3VlLgoKLSBBbmRyZWFzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K