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.126; helo=mga18.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (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 040FE2118D93D for ; Wed, 7 Nov 2018 06:57:12 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Nov 2018 06:57:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,475,1534834800"; d="scan'208";a="106077006" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga001.fm.intel.com with ESMTP; 07 Nov 2018 06:57:12 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 7 Nov 2018 06:57:11 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.117]) by shsmsx102.ccr.corp.intel.com ([169.254.2.84]) with mapi id 14.03.0415.000; Wed, 7 Nov 2018 22:57:10 +0800 From: "Ni, Ruiyu" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Gao, Liming" , "Yao, Jiewen" Thread-Topic: [edk2] [PATCH] MdePkg/BaseSynchronizationLib XCODE: fix InternalSync[De|In]crement Thread-Index: AQHUdqaplFNysce9u0iekejFD1a0bqVD3IcAgACKCKA= Date: Wed, 7 Nov 2018 14:57:09 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BEF591A@SHSMSX104.ccr.corp.intel.com> References: <20181107040346.153720-1-ruiyu.ni@intel.com> <555b0649-a067-472e-2b81-b52457deb67b@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjZlMDFiOTYtNzU5OS00YTVkLWE1NmYtYzUyYTQ0MTlhM2UxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoicW1wM0NWRXhWNnZ1OW5XNENsSlwvUW1xbjM0TTM4NEFndjVMeUdHdnIwckh3aFpacFZVS1EyaUtHYTh5SmRON1EifQ== 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] MdePkg/BaseSynchronizationLib XCODE: fix InternalSync[De|In]crement 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, 07 Nov 2018 14:57:13 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZWRrMi1kZXZlbCBbbWFp bHRvOmVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZiBPZiBMYXN6bG8N Cj4gRXJzZWsNCj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciA3LCAyMDE4IDEwOjQyIFBNDQo+ IFRvOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnDQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ OyBHYW8sIExpbWluZw0KPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBb ZWRrMl0gW1BBVENIXSBNZGVQa2cvQmFzZVN5bmNocm9uaXphdGlvbkxpYiBYQ09ERTogZml4DQo+ IEludGVybmFsU3luY1tEZXxJbl1jcmVtZW50DQo+IA0KPiBPbiAxMS8wNy8xOCAxNTozMSwgTGFz emxvIEVyc2VrIHdyb3RlOg0KPiA+ICgrQW5kcmV3KQ0KPiA+DQo+ID4gSGkgUmF5LA0KPiA+DQo+ ID4gT24gMTEvMDcvMTggMDU6MDMsIFJ1aXl1IE5pIHdyb3RlOg0KPiA+PiBSRUY6IGh0dHBzOi8v YnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMw0KPiA+Pg0KPiA+PiBY Q09ERSBkaXNhc3NlbWJseSBjb2RlIG9mIEludGVybmFsU3luY0RlY3JlbWVudCB3aXRoIHRvZGF5 J3MgY29kZSBpczoNCj4gPj4NCj4gPj4gICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoDQo+ID4+ICAg ICAibW92bCAgICAkMSwgJSVlYXggIFxuXHQiDQo+ID4+ICAgICAibG9jayAgICAgICAgICAgICAg IFxuXHQiDQo+ID4+ICAgICAieGFkZCAgICAlJWVheCwgJTEgIFxuXHQiDQo+ID4+ICAgICAiaW5j ICAgICAlJWVheCAgICAgIFxuXHQiDQo+ID4+ICAgICA6ICI9YSIgKFJlc3VsdCksICAgICAgICAg IC8vICUwDQo+ID4+ICAgICAgICIrbSIgKCpWYWx1ZSkgICAgICAgICAgIC8vICUxDQo+ID4+ICAg ICA6ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGlucHV0cyB0aGF0IGFyZW4ndCBhbHNv IG91dHB1dHMNCj4gPj4gICAgIDogIm1lbW9yeSIsDQo+ID4+ICAgICAgICJjYyINCj4gPj4gICAg ICk7DQo+ID4+DQo+ID4+ICAwOiAgICAgICA1NSAgICAgIHB1c2hsICAgJWVicA0KPiA+PiAgMTog ICAgICAgODkgZTUgICBtb3ZsICAgICVlc3AsICVlYnANCj4gPj4gIDM6ICAgICAgIDhiIDQ1IDA4 ICAgICAgICBtb3ZsICAgIDgoJWVicCksICVlYXgNCj4gPj4gIDY6ICAgICAgIGI4IDAxIDAwIDAw IDAwICBtb3ZsICAgICQxLCAlZWF4DQo+ID4+ICBiOiAgICAgICBmMCAgICAgIGxvY2sNCj4gPj4g IGM6ICAgICAgIDBmIGMxIDAwICAgICAgICB4YWRkbCAgICVlYXgsIF9JbnRlcm5hbFN5bmNJbmNy ZW1lbnQoJWVheCkNCj4gPj4gIGY6ICAgICAgIDQwICAgICAgaW5jbCAgICAlZWF4DQo+ID4+IDEw OiAgICAgICA1ZCAgICAgIHBvcGwgICAgJWVicA0KPiA+PiAxMTogICAgICAgYzMgICAgICByZXRs DQo+ID4+DQo+ID4+ICVFQVggdmFsdWUgcmV0cmlldmVkIGluIGxpbmUgIzMgaXMgb3ZlcndyaXR0 ZW4gaW4gbGluZSAjNi4NCj4gPg0KPiA+IChhKSBUaGlzIGxvb2tzIGxpa2UgYW4gWENPREUgYnVn IHRvIG1lLiBUaGUgIj1hIiBjb25zdHJhaW50IG9uIG9wZXJhbmQNCj4gPiAlMCBtZWFucyB0aGF0 IFJlc3VsdCBzaG91bGQgYmUgc2V0IGZyb20gZWF4L3JheCwgYW5kIHRoYXQgdGhpcyBvcGVyYW5k DQo+ID4gaXMgIndyaXRlIG9ubHkiLiBIZXJlJ3MgdGhlIGdjYyBkb2N1bWVudGF0aW9uOg0KPiA+ DQo+ID4gIlRoZSBvcmRpbmFyeSBvdXRwdXQgb3BlcmFuZHMgbXVzdCBiZSB3cml0ZS1vbmx5OyBH Q0MgYXNzdW1lcyB0aGF0IHRoZQ0KPiA+IHZhbHVlcyBpbiB0aGVzZSBvcGVyYW5kcyBiZWZvcmUg dGhlIGluc3RydWN0aW9uIGFyZSBkZWFkIGFuZCBuZWVkIG5vdA0KPiA+IGJlIGdlbmVyYXRlZC4i DQo+ID4NCj4gPiBGdXJ0aGVybW9yZSwgaWYgYSByZWdpc3RlciBpcyBuYW1lZCBpbiBhbnkgb3Bl cmFuZCBjb25zdHJhaW50IChzdWNoIGFzDQo+ID4gaW5wdXQsIG91dHB1dCwgaW5wdXQtb3V0cHV0 KSwgdGhlbiBpdCBjYW5ub3QsIGJ5IGRlZmluaXRpb24sIGJlIGxpc3RlZA0KPiA+IGluIHRoZSAi Y2xvYmJlciBsaXN0IiAtLSBpdCBpcyAqb2J2aW91cyogdGhhdCB0aGUgaW5saW5lIGFzc2VtYmx5 IHdpbGwNCj4gPiB3b3JrIHdpdGggdGhhdCByZWdpc3Rlci4gSW4gY2FzZSBvZiBhbiBvdXRwdXQt b25seSBvcGVyYW5kLCBpdCdzDQo+ID4gb2J2aW91cyB0aGF0IHRoZSBpbmxpbmUgYXNzZW1ibHkg d2lsbCAqb3ZlcndyaXRlKiB0aGF0IHJlZ2lzdGVyLCBhbmQNCj4gPiB0aGUgY29tcGlsZXIgY2Fu bm90IGFzc3VtZSAqd2hlbiogdGhhdCBvdmVyd3JpdGUgd2lsbCBoYXBwZW4uIEhlcmUncw0KPiA+ IHRoZSBnY2MNCj4gPiBkb2N1bWVudGF0aW9uOg0KPiA+DQo+ID4gIllvdSBtYXkgbm90IHdyaXRl IGEgY2xvYmJlciBkZXNjcmlwdGlvbiBpbiBhIHdheSB0aGF0IG92ZXJsYXBzIHdpdGgNCj4gPiBh biBpbnB1dCBvciBvdXRwdXQgb3BlcmFuZC4gIEZvciBleGFtcGxlLCB5b3UgbWF5IG5vdCBoYXZl IGFuIG9wZXJhbmQNCj4gPiBkZXNjcmliaW5nIGEgcmVnaXN0ZXIgY2xhc3Mgd2l0aCBvbmUgbWVt YmVyIGlmIHlvdSBtZW50aW9uIHRoYXQNCj4gPiByZWdpc3RlciBpbiB0aGUgY2xvYmJlciBsaXN0 LiAgVmFyaWFibGVzIGRlY2xhcmVkIHRvIGxpdmUgaW4gc3BlY2lmaWMNCj4gPiByZWdpc3RlcnMg Wy4uLl0gYW5kIHVzZWQgYXMgYXNtIGlucHV0IG9yIG91dHB1dCBvcGVyYW5kcyBtdXN0IGhhdmUg bm8NCj4gPiBwYXJ0IG1lbnRpb25lZCBpbiB0aGUgY2xvYmJlciBkZXNjcmlwdGlvbi4iIFsxXQ0K PiA+DQo+ID4gSG93ZXZlciwgWENPREUgZ2VuZXJhdGVzIHN1Y2ggY29kZSB0aGF0IGRlcGVuZHMg b24gRUFYIGFzIGFuICppbnB1dCoNCj4gPiBvcGVyYW5kLiBUaGF0J3MgY2xlYXJseSB3cm9uZyBh bmQgdmlvbGF0ZXMgdGhlIGNvbnN0cmFpbnRzIGluIHRoZQ0KPiA+IG9wZXJhbmQgbGlzdC4gVGhp cyBpcyBhbiBYQ09ERSBidWcuDQo+ID4NCj4gPiBJbiBmYWN0OiB0aGUgc2l0dWF0aW9uIGlzIHdv cnNlIHRoYW4gdGhhdC4gSW4gdGhlIGNvbW1pdCBtZXNzYWdlIHlvdQ0KPiA+IHNwZWxsIG91dCB0 aGF0IHRoZSBNT1YgaW5zdHJ1Y3Rpb24gYXQgb2Zmc2V0IDYgb3ZlcndyaXRlcyB0aGUgdmFsdWUg aW4NCj4gPiBFQVggdGhhdCB3YXMganVzdCBsb2FkZWQgYXQgb2Zmc2V0IDMuIEJ1dCB0aGlzIGlz IGp1c3QgdGhlIHNtYWxsDQo+ID4gcHJvYmxlbTsgdGhlICpsYXJnZSogcHJvYmxlbSBpcyB0aGUg Z2VuZXJhdGVkIFhBREQgaW5zdHJ1Y3Rpb24gaXRzZWxmLA0KPiA+IGF0IG9mZnNldCAweGIgYW5k IDB4Yy4gVGhlIGJpbmFyeSBlbmNvZGluZyBpcywgZnJvbSB5b3VyIGNvbW1pdCBtZXNzYWdlOg0K PiA+DQo+ID4gICBmMCAwZiBjMSAwMA0KPiA+DQo+ID4gYW5kIHRoaXMgaXMgKmV4YWN0bHkqIHRo ZSBwcm9ibGVtIHRoYXQgbXkgY29tbWl0IDhhOTRlYjkyODNmYSBmaXhlZA0KPiA+IGZvciBnY2Mh IEZyb20gbXkgY29tbWl0IG1lc3NhZ2U6DQo+ID4NCj4gPiAgICAgPiAgICAgNDM5YzogICAgICAg ZjAgMGYgYzEgMDAgICAgICAgICAgICAgbG9jayB4YWRkICVlYXgsKCVyYXgpDQo+ID4NCj4gPiBC ZWNhdXNlLCBpdCBtYWtlcyAqbm8gc2Vuc2UqIGZvciBYQUREIHRvIHVzZSB0aGUgQVggcmVnaXN0 ZXIgZm9yDQo+ID4gKmJvdGgqIHBvaW50ZXItdG8tbWVtb3J5IChpLmUuIGFkZHJlc3Mgb2YgdGhl IGRlc3RpbmF0aW9uIGxvY2F0aW9uDQo+ID4gdGhhdCByZWNlaXZlcyB0aGUgc3VtKSAqYW5kKiBh cyB0aGUgb3RoZXIgYWRkZW5kIQ0KPiA+DQo+ID4gSW4gb3RoZXIgd29yZHMsIHJlZ2FyZGxlc3Mg b2YgaG93IHdlIGZpbGwgdGhlIEFYIHJlZ2lzdGVyIHVwLWZyb250LCBhbg0KPiA+IFhBREQgaW5z dHJ1Y3Rpb24gZ2VuZXJhdGVkIGxpa2UgdGhpcyAqY2Fubm90KiBiZSByaWdodC4NCj4gPg0KPiA+ PiBUaGUgcGF0Y2ggdXNlcyB0aGUgY2xvYmJlciBsaXN0IHRvIHRlbGwgR0NDIHRoYXQgRUFYIGlz IHVzZWQgaW4gQVNNLg0KPiA+Pg0KPiA+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENv bnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4+IFNpZ25lZC1vZmYtYnk6IFJ1aXl1IE5pIDxy dWl5dS5uaUBpbnRlbC5jb20+DQo+ID4+IENjOiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVs LmNvbT4NCj4gPj4gQ2M6IE1pY2hhZWwgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4gPj4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+IENjOiBQ aGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQHJlZGhhdC5jb20+DQo+ID4+IC0tLQ0KPiA+ PiAgTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9JYTMyL0djY0lubGluZS5j IHwgMTINCj4gPj4gKysrKysrKystLS0tDQo+ID4+ICAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9JYTMyL0djY0lubGluZS5jDQo+ID4+IGIvTWRl UGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9JYTMyL0djY0lubGluZS5jDQo+ID4+ IGluZGV4IGFmMzliZGViNTEuLjBhOTg1NTI5ZmQgMTAwNjQ0DQo+ID4+IC0tLSBhL01kZVBrZy9M aWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9HY2NJbmxpbmUuYw0KPiA+PiArKysg Yi9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL0lhMzIvR2NjSW5saW5lLmMN Cj4gPj4gQEAgLTQwLDExICs0MCwxMyBAQCBJbnRlcm5hbFN5bmNJbmNyZW1lbnQgKA0KPiA+PiAg ICAgICJsb2NrICAgICAgICAgICAgICAgXG5cdCINCj4gPj4gICAgICAieGFkZCAgICAlJWVheCwg JTEgIFxuXHQiDQo+ID4+ICAgICAgImluYyAgICAgJSVlYXggICAgICBcblx0Ig0KPiA+PiAtICAg IDogIj1hIiAoUmVzdWx0KSwgICAgICAgICAgLy8gJTANCj4gPj4gKyAgICAibW92ICAgICAlJWVh eCwgJTAgIFxuXHQiDQo+ID4+ICsgICAgOiAiPXIiIChSZXN1bHQpLCAgICAgICAgICAvLyAlMA0K PiA+PiAgICAgICAgIittIiAoKlZhbHVlKSAgICAgICAgICAgLy8gJTENCj4gPj4gICAgICA6ICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGlucHV0cyB0aGF0IGFyZW4ndCBhbHNvIG91dHB1 dHMNCj4gPj4gICAgICA6ICJtZW1vcnkiLA0KPiA+PiAtICAgICAgImNjIg0KPiA+PiArICAgICAg ImNjIiwNCj4gPj4gKyAgICAgICJlYXgiDQo+ID4+ICAgICAgKTsNCj4gPj4NCj4gPj4gICAgcmV0 dXJuIFJlc3VsdDsNCj4gPg0KPiA+IChiKSBUaGlzIGNoYW5nZSBpcyBpbnZhbGlkLCBmb3IgdHdv IHNlcGFyYXRlIHJlYXNvbnMuDQo+ID4NCj4gPiBSZWFzb24gIzE6IG9uIHRoZSBjbG9iYmVyIGxp c3QsIHRoZSBBWCByZWdpc3RlciBzaG91bGQgYmUgbGlzdGVkIGFzDQo+ID4gImEiLCBub3QgYXMg ImVheCIuDQo+ID4NCj4gPiBSZWFzb24gIzI6DQo+ID4NCj4gPiAtIEZvciBvcGVyYW5kICUwLCB3 ZSBzYXkgInVzZSBhbnkgcmVnaXN0ZXIgaW4gdGhlICdyJyBjbGFzcyBhcw0KPiA+IHdyaXRlLW9u bHkiLiAoVGhlIGNsYXNzICJyIiBtZWFucyAiZ2VuZXJhbCByZWdpc3RlciIuKSBBbmQsIGF0IHRo ZSBlbmQNCj4gPiBvZiB0aGUgaW5saW5lIGFzc2VtYmx5LCB3ZSBzdG9yZSBFQVggbWFudWFsbHkg dG8gdGhhdCAncicgY2xhc3MNCj4gPiByZWdpc3Rlci4gQW5kIHdlIHJlbHkgb24gdGhlIGNvbXBp bGVyIHRvIHN0b3JlIHRoYXQgb3RoZXIgZ2VuZXJhbA0KPiA+IHJlZ2lzdGVyIGludG8gUmVzdWx0 Lg0KPiA+DQo+ID4gLSBXZSBhcHBlbmQgdGhlIEFYIHJlZ2lzdGVyICh3aGljaCBzaG91bGQgYmUg c3BlbGxlZCBhcyAiYSIpIHRvIHRoZQ0KPiA+IGNsb2JiZXIgbGlzdC4gSG93ZXZlciwgdGhlICJh IiByZWdpc3RlciBpcyBpdHNlbGYgaW4gdGhlICJnZW5lcmFsDQo+ID4gcmVnaXN0ZXIiIGNsYXNz LCBhbmQgdGhlcmVmb3JlIHRoaXMgY2xvYmJlciBsaXN0IGJyZWFrcyB0aGUgcGFzc2FnZQ0KPiA+ IHRoYXQgSSBxdW90ZWQgYWJvdmUsIG1hcmtlZCBhcyBbMV0hDQo+ID4NCj4gPg0KPiA+PiBAQCAt NzYsMTEgKzc4LDEzIEBAIEludGVybmFsU3luY0RlY3JlbWVudCAoDQo+ID4+ICAgICAgImxvY2sg ICAgICAgICAgICAgICAgXG5cdCINCj4gPj4gICAgICAieGFkZCAgICAlJWVheCwgJTEgICBcblx0 Ig0KPiA+PiAgICAgICJkZWMgICAgICUlZWF4ICAgICAgIFxuXHQiDQo+ID4+IC0gICAgOiAiPWEi IChSZXN1bHQpLCAgICAgICAgICAgLy8gJTANCj4gPj4gKyAgICAibW92ICAgICAlJWVheCwgJTAg IFxuXHQiDQo+ID4+ICsgICAgOiAiPXIiIChSZXN1bHQpLCAgICAgICAgICAgLy8gJTANCj4gPj4g ICAgICAgICIrbSIgKCpWYWx1ZSkgICAgICAgICAgICAvLyAlMQ0KPiA+PiAgICAgIDogICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIG5vIGlucHV0cyB0aGF0IGFyZW4ndCBhbHNvIG91dHB1dHMN Cj4gPj4gICAgICA6ICJtZW1vcnkiLA0KPiA+PiAtICAgICAgImNjIg0KPiA+PiArICAgICAgImNj IiwNCj4gPj4gKyAgICAgICJlYXgiDQo+ID4+ICAgICAgKTsNCj4gPj4NCj4gPj4gICAgcmV0dXJu IFJlc3VsdDsNCj4gPj4NCj4gPg0KPiA+IChjKSBUaGUgcGF0Y2ggZG9lc24ndCB1cGRhdGUgdGhl IFg2NCB2YXJpYW50Lg0KPiA+DQo+ID4gSSB0aGluayB3ZSBzaG91bGQgYmUgY2xlYXIgaGVyZSB0 aGF0IHdlIGFyZSB3b3JraW5nIGFyb3VuZCBhbiBYQ09ERSBidWcuDQo+ID4gQ29tbWl0IDhhOTRl YjkyODNmYSB3YXMgZGlmZmVyZW50LCBiZWNhdXNlIHRoZSBjb2RlIGJlZm9yZSB0aGF0DQo+ID4g dmlvbGF0ZWQgdGhlIGdjYyBkb2N1bWVudGF0aW9uLCBhbmQgc28gdGhlIGlzc3VlIHdhcyBpbiB0 aGUgY29kZS4NCj4gPg0KPiA+DQo+ID4gSSdsbCBjb21tZW50IG1vcmUgb24geW91ciBzZWNvbmQg ZW1haWwuDQo+IA0KPiBBY3R1YWxseSBJJ2QgbGlrZSB0byBjb250aW51ZSBoZXJlLg0KPiANCj4g SW4gbXkgdmlldzoNCj4gDQo+IC0gQ29tbWl0IDE3NjM0ZDAyNmY5NiAoIk1kZVBrZy9TeW5jaHJv bml6YXRpb25MaWI6IGZpeA0KPiBJbnRlcmxvY2tlZFtEZXxJbl1jcmVtZW50IHJldHVybiB2YWx1 ZSIsIDIwMTgtMDktMjUpIHdhcyB0aGUgcmlnaHQgaWRlYSwNCj4gYmVjYXVzZSBpdCBpbXByb3Zl ZCBpbnRlcm5hbCBlZGsyIEFQSSBjb25mb3JtYW5jZSAocmVnYXJkaW5nIHRoZSByZXR1cm4gdmFs dWVzKS4NCj4gSG93ZXZlciwgdGhlIGFzc2VtYmx5IHRlbXBsYXRlIHdhcyBub3QgY29ycmVjdCwg YWNjb3JkaW5nIHRvIHRoZSBHQ0MNCj4gZG9jdW1lbnRhdGlvbi4NCj4gDQo+IC0gQ29tbWl0IDhh OTRlYjkyODNmYSAoIk1kZVBrZy9CYXNlU3luY2hyb25pemF0aW9uTGliOiBmaXggWEFERCBvcGVy YW5kcw0KPiBpbiBHQ0MgSUEzMi9YNjQgYXNzZW1ibHkiLCAyMDE4LTA5LTI2KSBmaXhlZCB0aGUg YXNzZW1ibHkgdGVtcGxhdGVzLCBzbyB0aGF0DQo+IHRoZXkgd291bGQgY29uZm9ybSB0byB0aGUg R0NDIGRvY3VtZW50YXRpb24uDQo+IA0KPiAtIE5vdyB0aGUgY3VycmVudCBpc3N1ZSBpcyB0aGF0 IFhDT0RFIGRvZXMgbm90IGltcGxlbWVudCB0aGUgR0NDDQo+IGRvY3VtZW50YXRpb24gY29ycmVj dGx5LCBmcm9tIHRoZSBjb21waWxlciAvIGFzc2VtYmxlciBzaWRlLiBTbyB0aGUgYnVnIGlzIG5v dA0KPiBpbiB0aGUgZWRrMiBjb2RlLCBidXQgdGhlIHRvb2xjaGFpbi4NCj4gDQo+IA0KPiBNeSBm aXJzdCBwcmVmZXJlbmNlIHdvdWxkIGJlIGlmIHdlIGNvdWxkIHNwbGl0IHRoZSBjb2RlIGJldHdl ZW4gWENPREUgYW5kDQo+IGdlbnVpbmUgR0NDLiBUaGlzIGlzIG5vdyB0aGUgbid0aCB0aW1lIHdo ZW4gWENPREUgZG9lcyBub3QgbGl2ZSB1cCB0byBpdHMNCj4gcHJvbWlzZWQgR0NDIGNvbXBhdGli aWxpdHkuIEkgdGhpbmsgaXQncyB0aW1lIHRvIGFkZHJlc3MgdGhhdCB3aXRoIGFjdHVhbCBjb2Rl DQo+IHNlcGFyYXRpb24gaW4gZWRrMiwgbGlrZSB3ZSBkbyBmb3IgTVNWQyBhbmQgSUNDIGFscmVh ZHkuIFdoYXRldmVyIHdlIGRvIGZvcg0KPiBYQ09ERSBpcyBiYXNpY2FsbHkgInNob3RndW4gZGVi dWdnaW5nIiBhdCB0aGlzIHBvaW50LCBhbmQgSSB3b3VsZG4ndCBsaWtlIHRoYXQgdG8NCj4gYWZm ZWN0IHNvdXJjZSBjb2RlIHRoYXQgZ2VudWluZSBHQ0MgY29tcGlsZXMuDQo+IA0KPiBNeSBzZWNv bmQgcHJlZmVyZW5jZSB3b3VsZCBiZSB0byByb2xsIGJhY2sgYm90aCBjb21taXRzIDhhOTRlYjky ODNmYSBhbmQNCj4gMTc2MzRkMDI2Zjk2Lg0KDQpJIGFncmVlLiBCdXQgbmVlZCBKaWV3ZW4ncyBj b21tZW50cyBvbiByb2xsaW5nIGJhY2sgdGhlIDIgY29tbWl0cy4NCkJlY2F1c2UgaGUgcmFpc2Vk IHRoZSBJbnRlcmxvY2tlZEluY3JlbWVudCgpIGlzc3VlIGludGVybmFsbHkgdG8gbWUuDQoNCj4g DQo+IERpc2NsYWltZXI6IG9idmlvdXNseSwgaWYgc29tZW9uZSBjYW4gcmVmdXRlIG15IHN0YXRl bWVudHMgYWJvdXQgdGhlDQo+IGNvcnJlY3RuZXNzIG9mIHRoZSBjdXJyZW50IGNvZGUsIHRoYXQn cyAxMDAlIHdlbGNvbWUgYW5kIGFwcHJlY2lhdGVkLg0KPiBUaGUgYWJvdmUgaXMgaG93IEkgdW5k ZXJzdGFuZCB0aGUgc3RhdHVzLCBidXQgaWYgSSdtIHdyb25nLCBJICpzaG91bGQqIGJlDQo+IGNv cnJlY3RlZC4NCj4gDQo+IFRoYW5rcywNCj4gTGFzemxvDQo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4v bGlzdGluZm8vZWRrMi1kZXZlbA0K