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.65, mailfrom: chasel.chiu@intel.com) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by groups.io with SMTP; Wed, 25 Sep 2019 18:56:27 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Sep 2019 18:56:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,549,1559545200"; d="scan'208";a="390432389" Received: from pgsmsx102.gar.corp.intel.com ([10.221.44.80]) by fmsmga006.fm.intel.com with ESMTP; 25 Sep 2019 18:56:25 -0700 Received: from pgsmsx112.gar.corp.intel.com ([169.254.3.2]) by PGSMSX102.gar.corp.intel.com ([169.254.6.203]) with mapi id 14.03.0439.000; Thu, 26 Sep 2019 09:52:14 +0800 From: "Chiu, Chasel" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Wu, Hao A" , "Dong, Eric" , "Desimone, Nathaniel L" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg: Enable/Disable S3BootScript dynamically. Thread-Topic: [edk2-devel] [PATCH v2] MdeModulePkg: Enable/Disable S3BootScript dynamically. Thread-Index: AQHVc9MVNXF72WGPiUapQCPDKX+6qqc9LL7A Date: Thu, 26 Sep 2019 01:52:13 +0000 Message-ID: <3C3EFB470A303B4AB093197B6777CCEC504E2AEC@PGSMSX112.gar.corp.intel.com> References: <20190925092135.16664-1-chasel.chiu@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTg2ZGI0MjAtMWRiOC00NTM1LWEzMmItZTgwY2Q4MGQ1M2ZjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiSzBcL3VRTnVFNHVpaUJpejFUWkJwNUw1YU9mV0hUQzhRSXc5TmhVdlJpVkFoS25aR2MzY1wvcU9tenVUWFBaTEp1In0= x-ctpclassification: CTP_NT x-originating-ip: [172.30.20.205] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpUaGFua3MgTGFzemxvIGZvciB5b3VyIHRpbWUgb24gZGV0YWlsIHJldmlld2luZyBhbmQgdmVy eSBnb29kIGZlZWRiYWNrcyENClBsZWFzZSBzZWUgbXkgcmVwbHkgaW5saW5lIGJlbG93Lg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgMjYsIDIwMTkgMjo1OCBB TQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVA aW50ZWwuY29tPg0KPiBDYzogV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBEb25nLCBF cmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsNCj4gRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxuYXRo YW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA8bGltaW5nLmdhb0Bp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBNZGVNb2R1 bGVQa2c6IEVuYWJsZS9EaXNhYmxlDQo+IFMzQm9vdFNjcmlwdCBkeW5hbWljYWxseS4NCj4gDQo+ IE9uIDA5LzI1LzE5IDExOjIxLCBDaGl1LCBDaGFzZWwgd3JvdGU6DQo+ID4gUkVGOiBodHRwczov L2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTINCj4gPg0KPiA+IElu IGJpbmFyeSBtb2RlbCB0aGUgc2FtZSBiaW5hcnkgbWF5IGhhdmUgdG8gc3VwcG9ydCBib3RoDQo+ ID4gUzMgZW5hYmxlZCBhbmQgZGlzYWJsZWQgc2NlbmFyaW9zLCBob3dldmVyIG5vdCBhbGwgRFhF IGRyaXZlcnMgbGlua2luZw0KPiA+IFBpRHhlUzNCb290U2NyaXB0TGliIGNhbiByZXR1cm4gZXJy b3IgdG8gaW52b2tlIGxpYnJhcnkgREVTVFJVQ1RPUiBmb3INCj4gPiByZWxlYXNpbmcgcmVzb3Vy Y2UuDQo+IA0KPiBUaGFua3MsIHRoaXMgc291bmRzIGJldHRlci4gTW9yZSBjb21tZW50czoNCj4g DQo+ID4gVG8gc3VwcG9ydCB0aGlzIHVzYWdlIG1vZGVsIGJlbG93IFBDRCBpcyB1c2VkIHRvIHNr aXAgUzNCb290U2NyaXB0DQo+ID4gZnVuY3Rpb25zIHdoZW4gUENEIHNldCB0byBGQUxTRToNCj4g PiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RBY3BpUzNFbmFibGUNCj4gPg0K PiA+IFRlc3Q6IFZlcmlmaWVkIG9uIGludGVybmFsIHBsYXRmb3JtIGFuZCBTM0Jvb3RTY3JpcHQN Cj4gPiAgICAgICBmdW5jdGlvbnMgY2FuIGJlIHNraXBwZWQgYnkgUENEIGR1cmluZyBib290IHRp bWUuDQo+ID4NCj4gPiBDYzogSGFvIEEgV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPiBDYzog RXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+IENjOiBOYXRlIERlU2ltb25lIDxu YXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+ID4gQ2M6IExpbWluZyBHYW8gPGxpbWlu Zy5nYW9AaW50ZWwuY29tPg0KPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t Pg0KPiA+IFNpZ25lZC1vZmYtYnk6IENoYXNlbCBDaGl1IDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+ DQo+ID4gLS0tDQo+ID4gIE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1BpRHhlUzNCb290U2NyaXB0TGli L0Jvb3RTY3JpcHRTYXZlLmMgICAgICAgfA0KPiAxMyArKysrKysrKysrKystDQo+ID4gIE1kZU1v ZHVsZVBrZy9MaWJyYXJ5L1BpRHhlUzNCb290U2NyaXB0TGliL0R4ZVMzQm9vdFNjcmlwdExpYi5p bmYgfA0KPiA0DQo+ID4gKysrLQ0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9NZGVNb2R1bGVQ a2cvTGlicmFyeS9QaUR4ZVMzQm9vdFNjcmlwdExpYi9Cb290U2NyaXB0U2F2ZS5jDQo+ID4gYi9N ZGVNb2R1bGVQa2cvTGlicmFyeS9QaUR4ZVMzQm9vdFNjcmlwdExpYi9Cb290U2NyaXB0U2F2ZS5j DQo+ID4gaW5kZXggYzExNjcyNzUzMS4uYzUzNTMxMTlmNyAxMDA2NDQNCj4gPiAtLS0gYS9NZGVN b2R1bGVQa2cvTGlicmFyeS9QaUR4ZVMzQm9vdFNjcmlwdExpYi9Cb290U2NyaXB0U2F2ZS5jDQo+ ID4gKysrIGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvUGlEeGVTM0Jvb3RTY3JpcHRMaWIvQm9vdFNj cmlwdFNhdmUuYw0KPiA+IEBAIC0xLDcgKzEsNyBAQA0KPiA+ICAvKiogQGZpbGUNCj4gPiAgICBT YXZlIHRoZSBTMyBkYXRhIHRvIFMzIGJvb3Qgc2NyaXB0Lg0KPiA+DQo+ID4gLSAgQ29weXJpZ2h0 IChjKSAyMDA2IC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiByZXNl cnZlZC48QlI+DQo+ID4gKyAgQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxOSwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMNCj4gPiArIHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICAgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiBAQCAtMTI0 LDYgKzEyNCw3IEBAIFZPSUQNCj4gKm1SZWdpc3RyYXRpb25TbW1SZWFkeVRvTG9jayA9IE5VTEw7 DQo+ID4gIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgIG1TM0Jvb3RTY3JpcHRUYWJs ZUFsbG9jYXRlZCA9DQo+IEZBTFNFOw0KPiA+ICBCT09MRUFODQo+IG1TM0Jvb3RTY3JpcHRUYWJs ZVNtbUFsbG9jYXRlZCA9IEZBTFNFOw0KPiA+ICBFRklfU01NX1NZU1RFTV9UQUJMRTIgICAgICAg ICAgICAqbUJvb3RTY3JpcHRTbXN0ID0gTlVMTDsNCj4gPiArQk9PTEVBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgbUFjcGlTM0VuYWJsZSA9IFRSVUU7DQo+ID4NCj4gPiAgLyoqDQo+ID4gICAg VGhpcyBpcyBhbiBpbnRlcm5hbCBmdW5jdGlvbiB0byBhZGQgYSB0ZXJtaW5hdGUgbm9kZSB0aGUg ZW50cnksDQo+ID4gcmVjYWxjdWxhdGUgdGhlIHRhYmxlIEBAIC00MzYsNiArNDM3LDExIEBAIFMz Qm9vdFNjcmlwdExpYkluaXRpYWxpemUgKA0KPiA+ICAgIEJPT0xFQU4gICAgICAgICAgICAgICAg ICAgICAgICBJblNtbTsNCj4gPiAgICBFRklfUEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgQnVm ZmVyOw0KPiA+DQo+ID4gKyAgaWYgKCFQY2RHZXRCb29sIChQY2RBY3BpUzNFbmFibGUpKSB7DQo+ ID4gKyAgICBtQWNwaVMzRW5hYmxlID0gRkFMU0U7DQo+ID4gKyAgICByZXR1cm4gUkVUVVJOX1NV Q0NFU1M7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiAgICBTM1RhYmxlUHRyID0NCj4gKFNDUklQVF9U QUJMRV9QUklWQVRFX0RBVEEqKShVSU5UTilQY2RHZXQ2NChQY2RTM0Jvb3RTY3JpcHRUYWJsZVBy aXZhdA0KPiBlRGF0YVB0cik7DQo+ID4gICAgLy8NCj4gPiAgICAvLyBUaGUgQm9vdCBzY3JpcHQg cHJpdmF0ZSBkYXRhIGlzIG5vdCBiZSBpbml0aWFsaXplZC4gY3JlYXRlIGl0DQo+IA0KPiAoMSkg SSB0aGluayB0aGF0LCBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLCBpdCB3b3VsZCBoZWxwIGlmIHdl IGFkZGVkIGEgc2ltaWxhcg0KPiBjaGVjayAob24gbUFjcGlTM0VuYWJsZSkgdG8gUzNCb290U2Ny aXB0TGliRGVpbml0aWFsaXplKCkgYXMgd2VsbC4NCj4gDQo+IEkgdW5kZXJzdGFuZCB0aGF0LCBy aWdodCBub3csIGlmIHRoZSBjb25zdHJ1Y3RvciBpcyBzaG9ydC1jaXJjdWl0ZWQsIHRoZW4gdGhl DQo+IGRlc3RydWN0b3Igd2lsbCBlbmQgdXAgZG9pbmcgbm90aGluZy4gQnV0IEkgdGhpbmsgaXQg d291bGQgbWFrZSBtYWludGVuYW5jZQ0KPiBlYXNpZXIgaWYgdGhlIGRlc3RydWN0b3Igd2VyZSBz aG9ydC1jaXJjdWl0ZWQgZXhwbGljaXRseSBhcyB3ZWxsLg0KPiANCg0KQWdyZWUuIEkgd2lsbCBh ZGQgY2hlY2sgdG8gZGVzdHJ1Y3Rvci4NCg0KDQo+IA0KPiA+IEBAIC04MTAsNiArODE2LDExIEBA IFMzQm9vdFNjcmlwdEdldEVudHJ5QWRkQWRkcmVzcyAoICB7DQo+ID4gICAgVUlOVDgqICAgICAg ICAgICAgICAgICAgICAgICAgIE5ld0VudHJ5UHRyOw0KPiA+DQo+ID4gKyAgaWYgKCFtQWNwaVMz RW5hYmxlKSB7DQo+ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJTa2lwIFMzQm9vdFNjcmlw dCBiZWNhdXNlIEFDUEkgUzMNCj4gZGlzYWJsZWQuXG4iKSk7DQo+ID4gKyAgICByZXR1cm4gTlVM TDsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICAgIGlmIChtUzNCb290U2NyaXB0VGFibGVQdHItPlNt bUxvY2tlZCkgew0KPiA+ICAgICAgLy8NCj4gPiAgICAgIC8vIFdlIG5lZWQgY2hlY2sgSW5TbW0s IGJlY2F1c2UgYWZ0ZXIgU21tUmVhZHlUb0xvY2ssIG9ubHkNCj4gU01NIGRyaXZlciBpcyBhbGxv d2VkIHRvIHdyaXRlIGJvb3Qgc2NyaXB0Lg0KPiANCj4gKDIpIEkgd291bGQgbGlrZSB0byBzZWUg dGhlIGRlYnVnIG1lc3NhZ2UgdXBkYXRlZDoNCj4gDQo+ICgyYSkgcGxlYXNlIGxvZywgYXMgcGFy dCBvZiB0aGUgbWVzc2FnZSwgd2l0aCAiJWEiLCB0aGUgImdFZmlDYWxsZXJCYXNlTmFtZSINCj4g dmFyaWFibGUuIEEgbGlicmFyeSBpbnN0YW5jZSBjYW4gYmUgbGlua2VkIGludG8gbXVsdGlwbGUg bW9kdWxlcywgYW5kDQo+IGtub3dpbmcgdGhlIG1vZHVsZSBuYW1lIGlzIHVzZWZ1bC4NCj4gDQoN Clllcy4gd2lsbCBhZGQgbW9kdWxlIG5hbWUgaW50byBkZWJ1ZyBtZXNzYWdlLg0KDQo+ICgyYikg SSB0aGluayB3ZSBzaG91bGQgYWRkIHRoZSBkZWJ1ZyBtZXNzYWdlIHRvIHRoZSBjb25zdHJ1Y3Rv ciBmdW5jdGlvbg0KPiBpbnN0ZWFkLiBQbGVhc2Ugc2VlIHRoZSBtZXNzYWdlIHRoYXQgd2UgYWxy ZWFkeSBoYXZlIGluIHRoZSBkZXN0cnVjdG9yLg0KPiANCj4gTWFpbmx5LCBhIERFQlVHX0lORk8g bWVzc2FnZSBpcyB0b28gbG91ZCBmb3IgYSB1dGlsaXR5IGZ1bmN0aW9uIHRoYXQgbWF5IGJlDQo+ IGNhbGxlZCBzZXZlcmFsIHRpbWVzLiBTbywgaWYgd2Uga2VlcCB0aGUgbWVzc2FnZSBhdCBERUJV R19JTkZPLCBpdCBzaG91bGQgYmUNCj4gbW92ZWQgaW50byB0aGUgY29uc3RydWN0b3IuIENvbnZl cnNlbHksIGlmIHlvdSB3YW50IHRvIGtlZXAgdGhlIG1lc3NhZ2UgaW4NCj4gUzNCb290U2NyaXB0 R2V0RW50cnlBZGRBZGRyZXNzKCksIHRoZW4gaXQgc2hvdWxkIGJlIGRvd25ncmFkZWQgdG8NCj4g REVCVUdfVkVSQk9TRS4NCj4gDQoNCkkgaGF2ZSBxdWVzdGlvbiBmb3IgYWRkaW5nIGRlYnVnIG1l c3NhZ2UgaW4gY29uc3RydWN0b3IuDQpEZWJ1Z0xpYiBtaWdodCBhbHNvIGhhdmUgY29uc3RydWN0 b3IgYW5kIGFzIGZhciBhcyBJIGtub3cgY3VycmVudGx5IHdlIGRvIG5vdCBoYXZlIG1lY2hhbmlz bSB0byBlbnN1cmUgdGhhdCBEZWJ1Z0xpYiBjb25zdHJ1Y3RvciB3aWxsIGJlIGV4ZWN1dGVkIGVh cmxpZXIgdGhhbiBTM0Jvb3RTY3JpcHRMaWIgY29uc3RydWN0b3IuDQpPciBoYXZlIHdlIGFkZCB0 aGUgbWVjaGFuaXNtIGFscmVhZHk/IElmIHNvIEkgaGF2ZSBubyBjb25jZXJuIHRvIG1vdmUgZGVi dWcgbWVzc2FnZSB0byBjb25zdHJ1Y3Rvci4NCg0KREVCVUdfVkVSQk9TRSBzb3VuZHMgbGlrZSBn b29kIGlkZWEgYnV0IG1vc3Qgb2YgdGhlIHBsYXRmb3JtcyBieSBkZWZhdWx0IGRpc2FibGVkIGl0 IGFuZCB3aWxsIG5vdCBzZWUgdGhpcyBtZXNzYWdlLg0KSG93IGFib3V0IGFkZGluZyBhICJtRGVi dWdNZXNzYWdlQWxyZWFkeVByaW50ZWQiIHRvIGNvbnRyb2wgdGhlIGRlYnVnIG1lc3NhZ2Ugb25s eSBzaG93IG9uY2UgcGVyIG1vZHVsZSwgd2hhdCBkbyB5b3UgdGhpbms/DQoNCg0KPiANCj4gPiBk aWZmIC0tZ2l0DQo+ID4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9QaUR4ZVMzQm9vdFNjcmlwdExp Yi9EeGVTM0Jvb3RTY3JpcHRMaWIuaW5mDQo+ID4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9QaUR4 ZVMzQm9vdFNjcmlwdExpYi9EeGVTM0Jvb3RTY3JpcHRMaWIuaW5mDQo+ID4gaW5kZXggNTE3ZWE2 OTU2OC4uZmExMzliMDNmZiAxMDA2NDQNCj4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9Q aUR4ZVMzQm9vdFNjcmlwdExpYi9EeGVTM0Jvb3RTY3JpcHRMaWIuaW5mDQo+ID4gKysrIGIvTWRl TW9kdWxlUGtnL0xpYnJhcnkvUGlEeGVTM0Jvb3RTY3JpcHRMaWIvRHhlUzNCb290U2NyaXB0TGli LmluZg0KPiA+IEBAIC0xLDcgKzEsNyBAQA0KPiA+ICAjIyBAZmlsZQ0KPiA+ICAjIERYRSBTMyBi b290IHNjcmlwdCBMaWJyYXJ5Lg0KPiA+ICAjDQo+ID4gLSMgQ29weXJpZ2h0IChjKSAyMDA2IC0g MjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiByZXNlcnZlZC48QlI+DQo+ ID4gKyMgQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMNCj4gPiArcmVzZXJ2ZWQuPEJSPg0KPiA+ICAjDQo+ID4gICMgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgICMgQEAgLTY1LDQgKzY1LDYgQEANCj4gPiAg ICAjIyBTT01FVElNRVNfUFJPRFVDRVMNCj4gPg0KPiBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkUzNCb290U2NyaXB0VGFibGVQcml2YXRlU21tRGF0YVB0cg0KPiA+DQo+IGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTM0Jvb3RTY3JpcHRSdW50aW1lVGFibGVSZXNl cnZlUGENCj4gZ2VOdW1iZXIgICAjIyBDT05TVU1FUw0KPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dU b2tlblNwYWNlR3VpZC5QY2RBY3BpUzNFbmFibGUNCj4gIyMgQ09OU1VNRVMNCj4gPiArDQo+IA0K PiAoMykgUGxlYXNlIGRvIG5vdCBhZGQgdGhlIHN1cGVyZmx1b3VzIGVtcHR5IGxpbmUuDQo+IA0K DQpTb3JyeSBmb3IgdGhpcywgSSB3aWxsIGNvcnJlY3QgaXQgYW5kIGJlIG1vcmUgY2FyZWZ1bCBp biB0aGUgZm9sbG93aW5nIGNvZGUgcmV2aWV3LiAobWlnaHQgUGF0Y2hDaGVjay5weSBiZSBlbmhh bmNlZCB0byBjYXB0dXJlIHRoaXMga2luZCBvZiBjb2Rpbmcgc3R5bGUgaXNzdWU/KQ0KDQoNCj4g VGhhbmtzDQo+IExhc3psbw0K