From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.15797.1688626083738415291 for ; Wed, 05 Jul 2023 23:48:03 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=iqBScuq9; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: w.sheng@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688626083; x=1720162083; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=jkKWTfXv9A68G+d10yRGJnajF3U0gnXv4vw6ik9youE=; b=iqBScuq9VHgGdDHunsi+Cwj2V9pmbCVzPnqiKtPT265EUNjzXKKxbKXD Uo5I01sUo32Cn0DFrWqjuhqMASEfVe37HE9LDTKTE/iCuWSm8jgQP3qzs l3hkee8c8etKGpiGKcDmON+CykTFogY5crc0elLdW9YYT7bJfPPHgoaUe BI/Y9xd2Yb6FirQoUND7LEnC0i4y7nAeD2hkPHw+3CdyrwjVArQ7EXOoO RkhcJOduPQb1A+CrVnu48P3fyNo+GO0PqsgwQNvUSSSymKyNE0a3oWoSX C5m6uNcvHA/sFz/6Wvfqe6yf3EqrAaW1r/6pMNnenZFW1mmN7OBxFOwQZ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10762"; a="360995156" X-IronPort-AV: E=Sophos;i="6.01,185,1684825200"; d="scan'208,223";a="360995156" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2023 23:48:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10762"; a="1049969290" X-IronPort-AV: E=Sophos;i="6.01,185,1684825200"; d="scan'208,223";a="1049969290" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga005.fm.intel.com with ESMTP; 05 Jul 2023 23:48:02 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 5 Jul 2023 23:48:01 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Wed, 5 Jul 2023 23:48:01 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.104) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Wed, 5 Jul 2023 23:48:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cqLa+tuHUUIfXEAKewJavXkrQ9b2JANDykFsRfN6Qe/WrCpwIwdIvnOsh1zjcUkE9nbsk8tbxa2FD/I8aYhtYNAdA88K1x93DIYY0Ikh04cDi6ZXOsZJC0PGXu/8PoO07Wmr8cdzfnA174VREZIpjEM9grAJ+PH7grNf0m2jvM3oe1i0V1SL/l3eLqF+O7vnG1z5OBmzo2zqM7kOD+dBfBNHJLXCJJCWM2I/3wUJibRk7dblP5Rq9RG4FeR2exhT5xLO8Brgw/+o2QSZDvA5ntFch8uuJqRUotLcLbWvSoOLd1/TVE4Pe5Adwsq1jmy7zUZSy4X/d+3ba8+ni3kqeg== 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=gcnxpnEqQA5V9cCbpy1l3gdbvuDNZgskOwTZky9R5ic=; b=evyx/oDcEv2f+4KWPKjlDfK5KDxTNDQRjLdDCZ6QxqnX5dJrctTysILE91NzcGInmI/NtYLHcWz5597Ww8dFSsShfZfZ57S44gsjvdEhYV+Y4May+PU9YL+E4BMHiYmv/qO3dHDVUVH13i6Vc7eLf6rjz4vJR8qZeO4bg71NUlJ2GSCcVzQ91Y2Mqnmdgvop447ZBcHEGArDIl46BtaD8Qq2nkhsKJHGZfit8REVe7Rno9PCu1JSHDKbECwZJW9JAclegb7VCQORrud8m87rdkR0G7szkzlFThdmoFaL0DWzblCG5bU1YDLzW4LZs+kD+O4Z+9uzQWGQ99i2BdOAqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB4870.namprd11.prod.outlook.com (2603:10b6:510:34::16) by SJ0PR11MB5054.namprd11.prod.outlook.com (2603:10b6:a03:2d3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Thu, 6 Jul 2023 06:47:52 +0000 Received: from PH0PR11MB4870.namprd11.prod.outlook.com ([fe80::8319:9f44:4a00:6ff2]) by PH0PR11MB4870.namprd11.prod.outlook.com ([fe80::8319:9f44:4a00:6ff2%5]) with mapi id 15.20.6565.016; Thu, 6 Jul 2023 06:47:52 +0000 From: "Sheng Wei" To: "Yao, Jiewen" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Xu, Min M" , "Chen, Zeyi" , "Wang, Fiona" Subject: Re: [PATCH] SecurityPkg/SecureBoot: Support RSA 512 and RSA 384 Thread-Topic: [PATCH] SecurityPkg/SecureBoot: Support RSA 512 and RSA 384 Thread-Index: AQHZjskJ013VdJPEo0+BUvJoerQ0VK+WlClQgAybtrCAAEWxUIAJFZFg Date: Thu, 6 Jul 2023 06:47:52 +0000 Message-ID: References: <20230525052316.512-1-w.sheng@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB4870:EE_|SJ0PR11MB5054:EE_ x-ms-office365-filtering-correlation-id: 3d6281dc-6103-44de-0e29-08db7decebb2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pNfuLO+rC1MlkBkkmENWLAdO1seK0wS6ynvqN7JQW6e+Cv+DfrhMBzxB5+5KQBldbyxXTv6OElvPXmuOCacwcNUtVOapQzFV4qgfQReSRJA4oCBFGImkKBTIIWaGkM7E04Cv5/7CzOV2Fu3PMAHjApFE/j2gAnxIclXUIOYrH1EjXIT5RFjFwy49PS/sdbDsXpJtE+Jce0y4E86yFpW5es38bQObYF3DxMTJvPQtdhsCwSxIkP154GUawgR2IkBzbpU0qVzKnUbZqS37DwYfJixBfpvgd31Ieg2vwQJhxkjYzgUken2QT5UU398yXajN4nhLKnLMCWu3htqxcrwXsHKttJGYkQdqw24mWWIW8lYUwZZzHKff1bqaDl0F/TOeb/7oFPkiF4sEogQ2WhQIdR+qqzOGcQ+tptgijFB6sU/zvaZ0BbQqCLPnU0ncOj4fqH1JYCNWVHaHWQD+HENYksX9QbrL1xamcc/rHXWN9UJ6YCIvIE3OGItJoqk+7xY5hThDJzY7O1RlRoaC4RlyTyHrOy3a4DG24pfDtHh7vngrt5xj1L4O5g50s7tjpgP/HXZE0i6ttD9SEyMOWTEptV4FpaA42uopC07dy6/Ya2M= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4870.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(39860400002)(396003)(136003)(376002)(346002)(451199021)(41300700001)(30864003)(478600001)(966005)(9686003)(38070700005)(54906003)(86362001)(19627235002)(64756008)(38100700002)(99936003)(122000001)(71200400001)(82960400001)(7696005)(110136005)(66446008)(4326008)(66556008)(33656002)(83380400001)(66946007)(66476007)(316002)(107886003)(76116006)(55016003)(8936002)(2906002)(8676002)(5660300002)(52536014)(186003)(53546011)(6506007)(26005)(15650500001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?Y3BTdllZU21MU1plOWdNUXkvVU15eGxaY3hPYUtDSE5IYmNUSlJSZ3hxQ1ov?= =?gb2312?B?NU96UlloLzBFU1BRZUtDNE5LYUlLQzIwYXg3Zm1IeldkYjMycmJrUlg0TjZ1?= =?gb2312?B?REp6aVoycjQ1a3dGdk1PcXpvVEpURXpiNm1qYUtRVmZwQWxMV2lwZTdzSDdw?= =?gb2312?B?ems2MVBNMGk1c0pEWk1Yek5BUml6Q0dyQzFLRThvY2RWM3pxUWxudEJnK2NF?= =?gb2312?B?alYwSE1vaGlGaGtlNUg3NzZHamVzdWFjMXc2bmZtbklNS1JqUUlBVkdrWHBh?= =?gb2312?B?c1NRSG1vV2hXU2JSdVh5VkpySGlidnhXQ3dBUnh0anRUWWtJWU9jYTVKZzFH?= =?gb2312?B?aU5Bc1JJS0dGeUhKTlp4WHNwUWczcHV0SDJQeWQ3bjZnelJ4RS9lc2tZR2xn?= =?gb2312?B?UnNWaU1qTWFHMmkzRURnNFA4cHh5OUcxQ0dobUlIQ3NWZC8ybjBPaDI3Vk5w?= =?gb2312?B?dXZWWDRzQWo3bzNwWkw4a3d0eTYrZUxNK1Zhc3F0M21aTXJ5a0FBdVJNa25a?= =?gb2312?B?c2g2UkRxZmxlbGMvR0ovZWFEbndZSEFrNUlJNUl5dWFKS2VLbVRoanFEZ1hS?= =?gb2312?B?NTZweExUOXNldjltcUgvTVpnYjcvamxCaGlmYkc4bE53YnRWT3ljb3Zva3du?= =?gb2312?B?bzI1NEZFbEQxbHdjSEJucFlHR2NsR2VTdG9xNDFoOHFQWjhicGdXYW1UNzFi?= =?gb2312?B?a2Y5RVh1RUtQejI0L3k4YUhTbUh4U095U1ZkaHhheHJON2YvaXZZYW5sL0Jv?= =?gb2312?B?RDFDU0hUWmF5NnVUL21ZU1JDY3psVW5CL0tZU21IWlo5UWlSUytFU2EzUE1O?= =?gb2312?B?c3Ivc1BYa0NFQm1ZVTFDTFc3RVlkSWtkQ1hPS055Y1ZMcDJhc005N0ZORVY5?= =?gb2312?B?QzU0dWNTREs3Wm1lTmVIUTZmTGlIZzhKMjhuUHI4Ykc5eVJzazNaZkVYaEVv?= =?gb2312?B?ZU1JLzdjNmRIblRpc29JckpZN0s1aFBqQ2o0cm13YmF0eVpabWxSTFdSSmhK?= =?gb2312?B?d2lNNm1nUUxUVEl3RGtqelRTYllCM3pCOC9xbmVhWVZ1ejFrSzgvWUNMNnVj?= =?gb2312?B?MUlMazhVeklzZUdjMUczWVZLQXFmNU1LcnRQdTZoRlVoODlSRzJJM0hmU0Rj?= =?gb2312?B?cDV0L1QzQUVlYUJOVDY1Z09pQnpqTjd6bTV6alk4LzdDQm5VSWdxakEzNmZj?= =?gb2312?B?MkFnNmxLY0FEaEtSSWZpOG1CZVFkOEovbWZPZkM5WCtJZlNXTGlPYWJYZE9r?= =?gb2312?B?K0VnWUhrTEhHelkrM05GZjNhMXpTVlUzZGZJelJkdGJPQ3BWTVQrK1RSL0xS?= =?gb2312?B?OWYvMHA5czVzSlBzSDFVM0NpT3BCa2NkVWxQOUZpL0VUL3d2aUl1THp1MDVW?= =?gb2312?B?K2VMNHRicThNZlBLbUhyTXJPU3pUVmNjN0xkR0F1L3puMmVNZ2E2YUhFaFJZ?= =?gb2312?B?YWhDdk1tRVZVZVg0UDdHaTZkb3lvd3NrdlpRRFB3dEZwRCs1cEFVZm9JemJq?= =?gb2312?B?SDZDZWhmK2E2OUlKMHdXd2pYanFZRWNxV3F5dWxPUUlWV29OMlFRTXF6Q2ZY?= =?gb2312?B?OHNuVzlpRi9DV2FlU3FPWVFKNDU4U2R2UURKU1R5NndKTE1uOVNmM1Y5cWh6?= =?gb2312?B?VGtadEMzRnpFVU9CQnN5V2ZvcXlIUGt0SC92VUIrNkdaeU5vNHNoZ1gzWnFv?= =?gb2312?B?NWdOVDVCcGxPbUY5UHJ3TGNMbUdMb1NpbFhuOUxJaTI4Q0d3cFI0VFVvWlYv?= =?gb2312?B?cFhBZnVlaklkdHcwOEJqaUxxcU1MMHVTQytJanQ3TDlJTkdwWm9HWVB4MXM3?= =?gb2312?B?Und0WjFUcHdLRitEN1FoMXBuL09XZFdWYVpBNnRVaHhKNWYzeUw0RXNTVHdT?= =?gb2312?B?L21XT05veGVuK01ucGxZemVGMGtzTjZOandFRnp2NEtpd2N6NGFUM0JmeFNm?= =?gb2312?B?R1RHWEpsakFkd0lhSjNvTjlIU3ZjZU10OWV1ZzArNW55SDIvcVorMUh0RGJ1?= =?gb2312?B?RWFnYlRXUUI5ZTd5Z0tRR09HZ0ZBRzJBS3FGRGFGM0lHeE93Z0I3VEpkRU1k?= =?gb2312?B?cW1uWlNIVmMyUzdWampONnI3N1IzQ3EycExjUjRvWDYzb0hGcWxza2Y5NmtI?= =?gb2312?Q?kU/U=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4870.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d6281dc-6103-44de-0e29-08db7decebb2 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2023 06:47:52.3070 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: x0xhbubRCPfgC3Cur6QRFWp/ldSP0x7CUIqvfNhI6vsY9OcjngtBu7MkP0EsBSV+J9Mfo4q84MuqlccrCeYF2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5054 Return-Path: w.sheng@intel.com X-OriginatorOrg: intel.com X-Groupsio-MsgNum: 106678 Content-Language: en-US Content-Type: multipart/mixed; boundary="_002_PH0PR11MB4870790C3EF6A748EF40AA34E12CAPH0PR11MB4870namp_" --_002_PH0PR11MB4870790C3EF6A748EF40AA34E12CAPH0PR11MB4870namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgSmlld2VuLA0KSSByYWlzZWQgdGhlIHBhdGNoIFYzLCBBbmQgSSBhbHNvIGF0dGFjaGVkIHRo ZSBwYXRjaCBmaWxlLg0KRm9yIDQsIA0KTXkgc29sdXRpb24gaXMgYmVsb3cuDQpXaGVuIGVucm9s bCB0aGUgdW5zaWduZWQgaW1hZ2UsIEJJT1Mgd2lsbCBzZWxlY3QgdGhlIG1vc3Qgc3VwcG9ydGVk IGNvbXBsZXggaGFzaCBhbGdvcml0aG0gdG8gZ2V0IHRoZSBoYXNoLg0KV2hlbiBkbyB0aGUgdmVy aWZpY2F0aW9uLCBCSU9TIHdpbGwgdHJ5IGFsbCBzdXBwb3J0ZWQgaGFzaCBhbGdvcml0aG0gaW4g ImRiIiBhbmQgImRieCIuDQoNCkZvciA1LiANClRoZSBzdHJ1Y3Qgb2YgQ1BMX0tFWV9JTkZPIHNo b3VsZCBiZSBiaW5kZWQgdG8gLnBiayBmaWxlIGZvcm1hdC4gDQpJIGNhbm5vdCBmaW5kIHRoZSBz cGVjIG9mIC5wYmsgZmlsZS4gSSBjYW4gbm90IGNoYW5nZSB0aGUgc3RydWN0IGl0ZW1zLg0KRG8g eW91IGtub3cgd2hlcmUgdG8gZmluZCB0aGUgc3BlYyBvZiBwdWJsaWMga2V5IHN0b3JpbmcgZmls ZSAoKi5wYmspID8NCk9yIGlzICoucGJrIGZpbGUgYSBsZWdhY3kgZmlsZSBmb3JtYXQ/IFdlIGRv IG5vdCBuZWVkIHRvIGNoYW5nZSB0aGlzIHBhcnQgYW5kIGtlZXAgaXQgZm9yIFJTQSAyMDQ4IG9u bHkgPw0KDQpUaGFuayB5b3UNCkJSDQpTaGVuZyBXZWkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IFNl bnQ6IDIwMjPE6jbUwjMwyNUgMTk6NTcNCj4gVG86IFNoZW5nLCBXIDx3LnNoZW5nQGludGVsLmNv bT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5n QGludGVsLmNvbT47IFh1LCBNaW4gTQ0KPiA8bWluLm0ueHVAaW50ZWwuY29tPjsgQ2hlbiwgWmV5 aSA8emV5aS5jaGVuQGludGVsLmNvbT47IFdhbmcsIEZpb25hDQo+IDxmaW9uYS53YW5nQGludGVs LmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSF0gU2VjdXJpdHlQa2cvU2VjdXJlQm9vdDogU3Vw cG9ydCBSU0EgNTEyIGFuZCBSU0EgMzg0DQo+IA0KPiBGb3IgNCwgSSB0aGluayB3ZSBjYW4gZW5y b2xsIGFsbCBzdXBwb3J0ZWQgYWxnb3JpdGhtcywgb3IgdGhlIGFjdGl2ZSBhbGdvcml0aG0uIEkN Cj4gZG9uoa90IHRoaW5rIHRoZSBQQ0QgaXMgbmVlZGVkLg0KPiANCj4gRm9yIDUsIEkgc3VnZ2Vz dCB0byBjaGFuZ2UgdGhlIGRhdGEgc3RydWN0dXJlIHRvIGluY2x1ZGUgdGhlIGFsZ29yaXRobSBJ RC4NCj4gDQo+IFRoYW5rIHlvdQ0KPiBZYW8sIEppZXdlbg0KPiANCj4gDQo+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBTaGVuZywgVyA8dy5zaGVuZ0BpbnRlbC5jb20+ DQo+ID4gU2VudDogRnJpZGF5LCBKdW5lIDMwLCAyMDIzIDM6NTIgUE0NCj4gPiBUbzogWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBD YzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBYdSwgTWluIE0NCj4gPG1p bi5tLnh1QGludGVsLmNvbT47DQo+ID4gQ2hlbiwgWmV5aSA8emV5aS5jaGVuQGludGVsLmNvbT47 IFdhbmcsIEZpb25hIDxmaW9uYS53YW5nQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BB VENIXSBTZWN1cml0eVBrZy9TZWN1cmVCb290OiBTdXBwb3J0IFJTQSA1MTIgYW5kIFJTQQ0KPiAz ODQNCj4gPg0KPiA+IEhpIEppZXdlbiwNCj4gPiBJIHJhaXNlZCB0aGUgcGF0Y2ggVjIuDQo+ID4g SSBkbyB0aGUgZml4IGZvciAxKSAsIDIpLCAzKS4NCj4gPiBCdXQgZm9yIDQpIDUpLCBJIGhhdmUg YmVsb3cgY29tbWVudHMuDQo+ID4NCj4gPiA0KSBJIGFtIG5vdCBzdXJlIHdoeSB3ZSBuZWVkIHRo aXMgUENELiBXaHkgY2Fubm90IHdlIHN1cHBvcnQgYWxsIG9mIGhhc2gNCj4gYWxnbz8NCj4gPg0K PiA+ICsgICMjIEluZGljYXRlcyBkZWZhdWx0IGhhc2ggYWxnb3JpdGhtIGluIFNlY3VyZSBCb290 DQo+ID4gKyAgIyAgIDAgLSBVc2UgU0hBMjU2DQo+ID4gKyAgIyAgIDEgLSBVc2UgU0hBMzg0DQo+ ID4gKyAgIyAgIDIgLSBVc2UgU0hBNTEyDQo+ID4gKyAgIyBAUHJvbXB0IFNlY3VyZSBCb290IGRl ZmF1bHQgaGFzaCBhbGdvcml0aG0NCj4gPiArDQo+ID4gKw0KPiA+DQo+IGdFZmlTZWN1cml0eVBr Z1Rva2VuU3BhY2VHdWlkLlBjZFNlY3VyZUJvb3REZWZhdWx0SGFzaEFsZ3wwfFVJTlQ4fDB4DQo+ IDAwDQo+ID4gKyAwMTAwNDANCj4gPg0KPiA+IFBDRCBQY2RTZWN1cmVCb290RGVmYXVsdEhhc2hB bGcgaXMgdXNlZCBmb3IgdGhlIG9ubHkgY2FzZSBvZiBlbnJvbGwgYW4NCj4gPiB1bnNpZ25lZCBp bWFnZS4NCj4gPiBUaGUgb3JpZ2luYWwgbG9naWMgaXMgQklPUyB3aWxsIGdlbnJhdGUgU0hBMjU2 IGRpZ2VzdCBmb3IgdGhpcyB1bnNpZ25lZCBpbWFnZQ0KPiBhbmQNCj4gPiBzYXZlIGl0Lg0KPiA+ IFRoZSBQQ0QgaXMgdXNlZCB0byBzZWxlY3QgdGhlIGhhc2ggYWxnb3JpdGhtIGZvciB0aGlzIGNh c2UuDQo+ID4gU28gd2UgaGF2ZSB0byB1c2UgYSBQQ0QgdG8gc2VsZWN0IHRoZSBhbGdvcml0aG0g bWFudWxseS4NCj4gPg0KPiA+DQo+ID4gNSkgSSBkb26hr3QgYmVsaWV2ZSB0aGF0IHlvdSBjYW4g dXNlIHNpemUgdG8gZGV0ZXJtaW5lIHRoZSBhbGdvcml0aG0uIFdlDQo+IG5lZWQgYQ0KPiA+IG1v cmUgcm9idXN0IHdheSwgc3VjaCBhcyBhbGdvcml0aG0gSUQuDQo+ID4NCj4gPiArICBzd2l0Y2gg KEtleUxlbkluQnl0ZXMpIHsNCj4gPiArICBjYXNlIFdJTl9DRVJUX1VFRklfUlNBMjA0OF9TSVpF Og0KPiA+ICsgICAgQ29weUd1aWQgKCZLZWtTaWdMaXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNl cnRSc2EyMDQ4R3VpZCk7DQo+ID4gKyAgICBicmVhazsNCj4gPiArICBjYXNlIFdJTl9DRVJUX1VF RklfUlNBMzA3Ml9TSVpFOg0KPiA+ICsgICAgQ29weUd1aWQgKCZLZWtTaWdMaXN0LT5TaWduYXR1 cmVUeXBlLCAmZ0VmaUNlcnRSc2EzMDcyR3VpZCk7DQo+ID4gKyAgICBicmVhazsNCj4gPiArICBj YXNlIFdJTl9DRVJUX1VFRklfUlNBNDA5Nl9TSVpFOg0KPiA+ICsgICAgQ29weUd1aWQgKCZLZWtT aWdMaXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2E0MDk2R3VpZCk7DQo+ID4gKyAgICBi cmVhazsNCj4gPiArICAgIGJyZWFrOw0KPiA+DQo+ID4gVGhpcyBjb2RlIGlzIHVzZWQgd2hlbiBl bnJvbGwgYSBSU0EgcHVibGljIGtleSBzdG9yaW5nIGZpbGUgKCoucGJrKS4NCj4gPiBIZXJlIGlz IHRoZSBoZWFkZXIgU3RydWN0IG9mIHRoaXMgZmlsZS4NCj4gPiB0eXBlZGVmIHN0cnVjdCBfQ1BM X0tFWV9JTkZPIHsNCj4gPiAgIFVJTlQzMiAgICBLZXlMZW5ndGhJbkJpdHM7ICAgICAgICAvLyBL ZXkgTGVuZ3RoIEluIEJpdHMNCj4gPiAgIFVJTlQzMiAgICBCbG9ja1NpemU7ICAgICAgICAgICAg ICAvLyBPcGVyYXRpb24gQmxvY2sgU2l6ZSBpbiBCeXRlcw0KPiA+ICAgVUlOVDMyICAgIENpcGhl ckJsb2NrU2l6ZTsgICAgICAgIC8vIE91dHB1dCBDaXBoZXIgQmxvY2sgU2l6ZSBpbiBCeXRlcw0K PiA+ICAgVUlOVDMyICAgIEtleVR5cGU7ICAgICAgICAgICAgICAgIC8vIEtleSBUeXBlDQo+ID4g ICBVSU5UMzIgICAgQ2lwaGVyTW9kZTsgICAgICAgICAgICAgLy8gQ2lwaGVyIE1vZGUgZm9yIFN5 bW1ldHJpYyBBbGdvcml0aG0NCj4gPiAgIFVJTlQzMiAgICBGbGFnczsgICAgICAgICAgICAgICAg ICAvLyBBZGRpdGlvbmFsIEtleSBQcm9wZXJ0eSBGbGFncw0KPiA+IH0gQ1BMX0tFWV9JTkZPOw0K PiA+DQo+IEVkazIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RD b25maWdEeGUvU2VjdXJlQm9vdA0KPiBDb24NCj4gPiBmaWdJbXBsLmgNCj4gPiBXZSBjYW4gb25s eSBnZXQgdG8ga25vdyB0aGUgUlNBIGFsZ29yaXRobSBieSBLZXlMZW5ndGhJbkJpdHMuDQo+ID4g KFJTQTIwNDgvUlNBMzA3Mi9SU0E0MDk2KQ0KPiA+DQo+ID4gVGhhbmsgeW91Lg0KPiA+IEJSDQo+ ID4gU2hlbmcgV2VpDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiBGcm9tOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPiBTZW50OiAy MDIzxOo21MIyMsjVIDE1OjIyDQo+ID4gPiBUbzogU2hlbmcsIFcgPHcuc2hlbmdAaW50ZWwuY29t PjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbT47IFh1LCBNaW4gTQ0KPiA8bWluLm0ueHVAaW50ZWwuY29tPjsNCj4gPiA+ IENoZW4sIFpleWkgPHpleWkuY2hlbkBpbnRlbC5jb20+OyBXYW5nLCBGaW9uYSA8ZmlvbmEud2Fu Z0BpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSBTZWN1cml0eVBrZy9TZWN1 cmVCb290OiBTdXBwb3J0IFJTQSA1MTIgYW5kIFJTQQ0KPiAzODQNCj4gPiA+DQo+ID4gPiBUaGFu ayB5b3UgdmVyeSBtdWNoIHRvIGNvbnRyaWJ1dGUgdGhpcyBwYXRjaC4gSGVyZSBpcyBteSBmZWVk YmFjay4NCj4gPiA+DQo+ID4gPiAxKSBJIGRvbqGvdCBiZWxpZXZlIHRoYXQgeW91IGNhbm5vdCB1 c2UgZGlnZXN0IHNpemUgdG8gZGV0ZXJtaW5lIHRoZQ0KPiBhbGdvcml0aG0sDQo+ID4gPiBiZWNh dXNlIGRpZmZlcmVudCBoYXNoIGFsZ29yaXRobSBtYXkgaGF2ZSBzYW1lIHRpbWUuIEUuZy4gU0hB MjU2IGFuZA0KPiA+ID4gU0hBM18yNTYuDQo+ID4gPg0KPiA+ID4gKyAgaWYgKERpZ2VzdFNpemUg PT0gU0hBMjU2X0RJR0VTVF9TSVpFKSB7DQo+ID4gPiArICAgIFN0YXR1cyA9IENhbGN1bGF0ZVBy aXZBdXRoVmFyU2lnbkNoYWluU0hBMjU2RGlnZXN0ICgNCj4gPiA+ICsgICAgICAgICAgICAgICBT aWduZXJDZXJ0LA0KPiA+ID4gKyAgICAgICAgICAgICAgIFNpZ25lckNlcnRTaXplLA0KPiA+ID4g KyAgICAgICAgICAgICAgIFRvcExldmVsQ2VydCwNCj4gPiA+ICsgICAgICAgICAgICAgICBUb3BM ZXZlbENlcnRTaXplLA0KPiA+ID4gKyAgICAgICAgICAgICAgIFNoYURpZ2VzdA0KPiA+ID4gKyAg ICAgICAgICAgICAgICk7DQo+ID4gPg0KPiA+ID4gMikgSSBkb26hr3QgYmVsaWV2ZSB0aGF0IHlv dSBjYW5ub3QgYXNzdW1pbmcgQ3R4U2l6ZSBvZiBTSEE1MTIgaXMgYmlnZ2VyDQo+IHRoYW4NCj4g PiA+IFNIQTI1Ni4gSSB0aGluayB3ZSBtYXkgbmVlZCBjcmVhdGUgY29udGV4dCBmb3IgZWFjaCBh bGdvLg0KPiA+ID4NCj4gPiA+IEBAIC0xMzUsNyArMTM1LDcgQEAgQXV0aFZhcmlhYmxlTGliSW5p dGlhbGl6ZSAoDQo+ID4gPiAgICAvLw0KPiA+ID4gICAgLy8gSW5pdGlhbGl6ZSBoYXNoIGNvbnRl eHQuDQo+ID4gPiAgICAvLw0KPiA+ID4gLSAgQ3R4U2l6ZSAgPSBTaGEyNTZHZXRDb250ZXh0U2l6 ZSAoKTsNCj4gPiA+ICsgIEN0eFNpemUgID0gU2hhNTEyR2V0Q29udGV4dFNpemUgKCk7DQo+ID4g PiAgICBtSGFzaEN0eCA9IEFsbG9jYXRlUnVudGltZVBvb2wgKEN0eFNpemUpOw0KPiA+ID4gICAg aWYgKG1IYXNoQ3R4ID09IE5VTEwpIHsNCj4gPiA+DQo+ID4gPiAzKSBJIGJlbGlldmUgd2Ugc2hv dWxkIHVzZSAwIGZvciBTSEEyNTYgYW5kIEFTU0VSVCBpbiBkZWZhdWx0Lg0KPiA+ID4NCj4gPiA+ ICsgIHN3aXRjaCAoUGNkR2V0OCAoUGNkU2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnKSkgeyAgY2Fz ZSAxOg0KPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICIlYSB1c2UgU0hBMzg0IiwgX19m dW5jX18pKTsNCj4gPiA+ICsgICAgSGFzaEFsZyA9IEhBU0hBTEdfU0hBMzg0Ow0KPiA+ID4gKyAg ICBicmVhazsNCj4gPiA+ICsgIGNhc2UgMjoNCj4gPiA+ICsgICAgREVCVUcgKChERUJVR19JTkZP LCAiJWEgdXNlIFNIQTUxMiIsIF9fZnVuY19fKSk7DQo+ID4gPiArICAgIEhhc2hBbGcgPSBIQVNI QUxHX1NIQTUxMjsNCj4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiArICBkZWZhdWx0Og0KPiA+ID4g KyAgICBERUJVRyAoKERFQlVHX0lORk8sICIlYSB1c2UgU0hBMjU2IiwgX19mdW5jX18pKTsNCj4g PiA+ICsgICAgSGFzaEFsZyA9IEhBU0hBTEdfU0hBMjU2Ow0KPiA+ID4gKyAgICBicmVhazsNCj4g PiA+ICsgIH0NCj4gPiA+DQo+ID4gPiA0KSBJIGFtIG5vdCBzdXJlIHdoeSB3ZSBuZWVkIHRoaXMg UENELiBXaHkgY2Fubm90IHdlIHN1cHBvcnQgYWxsIG9mDQo+IGhhc2gNCj4gPiA+IGFsZ28/DQo+ ID4gPg0KPiA+ID4gKyAgIyMgSW5kaWNhdGVzIGRlZmF1bHQgaGFzaCBhbGdvcml0aG0gaW4gU2Vj dXJlIEJvb3QNCj4gPiA+ICsgICMgICAwIC0gVXNlIFNIQTI1Ng0KPiA+ID4gKyAgIyAgIDEgLSBV c2UgU0hBMzg0DQo+ID4gPiArICAjICAgMiAtIFVzZSBTSEE1MTINCj4gPiA+ICsgICMgQFByb21w dCBTZWN1cmUgQm9vdCBkZWZhdWx0IGhhc2ggYWxnb3JpdGhtDQo+ID4gPiArDQo+ID4gPiArDQo+ ID4gPg0KPiBnRWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RTZWN1cmVCb290RGVmYXVs dEhhc2hBbGd8MHxVSU5UOHwweA0KPiA+ID4gMDANCj4gPiA+ICsgMDEwMDQwDQo+ID4gPg0KPiA+ ID4gNSkgSSBkb26hr3QgYmVsaWV2ZSB0aGF0IHlvdSBjYW4gdXNlIHNpemUgdG8gZGV0ZXJtaW5l IHRoZSBhbGdvcml0aG0uIFdlDQo+IG5lZWQNCj4gPiA+IGEgbW9yZSByb2J1c3Qgd2F5LCBzdWNo IGFzIGFsZ29yaXRobSBJRC4NCj4gPiA+DQo+ID4gPiArICBzd2l0Y2ggKEtleUxlbkluQnl0ZXMp IHsNCj4gPiA+ICsgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkU6DQo+ID4gPiArICAg IENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0OEd1 aWQpOw0KPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ICsgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0Ez MDcyX1NJWkU6DQo+ID4gPiArICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlw ZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpOw0KPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ICsgIGNh c2UgV0lOX0NFUlRfVUVGSV9SU0E0MDk2X1NJWkU6DQo+ID4gPiArICAgIENvcHlHdWlkICgmS2Vr U2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpOw0KPiA+ID4gKyAg ICBicmVhazsNCj4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPg0KPiA+ID4gVGhhbmsgeW91DQo+ID4g PiBZYW8sIEppZXdlbg0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+ID4gRnJvbTogU2hlbmcsIFcgPHcuc2hlbmdAaW50ZWwuY29tPg0KPiA+ID4gPiBTZW50 OiBUaHVyc2RheSwgTWF5IDI1LCAyMDIzIDE6MjMgUE0NCj4gPiA+ID4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvDQo+ID4gPiA+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+ OyBXYW5nLCBKaWFuIEoNCj4gPiA+ID4gPGppYW4uai53YW5nQGludGVsLmNvbT47IFh1LCBNaW4g TSA8bWluLm0ueHVAaW50ZWwuY29tPjsgQ2hlbiwNCj4gWmV5aQ0KPiA+ID4gPiA8emV5aS5jaGVu QGludGVsLmNvbT47IFdhbmcsIEZpb25hIDxmaW9uYS53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4g U3ViamVjdDogW1BBVENIXSBTZWN1cml0eVBrZy9TZWN1cmVCb290OiBTdXBwb3J0IFJTQSA1MTIg YW5kIFJTQQ0KPiAzODQNCj4gPiA+ID4NCj4gPiA+ID4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRp YW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM0MTMNCj4gPiA+ID4NCj4gPiA+ID4gQ2M6IEpp ZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogSmlhbiBKIFdhbmcg PGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IE1pbiBYdSA8bWluLm0ueHVAaW50 ZWwuY29tPg0KPiA+ID4gPiBDYzogWmV5aSBDaGVuIDx6ZXlpLmNoZW5AaW50ZWwuY29tPg0KPiA+ ID4gPiBDYzogRmlvbmEgV2FuZyA8ZmlvbmEud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IFNpZ25l ZC1vZmYtYnk6IFNoZW5nIFdlaSA8dy5zaGVuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ ID4gPiAgQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0VHMuYyAgIHwgICAz ICstDQo+ID4gPiA+ICBNZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaCAg ICAgfCAgMjYgKysNCj4gPiA+ID4gIE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArDQo+ID4gPiA+ICAuLi4vTGlicmFyeS9BdXRoVmFyaWFibGVMaWIv QXV0aFNlcnZpY2UuYyAgICAgfCAyNzIgKysrKysrKysrKysrKysrKy0NCj4gLQ0KPiA+ID4gPiAg Li4uL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhWYXJpYWJsZUxpYi5jIHwgICA0ICstDQo+ ID4gPiA+ICAuLi4vRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuYyAgICAgICAgICAgICAgICAgfCAg MzUgKystDQo+ID4gPiA+ICAuLi4vRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuaW5mICAgICAgICAg ICAgICAgfCAgIDEgKw0KPiA+ID4gPiAgU2VjdXJpdHlQa2cvU2VjdXJpdHlQa2cuZGVjICAgICAg ICAgICAgICAgICAgIHwgICA3ICsNCj4gPiA+ID4gIC4uLi9TZWN1cmVCb290Q29uZmlnRHhlLmlu ZiAgICAgICAgICAgICAgICAgICB8ICAxOSArKw0KPiA+ID4gPiAgLi4uL1NlY3VyZUJvb3RDb25m aWdJbXBsLmMgICAgICAgICAgICAgICAgICAgIHwgMTIyICsrKysrKystDQo+ID4gPiA+ICAuLi4v U2VjdXJlQm9vdENvbmZpZ0ltcGwuaCAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+ID4g PiAgLi4uL1NlY3VyZUJvb3RDb25maWdTdHJpbmdzLnVuaSAgICAgICAgICAgICAgIHwgICA2ICsN Cj4gPiA+ID4gIDEyIGZpbGVzIGNoYW5nZWQsIDQ2MyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlv bnMoLSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jh c2VDcnlwdExpYi9Qay9DcnlwdFRzLmMNCj4gPiA+ID4gYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNl Q3J5cHRMaWIvUGsvQ3J5cHRUcy5jDQo+ID4gPiA+IGluZGV4IDAyN2RiYjY4NDIuLjk0NGJjZjhk MzggMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Q ay9DcnlwdFRzLmMNCj4gPiA+ID4gKysrIGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGli L1BrL0NyeXB0VHMuYw0KPiA+ID4gPiBAQCAtNTkxLDcgKzU5MSw4IEBAIEltYWdlVGltZXN0YW1w VmVyaWZ5ICgNCj4gPiA+ID4gICAgLy8gUmVnaXN0ZXIgJiBJbml0aWFsaXplIG5lY2Vzc2FyeSBk aWdlc3QgYWxnb3JpdGhtcyBmb3IgUEtDUyM3IEhhbmRsaW5nLg0KPiA+ID4gPg0KPiA+ID4gPiAg ICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgICBpZiAoKEVWUF9hZGRfZGlnZXN0IChFVlBfbWQ1ICgp KSA9PSAwKSB8fCAoRVZQX2FkZF9kaWdlc3QNCj4gKEVWUF9zaGExDQo+ID4gPiA+ICgpKSA9PSAw KQ0KPiA+ID4gPiB8fA0KPiA+ID4gPg0KPiA+ID4gPiAtICAgICAgKEVWUF9hZGRfZGlnZXN0IChF VlBfc2hhMjU2ICgpKSA9PSAwKSB8fCAoKEVWUF9hZGRfZGlnZXN0X2FsaWFzDQo+ID4gPiA+IChT Tl9zaGExV2l0aFJTQUVuY3J5cHRpb24sIFNOX3NoYTFXaXRoUlNBKSkgPT0gMCkpDQo+ID4gPiA+ DQo+ID4gPiA+ICsgICAgICAoRVZQX2FkZF9kaWdlc3QgKEVWUF9zaGEyNTYgKCkpID09IDApIHx8 IChFVlBfYWRkX2RpZ2VzdA0KPiA+ID4gPiArIChFVlBfc2hhMzg0ICgpKQ0KPiA+ID4gPiA9PSAw KSB8fA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgKEVWUF9hZGRfZGlnZXN0IChFVlBfc2hhNTEy ICgpKSA9PSAwKSB8fCAoKEVWUF9hZGRfZGlnZXN0X2FsaWFzDQo+ID4gPiA+IChTTl9zaGExV2l0 aFJTQUVuY3J5cHRpb24sIFNOX3NoYTFXaXRoUlNBKSkgPT0gMCkpDQo+ID4gPiA+DQo+ID4gPiA+ ICAgIHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICByZXR1cm4gRkFMU0U7DQo+ID4gPiA+DQo+ID4g PiA+ICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0d1 aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oDQo+ID4gPiA+IGIvTWRlUGtnL0luY2x1ZGUvR3VpZC9J bWFnZUF1dGhlbnRpY2F0aW9uLmgNCj4gPiA+ID4gaW5kZXggZmU4MzU5NjU3MS4uYzhlYTJjMTRm YiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvR3VpZC9JbWFnZUF1dGhlbnRp Y2F0aW9uLmgNCj4gPiA+ID4gKysrIGIvTWRlUGtnL0luY2x1ZGUvR3VpZC9JbWFnZUF1dGhlbnRp Y2F0aW9uLmgNCj4gPiA+ID4gQEAgLTE0NCw2ICsxNDQsMzAgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0K PiA+ID4gPiAgICAgIDB4M2M1NzY2ZTgsIDB4MjY5YywgMHg0ZTM0LCB7MHhhYSwgMHgxNCwgMHhl ZCwgMHg3NywgMHg2ZSwgMHg4NSwNCj4gPiA+ID4gMHhiMywgMHhiNn0gXA0KPiA+ID4gPg0KPiA+ ID4gPiAgICB9DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICsvLy8NCj4gPiA+ ID4NCj4gPiA+ID4gKy8vLyBUaGlzIGlkZW50aWZpZXMgYSBzaWduYXR1cmUgY29udGFpbmluZyBh biBSU0EtMzA3MiBrZXkuIFRoZSBrZXkNCj4gPiA+ID4gKyhvbmx5IHRoZQ0KPiA+ID4gPiBtb2R1 bHVzDQo+ID4gPiA+DQo+ID4gPiA+ICsvLy8gc2luY2UgdGhlIHB1YmxpYyBrZXkgZXhwb25lbnQg aXMga25vd24gdG8gYmUgMHgxMDAwMSkgc2hhbGwgYmUNCj4gPiA+ID4gK3N0b3JlZCBpbiBiaWct DQo+ID4gPiA+IGVuZGlhbg0KPiA+ID4gPg0KPiA+ID4gPiArLy8vIG9yZGVyLg0KPiA+ID4gPg0K PiA+ID4gPiArLy8vIFRoZSBTaWduYXR1cmVIZWFkZXIgc2l6ZSBzaGFsbCBhbHdheXMgYmUgMC4g VGhlIFNpZ25hdHVyZVNpemUNCj4gPiA+ID4gK3NoYWxsIGFsd2F5cw0KPiA+ID4gPiBiZSAxNiAo c2l6ZQ0KPiA+ID4gPg0KPiA+ID4gPiArLy8vIG9mIFNpZ25hdHVyZU93bmVyIGNvbXBvbmVudCkg KyAzODQgYnl0ZXMuDQo+ID4gPiA+DQo+ID4gPiA+ICsvLy8NCj4gPiA+ID4NCj4gPiA+ID4gKyNk ZWZpbmUgRUZJX0NFUlRfUlNBMzA3Ml9HVUlEIFwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgeyBcDQo+ ID4gPiA+DQo+ID4gPiA+ICsgICAgMHhlZGQzMjBjMiwgMHhiMDU3LCAweDRiOGUsIHsweGFkLCAw eDQ2LCAweDJjLCAweDliLCAweDg1LCAweDg5LA0KPiA+ID4gPiArIDB4ZWUsDQo+ID4gPiA+IDB4 OTIgfSBcDQo+ID4gPiA+DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4g Pg0KPiA+ID4gPiArLy8vDQo+ID4gPiA+DQo+ID4gPiA+ICsvLy8gVGhpcyBpZGVudGlmaWVzIGEg c2lnbmF0dXJlIGNvbnRhaW5pbmcgYW4gUlNBLTQwOTYga2V5LiBUaGUga2V5DQo+ID4gPiA+ICso b25seSB0aGUNCj4gPiA+ID4gbW9kdWx1cw0KPiA+ID4gPg0KPiA+ID4gPiArLy8vIHNpbmNlIHRo ZSBwdWJsaWMga2V5IGV4cG9uZW50IGlzIGtub3duIHRvIGJlIDB4MTAwMDEpIHNoYWxsIGJlDQo+ ID4gPiA+ICtzdG9yZWQgaW4gYmlnLQ0KPiA+ID4gPiBlbmRpYW4NCj4gPiA+ID4NCj4gPiA+ID4g Ky8vLyBvcmRlci4NCj4gPiA+ID4NCj4gPiA+ID4gKy8vLyBUaGUgU2lnbmF0dXJlSGVhZGVyIHNp emUgc2hhbGwgYWx3YXlzIGJlIDAuIFRoZSBTaWduYXR1cmVTaXplDQo+ID4gPiA+ICtzaGFsbCBh bHdheXMNCj4gPiA+ID4gYmUgMTYgKHNpemUNCj4gPiA+ID4NCj4gPiA+ID4gKy8vLyBvZiBTaWdu YXR1cmVPd25lciBjb21wb25lbnQpICsgNTEyIGJ5dGVzLg0KPiA+ID4gPg0KPiA+ID4gPiArLy8v DQo+ID4gPiA+DQo+ID4gPiA+ICsjZGVmaW5lIEVGSV9DRVJUX1JTQTQwOTZfR1VJRCBcDQo+ID4g PiA+DQo+ID4gPiA+ICsgIHsgXA0KPiA+ID4gPg0KPiA+ID4gPiArICAgIDB4YjIzZTg5YTYsIDB4 OGM4YiwgMHg0NDEyLCB7MHg4NSwgMHg3MywgMHgxNSwgMHg0ZSwgMHg4ZCwgMHgwMCwNCj4gPiA+ ID4gKyAweDk4LA0KPiA+ID4gPiAweDJjIH0gXA0KPiA+ID4gPg0KPiA+ID4gPiArICB9DQo+ID4g PiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4gIC8vLw0KPiA+ID4gPg0KPiA+ID4gPiAg Ly8vIFRoaXMgaWRlbnRpZmllcyBhIHNpZ25hdHVyZSBjb250YWluaW5nIGEgUlNBLTIwNDggc2ln bmF0dXJlIG9mIGENCj4gPiA+ID4gU0hBLTI1NiBoYXNoLiAgVGhlDQo+ID4gPiA+DQo+ID4gPiA+ ICAvLy8gU2lnbmF0dXJlSGVhZGVyIHNpemUgc2hhbGwgYWx3YXlzIGJlIDAuIFRoZSBTaWduYXR1 cmVTaXplIHNoYWxsDQo+ID4gPiA+IGFsd2F5cyBiZSAxNiAoc2l6ZSBvZg0KPiA+ID4gPg0KPiA+ ID4gPiBAQCAtMzMwLDYgKzM1NCw4IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gPiA+ID4gIGV4dGVy biBFRklfR1VJRCAgZ0VmaUltYWdlU2VjdXJpdHlEYXRhYmFzZUd1aWQ7DQo+ID4gPiA+DQo+ID4g PiA+ICBleHRlcm4gRUZJX0dVSUQgIGdFZmlDZXJ0U2hhMjU2R3VpZDsNCj4gPiA+ID4NCj4gPiA+ ID4gIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EyMDQ4R3VpZDsNCj4gPiA+ID4NCj4gPiA+ ID4gK2V4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EzMDcyR3VpZDsNCj4gPiA+ID4NCj4gPiA+ ID4gK2V4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2E0MDk2R3VpZDsNCj4gPiA+ID4NCj4gPiA+ ID4gIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EyMDQ4U2hhMjU2R3VpZDsNCj4gPiA+ID4N Cj4gPiA+ID4gIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRTaGExR3VpZDsNCj4gPiA+ID4NCj4g PiA+ID4gIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EyMDQ4U2hhMUd1aWQ7DQo+ID4gPiA+ DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvTWRlUGtnLmRlYyBiL01kZVBrZy9NZGVQa2cu ZGVjIGluZGV4DQo+ID4gPiA+IDgwYjY1NTkwNTMuLjc4MmY2ZDE4NGQgMTAwNjQ0DQo+ID4gPiA+ IC0tLSBhL01kZVBrZy9NZGVQa2cuZGVjDQo+ID4gPiA+ICsrKyBiL01kZVBrZy9NZGVQa2cuZGVj DQo+ID4gPiA+IEBAIC01NjIsNiArNTYyLDggQEANCj4gPiA+ID4gICAgZ0VmaUltYWdlU2VjdXJp dHlEYXRhYmFzZUd1aWQgID0geyAweGQ3MTliMmNiLCAweDNkM2EsIDB4NDU5NiwNCj4gPiA+ID4g ezB4YTMsIDB4YmMsIDB4ZGEsIDB4ZDAsICAweGUsIDB4NjcsIDB4NjUsIDB4NmYgfX0NCj4gPiA+ ID4NCj4gPiA+ID4gICAgZ0VmaUNlcnRTaGEyNTZHdWlkICAgICAgICAgICAgID0geyAweGMxYzQx NjI2LCAweDUwNGMsIDB4NDA5MiwgezB4YWMsIDB4YTksDQo+ID4gPiAweDQxLA0KPiA+ID4gPiAw eGY5LCAweDM2LCAweDkzLCAweDQzLCAweDI4IH19DQo+ID4gPiA+DQo+ID4gPiA+ICAgIGdFZmlD ZXJ0UnNhMjA0OEd1aWQgICAgICAgICAgICA9IHsgMHgzYzU3NjZlOCwgMHgyNjljLCAweDRlMzQs IHsweGFhLCAweDE0LA0KPiA+ID4gMHhlZCwNCj4gPiA+ID4gMHg3NywgMHg2ZSwgMHg4NSwgMHhi MywgMHhiNiB9fQ0KPiA+ID4gPg0KPiA+ID4gPiArICBnRWZpQ2VydFJzYTMwNzJHdWlkICAgICAg ICAgICAgPSB7IDB4ZWRkMzIwYzIsIDB4YjA1NywgMHg0YjhlLCB7MHhhZCwNCj4gMHg0NiwNCj4g PiA+ID4gMHgyYywgMHg5YiwgMHg4NSwgMHg4OSwgMHhlZSwgMHg5MiB9fQ0KPiA+ID4gPg0KPiA+ ID4gPiArICBnRWZpQ2VydFJzYTQwOTZHdWlkICAgICAgICAgICAgPSB7IDB4YjIzZTg5YTYsIDB4 OGM4YiwgMHg0NDEyLCB7MHg4NSwNCj4gMHg3MywNCj4gPiA+ID4gMHgxNSwgMHg0ZSwgMHg4ZCwg MHgwMCwgMHg5OCwgMHgyYyB9fQ0KPiA+ID4gPg0KPiA+ID4gPiAgICBnRWZpQ2VydFJzYTIwNDhT aGEyNTZHdWlkICAgICAgPSB7IDB4ZTJiMzYxOTAsIDB4ODc5YiwgMHg0YTNkLCB7MHhhZCwNCj4g PiA+IDB4OGQsDQo+ID4gPiA+IDB4ZjIsIDB4ZTcsIDB4YmIsIDB4YTMsIDB4MjcsIDB4ODQgfX0N Cj4gPiA+ID4NCj4gPiA+ID4gICAgZ0VmaUNlcnRTaGExR3VpZCAgICAgICAgICAgICAgID0geyAw eDgyNmNhNTEyLCAweGNmMTAsIDB4NGFjOSwgezB4YjEsIDB4ODcsDQo+ID4gMHhiZSwNCj4gPiA+ ID4gMHgxLCAweDQ5LCAweDY2LCAweDMxLCAweGJkIH19DQo+ID4gPiA+DQo+ID4gPiA+ICAgIGdF ZmlDZXJ0UnNhMjA0OFNoYTFHdWlkICAgICAgICA9IHsgMHg2N2Y4NDQ0ZiwgMHg4NzQzLCAweDQ4 ZjEsIHsweGEzLA0KPiAweDI4LA0KPiA+ID4gPiAweDFlLCAweGFhLCAweGI4LCAweDczLCAweDYw LCAweDgwIH19DQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJy YXJ5L0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZS5jDQo+ID4gPiA+IGIvU2VjdXJpdHlQa2cv TGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2UuYw0KPiA+ID4gPiBpbmRleCA0NTJl ZDQ5MWVhLi4yODhlNDRhMzU5IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9TZWN1cml0eVBrZy9MaWJy YXJ5L0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZS5jDQo+ID4gPiA+ICsrKyBiL1NlY3VyaXR5 UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlLmMNCj4gPiA+ID4gQEAgLTI5 LDEyICsyOSwxNiBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiA+ID4gPiAjaW5jbHVkZSA8UHJvdG9jb2wvVmFyaWFibGVQb2xpY3kuaD4NCj4gPiA+ID4N Cj4gPiA+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L1ZhcmlhYmxlUG9saWN5TGliLmg+DQo+ID4gPiA+ DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICsjZGVmaW5lIFNIQV9ESUdFU1RfU0laRV9NQVgg U0hBNTEyX0RJR0VTVF9TSVpFDQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4g IC8vDQo+ID4gPiA+DQo+ID4gPiA+ICAvLyBQdWJsaWMgRXhwb25lbnQgb2YgUlNBIEtleS4NCj4g PiA+ID4NCj4gPiA+ID4gIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICBDT05TVCBVSU5UOCAgbVJzYUVb XSA9IHsgMHgwMSwgMHgwMCwgMHgwMSB9Ow0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPiAgQ09OU1QgVUlOVDggIG1TaGEyNTZPaWRWYWx1ZVtdID0geyAweDYwLCAweDg2LCAweDQ4 LCAweDAxLCAweDY1LA0KPiA+ID4gPiAweDAzLCAweDA0LCAweDAyLCAweDAxIH07DQo+ID4gPiA+ DQo+ID4gPiA+ICtDT05TVCBVSU5UOCAgbVNoYTM4NE9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYs IDB4NDgsIDB4MDEsIDB4NjUsDQo+ID4gPiA+ICsweDAzLA0KPiA+ID4gPiAweDA0LCAweDAyLCAw eDAyIH07DQo+ID4gPiA+DQo+ID4gPiA+ICtDT05TVCBVSU5UOCAgbVNoYTUxMk9pZFZhbHVlW10g PSB7IDB4NjAsIDB4ODYsIDB4NDgsIDB4MDEsIDB4NjUsDQo+ID4gPiA+ICsweDAzLA0KPiA+ID4g PiAweDA0LCAweDAyLCAweDAzIH07DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ ICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgLy8gUmVxdWlyZW1lbnQgZm9yIGRpZmZlcmVudCBzaWdu YXR1cmUgdHlwZSB3aGljaCBoYXZlIGJlZW4gZGVmaW5lZA0KPiA+ID4gPiBpbiBVRUZJIHNwZWMu DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC00NCw2ICs0OCw4IEBAIEVGSV9TSUdOQVRVUkVfSVRFTSAg bVN1cHBvcnRTaWdJdGVtW10gPSB7DQo+ID4gPiA+ICAgIC8vIHtTaWdUeXBlLCAgICAgICAgICAg ICAgICAgICAgICAgU2lnSGVhZGVyU2l6ZSwgICBTaWdEYXRhU2l6ZSAgfQ0KPiA+ID4gPg0KPiA+ ID4gPiAgICB7IEVGSV9DRVJUX1NIQTI1Nl9HVUlELCAgICAgICAgIDAsIDMyICAgICAgICAgICAg fSwNCj4gPiA+ID4NCj4gPiA+ID4gICAgeyBFRklfQ0VSVF9SU0EyMDQ4X0dVSUQsICAgICAgICAw LCAyNTYgICAgICAgICAgIH0sDQo+ID4gPiA+DQo+ID4gPiA+ICsgIHsgRUZJX0NFUlRfUlNBMzA3 Ml9HVUlELCAgICAgICAgMCwgMzg0ICAgICAgICAgICB9LA0KPiA+ID4gPg0KPiA+ID4gPiArICB7 IEVGSV9DRVJUX1JTQTQwOTZfR1VJRCwgICAgICAgIDAsIDUxMiAgICAgICAgICAgfSwNCj4gPiA+ ID4NCj4gPiA+ID4gICAgeyBFRklfQ0VSVF9SU0EyMDQ4X1NIQTI1Nl9HVUlELCAwLCAyNTYgICAg ICAgICAgIH0sDQo+ID4gPiA+DQo+ID4gPiA+ICAgIHsgRUZJX0NFUlRfU0hBMV9HVUlELCAgICAg ICAgICAgMCwgMjAgICAgICAgICAgICB9LA0KPiA+ID4gPg0KPiA+ID4gPiAgICB7IEVGSV9DRVJU X1JTQTIwNDhfU0hBMV9HVUlELCAgIDAsIDI1NiAgICAgICAgICAgfSwNCj4gPiA+ID4NCj4gPiA+ ID4gQEAgLTExNzIsNiArMTE3OCwxNzIgQEANCj4gQ2FsY3VsYXRlUHJpdkF1dGhWYXJTaWduQ2hh aW5TSEEyNTZEaWdlc3QgKA0KPiA+ID4gPiAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gPiA+ DQo+ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICsvKioNCj4g PiA+ID4NCj4gPiA+ID4gKyAgQ2FsY3VsYXRlIFNIQTM4IGRpZ2VzdCBvZiBTaWduZXJDZXJ0IENv bW1vbk5hbWUgKyBUb3BsZXZlbENlcnQNCj4gPiA+ID4gdGJzQ2VydGlmaWNhdGUNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgU2lnbmVyQ2VydCBhbmQgVG9wbGV2ZWxDZXJ0IGFyZSBpbnNpZGUgdGhlIHNp Z25lciBjZXJ0aWZpY2F0ZSBjaGFpbi4NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ ID4gPiArICBAcGFyYW1baW5dICBTaWduZXJDZXJ0ICAgICAgICAgIEEgcG9pbnRlciB0byBTaWdu ZXJDZXJ0IGRhdGEuDQo+ID4gPiA+DQo+ID4gPiA+ICsgIEBwYXJhbVtpbl0gIFNpZ25lckNlcnRT aXplICAgICAgTGVuZ3RoIG9mIFNpZ25lckNlcnQgZGF0YS4NCj4gPiA+ID4NCj4gPiA+ID4gKyAg QHBhcmFtW2luXSAgVG9wTGV2ZWxDZXJ0ICAgICAgICBBIHBvaW50ZXIgdG8gVG9wTGV2ZWxDZXJ0 IGRhdGEuDQo+ID4gPiA+DQo+ID4gPiA+ICsgIEBwYXJhbVtpbl0gIFRvcExldmVsQ2VydFNpemUg ICAgTGVuZ3RoIG9mIFRvcExldmVsQ2VydCBkYXRhLg0KPiA+ID4gPg0KPiA+ID4gPiArICBAcGFy YW1bb3V0XSBTaGEzODREaWdlc3QgICAgICAgU2hhMzg0IGRpZ2VzdCBjYWxjdWxhdGVkLg0KPiA+ ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICsgIEByZXR1cm4gRUZJX0FCT1JURUQg ICAgICAgICAgRGlnZXN0IHByb2Nlc3MgZmFpbGVkLg0KPiA+ID4gPg0KPiA+ID4gPiArICBAcmV0 dXJuIEVGSV9TVUNDRVNTICAgICAgICAgIFNIQTM4NCBEaWdlc3QgaXMgc3VjY2Vzc2Z1bGx5IGNh bGN1bGF0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4gKyoqLw0KPiA+ ID4gPg0KPiA+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gPg0KPiA+ID4gPiArQ2FsY3VsYXRlUHJp dkF1dGhWYXJTaWduQ2hhaW5TSEEzODREaWdlc3QgKA0KPiA+ID4gPg0KPiA+ID4gPiArICBJTiAg ICAgVUlOVDggICpTaWduZXJDZXJ0LA0KPiA+ID4gPg0KPiA+ID4gPiArICBJTiAgICAgVUlOVE4g IFNpZ25lckNlcnRTaXplLA0KPiA+ID4gPg0KPiA+ID4gPiArICBJTiAgICAgVUlOVDggICpUb3BM ZXZlbENlcnQsDQo+ID4gPiA+DQo+ID4gPiA+ICsgIElOICAgICBVSU5UTiAgVG9wTGV2ZWxDZXJ0 U2l6ZSwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgT1VUICAgIFVJTlQ4ICAqU2hhMzg0RGlnZXN0DQo+ ID4gPiA+DQo+ID4gPiA+ICsgICkNCj4gPiA+ID4NCj4gPiA+ID4gK3sNCj4gPiA+ID4NCj4gPiA+ ID4gKyAgVUlOVDggICAgICAgKlRic0NlcnQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIFVJTlROICAg ICAgIFRic0NlcnRTaXplOw0KPiA+ID4gPg0KPiA+ID4gPiArICBDSEFSOCAgICAgICBDZXJ0Q29t bW9uTmFtZVsxMjhdOw0KPiA+ID4gPg0KPiA+ID4gPiArICBVSU5UTiAgICAgICBDZXJ0Q29tbW9u TmFtZVNpemU7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIEJPT0xFQU4gICAgIENyeXB0b1N0YXR1czsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPiA+ID4gPg0KPiA+ID4g PiArDQo+ID4gPiA+DQo+ID4gPiA+ICsgIENlcnRDb21tb25OYW1lU2l6ZSA9IHNpemVvZiAoQ2Vy dENvbW1vbk5hbWUpOw0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8v DQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8vIEdldCBTaWduZXJDZXJ0IENvbW1vbk5hbWUNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4NCj4gPiA+ID4gKyAgU3RhdHVzID0gWDUwOUdldENv bW1vbk5hbWUgKFNpZ25lckNlcnQsIFNpZ25lckNlcnRTaXplLA0KPiA+ID4gPiBDZXJ0Q29tbW9u TmFtZSwgJkNlcnRDb21tb25OYW1lU2l6ZSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGlmIChFRklf RVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0lO Rk8sICIlYSBHZXQgU2lnbmVyQ2VydCBDb21tb25OYW1lIGZhaWxlZA0KPiB3aXRoDQo+ID4gPiA+ IHN0YXR1cyAleFxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICByZXR1cm4gRUZJX0FCT1JURUQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4N Cj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICAvLw0KPiA+ID4gPg0KPiA+ID4gPiArICAv LyBHZXQgVG9wTGV2ZWxDZXJ0IHRic0NlcnRpZmljYXRlDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8v DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGlmICghWDUwOUdldFRCU0NlcnQgKFRvcExldmVsQ2VydCwg VG9wTGV2ZWxDZXJ0U2l6ZSwgJlRic0NlcnQsDQo+ID4gPiA+ICZUYnNDZXJ0U2l6ZSkpIHsNCj4g PiA+ID4NCj4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICIlYSBHZXQgVG9wLWxldmVs IENlcnQgdGJzQ2VydGlmaWNhdGUNCj4gPiA+ID4gKyBmYWlsZWQhXG4iLA0KPiA+ID4gPiBfX0ZV TkNUSU9OX18pKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICByZXR1cm4gRUZJX0FCT1JURUQ7DQo+ ID4gPiA+DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4g PiArICAvLw0KPiA+ID4gPg0KPiA+ID4gPiArICAvLyBEaWdlc3QgU2lnbmVyQ2VydCBDTiArIFRv cExldmVsQ2VydCB0YnNDZXJ0aWZpY2F0ZQ0KPiA+ID4gPg0KPiA+ID4gPiArICAvLw0KPiA+ID4g Pg0KPiA+ID4gPiArICBaZXJvTWVtIChTaGEzODREaWdlc3QsIFNIQTM4NF9ESUdFU1RfU0laRSk7 DQo+ID4gPiA+DQo+ID4gPiA+ICsgIENyeXB0b1N0YXR1cyA9IFNoYTM4NEluaXQgKG1IYXNoQ3R4 KTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgaWYgKCFDcnlwdG9TdGF0dXMpIHsNCj4gPiA+ID4NCj4g PiA+ID4gKyAgICByZXR1cm4gRUZJX0FCT1JURUQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIH0NCj4g PiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICAvLw0KPiA+ID4gPg0KPiA+ID4g PiArICAvLyAnXDAnIGlzIGZvcmNlZCBpbiBDZXJ0Q29tbW9uTmFtZS4gTm8gb3ZlcmZsb3cgaXNz dWUNCj4gPiA+ID4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4NCj4gPiA+ID4gKyAgQ3J5cHRvU3Rh dHVzID0gU2hhMzg0VXBkYXRlICgNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICBtSGFzaEN0eCwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBDZXJ0Q29t bW9uTmFtZSwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBBc2NpaVN0ckxl biAoQ2VydENvbW1vbk5hbWUpDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg KTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgaWYgKCFDcnlwdG9TdGF0dXMpIHsNCj4gPiA+ID4NCj4g PiA+ID4gKyAgICByZXR1cm4gRUZJX0FCT1JURUQ7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIH0NCj4g PiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICBDcnlwdG9TdGF0dXMgPSBTaGEz ODRVcGRhdGUgKG1IYXNoQ3R4LCBUYnNDZXJ0LCBUYnNDZXJ0U2l6ZSk7DQo+ID4gPiA+DQo+ID4g PiA+ICsgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgcmV0dXJu IEVGSV9BQk9SVEVEOw0KPiA+ID4gPg0KPiA+ID4gPiArICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgQ3J5cHRvU3RhdHVzID0gU2hhMzg0RmluYWwgKG1IYXNoQ3R4 LCBTaGEzODREaWdlc3QpOw0KPiA+ID4gPg0KPiA+ID4gPiArICBpZiAoIUNyeXB0b1N0YXR1cykg ew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsNCj4gPiA+ID4NCj4g PiA+ID4gKyAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICsgIHJldHVy biBFRklfU1VDQ0VTUzsNCj4gPiA+ID4NCj4gPiA+ID4gK30NCj4gPiA+ID4NCj4gPiA+ID4gKw0K PiA+ID4gPg0KPiA+ID4gPiArLyoqDQo+ID4gPiA+DQo+ID4gPiA+ICsgIENhbGN1bGF0ZSBTSEE1 MTIgZGlnZXN0IG9mIFNpZ25lckNlcnQgQ29tbW9uTmFtZSArIFRvcGxldmVsQ2VydA0KPiA+ID4g PiB0YnNDZXJ0aWZpY2F0ZQ0KPiA+ID4gPg0KPiA+ID4gPiArICBTaWduZXJDZXJ0IGFuZCBUb3Bs ZXZlbENlcnQgYXJlIGluc2lkZSB0aGUgc2lnbmVyIGNlcnRpZmljYXRlIGNoYWluLg0KPiA+ID4g Pg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICsgIEBwYXJhbVtpbl0gIFNpZ25lckNlcnQg ICAgICAgICAgQSBwb2ludGVyIHRvIFNpZ25lckNlcnQgZGF0YS4NCj4gPiA+ID4NCj4gPiA+ID4g KyAgQHBhcmFtW2luXSAgU2lnbmVyQ2VydFNpemUgICAgICBMZW5ndGggb2YgU2lnbmVyQ2VydCBk YXRhLg0KPiA+ID4gPg0KPiA+ID4gPiArICBAcGFyYW1baW5dICBUb3BMZXZlbENlcnQgICAgICAg IEEgcG9pbnRlciB0byBUb3BMZXZlbENlcnQgZGF0YS4NCj4gPiA+ID4NCj4gPiA+ID4gKyAgQHBh cmFtW2luXSAgVG9wTGV2ZWxDZXJ0U2l6ZSAgICBMZW5ndGggb2YgVG9wTGV2ZWxDZXJ0IGRhdGEu DQo+ID4gPiA+DQo+ID4gPiA+ICsgIEBwYXJhbVtvdXRdIFNoYTUxMkRpZ2VzdCAgICAgICBTaGE1 MTIgZGlnZXN0IGNhbGN1bGF0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ ID4gKyAgQHJldHVybiBFRklfQUJPUlRFRCAgICAgICAgICBEaWdlc3QgcHJvY2VzcyBmYWlsZWQu DQo+ID4gPiA+DQo+ID4gPiA+ICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MgICAgICAgICAgU0hBNTEy IERpZ2VzdCBpcyBzdWNjZXNzZnVsbHkgY2FsY3VsYXRlZC4NCj4gPiA+ID4NCj4gPiA+ID4gKw0K PiA+ID4gPg0KPiA+ID4gPiArKiovDQo+ID4gPiA+DQo+ID4gPiA+ICtFRklfU1RBVFVTDQo+ID4g PiA+DQo+ID4gPiA+ICtDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTUxMkRpZ2VzdCAo DQo+ID4gPiA+DQo+ID4gPiA+ICsgIElOICAgICBVSU5UOCAgKlNpZ25lckNlcnQsDQo+ID4gPiA+ DQo+ID4gPiA+ICsgIElOICAgICBVSU5UTiAgU2lnbmVyQ2VydFNpemUsDQo+ID4gPiA+DQo+ID4g PiA+ICsgIElOICAgICBVSU5UOCAgKlRvcExldmVsQ2VydCwNCj4gPiA+ID4NCj4gPiA+ID4gKyAg SU4gICAgIFVJTlROICBUb3BMZXZlbENlcnRTaXplLA0KPiA+ID4gPg0KPiA+ID4gPiArICBPVVQg ICAgVUlOVDggICpTaGE1MTJEaWdlc3QNCj4gPiA+ID4NCj4gPiA+ID4gKyAgKQ0KPiA+ID4gPg0K PiA+ID4gPiArew0KPiA+ID4gPg0KPiA+ID4gPiArICBVSU5UOCAgICAgICAqVGJzQ2VydDsNCj4g PiA+ID4NCj4gPiA+ID4gKyAgVUlOVE4gICAgICAgVGJzQ2VydFNpemU7DQo+ID4gPiA+DQo+ID4g PiA+ICsgIENIQVI4ICAgICAgIENlcnRDb21tb25OYW1lWzEyOF07DQo+ID4gPiA+DQo+ID4gPiA+ ICsgIFVJTlROICAgICAgIENlcnRDb21tb25OYW1lU2l6ZTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAg Qk9PTEVBTiAgICAgQ3J5cHRvU3RhdHVzOw0KPiA+ID4gPg0KPiA+ID4gPiArICBFRklfU1RBVFVT ICBTdGF0dXM7DQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgQ2VydENv bW1vbk5hbWVTaXplID0gc2l6ZW9mIChDZXJ0Q29tbW9uTmFtZSk7DQo+ID4gPiA+DQo+ID4gPiA+ ICsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4NCj4gPiA+ID4gKyAgLy8gR2V0IFNp Z25lckNlcnQgQ29tbW9uTmFtZQ0KPiA+ID4gPg0KPiA+ID4gPiArICAvLw0KPiA+ID4gPg0KPiA+ ID4gPiArICBTdGF0dXMgPSBYNTA5R2V0Q29tbW9uTmFtZSAoU2lnbmVyQ2VydCwgU2lnbmVyQ2Vy dFNpemUsDQo+ID4gPiA+IENlcnRDb21tb25OYW1lLCAmQ2VydENvbW1vbk5hbWVTaXplKTsNCj4g PiA+ID4NCj4gPiA+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPg0KPiA+ ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVhIEdldCBTaWduZXJDZXJ0IENvbW1vbk5h bWUgZmFpbGVkDQo+IHdpdGgNCj4gPiA+ID4gc3RhdHVzICV4XG4iLCBfX0ZVTkNUSU9OX18sIFN0 YXR1cykpOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICsg IC8vDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8vIEdldCBUb3BMZXZlbENlcnQgdGJzQ2VydGlmaWNh dGUNCj4gPiA+ID4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4NCj4gPiA+ID4gKyAgaWYgKCFYNTA5 R2V0VEJTQ2VydCAoVG9wTGV2ZWxDZXJ0LCBUb3BMZXZlbENlcnRTaXplLCAmVGJzQ2VydCwNCj4g PiA+ID4gJlRic0NlcnRTaXplKSkgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIERFQlVHICgoREVC VUdfSU5GTywgIiVhIEdldCBUb3AtbGV2ZWwgQ2VydCB0YnNDZXJ0aWZpY2F0ZQ0KPiA+ID4gPiAr IGZhaWxlZCFcbiIsDQo+ID4gPiA+IF9fRlVOQ1RJT05fXykpOw0KPiA+ID4gPg0KPiA+ID4gPiAr ICAgIHJldHVybiBFRklfQUJPUlRFRDsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPg0K PiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8v IERpZ2VzdCBTaWduZXJDZXJ0IENOICsgVG9wTGV2ZWxDZXJ0IHRic0NlcnRpZmljYXRlDQo+ID4g PiA+DQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICsgIFplcm9NZW0gKFNoYTUxMkRp Z2VzdCwgU0hBNTEyX0RJR0VTVF9TSVpFKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgQ3J5cHRvU3Rh dHVzID0gU2hhNTEySW5pdCAobUhhc2hDdHgpOw0KPiA+ID4gPg0KPiA+ID4gPiArICBpZiAoIUNy eXB0b1N0YXR1cykgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4g PiA+ICsgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8vICdcMCcgaXMgZm9yY2VkIGluIENlcnRD b21tb25OYW1lLiBObyBvdmVyZmxvdyBpc3N1ZQ0KPiA+ID4gPg0KPiA+ID4gPiArICAvLw0KPiA+ ID4gPg0KPiA+ID4gPiArICBDcnlwdG9TdGF0dXMgPSBTaGE1MTJVcGRhdGUgKA0KPiA+ID4gPg0K PiA+ID4gPiArICAgICAgICAgICAgICAgICAgIG1IYXNoQ3R4LA0KPiA+ID4gPg0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgIENlcnRDb21tb25OYW1lLA0KPiA+ID4gPg0KPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgIEFzY2lpU3RyTGVuIChDZXJ0Q29tbW9uTmFtZSkNCj4gPiA+ID4NCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPg0KPiA+ID4gPiArICBpZiAoIUNy eXB0b1N0YXR1cykgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4g PiA+ICsgIENyeXB0b1N0YXR1cyA9IFNoYTUxMlVwZGF0ZSAobUhhc2hDdHgsIFRic0NlcnQsIFRi c0NlcnRTaXplKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgaWYgKCFDcnlwdG9TdGF0dXMpIHsNCj4g PiA+ID4NCj4gPiA+ID4gKyAgICByZXR1cm4gRUZJX0FCT1JURUQ7DQo+ID4gPiA+DQo+ID4gPiA+ ICsgIH0NCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICBDcnlwdG9TdGF0 dXMgPSBTaGE1MTJGaW5hbCAobUhhc2hDdHgsIFNoYTUxMkRpZ2VzdCk7DQo+ID4gPiA+DQo+ID4g PiA+ICsgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgcmV0dXJu IEVGSV9BQk9SVEVEOw0KPiA+ID4gPg0KPiA+ID4gPiArICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gPg0KPiA+ID4g PiArfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICAvKioNCj4gPiA+ID4N Cj4gPiA+ID4gICAgRmluZCBtYXRjaGluZyBzaWduZXIncyBjZXJ0aWZpY2F0ZXMgZm9yIGNvbW1v biBhdXRoZW50aWNhdGVkDQo+ID4gPiA+IHZhcmlhYmxlDQo+ID4gPiA+DQo+ID4gPiA+ICAgIGJ5 IGNvcnJlc3BvbmRpbmcgVmFyaWFibGVOYW1lIGFuZCBWZW5kb3JHdWlkIGZyb20gImNlcnRkYiIg b3INCj4gPiA+ICJjZXJ0ZGJ2Ii4NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTE1MjYsNiArMTY5OCw3 IEBAIERlbGV0ZUNlcnRzRnJvbURiICgNCj4gPiA+ID4gICAgQHBhcmFtW2luXSAgU2lnbmVyQ2Vy dFNpemUgICAgTGVuZ3RoIG9mIHNpZ25lciBjZXJ0aWZpY2F0ZS4NCj4gPiA+ID4NCj4gPiA+ID4g ICAgQHBhcmFtW2luXSAgVG9wTGV2ZWxDZXJ0ICAgICAgVG9wLWxldmVsIGNlcnRpZmljYXRlIGRh dGEuDQo+ID4gPiA+DQo+ID4gPiA+ICAgIEBwYXJhbVtpbl0gIFRvcExldmVsQ2VydFNpemUgIExl bmd0aCBvZiB0b3AtbGV2ZWwgY2VydGlmaWNhdGUuDQo+ID4gPiA+DQo+ID4gPiA+ICsgIEBwYXJh bVtpbl0gIERpZ2VzdFNpemUgICAgICAgIERpZ2VzdCBTaXplLg0KPiA+ID4gPg0KPiA+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPiAgICBAcmV0dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIgQW55IGlu cHV0IHBhcmFtZXRlciBpcyBpbnZhbGlkLg0KPiA+ID4gPg0KPiA+ID4gPiAgICBAcmV0dmFsICBF RklfQUNDRVNTX0RFTklFRCAgICAgQW4gQVVUSF9DRVJUX0RCX0RBVEEgZW50cnkgd2l0aA0KPiA+ ID4gc2FtZQ0KPiA+ID4gPiBWYXJpYWJsZU5hbWUNCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTE1NDIs NyArMTcxNSw4IEBAIEluc2VydENlcnRzVG9EYiAoDQo+ID4gPiA+ICAgIElOICAgICBVSU5UOCAg ICAgKlNpZ25lckNlcnQsDQo+ID4gPiA+DQo+ID4gPiA+ICAgIElOICAgICBVSU5UTiAgICAgU2ln bmVyQ2VydFNpemUsDQo+ID4gPiA+DQo+ID4gPiA+ICAgIElOICAgICBVSU5UOCAgICAgKlRvcExl dmVsQ2VydCwNCj4gPiA+ID4NCj4gPiA+ID4gLSAgSU4gICAgIFVJTlROICAgICBUb3BMZXZlbENl cnRTaXplDQo+ID4gPiA+DQo+ID4gPiA+ICsgIElOICAgICBVSU5UTiAgICAgVG9wTGV2ZWxDZXJ0 U2l6ZSwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgSU4gICAgIFVJTlQzMiAgICBEaWdlc3RTaXplDQo+ ID4gPiA+DQo+ID4gPiA+ICAgICkNCj4gPiA+ID4NCj4gPiA+ID4gIHsNCj4gPiA+ID4NCj4gPiA+ ID4gICAgRUZJX1NUQVRVUyAgICAgICAgIFN0YXR1czsNCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTE1 NTYsNyArMTczMCw3IEBAIEluc2VydENlcnRzVG9EYiAoDQo+ID4gPiA+ICAgIFVJTlQzMiAgICAg ICAgICAgICBDZXJ0RGF0YVNpemU7DQo+ID4gPiA+DQo+ID4gPiA+ICAgIEFVVEhfQ0VSVF9EQl9E QVRBICAqUHRyOw0KPiA+ID4gPg0KPiA+ID4gPiAgICBDSEFSMTYgICAgICAgICAgICAgKkRiTmFt ZTsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgVUlOVDggICAgICAgICAgICAgIFNoYTI1NkRpZ2VzdFtT SEEyNTZfRElHRVNUX1NJWkVdOw0KPiA+ID4gPg0KPiA+ID4gPiArICBVSU5UOCAgICAgICAgICAg ICAgU2hhRGlnZXN0W1NIQV9ESUdFU1RfU0laRV9NQVhdOw0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPg0KPiA+ID4gPiAgICBpZiAoKFZhcmlhYmxlTmFtZSA9PSBOVUxMKSB8fCAoVmVuZG9yR3Vp ZCA9PSBOVUxMKSB8fCAoU2lnbmVyQ2VydA0KPiA+ID4gPiA9PSBOVUxMKQ0KPiA+ID4gPiB8fCAo VG9wTGV2ZWxDZXJ0ID09IE5VTEwpKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgcmV0dXJuIEVG SV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTE2MTgsMjAgKzE3OTIs NDEgQEAgSW5zZXJ0Q2VydHNUb0RiICgNCj4gPiA+ID4gICAgLy8gQ29uc3RydWN0IG5ldyBkYXRh IGNvbnRlbnQgb2YgdmFyaWFibGUgImNlcnRkYiIgb3IgImNlcnRkYnYiLg0KPiA+ID4gPg0KPiA+ ID4gPiAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgICBOYW1lU2l6ZSAgICAgID0gKFVJTlQzMilT dHJMZW4gKFZhcmlhYmxlTmFtZSk7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIENlcnREYXRhU2l6ZSAg PSBzaXplb2YgKFNoYTI1NkRpZ2VzdCk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIENlcnREYXRhU2l6 ZSAgPSBEaWdlc3RTaXplOw0KPiA+ID4gPg0KPiA+ID4gPiAgICBDZXJ0Tm9kZVNpemUgID0gc2l6 ZW9mIChBVVRIX0NFUlRfREJfREFUQSkgKw0KPiAoVUlOVDMyKUNlcnREYXRhU2l6ZSArDQo+ID4g PiA+IE5hbWVTaXplICogc2l6ZW9mIChDSEFSMTYpOw0KPiA+ID4gPg0KPiA+ID4gPiAgICBOZXdD ZXJ0RGJTaXplID0gKFVJTlQzMilEYXRhU2l6ZSArIENlcnROb2RlU2l6ZTsNCj4gPiA+ID4NCj4g PiA+ID4gICAgaWYgKE5ld0NlcnREYlNpemUgPiBtTWF4Q2VydERiU2l6ZSkgew0KPiA+ID4gPg0K PiA+ID4gPiAgICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiA+ID4NCj4gPiA+ ID4gICAgfQ0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAtICBTdGF0dXMgPSBD YWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoDQo+ID4gPiA+DQo+ID4g PiA+IC0gICAgICAgICAgICAgU2lnbmVyQ2VydCwNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICAg ICAgICBTaWduZXJDZXJ0U2l6ZSwNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICAgICAgICBUb3BM ZXZlbENlcnQsDQo+ID4gPiA+DQo+ID4gPiA+IC0gICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6 ZSwNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICAgICAgICBTaGEyNTZEaWdlc3QNCj4gPiA+ID4N Cj4gPiA+ID4gLSAgICAgICAgICAgICApOw0KPiA+ID4gPg0KPiA+ID4gPiArICBpZiAoRGlnZXN0 U2l6ZSA9PSBTSEEyNTZfRElHRVNUX1NJWkUpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBTdGF0 dXMgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoDQo+ID4gPiA+ DQo+ID4gPiA+ICsgICAgICAgICAgICAgICBTaWduZXJDZXJ0LA0KPiA+ID4gPg0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgU2lnbmVyQ2VydFNpemUsDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAg ICAgICAgICBUb3BMZXZlbENlcnQsDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgICAgICBU b3BMZXZlbENlcnRTaXplLA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgU2hhRGln ZXN0DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgICAgICApOw0KPiA+ID4gPg0KPiA+ID4g PiArICB9IGVsc2UgaWYgKERpZ2VzdFNpemUgPT0gU0hBMzg0X0RJR0VTVF9TSVpFKSB7DQo+ID4g PiA+DQo+ID4gPiA+ICsgICAgU3RhdHVzID0gQ2FsY3VsYXRlUHJpdkF1dGhWYXJTaWduQ2hhaW5T SEEzODREaWdlc3QgKA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgU2lnbmVyQ2Vy dCwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIFNpZ25lckNlcnRTaXplLA0KPiA+ ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0LA0KPiA+ID4gPg0KPiA+ ID4gPiArICAgICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6ZSwNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICAgICAgICAgICAgIFNoYURpZ2VzdA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAg ICAgKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgfSBlbHNlIGlmIChEaWdlc3RTaXplID09IFNIQTUx Ml9ESUdFU1RfU0laRSkgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIFN0YXR1cyA9IENhbGN1bGF0 ZVByaXZBdXRoVmFyU2lnbkNoYWluU0hBNTEyRGlnZXN0ICgNCj4gPiA+ID4NCj4gPiA+ID4gKyAg ICAgICAgICAgICAgIFNpZ25lckNlcnQsDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgICAg ICBTaWduZXJDZXJ0U2l6ZSwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIFRvcExl dmVsQ2VydCwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIFRvcExldmVsQ2VydFNp emUsDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgICAgICBTaGFEaWdlc3QNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIH0gZWxzZSB7 DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICAgIGlm IChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICByZXR1cm4gU3Rh dHVzOw0KPiA+ID4gPg0KPiA+ID4gPiAgICB9DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC0xNjYzLDcg KzE4NTgsNyBAQCBJbnNlcnRDZXJ0c1RvRGIgKA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAg ICBDb3B5TWVtICgNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAoVUlOVDggKilQdHIgKyAgc2l6ZW9m IChBVVRIX0NFUlRfREJfREFUQSkgKyBOYW1lU2l6ZSAqIHNpemVvZg0KPiA+ID4gPiAoQ0hBUjE2 KSwNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICBTaGEyNTZEaWdlc3QsDQo+ID4gPiA+DQo+ID4gPiA+ ICsgICAgU2hhRGlnZXN0LA0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIENlcnREYXRhU2l6ZQ0KPiA+ ID4gPg0KPiA+ID4gPiAgICAgICk7DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ IEBAIC0xODU3LDcgKzIwNTIsNyBAQCBWZXJpZnlUaW1lQmFzZWRQYXlsb2FkICgNCj4gPiA+ID4g ICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgIENlcnRTdGFja1NpemU7DQo+ID4gPiA+ DQo+ID4gPiA+ICAgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAqQ2VydHNJbkNlcnRE YjsNCj4gPiA+ID4NCj4gPiA+ID4gICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgIENl cnRzU2l6ZWluRGI7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIFVJTlQ4ICAgICAgICAgICAgICAgICAg ICAgICAgICBTaGEyNTZEaWdlc3RbU0hBMjU2X0RJR0VTVF9TSVpFXTsNCj4gPiA+ID4NCj4gPiA+ ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgIFNoYURpZ2VzdFtTSEFfRElHRVNU X1NJWkVfTUFYXTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgRUZJX0NFUlRfREFUQSAgICAgICAgICAg ICAgICAgICpDZXJ0RGF0YVB0cjsNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g ICAgLy8NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTE5MjgsNyArMjEyMyw3IEBAIFZlcmlmeVRpbWVC YXNlZFBheWxvYWQgKA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgICAvLw0KPiA+ID4gPg0K PiA+ID4gPiAgICAvLyBTaWduZWREYXRhLmRpZ2VzdEFsZ29yaXRobXMgc2hhbGwgY29udGFpbiB0 aGUgZGlnZXN0IGFsZ29yaXRobQ0KPiA+ID4gPiB1c2VkIHdoZW4gcHJlcGFyaW5nIHRoZQ0KPiA+ ID4gPg0KPiA+ID4gPiAtICAvLyBzaWduYXR1cmUuIE9ubHkgYSBkaWdlc3QgYWxnb3JpdGhtIG9m IFNIQS0yNTYgaXMgYWNjZXB0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+ICsgIC8vIHNpZ25hdHVyZS4g T25seSBhIGRpZ2VzdCBhbGdvcml0aG0gb2YgU0hBLTI1NiwgU0hBLTM4NCBvcg0KPiA+ID4gPiAr IFNIQS01MTIgaXMNCj4gPiA+ID4gYWNjZXB0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+ICAgIC8vDQo+ ID4gPiA+DQo+ID4gPiA+ICAgIC8vICAgIEFjY29yZGluZyB0byBQS0NTIzcgRGVmaW5pdGlvbiAo aHR0cHM6Ly93d3cucmZjLQ0KPiA+ID4gZWRpdG9yLm9yZy9yZmMvcmZjMjMxNSk6DQo+ID4gPiA+ DQo+ID4gPiA+ICAgIC8vICAgICAgICBTaWduZWREYXRhIDo6PSBTRVFVRU5DRSB7DQo+ID4gPiA+ DQo+ID4gPiA+IEBAIC0xOTc4LDcgKzIxNzMsMTkgQEAgVmVyaWZ5VGltZUJhc2VkUGF5bG9hZCAo DQo+ID4gPiA+ICAgICAgICAgICAgICAgfHwgKENvbXBhcmVNZW0gKFNpZ0RhdGEgKyAxMywgJm1T aGEyNTZPaWRWYWx1ZSwgc2l6ZW9mDQo+ID4gPiA+IChtU2hhMjU2T2lkVmFsdWUpKSAhPSAwKSkp DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAgJiYgKCAgKFNpZ0RhdGFTaXplID49ICgzMiArIHNp emVvZiAobVNoYTI1Nk9pZFZhbHVlKSkpDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAgICAgJiYg KCAgKCgqKFNpZ0RhdGEgKyAyMCkgJiBUV09fQllURV9FTkNPREUpICE9DQo+ID4gPiA+IFRXT19C WVRFX0VOQ09ERSkNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICAgICAgICB8fCAoQ29tcGFyZU1l bSAoU2lnRGF0YSArIDMyLCAmbVNoYTI1Nk9pZFZhbHVlLCBzaXplb2YNCj4gPiA+ID4gKG1TaGEy NTZPaWRWYWx1ZSkpICE9IDApKSkpDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgICAgfHwg KENvbXBhcmVNZW0gKFNpZ0RhdGEgKyAzMiwgJm1TaGEyNTZPaWRWYWx1ZSwgc2l6ZW9mDQo+ID4g PiA+IChtU2hhMjU2T2lkVmFsdWUpKSAhPSAwKSkpDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAg JiYgKCAgKFNpZ0RhdGFTaXplID49ICgxMyArIHNpemVvZiAobVNoYTM4NE9pZFZhbHVlKSkpDQo+ ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgJiYgKCAgKCgqKFNpZ0RhdGEgKyAxKSAmIFRXT19C WVRFX0VOQ09ERSkgIT0NCj4gPiA+ID4gKyBUV09fQllURV9FTkNPREUpDQo+ID4gPiA+DQo+ID4g PiA+ICsgICAgICAgICAgICAgfHwgKENvbXBhcmVNZW0gKFNpZ0RhdGEgKyAxMywgJm1TaGEzODRP aWRWYWx1ZSwgc2l6ZW9mDQo+ID4gPiA+IChtU2hhMzg0T2lkVmFsdWUpKSAhPSAwKSkpDQo+ID4g PiA+DQo+ID4gPiA+ICsgICAgICAgJiYgKCAgKFNpZ0RhdGFTaXplID49ICgzMiArIHNpemVvZiAo bVNoYTM4NE9pZFZhbHVlKSkpDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgJiYgKCAgKCgq KFNpZ0RhdGEgKyAyMCkgJiBUV09fQllURV9FTkNPREUpICE9DQo+ID4gPiA+ICsgVFdPX0JZVEVf RU5DT0RFKQ0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgIHx8IChDb21wYXJlTWVtIChT aWdEYXRhICsgMzIsICZtU2hhMzg0T2lkVmFsdWUsIHNpemVvZg0KPiA+ID4gPiAobVNoYTM4NE9p ZFZhbHVlKSkgIT0gMCkpKQ0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICYmICggIChTaWdEYXRh U2l6ZSA+PSAoMTMgKyBzaXplb2YgKG1TaGE1MTJPaWRWYWx1ZSkpKQ0KPiA+ID4gPg0KPiA+ID4g PiArICAgICAgICAgICYmICggICgoKihTaWdEYXRhICsgMSkgJiBUV09fQllURV9FTkNPREUpICE9 DQo+ID4gPiA+ICsgVFdPX0JZVEVfRU5DT0RFKQ0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAg ICAgIHx8IChDb21wYXJlTWVtIChTaWdEYXRhICsgMTMsICZtU2hhNTEyT2lkVmFsdWUsIHNpemVv Zg0KPiA+ID4gPiAobVNoYTUxMk9pZFZhbHVlKSkgIT0gMCkpKQ0KPiA+ID4gPg0KPiA+ID4gPiAr ICAgICAgICYmICggIChTaWdEYXRhU2l6ZSA+PSAoMzIgKyBzaXplb2YgKG1TaGE1MTJPaWRWYWx1 ZSkpKQ0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICYmICggICgoKihTaWdEYXRhICsgMjAp ICYgVFdPX0JZVEVfRU5DT0RFKSAhPQ0KPiA+ID4gPiArIFRXT19CWVRFX0VOQ09ERSkNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICB8fCAoQ29tcGFyZU1lbSAoU2lnRGF0YSArIDMyLCAm bVNoYTUxMk9pZFZhbHVlLCBzaXplb2YNCj4gPiA+ID4gKG1TaGE1MTJPaWRWYWx1ZSkpICE9IDAp KSkpDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgew0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgcmV0 dXJuIEVGSV9TRUNVUklUWV9WSU9MQVRJT047DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgfQ0KPiA+ ID4gPg0KPiA+ID4gPiBAQCAtMjE4MCw5ICsyMzg3LDM5IEBAIFZlcmlmeVRpbWVCYXNlZFBheWxv YWQgKA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZFVuYWxpZ25lZDMyICgo VUlOVDMyDQo+ID4gPiA+ICopJihDZXJ0RGF0YVB0ci0+Q2VydERhdGFMZW5ndGgpKSwNCj4gPiA+ ID4NCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIFRvcExldmVsQ2VydCwNCj4gPiA+ ID4NCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIFRvcExldmVsQ2VydFNpemUsDQo+ ID4gPiA+DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICBTaGEyNTZEaWdlc3QNCj4g PiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIFNoYURpZ2VzdA0KPiA+ID4g Pg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fCAoQ29tcGFyZU1lbSAoU2hhRGlnZXN0 LA0KPiA+ID4gPiArIENlcnRzSW5DZXJ0RGIsDQo+ID4gPiA+IENlcnRzU2l6ZWluRGIpICE9IDAp KSB7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgZ290byBFeGl0Ow0KPiA+ID4gPg0KPiA+ ID4gPiArICAgICAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICB9IGVsc2UgaWYgKENlcnRz U2l6ZWluRGIgPT0gU0hBMzg0X0RJR0VTVF9TSVpFKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAg ICAgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgIC8vIENoZWNrIGhhc2ggb2Ygc2lnbmVy IGNlcnQgQ29tbW9uTmFtZSArIFRvcC1sZXZlbCBpc3N1ZXINCj4gPiA+ID4gdGJzQ2VydGlmaWNh dGUgYWdhaW5zdCBkYXRhIGluIENlcnREYg0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAvLw0K PiA+ID4gPg0KPiA+ID4gPiArICAgICAgICBDZXJ0RGF0YVB0ciA9IChFRklfQ0VSVF9EQVRBICop KFNpZ25lckNlcnRzICsgMSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgIFN0YXR1cyAgICAg ID0gQ2FsY3VsYXRlUHJpdkF1dGhWYXJTaWduQ2hhaW5TSEEzODREaWdlc3QgKA0KPiA+ID4gPg0K PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgQ2VydERhdGFQdHItPkNlcnREYXRhQnVm ZmVyLA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgUmVhZFVuYWxp Z25lZDMyICgoVUlOVDMyDQo+ID4gPiA+ICsgKikmKENlcnREYXRhUHRyLT5DZXJ0RGF0YUxlbmd0 aCkpLA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgVG9wTGV2ZWxD ZXJ0LA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgVG9wTGV2ZWxD ZXJ0U2l6ZSwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIFNoYURp Z2VzdA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fCAoQ29tcGFyZU1l bSAoU2hhRGlnZXN0LA0KPiA+ID4gPiArIENlcnRzSW5DZXJ0RGIsDQo+ID4gPiA+IENlcnRzU2l6 ZWluRGIpICE9IDApKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgZ290byBFeGl0Ow0K PiA+ID4gPg0KPiA+ID4gPiArICAgICAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICB9IGVs c2UgaWYgKENlcnRzU2l6ZWluRGIgPT0gU0hBNTEyX0RJR0VTVF9TSVpFKSB7DQo+ID4gPiA+DQo+ ID4gPiA+ICsgICAgICAgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgIC8vIENoZWNrIGhh c2ggb2Ygc2lnbmVyIGNlcnQgQ29tbW9uTmFtZSArIFRvcC1sZXZlbCBpc3N1ZXINCj4gPiA+ID4g dGJzQ2VydGlmaWNhdGUgYWdhaW5zdCBkYXRhIGluIENlcnREYg0KPiA+ID4gPg0KPiA+ID4gPiAr ICAgICAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICBDZXJ0RGF0YVB0ciA9IChFRklf Q0VSVF9EQVRBICopKFNpZ25lckNlcnRzICsgMSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAg IFN0YXR1cyAgICAgID0gQ2FsY3VsYXRlUHJpdkF1dGhWYXJTaWduQ2hhaW5TSEE1MTJEaWdlc3Qg KA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgQ2VydERhdGFQdHIt PkNlcnREYXRhQnVmZmVyLA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgUmVhZFVuYWxpZ25lZDMyICgoVUlOVDMyDQo+ID4gPiA+ICsgKikmKENlcnREYXRhUHRyLT5D ZXJ0RGF0YUxlbmd0aCkpLA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgVG9wTGV2ZWxDZXJ0LA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgVG9wTGV2ZWxDZXJ0U2l6ZSwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgIFNoYURpZ2VzdA0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8 fCAoQ29tcGFyZU1lbSAoU2hhMjU2RGlnZXN0LA0KPiA+ID4gQ2VydHNJbkNlcnREYiwNCj4gPiA+ ID4gQ2VydHNTaXplaW5EYikgIT0gMCkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSB8fCAoQ29tcGFyZU1lbSAoU2hhRGlnZXN0LA0KPiA+ID4gPiAr IENlcnRzSW5DZXJ0RGIsDQo+ID4gPiA+IENlcnRzU2l6ZWluRGIpICE9IDApKSB7DQo+ID4gPiA+ DQo+ID4gPiA+ICAgICAgICAgICAgZ290byBFeGl0Ow0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAg ICB9DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICB9IGVsc2Ugew0KPiA+ID4gPg0KPiA+ID4gPiBA QCAtMjIyMSw3ICsyNDU4LDggQEAgVmVyaWZ5VGltZUJhc2VkUGF5bG9hZCAoDQo+ID4gPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgQ2VydERhdGFQdHItPkNlcnREYXRhQnVmZmVyLA0KPiA+ID4g Pg0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWRVbmFsaWduZWQzMiAoKFVJTlQz Mg0KPiA+ID4gPiAqKSYoQ2VydERhdGFQdHItPkNlcnREYXRhTGVuZ3RoKSksDQo+ID4gPiA+DQo+ ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0LA0KPiA+ID4gPg0KPiA+ ID4gPiAtICAgICAgICAgICAgICAgICAgICAgIFRvcExldmVsQ2VydFNpemUNCj4gPiA+ID4NCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICBUb3BMZXZlbENlcnRTaXplLA0KPiA+ID4gPg0K PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgIENlcnRzU2l6ZWluRGINCj4gPiA+ID4NCj4g PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAg aWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgICBWZXJp ZnlTdGF0dXMgPSBGQUxTRTsNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL1NlY3VyaXR5 UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhWYXJpYWJsZUxpYi5jDQo+ID4gPiA+IGIv U2VjdXJpdHlQa2cvTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFZhcmlhYmxlTGliLmMNCj4g PiA+ID4gaW5kZXggZGM2MWFlODQwYy4uNTUyYzBlOTliZSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEv U2VjdXJpdHlQa2cvTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFZhcmlhYmxlTGliLmMNCj4g PiA+ID4gKysrIGIvU2VjdXJpdHlQa2cvTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFZhcmlh YmxlTGliLmMNCj4gPiA+ID4gQEAgLTI2LDcgKzI2LDcgQEAgVUlOVDMyICBtTWF4Q2VydERiU2l6 ZTsNCj4gPiA+ID4gIFVJTlQzMiAgbVBsYXRmb3JtTW9kZTsNCj4gPiA+ID4NCj4gPiA+ID4gIFVJ TlQ4ICAgbVZlbmRvcktleVN0YXRlOw0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4g PiAtRUZJX0dVSUQgIG1TaWduYXR1cmVTdXBwb3J0W10gPSB7IEVGSV9DRVJUX1NIQTFfR1VJRCwN Cj4gPiA+ID4gRUZJX0NFUlRfU0hBMjU2X0dVSUQsIEVGSV9DRVJUX1JTQTIwNDhfR1VJRCwNCj4g PiA+IEVGSV9DRVJUX1g1MDlfR1VJRCB9Ow0KPiA+ID4gPg0KPiA+ID4gPiArRUZJX0dVSUQgIG1T aWduYXR1cmVTdXBwb3J0W10gPSB7IEVGSV9DRVJUX1NIQTFfR1VJRCwNCj4gPiA+ID4gRUZJX0NF UlRfU0hBMjU2X0dVSUQsIEVGSV9DRVJUX1NIQTM4NF9HVUlELA0KPiA+ID4gRUZJX0NFUlRfU0hB NTEyX0dVSUQsDQo+ID4gPiA+IEVGSV9DRVJUX1JTQTIwNDhfR1VJRCwgRUZJX0NFUlRfUlNBMzA3 Ml9HVUlELA0KPiA+ID4gRUZJX0NFUlRfUlNBNDA5Nl9HVUlELA0KPiA+ID4gPiBFRklfQ0VSVF9Y NTA5X0dVSUQgfTsNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gIC8vDQo+ID4g PiA+DQo+ID4gPiA+ICAvLyBIYXNoIGNvbnRleHQgcG9pbnRlcg0KPiA+ID4gPg0KPiA+ID4gPiBA QCAtMTM1LDcgKzEzNSw3IEBAIEF1dGhWYXJpYWJsZUxpYkluaXRpYWxpemUgKA0KPiA+ID4gPiAg ICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgICAvLyBJbml0aWFsaXplIGhhc2ggY29udGV4dC4NCj4g PiA+ID4NCj4gPiA+ID4gICAgLy8NCj4gPiA+ID4NCj4gPiA+ID4gLSAgQ3R4U2l6ZSAgPSBTaGEy NTZHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgQ3R4U2l6ZSAgPSBTaGE1 MTJHZXRDb250ZXh0U2l6ZSAoKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgbUhhc2hDdHggPSBBbGxv Y2F0ZVJ1bnRpbWVQb29sIChDdHhTaXplKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgaWYgKG1IYXNo Q3R4ID09IE5VTEwpIHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICByZXR1cm4gRUZJX09VVF9PRl9S RVNPVVJDRVM7DQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gYS9TZWN1 cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0 aW9uTGliLg0KPiA+ID4gPiBjDQo+ID4gPiA+DQo+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJ bWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi4NCj4gPiA+ID4gYw0K PiA+ID4gPiBpbmRleCA2NmUyZjVlYWEzLi5mNjQyYWFkNjRkIDEwMDY0NA0KPiA+ID4gPiAtLS0N Cj4gPiA+ID4NCj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGli L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLg0KPiA+ID4gPiBjDQo+ID4gPiA+ICsrKw0KPiBiL1Nl Y3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmlj YXRpb24NCj4gPiA+ID4gKysrIExpYi5jDQo+ID4gPiA+IEBAIC0xNjA2LDYgKzE2MDYsMzUgQEAg RG9uZToNCj4gPiA+ID4gICAgcmV0dXJuIFZlcmlmeVN0YXR1czsNCj4gPiA+ID4NCj4gPiA+ID4g IH0NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gKy8qKg0KPiA+ID4gPg0KPiA+ ID4gPiArICBHZXQgSGFzaCBBbGcgYnkgUGNkU2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnDQo+ID4g PiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgQHJldHZhbCAgVUlOVDMyICAgICAg IEhhc2ggQWxnDQo+ID4gPiA+DQo+ID4gPiA+ICsgICoqLw0KPiA+ID4gPg0KPiA+ID4gPiArVUlO VDMyDQo+ID4gPiA+DQo+ID4gPiA+ICtHZXREZWZhdWx0SGFzaEFsZyAoDQo+ID4gPiA+DQo+ID4g PiA+ICsgIFZPSUQNCj4gPiA+ID4NCj4gPiA+ID4gKyAgKQ0KPiA+ID4gPg0KPiA+ID4gPiArew0K PiA+ID4gPg0KPiA+ID4gPiArICBVSU5UMzIgIEhhc2hBbGc7DQo+ID4gPiA+DQo+ID4gPiA+ICsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgc3dpdGNoIChQY2RHZXQ4IChQY2RTZWN1cmVCb290RGVmYXVs dEhhc2hBbGcpKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGNhc2UgMToNCj4gPiA+ID4NCj4gPiA+ ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICIlYSB1c2UgU0hBMzg0IiwgX19mdW5jX18pKTsN Cj4gPiA+ID4NCj4gPiA+ID4gKyAgICBIYXNoQWxnID0gSEFTSEFMR19TSEEzODQ7DQo+ID4gPiA+ DQo+ID4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGNhc2UgMjoNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICIlYSB1c2UgU0hBNTEyIiwgX19m dW5jX18pKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBIYXNoQWxnID0gSEFTSEFMR19TSEE1MTI7 DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGRlZmF1 bHQ6DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiJWEgdXNlIFNI QTI1NiIsIF9fZnVuY19fKSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgSGFzaEFsZyA9IEhBU0hB TEdfU0hBMjU2Ow0KPiA+ID4gPg0KPiA+ID4gPiArICAgIGJyZWFrOw0KPiA+ID4gPg0KPiA+ID4g PiArICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsgIHJldHVybiBIYXNoQWxnOw0KPiA+ID4gPg0KPiA+ ID4gPiArfQ0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICAvKioNCj4gPiA+ ID4NCj4gPiA+ID4gICAgUHJvdmlkZSB2ZXJpZmljYXRpb24gc2VydmljZSBmb3Igc2lnbmVkIGlt YWdlcywgd2hpY2ggaW5jbHVkZSBib3RoDQo+ID4gPiA+IHNpZ25hdHVyZSB2YWxpZGF0aW9uDQo+ ID4gPiA+DQo+ID4gPiA+ICAgIGFuZCBwbGF0Zm9ybSBwb2xpY3kgY29udHJvbC4gRm9yIHNpZ25h dHVyZSB0eXBlcywgYm90aCBVRUZJDQo+ID4gPiA+IFdJTl9DRVJUSUZJQ0FURV9VRUZJX0dVSUQg YW5kDQo+ID4gPiA+DQo+ID4gPiA+IEBAIC0xNjIwLDcgKzE2NDksNyBAQCBEb25lOg0KPiA+ID4g PiAgICAgICAgaW4gdGhlIHNlY3VyaXR5IGRhdGFiYXNlICJkYiIsIGFuZCBubyB2YWxpZCBzaWdu YXR1cmUgbm9yIGFueQ0KPiA+ID4gPiBoYXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtYXkNCj4gPiA+ ID4NCj4gPiA+ID4gICAgICAgIGJlIHJlZmxlY3RlZCBpbiB0aGUgc2VjdXJpdHkgZGF0YWJhc2Ug ImRieCIuDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgT3RoZXJ3aXNlLCB0aGUgaW1hZ2UgaXMgbm90 IHNpZ25lZCwNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgIFRoZSBTSEEyNTYgaGFzaCB2YWx1ZSBv ZiB0aGUgaW1hZ2UgbXVzdCBtYXRjaCBhIHJlY29yZCBpbiB0aGUNCj4gPiA+IHNlY3VyaXR5DQo+ ID4gPiA+IGRhdGFiYXNlICJkYiIsIGFuZA0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgVGhlIGhh c2ggdmFsdWUgb2YgdGhlIGltYWdlIG11c3QgbWF0Y2ggYSByZWNvcmQgaW4gdGhlIHNlY3VyaXR5 DQo+ID4gPiA+ICsgZGF0YWJhc2UNCj4gPiA+ID4gImRiIiwgYW5kDQo+ID4gPiA+DQo+ID4gPiA+ ICAgICAgICBub3QgYmUgcmVmbGVjdGVkIGluIHRoZSBzZWN1cml0eSBkYXRhIGJhc2UgImRieCIu DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICAgIENhdXRpb246IFRoaXMgZnVu Y3Rpb24gbWF5IHJlY2VpdmUgdW50cnVzdGVkIGlucHV0Lg0KPiA+ID4gPg0KPiA+ID4gPiBAQCAt MTgzMiwxMCArMTg2MSwxMCBAQCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgKA0KPiA+ID4g PiAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgICBpZiAoKFNlY0RhdGFEaXIgPT0gTlVMTCkgfHwg KFNlY0RhdGFEaXItPlNpemUgPT0gMCkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAvLw0KPiA+ ID4gPg0KPiA+ID4gPiAtICAgIC8vIFRoaXMgaW1hZ2UgaXMgbm90IHNpZ25lZC4gVGhlIFNIQTI1 NiBoYXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtdXN0DQo+ID4gPiBtYXRjaA0KPiA+ID4gPiBhIHJl Y29yZCBpbiB0aGUgc2VjdXJpdHkgZGF0YWJhc2UgImRiIiwNCj4gPiA+ID4NCj4gPiA+ID4gKyAg ICAvLyBUaGlzIGltYWdlIGlzIG5vdCBzaWduZWQuIFRoZSBoYXNoIHZhbHVlIG9mIHRoZSBpbWFn ZSBtdXN0DQo+ID4gPiA+ICsgbWF0Y2ggYSByZWNvcmQNCj4gPiA+ID4gaW4gdGhlIHNlY3VyaXR5 IGRhdGFiYXNlICJkYiIsDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgLy8gYW5kIG5vdCBiZSByZWZs ZWN0ZWQgaW4gdGhlIHNlY3VyaXR5IGRhdGEgYmFzZSAiZGJ4Ii4NCj4gPiA+ID4NCj4gPiA+ID4g ICAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAtICAgIGlmICghSGFzaFBlSW1hZ2UgKEhBU0hBTEdf U0hBMjU2KSkgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIGlmICghSGFzaFBlSW1hZ2UgKEdldERl ZmF1bHRIYXNoQWxnICgpKSkgew0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgREVCVUcgKChERUJV R19JTkZPLCAiRHhlSW1hZ2VWZXJpZmljYXRpb25MaWI6IEZhaWxlZCB0byBoYXNoDQo+ID4gPiA+ IHRoaXMgaW1hZ2UgdXNpbmcgJXMuXG4iLCBtSGFzaFR5cGVTdHIpKTsNCj4gPiA+ID4NCj4gPiA+ ID4gICAgICAgIGdvdG8gRmFpbGVkOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIH0NCj4gPiA+ID4N Cj4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPg0KPiBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhl SW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuDQo+ID4gPiA+IGlu Zg0KPiA+ID4gPg0KPiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25M aWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuDQo+ID4gPiA+IGluZg0KPiA+ID4gPiBpbmRleCAx ZTFhNjM5ODU3Li5mMWVmOTIzNmMyIDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gYS9T ZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZp Y2F0aW9uTGliLg0KPiA+ID4gPiBpbmYNCj4gPiA+ID4gKysrDQo+IGIvU2VjdXJpdHlQa2cvTGli cmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbg0KPiA+ID4g PiArKysgTGliLmluZg0KPiA+ID4gPiBAQCAtOTMsMyArOTMsNCBAQA0KPiA+ID4gPg0KPiBnRWZp U2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RPcHRpb25Sb21JbWFnZVZlcmlmaWNhdGlvblBv bGljeQ0KPiA+ID4gPiAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4gPiA+ID4NCj4gPiA+ID4NCj4g PiA+ID4NCj4gPiA+DQo+IGdFZmlTZWN1cml0eVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlbW92YWJs ZU1lZGlhSW1hZ2VWZXJpZmljYXRpb25Qb2xpYw0KPiA+ID4geQ0KPiA+ID4gPiAjIyBTT01FVElN RVNfQ09OU1VNRVMNCj4gPiA+ID4NCj4gPiA+ID4NCj4gZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFj ZUd1aWQuUGNkRml4ZWRNZWRpYUltYWdlVmVyaWZpY2F0aW9uUG9saWN5DQo+ID4gPiAjIw0KPiA+ ID4gPiBTT01FVElNRVNfQ09OU1VNRVMNCj4gPiA+ID4NCj4gPiA+ID4gKyAgZ0VmaVNlY3VyaXR5 UGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnDQo+ID4gPiAjIw0K PiA+ID4gPiBDT05TVU1FUw0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQ a2cvU2VjdXJpdHlQa2cuZGVjIGIvU2VjdXJpdHlQa2cvU2VjdXJpdHlQa2cuZGVjDQo+ID4gPiA+ IGluZGV4IDAzODIwOTBmNGUuLjRhZGMyYTcyYWIgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL1NlY3Vy aXR5UGtnL1NlY3VyaXR5UGtnLmRlYw0KPiA+ID4gPiArKysgYi9TZWN1cml0eVBrZy9TZWN1cml0 eVBrZy5kZWMNCj4gPiA+ID4gQEAgLTUyMSw2ICs1MjEsMTMgQEANCj4gPiA+ID4gICAgIyBAUHJv bXB0IFNraXAgSGRkIFBhc3N3b3JkIHByb21wdC4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+DQo+IGdFZmlTZWN1cml0eVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNraXBIZGRQYXNzd29y ZFByb21wdHxGQUxTRXxCT09MRQ0KPiA+ID4gQU58DQo+ID4gPiA+IDB4MDAwMTAwMjENCj4gPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gKyAgIyMgSW5kaWNhdGVzIGRlZmF1bHQgaGFz aCBhbGdvcml0aG0gaW4gU2VjdXJlIEJvb3QNCj4gPiA+ID4NCj4gPiA+ID4gKyAgIyAgIDAgLSBV c2UgU0hBMjU2DQo+ID4gPiA+DQo+ID4gPiA+ICsgICMgICAxIC0gVXNlIFNIQTM4NA0KPiA+ID4g Pg0KPiA+ID4gPiArICAjICAgMiAtIFVzZSBTSEE1MTINCj4gPiA+ID4NCj4gPiA+ID4gKyAgIyBA UHJvbXB0IFNlY3VyZSBCb290IGRlZmF1bHQgaGFzaCBhbGdvcml0aG0NCj4gPiA+ID4NCj4gPiA+ ID4gKw0KPiA+ID4gPg0KPiA+ID4NCj4gZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNk U2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnfDB8VUlOVDh8MHgNCj4gPiA+IDAwDQo+ID4gPiA+IDAN Cj4gPiA+ID4gMTAwNDANCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiAgW1Bj ZHNEeW5hbWljLCBQY2RzRHluYW1pY0V4XQ0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPiAgICAjIyBUaGlzIFBDRCBpbmRpY2F0ZXMgSGFzaCBtYXNrIGZvciBUUE0gMi4wLiBCaXQg ZGVmaW5pdGlvbg0KPiA+ID4gPiBzdHJpY3RseSBmb2xsb3dzIFRDRyBBbGdvcml0aG0gUmVnaXN0 cnkuPEJSPjxCUj4NCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPg0KPiA+ID4N Cj4gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4 ZS9TZWN1cmVCb290Q29uDQo+ID4gPiBmDQo+ID4gPiA+IGlnDQo+ID4gPiA+IER4ZS5pbmYNCj4g PiA+ID4NCj4gPiA+DQo+IGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3Vy ZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4gZg0KPiA+ID4gPiBpZw0KPiA+ID4g PiBEeGUuaW5mDQo+ID4gPiA+IGluZGV4IDE2NzFkNWJlN2MuLjRiMDAxMmQwMzMgMTAwNjQ0DQo+ ID4gPiA+IC0tLQ0KPiA+ID4gPg0KPiA+ID4NCj4gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhl bnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uDQo+ID4gPiBmDQo+ID4g PiA+IGlnDQo+ID4gPiA+IER4ZS5pbmYNCj4gPiA+ID4gKysrDQo+ID4gPiA+DQo+ID4gPg0KPiBi L1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1Nl Y3VyZUJvb3RDb24NCj4gPiA+IGYNCj4gPiA+ID4gaWcNCj4gPiA+ID4gRHhlLmluZg0KPiA+ID4g PiBAQCAtNzAsNiArNzAsMTQgQEANCj4gPiA+ID4gICAgIyMgU09NRVRJTUVTX1BST0RVQ0VTICAg ICAgIyMgR1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZvciB0aGUgdHlwZQ0KPiBvZg0KPiA+ ID4gdGhlDQo+ID4gPiA+IHNpZ25hdHVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gICAgZ0VmaUNlcnRS c2EyMDQ4R3VpZA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiArICAjIyBTT01F VElNRVNfQ09OU1VNRVMgICAgICAjIyBHVUlEICAgICAgICAgICAgIyBVbmlxdWUgSUQgZm9yIHRo ZQ0KPiB0eXBlIG9mDQo+ID4gPiB0aGUNCj4gPiA+ID4gc2lnbmF0dXJlLg0KPiA+ID4gPg0KPiA+ ID4gPiArICAjIyBTT01FVElNRVNfUFJPRFVDRVMgICAgICAjIyBHVUlEICAgICAgICAgICAgIyBV bmlxdWUgSUQgZm9yIHRoZSB0eXBlDQo+IG9mDQo+ID4gPiB0aGUNCj4gPiA+ID4gc2lnbmF0dXJl Lg0KPiA+ID4gPg0KPiA+ID4gPiArICBnRWZpQ2VydFJzYTMwNzJHdWlkDQo+ID4gPiA+DQo+ID4g PiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICAgICAgIyMg R1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZvciB0aGUNCj4gdHlwZSBvZg0KPiA+ID4gdGhl DQo+ID4gPiA+IHNpZ25hdHVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gKyAgIyMgU09NRVRJTUVTX1BS T0RVQ0VTICAgICAgIyMgR1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZvciB0aGUgdHlwZQ0K PiBvZg0KPiA+ID4gdGhlDQo+ID4gPiA+IHNpZ25hdHVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gKyAg Z0VmaUNlcnRSc2E0MDk2R3VpZA0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1 ZSBJRCBmb3IgdGhlIHR5cGUNCj4gb2YNCj4gPiA+IHRoZQ0KPiA+ID4gPiBzaWduYXR1cmUuDQo+ ID4gPiA+DQo+ID4gPiA+ICAgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAg ICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUNCj4gb2YNCj4gPiA+IHRoZQ0KPiA+ID4g PiBzaWduYXR1cmUuDQo+ID4gPiA+DQo+ID4gPiA+ICAgIGdFZmlDZXJ0WDUwOUd1aWQNCj4gPiA+ ID4NCj4gPiA+ID4gQEAgLTgyLDYgKzkwLDE0IEBADQo+ID4gPiA+ICAgICMjIFNPTUVUSU1FU19Q Uk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUN Cj4gb2YNCj4gPiA+IHRoZQ0KPiA+ID4gPiBzaWduYXR1cmUuDQo+ID4gPiA+DQo+ID4gPiA+ICAg IGdFZmlDZXJ0U2hhMjU2R3VpZA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAr ICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICAgICAjIyBHVUlEICAgICAgICAgICAgIyBVbmlxdWUg SUQgZm9yIHRoZQ0KPiB0eXBlIG9mDQo+ID4gPiB0aGUNCj4gPiA+ID4gc2lnbmF0dXJlLg0KPiA+ ID4gPg0KPiA+ID4gPiArICAjIyBTT01FVElNRVNfUFJPRFVDRVMgICAgICAjIyBHVUlEICAgICAg ICAgICAgIyBVbmlxdWUgSUQgZm9yIHRoZSB0eXBlDQo+IG9mDQo+ID4gPiB0aGUNCj4gPiA+ID4g c2lnbmF0dXJlLg0KPiA+ID4gPg0KPiA+ID4gPiArICBnRWZpQ2VydFNoYTM4NEd1aWQNCj4gPiA+ ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICAjIyBTT01FVElNRVNfQ09OU1VNRVMg ICAgICAjIyBHVUlEICAgICAgICAgICAgIyBVbmlxdWUgSUQgZm9yIHRoZQ0KPiB0eXBlIG9mDQo+ ID4gPiB0aGUNCj4gPiA+ID4gc2lnbmF0dXJlLg0KPiA+ID4gPg0KPiA+ID4gPiArICAjIyBTT01F VElNRVNfUFJPRFVDRVMgICAgICAjIyBHVUlEICAgICAgICAgICAgIyBVbmlxdWUgSUQgZm9yIHRo ZSB0eXBlDQo+IG9mDQo+ID4gPiB0aGUNCj4gPiA+ID4gc2lnbmF0dXJlLg0KPiA+ID4gPg0KPiA+ ID4gPiArICBnRWZpQ2VydFNoYTUxMkd1aWQNCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0K PiA+ID4gPiAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICAgICAjIyBWYXJpYWJsZTpMImRiIg0K PiA+ID4gPg0KPiA+ID4gPiAgICAjIyBTT01FVElNRVNfUFJPRFVDRVMgICAgICAjIyBWYXJpYWJs ZTpMImRiIg0KPiA+ID4gPg0KPiA+ID4gPiAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICAgICAj IyBWYXJpYWJsZTpMImRieCINCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTEwNyw2ICsxMjMsOSBAQA0K PiA+ID4gPiAgICBnRWZpQ2VydFg1MDlTaGEzODRHdWlkICAgICAgICAgICAgICAgICAgICAgICAg IyMgU09NRVRJTUVTX1BST0RVQ0VTICAjIw0KPiBHVUlEDQo+ID4gPiAjDQo+ID4gPiA+IFVuaXF1 ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIGNlcnRpZmljYXRlLg0KPiA+ID4gPg0KPiA+ID4gPiAg ICBnRWZpQ2VydFg1MDlTaGE1MTJHdWlkICAgICAgICAgICAgICAgICAgICAgICAgIyMgU09NRVRJ TUVTX1BST0RVQ0VTICAjIw0KPiBHVUlEDQo+ID4gPiAjDQo+ID4gPiA+IFVuaXF1ZSBJRCBmb3Ig dGhlIHR5cGUgb2YgdGhlIGNlcnRpZmljYXRlLg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0K PiA+ID4gPiArW1BjZF0NCj4gPiA+ID4NCj4gPiA+ID4gKyAgZ0VmaVNlY3VyaXR5UGtnVG9rZW5T cGFjZUd1aWQuUGNkU2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnDQo+ID4gPiAjIw0KPiA+ID4gPiBD T05TVU1FUw0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ICBbUHJvdG9jb2xz XQ0KPiA+ID4gPg0KPiA+ID4gPiAgICBnRWZpSGlpQ29uZmlnQWNjZXNzUHJvdG9jb2xHdWlkICAg ICAgICAgICAgICAgIyMgUFJPRFVDRVMNCj4gPiA+ID4NCj4gPiA+ID4gICAgZ0VmaURldmljZVBh dGhQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICMjIFBST0RVQ0VTDQo+ID4gPiA+DQo+ ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gPiA+DQo+IGEvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4g Zg0KPiA+ID4gPiBpZ0kNCj4gPiA+ID4gbXBsLmMNCj4gPiA+ID4NCj4gPiA+DQo+IGIvU2VjdXJp dHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9v dENvbg0KPiA+ID4gZg0KPiA+ID4gPiBpZ0kNCj4gPiA+ID4gbXBsLmMNCj4gPiA+ID4gaW5kZXgg NDI5OWE2YjVlNS4uMGJhMDI5YTM5NCAxMDA2NDQNCj4gPiA+ID4gLS0tDQo+ID4gPiA+DQo+ID4g Pg0KPiBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmln RHhlL1NlY3VyZUJvb3RDb24NCj4gPiA+IGYNCj4gPiA+ID4gaWdJDQo+ID4gPiA+IG1wbC5jDQo+ ID4gPiA+ICsrKw0KPiA+ID4gPg0KPiA+ID4NCj4gYi9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhl bnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uDQo+ID4gPiBmDQo+ID4g PiA+IGlnSQ0KPiA+ID4gPiBtcGwuYw0KPiA+ID4gPiBAQCAtNTYwLDcgKzU2MCw3IEBAIE9OX0VY SVQ6DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICAqKi8NCj4gPiA+ID4NCj4gPiA+ID4gIEVG SV9TVEFUVVMNCj4gPiA+ID4NCj4gPiA+ID4gLUVucm9sbFJzYTIwNDhUb0tlayAoDQo+ID4gPiA+ DQo+ID4gPiA+ICtFbnJvbGxSc2FUb0tlayAoDQo+ID4gPiA+DQo+ID4gPiA+ICAgIElOIFNFQ1VS RUJPT1RfQ09ORklHX1BSSVZBVEVfREFUQSAgKlByaXZhdGUNCj4gPiA+ID4NCj4gPiA+ID4gICAg KQ0KPiA+ID4gPg0KPiA+ID4gPiAgew0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtNjAzLDggKzYwMywx MyBAQCBFbnJvbGxSc2EyMDQ4VG9LZWsgKA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgICBB U1NFUlQgKEtleUJsb2IgIT0gTlVMTCk7DQo+ID4gPiA+DQo+ID4gPiA+ICAgIEtleUluZm8gPSAo Q1BMX0tFWV9JTkZPICopS2V5QmxvYjsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgaWYgKEtleUluZm8t PktleUxlbmd0aEluQml0cyAvIDggIT0gV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkUpIHsNCj4g PiA+ID4NCj4gPiA+ID4gLSAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiVW5zdXBwb3J0ZWQga2V5 IGxlbmd0aCwgT25seSBSU0EyMDQ4IGlzDQo+ID4gPiA+IHN1cHBvcnRlZC5cbiIpKTsNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgc3dpdGNoIChLZXlJbmZvLT5LZXlMZW5ndGhJbkJpdHMgLyA4KSB7DQo+ ID4gPiA+DQo+ID4gPiA+ICsgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkU6DQo+ID4g PiA+DQo+ID4gPiA+ICsgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0EzMDcyX1NJWkU6DQo+ID4gPiA+ DQo+ID4gPiA+ICsgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0E0MDk2X1NJWkU6DQo+ID4gPiA+DQo+ ID4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGRlZmF1bHQgOg0KPiA+ID4g Pg0KPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICJVbnN1cHBvcnRlZCBrZXkgbGVu Z3RoLCBPbmx5IFJTQTIwNDgsDQo+ID4gPiA+ICsgUlNBMzA3Mg0KPiA+ID4gPiBhbmQgUlNBNDA5 NiBhcmUgc3VwcG9ydGVkLlxuIikpOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIFN0YXR1cyA9IEVG SV9VTlNVUFBPUlRFRDsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICBnb3RvIE9OX0VYSVQ7DQo+ID4g PiA+DQo+ID4gPiA+ICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTYzMiw3ICs2MzcsNyBAQCBF bnJvbGxSc2EyMDQ4VG9LZWsgKA0KPiA+ID4gPiAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgICBL ZWtTaWdMaXN0U2l6ZSA9IHNpemVvZiAoRUZJX1NJR05BVFVSRV9MSVNUKQ0KPiA+ID4gPg0KPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICsgc2l6ZW9mIChFRklfU0lHTkFUVVJFX0RBVEEpIC0g MQ0KPiA+ID4gPg0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICsgV0lOX0NFUlRfVUVGSV9S U0EyMDQ4X1NJWkU7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgKyBLZXlM ZW5JbkJ5dGVzOw0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgICBLZWtTaWdM aXN0ID0gKEVGSV9TSUdOQVRVUkVfTElTVCAqKUFsbG9jYXRlWmVyb1Bvb2wNCj4gPiA+ID4gKEtl a1NpZ0xpc3RTaXplKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgaWYgKEtla1NpZ0xpc3QgPT0gTlVM TCkgew0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtNjQyLDE3ICs2NDcsMzIgQEAgRW5yb2xsUnNhMjA0 OFRvS2VrICgNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gICAgS2VrU2lnTGlzdC0+U2lnbmF0 dXJlTGlzdFNpemUgPSBzaXplb2YgKEVGSV9TSUdOQVRVUkVfTElTVCkNCj4gPiA+ID4NCj4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNpemVvZiAoRUZJX1NJR05B VFVSRV9EQVRBKSAtIDENCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArIFdJTl9DRVJUX1VFRklfUlNBMjA0OF9TSVpFOw0KPiA+ID4gPg0KPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKFVJTlQzMikgS2V5TGVuSW5C eXRlczsNCj4gPiA+ID4NCj4gPiA+ID4gICAgS2VrU2lnTGlzdC0+U2lnbmF0dXJlSGVhZGVyU2l6 ZSA9IDA7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIEtla1NpZ0xpc3QtPlNpZ25hdHVyZVNpemUgICAg ICAgPSBzaXplb2YgKEVGSV9TSUdOQVRVUkVfREFUQSkgLSAxICsNCj4gPiA+ID4gV0lOX0NFUlRf VUVGSV9SU0EyMDQ4X1NJWkU7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIENvcHlHdWlkICgmS2VrU2ln TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0OEd1aWQpOw0KPiA+ID4gPg0KPiA+ ID4gPiArICBLZWtTaWdMaXN0LT5TaWduYXR1cmVTaXplICAgICAgID0gc2l6ZW9mIChFRklfU0lH TkFUVVJFX0RBVEEpIC0gMSArDQo+ID4gPiAoVUlOVDMyKQ0KPiA+ID4gPiBLZXlMZW5JbkJ5dGVz Ow0KPiA+ID4gPg0KPiA+ID4gPiArICBzd2l0Y2ggKEtleUxlbkluQnl0ZXMpIHsNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTIwNDhfU0laRToNCj4gPiA+ID4NCj4g PiA+ID4gKyAgICBDb3B5R3VpZCAoJktla1NpZ0xpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2Vy dFJzYTIwNDhHdWlkKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4NCj4g PiA+ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTMwNzJfU0laRToNCj4gPiA+ID4NCj4gPiA+ ID4gKyAgICBDb3B5R3VpZCAoJktla1NpZ0xpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFJz YTMwNzJHdWlkKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4NCj4gPiA+ ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTQwOTZfU0laRToNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICBDb3B5R3VpZCAoJktla1NpZ0xpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFJzYTQw OTZHdWlkKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICBicmVhazsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgZGVmYXVsdCA6DQo+ID4gPiA+DQo+ID4g PiA+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlVuc3VwcG9ydGVkIGtleSBsZW5ndGguXG4i KSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgU3RhdHVzID0gRUZJX1VOU1VQUE9SVEVEOw0KPiA+ ID4gPg0KPiA+ID4gPiArICAgIGdvdG8gT05fRVhJVDsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgfQ0K PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgICBLRUtTaWdEYXRhID0gKEVGSV9T SUdOQVRVUkVfREFUQSAqKSgoVUlOVDggKilLZWtTaWdMaXN0ICsgc2l6ZW9mDQo+ID4gPiA+IChF RklfU0lHTkFUVVJFX0xJU1QpKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgQ29weUd1aWQgKCZLRUtT aWdEYXRhLT5TaWduYXR1cmVPd25lciwgUHJpdmF0ZS0+U2lnbmF0dXJlR1VJRCk7DQo+ID4gPiA+ DQo+ID4gPiA+ICAgIENvcHlNZW0gKA0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIEtFS1NpZ0RhdGEt PlNpZ25hdHVyZURhdGEsDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgS2V5QmxvYiArIHNpemVvZiAo Q1BMX0tFWV9JTkZPKSwNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICBXSU5fQ0VSVF9VRUZJX1JTQTIw NDhfU0laRQ0KPiA+ID4gPg0KPiA+ID4gPiArICAgIEtleUxlbkluQnl0ZXMNCj4gPiA+ID4NCj4g PiA+ID4gICAgICApOw0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgICAvLw0K PiA+ID4gPg0KPiA+ID4gPiBAQCAtODkwLDcgKzkxMCw3IEBAIEVucm9sbEtleUV4Y2hhbmdlS2V5 ICgNCj4gPiA+ID4gICAgaWYgKElzRGVyRW5jb2RlQ2VydGlmaWNhdGUgKEZpbGVQb3N0Rml4KSkg ew0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIHJldHVybiBFbnJvbGxYNTA5VG9LZWsgKFByaXZhdGUp Ow0KPiA+ID4gPg0KPiA+ID4gPiAgICB9IGVsc2UgaWYgKENvbXBhcmVNZW0gKEZpbGVQb3N0Rml4 LCBMIi5wYmsiLCA0KSA9PSAwKSB7DQo+ID4gPiA+DQo+ID4gPiA+IC0gICAgcmV0dXJuIEVucm9s bFJzYTIwNDhUb0tlayAoUHJpdmF0ZSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgcmV0dXJuIEVu cm9sbFJzYVRvS2VrIChQcml2YXRlKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgfSBlbHNlIHsNCj4g PiA+ID4NCj4gPiA+ID4gICAgICAvLw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIC8vIEZpbGUgdHlw ZSBpcyB3cm9uZywgc2ltcGx5IGNsb3NlIGl0DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC0xODQ3LDcg KzE4NjcsNyBAQCBIYXNoUGVJbWFnZSAoDQo+ID4gPiA+ICAgIFNlY3Rpb25IZWFkZXIgPSBOVUxM Ow0KPiA+ID4gPg0KPiA+ID4gPiAgICBTdGF0dXMgICAgICAgID0gRkFMU0U7DQo+ID4gPiA+DQo+ ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IC0gIGlmIChIYXNoQWxnICE9IEhBU0hBTEdfU0hBMjU2 KSB7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIGlmICgoSGFzaEFsZyA+PSBIQVNIQUxHX01BWCkpIHsN Cj4gPiA+ID4NCj4gPiA+ID4gICAgICByZXR1cm4gRkFMU0U7DQo+ID4gPiA+DQo+ID4gPiA+ICAg IH0NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTE4NTYsOCArMTg3Niwy NSBAQCBIYXNoUGVJbWFnZSAoDQo+ID4gPiA+ICAgIC8vDQo+ID4gPiA+DQo+ID4gPiA+ICAgIFpl cm9NZW0gKG1JbWFnZURpZ2VzdCwgTUFYX0RJR0VTVF9TSVpFKTsNCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4gLSAgbUltYWdlRGlnZXN0U2l6ZSA9IFNIQTI1Nl9ESUdFU1RfU0la RTsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgbUNlcnRUeXBlICAgICAgICA9IGdFZmlDZXJ0U2hhMjU2 R3VpZDsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgIHN3aXRjaCAoSGFzaEFsZykgew0KPiA+ID4gPg0K PiA+ID4gPiArICAgIGNhc2UgSEFTSEFMR19TSEEyNTY6DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAg ICBtSW1hZ2VEaWdlc3RTaXplID0gU0hBMjU2X0RJR0VTVF9TSVpFOw0KPiA+ID4gPg0KPiA+ID4g PiArICAgICAgbUNlcnRUeXBlICAgICAgICA9IGdFZmlDZXJ0U2hhMjU2R3VpZDsNCj4gPiA+ID4N Cj4gPiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4g PiA+ICsgICAgY2FzZSBIQVNIQUxHX1NIQTM4NDoNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgIG1J bWFnZURpZ2VzdFNpemUgPSBTSEEzODRfRElHRVNUX1NJWkU7DQo+ID4gPiA+DQo+ID4gPiA+ICsg ICAgICBtQ2VydFR5cGUgICAgICAgID0gZ0VmaUNlcnRTaGEzODRHdWlkOw0KPiA+ID4gPg0KPiA+ ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4g KyAgICBjYXNlIEhBU0hBTEdfU0hBNTEyOg0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgbUltYWdl RGlnZXN0U2l6ZSA9IFNIQTUxMl9ESUdFU1RfU0laRTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAg IG1DZXJ0VHlwZSAgICAgICAgPSBnRWZpQ2VydFNoYTUxMkd1aWQ7DQo+ID4gPiA+DQo+ID4gPiA+ ICsgICAgICBicmVhazsNCj4gPiA+ID4NCj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiArICAg IGRlZmF1bHQ6DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgICByZXR1cm4gRkFMU0U7DQo+ID4gPiA+ DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gICAgQ3R4 U2l6ZSA9IG1IYXNoW0hhc2hBbGddLkdldENvbnRleHRTaXplICgpOw0KPiA+ID4gPg0KPiA+ID4g Pg0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtMjIyMiw2ICsyMjU5LDM1IEBAIE9OX0VYSVQ6DQo+ID4g PiA+ICAgIHJldHVybiBTdGF0dXM7DQo+ID4gPiA+DQo+ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+ICsvKioNCj4gPiA+ID4NCj4gPiA+ID4gKyAgR2V0IEhhc2gg QWxnIGJ5IFBjZFNlY3VyZUJvb3REZWZhdWx0SGFzaEFsZw0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ ID4gPiA+DQo+ID4gPiA+ICsgIEByZXR2YWwgIFVJTlQzMiAgICAgICBIYXNoIEFsZw0KPiA+ID4g Pg0KPiA+ID4gPiArICAqKi8NCj4gPiA+ID4NCj4gPiA+ID4gK1VJTlQzMg0KPiA+ID4gPg0KPiA+ ID4gPiArR2V0RGVmYXVsdEhhc2hBbGcgKA0KPiA+ID4gPg0KPiA+ID4gPiArICBWT0lEDQo+ID4g PiA+DQo+ID4gPiA+ICsgICkNCj4gPiA+ID4NCj4gPiA+ID4gK3sNCj4gPiA+ID4NCj4gPiA+ID4g KyAgVUlOVDMyICBIYXNoQWxnOw0KPiA+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+DQo+ID4gPiA+ ICsgIHN3aXRjaCAoUGNkR2V0OCAoUGNkU2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnKSkgew0KPiA+ ID4gPg0KPiA+ID4gPiArICBjYXNlIDE6DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgREVCVUcgKChE RUJVR19JTkZPLCAiJWEgdXNlIFNIQTM4NCIsIF9fZnVuY19fKSk7DQo+ID4gPiA+DQo+ID4gPiA+ ICsgICAgSGFzaEFsZyA9IEhBU0hBTEdfU0hBMzg0Ow0KPiA+ID4gPg0KPiA+ID4gPiArICAgIGJy ZWFrOw0KPiA+ID4gPg0KPiA+ID4gPiArICBjYXNlIDI6DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAg REVCVUcgKChERUJVR19JTkZPLCAiJWEgdXNlIFNIQTUxMiIsIF9fZnVuY19fKSk7DQo+ID4gPiA+ DQo+ID4gPiA+ICsgICAgSGFzaEFsZyA9IEhBU0hBTEdfU0hBNTEyOw0KPiA+ID4gPg0KPiA+ID4g PiArICAgIGJyZWFrOw0KPiA+ID4gPg0KPiA+ID4gPiArICBkZWZhdWx0Og0KPiA+ID4gPg0KPiA+ ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVhIHVzZSBTSEEyNTYiLCBfX2Z1bmNfXykp Ow0KPiA+ID4gPg0KPiA+ID4gPiArICAgIEhhc2hBbGcgPSBIQVNIQUxHX1NIQTI1NjsNCj4gPiA+ ID4NCj4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPg0K PiA+ID4gPiArICByZXR1cm4gSGFzaEFsZzsNCj4gPiA+ID4NCj4gPiA+ID4gK30NCj4gPiA+ID4N Cj4gPiA+ID4gKw0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+DQo+ID4gPiA+ICAgIEVu cm9sbCBhIG5ldyBzaWduYXR1cmUgb2YgZXhlY3V0YWJsZSBpbnRvIFNpZ25hdHVyZSBEYXRhYmFz ZS4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTIyODksNyArMjM1NSw3 IEBAIEVucm9sbEltYWdlU2lnbmF0dXJlVG9TaWdEQiAoDQo+ID4gPiA+ICAgIH0NCj4gPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gICAgaWYgKG1TZWNEYXRhRGlyLT5TaXplT2ZDZXJ0 ID09IDApIHsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICBpZiAoIUhhc2hQZUltYWdlIChIQVNIQUxH X1NIQTI1NikpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBpZiAoIUhhc2hQZUltYWdlIChHZXRE ZWZhdWx0SGFzaEFsZyAoKSkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgIFN0YXR1cyA9ICBF RklfU0VDVVJJVFlfVklPTEFUSU9OOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgZ290byBPTl9F WElUOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTI1ODks NiArMjY1NSwxMCBAQCBVcGRhdGVEZWxldGVQYWdlICgNCj4gPiA+ID4gICAgd2hpbGUgKChJdGVt RGF0YVNpemUgPiAwKSAmJiAoSXRlbURhdGFTaXplID49DQo+ID4gPiA+IENlcnRMaXN0LT5TaWdu YXR1cmVMaXN0U2l6ZSkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICBpZiAoQ29tcGFyZUd1aWQg KCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0OEd1aWQpKQ0KPiA+ID4g PiB7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICBIZWxwID0gU1RSSU5HX1RPS0VOIChTVFJfQ0VS VF9UWVBFX1JTQTIwNDhfU0hBMjU2X0dVSUQpOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgIH0gZWxz ZSBpZiAoQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gKyAm Z0VmaUNlcnRSc2EzMDcyR3VpZCkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgIEhlbHAgPSBT VFJJTkdfVE9LRU4gKFNUUl9DRVJUX1RZUEVfUlNBMzA3Ml9TSEEzODRfR1VJRCk7DQo+ID4gPiA+ DQo+ID4gPiA+ICsgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1 cmVUeXBlLA0KPiA+ID4gPiArICZnRWZpQ2VydFJzYTQwOTZHdWlkKSkgew0KPiA+ID4gPg0KPiA+ ID4gPiArICAgICAgSGVscCA9IFNUUklOR19UT0tFTiAoU1RSX0NFUlRfVFlQRV9SU0E0MDk2X1NI QTUxMl9HVUlEKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlk ICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ICZnRWZpQ2VydFg1MDlHdWlkKSkg ew0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgSGVscCA9IFNUUklOR19UT0tFTiAoU1RSX0NFUlRf VFlQRV9QQ0tTN19HVUlEKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICB9IGVsc2UgaWYgKENvbXBh cmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ICZnRWZpQ2VydFNoYTFH dWlkKSkgew0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtMjc1MCw2ICsyODIwLDggQEAgRGVsZXRlS2V5 RXhjaGFuZ2VLZXkgKA0KPiA+ID4gPiAgICBHdWlkSW5kZXggICAgICA9IDA7DQo+ID4gPiA+DQo+ ID4gPiA+ICAgIHdoaWxlICgoS2VrRGF0YVNpemUgPiAwKSAmJiAoS2VrRGF0YVNpemUgPj0NCj4g PiA+ID4gQ2VydExpc3QtPlNpZ25hdHVyZUxpc3RTaXplKSkgew0KPiA+ID4gPg0KPiA+ID4gPiAg ICAgIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRS c2EyMDQ4R3VpZCkNCj4gPiA+ID4gfHwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgQ29tcGFy ZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpDQo+ ID4gPiA+ICsgfHwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0 TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpDQo+ID4gPiA+ICsgfHwN Cj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0 dXJlVHlwZSwgJmdFZmlDZXJ0WDUwOUd1aWQpKQ0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIHsNCj4g PiA+ID4NCj4gPiA+ID4gICAgICAgIENvcHlNZW0gKERhdGEgKyBPZmZzZXQsIENlcnRMaXN0LCAo c2l6ZW9mIChFRklfU0lHTkFUVVJFX0xJU1QpDQo+ID4gPiA+ICsgQ2VydExpc3QtDQo+ID4gPiA+ ID5TaWduYXR1cmVIZWFkZXJTaXplKSk7DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC0yOTUyLDYgKzMw MjQsOCBAQCBEZWxldGVTaWduYXR1cmUgKA0KPiA+ID4gPiAgICBHdWlkSW5kZXggICAgPSAwOw0K PiA+ID4gPg0KPiA+ID4gPiAgICB3aGlsZSAoKEl0ZW1EYXRhU2l6ZSA+IDApICYmIChJdGVtRGF0 YVNpemUgPj0NCj4gPiA+ID4gQ2VydExpc3QtPlNpZ25hdHVyZUxpc3RTaXplKSkgew0KPiA+ID4g Pg0KPiA+ID4gPiAgICAgIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBl LCAmZ0VmaUNlcnRSc2EyMDQ4R3VpZCkNCj4gPiA+ID4gfHwNCj4gPiA+ID4NCj4gPiA+ID4gKyAg ICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNh MzA3Mkd1aWQpDQo+ID4gPiA+ICsgfHwNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgICAgQ29tcGFy ZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpDQo+ ID4gPiA+ICsgfHwNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0 TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0WDUwOUd1aWQpIHx8DQo+ID4gPiA+DQo+ID4g PiA+ICAgICAgICAgIENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZp Q2VydFNoYTFHdWlkKSB8fA0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgICBDb21wYXJlR3VpZCAo JkNlcnRMaXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRTaGEyNTZHdWlkKQ0KPiA+ID4gPiB8 fA0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtMzc1OCwxMiArMzgzMiwyMCBAQCBMb2FkU2lnbmF0dXJl TGlzdCAoDQo+ID4gPiA+ICAgIHdoaWxlICgoUmVtYWluaW5nU2l6ZSA+IDApICYmIChSZW1haW5p bmdTaXplID49DQo+ID4gPiA+IExpc3RXYWxrZXItPlNpZ25hdHVyZUxpc3RTaXplKSkgew0KPiA+ ID4gPg0KPiA+ID4gPiAgICAgIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVy ZVR5cGUsDQo+ID4gPiA+ICZnRWZpQ2VydFJzYTIwNDhHdWlkKSkgew0KPiA+ID4gPg0KPiA+ID4g PiAgICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfUlNBMjA0OF9T SEEyNTYpOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZM aXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiArICZnRWZpQ2VydFJzYTMwNzJHdWlk KSkNCj4gPiA+ID4gew0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgTGlzdFR5cGUgPSBTVFJJTkdf VE9LRU4gKFNUUl9MSVNUX1RZUEVfUlNBMzA3Ml9TSEEzODQpOw0KPiA+ID4gPg0KPiA+ID4gPiAr ICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLA0K PiA+ID4gPiArICZnRWZpQ2VydFJzYTQwOTZHdWlkKSkNCj4gPiA+ID4gew0KPiA+ID4gPg0KPiA+ ID4gPiArICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfUlNBNDA5 Nl9TSEE1MTIpOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQg KCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiAmZ0VmaUNlcnRYNTA5R3VpZCkp IHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJf TElTVF9UWVBFX1g1MDkpOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIH0gZWxzZSBpZiAoQ29tcGFy ZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiAmZ0VmaUNlcnRTaGEx R3VpZCkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VO IChTVFJfTElTVF9UWVBFX1NIQTEpOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIH0gZWxzZSBpZiAo Q29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiAmZ0VmaUNl cnRTaGEyNTZHdWlkKSkgew0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgTGlzdFR5cGUgPSBTVFJJ TkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfU0hBMjU2KTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICB9 IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ ID4gKyAmZ0VmaUNlcnRTaGEzODRHdWlkKSkNCj4gPiA+ID4gew0KPiA+ID4gPg0KPiA+ID4gPiAr ICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfU0hBMzg0KTsNCj4g PiA+ID4NCj4gPiA+ID4gKyAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+ U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gKyAmZ0VmaUNlcnRTaGE1MTJHdWlkKSkNCj4gPiA+ID4g ew0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9M SVNUX1RZUEVfU0hBNTEyKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICB9IGVsc2UgaWYgKENvbXBh cmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gJmdFZmlDZXJ0WDUw OVNoYTI1Nkd1aWQpKSB7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICBMaXN0VHlwZSA9IFNUUklO R19UT0tFTiAoU1RSX0xJU1RfVFlQRV9YNTA5X1NIQTI1Nik7DQo+ID4gPiA+DQo+ID4gPiA+ICAg ICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsDQo+ ID4gPiA+ICZnRWZpQ2VydFg1MDlTaGEzODRHdWlkKSkgew0KPiA+ID4gPg0KPiA+ID4gPiBAQCAt NDAwMSw2ICs0MDgzLDE0IEBAIEZvcm1hdEhlbHBJbmZvICgNCj4gPiA+ID4gICAgICBMaXN0VHlw ZUlkID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1JTQTIwNDhfU0hBMjU2KTsNCj4gPiA+ ID4NCj4gPiA+ID4gICAgICBEYXRhU2l6ZSAgID0gTGlzdEVudHJ5LT5TaWduYXR1cmVTaXplIC0g c2l6ZW9mIChFRklfR1VJRCk7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgSXNDZXJ0ICAgICA9IFRS VUU7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0RW50 cnktPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ICsgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpKSB7DQo+ ID4gPiA+DQo+ID4gPiA+ICsgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1Rf VFlQRV9SU0EzMDcyX1NIQTM4NCk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgRGF0YVNpemUgICA9 IExpc3RFbnRyeS0+U2lnbmF0dXJlU2l6ZSAtIHNpemVvZiAoRUZJX0dVSUQpOw0KPiA+ID4gPg0K PiA+ID4gPiArICAgIElzQ2VydCAgICAgPSBUUlVFOw0KPiA+ID4gPg0KPiA+ID4gPiArICB9IGVs c2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiAr ICZnRWZpQ2VydFJzYTQwOTZHdWlkKSkgew0KPiA+ID4gPg0KPiA+ID4gPiArICAgIExpc3RUeXBl SWQgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfUlNBNDA5Nl9TSEE1MTIpOw0KPiA+ID4g Pg0KPiA+ID4gPiArICAgIERhdGFTaXplICAgPSBMaXN0RW50cnktPlNpZ25hdHVyZVNpemUgLSBz aXplb2YgKEVGSV9HVUlEKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBJc0NlcnQgICAgID0gVFJV RTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RFbnRy eS0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gJmdFZmlDZXJ0WDUwOUd1aWQpKSB7DQo+ID4gPiA+ DQo+ID4gPiA+ICAgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQRV9Y NTA5KTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICBEYXRhU2l6ZSAgID0gTGlzdEVudHJ5LT5TaWdu YXR1cmVTaXplIC0gc2l6ZW9mIChFRklfR1VJRCk7DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC00MDEx LDYgKzQxMDEsMTIgQEAgRm9ybWF0SGVscEluZm8gKA0KPiA+ID4gPiAgICB9IGVsc2UgaWYgKENv bXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiAmZ0VmaUNlcnRT aGEyNTZHdWlkKSkgew0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIExpc3RUeXBlSWQgPSBTVFJJTkdf VE9LRU4gKFNUUl9MSVNUX1RZUEVfU0hBMjU2KTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgICBEYXRh U2l6ZSAgID0gMzI7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQg KCZMaXN0RW50cnktPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ICsgJmdFZmlDZXJ0U2hhMzg0R3Vp ZCkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBMaXN0VHlwZUlkID0gU1RSSU5HX1RPS0VOIChT VFJfTElTVF9UWVBFX1NIQTM4NCk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgICAgRGF0YVNpemUgICA9 IDQ4Ow0KPiA+ID4gPg0KPiA+ID4gPiArICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVu dHJ5LT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiArICZnRWZpQ2VydFNoYTUxMkd1aWQpKSB7DQo+ ID4gPiA+DQo+ID4gPiA+ICsgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1Rf VFlQRV9TSEE1MTIpOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgIERhdGFTaXplICAgPSA2NDsNCj4g PiA+ID4NCj4gPiA+ID4gICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RFbnRyeS0+U2ln bmF0dXJlVHlwZSwNCj4gPiA+ID4gJmdFZmlDZXJ0WDUwOVNoYTI1Nkd1aWQpKSB7DQo+ID4gPiA+ DQo+ID4gPiA+ICAgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQRV9Y NTA5X1NIQTI1Nik7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgRGF0YVNpemUgICA9IDMyOw0KPiA+ ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+DQo+ID4gPg0KPiBhL1NlY3VyaXR5UGtn L1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb24N Cj4gPiA+IGYNCj4gPiA+ID4gaWdJDQo+ID4gPiA+IG1wbC5oDQo+ID4gPiA+DQo+ID4gPg0KPiBi L1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1Nl Y3VyZUJvb3RDb24NCj4gPiA+IGYNCj4gPiA+ID4gaWdJDQo+ID4gPiA+IG1wbC5oDQo+ID4gPiA+ IGluZGV4IDM3YzY2ZjFiOTUuLmFlNTBkOTI5YTcgMTAwNjQ0DQo+ID4gPiA+IC0tLQ0KPiA+ID4g Pg0KPiA+ID4NCj4gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9v dENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uDQo+ID4gPiBmDQo+ID4gPiA+IGlnSQ0KPiA+ID4gPiBt cGwuaA0KPiA+ID4gPiArKysNCj4gPiA+ID4NCj4gPiA+DQo+IGIvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4g Zg0KPiA+ID4gPiBpZ0kNCj4gPiA+ID4gbXBsLmgNCj4gPiA+ID4gQEAgLTgyLDYgKzgyLDggQEAg ZXh0ZXJuICBFRklfSUZSX0dVSURfTEFCRUwgICptRW5kTGFiZWw7DQo+ICNkZWZpbmUNCj4gPiA+ ID4gTUFYX0RJR0VTVF9TSVpFICBTSEE1MTJfRElHRVNUX1NJWkUNCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4gICNkZWZpbmUgV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkUgIDI1 Ng0KPiA+ID4gPg0KPiA+ID4gPiArI2RlZmluZSBXSU5fQ0VSVF9VRUZJX1JTQTMwNzJfU0laRSAg Mzg0DQo+ID4gPiA+DQo+ID4gPiA+ICsjZGVmaW5lIFdJTl9DRVJUX1VFRklfUlNBNDA5Nl9TSVpF ICA1MTINCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gIC8vDQo+ID4gPiA+DQo+ ID4gPiA+ICAvLyBTdXBwb3J0IGhhc2ggdHlwZXMNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdp dA0KPiA+ID4gPg0KPiA+ID4NCj4gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQv U2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uDQo+ID4gPiBmDQo+ID4gPiA+IGlnUw0K PiA+ID4gPiB0cmluZ3MudW5pDQo+ID4gPiA+DQo+ID4gPg0KPiBiL1NlY3VyaXR5UGtnL1Zhcmlh YmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb24NCj4gPiA+ IGYNCj4gPiA+ID4gaWdTDQo+ID4gPiA+IHRyaW5ncy51bmkNCj4gPiA+ID4gaW5kZXggMGQwMTcw MWRlNy4uMWI0OGFjYzgwMCAxMDA2NDQNCj4gPiA+ID4gLS0tDQo+ID4gPiA+DQo+ID4gPg0KPiBh L1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1Nl Y3VyZUJvb3RDb24NCj4gPiA+IGYNCj4gPiA+ID4gaWdTDQo+ID4gPiA+IHRyaW5ncy51bmkNCj4g PiA+ID4gKysrDQo+ID4gPiA+DQo+ID4gPg0KPiBiL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVu dGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb24NCj4gPiA+IGYNCj4gPiA+ ID4gaWdTDQo+ID4gPiA+IHRyaW5ncy51bmkNCj4gPiA+ID4gQEAgLTExMyw2ICsxMTMsOCBAQCBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPiAgI3N0 cmluZyBTVFJfRk9STV9FTlJPTExfS0VLX0ZST01fRklMRV9USVRMRV9IRUxQICAgICNsYW5ndWFn ZQ0KPiBlbi0NCj4gPiA+IFVTDQo+ID4gPiA+ICJSZWFkIHRoZSBwdWJsaWMga2V5IG9mIEtFSyBm cm9tIGZpbGUiDQo+ID4gPiA+DQo+ID4gPiA+ICAjc3RyaW5nIFNUUl9GSUxFX0VYUExPUkVSX1RJ VExFICAgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiRmlsZQ0KPiA+ID4gRXhwbG9y ZXIiDQo+ID4gPiA+DQo+ID4gPiA+ICAjc3RyaW5nIFNUUl9DRVJUX1RZUEVfUlNBMjA0OF9TSEEy NTZfR1VJRCAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiA+ID4gPiAiUlNBMjA0OF9TSEEyNTZf R1VJRCINCj4gPiA+ID4NCj4gPiA+ID4gKyNzdHJpbmcgU1RSX0NFUlRfVFlQRV9SU0EzMDcyX1NI QTM4NF9HVUlEICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ICJSU0EzMDcyX1NIQTM4 NF9HVUlEIg0KPiA+ID4gPg0KPiA+ID4gPiArI3N0cmluZyBTVFJfQ0VSVF9UWVBFX1JTQTQwOTZf U0hBNTEyX0dVSUQgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gPiA+ID4gIlJTQTQwOTZfU0hB NTEyX0dVSUQiDQo+ID4gPiA+DQo+ID4gPiA+ICAjc3RyaW5nIFNUUl9DRVJUX1RZUEVfUENLUzdf R1VJRCAgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiA+ID4gIlBLQ1M3X0dVSUQi DQo+ID4gPiA+DQo+ID4gPiA+ICAjc3RyaW5nIFNUUl9DRVJUX1RZUEVfU0hBMV9HVUlEICAgICAg ICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiA+ID4gIlNIQTFfR1VJRCINCj4gPiA+ID4N Cj4gPiA+ID4gICNzdHJpbmcgU1RSX0NFUlRfVFlQRV9TSEEyNTZfR1VJRCAgICAgICAgICAgICAg ICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ICJTSEEyNTZfR1VJRCINCj4gPiA+ID4NCj4gPiA+ ID4gQEAgLTEyMSw5ICsxMjMsMTMgQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gPiA+ID4gICNzdHJpbmcgU1RSX0NFUlRfVFlQRV9YNTA5X1NIQTUxMl9H VUlEICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ICJYNTA5X1NIQTUxMl9HVUlE Ig0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgI3N0cmluZyBTVFJfTElTVF9U WVBFX1JTQTIwNDhfU0hBMjU2ICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gPiA+ID4g IlJTQTIwNDhfU0hBMjU2Ig0KPiA+ID4gPg0KPiA+ID4gPiArI3N0cmluZyBTVFJfTElTVF9UWVBF X1JTQTMwNzJfU0hBMzg0ICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gPiA+ID4gIlJT QTMwNzJfU0hBMzg0Ig0KPiA+ID4gPg0KPiA+ID4gPiArI3N0cmluZyBTVFJfTElTVF9UWVBFX1JT QTQwOTZfU0hBNTEyICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gPiA+ID4gIlJTQTQw OTZfU0hBNTEyIg0KPiA+ID4gPg0KPiA+ID4gPiAgI3N0cmluZyBTVFJfTElTVF9UWVBFX1g1MDkg ICAgICAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlg1MDkiDQo+ID4gPiA+DQo+ ID4gPiA+ICAjc3RyaW5nIFNUUl9MSVNUX1RZUEVfU0hBMSAgICAgICAgICAgICAgICAgICAgICAg ICNsYW5ndWFnZSBlbi1VUyAiU0hBMSINCj4gPiA+ID4NCj4gPiA+ID4gICNzdHJpbmcgU1RSX0xJ U1RfVFlQRV9TSEEyNTYgICAgICAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJTSEEy NTYiDQo+ID4gPiA+DQo+ID4gPiA+ICsjc3RyaW5nIFNUUl9MSVNUX1RZUEVfU0hBMzg0ICAgICAg ICAgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiU0hBMzg0Ig0KPiA+ID4gPg0KPiA+ID4g PiArI3N0cmluZyBTVFJfTElTVF9UWVBFX1NIQTUxMiAgICAgICAgICAgICAgICAgICAgICAjbGFu Z3VhZ2UgZW4tVVMgIlNIQTUxMiINCj4gPiA+ID4NCj4gPiA+ID4gICNzdHJpbmcgU1RSX0xJU1Rf VFlQRV9YNTA5X1NIQTI1NiAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ ICJYNTA5X1NIQTI1NiINCj4gPiA+ID4NCj4gPiA+ID4gICNzdHJpbmcgU1RSX0xJU1RfVFlQRV9Y NTA5X1NIQTM4NCAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ICJYNTA5 X1NIQTM4NCINCj4gPiA+ID4NCj4gPiA+ID4gICNzdHJpbmcgU1RSX0xJU1RfVFlQRV9YNTA5X1NI QTUxMiAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ICJYNTA5X1NIQTUx MiINCj4gPiA+ID4NCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4yNi4yLndpbmRvd3MuMQ0KDQo= --_002_PH0PR11MB4870790C3EF6A748EF40AA34E12CAPH0PR11MB4870namp_ Content-Type: application/octet-stream; name="0001-SecurityPkg-SecureBoot-Support-RSA-512-and-RSA-384.patch" Content-Description: 0001-SecurityPkg-SecureBoot-Support-RSA-512-and-RSA-384.patch Content-Disposition: attachment; filename="0001-SecurityPkg-SecureBoot-Support-RSA-512-and-RSA-384.patch"; size=44616; creation-date="Thu, 06 Jul 2023 06:38:16 GMT"; modification-date="Thu, 06 Jul 2023 06:47:51 GMT" Content-Transfer-Encoding: base64 RnJvbSA4OTI5YjAzYTJiMGYwNDIwOGJiMzgxMGRkZGRmOTA0Y2RjOTVjM2M2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGVuZyBXZWkgPHcuc2hlbmdAaW50ZWwuY29tPgpEYXRlOiBG cmksIDI4IEFwciAyMDIzIDE2OjA4OjI1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2M10gU2VjdXJp dHlQa2cvU2VjdXJlQm9vdDogU3VwcG9ydCBSU0EgNTEyIGFuZCBSU0EgMzg0CgpSRUY6IGh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQxMwoKQ2M6IEppZXdl biBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPgpDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5n QGludGVsLmNvbT4KQ2M6IE1pbiBYdSA8bWluLm0ueHVAaW50ZWwuY29tPgpDYzogWmV5aSBDaGVu IDx6ZXlpLmNoZW5AaW50ZWwuY29tPgpDYzogRmlvbmEgV2FuZyA8ZmlvbmEud2FuZ0BpbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IFNoZW5nIFdlaSA8dy5zaGVuZ0BpbnRlbC5jb20+Ci0tLQogQ3J5 cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0VHMuYyAgIHwgICAzICstCiBNZGVQ a2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaCAgICAgfCAgMjYgKysrCiBNZGVQ a2cvTWRlUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogLi4uL0xp YnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlLmMgICAgIHwgMjIwICsrKysrKysrKysr KysrKy0tLQogLi4uL0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZUludGVybmFsLmggICAgIHwg ICA0ICstCiAuLi4vTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFZhcmlhYmxlTGliLmMgfCAg NDIgKystLQogLi4uL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLmMgICAgICAgICAgICAgICAgIHwg IDczICsrKy0tLQogLi4uL1NlY3VyZUJvb3RDb25maWdEeGUuaW5mICAgICAgICAgICAgICAgICAg IHwgIDE2ICsrCiAuLi4vU2VjdXJlQm9vdENvbmZpZ0ltcGwuYyAgICAgICAgICAgICAgICAgICAg fCAxMDggKysrKysrKy0tCiAuLi4vU2VjdXJlQm9vdENvbmZpZ0ltcGwuaCAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogLi4uL1NlY3VyZUJvb3RDb25maWdTdHJpbmdzLnVuaSAgICAgICAgICAg ICAgIHwgICA2ICsKIDExIGZpbGVzIGNoYW5nZWQsIDQxMCBpbnNlcnRpb25zKCspLCA5MiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsv Q3J5cHRUcy5jIGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0VHMuYwpp bmRleCAwMjdkYmI2ODQyLi45NDRiY2Y4ZDM4IDEwMDY0NAotLS0gYS9DcnlwdG9Qa2cvTGlicmFy eS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRUcy5jCisrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VD cnlwdExpYi9Qay9DcnlwdFRzLmMKQEAgLTU5MSw3ICs1OTEsOCBAQCBJbWFnZVRpbWVzdGFtcFZl cmlmeSAoCiAgIC8vIFJlZ2lzdGVyICYgSW5pdGlhbGl6ZSBuZWNlc3NhcnkgZGlnZXN0IGFsZ29y aXRobXMgZm9yIFBLQ1MjNyBIYW5kbGluZy4NCiAgIC8vDQogICBpZiAoKEVWUF9hZGRfZGlnZXN0 IChFVlBfbWQ1ICgpKSA9PSAwKSB8fCAoRVZQX2FkZF9kaWdlc3QgKEVWUF9zaGExICgpKSA9PSAw KSB8fA0KLSAgICAgIChFVlBfYWRkX2RpZ2VzdCAoRVZQX3NoYTI1NiAoKSkgPT0gMCkgfHwgKChF VlBfYWRkX2RpZ2VzdF9hbGlhcyAoU05fc2hhMVdpdGhSU0FFbmNyeXB0aW9uLCBTTl9zaGExV2l0 aFJTQSkpID09IDApKQ0KKyAgICAgIChFVlBfYWRkX2RpZ2VzdCAoRVZQX3NoYTI1NiAoKSkgPT0g MCkgfHwgKEVWUF9hZGRfZGlnZXN0IChFVlBfc2hhMzg0ICgpKSA9PSAwKSB8fA0KKyAgICAgIChF VlBfYWRkX2RpZ2VzdCAoRVZQX3NoYTUxMiAoKSkgPT0gMCkgfHwgKChFVlBfYWRkX2RpZ2VzdF9h bGlhcyAoU05fc2hhMVdpdGhSU0FFbmNyeXB0aW9uLCBTTl9zaGExV2l0aFJTQSkpID09IDApKQ0K ICAgew0KICAgICByZXR1cm4gRkFMU0U7DQogICB9DQpkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1 ZGUvR3VpZC9JbWFnZUF1dGhlbnRpY2F0aW9uLmggYi9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdl QXV0aGVudGljYXRpb24uaAppbmRleCBmZTgzNTk2NTcxLi5jOGVhMmMxNGZiIDEwMDY0NAotLS0g YS9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAorKysgYi9NZGVQa2cv SW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaApAQCAtMTQ0LDYgKzE0NCwzMCBAQCB0 eXBlZGVmIHN0cnVjdCB7CiAgICAgMHgzYzU3NjZlOCwgMHgyNjljLCAweDRlMzQsIHsweGFhLCAw eDE0LCAweGVkLCAweDc3LCAweDZlLCAweDg1LCAweGIzLCAweGI2fSBcDQogICB9DQogDQorLy8v DQorLy8vIFRoaXMgaWRlbnRpZmllcyBhIHNpZ25hdHVyZSBjb250YWluaW5nIGFuIFJTQS0zMDcy IGtleS4gVGhlIGtleSAob25seSB0aGUgbW9kdWx1cw0KKy8vLyBzaW5jZSB0aGUgcHVibGljIGtl eSBleHBvbmVudCBpcyBrbm93biB0byBiZSAweDEwMDAxKSBzaGFsbCBiZSBzdG9yZWQgaW4gYmln LWVuZGlhbg0KKy8vLyBvcmRlci4NCisvLy8gVGhlIFNpZ25hdHVyZUhlYWRlciBzaXplIHNoYWxs IGFsd2F5cyBiZSAwLiBUaGUgU2lnbmF0dXJlU2l6ZSBzaGFsbCBhbHdheXMgYmUgMTYgKHNpemUN CisvLy8gb2YgU2lnbmF0dXJlT3duZXIgY29tcG9uZW50KSArIDM4NCBieXRlcy4NCisvLy8NCisj ZGVmaW5lIEVGSV9DRVJUX1JTQTMwNzJfR1VJRCBcDQorICB7IFwNCisgICAgMHhlZGQzMjBjMiwg MHhiMDU3LCAweDRiOGUsIHsweGFkLCAweDQ2LCAweDJjLCAweDliLCAweDg1LCAweDg5LCAweGVl LCAweDkyIH0gXA0KKyAgfQ0KKw0KKy8vLw0KKy8vLyBUaGlzIGlkZW50aWZpZXMgYSBzaWduYXR1 cmUgY29udGFpbmluZyBhbiBSU0EtNDA5NiBrZXkuIFRoZSBrZXkgKG9ubHkgdGhlIG1vZHVsdXMN CisvLy8gc2luY2UgdGhlIHB1YmxpYyBrZXkgZXhwb25lbnQgaXMga25vd24gdG8gYmUgMHgxMDAw MSkgc2hhbGwgYmUgc3RvcmVkIGluIGJpZy1lbmRpYW4NCisvLy8gb3JkZXIuDQorLy8vIFRoZSBT aWduYXR1cmVIZWFkZXIgc2l6ZSBzaGFsbCBhbHdheXMgYmUgMC4gVGhlIFNpZ25hdHVyZVNpemUg c2hhbGwgYWx3YXlzIGJlIDE2IChzaXplDQorLy8vIG9mIFNpZ25hdHVyZU93bmVyIGNvbXBvbmVu dCkgKyA1MTIgYnl0ZXMuDQorLy8vDQorI2RlZmluZSBFRklfQ0VSVF9SU0E0MDk2X0dVSUQgXA0K KyAgeyBcDQorICAgIDB4YjIzZTg5YTYsIDB4OGM4YiwgMHg0NDEyLCB7MHg4NSwgMHg3MywgMHgx NSwgMHg0ZSwgMHg4ZCwgMHgwMCwgMHg5OCwgMHgyYyB9IFwNCisgIH0NCisNCiAvLy8NCiAvLy8g VGhpcyBpZGVudGlmaWVzIGEgc2lnbmF0dXJlIGNvbnRhaW5pbmcgYSBSU0EtMjA0OCBzaWduYXR1 cmUgb2YgYSBTSEEtMjU2IGhhc2guICBUaGUNCiAvLy8gU2lnbmF0dXJlSGVhZGVyIHNpemUgc2hh bGwgYWx3YXlzIGJlIDAuIFRoZSBTaWduYXR1cmVTaXplIHNoYWxsIGFsd2F5cyBiZSAxNiAoc2l6 ZSBvZg0KQEAgLTMzMCw2ICszNTQsOCBAQCB0eXBlZGVmIHN0cnVjdCB7CiBleHRlcm4gRUZJX0dV SUQgIGdFZmlJbWFnZVNlY3VyaXR5RGF0YWJhc2VHdWlkOw0KIGV4dGVybiBFRklfR1VJRCAgZ0Vm aUNlcnRTaGEyNTZHdWlkOw0KIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EyMDQ4R3VpZDsN CitleHRlcm4gRUZJX0dVSUQgIGdFZmlDZXJ0UnNhMzA3Mkd1aWQ7DQorZXh0ZXJuIEVGSV9HVUlE ICBnRWZpQ2VydFJzYTQwOTZHdWlkOw0KIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EyMDQ4 U2hhMjU2R3VpZDsNCiBleHRlcm4gRUZJX0dVSUQgIGdFZmlDZXJ0U2hhMUd1aWQ7DQogZXh0ZXJu IEVGSV9HVUlEICBnRWZpQ2VydFJzYTIwNDhTaGExR3VpZDsNCmRpZmYgLS1naXQgYS9NZGVQa2cv TWRlUGtnLmRlYyBiL01kZVBrZy9NZGVQa2cuZGVjCmluZGV4IGQ2YzQxNzliMmEuLmM4OGU4OGZh NmIgMTAwNjQ0Ci0tLSBhL01kZVBrZy9NZGVQa2cuZGVjCisrKyBiL01kZVBrZy9NZGVQa2cuZGVj CkBAIC01NzEsNiArNTcxLDggQEAKICAgZ0VmaUltYWdlU2VjdXJpdHlEYXRhYmFzZUd1aWQgID0g eyAweGQ3MTliMmNiLCAweDNkM2EsIDB4NDU5NiwgezB4YTMsIDB4YmMsIDB4ZGEsIDB4ZDAsICAw eGUsIDB4NjcsIDB4NjUsIDB4NmYgfX0NCiAgIGdFZmlDZXJ0U2hhMjU2R3VpZCAgICAgICAgICAg ICA9IHsgMHhjMWM0MTYyNiwgMHg1MDRjLCAweDQwOTIsIHsweGFjLCAweGE5LCAweDQxLCAweGY5 LCAweDM2LCAweDkzLCAweDQzLCAweDI4IH19DQogICBnRWZpQ2VydFJzYTIwNDhHdWlkICAgICAg ICAgICAgPSB7IDB4M2M1NzY2ZTgsIDB4MjY5YywgMHg0ZTM0LCB7MHhhYSwgMHgxNCwgMHhlZCwg MHg3NywgMHg2ZSwgMHg4NSwgMHhiMywgMHhiNiB9fQ0KKyAgZ0VmaUNlcnRSc2EzMDcyR3VpZCAg ICAgICAgICAgID0geyAweGVkZDMyMGMyLCAweGIwNTcsIDB4NGI4ZSwgezB4YWQsIDB4NDYsIDB4 MmMsIDB4OWIsIDB4ODUsIDB4ODksIDB4ZWUsIDB4OTIgfX0NCisgIGdFZmlDZXJ0UnNhNDA5Nkd1 aWQgICAgICAgICAgICA9IHsgMHhiMjNlODlhNiwgMHg4YzhiLCAweDQ0MTIsIHsweDg1LCAweDcz LCAweDE1LCAweDRlLCAweDhkLCAweDAwLCAweDk4LCAweDJjIH19DQogICBnRWZpQ2VydFJzYTIw NDhTaGEyNTZHdWlkICAgICAgPSB7IDB4ZTJiMzYxOTAsIDB4ODc5YiwgMHg0YTNkLCB7MHhhZCwg MHg4ZCwgMHhmMiwgMHhlNywgMHhiYiwgMHhhMywgMHgyNywgMHg4NCB9fQ0KICAgZ0VmaUNlcnRT aGExR3VpZCAgICAgICAgICAgICAgID0geyAweDgyNmNhNTEyLCAweGNmMTAsIDB4NGFjOSwgezB4 YjEsIDB4ODcsIDB4YmUsICAweDEsIDB4NDksIDB4NjYsIDB4MzEsIDB4YmQgfX0NCiAgIGdFZmlD ZXJ0UnNhMjA0OFNoYTFHdWlkICAgICAgICA9IHsgMHg2N2Y4NDQ0ZiwgMHg4NzQzLCAweDQ4ZjEs IHsweGEzLCAweDI4LCAweDFlLCAweGFhLCAweGI4LCAweDczLCAweDYwLCAweDgwIH19DQpkaWZm IC0tZ2l0IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2Uu YyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlLmMKaW5k ZXggZDgxYzU4MWQ3OC4uNGMyNjhhODVjZCAxMDA2NDQKLS0tIGEvU2VjdXJpdHlQa2cvTGlicmFy eS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2UuYworKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5 L0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZS5jCkBAIC0yOSwxMiArMjksMTI1IEBAIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50CiAjaW5jbHVkZSA8UHJvdG9j b2wvVmFyaWFibGVQb2xpY3kuaD4NCiAjaW5jbHVkZSA8TGlicmFyeS9WYXJpYWJsZVBvbGljeUxp Yi5oPg0KIA0KKyNkZWZpbmUgU0hBX0RJR0VTVF9TSVpFX01BWCBTSEE1MTJfRElHRVNUX1NJWkUN CisNCisvKioNCisgIFJldHJpZXZlcyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBjb250ZXh0 IGJ1ZmZlciByZXF1aXJlZCBmb3IgaGFzaCBvcGVyYXRpb25zLg0KKw0KKyAgSWYgdGhpcyBpbnRl cmZhY2UgaXMgbm90IHN1cHBvcnRlZCwgdGhlbiByZXR1cm4gemVyby4NCisNCisgIEByZXR1cm4g IFRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGNvbnRleHQgYnVmZmVyIHJlcXVpcmVkIGZvciBo YXNoIG9wZXJhdGlvbnMuDQorICBAcmV0dmFsICAwICAgVGhpcyBpbnRlcmZhY2UgaXMgbm90IHN1 cHBvcnRlZC4NCisNCisqKi8NCit0eXBlZGVmDQorVUlOVE4NCisoRUZJQVBJICpFRklfSEFTSF9H RVRfQ09OVEVYVF9TSVpFKSgNCisgIFZPSUQNCisgICk7DQorDQorLyoqDQorICBJbml0aWFsaXpl cyB1c2VyLXN1cHBsaWVkIG1lbW9yeSBwb2ludGVkIGJ5IFNoYTFDb250ZXh0IGFzIGhhc2ggY29u dGV4dCBmb3INCisgIHN1YnNlcXVlbnQgdXNlLg0KKw0KKyAgSWYgSGFzaENvbnRleHQgaXMgTlVM TCwgdGhlbiByZXR1cm4gRkFMU0UuDQorICBJZiB0aGlzIGludGVyZmFjZSBpcyBub3Qgc3VwcG9y dGVkLCB0aGVuIHJldHVybiBGQUxTRS4NCisNCisgIEBwYXJhbVtvdXRdICBIYXNoQ29udGV4dCAg UG9pbnRlciB0byBIYXNoY29udGV4dCBiZWluZyBpbml0aWFsaXplZC4NCisNCisgIEByZXR2YWwg VFJVRSAgIEhhc2ggY29udGV4dCBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQuDQorICBAcmV0dmFs IEZBTFNFICBIYXNoIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZmFpbGVkLg0KKyAgQHJldHZhbCBG QUxTRSAgVGhpcyBpbnRlcmZhY2UgaXMgbm90IHN1cHBvcnRlZC4NCisNCisqKi8NCit0eXBlZGVm DQorQk9PTEVBTg0KKyhFRklBUEkgKkVGSV9IQVNIX0lOSVQpKA0KKyAgT1VUICBWT0lEICAqSGFz aENvbnRleHQNCisgICk7DQorDQorLyoqDQorICBEaWdlc3RzIHRoZSBpbnB1dCBkYXRhIGFuZCB1 cGRhdGVzIEhhc2ggY29udGV4dC4NCisNCisgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgSGFzaCBk aWdlc3Qgb24gYSBkYXRhIGJ1ZmZlciBvZiB0aGUgc3BlY2lmaWVkIHNpemUuDQorICBJdCBjYW4g YmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIGNvbXB1dGUgdGhlIGRpZ2VzdCBvZiBsb25nIG9y IGRpc2NvbnRpbnVvdXMgZGF0YSBzdHJlYW1zLg0KKyAgSGFzaCBjb250ZXh0IHNob3VsZCBiZSBh bHJlYWR5IGNvcnJlY3RseSBpbml0aWFsaXplZCBieSBIYXNoSW5pdCgpLCBhbmQgc2hvdWxkIG5v dCBiZSBmaW5hbGl6ZWQNCisgIGJ5IEhhc2hGaW5hbCgpLiBCZWhhdmlvciB3aXRoIGludmFsaWQg Y29udGV4dCBpcyB1bmRlZmluZWQuDQorDQorICBJZiBIYXNoQ29udGV4dCBpcyBOVUxMLCB0aGVu IHJldHVybiBGQUxTRS4NCisgIElmIHRoaXMgaW50ZXJmYWNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRo ZW4gcmV0dXJuIEZBTFNFLg0KKw0KKyAgQHBhcmFtW2luLCBvdXRdICBIYXNoQ29udGV4dCAgUG9p bnRlciB0byB0aGUgSGFzaCBjb250ZXh0Lg0KKyAgQHBhcmFtW2luXSAgICAgICBEYXRhICAgICAg ICAgUG9pbnRlciB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gYmUgaGFzaGVk Lg0KKyAgQHBhcmFtW2luXSAgICAgICBEYXRhU2l6ZSAgICAgU2l6ZSBvZiBEYXRhIGJ1ZmZlciBp biBieXRlcy4NCisNCisgIEByZXR2YWwgVFJVRSAgIFNIQS0xIGRhdGEgZGlnZXN0IHN1Y2NlZWRl ZC4NCisgIEByZXR2YWwgRkFMU0UgIFNIQS0xIGRhdGEgZGlnZXN0IGZhaWxlZC4NCisgIEByZXR2 YWwgRkFMU0UgIFRoaXMgaW50ZXJmYWNlIGlzIG5vdCBzdXBwb3J0ZWQuDQorDQorKiovDQordHlw ZWRlZg0KK0JPT0xFQU4NCisoRUZJQVBJICpFRklfSEFTSF9VUERBVEUpKA0KKyAgSU4gT1VUICBW T0lEICAgICAgICAqSGFzaENvbnRleHQsDQorICBJTiAgICAgIENPTlNUIFZPSUQgICpEYXRhLA0K KyAgSU4gICAgICBVSU5UTiAgICAgICBEYXRhU2l6ZQ0KKyAgKTsNCisNCisvKioNCisgIENvbXBs ZXRlcyBjb21wdXRhdGlvbiBvZiB0aGUgSGFzaCBkaWdlc3QgdmFsdWUuDQorDQorICBUaGlzIGZ1 bmN0aW9uIGNvbXBsZXRlcyBoYXNoIGNvbXB1dGF0aW9uIGFuZCByZXRyaWV2ZXMgdGhlIGRpZ2Vz dCB2YWx1ZSBpbnRvDQorICB0aGUgc3BlY2lmaWVkIG1lbW9yeS4gQWZ0ZXIgdGhpcyBmdW5jdGlv biBoYXMgYmVlbiBjYWxsZWQsIHRoZSBIYXNoIGNvbnRleHQgY2Fubm90DQorICBiZSB1c2VkIGFn YWluLg0KKyAgSGFzaCBjb250ZXh0IHNob3VsZCBiZSBhbHJlYWR5IGNvcnJlY3RseSBpbml0aWFs aXplZCBieSBIYXNoSW5pdCgpLCBhbmQgc2hvdWxkIG5vdCBiZQ0KKyAgZmluYWxpemVkIGJ5IEhh c2hGaW5hbCgpLiBCZWhhdmlvciB3aXRoIGludmFsaWQgSGFzaCBjb250ZXh0IGlzIHVuZGVmaW5l ZC4NCisNCisgIElmIEhhc2hDb250ZXh0IGlzIE5VTEwsIHRoZW4gcmV0dXJuIEZBTFNFLg0KKyAg SWYgSGFzaFZhbHVlIGlzIE5VTEwsIHRoZW4gcmV0dXJuIEZBTFNFLg0KKyAgSWYgdGhpcyBpbnRl cmZhY2UgaXMgbm90IHN1cHBvcnRlZCwgdGhlbiByZXR1cm4gRkFMU0UuDQorDQorICBAcGFyYW1b aW4sIG91dF0gIEhhc2hDb250ZXh0ICBQb2ludGVyIHRvIHRoZSBIYXNoIGNvbnRleHQuDQorICBA cGFyYW1bb3V0XSAgICAgIEhhc2hWYWx1ZSAgICBQb2ludGVyIHRvIGEgYnVmZmVyIHRoYXQgcmVj ZWl2ZXMgdGhlIEhhc2ggZGlnZXN0DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YWx1ZS4NCisNCisgIEByZXR2YWwgVFJVRSAgIEhhc2ggZGlnZXN0IGNvbXB1dGF0aW9uIHN1Y2Nl ZWRlZC4NCisgIEByZXR2YWwgRkFMU0UgIEhhc2ggZGlnZXN0IGNvbXB1dGF0aW9uIGZhaWxlZC4N CisgIEByZXR2YWwgRkFMU0UgIFRoaXMgaW50ZXJmYWNlIGlzIG5vdCBzdXBwb3J0ZWQuDQorDQor KiovDQordHlwZWRlZg0KK0JPT0xFQU4NCisoRUZJQVBJICpFRklfSEFTSF9GSU5BTCkoDQorICBJ TiBPVVQgIFZPSUQgICAqSGFzaENvbnRleHQsDQorICBPVVQgICAgIFVJTlQ4ICAqSGFzaFZhbHVl DQorICApOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQzMiAgICAgICAgICAgICAgICAg ICAgICAgSGFzaFNpemU7DQorICBFRklfSEFTSF9HRVRfQ09OVEVYVF9TSVpFICAgIEdldENvbnRl eHRTaXplOw0KKyAgRUZJX0hBU0hfSU5JVCAgICAgICAgICAgICAgICBJbml0Ow0KKyAgRUZJX0hB U0hfVVBEQVRFICAgICAgICAgICAgICBVcGRhdGU7DQorICBFRklfSEFTSF9GSU5BTCAgICAgICAg ICAgICAgIEZpbmFsOw0KKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAqKkhhc2hTaGFD dHg7DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICpPaWRWYWx1ZTsNCisgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgICAgT2lkTGVuZ3RoOw0KK30gRUZJX0hBU0hfSU5GTzsNCisN CiAvLw0KIC8vIFB1YmxpYyBFeHBvbmVudCBvZiBSU0EgS2V5Lg0KIC8vDQogQ09OU1QgVUlOVDgg IG1Sc2FFW10gPSB7IDB4MDEsIDB4MDAsIDB4MDEgfTsNCiANCi1DT05TVCBVSU5UOCAgbVNoYTI1 Nk9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYsIDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4MDQs IDB4MDIsIDB4MDEgfTsNCitVSU5UOCAgbVNoYTI1Nk9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYs IDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4MDQsIDB4MDIsIDB4MDEgfTsNCitVSU5UOCAgbVNo YTM4NE9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYsIDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4 MDQsIDB4MDIsIDB4MDIgfTsNCitVSU5UOCAgbVNoYTUxMk9pZFZhbHVlW10gPSB7IDB4NjAsIDB4 ODYsIDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4MDQsIDB4MDIsIDB4MDMgfTsNCisNCitFRklf SEFTSF9JTkZPICBtSGFzaEluZm9bXSA9IHsNCisgIHtTSEEyNTZfRElHRVNUX1NJWkUsIFNoYTI1 NkdldENvbnRleHRTaXplLCBTaGEyNTZJbml0LCBTaGEyNTZVcGRhdGUsIFNoYTI1NkZpbmFsLCAm bUhhc2hTaGEyNTZDdHgsIG1TaGEyNTZPaWRWYWx1ZSwgOX0sDQorICB7U0hBMzg0X0RJR0VTVF9T SVpFLCBTaGEzODRHZXRDb250ZXh0U2l6ZSwgU2hhMzg0SW5pdCwgU2hhMzg0VXBkYXRlLCBTaGEz ODRGaW5hbCwgJm1IYXNoU2hhMzg0Q3R4LCBtU2hhMzg0T2lkVmFsdWUsIDl9LA0KKyAge1NIQTUx Ml9ESUdFU1RfU0laRSwgU2hhNTEyR2V0Q29udGV4dFNpemUsIFNoYTUxMkluaXQsIFNoYTUxMlVw ZGF0ZSwgU2hhNTEyRmluYWwsICZtSGFzaFNoYTUxMkN0eCwgbVNoYTUxMk9pZFZhbHVlLCA5fSwN Cit9Ow0KIA0KIC8vDQogLy8gUmVxdWlyZW1lbnQgZm9yIGRpZmZlcmVudCBzaWduYXR1cmUgdHlw ZSB3aGljaCBoYXZlIGJlZW4gZGVmaW5lZCBpbiBVRUZJIHNwZWMuDQpAQCAtNDQsNiArMTU3LDgg QEAgRUZJX1NJR05BVFVSRV9JVEVNICBtU3VwcG9ydFNpZ0l0ZW1bXSA9IHsKICAgLy8ge1NpZ1R5 cGUsICAgICAgICAgICAgICAgICAgICAgICBTaWdIZWFkZXJTaXplLCAgIFNpZ0RhdGFTaXplICB9 DQogICB7IEVGSV9DRVJUX1NIQTI1Nl9HVUlELCAgICAgICAgIDAsIDMyICAgICAgICAgICAgfSwN CiAgIHsgRUZJX0NFUlRfUlNBMjA0OF9HVUlELCAgICAgICAgMCwgMjU2ICAgICAgICAgICB9LA0K KyAgeyBFRklfQ0VSVF9SU0EzMDcyX0dVSUQsICAgICAgICAwLCAzODQgICAgICAgICAgIH0sDQor ICB7IEVGSV9DRVJUX1JTQTQwOTZfR1VJRCwgICAgICAgIDAsIDUxMiAgICAgICAgICAgfSwNCiAg IHsgRUZJX0NFUlRfUlNBMjA0OF9TSEEyNTZfR1VJRCwgMCwgMjU2ICAgICAgICAgICB9LA0KICAg eyBFRklfQ0VSVF9TSEExX0dVSUQsICAgICAgICAgICAwLCAyMCAgICAgICAgICAgIH0sDQogICB7 IEVGSV9DRVJUX1JTQTIwNDhfU0hBMV9HVUlELCAgIDAsIDI1NiAgICAgICAgICAgfSwNCkBAIC0x MDkwLDI2ICsxMjA1LDI4IEBAIEF1dGhTZXJ2aWNlSW50ZXJuYWxDb21wYXJlVGltZVN0YW1wICgK IH0NCiANCiAvKioNCi0gIENhbGN1bGF0ZSBTSEEyNTYgZGlnZXN0IG9mIFNpZ25lckNlcnQgQ29t bW9uTmFtZSArIFRvcGxldmVsQ2VydCB0YnNDZXJ0aWZpY2F0ZQ0KKyAgQ2FsY3VsYXRlIFNIQSBk aWdlc3Qgb2YgU2lnbmVyQ2VydCBDb21tb25OYW1lICsgVG9wbGV2ZWxDZXJ0IHRic0NlcnRpZmlj YXRlDQogICBTaWduZXJDZXJ0IGFuZCBUb3BsZXZlbENlcnQgYXJlIGluc2lkZSB0aGUgc2lnbmVy IGNlcnRpZmljYXRlIGNoYWluLg0KIA0KKyAgQHBhcmFtW2luXSAgSGFzaEFsZ0lkICAgICAgICAg ICBIYXNoIGFsZ29yaXRobSBpbmRleA0KICAgQHBhcmFtW2luXSAgU2lnbmVyQ2VydCAgICAgICAg ICBBIHBvaW50ZXIgdG8gU2lnbmVyQ2VydCBkYXRhLg0KICAgQHBhcmFtW2luXSAgU2lnbmVyQ2Vy dFNpemUgICAgICBMZW5ndGggb2YgU2lnbmVyQ2VydCBkYXRhLg0KICAgQHBhcmFtW2luXSAgVG9w TGV2ZWxDZXJ0ICAgICAgICBBIHBvaW50ZXIgdG8gVG9wTGV2ZWxDZXJ0IGRhdGEuDQogICBAcGFy YW1baW5dICBUb3BMZXZlbENlcnRTaXplICAgIExlbmd0aCBvZiBUb3BMZXZlbENlcnQgZGF0YS4N Ci0gIEBwYXJhbVtvdXRdIFNoYTI1NkRpZ2VzdCAgICAgICBTaGEyNTYgZGlnZXN0IGNhbGN1bGF0 ZWQuDQorICBAcGFyYW1bb3V0XSBTaGFEaWdlc3QgICAgICAgICAgIFNoYSBkaWdlc3QgY2FsY3Vs YXRlZC4NCiANCiAgIEByZXR1cm4gRUZJX0FCT1JURUQgICAgICAgICAgRGlnZXN0IHByb2Nlc3Mg ZmFpbGVkLg0KLSAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICAgICBTSEEyNTYgRGlnZXN0IGlz IHN1Y2Nlc3NmdWxseSBjYWxjdWxhdGVkLg0KKyAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICAg ICBTSEEgRGlnZXN0IGlzIHN1Y2Nlc3NmdWxseSBjYWxjdWxhdGVkLg0KIA0KICoqLw0KIEVGSV9T VEFUVVMNCi1DYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoDQorQ2Fs Y3VsYXRlUHJpdkF1dGhWYXJTaWduQ2hhaW5TSEFEaWdlc3QgKA0KKyAgSU4gICAgIFVJTlQ4ICBI YXNoQWxnSWQsDQogICBJTiAgICAgVUlOVDggICpTaWduZXJDZXJ0LA0KICAgSU4gICAgIFVJTlRO ICBTaWduZXJDZXJ0U2l6ZSwNCiAgIElOICAgICBVSU5UOCAgKlRvcExldmVsQ2VydCwNCiAgIElO ICAgICBVSU5UTiAgVG9wTGV2ZWxDZXJ0U2l6ZSwNCi0gIE9VVCAgICBVSU5UOCAgKlNoYTI1NkRp Z2VzdA0KKyAgT1VUICAgIFVJTlQ4ICAqU2hhRGlnZXN0DQogICApDQogew0KICAgVUlOVDggICAg ICAgKlRic0NlcnQ7DQpAQCAtMTExOSw2ICsxMjM2LDExIEBAIENhbGN1bGF0ZVByaXZBdXRoVmFy U2lnbkNoYWluU0hBMjU2RGlnZXN0ICgKICAgQk9PTEVBTiAgICAgQ3J5cHRvU3RhdHVzOw0KICAg RUZJX1NUQVRVUyAgU3RhdHVzOw0KIA0KKyAgaWYgKEhhc2hBbGdJZCA+PSAoc2l6ZW9mIChtSGFz aEluZm8pIC8gc2l6ZW9mIChFRklfSEFTSF9JTkZPKSkpIHsNCisgICAgREVCVUcgKChERUJVR19J TkZPLCAiJWEgVW5zdXBwb3J0ZWQgSGFzaCBBbGdvcml0aG0gJWRcbiIsIF9fZnVuY19fLCBIYXNo QWxnSWQpKTsNCisgICAgcmV0dXJuIEVGSV9BQk9SVEVEOw0KKyAgfQ0KKw0KICAgQ2VydENvbW1v bk5hbWVTaXplID0gc2l6ZW9mIChDZXJ0Q29tbW9uTmFtZSk7DQogDQogICAvLw0KQEAgLTExNDEs OCArMTI2Myw4IEBAIENhbGN1bGF0ZVByaXZBdXRoVmFyU2lnbkNoYWluU0hBMjU2RGlnZXN0ICgK ICAgLy8NCiAgIC8vIERpZ2VzdCBTaWduZXJDZXJ0IENOICsgVG9wTGV2ZWxDZXJ0IHRic0NlcnRp ZmljYXRlDQogICAvLw0KLSAgWmVyb01lbSAoU2hhMjU2RGlnZXN0LCBTSEEyNTZfRElHRVNUX1NJ WkUpOw0KLSAgQ3J5cHRvU3RhdHVzID0gU2hhMjU2SW5pdCAobUhhc2hDdHgpOw0KKyAgWmVyb01l bSAoU2hhRGlnZXN0LCBtSGFzaEluZm9bSGFzaEFsZ0lkXS5IYXNoU2l6ZSk7DQorICBDcnlwdG9T dGF0dXMgPSBtSGFzaEluZm9bSGFzaEFsZ0lkXS5Jbml0ICgqKG1IYXNoSW5mb1tIYXNoQWxnSWRd Lkhhc2hTaGFDdHgpKTsNCiAgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQogICAgIHJldHVybiBFRklf QUJPUlRFRDsNCiAgIH0NCkBAIC0xMTUwLDggKzEyNzIsOCBAQCBDYWxjdWxhdGVQcml2QXV0aFZh clNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoCiAgIC8vDQogICAvLyAnXDAnIGlzIGZvcmNlZCBpbiBD ZXJ0Q29tbW9uTmFtZS4gTm8gb3ZlcmZsb3cgaXNzdWUNCiAgIC8vDQotICBDcnlwdG9TdGF0dXMg PSBTaGEyNTZVcGRhdGUgKA0KLSAgICAgICAgICAgICAgICAgICBtSGFzaEN0eCwNCisgIENyeXB0 b1N0YXR1cyA9IG1IYXNoSW5mb1tIYXNoQWxnSWRdLlVwZGF0ZSAoDQorICAgICAgICAgICAgICAg ICAgICoobUhhc2hJbmZvW0hhc2hBbGdJZF0uSGFzaFNoYUN0eCksDQogICAgICAgICAgICAgICAg ICAgIENlcnRDb21tb25OYW1lLA0KICAgICAgICAgICAgICAgICAgICBBc2NpaVN0ckxlbiAoQ2Vy dENvbW1vbk5hbWUpDQogICAgICAgICAgICAgICAgICAgICk7DQpAQCAtMTE1OSwxMiArMTI4MSwx MiBAQCBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoCiAgICAgcmV0 dXJuIEVGSV9BQk9SVEVEOw0KICAgfQ0KIA0KLSAgQ3J5cHRvU3RhdHVzID0gU2hhMjU2VXBkYXRl IChtSGFzaEN0eCwgVGJzQ2VydCwgVGJzQ2VydFNpemUpOw0KKyAgQ3J5cHRvU3RhdHVzID0gbUhh c2hJbmZvW0hhc2hBbGdJZF0uVXBkYXRlICgqKG1IYXNoSW5mb1tIYXNoQWxnSWRdLkhhc2hTaGFD dHgpLCBUYnNDZXJ0LCBUYnNDZXJ0U2l6ZSk7DQogICBpZiAoIUNyeXB0b1N0YXR1cykgew0KICAg ICByZXR1cm4gRUZJX0FCT1JURUQ7DQogICB9DQogDQotICBDcnlwdG9TdGF0dXMgPSBTaGEyNTZG aW5hbCAobUhhc2hDdHgsIFNoYTI1NkRpZ2VzdCk7DQorICBDcnlwdG9TdGF0dXMgPSBtSGFzaElu Zm9bSGFzaEFsZ0lkXS5GaW5hbCAoKihtSGFzaEluZm9bSGFzaEFsZ0lkXS5IYXNoU2hhQ3R4KSwg U2hhRGlnZXN0KTsNCiAgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQogICAgIHJldHVybiBFRklfQUJP UlRFRDsNCiAgIH0NCkBAIC0xNTE2LDkgKzE2MzgsMTAgQEAgRGVsZXRlQ2VydHNGcm9tRGIgKAog LyoqDQogICBJbnNlcnQgc2lnbmVyJ3MgY2VydGlmaWNhdGVzIGZvciBjb21tb24gYXV0aGVudGlj YXRlZCB2YXJpYWJsZSB3aXRoIFZhcmlhYmxlTmFtZQ0KICAgYW5kIFZlbmRvckd1aWQgaW4gQVVU SF9DRVJUX0RCX0RBVEEgdG8gImNlcnRkYiIgb3IgImNlcnRkYnYiIGFjY29yZGluZyB0bw0KLSAg dGltZSBiYXNlZCBhdXRoZW50aWNhdGVkIHZhcmlhYmxlIGF0dHJpYnV0ZXMuIENlcnREYXRhIGlz IHRoZSBTSEEyNTYgZGlnZXN0IG9mDQorICB0aW1lIGJhc2VkIGF1dGhlbnRpY2F0ZWQgdmFyaWFi bGUgYXR0cmlidXRlcy4gQ2VydERhdGEgaXMgdGhlIFNIQSBkaWdlc3Qgb2YNCiAgIFNpZ25lckNl cnQgQ29tbW9uTmFtZSArIFRvcExldmVsQ2VydCB0YnNDZXJ0aWZpY2F0ZS4NCiANCisgIEBwYXJh bVtpbl0gIEhhc2hBbGdJZCAgICAgICAgIEhhc2ggYWxnb3JpdGhtIGluZGV4Lg0KICAgQHBhcmFt W2luXSAgVmFyaWFibGVOYW1lICAgICAgTmFtZSBvZiBhdXRoZW50aWNhdGVkIFZhcmlhYmxlLg0K ICAgQHBhcmFtW2luXSAgVmVuZG9yR3VpZCAgICAgICAgVmVuZG9yIEdVSUQgb2YgYXV0aGVudGlj YXRlZCBWYXJpYWJsZS4NCiAgIEBwYXJhbVtpbl0gIEF0dHJpYnV0ZXMgICAgICAgIEF0dHJpYnV0 ZXMgb2YgYXV0aGVudGljYXRlZCB2YXJpYWJsZS4NCkBAIC0xNTM2LDYgKzE2NTksNyBAQCBEZWxl dGVDZXJ0c0Zyb21EYiAoCiAqKi8NCiBFRklfU1RBVFVTDQogSW5zZXJ0Q2VydHNUb0RiICgNCisg IElOICAgICBVSU5UOCAgICAgSGFzaEFsZ0lkLA0KICAgSU4gICAgIENIQVIxNiAgICAqVmFyaWFi bGVOYW1lLA0KICAgSU4gICAgIEVGSV9HVUlEICAqVmVuZG9yR3VpZCwNCiAgIElOICAgICBVSU5U MzIgICAgQXR0cmlidXRlcywNCkBAIC0xNTU2LDEyICsxNjgwLDE2IEBAIEluc2VydENlcnRzVG9E YiAoCiAgIFVJTlQzMiAgICAgICAgICAgICBDZXJ0RGF0YVNpemU7DQogICBBVVRIX0NFUlRfREJf REFUQSAgKlB0cjsNCiAgIENIQVIxNiAgICAgICAgICAgICAqRGJOYW1lOw0KLSAgVUlOVDggICAg ICAgICAgICAgIFNoYTI1NkRpZ2VzdFtTSEEyNTZfRElHRVNUX1NJWkVdOw0KKyAgVUlOVDggICAg ICAgICAgICAgIFNoYURpZ2VzdFtTSEFfRElHRVNUX1NJWkVfTUFYXTsNCiANCiAgIGlmICgoVmFy aWFibGVOYW1lID09IE5VTEwpIHx8IChWZW5kb3JHdWlkID09IE5VTEwpIHx8IChTaWduZXJDZXJ0 ID09IE5VTEwpIHx8IChUb3BMZXZlbENlcnQgPT0gTlVMTCkpIHsNCiAgICAgcmV0dXJuIEVGSV9J TlZBTElEX1BBUkFNRVRFUjsNCiAgIH0NCiANCisgIGlmIChIYXNoQWxnSWQgPj0gKHNpemVvZiAo bUhhc2hJbmZvKSAvIHNpemVvZiAoRUZJX0hBU0hfSU5GTykpKSB7DQorICAgIHJldHVybiBFRklf SU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQogICBpZiAoKEF0dHJpYnV0ZXMgJiBFRklfVkFS SUFCTEVfTk9OX1ZPTEFUSUxFKSAhPSAwKSB7DQogICAgIC8vDQogICAgIC8vIEdldCB2YXJpYWJs ZSAiY2VydGRiIi4NCkBAIC0xNjE4LDIwICsxNzQ2LDIyIEBAIEluc2VydENlcnRzVG9EYiAoCiAg IC8vIENvbnN0cnVjdCBuZXcgZGF0YSBjb250ZW50IG9mIHZhcmlhYmxlICJjZXJ0ZGIiIG9yICJj ZXJ0ZGJ2Ii4NCiAgIC8vDQogICBOYW1lU2l6ZSAgICAgID0gKFVJTlQzMilTdHJMZW4gKFZhcmlh YmxlTmFtZSk7DQotICBDZXJ0RGF0YVNpemUgID0gc2l6ZW9mIChTaGEyNTZEaWdlc3QpOw0KKyAg Q2VydERhdGFTaXplICA9IG1IYXNoSW5mb1tIYXNoQWxnSWRdLkhhc2hTaXplOw0KICAgQ2VydE5v ZGVTaXplICA9IHNpemVvZiAoQVVUSF9DRVJUX0RCX0RBVEEpICsgKFVJTlQzMilDZXJ0RGF0YVNp emUgKyBOYW1lU2l6ZSAqIHNpemVvZiAoQ0hBUjE2KTsNCiAgIE5ld0NlcnREYlNpemUgPSAoVUlO VDMyKURhdGFTaXplICsgQ2VydE5vZGVTaXplOw0KICAgaWYgKE5ld0NlcnREYlNpemUgPiBtTWF4 Q2VydERiU2l6ZSkgew0KICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICB9DQog DQotICBTdGF0dXMgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAo DQorICBTdGF0dXMgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQURpZ2VzdCAoDQor ICAgICAgICAgICAgIEhhc2hBbGdJZCwNCiAgICAgICAgICAgICAgU2lnbmVyQ2VydCwNCiAgICAg ICAgICAgICAgU2lnbmVyQ2VydFNpemUsDQogICAgICAgICAgICAgIFRvcExldmVsQ2VydCwNCiAg ICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6ZSwNCi0gICAgICAgICAgICAgU2hhMjU2RGlnZXN0 DQorICAgICAgICAgICAgIFNoYURpZ2VzdA0KICAgICAgICAgICAgICApOw0KKw0KICAgaWYgKEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KICAgICByZXR1cm4gU3RhdHVzOw0KICAgfQ0KQEAgLTE2NjMs NyArMTc5Myw3IEBAIEluc2VydENlcnRzVG9EYiAoCiANCiAgIENvcHlNZW0gKA0KICAgICAoVUlO VDggKilQdHIgKyAgc2l6ZW9mIChBVVRIX0NFUlRfREJfREFUQSkgKyBOYW1lU2l6ZSAqIHNpemVv ZiAoQ0hBUjE2KSwNCi0gICAgU2hhMjU2RGlnZXN0LA0KKyAgICBTaGFEaWdlc3QsDQogICAgIENl cnREYXRhU2l6ZQ0KICAgICApOw0KIA0KQEAgLTE3OTAsNiArMTkyMCwzNiBAQCBDbGVhbkNlcnRz RnJvbURiICgKICAgcmV0dXJuIFN0YXR1czsNCiB9DQogDQorLyoqDQorICBGaW5kIGhhc2ggYWxn b3JpdGhtIGluZGV4DQorDQorICBAcGFyYW1baW5dICBTaWdEYXRhICAgICAgUG9pbnRlciB0byB0 aGUgUEtDUyM3IG1lc3NhZ2UNCisgIEBwYXJhbVtpbl0gIFNpZ0RhdGFTaXplICBMZW5ndGggb2Yg dGhlIFBLQ1MjNyBtZXNzYWdlDQorDQorICBAcmV0dmFsIFVJTlQ4ICAgICAgICBIYXNoIEFsZ29y aXRobSBJbmRleA0KKyoqLw0KK1VJTlQ4DQorRmluZEhhc2hBbGdvcml0aG1JbmRleCAoDQorICBJ TiAgICAgVUlOVDggICAgICAgICAqU2lnRGF0YSwNCisgIElOICAgICBVSU5UMzIgICAgICAgIFNp Z0RhdGFTaXplDQorKQ0KK3sNCisgIFVJTlQ4IGk7DQorDQorICBmb3IgKGkgPSAwOyBpIDwgKHNp emVvZiAobUhhc2hJbmZvKSAvIHNpemVvZiAoRUZJX0hBU0hfSU5GTykpOyBpKyspIHsNCisgICAg aWYgKCAgKCAgKFNpZ0RhdGFTaXplID49ICgxMyArIG1IYXNoSW5mb1tpXS5PaWRMZW5ndGgpKQ0K KyAgICAgICAgICAmJiAoICAoKCooU2lnRGF0YSArIDEpICYgVFdPX0JZVEVfRU5DT0RFKSA9PSBU V09fQllURV9FTkNPREUpDQorICAgICAgICAgICAgJiYgKENvbXBhcmVNZW0gKFNpZ0RhdGEgKyAx MywgbUhhc2hJbmZvW2ldLk9pZFZhbHVlLCBtSGFzaEluZm9baV0uT2lkTGVuZ3RoKSA9PSAwKSkp DQorICAgICAgfHwgKCggIChTaWdEYXRhU2l6ZSA+PSAoMzIgKyAgbUhhc2hJbmZvW2ldLk9pZExl bmd0aCkpKQ0KKyAgICAgICAgJiYgKCAgKCgqKFNpZ0RhdGEgKyAyMCkgJiBUV09fQllURV9FTkNP REUpID09IFRXT19CWVRFX0VOQ09ERSkNCisgICAgICAgICAgJiYgKENvbXBhcmVNZW0gKFNpZ0Rh dGEgKyAzMiwgbUhhc2hJbmZvW2ldLk9pZFZhbHVlLCBtSGFzaEluZm9baV0uT2lkTGVuZ3RoKSA9 PSAwKSkpKQ0KKyAgICB7DQorICAgICAgYnJlYWs7DQorICAgIH0NCisgIH0NCisgIHJldHVybiBp Ow0KK30NCisNCiAvKioNCiAgIFByb2Nlc3MgdmFyaWFibGUgd2l0aCBFRklfVkFSSUFCTEVfVElN RV9CQVNFRF9BVVRIRU5USUNBVEVEX1dSSVRFX0FDQ0VTUyBzZXQNCiANCkBAIC0xODU3LDggKzIw MTcsOSBAQCBWZXJpZnlUaW1lQmFzZWRQYXlsb2FkICgKICAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgIENlcnRTdGFja1NpemU7DQogICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAg ICAgKkNlcnRzSW5DZXJ0RGI7DQogICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgQ2Vy dHNTaXplaW5EYjsNCi0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICBTaGEyNTZEaWdl c3RbU0hBMjU2X0RJR0VTVF9TSVpFXTsNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAg ICBTaGFEaWdlc3RbU0hBX0RJR0VTVF9TSVpFX01BWF07DQogICBFRklfQ0VSVF9EQVRBICAgICAg ICAgICAgICAgICAgKkNlcnREYXRhUHRyOw0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAg ICAgIEhhc2hBbGdJZDsNCiANCiAgIC8vDQogICAvLyAxLiBUb3BMZXZlbENlcnQgaXMgdGhlIHRv cC1sZXZlbCBpc3N1ZXIgY2VydGlmaWNhdGUgaW4gc2lnbmF0dXJlIFNpZ25lciBDZXJ0IENoYWlu DQpAQCAtMTkyOCw3ICsyMDg5LDcgQEAgVmVyaWZ5VGltZUJhc2VkUGF5bG9hZCAoCiANCiAgIC8v DQogICAvLyBTaWduZWREYXRhLmRpZ2VzdEFsZ29yaXRobXMgc2hhbGwgY29udGFpbiB0aGUgZGln ZXN0IGFsZ29yaXRobSB1c2VkIHdoZW4gcHJlcGFyaW5nIHRoZQ0KLSAgLy8gc2lnbmF0dXJlLiBP bmx5IGEgZGlnZXN0IGFsZ29yaXRobSBvZiBTSEEtMjU2IGlzIGFjY2VwdGVkLg0KKyAgLy8gc2ln bmF0dXJlLiBPbmx5IGEgZGlnZXN0IGFsZ29yaXRobSBvZiBTSEEtMjU2LCBTSEEtMzg0IG9yIFNI QS01MTIgaXMgYWNjZXB0ZWQuDQogICAvLw0KICAgLy8gICAgQWNjb3JkaW5nIHRvIFBLQ1MjNyBE ZWZpbml0aW9uIChodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMjMxNSk6DQogICAv LyAgICAgICAgU2lnbmVkRGF0YSA6Oj0gU0VRVUVOQ0Ugew0KQEAgLTE5NzIsMTQgKzIxMzMsOSBA QCBWZXJpZnlUaW1lQmFzZWRQYXlsb2FkICgKICAgLy8NCiAgIC8vIEV4YW1wbGUgZ2VuZXJhdGVk IHdpdGg6IGh0dHBzOi8vd2lraS5hcmNobGludXgub3JnL3RpdGxlL1VuaWZpZWRfRXh0ZW5zaWJs ZV9GaXJtd2FyZV9JbnRlcmZhY2UvU2VjdXJlX0Jvb3QjTWFudWFsX3Byb2Nlc3MNCiAgIC8vDQor ICBIYXNoQWxnSWQgPSBGaW5kSGFzaEFsZ29yaXRobUluZGV4IChTaWdEYXRhLCBTaWdEYXRhU2l6 ZSk7DQogICBpZiAoKEF0dHJpYnV0ZXMgJiBFRklfVkFSSUFCTEVfVElNRV9CQVNFRF9BVVRIRU5U SUNBVEVEX1dSSVRFX0FDQ0VTUykgIT0gMCkgew0KLSAgICBpZiAoICAoICAoU2lnRGF0YVNpemUg Pj0gKDEzICsgc2l6ZW9mIChtU2hhMjU2T2lkVmFsdWUpKSkNCi0gICAgICAgICAgJiYgKCAgKCgq KFNpZ0RhdGEgKyAxKSAmIFRXT19CWVRFX0VOQ09ERSkgIT0gVFdPX0JZVEVfRU5DT0RFKQ0KLSAg ICAgICAgICAgICB8fCAoQ29tcGFyZU1lbSAoU2lnRGF0YSArIDEzLCAmbVNoYTI1Nk9pZFZhbHVl LCBzaXplb2YgKG1TaGEyNTZPaWRWYWx1ZSkpICE9IDApKSkNCi0gICAgICAgJiYgKCAgKFNpZ0Rh dGFTaXplID49ICgzMiArIHNpemVvZiAobVNoYTI1Nk9pZFZhbHVlKSkpDQotICAgICAgICAgICYm ICggICgoKihTaWdEYXRhICsgMjApICYgVFdPX0JZVEVfRU5DT0RFKSAhPSBUV09fQllURV9FTkNP REUpDQotICAgICAgICAgICAgIHx8IChDb21wYXJlTWVtIChTaWdEYXRhICsgMzIsICZtU2hhMjU2 T2lkVmFsdWUsIHNpemVvZiAobVNoYTI1Nk9pZFZhbHVlKSkgIT0gMCkpKSkNCi0gICAgew0KKyAg ICBpZiAoSGFzaEFsZ0lkID49IChzaXplb2YgKG1IYXNoSW5mbykgLyBzaXplb2YgKEVGSV9IQVNI X0lORk8pKSkgew0KICAgICAgIHJldHVybiBFRklfU0VDVVJJVFlfVklPTEFUSU9OOw0KICAgICB9 DQogICB9DQpAQCAtMjE3MCwxOSArMjMyNiwyMCBAQCBWZXJpZnlUaW1lQmFzZWRQYXlsb2FkICgK ICAgICAgICAgZ290byBFeGl0Ow0KICAgICAgIH0NCiANCi0gICAgICBpZiAoQ2VydHNTaXplaW5E YiA9PSBTSEEyNTZfRElHRVNUX1NJWkUpIHsNCisgICAgICBpZiAoKEhhc2hBbGdJZCA8IChzaXpl b2YgKG1IYXNoSW5mbykgLyBzaXplb2YgKEVGSV9IQVNIX0lORk8pKSkgJiYgKENlcnRzU2l6ZWlu RGIgPT0gbUhhc2hJbmZvW0hhc2hBbGdJZF0uSGFzaFNpemUpKSB7DQogICAgICAgICAvLw0KICAg ICAgICAgLy8gQ2hlY2sgaGFzaCBvZiBzaWduZXIgY2VydCBDb21tb25OYW1lICsgVG9wLWxldmVs IGlzc3VlciB0YnNDZXJ0aWZpY2F0ZSBhZ2FpbnN0IGRhdGEgaW4gQ2VydERiDQogICAgICAgICAv Lw0KICAgICAgICAgQ2VydERhdGFQdHIgPSAoRUZJX0NFUlRfREFUQSAqKShTaWduZXJDZXJ0cyAr IDEpOw0KLSAgICAgICAgU3RhdHVzICAgICAgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFp blNIQTI1NkRpZ2VzdCAoDQorICAgICAgICBTdGF0dXMgICAgICA9IENhbGN1bGF0ZVByaXZBdXRo VmFyU2lnbkNoYWluU0hBRGlnZXN0ICgNCisgICAgICAgICAgICAgICAgICAgICAgICBIYXNoQWxn SWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgQ2VydERhdGFQdHItPkNlcnREYXRhQnVmZmVy LA0KICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWRVbmFsaWduZWQzMiAoKFVJTlQzMiAqKSYo Q2VydERhdGFQdHItPkNlcnREYXRhTGVuZ3RoKSksDQogICAgICAgICAgICAgICAgICAgICAgICAg VG9wTGV2ZWxDZXJ0LA0KICAgICAgICAgICAgICAgICAgICAgICAgIFRvcExldmVsQ2VydFNpemUs DQotICAgICAgICAgICAgICAgICAgICAgICAgU2hhMjU2RGlnZXN0DQorICAgICAgICAgICAgICAg ICAgICAgICAgU2hhRGlnZXN0DQogICAgICAgICAgICAgICAgICAgICAgICAgKTsNCi0gICAgICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgKENvbXBhcmVNZW0gKFNoYTI1NkRpZ2VzdCwgQ2Vy dHNJbkNlcnREYiwgQ2VydHNTaXplaW5EYikgIT0gMCkpIHsNCisgICAgICAgIGlmIChFRklfRVJS T1IgKFN0YXR1cykgfHwgKENvbXBhcmVNZW0gKFNoYURpZ2VzdCwgQ2VydHNJbkNlcnREYiwgQ2Vy dHNTaXplaW5EYikgIT0gMCkpIHsNCiAgICAgICAgICAgZ290byBFeGl0Ow0KICAgICAgICAgfQ0K ICAgICAgIH0gZWxzZSB7DQpAQCAtMjIxNSw2ICsyMzcyLDcgQEAgVmVyaWZ5VGltZUJhc2VkUGF5 bG9hZCAoCiAgICAgICAvLw0KICAgICAgIENlcnREYXRhUHRyID0gKEVGSV9DRVJUX0RBVEEgKiko U2lnbmVyQ2VydHMgKyAxKTsNCiAgICAgICBTdGF0dXMgICAgICA9IEluc2VydENlcnRzVG9EYiAo DQorICAgICAgICAgICAgICAgICAgICAgIEhhc2hBbGdJZCwNCiAgICAgICAgICAgICAgICAgICAg ICAgVmFyaWFibGVOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICBWZW5kb3JHdWlkLA0KICAg ICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVzLA0KZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtn L0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlSW50ZXJuYWwuaCBiL1NlY3VyaXR5 UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlSW50ZXJuYWwuaAppbmRleCBi MjAyZTYxM2JjLi5mN2JmNzcxZDU1IDEwMDY0NAotLS0gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0F1 dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZUludGVybmFsLmgKKysrIGIvU2VjdXJpdHlQa2cvTGli cmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2VJbnRlcm5hbC5oCkBAIC05Miw3ICs5Miw5 IEBAIGV4dGVybiBVSU5UMzIgIG1NYXhDZXJ0RGJTaXplOwogZXh0ZXJuIFVJTlQzMiAgbVBsYXRm b3JtTW9kZTsNCiBleHRlcm4gVUlOVDggICBtVmVuZG9yS2V5U3RhdGU7DQogDQotZXh0ZXJuIFZP SUQgICptSGFzaEN0eDsNCitleHRlcm4gVk9JRCAgKm1IYXNoU2hhMjU2Q3R4Ow0KK2V4dGVybiBW T0lEICAqbUhhc2hTaGEzODRDdHg7DQorZXh0ZXJuIFZPSUQgICptSGFzaFNoYTUxMkN0eDsNCiAN CiBleHRlcm4gQVVUSF9WQVJfTElCX0NPTlRFWFRfSU4gICptQXV0aFZhckxpYkNvbnRleHRJbjsN CiANCmRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0F1dGhWYXJpYWJsZUxpYi9BdXRo VmFyaWFibGVMaWIuYyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhW YXJpYWJsZUxpYi5jCmluZGV4IGRjNjFhZTg0MGMuLjE5ZTAwMDQ2OTkgMTAwNjQ0Ci0tLSBhL1Nl Y3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhWYXJpYWJsZUxpYi5jCisrKyBi L1NlY3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhWYXJpYWJsZUxpYi5jCkBA IC0yNiwxMiArMjYsMTQgQEAgVUlOVDMyICBtTWF4Q2VydERiU2l6ZTsKIFVJTlQzMiAgbVBsYXRm b3JtTW9kZTsNCiBVSU5UOCAgIG1WZW5kb3JLZXlTdGF0ZTsNCiANCi1FRklfR1VJRCAgbVNpZ25h dHVyZVN1cHBvcnRbXSA9IHsgRUZJX0NFUlRfU0hBMV9HVUlELCBFRklfQ0VSVF9TSEEyNTZfR1VJ RCwgRUZJX0NFUlRfUlNBMjA0OF9HVUlELCBFRklfQ0VSVF9YNTA5X0dVSUQgfTsNCitFRklfR1VJ RCAgbVNpZ25hdHVyZVN1cHBvcnRbXSA9IHsgRUZJX0NFUlRfU0hBMV9HVUlELCBFRklfQ0VSVF9T SEEyNTZfR1VJRCwgRUZJX0NFUlRfU0hBMzg0X0dVSUQsIEVGSV9DRVJUX1NIQTUxMl9HVUlELCBF RklfQ0VSVF9SU0EyMDQ4X0dVSUQsIEVGSV9DRVJUX1JTQTMwNzJfR1VJRCwgRUZJX0NFUlRfUlNB NDA5Nl9HVUlELCBFRklfQ0VSVF9YNTA5X0dVSUQgfTsNCiANCiAvLw0KIC8vIEhhc2ggY29udGV4 dCBwb2ludGVyDQogLy8NCi1WT0lEICAqbUhhc2hDdHggPSBOVUxMOw0KK1ZPSUQgICptSGFzaFNo YTI1NkN0eCA9IE5VTEw7DQorVk9JRCAgKm1IYXNoU2hhMzg0Q3R4ID0gTlVMTDsNCitWT0lEICAq bUhhc2hTaGE1MTJDdHggPSBOVUxMOw0KIA0KIFZBUklBQkxFX0VOVFJZX1BST1BFUlRZICBtQXV0 aFZhckVudHJ5W10gPSB7DQogICB7DQpAQCAtOTEsNyArOTMsNyBAQCBWQVJJQUJMRV9FTlRSWV9Q Uk9QRVJUWSAgbUF1dGhWYXJFbnRyeVtdID0gewogICB9LA0KIH07DQogDQotVk9JRCAgKiptQXV0 aFZhckFkZHJlc3NQb2ludGVyWzldOw0KK1ZPSUQgICoqbUF1dGhWYXJBZGRyZXNzUG9pbnRlclsx MV07DQogDQogQVVUSF9WQVJfTElCX0NPTlRFWFRfSU4gICptQXV0aFZhckxpYkNvbnRleHRJbiA9 IE5VTEw7DQogDQpAQCAtMTIwLDcgKzEyMiw2IEBAIEF1dGhWYXJpYWJsZUxpYkluaXRpYWxpemUg KAogICBVSU5UMzIgICAgICBWYXJBdHRyOw0KICAgVUlOVDggICAgICAgKkRhdGE7DQogICBVSU5U TiAgICAgICBEYXRhU2l6ZTsNCi0gIFVJTlROICAgICAgIEN0eFNpemU7DQogICBVSU5UOCAgICAg ICBTZWN1cmVCb290TW9kZTsNCiAgIFVJTlQ4ICAgICAgIFNlY3VyZUJvb3RFbmFibGU7DQogICBV SU5UOCAgICAgICBDdXN0b21Nb2RlOw0KQEAgLTEzNSw5ICsxMzYsMTggQEAgQXV0aFZhcmlhYmxl TGliSW5pdGlhbGl6ZSAoCiAgIC8vDQogICAvLyBJbml0aWFsaXplIGhhc2ggY29udGV4dC4NCiAg IC8vDQotICBDdHhTaXplICA9IFNoYTI1NkdldENvbnRleHRTaXplICgpOw0KLSAgbUhhc2hDdHgg PSBBbGxvY2F0ZVJ1bnRpbWVQb29sIChDdHhTaXplKTsNCi0gIGlmIChtSGFzaEN0eCA9PSBOVUxM KSB7DQorICBtSGFzaFNoYTI1NkN0eCA9IEFsbG9jYXRlUnVudGltZVBvb2wgKFNoYTI1NkdldENv bnRleHRTaXplICgpKTsNCisgIGlmIChtSGFzaFNoYTI1NkN0eCA9PSBOVUxMKSB7DQorICAgIHJl dHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCisgIH0NCisNCisgIG1IYXNoU2hhMzg0Q3R4ID0g QWxsb2NhdGVSdW50aW1lUG9vbCAoU2hhMzg0R2V0Q29udGV4dFNpemUgKCkpOw0KKyAgaWYgKG1I YXNoU2hhMzg0Q3R4ID09IE5VTEwpIHsNCisgICAgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT Ow0KKyAgfQ0KKw0KKyAgbUhhc2hTaGE1MTJDdHggPSBBbGxvY2F0ZVJ1bnRpbWVQb29sIChTaGE1 MTJHZXRDb250ZXh0U2l6ZSAoKSk7DQorICBpZiAobUhhc2hTaGE1MTJDdHggPT0gTlVMTCkgew0K ICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICB9DQogDQpAQCAtMzU2LDE0ICsz NjYsMTYgQEAgQXV0aFZhcmlhYmxlTGliSW5pdGlhbGl6ZSAoCiAgIEF1dGhWYXJMaWJDb250ZXh0 T3V0LT5BdXRoVmFyRW50cnkgICAgICAgID0gbUF1dGhWYXJFbnRyeTsNCiAgIEF1dGhWYXJMaWJD b250ZXh0T3V0LT5BdXRoVmFyRW50cnlDb3VudCAgID0gQVJSQVlfU0laRSAobUF1dGhWYXJFbnRy eSk7DQogICBtQXV0aFZhckFkZHJlc3NQb2ludGVyWzBdICAgICAgICAgICAgICAgICA9IChWT0lE ICoqKSZtQ2VydERiU3RvcmU7DQotICBtQXV0aFZhckFkZHJlc3NQb2ludGVyWzFdICAgICAgICAg ICAgICAgICA9IChWT0lEICoqKSZtSGFzaEN0eDsNCi0gIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJb Ml0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJm1BdXRoVmFyTGliQ29udGV4dEluOw0KLSAg bUF1dGhWYXJBZGRyZXNzUG9pbnRlclszXSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1B dXRoVmFyTGliQ29udGV4dEluLT5GaW5kVmFyaWFibGUpLA0KLSAgbUF1dGhWYXJBZGRyZXNzUG9p bnRlcls0XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1BdXRoVmFyTGliQ29udGV4dElu LT5GaW5kTmV4dFZhcmlhYmxlKSwNCi0gIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJbNV0gICAgICAg ICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0aFZhckxpYkNvbnRleHRJbi0+VXBkYXRlVmFyaWFi bGUpLA0KLSAgbUF1dGhWYXJBZGRyZXNzUG9pbnRlcls2XSAgICAgICAgICAgICAgICAgPSAoVk9J RCAqKikmKG1BdXRoVmFyTGliQ29udGV4dEluLT5HZXRTY3JhdGNoQnVmZmVyKSwNCi0gIG1BdXRo VmFyQWRkcmVzc1BvaW50ZXJbN10gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0aFZh ckxpYkNvbnRleHRJbi0+Q2hlY2tSZW1haW5pbmdTcGFjZUZvckNvbnNpc3RlbmN5KSwNCi0gIG1B dXRoVmFyQWRkcmVzc1BvaW50ZXJbOF0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0 aFZhckxpYkNvbnRleHRJbi0+QXRSdW50aW1lKSwNCisgIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJb MV0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJm1IYXNoU2hhMjU2Q3R4Ow0KKyAgbUF1dGhW YXJBZGRyZXNzUG9pbnRlclsyXSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmbUhhc2hTaGEz ODRDdHg7DQorICBtQXV0aFZhckFkZHJlc3NQb2ludGVyWzNdICAgICAgICAgICAgICAgICA9IChW T0lEICoqKSZtSGFzaFNoYTUxMkN0eDsNCisgIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJbNF0gICAg ICAgICAgICAgICAgID0gKFZPSUQgKiopJm1BdXRoVmFyTGliQ29udGV4dEluOw0KKyAgbUF1dGhW YXJBZGRyZXNzUG9pbnRlcls1XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1BdXRoVmFy TGliQ29udGV4dEluLT5GaW5kVmFyaWFibGUpLA0KKyAgbUF1dGhWYXJBZGRyZXNzUG9pbnRlcls2 XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1BdXRoVmFyTGliQ29udGV4dEluLT5GaW5k TmV4dFZhcmlhYmxlKSwNCisgIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJbN10gICAgICAgICAgICAg ICAgID0gKFZPSUQgKiopJihtQXV0aFZhckxpYkNvbnRleHRJbi0+VXBkYXRlVmFyaWFibGUpLA0K KyAgbUF1dGhWYXJBZGRyZXNzUG9pbnRlcls4XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikm KG1BdXRoVmFyTGliQ29udGV4dEluLT5HZXRTY3JhdGNoQnVmZmVyKSwNCisgIG1BdXRoVmFyQWRk cmVzc1BvaW50ZXJbOV0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0aFZhckxpYkNv bnRleHRJbi0+Q2hlY2tSZW1haW5pbmdTcGFjZUZvckNvbnNpc3RlbmN5KSwNCisgIG1BdXRoVmFy QWRkcmVzc1BvaW50ZXJbMTBdICAgICAgICAgICAgICAgICA9IChWT0lEICoqKSYobUF1dGhWYXJM aWJDb250ZXh0SW4tPkF0UnVudGltZSksDQogICBBdXRoVmFyTGliQ29udGV4dE91dC0+QWRkcmVz c1BvaW50ZXIgICAgICA9IG1BdXRoVmFyQWRkcmVzc1BvaW50ZXI7DQogICBBdXRoVmFyTGliQ29u dGV4dE91dC0+QWRkcmVzc1BvaW50ZXJDb3VudCA9IEFSUkFZX1NJWkUgKG1BdXRoVmFyQWRkcmVz c1BvaW50ZXIpOw0KIA0KZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VW ZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuYyBiL1NlY3VyaXR5UGtnL0xp YnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuYwpp bmRleCA1ZDhkYmQ1NDY4Li44OGIyZDNjNmMxIDEwMDY0NAotLS0gYS9TZWN1cml0eVBrZy9MaWJy YXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLmMKKysr IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZl cmlmaWNhdGlvbkxpYi5jCkBAIC0xNjIwLDcgKzE2MjAsNyBAQCBEb25lOgogICAgICAgaW4gdGhl IHNlY3VyaXR5IGRhdGFiYXNlICJkYiIsIGFuZCBubyB2YWxpZCBzaWduYXR1cmUgbm9yIGFueSBo YXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtYXkNCiAgICAgICBiZSByZWZsZWN0ZWQgaW4gdGhlIHNl Y3VyaXR5IGRhdGFiYXNlICJkYngiLg0KICAgICBPdGhlcndpc2UsIHRoZSBpbWFnZSBpcyBub3Qg c2lnbmVkLA0KLSAgICAgIFRoZSBTSEEyNTYgaGFzaCB2YWx1ZSBvZiB0aGUgaW1hZ2UgbXVzdCBt YXRjaCBhIHJlY29yZCBpbiB0aGUgc2VjdXJpdHkgZGF0YWJhc2UgImRiIiwgYW5kDQorICAgICAg VGhlIGhhc2ggdmFsdWUgb2YgdGhlIGltYWdlIG11c3QgbWF0Y2ggYSByZWNvcmQgaW4gdGhlIHNl Y3VyaXR5IGRhdGFiYXNlICJkYiIsIGFuZA0KICAgICAgIG5vdCBiZSByZWZsZWN0ZWQgaW4gdGhl IHNlY3VyaXR5IGRhdGEgYmFzZSAiZGJ4Ii4NCiANCiAgIENhdXRpb246IFRoaXMgZnVuY3Rpb24g bWF5IHJlY2VpdmUgdW50cnVzdGVkIGlucHV0Lg0KQEAgLTE2OTAsNiArMTY5MCw4IEBAIER4ZUlt YWdlVmVyaWZpY2F0aW9uSGFuZGxlciAoCiAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAg IFZhclN0YXR1czsNCiAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgIFZhckF0dHI7DQog ICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICBJc0ZvdW5kOw0KKyAgVUlOVDggICAgICAg ICAgICAgICAgICAgICAgICAgSGFzaEFsZzsNCisgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg ICAgIElzRm91bmRJbkRhdGFiYXNlOw0KIA0KICAgU2lnbmF0dXJlTGlzdCAgICAgPSBOVUxMOw0K ICAgU2lnbmF0dXJlTGlzdFNpemUgPSAwOw0KQEAgLTE2OTksNiArMTcwMSw3IEBAIER4ZUltYWdl VmVyaWZpY2F0aW9uSGFuZGxlciAoCiAgIEFjdGlvbiAgICAgICAgICAgID0gRUZJX0lNQUdFX0VY RUNVVElPTl9BVVRIX1VOVEVTVEVEOw0KICAgSXNWZXJpZmllZCAgICAgICAgPSBGQUxTRTsNCiAg IElzRm91bmQgICAgICAgICAgID0gRkFMU0U7DQorICBJc0ZvdW5kSW5EYXRhYmFzZSA9IEZBTFNF Ow0KIA0KICAgLy8NCiAgIC8vIENoZWNrIHRoZSBpbWFnZSB0eXBlIGFuZCBnZXQgcG9saWN5IHNl dHRpbmcuDQpAQCAtMTgzNyw0MCArMTg0MCw1MCBAQCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRs ZXIgKAogICAvLw0KICAgaWYgKChTZWNEYXRhRGlyID09IE5VTEwpIHx8IChTZWNEYXRhRGlyLT5T aXplID09IDApKSB7DQogICAgIC8vDQotICAgIC8vIFRoaXMgaW1hZ2UgaXMgbm90IHNpZ25lZC4g VGhlIFNIQTI1NiBoYXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtdXN0IG1hdGNoIGEgcmVjb3JkIGlu IHRoZSBzZWN1cml0eSBkYXRhYmFzZSAiZGIiLA0KKyAgICAvLyBUaGlzIGltYWdlIGlzIG5vdCBz aWduZWQuIFRoZSBoYXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtdXN0IG1hdGNoIGEgcmVjb3JkIGlu IHRoZSBzZWN1cml0eSBkYXRhYmFzZSAiZGIiLA0KICAgICAvLyBhbmQgbm90IGJlIHJlZmxlY3Rl ZCBpbiB0aGUgc2VjdXJpdHkgZGF0YSBiYXNlICJkYngiLg0KICAgICAvLw0KLSAgICBpZiAoIUhh c2hQZUltYWdlIChIQVNIQUxHX1NIQTI1NikpIHsNCi0gICAgICBERUJVRyAoKERFQlVHX0lORk8s ICJEeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjogRmFpbGVkIHRvIGhhc2ggdGhpcyBpbWFnZSB1c2lu ZyAlcy5cbiIsIG1IYXNoVHlwZVN0cikpOw0KLSAgICAgIGdvdG8gRmFpbGVkOw0KLSAgICB9DQor ICAgIEhhc2hBbGcgPSBzaXplb2YgKG1IYXNoKSAvIHNpemVvZiAoSEFTSF9UQUJMRSk7DQorICAg IHdoaWxlIChIYXNoQWxnID4gMCkgew0KKyAgICAgIEhhc2hBbGctLTsNCisgICAgICBpZiAoKG1I YXNoW0hhc2hBbGddLkdldENvbnRleHRTaXplID09IE5VTEwpIHx8IChtSGFzaFtIYXNoQWxnXS5I YXNoSW5pdCA9PSBOVUxMKSB8fCAobUhhc2hbSGFzaEFsZ10uSGFzaFVwZGF0ZSA9PSBOVUxMKSB8 fCAobUhhc2hbSGFzaEFsZ10uSGFzaEZpbmFsID09IE5VTEwpKSB7DQorICAgICAgICBjb250aW51 ZTsNCisgICAgICB9DQorICAgICAgaWYgKCFIYXNoUGVJbWFnZSAoSGFzaEFsZykpIHsNCisgICAg ICAgIGNvbnRpbnVlOw0KKyAgICAgIH0NCiANCi0gICAgRGJTdGF0dXMgPSBJc1NpZ25hdHVyZUZv dW5kSW5EYXRhYmFzZSAoDQotICAgICAgICAgICAgICAgICBFRklfSU1BR0VfU0VDVVJJVFlfREFU QUJBU0UxLA0KLSAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0LA0KLSAgICAgICAgICAgICAg ICAgJm1DZXJ0VHlwZSwNCi0gICAgICAgICAgICAgICAgIG1JbWFnZURpZ2VzdFNpemUsDQotICAg ICAgICAgICAgICAgICAmSXNGb3VuZA0KLSAgICAgICAgICAgICAgICAgKTsNCi0gICAgaWYgKEVG SV9FUlJPUiAoRGJTdGF0dXMpIHx8IElzRm91bmQpIHsNCi0gICAgICAvLw0KLSAgICAgIC8vIElt YWdlIEhhc2ggaXMgaW4gZm9yYmlkZGVuIGRhdGFiYXNlIChEQlgpLg0KLSAgICAgIC8vDQotICAg ICAgREVCVUcgKChERUJVR19JTkZPLCAiRHhlSW1hZ2VWZXJpZmljYXRpb25MaWI6IEltYWdlIGlz IG5vdCBzaWduZWQgYW5kICVzIGhhc2ggb2YgaW1hZ2UgaXMgZm9yYmlkZGVuIGJ5IERCWC5cbiIs IG1IYXNoVHlwZVN0cikpOw0KLSAgICAgIGdvdG8gRmFpbGVkOw0KKyAgICAgIERiU3RhdHVzID0g SXNTaWduYXR1cmVGb3VuZEluRGF0YWJhc2UgKA0KKyAgICAgICAgICAgICAgICAgICBFRklfSU1B R0VfU0VDVVJJVFlfREFUQUJBU0UxLA0KKyAgICAgICAgICAgICAgICAgICBtSW1hZ2VEaWdlc3Qs DQorICAgICAgICAgICAgICAgICAgICZtQ2VydFR5cGUsDQorICAgICAgICAgICAgICAgICAgIG1J bWFnZURpZ2VzdFNpemUsDQorICAgICAgICAgICAgICAgICAgICZJc0ZvdW5kDQorICAgICAgICAg ICAgICAgICAgICk7DQorICAgICAgaWYgKEVGSV9FUlJPUiAoRGJTdGF0dXMpIHx8IElzRm91bmQp IHsNCisgICAgICAgIC8vDQorICAgICAgICAvLyBJbWFnZSBIYXNoIGlzIGluIGZvcmJpZGRlbiBk YXRhYmFzZSAoREJYKS4NCisgICAgICAgIC8vDQorICAgICAgICBERUJVRyAoKERFQlVHX0lORk8s ICJEeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjogSW1hZ2UgaXMgbm90IHNpZ25lZCBhbmQgJXMgaGFz aCBvZiBpbWFnZSBpcyBmb3JiaWRkZW4gYnkgREJYLlxuIiwgbUhhc2hUeXBlU3RyKSk7DQorICAg ICAgICBnb3RvIEZhaWxlZDsNCisgICAgICB9DQorDQorICAgICAgRGJTdGF0dXMgPSBJc1NpZ25h dHVyZUZvdW5kSW5EYXRhYmFzZSAoDQorICAgICAgICAgICAgICAgICAgIEVGSV9JTUFHRV9TRUNV UklUWV9EQVRBQkFTRSwNCisgICAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0LA0KKyAgICAg ICAgICAgICAgICAgICAmbUNlcnRUeXBlLA0KKyAgICAgICAgICAgICAgICAgICBtSW1hZ2VEaWdl c3RTaXplLA0KKyAgICAgICAgICAgICAgICAgICAmSXNGb3VuZA0KKyAgICAgICAgICAgICAgICAg ICApOw0KKyAgICAgIGlmICghRUZJX0VSUk9SIChEYlN0YXR1cykgJiYgSXNGb3VuZCkgew0KKyAg ICAgICAgLy8NCisgICAgICAgIC8vIEltYWdlIEhhc2ggaXMgaW4gYWxsb3dlZCBkYXRhYmFzZSAo REIpLg0KKyAgICAgICAgLy8NCisgICAgICAgIElzRm91bmRJbkRhdGFiYXNlID0gVFJVRTsNCisg ICAgICB9DQogICAgIH0NCiANCi0gICAgRGJTdGF0dXMgPSBJc1NpZ25hdHVyZUZvdW5kSW5EYXRh YmFzZSAoDQotICAgICAgICAgICAgICAgICBFRklfSU1BR0VfU0VDVVJJVFlfREFUQUJBU0UsDQot ICAgICAgICAgICAgICAgICBtSW1hZ2VEaWdlc3QsDQotICAgICAgICAgICAgICAgICAmbUNlcnRU eXBlLA0KLSAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0U2l6ZSwNCi0gICAgICAgICAgICAg ICAgICZJc0ZvdW5kDQotICAgICAgICAgICAgICAgICApOw0KLSAgICBpZiAoIUVGSV9FUlJPUiAo RGJTdGF0dXMpICYmIElzRm91bmQpIHsNCi0gICAgICAvLw0KLSAgICAgIC8vIEltYWdlIEhhc2gg aXMgaW4gYWxsb3dlZCBkYXRhYmFzZSAoREIpLg0KLSAgICAgIC8vDQorICAgIGlmIChJc0ZvdW5k SW5EYXRhYmFzZSkgew0KICAgICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCiAgICAgfQ0KIA0KZGlm ZiAtLWdpdCBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29u ZmlnRHhlL1NlY3VyZUJvb3RDb25maWdEeGUuaW5mIGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRo ZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0R4ZS5pbmYKaW5k ZXggMTY3MWQ1YmU3Yy4uY2I1MmExNmMwOSAxMDA2NDQKLS0tIGEvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0R4ZS5p bmYKKysrIGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25m aWdEeGUvU2VjdXJlQm9vdENvbmZpZ0R4ZS5pbmYKQEAgLTcwLDYgKzcwLDE0IEBACiAgICMjIFNP TUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3Ig dGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCiAgIGdFZmlDZXJ0UnNhMjA0OEd1aWQNCiANCisg ICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJ RCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCisgICMjIFNPTUVUSU1FU19QUk9EVUNF UyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhl IHNpZ25hdHVyZS4NCisgIGdFZmlDZXJ0UnNhMzA3Mkd1aWQNCisNCisgICMjIFNPTUVUSU1FU19D T05TVU1FUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUg b2YgdGhlIHNpZ25hdHVyZS4NCisgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQg ICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCisg IGdFZmlDZXJ0UnNhNDA5Nkd1aWQNCisNCiAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAgICMj IEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVy ZS4NCiAgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVu aXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCiAgIGdFZmlDZXJ0WDUwOUd1 aWQNCkBAIC04Miw2ICs5MCwxNCBAQAogICAjIyBTT01FVElNRVNfUFJPRFVDRVMgICAgICAjIyBH VUlEICAgICAgICAgICAgIyBVbmlxdWUgSUQgZm9yIHRoZSB0eXBlIG9mIHRoZSBzaWduYXR1cmUu DQogICBnRWZpQ2VydFNoYTI1Nkd1aWQNCiANCisgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAg ICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25h dHVyZS4NCisgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAj IFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCisgIGdFZmlDZXJ0U2hh Mzg0R3VpZA0KKw0KKyAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICAgICAgIyMgR1VJRCAgICAgICAg ICAgICMgVW5pcXVlIElEIGZvciB0aGUgdHlwZSBvZiB0aGUgc2lnbmF0dXJlLg0KKyAgIyMgU09N RVRJTUVTX1BST0RVQ0VTICAgICAgIyMgR1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZvciB0 aGUgdHlwZSBvZiB0aGUgc2lnbmF0dXJlLg0KKyAgZ0VmaUNlcnRTaGE1MTJHdWlkDQorDQogICAj IyBTT01FVElNRVNfQ09OU1VNRVMgICAgICAjIyBWYXJpYWJsZTpMImRiIg0KICAgIyMgU09NRVRJ TUVTX1BST0RVQ0VTICAgICAgIyMgVmFyaWFibGU6TCJkYiINCiAgICMjIFNPTUVUSU1FU19DT05T VU1FUyAgICAgICMjIFZhcmlhYmxlOkwiZGJ4Ig0KZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL1Zh cmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJ bXBsLmMgYi9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZp Z0R4ZS9TZWN1cmVCb290Q29uZmlnSW1wbC5jCmluZGV4IDBlMzE1MDJiMWIuLjNkZTZiZjYxMzkg MTAwNjQ0Ci0tLSBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290 Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJbXBsLmMKKysrIGIvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0ltcGwu YwpAQCAtNTYwLDcgKzU2MCw3IEBAIE9OX0VYSVQ6CiANCiAqKi8NCiBFRklfU1RBVFVTDQotRW5y b2xsUnNhMjA0OFRvS2VrICgNCitFbnJvbGxSc2FUb0tlayAoDQogICBJTiBTRUNVUkVCT09UX0NP TkZJR19QUklWQVRFX0RBVEEgICpQcml2YXRlDQogICApDQogew0KQEAgLTYwMyw4ICs2MDMsMTMg QEAgRW5yb2xsUnNhMjA0OFRvS2VrICgKIA0KICAgQVNTRVJUIChLZXlCbG9iICE9IE5VTEwpOw0K ICAgS2V5SW5mbyA9IChDUExfS0VZX0lORk8gKilLZXlCbG9iOw0KLSAgaWYgKEtleUluZm8tPktl eUxlbmd0aEluQml0cyAvIDggIT0gV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkUpIHsNCi0gICAg REVCVUcgKChERUJVR19FUlJPUiwgIlVuc3VwcG9ydGVkIGtleSBsZW5ndGgsIE9ubHkgUlNBMjA0 OCBpcyBzdXBwb3J0ZWQuXG4iKSk7DQorICBzd2l0Y2ggKEtleUluZm8tPktleUxlbmd0aEluQml0 cyAvIDgpIHsNCisgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkU6DQorICBjYXNlIFdJ Tl9DRVJUX1VFRklfUlNBMzA3Ml9TSVpFOg0KKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTQwOTZf U0laRToNCisgICAgYnJlYWs7DQorICBkZWZhdWx0IDoNCisgICAgREVCVUcgKChERUJVR19FUlJP UiwgIlVuc3VwcG9ydGVkIGtleSBsZW5ndGgsIE9ubHkgUlNBMjA0OCwgUlNBMzA3MiBhbmQgUlNB NDA5NiBhcmUgc3VwcG9ydGVkLlxuIikpOw0KICAgICBTdGF0dXMgPSBFRklfVU5TVVBQT1JURUQ7 DQogICAgIGdvdG8gT05fRVhJVDsNCiAgIH0NCkBAIC02MzIsNyArNjM3LDcgQEAgRW5yb2xsUnNh MjA0OFRvS2VrICgKICAgLy8NCiAgIEtla1NpZ0xpc3RTaXplID0gc2l6ZW9mIChFRklfU0lHTkFU VVJFX0xJU1QpDQogICAgICAgICAgICAgICAgICAgICsgc2l6ZW9mIChFRklfU0lHTkFUVVJFX0RB VEEpIC0gMQ0KLSAgICAgICAgICAgICAgICAgICArIFdJTl9DRVJUX1VFRklfUlNBMjA0OF9TSVpF Ow0KKyAgICAgICAgICAgICAgICAgICArIEtleUxlbkluQnl0ZXM7DQogDQogICBLZWtTaWdMaXN0 ID0gKEVGSV9TSUdOQVRVUkVfTElTVCAqKUFsbG9jYXRlWmVyb1Bvb2wgKEtla1NpZ0xpc3RTaXpl KTsNCiAgIGlmIChLZWtTaWdMaXN0ID09IE5VTEwpIHsNCkBAIC02NDIsMTcgKzY0NywzMiBAQCBF bnJvbGxSc2EyMDQ4VG9LZWsgKAogDQogICBLZWtTaWdMaXN0LT5TaWduYXR1cmVMaXN0U2l6ZSA9 IHNpemVvZiAoRUZJX1NJR05BVFVSRV9MSVNUKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArIHNpemVvZiAoRUZJX1NJR05BVFVSRV9EQVRBKSAtIDENCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKyBXSU5fQ0VSVF9VRUZJX1JTQTIwNDhfU0laRTsNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoVUlOVDMyKSBLZXlMZW5JbkJ5dGVzOw0K ICAgS2VrU2lnTGlzdC0+U2lnbmF0dXJlSGVhZGVyU2l6ZSA9IDA7DQotICBLZWtTaWdMaXN0LT5T aWduYXR1cmVTaXplICAgICAgID0gc2l6ZW9mIChFRklfU0lHTkFUVVJFX0RBVEEpIC0gMSArIFdJ Tl9DRVJUX1VFRklfUlNBMjA0OF9TSVpFOw0KLSAgQ29weUd1aWQgKCZLZWtTaWdMaXN0LT5TaWdu YXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2EyMDQ4R3VpZCk7DQorICBLZWtTaWdMaXN0LT5TaWduYXR1 cmVTaXplICAgICAgID0gc2l6ZW9mIChFRklfU0lHTkFUVVJFX0RBVEEpIC0gMSArIChVSU5UMzIp IEtleUxlbkluQnl0ZXM7DQorICBzd2l0Y2ggKEtleUxlbkluQnl0ZXMpIHsNCisgIGNhc2UgV0lO X0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkU6DQorICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2ln bmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0OEd1aWQpOw0KKyAgICBicmVhazsNCisgIGNhc2Ug V0lOX0NFUlRfVUVGSV9SU0EzMDcyX1NJWkU6DQorICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+ U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpOw0KKyAgICBicmVhazsNCisgIGNh c2UgV0lOX0NFUlRfVUVGSV9SU0E0MDk2X1NJWkU6DQorICAgIENvcHlHdWlkICgmS2VrU2lnTGlz dC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpOw0KKyAgICBicmVhazsNCisg ICAgYnJlYWs7DQorICBkZWZhdWx0IDoNCisgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlVuc3Vw cG9ydGVkIGtleSBsZW5ndGguXG4iKSk7DQorICAgIFN0YXR1cyA9IEVGSV9VTlNVUFBPUlRFRDsN CisgICAgZ290byBPTl9FWElUOw0KKyAgfQ0KIA0KICAgS0VLU2lnRGF0YSA9IChFRklfU0lHTkFU VVJFX0RBVEEgKikoKFVJTlQ4ICopS2VrU2lnTGlzdCArIHNpemVvZiAoRUZJX1NJR05BVFVSRV9M SVNUKSk7DQogICBDb3B5R3VpZCAoJktFS1NpZ0RhdGEtPlNpZ25hdHVyZU93bmVyLCBQcml2YXRl LT5TaWduYXR1cmVHVUlEKTsNCiAgIENvcHlNZW0gKA0KICAgICBLRUtTaWdEYXRhLT5TaWduYXR1 cmVEYXRhLA0KICAgICBLZXlCbG9iICsgc2l6ZW9mIChDUExfS0VZX0lORk8pLA0KLSAgICBXSU5f Q0VSVF9VRUZJX1JTQTIwNDhfU0laRQ0KKyAgICBLZXlMZW5JbkJ5dGVzDQogICAgICk7DQogDQog ICAvLw0KQEAgLTg5MCw3ICs5MTAsNyBAQCBFbnJvbGxLZXlFeGNoYW5nZUtleSAoCiAgIGlmIChJ c0RlckVuY29kZUNlcnRpZmljYXRlIChGaWxlUG9zdEZpeCkpIHsNCiAgICAgcmV0dXJuIEVucm9s bFg1MDlUb0tlayAoUHJpdmF0ZSk7DQogICB9IGVsc2UgaWYgKENvbXBhcmVNZW0gKEZpbGVQb3N0 Rml4LCBMIi5wYmsiLCA0KSA9PSAwKSB7DQotICAgIHJldHVybiBFbnJvbGxSc2EyMDQ4VG9LZWsg KFByaXZhdGUpOw0KKyAgICByZXR1cm4gRW5yb2xsUnNhVG9LZWsgKFByaXZhdGUpOw0KICAgfSBl bHNlIHsNCiAgICAgLy8NCiAgICAgLy8gRmlsZSB0eXBlIGlzIHdyb25nLCBzaW1wbHkgY2xvc2Ug aXQNCkBAIC0xODQ3LDcgKzE4NjcsNyBAQCBIYXNoUGVJbWFnZSAoCiAgIFNlY3Rpb25IZWFkZXIg PSBOVUxMOw0KICAgU3RhdHVzICAgICAgICA9IEZBTFNFOw0KIA0KLSAgaWYgKEhhc2hBbGcgIT0g SEFTSEFMR19TSEEyNTYpIHsNCisgIGlmICgoSGFzaEFsZyA+PSBIQVNIQUxHX01BWCkpIHsNCiAg ICAgcmV0dXJuIEZBTFNFOw0KICAgfQ0KIA0KQEAgLTE4NTYsOCArMTg3NiwyNSBAQCBIYXNoUGVJ bWFnZSAoCiAgIC8vDQogICBaZXJvTWVtIChtSW1hZ2VEaWdlc3QsIE1BWF9ESUdFU1RfU0laRSk7 DQogDQotICBtSW1hZ2VEaWdlc3RTaXplID0gU0hBMjU2X0RJR0VTVF9TSVpFOw0KLSAgbUNlcnRU eXBlICAgICAgICA9IGdFZmlDZXJ0U2hhMjU2R3VpZDsNCisgICBzd2l0Y2ggKEhhc2hBbGcpIHsN CisgICAgY2FzZSBIQVNIQUxHX1NIQTI1NjoNCisgICAgICBtSW1hZ2VEaWdlc3RTaXplID0gU0hB MjU2X0RJR0VTVF9TSVpFOw0KKyAgICAgIG1DZXJ0VHlwZSAgICAgICAgPSBnRWZpQ2VydFNoYTI1 Nkd1aWQ7DQorICAgICAgYnJlYWs7DQorDQorICAgIGNhc2UgSEFTSEFMR19TSEEzODQ6DQorICAg ICAgbUltYWdlRGlnZXN0U2l6ZSA9IFNIQTM4NF9ESUdFU1RfU0laRTsNCisgICAgICBtQ2VydFR5 cGUgICAgICAgID0gZ0VmaUNlcnRTaGEzODRHdWlkOw0KKyAgICAgIGJyZWFrOw0KKw0KKyAgICBj YXNlIEhBU0hBTEdfU0hBNTEyOg0KKyAgICAgIG1JbWFnZURpZ2VzdFNpemUgPSBTSEE1MTJfRElH RVNUX1NJWkU7DQorICAgICAgbUNlcnRUeXBlICAgICAgICA9IGdFZmlDZXJ0U2hhNTEyR3VpZDsN CisgICAgICBicmVhazsNCisNCisgICAgZGVmYXVsdDoNCisgICAgICByZXR1cm4gRkFMU0U7DQor ICB9DQogDQogICBDdHhTaXplID0gbUhhc2hbSGFzaEFsZ10uR2V0Q29udGV4dFNpemUgKCk7DQog DQpAQCAtMjI1MSw2ICsyMjg4LDcgQEAgRW5yb2xsSW1hZ2VTaWduYXR1cmVUb1NpZ0RCICgKICAg VUlOVDMyICAgICAgICAgICAgICAgICAgICAgQXR0cjsNCiAgIFdJTl9DRVJUSUZJQ0FURV9VRUZJ X0dVSUQgICpHdWlkQ2VydERhdGE7DQogICBFRklfVElNRSAgICAgICAgICAgICAgICAgICBUaW1l Ow0KKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgSGFzaEFsZzsNCiANCiAgIERhdGEgICAg ICAgICA9IE5VTEw7DQogICBHdWlkQ2VydERhdGEgPSBOVUxMOw0KQEAgLTIyODksOCArMjMyNywy MCBAQCBFbnJvbGxJbWFnZVNpZ25hdHVyZVRvU2lnREIgKAogICB9DQogDQogICBpZiAobVNlY0Rh dGFEaXItPlNpemVPZkNlcnQgPT0gMCkgew0KLSAgICBpZiAoIUhhc2hQZUltYWdlIChIQVNIQUxH X1NIQTI1NikpIHsNCi0gICAgICBTdGF0dXMgPSAgRUZJX1NFQ1VSSVRZX1ZJT0xBVElPTjsNCisg ICAgU3RhdHVzID0gRUZJX1NFQ1VSSVRZX1ZJT0xBVElPTjsNCisgICAgSGFzaEFsZyA9IHNpemVv ZiAobUhhc2gpIC8gc2l6ZW9mIChIQVNIX1RBQkxFKTsNCisgICAgd2hpbGUgKEhhc2hBbGcgPiAw KSB7DQorICAgICAgSGFzaEFsZy0tOw0KKyAgICAgIGlmICgobUhhc2hbSGFzaEFsZ10uR2V0Q29u dGV4dFNpemUgPT0gTlVMTCkgfHwgKG1IYXNoW0hhc2hBbGddLkhhc2hJbml0ID09IE5VTEwpIHx8 IChtSGFzaFtIYXNoQWxnXS5IYXNoVXBkYXRlID09IE5VTEwpIHx8IChtSGFzaFtIYXNoQWxnXS5I YXNoRmluYWwgPT0gTlVMTCkpIHsNCisgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgIH0NCisgICAg ICBpZiAoSGFzaFBlSW1hZ2UgKEhhc2hBbGcpKSB7DQorICAgICAgICBTdGF0dXMgPSBFRklfU1VD Q0VTUzsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgfQ0KKyAgICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIkZhaWwgdG8gZ2V0 IGhhc2ggZGlnZXN0OiAlciIsIFN0YXR1cykpOw0KICAgICAgIGdvdG8gT05fRVhJVDsNCiAgICAg fQ0KICAgfSBlbHNlIHsNCkBAIC0yNTg5LDYgKzI2MzksMTAgQEAgVXBkYXRlRGVsZXRlUGFnZSAo CiAgIHdoaWxlICgoSXRlbURhdGFTaXplID4gMCkgJiYgKEl0ZW1EYXRhU2l6ZSA+PSBDZXJ0TGlz dC0+U2lnbmF0dXJlTGlzdFNpemUpKSB7DQogICAgIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0 LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2EyMDQ4R3VpZCkpIHsNCiAgICAgICBIZWxwID0g U1RSSU5HX1RPS0VOIChTVFJfQ0VSVF9UWVBFX1JTQTIwNDhfU0hBMjU2X0dVSUQpOw0KKyAgICB9 IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2Vy dFJzYTMwNzJHdWlkKSkgew0KKyAgICAgIEhlbHAgPSBTVFJJTkdfVE9LRU4gKFNUUl9DRVJUX1RZ UEVfUlNBMzA3Ml9TSEEzODRfR1VJRCk7DQorICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZD ZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpKSB7DQorICAgICAg SGVscCA9IFNUUklOR19UT0tFTiAoU1RSX0NFUlRfVFlQRV9SU0E0MDk2X1NIQTUxMl9HVUlEKTsN CiAgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBlLCAm Z0VmaUNlcnRYNTA5R3VpZCkpIHsNCiAgICAgICBIZWxwID0gU1RSSU5HX1RPS0VOIChTVFJfQ0VS VF9UWVBFX1BDS1M3X0dVSUQpOw0KICAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmQ2VydExp c3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFNoYTFHdWlkKSkgew0KQEAgLTI3NTAsNiArMjgw NCw4IEBAIERlbGV0ZUtleUV4Y2hhbmdlS2V5ICgKICAgR3VpZEluZGV4ICAgICAgPSAwOw0KICAg d2hpbGUgKChLZWtEYXRhU2l6ZSA+IDApICYmIChLZWtEYXRhU2l6ZSA+PSBDZXJ0TGlzdC0+U2ln bmF0dXJlTGlzdFNpemUpKSB7DQogICAgIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWdu YXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2EyMDQ4R3VpZCkgfHwNCisgICAgICAgIENvbXBhcmVHdWlk ICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFJzYTMwNzJHdWlkKSB8fA0KKyAg ICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNh NDA5Nkd1aWQpIHx8DQogICAgICAgICBDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVU eXBlLCAmZ0VmaUNlcnRYNTA5R3VpZCkpDQogICAgIHsNCiAgICAgICBDb3B5TWVtIChEYXRhICsg T2Zmc2V0LCBDZXJ0TGlzdCwgKHNpemVvZiAoRUZJX1NJR05BVFVSRV9MSVNUKSArIENlcnRMaXN0 LT5TaWduYXR1cmVIZWFkZXJTaXplKSk7DQpAQCAtMjk1Miw2ICszMDA4LDggQEAgRGVsZXRlU2ln bmF0dXJlICgKICAgR3VpZEluZGV4ICAgID0gMDsNCiAgIHdoaWxlICgoSXRlbURhdGFTaXplID4g MCkgJiYgKEl0ZW1EYXRhU2l6ZSA+PSBDZXJ0TGlzdC0+U2lnbmF0dXJlTGlzdFNpemUpKSB7DQog ICAgIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRS c2EyMDQ4R3VpZCkgfHwNCisgICAgICAgIENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVy ZVR5cGUsICZnRWZpQ2VydFJzYTMwNzJHdWlkKSB8fA0KKyAgICAgICAgQ29tcGFyZUd1aWQgKCZD ZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpIHx8DQogICAgICAg ICBDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRYNTA5R3Vp ZCkgfHwNCiAgICAgICAgIENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsICZn RWZpQ2VydFNoYTFHdWlkKSB8fA0KICAgICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2ln bmF0dXJlVHlwZSwgJmdFZmlDZXJ0U2hhMjU2R3VpZCkgfHwNCkBAIC0zNzU4LDEyICszODE2LDIw IEBAIExvYWRTaWduYXR1cmVMaXN0ICgKICAgd2hpbGUgKChSZW1haW5pbmdTaXplID4gMCkgJiYg KFJlbWFpbmluZ1NpemUgPj0gTGlzdFdhbGtlci0+U2lnbmF0dXJlTGlzdFNpemUpKSB7DQogICAg IGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFJz YTIwNDhHdWlkKSkgew0KICAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9U WVBFX1JTQTIwNDhfU0hBMjU2KTsNCisgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RX YWxrZXItPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFJzYTMwNzJHdWlkKSkgew0KKyAgICAgIExp c3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1JTQTMwNzJfU0hBMzg0KTsNCisg ICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsICZn RWZpQ2VydFJzYTQwOTZHdWlkKSkgew0KKyAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChT VFJfTElTVF9UWVBFX1JTQTQwOTZfU0hBNTEyKTsNCiAgICAgfSBlbHNlIGlmIChDb21wYXJlR3Vp ZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFg1MDlHdWlkKSkgew0KICAg ICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1g1MDkpOw0KICAgICB9 IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwgJmdFZmlD ZXJ0U2hhMUd1aWQpKSB7DQogICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNU X1RZUEVfU0hBMSk7DQogICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5T aWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRTaGEyNTZHdWlkKSkgew0KICAgICAgIExpc3RUeXBlID0g U1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1NIQTI1Nik7DQorICAgIH0gZWxzZSBpZiAoQ29t cGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRTaGEzODRHdWlk KSkgew0KKyAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1NIQTM4 NCk7DQorICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVU eXBlLCAmZ0VmaUNlcnRTaGE1MTJHdWlkKSkgew0KKyAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RP S0VOIChTVFJfTElTVF9UWVBFX1NIQTUxMik7DQogICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQg KCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRYNTA5U2hhMjU2R3VpZCkpIHsN CiAgICAgICBMaXN0VHlwZSA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQRV9YNTA5X1NIQTI1 Nik7DQogICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVU eXBlLCAmZ0VmaUNlcnRYNTA5U2hhMzg0R3VpZCkpIHsNCkBAIC00MDAxLDYgKzQwNjcsMTQgQEAg Rm9ybWF0SGVscEluZm8gKAogICAgIExpc3RUeXBlSWQgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNU X1RZUEVfUlNBMjA0OF9TSEEyNTYpOw0KICAgICBEYXRhU2l6ZSAgID0gTGlzdEVudHJ5LT5TaWdu YXR1cmVTaXplIC0gc2l6ZW9mIChFRklfR1VJRCk7DQogICAgIElzQ2VydCAgICAgPSBUUlVFOw0K KyAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RFbnRyeS0+U2lnbmF0dXJlVHlwZSwgJmdF ZmlDZXJ0UnNhMzA3Mkd1aWQpKSB7DQorICAgIExpc3RUeXBlSWQgPSBTVFJJTkdfVE9LRU4gKFNU Ul9MSVNUX1RZUEVfUlNBMzA3Ml9TSEEzODQpOw0KKyAgICBEYXRhU2l6ZSAgID0gTGlzdEVudHJ5 LT5TaWduYXR1cmVTaXplIC0gc2l6ZW9mIChFRklfR1VJRCk7DQorICAgIElzQ2VydCAgICAgPSBU UlVFOw0KKyAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RFbnRyeS0+U2lnbmF0dXJlVHlw ZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpKSB7DQorICAgIExpc3RUeXBlSWQgPSBTVFJJTkdfVE9L RU4gKFNUUl9MSVNUX1RZUEVfUlNBNDA5Nl9TSEE1MTIpOw0KKyAgICBEYXRhU2l6ZSAgID0gTGlz dEVudHJ5LT5TaWduYXR1cmVTaXplIC0gc2l6ZW9mIChFRklfR1VJRCk7DQorICAgIElzQ2VydCAg ICAgPSBUUlVFOw0KICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RFbnRyeS0+U2lnbmF0 dXJlVHlwZSwgJmdFZmlDZXJ0WDUwOUd1aWQpKSB7DQogICAgIExpc3RUeXBlSWQgPSBTVFJJTkdf VE9LRU4gKFNUUl9MSVNUX1RZUEVfWDUwOSk7DQogICAgIERhdGFTaXplICAgPSBMaXN0RW50cnkt PlNpZ25hdHVyZVNpemUgLSBzaXplb2YgKEVGSV9HVUlEKTsNCkBAIC00MDExLDYgKzQwODUsMTIg QEAgRm9ybWF0SGVscEluZm8gKAogICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5 LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRTaGEyNTZHdWlkKSkgew0KICAgICBMaXN0VHlwZUlk ID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1NIQTI1Nik7DQogICAgIERhdGFTaXplICAg PSAzMjsNCisgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0RW50cnktPlNpZ25hdHVyZVR5 cGUsICZnRWZpQ2VydFNoYTM4NEd1aWQpKSB7DQorICAgIExpc3RUeXBlSWQgPSBTVFJJTkdfVE9L RU4gKFNUUl9MSVNUX1RZUEVfU0hBMzg0KTsNCisgICAgRGF0YVNpemUgICA9IDQ4Ow0KKyAgfSBl bHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RFbnRyeS0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0 U2hhNTEyR3VpZCkpIHsNCisgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1Rf VFlQRV9TSEE1MTIpOw0KKyAgICBEYXRhU2l6ZSAgID0gNjQ7DQogICB9IGVsc2UgaWYgKENvbXBh cmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRYNTA5U2hhMjU2R3Vp ZCkpIHsNCiAgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQRV9YNTA5 X1NIQTI1Nik7DQogICAgIERhdGFTaXplICAgPSAzMjsNCmRpZmYgLS1naXQgYS9TZWN1cml0eVBr Zy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29u ZmlnSW1wbC5oIGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RD b25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0ltcGwuaAppbmRleCAzN2M2NmYxYjk1Li5hZTUwZDky OWE3IDEwMDY0NAotLS0gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJl Qm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uZmlnSW1wbC5oCisrKyBiL1NlY3VyaXR5UGtnL1Zh cmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJ bXBsLmgKQEAgLTgyLDYgKzgyLDggQEAgZXh0ZXJuICBFRklfSUZSX0dVSURfTEFCRUwgICptRW5k TGFiZWw7CiAjZGVmaW5lIE1BWF9ESUdFU1RfU0laRSAgU0hBNTEyX0RJR0VTVF9TSVpFDQogDQog I2RlZmluZSBXSU5fQ0VSVF9VRUZJX1JTQTIwNDhfU0laRSAgMjU2DQorI2RlZmluZSBXSU5fQ0VS VF9VRUZJX1JTQTMwNzJfU0laRSAgMzg0DQorI2RlZmluZSBXSU5fQ0VSVF9VRUZJX1JTQTQwOTZf U0laRSAgNTEyDQogDQogLy8NCiAvLyBTdXBwb3J0IGhhc2ggdHlwZXMNCmRpZmYgLS1naXQgYS9T ZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1 cmVCb290Q29uZmlnU3RyaW5ncy51bmkgYi9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0 ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uZmlnU3RyaW5ncy51bmkKaW5kZXgg MGQwMTcwMWRlNy4uMWI0OGFjYzgwMCAxMDA2NDQKLS0tIGEvU2VjdXJpdHlQa2cvVmFyaWFibGVB dXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ1N0cmluZ3Mu dW5pCisrKyBiL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29u ZmlnRHhlL1NlY3VyZUJvb3RDb25maWdTdHJpbmdzLnVuaQpAQCAtMTEzLDYgKzExMyw4IEBAIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50CiAjc3RyaW5nIFNUUl9G T1JNX0VOUk9MTF9LRUtfRlJPTV9GSUxFX1RJVExFX0hFTFAgICAgI2xhbmd1YWdlIGVuLVVTICJS ZWFkIHRoZSBwdWJsaWMga2V5IG9mIEtFSyBmcm9tIGZpbGUiDQogI3N0cmluZyBTVFJfRklMRV9F WFBMT1JFUl9USVRMRSAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkZpbGUgRXhw bG9yZXIiDQogI3N0cmluZyBTVFJfQ0VSVF9UWVBFX1JTQTIwNDhfU0hBMjU2X0dVSUQgICAgICAg ICAjbGFuZ3VhZ2UgZW4tVVMgIlJTQTIwNDhfU0hBMjU2X0dVSUQiDQorI3N0cmluZyBTVFJfQ0VS VF9UWVBFX1JTQTMwNzJfU0hBMzg0X0dVSUQgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlJTQTMw NzJfU0hBMzg0X0dVSUQiDQorI3N0cmluZyBTVFJfQ0VSVF9UWVBFX1JTQTQwOTZfU0hBNTEyX0dV SUQgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlJTQTQwOTZfU0hBNTEyX0dVSUQiDQogI3N0cmlu ZyBTVFJfQ0VSVF9UWVBFX1BDS1M3X0dVSUQgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4t VVMgIlBLQ1M3X0dVSUQiDQogI3N0cmluZyBTVFJfQ0VSVF9UWVBFX1NIQTFfR1VJRCAgICAgICAg ICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlNIQTFfR1VJRCINCiAjc3RyaW5nIFNUUl9DRVJU X1RZUEVfU0hBMjU2X0dVSUQgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiU0hBMjU2 X0dVSUQiDQpAQCAtMTIxLDkgKzEyMywxMyBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudAogI3N0cmluZyBTVFJfQ0VSVF9UWVBFX1g1MDlfU0hBNTEyX0dVSUQg ICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlg1MDlfU0hBNTEyX0dVSUQiDQogDQogI3N0cmlu ZyBTVFJfTElTVF9UWVBFX1JTQTIwNDhfU0hBMjU2ICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4t VVMgIlJTQTIwNDhfU0hBMjU2Ig0KKyNzdHJpbmcgU1RSX0xJU1RfVFlQRV9SU0EzMDcyX1NIQTM4 NCAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJSU0EzMDcyX1NIQTM4NCINCisjc3RyaW5n IFNUUl9MSVNUX1RZUEVfUlNBNDA5Nl9TSEE1MTIgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1V UyAiUlNBNDA5Nl9TSEE1MTIiDQogI3N0cmluZyBTVFJfTElTVF9UWVBFX1g1MDkgICAgICAgICAg ICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlg1MDkiDQogI3N0cmluZyBTVFJfTElTVF9U WVBFX1NIQTEgICAgICAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlNIQTEiDQog I3N0cmluZyBTVFJfTElTVF9UWVBFX1NIQTI1NiAgICAgICAgICAgICAgICAgICAgICAjbGFuZ3Vh Z2UgZW4tVVMgIlNIQTI1NiINCisjc3RyaW5nIFNUUl9MSVNUX1RZUEVfU0hBMzg0ICAgICAgICAg ICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiU0hBMzg0Ig0KKyNzdHJpbmcgU1RSX0xJU1Rf VFlQRV9TSEE1MTIgICAgICAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJTSEE1MTIi DQogI3N0cmluZyBTVFJfTElTVF9UWVBFX1g1MDlfU0hBMjU2ICAgICAgICAgICAgICAgICAjbGFu Z3VhZ2UgZW4tVVMgIlg1MDlfU0hBMjU2Ig0KICNzdHJpbmcgU1RSX0xJU1RfVFlQRV9YNTA5X1NI QTM4NCAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJYNTA5X1NIQTM4NCINCiAjc3Ry aW5nIFNUUl9MSVNUX1RZUEVfWDUwOV9TSEE1MTIgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBl bi1VUyAiWDUwOV9TSEE1MTIiDQotLSAKMi4yNi4yLndpbmRvd3MuMQoK --_002_PH0PR11MB4870790C3EF6A748EF40AA34E12CAPH0PR11MB4870namp_--