From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.5970.1581035202830260111 for ; Thu, 06 Feb 2020 16:26:43 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: hao.a.wu@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Feb 2020 16:26:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,411,1574150400"; d="scan'208";a="225203859" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga008.jf.intel.com with ESMTP; 06 Feb 2020 16:26:41 -0800 Received: from fmsmsx158.amr.corp.intel.com (10.18.116.75) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 6 Feb 2020 16:26:41 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx158.amr.corp.intel.com (10.18.116.75) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 6 Feb 2020 16:26:41 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.5]) by shsmsx102.ccr.corp.intel.com ([169.254.2.126]) with mapi id 14.03.0439.000; Fri, 7 Feb 2020 08:26:39 +0800 From: "Wu, Hao A" To: Philippe Mathieu-Daude , "devel@edk2.groups.io" CC: Antoine Coeur , "Wang, Jian J" Subject: Re: [PATCH v2 17/78] MdeModulePkg/Core/PiSmmCore: Fix various typos Thread-Topic: [PATCH v2 17/78] MdeModulePkg/Core/PiSmmCore: Fix various typos Thread-Index: AQHVwhV+RZkKvB6WTUGVsabstzy116gPFk1g Date: Fri, 7 Feb 2020 00:26:38 +0000 Message-ID: References: <20200103090812.10592-1-philmd@redhat.com> <20200103090812.10592-18-philmd@redhat.com> In-Reply-To: <20200103090812.10592-18-philmd@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: hao.a.wu@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQaGlsaXBwZSBNYXRoaWV1LURh dWRlIFttYWlsdG86cGhpbG1kQHJlZGhhdC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAw MywgMjAyMCA1OjA3IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogQW50b2lu ZSBDb2V1cjsgV2FuZywgSmlhbiBKOyBXdSwgSGFvIEE7IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZGUN Cj4gU3ViamVjdDogW1BBVENIIHYyIDE3Lzc4XSBNZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmU6 IEZpeCB2YXJpb3VzDQo+IHR5cG9zDQo+IA0KPiBGcm9tOiBBbnRvaW5lIENvZXVyIDxjb2V1ckBn bXguZnI+DQo+IA0KPiBGaXggdmFyaW91cyB0eXBvcyBpbiBjb21tZW50cyBhbmQgZG9jdW1lbnRh dGlvbi4NCg0KUmV2aWV3ZWQtYnk6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQoNCkJl c3QgUmVnYXJkcywNCkhhbyBXdQ0KDQoNCj4gDQo+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndh bmdAaW50ZWwuY29tPg0KPiBDYzogSGFvIEEgV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gU2ln bmVkLW9mZi1ieTogQW50b2luZSBDb2V1ciA8Y29ldXJAZ214LmZyPg0KPiBSZXZpZXdlZC1ieTog UGhpbGlwcGUgTWF0aGlldS1EYXVkZSA8cGhpbG1kQHJlZGhhdC5jb20+DQo+IFNpZ25lZC1vZmYt Ynk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZGUgPHBoaWxtZEByZWRoYXQuY29tPg0KPiAtLS0NCj4g IE1kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QaVNtbUlwbC5pbmYgICAgICB8IDEwICsrKyst LS0tDQo+ICBNZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvSGVhcEd1YXJkLmggICAgICAgfCAg MiArLQ0KPiAgTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29yZS5oICAgICAgIHwg MTIgKysrKystLS0tLQ0KPiAgLi4uL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29yZVByaXZhdGVEYXRh LmggICAgIHwgIDYgKystLS0NCj4gIE1kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9EZXBlbmRl bmN5LmMgICAgICB8ICA0ICsrLS0NCj4gIE1kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9EaXNw YXRjaGVyLmMgICAgICB8IDI0ICsrKysrKysrKy0tLS0tLS0tLS0NCj4gIE1kZU1vZHVsZVBrZy9D b3JlL1BpU21tQ29yZS9IZWFwR3VhcmQuYyAgICAgICB8ICA0ICsrLS0NCj4gIE1kZU1vZHVsZVBr Zy9Db3JlL1BpU21tQ29yZS9Mb2NhdGUuYyAgICAgICAgICB8ICA4ICsrKy0tLS0NCj4gIC4uLi9D b3JlL1BpU21tQ29yZS9NZW1vcnlBdHRyaWJ1dGVzVGFibGUuYyAgICB8ICA4ICsrKy0tLS0NCj4g IE1kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QYWdlLmMgICAgICAgICAgICB8ICA0ICsrLS0N Cj4gIE1kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QaVNtbUNvcmUuYyAgICAgICB8IDEwICsr KystLS0tDQo+ICBNZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvUGlTbW1JcGwuYyAgICAgICAg fCAgOCArKystLS0tDQo+ICBNZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvU21pLmMgICAgICAg ICAgICAgfCAgMiArLQ0KPiAgLi4uL0NvcmUvUGlTbW1Db3JlL1NtcmFtUHJvZmlsZVJlY29yZC5j ICAgICAgIHwgIDQgKystLQ0KPiAgMTQgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwg NTMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0NvcmUvUGlT bW1Db3JlL1BpU21tSXBsLmluZg0KPiBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QaVNt bUlwbC5pbmYNCj4gaW5kZXggYjZiMWJiY2RhYzUxLi42MTk2MDNkNmMyYTAgMTAwNjQ0DQo+IC0t LSBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QaVNtbUlwbC5pbmYNCj4gKysrIGIvTWRl TW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tSXBsLmluZg0KPiBAQCAtNTcsMjMgKzU3LDIz IEBAIFtQcm90b2NvbHNdDQo+ICAgIGdFZmlTbW1Db250cm9sMlByb3RvY29sR3VpZCAgICAgICAg ICAgICAgICAgICAjIyBDT05TVU1FUw0KPiAgICAjIyBOT1RJRlkNCj4gICAgIyMgU09NRVRJTUVT X0NPTlNVTUVTDQo+IC0gICMjIFVOREVGSU5FRCAjIFVzZWQgdG8gZG8gc21tIGNvbW11bmNhdGlv bg0KPiArICAjIyBVTkRFRklORUQgIyBVc2VkIHRvIGRvIHNtbSBjb21tdW5pY2F0aW9uDQo+ICAg IGdFZmlEeGVTbW1SZWFkeVRvTG9ja1Byb3RvY29sR3VpZA0KPiAgICBnRWZpQ3B1QXJjaFByb3Rv Y29sR3VpZCAgICAgICAgICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+IA0K PiAgW0d1aWRzXQ0KPiAgICAjIyBDT05TVU1FUyAgICAgICAgICAgIyMgRXZlbnQNCj4gLSAgIyMg UFJPRFVDRVMgICAgICAgICAgICMjIFVOREVGSU5FRCAjIFVzZWQgdG8gZG8gc21tIGNvbW11bmNh dGlvbg0KPiArICAjIyBQUk9EVUNFUyAgICAgICAgICAgIyMgVU5ERUZJTkVEICMgVXNlZCB0byBk byBzbW0gY29tbXVuaWNhdGlvbg0KPiAgICBnRWZpRXZlbnREeGVEaXNwYXRjaEd1aWQNCj4gICAg Z0VmaUV2ZW50UmVhZHlUb0Jvb3RHdWlkICAgICAgICAgICAgICAgICAgICAgICMjIENPTlNVTUVT ICAgICAgICAgICAgICMjIEV2ZW50DQo+ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBFdmVu dA0KPiAtICAjIyBTT01FVElNRVNfUFJPRFVDRVMgIyMgVU5ERUZJTkVEICMgVXNlZCB0byBkbyBz bW0NCj4gY29tbXVuY2F0aW9uDQo+ICsgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAjIyBVTkRFRklO RUQgIyBVc2VkIHRvIGRvIHNtbQ0KPiBjb21tdW5pY2F0aW9uDQo+ICAgIGdFZmlFdmVudExlZ2Fj eUJvb3RHdWlkDQo+ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBFdmVudA0KPiAtICAjIyBT T01FVElNRVNfUFJPRFVDRVMgIyMgVU5ERUZJTkVEICMgVXNlZCB0byBkbyBzbW0NCj4gY29tbXVu Y2F0aW9uDQo+ICsgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAjIyBVTkRFRklORUQgIyBVc2VkIHRv IGRvIHNtbQ0KPiBjb21tdW5pY2F0aW9uDQo+ICAgIGdFZmlFdmVudEV4aXRCb290U2VydmljZXNH dWlkDQo+ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBFdmVudA0KPiAtICAjIyBTT01FVElN RVNfUFJPRFVDRVMgIyMgVU5ERUZJTkVEICMgVXNlZCB0byBkbyBzbW0NCj4gY29tbXVuY2F0aW9u DQo+ICsgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAjIyBVTkRFRklORUQgIyBVc2VkIHRvIGRvIHNt bQ0KPiBjb21tdW5pY2F0aW9uDQo+ICAgIGdFZmlFdmVudFJlYWR5VG9Cb290R3VpZA0KPiAgICBn RWZpRXZlbnRWaXJ0dWFsQWRkcmVzc0NoYW5nZUd1aWQgICAgICAgICAgICAgIyMgQ09OU1VNRVMg ICAgICAgICAgICAgIyMgRXZlbnQNCj4gICAgZ0VmaUVuZE9mRHhlRXZlbnRHcm91cEd1aWQgICAg ICAgICAgICAgICAgICAgICMjIENPTlNVTUVTICAgICAgICAgICAgICMjIEV2ZW50DQo+IGRpZmYg LS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvSGVhcEd1YXJkLmgNCj4gYi9NZGVN b2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvSGVhcEd1YXJkLmgNCj4gaW5kZXggOTA3N2RiMWE4NDk2 Li4xYjVjMGYyYTRmNTcgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29y ZS9IZWFwR3VhcmQuaA0KPiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvSGVhcEd1 YXJkLmgNCj4gQEAgLTM5LDcgKzM5LDcgQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCj4gIC8vDQo+ICAvLyBGb3IgYSBub3JtYWwgY29uZmlndXJhdGlvbiBv ZiBzeXN0ZW0gd2l0aCA0RyBtZW1vcnksIHR3byBsZXZlbHMgb2YNCj4gdGFibGVzDQo+ICAvLyBj YW4gdHJhY2sgdGhlIHdob2xlIG1lbW9yeSwgYmVjYXVzZSB0d28gbGV2ZWxzIChMMytMNCkgb2Yg bWFwIHRhYmxlcw0KPiBoYXZlDQo+IC0vLyBhbHJlYWR5IGNvdmVycmVkIDM3LWJpdCBvZiBtZW1v cnkgYWRkcmVzcy4gQW5kIGZvciBhIG5vcm1hbCBVRUZJIEJJT1MsDQo+ICsvLyBhbHJlYWR5IGNv dmVyZWQgMzctYml0IG9mIG1lbW9yeSBhZGRyZXNzLiBBbmQgZm9yIGEgbm9ybWFsIFVFRkkgQklP UywNCj4gIC8vIGxlc3MgdGhhbiAxMjhNIG1lbW9yeSB3b3VsZCBiZSBjb25zdW1lZCBkdXJpbmcg Ym9vdC4gVGhhdCBtZWFucyB3ZQ0KPiBqdXN0DQo+ICAvLyBuZWVkDQo+ICAvLw0KPiBkaWZmIC0t Z2l0IGEvTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29yZS5oDQo+IGIvTWRlTW9k dWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29yZS5oDQo+IGluZGV4IDA5MDhlN2Y0ZTllNy4u NTBhN2ZjMDAwMGNiIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUv UGlTbW1Db3JlLmgNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29y ZS5oDQo+IEBAIC0xNzEsNyArMTcxLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICBFRklfR1VJ RCAgICAgICAgICAgIFByb3RvY29sSUQ7DQo+ICAgIC8vLyBBbGwgcHJvdG9jb2wgaW50ZXJmYWNl cw0KPiAgICBMSVNUX0VOVFJZICAgICAgICAgIFByb3RvY29sczsNCj4gLSAgLy8vIFJlZ2lzdGVy ZCBub3RpZmljYXRpb24gaGFuZGxlcnMNCj4gKyAgLy8vIFJlZ2lzdGVyZWQgbm90aWZpY2F0aW9u IGhhbmRsZXJzDQo+ICAgIExJU1RfRU5UUlkgICAgICAgICAgTm90aWZ5Ow0KPiAgfSBQUk9UT0NP TF9FTlRSWTsNCj4gDQo+IEBAIC01NjIsNyArNTYyLDcgQEAgU21tTG9jYXRlSGFuZGxlICgNCj4g IC8qKg0KPiAgICBSZXR1cm4gdGhlIGZpcnN0IFByb3RvY29sIEludGVyZmFjZSB0aGF0IG1hdGNo ZXMgdGhlIFByb3RvY29sIEdVSUQuIElmDQo+ICAgIFJlZ2lzdHJhdGlvbiBpcyBwYXNhc2VkIGlu IHJldHVybiBhIFByb3RvY29sIEluc3RhbmNlIHRoYXQgd2FzIGp1c3QgYWRkDQo+IC0gIHRvIHRo ZSBzeXN0ZW0uIElmIFJldGlzdHJhdGlvbiBpcyBOVUxMIHJldHVybiB0aGUgZmlyc3QgUHJvdG9j b2wgSW50ZXJmYWNlDQo+ICsgIHRvIHRoZSBzeXN0ZW0uIElmIFJlZ2lzdHJhdGlvbiBpcyBOVUxM IHJldHVybiB0aGUgZmlyc3QgUHJvdG9jb2wgSW50ZXJmYWNlDQo+ICAgIHlvdSBmaW5kLg0KPiAN Cj4gICAgQHBhcmFtICBQcm90b2NvbCAgICAgICAgICAgICAgIFRoZSBwcm90b2NvbCB0byBzZWFy Y2ggZm9yDQo+IEBAIC02MDIsNyArNjAyLDcgQEAgU21tTG9jYXRlUHJvdG9jb2wgKA0KPiAgICBA cmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgTm8gaGFuZGxlcyBtYXRjaCB0aGUgc2VhcmNo Lg0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgVGhlcmUgaXMgbm90IGVub3Vn aCBwb29sIG1lbW9yeSB0bw0KPiBzdG9yZSB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1hdGNoaW5nIHJlc3VsdHMuDQo+IC0gIEByZXR2YWwgRUZJX0lOVkFMSURfUEFS QU1FVEVSICBPbmUgb3IgbW9yZSBwYXJhbXRlcnMgYXJlIG5vdCB2YWxpZC4NCj4gKyAgQHJldHZh bCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIE9uZSBvciBtb3JlIHBhcmFtZXRlcnMgYXJlIG5vdCB2 YWxpZC4NCj4gDQo+ICAqKi8NCj4gIEVGSV9TVEFUVVMNCj4gQEAgLTY0MSw3ICs2NDEsNyBAQCBT bWlNYW5hZ2UgKA0KPiAgLyoqDQo+ICAgIFJlZ2lzdGVycyBhIGhhbmRsZXIgdG8gZXhlY3V0ZSB3 aXRoaW4gU01NLg0KPiANCj4gLSAgQHBhcmFtICBIYW5kbGVyICAgICAgICBIYW5kbGVyIHNlcnZp Y2UgZnVudGlvbiBwb2ludGVyLg0KPiArICBAcGFyYW0gIEhhbmRsZXIgICAgICAgIEhhbmRsZXIg c2VydmljZSBmdW5jdGlvbiBwb2ludGVyLg0KPiAgICBAcGFyYW0gIEhhbmRsZXJUeXBlICAgIFBv aW50cyB0byB0aGUgaGFuZGxlciB0eXBlIG9yIE5VTEwgZm9yIHJvb3QgU01JDQo+IGhhbmRsZXJz Lg0KPiAgICBAcGFyYW0gIERpc3BhdGNoSGFuZGxlIE9uIHJldHVybiwgY29udGFpbnMgYSB1bmlx dWUgaGFuZGxlIHdoaWNoIGNhbiBiZQ0KPiB1c2VkIHRvIGxhdGVyIHVucmVnaXN0ZXIgdGhlIGhh bmRsZXIgZnVuY3Rpb24uDQo+IA0KPiBAQCAtODczLDEyICs4NzMsMTIgQEAgU21tRWZpTm90QXZh aWxhYmxlWWV0QXJnNSAoDQo+ICAgICk7DQo+IA0KPiAgLy8NCj4gLS8vRnVuY3Rpb25zIHVzZWQg ZHVyaW5nIGRlYnVnIGJ1aWxzDQo+ICsvL0Z1bmN0aW9ucyB1c2VkIGR1cmluZyBkZWJ1ZyBidWls ZHMNCj4gIC8vDQo+IA0KPiAgLyoqDQo+ICAgIFRyYXZlcnNlIHRoZSBkaXNjb3ZlcmVkIGxpc3Qg Zm9yIGFueSBkcml2ZXJzIHRoYXQgd2VyZSBkaXNjb3ZlcmVkIGJ1dCBub3QNCj4gbG9hZGVkDQo+ IC0gIGJlY2F1c2UgdGhlIGRlcGVuZGVuY3kgZXhwZXJlc3Npb25zIGV2YWx1YXRlZCB0byBmYWxz ZS4NCj4gKyAgYmVjYXVzZSB0aGUgZGVwZW5kZW5jeSBleHByZXNzaW9ucyBldmFsdWF0ZWQgdG8g ZmFsc2UuDQo+IA0KPiAgKiovDQo+ICBWT0lEDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cv Q29yZS9QaVNtbUNvcmUvUGlTbW1Db3JlUHJpdmF0ZURhdGEuaA0KPiBiL01kZU1vZHVsZVBrZy9D b3JlL1BpU21tQ29yZS9QaVNtbUNvcmVQcml2YXRlRGF0YS5oDQo+IGluZGV4IDFkOGFmNmYxMjc2 Ny4uMjhmOTVkOWIwMjRiIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNv cmUvUGlTbW1Db3JlUHJpdmF0ZURhdGEuaA0KPiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNt bUNvcmUvUGlTbW1Db3JlUHJpdmF0ZURhdGEuaA0KPiBAQCAtNjUsNyArNjUsNyBAQCB0eXBlZGVm IHN0cnVjdCB7DQo+IA0KPiAgICAvLy8NCj4gICAgLy8vIFRoZSBTTU0gRm91bmRhdGlvbiBFbnRy eSBQb2ludC4gIFRoZSBTTU0gQ29yZSBmaWxscyBpbiB0aGlzIGZpZWxkIHdoZW4NCj4gdGhlDQo+ IC0gIC8vLyBTTU0gQ29yZSBpcyBpbml0aWFsaXplZC4gIFRoZSBTTU0gSVBMIGlzIHJlc3BvbnNi aWxlIGZvciByZWdpc3RlcmluZyB0aGlzDQo+IGVudHJ5DQo+ICsgIC8vLyBTTU0gQ29yZSBpcyBp bml0aWFsaXplZC4gIFRoZSBTTU0gSVBMIGlzIHJlc3BvbnNpYmxlIGZvciByZWdpc3RlcmluZyB0 aGlzDQo+IGVudHJ5DQo+ICAgIC8vLyBwb2ludCB3aXRoIHRoZSBTTU0gQ29uZmlndXJhdGlvbiBQ cm90b2NvbC4gIFRoZSBTTU0gQ29uZmlndXJhdGlvbg0KPiBQcm90b2NvbCBtYXkNCj4gICAgLy8v IG5vdCBiZSBhdmFpbGFibGUgYXQgdGhlIHRpbWUgdGhlIFNNTSBJUEwgYW5kIFNNTSBDb3JlIGFy ZSBzdGFydGVkLCBzbw0KPiB0aGUgU01NIElQTA0KPiAgICAvLy8gc2V0cyB1cCBhIHByb3RvY29s IG5vdGlmaWNhdGlvbiBvbiB0aGUgU01NIENvbmZpZ3VyYXRpb24gUHJvdG9jb2wgYW5kDQo+IHJl Z2lzdGVycw0KPiBAQCAtOTIsMTQgKzkyLDE0IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gICAgRUZJ X1NNTV9TWVNURU1fVEFCTEUyICAgICAgICAgICAqU21zdDsNCj4gDQo+ICAgIC8vLw0KPiAtICAv Ly8gVGhpcyBmaWVsZCBpcyB1c2VkIGJ5IHRoZSBTTU0gQ29tbXVuaWNhdGlvb24gUHJvdG9jb2wg dG8gcGFzcyBhIGJ1ZmZlcg0KPiBpbnRvDQo+ICsgIC8vLyBUaGlzIGZpZWxkIGlzIHVzZWQgYnkg dGhlIFNNTSBDb21tdW5pY2F0aW9uIFByb3RvY29sIHRvIHBhc3MgYSBidWZmZXINCj4gaW50bw0K PiAgICAvLy8gYSBzb2Z0d2FyZSBTTUkgaGFuZGxlciBhbmQgZm9yIHRoZSBzb2Z0d2FyZSBTTUkg aGFuZGxlciB0byBwYXNzIGENCj4gYnVmZmVyIGJhY2sgdG8NCj4gICAgLy8vIHRoZSBjYWxsZXIg b2YgdGhlIFNNTSBDb21tdW5pY2F0aW9uIFByb3RvY29sLg0KPiAgICAvLy8NCj4gICAgVk9JRCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqQ29tbXVuaWNhdGlvbkJ1ZmZlcjsNCj4gDQo+ICAg IC8vLw0KPiAtICAvLy8gVGhpcyBmaWVsZCBpcyB1c2VkIGJ5IHRoZSBTTU0gQ29tbXVuaWNhdGlv b24gUHJvdG9jb2wgdG8gcGFzcyB0aGUgc2l6ZQ0KPiBvZiBhIGJ1ZmZlciwNCj4gKyAgLy8vIFRo aXMgZmllbGQgaXMgdXNlZCBieSB0aGUgU01NIENvbW11bmljYXRpb24gUHJvdG9jb2wgdG8gcGFz cyB0aGUgc2l6ZQ0KPiBvZiBhIGJ1ZmZlciwNCj4gICAgLy8vIGluIGJ5dGVzLCBpbnRvIGEgc29m dHdhcmUgU01JIGhhbmRsZXIgYW5kIGZvciB0aGUgc29mdHdhcmUgU01JIGhhbmRsZXINCj4gdG8g cGFzcyB0aGUNCj4gICAgLy8vIHNpemUsIGluIGJ5dGVzLCBvZiBhIGJ1ZmZlciBiYWNrIHRvIHRo ZSBjYWxsZXIgb2YgdGhlIFNNTSBDb21tdW5pY2F0aW9uDQo+IFByb3RvY29sLg0KPiAgICAvLy8N Cj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9EZXBlbmRlbmN5LmMN Cj4gYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvRGVwZW5kZW5jeS5jDQo+IGluZGV4IGRm ZDQ1MzdmODQ2YS4uMTE2NzgwN2IxNTFiIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29y ZS9QaVNtbUNvcmUvRGVwZW5kZW5jeS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21t Q29yZS9EZXBlbmRlbmN5LmMNCj4gQEAgLTE5Miw3ICsxOTIsNyBAQCBTbW1Jc1NjaGVkdWxhYmxl ICgNCj4gICAgaWYgKERyaXZlckVudHJ5LT5EZXBleCA9PSBOVUxMKSB7DQo+ICAgICAgLy8NCj4g ICAgICAvLyBBIE5VTEwgRGVwZXggbWVhbnMgdGhhdCB0aGUgU01NIGRyaXZlciBpcyBub3QgYnVp bHQgY29ycmVjdGx5Lg0KPiAtICAgIC8vIEFsbCBTTU0gZHJpdmVycyBtdXN0IGhhdmUgYSB2YWxp ZCBkZXBleCBleHByZXNzaWlvbi4NCj4gKyAgICAvLyBBbGwgU01NIGRyaXZlcnMgbXVzdCBoYXZl IGEgdmFsaWQgZGVwZXggZXhwcmVzc2lvbi4NCj4gICAgICAvLw0KPiAgICAgIERFQlVHICgoREVC VUdfRElTUEFUQ0gsICIgIFJFU1VMVCA9IEZBTFNFIChEZXBleCBpcyBlbXB0eSlcbiIpKTsNCj4g ICAgICBBU1NFUlQgKEZBTFNFKTsNCj4gQEAgLTM3MSw3ICszNzEsNyBAQCBTbW1Jc1NjaGVkdWxh YmxlICgNCj4gICAgICAvLyBUaGUgbWF0aCBpcyBkb25lIG91dCBvZiBvcmRlciwgYnV0IGl0IHNo b3VsZCBub3QgbWF0dGVyLiBUaGF0IGlzDQo+ICAgICAgLy8gd2UgbWF5IGFkZCBpbiB0aGUgc2l6 ZW9mIChFRklfR1VJRCkgYmVmb3JlIHdlIGFjY291bnQgZm9yIHRoZSBPUA0KPiBDb2RlLg0KPiAg ICAgIC8vIFRoaXMgaXMgbm90IGFuIGlzc3VlLCBzaW5jZSB3ZSBqdXN0IG5lZWQgdGhlIGNvcnJl Y3QgZW5kIHJlc3VsdC4gWW91DQo+IC0gICAgLy8gbmVlZCB0byBiZSBjYXJlZnVsIHVzaW5nIEl0 ZXJhdG9yIGluIHRoZSBsb29wIGFzIGl0J3MgaW50ZXJtZWRpYXRlIHZhbHVlDQo+ICsgICAgLy8g bmVlZCB0byBiZSBjYXJlZnVsIHVzaW5nIEl0ZXJhdG9yIGluIHRoZSBsb29wIGFzIGl0cyBpbnRl cm1lZGlhdGUgdmFsdWUNCj4gICAgICAvLyBtYXkgYmUgc3RyYW5nZS4NCj4gICAgICAvLw0KPiAg ICAgIEl0ZXJhdG9yKys7DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNv cmUvRGlzcGF0Y2hlci5jDQo+IGIvTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL0Rpc3BhdGNo ZXIuYw0KPiBpbmRleCBlNWExNjBlZDBiOTIuLjliZWM3MzFlNTMxMiAxMDA2NDQNCj4gLS0tIGEv TWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL0Rpc3BhdGNoZXIuYw0KPiArKysgYi9NZGVNb2R1 bGVQa2cvQ29yZS9QaVNtbUNvcmUvRGlzcGF0Y2hlci5jDQo+IEBAIC0xNyw3ICsxNyw3IEBADQo+ ICAgICAgICAgICAgICBhbmQgQWZ0ZXIgZGVwZW5kZW5jaWVzLiBUaGlzIGlzIGRvbmUgcmVjdXJz aXZlbHkgYXMgdGhlIGNhbGwgdG8gYWRkDQo+ICAgICAgICAgICAgICB0byB0aGUgbVNjaGVkdWxl ZFF1ZXVlIGNoZWNrcyBmb3IgQmVmb3JlIGFuZCByZWN1cnNpdmVseSBhZGRzDQo+ICAgICAgICAg ICAgICBhbGwgQmVmb3Jlcy4gSXQgdGhlbiBhZGRlcyB0aGUgaXRlbSB0aGF0IHdhcyBwYXNzZWQg aW4gYW5kIHRoZW4NCj4gLSAgICAgICAgICAgIHByb2Nlc3Nlc3MgdGhlIEFmdGVyIGRlcGVuZGVj aWVzIGJ5IHJlY3Vyc2l2ZWx5IGNhbGxpbmcgdGhlIHJvdXRpbmUuDQo+ICsgICAgICAgICAgICBw cm9jZXNzZXMgdGhlIEFmdGVyIGRlcGVuZGVuY2llcyBieSByZWN1cnNpdmVseSBjYWxsaW5nIHRo ZSByb3V0aW5lLg0KPiANCj4gICAgRGlzcGF0Y2hlciBSdWxlczoNCj4gICAgVGhlIHJ1bGVzIGZv ciB0aGUgZGlzcGF0Y2hlciBhcmUgc2ltaWxhciB0byB0aGUgRFhFIGRpc3BhdGNoZXIuDQo+IEBA IC0yNSw3ICsyNSw3IEBADQo+ICAgIFRoZSBydWxlcyBmb3IgRFhFIGRpc3BhdGNoZXIgYXJlIGlu IGNoYXB0ZXIgMTAgb2YgdGhlIERYRSBDSVMuIEZpZ3VyZSAxMC0zDQo+ICAgIGlzIHRoZSBzdGF0 ZSBkaWFncmFtIGZvciB0aGUgRFhFIGRpc3BhdGNoZXINCj4gDQo+IC0gIERlcGV4IC0gRGVwZW5k ZW5jeSBFeHByZXNpb24uDQo+ICsgIERlcGV4IC0gRGVwZW5kZW5jeSBFeHByZXNzaW9uLg0KPiAN Cj4gICAgQ29weXJpZ2h0IChjKSAyMDE0LCBIZXdsZXR0LVBhY2thcmQgRGV2ZWxvcG1lbnQgQ29t cGFueSwgTC5QLg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDE4LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IEBAIC04MywxMiArODMsMTIgQEAgTElT VF9FTlRSWSAgbVNjaGVkdWxlZFF1ZXVlID0NCj4gSU5JVElBTElaRV9MSVNUX0hFQURfVkFSSUFC TEUgKG1TY2hlZHVsZWRRdWV1ZSk7DQo+ICBMSVNUX0VOVFJZICBtRnZIYW5kbGVMaXN0ID0gSU5J VElBTElaRV9MSVNUX0hFQURfVkFSSUFCTEUNCj4gKG1GdkhhbmRsZUxpc3QpOw0KPiANCj4gIC8v DQo+IC0vLyBGbGFnIGZvciB0aGUgU01NIERpc3BhY2hlci4gIFRSVUUgaWYgZGlzcGF0Y2hlciBp cyBleGVjdWluZy4NCj4gKy8vIEZsYWcgZm9yIHRoZSBTTU0gRGlzcGF0Y2hlci4gIFRSVUUgaWYg ZGlzcGF0Y2hlciBpcyBleGVjdXRpbmcuDQo+ICAvLw0KPiAgQk9PTEVBTiAgZ0Rpc3BhdGNoZXJS dW5uaW5nID0gRkFMU0U7DQo+IA0KPiAgLy8NCj4gLS8vIEZsYWcgZm9yIHRoZSBTTU0gRGlzcGFj aGVyLiAgVFJVRSBpZiB0aGVyZSBpcyBvbmUgb3IgbW9yZSBTTU0gZHJpdmVycw0KPiByZWFkeSB0 byBiZSBkaXNwYXRjaGVkDQo+ICsvLyBGbGFnIGZvciB0aGUgU01NIERpc3BhdGNoZXIuICBUUlVF IGlmIHRoZXJlIGlzIG9uZSBvciBtb3JlIFNNTSBkcml2ZXJzDQo+IHJlYWR5IHRvIGJlIGRpc3Bh dGNoZWQNCj4gIC8vDQo+ICBCT09MRUFOICBnUmVxdWVzdERpc3BhdGNoID0gRkFMU0U7DQo+IA0K PiBAQCAtMTc1LDcgKzE3NSw3IEBAIENoZWNrQW5kTWFya0ZpeExvYWRpbmdNZW1vcnlVc2FnZUJp dE1hcCAoDQo+ICAgICAgIHJldHVybiBFRklfTk9UX0ZPVU5EOw0KPiAgICAgfQ0KPiAgICAgLy8N Cj4gLSAgIC8vIFRlc3QgaWYgdGhlIG1lbW9yeSBpcyBhdmFsYWlibGUgb3Igbm90Lg0KPiArICAg Ly8gVGVzdCBpZiB0aGUgbWVtb3J5IGlzIGF2YWlsYWJsZSBvciBub3QuDQo+ICAgICAvLw0KPiAg ICAgQmFzZU9mZnNldFBhZ2VOdW1iZXIgPSBFRklfU0laRV9UT19QQUdFUygoVUlOVDMyKShJbWFn ZUJhc2UgLQ0KPiBTbW1Db2RlQmFzZSkpOw0KPiAgICAgVG9wT2Zmc2V0UGFnZU51bWJlciAgPSBF RklfU0laRV9UT19QQUdFUygoVUlOVDMyKShJbWFnZUJhc2UgKw0KPiBJbWFnZVNpemUgLSBTbW1D b2RlQmFzZSkpOw0KPiBAQCAtNDU4LDcgKzQ1OCw3IEBAIFNtbUxvYWRJbWFnZSAoDQo+ICAgICAg U3RhdHVzID0gR2V0UGVDb2ZmSW1hZ2VGaXhMb2FkaW5nQXNzaWduZWRBZGRyZXNzICgmSW1hZ2VD b250ZXh0KTsNCj4gICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiAgICAgICAgLy8N Cj4gLSAgICAgIC8vIFNpbmNlIHRoZSBtZW1vcnkgcmFuZ2UgdG8gbG9hZCBTbW0gY29yZSBhbHJl YXkgYmVlbiBjdXQgb3V0LCBzbyBubw0KPiBuZWVkIHRvIGFsbG9jYXRlIGFuZCBmcmVlIHRoaXMg cmFuZ2UNCj4gKyAgICAgIC8vIFNpbmNlIHRoZSBtZW1vcnkgcmFuZ2UgdG8gbG9hZCBTbW0gY29y ZSBhbHJlYWR5IGJlZW4gY3V0IG91dCwgc28NCj4gbm8gbmVlZCB0byBhbGxvY2F0ZSBhbmQgZnJl ZSB0aGlzIHJhbmdlDQo+ICAgICAgICAvLyBmb2xsb3dpbmcgc3RhdGVtZW50cyBpcyB0byBieXBh c3MgU21tRnJlZVBhZ2VzDQo+ICAgICAgICAvLw0KPiAgICAgICAgUGFnZUNvdW50ID0gMDsNCj4g QEAgLTY2NCw3ICs2NjQsNyBAQCBTbW1Mb2FkSW1hZ2UgKA0KPiAgICAgICAgLy8NCj4gICAgICAg IC8vIENvcHkgdGhlIFBEQiBmaWxlIG5hbWUgdG8gb3VyIHRlbXBvcmFyeSBzdHJpbmcsIGFuZCBy ZXBsYWNlIC5wZGINCj4gd2l0aCAuZWZpDQo+ICAgICAgICAvLyBUaGUgUERCIGZpbGUgbmFtZSBp cyBsaW1pdGVkIGluIHRoZSByYW5nZSBvZiAwfjI1NS4NCj4gLSAgICAgIC8vIElmIHRoZSBsZW5n dGggaXMgYmlnZ2VyIHRoYW4gMjU1LCB0cmltIHRoZSByZWR1ZGFudCBjaGFyYWN0ZXJzIHRvIGF2 b2lkDQo+IG92ZXJmbG93IGluIGFycmF5IGJvdW5kYXJ5Lg0KPiArICAgICAgLy8gSWYgdGhlIGxl bmd0aCBpcyBiaWdnZXIgdGhhbiAyNTUsIHRyaW0gdGhlIHJlZHVuZGFudCBjaGFyYWN0ZXJzIHRv DQo+IGF2b2lkIG92ZXJmbG93IGluIGFycmF5IGJvdW5kYXJ5Lg0KPiAgICAgICAgLy8NCj4gICAg ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IHNpemVvZiAoRWZpRmlsZU5hbWUpIC0gNDsgSW5k ZXgrKykgew0KPiAgICAgICAgICBFZmlGaWxlTmFtZVtJbmRleF0gPSBJbWFnZUNvbnRleHQuUGRi UG9pbnRlcltJbmRleCArIFN0YXJ0SW5kZXhdOw0KPiBAQCAtNzQxLDcgKzc0MSw3IEBAIFNtbVBy ZVByb2Nlc3NEZXBleCAoDQo+IA0KPiAgICBAcGFyYW0gIERyaXZlckVudHJ5ICAgICAgICAgICBE cml2ZXIgdG8gd29yayBvbi4NCj4gDQo+IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAg IERlcGV4IHJlYWQgYW5kIHByZXByb3NzZXNlZA0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAg ICAgICAgICBEZXBleCByZWFkIGFuZCBwcmVwcm9jZXNzZWQNCj4gICAgQHJldHZhbCBFRklfUFJP VE9DT0xfRVJST1IgICAgVGhlIHNlY3Rpb24gZXh0cmFjdGlvbiBwcm90b2NvbCByZXR1cm5lZA0K PiBhbiBlcnJvcg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgIERlcGV4 IHJlYWRpbmcgbmVlZHMgdG8gYmUgcmV0cmllZC4NCj4gICAgQHJldHZhbCBFcnJvciAgICAgICAg ICAgICAgICAgREVQRVggbm90IGZvdW5kLg0KPiBAQCAtMTA5Myw4ICsxMDkzLDggQEAgRnZIYXNC ZWVuUHJvY2Vzc2VkICgNCj4gIH0NCj4gDQo+ICAvKioNCj4gLSAgUmVtZW1iZXIgdGhhdCBGdiBw cm90b2NvbCBvbiBGdkhhbmRsZSBoYXMgaGFkIGl0J3MgZHJpdmVycyBwbGFjZWQgb24gdGhlDQo+ IC0gIG1EaXNjb3ZlcmVkTGlzdC4gVGhpcyBmdWNudGlvbiBhZGRzIGVudHJpZXMgb24gdGhlIG1G dkhhbmRsZUxpc3QuIEl0ZW1zDQo+IGFyZQ0KPiArICBSZW1lbWJlciB0aGF0IEZ2IHByb3RvY29s IG9uIEZ2SGFuZGxlIGhhcyBoYWQgaXRzIGRyaXZlcnMgcGxhY2VkIG9uIHRoZQ0KPiArICBtRGlz Y292ZXJlZExpc3QuIFRoaXMgZnVuY3Rpb24gYWRkcyBlbnRyaWVzIG9uIHRoZSBtRnZIYW5kbGVM aXN0LiBJdGVtcw0KPiBhcmUNCj4gICAgbmV2ZXIgcmVtb3ZlZC9mcmVlZCBmcm9tIHRoZSBtRnZI YW5kbGVMaXN0Lg0KPiANCj4gICAgQHBhcmFtICBGdkhhbmRsZSAgICAgICAgICAgICAgVGhlIGhh bmRsZSBvZiBhIEZWIHRoYXQgaGFzIGJlZW4gcHJvY2Vzc2VkDQo+IEBAIC0xMTY1LDcgKzExNjUs NyBAQCBTbW1GdlRvRGV2aWNlUGF0aCAoDQo+IA0KPiAgLyoqDQo+ICAgIEFkZCBhbiBlbnRyeSB0 byB0aGUgbURpc2NvdmVyZWRMaXN0LiBBbGxvY2F0ZSBtZW1vcnkgdG8gc3RvcmUgdGhlDQo+IERy aXZlckVudHJ5LA0KPiAtICBhbmQgaW5pdGlsaXplIGFueSBzdGF0ZSB2YXJpYWJsZXMuIFJlYWQg dGhlIERlcGV4IGZyb20gdGhlIEZWIGFuZCBzdG9yZSBpdA0KPiArICBhbmQgaW5pdGlhbGl6ZSBh bnkgc3RhdGUgdmFyaWFibGVzLiBSZWFkIHRoZSBEZXBleCBmcm9tIHRoZSBGViBhbmQgc3RvcmUg aXQNCj4gICAgaW4gRHJpdmVyRW50cnkuIFByZS1wcm9jZXNzIHRoZSBEZXBleCB0byBzZXQgdGhl IEJlZm9yZSBhbmQgQWZ0ZXIgc3RhdGUuDQo+ICAgIFRoZSBEaXNjb3ZlcmVkIGxpc3QgaXMgbmV2 ZXIgZnJlZSdlZCBhbmQgY29udGFpbnMgYm9vbGVhbnMgdGhhdCByZXByZXNlbnQNCj4gdGhlDQo+ ICAgIG90aGVyIHBvc3NpYmxlIFNNTSBkcml2ZXIgc3RhdGVzLg0KPiBAQCAtMTQ3Myw3ICsxNDcz LDcgQEAgU21tRHJpdmVyRGlzcGF0Y2hIYW5kbGVyICgNCj4gDQo+ICAvKioNCj4gICAgVHJhdmVy c2UgdGhlIGRpc2NvdmVyZWQgbGlzdCBmb3IgYW55IGRyaXZlcnMgdGhhdCB3ZXJlIGRpc2NvdmVy ZWQgYnV0IG5vdA0KPiBsb2FkZWQNCj4gLSAgYmVjYXVzZSB0aGUgZGVwZW5kZW5jeSBleHBlcmVz c2lvbnMgZXZhbHVhdGVkIHRvIGZhbHNlLg0KPiArICBiZWNhdXNlIHRoZSBkZXBlbmRlbmN5IGV4 cHJlc3Npb25zIGV2YWx1YXRlZCB0byBmYWxzZS4NCj4gDQo+ICAqKi8NCj4gIFZPSUQNCj4gZGlm ZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9IZWFwR3VhcmQuYw0KPiBiL01k ZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9IZWFwR3VhcmQuYw0KPiBpbmRleCAyOWNkMDBmMzg5 N2QuLmIwZDBmNzIwNDRhMyAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1D b3JlL0hlYXBHdWFyZC5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9IZWFw R3VhcmQuYw0KPiBAQCAtNDk3LDcgKzQ5Nyw3IEBAIElzTWVtb3J5R3VhcmRlZCAoDQo+ICAvKioN Cj4gICAgU2V0IHRoZSBwYWdlIGF0IHRoZSBnaXZlbiBhZGRyZXNzIHRvIGJlIGEgR3VhcmQgcGFn ZS4NCj4gDQo+IC0gIFRoaXMgaXMgZG9uZSBieSBjaGFuZ2luZyB0aGUgcGFnZSB0YWJsZSBhdHRy aWJ1dGUgdG8gYmUgTk9UIFBSU0VOVC4NCj4gKyAgVGhpcyBpcyBkb25lIGJ5IGNoYW5naW5nIHRo ZSBwYWdlIHRhYmxlIGF0dHJpYnV0ZSB0byBiZSBOT1QgUFJFU0VOVC4NCj4gDQo+ICAgIEBwYXJh bVtpbl0gIEJhc2VBZGRyZXNzICAgICBQYWdlIGFkZHJlc3MgdG8gR3VhcmQgYXQuDQo+IA0KPiBA QCAtNTI3LDcgKzUyNyw3IEBAIFNldEd1YXJkUGFnZSAoDQo+ICAvKioNCj4gICAgVW5zZXQgdGhl IEd1YXJkIHBhZ2UgYXQgdGhlIGdpdmVuIGFkZHJlc3MgdG8gdGhlIG5vcm1hbCBtZW1vcnkuDQo+ IA0KPiAtICBUaGlzIGlzIGRvbmUgYnkgY2hhbmdpbmcgdGhlIHBhZ2UgdGFibGUgYXR0cmlidXRl IHRvIGJlIFBSU0VOVC4NCj4gKyAgVGhpcyBpcyBkb25lIGJ5IGNoYW5naW5nIHRoZSBwYWdlIHRh YmxlIGF0dHJpYnV0ZSB0byBiZSBQUkVTRU5ULg0KPiANCj4gICAgQHBhcmFtW2luXSAgQmFzZUFk ZHJlc3MgICAgIFBhZ2UgYWRkcmVzcyB0byBHdWFyZCBhdC4NCj4gDQo+IGRpZmYgLS1naXQgYS9N ZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvTG9jYXRlLmMNCj4gYi9NZGVNb2R1bGVQa2cvQ29y ZS9QaVNtbUNvcmUvTG9jYXRlLmMNCj4gaW5kZXggODVjNjg3M2ZhZmUyLi44NDU4MTk5ZWM4NmMg MTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9Mb2NhdGUuYw0KPiAr KysgYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvTG9jYXRlLmMNCj4gQEAgLTM0LDcgKzM0 LDcgQEAgSUhBTkRMRSAqDQo+ICAvKioNCj4gICAgUm91dGluZSB0byBnZXQgdGhlIG5leHQgSGFu ZGxlLCB3aGVuIHlvdSBhcmUgc2VhcmNoaW5nIGZvciBhbGwgaGFuZGxlcy4NCj4gDQo+IC0gIEBw YXJhbSAgUG9zaXRpb24gICAgICAgICAgICAgICBJbmZvcm1hdGlvbiBhYm91dCB3aGljaCBIYW5k bGUgdG8gc2VhY2ggZm9yLg0KPiArICBAcGFyYW0gIFBvc2l0aW9uICAgICAgICAgICAgICAgSW5m b3JtYXRpb24gYWJvdXQgd2hpY2ggSGFuZGxlIHRvIHNlYXJjaCBmb3IuDQo+ICAgIEBwYXJhbSAg SW50ZXJmYWNlICAgICAgICAgICAgICBSZXR1cm4gdGhlIGludGVyZmFjZSBzdHJ1Y3R1cmUgZm9y IHRoZSBtYXRjaGluZw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9j b2wuDQo+IA0KPiBAQCAtNzAsNyArNzAsNyBAQCBTbW1HZXROZXh0TG9jYXRlQWxsSGFuZGxlcyAo DQo+ICAgIFJvdXRpbmUgdG8gZ2V0IHRoZSBuZXh0IEhhbmRsZSwgd2hlbiB5b3UgYXJlIHNlYXJj aGluZyBmb3IgcmVnaXN0ZXINCj4gcHJvdG9jb2wNCj4gICAgbm90aWZpZXMuDQo+IA0KPiAtICBA cGFyYW0gIFBvc2l0aW9uICAgICAgICAgICAgICAgSW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggSGFu ZGxlIHRvIHNlYWNoIGZvci4NCj4gKyAgQHBhcmFtICBQb3NpdGlvbiAgICAgICAgICAgICAgIElu Zm9ybWF0aW9uIGFib3V0IHdoaWNoIEhhbmRsZSB0byBzZWFyY2ggZm9yLg0KPiAgICBAcGFyYW0g IEludGVyZmFjZSAgICAgICAgICAgICAgUmV0dXJuIHRoZSBpbnRlcmZhY2Ugc3RydWN0dXJlIGZv ciB0aGUgbWF0Y2hpbmcNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3Rv Y29sLg0KPiANCj4gQEAgLTExNiw3ICsxMTYsNyBAQCBTbW1HZXROZXh0TG9jYXRlQnlSZWdpc3Rl ck5vdGlmeSAoDQo+ICAvKioNCj4gICAgUm91dGluZSB0byBnZXQgdGhlIG5leHQgSGFuZGxlLCB3 aGVuIHlvdSBhcmUgc2VhcmNoaW5nIGZvciBhIGdpdmVuDQo+IHByb3RvY29sLg0KPiANCj4gLSAg QHBhcmFtICBQb3NpdGlvbiAgICAgICAgICAgICAgIEluZm9ybWF0aW9uIGFib3V0IHdoaWNoIEhh bmRsZSB0byBzZWFjaCBmb3IuDQo+ICsgIEBwYXJhbSAgUG9zaXRpb24gICAgICAgICAgICAgICBJ bmZvcm1hdGlvbiBhYm91dCB3aGljaCBIYW5kbGUgdG8gc2VhcmNoIGZvci4NCj4gICAgQHBhcmFt ICBJbnRlcmZhY2UgICAgICAgICAgICAgIFJldHVybiB0aGUgaW50ZXJmYWNlIHN0cnVjdHVyZSBm b3IgdGhlIG1hdGNoaW5nDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90 b2NvbC4NCj4gDQo+IEBAIC0xNzMsNyArMTczLDcgQEAgU21tR2V0TmV4dExvY2F0ZUJ5UHJvdG9j b2wgKA0KPiAgLyoqDQo+ICAgIFJldHVybiB0aGUgZmlyc3QgUHJvdG9jb2wgSW50ZXJmYWNlIHRo YXQgbWF0Y2hlcyB0aGUgUHJvdG9jb2wgR1VJRC4gSWYNCj4gICAgUmVnaXN0cmF0aW9uIGlzIHBh c2FzZWQgaW4gcmV0dXJuIGEgUHJvdG9jb2wgSW5zdGFuY2UgdGhhdCB3YXMganVzdCBhZGQNCj4g LSAgdG8gdGhlIHN5c3RlbS4gSWYgUmV0aXN0cmF0aW9uIGlzIE5VTEwgcmV0dXJuIHRoZSBmaXJz dCBQcm90b2NvbCBJbnRlcmZhY2UNCj4gKyAgdG8gdGhlIHN5c3RlbS4gSWYgUmVnaXN0cmF0aW9u IGlzIE5VTEwgcmV0dXJuIHRoZSBmaXJzdCBQcm90b2NvbCBJbnRlcmZhY2UNCj4gICAgeW91IGZp bmQuDQo+IA0KPiAgICBAcGFyYW0gIFByb3RvY29sICAgICAgICAgICAgICAgVGhlIHByb3RvY29s IHRvIHNlYXJjaCBmb3INCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29y ZS9NZW1vcnlBdHRyaWJ1dGVzVGFibGUuYw0KPiBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29y ZS9NZW1vcnlBdHRyaWJ1dGVzVGFibGUuYw0KPiBpbmRleCBkNjEyM2RhM2FkMWEuLmRlODI2MmVj YjlmOSAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL01lbW9yeUF0 dHJpYnV0ZXNUYWJsZS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9NZW1v cnlBdHRyaWJ1dGVzVGFibGUuYw0KPiBAQCAtMTUyLDcgKzE1Miw3IEBAIFNvcnRNZW1vcnlNYXAg KA0KPiAgfQ0KPiANCj4gIC8qKg0KPiAtICBNZXJnZSBjb250aW5vdXMgbWVtb3J5IG1hcCBlbnRy aWVzIHdob3NlIGhhdmUgc2FtZSBhdHRyaWJ1dGVzLg0KPiArICBNZXJnZSBjb250aW51b3VzIG1l bW9yeSBtYXAgZW50cmllcyB3aG9zZSBoYXZlIHNhbWUgYXR0cmlidXRlcy4NCj4gDQo+ICAgIEBw YXJhbVtpbiwgb3V0XSAgTWVtb3J5TWFwICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhlIGJ1 ZmZlciBpbiB3aGljaA0KPiBmaXJtd2FyZSBwbGFjZXMNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoZSBjdXJyZW50IG1lbW9yeSBtYXAuDQo+IEBAIC0zMDAs NyArMzAwLDcgQEAgR2V0SW1hZ2VSZWNvcmRCeUFkZHJlc3MgKA0KPiAgICBAcGFyYW1baW5dICAg ICAgIEltYWdlUmVjb3JkICAgICAgICAgICAgQW4gaW1hZ2UgcmVjb3JkIHdob3NlIFtJbWFnZUJh c2UsDQo+IEltYWdlU2l6ZV0gY292ZXJlZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnkgb2xkIG1lbW9yeSBtYXAgZW50cnkuDQo+ICAgIEBwYXJhbVtpbiwg b3V0XSAgTmV3UmVjb3JkICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gc2V2ZXJhbCBuZXcgbWVt b3J5IG1hcA0KPiBlbnRyaWVzLg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVGhlIGNhbGxlciBndXJhbnRlZSB0aGUgYnVmZmVyIHNpemUgYmUgMSArDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY2FsbGVyIGd1YXJh bnRlZSB0aGUgYnVmZmVyIHNpemUgYmUgMSArDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoU3BsaXRSZWNvcmRDb3VudCAqIERlc2NyaXB0b3JTaXplKSBjYWxj dWxhdGVkDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxv dy4NCj4gICAgQHBhcmFtW2luXSAgICAgICBPbGRSZWNvcmQgICAgICAgICAgICAgIEEgcG9pbnRl ciB0byBvbmUgb2xkIG1lbW9yeSBtYXAgZW50cnkuDQo+IEBAIC00NTAsNyArNDUwLDcgQEAgR2V0 TWF4U3BsaXRSZWNvcmRDb3VudCAoDQo+IA0KPiAgICBAcGFyYW1baW5dICAgICAgIE9sZFJlY29y ZCAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIG9uZSBvbGQgbWVtb3J5IG1hcCBlbnRyeS4NCj4g ICAgQHBhcmFtW2luLCBvdXRdICBOZXdSZWNvcmQgICAgICAgICAgICAgIEEgcG9pbnRlciB0byBz ZXZlcmFsIG5ldyBtZW1vcnkgbWFwDQo+IGVudHJpZXMuDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUaGUgY2FsbGVyIGd1cmFudGVlIHRoZSBidWZmZXIgc2l6 ZSBiZSAxICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRo ZSBjYWxsZXIgZ3VhcmFudGVlIHRoZSBidWZmZXIgc2l6ZSBiZSAxICsNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTcGxpdFJlY29yZENvdW50ICogRGVzY3Jp cHRvclNpemUpIGNhbGN1bGF0ZWQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJlbG93Lg0KPiAgICBAcGFyYW1baW5dICAgICAgIE1heFNwbGl0UmVjb3JkQ291 bnQgICAgVGhlIG1heCBudW1iZXIgb2Ygc3BsaXR0ZWQgZW50cmllcw0KPiBAQCAtNjY3LDcgKzY2 Nyw3IEBAIFNwbGl0VGFibGUgKA0KPiAgICBUaGlzIGZ1bmN0aW9uIGZvciBHZXRNZW1vcnlNYXAo KSB3aXRoIG1lbW9yeSBhdHRyaWJ1dGVzIHRhYmxlLg0KPiANCj4gICAgSXQgY2FsbHMgb3JpZ2lu YWwgR2V0TWVtb3J5TWFwKCkgdG8gZ2V0IHRoZSBvcmlnaW5hbCBtZW1vcnkgbWFwDQo+IGluZm9y bWF0aW9uLiBUaGVuDQo+IC0gIHBsdXMgdGhlIGFkZGl0aW9uYWwgbWVtb3J5IG1hcCBlbnRyaWVz IGZvciBQRSBDb2RlL0RhdGEgc2VwZXJhdGlvbi4NCj4gKyAgcGx1cyB0aGUgYWRkaXRpb25hbCBt ZW1vcnkgbWFwIGVudHJpZXMgZm9yIFBFIENvZGUvRGF0YSBzZXBhcmF0aW9uLg0KPiANCj4gICAg QHBhcmFtW2luLCBvdXRdICBNZW1vcnlNYXBTaXplICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUg c2l6ZSwgaW4gYnl0ZXMsIG9mDQo+IHRoZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTWVtb3J5TWFwIGJ1ZmZlci4gT24gaW5wdXQsIHRoaXMgaXMgdGhlIHNp emUgb2YNCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QYWdlLmMN Cj4gYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvUGFnZS5jDQo+IGluZGV4IDFmMDViZGRj YzBiOC4uZDg4NjE4N2Q5YTRhIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29yZS9QaVNt bUNvcmUvUGFnZS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QYWdlLmMN Cj4gQEAgLTgzLDcgKzgzLDcgQEAgU21tSW50ZXJuYWxBbGxvY2F0ZVBhZ2VzRXggKA0KPiAgICBQ bGVhc2UgTm90ZSB0aGlzIGFsZ29yaXRobSB0byBhbGxvY2F0ZSB0aGUgbWVtb3J5IG1hcCBkZXNj cmlwdG9yIGhhcyBhDQo+IHByb3BlcnR5DQo+ICAgIHRoYXQgdGhlIG1lbW9yeSBhbGxvY2F0ZWQg Zm9yIG1lbW9yeSBlbnRyaWVzIGFsd2F5cyBncm93cywgYW5kIHdpbGwNCj4gbmV2ZXIgcmVhbGx5 IGJlIGZyZWVkLg0KPiANCj4gLSAgQHJldHVybiBUaGUgTWVtb3J5IG1hcCBkZXNjcmlwdG9yIGRl cXVlZCBmcm9tIHRoZQ0KPiBtRnJlZU1lbW9yeU1hcEVudHJ5TGlzdA0KPiArICBAcmV0dXJuIFRo ZSBNZW1vcnkgbWFwIGRlc2NyaXB0b3IgZGVxdWV1ZWQgZnJvbSB0aGUNCj4gbUZyZWVNZW1vcnlN YXBFbnRyeUxpc3QNCj4gDQo+ICAqKi8NCj4gIE1FTU9SWV9NQVAgKg0KPiBAQCAtMTE3LDcgKzEx Nyw3IEBAIEFsbG9jYXRlTWVtb3J5TWFwRW50cnkgKA0KPiAgICAgICAgRnJlZURlc2NyaXB0b3JF bnRyaWVzID0gKE1FTU9SWV9NQVAgKikoVUlOVE4pTWVtOw0KPiAgICAgICAgLy9ERUJVRygoREVC VUdfSU5GTywgIk5ldyBGcmVlRGVzY3JpcHRvckVudHJpZXMgLSAweCV4XG4iLA0KPiBGcmVlRGVz Y3JpcHRvckVudHJpZXMpKTsNCj4gICAgICAgIC8vDQo+IC0gICAgICAvLyBFbnF1ZSB0aGUgZnJl ZSBtZW1tb3J5IG1hcCBlbnRyaWVzIGludG8gdGhlIGxpc3QNCj4gKyAgICAgIC8vIEVucXVldWUg dGhlIGZyZWUgbWVtb3J5IG1hcCBlbnRyaWVzIGludG8gdGhlIGxpc3QNCj4gICAgICAgIC8vDQo+ ICAgICAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXg8IFJVTlRJTUVfUEFHRV9BTExPQ0FUSU9OX0dS QU5VTEFSSVRZIC8NCj4gc2l6ZW9mKE1FTU9SWV9NQVApOyBJbmRleCsrKSB7DQo+ICAgICAgICAg IEZyZWVEZXNjcmlwdG9yRW50cmllc1tJbmRleF0uU2lnbmF0dXJlID0gTUVNT1JZX01BUF9TSUdO QVRVUkU7DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvUGlTbW1D b3JlLmMNCj4gYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvUGlTbW1Db3JlLmMNCj4gaW5k ZXggYjU2NzZmMjFiZjI2Li5jZmE5OTIyY2JkYjUgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBr Zy9Db3JlL1BpU21tQ29yZS9QaVNtbUNvcmUuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9Q aVNtbUNvcmUvUGlTbW1Db3JlLmMNCj4gQEAgLTM3Myw3ICszNzMsNyBAQCBTbW1SZWFkeVRvTG9j a0hhbmRsZXIgKA0KPiAgICAgICAgICAgICAgICk7DQo+IA0KPiAgICAvLw0KPiAtICAvLyBNYWtl IHN1cmUgU01NIENQVSBJL08gMiBQcm9jb2wgaGFzIGJlZW4gaW5zdGFsbGVkIGludG8gdGhlIGhh bmRsZQ0KPiBkYXRhYmFzZQ0KPiArICAvLyBNYWtlIHN1cmUgU01NIENQVSBJL08gMiBQcm90b2Nv bCBoYXMgYmVlbiBpbnN0YWxsZWQgaW50byB0aGUgaGFuZGxlDQo+IGRhdGFiYXNlDQo+ICAgIC8v DQo+ICAgIFN0YXR1cyA9IFNtbUxvY2F0ZVByb3RvY29sICgmZ0VmaVNtbUNwdUlvMlByb3RvY29s R3VpZCwgTlVMTCwNCj4gJkludGVyZmFjZSk7DQo+IA0KPiBAQCAtNTg2LDcgKzU4Niw3IEBAIFNt bUVuZE9mUzNSZXN1bWVIYW5kbGVyICgNCj4gICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsN Cj4gDQo+ICAgIC8vDQo+IC0gIC8vIFVuaW5zdGFsbCB0aGUgcHJvdG9jb2wgaGVyZSBiZWNhdXNl IHRoZSBjb21zdW1lciBqdXN0IGhvb2sgdGhlDQo+ICsgIC8vIFVuaW5zdGFsbCB0aGUgcHJvdG9j b2wgaGVyZSBiZWNhdXNlIHRoZSBjb25zdW1lciBqdXN0IGhvb2sgdGhlDQo+ICAgIC8vIGluc3Rh bGxhdGlvbiBldmVudC4NCj4gICAgLy8NCj4gICAgU3RhdHVzID0gU21tVW5pbnN0YWxsUHJvdG9j b2xJbnRlcmZhY2UgKA0KPiBAQCAtNjczLDcgKzY3Myw3IEBAIFNtbUVudHJ5UG9pbnQgKA0KPiAg ICBTbW1FbnRyeVBvaW50TWVtb3J5TWFuYWdlbWVudEhvb2sgKCk7DQo+IA0KPiAgICAvLw0KPiAt ICAvLyBJZiBhIGxlZ2FjeSBib290IGhhcyBvY2N1cmVkLCB0aGVuIG1ha2Ugc3VyZSBnU21tQ29y ZVByaXZhdGUgaXMgbm90DQo+IGFjY2Vzc2VkDQo+ICsgIC8vIElmIGEgbGVnYWN5IGJvb3QgaGFz IG9jY3VycmVkLCB0aGVuIG1ha2Ugc3VyZSBnU21tQ29yZVByaXZhdGUgaXMgbm90DQo+IGFjY2Vz c2VkDQo+ICAgIC8vDQo+ICAgIEluTGVnYWN5Qm9vdCA9IG1JbkxlZ2FjeUJvb3Q7DQo+ICAgIGlm ICghSW5MZWdhY3lCb290KSB7DQo+IEBAIC03MzcsNyArNzM3LDcgQEAgU21tRW50cnlQb2ludCAo DQo+ICAgIFBsYXRmb3JtSG9va0FmdGVyU21tRGlzcGF0Y2ggKCk7DQo+IA0KPiAgICAvLw0KPiAt ICAvLyBJZiBhIGxlZ2FjeSBib290IGhhcyBvY2N1cmVkLCB0aGVuIG1ha2Ugc3VyZSBnU21tQ29y ZVByaXZhdGUgaXMgbm90DQo+IGFjY2Vzc2VkDQo+ICsgIC8vIElmIGEgbGVnYWN5IGJvb3QgaGFz IG9jY3VycmVkLCB0aGVuIG1ha2Ugc3VyZSBnU21tQ29yZVByaXZhdGUgaXMgbm90DQo+IGFjY2Vz c2VkDQo+ICAgIC8vDQo+ICAgIGlmICghSW5MZWdhY3lCb290KSB7DQo+ICAgICAgLy8NCj4gQEAg LTg2Nyw3ICs4NjcsNyBAQCBTbW1NYWluICgNCj4gICAgLy8NCj4gICAgLy8gTm8gbmVlZCB0byBp bml0aWFsaXplIG1lbW9yeSBzZXJ2aWNlLg0KPiAgICAvLyBJdCBpcyBkb25lIGluIGNvbnN0cnVj dG9yIG9mIFBpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25MaWIoKSwNCj4gLSAgLy8gc28gdGhhdCB0 aGUgbGlicmFyeSBsaW5rZWQgd2l0aCBQaVNtbUNvcmUgY2FuIHVzZSBBbGxvY2F0ZVBvb2woKSBp bg0KPiBjb25zdHVjdG9yLg0KPiArICAvLyBzbyB0aGF0IHRoZSBsaWJyYXJ5IGxpbmtlZCB3aXRo IFBpU21tQ29yZSBjYW4gdXNlIEFsbG9jYXRlUG9vbCgpIGluDQo+IGNvbnN0cnVjdG9yLg0KPiAg ICAvLw0KPiANCj4gICAgU21yYW1Qcm9maWxlSW5pdCAoKTsNCj4gZGlmZiAtLWdpdCBhL01kZU1v ZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QaVNtbUlwbC5jDQo+IGIvTWRlTW9kdWxlUGtnL0NvcmUv UGlTbW1Db3JlL1BpU21tSXBsLmMNCj4gaW5kZXggMWNmOGM5MzIyN2EzLi4yMGI4NGVhZWUyNzcg MTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QaVNtbUlwbC5jDQo+ ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9QaVNtbUlwbC5jDQo+IEBAIC03MDcs NyArNzA3LDcgQEAgU21tSXBsU21tQ29uZmlndXJhdGlvbkV2ZW50Tm90aWZ5ICgNCj4gICAgfQ0K PiANCj4gICAgLy8NCj4gLSAgLy8gUmVnaXN0ZXIgdGhlIFNNTSBFbnRyeSBQb2ludCBwcm92aWRl ZCBieSB0aGUgU01NIENvcmUgd2l0aCB0aGUgU01NDQo+IENPbmZpZ3VyYXRpb24gcHJvdG9jb2wN Cj4gKyAgLy8gUmVnaXN0ZXIgdGhlIFNNTSBFbnRyeSBQb2ludCBwcm92aWRlZCBieSB0aGUgU01N IENvcmUgd2l0aCB0aGUgU01NDQo+IENvbmZpZ3VyYXRpb24gcHJvdG9jb2wNCj4gICAgLy8NCj4g ICAgU3RhdHVzID0gU21tQ29uZmlndXJhdGlvbi0+UmVnaXN0ZXJTbW1FbnRyeSAoU21tQ29uZmln dXJhdGlvbiwNCj4gZ1NtbUNvcmVQcml2YXRlLT5TbW1FbnRyeVBvaW50KTsNCj4gICAgQVNTRVJU X0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gQEAgLTk2NCw3ICs5NjQsNyBAQCBFeGVjdXRlU21tQ29y ZUZyb21TbXJhbSAoDQo+ICAgIH0NCj4gDQo+ICAgIC8vDQo+IC0gIC8vIEluaXRpbGl6ZSBJbWFn ZUNvbnRleHQNCj4gKyAgLy8gSW5pdGlhbGl6ZSBJbWFnZUNvbnRleHQNCj4gICAgLy8NCj4gICAg SW1hZ2VDb250ZXh0LkhhbmRsZSAgICA9IFNvdXJjZUJ1ZmZlcjsNCj4gICAgSW1hZ2VDb250ZXh0 LkltYWdlUmVhZCA9IFBlQ29mZkxvYWRlckltYWdlUmVhZEZyb21NZW1vcnk7DQo+IEBAIC0xMDgy LDcgKzEwODIsNyBAQCBFeGVjdXRlU21tQ29yZUZyb21TbXJhbSAoDQo+ICAgIH0NCj4gDQo+ICAg IC8vDQo+IC0gIC8vIEFsd2F5cyBmcmVlIG1lbW9yeSBhbGxvY3RlZCBieSBHZXRGaWxlQnVmZmVy QnlGaWxlUGF0aCAoKQ0KPiArICAvLyBBbHdheXMgZnJlZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IEdl dEZpbGVCdWZmZXJCeUZpbGVQYXRoICgpDQo+ICAgIC8vDQo+ICAgIEZyZWVQb29sIChTb3VyY2VC dWZmZXIpOw0KPiANCj4gQEAgLTE3NjMsNyArMTc2Myw3IEBAIFNtbUlwbEVudHJ5ICgNCj4gICAg QVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gDQo+ICAgIC8vDQo+IC0gIC8vIENyZWF0ZSB0 aGUgc2V0IG9mIHByb3RvY29sIGFuZCBldmVudCBub3RpZmlmY2F0aW9ucyB0aGF0IHRoZSBTTU0g SVBMDQo+IHJlcXVpcmVzDQo+ICsgIC8vIENyZWF0ZSB0aGUgc2V0IG9mIHByb3RvY29sIGFuZCBl dmVudCBub3RpZmljYXRpb25zIHRoYXQgdGhlIFNNTSBJUEwNCj4gcmVxdWlyZXMNCj4gICAgLy8N Cj4gICAgZm9yIChJbmRleCA9IDA7IG1TbW1JcGxFdmVudHNbSW5kZXhdLk5vdGlmeUZ1bmN0aW9u ICE9IE5VTEw7IEluZGV4KyspIHsNCj4gICAgICBpZiAobVNtbUlwbEV2ZW50c1tJbmRleF0uUHJv dG9jb2wpIHsNCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9TbWku Yw0KPiBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9TbWkuYw0KPiBpbmRleCA0ODhhZjY3 NTRmYWYuLmFlZWZiMzkyZjdhZiAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvUGlT bW1Db3JlL1NtaS5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9TbWkuYw0K PiBAQCAtMTk2LDcgKzE5Niw3IEBAIFNtaU1hbmFnZSAoDQo+ICAvKioNCj4gICAgUmVnaXN0ZXJz IGEgaGFuZGxlciB0byBleGVjdXRlIHdpdGhpbiBTTU0uDQo+IA0KPiAtICBAcGFyYW0gIEhhbmRs ZXIgICAgICAgIEhhbmRsZXIgc2VydmljZSBmdW50aW9uIHBvaW50ZXIuDQo+ICsgIEBwYXJhbSAg SGFuZGxlciAgICAgICAgSGFuZGxlciBzZXJ2aWNlIGZ1bmN0aW9uIHBvaW50ZXIuDQo+ICAgIEBw YXJhbSAgSGFuZGxlclR5cGUgICAgUG9pbnRzIHRvIHRoZSBoYW5kbGVyIHR5cGUgb3IgTlVMTCBm b3Igcm9vdCBTTUkNCj4gaGFuZGxlcnMuDQo+ICAgIEBwYXJhbSAgRGlzcGF0Y2hIYW5kbGUgT24g cmV0dXJuLCBjb250YWlucyBhIHVuaXF1ZSBoYW5kbGUgd2hpY2ggY2FuIGJlDQo+IHVzZWQgdG8g bGF0ZXIgdW5yZWdpc3RlciB0aGUgaGFuZGxlciBmdW5jdGlvbi4NCj4gDQo+IGRpZmYgLS1naXQg YS9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvU21yYW1Qcm9maWxlUmVjb3JkLmMNCj4gYi9N ZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUvU21yYW1Qcm9maWxlUmVjb3JkLmMNCj4gaW5kZXgg NDljNGEzNzU4ZmRkLi4xYjMwMmM4MTBjYzkgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9D b3JlL1BpU21tQ29yZS9TbXJhbVByb2ZpbGVSZWNvcmQuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cv Q29yZS9QaVNtbUNvcmUvU21yYW1Qcm9maWxlUmVjb3JkLmMNCj4gQEAgLTc4LDcgKzc4LDcgQEAg R0xPQkFMX1JFTU9WRV9JRl9VTlJFRkVSRU5DRUQNCj4gRUZJX0RFVklDRV9QQVRIX1BST1RPQ09M ICptU21yYW1Qcm9maWxlRHJpdmVyUGF0aDsNCj4gIEdMT0JBTF9SRU1PVkVfSUZfVU5SRUZFUkVO Q0VEIFVJTlRODQo+IG1TbXJhbVByb2ZpbGVEcml2ZXJQYXRoU2l6ZTsNCj4gDQo+ICAvKioNCj4g LSAgRHVtcCBTTVJBTSBpbmZyb21hdGlvbi4NCj4gKyAgRHVtcCBTTVJBTSBpbmZvcm1hdGlvbi4N Cj4gDQo+ICAqKi8NCj4gIFZPSUQNCj4gQEAgLTI3OTcsNyArMjc5Nyw3IEBAIER1bXBTbXJhbVBy b2ZpbGUgKA0KPiAgfQ0KPiANCj4gIC8qKg0KPiAtICBEdW1wIFNNUkFNIGluZnJvbWF0aW9uLg0K PiArICBEdW1wIFNNUkFNIGluZm9ybWF0aW9uLg0KPiANCj4gICoqLw0KPiAgVk9JRA0KPiAtLQ0K PiAyLjIxLjANCg0K