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.65; helo=mga03.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (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 4C62B21959CB2 for ; Tue, 11 Sep 2018 19:11:06 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Sep 2018 19:11:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,362,1531810800"; d="scan'208";a="82752516" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga003.jf.intel.com with ESMTP; 11 Sep 2018 19:11:05 -0700 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 11 Sep 2018 19:11:05 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx115.amr.corp.intel.com (10.18.116.19) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 11 Sep 2018 19:11:04 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.240]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.143]) with mapi id 14.03.0319.002; Wed, 12 Sep 2018 10:11:02 +0800 From: "Wang, Jian J" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" , "Justen, Jordan L" , "Yao, Jiewen" , "Zeng, Star" , Ard Biesheuvel Thread-Topic: [edk2] [PATCH 2/5] OvmfPkg/PlatformPei: expire the use of PcdSetNxForStack Thread-Index: AQHUSY6vNVyDLd3o8UWuUDx3HOthuqTqteMAgAEdWkA= Date: Wed, 12 Sep 2018 02:11:01 +0000 Message-ID: References: <20180911051636.4888-1-jian.j.wang@intel.com> <20180911051636.4888-3-jian.j.wang@intel.com> <522bfb71-444c-2caa-a9ff-d5faf97c5a16@redhat.com> In-Reply-To: <522bfb71-444c-2caa-a9ff-d5faf97c5a16@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiODM4ZmVkYzEtNTZjZi00MTg2LWE3NWYtMzU1YjM5YjZhNGI1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiQnl3MkJxNjdmd2xvb1NnSkNWZzM5clFpOStMcGlJMFNzYW5VeUpqSjJGU3NrSXUrOEU4RkVGdzNJQXNhRnpKdiJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 2/5] OvmfPkg/PlatformPei: expire the use of PcdSetNxForStack X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Sep 2018 02:11:06 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvIGFuZCBBcmQsDQoNClJldGlyaW5nIHRoZSBQY2RTZXROeEZvclN0YWNrIGlzIG5v dCB0aGUgaW50ZW50aW9uIG9mIHRoaXMgcGF0Y2ggc2VyaWVzLiBJdCdzIGp1c3QNCmEgc2lkZSBl ZmZlY3Qgb2Ygc29sdmluZyBwcm9ibGVtIHN0YXRlZCBpbiBCWiMxMTE2LiBTb3JyeSBhZ2FpbiBm b3IgdGhlIG1pc2xlYWRpbmcNCnRpdGxlLiBJJ20gbm90IGluc2lzdGluZyB0aGF0IHdlIGhhdmUg dG8gcmVtb3ZlIHRoaXMgUENEIGFueXdheSAoTXkgcGVyc29uYWwNCm9waW5pb24uIE90aGVycyBt aWdodCBoYXZlIGRpZmZlcmVudCBvbmVzKS4gDQoNCkkgdGhpbmsgSSB1bmRlcnN0YW5kIHRoZSBp bXBvcnRhbmNlIG9mIFBjZFNldE54Rm9yU3RhY2sgdG8gYXJtL2FhcmNoNjQgbm93LiBBbmQgSQ0K YWdyZWUgdGhhdCBpdCdkIGJlIGJldHRlciB0byBlbmFibGUgTlggZm9yIHN0YWNrIGluZGVwZW5k ZW50IG9mIGVuYWJsaW5nIE5YIGZvcg0KRWZpQm9vdFNlcnZjZXNEYXRhIG1lbW9yeS4gQnV0IHNp bmNlIHRoZSBzdGFjayBpcyB0eXBlIG9mIEVmaUJvb3RTZXJ2aWNlc0RhdGEsDQpJIHRoaW5rIHdl IHNob3VsZCBhdm9pZCBhbnkgY29uZnVzaW9uIGluIGVuYWJsaW5nL2Rpc2FibGluZyBOWCBmb3Ig dGhlbS4gVGhhdCdzIHdoYXQNCkJaIzExMTYgdHJpZXMgdG8gY29tcGxhaW4gYWJvdXQuIEJ1dCBJ J20gc3RpbGwgbm90IGNsZWFyIGFueSBjb25jcmV0ZSBzdWdnZXN0aW9uIG9uDQpob3cgdG8gc29s dmUgdGhlIEJaIzExMTYgZnJvbSBhbGwgY29tbWVudCBzbyBmYXIsIGlmIG15IHBhdGNoIHNlcmll cyBjYW5ub3Qgc2F0aXNmeQ0KYWxsIGtpbmRzIG9mIHBsYXRmb3Jtcy4gU2ltcGx5IGtlZXAgUGNk U2V0TnhGb3JTdGFjayBkb2Vzbid0IGhlbHAsIEkgdGhpbmsuIChJdCBkb2Vzbid0DQppbXBseSB3 ZSBtdXN0IHJlbW92ZSBpdC4pDQoNCkFzIEkgY29tbWVudGVkIGluIHRoZSBCWiMxMTE2LCBtYXli ZSB3ZSBjYW4ganVzdCBzaW1wbHkgYXNzZXJ0IGlmIHRoZXJlJ3Mgb25lDQp0cnlpbmcgdG8gZGlz YWJsZSBOWCBmb3Igc3RhY2sgYnV0IGVuYWJsZSBOWCBmb3IgRWZpQm9vdFNlcnZpY2VzRGF0YSBh dCB0aGUgc2FtZSB0aW1lLA0KYmVjYXVzZSBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UuIEkgdGhpbmsg YWxsIG90aGVyIHNldHRpbmcgY29tYmluYXRpb25zIHdvbid0IGhhdmUNCnN1Y2ggY29uZnVzaW9u IGFuZCBkb24ndCBuZWVkIHRvIHRha2UgY2FyZSBzcGVjaWZpY2FsbHkuDQoNCkFuZCBmb3IgeDg2 IENQVSwgd2UnbGwgYWx3YXlzIGVuYWJsZSBDUFUgTlggZmVhdHVyZSBpZiBhbnkgTlggcmVsYXRl ZCBQQ0RzIGhhdmUgYml0cw0Kc2V0LiBDdXJyZW50IER4ZUlwbCB3aWxsIGp1c3QgZW5hYmxlIE5Y IGZvciBQY2RTZXROeEZvclN0YWNrIG9ubHkuDQoNClJlZ2FyZHMsDQpKaWFuDQoNCkZyb206IExh c3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXSANClNlbnQ6IFR1ZXNkYXksIFNl cHRlbWJlciAxMSwgMjAxOCAxMTo1MyBQTQ0KVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdA aW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCkNjOiBOaSwgUnVpeXUgPHJ1aXl1 Lm5pQGludGVsLmNvbT47IEp1c3RlbiwgSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5j b20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFy LnplbmdAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5v cmc+DQpTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAyLzVdIE92bWZQa2cvUGxhdGZvcm1QZWk6 IGV4cGlyZSB0aGUgdXNlIG9mIFBjZFNldE54Rm9yU3RhY2sNCg0KT27CoDA5LzExLzE4wqAwNzox NizCoEppYW7CoErCoFdhbmfCoHdyb3RlOg0KPsKgQlojOsKgaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE2DQo+DQo+wqBTaW5jZcKgUGNkU2V0TnhGb3JT dGFja8KgaXPCoGV4cGlyZWQswqByZW1vdmXCoHJlbGF0ZWTCoGNvbmZpZ8KgY29kZS4NCj7CoFBj ZER4ZU54TWVtb3J5UHJvdGVjdGlvblBvbGljecKgY2Fubm90wqBiZcKgdXNlZMKgYXPCoGR5bmFt aWPCoFBDRC4NCj7CoFRoZXJlJ3PCoG5vwqBuZWVkwqB0b8KgYWRkwqBpdMKgaW7CoGNvZGXCoHRv wqByZXBsYWNlwqBQY2RTZXROeEZvclN0YWNrLg0KPg0KPsKgQ2M6wqBMYXN6bG/CoEVyc2VrwqA8 bGVyc2VrQHJlZGhhdC5jb20+DQo+wqBDYzrCoFN0YXLCoFplbmfCoDxzdGFyLnplbmdAaW50ZWwu Y29tPg0KPsKgQ2M6wqBKb3JkYW7CoEp1c3RlbsKgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+ DQo+wqBDYzrCoEFyZMKgQmllc2hldXZlbMKgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ wqBDYzrCoFJ1aXl1wqBOacKgPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj7CoENjOsKgSmlld2VuwqBZ YW/CoDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj7CoENvbnRyaWJ1dGVkLXVuZGVyOsKgVGlhbm9D b3JlwqBDb250cmlidXRpb27CoEFncmVlbWVudMKgMS4xDQo+wqBTaWduZWQtb2ZmLWJ5OsKgSmlh bsKgSsKgV2FuZ8KgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj7CoC0tLQ0KPsKgwqBPdm1mUGtn L1BsYXRmb3JtUGVpL1BsYXRmb3JtLmPCoMKgwqDCoMKgwqB8wqAxwqAtDQo+wqDCoE92bWZQa2cv UGxhdGZvcm1QZWkvUGxhdGZvcm1QZWkuaW5mwqB8wqAxwqAtDQo+wqDCoDLCoGZpbGVzwqBjaGFu Z2VkLMKgMsKgZGVsZXRpb25zKC0pDQo+DQo+wqBkaWZmwqAtLWdpdMKgYS9Pdm1mUGtnL1BsYXRm b3JtUGVpL1BsYXRmb3JtLmPCoGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybS5jDQo+wqBp bmRleMKgNWE3ODY2ODEyNi4uNjYyN2QyMzZlMMKgMTAwNjQ0DQo+wqAtLS3CoGEvT3ZtZlBrZy9Q bGF0Zm9ybVBlaS9QbGF0Zm9ybS5jDQo+wqArKyvCoGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0 Zm9ybS5jDQo+wqBAQMKgLTM0MCw3wqArMzQwLDbCoEBAwqBOb2V4ZWNEeGVJbml0aWFsaXphdGlv bsKgKA0KPsKgwqDCoMKgKQ0KPsKgwqB7DQo+wqDCoMKgwqBVUERBVEVfQk9PTEVBTl9QQ0RfRlJP TV9GV19DRkfCoChQY2RQcm9wZXJ0aWVzVGFibGVFbmFibGUpOw0KPsKgLcKgwqBVUERBVEVfQk9P TEVBTl9QQ0RfRlJPTV9GV19DRkfCoChQY2RTZXROeEZvclN0YWNrKTsNCj7CoMKgfQ0KPg0KPsKg wqBWT0lEDQo+wqBkaWZmwqAtLWdpdMKgYS9Pdm1mUGtnL1BsYXRmb3JtUGVpL1BsYXRmb3JtUGVp LmluZsKgYi9Pdm1mUGtnL1BsYXRmb3JtUGVpL1BsYXRmb3JtUGVpLmluZg0KPsKgaW5kZXjCoDlj NWFkOTk2MWMuLmVmNWRjYjc2OTPCoDEwMDY0NA0KPsKgLS0twqBhL092bWZQa2cvUGxhdGZvcm1Q ZWkvUGxhdGZvcm1QZWkuaW5mDQo+wqArKyvCoGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9y bVBlaS5pbmYNCj7CoEBAwqAtOTYsN8KgKzk2LDbCoEBADQo+wqDCoMKgwqBnRWZpTWRlTW9kdWxl UGtnVG9rZW5TcGFjZUd1aWQuUGNkUGNpRGlzYWJsZUJ1c0VudW1lcmF0aW9uDQo+wqDCoMKgwqBn RWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRHhlSXBsU3dpdGNoVG9Mb25nTW9kZQ0K PsKgwqDCoMKgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFVzZTFHUGFnZVRhYmxl DQo+wqAtwqDCoGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTZXROeEZvclN0YWNr DQo+wqDCoMKgwqBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkUHJvcGVydGllc1Rh YmxlRW5hYmxlDQo+wqDCoMKgwqBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQWNw aVMzRW5hYmxlDQo+wqDCoMKgwqBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkUHRl TWVtb3J5RW5jcnlwdGlvbkFkZHJlc3NPck1hc2sNCj4NCg0KScKgZGlzYWdyZWXCoHdpdGjCoHRo aXPCoGNoYW5nZS7CoEnCoGV4cGxhaW5lZMKgbXnCoHJlYXNvbnPCoGluDQo8aHR0cHM6Ly9idWd6 aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE2I2M2PizCoGJ1dMKgZm9ywqB0 aGUNCnNha2XCoG9mwqBkaXNjdXNzaW9uLMKgSSdsbMKgc3RhdGXCoHRoZcKgc2FtZcKgaGVyZToN Cg0KPsKgQXJkJ3PCoGdvdMKgYcKgcG9pbnTCoGhlcmUuwqBKdXN0wqBiZWNhdXNlwqBvbmXCoFBD RMKgaW1wbGllc8KgYW5vdGhlcizCoHRoZQ0KPsKgcmV2ZXJzZcKgaXPCoG5vdMKgbmVjZXNzYXJp bHnCoHRydWUuDQo+DQo+wqBGb3LCoGV4YW1wbGUswqBpbsKgT1ZNRizCoHdlwqBzZXTCoFBjZFNl dE54Rm9yU3RhY2vCoHRvwqBUUlVFwqBvcmlnaW5hbGx5LMKgYnV0DQo+wqB0aGVuwqB3ZcKgaGFk wqB0b8KgbWFrZcKgaXTCoGNvbmRpdGlvbmFsLMKgZHVlwqB0b8Kgb2xkwqBHUlVCwqB2YXJpYW50 c8KgYnJlYWtpbmcNCj7CoHdpdGjCoGHCoG5vbi1leGVjdXRhYmxlwqBzdGFjay7CoChQbGVhc2XC oHJlZmVywqB0b8KgY29tbWl0wqBkMjBiMDZhM2FmZGYsDQo+wqAiT3ZtZlBrZzrCoGRpc2FibGXC oG5vLWV4ZWPCoERYRcKgc3RhY2vCoGJ5wqBkZWZhdWx0IizCoDIwMTUtMDktMTUpLg0KPsKgVGhl cmVmb3JlwqB3ZcKgbm93wqBkZWZhdWx0wqB0b8KgRkFMU0UswqBhbmTCoGxldMKgdGhlwqB1c2Vy wqBzZXTCoGl0wqB0b8KgVFJVRcKgb24NCj7CoHRoZcKgUUVNVcKgY29tbWFuZMKgbGluZS4NCj4N Cj7CoEluwqBhZGRpdGlvbizCoHdlwqBpbnRlbnRpb25hbGx5wqBpbmhlcml0wqBhwqB6ZXJvDQo+ wqBQY2REeGVOeE1lbW9yeVByb3RlY3Rpb25Qb2xpY3nCoGZyb23CoCJNZGVNb2R1bGVQa2cuZGVj Ii4NCj4NCj7CoEJvdGjCoG9mwqB0aGXCoGFib3ZlwqBjb25maWd1cmF0aW9uc8Kgc2F0aXNmecKg dGhlwqByZXF1aXJlbWVudA0KPg0KPsKgwqDCoCgoUGNkR2V0NjTCoChQY2REeGVOeE1lbW9yeVBy b3RlY3Rpb25Qb2xpY3kpwqAmDQo+wqDCoMKgwqDCoCgxwqA8PMKgRWZpQm9vdFNlcnZpY2VzRGF0 YSkpwqA9PcKgMMKgfHwNCj7CoMKgwqDCoFBjZEdldEJvb2zCoChQY2RTZXROeEZvclN0YWNrKSkN Cj4NCj7CoGkuZS7CoHRoZcKgcmVxdWlyZW1lbnTCoHRoYXTCoCJOWMKgZm9ywqBCU8KgZGF0YSLC oGltcGx5wqAiTljCoGZvcsKgc3RhY2siLg0KPg0KPsKgSWbCoHlvdcKgcmVtb3ZlwqB0aGXCoHN0 YW5kYWxvbmXCoGtub2LCoGZvcsKgUGNkU2V0TnhGb3JTdGFjayzCoHRoZW7CoHRoZQ0KPsKgZGVm YXVsdMKgYmVoYXZpb3LCoG9mwqBPVk1GwqB3aWxswqBjb250aW51ZcKgdG/CoHdvcmsswqBob3dl dmVywqB0aGXCoGNvbW1hbmQNCj7CoGxpbmXCoG9wdGlvbizCoGZvcsKgc2V0dGluZ8KgUGNkU2V0 TnhGb3JTdGFja8KgKm9ubHkqLMKgd2lsbMKgYnJlYWsuDQoNCkknZMKgbGlrZcKgdG/CoGFkZMKg YW5vdGhlcsKgY29tbWVudMKganVzdMKgaGVyZcKgKG5vdMKgbWVudGlvbmVkwqBpbsKgdGhlwqBC Wik6DQoNClRvwqBtecKgdW5kZXJzdGFuZGluZyzCoHRoZcKgSGVhcMKgR3VhcmTCoGlzwqBhwqBk ZWJ1Z8KgZmVhdHVyZcKgWzFdLsKgT3ZlcsKgdGltZSwNCkkndmXCoHJldmlld2VkwqBhbmTCoHJl Z3Jlc3Npb24tdGVzdGVkwqBhbGzCoHRoZcKgSGVhcMKgR3VhcmTCoHBhdGNoZXPCoHRoYXTCoGhh dmUNCmNyb3NzZWTCoG15wqBwYXRowqB3aXRowqB0aGXCoHVuZGVyc3RhbmRpbmfCoHRoYXTCoCJ0 aGlzwqBpc8Kgbm90wqBlbmFibGVkwqBieQ0KZGVmYXVsdMKgaW7CoE9WTUYiLsKgV2l0aMKgdGhv c2XCoHBvaW50c8KgaW7CoG1pbmQswqBJwqBjZXJ0YWlubHnCoGRvbid0wqBpbnRlbmTCoHRvDQpl bmFibGXCoHRoZcKgSGVhcMKgR3VhcmTCoGFzwqBhwqBGaXhlZFBDRMKgLS3CoHdoaWNowqBpc8Kg dGhlwqBvbmx5wqB3YXnCoGl0wqBjYW7CoGJlDQplbmFibGVkwqAtLcKgaW7CoHRoZcKgT1ZNRsKg RFNDwqBmaWxlc8KgYW55dGltZcKgc29vbi4NCg0KT27CoHRoZcKgb3RoZXLCoGhhbmQswqB0aGXC oHVzZXLCoHNob3VsZMKgc2V0wqB0aGXCoHN0YWNrwqBOWMKgcHJlZmVyYWJsecKgYXTCoGFsbA0K dGltZXPCoC0twqBhc8KgScKgd3JvdGXCoGFib3ZlLMKgdGhhdMKgd2FzwqBvdXLCoG9yaWdpbmFs wqBpZGVhwqBmb3LCoHRoZcKgT1ZNRg0KZGVmYXVsdMKgYXPCoHdlbGwswqB1bnRpbMKgd2XCoHdl cmXCoGZvcmNlZMKgdG/CoHJldmVydMKgaXTCoGZvcsKgY29tcGF0aWJpbGl0eSdzDQpzYWtlLMKg YW5kwqB0b8KgZXhwb3NlwqB0aGXCoGtub2LCoHRvwqB0aGXCoGVuZC11c2VywqBpbnN0ZWFkLg0K DQpXaXRowqB0aGlzwqBwYXRjaMKgc2VyaWVzLMKgdGhlwqBjb25maWd1cmF0aW9uwqB0aGF0J3PC oGN1cnJlbnRsecKgZGVlbWVkwqB0aGUNCmJlc3TCoGNvbXByb21pc2XCoGZvcsKgT1ZNRsKgKEhl YXDCoEd1YXJkwqBvZmYswqBzdGFja8KgTlgpwqB3b3VsZMKgYmXCoGxvc3QuDQoNClsxXcKgaHR0 cDovL21pZC5tYWlsLWFyY2hpdmUuY29tL0Q4Mjc2MzBCNTg0MDg2NDlBQ0IwNEY0NEM1MTAwMDM2 MjREREM4QjNAU0hTTVNYMTAzLmNjci5jb3JwLmludGVsLmNvbQ0KDQpUaGFua3MNCkxhc3psbw0K