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 87A784939E for ; Tue, 9 Apr 2024 06:50:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3FBD468D3B8; Tue, 9 Apr 2024 09:50:43 +0300 (EEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2060.outbound.protection.outlook.com [40.92.73.60]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2A49068D2D4 for ; Tue, 9 Apr 2024 09:50:36 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=awl7zmwPm0mHWS7cp0H4EIVawn/tr+yjiuSR7f+ClncswhhXQWxw2eKO7YAwzBTxGnz42bAFfSF6viOdQ4sEuS5rUQAAIg5melMrra6o5CMSgB6mko+OcSG8Sao+4XIWPOyt3BRR94KAgOY0/cB2+b/3518B+D64YiiC3MiJbittVOFEvu9KfTG/imZF9w271SZ7a6ITtk856xcw9jEvlvarfwR0pN5wkLAwnXnhp4o+BnvQ2KdwL/+G3A4OAXJ8FZeZ37JLCq00nM3+6yxxT1nqXZEuuKEm3QIw7qjZSV1cYcQ0f8cuHd+KMtd9xeLw/0JxS8L3MBFKraQgRAQmrw== 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=UfM3qtdoPCYqpEMapFq6e65KKXXMQ1MYaxFMz9pd6kg=; b=e1/FN0hLaN/HvRYTRjwOT52Vaw5CRnLM2vi4BaeyCoCMgbmhcT1o//pZde5m5IYAyaY+KHvIL5rOhvnbHHzGM0oLHAZUXK8YDnCh3O+oZhIwM4UqtZ5d4w4RYzGra6A4Va4840Y3wfLNiqNtgS1qXFtx4O/yI7fjB5Aw9Qfv19ghEYxNRSAgT1BH+NoHuiv5eFQNVBXJ5KA1ZELais1nUiKEGZ2Vl68SlVALH/VvSs+iEANoM4o+MAYHEMfvRN0N0V7fI+AQU541PTMZw0AoyF1CrfxI1TqcvRJTBW0m4Ws5+NlprXngQHDHH2o1DA6qYg5pgm441dgov4Kkvgxfyg== 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=UfM3qtdoPCYqpEMapFq6e65KKXXMQ1MYaxFMz9pd6kg=; b=DIf53YIXScD920flUn3XflvG7rrB1HxMifOLea4UJaMdMK8iqxMqzyyB5PbJ6iCBTGApmU6IBJg/lR1fj6fzEwvC0ejTpNF3Btzk+TTEgZQt/9re/7wG0ency2CBcieb4jK+7EvFI8KUv+PIAWpVVod5+rDbdkApx46jIbxE33nGh1Bge85r/ZfRfpccveYXUB1CeWnIvkodv8rcStJ70Ppn/ly8ZBXzWugSh/cOXAg9MvlhImfh6KMc9Kw8CH69Vaml968XMQT2JrDx+d1BH+kSKp/jZPVuWf0LFw3XmhqKWObQBW/NfoizmAyB+FQECCc9x5scnfhhonDntrwqHQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0260.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 9 Apr 2024 06:35:25 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Tue, 9 Apr 2024 06:35:25 +0000 Message-ID: Date: Tue, 9 Apr 2024 08:35:23 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240409014007.GK6420@pb2> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20240409014007.GK6420@pb2> X-TMN: [CklBFTfuoRp2APYk/UrAE1rqVbpqsbHaruSDtwacF/c=] X-ClientProxiedBy: ZR0P278CA0097.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:23::12) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0260:EE_ X-MS-Office365-Filtering-Correlation-Id: 06312a4c-04a8-42d8-0381-08dc585f3d60 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DQJc1iTYM5Ud98GgQZMMwOOdIQNplDnfd7c9yArubOeAP16hEndJbsLijBH19bCsVbkkNtasvC//tCMzwXAqf1Zos0eZ92DSD93SOWJ3RDih1lwY8sEbuxDUzBMGjmnTVLb3sA8lQSM4WtoryZc0omYHzmQkEUA0jcfoVVWRLrijKGRYPQctICaVCfWUVqv8KKfQU4SD0WTpBmKfGaIM6bnJYHKmkGX10FQ5eNEjED9g8AdHK8AK2rDawscBBula/OYgHsCIjNYhoTZMNt2JrK07e6sY1vFm3J65SNv/8bhNhtGWXo1cP9U5gu/j4/UbZu1IWHLPu/wl37lEDFLoelEZ3IN1H8E8gkCpCSiyJbXD8pKUP9uJXi893WBX4DV8kOaP9KU70KNAcdWVj7E/B+bZSgtHl7bXt+HDbN28j17EsIcxrL0xLCRZZpTE/Ikveejb9Nh6TKOuUc+nGY1IvKQxKLTgZf7X6NSYNE3+C7AJ+S/QLrfUehnLAhUiJm8vmH6EwyNsCblrjYAOOq7HxdAfQuWuZgpqTo7LoYOLnsM6uYMTFLuXNCIArf15IRDP X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VStlVHlIdEFLcWcyejdtZVpOSmUvdGVuWDZXZStTdlUrR0w5dmRzZ09ydFk3?= =?utf-8?B?VmV2TEN4UWQwbGNCMW9adlRCaG11T3ZXUkFIVGdDaHhTM1Bya0I3V28xaUJD?= =?utf-8?B?MktBMUdjeUsvVzRWMmlHQkpYZHJWRGFaN2VWWUIzdjFMczVnU2lRVHpTUnhE?= =?utf-8?B?bW9LZDk3M3NjZVYzVFNOcXNoMVpISlRUeS80ZmNwNVR2blgyVEVQVmtVQUlX?= =?utf-8?B?SkN3SGlGdTd6VXZoVVRiV0ZJVzBXS2EvR0ZOK0FUYUZKY0thNU5MYjliYmll?= =?utf-8?B?V2VCcGtGSXFScmNlT0IvU3p1aklmVjc0eFpVYUJUNCtJS2E5eEUvNXA5dEFM?= =?utf-8?B?aXI4T0p4RFU3OEx1TUdNVkhhM3hVWlI1U0FEb0g3ZU4wY1dmZXE4V3l2N3Yv?= =?utf-8?B?Tk5lZ2laYngvVys4SmZGaG1XNzJUeWMrbmtGaThUSjRzU2FueTZqYzQzeGdk?= =?utf-8?B?MkdFWUJzbko0NDJqWTJxcEdlVEd5MW9ySnQxTzlOOHliaHNwMlNYS25YanYy?= =?utf-8?B?NEZqVkExeU5iRGd6UmJFU1BBL3Njc0sxbWxqK0s2QU80Vlh6UnpNRC9vbXFT?= =?utf-8?B?UWNudDV6ajJiaXpuM0tBSG1kK1lNWmVDc2x0eGNoUHNmSHdLM1RGZ3BQTnVy?= =?utf-8?B?ajd3K3NpUUhBRzhCMW1QNm94NWFyVTlFV0tteDZ0a1MzTG4yVkR3eTFlSy9j?= =?utf-8?B?dUNTQkg2ZVQxbVR2NThaN2YzVUZIRkRTTmdrdTY5OXFzUXppQS9yOHNKRkh0?= =?utf-8?B?UzRMMVJYUllYWUc1a00wOXhQQkQveHl0VGxEUmFuWTB6VlljMVpENzh4ZUNw?= =?utf-8?B?bzI4ajhrdktYdVJUQ3Fwc1NaUnFpUTJvaXNmcXVzNER4RGdhNFdoQ1EvSUtM?= =?utf-8?B?aW1hbG9CdzFnU3JiYnVRSzIyOHZkWEV0TldMOFR0dWJPQzVKdDhrTGd0TjlT?= =?utf-8?B?T1lTMCtuc0dpSitmdUYyaVR4ZmNJNGM1WDhWQXB4NXZOa0VLc3pLWElpMzZ1?= =?utf-8?B?RHZGamhTei82b0I4VjhhTm9ucjNaUGV6eDRjSW1CUmNtaS9PZXI3UnFURzlq?= =?utf-8?B?anZzNCtncHJxcEJ2NUpTK09UY052OGE2bVoyWUpFUk9TRUdBQ2VYMENTa2Jl?= =?utf-8?B?MU16dVRyRW5zL3VHSExVdHJVWDlhTWVLZ0xQQ1hBY1BOUzIzS3hTL0pCNEZo?= =?utf-8?B?U2JDRzN1MEpmSlBLY0FydkJrNHlFYXBKWndlZGJkL01qUTR6KzAvb1hMZE1m?= =?utf-8?B?MzdibmsxZnhsYVhJNVFmeE5sNG5zK282MWdyZk85U1ZMdmRYV0VvTXQyWmZP?= =?utf-8?B?WG9RaE1WVU1oVjY0bDBEV1Q3clVMQ0d3VVg1QnY1cGlTTFNCRFZPYWlRcUg0?= =?utf-8?B?emxxNTdJeE9WUEtiTm1ac2kzZUtGbWFrZDRlSjhkV3NVS3FlOVlha3dtNmNl?= =?utf-8?B?YXdWMk5GM24rWHArd3RmQVk0aHYvNFY4eElUV1hGNjdZTHBxN08rTnZ5NXda?= =?utf-8?B?VE05S2J6bkVQT0V1VG80MG5BcmxMSHluMFJTOTBUcFowR0dkbnFlREVuVm5l?= =?utf-8?B?U0FNcXlPbEszeGgxbThpUzIwR2ZYYnc0RGNqYklDWGpMVUNEVVh1V21lTHFp?= =?utf-8?B?NC9vN00zU1FlRzFicnNSd3NyRXpZVTU2NUowT205cnFNUk1iTkUydmZ4Q0Fo?= =?utf-8?B?K1JXaHJuMjcwdVpZYjFvNGF3K3lXMkZCWVVkRE1JUDU5L3F1YzMzN0JRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06312a4c-04a8-42d8-0381-08dc585f3d60 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2024 06:35:25.6520 (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: PR3P250MB0260 Subject: Re: [FFmpeg-devel] [PATCH v2 02/27] avcodec/decode: Add new ProgressFrame API 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: TWljaGFlbCBOaWVkZXJtYXllcjoKPiBPbiBNb24sIEFwciAwOCwgMjAyNCBhdCAxMDoxMzo0MFBN ICswMjAwLCBBbmRyZWFzIFJoZWluaGFyZHQgd3JvdGU6Cj4+IEZyYW1lLXRocmVhZGVkIGRlY29k ZXJzIHdpdGggaW50ZXItZnJhbWUgZGVwZW5kZW5jaWVzCj4+IHVzZSB0aGUgVGhyZWFkRnJhbWUg QVBJIGZvciBzeW5jaW5nLiBJdCB3b3JrcyBhcyBmb2xsb3dzOgo+Pgo+PiBEdXJpbmcgaW5pdCBl YWNoIHRocmVhZCBhbGxvY2F0ZXMgYW4gQVZGcmFtZSBmb3IgZXZlcnkKPj4gVGhyZWFkRnJhbWUu Cj4+Cj4+IFRocmVhZCBBIHJlYWRzIHRoZSBoZWFkZXIgb2YgaXRzIHBhY2tldCBhbmQgYWxsb2Nh dGVzCj4+IGEgYnVmZmVyIGZvciBhbiBBVkZyYW1lIHdpdGggZmZfdGhyZWFkX2dldF9leHRfYnVm ZmVyKCkKPj4gKHdoaWNoIGFsc28gYWxsb2NhdGVzIGEgc21hbGwgc3RydWN0dXJlIHRoYXQgaXMg c2hhcmVkCj4+IHdpdGggb3RoZXIgcmVmZXJlbmNlcyB0byB0aGlzIGZyYW1lKSBhbmQgc2V0cyBp dHMgZmllbGRzLAo+PiBpbmNsdWRpbmcgc2lkZSBkYXRhLiBUaGVuIHNhaWQgdGhyZWFkIGNhbGxz IGZmX3RocmVhZF9maW5pc2hfc2V0dXAoKS4KPj4gRnJvbSB0aGF0IG1vbWVudCBvbndhcmQgaXQg aXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIGFueQo+PiBvZiB0aGUgQVZGcmFtZSBmaWVsZHMgYXQg YWxsIGFueSBtb3JlLCBidXQgaXQgbWF5IGNoYW5nZQo+PiBmaWVsZHMgd2hpY2ggYXJlIGFuIGlu ZGlyZWN0aW9uIGF3YXksIGxpa2UgdGhlIGNvbnRlbnQgb2YKPj4gQVZGcmFtZS5kYXRhIG9yIGFs cmVhZHkgZXhpc3Rpbmcgc2lkZSBkYXRhLgo+Pgo+PiBBZnRlciB0aHJlYWQgQSBoYXMgY2FsbGVk IGZmX3RocmVhZF9maW5pc2hfc2V0dXAoKSwKPj4gYW5vdGhlciB0aHJlYWQgKHRoZSB1c2VyIG9u ZSkgY2FsbHMgdGhlIGNvZGVjJ3MgdXBkYXRlX3RocmVhZF9jb250ZXh0Cj4+IGNhbGxiYWNrIHdo aWNoIGluIHR1cm4gY2FsbHMgZmZfdGhyZWFkX3JlZl9mcmFtZSgpIHdoaWNoCj4+IGNhbGxzIGF2 X2ZyYW1lX3JlZigpIHdoaWNoIHJlYWRzIGV2ZXJ5IGZpZWxkIG9mIEEncwo+PiBBVkZyYW1lOyBo ZW5jZSB0aGUgYWJvdmUgcmVzdHJpY3Rpb24gb24gbW9kaWZpY2F0aW9ucwo+PiBvZiB0aGUgQVZG cmFtZSAoYXMgYW55IG1vZGlmaWNhdGlvbiBvZiB0aGUgQVZGcmFtZSBieSBBIGFmdGVyCj4+IGZm X3RocmVhZF9maW5pc2hfc2V0dXAoKSB3b3VsZCBiZSBhIGRhdGEgcmFjZSkuIE9mIGNvdXJzZSwK Pj4gdGhpcyBhdl9mcmFtZV9yZWYoKSBhbHNvIGluY3VycyBhbGxvY2F0aW9ucyBhbmQgdGhlcmVm b3JlCj4+IG5lZWRzIHRvIGJlIGNoZWNrZWQuIGZmX3RocmVhZF9yZWZfZnJhbWUoKSBhbHNvIHJl ZmVyZW5jZXMKPj4gdGhlIHNtYWxsIHN0cnVjdHVyZSB1c2VkIGZvciBjb21tdW5pY2F0aW5nIHBy b2dyZXNzLgo+Pgo+PiBUaGlzIGF2X2ZyYW1lX3JlZigpIG1ha2VzIGl0IGF3a3dhcmQgdG8gcHJv cGFnYXRlIHZhbHVlcyB0aGF0Cj4+IG9ubHkgYmVjb21lIGtub3duIGR1cmluZyBkZWNvZGluZyB0 byBsYXRlciB0aHJlYWRzIChpbiBjYXNlIG9mCj4+IGZyYW1lIHJlb3JkZXJpbmcgb3Igb3RoZXIg bWVjaGFuaXNtcyBvZiBkZWxheWVkIG91dHB1dCAobGlrZQo+PiBzaG93LWV4aXN0aW5nLWZyYW1l cykgaXQncyBub3QgdGhlIGRlY29kaW5nIHRocmVhZCwgYnV0IGEgbGF0ZXIKPj4gdGhyZWFkIHRo YXQgcmV0dXJucyB0aGUgQVZGcmFtZSkuIEUuZy4gZm9yIFZQOSB3aGVuIGV4cG9ydGluZyB2aWRl bwo+PiBlbmNvZGluZyBwYXJhbWV0ZXJzIGFzIHNpZGUgZGF0YSB0aGUgbnVtYmVyIG9mIGJsb2Nr cyBvbmx5Cj4+IGJlY29tZXMga25vd24gZHVyaW5nIGRlY29kaW5nLCBzbyBvbmUgY2FuJ3QgYWxs b2NhdGUgdGhlIHNpZGUgZGF0YQo+PiBiZWZvcmUgZmZfdGhyZWFkX2ZpbmlzaF9zZXR1cCgpLiBJ dCBpcyBjdXJyZW50bHkgYmVpbmcgZG9uZSBhZnRlcndhcmRzCj4+IGFuZCB0aGlzIGxlYWRzIHRv IGEgZGF0YSByYWNlIGluIHRoZSB2cDktZW5jcGFyYW1zIHRlc3Qgd2hlbiB1c2luZwo+PiBmcmFt ZS10aHJlYWRpbmcuIFJldHVybmluZyBkZWNvZGVfZXJyb3JfZmxhZ3MgaXMgYWxzbyBjb21wbGlj YXRlZAo+PiBieSB0aGlzLgo+Pgo+PiBUbyBwZXJmb3JtIHRoaXMgZXhjaGFuZ2UgYSBidWZmZXIg c2hhcmVkIGJldHdlZW4gdGhlIHJlZmVyZW5jZXMKPj4gaXMgbmVlZGVkIChub3RpY2UgdGhhdCBz aW1wbHkgZ2l2aW5nIHRoZSBsYXRlciB0aHJlYWRzIGEgcG9pbnRlcgo+PiB0byB0aGUgb3JpZ2lu YWwgQVZGcmFtZSBkb2VzIG5vdCB3b3JrLCBiZWNhdXNlIHNhaWQgQVZGcmFtZSB3aWxsCj4+IGJl IHJldXNlZCBsYXRlcm9uIHdoZW4gdGhyZWFkIEEgZGVjb2RlcyB0aGUgbmV4dCBwYWNrZXQgZ2l2 ZW4gdG8gaXQpLgo+PiBPbmUgY291bGQgZXh0ZW5kIHRoZSBidWZmZXIgYWxyZWFkeSB1c2VkIGZv ciBwcm9ncmVzcyBmb3IgdGhpcwo+PiBvciB1c2UgYSBuZXcgb25lIChyZXF1aXJpbmcgeWV0IGFu b3RoZXIgYWxsb2NhdGlvbiksIHlldCBib3RoCj4+IG9mIHRoZXNlIGFwcHJvYWNoZXMgaGF2ZSB0 aGUgZHJhd2JhY2sgb2YgYmVpbmcgdW5uYXR1cmFsLCB1Z2x5Cj4+IGFuZCByZXF1aXJpbmcgcXVp dGUgYSBsb3Qgb2YgYWQtaG9jIGNvZGUuIEUuZy4gaW4gY2FzZSBvZiB0aGUgVlA5Cj4+IHNpZGUg ZGF0YSBtZW50aW9uZWQgYWJvdmUgb25lIGNvdWxkIG5vdCBzaW1wbHkgdXNlIHRoZSBoZWxwZXIK Pj4gdGhhdCBhbGxvY2F0ZXMgYW5kIGFkZHMgdGhlIHNpZGUgZGF0YSB0byBhbiBBVkZyYW1lIGlu IG9uZSBnby4KPj4KPj4gVGhlIFByb2dyZXNzRnJhbWUgQVBJIG1lYW53aGlsZSBvZmZlcnMgYSBk aWZmZXJlbnQgc29sdXRpb24gdG8gYWxsCj4+IG9mIHRoaXMuIEl0IGlzIGJhc2VkIGFyb3VuZCB0 aGUgaWRlYSB0aGF0IHRoZSBtb3N0IG5hdHVyYWwKPj4gc2hhcmVkIG9iamVjdCBmb3Igc2hhcmlu ZyBpbmZvcm1hdGlvbiBhYm91dCBhbiBBVkZyYW1lIGJldHdlZW4KPj4gZGVjb2RpbmcgdGhyZWFk cyBpcyB0aGUgQVZGcmFtZSBpdHNlbGYuIFRvIGFjdHVhbGx5IGltcGxlbWVudCB0aGlzCj4+IHRo ZSBBVkZyYW1lIG5lZWRzIHRvIGJlIHJlZmVyZW5jZSBjb3VudGVkLiBUaGlzIGlzIGFjaGlldmVk IGJ5Cj4+IHB1dHRpbmcgYSAob3duZXJzaGlwKSBwb2ludGVyIGludG8gYSBzaGFyZWQgKGFuZCBv cGFxdWUpIHN0cnVjdHVyZQo+PiB0aGF0IGlzIG1hbmFnZWQgYnkgdGhlIFJlZlN0cnVjdCBBUEkg YW5kIHdoaWNoIGFsc28gY29udGFpbnMKPj4gdGhlIHN0dWZmIG5lY2Vzc2FyeSBmb3IgcHJvZ3Jl c3MgcmVwb3J0aW5nLgo+PiBUaGUgdXNlcnMgZ2V0IGEgcG9pbnRlciB0byB0aGlzIEFWRnJhbWUg d2l0aCB0aGUgdW5kZXJzdGFuZGluZwo+PiB0aGF0IHRoZSBvd25lciBtYXkgc2V0IGFsbCB0aGUg ZmllbGRzIHVudGlsIGl0IGhhcyBpbmRpY2F0ZWQKPj4gdGhhdCBpdCBoYXMgZmluaXNoZWQgZGVj b2RpbmcgdGhpcyBBVkZyYW1lOyB0aGVuIHRoZSB1c2VycyBhcmUKPj4gYWxsb3dlZCB0byByZWFk IGV2ZXJ5dGhpbmcuIEV2ZXJ5IGRlY29kZXIgbWF5IG9mIGNvdXJzZSBlbXBsb3kKPj4gYSBkaWZm ZXJlbnQgY29udHJhY3QgdGhhbiB0aGUgb25lIG91dGxpbmVkIGFib3ZlLgo+Pgo+PiBHaXZlbiB0 aGF0IHRoZXJlIGlzIG5vIHVuZGVybHlpbmcgYXZfZnJhbWVfcmVmKCksIGNyZWF0aW5nCj4+IHJl ZmVyZW5jZXMgdG8gYSBQcm9ncmVzc0ZyYW1lIGNhbid0IGZhaWwuIE9ubHkKPj4gZmZfdGhyZWFk X3Byb2dyZXNzX2dldF9idWZmZXIoKSBjYW4gZmFpbCwgYnV0IGdpdmVuIHRoYXQKPj4gaXQgd2ls bCByZXBsYWNlIGNhbGxzIHRvIGZmX3RocmVhZF9nZXRfZXh0X2J1ZmZlcigpIGl0IGlzCj4+IGF0 IHBsYWNlcyB3aGVyZSBlcnJvcnMgYXJlIGFscmVhZHkgZXhwZWN0ZWQgYW5kIHByb3Blcmx5Cj4+ IHRha2VuIGNhcmUgb2YuCj4+Cj4+IFRoZSBQcm9ncmVzc0ZyYW1lcyBhcmUgZW1wdHkgKGkuZS4g dGhlIEFWRnJhbWUgcG9pbnRlciBpcyBOVUxMCj4+IGFuZCB0aGUgQVZGcmFtZXMgYXJlIG5vdCBh bGxvY2F0ZWQgZHVyaW5nIGluaXQgYXQgYWxsKQo+PiB3aGlsZSBub3QgYmVpbmcgaW4gdXNlOyBm Zl90aHJlYWRfcHJvZ3Jlc3NfZ2V0X2J1ZmZlcigpIGJvdGgKPj4gc2V0cyB1cCB0aGUgYWN0dWFs IFByb2dyZXNzRnJhbWUgYW5kIGFscmVhZHkgY2FsbHMKPj4gZmZfdGhyZWFkX2dldF9idWZmZXIo KS4gU28gaW5zdGVhZCBvZiBjaGVja2luZyBmb3IKPj4gVGhyZWFkRnJhbWUuZi0+ZGF0YVswXSBv ciBUaHJlYWRGcmFtZS5mLT5idWZbMF0gYmVpbmcgTlVMTAo+PiBmb3IgInRoaXMgcmVmZXJlbmNl IGZyYW1lIGlzIG5vbi1leGlzdGluZyIgb25lIHNob3VsZCBjaGVjayBmb3IKPj4gUHJvZ3Jlc3NG cmFtZS5mLgo+Pgo+PiBUaGlzIGFsc28gaW1wbGllcyB0aGF0IG9uZSBjYW4gb25seSBzZXQgQVZG cmFtZSBwcm9wZXJ0aWVzCj4+IGFmdGVyIGhhdmluZyBhbGxvY2F0ZWQgdGhlIGJ1ZmZlci4gVGhp cyByZXN0cmljdGlvbiBpcyBub3QgZGVlcDoKPj4gaWYgaXQgYmVjb21lcyBvbmVyb3VzIGZvciBh bnkgY29kZWMsIGZmX3RocmVhZF9wcm9ncmVzc19nZXRfYnVmZmVyKCkKPj4gY2FuIGJlIGJyb2tl biB1cC4gVGhlIHVzZXIgd291bGQgdGhlbiBoYXZlIHRvIGdldCBhIGJ1ZmZlcgo+PiBoaW1zZWxm Lgo+Pgo+PiBJbiBvcmRlciB0byBhdm9pZCB1bm5lY2Vzc2FyeSBhbGxvY2F0aW9ucywgdGhlIHNo YXJlZCBzdHJ1Y3R1cmUKPj4gaXMgcG9vbGVkLCBzbyB0aGF0IGJvdGggdGhlIHN0cnVjdHVyZSBh cyB3ZWxsIGFzIHRoZSBBVkZyYW1lCj4+IGl0c2VsZiBhcmUgcmV1c2VkLiBUaGlzIG1lYW5zIHRo YXQgdGhlcmUgd29uJ3QgYmUgbG90cyBvZgo+PiB1bm5lY2Vzc2FyeSBhbGxvY2F0aW9ucyBpbiBj YXNlIG9mIG5vbi1mcmFtZS10aHJlYWRlZCBkZWNvZGluZy4KPj4gSXQgbWlnaHQgZXZlbiB0dXJu IG91dCB0byBoYXZlIGZld2VyIHRoYW4gdGhlIGN1cnJlbnQgY29kZQo+PiAodGhlIGN1cnJlbnQg Y29kZSBhbGxvY2F0ZXMgQVZGcmFtZXMgZm9yIGV2ZXJ5IERQQiBzbG90LCBidXQKPj4gdGhlc2Ug YXJlIG9mdGVuIGV4Y2Vzc2l2ZWx5IGxhcmdlIGFuZCBub3QgY29tcGxldGVseSB1c2VkOwo+PiB0 aGUgbmV3IGNvZGUgYWxsb2NhdGVzIHRoZW0gb24gZGVtYW5kKS4gUG9vbGluZyByZWxpZXMgb24g dGhlCj4+IHJlc2V0IGZ1bmN0aW9uIG9mIHRoZSBSZWZTdHJ1Y3QgcG9vbCBBUEksIGl0IHdvdWxk IGJlIGltcG9zc2libGUKPj4gdG8gaW1wbGVtZW50IHdpdGggdGhlIEFWQnVmZmVyUG9vbCBBUEku Cj4+Cj4+IEZpbmFsbHksIFByb2dyZXNzRnJhbWVzIGhhdmUgbm8gbm90aW9uIG9mIG93bmVyOyB0 aGV5IGFyZSBidWlsdAo+PiBvbiB0b3Agb2YgdGhlIFRocmVhZFByb2dyZXNzIEFQSSB3aGljaCBh bHNvIGxhY2tzIHN1Y2ggYSBjb25jZXB0Lgo+PiBJbnN0ZWFkIGV2ZXJ5IFRocmVhZFByb2dyZXNz IGFuZCBldmVyeSBQcm9ncmVzc0ZyYW1lIGNvbnRhaW5zCj4+IGl0cyBvd24gbXV0ZXggYW5kIGNv bmRpdGlvbiB2YXJpYWJsZSwgbWFraW5nIGl0IGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQKPj4gb2Yg cHRocmVhZF9mcmFtZS5jLiBKdXN0IGxpa2UgdGhlIFRocmVhZEZyYW1lIEFQSSBpdCBpcyBzaW1w bHkKPj4gcHJlc3VtZWQgdGhhdCBvbmx5IHRoZSBhY3R1YWwgb3duZXIvcHJvZHVjZXIgb2YgYSBm cmFtZSByZXBvcnRzCj4+IHByb2dyZXNzIG9uIHNhaWQgZnJhbWUuCj4+Cj4+IFNpZ25lZC1vZmYt Ynk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgo+ PiAtLS0KPj4gIGxpYmF2Y29kZWMvTWFrZWZpbGUgICAgICAgICB8ICAgMSArCj4+ICBsaWJhdmNv ZGVjL2F2Y29kZWMuYyAgICAgICAgfCAgIDEgKwo+PiAgbGliYXZjb2RlYy9jb2RlY19pbnRlcm5h bC5oIHwgICA0ICsrCj4+ICBsaWJhdmNvZGVjL2RlY29kZS5jICAgICAgICAgfCAxMjIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICBsaWJhdmNvZGVjL2ludGVybmFsLmggICAg ICAgfCAgIDIgKwo+PiAgbGliYXZjb2RlYy9wcm9ncmVzc2ZyYW1lLmggIHwgMTMzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgbGliYXZjb2RlYy9wdGhyZWFkX2ZyYW1l LmMgIHwgICAxICsKPj4gIGxpYmF2Y29kZWMvdGVzdHMvYXZjb2RlYy5jICB8ICAgMyArLQo+PiAg OCBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+PiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvcHJvZ3Jlc3NmcmFtZS5oCj4gCj4gYnJlYWtzIGJ1 aWxkIHdpdGhvdXQgdGhyZWFkcwo+IAo+IC4vY29uZmlndXJlIC0tZGlzYWJsZS1wdGhyZWFkcyAt LWNjPSdjY2FjaGUgZ2NjJyAmJiBtYWtlIC1qMzIKPiAuLi4KPiBsaWJhdmNvZGVjL3RocmVhZHBy b2dyZXNzLmM6IEluIGZ1bmN0aW9uIOKAmGZmX3RocmVhZF9wcm9ncmVzc19yZXBvcnTigJk6Cj4g bGliYXZjb2RlYy90aHJlYWRwcm9ncmVzcy5jOjU0OjU6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiDigJhwdGhyZWFkX211dGV4X2xvY2vigJk7IGRpZCB5b3UgbWVhbiDi gJhmZl9tdXRleF9sb2Nr4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv bl0KPiAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmcHJvLT5wcm9ncmVzc19tdXRleCk7Cj4gICAg ICBefn5+fn5+fn5+fn5+fn5+fn4KPiAgICAgIGZmX211dGV4X2xvY2sKPiBsaWJhdmNvZGVjL3Ro cmVhZHByb2dyZXNzLmM6NTU6NTogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uIOKAmHB0aHJlYWRfY29uZF9icm9hZGNhc3TigJk7IGRpZCB5b3UgbWVhbiDigJhmZl9jb25k X2Jyb2FkY2FzdOKAmT8gWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCj4g ICAgICBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0KCZwcm8tPnByb2dyZXNzX2NvbmQpOwo+ICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo+ICAgICAgZmZfY29uZF9icm9hZGNhc3QKPiBsaWJhdmNv ZGVjL3RocmVhZHByb2dyZXNzLmM6NTY6NTogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9m IGZ1bmN0aW9uIOKAmHB0aHJlYWRfbXV0ZXhfdW5sb2Nr4oCZOyBkaWQgeW91IG1lYW4g4oCYZmZf bXV0ZXhfdW5sb2Nr4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0K PiAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcm8tPnByb2dyZXNzX211dGV4KTsKPiAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gICAgICBmZl9tdXRleF91bmxvY2sKPiBsaWJhdmNvZGVj L3RocmVhZHByb2dyZXNzLmM6IEluIGZ1bmN0aW9uIOKAmGZmX3RocmVhZF9wcm9ncmVzc19hd2Fp dOKAmToKPiBsaWJhdmNvZGVjL3RocmVhZHByb2dyZXNzLmM6NzE6OTogZXJyb3I6IGltcGxpY2l0 IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmHB0aHJlYWRfY29uZF93YWl04oCZOyBkaWQgeW91 IG1lYW4g4oCYZmZfY29uZF93YWl04oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNs YXJhdGlvbl0KPiAgICAgICAgICBwdGhyZWFkX2NvbmRfd2FpdCgmcHJvLT5wcm9ncmVzc19jb25k LCAmcHJvLT5wcm9ncmVzc19tdXRleCk7Cj4gICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KPiAg ICAgICAgICBmZl9jb25kX3dhaXQKPiBjYzE6IHNvbWUgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBh cyBlcnJvcnMKPiBmZmJ1aWxkL2NvbW1vbi5tYWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdsaWJh dmNvZGVjL3RocmVhZHByb2dyZXNzLm8nIGZhaWxlZAo+IG1ha2U6ICoqKiBbbGliYXZjb2RlYy90 aHJlYWRwcm9ncmVzcy5vXSBFcnJvciAxCj4gbWFrZTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNo ZWQgam9icy4uLi4KPiAKClRoYW5rcyBmb3IgdGVzdGluZzsgZml4ZWQgYnkgdjMgb2YgcGF0Y2gg IzEuCgotIEFuZHJlYXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcK aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RA ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K