From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Gavin.Hu@arm.com>
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-eopbgr70085.outbound.protection.outlook.com [40.107.7.85])
 by dpdk.org (Postfix) with ESMTP id A4CE31DA4
 for <dev@dpdk.org>; Fri,  8 Mar 2019 16:05:16 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; 
 s=selector1-arm-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WX34ccbCVx3ByfjEgtQLhQragNaWPOTtIO10EwPP4E4=;
 b=sPssXPDU6l1tbFuDfDHhSv+uiW3AXamNqNIYmX/eNJ7Zlcc1b3J87UTAjW3vbXkuw0n0V5lS//sd7iMdBTz1DPvcmPeXCGtNWNvjLpuZ/OGfQEvo07tJEwJ2rm9mdTpkUMY3aAwV8DiaTeNm7xN7682BNv0Vu0zeOO9fLS/P0yQ=
Received: from VI1PR08MB3167.eurprd08.prod.outlook.com (52.133.15.142) by
 VI1PR08MB4175.eurprd08.prod.outlook.com (20.178.204.157) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1686.18; Fri, 8 Mar 2019 15:05:14 +0000
Received: from VI1PR08MB3167.eurprd08.prod.outlook.com
 ([fe80::707a:b455:dcb2:9d40]) by VI1PR08MB3167.eurprd08.prod.outlook.com
 ([fe80::707a:b455:dcb2:9d40%2]) with mapi id 15.20.1686.019; Fri, 8 Mar 2019
 15:05:14 +0000
From: "Gavin Hu (Arm Technology China)" <Gavin.Hu@arm.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>, Ilya Maximets
 <i.maximets@samsung.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: nd <nd@arm.com>, "thomas@monjalon.net" <thomas@monjalon.net>,
 "jerinj@marvell.com" <jerinj@marvell.com>, "hemant.agrawal@nxp.com"
 <hemant.agrawal@nxp.com>, "Nipun.gupta@nxp.com" <nipun.gupta@nxp.com>,
 Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>, "olivier.matz@6wind.com"
 <olivier.matz@6wind.com>, "Richardson, Bruce" <bruce.richardson@intel.com>,
 "chaozhu@linux.vnet.ibm.com" <chaozhu@linux.vnet.ibm.com>
Thread-Topic: [PATCH v2] ring: enforce reading the tails before ring operations
Thread-Index: AQHU1LF27vtsQ2Xy+0iZsAZL3+5RW6X/3LWAgAAItaCAAAb/gIAADMAQgAEUeFCAAJmlgIAALgYQ
Date: Fri, 8 Mar 2019 15:05:14 +0000
Message-ID: <VI1PR08MB31670DE4179E1194F5410D428F4D0@VI1PR08MB3167.eurprd08.prod.outlook.com>
References: <1551841661-42892-1-git-send-email-gavin.hu@arm.com>
 <CGME20190307064616epcas4p141948c129d532da259eab6fd3e6e4dc7@epcas4p1.samsung.com>
 <1551941137-33250-1-git-send-email-gavin.hu@arm.com>
 <3cdf6747-21f3-d77e-0935-d73b5cc617f6@samsung.com>
 <VI1PR08MB31670CCCC7F8AE61C15281B08F4C0@VI1PR08MB3167.eurprd08.prod.outlook.com>
 <d9fad73d-4097-95d6-08b3-8e33991b062a@samsung.com>
 <VI1PR08MB316773078121887D8BB96C9C8F4C0@VI1PR08MB3167.eurprd08.prod.outlook.com>
 <VI1PR08MB316709E23B7150B420B906E48F4D0@VI1PR08MB3167.eurprd08.prod.outlook.com>
 <2601191342CEEE43887BDE71AB9772580136556E78@irsmsx105.ger.corp.intel.com>
In-Reply-To: <2601191342CEEE43887BDE71AB9772580136556E78@irsmsx105.ger.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=Gavin.Hu@arm.com; 
x-originating-ip: [113.29.88.7]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 574a84c5-c467-47f2-20a6-08d6a3d777ef
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);
 SRVR:VI1PR08MB4175; 
