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 7CEE4434B1 for ; Sat, 9 Dec 2023 05:13:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E602568D068; Sat, 9 Dec 2023 07:13:34 +0200 (EET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2077.outbound.protection.outlook.com [40.92.91.77]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 953B968CF57 for ; Sat, 9 Dec 2023 07:13:27 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UJS5VRPk174tqPaKCtvQrHX3UgcYkdeMJH59Q1+pn6ACuZnBVZe7Fw2E6GPFouzTZTI4uBjerIGhfYcJbwdwiVV+bjQHl62NZx1uVDKuDnL+/Amt3WKHzTpbK50jCNxaBiMBiOuTaS2cbeOK/ch9e7QXU8flJwGynhcTx3IJ1DEQVlwMTstjsGpl3OdDYiM79F5rWWvRcdhW+W4NGjL8ueHbD2h0ApddsUwE16rUOJ1zni1mpq6KyKMfdsdBpU1K6rLC2GleRxnHhPicZe635txp+B6fEtZucW1P9if89nzvtXe0ZyfrKtlIZ+erMUu7YtewNcQynwF1XPtLgSlThg== 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=HfMf4QH4nM24+hcEe7U6R8wxEiAePmEfuki0rJ1rAGs=; b=f8ZLueVILYUxKMGj0dd3906ecAer9c9kIqQ8oX7fbS+TqTEwQkcBEbr4hosLlBn4l1kRRWfN4sy9eG++bpHtMcbnG0ixfYV0bfotZvXjLH38JkJ4N7wq736A5TFtlT1sdgTFO446uA4dck94OhQOFUHeYj0yjVCPjP3uAYPJDG659UwmIaiJt7G76cdWafAzm3ozVf/xes64OfCgBeBKhuayUDZWocJ32Vuw5sOs+kRTgZkea9N04B5EunXJlg0G9W3wDRYjnZyLSCP5pY7jVc+fUNVH3Y5rrYlhnD30ApFL+L1KurZwVXj2SK6CE3PPwbHncxEqe60Z6lO9cOyAuA== 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=HfMf4QH4nM24+hcEe7U6R8wxEiAePmEfuki0rJ1rAGs=; b=DNV2UfnARg9Zo/E7RGQd3Q8OYE/7YVz9ZuR436FFumy8M+fP58jpnzmJfwxiIcifIzg7Lpv5Fku1MKzSNFotym+FtlpatUpZ7QjStbijlXcI5mg27eSxKXRIv3k1GrjAoJ9pamMxJGCcZCH9PUbc/NmWbAUytU39PPnN7kV/UnTgahZ40By4J7uAtx9uo5J2LcLY2slZd4ZAs79TcSmMCUgazSkRMTOp6vJeFgP+06TykUzB/lXJ6KeKmcLC6a7jAwPavP4l6C6BinZUMM2uNFlPyqjbCGkEnAfymRUAG/FGoIsH44wbloUGLD6+A/Z4ivR1/QQer3lM9sivVSlHOw== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by PR3P250MB0034.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:14d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.29; Sat, 9 Dec 2023 05:13:25 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::f14e:fea9:c8db:5c13]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::f14e:fea9:c8db:5c13%4]) with mapi id 15.20.7068.029; Sat, 9 Dec 2023 05:13:25 +0000 Message-ID: Date: Sat, 9 Dec 2023 06:14:57 +0100 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20231205144519.7334-1-nuomi2021@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: X-TMN: [+kYgM2lBTzt+8KIME10dt0siw6u8inDOILJ3ZGYlYNM=] X-ClientProxiedBy: ZR2P278CA0059.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:53::7) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: <7afb120d-93aa-4db9-858f-e40e94ef726f@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|PR3P250MB0034:EE_ X-MS-Office365-Filtering-Correlation-Id: fe7f5547-0e88-4758-d2f0-08dbf87591f5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +mAli7y95fSwval9fquiKrAd54b6EERa8b74SxgXPibMh5RVlCs9jkjdIJ5EjtqVLyun6OSZKfd5XUYtPVjrw70hIH26MrIaapXWMhZ9CbGTvUIJmwxLdfCqkIWyPrruiTzSpRFsQ30CTyXkCuMuWNU2ho0o0UiQNvCMlSsjDtGL9h0fp4bumMML/FNKtkMvNXHmVqbUMcLmy9dtbogluNIAsW7kZ1r7dHV7uAo5IQ3Njei4MjknPPok7dKPueot9F35m8f9vlDpSayTydNtmMbThzam1O9fld68JewJxqU+pMu8CVlix3RDrFW060gMvIWKg62UTJeeKYDgtnS7PoMbV8/L6nIT2nvPxVSD749vt/F9YgOaFRcAxB2NB0QyUt15ivLS2kisGx6FnMXn+LV8KL2WjTWvdkw69Q5owWKAujHB3Ozqa3dfnp/NrT0NSxVbT6POSThndre9FEo9xnvVVGhi9FQ9zm79dCdcmqyesgC0UXQf6ZxkGYCKHlf87qSae0Y6v6sS5pF0BDbVa3SltunXd8CUoe/zyU//a/dfeyZAHN7Q/Vq9jD6F9QwT X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bkw3c3VtQnowMEVDd3JRWllCclpCWG5samtNaTJoSlJDSU1wZWdBTWdwQTZx?= =?utf-8?B?VXozV0oxalNma0hCTzI5SFYwYThiMWxTZmhTeUxmL1NyMys1Rmh4VkpINlFs?= =?utf-8?B?bUZPSnJ3WGJyOUVZc0QwYmdTMmhnanhiV0RQSVBMYUUvT2J1bkswdXFCbzN1?= =?utf-8?B?UnlXdkx4OVhEWWVPVFRkM2pEZkpORVZ1cWhUNE5WZEI1RmdOS2tmNlIvZldR?= =?utf-8?B?c2l6aG9LQjdpeTczc2g3YWVrY3UydXQzbkxrUlBXTVZybWRtaVR3bHZDM3Nn?= =?utf-8?B?ZG5aaS9GVW1oeGVFUVA0OGtQMGUvK1VpZ2htV0ZqdW95bmdPUEJWZk5vRzRH?= =?utf-8?B?SHVvQkdRNU4wY1AyR2ZRRGt6SXJ5NnJvWDd0UzF6TEJPYmx2M1Y1L0ZkcnhN?= =?utf-8?B?L3REOEc3QjdJeUxwb0RONVlIYk5VbmY2VmlUaFZza1BTTzA4SmZJNmUyNmd0?= =?utf-8?B?RWFFdFE2Qmw1eWJtRlZqWm9NODhBdGhLYzJIN051cGd5YVFTd3NKVFBnUEJF?= =?utf-8?B?WjdabXlISFY2SlVjM2M0N3dFNFBva0k1REcweTRzWXh2NWM5d05WYnpqUzhv?= =?utf-8?B?bTBwUWFraGJ0YTgzdFZ6N2FrSTNSM3pWbVZTYTJzUHpKRHhtRC9QaERZU0tQ?= =?utf-8?B?OE4xdzZWTlB2RzJzWWNXbDZLL1BNMHR5Q0Exdmd6RFhaRVVpYUZlbTZpazNn?= =?utf-8?B?eDBBUDNHYWhMWjFsdk5kMlFtb0tPbXJPWGhFWVZBN1hRSTdqYUhxK2dNY0tu?= =?utf-8?B?OGkyUFh6TGlnQWxrelVaNjZPejduZFQrRnZtMVJnSzJ4K3JRQmIwSUJqWUF5?= =?utf-8?B?L0syY0FpZ21OYUU4S2dtWUJKd2xBem8zbWhqeTA5V25zc0NKQldQL0hyMzRO?= =?utf-8?B?V3NWSDFFTXlnWHJaREhJTVdBNFZvaWQ1QkpxR1VmQm5YbCtBWmlwVkZoWS9F?= =?utf-8?B?cHRXOFFkOFo3eUNVYUJuWDRGR2lIbmxkeGFPV25lSmV5Yk1VUm8xcENDdDR4?= =?utf-8?B?cGJqZU0wNWFaSXRxbVBFUndncHNJaGRNZUROd2RKTTB1ZjZKMTdkbi9jckE4?= =?utf-8?B?S0lmSzFpRVRoNmpPVCtod2JKTGNKZjhscmh5QnYzb3hZbG41Q2hiV2xBbmZW?= =?utf-8?B?d01QU3VkYkVnM3ZtUzZUZ3dvd1RKRGhaU1VCU3E5bGdwUXVXVmJZVEtidFBi?= =?utf-8?B?V0NCTjNlWkNkWGZDbTJDQUFQTTFzd05hTS96VWZhbjE4Ni9CZHN0cnRadnQ3?= =?utf-8?B?Z3YwT21rVzdVNVh2UmFISVRuMVRpY0poRTZyYTA4Mmo1SWZTWG9qcnlySzd0?= =?utf-8?B?QlNBWXlGWHRUZjgxNG9XR3h3SzdvYWpXVm1EQnZFS1dOeU11K2pNdDdad08z?= =?utf-8?B?amNTMTk2Ymx4dHRXRHBEYXozT0IwWHZPSnlOWTFZdFRSMnp5Rk52S1FhZlNt?= =?utf-8?B?bFpUWWxkZlgzWXJwMmw5V3NCVTdBZmpJRjJFTnJaU3RUZTZKN1dLOHBIeTJW?= =?utf-8?B?SjYrTmVmdkc3RzJsMTBRRU01V3c0aFZiSTducDRzaGFMY3lnRDA4bXlXSlds?= =?utf-8?B?TFBuVCtEUGlZNG4rZHVWQ1htY2MwSXBpa2hHdSt6VWNJZzIxb1VEYlRPK2Jo?= =?utf-8?B?MlBzZ211TElucU0vYitwSHJIU1JQN05Jb3ZNSUpQcFE4Vko0QXBQTk1iT2w0?= =?utf-8?Q?KJdrQH/o+ygTUWbSOYOd?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe7f5547-0e88-4758-d2f0-08dbf87591f5 X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2023 05:13:25.0857 (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: PR3P250MB0034 Subject: Re: [FFmpeg-devel] [PATCH v6 14/14] vvcdec: add full vvc decoder 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: TnVvIE1pOgo+IEhpIEFuZHJlYXMsCj4gdGhhbmsgeW91IGZvciB0aGUgcmV2aWV3Lgo+IE9uIEZy aSwgRGVjIDgsIDIwMjMgYXQgODoxN+KAr1BNIEFuZHJlYXMgUmhlaW5oYXJkdCA8Cj4gYW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPiB3cm90ZToKPiAKPj4KPj4+ICsKPj4+ICtzdGF0aWMg aW50IG1pbl9wdV9hcnJheXNfaW5pdChWVkNGcmFtZUNvbnRleHQgKmZjLCBjb25zdCBpbnQKPj4g cGljX3NpemVfaW5fbWluX3B1KQo+Pj4gK3sKPj4+ICsgICAgaWYgKGZjLT50YWIucGljX3NpemVf aW5fbWluX3B1ICE9IHBpY19zaXplX2luX21pbl9wdSkgewo+Pj4gKyAgICAgICAgbWluX3B1X2Fy cmF5c19mcmVlKGZjKTsKPj4+ICsgICAgICAgIGZjLT50YWIubXNmICA9IGF2X21hbGxvY3oocGlj X3NpemVfaW5fbWluX3B1KTsKPj4+ICsgICAgICAgIGZjLT50YWIuaWFmICA9IGF2X21hbGxvY3oo cGljX3NpemVfaW5fbWluX3B1KTsKPj4+ICsgICAgICAgIGZjLT50YWIubW1pICA9IGF2X21hbGxv Y3oocGljX3NpemVfaW5fbWluX3B1KTsKPj4+ICsgICAgICAgIGZjLT50YWIubXZmICA9IGF2X21h bGxvY3oocGljX3NpemVfaW5fbWluX3B1ICoKPj4gc2l6ZW9mKCpmYy0+dGFiLm12ZikpOwo+Pgo+ PiBEbyB0aGVzZSBoYXZlIHRvIGJlIHNlcGFyYXRlIGFsbG9jYXRpb25zPyBJZiB0aGVyZSB3ZXJl IGFsbG9jYXRlZAo+PiBqb2ludGx5LCBvbmUgbWVtc2V0IGJlbG93IHdvdWxkIHN1ZmZpY2UuCj4+ Cj4gVGhleSBhcmUgc2VwYXJhdGUgZmxhZ3MsIGlmIHdlIGNvbWJpbmUgdGhlbS4gV2UgY2FuJ3Qg dXNlIG1lbXNldCB0byBzZXQKPiBmbGFncyBmb3IgYSBibG9jay4KPiAKCkkgZGlzYWdyZWU6IFlv dSB3b3VsZCBzdGlsbCBiZSBhYmxlIHRvIHVzZSBkaWZmZXJlbnQgcG9pbnRlcnMgZm9yCmRpZmZl cmVudCBwYXJ0cyBvZiB0aGUgbGFyZ2UgYWxsb2NhdGVkIGJsb2NrLCBpdCBpcyBqdXN0IHRoYXQg eW91IGFsc28Kc2F2ZSBzb21lIHVubmVjZXNzYXJ5IGFsbG9jYXRpb25zIChhbmQgZnJlZXMgYW5k IGVycm9ycyBjaGVja3MgZm9yIHRoZQphbGxvY2F0aW9ucykgYW5kIGFsc28gZ2FpbiB0aGUgYWJp bGl0eSB0byBtZW1zZXQgdGhlbSB2aWEgb25lIG1lbXNldApjYWxsIGluIGNhc2Ugb25lIHdhbnRz IHRvIHNldCB0aGVtIHRvIHRoZSBzYW1lIHZhbHVlLgoKPj4KPj4+ICsKPj4+ICtzdGF0aWMgaW50 IGluaXRfc2xpY2VfY29udGV4dChTbGljZUNvbnRleHQgKnNjLCBWVkNGcmFtZUNvbnRleHQgKmZj LAo+PiBjb25zdCBIMjY0NU5BTCAqbmFsLCBjb25zdCBDb2RlZEJpdHN0cmVhbVVuaXQgKnVuaXQp Cj4+PiArewo+Pj4gKyAgICBjb25zdCBWVkNTSCAqc2ggICAgICAgICAgICAgPSAmc2MtPnNoOwo+ Pj4gKyAgICBjb25zdCBIMjY2UmF3U2xpY2UgKnNsaWNlICAgPSAoY29uc3QgSDI2NlJhd1NsaWNl ICopdW5pdC0+Y29udGVudDsKPj4KPj4gUGxlYXNlIG5vIHBvaW50bGVzcyBjYXN0cy4gQWxzbywg d2h5IGlzIHRoZXJlIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UgaW4KPj4gZnJvbnQgb2YgJz0nPwo+ Pgo+IEZpeCBoZXJlIGFuZCBzZXJ2YWwgb3RoZXIgcGxhY2VzCj4gVGhlIHdoaXRlc3BhY2Ugd2ls bCBtYWtlIGFsbCA9IGluIGEgY29sLgo+IAoKQnV0IHRoZXJlIGlzIG5vdGhpbmcgdGhhdCBuZWVk cyB0aGF0IG11Y2ggd2hpdGVzcGFjZS4KCj4+PiArCj4+PiArc3RhdGljIGF2X2NvbGQgaW50IGZy YW1lX2NvbnRleHRfaW5pdChWVkNGcmFtZUNvbnRleHQgKmZjLAo+PiBBVkNvZGVjQ29udGV4dCAq YXZjdHgpCj4+PiArewo+Pj4gKwo+Pj4gKyAgICBmYy0+YXZjdHggPSBhdl9tZW1kdXAoYXZjdHgs IHNpemVvZigqYXZjdHgpKTsKPj4KPj4gV2hlbiBJIHJlYWQgdGhpcywgSSBwcmVzdW1lZCB5b3Ug YXJlIHVzaW5nIG11bHRpcGxlIEFWQ29kZWNDb250ZXh0cyB0bwo+PiBzdG9yZSB0aGUgZXZlciBj aGFuZ2luZyBzdGF0ZSBvZiB0aGUgQVZDb2RlY0NvbnRleHQgZmllbGRzIHNpbWlsYXJseSB0bwo+ PiB1cGRhdGVfY29udGV4dF9mcm9tX3RocmVhZCgpIGluIHB0aHJlYWRfZnJhbWUuYy4gQnV0IGl0 IHNlZW1zIHlvdSBkb24ndC4KPj4gVGhlc2UgY29udGV4dHMgYXJlIG9ubHkgdXNlZCBhcyBhKSBs b2djb250ZXh0cyAod2hlcmUgdGhlIGFjdHVhbAo+PiB1c2VyLWZhY2luZyBBVkNvZGVjQ29udGV4 dCBzaG91bGQgYmUgdXNlZCwgc28gdGhhdCB0aGUgdXNlciBjYW4gbWFrZQo+PiBzZW5zZSBvZiB0 aGUgbG9nbWVzc2FnZXMhKSwgYikgaW4gZmZfdGhyZWFkX2dldF9idWZmZXIoKSBhbmQgYykgaW4K Pj4gZXhwb3J0X2ZyYW1lX3BhcmFtcygpIHdoZXJlIG9ubHkgc29tZSBiYXNpYyBmaWVsZHMKPj4g KGRpbWVuc2lvbi1yZWxhdGVkK3BpeF9mbXQpIGlzIHNldC4gUHJlc3VtYWJseSBjKSBpcyBkb25l IGZvciBiKS4KPj4KPiBJIHJlbWVtYmVyIGlmIGkgZGlkIG5vdCB1c2UgYSBsb2NhbCBBVkNvZGVj Q29udGV4dCAgaXQgd291bGQgdHJpZ2dlciBzb21lCj4gYXNzZXJ0IHdoZW4gcmVzb2x1dGlvbiBj aGFuZ2VkLgo+IAoKQ2FuIHlvdSBiZSBtb3JlIHNwZWNpZmljIGFib3V0IHdoYXQgYXNzZXJ0IGhh cyBiZWVuIHRyaWdnZXJlZD8gQW5kIGhhdmUKeW91IHNldCB0aGUgQVZGcmFtZSBmaWVsZHMgZGly ZWN0bHkgYmVmb3JlIGZmX3RocmVhZF9nZXRfYnVmZmVyKCk/Cgo+Pgo+PiBCdXQgdGhlIHVzZXIg aXMgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIHByb3ZpZGVkIGNhbGxiYWNrcyBpbiB0aGUgbWFzdGVy Cj4+IGNvbnRleHQgYXQgYW55IHRpbWUuIEUuZy4gdGhlIGNhbGwgdG8gZmZfdGhyZWFkX2dldF9i dWZmZXIoKSBpbgo+PiB2dmNfcmVmcy5jIGN1cnJlbnRseSB1c2VzIHRoZSBWVkNGcmFtZUNvbnRl eHQgYW5kIHRoZXJlZm9yZSB1c2VzIHRoZQo+PiBnZXRfYnVmZmVyMiBjYWxsYmFjayBpbiBwbGFj ZSBub3cgKGR1cmluZyBhdl9tZW1kdXAoKSkuIFRoaXMgaXMgd3JvbmcuCj4+Cj4gVGhpcyB3aWxs IG5vdCBoYXBwZW4uIGF2X21lbWR1cCBvbmx5IGhhcHBlbnMgaW4gdnZjX2RlY29kZV9pbml0Lgo+ IE5vYm9keSB3aWxsIGNhbGwgZmZfdGhyZWFkX2dldF9idWZmZXIgYXQgdGhpcyB0aW1lCj4gCgpZ b3UgbWlzc2VkIHRoZSBwb2ludDogSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgZ2V0X2J1ZmZlcjIg Y2FsbGJhY2sgYWZ0ZXIKaW5pdCwgdGhlIG5ldyBjYWxsYmFjayB3aWxsIG5vdCBiZSB1c2VkIGF0 IGFsbC4KCj4+Cj4+IEkgdGhpbmsgeW91IGNhbiBqdXN0IHJlbW92ZSBWVkNGcmFtZUNvbnRleHQu YXZjdHggYW5kIHVzZSB0aGUKPj4gdXNlci1mYWNpbmcgQVZDb2RlY0NvbnRleHQgaWYgeW91IHNl dCB0aGUgQVZGcmFtZSBwcm9wZXJ0aWVzIHRoYXQgYXJlCj4+IG5vcm1hbGx5IGRlcml2ZWQgZnJv bSB0aGUgQVZDb2RlY0NvbnRleHQgZGlyZWN0bHkgb24gdGhlIEFWRnJhbWUgYmVmb3JlCj4+IGZm X3RocmVhZF9nZXRfYnVmZmVyKCkuCj4gCj4gQ291bGQgeW91IGV4cGxhaW4gbW9yZSBhYm91dCBo b3cgdG8gY3JlYXRlIGEgdXNlci1mYWNpbmcgIEFWQ29kZWNDb250ZXh0Pwo+IAoKWW91IGRvIG5v dCBjcmVhdGUgYSB1c2VyLWZhY2luZyBBVkNvZGVjQ29udGV4dCwgdGhlIHVzZXIgZG9lcyAoYW5k IGNhbGxzCmF2Y29kZWNfc2VuZF9wYWNrZXQoKS9hdmNvZGVjX3JlY2VpdmVfZnJhbWUoKSB3aXRo IGl0KS4KCj4+Cj4+PiArCj4+PiArc3RhdGljIGludCBkZWNvZGVfbmFsX3VuaXQoVlZDQ29udGV4 dCAqcywgVlZDRnJhbWVDb250ZXh0ICpmYywgY29uc3QKPj4gSDI2NDVOQUwgKm5hbCwgY29uc3Qg Q29kZWRCaXRzdHJlYW1Vbml0ICp1bml0KQo+Pj4gK3sKPj4+ICsgICAgaW50ICByZXQ7Cj4+PiAr Cj4+PiArICAgIHMtPnRlbXBvcmFsX2lkICAgPSBuYWwtPnRlbXBvcmFsX2lkOwo+Pj4gKwo+Pj4g KyAgICBzd2l0Y2ggKHVuaXQtPnR5cGUpIHsKPj4+ICsgICAgY2FzZSBWVkNfVlBTX05VVDoKPj4+ ICsgICAgY2FzZSBWVkNfU1BTX05VVDoKPj4+ICsgICAgY2FzZSBWVkNfUFBTX05VVDoKPj4+ICsg ICAgICAgIC8qIHZwcywgc3BzLCBzcHMgY2FjaGVkIGJ5IHMtPmNiYyAqLwo+Pj4gKyAgICAgICAg YnJlYWs7Cj4+PiArICAgIGNhc2UgVlZDX1RSQUlMX05VVDoKPj4+ICsgICAgY2FzZSBWVkNfU1RT QV9OVVQ6Cj4+PiArICAgIGNhc2UgVlZDX1JBRExfTlVUOgo+Pj4gKyAgICBjYXNlIFZWQ19SQVNM X05VVDoKPj4+ICsgICAgY2FzZSBWVkNfSURSX1dfUkFETDoKPj4+ICsgICAgY2FzZSBWVkNfSURS X05fTFA6Cj4+PiArICAgIGNhc2UgVlZDX0NSQV9OVVQ6Cj4+PiArICAgIGNhc2UgVlZDX0dEUl9O VVQ6Cj4+PiArICAgICAgICByZXQgPSBkZWNvZGVfc2xpY2UocywgZmMsIG5hbCwgdW5pdCk7Cj4+ PiArICAgICAgICBpZiAocmV0IDwgMCkKPj4+ICsgICAgICAgICAgICBnb3RvIGZhaWw7Cj4+PiAr ICAgICAgICBicmVhazsKPj4+ICsgICAgY2FzZSBWVkNfUFJFRklYX0FQU19OVVQ6Cj4+PiArICAg IGNhc2UgVlZDX1NVRkZJWF9BUFNfTlVUOgo+Pj4gKyAgICAgICAgcmV0ID0gZmZfdnZjX2RlY29k ZV9hcHMoJnMtPnBzLCB1bml0KTsKPj4+ICsgICAgICAgIGlmIChyZXQgPCAwKQo+Pj4gKyAgICAg ICAgICAgIGdvdG8gZmFpbDsKPj4+ICsgICAgICAgIGJyZWFrOwo+Pj4gKyAgICBkZWZhdWx0Ogo+ Pj4gKyAgICAgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfSU5GTywKPj4+ICsgICAgICAgICAg ICAgICAiU2tpcHBpbmcgTkFMIHVuaXQgJWRcbiIsIHVuaXQtPnR5cGUpOwo+Pgo+PiBUaGlzIHdp bGwgcHJvYmFibHkgYmUgdmVyeSBub2lzeSAoYW5kIHdhcm4gZm9yIGV2ZXJ5IFNFSSkuIEkgZG9u J3QgdGhpbmsKPj4gaXQgaXMgZXZlbiBuZWVkZWQsIGFzIGgyNjQ1X3BhcnNlLmMgYWxyZWFkeSBj b250YWlucyBkZWJ1ZyBsb2cgbWVzc2FnZXMKPj4gdG8gZGlzcGxheSB0aGUgdW5pdCB0eXBlLgo+ Pgo+IEl0J3MgY29waWVkIGZyb20gaGV2Y2RlYy4gSXQgbWVhbnMgd2UgZGlkIG5vdCBoYW5kbGUg dGhlIG5hbCBkaWZmcmVudCB0aGFuCj4gaDI2NDVfcGFyc2VyLmMgbWVzc2FnZXMKPiAKCjEuIFRo ZSBtZXNzYWdlIGlzIHVubmVjZXNzYXJ5LCBiZWNhdXNlIGEgdXNlciB3aG8gd2FudHMgdG8ga25v dyB3aGljaApOQUwgdW5pdHMgaGF2ZSBiZWVuIGhhbmRsZWQgb3Igbm90IGNhbiBnZXQgdGhlIGlu Zm8gYWJvdXQgd2hpY2ggdW5pdHMKYXJlIHByZXNlbnQgZnJvbSBoMjY0NV9wYXJzZS5jIGFuZCB0 aGVuIGxvb2sgdXAgaW4gdGhpcyBsaXN0IHdoZXRoZXIKdGhpcyB0eXBlIGlzIHByb2Nlc3NlZC4K Mi4gaGV2Y2RlYy5jIGRvZXMgImhhbmRsZSIgcXVpdGUgYSBsb3QgbW9yZSBOQUwgdW5pdHM7IGUu Zy4gaXQgYWN0dWFsbHkKaGFuZGxlcyBTRUkgbWVzc2FnZXMgYW5kIGl0IGlnbm9yZXMgZS5nLiBB Y2Nlc3MgdW5pdCBkZWxpbWl0ZXJzIGFzIHdlbGwKYXMgSEVWQ19OQUxfVU5TUEVDNjIuIFdoZXJl YXMgeW91IGRvIG5vdC4KCj4gQSBmYWlsIHRoYXQgaXMgb25seSAicmV0dXJuIHJldCIgaXMgcG9p bnRsZXNzIChub3Qgb25seSBoZXJlKS4KPj4KPiBBdCBzb21lZGF5IGlmIHdlIG5lZWQgdG8gYWRk IHNvbWUgY2xlYW51cCBjb2RlLiB3ZSBkbyBub3QgbmVlZCB0byBjaGFuZ2UKPiBhbGwgcmV0dXJu cyB0byBnb3RvLgo+IAoKSU1PIGEgZ290byBmYWlsIHNob3VsZCBiZSBhZGRlZCBpZiBhbmQgd2hl biBpdCBpcyBhY3R1YWxseSBiZW5lZmljaWFsLgoKPj4+ICsKPj4+ICsgICAgaWYgKG91dHB1dCkg ewo+Pj4gKyAgICAgICAgd2hpbGUgKHMtPm5iX2RlbGF5ZWQpIHsKPj4+ICsgICAgICAgICAgICB3 YWl0X2RlbGF5ZWRfZnJhbWUocywgb3V0cHV0LCAmZ290X291dHB1dCk7Cj4+PiArICAgICAgICAg ICAgaWYgKGdvdF9vdXRwdXQpIHsKPj4+ICsgICAgICAgICAgICAgICAgYXZfZnJhbWVfdW5yZWYo b3V0cHV0KTsKPj4+ICsgICAgICAgICAgICB9Cj4+PiArICAgICAgICB9Cj4+PiArICAgICAgICBh dl9mcmFtZV9mcmVlKCZvdXRwdXQpOwo+Pj4gKyAgICB9Cj4+PiAgfQo+Pj4KPj4+ICBzdGF0aWMg YXZfY29sZCBpbnQgdnZjX2RlY29kZV9mcmVlKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKPj4+ICB7 Cj4+PiArICAgIFZWQ0NvbnRleHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOwo+Pj4gKyAgICBpbnQg aTsKPj4+ICsKPj4+ICsgICAgZmZfY2JzX2ZyYWdtZW50X2ZyZWUoJnMtPmN1cnJlbnRfZnJhbWUp Owo+Pgo+PiBJcyBpdCBzdXJlIHRoYXQgdGhlIGZyYWdtZW50IGlzIG5vdCBpbiB1c2UgKGdpdmVu IHRoYXQgb3RoZXIgdGhyZWFkcyBtYXkKPj4gYmUgcnVubmluZyBub3cgYmVmb3JlIHZ2Y19kZWNv ZGVfZmx1c2goKSk/Cj4+Cj4gRG8geW91IG1lYW4gdGhlIGV4ZWN1dG9yIHRocmVhZHM/IElmIHRo ZXkgd2FudCB0byB1c2Ugc29tZSBkYXRhLCB0aGV5IHdpbGwKPiB0YWtlIHRoZWlyIG93biBoaXAu Cj4gc2VlIGZmX3JlZnN0cnVjdF9yZXBsYWNlKCZzcHMtPnIsIHJzcHMpOwo+IAoKImhpcCI/CgpJ IGhhdmUgbm93IG5vdGljZWQgdGhhdCB0aGUgU2xpY2VDb250ZXh0cyBjb250YWluIGEgcmVmZXJl bmNlIHRvIHRoZQpwYWNrZXQncyBkYXRhIHZpYSBWVkNTSC0+SDI2NlJhd1NsaWNlSGVhZGVyLCB3 aGljaCBpbiByZWFsaXR5IHBvaW50cyB0bwphIEgyNjZSYXdTbGljZSB3aGljaCBjb250YWlucyBh IHJlZmVyZW5jZSB0byB0aGUgYWN0dWFsIGRhdGEsIHNvIHRoaXMKcG9pbnQgaXMgbW9vdC4gQnV0 IHVzaW5nIEgyNjZSYXdTbGljZUhlYWRlciogZm9yIGEgSDI2NlJhd1NsaWNlKiBpcyBub3QKbmlj ZS4KCj4+Cj4+PiArCj4+PiArICAgIHMtPm5iX2ZjcyA9IChhdmN0eC0+ZmxhZ3MgJiBBVl9DT0RF Q19GTEFHX0xPV19ERUxBWSkgPyAxIDoKPj4gRkZNSU4oYXZfY3B1X2NvdW50KCksIFZWQ19NQVhf RlJNQUVfREVMQVkpOwo+Pgo+PiBUaGlzIG1heSBldmFsdWF0ZSBhdl9jcHVfY291bnQoKSBtdWx0 aXBsZSB0aW1lcy4gRnVydGhlcm1vcmUgSSBkb24ndAo+PiBrbm93IHdoeSB0aGlzIGRlZmluZSBp cyB1c2VkIGhlcmUgYXQgYWxsOiBXaXRoIGZyYW1lIHRocmVhZGluZywgdGhlCj4+IG51bWJlciBv ZiBmcmFtZSB0aHJlYWRzIGlzIG5vdCBsaW1pdGVkIGJ5IHRoZSBkZWxheS9udW1iZXIgb2YgcmVv cmRlcmluZwo+PiBmcmFtZXMgYXQgYWxsICh3ZSBldmVuIGhhdmUgZnJhbWUtdGhyZWFkaW5nIGZv ciBkZWNvZGVycyB3aXRob3V0Cj4+IGZyYW1lLXJlb3JkZXJpbmcgYXQgYWxsKS4KPj4KPiAgdnZj X2RlY29kZV9mcmFtZSBvbmx5IGFsbG93cyAxIGZyYW1lIGluIDEgZnJhbWUgb3V0LiBXZSBjYW4g cmVtb3ZlIHRoZQo+IGRlbGF5IGlmIHdlIHN3aXRjaCB0byBGRkNvZGVjLT5yZWNlaXZlX2ZyYW1l LAo+IAoKSSBkbyBub3QgZ2V0IGhvdyB0aGlzIGlzIHN1cHBvc2VkIHRvIGFkZHJlc3MgbXkgcG9p bnQuCgo+Pgo+PiBCdXQgd29yc3Qgb2YgdGhpcyBpcyB0aGF0IHlvdSBkbyBub3QgY2hlY2sgYXZj dHgtPnRocmVhZF9jb3VudCBhdCBhbGwuCj4+Cj4gd2UgZG8gbm90IHVzZSBhdmN0eC0+dGhyZWFk X2NvdW50LiAgd2UgdXNlIHRoZSBleGVjdXRvciB0byBtYW5hZ2UgdGhyZWFkcy4KPiAKClRoaXMg aXMgY29tcGxldGUgbm9uc2Vuc2U6IEl0IGlzIHRoZSB1c2VyIHdobyBzcGVjaWZpZXMgaG93IG1h bnkgdGhyZWFkcwp0byB1c2UsIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggbWVjaGFuaXNtIGlzIHVzZWQg dG8gbWFuYWdlIHRocmVhZHMuCgo+Pgo+Pj4gKyAgICBzLT5mY3MgPSBhdl9jYWxsb2Mocy0+bmJf ZmNzLCBzaXplb2YoKnMtPmZjcykpOwo+Pj4gKyAgICBpZiAoIXMtPmZjcykKPj4+ICsgICAgICAg IGdvdG8gZmFpbDsKPj4+ICsKPj4+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5uYl9mY3M7 IGkrKykgewo+Pj4gKyAgICAgICAgVlZDRnJhbWVDb250ZXh0ICpmYyA9IHMtPmZjcyArIGk7Cj4+ PiArICAgICAgICByZXQgPSBmcmFtZV9jb250ZXh0X2luaXQoZmMsIGF2Y3R4KTsKPj4+ICsgICAg ICAgIGlmIChyZXQgPCAwKQo+Pj4gKyAgICAgICAgICAgIGdvdG8gZmFpbDsKPj4+ICsgICAgfQo+ Pj4gKwo+Pj4gKyAgICBzLT5leGVjdXRvciA9IGZmX3Z2Y19leGVjdXRvcl9hbGxvYyhzLCBzLT5u Yl9mY3MpOwo+Pj4gKyAgICBpZiAoIXMtPmV4ZWN1dG9yKQo+Pj4gKyAgICAgICAgZ290byBmYWls Owo+Pj4gKwo+Pj4gKyAgICBzLT5lb3MgPSAxOwo+Pj4gKyAgICBHRFJfU0VUX1JFQ09WRVJFRChz KTsKPj4+ICsgICAgbWVtc2V0KCZmZl92dmNfZGVmYXVsdF9zY2FsZV9tLCAxNiwgc2l6ZW9mKGZm X3Z2Y19kZWZhdWx0X3NjYWxlX20pKTsKPj4KPj4gVGhpcyBuZWVkcyB0byBiZSBkb25lIG9uY2Ug KGkuZS4gcHJvdGVjdGVkIGJ5IGFuIEFWT25jZSkgYW5kIG5vdCBldmVyeQo+PiB0aW1lIGEgZGVj b2RlciBpcyBzZXQgdXAuIE90aGVyd2lzZSB0aGVyZSBtaWdodCBiZSBkYXRhIHJhY2VzLgo+Pgo+ IEl0J3Mgbm90IHJlYWQgYW5kIHNldCwgaXQgd2lsbCBubyBkYXRhIHJhY2VzOiksIEkgY2FuIGNo YW5nZSBpdCB0byAgQVZPbmNlCj4gLgoKVGhpcyBpcyB3cm9uZzogSXQgaXMgc2V0IGhlcmUgYW5k IHByZXN1bWFibHkgaXQgd2lsbCBiZSByZWFkIHNvbWV3aGVyZSwKc28gdGhlcmUgYWJzb2x1dGVs eSBjYW4gYmUgZGF0YSByYWNlcy4KSWYgeW91IGJlbGlldmUgdGhhdCB0aGVyZSBpcyBubyBkYXRh IHJhY2UgYmVjYXVzZSBldmVyeSBtZW1zZXQgc2V0cyBpdAp0byB0aGUgc2FtZSB2YWx1ZSwgdGhl biB5b3Ugc2hvdWxkIGJlIGF3YXJlIHRoYXQgdGhlIEMgc3BlY2lmaWNhdGlvbgpkaXNhZ3JlZXMg d2l0aCB5b3UgKGFsbCByZWZlcmVuY2VzIGFyZSB0byB0aGUgQzExIHNwZWMpOgoKYSkgNS4xLjIu NCAyNTogIlRoZSBleGVjdXRpb24gb2YgYSBwcm9ncmFtIGNvbnRhaW5zIGEgZGF0YSByYWNlIGlm IGl0CmNvbnRhaW5zIHR3byBjb25mbGljdGluZyBhY3Rpb25zIGluIGRpZmZlcmVudCB0aHJlYWRz LCBhdCBsZWFzdCBvbmUgb2YKd2hpY2ggaXMgbm90IGF0b21pYywgYW5kIG5laXRoZXIgaGFwcGVu cyBiZWZvcmUgdGhlIG90aGVyLiBBbnkgc3VjaCBkYXRhCnJhY2UgcmVzdWx0cyBpbiB1bmRlZmlu ZWQgYmVoYXZpb3IuIgpiKSA1LjEuMi40IDQ6ICJUd28gZXhwcmVzc2lvbiBldmFsdWF0aW9ucyBj b25mbGljdCBpZiBvbmUgb2YgdGhlbQptb2RpZmllcyBhIG1lbW9yeSBsb2NhdGlvbiBhbmQgdGhl IG90aGVyIG9uZSByZWFkcyBvciBtb2RpZmllcyB0aGUgc2FtZQptZW1vcnkgbG9jYXRpb24uIgpj KSBOb3RlIDIgaW4gMy4xICh0byB0aGUgZGVmaW5pdGlvbiBvZiAiYWNjZXNzIik6CiLigJjigJhN b2RpZnnigJnigJkgaW5jbHVkZXMgdGhlIGNhc2Ugd2hlcmUgdGhlIG5ldyB2YWx1ZSBiZWluZyBz dG9yZWQgaXMgdGhlCnNhbWUgYXMgdGhlIHByZXZpb3VzIHZhbHVlLiIKCldpdGggdGhlIGN1cnJl bnQgY29kZSBkYXRhIHJhY2VzIHdpbGwgaGFwcGVuIGlmIGEpIHR3byBkaWZmZXJlbnQgZGVjb2Rl cgppbnN0YW5jZXMgYXJlIGluaXRpYWxpemVkIHdpdGhvdXQgc3luY2hyb25pc2F0aW9uIChnaXZl biB0aGF0IGxhdmMgZG9lcwpub3Qgc2VyaWFsaXplIGluaXRpYWxpemF0aW9uIG9mIGNvZGVjcyAo ZXhjZXB0IGluIHJhcmUgY2FzZXMgYmFzZWQgdXBvbgphIGZsYWcgd2hpY2ggdGhpcyBkZWNvZGVy IGRvZXMgbm90IHNldCksIHRoaXMgc3luY2hyb25pemF0aW9uIHdvdWxkIGhhdmUKdG8gYmUgcGVy Zm9ybWVkIGJ5IHRoZSB1c2VyLCBidXQgd2UgZG8gbm90IHJlcXVpcmUgb3VyIHVzZXJzIHRvIGRv IHRoaXMpCm9yIGIpIGEgZGVjb2RlciBpcyBpbml0aWFsaXplZCB3aGlsZSBhbm90aGVyIGRlY29k ZXIgcnVucyBhbmQgcmVhZHMgZnJvbQpmZl92dmNfZGVmYXVsdF9zY2FsZV9tOgoKQmVjYXVzZSB0 aGUgYWNjZXNzZXMgcGVyZm9ybWVkIGJ5IHRoZSBpbml0aW5nIHRocmVhZCBhcmUgYWx3YXlzCm1v ZGlmaWNhdGlvbnMgYWNjb3JkaW5nIHRvIGMpLCB0aGUgYWNjZXNzZXMgYnkgdGhlIGRpZmZlcmVu dCB0aHJlYWRzCmNvbmZsaWN0IGJ5IGRlZmluaXRpb24gYikuIG1lbXNldCgpIGlzIG5vdCByZXF1 aXJlZCB0byBwZXJmb3JtIGF0b21pYwptb2RpZmljYXRpb25zIChhbmQgYWNjb3JkaW5nIHRvIHRo ZSBzdGFuZGFyZCBhdG9taWMgbW9kaWZpY2F0aW9ucyBjYW4Kb25seSBoYXBwZW4gd2l0aCBhdG9t aWMgb2JqZWN0cywgd2hpY2ggZmZfdnZjX2RlZmF1bHRfc2NhbGVfbSBpcyBub3QpCmFuZCBieSBv dXIgYXNzdW1wdGlvbiB0aGVyZSBpcyBubyBzeW5jaHJvbmlzYXRpb24gYmV0d2VlbiB0aGVzZSBh Y3Rpb25zLApzbyBpdCBpcyBhIGRhdGEgcmFjZSBhY2NvcmRpbmcgdG8gYSkuIEFuZCBkYXRhIHJh Y2VzIGFyZSB1bmRlZmluZWQKYmVoYXZpb3VyLgoKVGhpcyBjbGF1c2UgYWxsb3dzIGNvbXBpbGVy cyB0byBvcHRpbWl6ZSBsb3RzIG9mIGNvZGUgYXMgaWYgdGhlIHByb2dyYW0Kd2VyZSBzaW5nbGUt dGhyZWFkZWQgKGJlY2F1c2UgY29uY3VycmVudCBhY2Nlc3NlcyB3ZXJlIFVCLCBzbyBwcmVzdW1h Ymx5CnRoZXkgZG9uJ3QgaGFwcGVuKS4gSW4gcGFydGljdWxhciwgc3BlY3VsYXRpdmUgd3JpdGVz IGFyZSBsZWdhbCAoYW5kCmhhcHBlbiBzb21ldGltZXMsIGJ1dCBwcm9iYWJseSBub3QgaW4gbWVt c2V0KS4gSW4gZmFjdCwgaXQgd291bGQgYmUKbGVnYWwgZm9yIG1lbXNldCB0byBhbHdheXMgemVy byB0aGUgbWVtb3J5IGl0IGlzIHN1cHBvc2VkIHRvIHNldCBhbmQKdGhlbiBvdmVyd3JpdGUgaXQg d2l0aCB0aGUgZmluYWwgdmFsdWUuCgotIEFuZHJlYXMKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVn LWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZt cGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZt cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K