From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B46C421D492CA for ; Wed, 13 Sep 2017 18:17:30 -0700 (PDT) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Sep 2017 18:20:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,390,1500966000"; d="scan'208";a="900054002" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by FMSMGA003.fm.intel.com with ESMTP; 13 Sep 2017 18:20:28 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 13 Sep 2017 18:20:28 -0700 Received: from shsmsx152.ccr.corp.intel.com ([169.254.6.93]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.219]) with mapi id 14.03.0319.002; Thu, 14 Sep 2017 09:20:26 +0800 From: "Wang, Jian J" To: "Justen, Jordan L" , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" , "Zeng, Star" , Laszlo Ersek , "Kinney, Michael D" , "Wolman, Ayellet" , "Wolman, Ayellet" Thread-Topic: [PATCH 2/4] UefiCpuPkg/PiSmmCpuDxeSmm: Implement NULL pointer detection for SMM mode code. Thread-Index: AQHTLLZ+ZsTS+iz7GUGIrAdSNwS5y6KzlSfA Date: Thu, 14 Sep 2017 01:20:25 +0000 Message-ID: References: <20170913092507.12504-1-jian.j.wang@intel.com> <20170913092507.12504-3-jian.j.wang@intel.com> <150532389515.21662.10902194007629858133@jljusten-skl> In-Reply-To: <150532389515.21662.10902194007629858133@jljusten-skl> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 2/4] UefiCpuPkg/PiSmmCpuDxeSmm: Implement NULL pointer detection for SMM mode code. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Sep 2017 01:17:31 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSdsbCB1c2UgdGhlIHRvb2wgdG8gY2hlY2sgdGhlIGZvcm1hdC4gRm9yIHRoZSBtYWNybywgaXQn cyBmb3IgcmVhZGFiaWxpdHkgcHVycG9zZS4gSG93J3MgdGhlIGxpYnJhcnkgcmVwbGFjZW1lbnQg c3VnZ2VzdGlvbiBmcm9tIExhc3psbz8gDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpG cm9tOiBKdXN0ZW4sIEpvcmRhbiBMIA0KU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAxNCwgMjAx NyAxOjMyIEFNDQpUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnpl bmdAaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEp1c3Rlbjsg S2lubmV5OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBX b2xtYW47IFdvbG1hbiwgQXllbGxldCA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPg0KU3ViamVj dDogUmU6IFtQQVRDSCAyLzRdIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW06IEltcGxlbWVudCBO VUxMIHBvaW50ZXIgZGV0ZWN0aW9uIGZvciBTTU0gbW9kZSBjb2RlLg0KDQpPbiAyMDE3LTA5LTEz IDAyOjI1OjA1LCBXYW5nLCBKaWFuIEogd3JvdGU6DQo+IFRoZSBtZWNoYW5pc20gYmVoaW5kIGlz IHRoZSBzYW1lIGFzIE5VTEwgcG9pbnRlciBkZXRlY3Rpb24gZW5hYmxlZCBpbiBFREstSUkgY29y ZS4gU01NIGhhcyBpdHMgb3duIHBhZ2UgdGFibGUgYW5kIHdlIGhhdmUgdG8gZGlzYWJsZSBwYWdl IDAgYWdhaW4gaW4gU01NIG1vZGUuDQo+IA0KPiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0Bp bnRlbC5jb20+DQo+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+IENjOiBT dGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPg0KPiBDYzogSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGlu dGVsLmNvbT4NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gQ2M6IFdvbG1hbiwgQXllbGxldCA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPg0K PiBTdWdnZXN0ZWQtYnk6IFdvbG1hbiwgQXllbGxldCA8YXllbGxldC53b2xtYW5AaW50ZWwuY29t Pg0KPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQg MS4xDQo+IFNpZ25lZC1vZmYtYnk6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t Pg0KPiAtLS0NCj4gIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9QYWdlVGJsLmMgICAg IHwgMTEgKysrKysrKysrKysNCj4gIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNl LmMgICAgICAgIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgVWVmaUNwdVBrZy9Q aVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oICAgfCAgMiArKw0KPiAgVWVmaUNwdVBrZy9Q aVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmYgfCAxNyArKysrKysrKystLS0tLS0tLQ0K PiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9YNjQvUGFnZVRibC5jICAgICAgfCAxMSArKysr KysrKysrKw0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9u cygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9Q YWdlVGJsLmMgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lhMzIvUGFnZVRibC5jDQo+IGlu ZGV4IGYyOTVjMmViZjIuLmQ0MjM5NTg3ODMgMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vSWEzMi9QYWdlVGJsLmMNCj4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9JYTMyL1BhZ2VUYmwuYw0KPiBAQCAtMTU1LDYgKzE1NSwxNyBAQCBTbWlQRkhhbmRsZXIg KA0KPiAgICAgIH0NCj4gICAgfQ0KPiAgDQo+ICsgIC8vDQo+ICsgIC8vIElmIE5VTEwgcG9pbnRl ciB3YXMganVzdCBhY2Nlc3NlZA0KPiArICAvLw0KPiArICBpZiAoTlVMTF9ERVRFQ1RJT05fRU5B QkxFRCAmJiAoUEZBZGRyZXNzID49IDAgJiYgUEZBZGRyZXNzIDwgRUZJX1BBR0VfU0laRSkpIHsN Cj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiISEhIE5VTEwgcG9pbnRlciBhY2Nlc3MgISEh XG4iKSk7DQo+ICsgICAgREVCVUdfQ09ERSAoDQo+ICsgICAgICBEdW1wTW9kdWxlSW5mb0J5SXAg KChVSU5UTilTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRJYTMyLT5SaXApOw0KPiArICAgICk7 DQo+ICsgICAgQ3B1RGVhZExvb3AgKCk7DQo+ICsgIH0NCj4gKw0KPiAgICBpZiAoRmVhdHVyZVBj ZEdldCAoUGNkQ3B1U21tUHJvZmlsZUVuYWJsZSkpIHsNCj4gICAgICBTbW1Qcm9maWxlUEZIYW5k bGVyICgNCj4gICAgICAgIFN5c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4dElhMzItPkVpcCwNCj4g ZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMgYi9VZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL01wU2VydmljZS5jDQo+IGluZGV4IGYwODZiOTdjMzAuLjgx YzVhYzlkMTEgMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2 aWNlLmMNCj4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9NcFNlcnZpY2UuYw0KPiBA QCAtODU1LDEwICs4NTUsMTAgQEAgR2VuNEdQYWdlVGFibGUgKA0KPiAgICAgIFB0ZVtJbmRleF0g PSAoSW5kZXggPDwgMjEpIHwgbUFkZHJlc3NFbmNNYXNrIHwgSUEzMl9QR19QUyB8IFBBR0VfQVRU UklCVVRFX0JJVFM7DQo+ICAgIH0NCj4gIA0KPiArICBQZHB0ZSA9IChVSU5UNjQqKVBhZ2VUYWJs ZTsNCj4gICAgaWYgKEZlYXR1cmVQY2RHZXQgKFBjZENwdVNtbVN0YWNrR3VhcmQpKSB7DQo+ICAg ICAgUGFnZXMgPSAoVUlOVE4pUGFnZVRhYmxlICsgRUZJX1BBR0VTX1RPX1NJWkUgKDUpOw0KPiAg ICAgIEd1YXJkUGFnZSA9IG1TbW1TdGFja0FycmF5QmFzZSArIEVGSV9QQUdFX1NJWkU7DQo+IC0g ICAgUGRwdGUgPSAoVUlOVDY0KilQYWdlVGFibGU7DQo+ICAgICAgZm9yIChQYWdlSW5kZXggPSBM b3cyTUJvdW5kYXJ5OyBQYWdlSW5kZXggPD0gSGlnaDJNQm91bmRhcnk7IFBhZ2VJbmRleCArPSBT SVpFXzJNQikgew0KPiAgICAgICAgUHRlID0gKFVJTlQ2NCopKFVJTlROKShQZHB0ZVtCaXRGaWVs ZFJlYWQzMiAoKFVJTlQzMilQYWdlSW5kZXgsIDMwLCAzMSldICYgfm1BZGRyZXNzRW5jTWFzayAm IH4oRUZJX1BBR0VfU0laRSAtIDEpKTsNCj4gICAgICAgIFB0ZVtCaXRGaWVsZFJlYWQzMiAoKFVJ TlQzMilQYWdlSW5kZXgsIDIxLCAyOSldID0gKFVJTlQ2NClQYWdlcyB8IG1BZGRyZXNzRW5jTWFz ayB8IFBBR0VfQVRUUklCVVRFX0JJVFM7DQo+IEBAIC04ODYsNiArODg2LDI5IEBAIEdlbjRHUGFn ZVRhYmxlICgNCj4gICAgICB9DQo+ICAgIH0NCj4gIA0KPiArICBpZiAoTlVMTF9ERVRFQ1RJT05f RU5BQkxFRCkgew0KPiArICAgIFB0ZSA9IChVSU5UNjQqKShVSU5UNjQpKFBkcHRlWzBdICYgfm1B ZGRyZXNzRW5jTWFzayAmIH4oRUZJX1BBR0VfU0laRSAtIDEpKTsNCj4gKyAgICBpZiAoKFB0ZVsw XSAmIElBMzJfUEdfUFMpID09IDApIHsNCj4gKyAgICAgIC8vIDRLLXBhZ2UgZW50cmllcyBhcmUg YWxyZWFkeSBtYXBwZWQuIEp1c3QgaGlkZSB0aGUgZmlyc3Qgb25lIGFueXdheS4NCj4gKyAgICAg IFB0ZSA9IChVSU5UNjQqKShVSU5UNjQpKFB0ZVswXSAmIH5tQWRkcmVzc0VuY01hc2sgJiB+KEVG SV9QQUdFX1NJWkUgLSAxKSk7DQo+ICsgICAgICBQdGVbMF0gJj0gfjE7IC8vIEhpZGUgcGFnZSAw DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAgICAgIC8vIENyZWF0ZSA0Sy1wYWdlIGVudHJpZXMNCj4g KyAgICAgIFBhZ2VzID0gKFVJTlROKUFsbG9jYXRlUGFnZVRhYmxlTWVtb3J5ICgxKTsNCj4gKyAg ICAgIEFTU0VSVCAoUGFnZXMgIT0gMCk7DQo+ICsNCj4gKyAgICAgIFB0ZVswXSA9IChVSU5UNjQp KFBhZ2VzIHwgbUFkZHJlc3NFbmNNYXNrIHwgUEFHRV9BVFRSSUJVVEVfQklUUyk7DQo+ICsNCj4g KyAgICAgIFB0ZSA9IChVSU5UNjQqKVBhZ2VzOw0KPiArICAgICAgUGFnZUFkZHJlc3MgPSAwOw0K PiArICAgICAgUHRlWzBdID0gUGFnZUFkZHJlc3MgfCBtQWRkcmVzc0VuY01hc2s7IC8vIEhpZGUg cGFnZSAwIGJ1dCBwcmVzZW50IGxlZnQNCj4gKyAgICAgIGZvciAoSW5kZXggPSAxOyBJbmRleCA8 IEVGSV9QQUdFX1NJWkUgLyBzaXplb2YgKCpQdGUpOyBJbmRleCsrKSB7DQo+ICsgICAgICAgIFBh Z2VBZGRyZXNzICs9IEVGSV9QQUdFX1NJWkU7DQo+ICsgICAgICAgIFB0ZVtJbmRleF0gPSBQYWdl QWRkcmVzcyB8IG1BZGRyZXNzRW5jTWFzayB8IFBBR0VfQVRUUklCVVRFX0JJVFM7DQo+ICsgICAg ICB9DQo+ICsgICAgfQ0KPiArICB9DQo+ICsNCj4gICAgcmV0dXJuIChVSU5UMzIpKFVJTlROKVBh Z2VUYWJsZTsNCj4gIH0NCj4gIA0KPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNw dUR4ZVNtbS5oDQo+IGluZGV4IDFjZjg1YzE0ODEuLmJjYjMwMzJkYjggMTAwNjQ0DQo+IC0tLSBh L1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KPiArKysgYi9VZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgNCj4gQEAgLTE1Myw2ICsxNTMs OCBAQCB0eXBlZGVmIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNTV9DUFVf QVJSSVZBTF9FWENFUFRJT05TOw0KPiAgI2RlZmluZSBBUlJJVkFMX0VYQ0VQVElPTl9ERUxBWUVE ICAgICAgICAgICAweDINCj4gICNkZWZpbmUgQVJSSVZBTF9FWENFUFRJT05fU01JX0RJU0FCTEVE ICAgICAgMHg0DQo+ICANCj4gKyNkZWZpbmUgTlVMTF9ERVRFQ1RJT05fRU5BQkxFRCAgICAoKFBj ZEdldDgoUGNkTnVsbFBvaW50ZXJEZXRlY3Rpb25Qcm9wZXJ0eU1hc2spICYgQklUMSkgIT0gMCkN Cj4gKw0KDQpBZ2FpbiwgSSB0aGluayB0aGUgTlVMTF9ERVRFQ1RJT05fRU5BQkxFRCBtYWNybyBj b2RlIHN0eWxlIGxvb2tzIG9kZC4NCk1heWJlIGl0IGlzIGp1c3QgYmV0dGVyIHRvIGluY2x1ZGUg dGhlIGR1cGxpY2F0ZWQgY29kZSBkaXJlY3RseSBpbiB0aGUNCjMgcGxhY2VzPw0KDQpUaGUgY29t bWl0IG1lc3NhZ2UgZm9yIHRoaXMgcGF0Y2ggaGFzIGEgbG9uZyBsaW5lIGxlbmd0aC4NCg0KLUpv cmRhbg0KDQo+ICAvLw0KPiAgLy8gUHJpdmF0ZSBzdHJ1Y3R1cmUgZm9yIHRoZSBTTU0gQ1BVIG1v ZHVsZSB0aGF0IGlzIHN0b3JlZCBpbiBEWEUgUnVudGltZSBtZW1vcnkNCj4gIC8vIENvbnRhaW5z IHRoZSBTTU0gQ29uZmlndXJhdGlvbiBQcm90b2NvbHMgdGhhdCBpcyBwcm9kdWNlZC4NCj4gZGlm ZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mIGIv VWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmYNCj4gaW5kZXggMDk5 NzkyZTZjZS4uNTdhMTRkOWYyNCAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmYNCj4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNt bS9QaVNtbUNwdUR4ZVNtbS5pbmYNCj4gQEAgLTEzOCwxNCArMTM4LDE0IEBADQo+ICAgIGdFZGtp aVBpU21tTWVtb3J5QXR0cmlidXRlc1RhYmxlR3VpZCAgICAgIyMgQ09OU1VNRVMgIyMgU3lzdGVt VGFibGUNCj4gIA0KPiAgW0ZlYXR1cmVQY2RdDQo+IC0gIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1 aWQuUGNkQ3B1U21tRGVidWcgICAgICAgICAgICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4g LSAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RDcHVTbW1CbG9ja1N0YXJ0dXBUaGlzQXAg ICAgICAgICAgICAjIyBDT05TVU1FUw0KPiAtICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZENwdVNtbUVuYWJsZUJzcEVsZWN0aW9uICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+IC0gIGdV ZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1SG90UGx1Z1N1cHBvcnQgICAgICAgICAgICAg ICAgICAgIyMgQ09OU1VNRVMNCj4gLSAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RDcHVT bW1TdGFja0d1YXJkICAgICAgICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPiAtICBnVWVmaUNw dVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbVByb2ZpbGVFbmFibGUgICAgICAgICAgICAgICAg ICMjIENPTlNVTUVTDQo+IC0gIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U21tUHJv ZmlsZVJpbmdCdWZmZXIgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gLSAgZ1VlZmlDcHVQa2dU b2tlblNwYWNlR3VpZC5QY2RDcHVTbW1GZWF0dXJlQ29udHJvbE1zckxvY2sgICAgICAgICAjIyBD T05TVU1FUw0KPiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbURlYnVnICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gKyAgZ1VlZmlDcHVQa2dUb2tl blNwYWNlR3VpZC5QY2RDcHVTbW1CbG9ja1N0YXJ0dXBUaGlzQXAgICAgICAgICAgICAgICMjIENP TlNVTUVTDQo+ICsgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U21tRW5hYmxlQnNw RWxlY3Rpb24gICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPiArICBnVWVmaUNwdVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZENwdUhvdFBsdWdTdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgIyMgQ09O U1VNRVMNCj4gKyAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RDcHVTbW1TdGFja0d1YXJk ICAgICAgICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ICsgIGdVZWZpQ3B1UGtnVG9rZW5T cGFjZUd1aWQuUGNkQ3B1U21tUHJvZmlsZUVuYWJsZSAgICAgICAgICAgICAgICAgICAjIyBDT05T VU1FUw0KPiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVNtbVByb2ZpbGVSaW5n QnVmZmVyICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gKyAgZ1VlZmlDcHVQa2dUb2tlblNw YWNlR3VpZC5QY2RDcHVTbW1GZWF0dXJlQ29udHJvbE1zckxvY2sgICAgICAgICAgICMjIENPTlNV TUVTDQo+ICANCj4gIFtQY2RdDQo+ICAgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1 TWF4TG9naWNhbFByb2Nlc3Nvck51bWJlciAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ IEBAIC0xNTksNiArMTU5LDcgQEANCj4gICAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RD cHVTbW1TdGF0aWNQYWdlVGFibGUgICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPiAgICBnRWZp TWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQWNwaVMzRW5hYmxlICAgICAgICAgICAgICAg ICAgICMjIENPTlNVTUVTDQo+ICAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RQ dGVNZW1vcnlFbmNyeXB0aW9uQWRkcmVzc09yTWFzayAgICAjIyBDT05TVU1FUw0KPiArICBnRWZp TWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTnVsbFBvaW50ZXJEZXRlY3Rpb25Qcm9wZXJ0 eU1hc2sgICAgIyMgQ09OU1VNRVMNCj4gIA0KPiAgW0RlcGV4XQ0KPiAgICBnRWZpTXBTZXJ2aWNl UHJvdG9jb2xHdWlkDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1g2 NC9QYWdlVGJsLmMgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1g2NC9QYWdlVGJsLmMNCj4g aW5kZXggM2RkZTgwZjliYS4uZTY3YmNmZTBmNiAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9Q aVNtbUNwdUR4ZVNtbS9YNjQvUGFnZVRibC5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVE eGVTbW0vWDY0L1BhZ2VUYmwuYw0KPiBAQCAtODcyLDYgKzg3MiwxNyBAQCBTbWlQRkhhbmRsZXIg KA0KPiAgICAgIH0NCj4gICAgfQ0KPiAgDQo+ICsgIC8vDQo+ICsgIC8vIElmIE5VTEwgcG9pbnRl ciB3YXMganVzdCBhY2Nlc3NlZA0KPiArICAvLw0KPiArICBpZiAoTlVMTF9ERVRFQ1RJT05fRU5B QkxFRCAmJiAoUEZBZGRyZXNzID49IDAgJiYgUEZBZGRyZXNzIDwgRUZJX1BBR0VfU0laRSkpIHsN Cj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiISEhIE5VTEwgcG9pbnRlciBhY2Nlc3MgISEh XG4iKSk7DQo+ICsgICAgREVCVUdfQ09ERSAoDQo+ICsgICAgICBEdW1wTW9kdWxlSW5mb0J5SXAg KChVSU5UTilTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRYNjQtPlJpcCk7DQo+ICsgICAgKTsN Cj4gKyAgICBDcHVEZWFkTG9vcCAoKTsNCj4gKyAgfQ0KPiArDQo+ICAgIGlmIChGZWF0dXJlUGNk R2V0IChQY2RDcHVTbW1Qcm9maWxlRW5hYmxlKSkgew0KPiAgICAgIFNtbVByb2ZpbGVQRkhhbmRs ZXIgKA0KPiAgICAgICAgU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0WDY0LT5SaXAsDQo+IC0t IA0KPiAyLjE0LjEud2luZG93cy4xDQo+IA0K