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.43; helo=mga05.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 DE8DA211575DF for ; Tue, 25 Sep 2018 18:14:10 -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 fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Sep 2018 18:14:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,304,1534834800"; d="scan'208";a="86567272" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga003.jf.intel.com with ESMTP; 25 Sep 2018 18:14:04 -0700 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 25 Sep 2018 18:13:52 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 25 Sep 2018 18:13:52 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.183]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.220]) with mapi id 14.03.0319.002; Wed, 26 Sep 2018 09:13:50 +0800 From: "Wu, Hao A" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" , "Gao, Liming" , "Kinney, Michael D" Thread-Topic: [edk2] [PATCH v2 1/5] MdePkg/BaseLib: Add new AsmLfence API Thread-Index: AQHUVJbWCEECDlJQR06dgHiEAaOmhaUAcEGAgAFSPDA= Date: Wed, 26 Sep 2018 01:13:49 +0000 Message-ID: References: <20180925061259.31680-1-hao.a.wu@intel.com> <20180925061259.31680-2-hao.a.wu@intel.com> In-Reply-To: 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/5] MdePkg/BaseLib: Add new AsmLfence API 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, 26 Sep 2018 01:14:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDI1LCAyMDE4 IDk6MDEgUE0NCj4gVG86IFd1LCBIYW8gQTsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6 IFlhbywgSmlld2VuOyBHYW8sIExpbWluZzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gU3ViamVjdDog UmU6IFtlZGsyXSBbUEFUQ0ggdjIgMS81XSBNZGVQa2cvQmFzZUxpYjogQWRkIG5ldyBBc21MZmVu Y2UgQVBJDQo+IA0KPiBIaSBIYW8sDQo+IA0KPiBPbiAwOS8yNS8xOCAwODoxMiwgSGFvIFd1IHdy b3RlOg0KPiA+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dp P2lkPTExOTMNCj4gPg0KPiA+IFRoaXMgY29tbWl0IHdpbGwgYWRkIGEgbmV3IEJhc2VMaWIgQVBJ IEFzbUxmZW5jZSgpLiBUaGlzIEFQSSB3aWxsIHBlcmZvcm0NCj4gPiBhIHNlcmlhbGl6aW5nIG9w ZXJhdGlvbiBvbiBhbGwgbG9hZC1mcm9tLW1lbW9yeSBpbnN0cnVjdGlvbnMgdGhhdCB3ZXJlDQo+ ID4gaXNzdWVkIHByaW9yIHRvIHRoZSBjYWxsIG9mIHRoaXMgZnVuY3Rpb24uIFBsZWFzZSBub3Rl IHRoYXQgdGhpcyBBUEkgaXMNCj4gPiBvbmx5IGF2YWlsYWJsZSBvbiBJQS0zMiBhbmQgeDY0Lg0K PiA+DQo+ID4gVGhlIHB1cnBvc2Ugb2YgYWRkaW5nIHRoaXMgQVBJIGlzIHRvIG1pdGlnYXRlIG9m IHRoZSBbQ1ZFLTIwMTctNTc1M10NCj4gPiBCb3VuZHMgQ2hlY2sgQnlwYXNzIGlzc3VlIHdoZW4g dW50cnVzdGVkIGRhdGEgYXJlIGJlaW5nIHByb2Nlc3NlZCB3aXRoaW4NCj4gPiBTTU0uIE1vcmUg ZGV0YWlscyBjYW4gYmUgcmVmZXJyZWQgYXQgdGhlICdCb3VuZHMgY2hlY2sgYnlwYXNzIG1pdGln YXRpb24nDQo+ID4gc2VjdGlvbiBhdCB0aGUgYmVsb3cgbGluazoNCj4gPg0KPiA+IGh0dHBzOi8v c29mdHdhcmUuaW50ZWwuY29tL3NlY3VyaXR5LXNvZnR3YXJlLWd1aWRhbmNlL2luc2lnaHRzL2hv c3QtDQo+IGZpcm13YXJlLXNwZWN1bGF0aXZlLWV4ZWN1dGlvbi1zaWRlLWNoYW5uZWwtbWl0aWdh dGlvbg0KPiA+DQo+ID4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8u b3JnPg0KPiA+IENjOiBMZWlmIExpbmRob2xtIDxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+DQo+ ID4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gQ2M6IEppZXdlbiBZ YW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0Bp bnRlbC5jb20+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24g QWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IEhhbyBXdSA8aGFvLmEud3VAaW50ZWwu Y29tPg0KPiA+IC0tLQ0KPiA+ICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaCAgICAg ICAgfCAxMyArKysrKysrDQo+ID4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYg ICAgICB8ICAyICsrDQo+ID4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvSWEzMi9MZmVuY2UubmFz bSB8IDM3ICsrKysrKysrKysrKysrKysrKysNCj4gPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9Y NjQvTGZlbmNlLm5hc20gIHwgMzggKysrKysrKysrKysrKysrKysrKysNCj4gPiAgNCBmaWxlcyBj aGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0lu Y2x1ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4gYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VM aWIuaA0KPiA+IGluZGV4IDEyM2FlMTlkYzIuLjY1NmI3NzM2YjEgMTAwNjQ0DQo+ID4gLS0tIGEv TWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4gPiArKysgYi9NZGVQa2cvSW5jbHVk ZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiA+IEBAIC05MTM5LDYgKzkxMzksMTkgQEAgQXNtV3JpdGVU ciAoDQo+ID4gICAgKTsNCj4gPg0KPiA+ICAvKioNCj4gPiArICBQZXJmb3JtcyBhIHNlcmlhbGl6 aW5nIG9wZXJhdGlvbiBvbiBhbGwgbG9hZC1mcm9tLW1lbW9yeSBpbnN0cnVjdGlvbnMgdGhhdA0K PiA+ICsgIHdlcmUgaXNzdWVkIHByaW9yIHRoZSBBc21MZmVuY2UgZnVuY3Rpb24uDQo+ID4gKw0K PiA+ICsgIEV4ZWN1dGVzIGEgTEZFTkNFIGluc3RydWN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9u bHkgYXZhaWxhYmxlIG9uIElBLTMyIGFuZA0KPiB4NjQuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiAr Vk9JRA0KPiA+ICtFRklBUEkNCj4gPiArQXNtTGZlbmNlICgNCj4gPiArICBWT0lEDQo+ID4gKyAg KTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICAgIFBhdGNoIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBv ZiBhbiBJQTMyIG9yIFg2NCBpbnN0cnVjdGlvbiBzdWNoIHRoYXQgdGhlDQo+IGJ5dGUsDQo+ID4g ICAgd29yZCwgZHdvcmQgb3IgcXdvcmQgb3BlcmFuZCBpcyBlbmNvZGVkIGF0IHRoZSBlbmQgb2Yg dGhlIGluc3RydWN0aW9uJ3MNCj4gPiAgICBiaW5hcnkgcmVwcmVzZW50YXRpb24uDQo+ID4gZGlm ZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYNCj4gYi9NZGVQa2cv TGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ID4gaW5kZXggYTFiNWVjNGI3NS4uZWQxNWMw MjVmOSAxMDA2NDQNCj4gPiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5m DQo+ID4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0KPiA+IEBAIC02 OCw2ICs2OCw3IEBADQo+ID4NCj4gPiAgW1NvdXJjZXMuSWEzMl0NCj4gPiAgICBJYTMyL1dyaXRl VHIubmFzbQ0KPiA+ICsgIElhMzIvTGZlbmNlLm5hc20NCj4gPg0KPiA+ICAgIElhMzIvV2JpbnZk LmMgfCBNU0ZUDQo+ID4gICAgSWEzMi9Xcml0ZU1tNy5jIHwgTVNGVA0KPiA+IEBAIC0zNDYsNiAr MzQ3LDcgQEANCj4gPiAgICBYNjQvRW5hYmxlQ2FjaGUubmFzbQ0KPiA+ICAgIFg2NC9EaXNhYmxl Q2FjaGUubmFzbQ0KPiA+ICAgIFg2NC9Xcml0ZVRyLm5hc20NCj4gPiArICBYNjQvTGZlbmNlLm5h c20NCj4gPg0KPiA+ICAgIFg2NC9DcHVCcmVha3BvaW50LmMgfCBNU0ZUDQo+ID4gICAgWDY0L1dy aXRlTXNyNjQuYyB8IE1TRlQNCj4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxp Yi9JYTMyL0xmZW5jZS5uYXNtDQo+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9JYTMyL0xmZW5j ZS5uYXNtDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi5m OGIyNTUwZWY4DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VMaWIvSWEzMi9MZmVuY2UubmFzbQ0KPiA+IEBAIC0wLDAgKzEsMzcgQEANCj4gPiArOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSA7DQo+ID4gKzsgQ29weXJpZ2h0IChjKSAyMDE4LCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKzsgVGhpcyBwcm9ncmFtIGFu ZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+ICs7IGFyZSBsaWNlbnNlZCBhbmQgbWFk ZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4g TGljZW5zZQ0KPiA+ICs7IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhl IGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gPiArOyBodHRw Oi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLg0KPiA+ICs7DQo+ID4g KzsgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFO ICJBUyBJUyINCj4gQkFTSVMsDQo+ID4gKzsgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VO VEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPiAr Ow0KPiA+ICs7IE1vZHVsZSBOYW1lOg0KPiA+ICs7DQo+ID4gKzsgICBMZmVuY2UubmFzbQ0KPiA+ ICs7DQo+ID4gKzsgQWJzdHJhY3Q6DQo+ID4gKzsNCj4gPiArOyAgIFBlcmZvcm1zIGEgc2VyaWFs aXppbmcgb3BlcmF0aW9uIG9uIGFsbCBsb2FkLWZyb20tbWVtb3J5IGluc3RydWN0aW9ucw0KPiB0 aGF0DQo+ID4gKzsgICB3ZXJlIGlzc3VlZCBwcmlvciB0byB0aGUgY2FsbCBvZiB0aGlzIGZ1bmN0 aW9uLg0KPiA+ICs7DQo+ID4gKzsgTm90ZXM6DQo+ID4gKzsNCj4gPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiA+ICsNCj4gPiArICAgIFNFQ1RJT04gLnRleHQNCj4gPiArDQo+ID4gKzstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyBWT0lEDQo+ID4gKzsgRUZJQVBJDQo+ID4gKzsgQXNt TGZlbmNlICgNCj4gPiArOyAgIFZPSUQNCj4gPiArOyAgICk7DQo+ID4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiArZ2xvYmFsIEFTTV9QRlgoQXNtTGZlbmNlKQ0KPiA+ICtBU01fUEZYKEFz bUxmZW5jZSk6DQo+ID4gKyAgICBsZmVuY2UNCj4gPiArICAgIHJldA0KPiA+ICsNCj4gPiBkaWZm IC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQvTGZlbmNlLm5hc20NCj4gYi9NZGVQ a2cvTGlicmFyeS9CYXNlTGliL1g2NC9MZmVuY2UubmFzbQ0KPiA+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uZTgxYzc3OTY0Yg0KPiA+IC0tLSAvZGV2L251bGwN Cj4gPiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1g2NC9MZmVuY2UubmFzbQ0KPiA+IEBA IC0wLDAgKzEsMzggQEANCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA7DQo+ID4gKzsgQ29w eXJpZ2h0IChjKSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ID4gKzsgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0K PiA+ICs7IGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFu ZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5zZQ0KPiA+ICs7IHdoaWNoIGFjY29tcGFu aWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkg YmUNCj4gZm91bmQgYXQNCj4gPiArOyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNk LWxpY2Vuc2UucGhwLg0KPiA+ICs7DQo+ID4gKzsgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQg VU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+ID4gKzsgV0lU SE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+ IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPiArOw0KPiA+ICs7IE1vZHVsZSBOYW1lOg0KPiA+ICs7 DQo+ID4gKzsgICBMZmVuY2UubmFzbQ0KPiA+ICs7DQo+ID4gKzsgQWJzdHJhY3Q6DQo+ID4gKzsN Cj4gPiArOyAgIFBlcmZvcm1zIGEgc2VyaWFsaXppbmcgb3BlcmF0aW9uIG9uIGFsbCBsb2FkLWZy b20tbWVtb3J5IGluc3RydWN0aW9ucw0KPiB0aGF0DQo+ID4gKzsgICB3ZXJlIGlzc3VlZCBwcmlv ciB0byB0aGUgY2FsbCBvZiB0aGlzIGZ1bmN0aW9uLg0KPiA+ICs7DQo+ID4gKzsgTm90ZXM6DQo+ ID4gKzsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiArICAgIERFRkFV TFQgUkVMDQo+ID4gKyAgICBTRUNUSU9OIC50ZXh0DQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gKzsgVk9JRA0KPiA+ICs7IEVGSUFQSQ0KPiA+ICs7IEFzbUxmZW5jZSAo DQo+ID4gKzsgICBWT0lEDQo+ID4gKzsgICApOw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4gK2dsb2JhbCBBU01fUEZYKEFzbUxmZW5jZSkNCj4gPiArQVNNX1BGWChBc21MZmVuY2Up Og0KPiA+ICsgICAgbGZlbmNlDQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4NCj4gDQo+ICJnaXQt YW0iIGNvbXBsYWluZWQgYWJvdXQgdGhpcyBwYXRjaDoNCj4gDQo+ID4gQXBwbHlpbmc6IE1kZVBr Zy9CYXNlTGliOiBBZGQgbmV3IEFzbUxmZW5jZSBBUEkNCj4gPiAuZ2l0L3JlYmFzZS1hcHBseS9w YXRjaDo5NDogbmV3IGJsYW5rIGxpbmUgYXQgRU9GLg0KPiA+ICsNCj4gPiAuZ2l0L3JlYmFzZS1h cHBseS9wYXRjaDoxMzg6IG5ldyBibGFuayBsaW5lIGF0IEVPRi4NCj4gPiArDQo+ID4gd2Fybmlu ZzogMiBsaW5lcyBhZGQgd2hpdGVzcGFjZSBlcnJvcnMuDQo+IA0KPiBUaGUgbWVzc2FnZSBzZWVt cyB0byByZWZlciB0byB0aGUgdHdvIG5ldyBOQVNNIGZpbGVzLg0KPiANCj4gKEkgdGhpbmsgaXQn cyBPSyB0byBzdHJpcCB0aG9zZSBlbXB0eSBsaW5lcyBiZWZvcmUgcHVzaGluZy4pDQoNCkhpIExh c3psbywNCg0KQWZ0ZXIgc29tZSBxdWljayBjaGVja3MsIEkgZm91bmQgdGhhdCBib3RoIHRoZSBu ZXdseSBpbnRyb2R1Y2VkIE5BU00gZmlsZXMNCmhhdmUgYW4gZXh0cmEgZW1wdHkgbGluZSBiZWZv cmUgdGhlIEVPRi4NCg0KSSB3aWxsIHJlbW92ZSB0aGVtIGFuZCBqdXN0IGtlZXAgb25lIGVtcHR5 IGxpbmUgYmVmb3JlIEVPRiBmb3IgdGhvc2UgMiANCk5BU00gZmlsZXMuDQoNClRoYW5rcyBmb3Ig c3BvdHRpbmcgdGhlIGlzc3VlLg0KDQpCZXN0IFJlZ2FyZHMsDQpIYW8gV3UNCg0KPiANCj4gVGhh bmtzDQo+IExhc3psbw0K