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 DC4D8423C1 for ; Thu, 14 Apr 2022 16:43:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 41F8568B477; Thu, 14 Apr 2022 19:43:38 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2055.outbound.protection.outlook.com [40.92.89.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C2AAD68B3C1 for ; Thu, 14 Apr 2022 19:43:31 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jy97IZWY59scSkUxVs4QTQEJWVsxPGJ12SeO3tCV5T5maqiMZBJUlmTiCmCw3iSBWdWSLp5ndWrp0iIMRtuobp1v+MzSj2sNNF/ejf+vWTDJqdh7AV+4vCC2X22XCQDX2voQIkiAwJBCRSSQpgK5xrQ8Fz/CT2WUjGDa8AOYrOhJcHRN14hFH27FczxVTSm2xe/BbsUwbWxUMknX0/NHdm2hqm/Y/Tg5aswkg52B5cfqgczUHAJImPfuKkD9zBYtFi/1MFfWye/kRly/elYLwT6F+D7ov8xPdB6IzWdv4VF0JIfgc6Az4+5COKojdSQ7jUb+xTssBL9INTnsaOxoYA== 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=a7PzL0EaVBg2M3xM37bAeeRkUrfQ8ozuAAx/ohfP2oM=; b=J/zABs7w5ku9h0TkMg2UpRGsf9ntU9LcSl41rUYVFMSxaeoucMckVO2SlK2ul3eue6k+2AHYtMTOyWjBGGlbZAH4x6/RRsxx2o139IFXcJ3h8KfZbeHHREKeyjQABkvI529rhIClw77lmiJm7Yj5UmPjJGQ7zEYPgAtgM1bROeSi0tKWUAJ/JOxSD2KA7T6ReYy0vhfuLnCTroCMbkoQNPnYKQzZHHQUQc+mxXUl1Kn2kyPZ9QKsQKkS+xkCvCp8TXOfT1U+NNmRz9rT13k+XhRklr9auv405NUx+cBlMhUXtAoqkeOD10AaZYJjUZQLAFGktd4VznvKbSVVfv3fxA== 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=a7PzL0EaVBg2M3xM37bAeeRkUrfQ8ozuAAx/ohfP2oM=; b=X+3WV1Xj+kxvmd0QB3mh049xfcKamM3i+6pq/jAUkCVgboUBDsX36EP4SgHNyiVh8COcQxPFxLmQQqhrpNnU9zQ0QJt00IVs+hJvcAgOTCmnlm2MFdFvB/quEmeYtGXxX85R2dGN+rqUK0aaHmZFewz+apRk5WQmm/X1R7q7tAyu/5nXM8C93FjwkPkx0gvBS/7Y64b7L64r6paTJnXFV3HZKQboIg3POJLv/xZZr1NxB57NucB/xhw3HiuxVDCq7BgFTtKiGDMUJ2IjQi30eGRdEGFO72FS31XJl0aTjYmS19G/Q2V24bYc8nOHUtb+kemP6aKCPbAE36WgcrcgvQ== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by DB7PR01MB5339.eurprd01.prod.exchangelabs.com (2603:10a6:10:8b::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Thu, 14 Apr 2022 16:43:30 +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.020; Thu, 14 Apr 2022 16:43:29 +0000 Message-ID: Date: Thu, 14 Apr 2022 18:43:28 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [A7itlCOjDUGuvzX/W4k+sg9MsD+2Ueaz] X-ClientProxiedBy: AS9PR06CA0275.eurprd06.prod.outlook.com (2603:10a6:20b:45a::24) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <827cfd90-0794-3ce1-334e-eaf3db3e6c83@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e025b565-cc1e-4e42-9539-08da1e35e7d3 X-MS-TrafficTypeDiagnostic: DB7PR01MB5339:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xO1NOLvrXx8HoPm1Gx7/m/fznKj1n2gQuLf5GJLL68jrZqin8NX6MHOkNz6RbssEJENiGjOwFoCFbtSezqT1LQVR776JUZ8LqK6mpzu6d74HofFMzKA/aCmA3vvU+qKn/KdT6c4Of2LjfLyfavu+8z7WHFnn2NFbWBJM3k8wooFJIMmRYesNR2EboWSHN26yS+aowPnn5/4V9RKBWl3VMpvc1zXe7NB7AQvD+INFEO3avvA9tT5YFRVy3zYiSlbKhkcITJvWKbhk2juCSdtAqBTKJ/HDB8ht/+cS8LWTPEyzy20YSHu+wOO8geiaGst7Iojpa68YWYAJNeRcU8EnMicGl3BHSCQX71ogiafBbKzSxiY+V2FO7b1zxjJWY7S5N4Gs/7A6jkDV3NXtDLlTREb4ZknbUVyS3DUdMNSlT7RFX3cM3WnHiBrUVI0sCyCLYlcyDQycqCC8TklJt2fYnlIzmxhsPYS7VgOvxOkoc7SytXiMQ2rj0fSyRKEGxTPh3qmbV8irB0xdWcrsAGZtWehLs7w/1TNYOHYCPbty6lAhtzdIMVgelYXy9cCfVUOTBplvg+ZW/a0ma0aIgD2B9A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWEyUHJoRXFXZ1QrZktCcTFGQnVSRzFiVkk2SkJSdEFLaDJoSEFoR2FDTkZS?= =?utf-8?B?MW5KMkowaHhKWGlBSXVOWjZqWndXRzA0N29EMEFtSGpDK2pqa00xTnI0NzdO?= =?utf-8?B?UE1OcFIzbE5CalBjbGNRNzNwK2FwSUg3L1ZFcXpySEFiZEVvUEw2N0p0VkhR?= =?utf-8?B?VzJDdnBucHZJS1lkbEEzcXUybTVSWkdXWEFQUm9WNEhXL0t4VVhpMmxnT1FN?= =?utf-8?B?SEtjL1Nybk9mMHdtbVZMZXFDTzZEVGc5TitKUkVqakd1YTJ0Y05LdzVDUm55?= =?utf-8?B?RHJZc3JndTBERWluU1pBbUxybFZIeFRLbFNpdnNVWndjWVVuYjZkS3M0TlZj?= =?utf-8?B?RFJVWWJobEdDazV2bnpWVnNIdHEwb3NzM3g2V3lIY0R6T3hyV0w4emEvMU9G?= =?utf-8?B?cmIzS3haUFhBcHpucjgzYnBHdjZyVHpHU2dneUtuZnJwZktwL21jNGQ3MG1w?= =?utf-8?B?OGhEMnc3TGdGcUhwSndMYWhWYllESy9KRUhwQTlreVNpaFRIVGJ5QzJGOVpu?= =?utf-8?B?RHNIWk9sTENjamJlM2tlQkhrWXY2OGhpRFN1Q1E3OXQ4a0V6YVBkR3pLYTQv?= =?utf-8?B?b0xSTmIrZlhNL0xLaEdJKzE4NzF5Sm1oZ0Y2R1I5ZzdEUEJ5ZXJYUTBoTkZG?= =?utf-8?B?WXI5TEZHQWVWdS9KdDR0am95THVCQUFhczBvcXJJY2JBeHUxTmhjMTlxRVZk?= =?utf-8?B?VkZNWTB6aTlJd05Vc1kzQmNodTFtcFZYQ1dpTFNlVllPZ3JuRnRVOTRGNndi?= =?utf-8?B?SFJUMXFnRlU0M2F5SW5tOTlDN21rVDVxc2tndEd3ZkVMZnFxamFqZitFMVdv?= =?utf-8?B?SC9NMWx1bkcyMUMraElVY2hoQXlaUjErWjhaVmxrU0xMTjBPOCtxZlFlVEJM?= =?utf-8?B?NmpVQlA5cUVCdlRuQmxvRHpQK3VPLzR4bDQvcnY0a2h4cU8ybnlwb0E2d1Q2?= =?utf-8?B?cmp0dGV0bmhZby9SRjJEVXlTUlNEVXBTL1h0bUZ4SGRaQjJnWS9CTkd0OVBl?= =?utf-8?B?dTdzZmh1QktQRFJKbkVuT0lMOG5RT2kzeVZsd0o3cWE1RUV4aDNqNXZudzAy?= =?utf-8?B?eGpRRm9jSFN3TGN1SVcxUmVmTlJwdXgxQ0ZWbm5UU1R3U0R6VWNwbWJ2MFd3?= =?utf-8?B?TXg2enp5Z2tXSXZhdjV6TzZrdGRYODUvSVZzd0pzbmc0NWNKMFUrdUhSbnBO?= =?utf-8?B?SFdhUklCT0p2S2JiQlZHTkswUklhbnBJekNLS1N1OWZYR1FQRFNYSVBzWE4x?= =?utf-8?B?QmJLQkhUOERjak01QjFPR3dlakw0ZnlsczhUaHMzaTd3MWVPcGgyNjVsR1ha?= =?utf-8?B?NmtvY0lOYVY5SUhZekNGUmNsQXBrR1ppV2x0R01XanU5enNRTXFQWGZudTd3?= =?utf-8?B?LzhEdWloa0RwOUREQmVYUUdMNWxaK3orQTVRSms3TmEvTGVmbFFOVk9uMUZM?= =?utf-8?B?L2w4SFViK2ZTdFkxbEtOWWhmZE8zc2F3YXhYZ0p4L1IwUDArUjdURGQydGlz?= =?utf-8?B?Um1YT0ZLaGJudkxuM0tyS29zRWppMU81ejZHYXNKREMybmc3OW13TWhXSHNP?= =?utf-8?B?c0FPTTFqS2tvSjVGQ0VqSVVSOC9kaWJxMFp4S1N5ZWUrb3VPVGVhTXhpSi9Y?= =?utf-8?B?cG9iZVA3d1R5Q29RRnNrUDlJMm52WkgrSEJSck83Tnd3NzdCMVdyNXpPZEhI?= =?utf-8?B?SVFaenFVemdoVU40NWliaDR0WjJDdmJNdzdiRkRBSTRwR0crMXE2SHZjdXZI?= =?utf-8?B?bGdnQVFncFBLS0k2eWZIQnptbWJOODlaUStUbmRKVHdVRzh3UCtuaVNDa1U2?= =?utf-8?B?d0NnbVNMa2pWUGVkRVZjY1F2WkdoTFJ3cU5VUnVDM1NYQmY1cld5NzdLZXY5?= =?utf-8?B?ZVBEQlZBS2M2a0owOGhKSUVaOVh2MzNHU1JDbDhPM0JISWltUWZTMEpvN2JR?= =?utf-8?Q?r5JQUhgHtLhhTiQZisi510kg28MwkSWB?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e025b565-cc1e-4e42-9539-08da1e35e7d3 X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2022 16:43:29.9411 (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: DB7PR01MB5339 Subject: Re: [FFmpeg-devel] [PATCH 2/5] avcodec/mjpegdec: Don't create unnecessary AVFrame reference 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: SmFtZXMgQWxtZXI6Cj4gT24gNC8xNC8yMDIyIDEyOjU3IFBNLCBBbmRyZWFzIFJoZWluaGFyZHQg d3JvdGU6Cj4+IE1KUEVHIGlzIGFuIGludHJhLWNvZGVjLCBzbyBpdCBtYWtlcyBubyBzZW5zZSB0 byBrZWVwIHRoZSByZWZlcmVuY2UuCj4+IEl0IGlzIGJhc2ljYWxseSB1bnVzZWQgbGF0ZXJvbiBh bnl3YXkuCj4gCj4gV291bGRuJ3QgdGhpcyBtZWFuIHlvdSBjYW4gcmVtb3ZlIHRoZSBBVl9HRVRf QlVGRkVSX0ZMQUdfUkVGIGZsYWcgZnJvbQo+IHRoZSBmZl9nZXRfYnVmZmVyKCkgY2FsbD8KPiAK Ck5vdCBpbiBjYXNlIG9mIFNNVi4gVGhlIHNtdiBjb2RlIGtlZXBzIGEgcmVmZXJlbmNlIGFuZCBy ZXVzZXMgaXQuIFNlZQpzbXZfcHJvY2Vzc19mcmFtZS4KCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEFu ZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgo+PiAtLS0K Pj4gwqAgbGliYXZjb2RlYy9tanBlZ2RlYy5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+PiDCoCAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygr KSwgMjMgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL21qcGVnZGVj LmMgYi9saWJhdmNvZGVjL21qcGVnZGVjLmMKPj4gaW5kZXggMGU3NmJmNGMyNi4uOTM5ZGVkY2Uz MyAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9tanBlZ2RlYy5jCj4+ICsrKyBiL2xpYmF2Y29k ZWMvbWpwZWdkZWMuYwo+PiBAQCAtMjU4OSw4ICsyNTg5LDcgQEAgZW9pX3BhcnNlcjoKPj4gwqAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9mcmVlcCgmcy0+aHdhY2NlbF9w aWN0dXJlX3ByaXZhdGUpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGlmICgocmV0ID0gYXZfZnJhbWVfcmVmKGZyYW1lLCBzLT5waWN0 dXJlX3B0cikpIDwgMCkKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g cmV0Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9mcmFtZV9tb3ZlX3JlZihmcmFtZSwg cy0+cGljdHVyZV9wdHIpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzLT5nb3RfcGlj dHVyZSA9IDA7Cj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZyYW1lLT5wa3RfZHRz ID0gcy0+cGt0LT5kdHM7Cj4+IEBAIC0yNjc1LDkgKzI2NzQsOSBAQCB0aGVfZW5kOgo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgaWYgKHJldCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIHJldDsKPj4gwqAgLcKgwqDCoMKgwqDCoMKgIGF2X2Fzc2VydDAocy0+bmJfY29tcG9uZW50 cyA9PQo+PiBhdl9waXhfZm10X2NvdW50X3BsYW5lcyhzLT5waWN0dXJlX3B0ci0+Zm9ybWF0KSk7 Cj4+ICvCoMKgwqDCoMKgwqDCoCBhdl9hc3NlcnQwKHMtPm5iX2NvbXBvbmVudHMgPT0KPj4gYXZf cGl4X2ZtdF9jb3VudF9wbGFuZXMoZnJhbWUtPmZvcm1hdCkpOwo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgZm9yIChwID0gMDsgcDxzLT5uYl9jb21wb25lbnRzOyBwKyspIHsKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdWludDhfdCAqbGluZSA9IHMtPnBpY3R1cmVfcHRyLT5kYXRhW3BdOwo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90ICpsaW5lID0gZnJhbWUtPmRhdGFbcF07Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCB3ID0gcy0+d2lkdGg7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGludCBoID0gcy0+aGVpZ2h0Owo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAoIXMtPnVwc2NhbGVfaFtwXSkKPj4gQEAgLTI3MzcsNyArMjczNiw3IEBA IHRoZV9lbmQ6Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocmV0KQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiDCoCAtwqDCoMKgwqDCoMKgwqAgYXZfYXNzZXJ0 MChzLT5uYl9jb21wb25lbnRzID09Cj4+IGF2X3BpeF9mbXRfY291bnRfcGxhbmVzKHMtPnBpY3R1 cmVfcHRyLT5mb3JtYXQpKTsKPj4gK8KgwqDCoMKgwqDCoMKgIGF2X2Fzc2VydDAocy0+bmJfY29t cG9uZW50cyA9PQo+PiBhdl9waXhfZm10X2NvdW50X3BsYW5lcyhmcmFtZS0+Zm9ybWF0KSk7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBmb3IgKHAgPSAwOyBwIDwgcy0+bmJfY29tcG9uZW50czsgcCsr KSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgKmRzdDsKPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IHcgPSBzLT53aWR0aDsKPj4gQEAgLTI3NDgsMTAgKzI3 NDcsMTAgQEAgdGhlX2VuZDoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3 ID0gQVZfQ0VJTF9SU0hJRlQodywgaHNoaWZ0KTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBoID0gQVZfQ0VJTF9SU0hJRlQoaCwgdnNoaWZ0KTsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkc3QgPSAmKCh1aW50 OF90ICopcy0+cGljdHVyZV9wdHItPmRhdGFbcF0pWyhoIC0gMSkgKgo+PiBzLT5saW5lc2l6ZVtw XV07Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRzdCA9ICZmcmFtZS0+ZGF0YVtwXVsoaCAt IDEpICogcy0+bGluZXNpemVbcF1dOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmb3Ig KGkgPSBoIC0gMTsgaTsgaS0tKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dWludDhfdCAqc3JjMSA9ICYoKHVpbnQ4X3QKPj4gKilzLT5waWN0dXJlX3B0ci0+ZGF0YVtwXSlb aSAqIHMtPnVwc2NhbGVfdltwXSAvIChzLT51cHNjYWxlX3ZbcF0gKyAxKQo+PiAqIHMtPmxpbmVz aXplW3BdXTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90ICpzcmMy ID0gJigodWludDhfdAo+PiAqKXMtPnBpY3R1cmVfcHRyLT5kYXRhW3BdKVsoaSArIDEpICogcy0+ dXBzY2FsZV92W3BdIC8KPj4gKHMtPnVwc2NhbGVfdltwXSArIDEpICogcy0+bGluZXNpemVbcF1d Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgKnNyYzEgPSAmZnJh bWUtPmRhdGFbcF1bIGnCoMKgwqDCoMKgICoKPj4gcy0+dXBzY2FsZV92W3BdIC8gKHMtPnVwc2Nh bGVfdltwXSArIDEpICogcy0+bGluZXNpemVbcF1dOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHVpbnQ4X3QgKnNyYzIgPSAmZnJhbWUtPmRhdGFbcF1bKGkgKyAxKSAqCj4+IHMt PnVwc2NhbGVfdltwXSAvIChzLT51cHNjYWxlX3ZbcF0gKyAxKSAqIHMtPmxpbmVzaXplW3BdXTsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocy0+dXBzY2FsZV92W3Bd ICE9IDIgJiYgKHNyYzEgPT0gc3JjMiB8fCBpID09IGgKPj4gLSAxKSkgewo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWVtY3B5KGRzdCwgc3JjMSwgdyk7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4gQEAgLTI3Njgs MzYgKzI3NjcsMzYgQEAgdGhlX2VuZDoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXQpCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+IMKgIC3CoMKgwqDCoMKg wqDCoCBhdl9hc3NlcnQwKHMtPm5iX2NvbXBvbmVudHMgPT0KPj4gYXZfcGl4X2ZtdF9jb3VudF9w bGFuZXMocy0+cGljdHVyZV9wdHItPmZvcm1hdCkpOwo+PiArwqDCoMKgwqDCoMKgwqAgYXZfYXNz ZXJ0MChzLT5uYl9jb21wb25lbnRzID09Cj4+IGF2X3BpeF9mbXRfY291bnRfcGxhbmVzKGZyYW1l LT5mb3JtYXQpKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAoaW5kZXg9MDsgaW5kZXg8cy0+ bmJfY29tcG9uZW50czsgaW5kZXgrKykgewo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50 OF90ICpkc3QgPSBzLT5waWN0dXJlX3B0ci0+ZGF0YVtpbmRleF07Cj4+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGludCB3ID0gcy0+cGljdHVyZV9wdHItPndpZHRoOwo+PiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpbnQgaCA9IHMtPnBpY3R1cmVfcHRyLT5oZWlnaHQ7Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHVpbnQ4X3QgKmRzdCA9IGZyYW1lLT5kYXRhW2luZGV4XTsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaW50IHcgPSBmcmFtZS0+d2lkdGg7Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGludCBoID0gZnJhbWUtPmhlaWdodDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYoaW5kZXggJiYgaW5kZXg8Myl7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdyA9IEFWX0NFSUxfUlNISUZUKHcsIGhzaGlmdCk7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaCA9IEFWX0NFSUxfUlNISUZUKGgsIHZzaGlmdCk7Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYoZHN0KXsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90ICpkc3Qy ID0gZHN0ICsKPj4gcy0+cGljdHVyZV9wdHItPmxpbmVzaXplW2luZGV4XSooaC0xKTsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90ICpkc3QyID0gZHN0ICsgZnJhbWUt PmxpbmVzaXplW2luZGV4XSooaC0xKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBmb3IgKGk9MDsgaTxoLzI7IGkrKykgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZm9yIChqPTA7IGo8dzsgaisrKQo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBGRlNXQVAoaW50LCBkc3Rbal0sIGRz dDJbal0pOwo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZHN0wqAg Kz0gcy0+cGljdHVyZV9wdHItPmxpbmVzaXplW2luZGV4XTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRzdDIgLT0gcy0+cGljdHVyZV9wdHItPmxpbmVzaXplW2lu ZGV4XTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRzdMKgICs9 IGZyYW1lLT5saW5lc2l6ZVtpbmRleF07Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBkc3QyIC09IGZyYW1lLT5saW5lc2l6ZVtpbmRleF07Cj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgIGlm IChzLT5hZG9iZV90cmFuc2Zvcm0gPT0gMCAmJiBzLT5hdmN0eC0+cGl4X2ZtdCA9PQo+PiBBVl9Q SVhfRk1UX0dCUkFQKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpbnQgdyA9IHMtPnBpY3R1cmVfcHRy LT53aWR0aDsKPj4gLcKgwqDCoMKgwqDCoMKgIGludCBoID0gcy0+cGljdHVyZV9wdHItPmhlaWdo dDsKPj4gK8KgwqDCoMKgwqDCoMKgIGludCB3ID0gZnJhbWUtPndpZHRoOwo+PiArwqDCoMKgwqDC oMKgwqAgaW50IGggPSBmcmFtZS0+aGVpZ2h0Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfYXNz ZXJ0MChzLT5uYl9jb21wb25lbnRzID09IDQpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIChp PTA7IGk8aDsgaSsrKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBqOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90ICpkc3RbNF07Cj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGZvciAoaW5kZXg9MDsgaW5kZXg8NDsgaW5kZXgrKykgewo+PiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRzdFtpbmRleF0gPcKgwqAgcy0+cGljdHVyZV9w dHItPmRhdGFbaW5kZXhdCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCArIHMtPnBpY3R1cmVfcHRyLT5saW5lc2l6ZVtpbmRleF0qaTsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkc3RbaW5kZXhdID3CoMKgIGZyYW1l LT5kYXRhW2luZGV4XQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKyBmcmFtZS0+bGluZXNpemVbaW5kZXhdKmk7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIChq PTA7IGo8dzsgaisrKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50 IGsgPSBkc3RbM11bal07Cj4+IEBAIC0yODEyLDE1ICsyODExLDE1IEBAIHRoZV9lbmQ6Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgIGlmIChzLT5h ZG9iZV90cmFuc2Zvcm0gPT0gMiAmJiBzLT5hdmN0eC0+cGl4X2ZtdCA9PQo+PiBBVl9QSVhfRk1U X1lVVkE0NDRQKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpbnQgdyA9IHMtPnBpY3R1cmVfcHRyLT53 aWR0aDsKPj4gLcKgwqDCoMKgwqDCoMKgIGludCBoID0gcy0+cGljdHVyZV9wdHItPmhlaWdodDsK Pj4gK8KgwqDCoMKgwqDCoMKgIGludCB3ID0gZnJhbWUtPndpZHRoOwo+PiArwqDCoMKgwqDCoMKg wqAgaW50IGggPSBmcmFtZS0+aGVpZ2h0Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfYXNzZXJ0 MChzLT5uYl9jb21wb25lbnRzID09IDQpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIChpPTA7 IGk8aDsgaSsrKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBqOwo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90ICpkc3RbNF07Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGZvciAoaW5kZXg9MDsgaW5kZXg8NDsgaW5kZXgrKykgewo+PiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRzdFtpbmRleF0gPcKgwqAgcy0+cGljdHVyZV9wdHIt PmRhdGFbaW5kZXhdCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCArIHMtPnBpY3R1cmVfcHRyLT5saW5lc2l6ZVtpbmRleF0qaTsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkc3RbaW5kZXhdID3CoMKgIGZyYW1lLT5k YXRhW2luZGV4XQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKyBmcmFtZS0+bGluZXNpemVbaW5kZXhdKmk7Cj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIChqPTA7 IGo8dzsgaisrKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGsg PSBkc3RbM11bal07Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNj cmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZt cGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K