From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3CD4043A22; Wed, 31 Jan 2024 18:34:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B2258402ED; Wed, 31 Jan 2024 18:34:18 +0100 (CET) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id C78294026B for ; Wed, 31 Jan 2024 18:34:17 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 9DA8420F6B; Wed, 31 Jan 2024 18:34:17 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: rte_atomic_*_explicit X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Wed, 31 Jan 2024 18:34:13 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F1D4@smartserver.smartshare.dk> In-Reply-To: <5abb568d-ca49-4501-8100-87f93d30ff24@lysator.liu.se> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: rte_atomic_*_explicit Thread-Index: AdpUXY0YpKVbCKmlSPeKCcm09fizSgACjeDw References: <0e268757-8368-456f-ba2f-10a1969c498f@lysator.liu.se> <98CBD80474FA8B44BF855DF32C47DC35E9F1A2@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35E9F1A8@smartserver.smartshare.dk> <20240126213520.GB22822@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <20240130183646.GB10167@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <5abb568d-ca49-4501-8100-87f93d30ff24@lysator.liu.se> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "Tyler Retzlaff" Cc: , "Tyler Retzlaff" , , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBNYXR0aWFzIFLDtm5uYmxvbSBbbWFpbHRvOmhvZm9yc0BseXNhdG9yLmxpdS5zZV0N Cj4gU2VudDogV2VkbmVzZGF5LCAzMSBKYW51YXJ5IDIwMjQgMTYuNTMNCj4gDQo+IE9uIDIwMjQt MDEtMzAgMTk6MzYsIFR5bGVyIFJldHpsYWZmIHdyb3RlOg0KPiA+IE9uIFNhdCwgSmFuIDI3LCAy MDI0IGF0IDA5OjM0OjI0UE0gKzAxMDAsIE1hdHRpYXMgUsO2bm5ibG9tIHdyb3RlOg0KPiA+PiBP biAyMDI0LTAxLTI2IDIyOjM1LCBUeWxlciBSZXR6bGFmZiB3cm90ZToNCj4gPj4+IE9uIEZyaSwg SmFuIDI2LCAyMDI0IGF0IDExOjUyOjExQU0gKzAxMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0K PiA+Pj4+PiBGcm9tOiBNYXR0aWFzIFLDtm5uYmxvbSBbbWFpbHRvOmhvZm9yc0BseXNhdG9yLmxp dS5zZV0NCj4gPj4+Pj4gU2VudDogRnJpZGF5LCAyNiBKYW51YXJ5IDIwMjQgMDkuMDcNCj4gPj4+ Pj4NCj4gPj4+Pj4gT24gMjAyNC0wMS0yNSAyMzoxMCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ ID4+Pj4+Pj4gRnJvbTogTWF0dGlhcyBSw7ZubmJsb20gW21haWx0bzpob2ZvcnNAbHlzYXRvci5s aXUuc2VdDQo+ID4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIDI1IEphbnVhcnkgMjAyNCAxOS41NA0K PiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gV2h5IGRvIHJ0ZV9zdGRhdG9taWMuaCBmdW5jdGlvbnMgaGF2 ZSB0aGUgc3VmZml4ICJfZXhwbGljaXQiPw0KPiA+Pj4+Pj4+IEVzcGVjaWFsbHkNCj4gPj4+Pj4+ PiBzaW5jZSB0aGVyZSBhcmVuJ3QgYW55IHdyYXBwZXJzIGZvciB0aGUgaW1wbGljaXQgdmFyaWFu dHMuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBNb3JlIHRvIHR5cGUsIG1vcmUgdG8gcmVhZC4NCj4g Pj4+Pj4+DQo+ID4+Pj4+PiBUaGV5IGhhdmUgdGhlICJfZXhwbGljaXQiIHN1ZmZpeCB0byBtYWtl IHRoZWlyIG5hbWVzIHNpbWlsYXIgdG8NCj4gdGhvc2UNCj4gPj4+Pj4gaW4gc3RkYXRvbWljLmgu DQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBPSywgc28gdG8gYXZvaWQgYSBzaXR1YXRpb24g d2hlcmUgc29tZW9uZSBhY2NpZGVudGFsbHkNCj4gbWlzaW50ZXJwcmV0DQo+ID4+Pj4+IHJ0ZV9h dG9taWNfZmV0Y2hfYWRkKCZjb3VudGVyLCAxLCBydGVfbWVtb3J5X29yZGVyX3JlbGF4ZWQpOw0K PiA+Pj4+PiBhcyB3aGF0LCBleGFjdGx5Pw0KPiA+Pj4+Pg0KPiA+Pj4+PiBJZiB5b3UgaGF2ZSBh IHdyYXBwZXIsIHdoeSBub3QgdGFrZSB0aGUgb3Bwb3J0dW5pdHkgYW5kIHJlYXAgc29tZQ0KPiA+ Pj4+PiBiZW5lZml0cyBmcm9tIHRoaXMgYW5kIGZpeC9leHRlbmQgdGhlIHN0YW5kYXJkIEFQSSwg bWFraW5nIGl0IGENCj4gYmV0dGVyDQo+ID4+Pj4+IGZpdCBmb3IgeW91ciBhcHBsaWNhdGlvbi4g TGlrZSByZW1vdmluZyB0aGUgcmVkdW5kYW50DQo+ICJfZXhwbGljaXQiLA0KPiA+Pj4+PiAiZmV0 Y2giLWxlc3MgYWRkL3N1YiwgbWF5YmUgYW5kIGEgZnVuY3Rpb24gZm9yIHNpbmdsZS13cml0ZXIN Cj4gYXRvbWljIGFkZA0KPiA+Pj4+PiAobm9uLWF0b21pYyByZWFkICsgbm9uLWF0b21pYyBhZGQg KyBhdG9taWMgc3RvcmUpLCBldGMuDQo+ID4+Pj4+DQo+ID4+Pj4+IFByb2hpYml0aW5nIGltcGxp Y2l0IG9wZXJhdGlvbnMgd2FzIGRvbmUgYWxyZWFkeSwgc28gaXQncyBhbHJlYWR5DQo+IG5vdw0K PiA+Pj4+PiBub3QgYSBzdHJhaWdodC1vZmYgY29weSBvZiB0aGUgc3RhbmRhcmQgQVBJLg0KPiA+ Pj4+Pg0KPiA+Pj4+Pj4gWW91IG1pZ2h0IGNvbnNpZGVyIHRoZWlyIGV4aXN0ZW5jZSBzb21ld2hh dCB0ZW1wb3JhcnkgdW50aWwgQzExDQo+ID4+Pj4+IHN0ZGF0b21pY3MgY2FuIGJlIGZ1bGx5IHBo YXNlZCBpbiwgc28gdGhlcmUncyBhbm90aGVyIGFyZ3VtZW50DQo+IGZvcg0KPiA+Pj4+PiBzaW1p bGFyIG5hbWVzLiAoVGhpcyBwcm9iYWJseSBkb2VzIG5vdCBoYXBwZW4gYXMgbG9uZyBhcw0KPiBj b21waWxlcnMNCj4gPj4+Pj4gZ2VuZXJhdGUgc2xvd2VyIGNvZGUgZm9yIEMxMSBzdGRhdG9taWNz IHRoYW4gd2l0aCB0aGVpciBhdG9taWMNCj4gYnVpbHQtDQo+ID4+Pj4+IGlucy4pDQo+ID4+Pj4+ Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUbyBtZSwgaXQgc2VlbXMgcmVhc29uYWJsZSBhIHdyYXBwZXIg QVBJIHNob3VsZCBzdGF5IGFzIGxvbmcgYXMNCj4gaXQNCj4gPj4+Pj4gcHJvdmlkZSBhIGJlbmVm aXQgb3ZlciB0aGUgc3RhbmRhcmQgQVBJLiBPbmUgY291bGQgaW1hZ2luZSB0aGF0DQo+IGJlaW5n IGENCj4gPj4+Pj4gbG9uZyB0aW1lLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIGltYWdpbmUgc29tZSBE UERLIGRldmVsb3BlcnMgYmVpbmcgdGlyZWQgb2YgbWlncmF0aW5nIGZyb20gb25lDQo+ID4+Pj4+ IGF0b21pY3MNCj4gPj4+Pj4gQVBJIHRvIGFub3RoZXIuIDxydGVfYXRvbWljLmg+IC0+IEdDQyBi dWlsdC1pbnMgKC0+IGF0dGVtcHRlZCBDMTENCj4gPj4+Pj4gc3RkYXRvbWljcz8pIC0+IDxydGVf c3RkYXRvbWljLmg+LiBOb3cgeW91IGFyZSBhZGRpbmcgYSBmdXR1cmUgIi0NCj4gPiBDWFkNCj4g Pj4+Pj4gYXRvbWljcyIgbW92ZSBhcyB3ZWxsLCBhbmQgd2l0aCB0aGF0IGl0IGFsc28gc2VlbXMg bmF0dXJhbCB0byBhZGQNCj4gYQ0KPiA+Pj4+PiBjaGFuZ2UgYmFjayB0byBhIHdyYXBwZXIgb3Ig Y29tcGxlbWVudGFyeSBBUEksIHdoZW4gQ1hZIGRpZG4ndA0KPiB0dXJuZWQNCj4gPj4+Pj4gb3V0 IGdvb2QgZW5vdWdoIGZvciBzb21lIHBhcnRpY3VsYXIgcGxhdGZvcm0sIG9yIHdoZW4gc29tZSBu b24tDQo+ID4+Pj4+IGNvbXBsYWludA0KPiA+Pj4+PiBjb21waWxlciBjb21lcyBhbG9uZy4NCj4g Pj4+Pg0KPiA+Pj4+IFllcywgbW9yZSBtaWdyYXRpb25zIHNlZW0gdG8gYmUgb24gdGhlIHJvYWRt YXAuDQo+ID4+Pj4NCj4gPj4+PiBXZSBjYW4gdGFrZSB0aGUgb3Bwb3J0dW5pdHkgdG8gY2hhbmdl IGRpcmVjdGlvbiBub3csIGFuZCBkZWNpZGUgdG8NCj4ga2VlcCB0aGUgPHJ0ZV9zdGRhdG9taWMu aD4gQVBJIGxvbmcgdGVybS4NCj4gPj4+PiBUaGVuIGl0IHdvdWxkIG5lZWQgbW9yZSBkb2N1bWVu dGF0aW9uIChiYXNpY2FsbHkgY29weWluZyBmdW5jdGlvbg0KPiBkZXNjcmlwdGlvbnMgZnJvbSA8 c3RkYXRvbWljLmg+KSwgYW5kIHRoZSBmdW5jdGlvbnMgY291bGQgaGF2ZSB0aGUNCj4gIl9leHBs aWNpdCIgc3VmZml4IHJlbW92ZWQgKG1hY3JvcyB3aXRoIHRoZSBzdWZmaXggY291bGQgYmUgYWRk ZWQgZm9yDQo+IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KSwgYW5kIG1vcmUgZnVuY3Rpb25zIC0g bGlrZSB0aGUgb25lcyB5b3UNCj4gc3VnZ2VzdGVkIGFib3ZlIC0gY291bGQgYmUgYWRkZWQuDQo+ ID4+Pj4NCj4gPj4+PiBXaGF0IGRvIHBlb3BsZSB0aGluaz8NCj4gPj4+PiAxLiBLZWVwIGNvbnNp ZGVyaW5nIDxydGVfc3RkYXRvbWljLmg+IGEgdGVtcG9yYXJ5IHdyYXBwZXIgZm9yDQo+IDxzdGRh dG9taWMuaD4gdW50aWwgY29tcGlsZXJzIHJlYWNoIHNvbWUgdW5kZWZpbmVkIGxldmVsIG9mIG1h dHVyaXR5LA0KPiBvcg0KPiA+Pj4+IDIuIENvbnNpZGVyIDxydGVfc3RkYXRvbWljLmg+IHN0YWJs ZSwgY2xlYW4gaXQgdXAgKHJlbW92ZQ0KPiAiX2V4cGxpY2l0IiBzdWZmaXgpLCBhZGQgZG9jdW1l bnRhdGlvbiB0byB0aGUgbWFjcm9zLCBhbmQgZXh0ZW5kIGl0Lg0KPiA+Pj4+DQo+ID4+Pj4gTGl2 aW5nIGluIGEgRFBESy1vbmx5IGVudmlyb25tZW50LCBJIHdvdWxkIHByZWZlciBvcHRpb24gMjsg YnV0IGlmDQo+IG1peGluZyBEUERLIGNvZGUgd2l0aCBub24tRFBESyBjb2RlICh0aGF0IHVzZXMg PHN0ZGF0b21pYy5oPikgaXQgbWlnaHQNCj4gYmUgd2VpcmQuDQo+ID4+Pg0KPiA+Pj4gcnRlX3N0 ZGF0b21pYy5oIHNob3VsZCBiZSBjb25zaWRlcmVkIHRlbXBvcmFyeSwgYnV0IGhvdyBsb25nDQo+ IHRlbXBvcmFyeQ0KPiA+Pj4gaXMgZGVwZW5kcyBvbiB3aGVuIHdlIGNhbiBkZXByZWNhdGUgc3Vw cG9ydCBmb3IgZGlzdHJpYnV0aW9ucyBhbmQNCj4gdGhlDQo+ID4+PiBvbGRlciB0b29sY2hhaW5z IHRoZXkgYXJlIHRpZWQgdG8uDQo+ID4+Pg0KPiA+Pj4gdGhlIG1hY3JvcyB3ZXJlIGludHJvZHVj ZWQgdG8gYWxsb3cgYSBwYXRoIHRvIGdyYWR1YWxseSBtb3ZpbmcgdG8NCj4gPj4+IHN0YW5kYXJk IGMxMSBhdG9taWNzLiBnY2MgdmVyc2lvbnMgYXZhaWxhYmxlIG9uIGRpc3RyaWJ1dGlvbnMgd2UN Cj4gPj4+IHByb21pc2Ugc3VwcG9ydCBmb3IgaXMgY3VycmVudGx5IHRoZSBiaWdnZXN0IGJhcnJp ZXIgdG8gZGlyZWN0DQo+ID4+PiBhZG9wdGlvbi4NCj4gPj4+DQo+ID4+PiAgICAgICogb2xkZXIg dmVyc2lvbnMgb2YgZ2NjIGdlbmVyYXRlIHN1Yi1vcHRpbWFsIGNvZGUgd2hlbiB1c2luZw0KPiBj MTENCj4gPj4+ICAgICAgICBhdG9taWMgZ2VuZXJpY3MgaW4gc29tZSBpbnN0YW5jZXMuDQo+ID4+ Pg0KPiA+Pj4gICAgICAqIGdjYyBjKysyMyBzdXBwb3J0IGlzIGluY29tcGxldGUsIGluIHBhcnRp Y3VsYXIgYXQgdGhlIHRpbWUNCj4gd2UNCj4gPj4+ICAgICAgICBldmFsdWF0ZWQgdXNpbmcgdGhl IGMxMSBhdG9taWNzIGRpcmVjdGx5IGJ1dCBnY2MgYysrMjMgaGVsZA0KPiB1cw0KPiA+Pj4gICAg ICAgIGJhY2sgYmVjYXVzZSB0aGUgc3RkYXRvbWljLmggaXQgc2hpcHBlZCBkaWRuJ3QgaW50ZXJv cGVyYXRlLg0KPiA+Pj4NCj4gPj4NCj4gPj4gU28geW91IGV4cGVjdCBhdCBhIHBhcnRpY3VsYXIg cG9pbnQgaW4gdGltZSwgYm90aCB0aGUgZm9sbG93aW5nIHdpbGwNCj4gPj4gYmUgdHJ1ZToNCj4g Pj4NCj4gPj4gKiBBbGwgY3VycmVudGx5IChhdCB0aGF0IHBvaW50KSBzdXBwb3J0ZWQgYW5kIGZ1 dHVyZSBjb21waWxlcnMNCj4gPj4gZ2VuZXJhdGUgY29ycmVjdCBhbmQgZWZmaWNpZW50IGNvZGUg Zm9yIGFsbCBjdXJyZW50bHkgYW5kIGZ1dHVyZQ0KPiA+PiBJU0EvQ1BVcy4NCj4gPg0KPiA+IGkg Y2FuJ3QgcHJlZGljdCB0aGUgZnV0dXJlLCBidXQgb25lIGhvcGVzIGdjYy9jbGFuZy9tc3ZjIGV2 ZW50dWFsbHkNCj4gZG9lcw0KPiA+IHllcy4NCj4gPg0KPiA+PiAqIFRoZXJlJ3Mgbm90aGluZyBh ZGQsIHN1YnRyYWN0IG9yIGNsZWFuIHVwIGluIHRoZSBzdGFuZGFyZCBBUEkgdG8NCj4gPj4gaW1w cm92ZSBpdCBmb3IgRFBESy1pbnRlcm5hbCBhbmQgRFBESyBhcHBsaWNhdGlvbiBjb2RlIHVzZS4N Cj4gPg0KPiA+IGkgY2FuJ3QgbWFrZSBqdWRnZW1lbnQgaGVyZSwgc3VyZWx5IHByb3Bvc2FscyB0 byBhdWdtZW50IHRoZSBzdGFuZGFyZA0KPiA+IHNldCBtYXkgYmUgbWFkZSBhdCBhbnkgdGltZSBv biB0aGUgbWFpbGluZyBsaXN0Lg0KPiA+DQo+ID4+DQo+ID4+IFNlZWluZyB0aGluZ3MgbGlrZQ0K PiA+Pg0KPiA+PiBydGVfYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCgmcy0+bnVtX21hcHBlZF9j b3JlcywgMSwNCj4gPj4gcnRlX21lbW9yeV9vcmRlcl9yZWxheGVkKTsNCj4gPj4NCj4gPj4gZG9l c24ndCBleGFjdGx5IG1ha2UgeW91IGxvbmcgZm9yICJyYXciIEMxMSBhdG9taWNzLiBJdCdzIG5v dCB0aGUNCj4gPj4gbGlrZSAicnRlXyIgYmVpbmcgZGVsZXRlZCBpbXByb3ZlIG11Y2ggb24gdGhh dCBtZXNzLg0KPiA+Pg0KPiA+PiBDb21wYXJlIGl0IHdpdGggdGhlIGtlcm5lbCdzOg0KPiA+Pg0K PiA+PiBhdG9taWNfaW5jKCZzLT5udW1fbWFwcGVkX2NvcmVzKTsNCj4gPj4NCj4gPj4gV2hhdCBj b3VsZCBpbiBEUERLIGJlOg0KPiA+Pg0KPiA+PiBydGVfYXRvbWljX2luYygmcy0+bnVtX21hcHBl ZF9jb3Jlcyk7DQo+ID4+DQo+ID4+IG9yLCBhdCBhIGJhcmUgbWluaW11bQ0KPiA+Pg0KPiA+PiBy dGVfYXRvbWljX2luYygmLT5udW1fbWFwcGVkX2NvcmVzLCBydGVfbWVtb3J5X29yZGVyX3JlbGF4 ZWQpOw0KPiA+DQo+ID4gaXQncyBkaWZmaWN1bHQgdG8gZXh0cmFjdCB3aGF0IHlvdSdyZSBzYXlp bmcgaGVyZS4gaXQgc291bmRzIGxpa2UNCj4gPg0KPiA+ICogeW91IGRpc2xpa2UgdGhlIHN0YW5k YXJkIEMgZ2VuZXJpY3MgbmFtZXMuDQo+ID4gKiB5b3UgcHJlZmVyIHRoZSBrZXJuZWwgYXRvbWlj cyBuYW1lcy4NCj4gPg0KPiANCj4gSSB0cmllZCB0byB2aXN1YWxpemUsIGJ5IGV4YW1wbGUsIGhv dyB0aGUgdXNlIG9mIDxydGVfc3RkYXRvbWljLmg+DQo+IHJlc3VsdHMgaW4gdmVyYm9zZSBjb2Rl LCBhbmQgaG93IGEgYmV0dGVyIEFQSSBjb3VsZCByZXN1bHQgaW4gc29tZXRoaW5nDQo+IG11Y2gg bW9yZSBzdWNjaW5jdC4NCj4gDQo+IEkgZ3Vlc3MgeW91IGFyZSB0cnlpbmcgdG8gcmVkdWNlIGl0 IHRvIHNvbWV0aGluZyBlbnRpcmVseSBzdWJqZWN0aXZlLg0KPiANCj4gPiB0aGUgaW1wbGljYXRp b24gdGhlbiBpcyB3ZSBzaG91bGQgcmVuYW1lIHRoZSBtYWNyb3MgdG8gbG9vayBsaWtlDQo+IExp bnV4DQo+ID4ga2VybmVsIGF0b21pY3M/DQo+ID4NCj4gDQo+IEkgY2FuJ3Qgc2F5IEkgaGF2ZSBh IGZ1bGx5IGZvcm1lZCBvcGluaW9uIG9uIHdoYXQgRFBESyBhdG9taWNzIHNob3VsZA0KPiBsb29r IGxpa2UgYXQgdGhpcyBwb2ludC4NCj4gDQo+IEp1c3QgdGFraW5nIEMxMSBhcy1pcyBzZWVtIG5v dCB0byBiZSBhIGdvb2QgaWRlYSwgYW5kIGhlcmUgSSBndWVzcyB5b3UNCj4gYWdyZWUsIHNpbmNl IHlvdSBsZWZ0IG91dCBiaWcgY2h1bmtzIG9mIHRoZSBzdGFuZGFyZCBBUEkgaW4gdGhlDQo+IHdy YXBwZXIuDQo+IA0KPiA+IGkgc3VwcG9zZSBvbmUgb2YgdGhlIHBpdGZhbGxzIG9mIHRoaXMgaXMg bm93IHlvdSBoYXZlIGEgc2V0IG9mIG5hbWVzDQo+ID4gd2hlcmUgeW91IGhhdmUgdG8gZG9jdW1l bnQgdGhhdCB0aGV5IG1hdGNoIGEgbWVtb3J5IG1vZGVsIGxheWVkIG91dA0KPiBpbg0KPiA+IHRo ZSBzdGFuZGFyZCBidXQgbG9vayBsaWtlIGF0b21pY3MgdGhhdCBkb24ndCBmb2xsb3cgdGhhdCBt b2RlbCB3aGljaA0KPiA+IHdvdWxkIGFsc28gYmUgY29uZnVzaW5nLg0KPiA+DQo+IA0KPiBTdXJl LCBpZiBvbmUgd291bGQgaGF2ZSBydGVfYXRvbWljX2luYygpIHdpdGhvdXQgYW55IG1lbW9yeV9t b2RlbA0KPiBwYXJhbWV0ZXIsIHdoaWNoIHdvdWxkIGRlZmF1bHQgdG8gcmVsYXhlZCByYXRoZXIg dGhhbiBDU1QsIHRoYXQgd291bGQNCj4gYmUNCj4gYSBzdXJwcmlzZWQgdG8gcGVvcGxlIHdpdGgg QzExIGF0b21pY3MgZXhwZXJpZW5jZS4NCj4gDQo+IEkgd2Fzbid0IHNheWluZyBJIHRob3VnaHQg aXQgd2FzIGEgZ29vZCBpZGVhLCBidXQgcmF0aGVyIGp1c3Qgc29tZXRoaW5nDQo+IHRoYXQgc2hv dWxkIGJlIGNvbnNpZGVyZWQuIFRoZSBtYWpvcml0eSBvZiBhdG9taWMgb3BlcmF0aW9ucyBpbiBE UERLDQo+IGRvZXMgbm90IHJlcXVpcmUgYW55IHBhcnRpY3VsYXIgb3JkZXJpbmcgKGkuZS4sIGFy ZSByZWxheGVkKSwgc28gaW4NCj4gdGhhdA0KPiBzZW5zZSBpdCB3b3VsZCBtYWtlIHNlbnNlLiBI b3dldmVyLCBpbiBzdWNoIGEgc2NlbmFyaW8sIHlvdSBhcmUgYmFjaw0KPiBzb21ldGhpbmcgbGlr ZSA8b3A+X2V4cGxpY2l0KCkgdG8gc29sdmUgdGhlDQo+IG5vLWZ1bmN0aW9uLW92ZXJsb2FkaW5n LXByb2JsZW0gdGhlIEMxMSBzdGFuZGFyZCBoYWQgdG8gZGVhbCB3aXRoLg0KDQpJdCBpcyBpbXBv cnRhbnQgdG8gcmVjYWxsIHRoZSBiYWNrLXRoZW4gZGVjaXNpb24gdG8gYWx3YXlzIHJlcXVpcmUg bWVtb3J5IG9yZGVyLCBhcyBIb25uYXBwYSBtZW50aW9uZWQuIFRoZSByZWFzb24gaXMgdG8gZm9y Y2UgcGVvcGxlIHRvIHRoaW5rIGFib3V0IHRoZSBvcHRpbXVtIG1lbW9yeSBvcmRlciwgYW5kIGJl IGFibGUgdG8gYXJndWUgZm9yIGl0IGluIHRoZSByZXZpZXcgcHJvY2Vzcy4gVGhpcyBpcyBhbHNv IHRoZSByZWFzb24gd2h5IHRoZSBmdW5jdGlvbnMgd2l0aCBpbXBsaWNpdCBtZW1vcnkgb3JkZXIg ZG9uJ3QgZXhpc3QgaW4gPHJ0ZV9zdGRhdG9taWMuaD4uDQoNCj4gDQo+ID4+DQo+ID4+PiAgICAg ICogdGhlIG1hY3JvcyBhbGxvdyBkZXZlbG9wZXJzIHRvIGVhc2lseSBldmFsdWF0ZS9jb21wYXJl IHdpdGgNCj4gYW5kDQo+ID4+PiAgICAgICAgd2l0aG91dCBzdGFuZGFyZCBDIGF0b21pY3Mgd2l0 aCBhIHNpbmdsZSBidWlsZC10aW1lIG9wdGlvbg0KPiA+Pj4gICAgICAgIC1EZW5hYmxlX3N0ZGF0 b21pYz10cnVlDQo+ID4+Pg0KPiA+Pj4gICAgICAqIGV2ZW50dWFsbHkgd2Ugd2lsbCB3YW50IHRv IG1vdmUgZGlyZWN0bHkgdG8gdGhlIG5hbWVzIGZyb20NCj4gdGhlDQo+ID4+PiAgICAgICAgc3Rh bmRhcmQsIGFyZ3VhYmx5IGp1c3Qgc2VhcmNoIGFuZCByZXBsYWNlIG9mIHJ0ZV9hdG9taWMNCj4g d2l0aA0KPiA+Pj4gICAgICAgIGF0b21pYyBpcyB0aGUgbW9zdCBtZWNoYW5pY2FsbHkgdHJpdmlh bCAtIGhlbmNlIHRoZXJlIGlzDQo+IHNvbWUNCj4gPj4+ICAgICAgICB2YWx1ZSBpbiBrZWVwaW5n IF9leHBsaWNpdCBzdWZmaXguDQo+ID4+Pg0KPiA+Pg0KPiA+PiA8cnRlX3N0ZGF0b21pYy5oPiBp cyBhIHB1YmxpYyBBUEksIGFuZCB0aHVzIHdpbGwgYmUgcGlja2VkIHVwIGJ5DQo+ID4+IGFwcGxp Y2F0aW9ucyB3YW50aW5nIHRvIGxldmVyYWdlIERQREsgZm9yIHN1Y2ggc2VydmljZXMuDQo+ID4+ IFNlYXJjaC1hbmQtcmVwbGFjZSB3aWxsIG9ubHkgYWZmZWN0IERQREsgaXRzZWxmLg0KPiA+DQo+ ID4gaXQgYWNoaWV2ZXMgdGhlIGludGVuZGVkIHB1cnBvc2UgYnkgaW50cm9kdWNpbmcgYSByZWFz b25hYmxlIGxldmVsIG9mDQo+ID4gYWJzdHJhY3Rpb24gd2hlbiBjaG9vc2luZyB0byBlbmFibGUg b3IgZGlzYWJsZSBzdGFuZGFyZCBhdG9taWNzDQo+IHdoZXJlYnkNCj4gPiB0aGUgYXBwbGljYXRp b24gY29kZSBpdHNlbGYgZG9lcyBub3QgbmVlZCB0byBpbnRyb2R1Y2UgaXRzIG93bg0KPiBjb25k aXRpb25hbA0KPiA+IGNvbXBpbGF0aW9uIGNydXRjaC4NCj4gPg0KPiA+IGl0IGFsc28gcmV0YWlu cyB0aGUgYWJpbGl0eSBmb3IgYXBwbGljYWl0b24gYXV0aG9ycyB0byBjb250aW51ZSB0bw0KPiB1 c2UgZ2NjDQo+ID4gYnVpbHQtaW4gYXRvbWljcyB3aGVuIG9wZXJhdGluZyB3aXRoIGRwZGsgYXBp cyBzaG91bGQgdGhleSBkZWNpZGUgdGhlDQo+ID4gZ2NjIHN0YW5kYXJkIEMgYXRvbWljcyBhcmVu J3QgdXAgdG8gc2NyYXRjaC4NCj4gPg0KPiA+IGkgZ3Vlc3MgeW91ciBjb25jZXJuIGlzIHRoYXQg YW4gYXBwbGljYXRpb24gZGVzaWduZXIgbWF5IGNob29zZSB0bw0KPiB1c2UNCj4gPiBvdXIgcnRl X3N0ZGF0b21pYy5oIGJleW9uZCB0aGVpciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBkcGRrIGFwaSwg aXQncw0KPiA+IHRoZWlyIGNob2ljZSBidXQgdGhlIG5lZ2F0aXZlIGltcGFjdCBvZiBkb2luZyBz byBpcyBtaW5pbWFsLiB0aGUgb25seQ0KPiA+IGRvd25zaWRlIGlzIHRoYXQgZXZlbnR1YWxseSB3 ZSBtYXkgY2hvb3NlIHRvIGRlcHJlY2F0ZSB0aGUgbWFjcm9zDQo+IHdoaWNoDQo+ID4gaXMgYSBy aXNrIHRoYXQgaXMgc2hhcmVkIGJ5IHVzaW5nIGFueSBkcGRrIGFwaS4NCj4gPg0KPiANCj4gTXkg aW1wcmVzc2lvbiBpcyB0aGF0IHRoZXJlIGJhc2ljYWxseSBhcmUgdHdvIHR5cGVzIG9mIGFwcGxp Y2F0aW9uczsNCj4gb25lDQo+IHRoYXQgdHJpZXMgdG8gbWluaW1pemUgRFBESyBBUEkgZXhwb3N1 cmUsIHVzaW5nIERQREsgb25seSBmb3IgSS9PLg0KPiBBbm90aGVyIGNhdGVnb3J5IHVzZSBEUERL IGFzICJ0aGUiIGRhdGEgcGxhbmUgZnJhbWV3b3JrLCBhbHNvDQo+IGxldmVyYWdpbmcNCj4gbm9u LWRyaXZlci9IQUwgdHlwZSBzZXJ2aWNlcywgc3VjaCBhcyByaW5ncywgYXRvbWljcywgdGltZXJz LCBvcg0KPiBhbnl0aGluZyBlbHNlIHRoZSBmdWxsIERQREsgQVBJIGhhcyB0byBvZmZlci4NCj4g DQo+IERldmVsb3BlcnMgaW52b2x2ZWQgaW4gYXBwbGljYXRpb25zIG9mIHRoZSBsYXR0ZXIgY2F0 ZWdvcnkgd2lsbCBnbyBsb29rDQo+IGluIERQREsgZm9yIGV4YW1wbGVzIGFuZCBBUElzLCBpbmNs dWRpbmcgb24gdGhpbmdzIGxpa2UgYXRvbWljcy4NCj4gDQo+IElmIDxydGVfc3RkYXRvbWljLmg+ IGFuZC9vciA8cnRlX2F0b21pYy5oPiBhcmVuJ3QgcHJvcGVybHkgZGV2ZWxvcGVkDQo+IGFuZA0K PiBtYWludGFpbmVkLCBpdCB3aWxsIGJlIHRvIHRoZSBkZXRyaW1lbnQgb2YgdGhlbS4NCg0KSSdt IGdyYWR1YWxseSBiZWluZyBjb252aW5jZWQgdGhhdCB3ZSBjb3VsZCBiZSBiZXR0ZXIgb2ZmIGNv bnNpZGVyaW5nIDxydGVfc3RkYXRvbWljLmg+IG5vbi10ZW1wb3JhcnksIHNvIHdlIGNhbiBzZXQg aXQgZnJlZSB0byBldm9sdmUsIGluc3RlYWQgb2YgY29uc2lkZXJpbmcgaXQgYSB0ZW1wb3Jhcnkg QVBJIG9uIHRoZSBwYXRoIHRvIEMxMSBwZXJmZWN0aW9uLCBrZWVwaW5nIGl0IHJlc3RyaWN0ZWQg dG8gYSBjZXJ0YWluIHN1YnNldCBvZiA8c3RkYXRvbWljLmg+IGZvciBlYXN5IHNlYXJjaC1yZXBs YWNlLg0KDQpUaGlzIHdvdWxkIGFsbG93IHVzIHRvIGFkZCBjb252ZW5pZW5jZSBtYWNyb3MgZm9y IHBvcHVsYXIgdXNlIGNhc2VzLCBzdWNoIGFzIHJ0ZV9hdG9taWNfYWRkX3JlbGF4ZWQoKSwgd2hl cmUgdGhlIG1lbW9yeSBvcmRlciBpcyBzcGVjaWZpZWQgdGhyb3VnaCB0aGUgbWFjcm8gbmFtZS4g QnV0IHJ0ZV9hdG9taWNfYWRkKCkgd2l0aCBzb21lIGltcGxpY2l0IG1lbW9yeSBvcmRlciBzaG91 bGQgc3RpbGwgYmUgcHJvaGliaXRlZCwgcmVnYXJkbGVzcyBob3cgbGlrZWx5IHRoYXQgaW1wbGlj aXQgbWVtb3J5IG9yZGVyIGlzLg0KDQpJZiB3ZSB0aGluayBpdCBpcyBub3QgdG9vIGNvbmZ1c2lu ZyBmb3IgQzExIGRldmVsb3BlcnMsIHdlIGNvdWxkIGFsc28gZ2V0IHJpZCBvZiB0aGUgX2V4cGxp Y2l0IHBvc3RmaXggaW4gdGhlIGZ1bmN0aW9uIG5hbWVzICh3aGlsZSBrZWVwaW5nIHRoZSByZXF1 aXJlZCBtZW1vcnlfb3JkZXIgcGFyYW1ldGVyKSwgdG8gZ2V0IHNob3J0ZXIgbmFtZXMuDQoNCj4g DQo+ID4+DQo+ID4+Pj4+DQo+ID4+Pj4+IEkgc3VnZ2VzdGVkIGZpeGluZyB0aGUgb3JpZ2luYWwg PHJ0ZV9hdG9taWMuaD4gQVBJLCBvciBhdCBsZWFzdA0KPiBoYXZlIGENCj4gPj4+Pj4gd3JhcHBl ciBBUEksIGFscmVhZHkgYXQgdGhlIHBvaW50IERQREsgbW92ZWQgdG8gZGlyZWN0IEdDQyBidWls dC0NCj4gaW4NCj4gPj4+Pj4gY2FsbHMuIFRoZW4gd2Ugd291bGRuJ3QgaGF2ZSBoYWQgdGhpcyBh dG9taWNzIEFQSSBwaW5nLXBvbmcuDQo+ID4+Pj4NCj4gPj4+PiBUaGUgZGVjaXNpb24gYmFjayB0 aGVuIG1pZ2h0IGhhdmUgYmVlbiB0b28gaGFzdHksIGFuZCBiYXNlZCBvbg0KPiBpbmNvbXBsZXRl IGFzc3VtcHRpb25zLg0KPiA+Pj4+IFBsZWFzZSBzaG91dCBsb3VkZXIgbmV4dCB0aW1lIHlvdSB0 aGluayBhIG1pc3Rha2UgaXMgaW4gdGhlDQo+IG1ha2luZy4NCj4gPj4+Pg0KPiA+Pj4+Pg0KPiA+ Pj4+Pj4+DQo+ID4+Pj4+Pj4gV2hlbiB3YXMgdGhpcyBBUEkgaW50cm9kdWNlZD8gU2hvdWxkbid0 IGl0IHNheSAiZXhwZXJpbWVudGFsIg0KPiA+Pj4+Pj4+IHNvbWV3aGVyZT8NCj4gPj4+Pj4+DQo+ ID4+Pj4+PiBUaGV5IHdlcmUgaW50cm9kdWNlZCBhcyBwYXJ0IG9mIHRoZSBtaWdyYXRpb24gdG8g QzExLg0KPiA+Pj4+Pj4gSSBzdXBwb3NlIHRoZXkgd2VyZSBub3QgbWFya2VkIGV4cGVyaW1lbnRh bCBiZWNhdXNlIHRoZXkNCj4gcmVwbGFjZWQNCj4gPj4+Pj4gc29tZXRoaW5nIHdlIGRpZG4ndCB3 YW50IGFueW1vcmUgKHRoZSBjb21waWxlciBidWlsdC1pbnMgZm9yDQo+IGF0b21pY3MsDQo+ID4+ Pj4+IGUuZy4gX19hdG9taWNfbG9hZF9uKCkpLiBJIGRvbid0IHJlY2FsbCBpZiB3ZSBkaXNjdXNz ZWQNCj4gZXhwZXJpbWVudGFsDQo+ID4+Pj4+IG1hcmtpbmcgb3Igbm90Lg0KPiA+Pj4+DQo+ID4+ Pj4gSW4gaGluZHNpZ2h0LCB0aGV5IHNob3VsZCBwcm9iYWJseSBoYXZlIGJlZW4gbWFya2VkDQo+ ICJleHBlcmltZW50YWwiLg0KPiA+Pj4NCj4gPj4+IGknbSBub3Qgc3VyZSBpIGZlZWwgc3Ryb25n bHkgdGhhdCB0aGV5IG5lZWQgdG8gYmUgbWFya2VkDQo+IGV4cGVyaW1lbnRhbA0KPiA+Pj4gYW5k IGJ5IG1hcmtlZCBpIGFzc3VtZSB3ZSdyZSBvbmx5IHRhbGtpbmcgYWJvdXQgcGxhY2luZyBhIGNv bW1lbnQNCj4gaW4gYQ0KPiA+Pj4gZmlsZSByYXRoZXIgdGhhbiBfX3J0ZV9leHBlcmltZW50YWwg d2hpY2ggaGFzIG5vIGFwcGxpY2F0aW9uIGhlcmUuDQo+ID4+Pg0KPiA+Pj4gdHlwaWNhbGx5IHdl IGRvIHRoYXQgd2hlbiB3ZSBtYXkgd2FudCB0byBjaGFuZ2Ugb3IgcmVtb3ZlIHRoZSBhcGkNCj4g d2l0aG91dA0KPiA+Pj4gZ29pbmcgdGhyb3VnaCB0aGUgbm9ybWFsIGRlcHJlY2F0aW9uIGFuZCBy ZW1vdmFsIHByb2Nlc3MuIGZvciB0aGVzZQ0KPiA+Pj4gbWFjcm9zIGl0IGlzIGRpZmZpY3VsdCB0 byBpbWFnaW5lIHdoeSB3ZSB3b3VsZCBjaGFuZ2UgdGhlbSBhcyB0aGF0DQo+IHdvdWxkDQo+ID4+ PiBvbmx5IGNhdXNlIHRoZW0gdG8gZGV2aWF0ZSBmcm9tIHRoZSBzaWduYXR1cmUgb3IgYmVoYXZp b3Igb2YgdGhlDQo+ID4+PiBzdGFuZGFyZCBDIGdlbmVyaWNzLi4uIHdoeSB3b3VsZCB3ZSBkbyB0 aGF0IGlmIG91ciBpbnRlbnRpb24gaXMgdG8NCj4gPj4+IGV2ZW50dWFsbHkgZnVsbHkgbWlncmF0 ZSB0byBkaXJlY3QgdXNlIG9mIHRoZSBzdGFuZGFyZCBDIG5hbWVzPw0KPiA+Pj4NCj4gPj4+IHR5 DQo=