From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 625E8A00C4;
	Wed,  9 Nov 2022 11:20:02 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id E5DCC40143;
	Wed,  9 Nov 2022 11:20:01 +0100 (CET)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com
 [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 4BB27400EF
 for <dev@dpdk.org>; Wed,  9 Nov 2022 11:20:00 +0100 (CET)
Received: from frapeml500005.china.huawei.com (unknown [172.18.147.226])
 by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4N6gpP4Cydz67xsC;
 Wed,  9 Nov 2022 18:15:41 +0800 (CST)
Received: from frapeml500007.china.huawei.com (7.182.85.172) by
 frapeml500005.china.huawei.com (7.182.85.13) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2375.31; Wed, 9 Nov 2022 11:19:58 +0100
Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by
 frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2375.031;
 Wed, 9 Nov 2022 11:19:58 +0100
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= <mattias.ronnblom@ericsson.com>,
 =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= <mb@smartsharesystems.com>, Bruce Richardson
 <bruce.richardson@intel.com>, Thomas Monjalon <thomas@monjalon.net>
CC: "andrew.rybchenko@oktetlabs.ru" <andrew.rybchenko@oktetlabs.ru>,
 "olivier.matz@6wind.com" <olivier.matz@6wind.com>,
 "david.marchand@redhat.com" <david.marchand@redhat.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "hofors@lysator.liu.se" <hofors@lysator.liu.se>,
 "stephen@networkplumber.org" <stephen@networkplumber.org>,
 "jerinj@marvell.com" <jerinj@marvell.com>
Subject: RE: FW: [PATCH v4 3/3] mempool: use cache for frequently updated stats
Thread-Topic: FW: [PATCH v4 3/3] mempool: use cache for frequently updated
 stats
Thread-Index: AQHY8EWGJHVmHQn4qECYwEvekL7ida40xLXwgAAcq8CAAAcqEIAAEz2AgAAQHICAABangIAAAkcAgAArPdCAAKWUAIAAQX8AgAAocrA=
Date: Wed, 9 Nov 2022 10:19:58 +0000
Message-ID: <29e077d6e6444999b01c04c598e763b8@huawei.com>
References: <98CBD80474FA8B44BF855DF32C47DC35D874A1@smartserver.smartshare.dk>
 <6110999.17fYzF0512@thomas>
 <98CBD80474FA8B44BF855DF32C47DC35D874A3@smartserver.smartshare.dk>
 <2028060.trqCLbgVIZ@thomas>
 <Y2p82O/EUF/NziJR@bricha3-MOBL.ger.corp.intel.com>
 <74775cadd8174c3797b4076929ebbcb7@huawei.com>
 <98CBD80474FA8B44BF855DF32C47DC35D874A4@smartserver.smartshare.dk>
 <eb36bc6a-947a-c16d-2c1b-9bf4c4d18ccf@ericsson.com>
In-Reply-To: <eb36bc6a-947a-c16d-2c1b-9bf4c4d18ccf@ericsson.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.48.147.2]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
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>
Errors-To: dev-bounces@dpdk.org

DQo+IE9uIDIwMjItMTEtMDkgMDY6MDMsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+PiBGcm9t
OiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNv
bV0NCj4gPj4gU2VudDogVHVlc2RheSwgOCBOb3ZlbWJlciAyMDIyIDE4LjM4DQo+ID4+Pg0KPiA+
Pj4gT24gVHVlLCBOb3YgMDgsIDIwMjIgYXQgMDQ6NTE6MTFQTSArMDEwMCwgVGhvbWFzIE1vbmph
bG9uIHdyb3RlOg0KPiA+Pj4+IDA4LzExLzIwMjIgMTU6MzAsIE1vcnRlbiBCcsO4cnVwOg0KPiA+
Pj4+Pj4gRnJvbTogVGhvbWFzIE1vbmphbG9uIFttYWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldF0N
Cj4gPj4+Pj4+IDA4LzExLzIwMjIgMTI6MjUsIE1vcnRlbiBCcsO4cnVwOg0KPiA+Pj4+Pj4+IEZy
b206IE1vcnRlbiBCcsO4cnVwDQo+ID4+Pj4+Pj4+IEZyb206IEtvbnN0YW50aW4gQW5hbnlldg0K
PiA+PiBbbWFpbHRvOmtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29tXQ0KPiA+Pj4+Pj4+PiBT
ZW50OiBUdWVzZGF5LCA4IE5vdmVtYmVyIDIwMjIgMTAuMjANCj4gPj4+Pj4+Pj4+ICsjaWZkZWYg
UlRFX0xJQlJURV9NRU1QT09MX1NUQVRTDQo+ID4+Pj4+Pj4+PiArI2RlZmluZSBSVEVfTUVNUE9P
TF9DQUNIRV9TVEFUX0FERChjYWNoZSwgbmFtZSwgbikNCj4gPj4gKGNhY2hlKS0NCj4gPj4+Pj4+
PiBodHRwczovL3Byb3RlY3QyLmZpcmVleWUuY29tL3YxL3VybD9rPTMxMzIzMzM0LTUwMWQ1MTIy
LTMxMzI3M2FmLTQ1NDQ0NTU1NTczMS0yN2E4NTllN2VjMTMwMzVhJnE9MSZlPWExMjBlMjhlLQ0K
PiBjYWE3LTQ3ODMtOTY4Ni01ODY4Yzg3MTU1M2QmdT1odHRwJTNBJTJGJTJGc3RhdHMubmFtZSUy
RiArPSBuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEFzIEFuZHJldyBhbHJlYWR5IHBvaW50ZWQs
IGl0IG5lZWRzIHRvIGJlOiAoKGNhY2hlKS0NCj4gPj4+IGh0dHBzOi8vcHJvdGVjdDIuZmlyZWV5
ZS5jb20vdjEvdXJsP2s9MzEzMjMzMzQtNTAxZDUxMjItMzEzMjczYWYtNDU0NDQ1NTU1NzMxLTI3
YTg1OWU3ZWMxMzAzNWEmcT0xJmU9YTEyMGUyOGUtY2FhNy0NCj4gNDc4My05Njg2LTU4NjhjODcx
NTUzZCZ1PWh0dHAlM0ElMkYlMkZzdGF0cy5uYW1lJTJGICs9DQo+ID4+Pj4+PiAobikpDQo+ID4+
Pj4+Pj4+IEFwYXJ0IGZyb20gdGhhdCwgTEdUTS4NCj4gPj4+Pj4+Pj4gU2VyaWVzLUFja2VkLWJ5
OiBLb25zdGFudGluIEFuYW55ZXYNCj4gPj4gPGtvbnN0YW50aW4uYW5hbnlldkBodWF3ZWkuY29t
Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQFRob21hcywgdGhpcyBzZXJpZXMgc2hvdWxkIGJlIHJl
YWR5IHRvIGFwcGx5Li4uIGl0IG5vdyBoYXMNCj4gPj4gYmVlbjoNCj4gPj4+Pj4+PiBSZXZpZXdl
ZC1ieTogKG1lbXBvb2wgbWFpbnRhaW5lcikgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+Pj4+Pj4gPGFu
ZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+Pj4+IFJldmlld2VkLUJ5OiBNYXR0
aWFzIFLDtm5uYmxvbSA8bWF0dGlhcy5yb25uYmxvbUBlcmljc3Nvbi5jb20+DQo+ID4+Pj4+Pj4g
QWNrZWQtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5j
b20+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQmVpbmcgYWNrZWQgZG9lcyBub3QgbWVhbiBpdCBpcyBn
b29kIHRvIGFwcGx5IGluIC1yYzMuDQo+ID4+Pj4+DQo+ID4+Pj4+IEkgdW5kZXJzdGFuZCB0aGF0
IHRoZSBSRkMvdjEgb2YgdGhpcyBzZXJpZXMgd2FzIGZvcm1hbGx5IHRvbyBsYXRlDQo+ID4+IHRv
IG1ha2UgaXQgaW4gMjIuMTEsIHNvIEkgd2lsbCBub3QgY29tcGxhaW4gbG91ZGx5IGlmIHlvdSBj
aG9vc2UgdG8NCj4gPj4+IG9taXQgaXQgZm9yIDIyLjExLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBXaXRo
IHR3byBpbmRlcGVuZGVudCByZXZpZXdzLCBpbmNsdWRpbmcgZnJvbSBhIG1lbXBvb2wNCj4gPj4g
bWFpbnRhaW5lciwgSSBzdGlsbCBoYXZlIHNvbWUgaG9wZS4gQWxzbyBjb25zaWRlcmluZyB0aGUg
cmlzaw0KPiA+PiBhc3Nlc3NtZW50DQo+ID4+PiBiZWxvdy4gOy0pDQo+ID4+Pj4+DQo+ID4+Pj4+
PiBQbGVhc2UgdGVsbCB3aGF0IGlzIHRoZSBiZW5lZml0IGZvciAyMi4xMSAoYmVmb3JlL2FmdGVy
IGFuZA0KPiA+PiBjb25kaXRpb24pLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTaG9ydCB2ZXJzaW9uOiBX
aXRoIHRoaXMgc2VyaWVzLCBtZW1wb29sIHN0YXRpc3RpY3MgY2FuIGJlIHVzZWQNCj4gPj4gaW4g
cHJvZHVjdGlvbi4gV2l0aG91dCBpdCwgdGhlIHBlcmZvcm1hbmNlIGNvc3QNCj4gPj4+IChtZW1w
b29sX3BlcmZfYXV0b3Rlc3Q6IC03NCAlKSBpcyBwcm9oaWJpdGl2ZSENCj4gPj4+Pj4NCj4gPj4+
Pj4gTG9uZyB2ZXJzaW9uOg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgcGF0Y2ggc2VyaWVzIHByb3Zp
ZGVzIHNpZ25pZmljYW50bHkgaGlnaGVyIHBlcmZvcm1hbmNlIGZvcg0KPiA+PiBtZW1wb29sIHN0
YXRpc3RpY3MsIHdoaWNoIGFyZSByZWFkYWJsZSB0aHJvdWdoDQo+ID4+PiBydGVfbWVtcG9vbF9k
dW1wKEZJTEUgKmYsIHN0cnVjdCBydGVfbWVtcG9vbCAqbXApLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBX
aXRob3V0IHRoaXMgc2VyaWVzLCB5b3UgaGF2ZSB0byBzZXQgUlRFX0xJQlJURV9NRU1QT09MX0RF
QlVHIGF0DQo+ID4+IGJ1aWxkIHRpbWUgdG8gZ2V0IG1lbXBvb2wgc3RhdGlzdGljcy4NCj4gPj4+
IFJURV9MSUJSVEVfTUVNUE9PTF9ERUJVRyBhbHNvIGVuYWJsZXMgcHJvdGVjdGl2ZSBjb29raWVz
IGJlZm9yZSBhbmQNCj4gPj4gYWZ0ZXIgZWFjaCBtZW1wb29sIG9iamVjdCwgd2hpY2ggYXJlIGFs
bCB2ZXJpZmllZCBvbg0KPiA+Pj4gZ2V0L3B1dCBmcm9tIHRoZSBtZW1wb29sLiBBY2NvcmRpbmcg
dG8gbWVtcG9vbF9wZXJmX2F1dG90ZXN0LCB0aGUNCj4gPj4gcGVyZm9ybWFuY2UgY29zdCBvZiBt
ZW1wb29sIHN0YXRpc3RpY3MgKGJ5IHNldHRpbmcNCj4gPj4+IFJURV9MSUJSVEVfTUVNUE9PTF9E
RUJVRykgaXMgYSA3NCAlIGRlY3JlYXNlIGluIHJhdGVfcGVyc2VjIGZvcg0KPiA+PiBtZW1wb29s
cyB3aXRoIGNhY2hlIChpLmUuIG1idWYgcG9vbHMpLiBQcm9oaWJpdGl2ZSBmb3IgdXNlIGluDQo+
ID4+PiBwcm9kdWN0aW9uIQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBXaXRoIHRoaXMgc2VyaWVzLCB0aGUg
cGVyZm9ybWFuY2UgY29zdCBvZiBtZW1wb29sIHN0YXRpc3RpY3MgKGJ5DQo+ID4+IHNldHRpbmcg
UlRFX0xJQlJURV9NRU1QT09MX1NUQVRTKSBpbg0KPiA+Pj4gbWVtcG9vbF9wZXJmX2F1dG90ZXN0
IGlzIG9ubHkgNi43ICUsIHNvIG1lbXBvb2wgc3RhdGlzdGljcyBjYW4gYmUNCj4gPj4gdXNlZCBp
biBwcm9kdWN0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gTm90ZSB0aGVyZSBpcyBhIHJlYWwgcmlz
ayBkb2luZyBzdWNoIGNoYW5nZSB0aGF0IGxhdGUuDQo+ID4+Pj4+DQo+ID4+Pj4+IFJpc2sgYXNz
ZXNzbWVudDoNCj4gPj4+Pj4NCj4gPj4+Pj4gVGhlIHBhdGNoIHNlcmllcyBoYXMgemVybyBlZmZl
Y3QgdW5sZXNzIGVpdGhlcg0KPiA+PiBSVEVfTElCUlRFX01FTVBPT0xfREVCVUcgb3IgUlRFX0xJ
QlJURV9NRU1QT09MX1NUQVRTIGFyZSBzZXQgd2hlbg0KPiA+Pj4gYnVpbGRpbmcuIFRoZXkgYXJl
IG5vdCBzZXQgaW4gdGhlIGRlZmF1bHQgYnVpbGQuDQo+ID4+Pj4NCj4gPj4+PiBJZiB0aGVzZXMg
YnVpbGQgZmxhZ3MgYXJlIG5vdCBzZXQsIHRoZXJlIGlzIG5vIHJpc2sgYW5kIG5vIGJlbmVmaXQu
DQo+ID4+Pj4gQnV0IGlmIHRoZXkgYXJlIHNldCwgdGhlcmUgaXMgYSByaXNrIG9mIHJlZ3Jlc3Np
b24sDQo+ID4+Pj4gZm9yIHRoZSBiZW5lZml0IG9mIGFuIGluY3JlYXNlZCBwZXJmb3JtYW5jZSBv
ZiBhIGRlYnVnIGZlYXR1cmUuDQo+ID4+Pj4gSSB3b3VsZCBzYXkgaXQgaXMgYmV0dGVyIHRvIGF2
b2lkIGFueSBmdW5jdGlvbmFsIHJlZ3Jlc3Npb24gaW4gYQ0KPiA+PiBkZWJ1ZyBmZWF0dXJlDQo+
ID4+Pj4gYXQgdGhpcyBzdGFnZS4NCj4gPj4+PiBBbnkgb3RoZXIgb3Bpbmlvbj8NCj4gPj4+Pg0K
PiA+Pj4gV2hpbGUgSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCBhdm9pZCBhbnkgZnVuY3Rpb25hbCBy
ZWdyZXNzaW9uLCBJDQo+ID4+IHdvbmRlciBob3cNCj4gPj4+IHdpZGVseSB1c2VkIHRoZSBkZWJ1
ZyBmZWF0dXJlIGlzLCBhbmQgaG93IGJpZyB0aGUgcmlzayBvZiBhDQo+ID4+IHJlZ3Jlc3Npb24g
aXM/DQo+ID4+PiBFdmVuIGlmIHRoZXJlIGlzIG9uZSwgaGF2aW5nIGEgcmVncmVzc2lvbiBpbiBh
IGRlYnVnIGZlYXR1cmUgaXMgYSBsb3QNCj4gPj4gbGVzcw0KPiA+Pj4gc2VyaW91cyB0aGFuIGhh
dmluZyBvbmUgaW4gc29tZXRoaW5nIHdoaWNoIGdvZXMgaW50byBwcm9kdWN0aW9uLg0KPiA+Pj4N
Cj4gPj4NCj4gPj4gVW5sZXNzIGl0IGludHJvZHVjZXMgYW4gQUJJIGJyZWFrYWdlIChhcyBJIHVu
ZGVyc3RhbmQgaXQgZG9lc24ndCksIEknbGwNCj4gPj4gd2FpdCB0aWxsIDIzLjAzLg0KPiA+PiBK
dXN0IGluIGNhc2UuDQo+ID4NCj4gPiBJZiBidWlsdCAoYm90aCBiZWZvcmUgYW5kIGFmdGVyIHRo
aXMgc2VyaWVzKSB3aXRob3V0IFJURV9MSUJSVEVfTUVNUE9PTF9ERUJVRyAoYW5kIHdpdGhvdXQg
UlRFX0xJQlJURV9NRU1QT09MX1NUQVRTLA0KPiB3aGljaCBpcyBpbnRyb2R1Y2VkIGJ5IHRoZSBz
ZXJpZXMpLCB0aGVyZSBpcyBubyBBQkkgYnJlYWthZ2UuDQo+ID4NCj4gPiBJZiBidWlsdCAoYm90
aCBiZWZvcmUgYW5kIGFmdGVyIHRoaXMgc2VyaWVzKSB3aXRoIFJURV9MSUJSVEVfTUVNUE9PTF9E
RUJVRyAoYW5kIHdpdGhvdXQgUlRFX0xJQlJURV9NRU1QT09MX1NUQVRTKSwgdGhlDQo+IEFCSSBk
aWZmZXJzIGJldHdlZW4gYmVmb3JlIGFuZCBhZnRlciB0aGlzIHNlcmllczogVGhlIHN0YXRzIGFy
cmF5IGRpc2FwcGVhcnMgZnJvbSBzdHJ1Y3QgcnRlX21lbXBvb2wsIGFuZCB0aGUgb3V0cHV0IGZy
b20NCj4gcnRlX21lbXBvb2xfZHVtcCgpIGRvZXMgbm90IGluY2x1ZGUgdGhlIHN0YXRpc3RpY3Mu
DQo+ID4NCg0KQ2FuIHdlIHByb2JhYmx5IGFsd2F5cyBlbmFibGUgUlRFX0xJQlJURV9NRU1QT09M
X1NUQVRTIHdoZW4gUlRFX0xJQlJURV9NRU1QT09MX0RFQlVHIGlzIG9uPyANCg0KPiA+IElmIGJ1
aWx0IChib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBzZXJpZXMpIHdpdGggUlRFX0xJQlJURV9N
RU1QT09MX0RFQlVHIChhbmQgd2l0aCBSVEVfTElCUlRFX01FTVBPT0xfU1RBVFMpLCB0aGUgQUJJ
DQo+IGFsc28gZGlmZmVycyBiZXR3ZWVuIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBzZXJpZXM6IFRo
ZSBzaXplIG9mIHRoZSBzdGF0cyBhcnJheSBpbiBzdHJ1Y3QgcnRlX21lbXBvb2wgZ3Jvd3MgYnkg
b25lIGVsZW1lbnQuDQoNCkFoIHllcywgbWlzc2VkIHRoYXQgb25lLg0KU28gdGhlIHF1ZXN0aW9u
IGlzIHRoZW4gLSBkb2VzIGl0IGNvdW50IGFzIGZvcm1hbCBBQkkgYnJlYWthZ2Ugb3Igbm90Pw0K
SWYgeWVzLCB0aGVuIHByb2JhYmx5IGJldHRlciB0byBnbyBhaGVhZCB3aXRoIHRoZXNlIGNoYW5n
ZXMgZm9yIDIyLjExDQooaXQgc291bmRzIHRvbyBwcm9oaWJpdGl2ZSB0byB3YWl0IGZvciBhbiB5
ZWFyIGhlcmUpLiAgDQpPciBhdCBsZWFzdCB0YWtlIGluIHRoZSBwYXJ0IHRoYXQgaW50cm9kdWNl
IHRoZSBBQkkgYnJlYWthZ2UuDQpJZiBub3QsIHByb2JhYmx5IG5vdCBiaXQgZGVhbCB0byB3YWl0
IHRpbGwgMjMuMDMuDQoNCj4gPj4gQlRXLCBhcyBhIHNpZGUgdGhvdWdodCAtIGlmIHRoZSBpbXBh
Y3QgaXMgcmVhbGx5IHRoYXQgc21hbGwgbm93LCB3b3VsZA0KPiA+PiBpdCBtYWtlIHNlbnNlIHRv
IG1ha2UNCj4gPj4gaXQgcnVuLXRpbWUgb3B0aW9uLCBpbnN0ZWFkIG9mIGNvbXBpbGUtdGltZSBv
bmU/DQo+ID4NCj4gPiBUaGUgbWVtcG9vbCBnZXQvcHV0IGZ1bmN0aW9ucyBhcmUgdmVyeSBsZWFu
IHdoZW4gYnVpbHQgd2l0aG91dCBTVEFUUyBvciBERUJVRy4gV2l0aCBhIHJ1bnRpbWUgb3B0aW9u
LCB0aGUgcmVzdWx0aW5nIGNvZGUgd291bGQNCj4gYmUgc2xpZ2h0bHkgbG9uZ2VyLCBhbmQgb25s
eSBvbmUgYWRkaXRpb25hbCBjb25kaXRpb25hbCB3b3VsZCBiZSBoaXQgaW4gdGhlIGNvbW1vbiBj
YXNlIChpLmUuIHdoZW4gdGhlIG9iamVjdHMgZG9uJ3QgbWlzcyB0aGUgbWVtcG9vbA0KPiBjYWNo
ZSkuIFNvIHdpdGggc3RhdHMgZGlzYWJsZWQgKGF0IHJ1bnRpbWUpLCBpdCB3b3VsZCBvbmx5IGFk
ZCBhIHZlcnkgc21hbGwgcGVyZm9ybWFuY2UgY29zdC4gSG93ZXZlciwgY2hlY2tpbmcgdGhlIHZh
bHVlIG9mIHRoZQ0KPiBlbmFibGVkL2Rpc2FibGVkIHZhcmlhYmxlIGNhbiBjYXVzZSBhIENQVSBj
YWNoZSBtaXNzLCB3aGljaCBoYXMgYSBwZXJmb3JtYW5jZSBjb3N0LiBBbmQgdGhlIGVuYWJsZWQv
ZGlzYWJsZWQgdmFyaWFibGUgc2hvdWxkDQo+IGRlZmluaXRlbHkgYmUgZ2xvYmFsIC0gaWYgaXQg
aXMgcGVyIG1lbXBvb2wsIGl0IHdpbGwgY2F1c2UgbWFueSBDUFUgY2FjaGUgbWlzc2VzIChiZWNh
dXNlIHRoZSBjb21tb24gY2FzZSBkb2Vzbid0IHRvdWNoIHRoZSBtZW1wb29sDQo+IHN0cnVjdHVy
ZSwgb25seSB0aGUgbWVtcG9vbCBjYWNoZSBzdHJ1Y3R1cmUpLg0KPiA+DQoNClllcywgZWl0aGVy
IGEgZ2xvYmFsIG9uZSwgb3IgcHV0IGl0IGludG8gYm90aCBzdHJ1Y3RzOiBydGVfbWVtcG9vbF9j
YWNoZSBhbmQgcnRlX21lbXBvb2wuDQoNCj4gSXQncyBub3QgdG90YWxseSBvYnZpb3VzIHRoYXQg
YSBjb25kaXRpb25hbCBpcyBiZXR0ZXIgdGhhbiBqdXN0IGFsd2F5cw0KPiBwZXJmb3JtaW5nIHRo
ZXNlIHNpbXBsZSBhcml0aG1ldGljIG9wZXJhdGlvbnMsIGV2ZW4gaWYgeW91IGRvbid0IGtub3cg
aWYNCj4geW91IG5lZWQgdGhlIHJlc3VsdCAoaS5lLiwgaWYgc3RhdHMgaXMgZW5hYmxlZCBvciBu
b3QpLCBlc3BlY2lhbGx5IHNpbmNlDQo+IHRoZXkgb3BlcmF0ZSBvbiBhIGNhY2hlIGxpbmUgdGhh
dCBpcyB2ZXJ5IGxpa2VseSBhbHJlYWR5IG93bmVkIGJ5IHRoZQ0KPiBjb3JlIHJ1bm5pbmcgdGhl
IGNvcmUgKHNpbmNlIHRoZSAnbGVuJyBmaWVsZHMgaXMgZnJlcXVlbnRseSB1c2VkKS4NCg0KWWVw
LCB0aGF0J3MgYW5vdGhlciBvcHRpb24gLSBhbHdheXMgdXBkYXRlIHRoZSBjYWNoZSBwYXJ0Lg0K
DQo+ID4gQWxzbywgY2hlY2tpbmcgdGhlIHJ1bnRpbWUgb3B0aW9uIHNob3VsZCBoYXZlIHVubGlr
ZWx5KCksIHNvIHRoZSBwZXJmb3JtYW5jZSBjb3N0IG9mIHRoZSBzdGF0cyAod2hlbiBlbmFibGVk
IGF0IHJ1bnRpbWUpIGlzIGFsc28NCj4gaGlnaGVyIHRoYW4gd2l0aCBhIGJ1aWxkIHRpbWUgb3B0
aW9uLiAoWWVzLCBkeW5hbWljIGJyYW5jaCBwcmVkaWN0aW9uIHdpbGwgYWxsZXZpYXRlIG1vc3Qg
b2YgdGhpcywgYnV0IGl0IHdpbGwgY29uc3VtZSBlbnRyaWVzIGluIHRoZQ0KPiBicmFuY2ggcHJl
ZGljdG9yIHRhYmxlIC0gdGhlc2UgYXJlIGlubGluZWQgZnVuY3Rpb25zLiBKdXN0IGxpa2Ugd2Ug
YWx3YXlzIHRyeSB0byBhdm9pZCBjYWNoZSBtaXNzZXMgaW4gRFBESywgd2Ugc2hvdWxkIGFsc28g
dHJ5IHRvDQo+IGNvbnNlcnZlIGJyYW5jaCBwcmVkaWN0b3IgdGFibGUgZW50cmllcy4gSSBoYXRl
IHRoZSBhcmd1bWVudCB0aGF0IGJyYW5jaCBwcmVkaWN0aW9uIGZpeGVzIGNvbmRpdGlvbmFscywg
ZXNwZWNpYWxseSBpZiB0aGV5IGFyZSB3ZWlyZCBvcg0KPiBjb3VsZCBoYXZlIGJlZW4gYXZvaWRl
ZC4pDQo+ID4NCj4gPiBJbiB0aGUgY29zdC9iZW5lZml0IGFuYWx5c2lzLCB3ZSBuZWVkIHRvIGNv
bnNpZGVyIHRoYXQgdGhlc2Ugc3RhdGlzdGljcyBhcmUgbm90IGZpbGwvZW1wdGluZXNzIGxldmVs
IHN0YXR1cyBvciBzaW1pbGFyLCBidXQgb25seSBkZWJ1Zw0KPiBjb3VudGVycyAobnVtYmVyIG9m
IGdldC9wdXQgdHJhbnNhY3Rpb25zIGFuZCBvYmplY3RzKSwgc28gd2UgbmVlZCB0byBhc2sgb3Vy
c2VsdmVzIHRoaXMgcXVlc3Rpb246IEhvdyBtYW55IHVzZXJzIGFyZSBpbnRlcmVzdGVkIGluDQo+
IHRoZXNlIHN0YXRpc3RpY3MgZm9yIHByb2R1Y3Rpb24gYW5kIGFyZSB1bmFibGUgdG8gYnVpbGQg
dGhlaXIgYXBwbGljYXRpb24gd2l0aCBSVEVfTElCUlRFX01FTVBPT0xfU1RBVFM/DQoNCk9idmlv
dXNseSwgSSBkb24ndCBoYXZlIHN1Y2ggc3RhdHMuDQpGcm9tIG15IHBlcnNwZWN0aXZlIC0gSSBh
bSBvayB0byBzcGVuZCBmZXcgZXh0cmEgY3ljbGVzIHRvIGF2b2lkIGJ1aWxkaW5nIHNlcGFyYXRl
IGJpbmFyeS4NCkFnYWluLCBJIGd1ZXNzIHRoYXQgIHdpdGggZ2xvYmFsIHN3aXRjaCB0aGUgaW1w
YWN0IHdpbGwgYmUgbmVnbGlnaWJsZS4gDQpCdXQgYW55d2F5LCBpdCB3aWxsIHJlcXVpcmUgZXZl
biBtb3JlIGNoYW5nZXMgYW5kIGFub3RoZXIgQUJJIGJyZWFrYWdlIChhcyBzdGF0cyBzaG91bGQg
YWx3YXlzIGJlIGluY2x1ZGVkKSwNCnNvIGl0IGRlZmluaXRlbHkgb3V0IG9mIHNjb3BlIGZvciB0
aGlzIHJlbGVhc2UuIA0KDQo+ID4gRm9yIGV4YW1wbGUsIHdlIChTbWFydFNoYXJlIFN5c3RlbXMp
IGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlbSBmb3IgYXBwbGljYXRpb24gcHJvZmlsaW5nIHB1
cnBvc2VzLi4uIHRyeWluZyB0byBpbXByb3ZlIHRoZQ0KPiBwZXJmb3JtYW5jZSBieSBzdHJpdmlu
ZyBmb3IgYSBoaWdoZXIgbnVtYmVyIG9mIG9iamVjdHMgcGVyIGJ1cnN0IGluIGV2ZXJ5IHBpcGVs
aW5lIHN0YWdlLg0KPiA+DQo+ID4+IEtvbnN0YW50aW4NCg0K