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.115; helo=mga14.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 51A8D210F254F for ; Thu, 16 Aug 2018 18:40:19 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Aug 2018 18:40:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,249,1531810800"; d="scan'208";a="73437362" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by FMSMGA003.fm.intel.com with ESMTP; 16 Aug 2018 18:39:59 -0700 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 16 Aug 2018 18:39:59 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 16 Aug 2018 18:39:58 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by shsmsx102.ccr.corp.intel.com ([169.254.2.226]) with mapi id 14.03.0319.002; Fri, 17 Aug 2018 09:39:56 +0800 From: "Wu, Hao A" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Dong, Eric" , "Kinney, Michael D" Thread-Topic: [PATCH v2 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Add RSB stuffing before RSM instruction Thread-Index: AQHUNQ9JCmeNN2ZUPU6R/aZ6X80zNaTCegAAgACs9cA= Date: Fri, 17 Aug 2018 01:39:56 +0000 Message-ID: References: <20180816031422.15340-1-hao.a.wu@intel.com> <20180816031422.15340-2-hao.a.wu@intel.com> <6e69fae1-c2a3-5911-a49f-d48cbcef3acc@redhat.com> In-Reply-To: <6e69fae1-c2a3-5911-a49f-d48cbcef3acc@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Add RSB stuffing before RSM instruction X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Aug 2018 01:40:19 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMTcsIDIwMTggNzow MiBBTQ0KPiBUbzogV3UsIEhhbyBBOyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogWWFv LCBKaWV3ZW47IERvbmcsIEVyaWM7IEtpbm5leSwgTWljaGFlbCBEDQo+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggdjIgMS8yXSBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tOiBBZGQgUlNCIHN0dWZmaW5n DQo+IGJlZm9yZSBSU00gaW5zdHJ1Y3Rpb24NCj4gDQo+IEJleW9uZCBjb21tZW50cyAoMSkgdGhy b3VnaCAoNCkgd2hpY2ggSSBtYWRlIHVuZGVyIHRoZSBibHVyYiAodjIgMC8yKToNCj4gDQo+IE9u IDA4LzE2LzE4IDA1OjE0LCBIYW8gV3Ugd3JvdGU6DQo+ID4gUmV0dXJuIFN0YWNrIEJ1ZmZlciAo UlNCKSBpcyB1c2VkIHRvIHByZWRpY3QgdGhlIHRhcmdldCBvZiBSRVQNCj4gPiBpbnN0cnVjdGlv bnMuIFdoZW4gdGhlIFJTQiB1bmRlcmZsb3dzLCBzb21lIHByb2Nlc3NvcnMgbWF5IGZhbGwgYmFj ayB0bw0KPiA+IHVzaW5nIGJyYW5jaCBwcmVkaWN0b3JzLiBUaGlzIG1pZ2h0IGltcGFjdCBzb2Z0 d2FyZSB1c2luZyB0aGUgcmV0cG9saW5lDQo+ID4gbWl0aWdhdGlvbiBzdHJhdGVneSBvbiB0aG9z ZSBwcm9jZXNzb3JzLg0KPiA+DQo+ID4gVGhpcyBjb21taXQgd2lsbCBhZGQgUlNCIHN0dWZmaW5n IGxvZ2ljIGJlZm9yZSByZXR1cm5pbmcgZnJvbSBTTU0gKHRoZSBSU00NCj4gPiBpbnN0cnVjdGlv bikgdG8gYXZvaWQgaW50ZXJmZXJpbmcgd2l0aCBub24tU01NIHVzYWdlIG9mIHRoZSByZXRwb2xp bmUNCj4gPiB0ZWNobmlxdWUuDQo+ID4NCj4gPiBBZnRlciB0aGUgc3R1ZmZpbmcsIFJTQiBlbnRy aWVzIHdpbGwgY29udGFpbiBhIHRyYXAgbGlrZToNCj4gPg0KPiA+IEBTcGVjVHJhcDoNCj4gPiAg ICAgcGF1c2UNCj4gPiAgICAgbGZlbmNlDQo+ID4gICAgIGptcCAgICAgQFNwZWNUcmFwDQo+ID4N Cj4gPiBBIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgdGhlIHB1cnBvc2Ugb2YgY29tbWl0 IGlzIHVuZGVyIHRoZQ0KPiA+ICdCcmFuY2ggdGFyZ2V0IGluamVjdGlvbiBtaXRpZ2F0aW9uJyBz ZWN0aW9uIG9mIHRoZSBiZWxvdyBsaW5rOg0KPiA+IGh0dHBzOi8vc29mdHdhcmUuaW50ZWwuY29t L3NlY3VyaXR5LXNvZnR3YXJlLWd1aWRhbmNlL2luc2lnaHRzL2hvc3QtZmlybXdhDQo+ID4gcmUt c3BlY3VsYXRpdmUtZXhlY3V0aW9uLXNpZGUtY2hhbm5lbC1taXRpZ2F0aW9uDQo+ID4NCj4gPiBD YzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gQ2M6IEVyaWMgRG9uZyA8 ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0 LmNvbT4NCj4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVt ZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IEhhbyBXdSA8aGFvLmEud3VAaW50ZWwuY29tPg0K PiA+IC0tLQ0KPiA+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lhMzIvU21pRW50cnkubmFz bSB8ICAzICsrDQo+ID4gIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9TbW1Jbml0Lm5h c20gIHwgIDMgKysNCj4gPiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1N0dWZmUnNi LmluYyAgfCA1NQ0KPiArKysrKysrKysrKysrKysrKysrKw0KPiA+ICBVZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1g2NC9TbWlFbnRyeS5uYXNtICB8ICAzICsrDQo+ID4gIFVlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vWDY0L1NtbUluaXQubmFzbSAgIHwgIDMgKysNCj4gPiAgVWVmaUNwdVBrZy9Q aVNtbUNwdUR4ZVNtbS9YNjQvU3R1ZmZSc2IuaW5jICAgfCA1NQ0KPiArKysrKysrKysrKysrKysr KysrKw0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDEyMiBpbnNlcnRpb25zKCspDQo+IA0KPiAoNSkg SSd2ZSBoYWQgYW4gaWRlYSBoZXJlLCBidXQgSSdtIG1lbnRpb25pbmcgaXQgb25seSBmb3IgY29t cGxldGVuZXNzLg0KPiBJdCB3aWxsIG5vdCBtYXR0ZXIgYWZ0ZXIgd2UgZml4DQo+IDxodHRwczov L2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE+LCBidXQgdW50aWwg dGhlbiwNCj4geW91IGNvdWxkIGZpbmQgaXQgdXNlZnVsLiBVcCB0byB5b3U6DQo+IA0KPiBXZSBj b3VsZCBtb3ZlICJTdHVmZlJzYi5pbmMiIHRvDQo+ICJVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21t L1N0dWZmUnNiLmluYyIsIHRoZXJlYnkgZWxpbWluYXRpbmcgdGhlDQo+IGR1cGxpY2F0aW9uIGJl dHdlZW4gdGhlIElhMzIgYW5kIFg2NCBzdWJkaXJlY3Rvcmllcy4gQW5kIHRoZW46DQo+IA0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9TbWlFbnRy eS5uYXNtDQo+IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1NtaUVudHJ5Lm5hc20N Cj4gPiBpbmRleCA1MDllN2EwYTY2Li42YmJjMzM5YzUzIDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vSWEzMi9TbWlFbnRyeS5uYXNtDQo+ID4gKysrIGIvVWVmaUNw dVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1NtaUVudHJ5Lm5hc20NCj4gPiBAQCAtMTgsNiArMTgs OCBAQA0KPiA+ICA7DQo+ID4gIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4NCj4gPiArJWlu Y2x1ZGUgIlN0dWZmUnNiLmluYyINCj4gDQo+IHRoZXNlICVpbmNsdWRlIGRpcmVjdGl2ZXMgY291 bGQgc2F5ICIuLi9TdHVmZlJzYi5pbmMiLg0KPiANCj4gSSBkaWRuJ3QgdHJ5IHRoaXMgaW4gcHJh Y3RpY2UsIGJ1dCBJIGZpZ3VyZWQgaXQncyB3b3J0aCBtZW50aW9uaW5nLiBGZWVsDQo+IGZyZWUg dG8gaWdub3JlIGl0IHRob3VnaDsgSSBob3BlIEJaIzEwOTEgd2lsbCBiZSBmaXhlZCBzb29uLg0K DQpJIGRpZCBhIHF1aWNrIHNlYXJjaCBmb3IgcGF0dGVybiAuLi8gd2l0aGluIHRoZSBlZGsyIHJl cG9zaXRvcnkgd2l0aGluDQpmaWxlIHR5cGVzIC5jLCAuaCBhbmQgLm5hc20uIEkgZm91bmQgdGhh dCB0aGVyZSBhcmUgMTAwKyBvY2N1cnJlbmNlcywgYnV0DQptb3N0IG9mIHRoZW0gYXBwZWFyIGlu IDNyZCBwYXJ0eSBjb2RlcyBsaWtlIG9wZW5zc2wsIEJyb3RsaUNvbXByZXNzIGFuZA0KZXRjLg0K DQpTbyBJIGFtIGxlYW5pbmcgdG93YXJkIHRvIGF2b2lkIHVzaW5nIHJlbGF0aXZlIHBhdGhzIGZv ciBpbmNsdWRlIGZpbGVzLA0KYnV0IGFueXdheSwgdGhhbmtzIGZvciByYWlzaW5nIHRoaXMgaWRl YSBoZXJlLg0KDQo+IA0KPiA+ICsNCj4gPiAgJWRlZmluZSBNU1JfSUEzMl9NSVNDX0VOQUJMRSAw eDFBMA0KPiA+ICAlZGVmaW5lIE1TUl9FRkVSICAgICAgMHhjMDAwMDA4MA0KPiA+ICAlZGVmaW5l IE1TUl9FRkVSX1hEICAgMHg4MDANCj4gPiBAQCAtMjA0LDYgKzIwNiw3IEBAIEFTTV9QRlgoU21p SGFuZGxlcik6DQo+ID4gICAgICB3cm1zcg0KPiA+DQo+ID4gIC43Og0KPiA+ICsgICAgU3R1ZmZS c2IzMg0KPiA+ICAgICAgcnNtDQo+ID4NCj4gPiAgQVNNX1BGWChnY1NtaUhhbmRsZXJTaXplKTog RFcgJCAtIF9TbWlFbnRyeVBvaW50DQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlTbW1D cHVEeGVTbW0vSWEzMi9TbW1Jbml0Lm5hc20NCj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21t L0lhMzIvU21tSW5pdC5uYXNtDQo+ID4gaW5kZXggNWZmM2NkMmU3My4uMzIyYjFhYjU1NiAxMDA2 NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lhMzIvU21tSW5pdC5uYXNt DQo+ID4gKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1NtbUluaXQubmFzbQ0K PiA+IEBAIC0xOCw2ICsxOCw4IEBADQo+ID4gIDsNCj4gPiAgOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPg0KPiA+ICslaW5jbHVkZSAiU3R1ZmZSc2IuaW5jIg0KPiA+ICsNCj4gPiAgZXh0ZXJu IEFTTV9QRlgoU21tSW5pdEhhbmRsZXIpDQo+ID4gIGV4dGVybiBBU01fUEZYKG1SZWJhc2VkRmxh ZykNCj4gPiAgZXh0ZXJuIEFTTV9QRlgobVNtbVJlbG9jYXRpb25PcmlnaW5hbEFkZHJlc3MpDQo+ ID4gQEAgLTc1LDYgKzc3LDcgQEAgQklUUyAzMg0KPiA+ICAgICAgbW92ICAgICBlc3AsIHN0cmlj dCBkd29yZCAwICAgICAgICAgOyBzb3VyY2Ugb3BlcmFuZCB3aWxsIGJlIHBhdGNoZWQNCj4gPiAg QVNNX1BGWChnUGF0Y2hTbW1Jbml0U3RhY2spOg0KPiA+ICAgICAgY2FsbCAgICBBU01fUEZYKFNt bUluaXRIYW5kbGVyKQ0KPiA+ICsgICAgU3R1ZmZSc2IzMg0KPiA+ICAgICAgcnNtDQo+ID4NCj4g PiAgQklUUyAxNg0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lh MzIvU3R1ZmZSc2IuaW5jDQo+IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9JYTMyL1N0dWZm UnNiLmluYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4u M2ZkNDgxYThkMw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9VZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL0lhMzIvU3R1ZmZSc2IuaW5jDQo+ID4gQEAgLTAsMCArMSw1NSBAQA0KPiA+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsNCj4gPiArOyBDb3B5cmlnaHQgKGMpIDIwMTgs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArOyBUaGlz IHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4gKzsgYXJlIGxpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhlIEJTRA0KPiBMaWNlbnNlDQo+ID4gKzsgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmli dXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0K PiA+ICs7IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuDQo+ ID4gKzsNCj4gPiArOyBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJ Q0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gPiArOyBXSVRIT1VUIFdBUlJBTlRJRVMg T1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBM SUVELg0KPiA+ICs7DQo+ID4gKzsgQWJzdHJhY3Q6DQo+ID4gKzsNCj4gPiArOyAgIFRoaXMgaXMg dGhlIGVxdWF0ZXMgZmlsZSBmb3IgU3R1ZmZpbmcgdGhlIFJldHVybiBTdGFjayBCdWZmZXIgKFJT QikNCj4gDQo+ICg2KSBJIHRoaW5rIHdlIHNob3VsZG4ndCBjYWxsIHRoaXMgYW4gRVFVIGZpbGUg aW4gdGhlIGNvbW1lbnQgYWJvdmU7IHdlDQo+IGFyZSBwcm92aWRpbmcgYSBtYWNybyBkZWZpbml0 aW9uLiBNYXliZSBzYXkgIlRoaXMgZmlsZSBwcm92aWRlcyBtYWNybw0KPiBkZWZpbml0aW9ucyBm b3IgU3R1ZmZpbmcgdGhlIFJldHVybiBTdGFjayBCdWZmZXIgKFJTQikiLg0KDQpZZXMuICdtYWNy byBkZWZpbml0aW9ucycgaXMgbXVjaCBtb3JlIGJldHRlciBoZXJlLiBJIHdpbGwgdXBkYXRlIHRo ZQ0KY29tbWVudHMuDQoNCj4gDQo+IA0KPiBPdGhlcndpc2UsIHRoZSBwYXRjaCBsb29rcyBnb29k IHRvIG1lLiBUaGlzIGlzIHRvIHNheSB0aGF0IHdoYXQgaXQgZG9lcw0KPiBkb2VzIG5vdCBsb29r IGJyb2tlbiB0byBtZSAoaS5lLiBpdCBhcHBlYXJzICJzb3VuZCIpOyBob3dldmVyIEkgY2FuJ3QN Cj4gdGVsbCB3aGV0aGVyIGl0IGFjdHVhbGx5IHN1ZmZpY2VzIGZvciB0aGUgc3RhdGVkIHB1cnBv c2UgKGkuZS4gaWYgaXQgaXMNCj4gImNvbXBsZXRlIikuIEZvciB0aGF0IHJlYXNvbiwgSSBwcmVm ZXIgdG8gZ2l2ZSBhbiBBLWIgcmF0aGVyIHRoYW4gYW4NCj4gUi1iOg0KPiANCj4gQWNrZWQtYnk6 IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IA0KPiAoVGhlIHN0YWNrIGZvb3Rw cmludCBpcyAzMio0PTEyOCBieXRlcyBpbiB0aGUgSUEzMiBjYXNlIGFuZCAzMio4PTI1Ng0KPiBi eXRlcyBpbiB0aGUgWDY0IGNhc2U7IEkgdGhpbmsgdGhhdCBzaG91bGQgY29udmVuaWVudGx5IGZp dCBpbiB0aGUNCj4gb3V0ZXJtb3N0IHBhcnQgb2YgdGhlIFNNTSBzdGFjay4pDQo+IA0KPiANCj4g RnVydGhlcm1vcmUsIEkndmUgdGVzdGVkIHRoaXMuIFVzaW5nIHRoZSBRMzUgbWFjaGluZSB0eXBl LCB3aXRoIHRoZQ0KPiBzZXJpZXMgYnVpbHQgaW50byBPVk1GIHdpdGggLUQgU01NX1JFUVVJUkUs IG9uIHRvcCBvZiBjb21taXQNCj4gYjkxMzBjODY2ZGMwLiBJIHVzZWQgdGhlIHRlc3RzIGRlc2Ny aWJlZCBoZXJlOg0KPiA8aHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS90aWFub2NvcmUuZ2l0 aHViLmlvL3dpa2kvVGVzdGluZy1TTU0td2l0aC0NCj4gUUVNVSwtS1ZNLWFuZC1saWJ2aXJ0Pi4N Cj4gDQo+IC0gd2l0aCBMaW51eCBndWVzdHM6DQo+ICAgLSBGZWRvcmEgKElBMzIpDQo+ICAgLSBG ZWRvcmEgKElBMzJYNjQpDQo+ICAgLSBSSEVMNyAoSUEzMlg2NCkNCj4gDQo+IC0gd2l0aCBXaW5k b3dzIGd1ZXN0cyAoYWxsIElBMzJYNjQpOg0KPiAgIC0gV2luZG93cyA3DQo+ICAgLSBXaW5kb3dz IFNlcnZlciAyMDA4IFIyDQo+ICAgLSBXaW5kb3dzIDguMQ0KPiAgIC0gV2luZG93cyBTZXJ2ZXIg MjAxMiBSMg0KPiAgIC0gV2luZG93cyAxMA0KPiAgIC0gV2luZG93cyBTZXJ2ZXIgMjAxNiAoYm9v dCBvbmx5LCBkaWRuJ3QgdGVzdCBTMykNCj4gDQo+IEFnYWluLCBzZWUgdGhlICJzb3VuZCIgdnMu ICJjb21wbGV0ZSIgZGlzdGluY3Rpb24gLS0gSSBjYW4ndCB0ZXN0DQo+IHdoZXRoZXIgdGhlIHBh dGNoIGFjdGl2ZWx5IGZpeGVzIGEgInJldHBvbGluZSBpbnRlcmZlcmVuY2UiIGlzc3VlOyBJIGNh bg0KPiBvbmx5IHNheSBpdCBhcHBlYXJzIHRvIHJlZ3Jlc3Mgbm90aGluZyBmb3IgbWUuDQo+IA0K PiBSZWdyZXNzaW9uLXRlc3RlZC1ieTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4N Cj4gDQo+IChQbGVhc2UgcmVtZW1iZXIgdGhhdCB0aGUgYWJvdmUgdGFncyBhcmUgY29uZGl0aW9u YWwgb24gZml4aW5nICgxKQ0KPiB0aHJvdWdoICg0KSwgYW5kICg2KS4gSXQncyBPSyB0byBpZ25v cmUgKDUpLikNCg0KVGhhbmtzIGEgbG90IGZvciB0aGUgcmV2aWV3IGFuZCB0ZXN0IGVmZm9ydC4N Ckkgd2lsbCBzZW5kIGEgbmV3IHNlcmllcyB0byBhZGRyZXNzIHlvdXIgY29tbWVudCAxfjQgYW5k IDYuDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQo+IA0KPiBUaGFua3MsDQo+IExhc3psbw0K