x-ms-traffictypediagnostic: VI1PR08MB4175:
x-ms-exchange-purlcount: 2
x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr
nodisclaimer: True
x-microsoft-exchange-diagnostics: 1; VI1PR08MB4175;
 20:jzQ8w/LFqdIuRuKWrq8ZnLBCVGpmwuQD/88PGaBtL7bUxi94ujhL8N2QRTEGn+1hhD0NVRC/qmJzDsNNdpii5x6gil3pb4vvXWzbaz/48srpjqxDbg/Wi+fWLEfmXMitCJT42xESfy4XpxRD+FSdHrMB27OGSOwZtNKoUtdqJxs=
x-microsoft-antispam-prvs: <VI1PR08MB41750B8B6D42206EBF39D8CB8F4D0@VI1PR08MB4175.eurprd08.prod.outlook.com>
x-forefront-prvs: 0970508454
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(366004)(346002)(136003)(39860400002)(376002)(396003)(52314003)(189003)(199004)(13464003)(68736007)(478600001)(26005)(6506007)(86362001)(81156014)(81166006)(11346002)(476003)(8676002)(99286004)(71190400001)(71200400001)(486006)(52536013)(446003)(33656002)(8936002)(6116002)(3846002)(7696005)(105586002)(106356001)(76176011)(97736004)(6246003)(7416002)(110136005)(186003)(54906003)(4326008)(53936002)(6436002)(55016002)(6306002)(9686003)(93886005)(5660300002)(25786009)(229853002)(66066001)(7736002)(966005)(14444005)(53546011)(305945005)(55236004)(102836004)(316002)(14454004)(256004)(2501003)(2906002)(74316002)(72206003);
 DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR08MB4175;
 H:VI1PR08MB3167.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: arm.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: Y7uBKLgr2PkOynBINrIESwiWTSSV+ikLwyNJzErJNJ05lB+ux1eRIKsCC6pa4tzYJtpkfYCgz/ZD7ffvCJYrDIyAqiAvYJABCImWiu2d+nUYgCa/KoyDd6RscUJ/j8wiPR0IVI6lAPcMlSbjyQ0a3m/dYx8sbAp9C10a9Zt7vHGqrS1r+OJHr21E1BkPwJXdLlEGyQ6UztqKDIQOEnyCuy8y7fTJr5Lfn2PZZl5IdiC7cPXM1m+A0wDn5a8J0yy65A5G5g4B3X7lwm5csDPJPsEk+BbQDeHEzkvKkmDojwMpbsukwms/cgQ65/osvWS1P5X5EBDGFf5UcdB+aaLlwWN9KQN4HKhGtLvlt030sILqmWN7qjmKMzDUzYvqXiFk80/x/5of2LHCiE5dEXO2fPqm8nec8ZWm6NhQvcFXSuQ=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 574a84c5-c467-47f2-20a6-08d6a3d777ef
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2019 15:05:14.3349 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4175
Subject: Re: [dpdk-dev] [PATCH v2] ring: enforce reading the tails before
	ring operations
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Mar 2019 15:05:16 -0000

