From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.85]) by mx.groups.io with SMTP id smtpd.web10.4354.1675908391795797933 for ; Wed, 08 Feb 2023 18:06:32 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=OjV7WET+; 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.93.85, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dox8C0YmC0BiJWNcFXKh73szAJdZ9FTbT0t6QsJk0K9/BvjlgD5wvw8vU3jX+Zr9GOP8UZD3oX/4Sj9HE1cOHI9XbrwCiPyqo6Jf3hduy8ftgyGWolLZo5SxMqdsIZ44dPfpIOtiPMafx2wvB4qSSmUTsQrzNcOUCg7bzdaV4fYTjdqL8fTTHYGbf5Pq6TYBwHhPsQ4sXyD2QWp9w7wiJ4ocRfW972YxqfuAUWzX+BRoCARWA85HLjB4JYO862GH1u8DCSCCzAp3+cAce8r0TdR105OPwVcu47uoSFbiKC/OxBLoHe91oNj0wjzmELf6pFPTYz/1ZYt9FWFnPW+wyw== 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=ZgpTQGyRol9gSVfWByAtqEZl5Wf5fZTY30rmtLYhqsE=; b=oTcyyqT7jPpBGzxSUgWxX96VEw9FzqFJlI4pS+KjIqLnsm6ab9/D3Ze8WqtvZRPe+UQMBRxa9XA6mLPOIKquiAu+sc2RgfXOfvFmdcjN1fTHpGz+Bw3ZzVK+F4toy387rQfLbX+GmW83NWN0cOqJzoD9w/kNaOzXKzNOMU7JSvuCNiy+nuHpZN2z0zwGadV5IL9QV8sbolcRvnu1H5PMDWGFDFpNWe7XA3TSmlNNGFUZKKIw2bP54+U4wd8P3b0S+FdfDv4yfG7vl26yYkyqr0lDGMIcv478I9xVZm3DlnTPqb4wEK5HOpsV4lAOYgRX4/C9DO4ZuOmSMGnDoG7ARg== 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=ZgpTQGyRol9gSVfWByAtqEZl5Wf5fZTY30rmtLYhqsE=; b=OjV7WET+mpNXXya1uo0e/l4r/Q5bJ5FC5o6sK9TNuWIIcqNbgN/vCp5ZX5psnRl2LTUknty5DljaQJAAB5GPPLa0+DqmGy22ONtmPEZwrNhN3lnCcUn2T/G9z4MN3OB1HXCnFjG2yQHmThLKSHQbkZP8jBhw0C5jHYHjQPSOanA= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by DS7PR12MB6309.namprd12.prod.outlook.com (2603:10b6:8:96::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34; Thu, 9 Feb 2023 02:06:29 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::d606:ab63:cf3:5d36]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::d606:ab63:cf3:5d36%5]) with mapi id 15.20.6064.036; Thu, 9 Feb 2023 02:06:29 +0000 From: "Chang, Abner" To: Igor Kulchytskyy , "devel@edk2.groups.io" CC: Nickle Wang Subject: Re: [PATCH V2 RESEND] RedfishPkg: RedfishRestExDxe: Two PCDs for controlling the requests Thread-Topic: [EXTERNAL] RE: [PATCH V2 RESEND] RedfishPkg: RedfishRestExDxe: Two PCDs for controlling the requests Thread-Index: AQHZO+H7SzEi3/eXhEyBzL/FbdXLca7FhhYggAAufXCAACfaMA== Date: Thu, 9 Feb 2023 02:06:28 +0000 Message-ID: References: <1675876965-19952-1-git-send-email-igork@ami.com> In-Reply-To: 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-02-09T02:06:27Z; 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=a26d526e-593a-4f63-9c79-28b477f96923; 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_|DS7PR12MB6309:EE_ x-ms-office365-filtering-correlation-id: a0d759a0-dd1a-4bdd-f42b-08db0a4241b1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nUYDMeHC6NDTpx5RopzKaH91DGrXLsZgoFKoe9I/poHpozYALzfTTEDudeaB697FZE/NRJ+VmfEyi5geKEcb7JWc+EYYN0yEQhrWITntLyQfgttnc8YxCunYSL6CYuKBslVLg9f2uxchAbI2VVIChKZtDLveZdlkivy9GZwCXYS7ylixReTshTgqQEgsw4Bi9Pkfrvw8W5w9TvX3BOLg03bl7PCCCbH3169nyHgCVAGG0DbRz37E/0wF0f0Y/ZLGrecP7DyQv0vkAEzszJpqMGHd/i/sqe2bIJ1WJa7zlnss+edHtG29Rg+BG2lx/Ot3GSnkfwu+bE+Lm/ZR4kcDMCmaRLkjKr4yIqmsIQEx26okaeins16IIT808soOZ+Rd3kUqNH7j+KnPUvQ6wccbBhNSFrGGUtgCVJ18tf9QH3QEM+Hxjzm2lfMZz/OpE+TVUuaeNcq79DIOD1atmCB8pbxk0+cx0m2R12mIdsrG5im0sAurqH+yvRB5lOSg5N92T4vvlCrkmkpmqLiaS+qfym1QiLJi2eZpuuZBn0yMkD2U8enXmFERnMl5OVZFkIYFs2KSQOGm7d4hho8zN1D8w/B6Qp0B0yMCZoPYniF290CpHvuiSEFxOoKVx8Wnq7qAAF6M48JTxeUxYO/UFdHqbhMLmfEVZOzfCWESU0E68qZu/pkChRoAT2Mc7N3r1ZkmgT9l90mzYKehTpneI2qABQ== 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:(13230025)(6029001)(4636009)(376002)(396003)(366004)(136003)(346002)(39860400002)(451199018)(41300700001)(76116006)(66556008)(38100700002)(53546011)(26005)(316002)(186003)(6506007)(38070700005)(110136005)(9686003)(55016003)(478600001)(71200400001)(7696005)(40140700001)(33656002)(86362001)(64756008)(8676002)(66446008)(66476007)(4326008)(8936002)(5660300002)(30864003)(66946007)(52536014)(122000001)(83380400001)(2906002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZklSYUl2U24veEIxWDlORUducXp5VitCb1B4amxmR2JHV3JUdDc5b0VDMjM1?= =?utf-8?B?WmNJbWRmOVZNS2xxYVVqYzlSeGt3czlFR3FmY0JicjVaQXMyRUdVcXZHVnI5?= =?utf-8?B?MGRnN1BlMHRKODd4UkpQSnlFSnBtUmhSUElLSllLK091L21zVENXN3kveEZv?= =?utf-8?B?WW5PTHFsWUNUdFF6NzAwRiszR2RPTldqUUU4RFNsTUNvNXBmanZMM0dUUmxX?= =?utf-8?B?NGlQWnlWMXdzd1d3MWZqS0o5U2RHTVNhQVRqUXlDS2pHSWk1UjlGN3VDZTNz?= =?utf-8?B?cHArS010bEZJRHpFQVBLR3hoaTNJdlNLY2p3Vko4UkhGY3hGWmh3ZFhLYks1?= =?utf-8?B?Q0toZllpb0RtOXc3d1dFcEc5YWlLQmJPV3dZOEFtL2FBQXBqOW5KcGxyYnAw?= =?utf-8?B?Y2x6TXlFRDZ5VGZmU21YQnRaTFBvTVVzbm5RQi9TRGo5V3c5QTZpVnFaRHg2?= =?utf-8?B?aFVlTmU5ZzVrVDVCUlJkUGNTMXFrWG5Lek5GajFSR0F5bXgvL2JvL2cydW5O?= =?utf-8?B?aTdabXJ3NW1lYzR4Y3RRZDlSem1DVkJZQUNyK3lmd0ZvaTc4b2VVbzRoR2Nt?= =?utf-8?B?bGJWdy9Hb3M1WnpsR2czd3l5VFpueXZjVXNKMlNvVGF0NFNmWFpkQXdmVlZs?= =?utf-8?B?OGxwbW8rNDU1K1Zja0M1RjRJSEh2STlYNkxMWThZdTB5bXpZT3VVZkg2d0NL?= =?utf-8?B?bTdzQ05GNHliUGNXNW95QmxRKzN5aTE2eElHc1VtdUtua0dlUi9pdTNTdkFS?= =?utf-8?B?OCs3VzNUUDBkbUdmZ3R6bHdudFdTNU1wQWsrVU9IdUJJZXVUVWNRd29sQVY0?= =?utf-8?B?TlVwbG1oQjFvRWRoUGhKZWpwV3Z4QTc4S0NFYzNQZnJmcnBCdWo3RkUwZENH?= =?utf-8?B?Slo1SndtLzJyR05qYlByTmEyOEdJK2ozTnRxOTgrMXR3aUl2c0Y5NTYyWmF2?= =?utf-8?B?NjNuT3QwVTFoeExxU3FBQWdHTWRscU8yMFdCVkQzRVBwSFlndTgxL2VOeGFs?= =?utf-8?B?czZHckhYdi8xbkI1TFhPOFRCa1ZGMXN0SFJWak00SWk4UnhQT3hZSlZmWlVa?= =?utf-8?B?S3cvLzIrNjdIR3FxUW5ySlQzdU00TFM2WTdOMWVMWnJTQ2Z2dk5oS3BqMnRk?= =?utf-8?B?REtWVld4NCtVdVJ0dExqL01HamdRTm9wOEZKMm1XcTdJVldkTThtYlBndEtP?= =?utf-8?B?YUYvVCthNUVXRm1NRkF4dFFGcFJDMUtrWmQvL2F3U3VjOU5DK3NONmdub3Z2?= =?utf-8?B?SlhFSWlvYkE0UUtvSWM4WG5HUEJxOHdGbnJhOHdzTURibUNuR2VvcVM0QjZa?= =?utf-8?B?OEhhcHZpSkp2Ty9ab1BRSVhLQUxiOTNzRUc0T0U5T3Q2QUZqT3B6azBiRHYv?= =?utf-8?B?UXZwN3diNTkwcWZCay81eWlRcmVLM2VZR3d0Y1VoRW9wcUMzRGltUlNwVUMv?= =?utf-8?B?M1RIL3VlNWcxdG9TRGo2T2o5SVh4TEVtWUVGTDUxMGlTV2UrSE9yNVhrOHg4?= =?utf-8?B?SnlweG5MWDZFdVphZ1ErVlNMMDVMRmV4bjZMYndRam8vbGFRRWZzTXowMTZn?= =?utf-8?B?L2FjVkFCZXhjUU1Xdk10Ly93WFJzN3ptZzh0VzEyaEM0Y2d6SGpzRWFKd1Za?= =?utf-8?B?VnJPZjhiakhYNkFaMS8xUkNBOXlETFRuVitlMURhdFd6NmI2Y2dsOUUxWXdE?= =?utf-8?B?SjhBRDFEN3M5aWtpWGgwakw1VHNZeTFzcUtJbkF4cnkybXlRTVhaUE5hKzdH?= =?utf-8?B?aGJ1NDZiaDNlVE5IMHJpb3FkUng2SzNzRkJCNi9ZR0paK2psZm5tOE5SeERh?= =?utf-8?B?R0hZbFI3VnNnQVZVK21YMm9Gb09LcndXZmJjaXpGMVBEYjFUMktwQVczUTE3?= =?utf-8?B?K3RnNTFjMmpUdi9pNUlGMlByMWh6MXBzank4cVV4ZjRPK0Z2SUsvSHpHYUQv?= =?utf-8?B?YjE5dmZ4OCtSMktQVk1FL21HRXZyb3V3WEF2U2oweUM5OHJKbnFaL0lRZys1?= =?utf-8?B?c0NIOUN6cDk3ekQ2eU0zckgweWJmS2RtRUUwdENvY0g0b2JpcHlMcFpIMU9G?= =?utf-8?B?RUFqRFB2Y0VBVjkya2x4NytMdFR6T3NURTBFdkpBODgvVmlyUWwxMmN6RG8x?= =?utf-8?Q?B2vA=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: a0d759a0-dd1a-4bdd-f42b-08db0a4241b1 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 02:06:28.9045 (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: OmA2jmkSETzUXfKB0u18bre/u2phlDmSHnbHNwi9rg8qMqxUPaNNkvaTyrlCBUkVF9oboVTNTbYaPNnwYcav7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6309 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IElnb3IgS3VsY2h5dHNreXkgPGlnb3JrQGFtaS5jb20+DQo+ IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSA5LCAyMDIzIDc6NTcgQU0NCj4gVG86IENoYW5nLCBB Ym5lciA8QWJuZXIuQ2hhbmdAYW1kLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBO aWNrbGUgV2FuZyA8bmlja2xld0BudmlkaWEuY29tPg0KPiBTdWJqZWN0OiBSRTogW0VYVEVSTkFM XSBSRTogW1BBVENIIFYyIFJFU0VORF0gUmVkZmlzaFBrZzogUmVkZmlzaFJlc3RFeER4ZToNCj4g VHdvIFBDRHMgZm9yIGNvbnRyb2xsaW5nIHRoZSByZXF1ZXN0cw0KPiANCj4gQ2F1dGlvbjogVGhp cyBtZXNzYWdlIG9yaWdpbmF0ZWQgZnJvbSBhbiBFeHRlcm5hbCBTb3VyY2UuIFVzZSBwcm9wZXIg Y2F1dGlvbg0KPiB3aGVuIG9wZW5pbmcgYXR0YWNobWVudHMsIGNsaWNraW5nIGxpbmtzLCBvciBy ZXNwb25kaW5nLg0KPiANCj4gDQo+IEhpIEFibmVyLA0KPiBUaGFuayB5b3UgZm9yIHlvdXIgY29t bWVudHMuDQo+IFNlZSBteSBjb21tZW50cyBvbiB5b3VyIGNvbW1lbnRzIGJlbG93Lg0KPiBJZ29y DQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaGFuZywgQWJuZXIg PEFibmVyLkNoYW5nQGFtZC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgOCwgMjAy MyA0OjEzIFBNDQo+IFRvOiBJZ29yIEt1bGNoeXRza3l5IDxpZ29ya0BhbWkuY29tPjsgZGV2ZWxA ZWRrMi5ncm91cHMuaW8NCj4gQ2M6IE5pY2tsZSBXYW5nIDxuaWNrbGV3QG52aWRpYS5jb20+DQo+ IFN1YmplY3Q6IFtFWFRFUk5BTF0gUkU6IFtQQVRDSCBWMiBSRVNFTkRdIFJlZGZpc2hQa2c6IFJl ZGZpc2hSZXN0RXhEeGU6DQo+IFR3byBQQ0RzIGZvciBjb250cm9sbGluZyB0aGUgcmVxdWVzdHMN Cj4gDQo+IA0KPiAqKkNBVVRJT046IFRoZSBlLW1haWwgYmVsb3cgaXMgZnJvbSBhbiBleHRlcm5h bCBzb3VyY2UuIFBsZWFzZSBleGVyY2lzZQ0KPiBjYXV0aW9uIGJlZm9yZSBvcGVuaW5nIGF0dGFj aG1lbnRzLCBjbGlja2luZyBsaW5rcywgb3IgZm9sbG93aW5nIGd1aWRhbmNlLioqDQo+IA0KPiBb QU1EIE9mZmljaWFsIFVzZSBPbmx5IC0gR2VuZXJhbF0NCj4gDQo+IEhpIElnb3IsDQo+IEZldyBj b21tZW50cyBpbiBiZWxvdy4NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiBGcm9tOiBJZ29yIEt1bGNoeXRza3l5IDxpZ29ya0BhbWkuY29tPg0KPiA+IFNlbnQ6IFRodXJz ZGF5LCBGZWJydWFyeSA5LCAyMDIzIDE6MjMgQU0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPiBDYzogSWdvciBLdWxjaHl0c2t5eSA8aWdvcmtAYW1pLmNvbT47IENoYW5nLCBBYm5l cg0KPiA+IDxBYm5lci5DaGFuZ0BhbWQuY29tPjsgTmlja2xlIFdhbmcgPG5pY2tsZXdAbnZpZGlh LmNvbT4NCj4gPiBTdWJqZWN0OiBbUEFUQ0ggVjIgUkVTRU5EXSBSZWRmaXNoUGtnOiBSZWRmaXNo UmVzdEV4RHhlOiBUd28gUENEcyBmb3INCj4gPiBjb250cm9sbGluZyB0aGUgcmVxdWVzdHMNCj4g Pg0KPiA+IENhdXRpb246IFRoaXMgbWVzc2FnZSBvcmlnaW5hdGVkIGZyb20gYW4gRXh0ZXJuYWwg U291cmNlLiBVc2UgcHJvcGVyDQo+ID4gY2F1dGlvbiB3aGVuIG9wZW5pbmcgYXR0YWNobWVudHMs IGNsaWNraW5nIGxpbmtzLCBvciByZXNwb25kaW5nLg0KPiA+DQo+ID4NCj4gPiBTaW5jZSBCSU9T IHNob3VsZCB3b3JrIHdpdGggZGlmZmVyZW50IEJNQyBpbXBsZW1lbnRhdGlvbiBjaHVua2VkDQo+ ID4gcmVxdWVzdHMgYXMgd2VsbCBhcyBFeHBlY3QgaGVhZGVyIHNob3VsZCBiZSBvcHRpb25hbC4N Cj4gPiBPbmUgUENEIGlzIHVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgRXhwZWN0IGhlYWRlci4NCj4g PiBBbm90aGVyIFBDRCBpcyB1c2VkIHRvIGVuYWJsZS9kaXNhYmxlIGNodW5rZWQgcmVxdWVzdHMu DQo+ID4NCj4gPiBDYzogQWJuZXIgQ2hhbmcgPGFibmVyLmNoYW5nQGFtZC5jb20+DQo+ID4gQ2M6 IE5pY2tsZSBXYW5nIDxuaWNrbGV3QG52aWRpYS5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogSWdv ciBLdWxjaHl0c2t5eSA8aWdvcmtAYW1pLmNvbT4NCj4gPiAtLS0NCj4gPiAgUmVkZmlzaFBrZy9S ZWRmaXNoUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsrDQo+ID4gIFJl ZGZpc2hQa2cvUmVkZmlzaFJlc3RFeER4ZS9SZWRmaXNoUmVzdEV4RHhlLmluZiAgICB8ICAgMiAr DQo+ID4gIFJlZGZpc2hQa2cvUmVkZmlzaFJlc3RFeER4ZS9SZWRmaXNoUmVzdEV4SW1wbC5jICAg ICB8ICAyMyArKy0tDQo+ID4gIFJlZGZpc2hQa2cvUmVkZmlzaFJlc3RFeER4ZS9SZWRmaXNoUmVz dEV4UHJvdG9jb2wuYyB8IDE0MA0KPiA+ICsrKysrKysrKysrKy0tLS0NCj4gPiAtLS0tDQo+ID4g IDQgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQ0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvUmVkZmlzaFBrZy5kZWMgYi9SZWRmaXNoUGtn L1JlZGZpc2hQa2cuZGVjDQo+ID4gaW5kZXggZDJiMTg5Yi4uODllZjMyYSAxMDA2NDQNCj4gPiAt LS0gYS9SZWRmaXNoUGtnL1JlZGZpc2hQa2cuZGVjDQo+ID4gKysrIGIvUmVkZmlzaFBrZy9SZWRm aXNoUGtnLmRlYw0KPiA+IEBAIC05NywzICs5NywxMyBAQA0KPiA+ICAgICMgcHJvdG9jb2wgaW5z dGFuY2UuDQo+ID4gICAgIw0KPiA+DQo+ID4NCj4gZ0VmaVJlZGZpc2hQa2dUb2tlblNwYWNlR3Vp ZC5QY2RSZWRmaXNoRGlzY292ZXJBY2Nlc3NNb2RlSW5CYW5kfEZBTFNFfA0KPiA+IEJPT0xFQU58 MHgwMDAwMTAwMg0KPiA+ICsgICMNCj4gPiArICAjIFRoaXMgUENEIGluZGljYXRlcyBpZiB0aGUg RUZJIFJFU1QgRVggc2VuZHMgY2h1bmsgcmVxdWVzdCB0byBSZWRmaXNoDQo+IHNlcnZpY2UuDQo+ ID4gKyAgIyBEZWZhdWx0IGlzIHNldCB0byBub24gY2h1bmsgbW9kZS4NCj4gPiArICAjDQo+ID4g Kw0KPiA+ICsNCj4gPg0KPiBnRWZpUmVkZmlzaFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlZGZpc2hS ZXN0RXhDaHVua1JlcXVlc3RNb2RlfFRSVUV8Qk8NCj4gPiBPDQo+ID4gKyBMRUFOfDB4MDAwMDEw MDMNCj4gV2UgY2FuIGRlZmF1bHQgc2V0IFBjZFJlZGZpc2hSZXN0RXhDaHVua1JlcXVlc3RNb2Rl IHRvIEZBTFNFLg0KPiBJZ29yOiBBZ3JlZS4gSnVzdCBmb3Jnb3QgdG8gbWFrZSBpdCBGQUxTRSBh ZnRlciBJIHRlc3RlZCBCSU9TIHdpdGggRXhwZWN0IFBDRA0KPiBkaXNhYmxlZCBhbmQgQ2h1bmtl ZCBQQ0QgZW5hYmxlZC4NCj4gDQo+ID4gKyAgIw0KPiA+ICsgICMgVGhpcyBQQ0QgaW5kaWNhdGVz IGlmIHRoZSBFRkkgUkVTVCBFWCBhZGRzIEV4cGVjdCBoZWFkZXIgdG8gdGhlDQo+ID4gKyBQT1NU LCBQQVRDSCwNCj4gPiBQVVQgcmVxdWVzdHMgdG8gUmVkZmlzaCBzZXJ2aWNlLg0KPiA+ICsgICMg RGVmYXVsdCBpcyBzZXQgdG8gbm90IGFkZC4NCj4gPiArICAjDQo+ID4gKw0KPiA+ICsNCj4gPg0K PiBnRWZpUmVkZmlzaFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlZGZpc2hSZXN0RXhBZGRpbmdFeHBl Y3R8RkFMU0V8Qk9PTEVBDQo+ID4gKyBOfDB4MDAwMDEwMDQNCj4gPiBkaWZmIC0tZ2l0IGEvUmVk ZmlzaFBrZy9SZWRmaXNoUmVzdEV4RHhlL1JlZGZpc2hSZXN0RXhEeGUuaW5mDQo+ID4gYi9SZWRm aXNoUGtnL1JlZGZpc2hSZXN0RXhEeGUvUmVkZmlzaFJlc3RFeER4ZS5pbmYNCj4gPiBpbmRleCA3 NTQzN2IwLi4yOTAwM2FlIDEwMDY0NA0KPiA+IC0tLSBhL1JlZGZpc2hQa2cvUmVkZmlzaFJlc3RF eER4ZS9SZWRmaXNoUmVzdEV4RHhlLmluZg0KPiA+ICsrKyBiL1JlZGZpc2hQa2cvUmVkZmlzaFJl c3RFeER4ZS9SZWRmaXNoUmVzdEV4RHhlLmluZg0KPiA+IEBAIC01Nyw2ICs1Nyw4IEBADQo+ID4N Cj4gPiAgW1BjZF0NCj4gPg0KPiA+IGdFZmlSZWRmaXNoUGtnVG9rZW5TcGFjZUd1aWQuUGNkUmVk ZmlzaFJlc3RFeFNlcnZpY2VBY2Nlc3NNb2RlSW5CYW5kDQo+ID4gIyMgQ09OU1VNRVMNCj4gPiAr ICBnRWZpUmVkZmlzaFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlZGZpc2hSZXN0RXhDaHVua1JlcXVl c3RNb2RlICAgIyMNCj4gPiBDT05TVU1FUw0KPiA+ICsgIGdFZmlSZWRmaXNoUGtnVG9rZW5TcGFj ZUd1aWQuUGNkUmVkZmlzaFJlc3RFeEFkZGluZ0V4cGVjdCAgICMjDQo+ID4gQ09OU1VNRVMNCj4g Pg0KPiA+ICBbVXNlckV4dGVuc2lvbnMuVGlhbm9Db3JlLiJFeHRyYUZpbGVzIl0NCj4gPiAgICBS ZWRmaXNoUmVzdEV4RHhlRXh0cmEudW5pDQo+ID4gZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvUmVk ZmlzaFJlc3RFeER4ZS9SZWRmaXNoUmVzdEV4SW1wbC5jDQo+ID4gYi9SZWRmaXNoUGtnL1JlZGZp c2hSZXN0RXhEeGUvUmVkZmlzaFJlc3RFeEltcGwuYw0KPiA+IGluZGV4IDk1MmU5ZDEuLjBkYTBk MTAgMTAwNjQ0DQo+ID4gLS0tIGEvUmVkZmlzaFBrZy9SZWRmaXNoUmVzdEV4RHhlL1JlZGZpc2hS ZXN0RXhJbXBsLmMNCj4gPiArKysgYi9SZWRmaXNoUGtnL1JlZGZpc2hSZXN0RXhEeGUvUmVkZmlz aFJlc3RFeEltcGwuYw0KPiA+IEBAIC0xNDAsOSArMTQwLDYgQEAgUmVkZmlzaEh0dHBBZGRFeHBl Y3RhdGlvbiAoDQo+ID4gICAgfQ0KPiA+DQo+ID4gICAgKkl0c1dyaXRlID0gRkFMU0U7DQo+ID4g LSAgaWYgKFByZXNlcnZlZFJlcXVlc3RIZWFkZXJzICE9IE5VTEwpIHsNCj4gPiAtICAgICpQcmVz ZXJ2ZWRSZXF1ZXN0SGVhZGVycyA9IFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJzOw0KPiA+IC0gIH0N Cj4gPg0KPiA+ICAgIGlmICgoUmVxdWVzdE1lc3NhZ2UtPkRhdGEuUmVxdWVzdC0+TWV0aG9kICE9 IEh0dHBNZXRob2RQdXQpICYmDQo+ID4gKFJlcXVlc3RNZXNzYWdlLT5EYXRhLlJlcXVlc3QtPk1l dGhvZCAhPSBIdHRwTWV0aG9kUG9zdCkgJiYNCj4gPiAgICAgICAgKFJlcXVlc3RNZXNzYWdlLT5E YXRhLlJlcXVlc3QtPk1ldGhvZCAhPSBIdHRwTWV0aG9kUGF0Y2gpKSBAQCAtDQo+ID4gMTUyLDEw ICsxNDksMjAgQEAgUmVkZmlzaEh0dHBBZGRFeHBlY3RhdGlvbiAoDQo+ID4NCj4gPiAgICAqSXRz V3JpdGUgPSBUUlVFOw0KPiA+DQo+ID4gLSAgTmV3SGVhZGVycyA9IEFsbG9jYXRlWmVyb1Bvb2wg KChSZXF1ZXN0TWVzc2FnZS0+SGVhZGVyQ291bnQgKyAxKSAqDQo+ID4gc2l6ZW9mIChFRklfSFRU UF9IRUFERVIpKTsNCj4gPiAtICBDb3B5TWVtICgoVk9JRCAqKU5ld0hlYWRlcnMsIChWT0lEICop UmVxdWVzdE1lc3NhZ2UtPkhlYWRlcnMsDQo+ID4gUmVxdWVzdE1lc3NhZ2UtPkhlYWRlckNvdW50 ICogc2l6ZW9mIChFRklfSFRUUF9IRUFERVIpKTsNCj4gPiAtICBIdHRwU2V0RmllbGROYW1lQW5k VmFsdWUgKE5ld0hlYWRlcnMgKyBSZXF1ZXN0TWVzc2FnZS0+SGVhZGVyQ291bnQsDQo+ID4gSFRU UF9IRUFERVJfRVhQRUNULCBIVFRQX0VYUEVDVF8xMDBfQ09OVElOVUUpOw0KPiA+IC0gIFJlcXVl c3RNZXNzYWdlLT5IZWFkZXJDb3VudCsrOw0KPiA+IC0gIFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJz ID0gTmV3SGVhZGVyczsNCj4gPiArICAvLw0KPiA+ICsgIC8vIENoZWNrIFBDRCBiZWZvcmUgYWRk aW5nIEV4cGVjdCBoZWFkZXIgIC8vDQo+ID4gKyAgaWYoRml4ZWRQY2RHZXRCb29sKFBjZFJlZGZp c2hSZXN0RXhBZGRpbmdFeHBlY3QpKSB7DQo+ID4gKyAgICBpZiAoUHJlc2VydmVkUmVxdWVzdEhl YWRlcnMgIT0gTlVMTCkgew0KPiA+ICsgICAgICAqUHJlc2VydmVkUmVxdWVzdEhlYWRlcnMgPSBS ZXF1ZXN0TWVzc2FnZS0+SGVhZGVyczsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBOZXdI ZWFkZXJzID0gQWxsb2NhdGVaZXJvUG9vbCAoKFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJDb3VudCAr IDEpDQo+ID4gKyAqDQo+ID4gc2l6ZW9mIChFRklfSFRUUF9IRUFERVIpKTsNCj4gPiArICAgIENv cHlNZW0gKChWT0lEICopTmV3SGVhZGVycywgKFZPSUQgKilSZXF1ZXN0TWVzc2FnZS0+SGVhZGVy cywNCj4gPiBSZXF1ZXN0TWVzc2FnZS0+SGVhZGVyQ291bnQgKiBzaXplb2YgKEVGSV9IVFRQX0hF QURFUikpOw0KPiA+ICsgICAgSHR0cFNldEZpZWxkTmFtZUFuZFZhbHVlIChOZXdIZWFkZXJzICsN Cj4gPiArIFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJDb3VudCwNCj4gPiBIVFRQX0hFQURFUl9FWFBF Q1QsIEhUVFBfRVhQRUNUXzEwMF9DT05USU5VRSk7DQo+ID4gKyAgICBSZXF1ZXN0TWVzc2FnZS0+ SGVhZGVyQ291bnQrKzsNCj4gPiArICAgIFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJzID0gTmV3SGVh ZGVyczsgIH0NCj4gPiArDQo+ID4gICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ICB9DQo+ID4g ZGlmZiAtLWdpdCBhL1JlZGZpc2hQa2cvUmVkZmlzaFJlc3RFeER4ZS9SZWRmaXNoUmVzdEV4UHJv dG9jb2wuYw0KPiA+IGIvUmVkZmlzaFBrZy9SZWRmaXNoUmVzdEV4RHhlL1JlZGZpc2hSZXN0RXhQ cm90b2NvbC5jDQo+ID4gaW5kZXggNGI2MWZjMC4uZmJkNWU0NiAxMDA2NDQNCj4gPiAtLS0gYS9S ZWRmaXNoUGtnL1JlZGZpc2hSZXN0RXhEeGUvUmVkZmlzaFJlc3RFeFByb3RvY29sLmMNCj4gPiAr KysgYi9SZWRmaXNoUGtnL1JlZGZpc2hSZXN0RXhEeGUvUmVkZmlzaFJlc3RFeFByb3RvY29sLmMN Cj4gPiBAQCAtNjYsMTEgKzY2LDEzIEBAIFJlZGZpc2hSZXN0RXhTZW5kUmVjZWl2ZSAoDQo+ID4g ICAgSFRUUF9JT19TRU5EX05PTl9DSFVOS19QUk9DRVNTICBTZW5kTm9uQ2h1bmtQcm9jZXNzOw0K PiA+ICAgIEVGSV9IVFRQX01FU1NBR0UgICAgICAgICAgICAgICAgQ2h1bmtUcmFuc2ZlclJlcXVl c3RNZXNzYWdlOw0KPiA+DQo+ID4gLSAgU3RhdHVzICAgICAgICAgICAgICAgPSBFRklfU1VDQ0VT UzsNCj4gPiAtICBSZXNwb25zZURhdGEgICAgICAgICA9IE5VTEw7DQo+ID4gLSAgSXNHZXRDaHVu a2VkVHJhbnNmZXIgPSBGQUxTRTsNCj4gPiAtICBTZW5kQ2h1bmtQcm9jZXNzICAgICA9IEh0dHBJ b1NlbmRDaHVua05vbmU7DQo+ID4gLSAgU2VuZE5vbkNodW5rUHJvY2VzcyAgPSBIdHRwSW9TZW5k Tm9uQ2h1bmtOb25lOw0KPiA+ICsgIFN0YXR1cyAgICAgICAgICAgICAgICAgICAgPSBFRklfU1VD Q0VTUzsNCj4gPiArICBSZXNwb25zZURhdGEgICAgICAgICAgICAgID0gTlVMTDsNCj4gPiArICBJ c0dldENodW5rZWRUcmFuc2ZlciAgICAgID0gRkFMU0U7DQo+ID4gKyAgU2VuZENodW5rUHJvY2Vz cyAgICAgICAgICA9IEh0dHBJb1NlbmRDaHVua05vbmU7DQo+ID4gKyAgU2VuZE5vbkNodW5rUHJv Y2VzcyAgICAgICA9IEh0dHBJb1NlbmROb25DaHVua05vbmU7DQo+ID4gKyAgSXRzV3JpdGUgICAg ICAgICAgICAgICAgICA9IEZBTFNFOw0KPiA+ICsgIFByZXNlcnZlZFJlcXVlc3RIZWFkZXJzICAg PSBOVUxMOw0KPiA+DQo+ID4gICAgLy8NCj4gPiAgICAvLyBWYWxpZGF0ZSB0aGUgcGFyYW1ldGVy cw0KPiA+IEBAIC05NCw2NyArOTYsODUgQEAgUmVkZmlzaFJlc3RFeFNlbmRSZWNlaXZlICgNCj4g PiAgICBERUJVRyAoKERFQlVHX0lORk8sICJcblJlZGZpc2hSZXN0RXhTZW5kUmVjZWl2ZSgpOlxu IikpOw0KPiA+ICAgIERFQlVHICgoREVCVUdfSU5GTywgIioqKiBQZXJmb3JtIEhUVFAgUmVxdWVz dCBNZXRob2QgLSAlZCwgVVJMOg0KPiA+ICVzXG4iLA0KPiA+IFJlcXVlc3RNZXNzYWdlLT5EYXRh LlJlcXVlc3QtPk1ldGhvZCwgUmVxdWVzdE1lc3NhZ2UtPkRhdGEuUmVxdWVzdC0NCj4gPiA+VXJs KSk7DQo+ID4NCj4gPiAtICAvLw0KPiA+IC0gIC8vIEFkZCBoZWFkZXIgIkV4cGVjdCIgdG8gc2Vy dmVyLCBvbmx5IGZvciBVUkwgd3JpdGUuDQo+ID4gLSAgLy8NCj4gPiAtICBTdGF0dXMgPSBSZWRm aXNoSHR0cEFkZEV4cGVjdGF0aW9uIChUaGlzLCBSZXF1ZXN0TWVzc2FnZSwNCj4gPiAmUHJlc2Vy dmVkUmVxdWVzdEhlYWRlcnMsICZJdHNXcml0ZSk7DQo+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiA+IC0gICAgcmV0dXJuIFN0YXR1czsNCj4gPiAtICB9DQo+ID4gKyAgaWYoRml4 ZWRQY2RHZXRCb29sKFBjZFJlZGZpc2hSZXN0RXhDaHVua1JlcXVlc3RNb2RlKSl7DQo+IER1ZSB0 byB3aGV0aGVyIHRvIGFkZCAiRXhwZWN0IiBoZWFkZXIgaXMgbWFuYWdlZCBieQ0KPiBQY2RSZWRm aXNoUmVzdEV4QWRkaW5nRXhwZWN0LCBzbyB3ZSBjYW4gcmVsb2NhdGUgdGhlIGNvbmRpdGlvbiBj aGVjayBmb3INCj4gUGNkUmVkZmlzaFJlc3RFeENodW5rUmVxdWVzdE1vZGUgdG8gYmUgYWJvdmUg ICJpZiAoSXRzV3JpdGUgPT0gVFJVRSkgeyIgaW4gOA0KPiBsaW5lcyBsYXRlci4NCj4gV2l0aCB0 aGlzLCB3ZSBjYW4gYWRkIGNvZGUgbGF0ZXIgdG8gc2VuZCB0aGUgemVybyBjb250ZW50IHBheWxv YWQgd2l0aCAiRXhwZWN0Ig0KPiBoZWFkZXIgYW5kIGNoZWNrIHRoZSBIVFRQIFN0YXR1cyBmb3Ig dGhlIEhUVFAgQ2h1bmsgdHJhbnNmZXIgb3Igb3RoZXIgZXJyb3INCj4gY2FzZXMuDQo+IElnb3I6 IEknbSBub3Qgc3VyZSBpZiBpdCB3b3VsZCBoZWxwIGFueWhvdy4gV2UgY2Fubm90IHVzZSAiRXhw ZWN0IiB3aXRob3V0DQo+IGNodW5rZWQgcmVxdWVzdC4gSWYgSSB1bmRlcnN0YW5kIGl0IGNvcnJl Y3RseSwgdGhlIG1haW4gcG9pbnQgb2YgIkV4cGVjdCIgaGVhZGVyDQo+IGlzIHRvIHNlbmQganVz dCBoZWFkZXJzIHdpdGhvdXQgYm9keSB0byBzZWUgaWYgdGhlIFVSSSBzdXBwb3J0ZWQuIEJ1dCBp ZiBjaHVua2VkDQo+IHJlcXVlc3QgaXMgZGlzYWJsZWQgdGhlbiB3ZSB3b3VsZCBzZW5kIHRoZSB3 aG9sZSByZXF1ZXN0IHdpdGggdGhlIGJvZHkgYW55d2F5Lg0KPiBTbywgdGhlcmUgaXMgbm8gZGlm ZmVyZW5jZSBpZiB3ZSBzZW5kIGl0IHdpdGggb3Igd2l0aG91dCAiRXhwZWN0IiBoZWFkZXIuDQpB Y3R1YWxseSB5b3UgYXJlIHJpZ2h0IGZvciB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4gIEhv d2V2ZXIsIEkgd291bGQgbGlrZSB0byBzZXBhcmF0ZSB0aGUgQ2h1bmsgUENEIHdpdGggRXhwZWN0 IFBDRCBiZWNhdXNlIGFkZGluZyAiZXhwZWN0IiBpcyBub3QganVzdCBmb3IgdGhlIGNodW5rIHRy YW5zZmVyLiBJdCBjYW4gYmUgYWxzbyB1c2VkIHRvIGhhbmRsZSB0aGUgIk1ldGhvZCBub3QgQWxs b3dlZCIgZXJyb3IgaWYgY2xpZW50IHBhdGNoZXMgYSByZWFkYWJsZSBSZWRmaXNoIHByb3BlcnR5 LiBTbyB1c2UgdGhlIENodW5rIFBDRCB0byBkZXRlcm1pbmUgd2hldGhlciBhZGRpbmcgICJFeHBl Y3QiIG9yIG5vdCBpcyBub3QgcXVpdGUgY29ycmVjdC4gSG93ZXZlci4uLnBsZWFzZSBzZWUgdGhl IG5leHQgY29tbWVudC4NCg0KPiBBbmQgYW5vdGhlciBwdXJwb3NlIG9mIHRoYXQgUmVkZmlzaEh0 dHBBZGRFeHBlY3RhdGlvbiBmdW5jdGlvbiwgYmVzaWRlcyBvZg0KPiBhZGRpbmcgIkV4cGVjdCIg aGVhZGVyLCBpcyB0byBmaWd1cmUgb3V0IGlmIGl0IGlzIFBPU1QsIFBBVENIIG9yIFBVVCByZXF1 ZXN0IGFuZA0KPiBzZXQgSXRzV3JpdGUgdmFyaWFibGUuIEJ1dCB0aGlzIHZhcmlhYmxlIGFsc28g dXNlZCBvbmx5IGZvciB0aGUgY2h1bmtlZCByZXF1ZXN0cy4NCj4gU28sIEkgdGhpbmssIGl0IGlz IGJldHRlciB0byBrZWVwIGl0IHVuZGVyDQo+IGlmKEZpeGVkUGNkR2V0Qm9vbChQY2RSZWRmaXNo UmVzdEV4Q2h1bmtSZXF1ZXN0TW9kZSkpIGNvbmRpdGlvbi4NCj4gV2hhdCBkbyB5b3UgdGhpbms/ DQpIb3dldmVyLCB5b3UgYXJlIHJpZ2h0IGF0IHRoaXMgcG9pbnQuIEkgdGhpbmsgd2Ugd2lsbCBo YXZlIHRvIHNlcGFyYXRlIHRoZSBjb2RlIHRoYXQgc2V0cyAiSXNXcml0ZSIgZmxhZyBmcm9tICBS ZWRmaXNoSHR0cEFkZEV4cGVjdGF0aW9uKCksIHRoaXMgbWFrZXMgdGhpcyBmdW5jdGlvbiBjbGVh ciBhbmQgaGFzIG5vIGRlcGVuZGVuY3kgd2l0aCB0aGUgY2h1bmsgdHJhbnNmZXIuDQpMZXQncyBq dXN0IGxlYXZlIGl0IGFzIGl0IGZvciBub3cuIFdlIGNhbiBlbmhhbmNlIHRoaXMgbGF0ZXIuIPCf mIoNClBsZWFzZSBqdXN0IGZpeCBvdGhlciB0d28gY29tbWVudHMgYW5kIHNlbmQgdGhlIFYzIHdp dGggbXkgcmV2aWV3ZWQtYnkuIFBsZWFzZSBhbHNvIGNyZWF0ZSBhIFBSIGFnYWluc3QgdG8gZWRr MiByZXBvIHNvIEkgY2FuIG1lcmdlIGl0IGlmIFYzIGhhcyBubyBwcm9ibGVtcy4NCg0KUmV2aWV3 ZWQtYnk6IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KDQpUaGFua3MgZm9yIHRo aXMgY29udHJpYnV0aW9uLg0KQWJuZXINCg0KPiANCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBB ZGQgaGVhZGVyICJFeHBlY3QiIHRvIHNlcnZlciwgb25seSBmb3IgVVJMIHdyaXRlLg0KPiA+ICsg ICAgLy8NCj4gPiArICAgIFN0YXR1cyA9IFJlZGZpc2hIdHRwQWRkRXhwZWN0YXRpb24gKFRoaXMs IFJlcXVlc3RNZXNzYWdlLA0KPiA+ICZQcmVzZXJ2ZWRSZXF1ZXN0SGVhZGVycywgJkl0c1dyaXRl KTsNCj4gPiArICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiArICAgICAgcmV0dXJu IFN0YXR1czsNCj4gPiArICAgIH0NCj4gPg0KPiA+IC0gIGlmIChJdHNXcml0ZSA9PSBUUlVFKSB7 DQo+ID4gLSAgICBpZiAoUmVxdWVzdE1lc3NhZ2UtPkJvZHlMZW5ndGggPiBIVFRQX0lPX01BWF9T RU5EX1BBWUxPQUQpIHsNCj4gPiAtICAgICAgLy8NCj4gPiAtICAgICAgLy8gU2VuZCBjaHVua2Vk IHRyYW5zZmVyLg0KPiA+IC0gICAgICAvLw0KPiA+IC0gICAgICBTZW5kQ2h1bmtQcm9jZXNzKys7 DQo+ID4gLSAgICAgIENvcHlNZW0gKChWT0lEICopJkNodW5rVHJhbnNmZXJSZXF1ZXN0TWVzc2Fn ZSwgKFZPSUQNCj4gPiAqKVJlcXVlc3RNZXNzYWdlLCBzaXplb2YgKEVGSV9IVFRQX01FU1NBR0Up KTsNCj4gPiAtICAgIH0gZWxzZSB7DQo+ID4gLSAgICAgIFNlbmROb25DaHVua1Byb2Nlc3MrKzsN Cj4gPiArICAgIGlmIChJdHNXcml0ZSA9PSBUUlVFKSB7DQo+ID4gKyAgICAgIGlmIChSZXF1ZXN0 TWVzc2FnZS0+Qm9keUxlbmd0aCA+IEhUVFBfSU9fTUFYX1NFTkRfUEFZTE9BRCkgew0KPiA+ICsg ICAgICAgIC8vDQo+ID4gKyAgICAgICAgLy8gU2VuZCBjaHVua2VkIHRyYW5zZmVyLg0KPiA+ICsg ICAgICAgIC8vDQo+ID4gKyAgICAgICAgU2VuZENodW5rUHJvY2VzcysrOw0KPiA+ICsgICAgICAg IENvcHlNZW0gKChWT0lEICopJkNodW5rVHJhbnNmZXJSZXF1ZXN0TWVzc2FnZSwgKFZPSUQNCj4g PiAqKVJlcXVlc3RNZXNzYWdlLCBzaXplb2YgKEVGSV9IVFRQX01FU1NBR0UpKTsNCj4gPiArICAg ICAgfSBlbHNlIHsNCj4gPiArICAgICAgICBTZW5kTm9uQ2h1bmtQcm9jZXNzKys7DQo+ID4gKyAg ICAgIH0NCj4gPiAgICAgIH0NCj4gPiAgICB9DQo+ID4NCj4gPiAgUmVTZW5kUmVxdWVzdDo7DQo+ ID4gLSAgLy8NCj4gPiAtICAvLyBTZW5kIG91dCB0aGUgcmVxdWVzdCB0byBSRVNUIHNlcnZpY2Uu DQo+ID4gLSAgLy8NCj4gPiAtICBpZiAoSXRzV3JpdGUgPT0gVFJVRSkgew0KPiA+ICsNCj4gPiAr ICBpZihGaXhlZFBjZEdldEJvb2woUGNkUmVkZmlzaFJlc3RFeENodW5rUmVxdWVzdE1vZGUpKXsN Cj4gPiAgICAgIC8vDQo+ID4gLSAgICAvLyBUaGlzIGlzIHdyaXRlIHRvIFVSSQ0KPiA+ICsgICAg Ly8gU2VuZCB0aGUgY2h1bmtlZCByZXF1ZXN0IHRvIFJFU1Qgc2VydmljZS4NCj4gPiAgICAgIC8v DQo+ID4gLSAgICBpZiAoU2VuZENodW5rUHJvY2VzcyA+IEh0dHBJb1NlbmRDaHVua05vbmUpIHsN Cj4gPiArICAgIGlmIChJdHNXcml0ZSA9PSBUUlVFKSB7DQo+ID4gICAgICAgIC8vDQo+ID4gLSAg ICAgIC8vIFRoaXMgaXMgY2h1bmsgdHJhbnNmZXIgZm9yIHdyaXRpbmcgbGFyZ2UgcGF5bG9hZC4N Cj4gPiAtICAgICAgLy8gU2VuZCByZXF1ZXN0IGhlYWRlciBmaXJzdCBhbmQgdGhlbiBoYW5kbGUg dGhlDQo+ID4gLSAgICAgIC8vIGZvbGxvd2luZyByZXF1ZXN0IG1lc3NhZ2UgYm9keSB1c2luZyBj aHVuayB0cmFuc2Zlci4NCj4gPiArICAgICAgLy8gVGhpcyBpcyB3cml0ZSB0byBVUkkNCj4gPiAg ICAgICAgLy8NCj4gPiAtICAgICAgZG8gew0KPiA+IC0gICAgICAgIFN0YXR1cyA9IEh0dHBJb1Nl bmRDaHVua2VkVHJhbnNmZXIgKA0KPiA+ICsgICAgICBpZiAoU2VuZENodW5rUHJvY2VzcyA+IEh0 dHBJb1NlbmRDaHVua05vbmUpIHsNCj4gPiArICAgICAgICAvLw0KPiA+ICsgICAgICAgIC8vIFRo aXMgaXMgY2h1bmsgdHJhbnNmZXIgZm9yIHdyaXRpbmcgbGFyZ2UgcGF5bG9hZC4NCj4gPiArICAg ICAgICAvLyBTZW5kIHJlcXVlc3QgaGVhZGVyIGZpcnN0IGFuZCB0aGVuIGhhbmRsZSB0aGUNCj4g PiArICAgICAgICAvLyBmb2xsb3dpbmcgcmVxdWVzdCBtZXNzYWdlIGJvZHkgdXNpbmcgY2h1bmsg dHJhbnNmZXIuDQo+ID4gKyAgICAgICAgLy8NCj4gPiArICAgICAgICBkbyB7DQo+ID4gKyAgICAg ICAgICBTdGF0dXMgPSBIdHRwSW9TZW5kQ2h1bmtlZFRyYW5zZmVyICgNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgJihJbnN0YW5jZS0+SHR0cElvKSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgJlNlbmRDaHVua1Byb2Nlc3MsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICZDaHVua1Ry YW5zZmVyUmVxdWVzdE1lc3NhZ2UNCj4gPiArICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiAr ICAgICAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiArICAgICAgICAgICAgZ290 byBPTl9FWElUOw0KPiA+ICsgICAgICAgICAgfQ0KPiA+ICsgICAgICAgIH0gd2hpbGUgKFNlbmRD aHVua1Byb2Nlc3MgPT0gSHR0cElvU2VuZENodW5rQ29udGVudCB8fA0KPiA+IFNlbmRDaHVua1By b2Nlc3MgPT0gSHR0cElvU2VuZENodW5rRW5kQ2h1bmspOw0KPiA+ICsgICAgICB9IGVsc2Ugew0K PiA+ICsgICAgICAgIC8vDQo+ID4gKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgbm9uLWNodW5rIHRy YW5zZmVyLCBzZW5kIHJlcXVlc3QgaGVhZGVyIGZpcnN0IGFuZCB0aGVuDQo+ID4gKyAgICAgICAg Ly8gaGFuZGxlIHRoZSBmb2xsb3dpbmcgcmVxdWVzdCBtZXNzYWdlIGJvZHkgdXNpbmcgY2h1bmsg dHJhbnNmZXIuDQo+ID4gKyAgICAgICAgLy8NCj4gPiArICAgICAgICBTdGF0dXMgPSBIdHRwSW9T ZW5kUmVxdWVzdCAoDQo+ID4gICAgICAgICAgICAgICAgICAgICAmKEluc3RhbmNlLT5IdHRwSW8p LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgJlNlbmRDaHVua1Byb2Nlc3MsDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAmQ2h1bmtUcmFuc2ZlclJlcXVlc3RNZXNzYWdlDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAoU2VuZE5vbkNodW5rUHJvY2VzcyA9PSBIdHRwSW9TZW5kTm9uQ2h1bmtDb250 ZW50KSA/IE5VTEwgOg0KPiA+IFJlcXVlc3RNZXNzYWdlLT5EYXRhLlJlcXVlc3QsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAoU2VuZE5vbkNodW5rUHJvY2VzcyA9PSBIdHRwSW9TZW5kTm9uQ2h1 bmtDb250ZW50KSA/IDAgOg0KPiA+IFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJDb3VudCwNCj4gPiAr ICAgICAgICAgICAgICAgICAgIChTZW5kTm9uQ2h1bmtQcm9jZXNzID09IEh0dHBJb1NlbmROb25D aHVua0NvbnRlbnQpID8gTlVMTCA6DQo+ID4gUmVxdWVzdE1lc3NhZ2UtPkhlYWRlcnMsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAoU2VuZE5vbkNodW5rUHJvY2VzcyA9PQ0KPiA+IEh0dHBJb1Nl bmROb25DaHVua0hlYWRlclplcm9Db250ZW50KSA/IDAgOiBSZXF1ZXN0TWVzc2FnZS0+Qm9keUxl bmd0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgIChTZW5kTm9uQ2h1bmtQcm9jZXNzID09DQo+ ID4gKyBIdHRwSW9TZW5kTm9uQ2h1bmtIZWFkZXJaZXJvQ29udGVudCkgPyBOVUxMIDogUmVxdWVz dE1lc3NhZ2UtPkJvZHkNCj4gPiAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gLSAgICAgICAg aWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+IC0gICAgICAgICAgZ290byBPTl9FWElUOw0K PiA+IC0gICAgICAgIH0NCj4gPiAtICAgICAgfSB3aGlsZSAoU2VuZENodW5rUHJvY2VzcyA9PSBI dHRwSW9TZW5kQ2h1bmtDb250ZW50IHx8DQo+ID4gU2VuZENodW5rUHJvY2VzcyA9PSBIdHRwSW9T ZW5kQ2h1bmtFbmRDaHVuayk7DQo+ID4gKyAgICAgIH0NCj4gPiAgICAgIH0gZWxzZSB7DQo+ID4g ICAgICAgIC8vDQo+ID4gLSAgICAgIC8vIFRoaXMgaXMgdGhlIG5vbi1jaHVuayB0cmFuc2Zlciwg c2VuZCByZXF1ZXN0IGhlYWRlciBmaXJzdCBhbmQgdGhlbg0KPiA+IC0gICAgICAvLyBoYW5kbGUg dGhlIGZvbGxvd2luZyByZXF1ZXN0IG1lc3NhZ2UgYm9keSB1c2luZyBjaHVuayB0cmFuc2Zlci4N Cj4gPiArICAgICAgLy8gVGhpcyBpcyByZWFkIGZyb20gVVJJLg0KPiA+ICAgICAgICAvLw0KPiA+ ICAgICAgICBTdGF0dXMgPSBIdHRwSW9TZW5kUmVxdWVzdCAoDQo+ID4gICAgICAgICAgICAgICAg ICAgJihJbnN0YW5jZS0+SHR0cElvKSwNCj4gPiAtICAgICAgICAgICAgICAgICAoU2VuZE5vbkNo dW5rUHJvY2VzcyA9PSBIdHRwSW9TZW5kTm9uQ2h1bmtDb250ZW50KSA/IE5VTEwgOg0KPiA+IFJl cXVlc3RNZXNzYWdlLT5EYXRhLlJlcXVlc3QsDQo+ID4gLSAgICAgICAgICAgICAgICAgKFNlbmRO b25DaHVua1Byb2Nlc3MgPT0gSHR0cElvU2VuZE5vbkNodW5rQ29udGVudCkgPyAwIDoNCj4gPiBS ZXF1ZXN0TWVzc2FnZS0+SGVhZGVyQ291bnQsDQo+ID4gLSAgICAgICAgICAgICAgICAgKFNlbmRO b25DaHVua1Byb2Nlc3MgPT0gSHR0cElvU2VuZE5vbkNodW5rQ29udGVudCkgPyBOVUxMIDoNCj4g PiBSZXF1ZXN0TWVzc2FnZS0+SGVhZGVycywNCj4gPiAtICAgICAgICAgICAgICAgICAoU2VuZE5v bkNodW5rUHJvY2VzcyA9PQ0KPiBIdHRwSW9TZW5kTm9uQ2h1bmtIZWFkZXJaZXJvQ29udGVudCkg Pw0KPiA+IDAgOiBSZXF1ZXN0TWVzc2FnZS0+Qm9keUxlbmd0aCwNCj4gPiAtICAgICAgICAgICAg ICAgICAoU2VuZE5vbkNodW5rUHJvY2VzcyA9PQ0KPiBIdHRwSW9TZW5kTm9uQ2h1bmtIZWFkZXJa ZXJvQ29udGVudCkgPw0KPiA+IE5VTEwgOiBSZXF1ZXN0TWVzc2FnZS0+Qm9keQ0KPiA+ICsgICAg ICAgICAgICAgICAgIFJlcXVlc3RNZXNzYWdlLT5EYXRhLlJlcXVlc3QsDQo+ID4gKyAgICAgICAg ICAgICAgICAgUmVxdWVzdE1lc3NhZ2UtPkhlYWRlckNvdW50LA0KPiA+ICsgICAgICAgICAgICAg ICAgIFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJzLA0KPiA+ICsgICAgICAgICAgICAgICAgIFJlcXVl c3RNZXNzYWdlLT5Cb2R5TGVuZ3RoLA0KPiA+ICsgICAgICAgICAgICAgICAgIFJlcXVlc3RNZXNz YWdlLT5Cb2R5DQo+ID4gICAgICAgICAgICAgICAgICAgKTsNCj4gPiAgICAgIH0NCj4gPiAtICB9 IGVsc2Ugew0KPiA+ICsgIH0NCj4gPiArICBlbHNlew0KPiBQbGVhc2UgaGF2ZSAiZWxzZSIgYXQg dGhlIHNhbWUgbGluZSB3aXRoIGFib3ZlIGNsb3NlZCBjdXJseSBicmFja2V0IGFuZCBoYXZlIGEN Cj4gc3BhY2UgYmV0d2VlbiAiZWxzZSIgYW5kICJ7Ig0KPiBJZ29yOiBNeSBtaXN0YWtlLiBGaXhl ZC4NCj4gVGhhbmtzDQo+IEFibmVyDQo+IA0KPiA+ICAgICAgLy8NCj4gPiAtICAgIC8vIFRoaXMg aXMgcmVhZCBmcm9tIFVSSS4NCj4gPiArICAgIC8vIFRoaXMgaXMgbm9ybWFsIHJlcXVlc3QgdG8g VVJJLg0KPiA+ICAgICAgLy8NCj4gPiAgICAgIFN0YXR1cyA9IEh0dHBJb1NlbmRSZXF1ZXN0ICgN Cj4gPiAgICAgICAgICAgICAgICAgJihJbnN0YW5jZS0+SHR0cElvKSwNCj4gPiBAQCAtMjEzLDcg KzIzMyw3IEBAIFJlU2VuZFJlcXVlc3Q6Ow0KPiA+ICAgIC8vDQo+ID4gICAgLy8gUmVzdG9yZSB0 aGUgaGVhZGVycyBpZiBpdCBldmVyIGNoYW5nZWQgaW4gUmVkZmlzaEh0dHBBZGRFeHBlY3RhdGlv bigpLg0KPiA+ICAgIC8vDQo+ID4gLSAgaWYgKFJlcXVlc3RNZXNzYWdlLT5IZWFkZXJzICE9IFBy ZXNlcnZlZFJlcXVlc3RIZWFkZXJzKSB7DQo+ID4gKyAgaWYgKEZpeGVkUGNkR2V0Qm9vbChQY2RS ZWRmaXNoUmVzdEV4QWRkaW5nRXhwZWN0KSAmJg0KPiA+ICsgUmVxdWVzdE1lc3NhZ2UtPkhlYWRl cnMgIT0gUHJlc2VydmVkUmVxdWVzdEhlYWRlcnMpIHsNCj4gPiAgICAgIEZyZWVQb29sIChSZXF1 ZXN0TWVzc2FnZS0+SGVhZGVycyk7DQo+ID4gICAgICBSZXF1ZXN0TWVzc2FnZS0+SGVhZGVycyA9 IFByZXNlcnZlZFJlcXVlc3RIZWFkZXJzOyAvLyBSZXN0b3JlDQo+ID4gaGVhZGVycyBiZWZvcmUg d2UgYWRkaW5nICJFeHBlY3QiLg0KPiA+ICAgICAgUmVxdWVzdE1lc3NhZ2UtPkhlYWRlckNvdW50 LS07ICAgICAgICAgICAgICAgICAgICAgLy8gTWludXMgb25lIGhlYWRlciBjb3VudA0KPiBmb3IN Cj4gPiAiRXhwZWN0Ii4NCj4gPiBAQCAtMjIzLDExICsyNDMsMjMgQEAgUmVTZW5kUmVxdWVzdDo7 DQo+ID4gICAgaWYgKFJlc3BvbnNlRGF0YS0+UmVzcG9uc2UuU3RhdHVzQ29kZSA9PSBIVFRQX1NU QVRVU18yMDBfT0spIHsNCj4gPiAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIkhUVFBfU1RBVFVT XzIwMF9PS1xuIikpOw0KPiA+DQo+ID4gLSAgICBpZiAoU2VuZENodW5rUHJvY2VzcyA9PSBIdHRw SW9TZW5kQ2h1bmtIZWFkZXJaZXJvQ29udGVudCkgew0KPiA+IC0gICAgICBERUJVRyAoKERFQlVH X0lORk8sICJUaGlzIGlzIGNodW5rIHRyYW5zZmVyLCBzdGFydCB0byBzZW5kIGFsbCBjaHVua3Mu IikpOw0KPiA+ICsgICAgaWYgKEZpeGVkUGNkR2V0Qm9vbChQY2RSZWRmaXNoUmVzdEV4Q2h1bmtS ZXF1ZXN0TW9kZSkgJiYNCj4gPiBTZW5kQ2h1bmtQcm9jZXNzID09IEh0dHBJb1NlbmRDaHVua0hl YWRlclplcm9Db250ZW50KSB7DQo+ID4gKyAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIlRoaXMg aXMgY2h1bmsgdHJhbnNmZXIsIHN0YXJ0IHRvIHNlbmQgYWxsDQo+ID4gKyBjaHVua3MuIiwgUmVz cG9uc2VEYXRhLT5SZXNwb25zZS5TdGF0dXNDb2RlKSk7DQo+ID4gICAgICAgIFNlbmRDaHVua1By b2Nlc3MrKzsNCj4gPiAgICAgICAgZ290byBSZVNlbmRSZXF1ZXN0Ow0KPiA+ICAgICAgfQ0KPiA+ ICsgIH0gZWxzZSBpZiAoUmVzcG9uc2VEYXRhLT5SZXNwb25zZS5TdGF0dXNDb2RlID09DQo+ID4g SFRUUF9TVEFUVVNfMjA0X05PX0NPTlRFTlQpIHsNCj4gPiArICAgIERFQlVHICgoREVCVUdfSU5G TywgIkhUVFBfU1RBVFVTXzIwNF9OT19DT05URU5UXG4iKSk7DQo+ID4gKw0KPiA+ICsgICAgaWYg KEZpeGVkUGNkR2V0Qm9vbChQY2RSZWRmaXNoUmVzdEV4Q2h1bmtSZXF1ZXN0TW9kZSkgJiYNCj4g PiBTZW5kQ2h1bmtQcm9jZXNzID09IEh0dHBJb1NlbmRDaHVua0hlYWRlclplcm9Db250ZW50KSB7 DQo+ID4gKyAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIlRoaXMgaXMgY2h1bmsgdHJhbnNmZXIs IHN0YXJ0IHRvIHNlbmQgYWxsDQo+ID4gKyBjaHVua3MuIiwNCj4gPiBSZXNwb25zZURhdGEtPlJl c3BvbnNlLlN0YXR1c0NvZGUpKTsNCj4gPiArICAgICAgU2VuZENodW5rUHJvY2VzcyArKzsNCj4g PiArICAgICAgZ290byBSZVNlbmRSZXF1ZXN0Ow0KPiA+ICsgICAgfQ0KPiA+ICsgIH0gZWxzZSBp ZiAoUmVzcG9uc2VEYXRhLT5SZXNwb25zZS5TdGF0dXNDb2RlID09DQo+ID4gSFRUUF9TVEFUVVNf MjAxX0NSRUFURUQpIHsNCj4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkhUVFBfU1RBVFVT XzIwMV9DUkVBVEVEXG4iKSk7ICB9IGVsc2UgaWYNCj4gPiArIChSZXNwb25zZURhdGEtPlJlc3Bv bnNlLlN0YXR1c0NvZGUgPT0gSFRUUF9TVEFUVVNfMjAyX0FDQ0VQVEVEKSB7DQo+ID4gKyAgICBE RUJVRyAoKERFQlVHX0lORk8sICJIVFRQX1NUQVRVU18yMDJfQUNDRVBURURcbiIpKTsNCj4gPiAg ICB9IGVsc2UgaWYgKFJlc3BvbnNlRGF0YS0+UmVzcG9uc2UuU3RhdHVzQ29kZSA9PQ0KPiA+IEhU VFBfU1RBVFVTXzQxM19SRVFVRVNUX0VOVElUWV9UT09fTEFSR0UpIHsNCj4gPiAgICAgIERFQlVH ICgoREVCVUdfSU5GTywNCj4gPiAiSFRUUF9TVEFUVVNfNDEzX1JFUVVFU1RfRU5USVRZX1RPT19M QVJHRVxuIikpOw0KPiA+DQo+ID4gQEAgLTI0MCwxNCArMjcyLDE0IEBAIFJlU2VuZFJlcXVlc3Q6 Ow0KPiA+ICAgICAgZ290byBPTl9FWElUOw0KPiA+ICAgIH0gZWxzZSBpZiAoUmVzcG9uc2VEYXRh LT5SZXNwb25zZS5TdGF0dXNDb2RlID09DQo+ID4gSFRUUF9TVEFUVVNfNDAwX0JBRF9SRVFVRVNU KSB7DQo+ID4gICAgICBERUJVRyAoKERFQlVHX0lORk8sICJIVFRQX1NUQVRVU180MDBfQkFEX1JF UVVFU1RcbiIpKTsNCj4gPiAtICAgIGlmIChTZW5kQ2h1bmtQcm9jZXNzID09IEh0dHBJb1NlbmRD aHVua0hlYWRlclplcm9Db250ZW50KSB7DQo+ID4gKyAgICBpZiAoRml4ZWRQY2RHZXRCb29sKFBj ZFJlZGZpc2hSZXN0RXhDaHVua1JlcXVlc3RNb2RlKSAmJg0KPiA+ICsgU2VuZENodW5rUHJvY2Vz cyA9PSBIdHRwSW9TZW5kQ2h1bmtIZWFkZXJaZXJvQ29udGVudCkgew0KPiA+ICAgICAgICBERUJV RyAoKERFQlVHX0lORk8sICJCYWQgcmVxdWVzdCBtYXkgY2F1c2VkIGJ5IHplcm8gbGVuZ3RoDQo+ ID4gY2h1bmsuIFRyeSB0byBzZW5kIGFsbCBjaHVua3MuLi5cbiIpKTsNCj4gPiAgICAgICAgU2Vu ZENodW5rUHJvY2VzcysrOw0KPiA+ICAgICAgICBnb3RvIFJlU2VuZFJlcXVlc3Q7DQo+ID4gICAg ICB9DQo+ID4gICAgfSBlbHNlIGlmIChSZXNwb25zZURhdGEtPlJlc3BvbnNlLlN0YXR1c0NvZGUg PT0NCj4gPiBIVFRQX1NUQVRVU18xMDBfQ09OVElOVUUpIHsNCj4gPiAgICAgIERFQlVHICgoREVC VUdfSU5GTywgIkhUVFBfU1RBVFVTXzEwMF9DT05USU5VRVxuIikpOw0KPiA+IC0gICAgaWYgKFNl bmRDaHVua1Byb2Nlc3MgPT0gSHR0cElvU2VuZENodW5rSGVhZGVyWmVyb0NvbnRlbnQpIHsNCj4g PiArICAgIGlmIChGaXhlZFBjZEdldEJvb2woUGNkUmVkZmlzaFJlc3RFeENodW5rUmVxdWVzdE1v ZGUpICYmDQo+ID4gKyBTZW5kQ2h1bmtQcm9jZXNzID09IEh0dHBJb1NlbmRDaHVua0hlYWRlclpl cm9Db250ZW50KSB7DQo+ID4gICAgICAgIC8vDQo+ID4gICAgICAgIC8vIFdlIGdldCBIVFRQX1NU QVRVU18xMDBfQ09OVElOVUUgdG8gc2VuZCB0aGUgYm9keSB1c2luZyBjaHVuaw0KPiA+IHRyYW5z ZmVyLg0KPiA+ICAgICAgICAvLw0KPiA+IEBAIC0yNTYsNyArMjg4LDcgQEAgUmVTZW5kUmVxdWVz dDo7DQo+ID4gICAgICAgIGdvdG8gUmVTZW5kUmVxdWVzdDsNCj4gPiAgICAgIH0NCj4gPg0KPiA+ IC0gICAgaWYgKFNlbmROb25DaHVua1Byb2Nlc3MgPT0gSHR0cElvU2VuZE5vbkNodW5rSGVhZGVy WmVyb0NvbnRlbnQpIHsNCj4gPiArICAgIGlmIChGaXhlZFBjZEdldEJvb2woUGNkUmVkZmlzaFJl c3RFeENodW5rUmVxdWVzdE1vZGUpICYmDQo+ID4gKyBTZW5kTm9uQ2h1bmtQcm9jZXNzID09IEh0 dHBJb1NlbmROb25DaHVua0hlYWRlclplcm9Db250ZW50KSB7DQo+ID4gICAgICAgIERFQlVHICgo REVCVUdfSU5GTywgIkhUVFBfU1RBVFVTXzEwMF9DT05USU5VRSBmb3Igbm9uIGNodW5rDQo+ID4g dHJhbnNmZXIuLi5cbiIpKTsNCj4gPiAgICAgICAgU2VuZE5vbkNodW5rUHJvY2VzcysrOw0KPiA+ ICAgICAgICBnb3RvIFJlU2VuZFJlcXVlc3Q7DQo+ID4gQEAgLTM5NCw3ICs0MjYsNyBAQCBSZVNl bmRSZXF1ZXN0OjsNCj4gPiAgICAgICAgVG90YWxSZWNlaXZlZFNpemUgKz0gUmVzcG9uc2VEYXRh LT5Cb2R5TGVuZ3RoOw0KPiA+ICAgICAgfQ0KPiA+DQo+ID4gLSAgICBERUJVRyAoKERFQlVHX0lO Rk8sICJUb3RhbCBvZiBsZW5naCBvZiBSZXNwb25zZSA6JWRcbiIsDQo+ID4gVG90YWxSZWNlaXZl ZFNpemUpKTsNCj4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIlRvdGFsIG9mIGxlbmd0aCBv ZiBSZXNwb25zZSA6JWRcbiIsDQo+ID4gKyBUb3RhbFJlY2VpdmVkU2l6ZSkpOw0KPiA+ICAgIH0N Cj4gPg0KPiA+ICAgIERFQlVHICgoREVCVUdfSU5GTywgIlJlZGZpc2hSZXN0RXhTZW5kUmVjZWl2 ZSgpLSBFRklfU1RBVFVTOiAlclxuIiwNCj4gPiBTdGF0dXMpKTsNCj4gPiAtLQ0KPiA+IDIuNi4x LndpbmRvd3MuMQ0KPiA+IC1UaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgbWVzc2Fn ZSBtYXkgYmUgY29uZmlkZW50aWFsIGFuZA0KPiA+IHByb3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1l Z2F0cmVuZHMgKEFNSSkuIFRoaXMgY29tbXVuaWNhdGlvbiBpcw0KPiA+IGludGVuZGVkIHRvIGJl IHJlYWQgb25seSBieSB0aGUgaW5kaXZpZHVhbCBvciBlbnRpdHkgdG8gd2hvbSBpdCBpcw0KPiA+ IGFkZHJlc3NlZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlIHJlYWRlciBvZiB0aGlzIG1l c3NhZ2UgaXMgbm90DQo+ID4gdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBub3Rp Y2UgdGhhdCBhbnkgZGlzdHJpYnV0aW9uIG9mDQo+ID4gdGhpcyBtZXNzYWdlLCBpbiBhbnkgZm9y bSwgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gUGxlYXNlIHByb21wdGx5DQo+ID4gbm90aWZ5IHRo ZSBzZW5kZXIgYnkgcmVwbHkgZS1tYWlsIG9yIGJ5IHRlbGVwaG9uZSBhdCA3NzAtMjQ2LTg2MDAs IGFuZCB0aGVuDQo+IGRlbGV0ZSBvciBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIHRyYW5zbWlz c2lvbi4NCj4gLVRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhpcyBtZXNzYWdlIG1heSBi ZSBjb25maWRlbnRpYWwgYW5kIHByb3ByaWV0YXJ5DQo+IHRvIEFtZXJpY2FuIE1lZ2F0cmVuZHMg KEFNSSkuIFRoaXMgY29tbXVuaWNhdGlvbiBpcyBpbnRlbmRlZCB0byBiZSByZWFkIG9ubHkNCj4g YnkgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gaXQgaXMgYWRkcmVzc2VkIG9yIGJ5 IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUNCj4gcmVhZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyBub3Qg dGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBub3RpY2UgdGhhdCBhbnkNCj4gZGlz dHJpYnV0aW9uIG9mIHRoaXMgbWVzc2FnZSwgaW4gYW55IGZvcm0sIGlzIHN0cmljdGx5IHByb2hp Yml0ZWQuIFBsZWFzZSBwcm9tcHRseQ0KPiBub3RpZnkgdGhlIHNlbmRlciBieSByZXBseSBlLW1h aWwgb3IgYnkgdGVsZXBob25lIGF0IDc3MC0yNDYtODYwMCwgYW5kIHRoZW4NCj4gZGVsZXRlIG9y IGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0K