From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Wed, 10 Jul 2019 21:05:12 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jul 2019 21:05:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,476,1557212400"; d="scan'208";a="167914752" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga007.fm.intel.com with ESMTP; 10 Jul 2019 21:05:10 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 10 Jul 2019 21:05:10 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 10 Jul 2019 21:05:10 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.110]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.240]) with mapi id 14.03.0439.000; Thu, 11 Jul 2019 12:05:08 +0800 From: "Ni, Ray" To: "Kinney, Michael D" , 'Laszlo Ersek' , "'devel@edk2.groups.io'" , "Dong, Eric" CC: 'Leif Lindholm' , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v2 2/3] MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging Thread-Topic: [edk2-devel] [PATCH v2 2/3] MdePkg/BaseLib.h: Update IA32_CR4 structure for 5-level paging Thread-Index: AQHVMWw7Y8JzUPbuwEeuz+s6JMI35qbBgacwgAIcBYCAACeLgIABAYjQgAAQuMA= Date: Thu, 11 Jul 2019 04:05:08 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C22232D@SHSMSX104.ccr.corp.intel.com> References: <20190703065416.116816-1-ray.ni@intel.com> <20190703065416.116816-3-ray.ni@intel.com> <23baa040-63a2-3d8f-f75c-91b1d2c0e3ac@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5C222153@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C222153@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLCBNaWtlLA0KDQpBbiB1cGRhdGUgdG8gbXkgcmV2ZXJ0IHByb3Bvc2FsLCBJIHdpbGwg b25seSByZXZlcnQgdGhlIGJlbG93IDIgcGF0Y2hlczoNCg0KN2M1MDEwYzdmODhiNzkwZjQ1MjRj NGE1MzExODE5ZTNhZjVlMjc1Mg0KKiBNZGVQa2cvQmFzZUxpYi5oOiBVcGRhdGUgSUEzMl9DUjQg c3RydWN0dXJlIGZvciA1LWxldmVsIHBhZ2luZw0KDQo3MzY1ZWIyYzhjZjFkNzExMjMzMGQwOTkx OGMwYzY3ZThkMGI4MjdhDQoqIFVlZmlDcHVQa2cvUGlTbW1DcHU6IEVuYWJsZSA1IGxldmVsIHBh Z2luZyB3aGVuIENQVSBzdXBwb3J0cw0KDQoNCldpbGwga2VlcCB0aGUgYmVsb3cgcGF0Y2ggaW4g Z2l0aHViLg0KN2U1NmY4OTI4ZDg0NjFkODIwYTgxYTUwOTA4YWRmNjQ4Mjc5ZjFkYw0KKiBVZWZp Q3B1UGtnL1BpU21tQ3B1OiBDaGFuZ2UgdmFyaWFibGUgbmFtZXMgYW5kIGNvbW1lbnRzIHRvIGZv bGxvdyBTRE0NCg0KSXMgaXQgZ29vZCB0byB5b3U/DQpPciB0aGUgcmV2ZXJ0IHByb2Nlc3MgbmVl ZHMgdG8gcmV2ZXJ0IHdob2xlIHBhdGNoIHNlcmllcz8NCg0KQ2FuIHlvdSBvciBzb21lb25lIGVs c2UgZ3VpZGUgbWUgd2hlcmUgdGhlIHJldmVydCBwcm9jZXNzIGlzIGRvY3VtZW50ZWQ/DQoNClRo YW5rcywNClJheQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5pLCBS YXkNCj4gU2VudDogVGh1cnNkYXksIEp1bHkgMTEsIDIwMTkgMTE6MjUgQU0NCj4gVG86IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IExhc3psbyBFcnNlaw0K PiA8bGVyc2VrQHJlZGhhdC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgRG9uZywgRXJpYw0K PiA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhv bG1AbGluYXJvLm9yZz47IEdhbywgTGltaW5nDQo+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4g U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMi8zXSBNZGVQa2cvQmFzZUxpYi5o OiBVcGRhdGUNCj4gSUEzMl9DUjQgc3RydWN0dXJlIGZvciA1LWxldmVsIHBhZ2luZw0KPiANCj4g TGFzemxvLCBNaWtlLA0KPiBTb3JyeSBJIGRpZCB2aW9sYXRlIHRoZSBwcm9jZXNzLg0KPiBJIGhh ZCB0d28gYXNzdW1wdGlvbnMgd2hpY2ggbGVkIG1lIHZpb2xhdGUgdGhlIHByb2Nlc3M6DQo+IDEu IFJldmlld2VkLWJ5IGZyb20gVWVmaUNwdVBrZyBtYWludGFpbmVycyBvbiB0aGlzIElBMzJfQ1I0 IGNoYW5nZSBpcw0KPiBtb3JlIGltcG9ydGFudA0KPiAgICAgdGhhbiB0aGF0IGZyb20gTWRlUGtn IG1haW50YWluZXJzLiBJbiBhbm90aGVyIHdvcmQsIEkgdGhvdWdodCBpZg0KPiBVZWZpQ3B1UGtn IG1haW50YWluZXJzDQo+ICAgICBhZ3JlZSB3aXRoIHRoaXMgY2hhbmdlLCBNZGVQa2cgbWFpbnRh aW5lcnMgc2hvdWxkIGhhdmUgbm8gY29uY2VybnMuDQo+ICAgICAoSXQncyBhIHdyb25nIGFzc3Vt cHRpb24uIE1kZVBrZyBtYWludGFpbmVycyBtYXkgaGF2ZSBzb21lIGdlbmVyYWwNCj4gc3VnZ2Vz dGlvbnMsIGUuZy46DQo+ICAgICBuYW1lLCBsb2NhdGlvbiwgY29tbWVudHMgYW5kIGV0Yy4uKQ0K PiAyLiBUaGlzIGNoYW5nZSBpcyBkaXJlY3RseSBmcm9tIHRoZSBwdWJsaXNoZWQgd2hpdGUgcGFw ZXIgYW5kIHRoZXJlIGlzIG5vDQo+IG90aGVyIG9wdGlvbiByZWdhcmRpbmcNCj4gICAgICB0aGlz IElBMzJfQ1I0IGNoYW5nZS4NCj4gICAgIChJdCdzIGEgd3JvbmcgYXNzdW1wdGlvbi4gTWRlUGtn IG1haW50YWluZXJzIG1heSBoYXZlIHNvbWUgZ2VuZXJhbA0KPiBzdWdnZXN0aW9ucywgZS5nLjoN Cj4gICAgIG5hbWUsIGxvY2F0aW9uLCBjb21tZW50cyBhbmQgZXRjLi4pDQo+IA0KPiBJIGFncmVl IEkgc2hvdWxkIGdldCBSZXZpZXdlZC1ieSB0YWcgZnJvbSBNZGVQa2cgbWFpbnRhaW5lcnMuIE15 DQo+IGFzc3VtcHRpb25zIGFyZSB3cm9uZy4NCj4gDQo+IFRvIHN0cmljdGx5IGZvbGxvdyB0aGUg cHJvY2VzcywgSSB3aWxsOg0KPiAxLiBQb3N0IGEgcGF0Y2ggc2VyaWVzIHRvIHJldmVydCB0aGUg MyBwYXRjaGVzLg0KPiAgICAgIFNpbmNlIHRoaXMgY2hhbmdlIGRvZXNuJ3QgYnJlYWsgYW55IGZ1 bmN0aW9uYWxpdHkgKGRvZXMgYnJlYWsgdGhlIHByb2Nlc3MpLA0KPiBJIHdpbGwgd2FpdCBmb3IN Cj4gICAgICBSZXZpZXdlZC1ieSBmcm9tIGVhY2ggcGFja2FnZSBtYWludGFpbmVyIGFuZCBtYWtl IHN1cmUgcHVzaCB0aGUNCj4gcGF0Y2hlcyBhZnRlciAyNGguDQo+IDIuIEFmdGVyIHN0ZXAgIzEs IHBvc3QgYSBuZXcgcGF0Y2ggc2VyaWVzIHRvIGFkZCB0aGUgMyBwYXRjaGVzIGJhY2sgd2l0aA0K PiBSZXZpZXdlZC1ieSB0YWcgZnJvbQ0KPiAgICAgRXJpYyBhbmQgTWlrZSwgUmVncmVzc2lvbi1U ZXN0ZWQtYnkgZnJvbSB5b3UuDQo+IA0KPiBEbyB5b3UgdGhpbmsgaXQgZm9sbG93cyB0aGUgZXhp c3RpbmcgcHJvY2Vzcz8NCj4gDQo+IFNvcnJ5IGFnYWluIGZvciB0aGlzIHZpb2xhdGlvbi4NCj4g DQo+IFRoYW5rcywNCj4gUmF5DQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gU2VudDogVGh1cnNkYXksIEp1bHkg MTEsIDIwMTkgMzozOSBBTQ0KPiA+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IERvbmcsIEVyaWMNCj4gPiA8ZXJpYy5kb25nQGludGVs LmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+ IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogTGVpZiBMaW5kaG9sbSA8bGVp Zi5saW5kaG9sbUBsaW5hcm8ub3JnPjsgR2FvLCBMaW1pbmcNCj4gPiA8bGltaW5nLmdhb0BpbnRl bC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMi8zXSBNZGVQ a2cvQmFzZUxpYi5oOiBVcGRhdGUNCj4gPiBJQTMyX0NSNCBzdHJ1Y3R1cmUgZm9yIDUtbGV2ZWwg cGFnaW5nDQo+ID4NCj4gPiBMYXN6bG8sDQo+ID4NCj4gPiBJIGFncmVlIHdpdGggeW91ciBmZWVk YmFjay4gIFByb2Nlc3MgbXVzdCBiZSBmb2xsb3dlZC4NCj4gPg0KPiA+IEkgYWxzbyBhZ3JlZSB0 aGF0IGl0IG1heSBtYWtlIHNlbnNlIHRvIGFkZCBzb21lIG1vcmUgbWFpbnRhaW5lcnMgdG8NCj4g PiB0aGUgTWRlUGtnLCBlc3BlY2lhbGx5IGZvciBzb21lIG9mIHRoZSBjb250ZW50IGluIE1kZVBr ZyB0aGF0IGlzDQo+ID4gY2xvc2VseSByZWxhdGVkIHRvIHRoZSBVZWZpQ3B1UGtnIGNvbnRlbnQu DQo+ID4NCj4gPiBJIGhhdmUgcmV2aWV3ZWQgdGhpcyBwYXRjaCB0byB0aGUgQmFzZUxpYi5oLiAg VGhlIG5ldyBMQTU3IGJpdCBhZGRlZA0KPiA+IHRvIElBMzJfQ1I0IG1hdGNoZXMgdGhlIGRvY3Vt ZW50YXRpb24gaW4gdGhlIHdoaXRlIHBhcGVyIHJlZmVyZW5jZWQgaW4NCj4gPiB0aGUgc2VyaWVz Lg0KPiA+DQo+ID4gUmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4gTWlrZQ0KPiA+DQo+ID4N Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBMYXN6bG8gRXJz ZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgSnVs eSAxMCwgMjAxOSAxMDoxNyBBTQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBEb25n LCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+ID4gPHJheS5uaUBpbnRl bC5jb20+DQo+ID4gPiBDYzogTGVpZiBMaW5kaG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3Jn PjsgR2FvLCBMaW1pbmcNCj4gPiA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwgTWlj aGFlbCBEDQo+ID4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MiAyLzNdDQo+ID4gPiBNZGVQa2cvQmFzZUxpYi5o OiBVcGRhdGUgSUEzMl9DUjQgc3RydWN0dXJlIGZvciA1LWxldmVsIHBhZ2luZw0KPiA+ID4NCj4g PiA+IFJheSwgRXJpYywNCj4gPiA+DQo+ID4gPiAoK0xpbWluZywgK01pa2UsICtMZWlmKQ0KPiA+ ID4NCj4gPiA+IE9uIDA3LzA5LzE5IDAzOjA0LCBEb25nLCBFcmljIHdyb3RlOg0KPiA+ID4gPiBS ZXZpZXdlZC1ieTogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+ID4gPg0KPiA+ ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4+IEZyb206IE5pLCBSYXkN Cj4gPiA+ID4+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAzLCAyMDE5IDI6NTQgUE0NCj4gPiA+ID4+ IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMu ZG9uZ0BpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsNCj4gPiA+ID4+IDxsZXJzZWtAcmVkaGF0LmNv bT4NCj4gPiA+ID4+IFN1YmplY3Q6IFtQQVRDSCB2MiAyLzNdIE1kZVBrZy9CYXNlTGliLmg6IFVw ZGF0ZQ0KPiA+ID4gSUEzMl9DUjQgc3RydWN0dXJlDQo+ID4gPiA+PiBmb3IgNS1sZXZlbCBwYWdp bmcNCj4gPiA+ID4+DQo+ID4gPiA+PiA1LWxldmVsIHBhZ2luZyBpcyBkb2N1bWVudGVkIGluIHdo aXRlIHBhcGVyOg0KPiA+ID4gPj4NCj4gPiA+IGh0dHBzOi8vc29mdHdhcmUuaW50ZWwuY29tL3Np dGVzL2RlZmF1bHQvZmlsZXMvbWFuYWdlZC8yYg0KPiA+ID4gLzgwLzUtDQo+ID4gPiA+PiBsZXZl bF9wYWdpbmdfd2hpdGVfcGFwZXIucGRmDQo+ID4gPiA+Pg0KPiA+ID4gPj4gQ29tbWl0IGY4MTEz ZTI1MDAxZTcxNTM5MDEyN2YyM2UyMTk3MjUyY2JkNmQxYTINCj4gPiA+ID4+IGNoYW5nZWQgQ3B1 aWQuaCBhbHJlYWR5Lg0KPiA+ID4gPj4NCj4gPiA+ID4+IFRoaXMgcGF0Y2ggdXBkYXRlcyBJQTMy X0NSNCBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSBMQTU3DQo+ID4gPiBmaWVsZC4NCj4gPiA+ID4+DQo+ ID4gPiA+PiBTaWduZWQtb2ZmLWJ5OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+ PiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+ID4gPj4gUmVncmVzc2lv bi10ZXN0ZWQtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gPiA+PiAt LS0NCj4gPiA+ID4+ICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaCB8IDMgKystDQo+ ID4gPiA+PiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0K PiA+ID4gPj4NCj4gPiA+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jh c2VMaWIuaA0KPiA+ID4gPj4gYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiA+ ID4gPj4gaW5kZXggZWJkN2RkMjc0Yy4uYTIyYmZjOWZhZCAxMDA2NDQNCj4gPiA+ID4+IC0tLSBh L01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUxpYi5oDQo+ID4gPiA+PiArKysgYi9NZGVQa2cv SW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiA+ID4gPj4gQEAgLTUzMjQsNyArNTMyNCw4IEBA IHR5cGVkZWYgdW5pb24gew0KPiA+ID4gPj4gICAgICBVSU5UMzIgIE9TWE1NRVhDUFQ6MTsgICAv Ly88IE9wZXJhdGluZyBTeXN0ZW0NCj4gPiA+IFN1cHBvcnQgZm9yDQo+ID4gPiA+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vLzwgVW5tYXNrZWQgU0lNRA0KPiA+ID4gRmxvYXRpbmcg UG9pbnQNCj4gPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8vPCBFeGNlcHRp b25zLg0KPiA+ID4gPj4gLSAgICBVSU5UMzIgIFJlc2VydmVkXzA6MjsgICAvLy88IFJlc2VydmVk Lg0KPiA+ID4gPj4gKyAgICBVSU5UMzIgIFJlc2VydmVkXzI6MTsgICAvLy88IFJlc2VydmVkLg0K PiA+ID4gPj4gKyAgICBVSU5UMzIgIExBNTc6MTsgICAgICAgICAvLy88IExpbmVhciBBZGRyZXNz DQo+ID4gPiA1N2JpdC4NCj4gPiA+ID4+ICAgICAgVUlOVDMyICBWTVhFOjE7ICAgICAgICAgLy8v PCBWTVggRW5hYmxlDQo+ID4gPiA+PiAgICAgIFVJTlQzMiAgUmVzZXJ2ZWRfMToxODsgIC8vLzwg UmVzZXJ2ZWQuDQo+ID4gPiA+PiAgICB9IEJpdHM7DQo+ID4gPg0KPiA+ID4gSSdtIHNvcnJ5IGJ1 dCB5b3Ugd2lsbCBoYXZlIHRvIHJldmVydCB0aGlzIHBhdGNoIHNlcmllcyBpbW1lZGlhdGVseS4N Cj4gPiA+IE5vbmUgb2YgdGhlIE1kZVBrZyBtYWludGFpbmVycyBoYXZlIGFwcHJvdmVkIHRoaXMg cGF0Y2ggLQ0KPiA+ID4gLSBjb21taXQgN2M1MDEwYzdmODhiLg0KPiA+ID4NCj4gPiA+IEluIHRo ZSBmaXJzdCBwbGFjZSwgTWlrZSBhbmQgTGltaW5nIHdlcmUgbmV2ZXIgQ0MnZCBvbiB0aGUgcGF0 Y2gsIHNvDQo+ID4gPiB0aGV5IG1heSBub3QgaGF2ZSBub3RpY2VkIGl0LCBldmVuLg0KPiA+ID4N Cj4gPiA+IFRoZSBzaXR1YXRpb24gaXMgdmVyeSBzaW1pbGFyIHRvIHRoZSByZWNlbnQgU00zIGNy eXB0byBzZXJpZXMgdGhhdCBJDQo+ID4gPiBoYWQgdG8gcmV2ZXJ0IG15c2VsZi4gQW4gTWRlUGtn IHBhdGNoIHdhcyBwdXNoZWQgd2l0aG91dCBwYWNrYWdlDQo+ID4gPiBvd25lciByZXZpZXcuDQo+ ID4gPg0KPiA+ID4gQ2FuIHlvdSBndXlzIHBsZWFzZSByZXZlcnQgdGhpcyBzZXJpZXMgaW1tZWRp YXRlbHksIHdpdGhvdXQgbWUNCj4gPiA+IGhhdmluZyB0byBkbyBpdD8NCj4gPiA+DQo+ID4gPg0K PiA+ID4gSWYgd2UgdGhpbmsgdGhhdCBNZGVQa2cgc2hvdWxkIGhhdmUgbW9yZSAiTSIgZm9sa3Ms IGluIG9yZGVyIHRvDQo+ID4gPiBkaXN0cmlidXRlIHRoZSByZXZpZXcgbG9hZCBiZXR0ZXIsIHRo ZW4gd2Ugc2hvdWxkIGFkZHJlc3MgdGhhdA0KPiA+ID4gcHJvYmxlbSBmaXJzdC4gSWdub3Jpbmcg cnVsZXMganVzdCBiZWNhdXNlIHRoYXQncyBtb3JlIGNvbnZlbmllbnQgaXMNCj4gPiA+IG5vdCBh Y2NlcHRhYmxlLg0KPiA+ID4NCj4gPiA+IFRoYW5rcywNCj4gPiA+IExhc3psbw0K