From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.120; helo=mga04.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org 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 2510C21A10960 for ; Wed, 29 Nov 2017 18:31:53 -0800 (PST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2017 18:36:18 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,339,1508828400"; d="scan'208";a="154565067" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga004.jf.intel.com with ESMTP; 29 Nov 2017 18:36:17 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Nov 2017 18:36:09 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.152]) with mapi id 14.03.0319.002; Thu, 30 Nov 2017 10:36:07 +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//eELQgACOSAD//3kpoP/+68Ww Date: Thu, 30 Nov 2017 02:36:06 +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> <74D8A39837DF1E4DA445A8C0B3885C503AA32861@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 02:31:54 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SSBhbHNvIG5vdGljZWQgdGhhdCwgaW4gdGhlIGNwdSBkcml2ZXIsIHRoZXJlJ3MgYSBwb3RlbnRp YWwgcmVjdXJzaXZlIGNhbGxpbmcgb2YgDQpDcHVBcmNoUHJvdG9jb2wtPlNldE1lbW9yeUF0dHJp YnV0ZXMoKSB3aGljaCBpcyBjYXVzZWQgYnkgcGFnZSB0YWJsZSBhbGxvY2F0aW9uOg0KDQogICAg KGNwdSlTZXRNZW1vcnlBdHRyaWJ1dGVzKCkgLT4gKGNwdSkgQXNzaWduTWVtb3J5UGFnZUF0dHJp YnV0ZXMgKCkgLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLT4gKGNwdSkgQ29udmVydE1lbW9yeVBhZ2VBdHRyaWJ1dGVzKCkgLT4NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g KGNwdSkgU3BsaXRQYWdlKCkgLT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLT4gKGNwdSkgQWxsb2NhdGVQYWdlc0Z1bmMoKSAtPg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAo Y29yZSkgQ29yZUFsbG9jYXRlUGFnZXMoKSAtPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAoY29yZSlBcHBseU1lbW9yeVByb3RlY3Rp b25Qb2xpY3koKSAtPiANCi0+IChjcHUpU2V0TWVtb3J5QXR0cmlidXRlcygpDQoNClRoaXMgaGFz IGNhdXNlZCBhIHByb2JsZW0gaW4gcHJvdGVjdGluZyBwYWdlIHRhYmxlcy4gTWF5YmUgeW91ciBp ZGVhIGNhbiBoZWxwDQp0byBzb2x2ZSBpdCB0b28uDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBXYW5nLCBKaWFuIEoNCj4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVy IDMwLCAyMDE3IDEwOjAyIEFNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5j b20+DQo+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBTdWJqZWN0OiBSRTogW2VkazJd IFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gDQo+IFRo YXQncyBhIGJldHRlciBpZGVhLiBNYXliZSB3ZSBkb24ndCB0byBmcmVlIHRoZW0gYnV0IGp1c3Qg cmVzZXJ2ZSBpdCBmb3IgZnV0dXJlDQo+IHVzZXMuDQo+IFRoZSByZXNlcnZlZCAyTUIgcGFnZSB0 YWJsZSBjYW4gbWFuYWdlIDFHQiBtZW1vcnkuIEkgdGhpbmsgaW4gQklPUyB0aW1lDQo+IHR5cGlj YWwNCj4gbWVtb3J5IHVzYWdlIEkgb2JzZXJ2ZWQgaXMgZmFyIGxlc3MgdGhhbiB0aGF0Lg0KPiAN Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFlhbywgSmlld2VuDQo+ ID4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDMwLCAyMDE3IDk6NTkgQU0NCj4gPiBUbzogV2Fu ZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnDQo+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMC8yXSBFbmFibGUgcGFn ZSB0YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4NCj4gPiBDbGFyaWZ5IG15IHdvcmQgYmVsb3c6 DQo+ID4NCj4gPiBDYW4geW91IGp1c3QgcHJlZGljdCBhbmQgcHJlLWFsbG9jYXRlIGFkZGl0aW9u YWwgcGFnZXMgZm9yIGZ1dHVyZSBzcGxpdCBpbiB3b3JzdA0KPiA+IGNhc2U/DQo+ID4gSWYgbmV3 IG9uZSBuZWVkIHNwbGl0LCB5b3UgY2FuIGp1c3QgdXNlIHRoZSBhZGRpdGlvbmFsIHBhZ2VzLg0K PiA+IElmIG5vdCwgeW91IGNhbiBmcmVlIHRoZW0gbGF0ZXIuDQo+ID4NCj4gPiBGb3IgZXhhbXBs ZSwgeW91IGNhbiBhbGxvY2F0ZSAyTSBhbGlnbmVkIG1lbW9yeSBmb3IgbmV3IHBhZ2VzLCBmb3Ig bWFrZQ0KPiBzdXJlDQo+ID4gdGhleSBhcmUgaW4gc2FtZSBwYWdlIGRpcmVjdG9yeS4NCj4gPg0K PiA+IEkgdGhpbmsgaXQgY2FuIHJlc29sdmUgdGhlIHByb2JsZW0uDQo+ID4gVGhlIGtleSBpcyB0 byBwcmUtY2FsY3VsYXRlIGhvdyBtYW55IHBhZ2VzIGFyZSBpbnZvbHZlZCBpbiB0aGUgd29yc3Qg Y2FzZS4NCj4gPg0KPiA+IFRoYW5rIHlvdQ0KPiA+IFlhbyBKaWV3ZW4NCj4gPg0KPiA+DQo+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV2FuZywgSmlhbiBKDQo+ ID4gPiBTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMzAsIDIwMTcgOTo0NyBBTQ0KPiA+ID4gVG86 IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+IENjOiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMC8yXSBFbmFi bGUgcGFnZSB0YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4gPg0KPiA+ID4gR29vZCBpZGVhLiBJ IHRoaW5rIGl0IHdpbGwgaGlnaGx5IHJlZHVjZSB0aGUgcG9zc2liaWxpdHkgYnV0IG5vdCBzb2x2 ZSBpdCBzdGlsbC4NCj4gPiA+IFRoZSBkaWxlbW1hIGhlcmUgaXM6IGRvIHdlIG5lZWQgdG8gdGFr ZSBjYXJlIG9mIGl0PyBUaGlzIGlzc3VlIGV4aXN0cyBpbiB0aGVvcnkNCj4gPiA+IGJ1dCBoYXMg bm90IHlldCBiZWVuIGVuY291bnRlcmVkIGluIHByYWN0aWNlLg0KPiA+ID4NCj4gPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPiA+ ID4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDMwLCAyMDE3IDk6MzYgQU0NCj4gPiA+ID4gVG86 IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMC8y XSBFbmFibGUgcGFnZSB0YWJsZSB3cml0ZSBwcm90ZWN0aW9uDQo+ID4gPiA+DQo+ID4gPiA+IENh biB5b3UganVzdCBhbGxvY2F0ZSAxIG1vcmUgcGFnZSBmb3Igc3BsaXQ/DQo+ID4gPiA+IElmIG5l dyBvbmUgbmVlZCBzcGxpdCwgeW91IGNhbiBqdXN0IHVzZSB0aGUgYWRkaXRpb25hbCBwYWdlLg0K PiA+ID4gPiBJZiBub3QsIHlvdSBjYW4gZnJlZSBpdCBsYXRlci4NCj4gPiA+ID4NCj4gPiA+ID4g VGhhbmsgeW91DQo+ID4gPiA+IFlhbyBKaWV3ZW4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IFdhbmcsIEppYW4g Sg0KPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAzMCwgMjAxNyA5OjE3IEFNDQo+ ID4gPiA+ID4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+ID4g PiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW2Vk azJdIFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IFdoZW4geW91IHNwbGl0IHBhZ2UgdGFibGVzLCB5b3UgbmVlZCB0byBh bGxvY2F0ZSBuZXcgcGFnZXMgZm9yIG5ldw0KPiBwYWdlDQo+ID4gPiA+IHRhYmxlLg0KPiA+ID4g PiA+IFNpbmNlIHlvdSBoYXZlIG5ldyBwYWdlIHRhYmxlcyBhZGRlZCwgeW91IG5lZWQgdG8gbWFy ayB0aGVtIHRvIGJlDQo+ID4gPiByZWFkLW9ubHkNCj4gPiA+ID4gPiBhcyB3ZWxsLCByaWdodD8g V2hlbiB5b3UgZG8gdGhpcywgdGhlIHBhZ2UgdGFibGUgZm9yIHRoZSBtZW1vcnkgbmV3bHkNCj4g PiA+ID4gYWxsb2NhdGVkDQo+ID4gPiA+ID4gbWlnaHQgc3RpbGwgbmVlZHMgdG8gYmUgc3BsaXQu IFRoaXMgaXMgdGhlIHdvcnN0IGNhc2UgYnV0IHRoZXJlJ3Mgc3RpbGwgY2hhbmNlDQo+IG9mDQo+ ID4gaXQsDQo+ID4gPiA+ID4gcmlnaHQ/IFdlIGNhbm5vdCBndWFyYW50ZWUsIHRoZW9yZXRpY2Fs bHksIHRoZSBwYWdlIHRhYmxlIGZvciB0aGUgbmV3bHkNCj4gPiA+ID4gYWxsb2NhdGVkDQo+ID4g PiA+ID4gcGFnZSB0YWJsZXMgaXMgaW4gdGhlIHNhbWUgYXMganVzdCBzcGxpdCBvbmVzLiBTbywg aW4gd29yc3QgY2FzZSwgb25jZSB3ZQ0KPiA+IHdhbnQNCj4gPiA+IHRvDQo+ID4gPiA+ID4gbWFy ayBuZXcgcGFnZSB0YWJsZSB0byBiZSByZWFkLW9ubHksIHdlIG5lZWQgdG8gc3BsaXQgdGhlIHBh Z2UgdGFibGUNCj4gPiA+ID4gbWFuYWdpbmcNCj4gPiA+ID4gPiB0aG9zZSBtZW1vcnksIGFuZCBp ZiB3ZSBuZWVkIHRvIGRvIHNwbGl0LCB3ZSBuZWVkIHRvIGFsbG9jYXRlIG1vcmUgbmV3DQo+ID4g PiA+IHBhZ2VzLg0KPiA+ID4gPiA+IFRoaXMgbWlnaHQgZmFsbCBpbnRvIGEgcmVjdXJzaXZlIHNp dHVhdGlvbiB1bnRpbCBhbGwgdGhlIHNtYWxsZXN0IHBhZ2UgdGFibGUNCj4gYXJlDQo+ID4gPiA+ ID4gY3JlYXRlZC4NCj4gPiA+ID4gPiBJbiBwcmFjdGljZSBpdCdzIGFsbW9zdCBpbXBvc3NpYmxl IHRvIGxldCBpdCBoYXBwZW4gYnV0IHRoZSBjaGFuY2VzIGFyZSB3ZQ0KPiA+IHdpbGwNCj4gPiA+ ID4gZmFsbA0KPiA+ID4gPiA+IGludG8NCj4gPiA+ID4gPiBzdWNoIHJlY3Vyc2l2ZSBzaXR1YXRp b24gbW9yZSB0aGFuIG9uZSBsZXZlbC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZyb206IFlhbywgSmlld2VuDQo+ID4gPiA+ ID4gPiBTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMzAsIDIwMTcgODo1MiBBTQ0KPiA+ID4gPiA+ ID4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4g Q2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW2Vk azJdIFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiAtLSB3aGVuZXZlciB5b3UncmUgdHJ5aW5nIHRvIG1hcmsgb25l IHBhZ2UgdXNlZCBhcyBwYWdlIHRhYmxlIHRvIGJlDQo+ID4gcmVhZC0NCj4gPiA+ID4gb25seSwN Cj4gPiA+ID4gPiA+IHlvdSBuZWVkIHRvIHNwbGl0IGl0cyBwYWdlIHRhYmxlIGluIGFkdmFuY2UN Cj4gPiA+ID4gPiA+IFtKaWV3ZW5dIFNvcnJ5LCBJIGRvIG5vdCBxdWl0ZSB1bmRlcnN0YW5kIHRo ZSBwcm9ibGVtIHN0YXRlbWVudC4NCj4gPiA+ID4gPiA+IFRvIHNldCBhIHBhZ2UgdG8gYmUgUmVh ZE9ubHksIHlvdSBqdXN0IGZsaXAgdGhlIFIvVyBiaXQgaW4gdGhlIHBhZ2UgZW50cnkuDQo+ID4g PiA+ID4gPiBUaGUgc3RlcCBJIGV4cGVjdCBpczoNCj4gPiA+ID4gPiA+IDEpIFlvdSBzcGxpdCBw YWdlIHRhYmxlLg0KPiA+ID4gPiA+ID4gMikgRmlsbCB0aGUgZGF0YSBzdHJ1Y3R1cmUgaW4gdGhl IG5ldyBlbnRyeS4NCj4gPiA+ID4gPiA+IDMpIEZsaXAgUi9XIGJpdCAoPD09IFRoaXMgaXMgdGhl IG5ldyBzdGVwKS4NCj4gPiA+ID4gPiA+IDQpIEZsdXNoUGFnZVRhYmxlLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IFRoYW5rIHlvdQ0KPiA+ID4gPiA+ID4gWWFvIEppZXdlbg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ ID4gRnJvbTogV2FuZywgSmlhbiBKDQo+ID4gPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBOb3Zl bWJlciAzMCwgMjAxNyA4OjQ0IEFNDQo+ID4gPiA+ID4gPiA+IFRvOiBZYW8sIEppZXdlbiA8amll d2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAx Lm9yZw0KPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSCAwLzJdIEVuYWJs ZSBwYWdlIHRhYmxlIHdyaXRlIHByb3RlY3Rpb24NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gSSBkaWQgdGhpbmsgb2YgcHJvdGVjdGluZyBuZXcgcGFnZSB0YWJsZSBpbiBjcHUgZHJpdmVy LiBCdXQgSSB0aGluaw0KPiB0aGVyZSdzDQo+ID4gPiA+IHJpc2tzDQo+ID4gPiA+ID4gPiA+IHRv IGRvIGl0LCB3aGljaCBpcyB0aGF0IHRoZXJlIG1pZ2h0IGJlIGEgY2hhbmNlIHRoYXQsIHdoZW5l dmVyIHlvdSdyZQ0KPiA+ID4gdHJ5aW5nDQo+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+IG1hcmsg b25lIHBhZ2UgdXNlZCBhcyBwYWdlIHRhYmxlIHRvIGJlIHJlYWQtb25seSwgeW91IG5lZWQgdG8g c3BsaXQNCj4gaXRzDQo+ID4gPiA+IHBhZ2UNCj4gPiA+ID4gPiA+ID4gdGFibGUgaW4gYWR2YW5j ZSwgYW5kIGFnYWluIGFuZCBhZ2FpbiwgdW50aWwgYWxsIHBhZ2UgdGFibGVzIGFyZSBmb3IgNEtC DQo+ID4gPiA+IHBhZ2VzLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBBbHRob3VnaCB0 aGlzIGlzIGEgcmFyZSBjYXNlLCBvciB0aGUgcGFnZSB0YWJsZSAic3BsaXQiIHdpbGwganVzdCBo YXBwZW4NCj4gZm9yDQo+ID4gYQ0KPiA+ID4gPiBmZXcNCj4gPiA+ID4gPiA+ID4gdGltZXMsIGl0 IHdpbGwgc2xvdyBkb3duIHRoZSBib290IHByb2Nlc3MgYSBsaXR0bGUgYml0IGFueXdheS4gU28g SQ0KPiB0aG91Z2gNCj4gPiA+ID4gaXQncw0KPiA+ID4gPiA+ID4gPiBzYWZlciBub3QgdG8gcHJv dGVjdCBuZXcgcGFnZSB0YWJsZXMgY3JlYXRlZCBhZnRlciBEeGVJcGwuDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IE1heWJlIGl0J3MganVzdCBvdmVyIHdvcnJ5aW5nIGFib3V0IGl0LiBN YXliZSB3ZSBqdXN0IG5lZWQgdG8gYWRkIGENCj4gPiBQQ0QNCj4gPiA+IHRvDQo+ID4gPiA+ID4g PiA+IHR1cm4gb24vb2ZmIGl0IGp1c3QgaW4gY2FzZS4gRG8geW91IGhhdmUgYW55IGlkZWFzIGlu IG1pbmQ/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+ID4gPiA+ID4g PiA+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjksIDIwMTcgOTozNSBQTQ0KPiA+ID4gPiA+ ID4gPiA+IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4g PiA+ID4gPiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gPiA+ID4gPiBTdWJq ZWN0OiBSZTogW2VkazJdIFtQQVRDSCAwLzJdIEVuYWJsZSBwYWdlIHRhYmxlIHdyaXRlIHByb3Rl Y3Rpb24NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgZG8gdGhpbmsgd2UgbmVl ZCB1cGRhdGUgQ1BVIGRyaXZlciB0byBwcm90ZWN0IG5ldyBhbGxvY2F0ZWQgc3BsaXQNCj4gPiA+ IHBhZ2UuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJZiB5b3UgdmVyaWZpZWQg aW4gc2hlbGwgZW52LCBJIHRoaW5rIGl0IHdpbGwgZXhwb3NlZCwgcGxlYXNlIGFkZCBhIHRlc3QN Cj4gdG8NCj4gPiA+ID4gdHJpZ2dlcg0KPiA+ID4gPiA+ID4gPiA+IHBhZ2Ugc3BsaXQgaW4gQ1BV IGRyaXZlci4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgcmVjb21tZW5kIHRv IHdyaXRlIHNvbWUgdW5pdCB0ZXN0IHRvIHBhcnNlIHBhZ2UgdGFibGUgaW4gc2hlbGwuDQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiB0aGFuayB5b3UhDQo+ID4gPiA+ID4gPiA+ID4g WWFvLCBKaWV3ZW4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gPiDU2iAyMDE3xOoxMdTCMjnI1aOsz8LO5zg6MTWjrFdhbmcsIEppYW4gSg0KPiA+ID4g PiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiDQtA0KPiA+ID4gPiA+ID4g PiA+ILXAo7oNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJdCdzIGluIHRo ZSBEeGVJcGxQZWltLg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEJ5IHRo ZSB3YXksIHRoZXJlJ3MgYW4gaXNzdWUgaW4gdGhpcyBwYXRjaC4gSSBmb3Jnb3QgdG8gcHJvdGVj dCBwYWdlDQo+ID4gdGFibGUNCj4gPiA+ID4gZm9yDQo+ID4gPiA+ID4gPiA+IDMyLQ0KPiA+ID4g PiA+ID4gPiA+IGJpdCBtb2RlLg0KPiA+ID4gPiA+ID4gPiA+ID4gU28gdGhpcyBwYXRjaCB3b3Jr cyBvbmx5IGZvciA2NC1iaXQgbW9kZS4gSSdsbCBhZGQgaXQgaW4gdjIgcGF0Y2guDQo+ID4gPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gPiA+ID4gPiA+ID4gPj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPiA+ID4gPiA+ID4gPiA+ PiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDI5LCAyMDE3IDY6NTYgUE0NCj4gPiA+ID4gPiA+ ID4gPiA+PiBUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ ID4gPiA+ID4gPj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiA+ID4gPiA+ID4g Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMC8yXSBFbmFibGUgcGFnZSB0YWJsZSB3cml0 ZQ0KPiBwcm90ZWN0aW9uDQo+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+PiBJ cyB0aGlzIGNvZGUgaW4gQ1BVIGRyaXZlcj8NCj4gPiA+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ ID4gPiA+ID4+IHRoYW5rIHlvdSENCj4gPiA+ID4gPiA+ID4gPiA+PiBZYW8sIEppZXdlbg0KPiA+ ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4g 1NogMjAxN8TqMTHUwjI5yNWjrM/Czuc2OjI0o6xXYW5nLCBKaWFuIEoNCj4gPiA+ID4gPiA+IDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4g0LQNCj4gPiA+ID4gPiA+ID4g PiA+PiC1wKO6DQo+ID4gPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPiA+ID4gPj4+IFllcywg SSB2YWxpZGF0ZWQgdGhlbSBtYW51YWxseSB3aXRoIEpUQUcgZGVidWcgdG9vbC4NCj4gPiA+ID4g PiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4gaWYgKChMM1BhZ2VUYWJsZVtJbmRleDNd ICYgSUEzMl9QR19QUykgIT0gMCkgew0KPiA+ID4gPiA+ID4gPiA+ID4+PiAgLy8gMUcgcGFnZS4g U3BsaXQgdG8gMk0uDQo+ID4gPiA+ID4gPiA+ID4gPj4+ICBMMlBhZ2VUYWJsZSA9IEFsbG9jYXRl UGFnZXMgKDEpOw0KPiA+ID4gPiA+ID4gPiA+ID4+PiAgQVNTRVJUIChMMlBhZ2VUYWJsZSAhPSBO VUxMKTsNCj4gPiA+ID4gPiA+ID4gPiA+Pj4gICBQaHlzaWNhbEFkZHJlc3MgPSBMM1BhZ2VUYWJs ZVtJbmRleDNdICYNCj4gPiA+ID4gPiA+ID4gUEFHSU5HXzFHX0FERFJFU1NfTUFTS182NDsNCj4g PiA+ID4gPiA+ID4gPiA+Pj4gICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBFRklfUEFHRV9TSVpF L3NpemVvZiAoVUlOVDY0KTsNCj4gKytJbmRleCkNCj4gPiA+IHsNCj4gPiA+ID4gPiA+ID4gPiA+ Pj4gICAgTDJQYWdlVGFibGVbSW5kZXhdID0gUGh5c2ljYWxBZGRyZXNzICB8IEFkZHJlc3NFbmNN YXNrIHwNCj4gPiA+ID4gPiA+ID4gPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgSUEzMl9Q R19QUyB8IElBMzJfUEdfUCB8DQo+ID4gPiA+ID4gSUEzMl9QR19SVzsNCj4gPiA+ID4gPiA+ID4g PiA+Pj4gICAgUGh5c2ljYWxBZGRyZXNzICs9IFNJWkVfMk1COw0KPiA+ID4gPiA+ID4gPiA+ID4+ PiAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4+PiAgTDNQYWdlVGFibGVbSW5kZXgzXSA9IChVSU5UNjQp IChVSU5UTikgTDJQYWdlVGFibGUgfA0KPiA+ID4gPiA+ID4gPiBBZGRyZXNzRW5jTWFzayB8DQo+ ID4gPiA+ID4gPiA+ID4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJQTMyX1BHX1AgfA0KPiA+ID4gPiA+ID4gPiBJQTMyX1BHX1JXOw0KPiA+ID4gPiA+ID4gPiA+ ID4+PiAgU2V0UGFnZVJlYWRPbmx5IChQYWdlVGFibGVCYXNlLA0KPiA+ID4gPiA+ID4gPiA+ID4+ IChFRklfUEhZU0lDQUxfQUREUkVTUykoVUlOVE4pTDJQYWdlVGFibGUpOw0KPiA+ID4gPiA+ID4g PiA+ID4+PiB9DQo+ID4gPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPiA+ID4gPj4+IFRoZSBu ZXdseSBhbGxvY2F0ZWQgcGFnZSB0YWJsZSBpcyBzZXQgaW4gdGhlIFNldFBhZ2VSZWFkT25seSgp DQo+ID4gaXRzZWxmDQo+ID4gPiA+ID4gPiA+ID4gPj4gcmVjdXJzaXZlbHksIGxpa2UNCj4gPiA+ ID4gPiA+ID4gPiA+Pj4gYWJvdmUgY29kZSBpbiB3aGljaCBMMlBhZ2VUYWJsZSBpcyBhbGxvY2F0 ZWQgYW5kIHRoZW4gc2V0IGl0IHRvDQo+ID4gYmUNCj4gPiA+ID4gPiA+ID4gcmVhZC1vbmx5DQo+ ID4gPiA+ID4gPiA+ID4gPj4gYWZ0ZXINCj4gPiA+ID4gPiA+ID4gPiA+Pj4gaW5pdGlhbGl6aW5n IHRoZSB0YWJsZSBjb250ZW50Lg0KPiA+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+IEZy b206IFlhbywgSmlld2VuDQo+ID4gPiA+ID4gPiA+ID4gPj4+PiBTZW50OiBXZWRuZXNkYXksIE5v dmVtYmVyIDI5LCAyMDE3IDU6MTYgUE0NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+IFRvOiBXYW5nLCBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+IENjOiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4gU3ViamVjdDogUmU6 IFtlZGsyXSBbUEFUQ0ggMC8yXSBFbmFibGUgcGFnZSB0YWJsZSB3cml0ZQ0KPiA+ID4gcHJvdGVj dGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+IFRoYW5rcy4N Cj4gPiA+ID4gPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4gPiA+ID4gPj4+PiBNYXkgSSBrbm93IGlm IHRoaXMgaXMgdmFsaWRhdGVkIGluIHVlZmkgc2hlbGwsIHRoYXQgYWxsIHBhZ2UgdGFibGUgaXMN Cj4gPiA+ID4gPiA+IHJlYWRvbmx5Pw0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPiA+ ID4gPiA+Pj4+IEkgZGlkIG5vdCBmaW5kIHRoZSBjb2RlIHRvIHNldCBuZXcgYWxsb2NhdGVkIHNw bGl0IHBhZ2UgdG8gYmUNCj4gPiA+ID4gcmVhZG9ubHkuDQo+ID4gPiA+ID4gPiBDYW4NCj4gPiA+ ID4gPiA+ID4gPiB5b3UNCj4gPiA+ID4gPiA+ID4gPiA+Pj4+IGdpdmUgbWUgYSBoYW5kIG9uIHRo YXQ/DQo+ID4gPiA+ID4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4gdGhhbmsgeW91 IQ0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4gWWFvLCBKaWV3ZW4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+ DQo+ID4gPiA+ID4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4+INTaIDIwMTfE6jEx 1MIyOcjVo6zPws7nNDo0N6OsSmlhbiBKIFdhbmcNCj4gPiA+ID4gPiA+ID4gPGppYW4uai53YW5n QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+PiDQtA0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4g tcCjug0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPiA+ID4gPj4+Pj4gV3JpdGUg UHJvdGVjdCBmZWF0dXJlIChDUjAuV1ApIGlzIGFsd2F5cyBlbmFibGVkIGluIGRyaXZlcg0KPiA+ ID4gPiA+ID4gPiA+ID4+Pj4gVWVmaUNwdVBrZy9DcHVEeGUuDQo+ID4gPiA+ID4gPiA+ID4gPj4+ Pj4gQnV0IHRoZSBtZW1vcnkgcGFnZXMgdXNlZCBmb3IgcGFnZSB0YWJsZSBhcmUgbm90IHNldCBh cw0KPiA+ID4gcmVhZC1vbmx5DQo+ID4gPiA+ID4gaW4NCj4gPiA+ID4gPiA+ID4gdGhlDQo+ID4g PiA+ID4gPiA+ID4gPj4+PiBkcml2ZXINCj4gPiA+ID4gPiA+ID4gPiA+Pj4+PiBEeGVJcGxQZWlt LCBhZnRlciB0aGUgcGFnaW5nIGlzIHNldHVwLiBUaGlzIG1pZ2h0IGplb3BhcmRpemUNCj4gdGhl DQo+ID4gPiA+IHBhZ2UNCj4gPiA+ID4gPiA+ID4gPiB0YWJsZQ0KPiA+ID4gPiA+ID4gPiA+ID4+ Pj4+IGludGVncml0eSBpZiB0aGVyZSdzIGJ1ZmZlciBvdmVyZmxvdyBvY2N1cmVkIGluIG90aGVy IHBhcnQgb2YNCj4gPiA+IHN5c3RlbS4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+Pg0KPiA+ID4gPiA+ ID4gPiA+ID4+Pj4+IFRoaXMgcGF0Y2ggc2VyaWVzIHdpbGwgY2hhbmdlIHRoaXMgc2l0dWF0aW9u IGJ5IGNsZWFyaW5nIFIvVyBiaXQNCj4gPiBpbg0KPiA+ID4gPiA+IHBhZ2UNCj4gPiA+ID4gPiA+ ID4gPiA+PiBhdHRyaWJ1dGUNCj4gPiA+ID4gPiA+ID4gPiA+Pj4+PiBvZiB0aGUgcGFnZXMgdXNl ZCBhcyBwYWdlIHRhYmxlLg0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPiA+ID4g Pj4+Pj4gVmFsaWRhdGlvbiB3b3JrcyBpbmNsdWRlIGJvb3RpbmcgV2luZG93cyAoMTAvc2VydmVy IDIwMTYpDQo+ID4gYW5kDQo+ID4gPiA+ID4gTGludXgNCj4gPiA+ID4gPiA+ID4gPiA+Pj4+IChG ZWRvcmEvVWJ1bnR1KQ0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4+IG9uIE9WTUYgYW5kIEludGVsIHJl YWwgcGxhdGZvcm0uDQo+ID4gPiA+ID4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+ PiBKaWFuIEogV2FuZyAoMik6DQo+ID4gPiA+ID4gPiA+ID4gPj4+Pj4gVWVmaUNwdVBrZy9DcHVE eGU6IENoZWNrIENSMC5XUCBiZWZvcmUgY2hhbmdpbmcgcGFnZQ0KPiA+IHRhYmxlDQo+ID4gPiA+ ID4gPiA+ID4gPj4+Pj4gTWRlTW9kdWxlUGtnL0R4ZUlwbDogTWFyayBwYWdlIHRhYmxlIGFzIHJl YWQtb25seQ0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPiA+ID4gPj4+Pj4gTWRl TW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9YNjQvVmlydHVhbE1lbW9yeS5jIHwNCj4gMTY2DQo+ ID4gPiA+ID4gPiA+ID4gPj4+PiArKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ID4g PiA+ID4+Pj4+IE1kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnku aCB8DQo+IDE0DQo+ID4gPiArKw0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4+IFVlZmlDcHVQa2cvQ3B1 RHhlL0NwdVBhZ2VUYWJsZS5jICAgICAgICAgICAgICAgICB8ICA2NQ0KPiA+ID4gPiA+ID4gPiAr KysrKysrKy0NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+PiAzIGZpbGVzIGNoYW5nZWQsIDI0MSBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ ID4gPiA+ID4gPj4+Pj4gLS0NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+PiAyLjE0LjEud2luZG93cy4x DQo+ID4gPiA+ID4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+Pj4+PiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4gPiA+ID4gPiA+ID4+ Pj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gPiA+ID4gPiA+ID4gPj4+Pj4gZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gPiA+ID4gPiA+Pj4+PiBodHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg==