From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 5E43521A10961 for ; Wed, 29 Nov 2017 17:45:32 -0800 (PST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2017 17:49:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,339,1508828400"; d="scan'208";a="7822302" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga003.jf.intel.com with ESMTP; 29 Nov 2017 17:49:56 -0800 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Nov 2017 17:49:56 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Nov 2017 17:49:55 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.218]) with mapi id 14.03.0319.002; Thu, 30 Nov 2017 09:46:38 +0800 From: "Wang, Jian J" To: "Yao, Jiewen" CC: "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH 0/2] Enable page table write protection Thread-Index: AQHTaO6jS1DO4wpsLEWRTketUMlavaMqjVAAgACYNlD//4PNAIAAm23w//+RD4CAATvkkP//gSmAABD+DHD//4RjAP//eELQ Date: Thu, 30 Nov 2017 01:46:37 +0000 Message-ID: References: <20171129084640.20076-1-jian.j.wang@intel.com> <19004429-87DC-4620-8A78-4EF085D5AD9D@intel.com>, <47960CCE-CA63-49FE-99AF-48E61050EF05@intel.com>, <75B70EA2-DA2E-41E5-9580-FA23AB545AC2@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA326DF@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA3279A@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA3279A@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjc1Yjg1YzEtMzZhNS00ZTYwLTkzZWItYTM3ZjkxYTFiOTFmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJIWGJSNVRoOVNQZUtwVDR0UTFRbGNONFwvc3RkVjZ5V0Y1bGVKaGlQVk56NzVzTDVqaFhJT0ZPZCtWTXRiVW1vUyJ9 x-ctpclassification: CTP_IC 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 0/2] Enable page table write protection 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, 30 Nov 2017 01:45:32 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 R29vZCBpZGVhLiBJIHRoaW5rIGl0IHdpbGwgaGlnaGx5IHJlZHVjZSB0aGUgcG9zc2liaWxpdHkg YnV0IG5vdCBzb2x2ZSBpdCBzdGlsbC4NClRoZSBkaWxlbW1hIGhlcmUgaXM6IGRvIHdlIG5lZWQg dG8gdGFrZSBjYXJlIG9mIGl0PyBUaGlzIGlzc3VlIGV4aXN0cyBpbiB0aGVvcnkNCmJ1dCBoYXMg bm90IHlldCBiZWVuIGVuY291bnRlcmVkIGluIHByYWN0aWNlLg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IFlhbywgSmlld2VuDQo+IFNlbnQ6IFRodXJzZGF5LCBOb3Zl bWJlciAzMCwgMjAxNyA5OjM2IEFNDQo+IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGlu dGVsLmNvbT4NCj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IFN1YmplY3Q6IFJFOiBb ZWRrMl0gW1BBVENIIDAvMl0gRW5hYmxlIHBhZ2UgdGFibGUgd3JpdGUgcHJvdGVjdGlvbg0KPiAN Cj4gQ2FuIHlvdSBqdXN0IGFsbG9jYXRlIDEgbW9yZSBwYWdlIGZvciBzcGxpdD8NCj4gSWYgbmV3 IG9uZSBuZWVkIHNwbGl0LCB5b3UgY2FuIGp1c3QgdXNlIHRoZSBhZGRpdGlvbmFsIHBhZ2UuDQo+ IElmIG5vdCwgeW91IGNhbiBmcmVlIGl0IGxhdGVyLg0KPiANCj4gVGhhbmsgeW91DQo+IFlhbyBK aWV3ZW4NCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog V2FuZywgSmlhbiBKDQo+ID4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDMwLCAyMDE3IDk6MTcg QU0NCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+IENjOiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDAv Ml0gRW5hYmxlIHBhZ2UgdGFibGUgd3JpdGUgcHJvdGVjdGlvbg0KPiA+DQo+ID4gV2hlbiB5b3Ug c3BsaXQgcGFnZSB0YWJsZXMsIHlvdSBuZWVkIHRvIGFsbG9jYXRlIG5ldyBwYWdlcyBmb3IgbmV3 IHBhZ2UNCj4gdGFibGUuDQo+ID4gU2luY2UgeW91IGhhdmUgbmV3IHBhZ2UgdGFibGVzIGFkZGVk LCB5b3UgbmVlZCB0byBtYXJrIHRoZW0gdG8gYmUgcmVhZC1vbmx5DQo+ID4gYXMgd2VsbCwgcmln aHQ/IFdoZW4geW91IGRvIHRoaXMsIHRoZSBwYWdlIHRhYmxlIGZvciB0aGUgbWVtb3J5IG5ld2x5 DQo+IGFsbG9jYXRlZA0KPiA+IG1pZ2h0IHN0aWxsIG5lZWRzIHRvIGJlIHNwbGl0LiBUaGlzIGlz IHRoZSB3b3JzdCBjYXNlIGJ1dCB0aGVyZSdzIHN0aWxsIGNoYW5jZSBvZiBpdCwNCj4gPiByaWdo dD8gV2UgY2Fubm90IGd1YXJhbnRlZSwgdGhlb3JldGljYWxseSwgdGhlIHBhZ2UgdGFibGUgZm9y IHRoZSBuZXdseQ0KPiBhbGxvY2F0ZWQNCj4gPiBwYWdlIHRhYmxlcyBpcyBpbiB0aGUgc2FtZSBh cyBqdXN0IHNwbGl0IG9uZXMuIFNvLCBpbiB3b3JzdCBjYXNlLCBvbmNlIHdlIHdhbnQgdG8NCj4g PiBtYXJrIG5ldyBwYWdlIHRhYmxlIHRvIGJlIHJlYWQtb25seSwgd2UgbmVlZCB0byBzcGxpdCB0 aGUgcGFnZSB0YWJsZQ0KPiBtYW5hZ2luZw0KPiA+IHRob3NlIG1lbW9yeSwgYW5kIGlmIHdlIG5l ZWQgdG8gZG8gc3BsaXQsIHdlIG5lZWQgdG8gYWxsb2NhdGUgbW9yZSBuZXcNCj4gcGFnZXMuDQo+ ID4gVGhpcyBtaWdodCBmYWxsIGludG8gYSByZWN1cnNpdmUgc2l0dWF0aW9uIHVudGlsIGFsbCB0 aGUgc21hbGxlc3QgcGFnZSB0YWJsZSBhcmUNCj4gPiBjcmVhdGVkLg0KPiA+IEluIHByYWN0aWNl IGl0J3MgYWxtb3N0IGltcG9zc2libGUgdG8gbGV0IGl0IGhhcHBlbiBidXQgdGhlIGNoYW5jZXMg YXJlIHdlIHdpbGwNCj4gZmFsbA0KPiA+IGludG8NCj4gPiBzdWNoIHJlY3Vyc2l2ZSBzaXR1YXRp b24gbW9yZSB0aGFuIG9uZSBsZXZlbC4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+IEZyb206IFlhbywgSmlld2VuDQo+ID4gPiBTZW50OiBUaHVyc2RheSwgTm92 ZW1iZXIgMzAsIDIwMTcgODo1MiBBTQ0KPiA+ID4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndh bmdAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiBT dWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHBy b3RlY3Rpb24NCj4gPiA+DQo+ID4gPiAtLSB3aGVuZXZlciB5b3UncmUgdHJ5aW5nIHRvIG1hcmsg b25lIHBhZ2UgdXNlZCBhcyBwYWdlIHRhYmxlIHRvIGJlIHJlYWQtDQo+IG9ubHksDQo+ID4gPiB5 b3UgbmVlZCB0byBzcGxpdCBpdHMgcGFnZSB0YWJsZSBpbiBhZHZhbmNlDQo+ID4gPiBbSmlld2Vu XSBTb3JyeSwgSSBkbyBub3QgcXVpdGUgdW5kZXJzdGFuZCB0aGUgcHJvYmxlbSBzdGF0ZW1lbnQu DQo+ID4gPiBUbyBzZXQgYSBwYWdlIHRvIGJlIFJlYWRPbmx5LCB5b3UganVzdCBmbGlwIHRoZSBS L1cgYml0IGluIHRoZSBwYWdlIGVudHJ5Lg0KPiA+ID4gVGhlIHN0ZXAgSSBleHBlY3QgaXM6DQo+ ID4gPiAxKSBZb3Ugc3BsaXQgcGFnZSB0YWJsZS4NCj4gPiA+IDIpIEZpbGwgdGhlIGRhdGEgc3Ry dWN0dXJlIGluIHRoZSBuZXcgZW50cnkuDQo+ID4gPiAzKSBGbGlwIFIvVyBiaXQgKDw9PSBUaGlz IGlzIHRoZSBuZXcgc3RlcCkuDQo+ID4gPiA0KSBGbHVzaFBhZ2VUYWJsZS4NCj4gPiA+DQo+ID4g PiBUaGFuayB5b3UNCj4gPiA+IFlhbyBKaWV3ZW4NCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IFdhbmcsIEppYW4gSg0KPiA+ID4gPiBTZW50 OiBUaHVyc2RheSwgTm92ZW1iZXIgMzAsIDIwMTcgODo0NCBBTQ0KPiA+ID4gPiBUbzogWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmcNCj4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMC8yXSBFbmFibGUg cGFnZSB0YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4gPiA+DQo+ID4gPiA+IEkgZGlkIHRoaW5r IG9mIHByb3RlY3RpbmcgbmV3IHBhZ2UgdGFibGUgaW4gY3B1IGRyaXZlci4gQnV0IEkgdGhpbmsg dGhlcmUncw0KPiByaXNrcw0KPiA+ID4gPiB0byBkbyBpdCwgd2hpY2ggaXMgdGhhdCB0aGVyZSBt aWdodCBiZSBhIGNoYW5jZSB0aGF0LCB3aGVuZXZlciB5b3UncmUgdHJ5aW5nDQo+IHRvDQo+ID4g PiA+IG1hcmsgb25lIHBhZ2UgdXNlZCBhcyBwYWdlIHRhYmxlIHRvIGJlIHJlYWQtb25seSwgeW91 IG5lZWQgdG8gc3BsaXQgaXRzDQo+IHBhZ2UNCj4gPiA+ID4gdGFibGUgaW4gYWR2YW5jZSwgYW5k IGFnYWluIGFuZCBhZ2FpbiwgdW50aWwgYWxsIHBhZ2UgdGFibGVzIGFyZSBmb3IgNEtCDQo+IHBh Z2VzLg0KPiA+ID4gPg0KPiA+ID4gPiBBbHRob3VnaCB0aGlzIGlzIGEgcmFyZSBjYXNlLCBvciB0 aGUgcGFnZSB0YWJsZSAic3BsaXQiIHdpbGwganVzdCBoYXBwZW4gZm9yIGENCj4gZmV3DQo+ID4g PiA+IHRpbWVzLCBpdCB3aWxsIHNsb3cgZG93biB0aGUgYm9vdCBwcm9jZXNzIGEgbGl0dGxlIGJp dCBhbnl3YXkuIFNvIEkgdGhvdWdoDQo+IGl0J3MNCj4gPiA+ID4gc2FmZXIgbm90IHRvIHByb3Rl Y3QgbmV3IHBhZ2UgdGFibGVzIGNyZWF0ZWQgYWZ0ZXIgRHhlSXBsLg0KPiA+ID4gPg0KPiA+ID4g PiBNYXliZSBpdCdzIGp1c3Qgb3ZlciB3b3JyeWluZyBhYm91dCBpdC4gTWF5YmUgd2UganVzdCBu ZWVkIHRvIGFkZCBhIFBDRCB0bw0KPiA+ID4gPiB0dXJuIG9uL29mZiBpdCBqdXN0IGluIGNhc2Uu IERvIHlvdSBoYXZlIGFueSBpZGVhcyBpbiBtaW5kPw0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPiA+ ID4gPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDI5LCAyMDE3IDk6MzUgUE0NCj4gPiA+ID4g PiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6 IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBb UEFUQ0ggMC8yXSBFbmFibGUgcGFnZSB0YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBJIGRvIHRoaW5rIHdlIG5lZWQgdXBkYXRlIENQVSBkcml2ZXIgdG8gcHJvdGVj dCBuZXcgYWxsb2NhdGVkIHNwbGl0IHBhZ2UuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJZiB5b3Ug dmVyaWZpZWQgaW4gc2hlbGwgZW52LCBJIHRoaW5rIGl0IHdpbGwgZXhwb3NlZCwgcGxlYXNlIGFk ZCBhIHRlc3QgdG8NCj4gdHJpZ2dlcg0KPiA+ID4gPiA+IHBhZ2Ugc3BsaXQgaW4gQ1BVIGRyaXZl ci4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgcmVjb21tZW5kIHRvIHdyaXRlIHNvbWUgdW5pdCB0 ZXN0IHRvIHBhcnNlIHBhZ2UgdGFibGUgaW4gc2hlbGwuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiB0 aGFuayB5b3UhDQo+ID4gPiA+ID4gWWFvLCBKaWV3ZW4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiDU2iAyMDE3xOoxMdTCMjnI1aOsz8LO5zg6MTWjrFdhbmcsIEppYW4gSg0KPiA8 amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiDQtA0KPiA+ID4gPiA+ILXAo7oNCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBJdCdzIGluIHRoZSBEeGVJcGxQZWltLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IEJ5IHRoZSB3YXksIHRoZXJlJ3MgYW4gaXNzdWUgaW4gdGhpcyBwYXRjaC4g SSBmb3Jnb3QgdG8gcHJvdGVjdCBwYWdlIHRhYmxlDQo+IGZvcg0KPiA+ID4gPiAzMi0NCj4gPiA+ ID4gPiBiaXQgbW9kZS4NCj4gPiA+ID4gPiA+IFNvIHRoaXMgcGF0Y2ggd29ya3Mgb25seSBmb3Ig NjQtYml0IG1vZGUuIEknbGwgYWRkIGl0IGluIHYyIHBhdGNoLg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4+IEZyb206IFlh bywgSmlld2VuDQo+ID4gPiA+ID4gPj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyOSwgMjAx NyA2OjU2IFBNDQo+ID4gPiA+ID4gPj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50 ZWwuY29tPg0KPiA+ID4gPiA+ID4+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4g PiA+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDAvMl0gRW5hYmxlIHBhZ2UgdGFibGUg d3JpdGUgcHJvdGVjdGlvbg0KPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPj4gSXMgdGhpcyBjb2Rl IGluIENQVSBkcml2ZXI/DQo+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+PiB0aGFuayB5b3UhDQo+ ID4gPiA+ID4gPj4gWWFvLCBKaWV3ZW4NCj4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4+DQo+ID4g PiA+ID4gPj4+INTaIDIwMTfE6jEx1MIyOcjVo6zPws7nNjoyNKOsV2FuZywgSmlhbiBKDQo+ID4g PiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+INC0DQo+ID4gPiA+ID4gPj4gtcCj ug0KPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4+PiBZZXMsIEkgdmFsaWRhdGVkIHRoZW0gbWFu dWFsbHkgd2l0aCBKVEFHIGRlYnVnIHRvb2wuDQo+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPj4+ IGlmICgoTDNQYWdlVGFibGVbSW5kZXgzXSAmIElBMzJfUEdfUFMpICE9IDApIHsNCj4gPiA+ID4g PiA+Pj4gIC8vIDFHIHBhZ2UuIFNwbGl0IHRvIDJNLg0KPiA+ID4gPiA+ID4+PiAgTDJQYWdlVGFi bGUgPSBBbGxvY2F0ZVBhZ2VzICgxKTsNCj4gPiA+ID4gPiA+Pj4gIEFTU0VSVCAoTDJQYWdlVGFi bGUgIT0gTlVMTCk7DQo+ID4gPiA+ID4gPj4+ICAgUGh5c2ljYWxBZGRyZXNzID0gTDNQYWdlVGFi bGVbSW5kZXgzXSAmDQo+ID4gPiA+IFBBR0lOR18xR19BRERSRVNTX01BU0tfNjQ7DQo+ID4gPiA+ ID4gPj4+ICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgRUZJX1BBR0VfU0laRS9zaXplb2YgKFVJ TlQ2NCk7ICsrSW5kZXgpIHsNCj4gPiA+ID4gPiA+Pj4gICAgTDJQYWdlVGFibGVbSW5kZXhdID0g UGh5c2ljYWxBZGRyZXNzICB8IEFkZHJlc3NFbmNNYXNrIHwNCj4gPiA+ID4gPiA+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgSUEzMl9QR19QUyB8IElBMzJfUEdfUCB8DQo+ID4gSUEzMl9QR19S VzsNCj4gPiA+ID4gPiA+Pj4gICAgUGh5c2ljYWxBZGRyZXNzICs9IFNJWkVfMk1COw0KPiA+ID4g PiA+ID4+PiAgfQ0KPiA+ID4gPiA+ID4+PiAgTDNQYWdlVGFibGVbSW5kZXgzXSA9IChVSU5UNjQp IChVSU5UTikgTDJQYWdlVGFibGUgfA0KPiA+ID4gPiBBZGRyZXNzRW5jTWFzayB8DQo+ID4gPiA+ ID4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQTMyX1BHX1Ag fA0KPiA+ID4gPiBJQTMyX1BHX1JXOw0KPiA+ID4gPiA+ID4+PiAgU2V0UGFnZVJlYWRPbmx5IChQ YWdlVGFibGVCYXNlLA0KPiA+ID4gPiA+ID4+IChFRklfUEhZU0lDQUxfQUREUkVTUykoVUlOVE4p TDJQYWdlVGFibGUpOw0KPiA+ID4gPiA+ID4+PiB9DQo+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4g Pj4+IFRoZSBuZXdseSBhbGxvY2F0ZWQgcGFnZSB0YWJsZSBpcyBzZXQgaW4gdGhlIFNldFBhZ2VS ZWFkT25seSgpIGl0c2VsZg0KPiA+ID4gPiA+ID4+IHJlY3Vyc2l2ZWx5LCBsaWtlDQo+ID4gPiA+ ID4gPj4+IGFib3ZlIGNvZGUgaW4gd2hpY2ggTDJQYWdlVGFibGUgaXMgYWxsb2NhdGVkIGFuZCB0 aGVuIHNldCBpdCB0byBiZQ0KPiA+ID4gPiByZWFkLW9ubHkNCj4gPiA+ID4gPiA+PiBhZnRlcg0K PiA+ID4gPiA+ID4+PiBpbml0aWFsaXppbmcgdGhlIHRhYmxlIGNvbnRlbnQuDQo+ID4gPiA+ID4g Pj4+DQo+ID4gPiA+ID4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ ID4+Pj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPiA+ID4gPiA+Pj4+IFNlbnQ6IFdlZG5lc2RheSwg Tm92ZW1iZXIgMjksIDIwMTcgNToxNiBQTQ0KPiA+ID4gPiA+ID4+Pj4gVG86IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4+Pj4gQ2M6IGVkazItZGV2ZWxA bGlzdHMuMDEub3JnDQo+ID4gPiA+ID4gPj4+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAw LzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gPiA+ID4gPiA+Pj4+DQo+ ID4gPiA+ID4gPj4+PiBUaGFua3MuDQo+ID4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+ID4+Pj4gTWF5 IEkga25vdyBpZiB0aGlzIGlzIHZhbGlkYXRlZCBpbiB1ZWZpIHNoZWxsLCB0aGF0IGFsbCBwYWdl IHRhYmxlIGlzDQo+ID4gPiByZWFkb25seT8NCj4gPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4gPj4+ PiBJIGRpZCBub3QgZmluZCB0aGUgY29kZSB0byBzZXQgbmV3IGFsbG9jYXRlZCBzcGxpdCBwYWdl IHRvIGJlDQo+IHJlYWRvbmx5Lg0KPiA+ID4gQ2FuDQo+ID4gPiA+ID4geW91DQo+ID4gPiA+ID4g Pj4+PiBnaXZlIG1lIGEgaGFuZCBvbiB0aGF0Pw0KPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPiA+ Pj4+IHRoYW5rIHlvdSENCj4gPiA+ID4gPiA+Pj4+IFlhbywgSmlld2VuDQo+ID4gPiA+ID4gPj4+ Pg0KPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPiA+Pj4+PiDU2iAyMDE3xOoxMdTCMjnI1aOsz8LO 5zQ6NDejrEppYW4gSiBXYW5nDQo+ID4gPiA+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4g PiA+ID4gPj4g0LQNCj4gPiA+ID4gPiA+Pj4+ILXAo7oNCj4gPiA+ID4gPiA+Pj4+Pg0KPiA+ID4g PiA+ID4+Pj4+IFdyaXRlIFByb3RlY3QgZmVhdHVyZSAoQ1IwLldQKSBpcyBhbHdheXMgZW5hYmxl ZCBpbiBkcml2ZXINCj4gPiA+ID4gPiA+Pj4+IFVlZmlDcHVQa2cvQ3B1RHhlLg0KPiA+ID4gPiA+ ID4+Pj4+IEJ1dCB0aGUgbWVtb3J5IHBhZ2VzIHVzZWQgZm9yIHBhZ2UgdGFibGUgYXJlIG5vdCBz ZXQgYXMgcmVhZC1vbmx5DQo+ID4gaW4NCj4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPj4+PiBkcml2 ZXINCj4gPiA+ID4gPiA+Pj4+PiBEeGVJcGxQZWltLCBhZnRlciB0aGUgcGFnaW5nIGlzIHNldHVw LiBUaGlzIG1pZ2h0IGplb3BhcmRpemUgdGhlDQo+IHBhZ2UNCj4gPiA+ID4gPiB0YWJsZQ0KPiA+ ID4gPiA+ID4+Pj4+IGludGVncml0eSBpZiB0aGVyZSdzIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cmVk IGluIG90aGVyIHBhcnQgb2Ygc3lzdGVtLg0KPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPj4+ Pj4gVGhpcyBwYXRjaCBzZXJpZXMgd2lsbCBjaGFuZ2UgdGhpcyBzaXR1YXRpb24gYnkgY2xlYXJp bmcgUi9XIGJpdCBpbg0KPiA+IHBhZ2UNCj4gPiA+ID4gPiA+PiBhdHRyaWJ1dGUNCj4gPiA+ID4g PiA+Pj4+PiBvZiB0aGUgcGFnZXMgdXNlZCBhcyBwYWdlIHRhYmxlLg0KPiA+ID4gPiA+ID4+Pj4+ DQo+ID4gPiA+ID4gPj4+Pj4gVmFsaWRhdGlvbiB3b3JrcyBpbmNsdWRlIGJvb3RpbmcgV2luZG93 cyAoMTAvc2VydmVyIDIwMTYpIGFuZA0KPiA+IExpbnV4DQo+ID4gPiA+ID4gPj4+PiAoRmVkb3Jh L1VidW50dSkNCj4gPiA+ID4gPiA+Pj4+PiBvbiBPVk1GIGFuZCBJbnRlbCByZWFsIHBsYXRmb3Jt Lg0KPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4gSmlhbiBKIFdhbmcgKDIpOg0KPiA+ ID4gPiA+ID4+Pj4+IFVlZmlDcHVQa2cvQ3B1RHhlOiBDaGVjayBDUjAuV1AgYmVmb3JlIGNoYW5n aW5nIHBhZ2UgdGFibGUNCj4gPiA+ID4gPiA+Pj4+PiBNZGVNb2R1bGVQa2cvRHhlSXBsOiBNYXJr IHBhZ2UgdGFibGUgYXMgcmVhZC1vbmx5DQo+ID4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPiA+Pj4+ PiBNZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmMgfCAxNjYN Cj4gPiA+ID4gPiA+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ID4gPj4+Pj4g TWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5oIHwgIDE0ICsr DQo+ID4gPiA+ID4gPj4+Pj4gVWVmaUNwdVBrZy9DcHVEeGUvQ3B1UGFnZVRhYmxlLmMgICAgICAg ICAgICAgICAgIHwgIDY1DQo+ID4gPiA+ICsrKysrKysrLQ0KPiA+ID4gPiA+ID4+Pj4+IDMgZmls ZXMgY2hhbmdlZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4g Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+PiAtLQ0KPiA+ID4gPiA+ID4+Pj4+IDIuMTQuMS53aW5kb3dz LjENCj4gPiA+ID4gPiA+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPiA+ID4gPj4+Pj4gZWRrMi1kZXZlbCBt YWlsaW5nIGxpc3QNCj4gPiA+ID4gPiA+Pj4+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ ID4gPiA+ID4+Pj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1k ZXZlbA0K