From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.107.77.122; helo=nam02-sn1-obe.outbound.protection.outlook.com; envelope-from=christopher.co@microsoft.com; receiver=edk2-devel@lists.01.org Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-eopbgr770122.outbound.protection.outlook.com [40.107.77.122]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BDD0E211B1583 for ; Tue, 8 Jan 2019 13:43:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cuzBgqy+fS0NtKvk/i0PVyj9nA83wWxzmwd3rBufjcI=; b=KgEDGmAlSYtK+ECAIWem+jk64PnBz9Kp9+KrtlK1M+egZX8ffUQbqeenf52lM/fOOYy/nJujb2SOUEB5RgRJmH4d5wt/Nrekv4SmcHeFdu++V8nOhvC6thNC25Qg91h6JJhDWEcgIOVlsTC2a5+D/N3agb4YNjueqOQj4JHAjP0= Received: from CY4PR21MB0133.namprd21.prod.outlook.com (10.173.189.15) by CY4PR21MB0168.namprd21.prod.outlook.com (10.173.192.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.4; Tue, 8 Jan 2019 21:43:49 +0000 Received: from CY4PR21MB0133.namprd21.prod.outlook.com ([fe80::784b:b24d:ff2:dfd0]) by CY4PR21MB0133.namprd21.prod.outlook.com ([fe80::784b:b24d:ff2:dfd0%8]) with mapi id 15.20.1537.005; Tue, 8 Jan 2019 21:43:48 +0000 From: Chris Co To: Ard Biesheuvel CC: "edk2-devel@lists.01.org" , Leif Lindholm , Michael D Kinney Thread-Topic: [PATCH edk2-platforms 19/27] Silicon/NXP: Add i.MX6 ACPI tables Thread-Index: AQHUUYTB1amCM+pu40q5mKsaWho6v6WDUD6AgCNAy0A= Date: Tue, 8 Jan 2019 21:43:48 +0000 Message-ID: References: <20180921082542.35768-1-christopher.co@microsoft.com> <20180921082542.35768-20-christopher.co@microsoft.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Owner=chrco@microsoft.com; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2019-01-08T21:43:46.8424517Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Application=Microsoft Azure Information Protection; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Extended_MSFT_Method=Automatic; Sensitivity=General x-originating-ip: [131.107.160.163] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR21MB0168; 6:bsdfxCdx8yQNPX1ZRMMt4OxyysztB/vY2Yjo2Y6JQeLaMsy8tU9e1cWzEe/r3Mef3ZSipOuorVeo+UEiSEKGASMlhnG1vp3YaZoBLHBKbMDAqgZHuwtE0irnGQMDaeM/T//cENR9x/tbbqZtsFOwEQZXtnxad4r1JtSpAzPUtTzGH9O18BDkcTeMaCrmkdfDcsgr4BwB84LhSvRIWoNzljlLis9bsudwqw2x886A6g0gxBstwt40UnPyUGOudw0dqverL/Wkb8o3Bjs0jmAG4P//VLGHKZfV8ModMbULMh/6EaQoWRVjBYlHz5zKGD+UMtAcvwx1Q3x2y3jziYRYJ0wD7Zh7Q2QGFOwGCldGoE0Oi+ovLMtVs5VnK2dByOZ4UymLIku3PfENXA/8K4A58JrDlvxbFELwdnl0WRm13k14ET9by/0Mvckym+aPb1c1QznYOV2AWSGGaN8YgWml+w==; 5:icO7JQ1DVDH39UBo4AJqVrZF48sysSo4xTdQVbvQicrbcuFZETX0fZlojq1C8f0Vfn5xZFqfKN5X2sg3mXiglqlko04CVNECh5p+6EqYy3icDtbIL6APUoglCZ3yevPXgOlTQ7ags8Yqw+HSUVDnJXRNkPhpLGWdyn5yufScPQ/ZW0EfXwBNQDpsIECevjy2dpRcLdlMqTp7OLGRA4IVZg==; 7:zm6Z/6OzUssasCOgliUtzdS0jq7JPprMsYfaRw1EowMIHSOzrC/WssyvfhShgD3gW73lcUwbyQaJdVlKcVmKLfg4kAsW4XD7KWTeEPJjpgLdvV2Q4tmSUNocBavRKxJe99hK8ua0rBLb2l/D1enGAA== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: c8c4cdc4-d912-45d7-1cdf-08d675b25fb0 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7193020); SRVR:CY4PR21MB0168; x-ms-traffictypediagnostic: CY4PR21MB0168: x-ms-exchange-purlcount: 17 x-o365eop-header: O365_EOP: Allow for Unauthenticated Relay x-o365ent-eop-header: Message processed by - O365_ENT: Allow from ranges (Engineering ONLY) x-microsoft-antispam-prvs: x-forefront-prvs: 0911D5CE78 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(39860400002)(376002)(136003)(346002)(366004)(13464003)(52314003)(199004)(189003)(10290500003)(7736002)(71190400001)(71200400001)(68736007)(99286004)(5660300001)(4744004)(486006)(22452003)(76176011)(316002)(26005)(19627235002)(7696005)(186003)(10090500001)(53546011)(102836004)(8990500004)(6506007)(476003)(66066001)(6916009)(54906003)(446003)(14444005)(16799955002)(11346002)(256004)(305945005)(105586002)(106356001)(6346003)(72206003)(508600001)(966005)(25786009)(74316002)(86362001)(575784001)(229853002)(4326008)(6116002)(3846002)(6246003)(55016002)(6306002)(6436002)(8936002)(81166006)(81156014)(33656002)(14454004)(53946003)(8676002)(9686003)(97736004)(86612001)(53936002)(2906002)(569006); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR21MB0168; H:CY4PR21MB0133.namprd21.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Christopher.Co@microsoft.com; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: e3DFhdAxGzE+winBoy3ep6+MUGK+/MD4MKHVnhZljB3s9M6ZvZZNWEacrs5u0QmU/nVP5IEhOsvN9EyDd9WJr6kQF4RfQFiMryI/AQvn9DXkqjnD/M4LMop7IjjDOi3nHlWYQRtAbYdNc48zk5avTmkLelRLrgNRnB8iIVkpIUm45ZLAF+Nx3ZmxkcHPTHfexm2ZK6A17vl8aUmfZpYuhNYiaq/TxhCkRIfmM/TLlD6fc+2B2+YW9eqLHDSmAkFNqvXvCw5o+xa6bxM2BEYPbl4lSX0TQ53pKFIDh+K9d311/ooi7Dlnc47kX/hQjsqn spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: c8c4cdc4-d912-45d7-1cdf-08d675b25fb0 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jan 2019 21:43:48.7417 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR21MB0168 Subject: Re: [PATCH edk2-platforms 19/27] Silicon/NXP: Add i.MX6 ACPI tables X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jan 2019 21:43:53 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXJkLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFyZCBCaWVz aGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiBTZW50OiBNb25kYXksIERlY2Vt YmVyIDE3LCAyMDE4IDM6MTQgQU0NCj4gVG86IENocmlzIENvIDxDaHJpc3RvcGhlci5Db0BtaWNy b3NvZnQuY29tPg0KPiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IExlaWYgTGluZGhvbG0g PGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IE1pY2hhZWwNCj4gRCBLaW5uZXkgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIGVkazItcGxhdGZvcm1z IDE5LzI3XSBTaWxpY29uL05YUDogQWRkIGkuTVg2IEFDUEkgdGFibGVzDQo+IA0KPiBPbiBGcmks IDIxIFNlcCAyMDE4IGF0IDEwOjI2LCBDaHJpcyBDbyA8Q2hyaXN0b3BoZXIuQ29AbWljcm9zb2Z0 LmNvbT4NCj4gd3JvdGU6DQo+ID4NCj4gPiArLy8gUEwzMTAgTDIgQ2FjaGUgQ29udHJvbGxlciBS ZXNvdXJjZSBHcm91cA0KPiA+ICsjZGVmaW5lIENTUlRfUEwzMTBfTUlOSU1VTV9WRVJTSU9OICAg MQ0KPiA+ICsjZGVmaW5lIENTUlRfUEwzMTBfVkVSU0lPTl8yICAgICAgICAgMg0KPiA+ICsjZGVm aW5lIENTUlRfUEwzMTBfUkFXX1BST1RPQ09MICAgICAgMA0KPiA+ICsjZGVmaW5lIENTUlRfUEwz MTBfU01DX1BST1RPQ09MICAgICAgMQ0KPiA+ICsNCj4gPiArLy8gV2UgdXNlIFBTQ0lfQ1BVX09O IHRvIHR1cm4gb24gdGhlIEwyIGNhY2hlLCB3aXRoIHNwZWNpYWwgdmFsdWUNCj4gPiArLy8gMHgw MDEwMDAwMCBmb3IgdGhlIENvcmUgSUQuIFBTQ0kgc2VlcyB0aGlzIGNvcmUgSUQgYW5kIGtub3dz DQo+ID4gKy8vIHRoaXMgaXMgYW4gTDIgY2FjaGUgb3BlcmF0aW9uLCB0aGVuIGxvb2tzIGF0IFIy IGZvciB0aGUNCj4gPiArLy8gb3BlcmF0aW9uIHRvIHBlcmZvcm0uDQo+ID4gKyNkZWZpbmUgUFND SV9GSURfQ1BVX09OICAgICAgICAgICAgICAgICAgICAgICAgMHg4NDAwMDAwMw0KPiA+ICsjZGVm aW5lIEwyQ0FDSEVfU01DX1IxICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDANCj4g PiArI2RlZmluZSBMMkNBQ0hFX09QX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAxDQo+ID4g KyNkZWZpbmUgTDJDQUNIRV9PUF9ESVNBQkxFICAgICAgICAgICAgICAgICAgICAgMg0KPiA+ICsj ZGVmaW5lIEwyQ0FDSEVfT1BfRU5BQkxFX1dSSVRFQkFDSyAgICAgICAgICAgIDMNCj4gPiArI2Rl ZmluZSBMMkNBQ0hFX09QX0RJU0FCTEVfV1JJVEVCQUNLICAgICAgICAgICA0DQo+ID4gKyNkZWZp bmUgTDJDQUNIRV9PUF9FTkFCTEVfV0ZMWiAgICAgICAgICAgICAgICAgNQ0KPiA+ICsNCj4gDQo+ IFdobyBkZWZpbmVkIHRoaXMgcHJvdG9jb2w/IFdoZXJlIGlzIHRoZSBvcHBvc2l0ZSBzaWRlIGlt cGxlbWVudGVkPw0KPiANCj4gT3ZlcmxvYWRpbmcgYXJjaGl0ZWN0ZWQgUFNDSSBjYWxscyB0byBt YW5hZ2UgcGxhdGZvcm0gc3BlY2lmaWMgcGllY2VzDQo+IGlzIHJlYWxseSBhIG5vLWdvLg0KPiAN Cg0KU2luY2UgbXkgaW5pdGlhbCBwYXRjaCBzZXQgc3VibWlzc2lvbiwgd2UgaGF2ZSB1cGRhdGVk IHRoaXMgY29kZSB0byB1c2UgdGhlIHN0YW5kYXJkaXplZCBwcm90b2NvbCBpbnN0ZWFkIG9mIG92 ZXJsb2FkaW5nIFBTQ0lfQ1BVX09OLiBJdCB3aWxsIGJlIGluIHRoZSBWMiBwYXRjaCBzZXQuDQoN Ci8vIFBMMzEwIEwyIENhY2hlIENvbnRyb2xsZXIgUmVzb3VyY2UgR3JvdXANCiNkZWZpbmUgQ1NS VF9QTDMxMF9NSU5JTVVNX1ZFUlNJT04gICAxDQojZGVmaW5lIENTUlRfUEwzMTBfVkVSU0lPTl8y ICAgICAgICAgMg0KI2RlZmluZSBDU1JUX1BMMzEwX1JBV19QUk9UT0NPTCAgICAgIDANCiNkZWZp bmUgQ1NSVF9QTDMxMF9TTUNfUFJPVE9DT0wgICAgICAxDQoNCiNkZWZpbmUgU01DX0NBTExfVkFM KG93bmVyLCBmdW5jaWQpIFwNCiAgICAoMHg4MDAwMDAwMCB8ICgoKG93bmVyKSAmIDB4M0YpIDw8 IDI0KSB8ICgoZnVuY2lkKSAmIDB4ZmZmZikpDQoNCiNkZWZpbmUgU01DX09XTkVSX1NJUCAgICAg ICAgICAgICAgICAgICAyDQojZGVmaW5lIElNWF9TTUNfUEwzMTBfRU5BQkxFICAgICAgICAgICAg U01DX0NBTExfVkFMKFNNQ19PV05FUl9TSVAsIDEpDQojZGVmaW5lIElNWF9TTUNfUEwzMTBfRElT QUJMRSAgICAgICAgICAgU01DX0NBTExfVkFMKFNNQ19PV05FUl9TSVAsIDIpDQojZGVmaW5lIElN WF9TTUNfUEwzMTBfRU5BQkxFX1dSSVRFQkFDSyAgU01DX0NBTExfVkFMKFNNQ19PV05FUl9TSVAs IDMpDQojZGVmaW5lIElNWF9TTUNfUEwzMTBfRElTQUJMRV9XUklURUJBQ0sgU01DX0NBTExfVkFM KFNNQ19PV05FUl9TSVAsIDQpDQojZGVmaW5lIElNWF9TTUNfUEwzMTBfRU5BQkxFX1dGTFogICAg ICAgU01DX0NBTExfVkFMKFNNQ19PV05FUl9TSVAsIDUpDQoNCj4gPiArLy8gRGVidWcgUG9ydCAy IHRhYmxlDQo+ID4gK0VGSV9BQ1BJXzVfMF9ERUJVR19QT1JUXzJfVEFCTEUgRGJnMiA9IHsNCj4g DQo+IFNUQVRJQw0KPiANCj4gPiArICB7DQo+ID4gKyAgICAvLyBIZWFkZXINCj4gPiArICAgIHsN Cj4gPiArICAgICAgRUZJX0FDUElfNV8wX0RFQlVHX1BPUlRfMl9UQUJMRV9TSUdOQVRVUkUsICAg ICAvLyBTaWduYXR1cmUNCj4gIkRCRzIiDQo+ID4gKyAgICAgIHNpemVvZiAoRUZJX0FDUElfNV8w X0RFQlVHX1BPUlRfMl9UQUJMRSksICAgICAgLy8gTGVuZ3RoDQo+ID4gKyAgICAgIEVGSV9BQ1BJ X0RFQlVHX1BPUlRfMl9UQUJMRV9SRVZJU0lPTiwgICAgICAgICAgLy8gUmV2aXNpb24NCj4gPiAr ICAgICAgRUZJX0FDUElfNV8wX1VOREVGSU5FRCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBD aGVja3N1bSAtIHVwZGF0ZWQgYXQNCj4gcnVudGltZQ0KPiA+ICsgICAgICBFRklfQUNQSV9PRU1f SUQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9FTSBJRFs2XQ0KPiA+ICsgICAg ICBFRklfQUNQSV9PRU1fVEFCTEVfSUQsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9FTSBU YWJsZSBJRA0KPiA+ICsgICAgICBFRklfQUNQSV9PRU1fUkVWSVNJT04sICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIE9FTSBSZXZpc2lvbg0KPiA+ICsgICAgICBFRklfQUNQSV9DUkVBVE9SX0lE LCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENyZWF0b3IgSUQNCj4gPiArICAgICAgRUZJ X0FDUElfQ1JFQVRPUl9SRVZJU0lPTiAgICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdG9yIFJl dmlzaW9uDQo+ID4gKyAgICB9LA0KPiA+ICsgICAgc2l6ZW9mIChFRklfQUNQSV81XzBfREVCVUdf UE9SVF8yX1RBQkxFX0hFQURFUiksIC8vDQo+IE9mZnNldERiZ0RldmljZWluZm8NCj4gPiArICAg IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1i ZXJEYmdEZXZpY2VJbmZvDQo+ID4gKyAgfSwNCj4gPiArICB7DQo+ID4gKyAgICAvLyBVYXJ0DQo+ ID4gKyAgICB7DQo+ID4gKyAgICAgIC8vIERldmljZUluZm8NCj4gPiArICAgICAgRUZJX0FDUElf UkVTRVJWRURfQllURSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXZpc2lv bg0KPiA+ICsgICAgICBzaXplb2YgKERFQlVHX0RFVklDRV9JTkZPX1VBUlQpLCAgICAgICAgICAg ICAgICAgICAgICAgIC8vIExlbmd0aA0KPiA+ICsgICAgICAxLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE51bWJlcm9mR2VuZXJpY0FkZHJl c3NSZWdpc3RlcnMNCj4gPiArICAgICAgVUFSVF9OQU1FX1NQQUNFX1NUUklOR19MRU5HVEgsICAg ICAgICAgICAgICAgICAgICAgICAgICAvLw0KPiBOYW1lU3BhY2VTdHJpbmdMZW5ndGgNCj4gPiAr ICAgICAgT0ZGU0VUX09GIChERUJVR19ERVZJQ0VfSU5GT19VQVJULCBOYW1lU3BhY2VTdHJpbmcp LCAgICAvLw0KPiBOYW1lU3BhY2VTdHJpbmdPZmZzZXQNCj4gPiArICAgICAgMCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPZW1EYXRhTGVu Z3RoDQo+ID4gKyAgICAgIEVGSV9BQ1BJX1JFU0VSVkVEX1dPUkQsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gT2VtRGF0YU9mZnNldA0KPiA+ICsgICAgICBEQkcyX1RZUEVfU0VS SUFMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBvcnRUeXBlDQo+ ID4gKyAgICAgIERCR19QT1JUX1NVQlRZUEVfSU1YNiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gUG9ydFN1YnR5cGUgMDAwQ2gNCj4gDQo+IElzIHRoaXMgc3VidHlwZSBkZWZp bmVkIGluIGEgcHVibGlzaGVkIHZlcnNpb24gb2YgdGhlIFNQQ1IvREJHMiBzcGVjcz8NCj4gDQoN Ckp1c3QgY2hlY2tlZCBhbmQgdGhlIElNWDYgc3VidHlwZSBpcyBub3QgcHJlc2VudCBpbiB0aGUg bGF0ZXN0IERCRzIgc3BlYy4gSSdsbCB3b3JrIG9uIGdldHRpbmcgaXQgYWRkZWQuIERvZXMgdGhl IHN1YnR5cGUgbmVlZCB0byBiZSBpbiB0aGUgcHVibGlzaGVkIERCRzIgc3BlYyBiZWZvcmUgdGhl IHBhdGNoIGNhbiBiZSBhY2NlcHRlZCB1cHN0cmVhbT8NCg0KTm90ZTogVGhlIGRlZmluaXRpb24g aXMgcHJlc2VudCBpbiBvdXIgV0RLIGhlYWRlcnMgYnV0IEknbSBndWVzc2luZyB0aGF0IGlzIG5v dCBzdWZmaWNpZW50Li4uDQoNCi8vDQovLyBBQ1BJIGRlYnVnIGRldmljZSBwb3J0IHR5cGVzLiAg VGhlIGJvdHRvbSAxNSBiaXRzIG9mIHRoZXNlIHZhbHVlcyBzaG91bGQNCi8vIG1hdGNoIHRoZSBC Q0RFX0RFQlVHR0VSX1RZUEUgdmFsdWVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIGhlYWRlcg0K Ly8gbWlua2VybmVsXHB1Ymxpc2hlZFxiYXNlXGJjZHR5cGVzLncNCi8vDQoNCiNkZWZpbmUgREVC VUdfREVWSUNFX1BPUlRfU0VSSUFMIDB4ODAwMA0KI2RlZmluZSBERUJVR19ERVZJQ0VfUE9SVF8x Mzk0IDB4ODAwMQ0KI2RlZmluZSBERUJVR19ERVZJQ0VfUE9SVF9VU0IgMHg4MDAyDQojZGVmaW5l IERFQlVHX0RFVklDRV9QT1JUX05FVCAweDgwMDMNCiNkZWZpbmUgREVCVUdfREVWSUNFX1BPUlRf TE9DQUwgMHg4MDA0DQoNCiNkZWZpbmUgREVCVUdfREVWSUNFX1NFUklBTF9MRUdBQ1lfMTY1NTAg MHgwDQojZGVmaW5lIERFQlVHX0RFVklDRV9TRVJJQUxfR0VOXzE2NTUwIDB4MQ0KI2RlZmluZSBE RUJVR19ERVZJQ0VfU0VSSUFMX1NQSV9NQVgzMTFYRSAweDINCiNkZWZpbmUgREVCVUdfREVWSUNF X1NFUklBTF9QTDAxMSAweDMNCiNkZWZpbmUgREVCVUdfREVWSUNFX1NFUklBTF9ROFg2MCAweDQN CiNkZWZpbmUgREVCVUdfREVWSUNFX1NFUklBTF9OVklESUEgMHg1DQojZGVmaW5lIERFQlVHX0RF VklDRV9TRVJJQUxfT01BUCAweDYNCiNkZWZpbmUgREVCVUdfREVWSUNFX1NFUklBTF9VRUZJX0RC R1BPUlQgMHg3DQojZGVmaW5lIERFQlVHX0RFVklDRV9TRVJJQUxfQVBNODhYWFhYIDB4OA0KI2Rl ZmluZSBERUJVR19ERVZJQ0VfU0VSSUFMX1E4WDc0IDB4OQ0KI2RlZmluZSBERUJVR19ERVZJQ0Vf U0VSSUFMX1NBTTUyNTAgMHhBDQojZGVmaW5lIERFQlVHX0RFVklDRV9TRVJJQUxfVVNJRiAweEIN CiNkZWZpbmUgREVCVUdfREVWSUNFX1NFUklBTF9JTVg2IDB4Qw0KI2RlZmluZSBERUJVR19ERVZJ Q0VfU0VSSUFMX1NCU0EzMiAweEQNCiNkZWZpbmUgREVCVUdfREVWSUNFX1NFUklBTF9TQlNBIDB4 RQ0KI2RlZmluZSBERUJVR19ERVZJQ0VfU0VSSUFMX0FSTV9EQ0MgMHhGDQojZGVmaW5lIERFQlVH X0RFVklDRV9TRVJJQUxfQkNNMjgzNSAweDEwDQojZGVmaW5lIERFQlVHX0RFVklDRV9TRVJJQUxf U0RNODQ1IDB4MTENCiNkZWZpbmUgREVCVUdfREVWSUNFX1NFUklBTF9NTV8xNjU1MCAweDEyDQoN ClRoYW5rcywNCkNocmlzDQoNCj4gPiArICAgICAgRUZJX0FDUElfUkVTRVJWRURfV09SRCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNlcnZlZA0KPiA+ICsgICAgICBPRkZT RVRfT0YgKERFQlVHX0RFVklDRV9JTkZPX1VBUlQsIEJhc2VBZGRyZXNzUmVnaXN0ZXIpLCAvLw0K PiBCYXNlQWRkcmVzc1JlZ2lzdGVyT2Zmc2V0DQo+ID4gKyAgICAgIE9GRlNFVF9PRiAoREVCVUdf REVWSUNFX0lORk9fVUFSVCwgQWRkcmVzc1NpemUpLCAgICAgICAgLy8NCj4gQWRkcmVzc1NpemVP ZmZzZXQNCj4gPiArICAgIH0sDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIC8vIEJhc2VBZGRyZXNz UmVnaXN0ZXINCj4gPiArICAgICAgRUZJX0FDUElfNV8wX1NZU1RFTV9NRU1PUlksICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBBZGRyZXNzU3BhY2VJZA0KPiA+ICsgICAgICAweDIwLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lz dGVyQml0V2lkdGggPSAzMg0KPiA+ICsgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lzdGVyQml0T2Zmc2V0ID0gMA0KPiA+ ICsgICAgICAweDIwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIEFjY2Vzc1NpemUgPSAzMg0KPiA+ICsgICAgICBLRF9VQVJUX0JBU0VfQUREUiwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZHJlc3MNCj4gPiArICAg IH0sDQo+ID4gKyAgICBVQVJUX0lNWDZfVUFSVF9BRERSRVNTX1NJWkUsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBBZGRyZXNzU2l6ZQ0KPiA+ICsgICAgS0RfVUFSVF9BQ1BJX1BB VEgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmFtZVNwYWNl U3RyaW5nDQo+ID4gKyAgfSwNCj4gPiArfTsNCj4gPiArDQo+ID4gK1ZPSUQqDQo+ID4gK1JlZmVy ZW5jZUFjcGlUYWJsZSAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIHJl dHVybiAodm9pZCAqKSAmRGJnMjsNCj4gPiArfQ0KPiANCj4gcm9kYXRhIHJlZmVyZW5jZSBwbGVh c2UuIEkgd2lsbCBzdG9wIGNvbW1lbnRpbmcgb24gdGhpcyBmb3IgdGhlDQo+IHJlbWFpbmRlciBv ZiB0aGUgcGF0Y2guDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9TaWxpY29uL05YUC9pTVg2UGtnL0Fj cGlUYWJsZXMvRHNkdC1Db21tb24uaA0KPiBiL1NpbGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxl cy9Ec2R0LUNvbW1vbi5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAw MDAwMDAwMDAuLjRlNGEzNTIyZTg0Mg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9TaWxp Y29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMvRHNkdC1Db21tb24uaA0KPiA+IEBAIC0wLDAgKzEs MTA2IEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsqDQo+ID4gKyogIENvcHlyaWdodCAoYykgMjAx OCBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ID4gKyoNCj4g PiArKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+ICsq ICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gPiArKiAgd2hpY2ggYWNjb21wYW5pZXMg dGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0K PiBmb3VuZCBhdA0KPiA+ICsqDQo+IGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24u b3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGb3BlbnNvDQo+IHVyY2Uub3JnJTJGbGljZW5z ZXMlMkZic2QtDQo+IGxpY2Vuc2UucGhwJmFtcDtkYXRhPTAyJTdDMDElN0NDaHJpc3RvcGhlci5D byU0MG1pY3Jvc29mdC5jb20lN0M1Nw0KPiBlMTMyMjY5MzBiNGE2YzVjZDYwOGQ2NjQxMGNlMjYl N0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGINCj4gNDclN0MxJTdDMCU3QzYzNjgwNjQy MDY4Mjc3ODkwMyZhbXA7c2RhdGE9NVN6OWRZekoxOFlKWVclMkJCbw0KPiA5V2pkRWtZYVYlMkZD S2dZd294dzNvdTM3N013JTNEJmFtcDtyZXNlcnZlZD0wDQo+ID4gKyoNCj4gPiArKiAgVEhFIFBS T0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyIN Cj4gQkFTSVMsDQo+ID4gKyogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMg T0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4gKyoNCj4gPiAr KiovDQo+ID4gKw0KPiA+ICsvLyBJTVggYWx0ZXJuYXRlIHNldHRpbmdzIGNvZGVzDQo+ID4gKyNk ZWZpbmUgSU1YX0FMVDAgMHgwDQo+ID4gKyNkZWZpbmUgSU1YX0FMVDEgMHgxDQo+ID4gKyNkZWZp bmUgSU1YX0FMVDIgMHgyDQo+ID4gKyNkZWZpbmUgSU1YX0FMVDMgMHgzDQo+ID4gKyNkZWZpbmUg SU1YX0FMVDQgMHg0DQo+ID4gKyNkZWZpbmUgSU1YX0FMVDUgMHg1DQo+ID4gKyNkZWZpbmUgSU1Y X0FMVDYgMHg2DQo+ID4gKyNkZWZpbmUgSU1YX0FMVDcgMHg3DQo+ID4gKw0KPiA+ICsvLyBJTVgg U0RNQSByZXF1ZXN0IGxpbmVzLg0KPiA+ICsvLyBUaGVzZSBhcmUgbG9naWNhbCB2YWx1ZXMsIHRo ZSBtYXBwaW5nIHRvIHRoZSBTT0MNCj4gPiArLy8gYWN0dWFsIERNQSByZXF1ZXN0IGxpbmVzIGFy ZSBkb25lIGluIHRoZSBIQUwgZXh0ZW5zaW9uLg0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX1ZQVSAw DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfSVBVMiAxDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfSVBV MSAyDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfSERNSV9BVURJTyAzDQo+ID4gKyNkZWZpbmUgU0RN QV9SRVFfRUNTUEkxX1JYIDQNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9FQ1NQSTFfVFggNQ0KPiA+ ICsjZGVmaW5lIFNETUFfUkVRX0VDU1BJMl9SWCA2DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfRUNT UEkyX1RYIDcNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9FQ1NQSTNfUlggOA0KPiA+ICsjZGVmaW5l IFNETUFfUkVRX0VDU1BJM19UWCA5DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfRUNTUEk0X1JYIDEw DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfRUNTUEk0X1RYIDExDQo+ID4gKyNkZWZpbmUgU0RNQV9S RVFfRUNTUEk1X1JYIDEyDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfRUNTUEk1X1RYIDEzDQo+ID4g KyNkZWZpbmUgU0RNQV9SRVFfSTJDMV9SWCAxNA0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX0kyQzFf VFggMTUNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9JMkMyX1JYIDE2DQo+ID4gKyNkZWZpbmUgU0RN QV9SRVFfSTJDMl9UWCAxNw0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX0kyQzNfUlggMTgNCj4gPiAr I2RlZmluZSBTRE1BX1JFUV9JMkMzX1RYIDE5DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfVUFSVDFf UlggMjANCj4gPiArI2RlZmluZSBTRE1BX1JFUV9VQVJUMV9UWCAyMQ0KPiA+ICsjZGVmaW5lIFNE TUFfUkVRX1VBUlQyX1JYIDIyDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfVUFSVDJfVFggMjMNCj4g PiArI2RlZmluZSBTRE1BX1JFUV9VQVJUM19SWCAyNA0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX1VB UlQzX1RYIDI1DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfVUFSVDRfUlggMjYNCj4gPiArI2RlZmlu ZSBTRE1BX1JFUV9VQVJUNF9UWCAyNw0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX1VBUlQ1X1JYIDI4 DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfVUFSVDVfVFggMjkNCj4gPiArI2RlZmluZSBTRE1BX1JF UV9TUERJRl9SWCAzMA0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX1NQRElGX1RYIDMxDQo+ID4gKyNk ZWZpbmUgU0RNQV9SRVFfRVBJVDEgMzINCj4gPiArI2RlZmluZSBTRE1BX1JFUV9FUElUMiAzMw0K PiA+ICsjZGVmaW5lIFNETUFfUkVRX0dQVCAzNA0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX0FTUkNf UlhBIDM1DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfQVNSQ19SWEIgMzYNCj4gPiArI2RlZmluZSBT RE1BX1JFUV9BU1JDX1JYQyAzNw0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX0FTUkNfVFhBIDM4DQo+ ID4gKyNkZWZpbmUgU0RNQV9SRVFfQVNSQ19UWEIgMzkNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9B U1JDX1RYQyA0MA0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX0VTQUlfUlggNDENCj4gPiArI2RlZmlu ZSBTRE1BX1JFUV9FU0FJX1RYIDQyDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfQVNSQ19UWEFfMl9F U0FJX1RYIDQzDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfQVNSQ19UWEJfMl9FU0FJX1RYIDQ0DQo+ ID4gKyNkZWZpbmUgU0RNQV9SRVFfQVNSQ19UWENfMl9FU0FJX1RYIDQ1DQo+ID4gKyNkZWZpbmUg U0RNQV9SRVFfU1NJMV9SWDEgNDYNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9TU0kxX1RYMSA0Nw0K PiA+ICsjZGVmaW5lIFNETUFfUkVRX1NTSTFfUlgwIDQ4DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFf U1NJMV9UWDAgNDkNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9TU0kyX1JYMSA1MA0KPiA+ICsjZGVm aW5lIFNETUFfUkVRX1NTSTJfVFgxIDUxDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfU1NJMl9SWDAg NTINCj4gPiArI2RlZmluZSBTRE1BX1JFUV9TU0kyX1RYMCA1Mw0KPiA+ICsjZGVmaW5lIFNETUFf UkVRX1NTSTNfUlgxIDU0DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfU1NJM19UWDEgNTUNCj4gPiAr I2RlZmluZSBTRE1BX1JFUV9TU0kzX1JYMCA1Ng0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX1NTSTNf VFgwIDU3DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfRVhUMSA1OA0KPiA+ICsjZGVmaW5lIFNETUFf UkVRX0VYVDIgNTkNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9VQVJUNl9SWCA2MA0KPiA+ICsjZGVm aW5lIFNETUFfUkVRX1VBUlQ2X1RYIDYxDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfQURDMSA2Mg0K PiA+ICsjZGVmaW5lIFNETUFfUkVRX0FEQzIgNjMNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9JMkM0 X1JYIDY0DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfSTJDNF9UWCA2NQ0KPiA+ICsjZGVmaW5lIFNE TUFfUkVRX0NTSTEgNjYNCj4gPiArI2RlZmluZSBTRE1BX1JFUV9DU0kyIDY3DQo+ID4gKyNkZWZp bmUgU0RNQV9SRVFfUFhQIDY4DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfTENESUYxIDY5DQo+ID4g KyNkZWZpbmUgU0RNQV9SRVFfTENESUYyIDcwDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfUVNQSTFf UlggNzENCj4gPiArI2RlZmluZSBTRE1BX1JFUV9RU1BJMV9UWCA3Mg0KPiA+ICsjZGVmaW5lIFNE TUFfUkVRX1FTUEkyX1JYIDczDQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfUVNQSTJfVFggNzQNCj4g PiArI2RlZmluZSBTRE1BX1JFUV9TQUkxX1RYIDc1DQo+ID4gKyNkZWZpbmUgU0RNQV9SRVFfU0FJ MV9SWCA3Ng0KPiA+ICsjZGVmaW5lIFNETUFfUkVRX1NBSTJfVFggNzcNCj4gPiArI2RlZmluZSBT RE1BX1JFUV9TQUkyX1JYIDc4DQo+ID4gZGlmZiAtLWdpdCBhL1NpbGljb24vTlhQL2lNWDZQa2cv QWNwaVRhYmxlcy9Ec2R0LUVuZXQuYXNsDQo+IGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFi bGVzL0RzZHQtRW5ldC5hc2wNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAw MDAwMDAwMDAwMC4uZWRlZDdjZGFlN2QwDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1Np bGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0LUVuZXQuYXNsDQo+ID4gQEAgLTAsMCAr MSwxMDYgQEANCj4gPiArLyoqIEBmaWxlDQo+ID4gKyoNCj4gPiArKiAgQ29weXJpZ2h0IChjKSAy MDE4IE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiArKg0K PiA+ICsqICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4g KyogIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5zZQ0KPiA+ICsqICB3aGljaCBhY2NvbXBhbmll cyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJl DQo+IGZvdW5kIGF0DQo+ID4gKyoNCj4gaHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlv bi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZvcGVuc28NCj4gdXJjZS5vcmclMkZsaWNl bnNlcyUyRmJzZC0NCj4gbGljZW5zZS5waHAmYW1wO2RhdGE9MDIlN0MwMSU3Q0NocmlzdG9waGVy LkNvJTQwbWljcm9zb2Z0LmNvbSU3QzU3DQo+IGUxMzIyNjkzMGI0YTZjNWNkNjA4ZDY2NDEwY2Uy NiU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYg0KPiA0NyU3QzElN0MwJTdDNjM2ODA2 NDIwNjgyNzc4OTAzJmFtcDtzZGF0YT01U3o5ZFl6SjE4WUpZVyUyQkJvDQo+IDlXamRFa1lhViUy RkNLZ1l3b3h3M291Mzc3TXclM0QmYW1wO3Jlc2VydmVkPTANCj4gPiArKg0KPiA+ICsqICBUSEUg UFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElT Ig0KPiBCQVNJUywNCj4gPiArKiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9O UyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPiArKg0KPiA+ ICsqKi8NCj4gPiArDQo+ID4gK0RldmljZSAoRU5FVCkNCj4gPiArew0KPiA+ICsgIE5hbWUgKF9I SUQsICJOWFAwMTBEIikNCj4gPiArICBOYW1lIChfVUlELCAweDApDQo+ID4gKw0KPiA+ICsgIE1l dGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweEYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4g PiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAo UkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIC8vIEVORVQgTUFDIENvcmUg QmFzZSBhZGRyZXNzDQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjE4 ODAwMCwgMHg0MDAwLCApDQo+ID4gKw0KPiA+ICsgICAgICAvLyBFTkVUIE1BQyAwIENvcmUgSVJR DQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhp Z2gsIEV4Y2x1c2l2ZSkgeyAxNTAgfQ0KPiA+ICsNCj4gPiArICAgICAgLy8gRU5FVCBNQUMgMCAx NTg4IFRpbWVyIGludGVycnVwdA0KPiA+ICsgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3Vt ZXIsIExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUpIHsgMTUxIH0NCj4gPiArDQo+ID4gKyAg ICAgIC8vIEVycmF0YSBFUlIwMDY2ODc6IHdvcmthcm91bmQgZm9yIEdQSU8gaW50ZXJydXB0IHRv IGNvbm5lY3QgRW5ldA0KPiBpbnRlcnJ1cHQNCj4gPiArICAgICAgLy8gdG8gdGhlIEdQQw0KPiA+ ICsgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlSGlnaCwgU2hhcmVkLCBQdWxsRGVmYXVsdCwg MCwgIlxcX1NCLkdQSU8iLCkgeyA2IH0NCj4gPiArICAgIH0pDQo+ID4gKyAgICBSZXR1cm4gKFJC VUYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBOYW1lIChNQUMsIEJ1ZmZlciAoNikge30pDQo+ ID4gKyAgQ3JlYXRlRFdvcmRGaWVsZCAoTUFDLCAweDAwLCBNQUNMKQ0KPiA+ICsgIENyZWF0ZVdv cmRGaWVsZCAoTUFDLCAweDA0LCBNQUNIKQ0KPiA+ICsNCj4gPiArICAvLyBEZXZpY2UgU3BlY2lm aWMgTWV0aG9kIHRha2VzIDQgYXJnczoNCj4gPiArICAvLyAgQXJnMCA6IEJ1ZmZlciBjb250YWlu aW5nIGEgVVVJRCBbMTYgYnl0ZXNdDQo+ID4gKyAgLy8gIEFyZzEgOiBJbnRlZ2VyIGNvbnRhaW5p bmcgdGhlIFJldmlzaW9uIElEDQo+ID4gKyAgLy8gIEFyZzIgOiBJbnRlZ2VyIGNvbnRhaW5pbmcg dGhlIEZ1bmN0aW9uIEluZGV4DQo+ID4gKyAgLy8gIEFyZzMgOiBQYWNrYWdlIHRoYXQgY29udGFp bnMgZnVuY3Rpb24tc3BlY2lmaWMgYXJndW1lbnRzDQo+ID4gKyAgTWV0aG9kIChfRFNNLCAweDQs IE5vdFNlcmlhbGl6ZWQpIHsNCj4gPiArICAgIHN3aXRjaCAoVG9CdWZmZXIgKEFyZzApKSB7DQo+ ID4gKyAgICAvLyBpTVggRW5ldCBpbnRlcmZhY2UgaWRlbnRpZmllcg0KPiA+ICsgICAgY2FzZSAo VG9VVUlEICgiNEVCQkNCOUQtNDA4Ny00NzkxLTgwQkQtOEY4QzA4MDI0MjA2IikpIHsNCj4gPiAr ICAgICAgICAvLyBGdW5jdGlvbiBzZWxlY3Rvcg0KPiA+ICsgICAgICAgIHN3aXRjaCAoQXJnMikg ew0KPiA+ICsgICAgICAgIC8vIEZ1bmN0aW9uIDA6IFF1ZXJ5IHN1cHBvcnQNCj4gPiArICAgICAg ICAvLyAgIEJpdCAgRGVzY3JpcHRpb24NCj4gPiArICAgICAgICAvLyAgIC0tLSAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsgICAgICAgIC8vICAgICAwICBHZXQgcHJvcGVy dHkgKEZ1bmN0aW9uIDApDQo+ID4gKyAgICAgICAgLy8gICAgIDEgIEVuZXQgUEhZIGFkZHJlc3Mg b24gTURJTyBidXMgKEZ1bmN0aW9uIDEpDQo+ID4gKyAgICAgICAgLy8gICAgIDIgIEdldCBNYWMg QWRkcmVzcyAoRnVuY3Rpb24gMikNCj4gPiArICAgICAgICAvLyAgICAgMyAgR2V0IE1ESU8gQkFz ZSBBZGRyZXNzIChGdW5jdGlvbiAzKQ0KPiA+ICsgICAgICAgIGNhc2UgKDApIHsNCj4gPiArICAg ICAgICAgICAgLy8gUmV2aXNpb24gc2VsZWN0b3INCj4gPiArICAgICAgICAgICAgc3dpdGNoIChB cmcxKSB7DQo+ID4gKyAgICAgICAgICAgIGNhc2UgKDApIHsNCj4gPiArICAgICAgICAgICAgICAg IC8vIEZ1bmN0aW9ucyB7MCwxLDJ9IHN1cHBvcnRlZA0KPiA+ICsgICAgICAgICAgICAgICAgUmV0 dXJuIChCdWZmZXIoKSB7IDB4MDcgfSk7DQo+ID4gKyAgICAgICAgICAgICAgfQ0KPiA+ICsgICAg ICAgICAgICBkZWZhdWx0IHsNCj4gPiArICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyKCkg eyAweDAwIH0pOw0KPiA+ICsgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAgICAgfQ0KPiA+ ICsgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAvLyBGdW5jdGlvbiAxOiBSZXR1cm4g RW5ldCBQSFkgYWRkcmVzcyBvbiBNRElPIGJ1cy4NCj4gPiArICAgICAgICBjYXNlICgxKSB7DQo+ ID4gKyAgICAgICAgICAgIFJldHVybiAoMHgwMCk7DQo+ID4gKyAgICAgICAgICB9DQo+ID4gKw0K PiA+ICsgICAgICAgIC8vIEZ1bmN0aW9uIDI6IFJldHVybiBNYWMgQWRkcmVzcw0KPiA+ICsgICAg ICAgIGNhc2UgKDIpIHsNCj4gPiArICAgICAgICAgICAgaWYgKExFcXVhbCAoU0lHTiwgMHg0NzRD NDI0QykpIHsNCj4gPiArICAgICAgICAgICAgICBpZiAoTEVxdWFsIChSRVZOLCAxKSkgew0KPiA+ ICsgICAgICAgICAgICAgICAgaWYgKExlcXVhbCAoTUMwViwgMSkpIHsNCj4gPiArICAgICAgICAg ICAgICAgICAgU3RvcmUgKE1DMEwsIE1BQ0wpOw0KPiA+ICsgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUMwSCwgTUFDSCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgIFJldHVybiAoTUFDKQ0KPiA+ ICsgICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAg ICAgfQ0KPiA+ICsgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlcigpIHsgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCB9KTsNCj4gPiArICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAg ICAgICAgZGVmYXVsdCB7DQo+ID4gKyAgICAgICAgICAgIFJldHVybiAoQnVmZmVyKCkgeyAweDAw IH0pOw0KPiA+ICsgICAgICAgICAgfQ0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgICAgfQ0KPiA+ ICsgICAgZGVmYXVsdCB7DQo+ID4gKyAgICAgICAgUmV0dXJuIChCdWZmZXIoKSB7IDB4MDAgfSk7 DQo+ID4gKyAgICAgIH0NCj4gPiArICAgIH0NCj4gPiArICB9DQo+ID4gK30NCj4gPiBkaWZmIC0t Z2l0IGEvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0RzZHQtR2Z4LmFzbA0KPiBiL1Np bGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0LUdmeC5hc2wNCj4gPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uZWVjNzE4NjQyMTBlDQo+ID4gLS0t IC9kZXYvbnVsbA0KPiA+ICsrKyBiL1NpbGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0 LUdmeC5hc2wNCj4gPiBAQCAtMCwwICsxLDc0IEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsqDQo+ ID4gKyogIENvcHlyaWdodCAoYykgMjAxOCBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuDQo+ID4gKyoNCj4gPiArKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21w YW55aW5nIG1hdGVyaWFscw0KPiA+ICsqICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxl IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4g PiArKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0 IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiA+ICsqDQo+IGh0dHBzOi8vbmFt MDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGb3Bl bnNvDQo+IHVyY2Uub3JnJTJGbGljZW5zZXMlMkZic2QtDQo+IGxpY2Vuc2UucGhwJmFtcDtkYXRh PTAyJTdDMDElN0NDaHJpc3RvcGhlci5DbyU0MG1pY3Jvc29mdC5jb20lN0M1Nw0KPiBlMTMyMjY5 MzBiNGE2YzVjZDYwOGQ2NjQxMGNlMjYlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGIN Cj4gNDclN0MxJTdDMCU3QzYzNjgwNjQyMDY4Mjc3ODkwMyZhbXA7c2RhdGE9NVN6OWRZekoxOFlK WVclMkJCbw0KPiA5V2pkRWtZYVYlMkZDS2dZd294dzNvdTM3N013JTNEJmFtcDtyZXNlcnZlZD0w DQo+ID4gKyoNCj4gPiArKiAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJT RCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+ID4gKyogIFdJVEhPVVQgV0FSUkFO VElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9S IElNUExJRUQuDQo+ID4gKyoNCj4gPiArKiovDQo+ID4gKw0KPiA+ICtEZXZpY2UgKFZQVTApDQo+ ID4gK3sNCj4gPiArICBOYW1lIChfSElELCAiTlhQMDEwOSIpDQo+ID4gKyAgTmFtZSAoX1VJRCwg MHgwKQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9TVEEpIHsNCj4gPiArICAgIFJldHVybiAoMHgw KQ0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgTWV0aG9kIChfQ1JTLCAweDAsIE5vdFNlcmlhbGl6 ZWQpIHsNCj4gPiArICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkgew0KPiA+ICsg ICAgICBNRU1PUlkzMkZJWEVEIChSZWFkV3JpdGUsIDB4MDIwNDAwMDAsIDB4M0MwMDAsICkNCj4g PiArDQo+ID4gKyAgICAgIC8vIEpQRUcgY29kZWMgaW50ZXJydXB0IHJlcXVlc3QNCj4gPiArICAg ICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVz aXZlKSB7IDM1IH0NCj4gPiArDQo+ID4gKyAgICAgIC8vIFZQVSBpbnRlcnJ1cHQgcmVxdWVzdA0K PiA+ICsgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVIaWdo LCBFeGNsdXNpdmUpIHsgNDQgfQ0KPiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikN Cj4gPiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8vIERlc2NyaXB0aW9uOiBHcmFwaGljcyBQ cm9jZXNzaW5nIFVuaXQgKEdQVSkNCj4gPiArRGV2aWNlIChHUFUwKQ0KPiA+ICt7DQo+ID4gKyAg TmFtZSAoX0hJRCwgIlZFUkkyMDAwIikNCj4gPiArICBOYW1lIChfQ0lELCAiVkVSSTIwMDAiKQ0K PiA+ICsgIE5hbWUgKF9VSUQsIDApDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ ICsgICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMs IDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1w bGF0ZSAoKSB7DQo+ID4gKyAgICAgIC8vIEdQVSAzRCAoR0MyMDAwKQ0KPiA+ICsgICAgICBNRU1P UlkzMkZJWEVEIChSZWFkV3JpdGUsIDB4MDAxMzAwMDAsIDB4NDAwMCwgKQ0KPiA+ICsNCj4gPiAr ICAgICAgLy8gR1BVIDJEIChHQzMyMCkNCj4gPiArICAgICAgTUVNT1JZMzJGSVhFRCAoUmVhZFdy aXRlLCAweDAwMTM0MDAwLCAweDQwMDAsICkNCj4gPiArDQo+ID4gKyAgICAgIC8vIElQVSBCYXNl DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjYwMDAwMCwgMHg0MDAw MDAsICkNCj4gPiArDQo+ID4gKyAgICAgIC8vIEhETUkgUEhZDQo+ID4gKyAgICAgIE1FTU9SWTMy RklYRUQgKFJlYWRXcml0ZSwgMHgwMDEyMDAwMCwgMHg5MDAwLCApDQo+ID4gKw0KPiA+ICsgICAg ICAvLyBHQzIwMDANCj4gPiArICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZl bCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7IDQxIH0NCj4gPiArDQo+ID4gKyAgICAgIC8vIEdD MzIwDQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2 ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyA0MiB9DQo+ID4gKw0KPiA+ICsgICAgICAvLyBJUFUxIHN5bmMg aW50ZXJydXB0IHJlcXVlc3QNCj4gPiArICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVy LCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7IDM4IH0NCj4gPiArICAgIH0pDQo+ID4g KyAgICBSZXR1cm4gKFJCVUYpDQo+ID4gKyAgfQ0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL1Np bGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0LUdwaW8uYXNsDQo+IGIvU2lsaWNvbi9O WFAvaU1YNlBrZy9BY3BpVGFibGVzL0RzZHQtR3Bpby5hc2wNCj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDlhNWQyZjg1MDBhDQo+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ICsrKyBiL1NpbGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0LUdwaW8u YXNsDQo+ID4gQEAgLTAsMCArMSw1NSBAQA0KPiA+ICsvKiogQGZpbGUNCj4gPiArKg0KPiA+ICsq ICBDb3B5cmlnaHQgKGMpIDIwMTggTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl c2VydmVkLg0KPiA+ICsqDQo+ID4gKyogIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWlu ZyBtYXRlcmlhbHMNCj4gPiArKiAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRl ciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+ID4gKyog IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0 aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gPiArKg0KPiBodHRwczovL25hbTA2LnNh ZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRm9wZW5zbw0K PiB1cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBsaWNlbnNlLnBocCZhbXA7ZGF0YT0wMiU3 QzAxJTdDQ2hyaXN0b3BoZXIuQ28lNDBtaWNyb3NvZnQuY29tJTdDNTcNCj4gZTEzMjI2OTMwYjRh NmM1Y2Q2MDhkNjY0MTBjZTI2JTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiDQo+IDQ3 JTdDMSU3QzAlN0M2MzY4MDY0MjA2ODI3Nzg5MDMmYW1wO3NkYXRhPTVTejlkWXpKMThZSllXJTJC Qm8NCj4gOVdqZEVrWWFWJTJGQ0tnWXdveHczb3UzNzdNdyUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+ ICsqDQo+ID4gKyogIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElD RU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiA+ICsqICBXSVRIT1VUIFdBUlJBTlRJRVMg T1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBM SUVELg0KPiA+ICsqDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArRGV2aWNlIChHUElPKQ0KPiA+ICt7 DQo+ID4gKyAgTmFtZSAoX0hJRCwgIk5YUDAxMDMiKQ0KPiA+ICsgIE5hbWUgKF9VSUQsIDB4MCkN Cj4gPiArDQo+ID4gKyAgTWV0aG9kIChfU1RBKSB7DQo+ID4gKyAgICBSZXR1cm4gKDB4ZikNCj4g PiArICB9DQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX0NSUywgMHgwLCBOb3RTZXJpYWxpemVkKSB7 DQo+ID4gKyAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpIHsNCj4gPiArICAgICAg Ly8gR1BJTzEtNw0KPiA+ICsgICAgICBNRU1PUlkzMkZJWEVEIChSZWFkV3JpdGUsIDB4MDIwOUMw MDAsIDB4MUMwMDAsICkNCj4gPiArDQo+ID4gKyAgICAgIC8vIElPTVVYQw0KPiA+ICsgICAgICBN RU1PUlkzMkZJWEVEIChSZWFkV3JpdGUsIDB4MDIwRTAwMDAsIDB4NDAwMCwgKQ0KPiA+ICsNCj4g PiArICAgICAgLy8gR1BJTzEgMC0xNSwgMTYtMzENCj4gPiArICAgICAgSW50ZXJydXB0IChSZXNv dXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7IDk4LCA5OSB9DQo+ ID4gKw0KPiA+ICsgICAgICAvLyBHUElPMiAwLTE1LCAxNi0zMQ0KPiA+ICsgICAgICBJbnRlcnJ1 cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUpIHsgMTAw LCAxMDEgfQ0KPiA+ICsNCj4gPiArICAgICAgLy8gR1BJTzMgMC0xNSwgMTYtMzENCj4gPiArICAg ICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVz aXZlKSB7IDEwMiwgMTAzIH0NCj4gPiArDQo+ID4gKyAgICAgIC8vIEdQSU80IDAtMTUsIDE2LTMx DQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhp Z2gsIEV4Y2x1c2l2ZSkgeyAxMDQsIDEwNSB9DQo+ID4gKw0KPiA+ICsgICAgICAvLyBHUElPNSAw LTE1LCAxNi0zMQ0KPiA+ICsgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVs LCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUpIHsgMTA2LCAxMDcgfQ0KPiA+ICsNCj4gPiArICAgICAg Ly8gR1BJTzYgMC0xNSwgMTYtMzENCj4gPiArICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1 bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlKSB7IDEwOCwgMTA5IH0NCj4gPiArDQo+ ID4gKyAgICAgIC8vIEdQSU83IDAtMTUsIDE2LTMxDQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVz b3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyAxMTAsIDExMSB9 DQo+ID4gKyAgICB9KQ0KPiA+ICsgICAgUmV0dXJuIChSQlVGKQ0KPiA+ICsgIH0NCj4gPiArfQ0K PiA+IGRpZmYgLS1naXQgYS9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMvRHNkdC1JMmMu YXNsDQo+IGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0RzZHQtSTJjLmFzbA0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5hZjlmMTc4OTBi OTcNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3Bp VGFibGVzL0RzZHQtSTJjLmFzbA0KPiA+IEBAIC0wLDAgKzEsNjcgQEANCj4gPiArLyoqIEBmaWxl DQo+ID4gKyoNCj4gPiArKiAgQ29weXJpZ2h0IChjKSAyMDE4IE1pY3Jvc29mdCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiArKg0KPiA+ICsqICBUaGlzIHByb2dyYW0gYW5k IHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4gKyogIGFyZSBsaWNlbnNlZCBhbmQgbWFk ZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4g TGljZW5zZQ0KPiA+ICsqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRo ZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+ID4gKyoNCj4g aHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAl M0ElMkYlMkZvcGVuc28NCj4gdXJjZS5vcmclMkZsaWNlbnNlcyUyRmJzZC0NCj4gbGljZW5zZS5w aHAmYW1wO2RhdGE9MDIlN0MwMSU3Q0NocmlzdG9waGVyLkNvJTQwbWljcm9zb2Z0LmNvbSU3QzU3 DQo+IGUxMzIyNjkzMGI0YTZjNWNkNjA4ZDY2NDEwY2UyNiU3QzcyZjk4OGJmODZmMTQxYWY5MWFi MmQ3Y2QwMTFkYg0KPiA0NyU3QzElN0MwJTdDNjM2ODA2NDIwNjgyNzc4OTAzJmFtcDtzZGF0YT01 U3o5ZFl6SjE4WUpZVyUyQkJvDQo+IDlXamRFa1lhViUyRkNLZ1l3b3h3M291Mzc3TXclM0QmYW1w O3Jlc2VydmVkPTANCj4gPiArKg0KPiA+ICsqICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBV TkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gPiArKiAgV0lU SE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+ IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPiArKg0KPiA+ICsqKi8NCj4gPiArDQo+ID4gK0Rldmlj ZSAoSTJDMSkNCj4gPiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTA0IikNCj4gPiArICBO YW1lIChfVUlELCAweDEpDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAg UmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwg Tm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAo KSB7DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjFBMDAwMCwgMHgx NCwgKQ0KPiA+ICsgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3Rp dmVIaWdoLCBFeGNsdXNpdmUpIHsgNjggfQ0KPiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAo UkJVRikNCj4gPiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK0RldmljZSAoSTJDMikNCj4gPiAr ew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTA0IikNCj4gPiArICBOYW1lIChfVUlELCAweDIp DQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkg ew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAg IE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjFBNDAwMCwgMHgxNCwgKQ0KPiA+ICsgICAg ICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNp dmUpIHsgNjkgfQ0KPiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9 DQo+ID4gK30NCj4gPiArDQo+ID4gK0RldmljZSAoSTJDMykNCj4gPiArew0KPiA+ICsgIE5hbWUg KF9ISUQsICJOWFAwMTA0IikNCj4gPiArICBOYW1lIChfVUlELCAweDMpDQo+ID4gKw0KPiA+ICsg IE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsN Cj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFt ZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQg KFJlYWRXcml0ZSwgMHgwMjFBODAwMCwgMHgxNCwgKQ0KPiA+ICsgICAgICBJbnRlcnJ1cHQgKFJl c291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUpIHsgNzAgfQ0KPiA+ ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9DQo+ID4gK30NCj4gPiBk aWZmIC0tZ2l0IGEvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0RzZHQtUENJZS5hc2wN Cj4gYi9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMvRHNkdC1QQ0llLmFzbA0KPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4xZTA2MjdmOTMwMDAN Cj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFi bGVzL0RzZHQtUENJZS5hc2wNCj4gPiBAQCAtMCwwICsxLDI5OCBAQA0KPiA+ICsvKiogQGZpbGUN Cj4gPiArKg0KPiA+ICsqICBDb3B5cmlnaHQgKGMpIDIwMTggTWljcm9zb2Z0IENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICsqDQo+ID4gKyogIFRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiArKiAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRl IGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBM aWNlbnNlDQo+ID4gKyogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhl IGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gPiArKg0KPiBo dHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUz QSUyRiUyRm9wZW5zbw0KPiB1cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBsaWNlbnNlLnBo cCZhbXA7ZGF0YT0wMiU3QzAxJTdDQ2hyaXN0b3BoZXIuQ28lNDBtaWNyb3NvZnQuY29tJTdDNTcN Cj4gZTEzMjI2OTMwYjRhNmM1Y2Q2MDhkNjY0MTBjZTI2JTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIy ZDdjZDAxMWRiDQo+IDQ3JTdDMSU3QzAlN0M2MzY4MDY0MjA2ODI3Nzg5MDMmYW1wO3NkYXRhPTVT ejlkWXpKMThZSllXJTJCQm8NCj4gOVdqZEVrWWFWJTJGQ0tnWXdveHczb3UzNzdNdyUzRCZhbXA7 cmVzZXJ2ZWQ9MA0KPiA+ICsqDQo+ID4gKyogIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVO REVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiA+ICsqICBXSVRI T1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4g RVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+ICsqDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArRGV2aWNl IChQQ0kwKQ0KPiA+ICt7DQo+ID4gKyAgTmFtZSAoX0hJRCwgIlBOUDBBMDgiKQ0KPiA+ICsgIE5h bWUgKF9VSUQsIDApDQo+ID4gKyAgTmFtZSAoX1NUUiwgVW5pY29kZSAoIlBDSWUgMCBEZXZpY2Ui KSkNCj4gPiArICBOYW1lIChfQkJOLCAwKQ0KPiA+ICsgIE5hbWUgKF9TRUcsIDApDQo+ID4gKw0K PiANCj4gUGxlYXNlIGluY2x1ZGUgYSBfQ0NBIHByb3BlcnR5IGZvciBhbGwgRE1BIGNhcGFibGUg ZGV2aWNlIG9iamVjdHMgLQ0KPiB0aGlzIGlzIG1hbmRhdG9yeSBmb3IgQUNQSSBvbiBBUk0sIGFu ZCBldmVuIGlmIExpbnV4IHRvZGF5IGRvZXMgbm90DQo+IHN1cHBvcnQgQUNQSSBvbiAzMi1iaXQs IEknZCBsaWtlIHRvIGVuc3VyZSB0aGF0IHRoaXMgY29kZSBjb3VsZCB3b3JrDQo+IG9uIExpbnV4 IGlmIHdlIGV2ZXIgZG8gc3VwcG9ydCBpdC4NCj4gDQo+ID4gKyAgLy8gUENJRV9QTCBtZW1vcnkg bWFwDQo+ID4gKyAgT3BlcmF0aW9uUmVnaW9uIChQTEdDLCBTeXN0ZW1NZW1vcnksIDB4MDFGRkM3 MDAsIDB4MjIwKQ0KPiA+ICsgIEZpZWxkIChQTEdDLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkgew0KPiA+ICsgICAgT2Zmc2V0ICgweDJDKSwgIC8vIFNraXAgdG8gcmVnaXN0ZXIgMHgwMUZG QzcyQw0KPiA+ICsgICAgREJHMSwgMzIsICAgICAgIC8vIFBDSUVfUExfREVCVUcxDQo+ID4gKyAg fQ0KPiA+ICsNCj4gPiArICAvLyBJT01VWEMgbWVtb3J5IG1hcA0KPiA+ICsgIE9wZXJhdGlvblJl Z2lvbiAoSU1YQywgU3lzdGVtTWVtb3J5LCAweDAyMEUwMDAwLCAweDQwMDApDQo+ID4gKyAgRmll bGQgKElNWEMsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKSB7DQo+ID4gKyAgICBPZmZzZXQg KDB4MDQpLCAgLy8gU2tpcCB0byByZWdpc3RlciAweDAyMEUwMDA0DQo+ID4gKyAgICBHUFIxLCAz MiwgICAgICAgLy8gSU9NVVhDX0dQUjENCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vIFBDSWUg aXMgb25seSBhdmFpbGFibGUgaWYgUENJZSBQSFkgcmVmZXJlbmNlIGNsb2NrIGlzIGVuYWJsZWQg YW5kIGxpbmsgaXMgdXANCj4gPiArICBNZXRob2QgKF9TVEEpIHsNCj4gPiArICAgIE5hbWUgKExO SywgMHgwKTsNCj4gPiArICAgIE5hbWUgKEdQUiwgMHgwKTsNCj4gPiArICAgIFN0b3JlIChHUFIx LCBHUFIpOyAgLy8gcmVhZCBJT01VWENfR1BSMSByZWdpc3Rlcg0KPiA+ICsNCj4gPiArICAgIC8v IENoZWNrIGlmIHRoZSBQQ0llIFBIWSByZWZlcmVuY2UgY2xvY2sgaXMgZW5hYmxlZA0KPiA+ICsg ICAgSWYgKExOb3RFcXVhbCAoQW5kIChHUFIsIDB4MDAwMTAwMDApLCAweDAwMDEwMDAwKSkgew0K PiA+ICsgICAgICBSZXR1cm4gKDB4MCkNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBTdG9y ZSAoREJHMSwgTE5LKTsgIC8vIHJlYWQgUENJRV9QTF9ERUJVRzEgcmVnaXN0ZXINCj4gPiArDQo+ ID4gKyAgICAvLyBDaGVjayBpZiBsaW5rIGlzIGFscmVhZHkgdXAgYW5kIGlzIG5vdCBpbiB0cmFp bmluZw0KPiA+ICsgICAgLy8gIEJpdDQgIDogWzM2XTogeG1saF9saW5rX3VwIExUU1NNIHJlcG9y dHMgUEhZIGxpbmsgdXANCj4gPiArICAgIC8vICBCaXQyOSAgOiBbNjFdOiB4bWxoX2xpbmtfaW5f dHJhaW5pbmcgTFRTU00gcGVyZm9ybWluZyBsaW5rIHRyYWluaW5nDQo+ID4gKyAgICBJZiAoTEFu ZCAoQW5kIChEQkcxLCAweDAwMDAwMDEwKSwgTGVxdWFsIChBbmQgKERCRzEsIDB4MjAwMDAwMDAp LA0KPiAweDAwKSkpIHsNCj4gPiArICAgICAgUmV0dXJuICgweEYpDQo+ID4gKyAgICB9IGVsc2Ug ew0KPiA+ICsgICAgICBSZXR1cm4gKDB4MCkNCj4gPiArICAgIH0NCj4gPiArICB9DQo+ID4gKw0K PiA+ICsgIC8vIERlY2xhcmUgdGhlIHJlc291cmNlcyBhc3NpZ25lZCB0byB0aGlzIHJvb3QgY29t cGxleC4NCj4gPiArICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpIHsNCj4gPiArICAgIE5h bWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkgew0KPiA+ICsgICAgICBXb3JkQnVzTnVtYmVy ICgNCj4gPiArICAgICAgICBSZXNvdXJjZVByb2R1Y2VyLCAvLyBTcGVjaWZ5IGJ1cyByYW5nZWQg aXMgcGFzc2VkIHRvIGNoaWxkIGRldmljZXMNCj4gPiArICAgICAgICBNaW5GaXhlZCwgICAgICAg ICAvLyBTcGVjaWZ5IG1pbiBhZGRyZXNzIGlzIGZpeGVkDQo+ID4gKyAgICAgICAgTWF4Rml4ZWQs ICAgICAgICAgLy8gU3BlY2lmeSBtYXggYWRkcmVzcyBpcyBmaXhlZA0KPiA+ICsgICAgICAgIFBv c0RlY29kZSwgICAgICAgIC8vIFBvc2l0aXZlIGRlY29kZSBvZiBidXMgbnVtYmVyDQo+ID4gKyAg ICAgICAgMCwgICAgICAgICAgICAgICAgLy8gQWRkcmVzc0dyYW51bGFyaXR5IDIgcG93ZXIgb2Yg MA0KPiA+ICsgICAgICAgIDAsICAgICAgICAgICAgICAgIC8vIEFkZHJlc3NNaW5pbXVtIC0gTWlu aW11bSBCdXMgTnVtYmVyDQo+ID4gKyAgICAgICAgMSwgICAgICAgICAgICAgICAgLy8gQWRkcmVz c01heGltdW0gLSBNYXhpbXVtIEJ1cyBOdW1iZXINCj4gPiArICAgICAgICAwLCAgICAgICAgICAg ICAgICAvLyBBZGRyZXNzVHJhbnNsYXRpb24gLSBTZXQgdG8gMA0KPiA+ICsgICAgICAgIDIpICAg ICAgICAgICAgICAgIC8vIFJhbmdlTGVuZ3RoIC0gTnVtYmVyIG9mIEJ1c3Nlcw0KPiA+ICsNCj4g PiArICAgICAgLy8gUENJIG1lbW9yeSBzcGFjZQ0KPiA+ICsgICAgICBNZW1vcnkzMkZpeGVkIChS ZWFkV3JpdGUsIDB4MDExMDAwMDAsIDB4MDBFMDAwMDAsICkNCj4gPiArICAgIH0pDQo+ID4gKyAg ICBSZXR1cm4gKFJCVUYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLyBEZWNsYXJlIHRoZSBQ Q0kgUm91dGluZyBUYWJsZS4NCj4gPiArICBOYW1lIChfUFJULCBQYWNrYWdlKCkgew0KPiA+ICsg ICAgLy8gUm91dGluZyBmb3IgZGV2aWNlIDAsIGFsbCBmdW5jdGlvbnMuDQo+ID4gKyAgICAvLyBO b3RlOiBBUk0gZG9lc24ndCBzdXBwb3J0IExOSyBub2Rlcywgc28gdGhlIHRoaXJkIHBhcmFtDQo+ ID4gKyAgICAvLyBpcyAwIGFuZCB0aGUgZm91cnRoIHBhcmFtIGlzIHRoZSBTUEkgbnVtYmVyIG9m IHRoZSBpbnRlcnJ1cHQNCj4gPiArICAgIC8vIGxpbmUuDQo+IA0KPiBBUk0gc3VwcG9ydHMgTE5L IG5vZGVzIGp1c3QgZmluZSwgc28gSSBzdXBwb3NlIGl0IGlzIFdpbmRvd3Mgb24gQVJNDQo+IHRo YXQgZG9lcyBub3Qgc3VwcG9ydCB0aGVtPyBPdGhlcndpc2UsIGp1c3QgZHJvcCB0aGUgY29tbWVu dCAtIExOSw0KPiBub2RlcyBkb24ndCByZWFsbHkgYnV5IHVzIGFueXRoaW5nIGhlcmUgYW55d2F5 LCBzbyB0aGUgY3VycmVudA0KPiBkZXNjcmlwdGlvbiB3b3JrcyBqdXN0IGZpbmUuDQo+IA0KPiA+ ICsgICAgUGFja2FnZSgpIHsweDAwMDBGRkZGLCAwLCAwLCAxNTV9LCAvLyBJTlRBDQo+ID4gKyAg ICBQYWNrYWdlKCkgezB4MDAwMEZGRkYsIDEsIDAsIDE1NH0sIC8vIElOVEINCj4gPiArICAgIFBh Y2thZ2UoKSB7MHgwMDAwRkZGRiwgMiwgMCwgMTUzfSwgLy8gSU5UQw0KPiA+ICsgICAgUGFja2Fn ZSgpIHsweDAwMDBGRkZGLCAzLCAwLCAxNTJ9LCAvLyBJTlREL01TSQ0KPiA+ICsgIH0pDQo+ID4g Kw0KPiA+ICsgIE5hbWUgKFNVUFAsIDApIC8vIFBDSSBfT1NDIFN1cHBvcnQgRmllbGQgdmFsdWUN Cj4gPiArICBOYW1lIChDVFJMLCAwKSAvLyBQQ0kgX09TQyBDb250cm9sIEZpZWxkIHZhbHVlDQo+ ID4gKw0KPiA+ICsgIC8vIERlY2xhcmUgYW4gX09TQyAoT1MgQ29udHJvbCBIYW5kLW9mZikgbWV0 aG9kIHdoaWNoIHRha2VzIDQgYXJndW1lbnRzLg0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gQXJndW1l bnRzOg0KPiA+ICsgIC8vICAgQXJnMCAgQSBCdWZmZXIgY29udGFpbmluZyBhIFVVSUQNCj4gPiAr ICAvLyAgIEFyZzEgIEFuIEludGVnZXIgY29udGFpbmluZyBhIFJldmlzaW9uIElEIG9mIHRoZSBi dWZmZXIgZm9ybWF0DQo+ID4gKyAgLy8gICBBcmcyICBBbiBJbnRlZ2VyIGNvbnRhaW5pbmcgYSBj b3VudCBvZiBlbnRyaWVzIGluIEFyZzMNCj4gPiArICAvLyAgIEFyZzMgIEEgQnVmZmVyIGNvbnRh aW5pbmcgYSBsaXN0IG9mIERXT1JEIGNhcGFiaWxpdGllcw0KPiA+ICsgIC8vIFJldHVybiBWYWx1 ZToNCj4gPiArICAvLyAgIEEgQnVmZmVyIGNvbnRhaW5pbmcgYSBsaXN0IG9mIGNhcGFiaWxpdGll cw0KPiA+ICsgIE1ldGhvZCAoX09TQywgNCkgew0KPiA+ICsNCj4gPiArICAgIC8vIENyZWF0ZSBE V29yZC1hZGRyZXNzYWJsZSBmaWVsZHMgZnJvbSB0aGUgQ2FwYWJpbGl0aWVzIEJ1ZmZlcg0KPiA+ ICsgICAgLy8gQ3JlYXRlIENEVzEgb3V0c2lkZSB0aGUgdGVzdCBhcyBpdCdzIHVzZWQgaW4gdGhl IGVsc2UgY2xhdXNlLg0KPiA+ICsgICAgLy8gVGhlIGZpcnN0IERXT1JEIGluIHRoZSBfT1NDIENh cGFiaWxpdGllcyBCdWZmZXIgY29udGFpbnMgYml0cw0KPiA+ICsgICAgLy8gdGhhdCBhcmUgZ2Vu ZXJpYyB0byBfT1NDDQo+ID4gKyAgICAvLyBQQ0kgRmlybXdhcmUgU3BlY2lmaWNhdGlvbiAtIDQu NS4xLg0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIEFDUEkgLSA2LjIuMTANCj4gPiArICAgIC8v IENEVyByZXR1cm4gdmFsdWUgaW5mb3JtYXRpb24NCj4gPiArICAgIC8vIEJpdCAwIC0gUmVzZXJ2 ZWQgKG5vdCB1c2VkKQ0KPiA+ICsgICAgLy8gQml0IDEgLSBfT1NDIGZhaWx1cmUuIFBsYXRmb3Jt IEZpcm13YXJlIHdhcyB1bmFibGUgdG8gcHJvY2VzcyB0aGUNCj4gcmVxdWVzdCBvciBxdWVyeQ0K PiA+ICsgICAgLy8gQml0IDIgLSBVbnJlY29nbml6ZWQgVVVJRA0KPiA+ICsgICAgLy8gQml0IDMg LSBVbnJlY29nbml6ZWQgUmV2aXNpb24NCj4gPiArICAgIC8vIEJpdCA0IC0gQ2FwYWJpbGl0aWVz IE1hc2tlZA0KPiA+ICsgICAgLy8gQWxsIG90aGVycyByZXNlcnZlZA0KPiA+ICsNCj4gPiArICAg IENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIDAsIENEVzEpDQo+ID4gKyAgICBJZiAoTEVxdWFsIChB cmcwLCBUb1VVSUQgKCIzM0RCNEQ1Qi0xRkY3LTQwMUMtOTY1Ny0NCj4gNzQ0MUMwM0RENzY2Iikp KSB7DQo+ID4gKyAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIDQsIENEVzIpDQo+ID4gKyAg ICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIDgsIENEVzMpDQo+ID4gKw0KPiA+ICsgICAgICAv LyBTYXZlIENhcGFiaWxpdGllcyBEV29yZCAyICYgMw0KPiA+ICsgICAgICAvLyBUaGUgc2Vjb25k IERXT1JEIGluIHRoZSBfT1NDIENhcGFiaWxpdGllcyBCdWZmZXIgaXMgdGhlIFN1cHBvcnQgRmll bGQNCj4gPiArICAgICAgLy8gVGhlIHRoaXJkIERXT1JEIGluIHRoZSBfT1NDIENhcGFiaWxpdGll cyBCdWZmZXIgaXMgdGhlIENvbnRyb2wgRmllbGQNCj4gPiArICAgICAgLy8gUENJIEZpcm13YXJl IFNwZWNpZmljYXRpb24gLSA0LjUuMS4NCj4gPiArICAgICAgLy8gU3VwcG9ydGVkIGZlYXR1cmUg c2hvdWxkIGJlIHNldCBpbiB0aGUgY29udHJvbCBmaWVsZA0KPiA+ICsgICAgICAvLw0KPiA+ICsg ICAgICAvLyBTdXBwb3J0IGZpZWxkDQo+ID4gKyAgICAgIC8vIEJpdCAwIC0gRXh0ZW5kZWQgUENJ IENvbmZpZyBvcGVyYXRpb24gcmVnaW9ucyBzdXBwb3J0ZWQNCj4gPiArICAgICAgLy8gQml0IDEg LSBBY3RpdmUgU3RhdGUgUG93ZXIgTWFuYWdlbWVudCBzdXBwb3J0ZWQNCj4gPiArICAgICAgLy8g Qml0IDIgLSBDbG9jayBQb3dlciBNYW5hZ2VtZW50IENhcGFiaWxpdHkgc3VwcG9ydGVkDQo+ID4g KyAgICAgIC8vIEJpdCAzIC0gUENJIFNlZ21lbnQgR3JvdXBzIHN1cHBvcnRlZA0KPiA+ICsgICAg ICAvLyBCaXQgNCAtIE1TSSBzdXBwb3J0ZWQNCj4gPiArICAgICAgLy8gQml0IDUgLSBPcHRpbWl6 ZWQgQnVmZmVyIEZsdXNoIGFuZCBGaWxsIHN1cHBvcnRlZA0KPiA+ICsgICAgICAvLyBCaXQgNiAt IEFTUE0gT3B0aW9uYWxpdHkgc3VwcG9ydGVkDQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIC8v IENvbnRyb2wgZmllbGQNCj4gPiArICAgICAgLy8gQml0IDAgLSBQQ0kgRXhwcmVzcyBOYXRpdmUg SG90IFBsdWcgY29udHJvbA0KPiA+ICsgICAgICAvLyBCaXQgMSAtIFNIUEMgTmF0aXZlIEhvdCBQ bHVnIGNvbnRyb2wNCj4gPiArICAgICAgLy8gQml0IDIgLSBQQ0kgRXhwcmVzcyBOYXRpdmUgUG93 ZXIgTWFuYWdlbWVudCBFdmVudHMgY29udHJvbA0KPiA+ICsgICAgICAvLyBCaXQgMyAtIFBDSSBF eHByZXNzIEFkdmFuY2VkIEVycm9yIFJlcG9ydGluZyBjb250cm9sDQo+ID4gKyAgICAgIC8vIEJp dCA0IC0gUENJIEV4cHJlc3MgQ2FwYWJpbGl0eSBTdHJ1Y3R1cmUgY29udHJvbA0KPiA+ICsgICAg ICAvLyBCaXQgNSAtIExhdGVuY3kgVG9sZXJhbmNlIFJlcG9ydGluZyBjb250cm9sDQo+ID4gKw0K PiA+ICsgICAgICBTdG9yZSAoQ0RXMiwgU1VQUCkNCj4gPiArICAgICAgU3RvcmUgKENEVzMsIENU UkwpDQo+ID4gKw0KPiA+ICsgICAgICAvLyBPbmx5IGFsbG93IG5hdGl2ZSBob3QgcGx1ZyBjb250 cm9sIGlmIE9TIHN1cHBvcnRzOg0KPiA+ICsgICAgICAvLyAgQVNQTQ0KPiA+ICsgICAgICAvLyAg Q2xvY2sgUE0NCj4gPiArICAgICAgLy8gIE1TSS9NU0ktWA0KPiA+ICsgICAgICBJZiAoTE5vdEVx dWFsIChBbmQgKFNVUFAsIDB4MTYpLCAweDE2KSkgew0KPiA+ICsgICAgICAgIEFuZCAoQ1RSTCwg MHgxRSwgQ1RSTCkNCj4gPiArICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgLy8gU3BlYyBkb2Vz IG5vdCBtZW50aW9uIGlmIHN0YW5kYXJkIGhvdCBwbHVnIGlzIHN1cHBvcnRlZA0KPiA+ICsgICAg ICAvLyBzbyB1bm1hc2sgdGhlIGJpdA0KPiA+ICsgICAgICBBbmQgKENUUkwsIDB4MUQsIENUUkwp DQo+ID4gKw0KPiA+ICsgICAgICAvLyBDaGVjayBmb3IgdW5rbm93biByZXZpc2lvbi4NCj4gPiAr ICAgICAgSWYgKExOb3RFcXVhbCAoQXJnMSwgT25lKSkgew0KPiA+ICsgICAgICAgIE9yIChDRFcx LCAweDA4LCBDRFcxKQ0KPiA+ICsgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAvLyBDaGVjayBp ZiBjYXBhYmlsaXRpZXMgYml0cyB3ZXJlIG1hc2tlZC4NCj4gPiArICAgICAgSWYgKExOb3RFcXVh bCAoQ0RXMywgQ1RSTCkpIHsNCj4gPiArICAgICAgICBPciAoQ0RXMSwgMHgxMCwgQ0RXMSkNCj4g PiArICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgLy8gVXBkYXRlIERXT1JEMyBpbiB0aGUgYnVm ZmVyLg0KPiA+ICsgICAgICBTdG9yZSAoQ1RSTCwgQ0RXMykNCj4gPiArICAgICAgUmV0dXJuIChB cmczKQ0KPiA+ICsgICAgfSBlbHNlIHsNCj4gPiArICAgICAgLy8gVW5yZWNvZ25pemVkIFVVSUQN Cj4gPiArICAgICAgT3IgKENEVzEsIDQsIENEVzEpDQo+ID4gKyAgICAgIFJldHVybiAoQXJnMykN Cj4gPiArICAgIH0NCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vIERlY2xhcmUgYSBfRFNNIG1l dGhvZCBmb3IgdmFyaW91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IHRoZSBPUy4NCj4gPiArICAvLyBT ZWUgdGhlIEFQQ0kgc3BlYywgU2VjdGlvbiA5LjE0LjEsDQo+ID4gKyAgLy8gYW5kIHRoZSBQQ0kg Rlcgc3BlYywgU2VjdGlvbiA0LjYuDQo+ID4gKyAgLy8gU2VlIGFsc286DQo+ID4gKyAgLy8NCj4g aHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAl M0ElMkYlMkZkb3dubG8NCj4gYWQubWljcm9zb2Z0LmNvbSUyRmRvd25sb2FkJTJGOSUyRmMlMkY1 JTJGOWM1YjIxNjctODAxNy00YmFlLQ0KPiA5ZmRlLWQ1OTliYWM4MTg0YSUyRlBDSS0NCj4gcnNj LmRvYyZhbXA7ZGF0YT0wMiU3QzAxJTdDQ2hyaXN0b3BoZXIuQ28lNDBtaWNyb3NvZnQuY29tJTdD NTdlMTMyDQo+IDI2OTMwYjRhNmM1Y2Q2MDhkNjY0MTBjZTI2JTdDNzJmOTg4YmY4NmYxNDFhZjkx YWIyZDdjZDAxMWRiNDclNw0KPiBDMSU3QzAlN0M2MzY4MDY0MjA2ODI3Nzg5MDMmYW1wO3NkYXRh PSUyRiUyQnZBSTFnZzVGc0VEanJTUTFSbw0KPiBtSEkwQUtWT21pQmFpNzl0UDBxVEFPZyUzRCZh bXA7cmVzZXJ2ZWQ9MA0KPiA+ICsgIE1ldGhvZCAoX0RTTSwgMHg0LCBTZXJpYWxpemVkKSB7DQo+ ID4gKyAgICAvLyBNYXRjaCBhZ2FpbnN0IHRoZSBfRFNNIFBDSSBVVUlELiBQQ0kgZmlybXdhcmUg c3BlYyAtIDQuNi4xDQo+ID4gKyAgICAvLyAgICAgQXJnMCAtIFVVSUQNCj4gPiArICAgIC8vICAg ICBBcmcxIC0gUmV2aXNpb24gSUQNCj4gPiArICAgIC8vICAgICBBcmcyIC0gRnVuY3Rpb24gSW5k ZXgNCj4gPiArICAgIC8vICAgICBBcmczIC0gRW1wdHkgUGFja2FnZQ0KPiA+ICsgICAgLy8NCj4g PiArICAgIC8vIFJldmlzaW9uIDEgJiAyDQo+ID4gKyAgICAvLyAgICAgRnVuY3Rpb24gMSAtIFBD SSBFeHByZXNzIFNsb3QgSW5mb3JtYXRpb24NCj4gPiArICAgIC8vICAgICBGdW5jdGlvbiAyIC0g UENJIEV4cHJlc3MgU2xvdCBOdW1iZXINCj4gPiArICAgIC8vICAgICBGdW5jdGlvbiAzIC0gVmVu ZG9yLXNwZWNpZmljIFRva2VuIElEDQo+ID4gKyAgICAvLyAgICAgRnVuY3Rpb24gNCAtIFBDSSBC dXMgQ2FwYWJpbGl0aWVzDQo+ID4gKyAgICAvLyAgICAgRnVuY3Rpb24gNSAtIElnbm9yZSBQQ0kg Qm9vdCBDb25maWd1cmF0aW9uDQo+ID4gKyAgICAvLyBSZXZpc2lvbiAyIG9ubHkNCj4gPiArICAg IC8vICAgICBGdW5jdGlvbiA2IC0gTFRSIE1heGltdW0gTGF0ZW5jeQ0KPiA+ICsgICAgLy8gICAg IEZ1bmN0aW9uIDcgLSBFeHByZXNzIGRldmljZSB1bmRlciBPUw0KPiA+ICsgICAgSWYgKExFcXVh bCAoQXJnMCwgVG9VVUlEICgiRTVDOTM3RDAtMzU1My00ZDdhLTkxMTctDQo+IEVBNEQxOUMzNDM0 RCIpKSkgew0KPiA+ICsNCj4gPiArICAgICAgc3dpdGNoIChUb0ludGVnZXIgKEFyZzIpKSB7DQo+ ID4gKyAgICAgIC8vIEZ1bmN0aW9uIDA6IFJldHVybiBzdXBwb3J0ZWQgZnVuY3Rpb25zIGFzIGEg Yml0LWZpZWxkDQo+ID4gKyAgICAgIC8vIHdpdGggb25lIGJpdCBmb3IgZWFjaCBzdXBwb3J0ZWQg ZnVuY3Rpb24uDQo+ID4gKyAgICAgIC8vIEJpdCAwIG11c3QgYWx3YXlzIGJlIHNldCwgYXMgdGhh dCByZXByZXNlbnRzDQo+ID4gKyAgICAgIC8vIGZ1bmN0aW9uIDAgKHdoaWNoIGlzIHdoYXQgaXMg YmVpbmcgY2FsbGVkIGhlcmUpLg0KPiA+ICsgICAgICAvLyBTdXBwb3J0IGZvciBkaWZmZXJlbnQg ZnVuY3Rpb25zIG1heSBkZXBlbmQgb24NCj4gPiArICAgICAgLy8gdGhlIHJldmlzaW9uIElEIG9m IHRoZSBpbnRlcmZhY2UsIHBhc3NlZCBhcyBBcmcxLg0KPiA+ICsNCj4gPiArICAgICAgLy8gRnVu Y3Rpb24gMDogR2V0IHN1cHBvcnRlZCBmdW5jdGlvbnMNCj4gPiArICAgICAgY2FzZSAoMCkgew0K PiA+ICsgICAgICAgICAgLy8gRnVuY3Rpb25zIDAsMSw1IGFyZSBzdXBwb3J0ZWQuDQo+ID4gKyAg ICAgICAgICBpZiAoTEVxdWFsIChBcmcxLCAxKSkgew0KPiA+ICsgICAgICAgICAgICByZXR1cm4g KEJ1ZmZlcigpIHsgMHgyMyB9KQ0KPiA+ICsgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAg ICAgIC8vIEZ1bmN0aW9ucyAwLDEsNSw3IGFyZSBzdXBwb3J0ZWQuDQo+ID4gKyAgICAgICAgICBp ZiAoTEVxdWFsIChBcmcxLCAyKSkgew0KPiA+ICsgICAgICAgICAgICByZXR1cm4gKEJ1ZmZlcigp IHsgMHhBMyB9KQ0KPiA+ICsgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAgIC8vIEZ1 bmN0aW9ucyAwLDEsNSw3IGFyZSBzdXBwb3J0ZWQgZm9yDQo+ID4gKyAgICAgICAgICAvLyBmdXR1 cmUgcmV2aXNpb24uIEV4cGVjdCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5DQo+ID4gKyAgICAgICAg ICByZXR1cm4gKEJ1ZmZlcigpIHsgMHhBMyB9KQ0KPiA+ICsgICAgICAgIH0NCj4gPiArDQo+ID4g KyAgICAgIC8vIEZ1bmN0aW9uIDE6IFBDSSBFeHByZXNzIFNsb3QgSW5mb3JtYXRpb24NCj4gPiAr ICAgICAgLy8gUENJIGZpcm13YXJlIHNwZWMgLSA0LjYuMQ0KPiA+ICsgICAgICBjYXNlICgxKSB7 DQo+ID4gKyAgICAgICAgICAvLyBQYWNrYWdlIGl0ZW0gMToNCj4gPiArICAgICAgICAgIC8vICAg IDA6IEZhaWx1cmUNCj4gPiArICAgICAgICAgIC8vICAgIDE6IFN1Y2Nlc3MNCj4gPiArICAgICAg ICAgIC8vIFBhY2thZ2UgaXRlbSAyOg0KPiA+ICsgICAgICAgICAgLy8gIEludGVnZXIgMTpCaXQg UG9zaXRpb24NCj4gPiArICAgICAgICAgIC8vICAgICAgICAwIFN1cHBvcnRzIHgxDQo+ID4gKyAg ICAgICAgICAvLyAgICAgICAgMSBTdXBwb3J0cyB4Mg0KPiA+ICsgICAgICAgICAgLy8gICAgICAg IDIgU3VwcG9ydHMgeDQNCj4gPiArICAgICAgICAgIC8vICAgICAgICAzIFN1cHBvcnRzIHg4DQo+ ID4gKyAgICAgICAgICAvLyAgICAgICAgNCBTdXBwb3J0cyB4MTINCj4gPiArICAgICAgICAgIC8v ICAgICAgICA1IFN1cHBvcnRzIHgxNg0KPiA+ICsgICAgICAgICAgLy8gIEludGVnZXIgMjoNCj4g PiArICAgICAgICAgIC8vICAgICAgICAwaCBVbmtub3duDQo+ID4gKyAgICAgICAgICAvLyAgICAg ICAgMWggUENJIEV4cHJlc3MgQ2FyZCBTbG90DQo+ID4gKyAgICAgICAgICAvLyAgICAgICAgMmgg UENJIEV4cHJlc3MgU2VydmVyIEkvTyBNb2R1bGUgU2xvdA0KPiA+ICsgICAgICAgICAgLy8gICAg ICAgIDNoIFBDSSBFeHByZXNzIEV4cHJlc3NDYXJkKiBTbG90DQo+ID4gKyAgICAgICAgICAvLyAg ICAgICAgNGggUENJIEV4cHJlc3MgTWluaSBDYXJkIFNsb3QNCj4gPiArICAgICAgICAgIC8vICAg ICAgICA1aCBQQ0kgRXhwcmVzcyBXaXJlbGVzcyBGb3JtIEZhY3RvciBTbG90DQo+ID4gKyAgICAg ICAgICAvLyAgICAgICAgT3RoZXJzIFJlc2VydmVkDQo+ID4gKyAgICAgICAgICAvLyAgSW50ZWdl ciAzOg0KPiA+ICsgICAgICAgICAgLy8gICAgICAgIDAgU01CdXMgc2lnbmFsDQo+ID4gKyAgICAg ICAgICAvLyAgICAgICAgMSBXQUtFIyBzaWduYWwNCj4gPiArICAgICAgICAgIHJldHVybiAoIFBh Y2thZ2UgKDIpIHsNCj4gPiArICAgICAgICAgICAgMHgwMSwgLy8gU3RhdHVzIHN1Y2Nlc3MgKDEp DQo+ID4gKyAgICAgICAgICAgIFBhY2thZ2UoKSB7DQo+ID4gKyAgICAgICAgICAgICAgMCwgLy8g U3VwcG9ydHMgeDENCj4gPiArICAgICAgICAgICAgICA0LCAvLyBQQ0kgRXhwcmVzcyBNaW5pIENh cmQgU2xvdA0KPiA+ICsgICAgICAgICAgICAgIDEgIC8vIFN1cHBvcnRlZCBzaWduYWxzIChubyBT TUJ1cywgV0FLRSMpDQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAgIH0pDQo+ID4g KyAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgLy8gRnVuY3Rpb24gNTogSWdub3JlIFBDSSBC b290IENvbmZpZ3VyYXRpb25zDQo+ID4gKyAgICAgIC8vIFBDSSBmaXJtd2FyZSBzcGVjIC0gNC42 LjUNCj4gPiArICAgICAgY2FzZSAoNSkgew0KPiA+ICsgICAgICAgICAgLy8gQWx3YXlzIGFsbG93 IE9TIHRvIHJlYmFsYW5jZQ0KPiA+ICsgICAgICAgICAgcmV0dXJuICgweDAxKQ0KPiA+ICsgICAg ICAgIH0NCj4gPiArDQo+ID4gKyAgICAgIC8vIEZ1bmN0aW9uIDc6IE5hbWluZyBhIFBDSSBvciBQ Q0kgRXhwcmVzcyBEZXZpY2UgVW5kZXINCj4gPiArICAgICAgLy8gICAgICAgICAgICAgT3BlcmF0 aW5nIFN5c3RlbXMNCj4gPiArICAgICAgLy8gUENJIGZpcm13YXJlIHNwZWMgLSA0LjYuNw0KPiA+ ICsgICAgICBjYXNlICg3KSB7DQo+ID4gKyAgICAgICAgICAvLyBWZXJpZnkgcmV2aXNpb24gMg0K PiA+ICsgICAgICAgICAgaWYgKExFcXVhbCAoQXJnMSwgMikpIHsNCj4gPiArICAgICAgICAgICAg Ly8gUENJIEV4cHJlc3MgU2xvdCBQYXJzaW5nDQo+ID4gKyAgICAgICAgICAgIFJldHVybiAoIFBh Y2thZ2UgKDIpIHsNCj4gPiArICAgICAgICAgICAgICAxLCAgICAgICAgICAgIC8vIEluc3RhbmNl IG9mIHRoZSBlbnVtZXJhdGlvbg0KPiA+ICsgICAgICAgICAgICAgICJQQ0llIFNsb3QgMSIgLy8g U3RyaW5nIG5hbWUgd2hpY2ggbWF0Y2hlcyB0aGUgbGFiZWwgb24gdGhlIGNoYXNzaXMNCj4gPiAr ICAgICAgICAgICAgfSkNCj4gPiArICAgICAgICAgIH0NCj4gPiArICAgICAgICB9DQo+ID4gKyAg ICAgIH0NCj4gPiArICAgIH0NCj4gPiArICAgIHJldHVybiAoQnVmZmVyKCkgeyAwIH0pDQo+ID4g KyAgfQ0KPiA+ICsNCj4gPiArICAvLyBSb290IFBvcnQgMCBEZXZpY2Ugd2l0aGluIHRoZSBSb290 IENvbXBsZXguDQo+ID4gKyAgRGV2aWNlIChSUDApIHsNCj4gPiArICAgIE5hbWUgKF9BRFIsIDAp ICAvLyBEZXZpY2UgMCwgRnVuY3Rpb24gMA0KPiA+ICsgICAgTmFtZSAoX1MwVywgNCkgIC8vIFN1 cHBvcnRzIHdha2UNCj4gPiArICB9DQo+ID4gKw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL1Np bGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0LVBsYXRmb3JtLmFzbA0KPiBiL1NpbGlj b24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0LVBsYXRmb3JtLmFzbA0KPiA+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4wYmRjNzgwODBkMjYNCj4gPiAt LS0gL2Rldi9udWxsDQo+ID4gKysrIGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0Rz ZHQtUGxhdGZvcm0uYXNsDQo+ID4gQEAgLTAsMCArMSwxMDYgQEANCj4gPiArLyoqIEBmaWxlDQo+ ID4gKyoNCj4gPiArKiAgQ29weXJpZ2h0IChjKSAyMDE4IE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiArKg0KPiA+ICsqICBUaGlzIHByb2dyYW0gYW5kIHRo ZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4gKyogIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBh dmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGlj ZW5zZQ0KPiA+ICsqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBm dWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+ID4gKyoNCj4gaHR0 cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0El MkYlMkZvcGVuc28NCj4gdXJjZS5vcmclMkZsaWNlbnNlcyUyRmJzZC0NCj4gbGljZW5zZS5waHAm YW1wO2RhdGE9MDIlN0MwMSU3Q0NocmlzdG9waGVyLkNvJTQwbWljcm9zb2Z0LmNvbSU3QzU3DQo+ IGUxMzIyNjkzMGI0YTZjNWNkNjA4ZDY2NDEwY2UyNiU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3 Y2QwMTFkYg0KPiA0NyU3QzElN0MwJTdDNjM2ODA2NDIwNjgyNzc4OTAzJmFtcDtzZGF0YT01U3o5 ZFl6SjE4WUpZVyUyQkJvDQo+IDlXamRFa1lhViUyRkNLZ1l3b3h3M291Mzc3TXclM0QmYW1wO3Jl c2VydmVkPTANCj4gPiArKg0KPiA+ICsqICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRF UiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gPiArKiAgV0lUSE9V VCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVY UFJFU1MgT1IgSU1QTElFRC4NCj4gPiArKg0KPiA+ICsqKi8NCj4gPiArDQo+ID4gK09wZXJhdGlv blJlZ2lvbiAoR0xCTCwgU3lzdGVtTWVtb3J5LCAweDEwODE3MDAwLCAweDEwKQ0KPiA+ICtGaWVs ZCAoR0xCTCwgQW55QWNjLCBOb2xvY2ssIFByZXNlcnZlKQ0KPiA+ICt7DQo+ID4gKyAgT2Zmc2V0 ICgwKSwgICAgICAgLy8gTWlzY2VsbGFuZW91cyBEeW5hbWljIFJlZ2lzdGVyczoNCj4gPiArICBT SUdOLCAzMiwgICAgICAgICAvLyBHbG9iYWwgUGFnZSBTaWduYXR1cmUgJ0dMQkwnDQo+ID4gKyAg UkVWTiwgOCwgICAgICAgICAgLy8gUmV2aXNpb24NCj4gPiArICAgICAgLCA4LCAgICAgICAgICAv LyBSZXNlcnZlZA0KPiA+ICsgICAgICAsIDgsICAgICAgICAgIC8vIFJlc2VydmVkDQo+ID4gKyAg ICAgICwgOCwgICAgICAgICAgLy8gUmVzZXJ2ZWQNCj4gPiArICBNMElELCA4LCAgICAgICAgICAv LyBNQUMgMCBJRA0KPiA+ICsgIE1DMFYsIDgsICAgICAgICAgIC8vIE1BQyAwIFZhbGlkDQo+ID4g KyAgTUMwTCwgMzIsICAgICAgICAgLy8gTUFDIEFkZHJlc3MgMCBMb3cNCj4gPiArICBNQzBILCAx NiwgICAgICAgICAvLyBNQUMgQWRkcmVzcyAwIEhpZ2gNCj4gPiArfQ0KPiA+ICsNCj4gPiArRGV2 aWNlIChDUFUwKQ0KPiA+ICt7DQo+ID4gKyAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IikNCj4gPiAr ICBOYW1lIChfVUlELCAweDApDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsg ICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtEZXZpY2UgKENQ VTEpDQo+ID4gK3sNCj4gPiArICBOYW1lIChfSElELCAiQUNQSTAwMDciKQ0KPiA+ICsgIE5hbWUg KF9VSUQsIDB4MSkNCj4gPiArDQo+ID4gKyAgTWV0aG9kIChfU1RBKSB7DQo+ID4gKyAgICBSZXR1 cm4gKDB4ZikNCj4gPiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK0RldmljZSAoQ1BVMikNCj4g PiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJBQ1BJMDAwNyIpDQo+ID4gKyAgTmFtZSAoX1VJRCwg MHgyKQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9TVEEpIHsNCj4gPiArICAgIFJldHVybiAoMHhm KQ0KPiA+ICsgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArRGV2aWNlIChDUFUzKQ0KPiA+ICt7DQo+ ID4gKyAgTmFtZSAoX0hJRCwgIkFDUEkwMDA3IikNCj4gPiArICBOYW1lIChfVUlELCAweDMpDQo+ ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4g KyAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvLyBUaW1lcnMgSEFMIGV4dGVuc2lvbg0KPiA+ICtE ZXZpY2UgKEVQSVQpDQo+ID4gK3sNCj4gPiArICBOYW1lIChfSElELCAiTlhQMDEwMSIpDQo+ID4g KyAgTmFtZSAoX1VJRCwgMHgwKQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9TVEEpIHsNCj4gPiAr ICAgIFJldHVybiAoMHhmKQ0KPiA+ICsgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLy8gUGxhdGZv cm0gRXh0ZW5zaW9uIFBsdWdpbg0KPiA+ICtEZXZpY2UgKFBFUDApDQo+ID4gK3sNCj4gPiArICBO YW1lIChfSElELCAiTlhQMDEwMiIpDQo+ID4gKyAgTmFtZSAoX1VJRCwgMHgwKQ0KPiA+ICsNCj4g PiArICBNZXRob2QgKF9TVEEpIHsNCj4gPiArICAgIFJldHVybiAoMHhmKQ0KPiA+ICsgIH0NCj4g PiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAo UkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIC8vIENDTSByZXF1ZXN0IDEN Cj4gPiArICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGln aCwgRXhjbHVzaXZlKSB7IDExOSB9DQo+ID4gKw0KPiA+ICsgICAgICAvLyBDQ00gcmVxdWVzdCAy DQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhp Z2gsIEV4Y2x1c2l2ZSkgeyAxMjAgfQ0KPiA+ICsNCj4gPiArICAgICAgLy8gR1BDIHJlcXVlc3Qg MQ0KPiA+ICsgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVI aWdoLCBFeGNsdXNpdmUpIHsgMTIxIH0NCj4gPiArDQo+ID4gKyAgICAgIC8vIFVBUlQxDQo+ID4g KyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIFNo YXJlZCkgeyA1OCB9DQo+ID4gKyAgICB9KQ0KPiA+ICsgICAgUmV0dXJuIChSQlVGKQ0KPiA+ICsg IH0NCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJs ZXMvRHNkdC1Qd20uYXNsDQo+IGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0RzZHQt UHdtLmFzbA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAw Li4yMmJhYjBjZmY1NzUNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvU2lsaWNvbi9OWFAv aU1YNlBrZy9BY3BpVGFibGVzL0RzZHQtUHdtLmFzbA0KPiA+IEBAIC0wLDAgKzEsODUgQEANCj4g PiArLyoqIEBmaWxlDQo+ID4gKyoNCj4gPiArKiAgQ29weXJpZ2h0IChjKSAyMDE4IE1pY3Jvc29m dCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiArKg0KPiA+ICsqICBUaGlz IHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4gKyogIGFyZSBsaWNl bnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9m IHRoZSBCU0QNCj4gTGljZW5zZQ0KPiA+ICsqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3Ry aWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0 DQo+ID4gKyoNCj4gaHR0cHM6Ly9uYW0wNi5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHAlM0ElMkYlMkZvcGVuc28NCj4gdXJjZS5vcmclMkZsaWNlbnNlcyUyRmJzZC0N Cj4gbGljZW5zZS5waHAmYW1wO2RhdGE9MDIlN0MwMSU3Q0NocmlzdG9waGVyLkNvJTQwbWljcm9z b2Z0LmNvbSU3QzU3DQo+IGUxMzIyNjkzMGI0YTZjNWNkNjA4ZDY2NDEwY2UyNiU3QzcyZjk4OGJm ODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYg0KPiA0NyU3QzElN0MwJTdDNjM2ODA2NDIwNjgyNzc4OTAz JmFtcDtzZGF0YT01U3o5ZFl6SjE4WUpZVyUyQkJvDQo+IDlXamRFa1lhViUyRkNLZ1l3b3h3M291 Mzc3TXclM0QmYW1wO3Jlc2VydmVkPTANCj4gPiArKg0KPiA+ICsqICBUSEUgUFJPR1JBTSBJUyBE SVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywN Cj4gPiArKiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lO RCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPiArKg0KPiA+ICsqKi8NCj4gPiAr DQo+ID4gK0RldmljZSAoUFdNMSkNCj4gPiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTBF IikNCj4gPiArICBOYW1lIChfVUlELCAweDEpDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkg ew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2Qg KF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgw MjA4MDAwMCwgMHg0MDAwLCApDQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1l ciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyAxMTUgfQ0KPiA+ICsgICAgfSkNCj4g PiArICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK0Rldmlj ZSAoUFdNMikNCj4gPiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTBFIikNCj4gPiArICBO YW1lIChfVUlELCAweDIpDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAg UmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwg Tm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAo KSB7DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjA4NDAwMCwgMHg0 MDAwLCApDQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFj dGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyAxMTYgfQ0KPiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVy biAoUkJVRikNCj4gPiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK0RldmljZSAoUFdNMykNCj4g PiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTBFIikNCj4gPiArICBOYW1lIChfVUlELCAw eDMpDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYp DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXpl ZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAg ICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjA4ODAwMCwgMHg0MDAwLCApDQo+ID4g KyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4 Y2x1c2l2ZSkgeyAxMTcgfQ0KPiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikNCj4g PiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK0RldmljZSAoUFdNNCkNCj4gPiArew0KPiA+ICsg IE5hbWUgKF9ISUQsICJOWFAwMTBFIikNCj4gPiArICBOYW1lIChfVUlELCAweDQpDQo+ID4gKw0K PiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0K PiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsg ICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIE1FTU9SWTMy RklYRUQgKFJlYWRXcml0ZSwgMHgwMjA4QzAwMCwgMHg0MDAwLCApDQo+ID4gKyAgICAgIEludGVy cnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyAx MTggfQ0KPiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9DQo+ID4g K30NCj4gPiBkaWZmIC0tZ2l0IGEvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0RzZHQt U2RoYy5hc2wNCj4gYi9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMvRHNkdC1TZGhjLmFz bA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5mYWQz M2QyZTlkNmMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvU2lsaWNvbi9OWFAvaU1YNlBr Zy9BY3BpVGFibGVzL0RzZHQtU2RoYy5hc2wNCj4gPiBAQCAtMCwwICsxLDEzMyBAQA0KPiA+ICsv KiogQGZpbGUNCj4gPiArKg0KPiA+ICsqICBDb3B5cmlnaHQgKGMpIDIwMTggTWljcm9zb2Z0IENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICsqDQo+ID4gKyogIFRoaXMgcHJv Z3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiArKiAgYXJlIGxpY2Vuc2Vk IGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhl IEJTRA0KPiBMaWNlbnNlDQo+ID4gKyogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0 aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4g PiArKg0KPiBodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91 cmw9aHR0cCUzQSUyRiUyRm9wZW5zbw0KPiB1cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBs aWNlbnNlLnBocCZhbXA7ZGF0YT0wMiU3QzAxJTdDQ2hyaXN0b3BoZXIuQ28lNDBtaWNyb3NvZnQu Y29tJTdDNTcNCj4gZTEzMjI2OTMwYjRhNmM1Y2Q2MDhkNjY0MTBjZTI2JTdDNzJmOTg4YmY4NmYx NDFhZjkxYWIyZDdjZDAxMWRiDQo+IDQ3JTdDMSU3QzAlN0M2MzY4MDY0MjA2ODI3Nzg5MDMmYW1w O3NkYXRhPTVTejlkWXpKMThZSllXJTJCQm8NCj4gOVdqZEVrWWFWJTJGQ0tnWXdveHczb3UzNzdN dyUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+ICsqDQo+ID4gKyogIFRIRSBQUk9HUkFNIElTIERJU1RS SUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiA+ ICsqICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBF SVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+ICsqDQo+ID4gKyoqLw0KPiA+ICsNCj4g PiArLy8gdVNESEMxDQo+ID4gK0RldmljZSAoU0RIMSkNCj4gPiArew0KPiA+ICsgIE5hbWUgKF9I SUQsICJOWFAwMTA4IikNCj4gPiArICBOYW1lIChfVUlELCAweDEpDQo+ID4gKw0KPiA+ICsgIE1l dGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4g PiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAo UkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJl YWRXcml0ZSwgMHgwMjE5MDAwMCwgMHg0MDAwLCApDQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVz b3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyA1NCB9DQo+ID4g KyAgICB9KQ0KPiA+ICsgICAgUmV0dXJuIChSQlVGKQ0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAg Ly8gQ2hpbGQgbm9kZSB0byByZXByZXNlbnQgdGhlIG9ubHkgU0QvTU1DIHNsb3Qgb24gdGhpcyBT RC9NTUMgYnVzDQo+ID4gKyAgLy8gSW4gdGhlb3J5IGFuIFNESEMgY2FuIGJlIGNvbm5lY3RlZCB0 byBtdWx0aXBsZSBTRC9NTUMgc2xvdHMgYXQNCj4gPiArICAvLyB0aGUgc2FtZSB0aW1lLCBidXQg b25seSAxIGRldmljZSB3aWxsIGJlIHNlbGVjdGVkIGFuZCBhY3RpdmUgYXQNCj4gPiArICAvLyBh IHRpbWUNCj4gPiArICBEZXZpY2UgKFNEMCkgew0KPiA+ICsgICAgTWV0aG9kIChfQURSKSB7DQo+ ID4gKyAgICAgIFJldHVybiAoMCkNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBNZXRob2Qg KF9STVYpIHsNCj4gPiArICAgICAgUmV0dXJuICgwKQ0KPiA+ICsgICAgfQ0KPiA+ICsgIH0NCj4g PiArfQ0KPiA+ICsNCj4gPiArLy8gdVNESEMyDQo+ID4gK0RldmljZSAoU0RIMikNCj4gPiArew0K PiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTA4IikNCj4gPiArICBOYW1lIChfVUlELCAweDIpDQo+ ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4g KyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0K PiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIE1F TU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjE5NDAwMCwgMHg0MDAwLCApDQo+ID4gKyAgICAg IEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2 ZSkgeyA1NSB9DQo+ID4gKyAgICB9KQ0KPiA+ICsgICAgUmV0dXJuIChSQlVGKQ0KPiA+ICsgIH0N Cj4gPiArDQo+ID4gKyAgRGV2aWNlIChTRDApIHsNCj4gPiArICAgIE1ldGhvZCAoX0FEUikgew0K PiA+ICsgICAgICBSZXR1cm4gKDApDQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgTWV0aG9k IChfUk1WKSB7DQo+ID4gKyAgICAgIFJldHVybiAoMCkNCj4gPiArICAgIH0NCj4gPiArICB9DQo+ ID4gK30NCj4gPiArDQo+ID4gKy8vIHVTREhDMw0KPiA+ICtEZXZpY2UgKFNESDMpDQo+ID4gK3sN Cj4gPiArICBOYW1lIChfSElELCAiTlhQMDEwOCIpDQo+ID4gKyAgTmFtZSAoX1VJRCwgMHgzKQ0K PiA+ICsNCj4gPiArICBNZXRob2QgKF9TVEEpIHsNCj4gPiArICAgIFJldHVybiAoMHhmKQ0KPiA+ ICsgIH0NCj4gPiArDQo+ID4gKyAgTWV0aG9kIChfQ1JTLCAweDAsIE5vdFNlcmlhbGl6ZWQpIHsN Cj4gPiArICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkgew0KPiA+ICsgICAgICBN RU1PUlkzMkZJWEVEIChSZWFkV3JpdGUsIDB4MDIxOTgwMDAsIDB4NDAwMCwgKQ0KPiA+ICsgICAg ICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNp dmUpIHsgNTYgfQ0KPiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9 DQo+ID4gKw0KPiA+ICsgIERldmljZSAoU0QwKSB7DQo+ID4gKyAgICBNZXRob2QgKF9BRFIpIHsN Cj4gPiArICAgICAgUmV0dXJuICgwKQ0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIE1ldGhv ZCAoX1JNVikgew0KPiA+ICsgICAgICBSZXR1cm4gKDApDQo+ID4gKyAgICB9DQo+ID4gKyAgfQ0K PiA+ICt9DQo+ID4gKw0KPiA+ICsvLyB1U0RIQzQNCj4gPiArRGV2aWNlIChTREg0KQ0KPiA+ICt7 DQo+ID4gKyAgTmFtZSAoX0hJRCwgIk5YUDAxMDgiKQ0KPiA+ICsgIE5hbWUgKF9VSUQsIDB4NCkN Cj4gPiArDQo+ID4gKyAgTWV0aG9kIChfU1RBKSB7DQo+ID4gKyAgICBSZXR1cm4gKDB4ZikNCj4g PiArICB9DQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX0NSUywgMHgwLCBOb3RTZXJpYWxpemVkKSB7 DQo+ID4gKyAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpIHsNCj4gPiArICAgICAg TUVNT1JZMzJGSVhFRCAoUmVhZFdyaXRlLCAweDAyMTlDMDAwLCAweDQwMDAsICkNCj4gPiArICAg ICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVz aXZlKSB7IDU3IH0NCj4gPiArICAgIH0pDQo+ID4gKyAgICBSZXR1cm4gKFJCVUYpDQo+ID4gKyAg fQ0KPiA+ICsNCj4gPiArICBEZXZpY2UgKFNEMCkgew0KPiA+ICsgICAgTWV0aG9kIChfQURSKSB7 DQo+ID4gKyAgICAgIFJldHVybiAoMCkNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBNZXRo b2QgKF9STVYpIHsNCj4gPiArICAgICAgUmV0dXJuICgwKQ0KPiA+ICsgICAgfQ0KPiA+ICsgIH0N Cj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMv RHNkdC1TcGkuYXNsDQo+IGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0RzZHQtU3Bp LmFzbA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5m NjhhN2YzMDZlY2MNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvU2lsaWNvbi9OWFAvaU1Y NlBrZy9BY3BpVGFibGVzL0RzZHQtU3BpLmFzbA0KPiA+IEBAIC0wLDAgKzEsMTAzIEBADQo+ID4g Ky8qKiBAZmlsZQ0KPiA+ICsqDQo+ID4gKyogIENvcHlyaWdodCAoYykgMjAxOCBNaWNyb3NvZnQg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ID4gKyoNCj4gPiArKiAgVGhpcyBw cm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+ICsqICBhcmUgbGljZW5z ZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0 aGUgQlNEDQo+IExpY2Vuc2UNCj4gPiArKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmli dXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0K PiA+ICsqDQo+IGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20v P3VybD1odHRwJTNBJTJGJTJGb3BlbnNvDQo+IHVyY2Uub3JnJTJGbGljZW5zZXMlMkZic2QtDQo+ IGxpY2Vuc2UucGhwJmFtcDtkYXRhPTAyJTdDMDElN0NDaHJpc3RvcGhlci5DbyU0MG1pY3Jvc29m dC5jb20lN0M1Nw0KPiBlMTMyMjY5MzBiNGE2YzVjZDYwOGQ2NjQxMGNlMjYlN0M3MmY5ODhiZjg2 ZjE0MWFmOTFhYjJkN2NkMDExZGINCj4gNDclN0MxJTdDMCU3QzYzNjgwNjQyMDY4Mjc3ODkwMyZh bXA7c2RhdGE9NVN6OWRZekoxOFlKWVclMkJCbw0KPiA5V2pkRWtZYVYlMkZDS2dZd294dzNvdTM3 N013JTNEJmFtcDtyZXNlcnZlZD0wDQo+ID4gKyoNCj4gPiArKiAgVEhFIFBST0dSQU0gSVMgRElT VFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+ ID4gKyogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQs IEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4gKyoNCj4gPiArKiovDQo+ID4gKw0K PiA+ICtEZXZpY2UgKFNQSTEpDQo+ID4gK3sNCj4gPiArICBOYW1lIChfSElELCAiTlhQMDEwNSIp DQo+ID4gKyAgTmFtZSAoX1VJRCwgMHgxKQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9TVEEpIHsN Cj4gPiArICAgIFJldHVybiAoMHhmKQ0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgTWV0aG9kIChf Q1JTLCAweDAsIE5vdFNlcmlhbGl6ZWQpIHsNCj4gPiArICAgIE5hbWUgKFJCVUYsIFJlc291cmNl VGVtcGxhdGUgKCkgew0KPiA+ICsgICAgICBNRU1PUlkzMkZJWEVEIChSZWFkV3JpdGUsIDB4MDIw MDgwMDAsIDB4NDAwMCwgKQ0KPiA+ICsgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIs IExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUpIHsgNjMgfQ0KPiA+ICsgICAgfSkNCj4gPiAr ICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK0RldmljZSAo U1BJMikNCj4gPiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTA1IikNCj4gPiArICBOYW1l IChfVUlELCAweDIpDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NUQSkgew0KPiA+ICsgICAgUmV0 dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRob2QgKF9DUlMsIDB4MCwgTm90 U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKSB7 DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgwMjAwQzAwMCwgMHg0MDAw LCApDQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2 ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyA2NCB9DQo+ID4gKyAgICB9KQ0KPiA+ICsgICAgUmV0dXJuIChS QlVGKQ0KPiA+ICsgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArRGV2aWNlIChTUEkzKQ0KPiA+ICt7 DQo+ID4gKyAgTmFtZSAoX0hJRCwgIk5YUDAxMDUiKQ0KPiA+ICsgIE5hbWUgKF9VSUQsIDB4MykN Cj4gPiArDQo+ID4gKyAgTWV0aG9kIChfU1RBKSB7DQo+ID4gKyAgICBSZXR1cm4gKDB4ZikNCj4g PiArICB9DQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX0NSUywgMHgwLCBOb3RTZXJpYWxpemVkKSB7 DQo+ID4gKyAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpIHsNCj4gPiArICAgICAg TUVNT1JZMzJGSVhFRCAoUmVhZFdyaXRlLCAweDAyMDEwMDAwLCAweDQwMDAsICkNCj4gPiArICAg ICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgRXhjbHVz aXZlKSB7IDY1IH0NCj4gPiArICAgIH0pDQo+ID4gKyAgICBSZXR1cm4gKFJCVUYpDQo+ID4gKyAg fQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtEZXZpY2UgKFNQSTQpDQo+ID4gK3sNCj4gPiArICBOYW1l IChfSElELCAiTlhQMDEwNSIpDQo+ID4gKyAgTmFtZSAoX1VJRCwgMHg0KQ0KPiA+ICsNCj4gPiAr ICBNZXRob2QgKF9TVEEpIHsNCj4gPiArICAgIFJldHVybiAoMHhmKQ0KPiA+ICsgIH0NCj4gPiAr DQo+ID4gKyAgTWV0aG9kIChfQ1JTLCAweDAsIE5vdFNlcmlhbGl6ZWQpIHsNCj4gPiArICAgIE5h bWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkgew0KPiA+ICsgICAgICBNRU1PUlkzMkZJWEVE IChSZWFkV3JpdGUsIDB4MDIwMTQwMDAsIDB4NDAwMCwgKQ0KPiA+ICsgICAgICBJbnRlcnJ1cHQg KFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUpIHsgNjYgfQ0K PiA+ICsgICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9DQo+ID4gK30NCj4g PiArDQo+ID4gK0RldmljZSAoU1BJNSkNCj4gPiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAw MTA1IikNCj4gPiArICBOYW1lIChfVUlELCAweDUpDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAoX1NU QSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNZXRo b2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwgUmVz b3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIE1FTU9SWTMyRklYRUQgKFJlYWRXcml0ZSwg MHgwMjAxODAwMCwgMHg0MDAwLCApDQo+ID4gKyAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25z dW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSkgeyA2NyB9DQo+ID4gKyAgICB9KQ0K PiA+ICsgICAgUmV0dXJuIChSQlVGKQ0KPiA+ICsgIH0NCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQg YS9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMvRHNkdC1UckVFLmFzbA0KPiBiL1NpbGlj b24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9Ec2R0LVRyRUUuYXNsDQo+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjgzOTc1NzkyYmNhZg0KPiA+IC0tLSAv ZGV2L251bGwNCj4gPiArKysgYi9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMvRHNkdC1U ckVFLmFzbA0KPiA+IEBAIC0wLDAgKzEsMzMgQEANCj4gPiArLyoqIEBmaWxlDQo+ID4gKyoNCj4g PiArKiAgQ29weXJpZ2h0IChjKSAyMDE4IE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4NCj4gPiArKg0KPiA+ICsqICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBh bnlpbmcgbWF0ZXJpYWxzDQo+ID4gKyogIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUg dW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5zZQ0KPiA+ ICsqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQg b2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+ID4gKyoNCj4gaHR0cHM6Ly9uYW0w Ni5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZvcGVu c28NCj4gdXJjZS5vcmclMkZsaWNlbnNlcyUyRmJzZC0NCj4gbGljZW5zZS5waHAmYW1wO2RhdGE9 MDIlN0MwMSU3Q0NocmlzdG9waGVyLkNvJTQwbWljcm9zb2Z0LmNvbSU3QzU3DQo+IGUxMzIyNjkz MGI0YTZjNWNkNjA4ZDY2NDEwY2UyNiU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYg0K PiA0NyU3QzElN0MwJTdDNjM2ODA2NDIwNjgyNzc4OTAzJmFtcDtzZGF0YT01U3o5ZFl6SjE4WUpZ VyUyQkJvDQo+IDlXamRFa1lhViUyRkNLZ1l3b3h3M291Mzc3TXclM0QmYW1wO3Jlc2VydmVkPTAN Cj4gPiArKg0KPiA+ICsqICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNE IExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gPiArKiAgV0lUSE9VVCBXQVJSQU5U SUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1Ig SU1QTElFRC4NCj4gPiArKg0KPiA+ICsqKi8NCj4gPiArDQo+ID4gK0RldmljZSAoVFJFRSkNCj4g PiArew0KPiA+ICsgIE5hbWUgKF9ISUQsICJOWFAwMTBGIikNCj4gPiArICBOYW1lIChfQ0lELCAi VHJFRUNTTVAiKQ0KPiA+ICsgIE5hbWUgKF9VSUQsIDApDQo+ID4gKw0KPiA+ICsgIE1ldGhvZCAo X1NUQSkgew0KPiA+ICsgICAgUmV0dXJuICgweGYpDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBN ZXRob2QgKF9DUlMsIDB4MCwgTm90U2VyaWFsaXplZCkgew0KPiA+ICsgICAgTmFtZSAoUkJVRiwg UmVzb3VyY2VUZW1wbGF0ZSAoKSB7DQo+ID4gKyAgICAgIC8vIE9QLVRFRSBTaGFyZWQgbWVtb3J5 IGFyZWEuDQo+ID4gKyAgICAgIC8vIE5lZWRzIHRvIG1hdGNoOiBQY2RUcnVzdFpvbmVTaGFyZWRN ZW1vcnlCYXNlLA0KPiBQY2RUcnVzdFpvbmVTaGFyZWRNZW1vcnlTaXplDQo+ID4gKyAgICAgIE1F TU9SWTMyRklYRUQgKFJlYWRXcml0ZSwgMHgxMjgwMDAwMCwgMHgwMDIwMDAwMCwgKQ0KPiA+ICsg ICAgfSkNCj4gPiArICAgIFJldHVybiAoUkJVRikNCj4gPiArICB9DQo+ID4gK30NCj4gPiBkaWZm IC0tZ2l0IGEvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL0ZhZHQuYXNsYw0KPiBiL1Np bGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9GYWR0LmFzbGMNCj4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTgxODFlZTllZGE3DQo+ID4gLS0tIC9k ZXYvbnVsbA0KPiA+ICsrKyBiL1NpbGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9GYWR0LmFz bGMNCj4gPiBAQCAtMCwwICsxLDYwIEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsqDQo+ID4gKyog IENvcHlyaWdodCAoYykgMjAxOCBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQo+ID4gKyoNCj4gPiArKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5n IG1hdGVyaWFscw0KPiA+ICsqICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVy IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gPiArKiAg d2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRo ZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiA+ICsqDQo+IGh0dHBzOi8vbmFtMDYuc2Fm ZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGb3BlbnNvDQo+ IHVyY2Uub3JnJTJGbGljZW5zZXMlMkZic2QtDQo+IGxpY2Vuc2UucGhwJmFtcDtkYXRhPTAyJTdD MDElN0NDaHJpc3RvcGhlci5DbyU0MG1pY3Jvc29mdC5jb20lN0M1Nw0KPiBlMTMyMjY5MzBiNGE2 YzVjZDYwOGQ2NjQxMGNlMjYlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGINCj4gNDcl N0MxJTdDMCU3QzYzNjgwNjQyMDY4Mjc3ODkwMyZhbXA7c2RhdGE9NVN6OWRZekoxOFlKWVclMkJC bw0KPiA5V2pkRWtZYVYlMkZDS2dZd294dzNvdTM3N013JTNEJmFtcDtyZXNlcnZlZD0wDQo+ID4g KyoNCj4gPiArKiAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNF TlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+ID4gKyogIFdJVEhPVVQgV0FSUkFOVElFUyBP UiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJ RUQuDQo+ID4gKyoNCj4gPiArKiovDQo+ID4gKw0KPiA+ICsvLyBBZHZlcnRpc2Ugc3VwcG9ydCBm b3IgUFNDSQ0KPiA+ICsjZGVmaW5lIEZBRFRfQVJNX0JPT1RfQVJDSCAgICAgICAweDAxDQo+ID4g Kw0KPiA+ICtjaGFyIEZBQ1BbMjY4XSA9IHsNCj4gPiArICAweDQ2LCAweDQxLCAweDQzLCAweDUw LCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaWduYXR1cmUgOiAnRkFDUCcNCj4gPiArICAw eDBDLCAweDAxLCAweDAwLCAweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZW5ndGgN Cj4gPiArICAweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBSZXZpc2lvbg0KPiA+ICsgIDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIENoZWNrc3VtDQo+ID4gKyAgMHg0RSwgMHg1OCwgMHg1MCwgMHg0RCwgMHg1 OCwgMHgzNiwgICAgICAgICAgICAgLy8gT0VNSUQgOiAnTlhQTVg2Jw0KPiA+ICsgIDB4NDUsIDB4 NDQsIDB4NEIsIDB4MzIsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIC8vIE9FTVRBQkxFIDogJ0VE SzInDQo+ID4gKyAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gT0VNIFJldmlzaW9uDQo+ID4gKyAgMHg0RCwgMHg1MywgMHg0NiwgMHg1NCwgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRvcklEIDogJ01TRlQnDQo+ID4gKyAgMHgwMSwgMHgw MCwgMHgwMCwgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRvciByZXZpc2lv bg0KPiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ID4gKyAgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gPiArICAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0K PiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsDQo+ID4gKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gPiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiA+ICsgIDB4MDAsIDB4MDQsIDB4MDAs IDB4MDAsIDB4MDAsIDB4RTMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ID4gKyAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgzQywNCj4g PiArICAweDAwLCAweDAwLCAweDIxLCAweDAwLCAweDMwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLA0KPiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsDQo+IEZBRFRfQVJNX0JPT1RfQVJDSCwNCj4gPiArICAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiA+ICsgIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs DQo+ID4gKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwNCj4gPiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ID4gKyAgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gPiArICAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0K PiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsDQo+ID4gKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gPiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ID4gKyAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4g PiArICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLA0KPiA+ICsgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDANCj4gPiArfTsNCj4gPiArDQo+ID4gK1ZPSUQqDQo+ID4gK1JlZmVyZW5jZUFjcGlUYWJs ZSAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIHJldHVybiAodm9pZCAq KSAmRkFDUDsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9TaWxpY29uL05YUC9pTVg2UGtnL0Fj cGlUYWJsZXMvTWFkdC5hc2xjDQo+IGIvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL01h ZHQuYXNsYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAw Li4xYzM4MjMwNmM3ODANCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvU2lsaWNvbi9OWFAv aU1YNlBrZy9BY3BpVGFibGVzL01hZHQuYXNsYw0KPiA+IEBAIC0wLDAgKzEsMTIwIEBADQo+ID4g Ky8qKiBAZmlsZQ0KPiA+ICsqDQo+ID4gKyogIENvcHlyaWdodCAoYykgMjAxOCBNaWNyb3NvZnQg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ID4gKyoNCj4gPiArKiAgVGhpcyBw cm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+ICsqICBhcmUgbGljZW5z ZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0 aGUgQlNEDQo+IExpY2Vuc2UNCj4gPiArKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmli dXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0K PiA+ICsqDQo+IGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20v P3VybD1odHRwJTNBJTJGJTJGb3BlbnNvDQo+IHVyY2Uub3JnJTJGbGljZW5zZXMlMkZic2QtDQo+ IGxpY2Vuc2UucGhwJmFtcDtkYXRhPTAyJTdDMDElN0NDaHJpc3RvcGhlci5DbyU0MG1pY3Jvc29m dC5jb20lN0M1Nw0KPiBlMTMyMjY5MzBiNGE2YzVjZDYwOGQ2NjQxMGNlMjYlN0M3MmY5ODhiZjg2 ZjE0MWFmOTFhYjJkN2NkMDExZGINCj4gNDclN0MxJTdDMCU3QzYzNjgwNjQyMDY4Mjc3ODkwMyZh bXA7c2RhdGE9NVN6OWRZekoxOFlKWVclMkJCbw0KPiA5V2pkRWtZYVYlMkZDS2dZd294dzNvdTM3 N013JTNEJmFtcDtyZXNlcnZlZD0wDQo+ID4gKyoNCj4gPiArKiAgVEhFIFBST0dSQU0gSVMgRElT VFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+ ID4gKyogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQs IEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4gKyoNCj4gPiArKiovDQo+ID4gKw0K PiA+ICsjaW5jbHVkZSA8TGlicmFyeS9BY3BpTGliLmg+DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8 UGxhdGZvcm0uaD4NCj4gPiArI2luY2x1ZGUgPGlNWDYuaD4NCj4gPiArDQo+ID4gKyNkZWZpbmUg R0lDQ19CQVNFICAgICAgICAgICAgICAgICBGaXhlZFBjZEdldDY0IChQY2RHaWNJbnRlcnJ1cHRJ bnRlcmZhY2VCYXNlKQ0KPiA+ICsjZGVmaW5lIEdJQ0RfQkFTRSAgICAgICAgICAgICAgICAgRml4 ZWRQY2RHZXQ2NCAoUGNkR2ljRGlzdHJpYnV0b3JCYXNlKQ0KPiA+ICsNCj4gPiArLy8gVmlydHVh bGl6YXRpb24gcmVsYXRlZCBmaWVsZHMuIE5vdCBzdXBwb3J0ZWQgb24gSU1YNg0KPiA+ICsjZGVm aW5lIEdJQ0hfQkFTRSAgICAgICAgICAgICAgICAgMA0KPiA+ICsjZGVmaW5lIEdJQ1ZfQkFTRSAg ICAgICAgICAgICAgICAgMA0KPiA+ICsjZGVmaW5lIFZHSUNfTUFJTlRfSU5UICAgICAgICAgICAg MA0KPiA+ICsjZGVmaW5lIFBNVV9JTlRFUlJVUFQgICAgICAgICAgICAgMA0KPiA+ICsNCj4gPiAr I3ByYWdtYSBwYWNrKHB1c2gsIDEpDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBFRklf QUNQSV82XzBfTVVMVElQTEVfQVBJQ19ERVNDUklQVElPTl9UQUJMRV9IRUFERVIgSGVhZGVyOw0K PiA+ICsgIEVGSV9BQ1BJXzZfMF9HSUNfU1RSVUNUVVJFIEdpY0NbRml4ZWRQY2RHZXQzMiAoUGNk Q29yZUNvdW50KV07DQo+ID4gKyAgRUZJX0FDUElfNl8wX0dJQ19ESVNUUklCVVRPUl9TVFJVQ1RV UkUgR2ljRDsNCj4gPiArfSBBQ1BJXzZfMF9NQURUX1NUUlVDVFVSRTsNCj4gPiArI3ByYWdtYSBw YWNrKHBvcCkNCj4gPiArDQo+ID4gK0FDUElfNl8wX01BRFRfU1RSVUNUVVJFIE1hZHQgPSB7DQo+ ID4gKyAgew0KPiA+ICsgICAgew0KPiA+ICsgICAgICBFRklfQUNQSV82XzBfTVVMVElQTEVfQVBJ Q19ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUsIC8vDQo+IFNpZ25hdHVyZQ0KPiA+ICsgICAg ICBzaXplb2YgKEFDUElfNl8wX01BRFRfU1RSVUNUVVJFKSwgICAgICAgICAgICAgICAgICAgICAg IC8vIExlbmd0aA0KPiA+ICsgICAgICBFRklfQUNQSV82XzBfTVVMVElQTEVfQVBJQ19ERVNDUklQ VElPTl9UQUJMRV9SRVZJU0lPTiwgIC8vDQo+IFJldmlzaW9uDQo+ID4gKyAgICAgIDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2tz dW0NCj4gPiArICAgICAgRUZJX0FDUElfT0VNX0lELCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBPZW1JZFs2XQ0KPiA+ICsgICAgICBFRklfQUNQSV9PRU1fVEFCTEVf SUQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9lbVRhYmxlSWQNCj4gPiAr ICAgICAgRUZJX0FDUElfT0VNX1JFVklTSU9OLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBPZW1SZXZpc2lvbg0KPiA+ICsgICAgICBFRklfQUNQSV9DUkVBVE9SX0lELCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENyZWF0b3JJZA0KPiA+ICsgICAgICBF RklfQUNQSV9DUkVBVE9SX1JFVklTSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IENyZWF0b3JSZXZpc2lvbg0KPiA+ICsgICAgfSwNCj4gPiArICAgIDAsICAgICAgLy8gTG9jYWxB cGljQWRkcmVzcw0KPiA+ICsgICAgMCAgICAgICAvLyBGbGFncw0KPiA+ICsgIH0sDQo+ID4gKyAg ew0KPiA+ICsgICAgRUZJX0FDUElfNl8wX0dJQ0NfU1RSVUNUVVJFX0lOSVQgKDAsICAgICAgICAg ICAgICAgICAgICAgICAgLy8gR2ljSWQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwMCwgICAgICAgICAgICAgICAgICAgICAvLyBBY3BpQ3B1VWlkDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAsICAgICAgICAgICAg ICAgICAgICAgLy8gTXBpZHINCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFRklfQUNQSV82XzBfR0lDX0VOQUJMRUQsICAvLyBGbGFncw0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNVV9JTlRFUlJVUFQsICAgICAgICAgICAgIC8v IFBtdUlycQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJQ0Nf QkFTRSwgICAgICAgICAgICAgICAgIC8vIEdpY0Jhc2UNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHSUNWX0JBU0UsICAgICAgICAgICAgICAgICAvLyBHaWNWQmFz ZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJQ0hfQkFTRSwg ICAgICAgICAgICAgICAgIC8vIEdpY0hCYXNlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVkdJQ19NQUlOVF9JTlQsICAgICAgICAgICAgLy8gR3NpdklkDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gR2ljUkJhc2UNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFZmZpY2llbmN5DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLA0KPiA+ICsjaWYgRml4ZWRQY2RH ZXQzMihQY2RDb3JlQ291bnQpID4gMQ0KPiA+ICsgICAgRUZJX0FDUElfNl8wX0dJQ0NfU1RSVUNU VVJFX0lOSVQgKDEsICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2ljSWQNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMSwgICAgICAgICAgICAgICAgICAg ICAvLyBBY3BpQ3B1VWlkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDEsICAgICAgICAgICAgICAgICAgICAgLy8gTXBpZHINCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfQUNQSV82XzBfR0lDX0VOQUJMRUQsICAvLyBG bGFncw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNVV9JTlRF UlJVUFQsICAgICAgICAgICAgIC8vIFBtdUlycQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdJQ0NfQkFTRSwgICAgICAgICAgICAgICAgIC8vIEdpY0Jhc2UNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSUNWX0JBU0UsICAgICAg ICAgICAgICAgICAvLyBHaWNWQmFzZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdJQ0hfQkFTRSwgICAgICAgICAgICAgICAgIC8vIEdpY0hCYXNlDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdJQ19NQUlOVF9JTlQsICAgICAg ICAgICAgLy8gR3NpdklkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2ljUkJhc2UNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBFZmZpY2llbmN5DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp LA0KPiA+ICsjaWYgRml4ZWRQY2RHZXQzMihQY2RDb3JlQ291bnQpID4gMg0KPiA+ICsgICAgRUZJ X0FDUElfNl8wX0dJQ0NfU1RSVUNUVVJFX0lOSVQgKDIsICAgICAgICAgICAgICAgICAgICAgICAg Ly8gR2ljSWQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MiwgICAgICAgICAgICAgICAgICAgICAvLyBBY3BpQ3B1VWlkDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIsICAgICAgICAgICAgICAgICAgICAgLy8gTXBp ZHINCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfQUNQSV82 XzBfR0lDX0VOQUJMRUQsICAvLyBGbGFncw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBNVV9JTlRFUlJVUFQsICAgICAgICAgICAgIC8vIFBtdUlycQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJQ0NfQkFTRSwgICAgICAgICAg ICAgICAgIC8vIEdpY0Jhc2UNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHSUNWX0JBU0UsICAgICAgICAgICAgICAgICAvLyBHaWNWQmFzZQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJQ0hfQkFTRSwgICAgICAgICAgICAgICAg IC8vIEdpY0hCYXNlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VkdJQ19NQUlOVF9JTlQsICAgICAgICAgICAgLy8gR3NpdklkDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2lj UkJhc2UNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBFZmZpY2llbmN5DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApLA0KPiA+ICsgICAgRUZJX0FDUElfNl8wX0dJQ0NfU1RSVUNU VVJFX0lOSVQgKDMsICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2ljSWQNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMywgICAgICAgICAgICAgICAgICAg ICAvLyBBY3BpQ3B1VWlkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDMsICAgICAgICAgICAgICAgICAgICAgLy8gTXBpZHINCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfQUNQSV82XzBfR0lDX0VOQUJMRUQsICAvLyBG bGFncw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNVV9JTlRF UlJVUFQsICAgICAgICAgICAgIC8vIFBtdUlycQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdJQ0NfQkFTRSwgICAgICAgICAgICAgICAgIC8vIEdpY0Jhc2UNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSUNWX0JBU0UsICAgICAg ICAgICAgICAgICAvLyBHaWNWQmFzZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdJQ0hfQkFTRSwgICAgICAgICAgICAgICAgIC8vIEdpY0hCYXNlDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdJQ19NQUlOVF9JTlQsICAgICAg ICAgICAgLy8gR3NpdklkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2ljUkJhc2UNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBFZmZpY2llbmN5DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp LA0KPiA+ICsjZW5kaWYNCj4gPiArI2VuZGlmDQo+ID4gKyAgfSwNCj4gPiArICBFRklfQUNQSV82 XzBfR0lDX0RJU1RSSUJVVE9SX0lOSVQgKDB4MCwgICAgICAgICAgICAgICAgICAgLy8gR2ljRGlz dEh3SWQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJQ0RfQkFT RSwgICAgICAgICAgICAgLy8gR2ljRGlzdEJhc2UNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElDX0RJU1RfVkVDVE9SX0JBU0UsICAgLy8gR2ljRGlzdFZlY3Rvcg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0FDUElfNl8wX0dJ Q19WMSAgICAvLyBHaWNWZXJzaW9uDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkNCj4gPiArfTsNCj4gPiArDQo+ID4gK1ZPSUQqDQo+ID4gK1JlZmVyZW5jZUFjcGlU YWJsZSAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIHJldHVybiAoVk9J RCAqKSZNYWR0Ow0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL1NpbGljb24vTlhQL2lNWDZQa2cv QWNwaVRhYmxlcy9NY2ZnLmFzbGMNCj4gYi9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMv TWNmZy5hc2xjDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAw MDAuLjNlOWQxNjNjYjUyZQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9TaWxpY29uL05Y UC9pTVg2UGtnL0FjcGlUYWJsZXMvTWNmZy5hc2xjDQo+ID4gQEAgLTAsMCArMSw5MiBAQA0KPiA+ ICsvKiogQGZpbGUNCj4gPiArKg0KPiA+ICsqICBDb3B5cmlnaHQgKGMpIDIwMTggTWljcm9zb2Z0 IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICsqDQo+ID4gKyogIFRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiArKiAgYXJlIGxpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhlIEJTRA0KPiBMaWNlbnNlDQo+ID4gKyogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJp YnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQN Cj4gPiArKg0KPiBodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29t Lz91cmw9aHR0cCUzQSUyRiUyRm9wZW5zbw0KPiB1cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0K PiBsaWNlbnNlLnBocCZhbXA7ZGF0YT0wMiU3QzAxJTdDQ2hyaXN0b3BoZXIuQ28lNDBtaWNyb3Nv ZnQuY29tJTdDNTcNCj4gZTEzMjI2OTMwYjRhNmM1Y2Q2MDhkNjY0MTBjZTI2JTdDNzJmOTg4YmY4 NmYxNDFhZjkxYWIyZDdjZDAxMWRiDQo+IDQ3JTdDMSU3QzAlN0M2MzY4MDY0MjA2ODI3Nzg5MDMm YW1wO3NkYXRhPTVTejlkWXpKMThZSllXJTJCQm8NCj4gOVdqZEVrWWFWJTJGQ0tnWXdveHczb3Uz NzdNdyUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+ICsqDQo+ID4gKyogIFRIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0K PiA+ICsqICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5E LCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+ICsqDQo+ID4gKyoqLw0KPiA+ICsN Cj4gPiArI2luY2x1ZGUgPFBsYXRmb3JtLmg+DQo+ID4gKw0KPiA+ICsjaW5jbHVkZQ0KPiA8SW5k dXN0cnlTdGFuZGFyZC9NZW1vcnlNYXBwZWRDb25maWd1cmF0aW9uU3BhY2VBY2Nlc3NUYWJsZS5o Pg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgImlNWDYuaCINCj4gPiArI2luY2x1ZGUgIi4uL0RyaXZl cnMvUGNpRXhwcmVzcy9pTVg2UGNpRXhwcmVzcy5oIg0KPiA+ICsNCj4gPiArI2RlZmluZSBFRklf QUNQSV9PRU1fTUNGR19SRVZJU0lPTiAweDAwMDAwMDAxDQo+ID4gKw0KPiA+ICsvLyBTaXplIGlu IGJ5dGVzIGEgc2luZ2xlIGJ1cyBjb25zdW1lcyBpbiBFQ0FNIHNwYWNlDQo+ID4gKy8vIENvbmZp Z3VyYXRpb24gc2l6ZSA9IDRLDQo+ID4gKy8vIE1heCBkZXZpY2UgPSAzMg0KPiA+ICsvLyBNYXgg ZnVuY3Rpb24gPSA4DQo+ID4gKy8vIE1heCBidXMgc2l6ZSA9IDRLICogMzIgKiA4DQo+ID4gKyNk ZWZpbmUgRUNBTV9CVVNfQUREUl9TSVpFICAoMSA8PCAyMCkNCj4gPiArDQo+ID4gKy8vIFByb3Zp ZGUgMiBkaWZmZXJlbmN0IGJhc2UgUENJIHNwYWNlIGFkZHJlc3MuIFRoZSBmaXJzdCBsaXN0IHdv dWxkIHJlcHJlc2VudA0KPiA+ICsvLyB0aGUgaG9zdCBjb25maWcgc3BhY2UgYW5kIHRoZSBzZWNv bmQgbGlzdCB3b3VsZCBiZSB0aGUgZGV2aWNlIGNvbmZpZyBzcGFjZS4NCj4gPiArLy8gV2luZG93 cyBpcyBleHBlY3RlZCB0byBiZSBhYmxlIHRvIHBhcnNlIHRoZSBpbmZvcm1hdGlvbi4NCj4gPiAr I2RlZmluZSBOVU1fUENJIDINCj4gPiArDQo+ID4gKy8vIE1DRkcgc3RydWN0dXJlDQo+ID4gKy8v IFBDSSBGaXJtd2FyZSBzcGVjaWZpY2F0aW9uIFRhYmxlIDQtMg0KPiA+ICsjcHJhZ21hIHBhY2so cHVzaCwgMSkNCj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBFRklfQUNQSV9E RVNDUklQVElPTl9IRUFERVIgSGVhZGVyOw0KPiA+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAg ICAgICBSZXNlcnZlZDsNCj4gPiArDQo+IEVGSV9BQ1BJX01FTU9SWV9NQVBQRURfRU5IQU5DRURf Q09ORklHVVJBVElPTl9TUEFDRV9CQVNFX0FEDQo+IERSRVNTX0FMTE9DQVRJT05fU1RSVUNUVVJF IEFsbG9jYXRpb25TdHJ1Y3R1cmVbTlVNX1BDSV07DQo+ID4gK30NCj4gRUZJX0FDUElfTUVNT1JZ X01BUFBFRF9DT05GSUdVUkFUSU9OX1NQQUNFX0FDQ0VTU19ERVNDUklQVElPDQo+IE5fVEFCTEU7 DQo+ID4gKw0KPiA+ICsjcHJhZ21hIHBhY2socG9wKQ0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8g TXVsdGlwbGUgQVBJQyBEZXNjcmlwdGlvbiBUYWJsZQ0KPiA+ICsvLw0KPiA+DQo+ICtFRklfQUNQ SV9NRU1PUllfTUFQUEVEX0NPTkZJR1VSQVRJT05fU1BBQ0VfQUNDRVNTX0RFU0NSSVBUSU8NCj4g Tl9UQUJMRSBNY2ZnID0gew0KPiA+ICsgIHsNCj4gPiArDQo+IEVGSV9BQ1BJXzVfMF9QQ0lfRVhQ UkVTU19NRU1PUllfTUFQUEVEX0NPTkZJR1VSQVRJT05fU1BBQ0VfQg0KPiBBU0VfQUREUkVTU19E RVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUsDQo+ID4gKyAgICBzaXplb2YNCj4gKEVGSV9BQ1BJ X01FTU9SWV9NQVBQRURfQ09ORklHVVJBVElPTl9TUEFDRV9BQ0NFU1NfREVTQ1JJUFRJTw0KPiBO X1RBQkxFKSwNCj4gPiArDQo+IEVGSV9BQ1BJX01FTU9SWV9NQVBQRURfQ09ORklHVVJBVElPTl9T UEFDRV9BQ0NFU1NfVEFCTEVfUkVWSVMNCj4gSU9OLA0KPiA+ICsgICAgMHgwMCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBDaGVja3N1bSB3aWxsIGJlIHVwZGF0ZWQgYXQgcnVudGltZQ0K PiA+ICsgICAgRUZJX0FDUElfT0VNX0lELCAgICAgICAgICAgICAgICAvLyBPRU1JRA0KPiA+ICsg ICAgRUZJX0FDUElfT0VNX1RBQkxFX0lELCAgICAgICAgICAvLyBPRU0gVGFibGUgSUQNCj4gPiAr ICAgIEVGSV9BQ1BJX09FTV9NQ0ZHX1JFVklTSU9OLCAgICAgLy8gT0VNIFJldmlzaW9uDQo+ID4g KyAgICBFRklfQUNQSV9DUkVBVE9SX0lELCAgICAgICAgICAgIC8vIENyZWF0b3IgSUQNCj4gPiAr ICAgIEVGSV9BQ1BJX0NSRUFUT1JfUkVWSVNJT04sICAgICAgLy8gQ3JlYXRvciByZXZpc2lvbg0K PiA+ICsgIH0sDQo+ID4gKyAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJl c2VydmVkDQo+ID4gKw0KPiA+ICsgIHsNCj4gPiArICAgIC8vIFBDSWUgSG9zdA0KPiA+ICsgICAg ew0KPiA+ICsgICAgICBQQ0lFX0hPU1RfQ09ORklHX0JBU0VfUkVHLCAgICAgICAgLy8gUENJRSBI b3N0IENvbmZpZyBCYXNlIEFkZHJlc3MNCj4gPiArICAgICAgMHgwMCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFBjaVNlZ21lbnRHcm91cE51bWJlciAoX1NFRykNCj4gPiArICAgICAg MHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0QnVzTnVtYmVyDQo+ID4g KyAgICAgIDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFbmRCdXNOdW1iZXIN Cj4gPiArICAgICAgMHgwMDAwMDAwMCAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc2VydmVk DQo+ID4gKyAgICB9LA0KPiA+ICsNCj4gPiArICAgIC8vIFBDSWUgRGV2aWNlDQo+ID4gKyAgICB7 DQo+ID4gKyAgICAgIFBDSUVfREVWSUNFX0NPTkZJR19CQVNFX1JFRyAtIEVDQU1fQlVTX0FERFJf U0laRSwgIC8vDQo+IEJhc2VBZGRyZXNzDQo+IA0KPiBPSywgc28gdGhlICdyb290IHBvcnQnIGFu ZCBkZXZpY2UgRUNBTSBzcGFjZXMgYXJlIGRpc2pvaW50LCB3aGljaCBpcw0KPiB3aHkgeW91IG5l ZWQgdHdvIGRpZmZlcmVudCBlbnRyaWVzIGhlcmUuIFN1YnRyYWN0aW5nDQo+IEVDQU1fQlVTX0FE RFJfU0laRSBpcyBuZWVkZWQgc2luY2UgdGhlIGJ1cyByYW5nZSBzdGFydHMgYXQgMHgxDQo+IA0K PiBDb3VsZCB5b3UgY2xhcmlmeSB0aGlzIGluIGEgY29tbWVudCBwbGVhc2U/DQo+IA0KPiANCj4g PiArICAgICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQY2lTZWdtZW50 R3JvdXBOdW1iZXIgKF9TRUcpDQo+ID4gKyAgICAgIDB4MDEsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU3RhcnRCdXNOdW1iZXINCj4gPiArICAgICAgMHgwMSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBFbmRCdXNOdW1iZXINCj4gPiArICAgICAgMHgwMDAwMDAwMCAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNlcnZlZA0KPiA+ICsgICAgfQ0KPiA+ICsgIH0N Cj4gPiArfTsNCj4gPiArDQo+ID4gK1ZPSUQqDQo+ID4gK1JlZmVyZW5jZUFjcGlUYWJsZSAoDQo+ ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIHJldHVybiAoVk9JRCAqKSZNY2Zn Ow0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL1NpbGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxl cy9TcGNyLmFzbGMNCj4gYi9TaWxpY29uL05YUC9pTVg2UGtnL0FjcGlUYWJsZXMvU3Bjci5hc2xj DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjYwMzQy MmE3MzdjNA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9TaWxpY29uL05YUC9pTVg2UGtn L0FjcGlUYWJsZXMvU3Bjci5hc2xjDQo+ID4gQEAgLTAsMCArMSw5NSBAQA0KPiA+ICsvKiogQGZp bGUNCj4gPiArKg0KPiA+ICsqICBDb3B5cmlnaHQgKGMpIDIwMTggTWljcm9zb2Z0IENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICsqDQo+ID4gKyogIFRoaXMgcHJvZ3JhbSBh bmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiArKiAgYXJlIGxpY2Vuc2VkIGFuZCBt YWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0K PiBMaWNlbnNlDQo+ID4gKyogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAg VGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gPiArKg0K PiBodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0 cCUzQSUyRiUyRm9wZW5zbw0KPiB1cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBsaWNlbnNl LnBocCZhbXA7ZGF0YT0wMiU3QzAxJTdDQ2hyaXN0b3BoZXIuQ28lNDBtaWNyb3NvZnQuY29tJTdD NTcNCj4gZTEzMjI2OTMwYjRhNmM1Y2Q2MDhkNjY0MTBjZTI2JTdDNzJmOTg4YmY4NmYxNDFhZjkx YWIyZDdjZDAxMWRiDQo+IDQ3JTdDMSU3QzAlN0M2MzY4MDY0MjA2ODI3ODg5MTEmYW1wO3NkYXRh PVg4U3NtaUV5emNPbHUlMkJMaEQNCj4gRVYlMkJ2ZmgzTmtZTlQ5TEUlMkZOWnhoZWlCUEVvJTNE JmFtcDtyZXNlcnZlZD0wDQo+ID4gKyoNCj4gPiArKiAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVU RUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+ID4gKyog IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhF Ug0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ID4gKyoNCj4gPiArKiovDQo+ID4gKw0KPiA+ICsj aW5jbHVkZSAiUGxhdGZvcm0uaCINCj4gPiArI2luY2x1ZGUgImlNWDYuaCINCj4gPiArDQo+ID4g Ky8vIEVuc3VyZSBwcm9wZXIgc3RydWN0dXJlIGZvcm1hdHMNCj4gPiArI3ByYWdtYSBwYWNrICgx KQ0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIEVGSV9BQ1BJX0RFU0NSSVBU SU9OX0hFQURFUiBIZWFkZXI7DQo+ID4gKyAgVUlOVDggSW50ZXJmYWNlX1R5cGU7DQo+ID4gKyAg VUlOVDggUmVzZXJ2ZWQxWzNdOw0KPiA+ICsgIEVGSV9BQ1BJXzVfMF9HRU5FUklDX0FERFJFU1Nf U1RSVUNUVVJFIEJhc2VBZGRyZXNzUmVnaXN0ZXI7DQo+ID4gKyAgVUlOVDggSW50ZXJydXB0X1R5 cGU7DQo+ID4gKyAgVUlOVDggUENBVF9jb21wYXRpYmxlX0lSUTsNCj4gPiArICBVSU5UMzIgSW50 ZXJydXB0Ow0KPiA+ICsgIFVJTlQ4IEJhdWRfUmF0ZTsNCj4gPiArICBVSU5UOCBQYXJpdHk7DQo+ ID4gKyAgVUlOVDggU3RvcF9CaXRzOw0KPiA+ICsgIFVJTlQ4IEZsb3dfQ29udHJvbDsNCj4gPiAr ICBVSU5UOCBUZXJtaW5hbF9UeXBlOw0KPiA+ICsgIFVJTlQ4IFJlc2VydmVkMjsNCj4gPiArICBV SU5UMTYgUENJX0RldmljZV9JRDsNCj4gPiArICBVSU5UMTYgUENJX1ZlbmRlcl9JRDsNCj4gPiAr ICBVSU5UOCBQQ0lfQnVzOw0KPiA+ICsgIFVJTlQ4IFBDSV9EZXZpY2U7DQo+ID4gKyAgVUlOVDgg UENJX0Z1bmN0aW9uOw0KPiA+ICsgIFVJTlQzMiBQQ0lfRmxhZ3M7DQo+ID4gKyAgVUlOVDggUENJ X1NlZ21lbnQ7DQo+ID4gKyAgVUlOVDMyIFJlc2VydmVkMzsNCj4gPiArfSBFRklfQUNQSV81XzBf U1BDUl9ERVNDUklQVElPTl9UQUJMRTsNCj4gPiArDQo+ID4gKyNwcmFnbWEgcGFjayAoKQ0KPiA+ ICsNCj4gPiArRUZJX0FDUElfNV8wX1NQQ1JfREVTQ1JJUFRJT05fVEFCTEUgU1BDUiA9IHsNCj4g PiArICB7DQo+ID4gKw0KPiBFRklfQUNQSV81XzBfU0VSSUFMX1BPUlRfQ09OU09MRV9SRURJUkVD VElPTl9UQUJMRV9TSUdOQVRVUkUsDQo+ID4gKyAgICBzaXplb2YgKEVGSV9BQ1BJXzVfMF9TUENS X0RFU0NSSVBUSU9OX1RBQkxFKSwNCj4gPiArICAgIDB4MDIsDQo+ID4gKyAgICAweDAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrc3VtIHdpbGwgYmUgdXBkYXRlZCBhdCBydW50 aW1lDQo+ID4gKyAgICBFRklfQUNQSV9PRU1fSUQsDQo+ID4gKyAgICBFRklfQUNQSV9PRU1fVEFC TEVfSUQsDQo+ID4gKyAgICBFRklfQUNQSV9PRU1fUkVWSVNJT04sDQo+ID4gKyAgICBFRklfQUNQ SV9DUkVBVE9SX0lELA0KPiA+ICsgICAgRUZJX0FDUElfQ1JFQVRPUl9SRVZJU0lPTiwNCj4gPiAr ICB9LA0KPiA+ICsgIERCR19QT1JUX1NVQlRZUEVfSU1YNiwgICAvLyBTZXJpYWwgSW50ZXJmYWNl IHR5cGUgPSBTZXJpYWwgUG9ydCBTdWJ0eXBlcw0KPiBvZiB0aGUgREJHMg0KPiA+ICsgIHsweDAw LCAweDAwLCAweDAwfSwgICAgICAvLyBSZXNlcnZlZA0KPiA+ICsNCj4gPiArICAvLyBBQ1BJIEdl bmVyaWMgQWRkcmVzcyBTdHJ1Y3R1cmUuIFNldCB0byBhbGwgemVyb2VzIHRvIGRpc2FibGUgY29u c29sZQ0KPiByZWRpcmVjdGlvbg0KPiA+ICsgIHsNCj4gPiArICAgIEVGSV9BQ1BJXzVfMF9TWVNU RU1fTUVNT1JZLCAgICAgICAgIC8vIEFkZHJlc3NTcGFjZUlkOg0KPiBTeXN0ZW1NZW1vcnkNCj4g PiArICAgIDB4MjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lzdGVyQml0 V2lkdGgNCj4gPiArICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJl Z2lzdGVyQml0T2Zmc2V0DQo+ID4gKyAgICBFRklfQUNQSV81XzBfRFdPUkQsICAgICAgICAgICAg ICAgICAvLyBBY2Nlc3NTaXplDQo+ID4gKyAgICAoVUlOVDY0KUNTUF9CQVNFX1JFR19QQV9VQVJU MyAgICAgICAvLyBBZGRyZXNzIFVBUlQzDQo+ID4gKyAgfSwNCj4gPiArICAweDA4LCAgICAgICAg Ly8gSW50ZXJydXB0IFR5cGUgPSBCaXRbM10gQVJNSCBHSUMgaW50ZXJydXB0LiAwIG1lYW5zIG5v dA0KPiBzdXBwb3J0ZWQuDQo+ID4gKyAgMHgwMCwgICAgICAgIC8vIElSUS4gTm90IHVzZWQgc2lu Y2UgQml0WzBdIG9mIHRoZSBJbnRlcnJ1cHQgVHlwZSBmaWVsZCBpcyBub3Qgc2V0DQo+ID4gKyAg MHgzYywgICAgICAgIC8vIEdsb2JhbCBTeXN0ZW0gSW50ZXJydXB0IHVzZWQgYnkgdGhlIFVBUlQg KFVBUlQzIGludGVycnVwdCA2MCkNCj4gPiArICAweDA3LCAgICAgICAgLy8gQmF1ZCBSYXRlDQo+ ID4gKyAgMHgwMCwgICAgICAgIC8vIE5vIFBhcml0eQ0KPiA+ICsgIDB4MDEsICAgICAgICAvLyBP bmUgU3RvcCBCaXQNCj4gPiArICAweDAwLCAgICAgICAgLy8gRmxvdyBDb250cm9sOiBOb25lDQo+ ID4gKyAgMHgwMywgICAgICAgIC8vIFRlcm1pbmFsIFR5cGU6IEFOU0kNCj4gPiArICAwWDAwLCAg ICAgICAgLy8gUmVzZXJ2ZWQNCj4gPiArICAweGZmZmYsICAgICAgLy8gMHhGRkZGIC0gbm90IGEg UENJIGRldmljZQ0KPiA+ICsgIDB4ZmZmZiwgICAgICAvLyAweEZGRkYgLSBub3QgYSBQQ0kgZGV2 aWNlDQo+ID4gKyAgMHgwMCwgICAgICAgIC8vIEJ1cyBOdW1iZXIuIDAgLSBub3QgYSBQQ0kgZGV2 aWNlDQo+ID4gKyAgMHgwMCwgICAgICAgIC8vIERldmljZSBOdW1iZXIuIDAgLSBub3QgYSBQQ0kg ZGV2aWNlDQo+ID4gKyAgMHgwMCwgICAgICAgIC8vIEZ1bmN0aW9uLiAwIC0gbm90IGEgUENJIGRl dmljZQ0KPiA+ICsgIDB4MDAwMDAwMDAsICAvLyBQQ0kgRmxhZ3MNCj4gPiArICAweDAwLCAgICAg ICAgLy8gUENJIFNlZ21lbnQNCj4gPiArICAweDAwMDAwMDAwLCAgLy9SZXNlcnZlZA0KPiA+ICt9 Ow0KPiA+ICsNCj4gPiArVk9JRCoNCj4gPiArUmVmZXJlbmNlQWNwaVRhYmxlICgNCj4gPiArICBW T0lEDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgcmV0dXJuIChWT0lEICopJlNQQ1I7DQo+ID4g K30NCj4gPiBkaWZmIC0tZ2l0IGEvU2lsaWNvbi9OWFAvaU1YNlBrZy9BY3BpVGFibGVzL1RwbTIu YXNsYw0KPiBiL1NpbGljb24vTlhQL2lNWDZQa2cvQWNwaVRhYmxlcy9UcG0yLmFzbGMNCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uYTVhYmIyYmYxNWQx DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1NpbGljb24vTlhQL2lNWDZQa2cvQWNwaVRh Ymxlcy9UcG0yLmFzbGMNCj4gPiBAQCAtMCwwICsxLDUzIEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ ICsqDQo+ID4gKyogIENvcHlyaWdodCAoYykgMjAxOCBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgcmVzZXJ2ZWQuDQo+ID4gKyoNCj4gPiArKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUg YWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+ICsqICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZh aWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vu c2UNCj4gPiArKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVs bCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiA+ICsqDQo+IGh0dHBz Oi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJG JTJGb3BlbnNvDQo+IHVyY2Uub3JnJTJGbGljZW5zZXMlMkZic2QtDQo+IGxpY2Vuc2UucGhwJmFt cDtkYXRhPTAyJTdDMDElN0NDaHJpc3RvcGhlci5DbyU0MG1pY3Jvc29mdC5jb20lN0M1Nw0KPiBl MTMyMjY5MzBiNGE2YzVjZDYwOGQ2NjQxMGNlMjYlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2Nk MDExZGINCj4gNDclN0MxJTdDMCU3QzYzNjgwNjQyMDY4Mjc4ODkxMSZhbXA7c2RhdGE9WDhTc21p RXl6Y09sdSUyQkxoRA0KPiBFViUyQnZmaDNOa1lOVDlMRSUyRk5aeGhlaUJQRW8lM0QmYW1wO3Jl c2VydmVkPTANCj4gPiArKg0KPiA+ICsqICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRF UiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gPiArKiAgV0lUSE9V VCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVY UFJFU1MgT1IgSU1QTElFRC4NCj4gPiArKg0KPiA+ICsqKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRl IDxJbmR1c3RyeVN0YW5kYXJkL1RwbTJBY3BpLmg+DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8TGli cmFyeS9QY2RMaWIuaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxQbGF0Zm9ybS5oPg0KPiA+ICsj aW5jbHVkZSAiaU1YNi5oIg0KPiA+ICsNCj4gPiArLy8gRGVmaW5pdGlvbiBpcyBtaXNzaW5nIGZy b20gTWRlUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9UcG0yQWNwaS5oDQo+ID4gKyNpZmRl Zg0KPiBFRklfVFBNMl9BQ1BJX1RBQkxFX1NUQVJUX01FVEhPRF9DT01NQU5EX1JFU1BPTlNFX0JV RkZFUl9JTg0KPiBURVJGQUNFX1dJVEhfVFJFRQ0KPiA+ICsjZXJyb3INCj4gIkVGSV9UUE0yX0FD UElfVEFCTEVfU1RBUlRfTUVUSE9EX0NPTU1BTkRfUkVTUE9OU0VfQlVGRkVSX0kNCj4gTlRFUkZB Q0VfV0lUSF9UUkVFIGlzIGRlZmluZWQgZWxzZXdoZXJlLiINCj4gPiArI2Vsc2UNCj4gPiArI2Rl ZmluZQ0KPiBFRklfVFBNMl9BQ1BJX1RBQkxFX1NUQVJUX01FVEhPRF9DT01NQU5EX1JFU1BPTlNF X0JVRkZFUl9JTg0KPiBURVJGQUNFX1dJVEhfVFJFRSA5DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4g PiArRUZJX1RQTTJfQUNQSV9UQUJMRSBUcG0yVGFibGUgPSB7DQo+ID4gKyAgew0KPiA+ICsNCj4g RUZJX0FDUElfNV8wX1RSVVNURURfQ09NUFVUSU5HX1BMQVRGT1JNXzJfVEFCTEVfU0lHTkFUVVJF LA0KPiA+ICsgICAgc2l6ZW9mIChFRklfVFBNMl9BQ1BJX1RBQkxFKSwNCj4gPiArICAgIEVGSV9U UE0yX0FDUElfVEFCTEVfUkVWSVNJT04sDQo+ID4gKyAgICAwLCAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQ2hlY2tzdW0gd2lsbCBiZSB1cGRhdGVkIGF0IHJ1bnRpbWUNCj4gPiArICAgIEVG SV9BQ1BJX09FTV9JRCwgICAgICAgICAgICAvLyBPRU1JRCBpcyBhIDYgYnl0ZXMgbG9uZyBmaWVs ZA0KPiA+ICsgICAgRUZJX0FDUElfT0VNX1RBQkxFX0lELCAgICAgIC8vIE9FTSB0YWJsZSBpZGVu dGlmaWNhdGlvbig4IGJ5dGVzIGxvbmcpDQo+ID4gKyAgICBFRklfQUNQSV9PRU1fUkVWSVNJT04s ICAgICAgLy8gT0VNIHJldmlzaW9uIG51bWJlcg0KPiA+ICsgICAgRUZJX0FDUElfQ1JFQVRPUl9J RCwgICAgICAgIC8vIENyZWF0b3IgdmVuZG9yIElEDQo+ID4gKyAgICBFRklfQUNQSV9DUkVBVE9S X1JFVklTSU9OLCAgLy8gQ3JlYXRvciByZXZpc2lvbiBudW1iZXINCj4gPiArICB9LA0KPiA+ICsg IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZsYWdzDQo+ID4gKyAgRml4ZWRQY2RH ZXQ2NCAoUGNkVHBtMkFjcGlCdWZmZXJCYXNlKSwgIC8vIENvbnRyb2wgQXJlYQ0KPiA+ICsgIC8v IFN0YXJ0TWV0aG9kDQo+ID4gKw0KPiBFRklfVFBNMl9BQ1BJX1RBQkxFX1NUQVJUX01FVEhPRF9D T01NQU5EX1JFU1BPTlNFX0JVRkZFUl9JTg0KPiBURVJGQUNFX1dJVEhfVFJFRSwNCj4gPiArfTsN Cj4gPiArDQo+ID4gK1ZPSUQqDQo+ID4gK1JlZmVyZW5jZUFjcGlUYWJsZSAoDQo+ID4gKyAgVk9J RA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIHJldHVybiAoVk9JRCAqKSZUcG0yVGFibGU7DQo+ ID4gK30NCj4gDQo+IA0KPiA+IC0tDQo+ID4gMi4xNi4yLmd2ZnMuMS4zMy5nZjUzNzBmMQ0KPiA+ DQo=