From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 7BB4D4FD79 for ; Wed, 2 Jul 2025 09:11:01 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id E85F468CE20; Wed, 2 Jul 2025 12:10:56 +0300 (EEST) Received: from MA0PR01CU009.outbound.protection.outlook.com (mail-southindiaazon11020111.outbound.protection.outlook.com [52.101.227.111]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id EB5A568CC7C for ; Wed, 2 Jul 2025 12:10:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=P4boA8+o3an2JzghO0wMlFQhDI1HQmUnWcFHI9IyLJ36/H0LC8a0uA4/F1JcmCkwMVEaR64GWc1jhZ8amcnnnpmQLQO1ENzCD6VJ/BCUvd9tBS+s0mpAkK1GWGllHW4uWkN3dqhNrZrTt4xtOfflR4nOsMswBarfo6lrGs/eogjDuwB0EkoqY0bMuWVT7wbrbJ3h5PaGYRprs1SjRfzzLmWsVr2QmU5KIjuqE4wDEOyCijGSyZkZs1oa3HyIElyTV6FBRVIp7duHB8qr52tl7GsxjZ8gK2qRe7n7jWoh+gw0LUsDG5kmI23NzGgSE5o1jaH7HBGE5dJAOC7fXGHAyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=u6DAsJG7XPzi3fD7x3jro33+Q5sDjlgg4+SlxGuVwYE=; b=zFo58sBZ3hZ1IzWPWzmX0U4E2GlXYgetvBZlIh6bxz11pS0q/X4o16YrhXbLRQp6oB89sPIHWg39twdrXMOI5Y7wh/qY52068EtfNcx2wq3iEtKPE2mcY+OYwWsXIPz2UAemy0/g8THrk5HgTjon0uebbIyb4kfhruvYah9WpdpHh8LMJU0osOVQ+YemTIzcVoEMa9hQEXLDZZXoZOqs+8rWs+4HsX2CCv6+5er1DY7d67lQH59wI6BecDEl8dGVNFGKJ2P+nqZq6Df3Wbb80SzssQJcXsp2JRiRYCB0pa6WFopalYWGAWoOu5Llgy7ypoUKkVkzOOLC8qYcO4uveg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=multicorewareinc.com; dmarc=pass action=none header.from=multicorewareinc.com; dkim=pass header.d=multicorewareinc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multicorewareinc.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u6DAsJG7XPzi3fD7x3jro33+Q5sDjlgg4+SlxGuVwYE=; b=2PL7cwCAefClR5oeAVXNKZxZNngRpzo6yDyBaQRFw8H+hLx6Boh8YsJOdrql8lEz0fQxAKg3a7VZq9avDyKt0qFfr/P6GV5n9OplAwkPjI22ZwsGZ2zssft+sEDosCqozAtUaNgfw6/QGI5WHR/H7LNzILOmdbHwTIIR3mN8cpyvGKgJNuvKF5hAs9voIWblsoq9DZ7bVnan0KW+vna81Brp0f4hsbAOr2bOi82ZZYFczo63ZcmwKV/TWQki9qmK24Wn8PnLtwdSAkaM5zE0cM6xt/5AtY8XNZoUfkr1LEGHDkqvtLfko7Z54M6GMBf/tE5hmXtqjD/9ZW27/RFlsQ== Received: from PN3P287MB3339.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:22d::6) by PN3P287MB1729.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:19c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.20; Wed, 2 Jul 2025 09:10:44 +0000 Received: from PN3P287MB3339.INDP287.PROD.OUTLOOK.COM ([fe80::4a22:77a3:8f7d:445]) by PN3P287MB3339.INDP287.PROD.OUTLOOK.COM ([fe80::4a22:77a3:8f7d:445%6]) with mapi id 15.20.8901.018; Wed, 2 Jul 2025 09:10:44 +0000 From: Logaprakash Ramajayam To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v2 1/1] swscale/aarch64/output: Implement neon assembly for yuv2planeX_10_c_template() Thread-Index: AQHb6yCKxtFLA3amMUa9+JKtMTbTNbQeiym5 Date: Wed, 2 Jul 2025 09:10:44 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=multicorewareinc.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PN3P287MB3339:EE_|PN3P287MB1729:EE_ x-ms-office365-filtering-correlation-id: 0f6d5d00-e475-4137-6a1b-08ddb9485375 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|8096899003|7053199007|4013099003|4053099003|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?LmNflfcql4vWYGumMSx7cXbQB2hfI/pnYpKdfmJ5ThCLCe2gBakD47G5ZE?= =?iso-8859-1?Q?3cAwsc2mJNRaLBhSL3GnLE7Y9mmFgSl5uDiNrTodRIOYC+PdBFn6KtCAwW?= =?iso-8859-1?Q?hkdFNfkf8QHnxFzMBl29KyM76bQEgIAanCxUq8ohO33zA9L/plB26Il3d7?= =?iso-8859-1?Q?d1LzhYsghJtExNFniSQiyUT0hbPEmpt3Ac+LPv5MRddXnknyR2Uqszwa+m?= =?iso-8859-1?Q?nfGSgmiGiNAmvcVdUP/bYj8jx1VUO98n5NGayFboWjUAbeXs9LKQUTZ74Z?= =?iso-8859-1?Q?mh7EGUJExjoLyBK1hlgt4EjuIUhHJsyhnSsBf5ptXte0hKADDvK87Oj3mD?= =?iso-8859-1?Q?dY4rFygfsZ/NXadG3nJ90z2cUOuox1zU7N23jLU7VfJ0WhZUEfg3dCTebw?= =?iso-8859-1?Q?ebiRJFfpbGp3T4wKJmXSD0ehhGuvqcDVKXBfD8DPzaVc34FyfT+ZljfDW1?= =?iso-8859-1?Q?NF8keiqFkHeSSBO3MWgqga2vBg8e/GVQzOk6atGwTsdRzZw3o4R4VSjDfK?= =?iso-8859-1?Q?ydFbulf1oxV3Boxax2My3KpZ/Q/T2bT6xEw+MrB0EnGRufLPiOvBjDmkqI?= =?iso-8859-1?Q?8fX0zj7g4tLuqivyO1Jvfg3shnmYWETFwVOmFfLroRo6VAMfzKLhvrThQm?= =?iso-8859-1?Q?eV3TbcibDb1HySQNMchGJ/DhBzpzx/cwF3mGKdtCtnNYjyrgsS9SZq0+G5?= =?iso-8859-1?Q?wNsNBZ4aJR5OkTaap/Cgg98fb/uYHjsboCm86cQXRNOveJcgKNNKiyacdj?= =?iso-8859-1?Q?bR8ry6pAcmwt35xMjFRA8Fi9SUToialcW/oJNaNRXjwTaXtQO/92eLa3pI?= =?iso-8859-1?Q?EIxp26U3e23l2aMFr0Xkd8QW6PI3a+4GofbH87goG+T/UWyHCq7/+zZENU?= =?iso-8859-1?Q?6yiIdzsdAhluyvWez/SmQZEQTlE32zqR59S+RkIlWG2S21Ub3xuQSQrOYu?= =?iso-8859-1?Q?9SmsPQXOpqV7h9PffL1SGDHfVlP2BVAhgk8wvorbgDZxFh5oVFjuzJyEz9?= =?iso-8859-1?Q?+Hp517jiw8mTyzIGpo2lX/pifRyys1qa/VIeHpteVC1WTIQ4uf4YQ4ousO?= =?iso-8859-1?Q?QCZ3Vx/7sVK+XUs5idM5HWMOmNW/pI6Rm5WmMXCvMXWOLdwKfR4PwB62WO?= =?iso-8859-1?Q?nugLA7ekZiHYguVMSwhBsRfyLJHFU+PFo0k5fYb0lszmyHgQaZYOCk2rEH?= =?iso-8859-1?Q?uDTSfYi8k0W2vhsSlnWK93SsP6A2eoBrts1pu2pArpyXtN/35QRWeukPo8?= =?iso-8859-1?Q?P3fuYzR9mkTyyQq9AZRES4D6xoXq7nXUX/72i/+f22gJs7lkLQmfp4AfYf?= =?iso-8859-1?Q?ySwHX86xIrGg7mskLUWfYerLuBBVzwcmLmCw8D21+2NiX5rARj3XuLypub?= =?iso-8859-1?Q?ppp6aENUhVEcxBt3/eRV3UNj0up9I8YQgI0E9OJR6iH6h7NdU/w0f10vBw?= =?iso-8859-1?Q?OeUMxs3eZL49dKi2RjIN5+QnVrkPxgCCIcV3HEVYk5EbZyW5CGzOeBmUh5?= =?iso-8859-1?Q?sD6QFLfxzfnSp6ddvox3dbwUuB3v2O3vt1Dssw70/LUQSnrNBwhbQxlWk/?= =?iso-8859-1?Q?f8f0l7U=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PN3P287MB3339.INDP287.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(8096899003)(7053199007)(4013099003)(4053099003)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?SJCm2g0752ayr5YOp5kWKhNOjoaBVi3Ac+GJ4BJb3HXb7JKoZt+JHKiUTh?= =?iso-8859-1?Q?VC441gGkXrQcNOzEZVM2ilcAlYJg3z6UfoNqkyionOZYShx74C3PquVZCE?= =?iso-8859-1?Q?gRw+P1ooxf2BWPjOvuaB2cZU5jywvRqJYtcbCbJXGZEIvXhPPYOumYHFI5?= =?iso-8859-1?Q?ZRGh9B4Cvs+kPJXVCIykIj7cUi2XjODqxPP0Otl+yR57DB4wRRhtI1/hsM?= =?iso-8859-1?Q?bKh2nLIzqz4kgeaT7QInvH0zo1gymO4kNUpmhaxEH92/FYFG+7OP3PgPEt?= =?iso-8859-1?Q?HgWeXmgxEC6bE+43mGKbIMLg81stAdynxywRlIvclJe8bXX2XfLv5hI/Or?= =?iso-8859-1?Q?AJR7OTvs5WmfFB+vpg/9uYzNwT6AUTpvnNw2p+Zl9YlO06uR6DbVLIRpVr?= =?iso-8859-1?Q?cLGW2NtSKyUBSComRH5ZhjVq8QsGTO7eJJr6+L3ugqET5K8j+YKOWOGy+B?= =?iso-8859-1?Q?QtEDtLJ1D8/E80f0Nyhp+4JzBFAxSQKmNdyvAjOy37SHIIrpGj/eH4hsUS?= =?iso-8859-1?Q?cE7QOXSWG6ihF2Hveki/PtvmeCc+b5mfdnoPkEi+Mg0C47jLdVRsFpQQy+?= =?iso-8859-1?Q?JDhf4Jpvz43hXNg73bJRJx565Xvu0MuYMn5qrCk7OuFbLzrI0sbCbQkgNf?= =?iso-8859-1?Q?J/0ALJF6awRcIGUY2nBAbjv4S6GBT9QkC+ICCw6Kr3JL4Bt/HSO3CF4ujy?= =?iso-8859-1?Q?1duX3fo+RL/ezkRBmEuUjLGFu5LA2QAhS0QV3Ud0Z4S90HQZA9C/+G59nb?= =?iso-8859-1?Q?rMgUZYf20lb9KqDZ2hiUVbUihPWt7vaBmAc8oTGIltM3C/yMNvDnsZZn3T?= =?iso-8859-1?Q?KDV/0Vzy2EoIg/Que1uhgIbptlNeOs+qMm+CCm4dbxCFLP04oUdgQddizI?= =?iso-8859-1?Q?2+Kf7drP9O1yjAvftGIbO34jwXQAcJT4ZrIgrru7pSEp332UBfEGSQBmVF?= =?iso-8859-1?Q?Fri4k22lhIYomA6Nodj0m3D6P6n8+4tvYRDtg+h9R02niPBTq3aNYXCd28?= =?iso-8859-1?Q?JhikkghqMU9I0UfmOClUEFaA/zvkv/Tj6QZYp+eMxFxZjm5kwxxN44pRUp?= =?iso-8859-1?Q?xsEce2mZnGjq2hnuZoyFlzJHFxafYVjqijP1xXi3GVbHm+71ZiPj4PaWBQ?= =?iso-8859-1?Q?5rgpZfZY3c3GWZmQBfskZje4vGRlioaQCv+EAAdXTccjpSwgOKIvmt3Dvi?= =?iso-8859-1?Q?azVBfw24O27pKeaMwPmeojY/pklRaKU2DrL2wYuQY/01I1xJKZ7+iP7fDh?= =?iso-8859-1?Q?bNwEkS4ve0gcpX3U47RYxNK32Wz7yieMjpSOC/N5QQDXUbRswWJ9lqpF+x?= =?iso-8859-1?Q?9WFrtPOVDSkeGQR5NNnCqEsNHJZdMe0irWlg8M0XLsZPgiYJ+cwYwBIhtA?= =?iso-8859-1?Q?dlX4ACLsz1BT2jxBCs8iTuXH23uO1HzUjKR0iKQkgjTpHUes5EW4zRpp1o?= =?iso-8859-1?Q?cQRKik6RtUEysRME8a9L6MyA9D/sSxk+cLrZ1fl9Ia0z1aEnoUBbXgOlQa?= =?iso-8859-1?Q?TMUud6IYVoM1GTw60T+eaIA/1TEkZXrtDRsTr2VDihks04N1LMY0vgkqr3?= =?iso-8859-1?Q?sXVPx0bGY4YZPmnTbXnq9SdQX4EQa3wiwsOEmgVvEvmAvHco3T/Wje6p/s?= =?iso-8859-1?Q?kCIIdgCeuSYyOkvXuqoAh1w37eZC8H1vJGWlE+Irgu1u7wf3LumfN8WlA+?= =?iso-8859-1?Q?Sm3emFQrTBcZIML8FQk=3D?= Content-Type: multipart/mixed; boundary="_004_PN3P287MB3339D0CB6A424D394B60C4EF9A40APN3P287MB3339INDP_" MIME-Version: 1.0 X-OriginatorOrg: multicorewareinc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB3339.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 0f6d5d00-e475-4137-6a1b-08ddb9485375 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2025 09:10:44.5305 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ffc5e88b-3fa2-4d69-a468-344b6b766e7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WJi+a/1lAlPuYov7GPU5eR0stlgDvL34p4V6yDKm7/8avGdjFbQ6+jl+w88J/ksNrI7IK6Yf9BQ8qxtVghwUvNPl8mSKGNFMvBLQBQYVYgXFi7UzJeU2NxgCgpfjNgWJPTKOtCViswsDlk84PtrsMQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN3P287MB1729 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v2 1/1] swscale/aarch64/output: Implement neon assembly for yuv2planeX_10_c_template() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --_004_PN3P287MB3339D0CB6A424D394B60C4EF9A40APN3P287MB3339INDP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Attaching the Assembly implementation of yuv2planeX_10_c() patch in text fo= rmat. ________________________________ From: Logaprakash Ramajayam Sent: Wednesday, July 2, 2025 1:01 PM To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH v2 1/1] swscale/aarch64/output: Implement ne= on assembly for yuv2planeX_10_c_template() Handled all the comments and updated checkasm for yuv2planeX_10_c() Checkasm Benchmark results: yuv2yuvX_10_LE_16_0_512_accurate_c: 7836.9 ( 1.00x) yuv2yuvX_10_LE_16_0_512_accurate_neon: 840.4 ( 9.33x) yuv2yuvX_10_LE_16_0_512_approximate_c: 7930.8 ( 1.00x) yuv2yuvX_10_LE_16_0_512_approximate_neon: 838.5 ( 9.46x) yuv2yuvX_10_LE_16_16_512_accurate_c: 7594.3 ( 1.00x) yuv2yuvX_10_LE_16_16_512_accurate_neon: 815.2 ( 9.32x) yuv2yuvX_10_LE_16_16_512_approximate_c: 7687.0 ( 1.00x) yuv2yuvX_10_LE_16_16_512_approximate_neon: 811.9 ( 9.47x) yuv2yuvX_10_LE_16_32_512_accurate_c: 7366.4 ( 1.00x) yuv2yuvX_10_LE_16_32_512_accurate_neon: 785.8 ( 9.37x) yuv2yuvX_10_LE_16_32_512_approximate_c: 7426.5 ( 1.00x) yuv2yuvX_10_LE_16_32_512_approximate_neon: 786.4 ( 9.44x) yuv2yuvX_10_LE_16_48_512_accurate_c: 7123.1 ( 1.00x) yuv2yuvX_10_LE_16_48_512_accurate_neon: 761.7 ( 9.35x) yuv2yuvX_10_LE_16_48_512_approximate_c: 7182.7 ( 1.00x) yuv2yuvX_10_LE_16_48_512_approximate_neon: 763.0 ( 9.41x) yuv2yuvX_10_BE_16_0_512_accurate_c: 8092.6 ( 1.00x) yuv2yuvX_10_BE_16_0_512_accurate_neon: 860.2 ( 9.41x) yuv2yuvX_10_BE_16_0_512_approximate_c: 8183.5 ( 1.00x) yuv2yuvX_10_BE_16_0_512_approximate_neon: 861.4 ( 9.50x) yuv2yuvX_10_BE_16_16_512_accurate_c: 7837.4 ( 1.00x) yuv2yuvX_10_BE_16_16_512_accurate_neon: 834.0 ( 9.40x) yuv2yuvX_10_BE_16_16_512_approximate_c: 7927.9 ( 1.00x) yuv2yuvX_10_BE_16_16_512_approximate_neon: 834.6 ( 9.50x) yuv2yuvX_10_BE_16_32_512_accurate_c: 7605.1 ( 1.00x) yuv2yuvX_10_BE_16_32_512_accurate_neon: 807.5 ( 9.42x) yuv2yuvX_10_BE_16_32_512_approximate_c: 7691.4 ( 1.00x) yuv2yuvX_10_BE_16_32_512_approximate_neon: 807.3 ( 9.53x) yuv2yuvX_10_BE_16_48_512_accurate_c: 7344.3 ( 1.00x) yuv2yuvX_10_BE_16_48_512_accurate_neon: 782.7 ( 9.38x) yuv2yuvX_10_BE_16_48_512_approximate_c: 7440.1 ( 1.00x) yuv2yuvX_10_BE_16_48_512_approximate_neon: 781.9 ( 9.51x) --_004_PN3P287MB3339D0CB6A424D394B60C4EF9A40APN3P287MB3339INDP_ Content-Type: application/octet-stream; name="Swscale-Aarch64-Implement-neon-assembly-yuv2planeX_10_c_template.patch" Content-Description: Swscale-Aarch64-Implement-neon-assembly-yuv2planeX_10_c_template.patch Content-Disposition: attachment; filename="Swscale-Aarch64-Implement-neon-assembly-yuv2planeX_10_c_template.patch"; size=25716; creation-date="Wed, 02 Jul 2025 09:08:27 GMT"; modification-date="Wed, 02 Jul 2025 09:08:46 GMT" Content-Transfer-Encoding: base64 RnJvbSAzZTE0YjRjMmU3NjNkMmQwYzg5NzllM2U5OTU3OGY1NDkyYjcxMzBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMb2dhcHJha2FzaCBSYW1hamF5YW0gPGxvZ2FwcmFrYXNoLnJh bWFqYXlhbUBtdWx0aWNvcmV3YXJlaW5jLmNvbT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIzOjQ4 OjM2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MiAxLzFdIHN3c2NhbGUvYWFyY2g2NC9vdXRwdXQ6 IEltcGxlbWVudCBuZW9uIGFzc2VtYmx5IGZvciB5dXYycGxhbmVYXzEwX2NfdGVtcGxhdGUoKQoK LS0tCiBsaWJzd3NjYWxlL2FhcmNoNjQvb3V0cHV0LlMgIHwgMTg5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBsaWJzd3NjYWxlL2FhcmNoNjQvc3dzY2FsZS5jIHwgIDM4ICsr KysrKysKIHRlc3RzL2NoZWNrYXNtL3N3X3NjYWxlLmMgICAgfCAxNzAgKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzMzcgaW5zZXJ0aW9ucygrKSwgNjAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlic3dzY2FsZS9hYXJjaDY0L291dHB1dC5TIGIv bGlic3dzY2FsZS9hYXJjaDY0L291dHB1dC5TCmluZGV4IDE5MGM0Mzg4NzAuLjJhYWQ0MjBkYjIg MTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvYWFyY2g2NC9vdXRwdXQuUworKysgYi9saWJzd3NjYWxl L2FhcmNoNjQvb3V0cHV0LlMKQEAgLTIwLDYgKzIwLDE5NSBAQAogCiAjaW5jbHVkZSAibGliYXZ1 dGlsL2FhcmNoNjQvYXNtLlMiCiAKK2Z1bmN0aW9uIGZmX3l1djJwbGFuZVhfMTBfbmVvbiwgZXhw b3J0PTEKKy8vIHgwID0gZmlsdGVyIChpbnQxNl90KikKKy8vIHcxID0gZmlsdGVyU2l6ZQorLy8g eDIgPSBzcmMgKGludDE2X3QqKikKKy8vIHgzID0gZGVzdCAodWludDE2X3QqKQorLy8gdzQgPSBk c3RXCisvLyB3NSA9IGJpZ19lbmRpYW4KKy8vIHc2ID0gb3V0cHV0X2JpdHMKKworICAgICAgICBt b3YgICAgICAgICAgICAgdzgsICMyNworICAgICAgICBzdWIgICAgICAgICAgICAgdzgsIHc4LCB3 NiAgICAgICAgICAgICAgICAgICAgICAvLyBzaGlmdCA9IDExICsgMTYgLSBvdXRwdXRfYml0cwor CisgICAgICAgIHN1YiAgICAgICAgICAgICB3OSwgdzgsICMxCisgICAgICAgIG1vdiAgICAgICAg ICAgICB3MTAsICMxCisgICAgICAgIGxzbCAgICAgICAgICAgICB3OSwgdzEwLCB3OSAgICAgICAg ICAgICAgICAgICAgIC8vIHZhbCA9IDEgPDwgKHNoaWZ0IC0gMSkKKworICAgICAgICBkdXAgICAg ICAgICAgICAgdjEuNHMsIHc5CisgICAgICAgIGR1cCAgICAgICAgICAgICB2Mi40cywgdzkgICAg ICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB2ZWN0b3JzIHdpdGggdmFsCisKKyAgICAgICAg bmVnICAgICAgICAgICAgIHcxNiwgdzgKKyAgICAgICAgZHVwICAgICAgICAgICAgIHYyMC40cywg dzE2ICAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlICgtc2hpZnQpIHZlY3RvciBmb3Igcmln aHQgc2hpZnQKKworICAgICAgICBtb3YgICAgICAgICAgICAgdzEwLCAjMQorICAgICAgICBsc2wg ICAgICAgICAgICAgdzEwLCB3MTAsIHc2CisgICAgICAgIHN1YiAgICAgICAgICAgICB3MTAsIHcx MCwgIzEgICAgICAgICAgICAgICAgICAgIC8vICgxVSA8PCBvdXRwdXRfYml0cykgLSAxCisgICAg ICAgIGR1cCAgICAgICAgICAgICB2MjEuNHMsIHcxMCAgICAgICAgICAgICAgICAgICAgIC8vIENy ZWF0ZSBDbGlwIHZlY3RvciBmb3IgdXBwZXIgYm91bmQKKworICAgICAgICBtb3YgICAgICAgICAg ICAgeDcsICMwICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpID0gMAorCisxOgorICAgICAg ICBjbXAgICAgICAgICAgICAgdzQsICMxNiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcm9j ZXNzIDE2LXBpeGVscyBpZiBhdmFpbGFibGUKKyAgICAgICAgYmx0ICAgICAgICAgICAgIDRmCisK KyAgICAgICAgbW92ICAgICAgICAgICAgIHYzLjE2YiwgdjEuMTZiCisgICAgICAgIG1vdiAgICAg ICAgICAgICB2NC4xNmIsIHYyLjE2YgorICAgICAgICBtb3YgICAgICAgICAgICAgdjUuMTZiLCB2 MS4xNmIKKyAgICAgICAgbW92ICAgICAgICAgICAgIHY2LjE2YiwgdjIuMTZiCisKKyAgICAgICAg bW92ICAgICAgICAgICAgIHcxMSwgdzEgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG1wZmls dGVyU2l6ZSA9IGZpbHRlclNpemUKKyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMiwgeDIgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gc3JjcCA9IHNyYworICAgICAgICBtb3YgICAgICAgICAg ICAgeDEzLCB4MCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaWx0ZXJwID0gZmlsdGVyCisK KzI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gRmlsdGVyIGxvb3AKKworICAgICAgICBsZHAgICAgICAgICAgICAgeDE0LCB4MTUsIFt4MTJd LCAjMTYgICAgICAgICAgICAvLyBnZXQgMiBwb2ludGVyczogc3JjW2pdIGFuZCBzcmNbaisxXQor ICAgICAgICBsZHIgICAgICAgICAgICAgczcsIFt4MTNdLCAjNCAgICAgICAgICAgICAgICAgICAv LyBsb2FkIGZpbHRlciBjb2VmZmljaWVudHMKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNCwg eDE0LCB4NywgbHNsICMxCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MTUsIHgxNSwgeDcsIGxz bCAjMQorICAgICAgICBsZDEgICAgICAgICAgICAge3YxNi44aCwgdjE3LjhofSwgW3gxNF0KKyAg ICAgICAgbGQxICAgICAgICAgICAgIHt2MTguOGgsIHYxOS44aH0sIFt4MTVdCisKKyAgICAgICAg Ly8gTXVsdGlwbHktYWNjdW11bGF0ZQorICAgICAgICBzbWxhbCAgICAgICAgICAgdjMuNHMsICB2 MTYuNGgsIHY3LmhbMF0KKyAgICAgICAgc21sYWwyICAgICAgICAgIHY0LjRzLCAgdjE2LjhoLCB2 Ny5oWzBdCisgICAgICAgIHNtbGFsICAgICAgICAgICB2NS40cywgIHYxNy40aCwgdjcuaFswXQor ICAgICAgICBzbWxhbDIgICAgICAgICAgdjYuNHMsICB2MTcuOGgsIHY3LmhbMF0KKworICAgICAg ICBzbWxhbCAgICAgICAgICAgdjMuNHMsICB2MTguNGgsIHY3LmhbMV0KKyAgICAgICAgc21sYWwy ICAgICAgICAgIHY0LjRzLCAgdjE4LjhoLCB2Ny5oWzFdCisgICAgICAgIHNtbGFsICAgICAgICAg ICB2NS40cywgIHYxOS40aCwgdjcuaFsxXQorICAgICAgICBzbWxhbDIgICAgICAgICAgdjYuNHMs ICB2MTkuOGgsIHY3LmhbMV0KKworICAgICAgICBzdWJzICAgICAgICAgICAgdzExLCB3MTEsICMy ICAgICAgICAgICAgICAgICAgICAvLyB0bXBmaWx0ZXJTaXplIC09IDIKKyAgICAgICAgYi5ndCAg ICAgICAgICAgIDJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgZmls dGVyIGxvb3AKKworICAgICAgICAvLyBTaGlmdCByZXN1bHRzCisgICAgICAgIHNzaGwgICAgICAg ICAgICB2My40cywgIHYzLjRzLCB2MjAuNHMKKyAgICAgICAgc3NobCAgICAgICAgICAgIHY0LjRz LCAgdjQuNHMsIHYyMC40cworICAgICAgICBzc2hsICAgICAgICAgICAgdjUuNHMsICB2NS40cywg djIwLjRzCisgICAgICAgIHNzaGwgICAgICAgICAgICB2Ni40cywgIHY2LjRzLCB2MjAuNHMKKwor ICAgICAgICAvLyBDbGFtcCB0byB1cHBlciBib3VuZAorICAgICAgICBzbWluICAgICAgICAgICAg djMuNHMsICB2My40cywgdjIxLjRzCisgICAgICAgIHNtaW4gICAgICAgICAgICB2NC40cywgIHY0 LjRzLCB2MjEuNHMKKyAgICAgICAgc21pbiAgICAgICAgICAgIHY1LjRzLCAgdjUuNHMsIHYyMS40 cworICAgICAgICBzbWluICAgICAgICAgICAgdjYuNHMsICB2Ni40cywgdjIxLjRzCisKKyAgICAg ICAgLy8gTmFycm93IGFuZCBjbGFtcCB0byAwCisgICAgICAgIHNxeHR1biAgICAgICAgICB2MjMu NGgsIHYzLjRzCisgICAgICAgIHNxeHR1bjIgICAgICAgICB2MjMuOGgsIHY0LjRzCisgICAgICAg IHNxeHR1biAgICAgICAgICB2MjQuNGgsIHY1LjRzCisgICAgICAgIHNxeHR1bjIgICAgICAgICB2 MjQuOGgsIHY2LjRzCisKKyAgICAgICAgY2J6ICAgICAgICAgICAgIHc1LCAzZiAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgYmlnIGVuZGlhbgorICAgICAgICByZXYxNiAgICAg ICAgICAgdjIzLjE2YiwgdjIzLjE2YgorICAgICAgICByZXYxNiAgICAgICAgICAgdjI0LjE2Yiwg djI0LjE2YiAgICAgICAgICAgICAgICAvLyBTd2FwIGJpdHMgZm9yIGJpZyBlbmRpYW4KKzM6Cisg ICAgICAgIHN0MSAgICAgICAgICAgICB7djIzLjhoLCB2MjQuOGh9LCBbeDNdLCAjMzIKKworICAg ICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMTYgICAgICAgICAgICAgICAgICAgICAvLyBk c3RXID0gZHN0VyAtIDE2CisgICAgICAgIGFkZCAgICAgICAgICAgICB4NywgeDcsICMxNiAgICAg ICAgICAgICAgICAgICAgIC8vIGkgPSBpICsgMTYKKyAgICAgICAgYiAgICAgICAgICAgICAgIDFi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udGludWUgbG9vcAorCis0OgorICAg ICAgICBjbXAgICAgICAgICAgICAgdzQsICM4ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQ cm9jZXNzIDgtcGl4ZWxzIGlmIGF2YWlsYWJsZQorICAgICAgICBibHQgICAgICAgICAgICAgOGYK KzU6CisgICAgICAgIG1vdiAgICAgICAgICAgICB2My4xNmIsIHYxLjE2YgorICAgICAgICBtb3Yg ICAgICAgICAgICAgdjQuMTZiLCB2Mi4xNmIKKworICAgICAgICBtb3YgICAgICAgICAgICAgdzEx LCB3MSAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0bXBmaWx0ZXJTaXplID0gZmlsdGVyU2l6 ZQorICAgICAgICBtb3YgICAgICAgICAgICAgeDEyLCB4MiAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBzcmNwID0gc3JjCisgICAgICAgIG1vdiAgICAgICAgICAgICB4MTMsIHgwICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGZpbHRlcnAgPSBmaWx0ZXIKKworNjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgbG9vcAorCisg ICAgICAgIGxkcCAgICAgICAgICAgICB4MTQsIHgxNSwgW3gxMl0sICMxNgorICAgICAgICBsZHIg ICAgICAgICAgICAgczcsIFt4MTNdLCAjNAorICAgICAgICBhZGQgICAgICAgICAgICAgeDE0LCB4 MTQsIHg3LCBsc2wgIzEKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNSwgeDE1LCB4NywgbHNs ICMxCisgICAgICAgIGxkMSAgICAgICAgICAgICB7djUuOGh9LCBbeDE0XQorICAgICAgICBsZDEg ICAgICAgICAgICAge3Y2LjhofSwgW3gxNV0KKworICAgICAgICAvLyBNdWx0aXBseS1hY2N1bXVs YXRlCisgICAgICAgIHNtbGFsICAgICAgICAgICB2My40cywgdjUuNGgsIHY3LmhbMF0KKyAgICAg ICAgc21sYWwyICAgICAgICAgIHY0LjRzLCB2NS44aCwgdjcuaFswXQorICAgICAgICBzbWxhbCAg ICAgICAgICAgdjMuNHMsIHY2LjRoLCB2Ny5oWzFdCisgICAgICAgIHNtbGFsMiAgICAgICAgICB2 NC40cywgdjYuOGgsIHY3LmhbMV0KKworICAgICAgICBzdWJzICAgICAgICAgICAgdzExLCB3MTEs ICMyICAgICAgICAgICAgICAgICAgICAvLyB0bXBmaWx0ZXJTaXplIC09IDIKKyAgICAgICAgYi5n dCAgICAgICAgICAgIDZiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCB1bnRp bCBmaWx0ZXJTaXplIGNvbnN1bWVkCisKKyAgICAgICAgLy8gU2hpZnQgcmVzdWx0cworICAgICAg ICBzc2hsICAgICAgICAgICAgdjMuNHMsIHYzLjRzLCB2MjAuNHMKKyAgICAgICAgc3NobCAgICAg ICAgICAgIHY0LjRzLCB2NC40cywgdjIwLjRzCisKKyAgICAgICAgLy8gQ2xpcCB1cHBlciBib3Vu ZAorICAgICAgICBzbWluICAgICAgICAgICAgdjMuNHMsIHYzLjRzLCB2MjEuNHMKKyAgICAgICAg c21pbiAgICAgICAgICAgIHY0LjRzLCB2NC40cywgdjIxLjRzCisKKyAgICAgICAgLy8gTmFycm93 IGFuZCBjbGFtcCB0byAwCisgICAgICAgIHNxeHR1biAgICAgICAgICB2MjUuNGgsIHYzLjRzCisg ICAgICAgIHNxeHR1biAgICAgICAgICB2MjYuNGgsIHY0LjRzCisKKyAgICAgICAgY2J6ICAgICAg ICAgICAgIHc1LCA3ZiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgYmlnIGVu ZGlhbgorICAgICAgICByZXYxNiAgICAgICAgICAgdjI1LjhiLCB2MjUuOGIKKyAgICAgICAgcmV2 MTYgICAgICAgICAgIHYyNi44YiwgdjI2LjhiICAgICAgICAgICAgICAgICAgLy8gU3dhcCBiaXRz IGZvciBiaWcgZW5kaWFuCisKKzc6CisgICAgICAgIC8vIFN0b3JlIDggcGl4ZWxzCisgICAgICAg IHN0MSAgICAgICAgICAgICB7djI1LjRoLCB2MjYuNGh9LCBbeDNdLCAjMTYKKworICAgICAgICBz dWJzICAgICAgICAgICAgdzQsIHc0LCAjOCAgICAgICAgICAgICAgICAgICAgICAvLyBkc3RXID0g ZHN0VyAtIDgKKyAgICAgICAgYWRkICAgICAgICAgICAgIHg3LCB4NywgIzggICAgICAgICAgICAg ICAgICAgICAgLy8gaSA9IGkgKyA4CisKKzg6CisgICAgICAgIGNieiAgICAgICAgICAgICB3NCwg MTJmICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNjYWxhciBsb29wIGZvciByZW1haW5pbmcg cGl4ZWxzCis5OgorICAgICAgICBtb3YgICAgICAgICAgICAgdzExLCB3MSAgICAgICAgICAgICAg ICAgICAgICAgICAvLyB0bXBmaWx0ZXJTaXplID0gZmlsdGVyU2l6ZQorICAgICAgICBtb3YgICAg ICAgICAgICAgeDEyLCB4MiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcmNwID0gc3JjCisg ICAgICAgIG1vdiAgICAgICAgICAgICB4MTMsIHgwICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGZpbHRlcnAgPSBmaWx0ZXIKKyAgICAgICAgc3h0dyAgICAgICAgICAgIHg5LCB3OQorICAgICAg ICBtb3YgICAgICAgICAgICAgeDE3LCB4OQorCisxMDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBsb29wCisgICAgICAgIGxkciAg ICAgICAgICAgICB4MTQsIFt4MTJdLCAjOCAgICAgICAgICAgICAgICAgIC8vIExvYWQgc3JjIHBv aW50ZXIKKyAgICAgICAgbGRyc2ggICAgICAgICAgIHcxNSwgW3gxM10sICMyICAgICAgICAgICAg ICAgICAgLy8gTG9hZCBmaWx0ZXIgY29lZmZpY2llbnQKKyAgICAgICAgYWRkICAgICAgICAgICAg IHgxNCwgeDE0LCB4NywgbHNsICMxICAgICAgICAgICAgLy8gQWRkIHBpeGVsIG9mZnNldAorICAg ICAgICBsZHJoICAgICAgICAgICAgdzE2LCBbeDE0XQorCisgICAgICAgIHN4dHcgICAgICAgICAg ICB4MTYsIHcxNgorICAgICAgICBzeHR3ICAgICAgICAgICAgeDE1LCB3MTUKKyAgICAgICAgbWFk ZCAgICAgICAgICAgIHgxNywgeDE2LCB4MTUsIHgxNworCisgICAgICAgIHN1YnMgICAgICAgICAg ICB3MTEsIHcxMSwgIzEgICAgICAgICAgICAgICAgICAgIC8vIHRtcGZpbHRlclNpemUgLT0gMQor ICAgICAgICBiLmd0ICAgICAgICAgICAgMTBiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBsb29wIHVudGlsIGZpbHRlclNpemUgY29uc3VtZWQKKworICAgICAgICBzeHR3ICAgICAgICAg ICAgeDgsIHc4CisgICAgICAgIGFzciAgICAgICAgICAgICB4MTcsIHgxNywgeDgKKyAgICAgICAg Y21wICAgICAgICAgICAgIHgxNywgIzAKKyAgICAgICAgY3NlbCAgICAgICAgICAgIHgxNywgeDE3 LCB4enIsIGdlICAgICAgICAgICAgICAgLy8gQ2xhbXAgdG8gMCBpZiBuZWdhdGl2ZQorCisgICAg ICAgIHN4dHcgICAgICAgICAgICB4MTAsIHcxMAorICAgICAgICBjbXAgICAgICAgICAgICAgeDE3 LCB4MTAKKyAgICAgICAgY3NlbCAgICAgICAgICAgIHgxNywgeDEwLCB4MTcsIGd0ICAgICAgICAg ICAgICAgLy8gQ2xhbXAgdG8gbWF4IGlmIGdyZWF0ZXIgdGhhbiBtYXgKKworICAgICAgICBjYnog ICAgICAgICAgICAgdzUsIDExZiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBi aWcgZW5kaWFuCisgICAgICAgIHJldjE2ICAgICAgICAgICB4MTcsIHgxNyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFN3YXAgYml0cyBmb3IgYmlnIGVuZGlhbgorMTE6CisgICAgICAgIHN0cmgg ICAgICAgICAgICB3MTcsIFt4M10sICMyCisKKyAgICAgICAgc3VicyAgICAgICAgICAgIHc0LCB3 NCwgIzEgICAgICAgICAgICAgICAgICAgICAgLy8gZHN0VyA9IGRzdFcgLSAxCisgICAgICAgIGFk ZCAgICAgICAgICAgICB4NywgeDcsICMxICAgICAgICAgICAgICAgICAgICAgIC8vIGkgPSBpICsg MQorICAgICAgICBiLmd0ICAgICAgICAgICAgOWIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBMb29wIGlmIG1vcmUgcGl4ZWxzCisKKzEyOgorICAgICAgICByZXQKK2VuZGZ1bmMKKwog ZnVuY3Rpb24gZmZfeXV2MnBsYW5lWF84X25lb24sIGV4cG9ydD0xCiAvLyB4MCAtIGNvbnN0IGlu dDE2X3QgKmZpbHRlciwKIC8vIHgxIC0gaW50IGZpbHRlclNpemUsCmRpZmYgLS1naXQgYS9saWJz d3NjYWxlL2FhcmNoNjQvc3dzY2FsZS5jIGIvbGlic3dzY2FsZS9hYXJjaDY0L3N3c2NhbGUuYwpp bmRleCA2ZTVhNzIxYzFmLi4yYzNmMDk2YTg0IDEwMDY0NAotLS0gYS9saWJzd3NjYWxlL2FhcmNo NjQvc3dzY2FsZS5jCisrKyBiL2xpYnN3c2NhbGUvYWFyY2g2NC9zd3NjYWxlLmMKQEAgLTE1OCw2 ICsxNTgsMjkgQEAgdm9pZCBmZl9oc2NhbGUgIyMgZnJvbV9icGMgIyMgdG8gIyMgdG9fYnBjICMj IF8gIyMgZmlsdGVyX24gIyMgXyAjIyBvcHQoIFwKIAogQUxMX1NDQUxFX0ZVTkNTKG5lb24pOwog Cit2b2lkIGZmX3l1djJwbGFuZVhfMTBfbmVvbihjb25zdCBpbnQxNl90ICpmaWx0ZXIsIGludCBm aWx0ZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50MTZfdCAqKnNy YywgdWludDE2X3QgKmRlc3QsIGludCBkc3RXLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IGJpZ19lbmRpYW4sIGludCBvdXRwdXRfYml0cyk7CisKKyNkZWZpbmUgeXV2Mk5CUFMoYml0 cywgQkVfTEUsIGlzX2JlLCB0ZW1wbGF0ZV9zaXplLCB0eXBlWF90KSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyB2b2lkIHl1djJwbGFuZVhfICMjIGJpdHMgIyMg QkVfTEUgIyMgX25lb24oY29uc3QgaW50MTZfdCAqZmlsdGVyLCBpbnQgZmlsdGVyU2l6ZSwgICAg ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgaW50MTZfdCAqKnNyYywgdWludDhfdCAqZGVzdCwgaW50IGRzdFcsIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAq ZGl0aGVyLCBpbnQgb2Zmc2V0KSAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICBmZl95dXYycGxhbmVYXyMjIHRlbXBsYXRlX3NpemUgIyMg X25lb24oZmlsdGVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyU2l6 ZSwgKGNvbnN0IHR5cGVYX3QgKiopIHNyYywgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90ICopIGRlc3QsIGRzdFcs IGlzX2JlLCBiaXRzKTsgICAgICAgICAgICAgIFwKK30KKworeXV2Mk5CUFMoIDksIEJFLCAxLCAx MCwgaW50MTZfdCkKK3l1djJOQlBTKCA5LCBMRSwgMCwgMTAsIGludDE2X3QpCit5dXYyTkJQUygx MCwgQkUsIDEsIDEwLCBpbnQxNl90KQoreXV2Mk5CUFMoMTAsIExFLCAwLCAxMCwgaW50MTZfdCkK K3l1djJOQlBTKDEyLCBCRSwgMSwgMTAsIGludDE2X3QpCit5dXYyTkJQUygxMiwgTEUsIDAsIDEw LCBpbnQxNl90KQoreXV2Mk5CUFMoMTQsIEJFLCAxLCAxMCwgaW50MTZfdCkKK3l1djJOQlBTKDE0 LCBMRSwgMCwgMTAsIGludDE2X3QpCisKIHZvaWQgZmZfeXV2MnBsYW5lWF84X25lb24oY29uc3Qg aW50MTZfdCAqZmlsdGVyLCBpbnQgZmlsdGVyU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgaW50MTZfdCAqKnNyYywgdWludDhfdCAqZGVzdCwgaW50IGRzdFcsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRpdGhlciwgaW50IG9mZnNldCk7CkBA IC0yNjgsNiArMjkxLDggQEAgYXZfY29sZCB2b2lkIGZmX3N3c19pbml0X3JhbmdlX2NvbnZlcnRf YWFyY2g2NChTd3NJbnRlcm5hbCAqYykKIGF2X2NvbGQgdm9pZCBmZl9zd3NfaW5pdF9zd3NjYWxl X2FhcmNoNjQoU3dzSW50ZXJuYWwgKmMpCiB7CiAgICAgaW50IGNwdV9mbGFncyA9IGF2X2dldF9j cHVfZmxhZ3MoKTsKKyAgICBlbnVtIEFWUGl4ZWxGb3JtYXQgZHN0Rm9ybWF0ID0gYy0+b3B0cy5k c3RfZm9ybWF0OworICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYyA9IGF2X3BpeF9m bXRfZGVzY19nZXQoZHN0Rm9ybWF0KTsKIAogICAgIGlmIChoYXZlX25lb24oY3B1X2ZsYWdzKSkg ewogICAgICAgICBBU1NJR05fU0NBTEVfRlVOQyhjLT5oeVNjYWxlLCBjLT5oTHVtRmlsdGVyU2l6 ZSwgbmVvbik7CkBAIC0yNzYsNiArMzAxLDE5IEBAIGF2X2NvbGQgdm9pZCBmZl9zd3NfaW5pdF9z d3NjYWxlX2FhcmNoNjQoU3dzSW50ZXJuYWwgKmMpCiAgICAgICAgIGlmIChjLT5kc3RCcGMgPT0g OCkgewogICAgICAgICAgICAgYy0+eXV2MnBsYW5lWCA9IGZmX3l1djJwbGFuZVhfOF9uZW9uOwog ICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzTkJQUyhkc3RGb3JtYXQpICYmICFpc1NlbWlQbGFu YXJZVVYoZHN0Rm9ybWF0KSkgeworICAgICAgICAgICAgaWYgKGRlc2MtPmNvbXBbMF0uZGVwdGgg PT0gOSkgeworICAgICAgICAgICAgICAgIGMtPnl1djJwbGFuZVggPSBpc0JFKGRzdEZvcm1hdCkg PyB5dXYycGxhbmVYXzlCRV9uZW9uICA6IHl1djJwbGFuZVhfOUxFX25lb247CisgICAgICAgICAg ICB9IGVsc2UgaWYgKGRlc2MtPmNvbXBbMF0uZGVwdGggPT0gMTApIHsKKyAgICAgICAgICAgICAg ICBjLT55dXYycGxhbmVYID0gaXNCRShkc3RGb3JtYXQpID8geXV2MnBsYW5lWF8xMEJFX25lb24g IDogeXV2MnBsYW5lWF8xMExFX25lb247CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRlc2MtPmNv bXBbMF0uZGVwdGggPT0gMTIpIHsKKyAgICAgICAgICAgICAgICBjLT55dXYycGxhbmVYID0gaXNC RShkc3RGb3JtYXQpID8geXV2MnBsYW5lWF8xMkJFX25lb24gIDogeXV2MnBsYW5lWF8xMkxFX25l b247CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRlc2MtPmNvbXBbMF0uZGVwdGggPT0gMTQpIHsK KyAgICAgICAgICAgICAgICBjLT55dXYycGxhbmVYID0gaXNCRShkc3RGb3JtYXQpID8geXV2MnBs YW5lWF8xNEJFX25lb24gIDogeXV2MnBsYW5lWF8xNExFX25lb247CisgICAgICAgICAgICB9IGVs c2UKKyAgICAgICAgICAgICAgICBhdl9hc3NlcnQwKDApOworICAgICAgICB9CiAgICAgICAgIHN3 aXRjaCAoYy0+b3B0cy5zcmNfZm9ybWF0KSB7CiAgICAgICAgIGNhc2UgQVZfUElYX0ZNVF9BQkdS OgogICAgICAgICAgICAgYy0+bHVtVG9ZVjEyID0gZmZfYWJncjMyVG9ZX25lb247CmRpZmYgLS1n aXQgYS90ZXN0cy9jaGVja2FzbS9zd19zY2FsZS5jIGIvdGVzdHMvY2hlY2thc20vc3dfc2NhbGUu YwppbmRleCAxMWM5MTc0YTZiLi41YTY1OTU3MWRmIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2Fz bS9zd19zY2FsZS5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL3N3X3NjYWxlLmMKQEAgLTUyLDUwICs1 Miw1OSBAQCBzdGF0aWMgdm9pZCB5dXYycGxhbmVYXzhfcmVmKGNvbnN0IGludDE2X3QgKmZpbHRl ciwgaW50IGZpbHRlclNpemUsCiAgICAgfQogfQogCi1zdGF0aWMgaW50IGNtcF9vZmZfYnlfbihj b25zdCB1aW50OF90ICpyZWYsIGNvbnN0IHVpbnQ4X3QgKnRlc3QsIHNpemVfdCBuLCBpbnQgYWNj dXJhY3kpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAg aWYgKGFicyhyZWZbaV0gLSB0ZXN0W2ldKSA+IGFjY3VyYWN5KQotICAgICAgICAgICAgcmV0dXJu IDE7Ci0gICAgfQotICAgIHJldHVybiAwOworI2RlZmluZSBDTVBfRlVOQyhiaXRzKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCitzdGF0aWMgaW50IGNtcF9vZmZfYnlfIyNiaXRzKGNvbnN0IHVpbnQjI2JpdHMjI190 ICpyZWYsIGNvbnN0IHVpbnQjI2JpdHMjI190ICp0ZXN0LCAgICAgICAgIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZV90IG4sIGludCBhY2N1cmFjeSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYg KGFicygoaW50KXJlZltpXSAtIChpbnQpdGVzdFtpXSkgPiBhY2N1cmFjeSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIDE7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4g MDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogfQogCi1zdGF0aWMgdm9pZCBwcmludF9kYXRhKHVp bnQ4X3QgKnAsIHNpemVfdCBsZW4sIHNpemVfdCBvZmZzZXQpCi17Ci0gICAgc2l6ZV90IGkgPSAw OwotICAgIGZvciAoOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgaWYgKGkgJSA4ID09IDApIHsK LSAgICAgICAgICAgIHByaW50ZigiMHglMDR6eDogIiwgaStvZmZzZXQpOwotICAgICAgICB9Ci0g ICAgICAgIHByaW50ZigiMHglMDJ4ICIsICh1aW50MzJfdCkgcFtpXSk7Ci0gICAgICAgIGlmIChp ICUgOCA9PSA3KSB7Ci0gICAgICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgICAgIH0KLSAgICB9 Ci0gICAgaWYgKGkgJSA4ICE9IDApIHsKLSAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgIH0KK0NN UF9GVU5DKDgpCitDTVBfRlVOQygxNikKKworI2RlZmluZSBTSE9XX0RJRkZfRlVOQyhiaXRzKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCitzdGF0aWMgdm9pZCBwcmludF9kYXRhXyMjYml0cyhjb25zdCB1aW50IyNiaXRzIyNf dCAqcCwgc2l6ZV90IGxlbiwgc2l6ZV90IG9mZnNldCkgICAgICAgICAgIFwKK3sgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHNpemVfdCBpID0gMDsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgZm9yICg7IGkgPCBsZW47IGkrKykgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYg KGkgJSA4ID09IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcHJpbnRmKCIweCUwNHp4OiAi LCBpK29mZnNldCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcHJp bnRmKCIweCUwMnggIiwgKHVpbnQzMl90KSBwW2ldKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoaSAlIDggPT0gNykgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICBwcmludGYoIlxuIik7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgaWYgKGkgJSA4ICE9IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcHJp bnRmKCJcbiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCit9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK3N0YXRpYyBzaXpl X3Qgc2hvd19kaWZmZXJlbmNlc18jI2JpdHMoY29uc3QgdWludCMjYml0cyMjX3QgKmEsIGNvbnN0 IHVpbnQjI2JpdHMjI190ICpiLCAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplX3QgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKHNp emVfdCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoYVtpXSAhPSBiW2ldKSB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0X29mX21pc21hdGNoID0gaTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IHNpemVfdCBvZmZzZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaWYgKGkgPj0gOCkgaS09ODsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICBvZmZzZXQgPSBpICYgKH43KTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IHByaW50ZigidGVzdCBhOlxuIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcHJpbnRfZGF0YV8jI2JpdHMo JmFbb2Zmc2V0XSwgMzIsIG9mZnNldCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICBwcmludGYoIlxudGVzdCBiOlxuIik7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IHByaW50X2RhdGFfIyNiaXRzKCZiW29mZnNldF0sIDMyLCBvZmZzZXQpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcHJpbnRmKCJcbiIpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICAgICByZXR1cm4gb2Zmc2V0X29mX21pc21hdGNoOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgcmV0dXJuIGxlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0KIAotc3RhdGlj IHNpemVfdCBzaG93X2RpZmZlcmVuY2VzKHVpbnQ4X3QgKmEsIHVpbnQ4X3QgKmIsIHNpemVfdCBs ZW4pCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47IGkrKykgewotICAgICAgICBp ZiAoYVtpXSAhPSBiW2ldKSB7Ci0gICAgICAgICAgICBzaXplX3Qgb2Zmc2V0X29mX21pc21hdGNo ID0gaTsKLSAgICAgICAgICAgIHNpemVfdCBvZmZzZXQ7Ci0gICAgICAgICAgICBpZiAoaSA+PSA4 KSBpLT04OwotICAgICAgICAgICAgb2Zmc2V0ID0gaSAmICh+Nyk7Ci0gICAgICAgICAgICBwcmlu dGYoInRlc3QgYTpcbiIpOwotICAgICAgICAgICAgcHJpbnRfZGF0YSgmYVtvZmZzZXRdLCAzMiwg b2Zmc2V0KTsKLSAgICAgICAgICAgIHByaW50ZigiXG50ZXN0IGI6XG4iKTsKLSAgICAgICAgICAg IHByaW50X2RhdGEoJmJbb2Zmc2V0XSwgMzIsIG9mZnNldCk7Ci0gICAgICAgICAgICBwcmludGYo IlxuIik7Ci0gICAgICAgICAgICByZXR1cm4gb2Zmc2V0X29mX21pc21hdGNoOwotICAgICAgICB9 Ci0gICAgfQotICAgIHJldHVybiBsZW47Ci19CitTSE9XX0RJRkZfRlVOQyg4KQorU0hPV19ESUZG X0ZVTkMoMTYpCiAKIHN0YXRpYyB2b2lkIGNoZWNrX3l1djJ5dXYxKGludCBhY2N1cmF0ZSkKIHsK QEAgLTE0MCwxMCArMTQ5LDEwIEBAIHN0YXRpYyB2b2lkIGNoZWNrX3l1djJ5dXYxKGludCBhY2N1 cmF0ZSkKIAogICAgICAgICAgICAgICAgIGNhbGxfcmVmKHNyY19waXhlbHMsIGRzdDAsIGRzdFcs IGRpdGhlciwgb2Zmc2V0KTsKICAgICAgICAgICAgICAgICBjYWxsX25ldyhzcmNfcGl4ZWxzLCBk c3QxLCBkc3RXLCBkaXRoZXIsIG9mZnNldCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNtcF9vZmZf Ynlfbihkc3QwLCBkc3QxLCBkc3RXICogc2l6ZW9mKGRzdDBbMF0pLCBhY2N1cmF0ZSA/IDAgOiAy KSkgeworICAgICAgICAgICAgICAgIGlmIChjbXBfb2ZmX2J5XzgoZHN0MCwgZHN0MSwgZHN0VyAq IHNpemVvZihkc3QwWzBdKSwgYWNjdXJhdGUgPyAwIDogMikpIHsKICAgICAgICAgICAgICAgICAg ICAgZmFpbCgpOwogICAgICAgICAgICAgICAgICAgICBwcmludGYoImZhaWxlZDogeXV2Mnl1djFf JWRfJWRpXyVzXG4iLCBvZmZzZXQsIGRzdFcsIGFjY3VyYXRlX3N0cik7Ci0gICAgICAgICAgICAg ICAgICAgIGZhaWxfb2Zmc2V0ID0gc2hvd19kaWZmZXJlbmNlcyhkc3QwLCBkc3QxLCBMQVJHRVNU X0lOUFVUX1NJWkUgKiBzaXplb2YoZHN0MFswXSkpOworICAgICAgICAgICAgICAgICAgICBmYWls X29mZnNldCA9IHNob3dfZGlmZmVyZW5jZXNfOChkc3QwLCBkc3QxLCBMQVJHRVNUX0lOUFVUX1NJ WkUgKiBzaXplb2YoZHN0MFswXSkpOwogICAgICAgICAgICAgICAgICAgICBwcmludGYoImZhaWxp bmcgdmFsdWVzOiBzcmM6IDB4JTA0eCBkaXRoZXI6IDB4JTAyeCBkc3QtYzogJTAyeCBkc3QtYXNt OiAlMDJ4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIHNyY19waXhlbHNb ZmFpbF9vZmZzZXRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIGRpdGhlclso ZmFpbF9vZmZzZXQgKyBmYWlsX29mZnNldCkgJiA3XSwKQEAgLTE1OCw3ICsxNjcsNyBAQCBzdGF0 aWMgdm9pZCBjaGVja195dXYyeXV2MShpbnQgYWNjdXJhdGUpCiAgICAgc3dzX2ZyZWVDb250ZXh0 KHN3cyk7CiB9CiAKLXN0YXRpYyB2b2lkIGNoZWNrX3l1djJ5dXZYKGludCBhY2N1cmF0ZSkKK3N0 YXRpYyB2b2lkIGNoZWNrX3l1djJ5dXZYKGludCBhY2N1cmF0ZSwgaW50IGJpdF9kZXB0aCwgaW50 IGRzdF9waXhfZm9ybWF0KQogewogICAgIFN3c0NvbnRleHQgKnN3czsKICAgICBTd3NJbnRlcm5h bCAqYzsKQEAgLTE3OSw4ICsxODgsOCBAQCBzdGF0aWMgdm9pZCBjaGVja195dXYyeXV2WChpbnQg YWNjdXJhdGUpCiAgICAgY29uc3QgaW50MTZfdCAqKnNyYzsKICAgICBMT0NBTF9BTElHTkVEXzE2 KGludDE2X3QsIHNyY19waXhlbHMsIFtMQVJHRVNUX0ZJTFRFUiAqIExBUkdFU1RfSU5QVVRfU0la RV0pOwogICAgIExPQ0FMX0FMSUdORURfMTYoaW50MTZfdCwgZmlsdGVyX2NvZWZmLCBbTEFSR0VT VF9GSUxURVJdKTsKLSAgICBMT0NBTF9BTElHTkVEXzE2KHVpbnQ4X3QsIGRzdDAsIFtMQVJHRVNU X0lOUFVUX1NJWkVdKTsKLSAgICBMT0NBTF9BTElHTkVEXzE2KHVpbnQ4X3QsIGRzdDEsIFtMQVJH RVNUX0lOUFVUX1NJWkVdKTsKKyAgICBMT0NBTF9BTElHTkVEXzE2KHVpbnQxNl90LCBkc3QwLCBb TEFSR0VTVF9JTlBVVF9TSVpFXSk7CisgICAgTE9DQUxfQUxJR05FRF8xNih1aW50MTZfdCwgZHN0 MSwgW0xBUkdFU1RfSU5QVVRfU0laRV0pOwogICAgIExPQ0FMX0FMSUdORURfMTYodWludDhfdCwg ZGl0aGVyLCBbTEFSR0VTVF9JTlBVVF9TSVpFXSk7CiAgICAgdW5pb24gVkZpbHRlckRhdGF7CiAg ICAgICAgIGNvbnN0IGludDE2X3QgKnNyYzsKQEAgLTE5MCwxMiArMTk5LDE0IEBAIHN0YXRpYyB2 b2lkIGNoZWNrX3l1djJ5dXZYKGludCBhY2N1cmF0ZSkKICAgICBtZW1zZXQoZGl0aGVyLCBkX3Zh bCwgTEFSR0VTVF9JTlBVVF9TSVpFKTsKICAgICByYW5kb21pemVfYnVmZmVycygodWludDhfdCop c3JjX3BpeGVscywgTEFSR0VTVF9GSUxURVIgKiBMQVJHRVNUX0lOUFVUX1NJWkUgKiBzaXplb2Yo aW50MTZfdCkpOwogICAgIHN3cyA9IHN3c19hbGxvY19jb250ZXh0KCk7CisgICAgc3dzLT5kc3Rf Zm9ybWF0ID0gZHN0X3BpeF9mb3JtYXQ7CiAgICAgaWYgKGFjY3VyYXRlKQogICAgICAgICBzd3Mt PmZsYWdzIHw9IFNXU19BQ0NVUkFURV9STkQ7CiAgICAgaWYgKHN3c19pbml0X2NvbnRleHQoc3dz LCBOVUxMLCBOVUxMKSA8IDApCiAgICAgICAgIGZhaWwoKTsKIAogICAgIGMgPSBzd3NfaW50ZXJu YWwoc3dzKTsKKyAgICBjLT5kc3RCcGMgPSBiaXRfZGVwdGg7CiAgICAgZmZfc3dzX2luaXRfc2Nh bGUoYyk7CiAgICAgZm9yKGlzaSA9IDA7IGlzaSA8IEZGX0FSUkFZX0VMRU1TKGlucHV0X3NpemVz KTsgKytpc2kpewogICAgICAgICBkc3RXID0gaW5wdXRfc2l6ZXNbaXNpXTsKQEAgLTIyNywyNCAr MjM4LDM5IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3l1djJ5dXZYKGludCBhY2N1cmF0ZSkKICAgICAg ICAgICAgICAgICAgICAgZm9yKGogPSAwOyBqIDwgNDsgKytqKQogICAgICAgICAgICAgICAgICAg ICAgICAgdkZpbHRlckRhdGFbaV0uY29lZmZbaiArIDRdID0gZmlsdGVyX2NvZWZmW2ldOwogICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoY2hlY2tfZnVuYyhjLT55dXYycGxh bmVYLCAieXV2Mnl1dlhfJWRfJWRfJWRfJXMiLCBmaWx0ZXJfc2l6ZXNbZnNpXSwgb3NpLCBkc3RX LCBhY2N1cmF0ZV9zdHIpKXsKKyAgICAgICAgICAgICAgICBpZiAoY2hlY2tfZnVuYyhjLT55dXYy cGxhbmVYLCAieXV2Mnl1dlhfJWRfJXNfJWRfJWRfJWRfJXMiLCBiaXRfZGVwdGgsIGlzQkUoZHN0 X3BpeF9mb3JtYXQpID8gIkJFIiA6ICJMRSIsIGZpbHRlcl9zaXplc1tmc2ldLCBvc2ksIGRzdFcs IGFjY3VyYXRlX3N0cikpewogICAgICAgICAgICAgICAgICAgICAvLyB1c2UgdkZpbHRlckRhdGEg Zm9yIHRoZSBtbXggZnVuY3Rpb24KICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50MTZfdCAq ZmlsdGVyID0gYy0+dXNlX21teF92ZmlsdGVyID8gKGNvbnN0IGludDE2X3QqKXZGaWx0ZXJEYXRh IDogJmZpbHRlcl9jb2VmZlswXTsKICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KGRzdDAsIDAs IExBUkdFU1RfSU5QVVRfU0laRSAqIHNpemVvZihkc3QwWzBdKSk7CiAgICAgICAgICAgICAgICAg ICAgIG1lbXNldChkc3QxLCAwLCBMQVJHRVNUX0lOUFVUX1NJWkUgKiBzaXplb2YoZHN0MVswXSkp OwogCi0gICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IHVzZSBjYWxsX3JlZiBoZXJlLCBi ZWNhdXNlIHdlIGRvbid0IGtub3cgaWYgdXNlX21teF92ZmlsdGVyIHdhcyBzZXQgZm9yIHRoYXQK LSAgICAgICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24gb3Igbm90LCBzbyB3ZSBjYW4ndCBwYXNz IGl0IHRoZSBwYXJhbWV0ZXJzIGNvcnJlY3RseS4KLSAgICAgICAgICAgICAgICAgICAgeXV2MnBs YW5lWF84X3JlZigmZmlsdGVyX2NvZWZmWzBdLCBmaWx0ZXJfc2l6ZXNbZnNpXSwgc3JjLCBkc3Qw LCBkc3RXIC0gb3NpLCBkaXRoZXIsIG9zaSk7CisgICAgICAgICAgICAgICAgICAgIGlmKGMtPmRz dEJwYyA9PSA4KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg ICAvLyBXZSBjYW4ndCB1c2UgY2FsbF9yZWYgaGVyZSwgYmVjYXVzZSB3ZSBkb24ndCBrbm93IGlm IHVzZV9tbXhfdmZpbHRlciB3YXMgc2V0IGZvciB0aGF0CisgICAgICAgICAgICAgICAgICAgICAg ICAvLyBmdW5jdGlvbiBvciBub3QsIHNvIHdlIGNhbid0IHBhc3MgaXQgdGhlIHBhcmFtZXRlcnMg Y29ycmVjdGx5LgogCi0gICAgICAgICAgICAgICAgICAgIGNhbGxfbmV3KGZpbHRlciwgZmlsdGVy X3NpemVzW2ZzaV0sIHNyYywgZHN0MSwgZHN0VyAtIG9zaSwgZGl0aGVyLCBvc2kpOwotICAgICAg ICAgICAgICAgICAgICBpZiAoY21wX29mZl9ieV9uKGRzdDAsIGRzdDEsIExBUkdFU1RfSU5QVVRf U0laRSAqIHNpemVvZihkc3QwWzBdKSwgYWNjdXJhdGUgPyAwIDogMikpIHsKLSAgICAgICAgICAg ICAgICAgICAgICAgIGZhaWwoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiZmFp bGVkOiB5dXYyeXV2WF8lZF8lZF8lZF8lc1xuIiwgZmlsdGVyX3NpemVzW2ZzaV0sIG9zaSwgZHN0 VywgYWNjdXJhdGVfc3RyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfZGlmZmVyZW5j ZXMoZHN0MCwgZHN0MSwgTEFSR0VTVF9JTlBVVF9TSVpFICogc2l6ZW9mKGRzdDBbMF0pKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgIHl1djJwbGFuZVhfOF9yZWYoJmZpbHRlcl9jb2VmZlswXSwg ZmlsdGVyX3NpemVzW2ZzaV0sIHNyYywgKHVpbnQ4X3QqKWRzdDAsIGRzdFcgLSBvc2ksIGRpdGhl ciwgb3NpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxfbmV3KGZpbHRlciwgZmlsdGVy X3NpemVzW2ZzaV0sIHNyYywgKHVpbnQ4X3QqKWRzdDEsIGRzdFcgLSBvc2ksIGRpdGhlciwgb3Np KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNtcF9vZmZfYnlfOCgodWludDhfdCop ZHN0MCwgKHVpbnQ4X3QqKWRzdDEsIExBUkdFU1RfSU5QVVRfU0laRSwgYWNjdXJhdGUgPyAwIDog MikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRmKCJmYWlsZWQ6IHl1djJ5dXZYXyVkXyVzXyVkXyVkXyVkXyVz XG4iLCBiaXRfZGVwdGgsIGlzQkUoZHN0X3BpeF9mb3JtYXQpID8gIkJFIiA6ICJMRSIsIGZpbHRl cl9zaXplc1tmc2ldLCBvc2ksIGRzdFcsIGFjY3VyYXRlX3N0cik7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2hvd19kaWZmZXJlbmNlc184KCh1aW50OF90Kilkc3QwLCAodWludDhfdCop ZHN0MSwgTEFSR0VTVF9JTlBVVF9TSVpFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxfcmVmKCZmaWx0ZXJfY29l ZmZbMF0sIGZpbHRlcl9zaXplc1tmc2ldLCBzcmMsICh1aW50OF90Kilkc3QwLCBkc3RXIC0gb3Np LCBkaXRoZXIsIG9zaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWxsX25ldygmZmlsdGVy X2NvZWZmWzBdLCBmaWx0ZXJfc2l6ZXNbZnNpXSwgc3JjLCAodWludDhfdCopZHN0MSwgZHN0VyAt IG9zaSwgZGl0aGVyLCBvc2kpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY21wX29m Zl9ieV8xNihkc3QwLCBkc3QxLCBMQVJHRVNUX0lOUFVUX1NJWkUsIGFjY3VyYXRlID8gMCA6IDIp KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByaW50ZigiZmFpbGVkOiB5dXYyeXV2WF8lZF8lc18lZF8lZF8lZF8lc1xu IiwgYml0X2RlcHRoLCBpc0JFKGRzdF9waXhfZm9ybWF0KSA/ICJCRSIgOiAiTEUiLCBmaWx0ZXJf c2l6ZXNbZnNpXSwgb3NpLCBkc3RXLCBhY2N1cmF0ZV9zdHIpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNob3dfZGlmZmVyZW5jZXNfMTYoZHN0MCwgZHN0MSwgTEFSR0VTVF9JTlBVVF9T SVpFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICBpZihkc3RXID09IExBUkdFU1RfSU5QVVRfU0laRSkKLSAgICAg ICAgICAgICAgICAgICAgICAgIGJlbmNoX25ldygoY29uc3QgaW50MTZfdCopdkZpbHRlckRhdGEs IGZpbHRlcl9zaXplc1tmc2ldLCBzcmMsIGRzdDEsIGRzdFcgLSBvc2ksIGRpdGhlciwgb3NpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgIGJlbmNoX25ldyhmaWx0ZXIsIGZpbHRlcl9zaXplc1tm c2ldLCBzcmMsICh1aW50OF90Kilkc3QxLCBkc3RXIC0gb3NpLCBkaXRoZXIsIG9zaSk7CiAKICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYXZfZnJlZXAoJnNyYyk7CkBAIC0zMTEs MTAgKzMzNywxMCBAQCBzdGF0aWMgdm9pZCBjaGVja195dXYybnYxMmNYKGludCBhY2N1cmF0ZSkK ICAgICAgICAgICAgICAgICBjYWxsX3JlZihzd3MtPmRzdF9mb3JtYXQsIGRpdGhlciwgJmZpbHRl cl9jb2VmZlswXSwgZmlsdGVyX3NpemUsIHNyY1UsIHNyY1YsIGRzdDAsIGRzdFcpOwogICAgICAg ICAgICAgICAgIGNhbGxfbmV3KHN3cy0+ZHN0X2Zvcm1hdCwgZGl0aGVyLCAmZmlsdGVyX2NvZWZm WzBdLCBmaWx0ZXJfc2l6ZSwgc3JjVSwgc3JjViwgZHN0MSwgZHN0Vyk7CiAKLSAgICAgICAgICAg ICAgICBpZiAoY21wX29mZl9ieV9uKGRzdDAsIGRzdDEsIGRzdFcgKiAyICogc2l6ZW9mKGRzdDBb MF0pLCBhY2N1cmF0ZSA/IDAgOiAyKSkgeworICAgICAgICAgICAgICAgIGlmIChjbXBfb2ZmX2J5 XzgoZHN0MCwgZHN0MSwgZHN0VyAqIDIgKiBzaXplb2YoZHN0MFswXSksIGFjY3VyYXRlID8gMCA6 IDIpKSB7CiAgICAgICAgICAgICAgICAgICAgIGZhaWwoKTsKICAgICAgICAgICAgICAgICAgICAg cHJpbnRmKCJmYWlsZWQ6IHl1djJudjEyd1hfJWRfJWRfJXNcbiIsIGZpbHRlcl9zaXplLCBkc3RX LCBhY2N1cmF0ZV9zdHIpOwotICAgICAgICAgICAgICAgICAgICBzaG93X2RpZmZlcmVuY2VzKGRz dDAsIGRzdDEsIGRzdFcgKiAyICogc2l6ZW9mKGRzdDBbMF0pKTsKKyAgICAgICAgICAgICAgICAg ICAgc2hvd19kaWZmZXJlbmNlc184KGRzdDAsIGRzdDEsIGRzdFcgKiAyICogc2l6ZW9mKGRzdDBb MF0pKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKGRzdFcgPT0gTEFS R0VTVF9JTlBVVF9TSVpFKQogICAgICAgICAgICAgICAgICAgICBiZW5jaF9uZXcoc3dzLT5kc3Rf Zm9ybWF0LCBkaXRoZXIsICZmaWx0ZXJfY29lZmZbMF0sIGZpbHRlcl9zaXplLCBzcmNVLCBzcmNW LCBkc3QxLCBkc3RXKTsKQEAgLTQ0MSw5ICs0NjcsMzMgQEAgdm9pZCBjaGVja2FzbV9jaGVja19z d19zY2FsZSh2b2lkKQogICAgIGNoZWNrX3l1djJ5dXYxKDApOwogICAgIGNoZWNrX3l1djJ5dXYx KDEpOwogICAgIHJlcG9ydCgieXV2Mnl1djEiKTsKLSAgICBjaGVja195dXYyeXV2WCgwKTsKLSAg ICBjaGVja195dXYyeXV2WCgxKTsKLSAgICByZXBvcnQoInl1djJ5dXZYIik7CisgICAgY2hlY2tf eXV2Mnl1dlgoMCwgOCwgQVZfUElYX0ZNVF9ZVVY0MjBQKTsKKyAgICBjaGVja195dXYyeXV2WCgx LCA4LCBBVl9QSVhfRk1UX1lVVjQyMFApOworICAgIHJlcG9ydCgieXV2Mnl1dlhfOCIpOworICAg IGNoZWNrX3l1djJ5dXZYKDAsIDksIEFWX1BJWF9GTVRfWVVWNDIwUDlMRSk7CisgICAgY2hlY2tf eXV2Mnl1dlgoMSwgOSwgQVZfUElYX0ZNVF9ZVVY0MjBQOUxFKTsKKyAgICByZXBvcnQoInl1djJ5 dXZYXzlMRSIpOworICAgIGNoZWNrX3l1djJ5dXZYKDAsIDksIEFWX1BJWF9GTVRfWVVWNDIwUDlC RSk7CisgICAgY2hlY2tfeXV2Mnl1dlgoMSwgOSwgQVZfUElYX0ZNVF9ZVVY0MjBQOUJFKTsKKyAg ICByZXBvcnQoInl1djJ5dXZYXzlCRSIpOworICAgIGNoZWNrX3l1djJ5dXZYKDAsIDEwLCBBVl9Q SVhfRk1UX1lVVjQyMFAxMExFKTsKKyAgICBjaGVja195dXYyeXV2WCgxLCAxMCwgQVZfUElYX0ZN VF9ZVVY0MjBQMTBMRSk7CisgICAgcmVwb3J0KCJ5dXYyeXV2WF8xMExFIik7CisgICAgY2hlY2tf eXV2Mnl1dlgoMCwgMTAsIEFWX1BJWF9GTVRfWVVWNDIwUDEwQkUpOworICAgIGNoZWNrX3l1djJ5 dXZYKDEsIDEwLCBBVl9QSVhfRk1UX1lVVjQyMFAxMEJFKTsKKyAgICByZXBvcnQoInl1djJ5dXZY XzEwQkUiKTsKKyAgICBjaGVja195dXYyeXV2WCgwLCAxMiwgQVZfUElYX0ZNVF9ZVVY0MjBQMTJM RSk7CisgICAgY2hlY2tfeXV2Mnl1dlgoMSwgMTIsIEFWX1BJWF9GTVRfWVVWNDIwUDEyTEUpOwor ICAgIHJlcG9ydCgieXV2Mnl1dlhfMTJMRSIpOworICAgIGNoZWNrX3l1djJ5dXZYKDAsIDEyLCBB Vl9QSVhfRk1UX1lVVjQyMFAxMkJFKTsKKyAgICBjaGVja195dXYyeXV2WCgxLCAxMiwgQVZfUElY X0ZNVF9ZVVY0MjBQMTJCRSk7CisgICAgcmVwb3J0KCJ5dXYyeXV2WF8xMkJFIik7CisgICAgY2hl Y2tfeXV2Mnl1dlgoMCwgMTQsIEFWX1BJWF9GTVRfWVVWNDIwUDE0TEUpOworICAgIGNoZWNrX3l1 djJ5dXZYKDEsIDE0LCBBVl9QSVhfRk1UX1lVVjQyMFAxNExFKTsKKyAgICByZXBvcnQoInl1djJ5 dXZYXzE0TEUiKTsKKyAgICBjaGVja195dXYyeXV2WCgwLCAxNCwgQVZfUElYX0ZNVF9ZVVY0MjBQ MTRCRSk7CisgICAgY2hlY2tfeXV2Mnl1dlgoMSwgMTQsIEFWX1BJWF9GTVRfWVVWNDIwUDE0QkUp OworICAgIHJlcG9ydCgieXV2Mnl1dlhfMTRCRSIpOwogICAgIGNoZWNrX3l1djJudjEyY1goMCk7 CiAgICAgY2hlY2tfeXV2Mm52MTJjWCgxKTsKICAgICByZXBvcnQoInl1djJudjEyY1giKTsKLS0g CjIuMzQuMQoK --_004_PN3P287MB3339D0CB6A424D394B60C4EF9A40APN3P287MB3339INDP_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --_004_PN3P287MB3339D0CB6A424D394B60C4EF9A40APN3P287MB3339INDP_--