From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (NAM02-DM3-obe.outbound.protection.outlook.com [40.107.95.67]) by mx.groups.io with SMTP id smtpd.web11.6992.1681191073044830205 for ; Mon, 10 Apr 2023 22:31:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=loOWVJ+L; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.95.67, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lZ+qs4WK1CEW/lRQDfGjLrmK7+m6ifEOOmvlx2qlYjYYcKKCpmoS4++AEjD5F0KG7Kv8pUisiILziFJZN63OqDqKhIqS8YJh8t3xnsH2idX1uiXM64Evf4Kr8+T0izsISUZFeAP2tP85iokt/DtGNf8hAc2zfWZLTy9kndcsjQQXKvYpsKkkGGIFoc1C4KuREnt+5I9BXY8exiJ+Y9UEOX1Nmyu20BTN3HanTsuqPvlLMjup5Bm3XWfEG3Mau1p4o7eAhlbPFxOBPNddFG+AtkrS95SJg18hfggVo3Lf83W7EnJpyZctUenoLxgxrvFpxTP4JIp0wcImxFFam/MSRg== 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=q+wVmaKb1rzY9ebF8MOCfjchsb3WeU1Z8wL4YkPCZZ0=; b=kQ9hPPIgekC+lRj5wCSKtP36fKMEBecQyIBqvN44Xmuoa74ApaFQ/eQM7ObGxsn62ufwexcSohkFXzwiabd71yL+p/lsk0D35exO3AG3GO0PVntnvs1U+CCyKasB9Zg5wC9O37yik5RuikVivBs/hTLkao1MUVUb6EVwPXPc3h4DLfNXoMfTk6lZ1fj4myv8WaUnMHrNaMXIKFnp2fj4otx3x+UPLg3b9746QFLV8sdLrB+TjMiOeRofPIZdu+3n8UzCWoS5RefBY87lyCaKaWTqmtpkD5YmxglKuynbzqG7RAX9wEE+MaFzrhPAHUWS1AvQ3KkWEV+4M+fk45o1Qg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q+wVmaKb1rzY9ebF8MOCfjchsb3WeU1Z8wL4YkPCZZ0=; b=loOWVJ+LJRsBPcmw7nO0094DU1idhGR2LRDWriaZELO1wZborgLeYr8IkFwnGz4mYb9auUvcIEOBWF5Ygi23zBQP8b+hz0fPcZMNBnHXRWujBYC1Rr2Ey4R2FPIh/TvFlS5ye3jRxWefTx4osEusiIvcJ+T5IHj9SgR0K/a9nkw= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by DS7PR12MB6190.namprd12.prod.outlook.com (2603:10b6:8:99::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.36; Tue, 11 Apr 2023 05:31:10 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::30f:bd83:40dd:8f1]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::30f:bd83:40dd:8f1%3]) with mapi id 15.20.6277.036; Tue, 11 Apr 2023 05:31:10 +0000 From: "Chang, Abner" To: Tinh Nguyen , "devel@edk2.groups.io" CC: Isaac Oram , "Attar, AbdulLateef (Abdul Lateef)" , Nickle Wang , Igor Kulchytskyy Subject: Re: [edk2-devel] [edk2-platforms][PATCH 03/14] ManageabilityPkg: Fix Uncrustify errors Thread-Topic: [edk2-devel] [edk2-platforms][PATCH 03/14] ManageabilityPkg: Fix Uncrustify errors Thread-Index: AQHZa9FguCW1UuVxOUWsZA5FKPgPlq8llbvg Date: Tue, 11 Apr 2023 05:31:10 +0000 Message-ID: References: <20230403150459.925-1-abner.chang@amd.com> <20230403150459.925-4-abner.chang@amd.com> <0be90c10-0784-7e77-1c98-1bafba38987a@amperemail.onmicrosoft.com> In-Reply-To: <0be90c10-0784-7e77-1c98-1bafba38987a@amperemail.onmicrosoft.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-04-11T05:31:08Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=ea7f30e2-69ae-4c91-9e7a-e05c2e6ba655; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|DS7PR12MB6190:EE_ x-ms-office365-filtering-correlation-id: 7dc29317-47b4-462b-4ab1-08db3a4df54e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DqFFBp7/R8ZZ6qBe13AVAa0ZNKDya6dbo71pv2JIR04MFv9O3doCza312CKJ9KSJcKxMYCvHNh5P1e2016w3aOMKLTYqwEIfQdfzU20o9AtvQNshGz1X3d3tGK7ZqKWjlZy512XrZ5YH1sq6Rlty/gz+O5um/A5iClYJCRD7dm7LKbKR+7keTinDTb3rg32H102Q1KFmy61tO9SnaadRXcUaJG6lGUPYYekpLL+qRRs5lzNqA6ie7rGK/xqXQBJSCMdm7ArdpQdS+nL5o0SGRh4f2mu8U+gLPLj9GPirgJuC4Jo6H3mdHEIjQWXRTArIJo3qJrUimhwhMEe4n5H8t3bmpuNsq/ww5WKiPstdi8lkxevg3V8W+wPxgfQH1StSF/jZLYnPqMWonJz6nUKmLcN8eHerD0Lr27vi5qnRfIiZMjRTh941K0CVZjpeHDwYCCT9q6gXmmGAke5XIk7e8YBuI4ecYGfIftxl7iQ9NbIN9MoUB5AZ4zfybRXCCQSd/ItEBwjwXGf8WcFwJbjxtnG9uYPwG5JZB/rv4Y952pOrkBUvtnd99hFc+sWkLGuRtYj2t4WKj+E8iEOZcFARjbPCkO2Xs5V4ob9HrC+8m7rXL2TPIyWJYh55xUdGUYdkuv8ugTKuIKHXiqOEDl2l/g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(346002)(396003)(376002)(366004)(39860400002)(136003)(451199021)(71200400001)(7696005)(478600001)(316002)(110136005)(53546011)(9686003)(26005)(6506007)(186003)(54906003)(2906002)(30864003)(296002)(5660300002)(4326008)(66946007)(76116006)(66446008)(41300700001)(8676002)(66476007)(64756008)(52536014)(8936002)(66556008)(38100700002)(38070700005)(122000001)(55016003)(86362001)(83380400001)(33656002)(44824005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MEFHVWoyU25aWnNpeGFYOEFVZEJLY0dsd0hmZ3hodGcwd3ptSUsrTEx6S2lT?= =?utf-8?B?YUZ4Z3B0ODJIR21TOVdodDZ6TTNOemdXNWdReThkeVpWN3l5Tm1POGpSZEo4?= =?utf-8?B?NHpGd2cxektTd0t2UjZPWkNqdWQzOTF0SmlIRnB1M056eXRLazMvVmd5NWJj?= =?utf-8?B?T3ZsQkppaEVRdFdwYm1SU0wxTzFML09XSk53V2cya2wybm9GZVYvNDRKcDli?= =?utf-8?B?TkxBYlZyMGtkVzIwZncrMW9JNjlMa09PWWh3RFdrOVdpOGhMaEd2RnNtWlBw?= =?utf-8?B?ODkzN1FwNlZkdmMwQzNnM3Iya2NCbzl4WG42dGk0SGYybUY5MXczd2RhZ2Nu?= =?utf-8?B?L0lIVG9MeWN6VnJheXFzK1hWU0g3SjFwbzZ5b2wycklyazk1Q21IS0dTanpR?= =?utf-8?B?aFZhZ0dGcFdYZlVWUXgrbzJkQmN5REN1RnhENWg3azZ6UkkrejlRZHpRV1Zy?= =?utf-8?B?S0ZqT05qVlNRWklNUENkOTZPNFo2MWd1N2g2NHZoaGUzMExlV3JzbVpKSHhY?= =?utf-8?B?UStueXBBWnVzL0tDbTAvWHJWNlE2L3BGaHA3aXdjclpwcXNpcTc4MW11VTlh?= =?utf-8?B?ZEZ2TTVEcks0RHNVeEZhcm9wNXhxZnFudDVheWhDaWZvUm1rR0VzUWhxWDNZ?= =?utf-8?B?WmtPNXI4dmdUWEtJWDYvM1lkblZycmhWQk9zNzQwSm8rbWJxVmxHUERnYzRk?= =?utf-8?B?UWZ3b0pja3Byb2E3THhEeFlHbUdaT2JyK3FTV3MxWnRkbndDeS9ZMGMzTE9r?= =?utf-8?B?dXZYUldMWW5mbzBUbGJqSU5KaGtZTWhZWFIxM0xHcEdmajJZQ2dIMmhuOGts?= =?utf-8?B?QmlkUCt2Q0k4YUNOM0thUys5Y3V4aVBwQjVpamF4TVNQa0lNTGtMN1dCRjVF?= =?utf-8?B?R1NVWjVqS0lwemVoc3Rsdk1Ya3lnRHNKOENoN0d6Z0FUanFwYzdxb1krOXIy?= =?utf-8?B?UUp6c0R0ZXlUZFUwd3YvSGJ3NEtZYk00TFZGRG1IOUl3ekZlTkRrRlh4b29L?= =?utf-8?B?ZEowYlVQdi9uak5tRE5lSzF2dDhFNmxPNjBBdzNXMWRpVGtIcUJGVTFWQWFi?= =?utf-8?B?amJzV0ZrV0NROXZDcEFVME9HUWZGbzBscHNJNndyMjRKVWRuRTdyQmE4SGE1?= =?utf-8?B?dE9oUHpiVmZQTWVVM3hReGRLa1BqTDVlV0xFa2FFeUMxbnAvR3lDM3FUc2VS?= =?utf-8?B?UzN1MEpuMXRZWGJrdFY4aEVpOTNoaDhHelhmQ1dZTTJ6WHVCZGRoMjd3dHVN?= =?utf-8?B?VksrdlFqWHRJdmU5a2FCa2VENUpvQWpTbGhxbGlGbHFvMzZwYnVhU2JhWCtt?= =?utf-8?B?Y0dtWmJxTkRVQzFkcVJCMHcxbmh2di94N1JBRHd2Tm1uQ1lJbDFkTmxudFNa?= =?utf-8?B?QTZzdlJHM3BDZVdlMlBOZ0xUc1QvYlgwL1JYRE10bUZucVpTWEVic3pPYWor?= =?utf-8?B?SlYyV1pEOTcwcWZRdmZwdTRoWkYyMXVRK3JsbEpmcUx2NDV2RjErYWtKajBF?= =?utf-8?B?OUdaRlZrQzZocVBrZzhoSUtwRTE5dnV3NktPMHRQSzd1U0tlV1ZFbGxOeVdw?= =?utf-8?B?ZUY0N29OMVA0ZStBa3lSYnBUWTZvQmtFQXFzWmF5WS9KS0pxUENjNDdycVE5?= =?utf-8?B?RVpJdjRlazBNSFByZFV6UDFsd2FlS2FaVmtSdEpFZFBVbmRURHpRRlRwV0Fl?= =?utf-8?B?WGR5UjdOMFE0a0F0VFpQUThoeFlBR2ZDN0tEVEg4MXJicFQzNmlmbXJ1cWYv?= =?utf-8?B?LzJYRDVuRWx3WHZETVpFUFFCeGh2dTcyREUxcTNwNjdMMWY2ZEd1cFAzUU9Y?= =?utf-8?B?UFMzUDNCZ21uc3RUNXQ2UnNpN25uU1ZDRHlRN25YTkRqRjJXTjZtQkFjUyt6?= =?utf-8?B?UThOVlEzR3U3VEx4Snp5N25SNVJOdjh1WHAwbjk1cGhoelBTUUJROWhWNUVV?= =?utf-8?B?UlBReW1NNHprZ1dobXhlWmhDOEl2VDZkYmNheGIzcC9CWWsvdVRvcnNZZVl4?= =?utf-8?B?eSsyNWlOUDBtVUVSaU9melgydFczTmQxUld5RnFHaHorVWRqV1o0eUE1d0VM?= =?utf-8?B?cHQrK0dUNVJLQTBGSFlueVg5QzIrVnltQTRwZmJMSDMwY0xqeFVLeko0dFZM?= =?utf-8?Q?BBXI=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7dc29317-47b4-462b-4ab1-08db3a4df54e X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2023 05:31:10.5150 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UBqMvD9rw5pu8gweyTr2dTkwer2g0IWhKf7JRnh16N7XrfzJqmZaE8BoifuAHs8h5emTLvhjzdWiDAprJ9vTyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6190 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IFRpbmggTmd1eWVuIDx0aW5obmd1eWVuQGFtcGVyZW1haWwu b25taWNyb3NvZnQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxMSwgMjAyMyAxOjI1IEFN DQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQ2hhbmcsIEFibmVyIDxBYm5lci5DaGFuZ0Bh bWQuY29tPg0KPiBDYzogSXNhYWMgT3JhbSA8aXNhYWMudy5vcmFtQGludGVsLmNvbT47IEF0dGFy LCBBYmR1bExhdGVlZiAoQWJkdWwgTGF0ZWVmKQ0KPiA8QWJkdWxMYXRlZWYuQXR0YXJAYW1kLmNv bT47IE5pY2tsZSBXYW5nIDxuaWNrbGV3QG52aWRpYS5jb20+OyBJZ29yDQo+IEt1bGNoeXRza3l5 IDxpZ29ya0BhbWkuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyLXBsYXRm b3Jtc11bUEFUQ0ggMDMvMTRdIE1hbmFnZWFiaWxpdHlQa2c6DQo+IEZpeCBVbmNydXN0aWZ5IGVy cm9ycw0KPiANCj4gQ2F1dGlvbjogVGhpcyBtZXNzYWdlIG9yaWdpbmF0ZWQgZnJvbSBhbiBFeHRl cm5hbCBTb3VyY2UuIFVzZSBwcm9wZXINCj4gY2F1dGlvbiB3aGVuIG9wZW5pbmcgYXR0YWNobWVu dHMsIGNsaWNraW5nIGxpbmtzLCBvciByZXNwb25kaW5nLg0KPiANCj4gDQo+IEhpIEFibmVyLA0K PiANCj4gSSBjaGVja2VkIGFuZCBmb3VuZCB0aGF0IHNvbWUgZmlsZXMgd2VyZSBub3QgZm9ybWF0 dGVkIHdpdGggdW5jcnVzdGlmeS4NCj4gUGxlYXNlIHJ1biBpdCBmb3IgdGhlIHdob2xlIHBhY2th Z2UuDQo+IA0KPiBZb3UgY2FuIGFwcGVuZCB0aGlzIGNvbW1pdCB0byB0aGUgb2YgdGhlIHNlcmll cy4NCkkgYmVsaWV2ZSBJIHJhbiBVbmNydXN0aWZ5IGNoZWNrIG9uIGVhY2ggY29tbWl0IGJlZm9y ZSBzZW5kaW5nIG91dCB0aGUgcGF0Y2hlcy4NCldpbGwgY2hlY2sgaXQgYWdhaW4gaW4gdGhlIG5l eHQgdmVyc2lvbi4NCg0KVGhhbmtzDQpBYm5lcg0KPiANCj4gT24gNC8zLzIwMjMgMTA6MDQgUE0s IENoYW5nLCBBYm5lciB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KPiA+IEZyb206IEFibmVyIENoYW5n IDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPiA+DQo+ID4gRml4IFVuY3J1c3RpZnkgZXJyb3JzIG9m IElQTUkgcHJvdG9jb2wgYW5kIEtDUyBtYW5hZ2VhYmlsaXR5IHRyYW5zcG9ydA0KPiA+IGxpYnJh cnkuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBBYm5lciBDaGFuZyA8YWJuZXIuY2hhbmdAYW1k LmNvbT4NCj4gPiBDYzogSXNhYWMgT3JhbSA8aXNhYWMudy5vcmFtQGludGVsLmNvbT4NCj4gPiBD YzogQWJkdWwgTGF0ZWVmIEF0dGFyIDxhYmRhdHRhckBhbWQuY29tPg0KPiA+IENjOiBOaWNrbGUg V2FuZyA8bmlja2xld0BudmlkaWEuY29tPg0KPiA+IENjOiBJZ29yIEt1bGNoeXRza3l5IDxpZ29y a0BhbWkuY29tPg0KPiA+IC0tLQ0KPiA+ICAgLi4uL0xpYnJhcnkvTWFuYWdlYWJpbGl0eVRyYW5z cG9ydExpYi5oICAgICAgIHwgIDggKystLQ0KPiA+ICAgLi4uL0lwbWlQcm90b2NvbC9QZWkvSXBt aVBwaUludGVybmFsLmggICAgICAgIHwgMTAgKystLS0NCj4gPiAgIC4uLi9EeGUvTWFuYWdlYWJp bGl0eVRyYW5zcG9ydEtjcy5jICAgICAgICAgICB8ICA2ICsrLQ0KPiA+ICAgLi4uL1VuaXZlcnNh bC9JcG1pUHJvdG9jb2wvRHhlL0lwbWlQcm90b2NvbC5jIHwgIDQgKy0NCj4gPiAgIC4uLi9Vbml2 ZXJzYWwvSXBtaVByb3RvY29sL1BlaS9JcG1pUHBpLmMgICAgICB8IDQwICsrKysrKysrKystLS0t LS0tLS0NCj4gPiAgIC4uLi9Vbml2ZXJzYWwvSXBtaVByb3RvY29sL1NtbS9JcG1pUHJvdG9jb2wu YyB8ICA3ICsrLS0NCj4gPiAgIDYgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKSwgMzQg ZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9GZWF0dXJlcy9NYW5hZ2Vh YmlsaXR5UGtnL0luY2x1ZGUvTGlicmFyeS9NYW5hZ2VhYmlsaXR5VHJhbnNwb3J0TGliLg0KPiA+ IGgNCj4gPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvSW5jbHVkZS9MaWJyYXJ5L01hbmFn ZWFiaWxpdHlUcmFuc3BvcnRMaWIuDQo+ID4gaA0KPiA+IGluZGV4IGFkNmNkMWE0NjQuLmQ4NmQw ZDg3ZDUgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL0lu Y2x1ZGUvTGlicmFyeS9NYW5hZ2VhYmlsaXR5VHJhbnNwb3J0TGliLg0KPiA+IGgNCj4gPiArKysg Yi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL0luY2x1ZGUvTGlicmFyeS9NYW5hZ2VhYmlsaXR5 VHJhbnNwb3J0DQo+ID4gKysrIExpYi5oDQo+ID4gQEAgLTc0LDEzICs3NCwxMyBAQCB0eXBlZGVm IFVJTlQzMg0KPiBNQU5BR0VBQklMSVRZX1RSQU5TUE9SVF9DQVBBQklMSVRZOw0KPiA+ICAgLy8v IEJpdCAwDQo+ID4gICAjZGVmaW5lDQo+IE1BTkFHRUFCSUxJVFlfVFJBTlNQT1JUX0NBUEFCSUxJ VFlfTVVMVElQTEVfVFJBTlNGRVJfVE9LRU5TDQo+IDB4MDAwMDAwMDENCj4gPiAgIC8vLyBCaXQg MQ0KPiA+IC0jZGVmaW5lDQo+IE1BTkFHRUFCSUxJVFlfVFJBTlNQT1JUX0NBUEFCSUxJVFlfQVNZ TkNIUk9OT1VTX1RSQU5TRkVSDQo+IDB4MDAwMDAwMDINCj4gPiArI2RlZmluZQ0KPiBNQU5BR0VB QklMSVRZX1RSQU5TUE9SVF9DQVBBQklMSVRZX0FTWU5DSFJPTk9VU19UUkFOU0ZFUg0KPiA+ICsw eDAwMDAwMDAyDQo+ID4gICAvLy8gQml0IDIgICAtIFJlc2VydmVkDQo+ID4gICAvLy8gQml0IDc6 MyAtIFRyYW5zcG9ydCBpbnRlcmZhY2UgbWF4aW11bSBwYXlsb2FkIHNpemUsIHdoaWNoIGlzICgy IF4gYml0Wzc6M10NCj4gLSAxKQ0KPiA+ICAgLy8vICAgICAgICAgICBiaXRbNzozXSBtZWFucyBu byBtYXhpbXVtIHBheWxvYWQuDQo+ID4gLSNkZWZpbmUNCj4gTUFOQUdFQUJJTElUWV9UUkFOU1BP UlRfQ0FQQUJJTElUWV9NQVhJTVVNX1BBWUxPQURfTUFTSw0KPiAweDAwMDAwMGY4DQo+ID4gLSNk ZWZpbmUNCj4gPg0KPiBNQU5BR0VBQklMSVRZX1RSQU5TUE9SVF9DQVBBQklMSVRZX01BWElNVU1f UEFZTE9BRF9CSVRfUE9TDQo+IElUSU9OICAzDQo+ID4gLSAgI2RlZmluZQ0KPiA+DQo+IE1BTkFH RUFCSUxJVFlfVFJBTlNQT1JUX0NBUEFCSUxJVFlfTUFYSU1VTV9QQVlMT0FEX05PVF9BVg0KPiBB SUxBQkxFICAweDAwDQo+ID4gKyNkZWZpbmUNCj4gTUFOQUdFQUJJTElUWV9UUkFOU1BPUlRfQ0FQ QUJJTElUWV9NQVhJTVVNX1BBWUxPQURfTUFTSw0KPiAweDAwMDAwMGY4DQo+ID4gKyNkZWZpbmUN Cj4gTUFOQUdFQUJJTElUWV9UUkFOU1BPUlRfQ0FQQUJJTElUWV9NQVhJTVVNX1BBWUxPQURfQklU X1BPUw0KPiBJVElPTiAgIDMNCj4gPiArI2RlZmluZQ0KPiA+DQo+ICtNQU5BR0VBQklMSVRZX1RS QU5TUE9SVF9DQVBBQklMSVRZX01BWElNVU1fUEFZTE9BRF9OT1RfQQ0KPiBWQUlMQUJMRQ0KPiA+ ICsweDAwDQo+ID4gICAvLy8gQml0IDg6MzEgLSBSZXNlcnZlZA0KPiA+DQo+ID4gICAvLy8NCj4g PiBkaWZmIC0tZ2l0DQo+ID4gYS9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9J cG1pUHJvdG9jb2wvUGVpL0lwbWlQcGlJbnRlcm5hbA0KPiA+IC5oDQo+ID4gYi9GZWF0dXJlcy9N YW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pUHJvdG9jb2wvUGVpL0lwbWlQcGlJbnRlcm5h bA0KPiA+IC5oDQo+ID4gaW5kZXggN2I2YWIwZjUyOS4uNGI2YmRjOTdhOSAxMDA2NDQNCj4gPiAt LS0NCj4gPiBhL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlQcm90b2Nv bC9QZWkvSXBtaVBwaUludGVybmFsDQo+ID4gLmgNCj4gPiArKysgYi9GZWF0dXJlcy9NYW5hZ2Vh YmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pUHJvdG9jb2wvUGVpL0lwbWlQcGlJbnRlDQo+ID4gKysr IHJuYWwuaA0KPiA+IEBAIC0xNywxMSArMTcsMTEgQEANCj4gPiAgICNkZWZpbmUgTUFOQUdFQUJJ TElUWV9JUE1JX1BQSV9JTlRFUk5BTF9GUk9NX0xJTksoYSkgIENSIChhLA0KPiA+IFBFSV9JUE1J X1BQSV9JTlRFUk5BTCwgUGVpSXBtaVBwaSwNCj4gPiBNQU5BR0VBQklMSVRZX0lQTUlfUFBJX0lO VEVSTkFMX1NJR05BVFVSRSkNCj4gPg0KPiA+ICAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+IC0gIFVJ TlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25hdHVyZTsNCj4gPiAtICBNQU5B R0VBQklMSVRZX1RSQU5TUE9SVF9UT0tFTiAgICAgICAqVHJhbnNwb3J0VG9rZW47DQo+ID4gLSAg TUFOQUdFQUJJTElUWV9UUkFOU1BPUlRfQ0FQQUJJTElUWSAgVHJhbnNwb3J0Q2FwYWJpbGl0eTsN Cj4gPiAtICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc3BvcnRNYXhp bXVtUGF5bG9hZDsNCj4gPiAtICBQRUlfSVBNSV9QUEkgICAgICAgICAgICAgICAgICAgICAgICBQ ZWlJcG1pUHBpOw0KPiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U2lnbmF0dXJlOw0KPiA+ICsgIE1BTkFHRUFCSUxJVFlfVFJBTlNQT1JUX1RPS0VOICAgICAgICAg KlRyYW5zcG9ydFRva2VuOw0KPiA+ICsgIE1BTkFHRUFCSUxJVFlfVFJBTlNQT1JUX0NBUEFCSUxJ VFkgICAgVHJhbnNwb3J0Q2FwYWJpbGl0eTsNCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRyYW5zcG9ydE1heGltdW1QYXlsb2FkOw0KPiA+ICsgIFBFSV9JUE1J X1BQSSAgICAgICAgICAgICAgICAgICAgICAgICAgUGVpSXBtaVBwaTsNCj4gPiAgIH0gUEVJX0lQ TUlfUFBJX0lOVEVSTkFMOw0KPiA+DQo+ID4gICAjZW5kaWYgLy8gTUFOQUdFQUJJTElUWV9JUE1J X1BQSV9JTlRFUk5BTF9IXw0KPiA+IGRpZmYgLS1naXQNCj4gPg0KPiBhL0ZlYXR1cmVzL01hbmFn ZWFiaWxpdHlQa2cvTGlicmFyeS9NYW5hZ2VhYmlsaXR5VHJhbnNwb3J0S2NzTGliL0R4ZS9NDQo+ ID4gYW5hZ2VhYmlsaXR5VHJhbnNwb3J0S2NzLmMNCj4gPg0KPiBiL0ZlYXR1cmVzL01hbmFnZWFi aWxpdHlQa2cvTGlicmFyeS9NYW5hZ2VhYmlsaXR5VHJhbnNwb3J0S2NzTGliL0R4ZS9NDQo+ID4g YW5hZ2VhYmlsaXR5VHJhbnNwb3J0S2NzLmMNCj4gPiBpbmRleCAyNWQ2ZTQ5ODg2Li45MWQzNTE3 YmRiIDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9M aWJyYXJ5L01hbmFnZWFiaWxpdHlUcmFuc3BvcnRLY3NMaWIvRHhlL00NCj4gPiBhbmFnZWFiaWxp dHlUcmFuc3BvcnRLY3MuYw0KPiA+ICsrKyBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvTGli cmFyeS9NYW5hZ2VhYmlsaXR5VHJhbnNwb3J0S2NzTGliL0QNCj4gPiArKysgeGUvTWFuYWdlYWJp bGl0eVRyYW5zcG9ydEtjcy5jDQo+ID4gQEAgLTIyMSw3ICsyMjEsNyBAQCBLY3NUcmFuc3BvcnRU cmFuc21pdFJlY2VpdmUgKA0KPiA+ICAgICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RhdHVzOw0KPiA+ICAgICBNQU5BR0VBQklMSVRZX0lQTUlfVFJBTlNQT1JUX0hFQURF UiAgKlRyYW5zbWl0SGVhZGVyOw0KPiA+DQo+ID4gLSAgaWYgKFRyYW5zcG9ydFRva2VuID09IE5V TEwgfHwgVHJhbnNmZXJUb2tlbiA9PSBOVUxMKSB7DQo+ID4gKyAgaWYgKChUcmFuc3BvcnRUb2tl biA9PSBOVUxMKSB8fCAoVHJhbnNmZXJUb2tlbiA9PSBOVUxMKSkgew0KPiA+ICAgICAgIERFQlVH ICgoREVCVUdfRVJST1IsICIlYTogSW52YWxpZCB0cmFuc3BvcnQgdG9rZW4gb3IgdHJhbnNmZXIN Cj4gdG9rZW4uXG4iLCBfX0ZVTkNUSU9OX18pKTsNCj4gPiAgICAgICByZXR1cm47DQo+ID4gICAg IH0NCj4gPiBAQCAtMjk4LDYgKzI5OCw3IEBAIEFjcXVpcmVUcmFuc3BvcnRTZXNzaW9uICgNCj4g PiAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IEZhaWwgdG8gYWxsb2NhdGUgbWVtb3J5 IGZvcg0KPiBNQU5BR0VBQklMSVRZX1RSQU5TUE9SVF9LQ1NcbiIsIF9fRlVOQ1RJT05fXykpOw0K PiA+ICAgICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiAgICAgfQ0KPiA+ICsN Cj4gPiAgICAgS2NzVHJhbnNwb3J0VG9rZW4tPlRva2VuLlRyYW5zcG9ydCA9IEFsbG9jYXRlWmVy b1Bvb2wgKHNpemVvZg0KPiAoTUFOQUdFQUJJTElUWV9UUkFOU1BPUlQpKTsNCj4gPiAgICAgaWYg KEtjc1RyYW5zcG9ydFRva2VuLT5Ub2tlbi5UcmFuc3BvcnQgPT0gTlVMTCkgew0KPiA+ICAgICAg IEZyZWVQb29sIChLY3NUcmFuc3BvcnRUb2tlbik7DQo+ID4gQEAgLTM0Niw5ICszNDcsMTAgQEAg R2V0VHJhbnNwb3J0Q2FwYWJpbGl0eSAoDQo+ID4gICAgIE9VVCBNQU5BR0VBQklMSVRZX1RSQU5T UE9SVF9DQVBBQklMSVRZICAqVHJhbnNwb3J0Q2FwYWJpbGl0eQ0KPiA+ICAgICApDQo+ID4gICB7 DQo+ID4gLSAgaWYgKFRyYW5zcG9ydFRva2VuID09IE5VTEwgfHwgVHJhbnNwb3J0Q2FwYWJpbGl0 eSA9PSBOVUxMKSB7DQo+ID4gKyAgaWYgKChUcmFuc3BvcnRUb2tlbiA9PSBOVUxMKSB8fCAoVHJh bnNwb3J0Q2FwYWJpbGl0eSA9PSBOVUxMKSkgew0KPiA+ICAgICAgIHJldHVybiBFRklfSU5WQUxJ RF9QQVJBTUVURVI7DQo+ID4gICAgIH0NCj4gPiArDQo+ID4gICAgICpUcmFuc3BvcnRDYXBhYmls aXR5ID0gMDsNCj4gPiAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ICAgfQ0KPiA+IGRpZmYg LS1naXQNCj4gPiBhL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlQcm90 b2NvbC9EeGUvSXBtaVByb3RvY29sLmMNCj4gPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cv VW5pdmVyc2FsL0lwbWlQcm90b2NvbC9EeGUvSXBtaVByb3RvY29sLmMNCj4gPiBpbmRleCBjMzAx MzI0MTlkLi40MDU4N2EwN2FmIDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvRmVhdHVyZXMvTWFuYWdl YWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaVByb3RvY29sL0R4ZS9JcG1pUHJvdG9jb2wuYw0KPiA+ ICsrKw0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlQcm90b2Nv bC9EeGUvSXBtaVByb3RvY28NCj4gPiArKysgbC5jDQo+ID4gQEAgLTEwMCwxMiArMTAwLDE0IEBA IER4ZUlwbWlFbnRyeSAoDQo+ID4gICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBGYWls ZWQgdG8gYWNxdWlyZSB0cmFuc3BvcnQgaW50ZXJmYWNlIGZvcg0KPiBJUE1JIHByb3RvY29sIC0g JXJcbiIsIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7DQo+ID4gICAgICAgcmV0dXJuIFN0YXR1czsN Cj4gPiAgICAgfQ0KPiA+ICsNCj4gPiAgICAgU3RhdHVzID0gR2V0VHJhbnNwb3J0Q2FwYWJpbGl0 eSAobVRyYW5zcG9ydFRva2VuLA0KPiAmVHJhbnNwb3J0Q2FwYWJpbGl0eSk7DQo+ID4gICAgIGlm IChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAi JWE6IEZhaWxlZCB0byBHZXRUcmFuc3BvcnRDYXBhYmlsaXR5KCkuXG4iLA0KPiBfX0ZVTkNUSU9O X18pKTsNCj4gPiAgICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ICAgICB9DQo+ID4gLSAgVHJhbnNw b3J0TWF4aW11bVBheWxvYWQgPQ0KPiA+DQo+IE1BTkFHRUFCSUxJVFlfVFJBTlNQT1JUX1BBWUxP QURfU0laRV9GUk9NX0NBUEFCSUxJVFkoVHJhbnNwb3INCj4gdENhcGFiaWxpDQo+ID4gdHkpOw0K PiA+ICsNCj4gPiArICBUcmFuc3BvcnRNYXhpbXVtUGF5bG9hZCA9DQo+ID4gKyBNQU5BR0VBQklM SVRZX1RSQU5TUE9SVF9QQVlMT0FEX1NJWkVfRlJPTV9DQVBBQklMSVRZDQo+ID4gKyAoVHJhbnNw b3J0Q2FwYWJpbGl0eSk7DQo+ID4gICAgIGlmIChUcmFuc3BvcnRNYXhpbXVtUGF5bG9hZCA9PSAo MSA8PA0KPiBNQU5BR0VBQklMSVRZX1RSQU5TUE9SVF9DQVBBQklMSVRZX01BWElNVU1fUEFZTE9B RF9OT1RfQVYNCj4gQUlMQUJMRSkpIHsNCj4gPiAgICAgICBERUJVRyAoKERFQlVHX0lORk8sICIl YTogVHJhbnNwb3J0IGludGVyZmFjZSBtYXhpbXVtIHBheWxvYWQgaXMNCj4gdW5kZWZpbmVkLlxu IiwgX19GVU5DVElPTl9fKSk7DQo+ID4gICAgIH0gZWxzZSB7DQo+ID4gZGlmZiAtLWdpdA0KPiA+ IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaVByb3RvY29sL1BlaS9J cG1pUHBpLmMNCj4gPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlQ cm90b2NvbC9QZWkvSXBtaVBwaS5jDQo+ID4gaW5kZXggMGRkYTZkMmQ0Ny4uMGE5MTRlNTEzYyAx MDA2NDQNCj4gPiAtLS0gYS9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1p UHJvdG9jb2wvUGVpL0lwbWlQcGkuYw0KPiA+ICsrKyBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQ a2cvVW5pdmVyc2FsL0lwbWlQcm90b2NvbC9QZWkvSXBtaVBwaS5jDQo+ID4gQEAgLTUxLDE5ICs1 MSwxOSBAQCBQZWlJcG1pU3VibWl0Q29tbWFuZCAoDQo+ID4gICAgIElOIE9VVCBVSU5UMzIgICAg ICAgICpSZXNwb25zZURhdGFTaXplDQo+ID4gICAgICkNCj4gPiAgIHsNCj4gPiAtICBFRklfU1RB VFVTICAgICAgICAgICAgU3RhdHVzOw0KPiA+IC0gIFBFSV9JUE1JX1BQSV9JTlRFUk5BTCAqUGVp SXBtaVBwaWludGVybmFsOw0KPiA+IC0NCj4gPiAtICBQZWlJcG1pUHBpaW50ZXJuYWwgPQ0KPiA+ IE1BTkFHRUFCSUxJVFlfSVBNSV9QUElfSU5URVJOQUxfRlJPTV9MSU5LKFRoaXMpOw0KPiA+IC0g IFN0YXR1cyA9IENvbW1vbklwbWlTdWJtaXRDb21tYW5kICgNCj4gPiAtICAgICAgICAgICAgIFBl aUlwbWlQcGlpbnRlcm5hbC0+VHJhbnNwb3J0VG9rZW4sDQo+ID4gLSAgICAgICAgICAgICBOZXRG dW5jdGlvbiwNCj4gPiAtICAgICAgICAgICAgIENvbW1hbmQsDQo+ID4gLSAgICAgICAgICAgICBS ZXF1ZXN0RGF0YSwNCj4gPiAtICAgICAgICAgICAgIFJlcXVlc3REYXRhU2l6ZSwNCj4gPiAtICAg ICAgICAgICAgIFJlc3BvbnNlRGF0YSwNCj4gPiAtICAgICAgICAgICAgIFJlc3BvbnNlRGF0YVNp emUNCj4gPiAtICAgICAgICAgICAgICk7DQo+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICBT dGF0dXM7DQo+ID4gKyAgUEVJX0lQTUlfUFBJX0lOVEVSTkFMICAqUGVpSXBtaVBwaWludGVybmFs Ow0KPiA+ICsNCj4gPiArICBQZWlJcG1pUHBpaW50ZXJuYWwgPSBNQU5BR0VBQklMSVRZX0lQTUlf UFBJX0lOVEVSTkFMX0ZST01fTElOSw0KPiAoVGhpcyk7DQo+ID4gKyAgU3RhdHVzICAgICAgICAg ICAgID0gQ29tbW9uSXBtaVN1Ym1pdENvbW1hbmQgKA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgUGVpSXBtaVBwaWludGVybmFsLT5UcmFuc3BvcnRUb2tlbiwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgIE5ldEZ1bmN0aW9uLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgQ29tbWFuZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3REYXRhLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdERhdGFTaXplLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2VEYXRhLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgUmVzcG9uc2VEYXRhU2l6ZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg KTsNCj4gPiAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiAgIH0NCj4gPg0KPiA+IEBAIC05MCwxOCAr OTAsMTkgQEAgUGVpSXBtaUVudHJ5ICgNCj4gPiAgICAgTUFOQUdFQUJJTElUWV9UUkFOU1BPUlRf QURESVRJT05BTF9TVEFUVVMNCj4gVHJhbnNwb3J0QWRkaXRpb25hbFN0YXR1czsNCj4gPiAgICAg TUFOQUdFQUJJTElUWV9UUkFOU1BPUlRfSEFSRFdBUkVfSU5GT1JNQVRJT04NCj4gSGFyZHdhcmVJ bmZvcm1hdGlvbjsNCj4gPg0KPiA+IC0gIFBlaUlwbWlQcGlpbnRlcm5hbCA9IChQRUlfSVBNSV9Q UElfSU5URVJOQUwgKilBbGxvY2F0ZVplcm9Qb29sDQo+ID4gKHNpemVvZihQRUlfSVBNSV9QUElf SU5URVJOQUwpKTsNCj4gPiArICBQZWlJcG1pUHBpaW50ZXJuYWwgPSAoUEVJX0lQTUlfUFBJX0lO VEVSTkFMICopQWxsb2NhdGVaZXJvUG9vbA0KPiA+ICsgKHNpemVvZiAoUEVJX0lQTUlfUFBJX0lO VEVSTkFMKSk7DQo+ID4gICAgIGlmIChQZWlJcG1pUHBpaW50ZXJuYWwgPT0gTlVMTCkgew0KPiA+ ICAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogTm90IGVub3VnaCBtZW1vcnkgZm9yDQo+ IFBFSV9JUE1JX1BQSV9JTlRFUk5BTC5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+ICAgICAgIHJl dHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiAgICAgfQ0KPiA+IC0gIFBwaURlc2NyaXB0 b3IgPSAoRUZJX1BFSV9QUElfREVTQ1JJUFRPUiAqKUFsbG9jYXRlWmVyb1Bvb2wNCj4gPiAoc2l6 ZW9mKEVGSV9QRUlfUFBJX0RFU0NSSVBUT1IpKTsNCj4gPiArDQo+ID4gKyAgUHBpRGVzY3JpcHRv ciA9IChFRklfUEVJX1BQSV9ERVNDUklQVE9SICopQWxsb2NhdGVaZXJvUG9vbCAoc2l6ZW9mDQo+ ID4gKyAoRUZJX1BFSV9QUElfREVTQ1JJUFRPUikpOw0KPiA+ICAgICBpZiAoUHBpRGVzY3JpcHRv ciA9PSBOVUxMKSB7DQo+ID4gICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgZW5v dWdoIG1lbW9yeSBmb3INCj4gRUZJX1BFSV9QUElfREVTQ1JJUFRPUi5cbiIsIF9fRlVOQ1RJT05f XykpOw0KPiA+ICAgICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiAgICAgfQ0K PiA+DQo+ID4gLSAgUGVpSXBtaVBwaWludGVybmFsLT5TaWduYXR1cmUgPQ0KPiA+IE1BTkFHRUFC SUxJVFlfSVBNSV9QUElfSU5URVJOQUxfU0lHTkFUVVJFOw0KPiA+ICsgIFBlaUlwbWlQcGlpbnRl cm5hbC0+U2lnbmF0dXJlICAgICAgICAgICAgICAgICAgICA9DQo+IE1BTkFHRUFCSUxJVFlfSVBN SV9QUElfSU5URVJOQUxfU0lHTkFUVVJFOw0KPiA+ICAgICBQZWlJcG1pUHBpaW50ZXJuYWwtPlBl aUlwbWlQcGkuSXBtaVN1Ym1pdENvbW1hbmQgPQ0KPiA+IFBlaUlwbWlTdWJtaXRDb21tYW5kOw0K PiA+DQo+ID4gICAgIFBwaURlc2NyaXB0b3ItPkZsYWdzID0gRUZJX1BFSV9QUElfREVTQ1JJUFRP Ul9QUEkgfA0KPiA+IEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfVEVSTUlOQVRFX0xJU1Q7DQo+ID4g QEAgLTExNiwxOCArMTE3LDE5IEBAIFBlaUlwbWlFbnRyeSAoDQo+ID4gICAgICAgREVCVUcgKChE RUJVR19FUlJPUiwgIiVhOiBGYWlsZWQgdG8gYWNxdWlyZSB0cmFuc3BvcnQgaW50ZXJmYWNlIGZv cg0KPiBJUE1JIHByb3RvY29sIC0gJXJcbiIsIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7DQo+ID4g ICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiAgICAgfQ0KPiA+ICsNCj4gPiAgICAgU3RhdHVzID0g R2V0VHJhbnNwb3J0Q2FwYWJpbGl0eSAoUGVpSXBtaVBwaWludGVybmFsLT5UcmFuc3BvcnRUb2tl biwNCj4gJlBlaUlwbWlQcGlpbnRlcm5hbC0+VHJhbnNwb3J0Q2FwYWJpbGl0eSk7DQo+ID4gICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiAgICAgICBERUJVRyAoKERFQlVHX0VSUk9S LCAiJWE6IEZhaWxlZCB0byBHZXRUcmFuc3BvcnRDYXBhYmlsaXR5KCkuXG4iLA0KPiBfX0ZVTkNU SU9OX18pKTsNCj4gPiAgICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ICAgICB9DQo+ID4NCj4gPiAt ICBQZWlJcG1pUHBpaW50ZXJuYWwtPlRyYW5zcG9ydE1heGltdW1QYXlsb2FkID0NCj4gPg0KPiBN QU5BR0VBQklMSVRZX1RSQU5TUE9SVF9QQVlMT0FEX1NJWkVfRlJPTV9DQVBBQklMSVRZKFBlaUlw bWlQDQo+IHBpaW50ZXJuYQ0KPiA+IGwtPlRyYW5zcG9ydENhcGFiaWxpdHkpOw0KPiA+ICsgIFBl aUlwbWlQcGlpbnRlcm5hbC0+VHJhbnNwb3J0TWF4aW11bVBheWxvYWQgPQ0KPiA+ICsgTUFOQUdF QUJJTElUWV9UUkFOU1BPUlRfUEFZTE9BRF9TSVpFX0ZST01fQ0FQQUJJTElUWQ0KPiA+ICsgKFBl aUlwbWlQcGlpbnRlcm5hbC0+VHJhbnNwb3J0Q2FwYWJpbGl0eSk7DQo+ID4gICAgIGlmIChQZWlJ cG1pUHBpaW50ZXJuYWwtPlRyYW5zcG9ydE1heGltdW1QYXlsb2FkICA9PSAoMSA8PA0KPiBNQU5B R0VBQklMSVRZX1RSQU5TUE9SVF9DQVBBQklMSVRZX01BWElNVU1fUEFZTE9BRF9OT1RfQVYNCj4g QUlMQUJMRSkpIHsNCj4gPiAtICAgIERFQlVHKChERUJVR19JTkZPLCAiJWE6IFRyYW5zcG9ydCBp bnRlcmZhY2UgbWF4aW11bSBwYXlsb2FkIGlzDQo+IHVuZGVmaW5lZC5cbiIsIF9fRlVOQ1RJT05f XykpOw0KPiA+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IFRyYW5zcG9ydCBpbnRlcmZh Y2UgbWF4aW11bSBwYXlsb2FkIGlzDQo+ID4gKyB1bmRlZmluZWQuXG4iLCBfX0ZVTkNUSU9OX18p KTsNCj4gPiAgICAgfSBlbHNlIHsNCj4gPiAgICAgICBQZWlJcG1pUHBpaW50ZXJuYWwtPlRyYW5z cG9ydE1heGltdW1QYXlsb2FkIC09IDE7DQo+ID4gLSAgICBERUJVRygoREVCVUdfSU5GTywgIiVh OiBUcmFuc3BvcnQgaW50ZXJmYWNlIGZvciBJUE1JIHByb3RvY29sIGhhcw0KPiBtYXhpbXVtIHBh eWxvYWQgMHgleC5cbiIsIF9fRlVOQ1RJT05fXywgUGVpSXBtaVBwaWludGVybmFsLQ0KPiA+VHJh bnNwb3J0TWF4aW11bVBheWxvYWQpKTsNCj4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVh OiBUcmFuc3BvcnQgaW50ZXJmYWNlIGZvciBJUE1JIHByb3RvY29sDQo+ID4gKyBoYXMgbWF4aW11 bSBwYXlsb2FkIDB4JXguXG4iLCBfX0ZVTkNUSU9OX18sDQo+ID4gKyBQZWlJcG1pUHBpaW50ZXJu YWwtPlRyYW5zcG9ydE1heGltdW1QYXlsb2FkKSk7DQo+ID4gICAgIH0NCj4gPg0KPiA+ICAgICBU cmFuc3BvcnROYW1lID0gSGVscGVyTWFuYWdlYWJpbGl0eVNwZWNOYW1lDQo+ID4gKFBlaUlwbWlQ cGlpbnRlcm5hbC0+VHJhbnNwb3J0VG9rZW4tPlRyYW5zcG9ydC0+TWFuYWdlYWJpbGl0eVRyYW5z cG9ydA0KPiA+IFNwZWNpZmljYXRpb24pOyBkaWZmIC0tZ2l0DQo+ID4gYS9GZWF0dXJlcy9NYW5h Z2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pUHJvdG9jb2wvU21tL0lwbWlQcm90b2NvbC5jDQo+ ID4NCj4gYi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pUHJvdG9jb2wv U21tL0lwbWlQcm90b2NvbC5jDQo+ID4gaW5kZXggODZkZWUyZmEyNC4uNDFiOWExMDQ1MyAxMDA2 NDQNCj4gPiAtLS0NCj4gPiBhL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lw bWlQcm90b2NvbC9TbW0vSXBtaVByb3RvY29sLmMNCj4gPiArKysNCj4gYi9GZWF0dXJlcy9NYW5h Z2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pUHJvdG9jb2wvU21tL0lwbWlQcm90b2NvDQo+ID4g KysrIGwuYw0KPiA+IEBAIC0xMDcsMTIgKzEwNywxMyBAQCBTbW1JcG1pRW50cnkgKA0KPiA+ICAg ICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogRmFpbGVkIHRvIEdldFRyYW5zcG9ydENhcGFi aWxpdHkoKS5cbiIsDQo+IF9fRlVOQ1RJT05fXykpOw0KPiA+ICAgICAgIHJldHVybiBTdGF0dXM7 DQo+ID4gICAgIH0NCj4gPiAtICBUcmFuc3BvcnRNYXhpbXVtUGF5bG9hZCA9DQo+ID4NCj4gTUFO QUdFQUJJTElUWV9UUkFOU1BPUlRfUEFZTE9BRF9TSVpFX0ZST01fQ0FQQUJJTElUWShUcmFuc3Bv cg0KPiB0Q2FwYWJpbGkNCj4gPiB0eSk7DQo+ID4gKw0KPiA+ICsgIFRyYW5zcG9ydE1heGltdW1Q YXlsb2FkID0NCj4gPiArIE1BTkFHRUFCSUxJVFlfVFJBTlNQT1JUX1BBWUxPQURfU0laRV9GUk9N X0NBUEFCSUxJVFkNCj4gPiArIChUcmFuc3BvcnRDYXBhYmlsaXR5KTsNCj4gPiAgICAgaWYgKFRy YW5zcG9ydE1heGltdW1QYXlsb2FkID09ICgxIDw8DQo+IE1BTkFHRUFCSUxJVFlfVFJBTlNQT1JU X0NBUEFCSUxJVFlfTUFYSU1VTV9QQVlMT0FEX05PVF9BVg0KPiBBSUxBQkxFKSkgew0KPiA+IC0g ICAgREVCVUcoKERFQlVHX0lORk8sICIlYTogVHJhbnNwb3J0IGludGVyZmFjZSBtYXhpbXVtIHBh eWxvYWQgaXMNCj4gdW5kZWZpbmVkLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4gKyAgICBERUJV RyAoKERFQlVHX0lORk8sICIlYTogVHJhbnNwb3J0IGludGVyZmFjZSBtYXhpbXVtIHBheWxvYWQg aXMNCj4gPiArIHVuZGVmaW5lZC5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+ICAgICB9IGVsc2Ug ew0KPiA+ICAgICAgIFRyYW5zcG9ydE1heGltdW1QYXlsb2FkIC09IDE7DQo+ID4gLSAgICBERUJV RygoREVCVUdfSU5GTywgIiVhOiBUcmFuc3BvcnQgaW50ZXJmYWNlIGZvciBJUE1JIHByb3RvY29s IGhhcw0KPiBtYXhpbXVtIHBheWxvYWQgMHgleC5cbiIsIF9fRlVOQ1RJT05fXywgVHJhbnNwb3J0 TWF4aW11bVBheWxvYWQpKTsNCj4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVhOiBUcmFu c3BvcnQgaW50ZXJmYWNlIGZvciBJUE1JIHByb3RvY29sDQo+ID4gKyBoYXMgbWF4aW11bSBwYXls b2FkIDB4JXguXG4iLCBfX0ZVTkNUSU9OX18sDQo+ID4gKyBUcmFuc3BvcnRNYXhpbXVtUGF5bG9h ZCkpOw0KPiA+ICAgICB9DQo+ID4NCj4gPiAgICAgbVRyYW5zcG9ydE5hbWUgPSBIZWxwZXJNYW5h Z2VhYmlsaXR5U3BlY05hbWUNCj4gPiAobVRyYW5zcG9ydFRva2VuLT5UcmFuc3BvcnQtPk1hbmFn ZWFiaWxpdHlUcmFuc3BvcnRTcGVjaWZpY2F0aW9uKTsNCg==