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 0575E43063; Mon, 14 Aug 2023 17:13:09 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 889BC43299; Mon, 14 Aug 2023 17:13:09 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id AC6BA40A7F; Mon, 14 Aug 2023 17:13:07 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 73480205ED; Mon, 14 Aug 2023 17:13:07 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: C11 atomics adoption blocked Date: Mon, 14 Aug 2023 17:13:04 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87AF9@smartserver.smartshare.dk> In-Reply-To: <3629940.iIbC2pHGDl@thomas> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: C11 atomics adoption blocked Thread-Index: AdnOtbmsnqFTfUcpTu6Jq3w4lOYIAQABdQfA References: <20230808175303.GA11006@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <20230808204944.GA3335@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <98CBD80474FA8B44BF855DF32C47DC35D87AD8@smartserver.smartshare.dk> <3629940.iIbC2pHGDl@thomas> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Thomas Monjalon" , "Tyler Retzlaff" Cc: "Bruce Richardson" , , , , 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 PiBGcm9tOiBUaG9tYXMgTW9uamFsb24gW21haWx0bzp0aG9tYXNAbW9uamFsb24ubmV0XQ0KPiBT ZW50OiBNb25kYXksIDE0IEF1Z3VzdCAyMDIzIDE1LjQ2DQo+IA0KPiBtZXJjcmVkaSA5IGFvw7t0 IDIwMjMsIE1vcnRlbiBCcsO4cnVwOg0KPiA+ID4gRnJvbTogVHlsZXIgUmV0emxhZmYgW21haWx0 bzpyb3JldHpsYUBsaW51eC5taWNyb3NvZnQuY29tXQ0KPiA+ID4gU2VudDogVHVlc2RheSwgOCBB dWd1c3QgMjAyMyAyMi41MA0KPiA+ID4NCj4gPiA+IE9uIFR1ZSwgQXVnIDA4LCAyMDIzIGF0IDEw OjIyOjA5UE0gKzAyMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+ID4gPiA+IEZyb206IFR5 bGVyIFJldHpsYWZmIFttYWlsdG86cm9yZXR6bGFAbGludXgubWljcm9zb2Z0LmNvbV0NCj4gPiA+ ID4gPiBTZW50OiBUdWVzZGF5LCA4IEF1Z3VzdCAyMDIzIDIxLjIwDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBPbiBUdWUsIEF1ZyAwOCwgMjAyMyBhdCAwNzoyMzo0MVBNICswMTAwLCBCcnVjZSBSaWNo YXJkc29uDQo+IHdyb3RlOg0KPiA+ID4gPiA+ID4gT24gVHVlLCBBdWcgMDgsIDIwMjMgYXQgMTA6 NTM6MDNBTSAtMDcwMCwgVHlsZXIgUmV0emxhZmYNCj4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+IEhp IGZvbGtzLA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBNb3ZpbmcgdGhpcyBkaXNjdXNz aW9uIHRvIHRoZSBkZXYgbWFpbGluZyBsaXN0IGZvciBicm9hZGVyDQo+ID4gPiBjb21tZW50Lg0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBVbmZvcnR1bmF0ZWx5LCB3ZSd2ZSBoaXQgYSBy b2FkYmxvY2sgd2l0aCBpbnRlZ3JhdGluZyBDMTENCj4gPiA+IGF0b21pY3MNCj4gPiA+ID4gPiA+ ID4gZm9yIERQREsuICBUaGUgbWFpbiBpc3N1ZSBpcyB0aGF0IEdOVSBDKysgcHJpb3IgdG8gLQ0K PiBzdGQ9YysrMjMNCj4gPiA+ID4gPiBleHBsaWNpdGx5DQo+ID4gPiA+ID4gPiA+IGNhbm5vdCBi ZSBpbnRlZ3JhdGVkIHdpdGggQzExIHN0ZGF0b21pYy5oLiAgQmFzaWNhbGx5LCB5b3UNCj4gY2Fu J3QNCj4gPiA+ID4gPiBpbmNsdWRlDQo+ID4gPiA+ID4gPiA+IHRoZSBoZWFkZXIgYW5kIHlvdSBj YW4ndCB1c2UgYF9BdG9taWMnIHR5cGUgc3BlY2lmaWVyIHRvDQo+IGRlY2xhcmUNCj4gPiA+ID4g PiBhdG9taWMNCj4gPiA+ID4gPiA+ID4gdHlwZXMuIFRoaXMgaXMgbm90IGEgcHJvYmxlbSB3aXRo IExMVk0gb3IgTVNWQyBhcyB0aGV5IGJvdGgNCj4gPiA+IGFsbG93DQo+ID4gPiA+ID4gPiA+IGlu dGVncmF0aW9uIHdpdGggQzExIHN0ZGF0b21pYy5oLCBidXQgZ29pbmcgZm9yd2FyZCB3aXRoIEMx MQ0KPiA+ID4gYXRvbWljcw0KPiA+ID4gPiA+ID4gPiB3b3VsZCBicmVhayB1c2luZyBEUERLIGlu IEMrKyBwcm9ncmFtcyB3aGVuIGJ1aWxkaW5nIHdpdGgNCj4gR05VDQo+ID4gPiBnKysuDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEVzc2VudGlhbGx5IHlvdSBjYW5ub3QgY29tcGlsZSB0 aGUgZm9sbG93aW5nIHdpdGggZysrLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICNp bmNsdWRlIDxzdGRhdG9taWMuaD4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7IHJldHVybiAwOyB9DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGF0b21pYy5jcHA6MToNCj4g PiA+ID4gPiA+ID4gICAvdXNyL2xpYi9nY2MveDg2XzY0LXBjLWN5Z3dpbi8xMS9pbmNsdWRlL3N0 ZGF0b21pYy5oOjQwOjk6DQo+ID4gPiBlcnJvcjoNCj4gPiA+ID4gPiA+ID4gICDigJhfQXRvbWlj 4oCZIGRvZXMgbm90IG5hbWUgYSB0eXBlDQo+ID4gPiA+ID4gPiA+ICAgICAgNDAgfCB0eXBlZGVm IF9BdG9taWMgX0Jvb2wgYXRvbWljX2Jvb2w7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICAgLi4uIG1vcmUgZXJyb3JzIG9mIHNhbWUgLi4uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IEl0J3MgYWxzbyBhY2tub3dsZWRnZWQgYXMgc29tZXRoaW5nIGtub3duIGFuZCB3b24ndCBm aXggYnkNCj4gR05VDQo+ID4gPiBnKysNCj4gPiA+ID4gPiA+ID4gbWFpbnRhaW5lcnMuDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hv d19idWcuY2dpP2lkPTYwOTMyDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEdpdmVuIHRo ZSB0aW1lZnJhbWUgSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgdGhlIG1pbmltYWxseQ0KPiA+ID4g aW52YXNpdmUsDQo+ID4gPiA+ID4gPiA+IGxvd2VzdCByaXNrIHNvbHV0aW9uIGFzIGZvbGxvd3Mu DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IDEuICBBZG9wdCBzdGRhdG9taWMuaCBmb3Ig YWxsIFdpbmRvd3MgdGFyZ2V0cywgbGVhdmUgYWxsDQo+ID4gPiBMaW51eC9CU0QNCj4gPiA+ID4g PiB0YXJnZXRzDQo+ID4gPiA+ID4gPiA+ICAgICB1c2luZyBHQ0MgYnVpbHRpbiBDKysxMSBtZW1v cnkgbW9kZWwgYXRvbWljcy4NCj4gPiA+ID4gPiA+ID4gMi4gIEludHJvZHVjZSBhIG1hY3JvIHRo YXQgYWxsb3dzIF9BdG9taWMgdHlwZSBzcGVjaWZpZXIgdG8NCj4gYmUNCj4gPiA+ID4gPiBhcHBs aWVkIHRvDQo+ID4gPiA+ID4gPiA+ICAgICBmdW5jdGlvbiBwYXJhbWV0ZXIsIHN0cnVjdHVyZSBm aWVsZCB0eXBlcyBhbmQgdmFyaWFibGUNCj4gPiA+ID4gPiBkZWNsYXJhdGlvbnMuDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAqIFRoZSBtYWNybyB3b3VsZCBleHBhbmQgZW1wdHkg Zm9yIExpbnV4L0JTRCB0YXJnZXRzLg0KPiA+ID4gPiA+ID4gPiAgICAgKiBUaGUgbWFjcm8gd291 bGQgZXhwYW5kIHRvIEMxMSBfQXRvbWljIGtleXdvcmQgZm9yDQo+IFdpbmRvd3MNCj4gPiA+ID4g PiB0YXJnZXRzLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAzLiAgSW50cm9kdWNlIGJh c2ljIG1hY3JvIHRoYXQgYWxsb3dzIF9fYXRvbWljX3h4eCAgZm9yDQo+ID4gPiBub3JtYWxpemVk DQo+ID4gPiA+ID4gdXNlDQo+ID4gPiA+ID4gPiA+ICAgICBpbnRlcm5hbCB0byBEUERLLg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgKiBUaGUgbWFjcm8gd291bGQgbm90IGJlIGRl ZmluZWQgZm9yIExpbnV4L0JTRCB0YXJnZXRzLg0KPiA+ID4gPiA+ID4gPiAgICAgKiBUaGUgbWFj cm8gd291bGQgZXhwYW5kIF9fYXRvbWljX3h4eCB0byBjb3JyZXNwb25kaW5nDQo+ID4gPiA+ID4g c3RkYXRvbWljLmgNCj4gPiA+ID4gPiA+ID4gICAgICAgYXRvbWljX3h4eCBvcGVyYXRpb25zIGZv ciBXaW5kb3dzIHRhcmdldHMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFJlZ2Fy ZGluZyBuYW1pbmcgb2YgdGhlc2UgbWFjcm9zIChzdWdnZXN0ZWQgaW4gMi4gYW5kIDMuKSwgdGhl eQ0KPiBzaG91bGQNCj4gPiA+IHByb2JhYmx5IGJlYXIgdGhlIHJ0ZV8gcHJlZml4IGluc3RlYWQg b2Ygb3ZlcmxhcHBpbmcgZXhpc3RpbmcgbmFtZXMsDQo+IHNvDQo+ID4gPiBhcHBsaWNhdGlvbnMg Y2FuIGFsc28gdXNlIHRoZW0gZGlyZWN0bHkuDQo+ID4gPiA+DQo+ID4gPiA+IEUuZy46DQo+ID4g PiA+ICNkZWZpbmUgcnRlX2F0b21pYyBmb3IgX0F0b21pYyBvciBub3RoaW5nLA0KPiA+ID4gPiAj ZGVmaW5lIHJ0ZV9hdG9taWNfZmV0Y2hfYWRkKCkgZm9yIGF0b21pY19mZXRjaF9hZGQoKSBvcg0K PiA+ID4gX19hdG9taWNfZmV0Y2hfYWRkKCksIGFuZA0KPiA+ID4gPiAjZGVmaW5lIFJURV9NRU1P UllfT1JERVJfU0VRX0NTVCBmb3IgbWVtb3J5X29yZGVyX3NlcV9jc3Qgb3INCj4gPiA+IF9fQVRP TUlDX1NFUV9DU1QuDQo+ID4gPiA+DQo+ID4gPiA+IE1heWJlIHRoYXQgaXMgd2hhdCB5b3UgbWVh bnQgYWxyZWFkeS4gSSdtIG5vdCBzdXJlIG9mIHRoZSBzY29wZQ0KPiBhbmQNCj4gPiA+IGRldGFp bHMgb2YgeW91ciBzdWdnZXN0aW9uIGhlcmUuDQo+ID4gPg0KPiA+ID4gSSdtIHNoeSB0byBkbyBh bnl0aGluZyBpbiB0aGUgcnRlXyBuYW1lc3BhY2UgYmVjYXVzZSBJIGRvbid0IHdhbnQgdG8NCj4g PiA+IGZvcm1hbGl6ZSBpdCBhcyBhbiBBUEkuDQo+ID4gPg0KPiA+ID4gSSB3YXMgZW52aXNpb25p bmcgdGhlIGZvbGxvd2luZy4NCj4gPiA+DQo+ID4gPiBJbnRlcm5hbGx5IERQREsgY29kZSBqdXN0 IHVzZXMgX19hdG9taWNfZmV0Y2hfYWRkIGRpcmVjdGx5LCB0aGUNCj4gbWFjcm9zDQo+ID4gPiBh cmUgcHJvdmlkZWQgZm9yIFdpbmRvd3MgdGFyZ2V0cyB0byBleHBhbmQgdG8gX19hdG9taWNfZmV0 Y2hfYWRkLg0KPiA+ID4NCj4gPiA+IEV4dGVybmFsbHkgRFBESyBhcHBsaWNhdGlvbnMgdGhhdCBk b24ndCBjYXJlIGFib3V0IGJlaW5nIHBvcnRhYmxlDQo+IG1heQ0KPiA+ID4gdXNlIF9fYXRvbWlj X2ZldGNoX2FkZCAoQlNEL0xpbnV4KSBvciBhdG9taWNfZmV0Y2hfYWRkIChXaW5kb3dzKQ0KPiA+ ID4gZGlyZWN0bHkuDQo+ID4gPg0KPiA+ID4gRXh0ZXJuYWxseSBEUERLIGFwcGxpY2F0aW9ucyB0 aGF0IGNhcmUgdG8gYmUgcG9ydGFibGUgbWF5IGRvIHdoYXQgaXMNCj4gPiA+IGRvbmUgSW50ZXJu YWxseSBhbmQgPDx1c2U+PiB0aGUgX19hdG9taWNfZmV0Y2hfYWRkIGRpcmVjdGx5LiBCeQ0KPiA+ ID4gaW5jbHVkaW5nIHNheSBydGVfc3RkYXRvbWljLmggaW5kaXJlY3RseSAoV2luZG93cykgZ2V0 cyB0aGUgbWFjcm9zDQo+ID4gPiBleHBhbmRlZCB0byBhdG9taWNfZmV0Y2hfYWRkIGFuZCBmb3Ig QlNEL0xpbnV4IGl0J3MgYSBub29wIGluY2x1ZGUuDQo+ID4gPg0KPiA+ID4gQmFzaWNhbGx5IEkn bSBwbGFjaW5nIGEgbGl0dGxlIHVnbHkgaW50byBXaW5kb3dzIGJ1aWx0IGNvZGUgYW5kIGluDQo+ IHRyYWRlDQo+ID4gPiB3ZSBkb24ndCBlbmQgdXAgd2l0aCBhIGJ1bmNoIG9mIHJ0ZV8gQVBJcyB0 aGF0IHdlcmUgc3Ryb25nbHkNCj4gb2JqZWN0ZWQgdG8NCj4gPiA+IHByZXZpb3VzbHkuDQo+ID4g Pg0KPiA+ID4gSXQncyBhIGNvbXByb21pc2UuDQo+ID4NCj4gPiBPSywgd2UgcHJvYmFibHkgbmVl ZCB0byBvZmZlciBhIHB1YmxpYyBoZWFkZXIgZmlsZSB0byB3cmFwIHRoZQ0KPiBhdG9taWNzLCB1 c2luZyBlaXRoZXIgbmFtZXMgcHJlZml4ZWQgd2l0aCBydGVfIG9yIG5hbWVzIHNpbWlsYXIgdG8g dGhlDQo+IGdjYyBidWlsdGluIGF0b21pY3MuDQo+ID4NCj4gPiBJIGd1ZXNzIHRoZSBvYmplY3Rp b25zIHdlcmUgYmFzZWQgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB3ZSB3ZXJlDQo+IHN3aXRjaGlu ZyB0byBDMTEgYXRvbWljcyB3aXRoIERQREsgMjMuMTEsIHNvIHRoZSBydGVfIHByZWZpeGVkIGF0 b21pYw0KPiBBUElzIHdvdWxkIGJlIHZlcnkgc2hvcnQgbGl2ZWQgKERQREsgMjMuMDcgdG8gMjMu MTEgb25seSkuIEJ1dCB3aXRoIHRoaXMNCj4gbmV3IGluZm9ybWF0aW9uIGFib3V0IEdOVSBDKysg aW5jb21wYXRpYmlsaXR5LCB0aGF0IHNlZW1zIG5vdCB0byBiZSB0aGUNCj4gY2FzZSwgc28gdGhl IG5hbWluZyBkaXNjdXNzaW9uIGNhbiBiZSByZW9wZW5lZC4NCj4gPg0KPiA+IElmIHdlIGRvbid0 IGludHJvZHVjZSBzdWNoIGEgd3JhcHBlciBoZWFkZXIsIGFsbCBwb3J0YWJsZSBjb2RlIG5lZWRz DQo+IHRvIHN1cnJvdW5kIHRoZSB1c2Ugb2YgYXRvbWljcyB3aXRoICNpZmRlZiBVU0VfU1REQVRP TUlDX0guDQo+ID4NCj4gPiBCVFc6IENhbiB0aGUgY29tcGlsZXJzIHRoYXQgdW5kZXJzdGFuZCBi b3RoIGJ1aWx0aW4gYXRvbWljcyBhbmQgQzExDQo+IHN0ZGF0b21pY3MuaCBoYW5kbGUgY29kZSB3 aXRoICNkZWZpbmUgX19hdG9taWNfZmV0Y2hfYWRkDQo+IGF0b21pY19mZXRjaF9hZGQgYW5kICNk ZWZpbmUgX19BVE9NSUNfU0VRX0NTVCBtZW1vcnlfb3JkZXJfc2VxX2NzdD8gSWYNCj4gbm90LCB0 aGVuIHdlIG5lZWQgdG8gdXNlIHJ0ZV8gcHJlZml4ZWQgYXRvbWljcy4NCj4gPg0KPiA+IEFuZCB3 aGF0IGFib3V0IEMrKyBhdG9taWNzLi4uIERvIHdlIHdhbnQgKG9yIG5lZWQ/KSBhIHRoaXJkIHZh cmlhbnQNCj4gdXNpbmcgQysrIGF0b21pY3MsIGUuZy4gImF0b21pYzxpbnQ+IHg7IiBpbnN0ZWFk IG9mICJfQXRvbWljIGludCB4OyI/IChJDQo+IGhvcGUgbm90ISkgRm9yIHJlZmVyZW5jZSwgdGhl ICJhdG9taWNfaW50IiB0eXBlIGlzICJfQXRvbWljIGludCIgaW4gQywNCj4gYnV0ICJzdGQ6OmF0 b21pYzxpbnQ+IiBpbiBDKysuDQo+ID4NCj4gPiBDKysyMyBwcm92aWRlcyB0aGUgQzExIGNvbXBh dGliaWxpdHkgbWFjcm8gIl9BdG9taWMoVCkiLCB3aGljaCBtZWFucw0KPiAiX0F0b21pYyBUIiBp biBDIGFuZCAic3RkOjphdG9taWM8VD4iIGluIEMrKy4gUGVyaGFwcyB3ZSBjYW4gc29tZXdoYXQN Cj4gcmVseSBvbiB0aGlzLCBhbmQgdXBkYXRlIG91ciBjb2Rpbmcgc3RhbmRhcmRzIHRvIHJlcXVp cmUgdXNpbmcgZS5nLg0KPiAiX0F0b21pYyhpbnQpIiBmb3IgYXRvbWljIHR5cGVzLCBhbmQgZGlz YWxsb3cgdXNpbmcgIl9BdG9taWMgaW50Ii4NCj4gDQo+IFlvdSBtZWFuIHRoZSBzeW50YXggX0F0 b21pYyhUKSBpcyB3b3JraW5nIHdlbGwgaW4gYm90aCBDIGFuZCBDKys/DQoNClRoaXMgc3ludGF4 IGlzIEFQSSBjb21wYXRpYmxlIGFjcm9zcyBDMTEgYW5kIEMrKzIzLCBzbyBpdCB3b3VsZCB3b3Jr IHdpdGggKEMxMSBhbmQgQysrMjMpIGFwcGxpY2F0aW9ucyBidWlsZGluZyBEUERLIGZyb20gc2Ny YXRjaC4NCg0KQnV0IGl0IGlzIG9ubHkgInJlY29tbWVuZGVkIiBBQkkgY29tcGF0aWJsZSBmb3Ig Y29tcGlsZXJzIFsxXSwgc28gRFBESyBpbiBkaXN0cm9zIGNhbm5vdCByZWx5IG9uLg0KDQpbMV06 IGh0dHBzOi8vd3d3Lm9wZW4tc3RkLm9yZy9qdGMxL3NjMjIvd2cyMS9kb2NzL3BhcGVycy8yMDIw L3AwOTQzcjYuaHRtbA0KDQpJdCB3b3VsZCBiZSBmdXR1cmUtcHJvb2ZpbmcgZm9yIHRoZSBiZW5l Zml0IG9mIEMrKzIzIGJhc2VkIGFwcGxpY2F0aW9ucy4uLiBJIHdhcyBtYWlubHkgbWVudGlvbmlu ZyBpdCBmb3IgY29tcGxldGVuZXNzLCBub3cgdGhhdCB3ZSBhcmUgc3dpdGNoaW5nIHRvIGEgbmV3 IHN0YW5kYXJkIGZvciBhdG9taWNzLg0KDQpSZWFsaXN0aWNhbGx5LCBjb25zaWRlcmluZyB0aGF0 IDEuIHN1Y2ggYSBjb2Rpbmcgc3RhbmRhcmQgKHJlcXVpcmluZyAiX0F0b21pYyhUKSIgaW5zdGVh ZCBvZiAiX0F0b21pYyBUIikgd291bGQgb25seSBiZSByZWxldmFudCBmb3IgYSAyMDIzIHN0YW5k YXJkLCBhbmQgMi4gdGhhdCB3ZSBhcmUgbm93IHVwZ3JhZGluZyB0byBhIHN0YW5kYXJkIGZyb20g MjAxMSwgd2Ugd291bGQgcHJvYmFibHkgaGF2ZSB0byB3YWl0IGZvciBhIHZlcnkgZGlzdGFudCBm dXR1cmUgKDEyIHllYXJzPykgYmVmb3JlIEMrKyBhcHBsaWNhdGlvbnMgY2FuIHJlYXAgdGhlIGJl bmVmaXRzIG9mIHN1Y2ggYSBjb2Rpbmcgc3RhbmRhcmQuDQoNCg==