SGkgS29uc3RhbnRpbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBB
bmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiBTZW50
OiBGcmlkYXksIE1hcmNoIDgsIDIwMTkgODoxMyBQTQ0KPiBUbzogR2F2aW4gSHUgKEFybSBUZWNo
bm9sb2d5IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT47IElseWENCj4gTWF4aW1ldHMgPGkubWF4
aW1ldHNAc2Ftc3VuZy5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IG5kIDxuZEBhcm0uY29tPjsg
dGhvbWFzQG1vbmphbG9uLm5ldDsgamVyaW5qQG1hcnZlbGwuY29tOw0KPiBoZW1hbnQuYWdyYXdh
bEBueHAuY29tOyBOaXB1bi5ndXB0YUBueHAuY29tOyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA8
SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IG9saXZpZXIubWF0ekA2d2luZC5jb207IFJp
Y2hhcmRzb24sDQo+IEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGNoYW96aHVA
bGludXgudm5ldC5pYm0uY29tDQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjJdIHJpbmc6IGVuZm9y
Y2UgcmVhZGluZyB0aGUgdGFpbHMgYmVmb3JlIHJpbmcNCj4gb3BlcmF0aW9ucw0KPiANCj4gDQo+
IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogR2F2aW4gSHUgKEFy
bSBUZWNobm9sb2d5IENoaW5hKSBbbWFpbHRvOkdhdmluLkh1QGFybS5jb21dDQo+ID4gU2VudDog
RnJpZGF5LCBNYXJjaCA4LCAyMDE5IDQ6MjMgQU0NCj4gPiBUbzogSWx5YSBNYXhpbWV0cyA8aS5t
YXhpbWV0c0BzYW1zdW5nLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+IENjOiBuZCA8bmRAYXJtLmNv
bT47IHRob21hc0Btb25qYWxvbi5uZXQ7IGplcmluakBtYXJ2ZWxsLmNvbTsNCj4gaGVtYW50LmFn
cmF3YWxAbnhwLmNvbTsgTmlwdW4uZ3VwdGFAbnhwLmNvbTsgSG9ubmFwcGENCj4gPiBOYWdhcmFo
YWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47DQo+IG9saXZpZXIubWF0ekA2d2lu
ZC5jb207IFJpY2hhcmRzb24sIEJydWNlDQo+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47
IEFuYW55ZXYsDQo+ID4gS29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47
DQo+IGNoYW96aHVAbGludXgudm5ldC5pYm0uY29tDQo+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2
Ml0gcmluZzogZW5mb3JjZSByZWFkaW5nIHRoZSB0YWlscyBiZWZvcmUgcmluZw0KPiBvcGVyYXRp
b25zDQo+ID4NCj4gPg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+
ID4gRnJvbTogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5hKQ0KPiA+ID4gU2VudDogVGh1
cnNkYXksIE1hcmNoIDcsIDIwMTkgNjo0NSBQTQ0KPiA+ID4gVG86IElseWEgTWF4aW1ldHMgPGku
bWF4aW1ldHNAc2Ftc3VuZy5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+IENjOiBuZCA8bmRAYXJt
LmNvbT47IHRob21hc0Btb25qYWxvbi5uZXQ7IGplcmluakBtYXJ2ZWxsLmNvbTsNCj4gPiA+IGhl
bWFudC5hZ3Jhd2FsQG54cC5jb207IE5pcHVuLmd1cHRhQG54cC5jb207IEhvbm5hcHBhDQo+IE5h
Z2FyYWhhbGxpDQo+ID4gPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IG9saXZpZXIu
bWF0ekA2d2luZC5jb207DQo+ID4gPiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsga29uc3Rh
bnRpbi5hbmFueWV2QGludGVsLmNvbTsNCj4gPiA+IGNoYW96aHVAbGludXgudm5ldC5pYm0uY29t
DQo+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIIHYyXSByaW5nOiBlbmZvcmNlIHJlYWRpbmcgdGhl
IHRhaWxzIGJlZm9yZSByaW5nDQo+IG9wZXJhdGlvbnMNCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4g
PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogSWx5YSBNYXhp
bWV0cyA8aS5tYXhpbWV0c0BzYW1zdW5nLmNvbT4NCj4gPiA+ID4gU2VudDogVGh1cnNkYXksIE1h
cmNoIDcsIDIwMTkgNTo0OCBQTQ0KPiA+ID4gPiBUbzogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5
IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT47DQo+ID4gPiBkZXZAZHBkay5vcmcNCj4gPiA+ID4g
Q2M6IG5kIDxuZEBhcm0uY29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldDsgamVyaW5qQG1hcnZlbGwu
Y29tOw0KPiA+ID4gPiBoZW1hbnQuYWdyYXdhbEBueHAuY29tOyBOaXB1bi5ndXB0YUBueHAuY29t
OyBIb25uYXBwYQ0KPiBOYWdhcmFoYWxsaQ0KPiA+ID4gPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlA
YXJtLmNvbT47IG9saXZpZXIubWF0ekA2d2luZC5jb20NCj4gPiA+ID4gU3ViamVjdDogUmU6IFtQ
QVRDSCB2Ml0gcmluZzogZW5mb3JjZSByZWFkaW5nIHRoZSB0YWlscyBiZWZvcmUgcmluZw0KPiA+
ID4gPiBvcGVyYXRpb25zDQo+ID4gPiA+DQo+ID4gPiA+IE9uIDA3LjAzLjIwMTkgMTI6MjcsIEdh
dmluIEh1IChBcm0gVGVjaG5vbG9neSBDaGluYSkgd3JvdGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+PiBGcm9t
OiBJbHlhIE1heGltZXRzIDxpLm1heGltZXRzQHNhbXN1bmcuY29tPg0KPiA+ID4gPiA+PiBTZW50
OiBUaHVyc2RheSwgTWFyY2ggNywgMjAxOSA0OjUyIFBNDQo+ID4gPiA+ID4+IFRvOiBHYXZpbiBI
dSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxHYXZpbi5IdUBhcm0uY29tPjsNCj4gPiA+ID4gPj4g
ZGV2QGRwZGsub3JnDQo+ID4gPiA+ID4+IENjOiBuZCA8bmRAYXJtLmNvbT47IHRob21hc0Btb25q
YWxvbi5uZXQ7DQo+IGplcmluakBtYXJ2ZWxsLmNvbTsNCj4gPiA+ID4gPj4gaGVtYW50LmFncmF3
YWxAbnhwLmNvbTsgTmlwdW4uZ3VwdGFAbnhwLmNvbTsgSG9ubmFwcGENCj4gPiA+IE5hZ2FyYWhh
bGxpDQo+ID4gPiA+ID4+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPjsgb2xpdmllci5t
YXR6QDZ3aW5kLmNvbQ0KPiA+ID4gPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYyXSByaW5nOiBl
bmZvcmNlIHJlYWRpbmcgdGhlIHRhaWxzIGJlZm9yZSByaW5nDQo+ID4gPiA+ID4+IG9wZXJhdGlv
bnMNCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gT24gMDcuMDMuMjAxOSA5OjQ1LCBnYXZpbiBodSB3
cm90ZToNCj4gPiA+ID4gPj4+IEluIHdlYWsgbWVtb3J5IG1vZGVscywgbGlrZSBhcm02NCwgcmVh
ZGluZyB0aGUge3Byb2QsY29uc30udGFpbA0KPiBtYXkNCj4gPiA+IGdldA0KPiA+ID4gPiA+Pj4g
cmVvcmRlcmVkIGFmdGVyIHJlYWRpbmcgb3Igd3JpdGluZyB0aGUgcmluZyBzbG90cywgd2hpY2gg
Y29ycnVwdHMNCj4gdGhlDQo+ID4gPiByaW5nDQo+ID4gPiA+ID4+PiBhbmQgc3RhbGUgZGF0YSBp
cyBvYnNlcnZlZC4NCj4gPiA+ID4gPj4+DQo+ID4gPiA+ID4+PiBUaGlzIGlzc3VlIHdhcyByZXBv
cnRlZCBieSBOWFAgb24gOC1BNzIgRFBBQTIgYm9hcmQuIFRoZQ0KPiBwcm9ibGVtDQo+ID4gPiBp
cw0KPiA+ID4gPiA+PiBtb3N0DQo+ID4gPiA+ID4+PiBsaWtlbHkgY2F1c2VkIGJ5IG1pc3Npbmcg
dGhlIGFjcXVpcmUgc2VtYW50aWNzIHdoZW4gcmVhZGluZw0KPiBjb25zLnRhaWwNCj4gPiA+IChp
bg0KPiA+ID4gPiA+Pj4gU1AgZW5xdWV1ZSkgb3IgcHJvZC50YWlsIChpbiBTQyBkZXF1ZXVlKSB3
aGljaCBtYWtlcyBpdCBwb3NzaWJsZQ0KPiB0bw0KPiA+ID4gPiByZWFkDQo+ID4gPiA+ID4+IGEN
Cj4gPiA+ID4gPj4+IHN0YWxlIHZhbHVlIGZyb20gdGhlIHJpbmcgc2xvdHMuDQo+ID4gPiA+ID4+
Pg0KPiA+ID4gPiA+Pj4gRm9yIE1QIChhbmQgTUMpIGNhc2UsIHJ0ZV9hdG9taWMzMl9jbXBzZXQo
KSBhbHJlYWR5IHByb3ZpZGVzDQo+IHRoZQ0KPiA+ID4gPiA+PiByZXF1aXJlZA0KPiA+ID4gPiA+
Pj4gb3JkZXJpbmcuIFRoaXMgcGF0Y2ggaXMgdG8gcHJldmVudCByZWFkaW5nIGFuZCB3cml0aW5n
IHRoZSByaW5nDQo+IHNsb3RzIGdldA0KPiA+ID4gPiA+Pj4gcmVvcmRlcmVkIGJlZm9yZSByZWFk
aW5nIHtwcm9kLGNvbnN9LnRhaWwgZm9yIFNQIChhbmQgU0MpIGNhc2UuDQo+ID4gPiA+ID4+DQo+
ID4gPiA+ID4+IFJlYWQgYmFycmllciBydGVfc21wX3JtYigpIGlzIE9LIHRvIHByZXZlbnQgcmVh
ZGluZyB0aGUgcmluZyBnZXQNCj4gPiA+ID4gPj4gcmVvcmRlcmVkDQo+ID4gPiA+ID4+IGJlZm9y
ZSByZWFkaW5nIHRoZSB0YWlsLiBIb3dldmVyLCB0byBwcmV2ZW50ICp3cml0aW5nKiB0aGUgcmlu
ZyBnZXQNCj4gPiA+ID4gPj4gcmVvcmRlcmVkDQo+ID4gPiA+ID4+ICpiZWZvcmUgcmVhZGluZyog
dGhlIHRhaWwgeW91IG5lZWQgYSBmdWxsIG1lbW9yeSBiYXJyaWVyLCBpLmUuDQo+ID4gPiA+ID4+
IHJ0ZV9zbXBfbWIoKS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IElTSExEKHJ0ZV9zbXBfcm1iIGlz
IERNQihpc2hsZCkgb3JkZXJzIExEL0xEIGFuZCBMRC9TVCwgd2hpbGUNCj4gPiA+IFdNQihTVA0K
PiA+ID4gPiBPcHRpb24pIG9yZGVycyBTVC9TVC4NCj4gPiA+ID4gPiBGb3IgbW9yZSBkZXRhaWxz
LCBwbGVhc2UgcmVmZXIgdG86IFRhYmxlIEIyLTEgRW5jb2Rpbmcgb2YgdGhlIERNQg0KPiBhbmQN
Cj4gPiA+IERTQg0KPiA+ID4gPiA8b3B0aW9uPiBwYXJhbWV0ZXIgIGluDQo+ID4gPiA+ID4gaHR0
cHM6Ly9kZXZlbG9wZXIuYXJtLmNvbS9kb2NzL2RkaTA0ODcvbGF0ZXN0L2FybS1hcmNoaXRlY3R1
cmUtDQo+ID4gPiA+IHJlZmVyZW5jZS1tYW51YWwtYXJtdjgtZm9yLWFybXY4LWEtYXJjaGl0ZWN0
dXJlLXByb2ZpbGUNCj4gPiA+ID4NCj4gPiA+ID4gSSBzZWUuIEJ1dCB5b3UgaGF2ZSB0byBjaGFu
Z2UgdGhlIHJ0ZV9zbXBfcm1iKCkgZnVuY3Rpb24gZGVmaW5pdGlvbg0KPiBpbg0KPiA+ID4gPiBs
aWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9hdG9taWMuaCBhbmQgYXNz
dXJlIHRoYXQNCj4gYWxsDQo+ID4gPiA+IG90aGVyIGFyY2hpdGVjdHVyZXMgZm9sbG93cyBzYW1l
IHJ1bGVzLg0KPiA+ID4gPiBPdGhlcndpc2UsIHRoaXMgY2hhbmdlIGlzIGxvZ2ljYWxseSB3cm9u
ZywgYmVjYXVzZSByZWFkIGJhcnJpZXIgaW4NCj4gY3VycmVudA0KPiA+ID4gPiBkZWZpbml0aW9u
IGNvdWxkIG5vdCBiZSB1c2VkIHRvIG9yZGVyIExvYWQgd2l0aCBTdG9yZS4NCj4gPiA+ID4NCj4g
PiA+DQo+ID4gPiBHb29kIHBvaW50cywgbGV0IG1lIHJlLXRoaW5rIGhvdyB0byBoYW5kbGUgZm9y
IG90aGVyIGFyY2hpdGVjdHVyZXMuDQo+ID4gPiBGdWxsIE1CIGlzIHJlcXVpcmVkIGZvciBvdGhl
ciBhcmNoaXRlY3R1cmVzKHg4Nj8gUHBjPyksIGJ1dCBmb3IgYXJtLA0KPiByZWFkDQo+ID4gPiBi
YXJyaWVyKGxvYWQvc3RvcmUgYW5kIGxvYWQvbG9hZCkgaXMgZW5vdWdoLg0KPiA+DQo+ID4gSGkg
SWx5YSwNCj4gPg0KPiA+IEkgd291bGQgZXhwYW5kIHRoZSBybWIgZGVmaW5pdGlvbiB0byBjb3Zl
ciBsb2FkL3N0b3JlLCBpbiBhZGRpdGlvbiB0bw0KPiBsb2FkL2xvYWQuDQo+ID4gRm9yIFg4Niwg
YXMgYSBzdHJvbmcgbWVtb3J5IG9yZGVyIG1vZGVsLCBybWIgaXMgYWN0dWFsbHkgZXF1aXZhbGVu
dCB0bw0KPiBtYiwNCj4gDQo+IFRoYXQncyBub3QgZXhhY3RseSB0aGUgY2FzZSwgb24geDg2IHdl
IGhhdmU6DQo+IHNtcF9ybWIgPT0gY29tcGlsZXJfYmFycmllcg0KPiBzbXBfbWIgaXMgYSBwcm9w
ZXIgbWVtb3J5IGJhcnJpZXIuDQo+IA0KPiBLb25zdGFudGluDQoNClNvcnJ5IEkgZGlkIG5vdCBt
YWtlIGl0IGNsZWFyLg0KQW55d2F5LCBvbiB4ODYsIHNtcF9ybWIsIGFzIGEgY29tcGlsZXIgYmFy
cmllciwgYXBwbGllcyB0byBsb2FkL3N0b3JlLCBub3Qgb25seSBsb2FkL2xvYWQuDQpUaGlzIGlz
IHRoZSBjYXNlIGFsc28gZm9yIGFybSwgYXJtNjQsIHBwYzMyLCBwcGM2NC4NCkkgd2lsbCBzdWJt
aXQgYSBwYXRjaCB0byBleHBhbmQgdGhlIGRlZmluaXRpb24gb2YgdGhpcyBBUEkuIA0KDQo+IA0K
PiA+IGFzIGltcGxlbWVudGVkIGFzIGEgY29tcGlsZXIgYmFycmllcjogcnRlX2NvbXBpbGVyX2Jh
cnJpZXIsDQo+ID4gYXJtMzIgaXMgYWxzbyB0aGlzIGNhc2UuDQo+ID4gRm9yIFBQQywgYm90aCAz
MiBhbmQgNjQtYml0LCBybWI9d21iPW1iLCBsd3N5bmMvc3luYyBvcmRlcnMNCj4gbG9hZC9zdG9y
ZSwgbG9hZC9sb2FkLCBzdG9yZS9sb2FkLCBzdG9yZS9zdG9yZSwgbG9va2luZyBhdCB0aGUgdGFi
bGUgb24gdGhpcw0KPiA+IHBhZ2U6DQo+ID4gaHR0cHM6Ly93d3cuaWJtLmNvbS9kZXZlbG9wZXJ3
b3Jrcy9zeXN0ZW1zL2FydGljbGVzL3Bvd2VycGMuaHRtbA0KPiA+DQo+ID4gSW4gc3VtbWFyeSwg
d2UgYXJlIHNhZmUgdG8gZXhwYW5kIHRoaXMgZGVmaW5pdGlvbiBmb3IgYWxsIHRoZQ0KPiBhcmNo
aXRlY3R1cmVzIERQREsgc3VwcG9ydD8NCj4gPiBBbnkgY29tbWVudHMgYXJlIHdlbGNvbWUhDQo+
ID4NCj4gPiBCUi4gR2F2aW4NCj4gPg0K