From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.2017.1571647878965376923 for ; Mon, 21 Oct 2019 01:51:19 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: jiewen.yao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Oct 2019 01:51:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,323,1566889200"; d="scan'208";a="209284218" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga002.jf.intel.com with ESMTP; 21 Oct 2019 01:51:17 -0700 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 21 Oct 2019 01:51:13 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx101.amr.corp.intel.com (10.18.124.199) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 21 Oct 2019 01:51:12 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.176]) by SHSMSX151.ccr.corp.intel.com ([10.239.6.50]) with mapi id 14.03.0439.000; Mon, 21 Oct 2019 16:51:11 +0800 From: "Yao, Jiewen" To: vit9696 CC: "devel@edk2.groups.io" , "Gao, Liming" , "Wang, Jian J" , "Kinney, Michael D" , Laszlo Ersek , "Marvin.Haeuser@outlook.com" Subject: Re: [edk2-devel] [PATCH v1 1/1] MdePkg: Add PCD to disable safe string constraint assertions Thread-Topic: [edk2-devel] [PATCH v1 1/1] MdePkg: Add PCD to disable safe string constraint assertions Thread-Index: AQHVh0clhHkPnZEQBE+EyRmVJ9DPH6dj50MAgACZCQD//60XgIAAia9Q//+HrACAAIgzkA== Date: Mon, 21 Oct 2019 08:51:10 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503F80BB78@shsmsx102.ccr.corp.intel.com> References: <20191020130553.42851-1-vit9696@protonmail.com> <20191020130553.42851-2-vit9696@protonmail.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E51F6EB@SHSMSX104.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F80B477@shsmsx102.ccr.corp.intel.com> <6FF18D79-65ED-4C0B-9B03-99C0B5DD539A@protonmail.com> <74D8A39837DF1E4DA445A8C0B3885C503F80B961@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDkwYzljODItOTc3MS00NzQ2LWFmZjctYzQwMGI5Zjg2ZmZjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiNTE4MUhoK3pGSStrZm15UG1VTnpIcWhNdmZTTjdqVUlncWtnbUw3MjhBbGpOUGtkUmMxa0FhTElcL0RybkZGUVgifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: jiewen.yao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgVml0YWx5DQpCZWZvcmUgd2UgaW50cm9kdWNlIEVES0lJIHZlcnNpb24gc2FmZSBzdHJpbmcs IHdlIGRpZCBpbnZlc3RpZ2F0ZSB0aGUgYmVoYXZpb3Igb2YgYmVsb3cgQVBJczoNCjEpIHN0cmNw eSAtIFdlIGFsbCBrbm93IHRoYXQuLi4NCjIpIHN0cm5jcHkgLSBUaGUgcHJvYmxlbSBpcyB0aGF0 IHRoaXMgQVBJIGNhbm5vdCBndWFyYW50ZWUgYSBzdHJpbmcgaXMgTlVMTCB0ZXJtaW5hdGVkLg0K Mykgc3RybGNweSAtIEl0IGlzIG51bGwgdGVybWluYXRlZCwgYnV0IHRoZSByZXN1bHQgaXMgdHJ1 bmNhdGVkLiBUaGF0IGRhdGEgbG9zcyBtaWdodCBiZSBhIHByb2JsZW0gLSBodHRwczovL2x3bi5u ZXQvQXJ0aWNsZXMvNTA3MzE5LyANCjQpIHN0cmNweV9zIC0gUmV0dXJuIHplcm8gc3RyaW5nLCBp ZiB0aGVyZSBpcyB2aW9sYXRpb24uDQoNCldlIGRpc2N1c3NlZCBhbmQgZGVjaWRlIHRvIGZvbGxv dyA0KSwgd2l0aCBhIG1pbm9yIHVwZGF0ZSAtIHdlIGp1c3QgcmV0dXJuIGVycm9yIHdpdGhvdXQg emVybyB0aGUgb3JpZ2luYWwgc3RyaW5nLg0KDQpBcyBzdWNoLCBpZiB5b3Ugd2FudCB0byB1c2Ug c3RybGNweSwgSSBzdWdnZXN0IHlvdSBoYWQgYmV0dGVyIGludmVudCBhIG5ldyBBUEksIGluc3Rl YWQgb2YgY3VycmVudCBTdHJDcHlfUy4NCg0KV291bGQgeW91IHBsZWFzZSBzaGFyZSBhIHJlYWwg dXNlIGNhc2Ugb24gaG93IHlvdSB1c2UgdGhpcyBBUEkgdmVyaWZ5IHRoZSB1bnRydXN0ZWQgaW5w dXQ/DQpJIGFtIHZlcnkgY3VyaW91cyBvbiB0aGUgdXNhZ2UuDQoNClRoYW5rIHlvdQ0KWWFvIEpp ZXdlbg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogdml0OTY5NiA8 dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDIxLCAyMDE5 IDQ6MzAgUE0NCj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gQ2M6 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+ OyBXYW5nLCBKaWFuIEoNCj4gPGppYW4uai53YW5nQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+OyBNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbQ0KPiBTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFtQQVRDSCB2MSAxLzFdIE1kZVBrZzogQWRkIFBDRCB0byBkaXNhYmxlIHNh ZmUgc3RyaW5nDQo+IGNvbnN0cmFpbnQgYXNzZXJ0aW9ucw0KPiANCj4gSmlld2VuLA0KPiANCj4g WW91ciBleHBsYW5hdGlvbiBtYWtlcyBnb29kIHNlbnNlIGluIHRoZSBjb250ZXh0IG9mICJUaGlz IEFQSSBpcyBOT1QgZGVzaWduIHRvDQo+IGhhbmRsZSB1bnRydXN0ZWQgaW5wdXQuIiwgaG93ZXZl ciwgSSBiZWxpZXZlIHRoaXMgaXMgbm90IGhvdyBpdCBpcyBzaG91bGQgd29yayBvcg0KPiBhdCBs ZWFzdCB0aGlzIGlzIG5vdCBob3cgd2Ugd291bGQgbGlrZSBpdCB0byBiZWhhdmUuDQo+IA0KPiBJ biBVbml4IHdvcmxkIHRoZXJlIGFyZSBzaW1pbGFyIGhhcmRlbmVkIGludGVyZmFjZXMsIGZvciBl eGFtcGxlLCBzdHJsY3B5IG9yDQo+IHN0cmxjYXRbMV0uIFRoZXNlIGludGVyZmFjZXMgYmVoYXZl IHF1aXRlIHNpbWlsYXIgdG8gd2hhdCB5b3UgaGF2ZSBpbiBCYXNlTGliDQo+IFNhZmVTdHJpbmcs IGJ1dCBpbiB0aGUgZmlyc3QgcGxhY2UgdGhleSBhcmUgbWVhbnQgdG8gaGFuZGxlIHVudHJ1c3Rl ZCBpbnB1dC4gVG8gbXkNCj4gZXhwZXJpZW5jZSB0aGlzIHNpdHVhdGlvbiBoYXBwZW5zIG5vIGxl c3Mgb2Z0ZW4gKGFuZCBpbiBmYWN0IG11Y2ggbW9yZSkgdGhhbiB0aGUNCj4gbmVlZCB0byBkbyBl eHRyYSBlcnJvciBjaGVja2luZyBpbiB0cnVzdGVkIGNvZGUsIGFuZCBJIGV4cGVjdCBFREsyIHRv IGZvbGxvdyBzdWl0Lg0KPiBJLmUuIGltcGxlbWVudCBzb21ldGhpbmcgdGhhdCBjYW4gYmUgdXNl ZCBub3Qgb25seSB0byBjaGVjayBmb3IgcHJvZ3JhbW1lcg0KPiBlcnJvcnMgd2l0aGluIHRoZSBt b2R1bGUsIGJ1dCBhbHNvIHBlcmZvcm0gdGhlIHZhbGlkYXRpb24gb2YgZXh0ZXJuYWwgZGF0YS4g QWZ0ZXINCj4gYWxsLCBpZiB0aGVzZSB3ZXJlIGp1c3QgdGhlIGFzc2VydGlvbnMsIEkgd291bGQg aGF2ZSBleHBlY3RlZCBmb3IgcmV0dXJuIHZhbHVlIHRvDQo+IGJlIHZvaWQgbm90IFJFVFVSTl9T VEFUVVMuDQo+IA0KPiBJZiB3ZSBjb25zaWRlciBhbGwgdGhlIG9wdGlvbnMgd2UgbmVlZCB0byBk byBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZzoNCj4gLSByZWltcGxlbWVudCBtb3N0IG9mIHRoZSBm dW5jdGlvbnMgaW4gdGhlIGNhbGxlciBjb2RlLCB3aGljaCBpcyBub24tdHJpdmlhbCwNCj4gaW5j cmVhc2VzIGNvZGUgc2l6ZSwgcmVkdWNlcyByZWFkYWJpbGl0eSwgaXMgbW9yZSBwcm9uZSB0byBl cnJvcnMsIG1ha2VzDQo+IHJldmlld2luZyBtb3JlIHRpbWUgY29uc3VtaW5nLCBldGMuDQo+IC0g cmVpbXBsZW1lbnQgYWxsIHRoZXNlIGZ1bmN0aW9ucyBpbiBhIHNlcGFyYXRlIGxpYnJhcnksIHdo aWNoIHNvbHZlcyBzb21lIG9mIHRoZQ0KPiBpc3N1ZXMsIGJ1dCBzdGlsbCBpbmNyZWFzZXMgY29k ZSBzaXplIGFuZCByZXN1bHRzIGluIHNlcGFyYXRlIGludGVyZmFjZXMgd2l0aA0KPiBkaWZmZXJl bnQgY29udHJhY3RzDQo+IC0gYWRkIGEgcGNkIHRvIGRpc2FibGUgYXNzZXJ0aW9ucywgd2hpY2gg d2lsbCBkaXNhYmxlIHRoZSBkZWJ1Z2dpbmcgaGFuZGxlcnMgYW5kDQo+IHdpbGwgZWZmZWN0aXZl bHkgbWFrZSB0aGVzZSBmdW5jdGlvbnMgYmVoYXZlIGFzIHJ1bnRpbWUgY2hlY2tzIGZvciB1bnRy dXN0ZWQNCj4gZGF0YSwgbnVtZXJvdXMgcGVvcGxlIG1lIGluY2x1ZGVkIGV4cGVjdCB0aGVtIGRv Lg0KPiANCj4gTGFzdCBzdWdnZXN0aW9uIG1ha2VzIG1vc3Qgc2Vuc2UgdG8gbWUuIFRoZXJlZm9y ZSwgSSBiZWxpZXZlIHRoYXQgZXZlbiBpbiB0aGUNCj4gc2l0dWF0aW9uIHdlIGhhdmUgZGlmZmVy ZW50IG9waW5pb25zIG9uIHdoZXRoZXIgdGhpcyBzaG91bGQgYmUgb24gYnkgZGVmYXVsdCwgd2UN Cj4gc2hvdWxkIGF0IGxlYXN0IHNlZSB0aGUgYmVuZWZpdCBmb3IgaGF2aW5nIGFuIG9wdGlvbiB0 byBtYWtlIHRoaXMgY29uZmlndXJhYmxlIGluDQo+IG90aGVyIHByb2plY3RzLiBJbiB0aGlzIGNh c2UgSSBjYW4gdXBkYXRlIHRoZSBwYXRjaCBpbiB0aGUgbmV4dCBkYXlzIHRvIHByZXNlcnZlDQo+ IHRoZSBvcmlnaW5hbCBiZWhhdmlvdXIgYW5kIHJlc3VibWl0IGl0IGFzIGEgdjIuDQo+IA0KPiBC ZXN0IHdpc2hlcywNCj4gVml0YWx5DQo+IA0KPiBbMV0gaHR0cHM6Ly9saW51eC5kaWUubmV0L21h bi8zL3N0cmxjcHkNCj4gDQo+ID4gMjEg0L7QutGCLiAyMDE5INCzLiwg0LIgMTE6MDcsIFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4g0L3QsNC/0LjRgdCw0Lso0LApOg0KPiA+DQo+ ID4NCj4gPiBIaSBWaXRhbHkNCj4gPiBXZSBoYXZlIGRpc2N1c3NlZCB0aGUgQVNTRVJUIHVzYWdl IHdoZW4gd2UgYWRkZWQgdGhlIGZpcnN0IHZlcnNpb24gb2YgY29kZS4NCj4gPg0KPiA+IEMxMSBz dGFuZGFyZCBzdXBwb3J0cyBydW50aW1lIHZpb2xhdGlvbiBoYW5kbGVyIHJlZ2lzdHJhdGlvbi4N Cj4gPiBXZSBpbnZlc3RpZ2F0ZWQgdGhlIGJlaGF2aW9yIG9mDQo+ID4gKDEpIE1TIFZpc3VhbCBT dHVkaW8gLSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvYmIyODg0NTQu YXNweA0KPiA+ICgyKSBTYWZlQ0xpYiAtIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMv c2FmZWNsaWIvDQo+ID4gKDMpIFNsaWJjIC0gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zbGli Yy8NCj4gPg0KPiA+IFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzOg0KPiA+ICgxKSBDYWxsIERlYnVn Z2VyDQo+ID4gKDIpIFByaW50IGVycm9yDQo+ID4gKDMpIENhbGwgYWJvcnQoKQ0KPiA+DQo+ID4g QXMgY29uY2x1c2lvbiwgd2UgYmVsaWV2ZSBpdCBpcyAqY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkq IHRvIG1ha2Ugc3VyZSB0aGUgY2FsbGVyDQo+IGlucHV0cyByaWdodCBwYXJhbWV0ZXIsIGluc3Rl YWQgb2YgbGV0IGNhbGxlZSBjaGVjayBhbmQgcmV0dXJuIGVycm9yLg0KPiA+DQo+ID4gSW4gb3Jk ZXIgdG8gY2F0Y2ggc3VjaCBlcnJvciBhcyBlYXJseSBhcyBwb3NzaWJsZSwgd2UgZGVjaWRlIHRv IHVzZSBBU1NFUlQsDQo+IGJlY2F1c2UgaXQgaXMgc29tZXRoaW5nIG5ldmVyIGhhcHBlbi4gKFdl IHN0aWxsIHVzZSBlcnJvciBoYW5kbGluZyBmb2xsb3dlZCBieSB0bw0KPiBoYW5kbGUgdGhlIHJl bGVhc2UgYnVpbGQuKQ0KPiA+DQo+ID4gVGhpcyBBUEkgaXMgTk9UIGRlc2lnbiB0byBoYW5kbGUg dW50cnVzdGVkIGlucHV0LiBBcyBzdWNoLCB3ZSBiZWxpZXZlIGl0IGlzDQo+IGV4cGVjdGVkIEFT U0VSVCBiZWhhdmlvci4NCj4gPg0KPiA+DQo+ID4gV2UgaGF2ZSBvdGhlciBkZWJhdGUsIHN1Y2gg YXMgaWYgd2UgbmVlZCBBU1NFUlQgMiBieXRlcyBhbGlnbm1lbnQgQ0hBUjE2DQo+IHByb2Nlc3Ms IG9yIGlmIHdlIG5lZWQgQVNTRVJUIGFkZHJlc3MgYWxpZ25tZW50IGZvciBNTUlPIGFjY2Vzcy4N Cj4gPiBQZXIgb3VyIGV4cGVyaWVuY2UsIGl0IGlzIG11Y2ggYmV0dGVyIHRvIGxldCBjYWxsZXIg Z3VhcmFudGVlIHRoYXQsIGluc3RlYWQgb2YNCj4gY2FsbGVlIGNoZWNrIHRoYXQuIEFuZCBBU1NF UlQgaXMgYSBnb29kIHdheSB0byBjYXRjaCB0aGUgaXNzdWUgYXMgZWFybHkgYXMNCj4gcG9zc2li bGUuDQo+ID4NCj4gPg0KPiA+DQo+ID4gVGhhbmsgeW91DQo+ID4gWWFvIEppZXdlbg0KPiA+DQo+ ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGRldmVsQGVkazIuZ3Jv dXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFZpdGFseQ0KPiA+PiBD aGVwdHNvdiB2aWEgR3JvdXBzLklvDQo+ID4+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAyMSwgMjAx OSAzOjI4IFBNDQo+ID4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBH YW8sIExpbWluZw0KPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4+IENjOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBLaW5uZXks DQo+ID4+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4+IFN1Ympl Y3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDEvMV0gTWRlUGtnOiBBZGQgUENEIHRvIGRp c2FibGUgc2FmZQ0KPiBzdHJpbmcNCj4gPj4gY29uc3RyYWludCBhc3NlcnRpb25zDQo+ID4+DQo+ ID4+IExpbWluZywgSmlld2VuLA0KPiA+Pg0KPiA+PiBJIGFtIHBlcnNvbmFsbHkgZmluZSB0byBy ZXN1Ym1pdCB0aGUgcGF0Y2ggY2hhbmdpbmcgdGhlIGRlZmF1bHRzIHRvIFRSVUUsIGJ1dA0KPiA+ PiBkb2VzIGl0IGFjdHVhbGx5IG1ha2Ugc2Vuc2UgaW4gYW55IG90aGVyIGVudmlyb25tZW50IGJ1 dCBzb21lIHNwZWNpYWwNCj4gdGVzdGluZw0KPiA+PiBwbGF0Zm9ybT8gSSBjYW5ub3QgaW1hZ2lu ZSBhbnkgcHJvZHVjdGlvbiBwbGF0Zm9ybSB0aGF0IHdvdWxkIG5lZWQgaXQNCj4gZW5hYmxlZCwN Cj4gPj4gdGhlIG9ubHkgdXNlIGNhc2UgaXMgdG8gcGVyZm9ybSBhbmFseXNpcyBvbiB0aGUgdHJ1 c3RlZCBkYXRhIHVzYWdlIG9yDQo+IHNvbWV0aGluZw0KPiA+PiBzaW1pbGFyLCBhcyBJIGV4cGxh aW5lZCBvbiBCWi4NCj4gPj4NCj4gPj4gQXMgZm9yIGFzc2VydGlvbnMsIEkgd291bGQgZXhwZWN0 IHRoYXQgYWxsIFBDRHMgd2UgaW50cm9kdWNlIGFyZSBtZWFudCB0bw0KPiA+PiBjb250cm9sIHVu ZXhwZWN0ZWQgQVNTRVJUIGJlaGF2aW91ci4gSS5lLiB3aGVyZSBBU1NFUlRzIGFyZSBwb3RlbnRp YWxseQ0KPiB1c2VkDQo+ID4+IHRvIHNpZ25hbGlzZSBhYm91dCBpc3N1ZXMgY29taW5nIG5vdCBv bmx5IGZyb20gdHJ1c3RlZCBzb3VyY2VzICh1c2FnZQ0KPiBjb250cmFjdA0KPiA+PiB2aW9sYXRp b24pIGJ1dCBhbHNvIGZyb20gdW50cnVzdGVkIHNvdXJjZXMgKGV4dGVybmFsIGRhdGEpLiBTdWNo IGFzc2VydGlvbnMNCj4gPj4gY2Fubm90IGJlIHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVu dHMsIGFzIHRoZXkgbWF5IGJyZWFrIHNvZnR3YXJlLCBhbmQNCj4gPj4gdGh1cyB3ZSBoYXZlIHRv IGltcGxlbWVudCBjb2RlIHRvIGRpc2FibGUgdGhlbS4NCj4gPj4NCj4gPj4gQmVzdCByZWdhcmRz LA0KPiA+PiBWaXRhbHkNCj4gPj4NCj4gPj4+IDIxINC+0LrRgi4gMjAxOSDQsy4sINCyIDc6Mjgs IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4g0L3QsNC/0LjRgdCw0Lso0LApOg0K PiA+Pj4NCj4gPj4+DQo+ID4+PiBIaSBNaWtlDQo+ID4+PiBJIHJlbWVtYmVyIHdlIGhhdmUgZGlz Y3Vzc2VkIGl0IGJlZm9yZS4NCj4gPj4+DQo+ID4+PiBUaGUgZ2VuZXJhbCBjb25jZXJuIGlzIHRo YXQ6IGhvdyBtYW55IGFkZGl0aW9uYWwgUENEIHdlIG5lZWQgaW50cm9kdWNlLA0KPiB0bw0KPiA+ PiBjb250cm9sIGRpZmZlcmVudCBBU1NFUlQgaW4gZGlmZmVyZW50IG1vZHVsZXMgPw0KPiA+Pj4N Cj4gPj4+IFdlIG1heSB3YW50IHRvIGVuYWJsZSAqc29tZSogYXNzZXJ0IGluIHNvbWUgbW9kdWxl cywgYnV0IGRpc2FibGUgKnNvbWUNCj4gPj4gb3RoZXIqIGFzc2VydC4NCj4gPj4+IEUuZy4gdGhl IGFzc2VydCBmb3IgbGlua2VkbGlzdCBpbiBiYXNlIGxpYiBpcyBhbm90aGVyIGV4YW1wbGUuLi4N Cj4gPj4+DQo+ID4+PiBXaGF0IGlzIHlvdXIgdGhvdWdodD8NCj4gPj4+DQo+ID4+PiBUaGFuayB5 b3UNCj4gPj4+IFlhbyBKaWV3ZW4NCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPj4+PiBGcm9tOiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ ID4+Pj4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDIxLCAyMDE5IDExOjE3IEFNDQo+ID4+Pj4gVG86 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyB2aXQ5Njk2QHByb3Rvbm1haWwuY29tDQo+ID4+Pj4gQ2M6 IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSg0KPiA+PiA8 amlhbi5qLndhbmdAaW50ZWwuY29tPjsNCj4gPj4+PiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0Bp bnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+Pj4+IDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MSAxLzFd IE1kZVBrZzogQWRkIFBDRCB0byBkaXNhYmxlIHNhZmUNCj4gPj4gc3RyaW5nDQo+ID4+Pj4gY29u c3RyYWludCBhc3NlcnRpb25zDQo+ID4+Pj4NCj4gPj4+PiBJbmNsdWRlIG1vcmUgcGVvcGxlLg0K PiA+Pj4+DQo+ID4+Pj4gQmFzaWNhbGx5LCB0byBrZWVwIHRoZSBjb21wYXRpYmxlIGJlaGF2aW9y LA0KPiA+PiBQY2RBc3NlcnRPblNhZmVTdHJpbmdDb25zdHJhaW50cw0KPiA+Pj4+IGRlZmF1bHQg dmFsdWUgc2hvdWxkIGJlIFRSVUUuDQo+ID4+Pj4gVGhlIGRpZmZlcmVudCBwbGF0Zm9ybSBjYW4g Y29uZmlndXJlIGl0Lg0KPiA+Pj4+DQo+ID4+Pj4gVGhhbmtzDQo+ID4+Pj4gTGltaW5nDQo+ID4+ Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+IEZyb206IGRldmVsQGVkazIu Z3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFsZg0KPiBPZg0K PiA+Pj4+PiBWaXRhbHkgQ2hlcHRzb3YgdmlhIEdyb3Vwcy5Jbw0KPiA+Pj4+PiBTZW50OiBTdW5k YXksIE9jdG9iZXIgMjAsIDIwMTkgOTowNiBQTQ0KPiA+Pj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91 cHMuaW8NCj4gPj4+Pj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSCB2MSAxLzFdIE1kZVBr ZzogQWRkIFBDRCB0byBkaXNhYmxlIHNhZmUNCj4gPj4gc3RyaW5nDQo+ID4+Pj4+IGNvbnN0cmFp bnQgYXNzZXJ0aW9ucw0KPiA+Pj4+Pg0KPiA+Pj4+PiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlh bm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NA0KPiA+Pj4+Pg0KPiA+Pj4+PiBSdW50aW1l IGRhdGEgY2hlY2tzIGFyZSBub3QgbWVhbnQgdG8gY2F1c2UgZGVidWcgYXNzZXJ0aW9ucw0KPiA+ Pj4+PiB1bmxlc3MgZXhwbGljaXRseSBuZWVkZWQgYnkgc29tZSBkZWJ1ZyBjb2RlICh0aHVzIHRo ZSBQQ0QpDQo+ID4+Pj4+IGFzIHRoaXMgYnJlYWtzIGRlYnVnIGJ1aWxkcyB2YWxpZGF0aW5nIGRh dGEgd2l0aCBCYXNlTGliLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBWaXRhbHkg Q2hlcHRzb3YgPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20+Pg0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4g TWRlUGtnL01kZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKysNCj4gPj4+Pj4g TWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZiAgfCAxMSArKysrKystLS0tLQ0KPiA+ Pj4+PiBNZGVQa2cvTGlicmFyeS9CYXNlTGliL1NhZmVTdHJpbmcuYyB8ICA0ICsrKy0NCj4gPj4+ Pj4gTWRlUGtnL01kZVBrZy51bmkgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKysNCj4gPj4+ Pj4gNCBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPiA+ Pj4+Pg0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL01kZVBrZy5kZWMgYi9NZGVQa2cvTWRl UGtnLmRlYw0KPiA+Pj4+PiBpbmRleCAzZmQ3ZDE2MzRjLi5kZGEyY2RmNDAxIDEwMDY0NA0KPiA+ Pj4+PiAtLS0gYS9NZGVQa2cvTWRlUGtnLmRlYw0KPiA+Pj4+PiArKysgYi9NZGVQa2cvTWRlUGtn LmRlYw0KPiA+Pj4+PiBAQCAtMjIyMSw2ICsyMjIxLDEyIEBAIFtQY2RzRml4ZWRBdEJ1aWxkLFBj ZHNQYXRjaGFibGVJbk1vZHVsZV0NCj4gPj4+Pj4gIyBAUHJvbXB0IE1lbW9yeSBBZGRyZXNzIG9m IEd1aWRlZEV4dHJhY3RIYW5kbGVyIFRhYmxlLg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+PiBnRWZp TWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkR3VpZGVkRXh0cmFjdEhhbmRsZXJUYWJsZUFkZHJlc3N8 MHgxMDAwMA0KPiA+Pj4+PiAwMHxVSU5UNjR8MHgzMDAwMTAxNQ0KPiA+Pj4+Pg0KPiA+Pj4+PiAr ICAjIyBJbmRpY2F0ZXMgaWYgc2FmZSBzdHJpbmcgY29uc3RyYWludCB2aW9sYXRpb24gc2hvdWxk IGFzc2VydC48QlI+PEJSPg0KPiA+Pj4+PiArICAjICAgVFJVRSAgLSBTYWZlIHN0cmluZyBjb25z dHJhaW50IHZpb2xhdGlvbiBjYXVzZXMgYXNzZXJ0aW9uLjxCUj4NCj4gPj4+Pj4gKyAgIyAgIEZB TFNFIC0gU2FmZSBzdHJpbmcgY29uc3RyYWludCB2aW9sYXRpb24gZG9lcyBub3QgY2F1c2UgYXNz ZXJ0aW9uLjxCUj4NCj4gPj4+Pj4gKyAgIyBAUHJvbXB0IEVuYWJsZSBzYWZlIHN0cmluZyBjb25z dHJhaW50IHZpb2xhdGlvbiBhc3NlcnRpb25zLg0KPiA+Pj4+PiArDQo+ID4+Pj4+DQo+ID4+IGdF ZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RBc3NlcnRPblNhZmVTdHJpbmdDb25zdHJhaW50c3xG QUxTRXxCT09MDQo+ID4+Pj4+IEVBTnwweDAwMDAwMDJlDQo+ID4+Pj4+ICsNCj4gPj4+Pj4gW1Bj ZHNGaXhlZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZSwgUGNkc0R5bmFtaWMsDQo+IFBj ZHNEeW5hbWljRXhdDQo+ID4+Pj4+ICMjIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBzZXQgdGhlIGJh c2UgYWRkcmVzcyBvZiBQQ0kgZXhwcmVzcyBoaWVyYXJjaHkuDQo+ID4+Pj4+ICMgQFByb21wdCBQ Q0kgRXhwcmVzcyBCYXNlIEFkZHJlc3MuDQo+ID4+Pj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGli cmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ID4+Pj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxp Yi9CYXNlTGliLmluZg0KPiA+Pj4+PiBpbmRleCAzNTg2YmViMGFiLi5iYzk4YmM2MTM0IDEwMDY0 NA0KPiA+Pj4+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ID4+ Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYNCj4gPj4+Pj4gQEAg LTM5MCwxMSArMzkwLDEyIEBAIFtMaWJyYXJ5Q2xhc3Nlc10NCj4gPj4+Pj4gQmFzZU1lbW9yeUxp Yg0KPiA+Pj4+Pg0KPiA+Pj4+PiBbUGNkXQ0KPiA+Pj4+PiAtICBnRWZpTWRlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkTWF4aW11bUxpbmtlZExpc3RMZW5ndGggICAgICAjIw0KPiA+Pj4+PiBTT01FVElN RVNfQ09OU1VNRVMNCj4gPj4+Pj4gLSAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heGlt dW1Bc2NpaVN0cmluZ0xlbmd0aCAgICAgIyMNCj4gPj4+Pj4gU09NRVRJTUVTX0NPTlNVTUVTDQo+ ID4+Pj4+IC0gIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhpbXVtVW5pY29kZVN0cmlu Z0xlbmd0aCAgICMjDQo+ID4+Pj4+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+Pj4+PiAtDQo+IGdF ZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RDb250cm9sRmxvd0VuZm9yY2VtZW50UHJvcGVydHlN YXNrDQo+ID4+Pj4+ICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiA+Pj4+PiAtICBnRWZpTWRlUGtn VG9rZW5TcGFjZUd1aWQuUGNkU3BlY3VsYXRpb25CYXJyaWVyVHlwZSAgICAgICAjIw0KPiA+Pj4+ PiBTT01FVElNRVNfQ09OU1VNRVMNCj4gPj4+Pj4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlk LlBjZEFzc2VydE9uU2FmZVN0cmluZ0NvbnN0cmFpbnRzICAgICAgICMjDQo+ID4+Pj4+IFNPTUVU SU1FU19DT05TVU1FUw0KPiA+Pj4+PiArICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4 aW11bUxpbmtlZExpc3RMZW5ndGggICAgICAgICAgICAgIyMNCj4gPj4+Pj4gU09NRVRJTUVTX0NP TlNVTUVTDQo+ID4+Pj4+ICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhpbXVtQXNj aWlTdHJpbmdMZW5ndGggICAgICAgICAgICAjIw0KPiA+Pj4+PiBTT01FVElNRVNfQ09OU1VNRVMN Cj4gPj4+Pj4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heGltdW1Vbmljb2RlU3Ry aW5nTGVuZ3RoDQo+ICMjDQo+ID4+Pj4+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+Pj4+PiArDQo+ IGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RDb250cm9sRmxvd0VuZm9yY2VtZW50UHJvcGVy dHlNYXNrDQo+ID4+Pj4+ICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiA+Pj4+PiArICBnRWZpTWRl UGtnVG9rZW5TcGFjZUd1aWQuUGNkU3BlY3VsYXRpb25CYXJyaWVyVHlwZSAgICAgICAgICAgICAg IyMNCj4gPj4+Pj4gU09NRVRJTUVTX0NPTlNVTUVTDQo+ID4+Pj4+DQo+ID4+Pj4+IFtGZWF0dXJl UGNkXQ0KPiA+Pj4+PiBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVmVyaWZ5Tm9kZUluTGlz dCAgIyMgQ09OU1VNRVMNCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VM aWIvU2FmZVN0cmluZy5jDQo+ID4+Pj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3Ry aW5nLmMNCj4gPj4+Pj4gaW5kZXggN2RjMDNkMmNhYS4uNTZiNWUzNGE4ZCAxMDA2NDQNCj4gPj4+ Pj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMNCj4gPj4+Pj4gKysr IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMNCj4gPj4+Pj4gQEAgLTE0LDcg KzE0LDkgQEANCj4gPj4+Pj4NCj4gPj4+Pj4gI2RlZmluZSBTQUZFX1NUUklOR19DT05TVFJBSU5U X0NIRUNLKEV4cHJlc3Npb24sIFN0YXR1cykgIFwNCj4gPj4+Pj4gZG8geyBcDQo+ID4+Pj4+IC0g ICAgQVNTRVJUIChFeHByZXNzaW9uKTsgXA0KPiA+Pj4+PiArICAgIGlmIChQY2RHZXRCb29sIChQ Y2RBc3NlcnRPblNhZmVTdHJpbmdDb25zdHJhaW50cykpIHsgXA0KPiA+Pj4+PiArICAgICAgQVNT RVJUIChFeHByZXNzaW9uKTsgXA0KPiA+Pj4+PiArICAgIH0gXA0KPiA+Pj4+PiAgIGlmICghKEV4 cHJlc3Npb24pKSB7IFwNCj4gPj4+Pj4gICAgIHJldHVybiBTdGF0dXM7IFwNCj4gPj4+Pj4gICB9 IFwNCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cudW5pIGIvTWRlUGtnL01kZVBr Zy51bmkNCj4gPj4+Pj4gaW5kZXggNWMxZmEyNDA2NS4uNDI1YjY2YmI0MyAxMDA2NDQNCj4gPj4+ Pj4gLS0tIGEvTWRlUGtnL01kZVBrZy51bmkNCj4gPj4+Pj4gKysrIGIvTWRlUGtnL01kZVBrZy51 bmkNCj4gPj4+Pj4gQEAgLTI4Nyw2ICsyODcsMTIgQEANCj4gPj4+Pj4NCj4gPj4+Pj4gI3N0cmlu Zw0KPiA+Pj4+Pg0KPiBTVFJfZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkX1BjZEd1aWRlZEV4dHJh Y3RIYW5kbGVyVGFibGVBZGRyZXNzX0gNCj4gPj4+Pj4gRUxQICAjbGFuZ3VhZ2UgZW4tVVMgIlRo aXMgdmFsdWUgaXMgdXNlZCB0byBzZXQgdGhlIGF2YWlsYWJsZSBtZW1vcnkNCj4gPj4gYWRkcmVz cw0KPiA+Pj4+PiB0byBzdG9yZSBHdWlkZWQgRXh0cmFjdCBIYW5kbGVycy4gVGhlIHJlcXVpcmVk IG1lbW9yeSBzcGFjZSBpcyBkZWNpZGVkDQo+IGJ5DQo+ID4+Pj4+IHRoZSB2YWx1ZSBvZiBQY2RN YXhpbXVtR3VpZGVkRXh0cmFjdEhhbmRsZXIuIg0KPiA+Pj4+Pg0KPiA+Pj4+PiArI3N0cmluZw0K PiA+Pj4+Pg0KPiBTVFJfZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkX1BjZEFzc2VydE9uU2FmZVN0 cmluZ0NvbnN0cmFpbnRzX1BST00NCj4gPj4+Pj4gUFQgICNsYW5ndWFnZSBlbi1VUyAiRW5hYmxl IHNhZmUgc3RyaW5nIGNvbnN0cmFpbnQgdmlvbGF0aW9uIGFzc2VydGlvbnMiDQo+ID4+Pj4+ICsN Cj4gPj4+Pj4gKyNzdHJpbmcNCj4gPj4+Pj4NCj4gU1RSX2dFZmlNZGVQa2dUb2tlblNwYWNlR3Vp ZF9QY2RBc3NlcnRPblNhZmVTdHJpbmdDb25zdHJhaW50c19IRUxQDQo+ID4+Pj4+ICNsYW5ndWFn ZSBlbi1VUyAiSW5kaWNhdGVzIGlmIHNhZmUgc3RyaW5nIGNvbnN0cmFpbnQgdmlvbGF0aW9uIHNo b3VsZA0KPiA+Pj4+PiBhc3NlcnQuPEJSPjxCUj5cbiINCj4gPj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlRSVUUgIC0gU2FmZSBzdHJpbmcNCj4gPj4gY29uc3RyYWludA0KPiA+Pj4+ PiB2aW9sYXRpb24gY2F1c2VzIGFzc2VydGlvbi48QlI+XG4iDQo+ID4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJGQUxTRSAtIFNhZmUgc3RyaW5nDQo+ID4+IGNvbnN0cmFpbnQNCj4g Pj4+Pj4gdmlvbGF0aW9uIGRvZXMgbm90IGNhdXNlIGFzc2VydGlvbi48QlI+Ig0KPiA+Pj4+PiAr DQo+ID4+Pj4+ICNzdHJpbmcNCj4gPj4+Pj4gU1RSX2dFZmlNZGVQa2dUb2tlblNwYWNlR3VpZF9Q Y2RQY2lFeHByZXNzQmFzZUFkZHJlc3NfUFJPTVBUDQo+ID4+Pj4+ICNsYW5ndWFnZSBlbi1VUyAi UENJIEV4cHJlc3MgQmFzZSBBZGRyZXNzIg0KPiA+Pj4+Pg0KPiA+Pj4+PiAjc3RyaW5nDQo+IFNU Ul9nRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWRfUGNkUGNpRXhwcmVzc0Jhc2VBZGRyZXNzX0hFTFAN Cj4gPj4+Pj4gI2xhbmd1YWdlIGVuLVVTICJUaGlzIHZhbHVlIGlzIHVzZWQgdG8gc2V0IHRoZSBi YXNlIGFkZHJlc3Mgb2YgUENJIGV4cHJlc3MNCj4gPj4+Pj4gaGllcmFyY2h5LiINCj4gPj4+Pj4g LS0NCj4gPj4+Pj4gMi4yMS4wIChBcHBsZSBHaXQtMTIyKQ0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+ Pj4+PiAtPS09LT0tPS09LT0NCj4gPj4+Pj4gR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBh bGwgbWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBWaWV3L1Jl cGx5IE9ubGluZSAoIzQ5MjU1KToNCj4gPj4gaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVs L21lc3NhZ2UvNDkyNTUNCj4gPj4+Pj4gTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5p by9tdC8zNTk0MzMxNy8xNzU5Mzg0DQo+ID4+Pj4+IEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBl ZGsyLmdyb3Vwcy5pbw0KPiA+Pj4+PiBVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5p by9nL2RldmVsL3Vuc3ViDQo+IFtsaW1pbmcuZ2FvQGludGVsLmNvbV0NCj4gPj4+Pj4gLT0tPS09 LT0tPS09DQo+ID4+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiANCj4gPg0KDQo=