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 937B748A7E; Thu, 6 Nov 2025 08:48:16 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 26276402B2; Thu, 6 Nov 2025 08:48:16 +0100 (CET) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 733114013F for ; Thu, 6 Nov 2025 08:48:15 +0100 (CET) Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4d2Dnf6npdzHnGk2; Thu, 6 Nov 2025 15:48:06 +0800 (CST) Received: from dubpeml100002.china.huawei.com (unknown [7.214.144.156]) by mail.maildlp.com (Postfix) with ESMTPS id CEFC31402A4; Thu, 6 Nov 2025 15:48:13 +0800 (CST) Received: from dubpeml500001.china.huawei.com (7.214.147.241) by dubpeml100002.china.huawei.com (7.214.144.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 6 Nov 2025 07:48:13 +0000 Received: from dubpeml500001.china.huawei.com ([7.214.147.241]) by dubpeml500001.china.huawei.com ([7.214.147.241]) with mapi id 15.02.1544.011; Thu, 6 Nov 2025 07:48:13 +0000 From: Konstantin Ananyev To: Ola Liljedahl , Stephen Hemminger CC: Wathsala Vithanage , Honnappa Nagarahalli , Tyler Retzlaff , "dev@dpdk.org" , "vattunuru@marvell.com" , nd Subject: RE: [PATCH 1/1] eal: correct memory ordering in MCS lock Thread-Topic: [PATCH 1/1] eal: correct memory ordering in MCS lock Thread-Index: AQHcRE2WHhnnI3qNXUmQEzir4eowobThH/qAgAAgCICAAAZ5gIAACaJwgAAMDICAAOD+MIACUgOAgADH2qA= Date: Thu, 6 Nov 2025 07:48:13 +0000 Message-ID: <97ceab55634246a8a3b778880ca0810d@huawei.com> References: <20251023184724.1759497-1-wathsala.vithanage@arm.com> <20251103090717.2d181d95@phoenix> <20251103104803.30464227@phoenix> <9a7a720e91f546879368a0ed83dd7224@huawei.com> <1CB25A39-722A-47C0-B531-5A7A52C2F80C@arm.com> In-Reply-To: <1CB25A39-722A-47C0-B531-5A7A52C2F80C@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.151.58] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 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 DQoNCj4gPiA+ID4gPiA+PiBNQ1MgbG9jayBpcyBicm9rZW4sIGl0J3MganVzdCBhIG1hdHRlciBv ZiB0aW1lIGl0IHdpbGwgcnVuIGludG8gYSBkZWFkbG9jay4NCj4gPiA+ID4gPiA+Pg0KPiA+ID4g PiA+ID4+IGRyaXZlcnMvZG1hL2NueGsgaXMgYSB1c2VyIG9mIE1DUyBsb2NrLg0KPiA+ID4gPiA+ ID4gSSBhbSBzdXJwcmlzZWQgdGhhdCBhIGRyaXZlciB3b3VsZCB1c2UgbWNzbG9jay4NCj4gPiA+ ID4gPiA+IE1DU2xvY2sgaXMgdGFyZ2V0ZWQgYXQgY2FzZSBvZiBsYXJnZSBudW1iZXIgb2YgQ1BV J3Mgd2l0aCBsb3RzIG9mDQo+ID4gPiBjb250ZW50aW9uLg0KPiA+ID4gPiA+ID4gSXQgd2lsbCBs aWtlbHkgYmUgc2xvd2VyIHRoYW4gc3BpbmxvY2sgb3IgdGlja2V0bG9jayBmb3IgdGhlIHVzZSBj YXNlIG9mIGRyaXZlci4NCj4gPiA+ID4gPiBJdCBhcHBlYXJzIGluIHxkcml2ZXJzL2RtYS9jbnhr L2NueGtfZG1hZGV2X2ZwLmN8LCBwZXJoYXBzIHRoZQ0KPiA+ID4gPiA+IG1haW50YWluZXIgY2Fu IGNsYXJpZnkuDQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gSWYgTUNTIGxvY2sgaXMgcmVh bGx5IGJyb2tlbiwgaXQgbmVlZHMgdG8gYmUgZml4ZWQgYW55d2F5Lg0KPiA+ID4gPiBJdCBtaWdo dCBiZSB1c2VkIGJ5IG90aGVyIHRoaXJkLXBhcnR5IGxpYnMvYXBwcyB0aGF0IGRvIHVzZSBvbiBE UERLLg0KPiA+ID4NCj4gPiA+IDEwMCUgYWdyZWUgaXQgbXVzdCBiZSBmaXhlZC4NCj4gPiA+IEl0 IHdvdWxkIGJlIGdvb2QgdG8gaGF2ZSB0ZXN0IG9yIHN0YXRpYyBhbmFseXNpcyB0b29sIHRoYXQg Y291bGQgdmFsaWRhdGUgYWxsIHRoZQ0KPiBsb2NrDQo+ID4gPiB0eXBlcy4NCj4gPg0KPiA+DQo+ ID4gKzENCj4gPiBBbm90aGVyIG9wdGlvbiB3b3VsZCBiZSB0byBoYXZlIHNvcnQgb2Ygc3RyZXNz IHRlc3QgZm9yIGFsbCBsb2NraW5nIHR5cGVzIHdlIGhhdmUgaW4NCj4gb3VyIFVULg0KPiA+IEF0 IGxlYXN0IGZvciByaW5nIEkgZm91bmQgaXQgdmVyeSB1c2VmdWwuDQo+IEEgc3RyZXNzIHRlc3Qg b25seSB0ZXN0cyBmb3IgdGhhdCBzcGVjaWZpYyBoYXJkd2FyZSBhbmQgY29tcGlsZXIgeW91IGFy ZSB1c2luZy4gRS5nLg0KPiB0aGUgTERBUFINCj4gcHJvYmxlbSBpbiBydGVfcmluZyB3YXMgaGlk ZGVuIGZvciB5ZWFycyBiZWNhdXNlIGNvbXBpbGVycyAoR0NDKSBkaWQgbm90IHN1cHBvcnQNCj4g Z2VuZXJhdGluZw0KPiBMREFQUiBpbnN0ZWFkIG9mIExEQVIgZm9yIGxvYWQtYWNxdWlyZS4gQXJt IHByb2Nlc3NvcnMgaGF2ZSBpbXBsZW1lbnRlZCBMREFQUg0KPiBzaW5jZQ0KPiBOZW92ZXJzZSBO MSB3aGljaCB3YXMgcmVsZWFzZWQgaW4gMjAxOS4gVG8gY29tcGFyZSwgaXQgd2FzIG9ubHkgaW4g MjAyMyB3aXRoIEdDQw0KPiAxMyBzdXBwb3J0DQo+IGZvciBGRUFUX1JDUEMgKGkuZS4gdGhlIExE QVBSIGluc3RydWN0aW9uKSB3YXMgYWRkZWQgYnV0IHlvdSBhbHNvIG11c3Qgc3BlY2lmeQ0KPiAr cmNwYyBmb3IgLW1hcmNoDQo+IG9yIHNwZWNpZnkgYSBDUFUgdGhhdCBzdXBwb3J0cyBGRUFUX1JD UEMsIGJ1aWxkaW5nIHdpdGggZGVmYXVsdHMgd29uJ3QgZ2VuZXJhdGUNCj4gTERBUFIgYW5kIHRo ZQ0KPiBidWcgd291bGQgcmVtYWluIGhpZGRlbi4gQSBzdHJlc3MgdGVzdCB0aGF0IGlzIHJ1biBv biB0aGUgdGFyZ2V0IGV2ZXJ5IHRpbWUgRFBESyBpcw0KPiByZWJ1aWx0IGZvcg0KPiBzb21lIHRh cmdldCB3b3VsZCBjb3ZlciBzb21lIG9mIHRoYXQuDQo+IEEgc3RyZXNzIHRlc3QgKGxpa2UgYW55 IHRlc3QpIGlzIGFsc28gbm90IGd1YXJhbnRlZWQgdG8gcHJvdm9rZSBhbGwgY29kZSBwYXRocyBh bmQNCj4gdGhyZWFkIGludGVybGVhdmluZ3MNCj4gc28gdGhlcmUgYXJlIHN0aWxsIG5vIGd1YXJh bnRlZXMuDQoNClJlZ2FyZGluZyB0aGUgY29kZSBjb3ZlcmFnZSAtIHRoZXNlIGRheXMgdGhlcmUg YXJlIHNldmVyYWwgdG9vbHMgdGhhdCBjYW4NCmNvbGxlY3Qgc3VjaCBkYXRhIGZvciB5b3UuIA0K SSB1bmRlcnN0YW5kIHRoYXQgc3RyZXNzLXRlc3QgcGFzc2luZyBkb2Vzbid0IGd1YXJhbnRlZSB0 aGF0IHlvdXIgY29kZSBpcyBjb21wbGV0ZWx5IGJ1ZyBmcmVlLA0KYW5kIG9mIGNvdXJzZSBpdCB3 aWxsIGFibGUgdG8gY2F0Y2ggYnVncyBvbmx5IG9uIHRoZSBwbGF0Zm9ybSB5b3UgcnVuIGl0IG9u LiANCkJ1dCBpdCBpcyBzdGlsbCB3YXkgYmV0dGVyIHRoYW4gbm90aGluZy4NCg0KPiBJIGNsYWlt IHRoYXQgaXQgaXMgaW1wb3J0YW50IHRvIHZlcmlmeSB0aGF0IHRoZSBjb2RlIGZvbGxvd3MgdGhl IEMvQysrIG1lbW9yeSBtb2RlbA0KPiBhbmQgaW1wbGVtZW50cw0KPiBhbGwgdGhlIG5lY2Vzc2Fy eSBoYXBwZW5zLWJlZm9yZSByZWxhdGlvbnMgKHN5bmNocm9uaXplLXdpdGggZWRnZXMpLiBUaGVu IGl0IHdpbGwNCj4gd29yayBvbiBhbGwNCj4gaGFyZHdhcmUgYW5kIGNvbXBpbGVycyBub3cgYW5k IGluIHRoZSBmdXR1cmUgdGhhdCBpbXBsZW1lbnQgdGhlIEMvQysrIG1lbW9yeQ0KPiBtb2RlbCAo YW5kDQo+IEphdmEgd2hpY2ggaXMgcXVpdGUgc2ltaWxhciBBRkFJSywgYWxsIGF0b21pY3MgYmVp bmcgc2VxX2NzdCkuDQo+IA0KPiBPbmUgc3VjaCB2ZXJpZmllciBleGlzdHMgaW4gUHJvZ3Jlc3M2 NC4gSXQgdmVyaWZpZXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBieQ0KPiBleGVjdXRpbmcg YWxsDQo+IHBvc3NpYmxlIGludGVybGVhdmluZ3MgKHBlcm11dGF0aW9ucykgb2YgdHdvIHRocmVh ZHMgcnVubmluZyBhIHRlc3QgcHJvZ3JhbSBhbmQNCj4gZW5zdXJlcyBhbGwNCj4gcmVxdWlyZWQg c3luY2hyb25pemUtd2l0aCBlZGdlcyBleGlzdHMgKGFzIGltcGxlbWVudGVkIGJ5IGxvYWQtYWNx dWlyZS9zdG9yZS0NCj4gcmVsZWFzZSkuIExhY2sNCj4gb2Ygc3luY2hyb25pemUtd2l0aCBiZXR3 ZWVuIHR3byBhY2Nlc3NlcyB0byB0aGUgc2FtZSBsb2NhdGlvbiBieSBkaWZmZXJlbnQgdGhyZWFk cw0KPiBtZWFucw0KPiBhIGRhdGEgcmFjZSBoYXMgYmVlbiBmb3VuZC4NCj4gDQo+IEFzIGFuIGV4 YW1wbGUsIG1ha2UgdGhhdCBsb2FkLWFjcXVpcmUgaW4gdGhlIE1DUyB1bmxvY2sgZnVuY3Rpb24g YSBsb2FkLXJlbGF4ZWQNCj4gaW5zdGVhZCAoYXMNCj4gaXQgd2FzIGJlZm9yZSB0aGF0IHBhdGNo KSBhbmQgcnVuIHRoZSB2ZXJpZmllcjoNCj4gJCAuL3ZlcmlmeSAtYW0gbWNzbG9jaw0KPiBWZXJp ZnlpbmcgbWNzbG9jaw0KPiAobG90cyBvZiBvdXRwdXQgb2YgZmFpbGVkIHZlcmlmaWNhdGlvbnMp DQo+IDxDVFJMLUM+DQo+IEludGVycnVwdGVkDQo+IEhpc3RvZ3JhbSBvdmVyIG51bWJlciBvZiBz dGVwczoNCj4gIDIwOiA1OTQNCj4gIDIxOiAwDQo+ICAyMjogMA0KPiAgMjM6IDANCj4gIDI0OiAw DQo+ICAyNTogMA0KPiAgMjY6IDU2Ng0KPiAgMjc6IDANCj4gIDI4OiA2ODQNCj4gIDI5OiAwDQo+ ICAzMDogMTU1DQo+ICAzMTogMA0KPiAgMzI6IDU5Mw0KPiAgMzM6IDANCj4gIDM0OiA0MjANCj4g IDM1OiAwDQo+ICAzNjogMTU1DQo+IFN1bW1hcnk6DQo+ICBzdWNjZWVkZWQ6IDMxNjcNCj4gIGlu dGVycnVwdGVkOiAwDQo+ICBmYWlsZWQ6IDU4NzENCj4gIHRvdGFsOiA5MDM4ICgweDIzNGUpDQo+ IFN5bmNocm9uaXphdGlvbiBhbmFseXNpczoNCj4gIGxvYWQgQCBzcmMvcDY0X21jc2xvY2suYzoy OCBzeW5jaHJvbml6ZXMtd2l0aCBzdG9yZSBAIHNyYy9wNjRfbWNzbG9jay5jOjU2DQo+IChjb3Vu dCA1OTQpDQo+ICBsb2FkIEAgc3JjL3A2NF9tY3Nsb2NrLmM6NDIgc3luY2hyb25pemVzLXdpdGgg c3RvcmUgQCBzcmMvcDY0X21jc2xvY2suYzo3MA0KPiAoY291bnQgMjU3MykNCj4gIGxvYWQgQCBz cmMvcDY0X21jc2xvY2suYzo2NSBzeW5jaHJvbml6ZXMtd2l0aCBzdG9yZSBAIHNyYy9wNjRfbWNz bG9jay5jOjM4DQo+IChjb3VudCAyNTczKQ0KPiAgbG9hZCBAIHNyYy9wNjRfbWNzbG9jay5jOjI4 IHN5bmNocm9uaXplcy13aXRoIHN0b3JlIEAgc3JjL3A2NF9tY3Nsb2NrLmM6MjgNCj4gKGNvdW50 IDg0NDQpDQo+ICBzcmMvcDY0X21jc2xvY2suYzo2OSBkYXRhLXJhY2VzLXdpdGggc3JjL3A2NF9t Y3Nsb2NrLmM6MjYgKGNvdW50IDU4NzEpDQo+IEVsYXBzZWQgMS4wMjg5MDk1MzMgc2Vjb25kcywg YXZlcmFnZSAxMTM4NDJucy9wZXJtdXRhdGlvbiwgYXZlcmFnZQ0KPiAxMTUzMG5zL3N0ZXANCj4g DQo+IFRoZSBmaXJzdCBmYWlsZWQgcGVybXV0YXRpb24gaXMgMHg3LiBSZS1ydW4gdGhhdCB3aXRo IHRoZSB2ZXJib3NlIGZsYWcuDQo+ICQgLi92ZXJpZnkgLWF2bSAtcDcgbWNzbG9jaw0KPiBWZXJp ZnlpbmcgbWNzbG9jayB1c2luZyBwZXJtdXRhdGlvbiAweDcNCj4gU3RlcCAgMDogdGhyZWFkIDEg ZmlsZSBzcmMvcDY0X21jc2xvY2suYyBsaW5lICAyNSAtdyB3cml0ZV84KDB4N2M1ZGQwNzAsMCxy ZWd1bGFyKQ0KPiBTdGVwICAxOiB0aHJlYWQgMSBmaWxlIHNyYy9wNjRfbWNzbG9jay5jIGxpbmUg IDI2IC13IHdyaXRlXzEoMHg3YzVkZDA3OCwweDEscmVndWxhcikNCj4gU3RlcCAgMjogdGhyZWFk IDEgZmlsZSBzcmMvcDY0X21jc2xvY2suYyBsaW5lICAyOCBydw0KPiBleGNoYW5nZV84KDB4N2M1 ZGQyYjAsMHg3YzVkZDA3MCxhY3FfcmxzKT0wDQo+IFN0ZXAgIDM6IHRocmVhZCAwIGZpbGUgc3Jj L3A2NF9tY3Nsb2NrLmMgbGluZSAgMjUgLXcgd3JpdGVfOCgweDdjNWQ4YzcwLDAscmVndWxhcikN Cj4gU3RlcCAgNDogdGhyZWFkIDAgZmlsZSBzcmMvcDY0X21jc2xvY2suYyBsaW5lICAyNiAtdyB3 cml0ZV8xKDB4N2M1ZDhjNzgsMHgxLHJlZ3VsYXIpDQo+IFN0ZXAgIDU6IHRocmVhZCAwIGZpbGUg c3JjL3A2NF9tY3Nsb2NrLmMgbGluZSAgMjggcncNCj4gZXhjaGFuZ2VfOCgweDdjNWRkMmIwLDB4 N2M1ZDhjNzAsYWNxX3Jscyk9MHg3YzVkZDA3MA0KPiBBdG9taWMgcmVhZF84IG9uIHN0ZXAgNSBt YXRjaGVzIGF0b21pYyB3cml0ZV84IGZyb20gb3RoZXIgdGhyZWFkIG9uIHN0ZXAgMg0KPiBTdGVw IDUgKHNyYy9wNjRfbWNzbG9jay5jOjI4KSBzeW5jaHJvbml6ZXMtd2l0aCBzdGVwIDIgKHNyYy9w NjRfbWNzbG9jay5jOjI4KQ0KPiBTdGVwICA2OiB0aHJlYWQgMCBmaWxlIHNyYy9wNjRfbWNzbG9j ay5jIGxpbmUgIDM3IHItIHJlYWRfOCgweDdjNWRkMDcwLHJlZ3VsYXIpPTANCj4gUmVndWxhciBy ZWFkXzggb24gc3RlcCA2IG1hdGNoZXMgcmVndWxhciB3cml0ZV84IGZyb20gb3RoZXIgdGhyZWFk IG9uIHN0ZXAgMA0KPiBSZWFkIG9uIHN0ZXAgNiBtYXRjaGluZyB3cml0ZSBvbiBzdGVwIDAgc2F2 ZWQgYnkgc3luY2hyb25pemVzLXdpdGggb24gc3RlcHMgNS0yDQo+IFN0ZXAgIDc6IHRocmVhZCAw IGZpbGUgc3JjL3A2NF9tY3Nsb2NrLmMgbGluZSAgMzggLXcNCj4gc3RvcmVfOCgweDdjNWRkMDcw LDB4N2M1ZDhjNzAscmxzKQ0KPiBTdGVwICA4OiB0aHJlYWQgMCBmaWxlIHNyYy9wNjRfbWNzbG9j ay5jIGxpbmUgIDQyIHItIGxvYWRfMSgweDdjNWQ4Yzc4LGFjcSk9MHgxDQo+IEF0b21pYyByZWFk XzEgb24gc3RlcCA4IG1hdGNoZXMgcmVndWxhciB3cml0ZV8xIGZyb20gc2FtZSB0aHJlYWQgb24g c3RlcCA0DQo+IFN0ZXAgIDk6IHRocmVhZCAwIGZpbGUgc3JjL3A2NF9tY3Nsb2NrLmMgbGluZSAg NDIgLS0geWllbGQoKQ0KPiBZaWVsZGluZyB0byBvdGhlciB0aHJlYWQNCj4gU3RlcCAxMDogdGhy ZWFkIDEgZmlsZSBzcmMvdmVyX21jc2xvY2suYyBsaW5lICA0MiByLSByZWFkXzEoMHg3YzVkZDJi OCxyZWd1bGFyKT0wDQo+IFN0ZXAgMTE6IHRocmVhZCAwIGZpbGUgc3JjL3A2NF9tY3Nsb2NrLmMg bGluZSAgNDIgci0gbG9hZF8xKDB4N2M1ZDhjNzgsYWNxKT0weDENCj4gQXRvbWljIHJlYWRfMSBv biBzdGVwIDExIG1hdGNoZXMgcmVndWxhciB3cml0ZV8xIGZyb20gc2FtZSB0aHJlYWQgb24gc3Rl cCA0DQo+IFN0ZXAgMTI6IHRocmVhZCAwIGZpbGUgc3JjL3A2NF9tY3Nsb2NrLmMgbGluZSAgNDIg LS0geWllbGQoKQ0KPiBZaWVsZGluZyB0byBvdGhlciB0aHJlYWQNCj4gU3RlcCAxMzogdGhyZWFk IDEgZmlsZSBzcmMvdmVyX21jc2xvY2suYyBsaW5lICA0MyAtdyB3cml0ZV8xKDB4N2M1ZGQyYjgs MHgxLHJlZ3VsYXIpDQo+IFN0ZXAgMTQ6IHRocmVhZCAwIGZpbGUgc3JjL3A2NF9tY3Nsb2NrLmMg bGluZSAgNDIgci0gbG9hZF8xKDB4N2M1ZDhjNzgsYWNxKT0weDENCj4gQXRvbWljIHJlYWRfMSBv biBzdGVwIDE0IG1hdGNoZXMgcmVndWxhciB3cml0ZV8xIGZyb20gc2FtZSB0aHJlYWQgb24gc3Rl cCA0DQo+IFN0ZXAgMTU6IHRocmVhZCAwIGZpbGUgc3JjL3A2NF9tY3Nsb2NrLmMgbGluZSAgNDIg LS0geWllbGQoKQ0KPiBZaWVsZGluZyB0byBvdGhlciB0aHJlYWQNCj4gU3RlcCAxNjogdGhyZWFk IDEgZmlsZSBzcmMvdmVyX21jc2xvY2suYyBsaW5lICA0NCByLSByZWFkXzEoMHg3YzVkZDJiOCxy ZWd1bGFyKT0weDENCj4gUmVndWxhciByZWFkXzEgb24gc3RlcCAxNiBtYXRjaGVzIHJlZ3VsYXIg d3JpdGVfMSBmcm9tIHNhbWUgdGhyZWFkIG9uIHN0ZXAgMTMNCj4gU3RlcCAxNzogdGhyZWFkIDAg ZmlsZSBzcmMvcDY0X21jc2xvY2suYyBsaW5lICA0MiByLSBsb2FkXzEoMHg3YzVkOGM3OCxhY3Ep PTB4MQ0KPiBBdG9taWMgcmVhZF8xIG9uIHN0ZXAgMTcgbWF0Y2hlcyByZWd1bGFyIHdyaXRlXzEg ZnJvbSBzYW1lIHRocmVhZCBvbiBzdGVwIDQNCj4gU3RlcCAxODogdGhyZWFkIDAgZmlsZSBzcmMv cDY0X21jc2xvY2suYyBsaW5lICA0MiAtLSB5aWVsZCgpDQo+IFlpZWxkaW5nIHRvIG90aGVyIHRo cmVhZA0KPiBTdGVwIDE5OiB0aHJlYWQgMSBmaWxlIHNyYy92ZXJfbWNzbG9jay5jIGxpbmUgIDQ1 IC13IHdyaXRlXzEoMHg3YzVkZDJiOCwwLHJlZ3VsYXIpDQo+IFN0ZXAgMjA6IHRocmVhZCAwIGZp bGUgc3JjL3A2NF9tY3Nsb2NrLmMgbGluZSAgNDIgci0gbG9hZF8xKDB4N2M1ZDhjNzgsYWNxKT0w eDENCj4gQXRvbWljIHJlYWRfMSBvbiBzdGVwIDIwIG1hdGNoZXMgcmVndWxhciB3cml0ZV8xIGZy b20gc2FtZSB0aHJlYWQgb24gc3RlcCA0DQo+IFN0ZXAgMjE6IHRocmVhZCAwIGZpbGUgc3JjL3A2 NF9tY3Nsb2NrLmMgbGluZSAgNDIgLS0geWllbGQoKQ0KPiBZaWVsZGluZyB0byBvdGhlciB0aHJl YWQNCj4gU3RlcCAyMjogdGhyZWFkIDEgZmlsZSBzcmMvcDY0X21jc2xvY2suYyBsaW5lICA1MSBy LQ0KPiBsb2FkXzgoMHg3YzVkZDA3MCxybHgpPTB4N2M1ZDhjNzANCj4gU3RlcCAyMzogdGhyZWFk IDAgZmlsZSBzcmMvcDY0X21jc2xvY2suYyBsaW5lICA0MiByLSBsb2FkXzEoMHg3YzVkOGM3OCxh Y3EpPTB4MQ0KPiBBdG9taWMgcmVhZF8xIG9uIHN0ZXAgMjMgbWF0Y2hlcyByZWd1bGFyIHdyaXRl XzEgZnJvbSBzYW1lIHRocmVhZCBvbiBzdGVwIDQNCj4gU3RlcCAyNDogdGhyZWFkIDAgZmlsZSBz cmMvcDY0X21jc2xvY2suYyBsaW5lICA0MiAtLSB5aWVsZCgpDQo+IFlpZWxkaW5nIHRvIG90aGVy IHRocmVhZA0KPiBTdGVwIDI1OiB0aHJlYWQgMSBmaWxlIHNyYy9wNjRfbWNzbG9jay5jIGxpbmUg IDY5IHItIHJlYWRfMSgweDdjNWQ4Yzc4LHJlZ3VsYXIpPTB4MQ0KPiBSZWd1bGFyIHJlYWRfMSBv biBzdGVwIDI1IG1hdGNoZXMgcmVndWxhciB3cml0ZV8xIGZyb20gb3RoZXIgdGhyZWFkIG9uIHN0 ZXAgNA0KPiBFUlJPUjogUmVhZCBvbiBzdGVwIDI1IG1hdGNoaW5nIHdyaXRlIG9uIHN0ZXAgNCBt aXNzaW5nIHN5bmNocm9uaXplLXdpdGghDQo+IE1vZHVsZSBtY3Nsb2NrIHBlcm11dGF0aW9uIDB4 NyBzdGVwIDI2OiBWZXJpZmljYXRpb24gZmFpbGVkDQo+IA0KPiBDaGFuZ2UgbG9hZC1yZWxheGVk IHRvIGxvYWQtYWNxdWlyZSBpbiB1bmxvY2sgYW5kIHJlcnVuIHRoZSB2ZXJpZmllci4gQnkgZGVm YXVsdCBpdA0KPiBydW5zIDQgKDJeMzIpIHBlcm11dGF0aW9ucyBidXQgdGhpcyBjYW4gYmUgY2hh bmdlZC4NCj4gJCAuL3ZlcmlmeSAtYW0gbWNzbG9jaw0KPiBWZXJpZnlpbmcgbWNzbG9jaw0KPiBW ZXJpZnlpbmcgcGVybXV0YXRpb24gMC4uLg0KPiAuLi4NCj4gSGlzdG9ncmFtIG92ZXIgbnVtYmVy IG9mIHN0ZXBzOg0KPiAgMjA6IDI4MTAxODM2OA0KPiAgMjE6IDANCj4gIDIyOiAwDQo+ICAyMzog MA0KPiAgMjQ6IDE0MzEzMDYyNA0KPiAgMjU6IDANCj4gIDI2OiA5MDY2OTA1NjANCj4gIDI3OiAx Mzc2MjU2MDANCj4gIDI4OiAxMjAwNzAxNDQwDQo+ICAyOTogMjUyODg3MDQwDQo+ICAzMDogNzUy NTkwODQ4DQo+ICAzMTogMTgxMTgyNDY0DQo+ICAzMjogMjc5MjUyOTkyDQo+ICAzMzogNzQzODc0 NTYNCj4gIDM0OiA1OTM3MzU2OA0KPiAgMzU6IDE3MzQwNDE2DQo+ICAzNjogNjQxMDI0MA0KPiAg Mzc6IDIwMTcyODANCj4gIDM4OiAyNjg4MDANCj4gIDM5OiA4OTYwMA0KPiBTdW1tYXJ5Og0KPiAg c3VjY2VlZGVkOiA0Mjk0OTY3Mjk2DQo+ICBpbnRlcnJ1cHRlZDogMA0KPiAgZmFpbGVkOiAwDQo+ ICB0b3RhbDogNDI5NDk2NzI5NiAoMHgxMDAwMDAwMDApDQo+IFN5bmNocm9uaXphdGlvbiBhbmFs eXNpczoNCj4gIGxvYWQgQCBzcmMvcDY0X21jc2xvY2suYzoyOCBzeW5jaHJvbml6ZXMtd2l0aCBz dG9yZSBAIHNyYy9wNjRfbWNzbG9jay5jOjU2DQo+IChjb3VudCAyODEwMTgzNjgpDQo+ICBsb2Fk IEAgc3JjL3A2NF9tY3Nsb2NrLmM6NDIgc3luY2hyb25pemVzLXdpdGggc3RvcmUgQCBzcmMvcDY0 X21jc2xvY2suYzo3MA0KPiAoY291bnQgNDAxMzk0ODkyOCkNCj4gIGxvYWQgQCBzcmMvcDY0X21j c2xvY2suYzo1MSBzeW5jaHJvbml6ZXMtd2l0aCBzdG9yZSBAIHNyYy9wNjRfbWNzbG9jay5jOjM4 DQo+IChjb3VudCAyODA4MDg2NTI4KQ0KPiAgbG9hZCBAIHNyYy9wNjRfbWNzbG9jay5jOjY1IHN5 bmNocm9uaXplcy13aXRoIHN0b3JlIEAgc3JjL3A2NF9tY3Nsb2NrLmM6MzgNCj4gKGNvdW50IDEy MDU4NjI0MDApDQo+ICBsb2FkIEAgc3JjL3A2NF9tY3Nsb2NrLmM6Mjggc3luY2hyb25pemVzLXdp dGggc3RvcmUgQCBzcmMvcDY0X21jc2xvY2suYzoyOA0KPiAoY291bnQgNDAxMzk0ODkyOCkNCj4g IE5vIGRhdGEgcmFjZXMgZGV0ZWN0ZWQNCj4gRWxhcHNlZCA1NzQyLjA1ODI5MTI1MCBzZWNvbmRz LCBhdmVyYWdlIDEzMzZucy9wZXJtdXRhdGlvbiwgYXZlcmFnZSA0N25zL3N0ZXANCj4gDQo+IFRo ZSB2ZXJpZmllciBpcyBzdGlsbCB3b3JrIGluIHByb2dyZXNzIGFuZCBoYXMgc29tZSBsaW1pdGF0 aW9ucy4gSXQgaW1wbGVtZW50cyBhbiBTQw0KPiAoc2VxdWVudGlhbCBjb25zaXN0ZW5jeSktbGlr ZSBtZW1vcnkgbW9kZWwgYnV0IHRoZW4gYW5hbHlzZXMgYWxsIHJlZ3VsYXIgYWNjZXNzZXMgdG8N Cj4gZW5zdXJlIHRoZSBuZWNlc3Nhcnkgc3luY2hyb25pemUtd2l0aCAoYWNxdWlyZS9yZWxlYXNl KSBlZGdlcyBhcmUgcHJlc2VudCBvciBhIGRhdGENCj4gcmFjZSBpcyByZXBvcnRlZC4gT25lIHBy b2JsZW0gaXMgdGhhdCBhdG9taWMgYWNjZXNzZXMgYnkgZGVmaW5pdGlvbiBuZXZlciBjYXVzZSBk YXRhDQo+IHJhY2VzIHNvIHRoZSB2ZXJpZmllciBuZWVkcyBzb21lIGhlbHAgd2hpY2ggaXMgZG9u ZSB1c2luZyBhZGRpdGlvbmFsIHJlZ3VsYXIgKG5vbi0NCj4gYXRvbWljKSBhY2Nlc3Nlcy4gSSB0 aGluayBtb3JlIHdvcmsgY2FuIGJlIGRvbmUgaGVyZSB0byBkZXRlY3QgZGF0YSByYWNlcyB3aXRo b3V0DQo+IHJlcXVpcmluZyBhZGRpdGlvbmFsIHJlZ3VsYXIgYWNjZXNzZXMuIFBvc3NpYmx5IGFu IFJDcGMtbGlrZSBtb2RlbCBjb3VsZCBhbHNvIGJlDQo+IHNpbXVsYXRlZCwNCj4gZS5nLiBhIGxv YWQtYWNxdWlyZSBjb3VsZCByZXR1cm4gbm90IHRoZSBTQyAoY3VycmVudCkgdmFsdWUgb2YgYSBt ZW1vcnkgbG9jYXRpb24gYnV0DQo+IHRoZQ0KPiBlYXJsaWVzdCB2YWx1ZSB0aGF0IGV4aXN0aW5n IHN5bmNocm9uaXplLXdpdGggZWRnZXMgYWxsb3cuIFRoaXMgd291bGQgcmVxdWlyZSBtb3JlDQo+ IGludHJ1c2l2ZSBjaGFuZ2VzIHRvIHRoZSB2ZXJpZmllci4NCj4gVGhyZWFkIGZlbmNlcyBhcmUg bm90IHN1cHBvcnRlZC4gSSBkb24ndCBtaW5kIHRoaXMgdG9vIG11Y2ggYXMgSSBkb24ndCB0aGlu ayB0aHJlYWQNCj4gZmVuY2VzDQo+IFNob3VsZCBiZSB1c2VkIHVubGVzcyByZWFsbHkgbmVjZXNz YXJ5IGFzIHRoZWlyIHNlbWFudGljcyBvZnRlbiBhcmUgbWlzdW5kZXJzdG9vZA0KPiAoYXMgd2UN Cj4gaGF2ZSBzZWVuKS4gSG93ZXZlciwgdGhhdCBtZWFucyBjb2RlIGxpa2UgdGhlIHNlcWxvY2sg Y2FuJ3QgYmUgdmVyaWZpZWQuIEkgaGF2ZSBhDQo+IGhlcmQ3DQo+IGxpdG11cyB0ZXN0IGZvciBz ZXFsb2NrIChwNjRfcndzeW5jKSBpbnN0ZWFkLiBNYXRjaGluZyB0aHJlYWQgZmVuY2VzIHdpdGgg KHJlbGF4ZWQpDQo+IGF0b21pYw0KPiBsb2FkcyBhbmQgc3RvcmVzIHRvIGlkZW50aWZ5IHN5bmNo cm9uaXplLXdpdGggZWRnZXMgaXMgYSBwb3NzaWJpbGl0eSBzbyBwZXJoYXBzIHRoZXkNCj4gd2ls bCBiZQ0KPiBzdXBwb3J0ZWQgYXQgc29tZSBwb2ludC4NCj4gT25seSB0d28gdGhyZWFkcyBhcmUg Y3VycmVudGx5IHN1cHBvcnRlZCBidXQgZXh0ZW5kaW5nIHRoaXMgdG8gbW9yZSB0aHJlYWRzIGlz DQo+IHRyaXZpYWwuDQo+IFZlcmlmaWNhdGlvbiBzcGVlZCB3aWxsIHN1ZmZlciB0aG91Z2guIEkg YW0gcGxhbm5pbmcgdG8gbWFrZSB0aGUgdmVyaWZpZXINCj4gbXVsdGl0aHJlYWRlZCBzbw0KPiBj YW4gdXNlIGFsbCBwcm9jZXNzb3IgY29yZXMgaW4gYSBzeXN0ZW0uDQo+IEkgaGF2ZSBtYW55IG1v cmUgaWRlYXMgb24gaG93IHRvIGltcHJvdmUgdGhlIHZlcmlmaWVyLg0KDQpEaWQgSSB1bmRlcnN0 YW5kIHlvdSByaWdodDogeW91IGFyZSB3b3JraW5nIG9uIHNvbWUgdmVyaWZpZXIgdG9vbCB0aGF0 IHdpbGwgYmUNCnB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgY2FuIGJlIGluY29ycG9yYXRlZCBpbnRv IERQREsgQ0kgcHJvY2Vzcz8NCklmIHNvIC0gdGhhdCB3b3VsZCBiZSBncmVhdC4NClRob3VnaCwg SSBzdGlsbCB0aGluayB3ZSBjYW4gaGF2ZSBib3RoOiBzdHJlc3MgdGVzdHMgYW5kIHZlcmlmaWVy IDopDQpLb25zdGFudGluDQoNCg==