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=jiewen.yao@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 E3136208AE9A9 for ; Wed, 6 Mar 2019 21:07:16 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Mar 2019 21:07:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,450,1544515200"; d="scan'208";a="168086530" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga001.jf.intel.com with ESMTP; 06 Mar 2019 21:07:16 -0800 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 6 Mar 2019 21:07:11 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 6 Mar 2019 21:07:10 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.163]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.26]) with mapi id 14.03.0415.000; Thu, 7 Mar 2019 13:06:50 +0800 From: "Yao, Jiewen" To: Andrew Fish , "Kinney, Michael D" CC: "Gao, Liming" , edk2-devel-01 Thread-Topic: [edk2] [PATCH 3/3] MdePkg/BaseSynchronizationLib: Remove inline X86 assembly code Thread-Index: AQHU05YqeJOPQtHvH0qxU5X+IVYthKX9CLMAgAATyACAAa+GgIAAA6MAgAAOCICAAL09gA== Date: Thu, 7 Mar 2019 05:06:50 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503F556F4E@shsmsx102.ccr.corp.intel.com> References: <20190305014059.17988-1-shenglei.zhang@intel.com> <20190305014059.17988-4-shenglei.zhang@intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3FBBC2@SHSMSX104.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3FCC47@SHSMSX104.ccr.corp.intel.com> <47E8FE4A-4BDC-48A3-B7E6-02F1682C0990@apple.com> In-Reply-To: <47E8FE4A-4BDC-48A3-B7E6-02F1682C0990@apple.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZWI5NTM3OWQtMmRkZS00YjZhLWJiNTctNTE0NGJlODExYTJmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiMWVqeU9yK2xPUEtUTG1uZWpQWVhpXC96ZEpjZGVjcTJPY01qRUt1cGJJWmdUYzFQU1wvR2tmN1ZPY3hCRFY5QzhDIn0= 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 3/3] MdePkg/BaseSynchronizationLib: Remove inline X86 assembly code 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: Thu, 07 Mar 2019 05:07:17 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SEkgTWlrZSBhbmQgQW5kcmV3DQpUaGUgcHJvYmxlbSBpcyBtYWludGFpbmFiaWxpdHkuDQoNCklm IHdlIGhhdmUgbXVsdGlwbGUgY29weSBvZiBpbXBsZW1lbnRhdGlvbiwgYSBkZXZlbG9wZXIgbmVl ZCB2ZXJpZnkgbXVsdGlwbGUgY29weSBvZiBpbXBsZW1lbnRhdGlvbiwgaWYgd2UgbWFrZSB1cGRh dGUuIEJlZm9yZSB0aGF0LCBhIGRldmVsb3BlciBoYXMgdG8gYmUgYXdhcmUgdGhhdCB0aGVyZSBp cyBtdWx0aXBsZSBjb3B5IG9mIGltcGxlbWVudGF0aW9uLiAtIFRoYXQgaW5jcmVhc2VzIHRoZSBj b21wbGV4aXR5Lg0KDQpJZiB3ZSBoYXZlIGV2ZXJ5dGhpbmcsIHRoZXJlIE1BWSBiZSA1IGNvcHkg LSBBU00sIE5BU00sIFMsIEdDQyBpbmxpbmUsIE1TIGlubGluZSwgdGhlb3JldGljYWxseS4NCk5v dywgd2UgcmVtb3ZlIEFTTS4gSXQgaXMgZ29vZCBmaXJzdCBzdGVwLg0KQnV0IHdlIG1heSBzdGls bCBoYXZlIDQgY29waWVzLiBJIHN1Z2dlc3Qgd2UgY29uc2lkZXIgZG8gbW9yZS4NCg0KQSByZWNl bnRseSBjYXNlIHRoYXQgU2V0SnVtcC9Mb25nSnVtcCwgSSB1cGRhdGVkIHRoZSBOQVNNIGZpbGUg Zm9yIGJvdGggSUEzMiBhbmQgWDY0Lg0KDQpMYXRlciwgdG8gbXkgc3VycHJpc2UsIG9ubHkgWDY0 IHZlcnNpb24gTkFTTSB3b3JrcywgYW5kIElBMzIgdmVyc2lvbiBOQVNNIGRvZXMgbm90IHdvcmsu DQpUaGVuIEkgbm90aWNlIHRoYXQgdGhlcmUgaXMgYSBkaWZmZXJlbnQgY29weSBpZiBJQTMyIEp1 bXAuYyBNUyBpbmxpbmUgLSBJIGFsc28gbmVlZCB1cGRhdGUuIFRoYXQgaXMgZnJ1c3RyYXRlZC4N Cg0KSSB0aGluayB0aGVyZSBzaG91bGQgYmUgYSBiYWxhbmNlIGJldHdlZW4gb3B0aW1pemF0aW9u IGFuZCBjb2RlIHJlYWRhYmlsaXR5L21haW50YWluYWJpbGl0eS4NCg0KRG8gd2UgaGF2ZSBkYXRh IG9uIHdoYXQgc2l6ZSBiZW5lZml0IHdlIGNhbiBnZXQgd2l0aCB0aGVzZSBpbmxpbmUgZnVuY3Rp b24sIGZyb20gd2hvbGUgaW1hZ2UgbGV2ZWw/DQpXZSBjYW4gZG8gZXZhbHVhdGlvbiBhdCBmdW5j dGlvbiBsZXZlbCwgY2FzZSBieSBjYXNlLg0KSWYgd2Ugc2VlIGEgaHVnZSBzaXplIGJlbmVmaXQs IEkgYWdyZWUgdG8ga2VlcCB0aGlzIGZ1bmN0aW9uLg0KSWYgd2Ugc2VlIG5vIHNpemUgYmVuZWZp dCwgSSBzdWdnZXN0IHdlIGRvIHRoZSBjbGVhbnVwIGZvciB0aGlzIGZ1bmN0aW9uLg0KDQoNClRo YW5rIHlvdQ0KWWFvIEppZXdlbg0KDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9y Z10gT24gQmVoYWxmIE9mDQo+IEFuZHJldyBGaXNoIHZpYSBlZGsyLWRldmVsDQo+IFNlbnQ6IFdl ZG5lc2RheSwgTWFyY2ggNiwgMjAxOSA1OjMxIFBNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENjOiBlZGsyLWRldmVsLTAxIDxlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZz47IEdhbywgTGltaW5nDQo+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4N Cj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMy8zXSBNZGVQa2cvQmFzZVN5bmNocm9uaXph dGlvbkxpYjogUmVtb3ZlDQo+IGlubGluZSBYODYgYXNzZW1ibHkgY29kZQ0KPiANCj4gDQo+IA0K PiA+IE9uIE1hciA2LCAyMDE5LCBhdCA0OjQxIFBNLCBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gTGltaW5nLA0KPiA+DQo+ ID4gVGhhdCBkb2VzIG5vdCB3b3JrIGVpdGhlciBiZWNhdXNlIGlubGluZSBhc3NlbWJseSB1c2Vz IGNvbXBpbGVyIHNwZWNpZmljDQo+IHN5bnRheC4NCj4gPg0KPiA+IFBsZWFzZSB1cGRhdGUgd2l0 aCB0aGUgc3BlY2lmaWMgbGlzdCBvZiBmdW5jdGlvbnMgdGhhdCB5b3UgdGhpbmsgdGhlIGlubGlu ZQ0KPiBzaG91bGQgYmUgcmVtb3ZlZCB0byBpbXByb3ZlIG1haW50ZW5hbmNlIHdpdGggbm8gaW1w YWN0cyBpbiBzaXplL3BlcmYuDQo+ID4NCj4gDQo+IE1pa2UsDQo+IA0KPiBJdCBpcyBlYXN5IHRv IGZpbmQgdGhlIGdjYy9jbGFuZyBpbmxpbmUgYXNzZW1ibGVyLCBqdXN0IGBnaXQgZ3JlcCAiX19h c21fXw0KPiBfX3ZvbGF0aWxlX18iYA0KPiANCj4gVGhlIG1haW4gZmlsZXMgYXJlOg0KPiBodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxvYi9tYXN0ZXIvTWRlUGtnL0xpYnJhcnkv QmFzZUlvTGliDQo+IEludHJpbnNpYy9Jb0xpYkdjYy5jDQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90 aWFub2NvcmUvZWRrMi9ibG9iL21hc3Rlci9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1gNCj4gNjQv R2NjSW5saW5lLmMNCj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFz dGVyL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvSQ0KPiBhMzIvR2NjSW5saW5lLmMNCj4gaHR0cHM6 Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL01kZVBrZy9MaWJyYXJ5L0Jh c2VTeW5jDQo+IGhyb25pemF0aW9uTGliL0lhMzIvR2NjSW5saW5lLmMNCj4gaHR0cHM6Ly9naXRo dWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5j DQo+IGhyb25pemF0aW9uTGliL1g2NC9HY2NJbmxpbmUuYw0KPiANCj4gVGhpcyBpcyByZWFsbHkg anVzdCBjb21waWxlciBvcHRpbWl6ZXIgY29udHJvbC4NCj4gTGlicmFyeS9CYXNlU3luY2hyb25p emF0aW9uTGliL1N5bmNocm9uaXphdGlvbkdjYy5jOjIxOiNkZWZpbmUNCj4gX1JlYWRXcml0ZUJh cnJpZXIoKSBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fICgiIjogOiA6ICJtZW1vcnkiKTsgfSB3 aGlsZSgwKQ0KPiANCj4gTG9va3MgbGlrZSB0aGlzIGlzIHdvcmtpbmcgYXJvdW5kIHRoZSBhbGln bm1lbnQgQVNTRVJUIGluIEJhc2VJb0xpYkludHJpbnNpYy4NCj4gT3ZtZlBrZy9RZW11VmlkZW9E eGUvVW5hbGlnbmVkSW9HY2MuYzo0MzogIF9fYXNtX18gX192b2xhdGlsZV9fDQo+ICggIm91dGwg JTAsICUxIiA6IDogImEiIChWYWx1ZSksICJkIiAoKFVJTlQxNilQb3J0KSApOw0KPiBPdm1mUGtn L1FlbXVWaWRlb0R4ZS9VbmFsaWduZWRJb0djYy5jOjY3OiAgX19hc21fXyBfX3ZvbGF0aWxlX18N Cj4gKCAiaW5sICUxLCAlMCIgOiAiPWEiIChEYXRhKSA6ICJkIiAoKFVJTlQxNilQb3J0KSApOw0K PiANCj4gSXQgc2VlbXMgbGlrZSB3ZSBoYXZlIGEgcmVhc29uYWJsZSBzZXQgYW5kIHNob3VsZCBu b3QgdXNlIHRoZSBpbmxpbmUNCj4gYXNzZW1ibHkgZm9yIGFueSBtb3JlIGNvbXBsZXggY29kZS4N Cj4gDQo+IFRoYW5rcywNCj4gDQo+IEFuZHJldyBGaXNoDQo+IA0KPiA+IFRoZSBpc3N1ZSB5b3Ug cG9pbnRlZCB0byB3YXMgYXJvdW5kIFNldEp1bXAoKS9Mb25nSnVtcCgpLiAgQ2FuIHdlIGxpbWl0 DQo+IHRoaXMgQlogdG8gb25seSB0aG9zZSAyIGZ1bmN0aW9ucz8NCj4gPg0KPiA+IE1pa2UNCj4g PiDCoCA8Pg0KPiA+IEZyb206IEdhbywgTGltaW5nDQo+ID4gU2VudDogV2VkbmVzZGF5LCBNYXJj aCA2LCAyMDE5IDQ6MjggUE0NCj4gPiBUbzogYWZpc2hAYXBwbGUuY29tDQo+ID4gQ2M6IFpoYW5n LCBTaGVuZ2xlaSA8c2hlbmdsZWkuemhhbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbC0wMQ0KPiA8 ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMy8zXSBN ZGVQa2cvQmFzZVN5bmNocm9uaXphdGlvbkxpYjogUmVtb3ZlDQo+IGlubGluZSBYODYgYXNzZW1i bHkgY29kZQ0KPiA+DQo+ID4gQW5kcmV3Og0KPiA+ICAgSSB3YW50IHRvIGtlZXAgb25seSBvbmUg aW1wbGVtZW50YXRpb24uIElmIGlubGluZSBhc3NlbWJseSBjIHNvdXJjZSBpcw0KPiBwcmVmZXJy ZWQsIEkgc3VnZ2VzdCB0byByZW1vdmUgaXRzIG5hc20gaW1wbGVtZW50YXRpb24uDQo+ID4NCj4g PiBUaGFua3MNCj4gPiBMaW1pbmcNCj4gPiAgPD5Gcm9tOiBhZmlzaEBhcHBsZS5jb20gPG1haWx0 bzphZmlzaEBhcHBsZS5jb20+DQo+IFttYWlsdG86YWZpc2hAYXBwbGUuY29tIDxtYWlsdG86YWZp c2hAYXBwbGUuY29tPl0NCj4gPiBTZW50OiBUdWVzZGF5LCBNYXJjaCA1LCAyMDE5IDI6NDQgUE0N Cj4gPiBUbzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tIDxtYWlsdG86bGltaW5n Lmdhb0BpbnRlbC5jb20+Pg0KPiA+IENjOiBaaGFuZywgU2hlbmdsZWkgPHNoZW5nbGVpLnpoYW5n QGludGVsLmNvbQ0KPiA8bWFpbHRvOnNoZW5nbGVpLnpoYW5nQGludGVsLmNvbT4+OyBlZGsyLWRl dmVsLTAxDQo+IDxlZGsyLWRldmVsQGxpc3RzLjAxLm9yZyA8bWFpbHRvOmVkazItZGV2ZWxAbGlz dHMuMDEub3JnPj47IEtpbm5leSwNCj4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbQ0KPiA8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj4NCj4gPiBTdWJqZWN0 OiBSZTogW2VkazJdIFtQQVRDSCAzLzNdIE1kZVBrZy9CYXNlU3luY2hyb25pemF0aW9uTGliOiBS ZW1vdmUNCj4gaW5saW5lIFg4NiBhc3NlbWJseSBjb2RlDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4g PiBPbiBNYXIgNSwgMjAxOSwgYXQgMTozMiBQTSwgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50 ZWwuY29tDQo+IDxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+PiB3cm90ZToNCj4gPg0KPiA+ IEFuZHJldzoNCj4gPiAgQlogMTE2MyBpcyB0byByZW1vdmUgaW5saW5lIFg4NiBhc3NlbWJseSBj b2RlIGluIEMgc291cmNlIGZpbGUuIEJ1dCwgdGhpcw0KPiBwYXRjaCBpcyB3cm9uZy4gSSBoYXZl IGdhdmUgbXkgY29tbWVudHMgdG8gdXBkYXRlIHRoaXMgcGF0Y2guDQo+ID4NCj4gPg0KPiA+IFdo eSBkbyB3ZSB3YW50IHRvIHJlbW92ZSBpbmxpbmUgWDg2IGFzc2VtYmx5LiBBcyBJIG1lbnRpb25l ZCBpdCB3aWxsIGxlYWQNCj4gdG8gbGFyZ2VyIGJpbmFyaWVzLCBzbG93ZXIgYmluYXJpZXMsIGFu ZCBsZXNzIG9wdGltaXplZCBjb2RlLg0KPiA+DQo+ID4gRm9yIGV4YW1wbGUgdGFrZSB0aGlzIHNp bXBsZSBpbmxpbmUgYXNzZW1ibHkgZnVuY3Rpb246DQo+ID4NCj4gPiBWT0lEDQo+ID4gRUZJQVBJ DQo+ID4gQ3B1QnJlYWtwb2ludCAoDQo+ID4gICBWT0lEDQo+ID4gICApDQo+ID4gew0KPiA+ICAg X19hc21fXyBfX3ZvbGF0aWxlX18gKCJpbnQgJDMiKTsNCj4gPiB9DQo+ID4NCj4gPg0KPiA+IFRv ZGF5IHdpdGggY2xhbmcgTFRPIHR1cm5lZCBvbiBjYWxsaW5nIENwdUJyZWFrcG9pbnQoKSBsb29r cyBsaWtlIHRoaXMgZnJvbQ0KPiB0aGUgY2FsbGVycyBwb2ludCBvZiB2aWV3Lg0KPiA+DQo+ID4g YS5vdXRbMHgxZmE1XSA8KzY+OiAgY2MgICAgICAgICAgICAgIGludDMNCj4gPg0KPiA+DQo+ID4g QnV0IGlmIHdlIG1vdmUgdGhhdCB0byBOQVNNOg0KPiA+DQo+ID4NCj4gPiBhLm91dFsweDFmYTZd IDwrNz46ICBlOCAwNyAwMCAwMCAwMCAgY2FsbGwNCj4gMHgxZmIyICAgICAgICAgICAgICAgICAg ICA7IENwdUJyZWFrcG9pbnQNCj4gPg0KPiA+DQo+ID4gcGx1czoNCj4gPiBhLm91dGBDcHVCcmVh a3BvaW50Og0KPiA+IGEub3V0WzB4MWZiMl0gPCswPjogY2MgICAgIGludDMNCj4gPiBhLm91dFsw eDFmYjNdIDwrMT46IGMzICAgICByZXRsDQo+ID4NCj4gPg0KPiA+IEFuZCB0aGVyZSBpcyBhbHNv IGFuIGV4dHJhIHB1c2ggYW5kIHBvcCBvbiB0aGUgc3RhY2suIFRoZSBvdGhlciBpc3N1ZSBpcyB0 aGUNCj4gY2FsbCB0byB0aGUgZnVuY3Rpb24gdGhhdCBpcyB1bmtub3duIHRvIHRoZSBjb21waWxl ciB3aWxsIGFjdCBsaWtlIGENCj4gX1JlYWRXcml0ZUJhcnJpZXIgKFlpa2VzIEkgc2VlIF9SZWFk V3JpdGVCYXJyaWVyIGlzIGRlcHJlY2F0ZWQgaW4gVkMrKw0KPiAyMDE3KS4gSXMgdGhlIGRlcHJl Y2lhdGlvbiBvZiBzb21lIG9mIHRoZXNlIGludHJpbnNpY3MgaW4gVkMrKyBkcml2aW5nIHRoZQ0K PiByZW1vdmFsIG9mIGlubGluZSBhc3NlbWJseT8gRm9yIEdDQyBpbmxpbmUgYXNzZW1ibHkgd29y a3MgZ3JlYXQgZm9yIGxvY2FsDQo+IGNvbXBpbGUsIGFuZCBmb3IgY2xhbmcgTFRPIGl0IHdvcmtz IGluIGVudGlyZSBwcm9ncmFtIG9wdGltaXphdGlvbi4NCj4gPg0KPiA+IFRoZSBMVE8gYml0Y29k ZSBpbmNsdWRlcyBpbmxpbmUgYXNzZW1ibHkgYW5kIGNvbnN0cmFpbnRzIHNvIHRoYXQgdGhlDQo+ IG9wdGltaXplciBrbm93cyB3aGF0IHRvIGRvIHNvIGl0IGNhbiBnZXQgb3B0aW1pemVkIGp1c3Qg bGlrZSB0aGUgYWJzdHJhY3QNCj4gYml0Y29kZSBkdXJpbmcgdGhlIExpbmsgVGltZSBPcHRpbWl6 YXRpb24uDQo+ID4NCj4gPiBUaGlzIGlzIENwdUJyZWFrcG9pbnQoKToNCj4gPiA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZCBvcHRub25lIHNzcCB1d3RhYmxlDQo+ID4gZGVmaW5l IHZvaWQgQENwdUJyZWFrcG9pbnQoKSAjMCB7DQo+ID4gICBjYWxsIHZvaWQgYXNtIHNpZGVlZmZl Y3QgImludCAkJDMiLCAifntkaXJmbGFnfSx+e2Zwc3J9LH57ZmxhZ3N9IigpDQo+ICMyLCAhc3Jj bG9jICEzDQo+ID4gICByZXQgdm9pZA0KPiA+IH0NCj4gPg0KPiA+DQo+ID4gVGhpcyBpcyBBc21S ZWFkTXNyNjQoKToNCj4gPiA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZCBvcHRu b25lIHNzcCB1d3RhYmxlDQo+ID4gZGVmaW5lIGk2NCBAQXNtUmVhZE1zcjY0KGkzMikgIzAgew0K PiA+ICAgJTIgPSBhbGxvY2EgaTMyLCBhbGlnbiA0DQo+ID4gICAlMyA9IGFsbG9jYSBpNjQsIGFs aWduIDgNCj4gPiAgIHN0b3JlIGkzMiAlMCwgaTMyKiAlMiwgYWxpZ24gNA0KPiA+ICAgJTQgPSBs b2FkIGkzMiwgaTMyKiAlMiwgYWxpZ24gNA0KPiA+ICAgJTUgPSBjYWxsIGk2NCBhc20gc2lkZWVm ZmVjdCAicmRtc3IiLA0KPiAiPUEse2N4fSx+e2RpcmZsYWd9LH57ZnBzcn0sfntmbGFnc30iKGkz MiAlNCkgIzIsICFzcmNsb2MgITQNCj4gPiAgIHN0b3JlIGk2NCAlNSwgaTY0KiAlMywgYWxpZ24g OA0KPiA+ICAgJTYgPSBsb2FkIGk2NCwgaTY0KiAlMywgYWxpZ24gOA0KPiA+ICAgcmV0IGk2NCAl Ng0KPiA+IH0NCj4gPg0KPiA+DQo+ID4NCj4gPiBJIGFncmVlIGl0IG1ha2Ugc2Vuc2UgdG8gcmVt b3ZlIC5TIGFuZCAuYXNtIGZpbGVzIGFuZCBvbmx5IGhhdmUgLm5hc20gZmlsZXMuDQo+ID4NCj4g PiBUaGFua3MsDQo+ID4NCj4gPiBBbmRyZXcgRmlzaA0KPiA+DQo+ID4gUFMgRm9yIHRoZSBYY29k ZSBjbGFuZyBzaW5jZSBpdCBlbWl0cyBmcmFtZSBwb2ludGVycyBieSBkZWZhdWx0IHdlIG5lZWQg dG8NCj4gYWRkIHRoZSBleHRyYSA0IGJ5dGVzIHRvIHNhdmUgdGhlIGFzc2VtYmx5IGZ1bmN0aW9u cyBzbyB0aGUgc3RhY2sgY2FuIGdldA0KPiB1bndvdW5kLg0KPiA+DQo+ID4gYS5vdXRgQ3B1QnJl YWtwb2ludDoNCj4gPiBhLm91dFsweDFmOTldIDwrMD46IDU1ICAgICBwdXNobCAgJWVicA0KPiA+ IGEub3V0WzB4MWY5YV0gPCsxPjogODkgZTUgIG1vdmwgICAlZXNwLCAlZWJwDQo+ID4gYS5vdXRb MHgxZjljXSA8KzM+OiBjYyAgICAgaW50Mw0KPiA+IGEub3V0WzB4MWY5ZF0gPCs0PjogNWQgICAg IHBvcGwgICAlZWJwDQo+ID4gYS5vdXRbMHgxZjllXSA8KzU+OiBjMyAgICAgcmV0bA0KPiA+DQo+ ID4NCj4gPiBTbyBicmVha3BvaW50IGdvZXMgZnJvbSAxIGJ5dGUgdG8gMTEgYnl0ZXMgaWYgd2Ug Z2V0IHJpZCBvZiB0aGUgaW50cmluc2ljcy4NCj4gPg0KPiA+DQo+ID4gIFRoZSBjaGFuZ2UgaXMg dG8gcmVkdWNlIHRoZSBkdXBsaWNhdGVkIGltcGxlbWVudGF0aW9uLiBJdCB3aWxsIGJlIGdvb2QN Cj4gb24gdGhlIGNvZGUgbWFpbnRhaW4uIFJlY2VudGx5LCBvbmUgcGF0Y2ggaGFzIHRvIHVwZGF0 ZSAuYyBhbmQgLm5hc20gYm90aC4NCj4gUGxlYXNlIHNlZQ0KPiBodHRwczovL2xpc3RzLjAxLm9y Zy9waXBlcm1haWwvZWRrMi1kZXZlbC8yMDE5LUZlYnJ1YXJ5LzAzNzE2NS5odG1sDQo+IDxodHRw czovL2xpc3RzLjAxLm9yZy9waXBlcm1haWwvZWRrMi1kZXZlbC8yMDE5LUZlYnJ1YXJ5LzAzNzE2 NS5odG1sPi4NCj4gQmVzaWRlIHRoaXMgY2hhbmdlLCBJIHByb3Bvc2UgdG8gcmVtb3ZlIGFsbCBH QVMgYXNzZW1ibHkgY29kZSBmb3IgSUEzMiBhbmQNCj4gWDY0IGFyY2guIEFmdGVyIHRob3NlIGNo YW5nZSwgdGhlIHBhdGNoIG93bmVyIHdpbGwgY29sbGVjdCB0aGUgaW1wYWN0IG9mIHRoZQ0KPiBp bWFnZSBzaXplLg0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gTGltaW5nDQo+IA0KPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBlZGsyLWRldmVsIG1haWxp bmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBodHRwczovL2xpc3RzLjAxLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg==