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 43C8644042; Thu, 16 May 2024 10:40:59 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BF5294029B; Thu, 16 May 2024 10:40:58 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 652264025C for ; Thu, 16 May 2024 10:40:57 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Vg3PK0zDYz67P7J; Thu, 16 May 2024 16:37:25 +0800 (CST) Received: from frapeml100007.china.huawei.com (unknown [7.182.85.133]) by mail.maildlp.com (Postfix) with ESMTPS id 54E5114038F; Thu, 16 May 2024 16:40:56 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100007.china.huawei.com (7.182.85.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 16 May 2024 10:40:56 +0200 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Thu, 16 May 2024 10:40:56 +0200 From: Konstantin Ananyev To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Paul Szczepanek" , "konstantin.v.ananyev@yandex.ru" CC: "nd@arm.com" , "dev@dpdk.org" , "Honnappa Nagarahalli" Subject: RE: RE: [PATCH v5 0/4] add pointer compression API Thread-Topic: RE: [PATCH v5 0/4] add pointer compression API Thread-Index: AQHaDO8/XczYUI3d606Txy6GlzyQp7EWpAAAgACSFPCADDnS4IAAiswAgARddcCAcT9UgIAAXT2AgADE2tA= Date: Thu, 16 May 2024 08:40:55 +0000 Message-ID: References: <20230927150854.3670391-2-paul.szczepanek@arm.com> <20231101181301.2449804-1-paul.szczepanek@arm.com> <7058331a-d829-4f0e-8634-726ca3be1ef2@arm.com> <98CBD80474FA8B44BF855DF32C47DC35E9F290@smartserver.smartshare.dk> <7D23A333-9846-4A34-A8B5-FDC11F042025@arm.com> <18e97877c4a64521a02317a329572866@huawei.com> <039e71aa-f798-4f64-8c66-a9427a77b821@arm.com> <98CBD80474FA8B44BF855DF32C47DC35E9F45C@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F45C@smartserver.smartshare.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.173.11] 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 DQoNCj4gPiBGcm9tOiBQYXVsIFN6Y3plcGFuZWsgW21haWx0bzpwYXVsLnN6Y3plcGFuZWtAYXJt LmNvbV0NCj4gPiBTZW50OiBXZWRuZXNkYXksIDE1IE1heSAyMDI0IDE5LjAxDQo+ID4NCj4gPiBP biAwNC8wMy8yMDI0IDE0OjQ0LCBLb25zdGFudGluIEFuYW55ZXYgd3JvdGU6DQo+ID4gPj4gVGhp cyBmZWF0dXJlIGlzIHRhcmdldGVkIGZvciBwaXBlbGluZSBtb2RlIG9mIGFwcGxpY2F0aW9ucy4g V2Ugc2VlDQo+ID4gbWFueSBjdXN0b21lcnMgdXNpbmcgcGlwZWxpbmUgbW9kZS4gVGhpcyBmZWF0 dXJlIGhlbHBzIGluIHJlZHVjaW5nDQo+ID4gPj4gdGhlIGNvc3Qgb2YgdHJhbnNmZXJyaW5nIHRo ZSBwYWNrZXRzIGJldHdlZW4gY29yZXMgYnkgcmVkdWNpbmcgdGhlDQo+ID4gY29waWVzIGludm9s dmVkLg0KPiA+ID4NCj4gPiA+IEkgZG8gdW5kZXJzdGFuZCB0aGUgaW50ZW50aW9uLCBhbmQgSSBh bSBub3QgYXJndWluZyBhYm91dCB1c2VmdWxuZXNzDQo+ID4gb2YgdGhlIHBpcGVsaW5lIG1vZGVs Lg0KPiA+ID4gTXkgcG9pbnQgaXMgeW91IGFyZSBpbnRyb2R1Y2luZyBuZXcgQVBJOiBjb21wcmVz cy9kZWNvbXByZXNzIHBvaW50ZXJzLA0KPiA+ID4gYnV0IGRvbid0IHByb3ZpZGUgKG9yIGV2ZW4g ZGVzY3JpYmUpIGFueSBwcm9wZXIgd2F5IGZvciB0aGUgZGV2ZWxvcGVyDQo+ID4gdG8gdXNlIGl0 IGluIGEgc2FmZSBhbmQgcHJlZGljdGFibGUgbWFubmVyLg0KPiA+ID4gV2hpY2ggZnJvbSBteSBw ZXJzcGVjdGl2ZSBtYWtlIGl0IG5lYXJseSB1c2VsZXNzIGFuZCBtaXNsZWFkaW5nLg0KPiA+DQo+ ID4gSW4gdGhlIGxhdGVzdCB2ZXJzaW9uIHRoZXJlIGlzIGFuIGV4YW1wbGUgaW4gdGhlIGRvY3Mg c2hvd2luZyBob3cgdG8gdXNlDQo+ID4gaXQuIFRoZXJlIGlzIGFuIGludGVncmF0aW9uIHRlc3Qg dGhhdCBzaG93cyBob3cgdG8gdXNlIGl0LiBUaGUgY29tbWVudHMNCj4gPiBpbiB0aGUgaGVhZGVy IGFsc28gcHJvdmlkZSBkZXRhaWxlZCBndWlkYW5jZS4NCj4gPg0KPiA+ID4+IEZvciBhbiBhcHBs aWNhdGlvbiB3aXRoIG11bHRpcGxlIHBvb2xzLCBpdCBkZXBlbmRzIG9uIGhvdyB0aGUNCj4gPiBh cHBsaWNhdGlvbnMgYXJlIHVzaW5nIG11bHRpcGxlIHBvb2xzLiBCdXQsIGlmIHRoZXJlIGlzIGEg YnVuY2ggb2YNCj4gPiBwYWNrZXRzDQo+ID4gPj4gYmVsb25naW5nIHRvIG11bHRpcGxlIG1lbXBv b2xzLCBjb21wcmVzc2luZyB0aG9zZSBtYnVmcyBtYXkgbm90IGJlDQo+ID4gcG9zc2libGUuIEJ1 dCBpZiB0aG9zZSBtYnVmcyBhcmUgZ3JvdXBlZCBwZXIgbWVtcG9vbCBhbmQNCj4gPiA+PiBhcmUg dHJhbnNmZXJyZWQgb24gZGlmZmVyZW50IHF1ZXVlcywgdGhlbiBpdCBpcyBwb3NzaWJsZS4gSGVu Y2UgdGhlDQo+ID4gQVBJcyBhcmUgaW1wbGVtZW50ZWQgdmVyeSBnZW5lcmljYWxseS4NCj4gPiA+ DQo+ID4gPiBPaywgbGV0J3MgY29uc2lkZXIgZXZlbiBtb3JlIHNpbXBsaXN0aWMgc2NlbmFyaW8g LSBhbGwgcG9pbnRlcnMgYmVsb25nDQo+ID4gdG8gb25lIG1lbXBvb2wuDQo+ID4gPiBBRkFJSywg ZXZlbiBvbmUgbWVtcG9vbCBjYW4gY29udGFpbiBlbGVtZW50cyBmcm9tIGRpZmZlcmVudCBtZW16 b25lcywNCj4gPiA+IGFuZCB0aGVzZSBtZW16b25lcyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gaGF2 ZSBjb25zZWN1dGl2ZSBWQXMuDQo+ID4gPiBTbyBldmVuIG9uZSBtZW1wb29sLCB3aXRoIHRvdGFs IHNpemUgPD00R0IgY2FuIGNvbnRhaW4gZWxlbWVudHMgd2l0aA0KPiA+IGRpc3RhbmNlcyBiZXR3 ZWVuIHRoZW0gbW9yZSB0aGFuIDRHQi4NCj4gPiA+IE5vdyBsZXQgc2F5IGF0IHN0YXJ0dXAgdXNl ciBjcmVhdGVkIGEgbWVtcG9vbCwgaG93IGhlIGNhbiBkZXRlcm1pbmUNCj4gPiBwcm9ncmFtbWF0 aWNhbGx5DQo+ID4gPiBjYW4gaGUgYXBwbHkgeW91ciBjb21wcmVzcyBBUEkgc2FmZWx5IG9uIGl0 IG9yIG5vdD8NCj4gPiA+IEkgcHJlc3VtZSB0aGF0IGlmIHlvdSBhcmUgc2VyaW91cyBhYm91dCB0 aGlzIEFQSSB1c2FnZSwgdGhlbiBzdWNoDQo+ID4gYWJpbGl0eSBoYXMgdG8gYmUgcHJvdmlkZWQu DQo+ID4gPiBTb21ldGhpbmcgbGlrZToNCj4gPiA+DQo+ID4gPiBpbnQgY29tcHJlc3NfcG9pbnRl cl9kZWR1Y2VfbWVtcG9vbF9iYXNlKGNvbnN0IHN0cnVjdCBydGVfbWVtZXBvb2wNCj4gPiAqbXBb XSwNCj4gPiA+IAl1aW50MzJfdCBuYl9tcCwgdWludDMyX3QgY29tcHJlc3Nfc2l6ZSwgdWludHB0 cl90ICpiYXNlX3B0cik7DQo+ID4gPg0KPiA+ID4gT3IgcHJvYmFibHkgZXZlbiBtb3JlIGdlbmVy aWMgb25lOg0KPiA+ID4NCj4gPiA+IHN0cnVjdCBtZW1fYnVmIHt1aW50cHRyX3QgYmFzZSwgc2l6 ZV90IGxlbjt9Ow0KPiA+ID4gaW50IGNvbXByZXNzX3BvaW50ZXJfZGVkdWNlX2Jhc2UoY29uc3Qg c3RydWN0IG1lbV9idWYgKm1lbV9idWZbXSwNCj4gPiA+IAl1aW50MzJfdCBuYl9tZW1idWYsIHVp bnQzMl90IGNvbXByZXNzX3NpemUsIHVpbnRwdHJfdCAqYmFzZV9wdHIpOw0KPiA+ID4NCj4gPiA+ IEV2ZW4gd2l0aCB0aGVzZSBmdW5jdGlvbnMgaW4tcGxhY2UsIHVzZXIgaGFzIHRvIGJlIGV4dHJh IGNhcmVmdWw6DQo+ID4gPiAgLSBoZSBjYW4ndCBhZGQgbmV3IG1lbW9yeSBjaHVua3MgdG8gdGhl c2UgbWVtcG9vbHMgKG9yIGhlJ2xsIG5lZWQgdG8NCj4gPiByZS1jYWxjdWFsdGUgdGhlIG5ldyBi YXNlX3B0cikNCj4gPiA+ICAtIGhlIG5lZWRzIHRvIG1ha2Ugc3VyZSB0aGF0IHBvaW50ZXJzIGZy b20gb25seSB0aGVzZSBtZW1wb29scyB3aWxsDQo+ID4gYmUgdXNlZCBieSBjb21wcmVzcy9kZWNv bXByZXNzLg0KPiA+ID4gQnV0IGF0IGxlYXN0IGl0IHByb3ZpZGVzIHNvbWUgYWJpbGl0eSB0byB1 c2UgdGhpcyBmZWF0dXJlIGluIHJlYWwNCj4gPiBhcHBzLg0KPiA+ID4NCj4gPiA+IFdpdGggc3Vj aCBBUEkgaW4gcGxhY2UgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIG1ha2UgdGhlIGF1dG8tdGVz dA0KPiA+IG1vcmUgcmVhbGlzdGljOg0KPiA+ID4gLSBhbGxvY2F0ZSBtZW1wb29sDQo+ID4gPiAt IGRlZHVjZSBiYXNlX3BvaW50ZXINCj4gPiA+IC0gdGhlbiB3ZSBjYW4gaGF2ZSBhIGxvb3Agd2l0 aCBwcm9kdWNlci9jb25zdW1lciB0byBtaW1pYyByZWFsaXN0aWMNCj4gPiB3b3JrbG9hZC4NCj4g PiA+ICAgICBBcyBhbiBleGFtcGxlOg0KPiA+ID4gICAgICBwcm9kdWNlcihzKTogIG1lbXBvb2xf YWxsb2MoKTsgPGZpbGwgbWJ1ZiB3aXRoIHNvbWUgdmFsdWVzPjsNCj4gPiByaW5nX2VucXVldWUo KTsNCj4gPiA+ICAgICAgY29uc3VtZXIocyk6IHJpbmdfZGVxdWV1ZSgpOyA8cmVhZF9hbmRfY2hl Y2tfbWJ1Zl9kYXRhPjsNCj4gPiBmcmVlX21idWYoKTsNCj4gPiA+IC0gZnJlZSBtZW1wb29sDQo+ ID4NCj4gPiBJIHVuZGVyc3RhbmQgeW91ciBvYmplY3Rpb25zIGFuZCBhZ3JlZSB0aGF0IHRoZSBw cm9wb3NlZCBBUEkgaXMgbGltaXRlZA0KPiA+IGluIGl0cyBhcHBsaWNhYmlsaXR5IGR1ZSB0byBp dHMgc3RyaWN0IHJlcXVpcmVtZW50cy4NCj4gPg0KPiA+IEFGQUlLIERQREsgcnRlX21lbXBvb2wg ZG9lcyByZXF1aXJlIHRoZSBhZGRyZXNzZXMgdG8gYmUgdmlydHVhbGx5DQo+ID4gY29udGlndW91 cyBhcyB0aGUgbWVtb3J5IHJlc2VydmF0aW9uIGlzIGRvbmUgZHVyaW5nIGNyZWF0aW9uIG9mIHRo ZQ0KPiA+IG1lbXBvb2wgYW5kIGEgc2luZ2xlIG1lbXpvbmUgaXMgcmVzZXJ2ZWQuDQo+IA0KPiBO bywgaXQgZG9lcyBub3QuDQo+IHJ0ZV9wa3RtYnVmX3Bvb2xfY3JlYXRlKCkgZmlyc3QgY3JlYXRl cyBhbiBlbXB0eSBtZW1wb29sIHVzaW5nIHJ0ZV9tZW1wb29sX2NyZWF0ZV9lbXB0eSgpLCBhbmQg dGhlbiBwb3B1bGF0ZXMgaXQgdXNpbmcNCj4gcnRlX21lbXBvb2xfcG9wdWxhdGVfZGVmYXVsdCgp LCB3aGljaCBtYXkgdXNlIG11bHRpcGxlIG1lbXpvbmVzLg0KDQpZZXAuIA0KDQo+IEFzIG9uZSBw b3NzaWJsZSBzb2x1dGlvbiB0byB0aGlzLCB0aGUgYXBwbGljYXRpb24gY2FuIGNhbGwgcnRlX3Br dG1idWZfcG9vbF9jcmVhdGUoKSBhcyB1c3VhbCwgYW5kIHRoZW4gY2hlY2sgdGhhdCBtcC0NCj4g Pm5iX21lbV9jaHVua3MgPT0gMSB0byBjb25maXJtIHRoYXQgYWxsIG9iamVjdHMgaW4gdGhlIGNy ZWF0ZWQgbWVtcG9vbCByZXNpZGUgaW4gb25lIGNvbnRpZ3VvdXMgY2h1bmsgb2YgbWVtb3J5IGFu ZCB0aHVzDQo+IGNvbXByZXNzaW9uIGNhbiBiZSB1c2VkLg0KDQpUaGF0J3MgZXhhY3RseSB3aGF0 IEkgYW0gYXNraW5nIGZvcjogYSBuZXcgQVBJIGNhbGwgdGhhdCB3b3VsZCB0YWtlIG51bWJlciBv ZiBiaXRzIHRvIGNvbXByZXNzIGFzIGEgcGFyYW1ldGVyLA0KY2hlY2sgbWVtcG9vbCBsYXlvdXQg KG51bWJlciBvZiBjaHVua3MsIGJhc2UgYWRkciBhbmQgc2l6ZSBvZiBlYWNoIGNodW5rKWFuZCBi YXNlZCBvbiB0aGF0IGVpdGhlcg0KcmV0dXJuIGJhc2UgcHRyIHRvIHVzZSwgb3IgYW4gZXJyb3Ig Y29kZS4gIA0KIA0KPiBPciBldmVuIGJldHRlciwgYWRkIGEgbmV3IG1lbXBvb2wgZmxhZyB0byB0 aGUgbWVtcG9vbCBsaWJyYXJ5LCBlLmcuIFJURV9NRU1QT09MX0ZfQ09NUFJFU1NJQkxFLCBzcGVj aWZ5aW5nIHRoYXQgdGhlDQo+IG1lbXBvb2wgb2JqZWN0cyBtdXN0IGJlIGFsbG9jYXRlZCBhcyBv bmUgY2h1bmsgb2YgbWVtb3J5IHdpdGggY29udGlndW91cyBhZGRyZXNzZXMuDQo+IFVuZm9ydHVu YXRlbHksIHJ0ZV9wa3RtYnVmX3Bvb2xfY3JlYXRlKCkgaXMgbWlzc2luZyB0aGUgbWVtem9uZSBm bGFncyBwYXJhbWV0ZXIsIHNvIGEgbmV3IHJ0ZV9wa3RtYnVmX3Bvb2xfY3JlYXRlKCkgQVBJIHdp dGgNCj4gdGhlIGZsYWdzIHBhcmFtZXRlciBhZGRlZCB3b3VsZCBhbHNvIG5lZWQgdG8gYmUgYWRk ZWQuDQoNCkhtbS4uLCBJIGRpZG4ndCB0aGluayBhYm91dCB0aGF0LCBidXQgeWVzLCBJIHRoaW5r IHN1Y2ggQVBJIG1pZ2h0IGJlIHVzZWZ1bDoNCmF0IG1lbXBvb2xfY3JlYXRlKCkgZGVmaW5lIGEg bWVtb3J5IGxheW91dCBjb25zdHJhaW50cyB0aGF0IGl0IGhhcyB0byBvYmV5Lg0KSWYgd2UnbGwg bWFrZSBpdCBnZW5lcmljIGVub3VnaCwgSSBzdXBwb3NlIG1pZ2h0IGJlIGhlbHBmdWwgZm9yIGRp ZmZlcmVudCB1c2UtY2FzZXMuICANCg0KPiA+IEhvd2V2ZXIsIEkgZG8gbm90IHJlcXVpcmUNCj4g PiB1c2VycyB0byB1c2UgdGhlIHJ0ZV9tZW1wb29sIGFzIHRoZSBBUEkgYWNjZXB0cyBwb2ludGVy cyBzbyBvdGhlcg0KPiA+IG1lbXBvb2wgaW1wbGVtZW50YXRpb25zIGNvdWxkIGluZGVlZCBhbGxv dyBub24tY29udGlndW91cyBWQXMuDQo+ID4NCj4gPiBUbyBoZWxwIGRlY2lkZSBhdCBjb21waWxl IHRpbWUgaWYgY29tcHJlc3Npb24gaXMgYWxsb3dlZCBJIHdpbGwgYWRkDQo+ID4gZXh0cmEgbWFj cm9zIHRvIHRoZSBoZWFkZXINCj4gPg0KPiA+ICNkZWZpbmUgQklUU19SRVFVSVJFRF9UT19TVE9S RV9WQUxVRSh4KSBcDQo+ID4gCSgoeCkgPT0gMCA/IDEgOiAoKHNpemVvZih4KSkgLSBfX2J1aWx0 aW5fY2x6bCh4KSkpDQo+ID4NCj4gPiAjZGVmaW5lIEJJVF9TSElGVF9GUk9NX0FMSUdOTUVOVCh4 KSAoKHgpID09IDAgPyAwIDogX19idWlsdGluX2NsemwoeCkpDQo+ID4NCj4gPiAjZGVmaW5lIENB Tl9VU0VfUlRFX1BUUl9DT01QUkVTU18xNihtZW1vcnlfcmFuZ2UsIG9iamVjdF9hbGlnbm1lbnQp IFwNCj4gPiAJKChCSVRTX1JFUVVJUkVEX1RPX1NUT1JFX1ZBTFVFKG1lbW9yeV9yYW5nZSkgLSBc DQo+ID4gCUJJVF9TSElGVF9GUk9NX0FMSUdOTUVOVChvYmplY3RfYWxpZ25tZW50KSkgPD0gMTYg PyAxIDogMCkNCj4gPg0KPiA+ICNkZWZpbmUgQ0FOX1VTRV9SVEVfUFRSX0NPTVBSRVNTXzMyKG1l bW9yeV9yYW5nZSwgb2JqZWN0X2FsaWdubWVudCkgXA0KPiA+IAkoKEJJVFNfUkVRVUlSRURfVE9f U1RPUkVfVkFMVUUobWVtb3J5X3JhbmdlKSAtIFwNCj4gPiAJQklUX1NISUZUX0ZST01fQUxJR05N RU5UKG9iamVjdF9hbGlnbm1lbnQpKSA8PSAzMiA/IDEgOiAwKQ0KPiA+DQo+ID4gQW5kIGV4cGxh aW4gdXNhZ2UgaW4gdGhlIGRvY3MuDQo+ID4NCj4gPiBUaGUgQVBJIGlzIHZlcnkgZ2VuZXJpYyBh bmQgZG9lcyBub3QgZXZlbiByZXF1aXJlIHlvdSB0byB1c2UgYSBtZW1wb29sLg0KPiA+IFRoZXJl IGFyZSBubyBydW50aW1lIGNoZWNrcyB0byB2ZXJpZnkgb3IgY2FsY3VsYXRlIGlmIHRoZSBwb2lu dGVycyBjYW4NCj4gPiBiZSBjb21wcmVzc2VkLiANCg0KWWVzLCBhbmQgdGhhdCBpcyB0aGUgbWFp biBwcm9ibGVtLCBJIGJlbGlldmUuDQoNCj5UaGlzIGlzIGJlY2F1c2UgZG9pbmcgdGhpcyBhdCBy dW50aW1lIHdvdWxkIHJlbW92ZSBhbnkNCj4gPiBnYWlucyBhY2hpZXZlZCB0aHJvdWdoIGNvbXBy ZXNzaW9uLiBUaGUgY29kZSBkb2luZyB0aGUgY29tcHJlc3Npb24gbmVlZHMNCj4gPiB0byByZW1h aW4gbGltaXRlZCBpbiBzaXplLCBicmFuY2hpbmcgYW5kIGV4ZWN1dGlvbiB0aW1lIHRvIHJlbWFp biBmYXN0Lg0KPiA+IFRoaXMgaXMgSU1ITyB0aGUgbmF0dXJlIG9mIEMgYXBwbGljYXRpb25zLCB0 aGV5IHRyYWRlIG9mZiBydW50aW1lIGNoZWNrcw0KPiA+IGZvciBwZXJmb3JtYW5jZS4NCg0KSSB0 aGluayB0aGlzIGlzIG5vdCBjb3JyZWN0IGFuZCB5b3UgYXJlIG1peGluZyBmZXcgY29tcGxldGVs eSBkaWZmZXJlbnQgdGhpbmdzIHRvZ2V0aGVyLg0KSSBiZWxpZXZlIHRoYXQgd2VsbCB3cml0dGVu IEMgY29kZSAoYXMgYW55IG90aGVyKSBzaG91bGQgZG8gcnVudGltZSBjaGVja3MuDQpOb3csIGlu IERQREsgd2Ugb2Z0ZW4gZG8gb21pdCBydW4tdGltZSBjaGVja3MgZm9yIGlucHV0IHBhcmFtZXRl cnMgYXQNClBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGguDQpCdXQgd2UgZG8gZW5jb3VyYWdlIHBl b3BsZSB0byBkbyBhcyBtYW55IGNoZWNrcyBhcyB0aGV5IGNhbiBhdCBjb250cm9sLXBhdGguDQpB cyBhbiBleGFtcGxlIC0gd2UgZG9uJ3QgZG8gbXVjaCBjaGVja3MgYXQgZXRoX3J4X2J1cnN0KCkg aXRzZWxmLA0KYnV0IHdlIGRvIGEgbG90IG9mIGNoZWNrcyBhdCBzZXR1cCBwaGFzZTogZGV2X2Nv bmZpZ3VyZSgpLCByeF9xdWV1ZV9zZXR1cCgpLCBldGMuDQpXaXRoIHB0ciBjb21wcmVzc2lvbiBB UEksIEkgdGhpbmsgaXQgY2FuIGRvbmUgaW4gdGhlIHNhbWUgd2F5Og0KWW91IGNhbiBwcm92aWRl IGFuIEFQSSB0aGF0IHdvdWxkIGRvIGNoZWNrIGlzIHB0ciBjb21wcmVzc2lvbiBhcHBsaWNhYmxl IGZvcg0KaGlzIGN1cnJlbnQgbWVtb3J5IGxheW91dCBvciBub3QuDQpJdCBkb2Vzbid0IGhhdmUg dG8gYmUgZmFzdCwgYXMgdXNlciB3aWxsIGNhbGwgaXQganVzdCBvbmNlIGF0IHNldHVwIHN0YWdl IC0gYmVmb3JlIGRhdGEtcGF0aCBpcyBzdGFydGVkLg0KU2VlIHdoYXQgTW9ydGVuIHN1Z2dlc3Rl ZCBhYm92ZS4gICANCg0KPj4gUHJvZ3JhbSBjb3JyZWN0bmVzcyBuZWVkcyB0byBiZSBlbmZvcmNl ZCB0aHJvdWdoIG90aGVyDQo+ID4gbWVhbnMsIGxpbnRpbmcsIHZhbGdyaW5kLCB0ZXN0cywgcGVl ciByZXZpZXcsIGV0Yy4gSXQgaXMgdXAgdG8gdGhlDQo+ID4gcHJvZ3JhbW1lciB0byBjYWxjdWxh dGUgYW5kIGRlY2lkZSBvbiB0aGUgdmlhYmlsaXR5IG9mIGNvbXByZXNzaW9uIGFzIGl0DQo+ID4g Y2Fubm90IGJlIGRvbmUgYXQgY29tcGlsZSB0aW1lIGF1dG9tYXRpY2FsbHkuIFRoZXJlIGlzIG5v IHdheSBmb3IgbWUgdG8NCj4gPiBwcm9ncmFtbWF0aWNhbGx5IHZlcmlmeSB0aGUgYWxpZ25tZW50 IGFuZCBkaXN0YW5jZSBvZiB0aGUgcG9pbnRlcnMgYmVpbmcNCj4gPiBwYXNzZWQgaW4gYXQgY29t cGlsZSB0aW1lIGFzIEkgZG9uJ3QgcmVxdWlyZSB0aGUgdXNlciB0byB1c2UgYW55DQo+ID4gcGFy dGljdWxhciBtZW1wb29sIGltcGxlbWVudGF0aW9uLg0KPiA+DQo+ID4gVGhlc2UgbGltaXRhdGlv bnMgYXJlIGNsZWFybHkgZG9jdW1lbnRlZCBpbiB0aGUgQVBJIGFuZCB0aGUgZ3VpZGUuDQo+ID4N Cj4gPiA+IE9yIHByb2JhYmx5IHlvdSBjYW4gZ28gZXZlbiBmdXJ0aGVyOiB0YWtlIHNvbWUgZXhp c3RpbmcgcGlwZWxpbmUNCj4gPiBzYW1wbGUgYXBwIGFuZCBtYWtlIGl0IHVzZSBjb21wcmVzcy9k ZWNvbXByZXNzIEFQSS4NCj4gPiA+IFRoYXQgd2lsbCBwcm92aWRlIHBlb3BsZSB3aXRoIHNvbWUg YWJpbGl0eSB0byB0ZXN0IGl0IGFuZCBtZWFzdXJlIGl0J3MNCj4gPiBwZXJmIGltcGFjdC4NCj4g PiA+IEFnYWluLCBpdCB3aWxsIHByb3ZpZGUgYW4gZXhhbXBsZSBvZiB0aGUgYW1vdW50IG9mIGNo YW5nZXMgcmVxdWlyZWQgdG8NCj4gPiBlbmFibGUgaXQuDQo+ID4gPiBNeSBzcGVjdWxhdGlvbiBo ZXJlIHRoYXQgbWFqb3JpdHkgb2YgdXNlcnMgd2lsbCBmaW5kIHRoZSBlZmZvcnQgdG9vDQo+ID4g YmlnLA0KPiA+ID4gd2hpbGUgdGhlIGdhaW4gd2F5IHRvbyBsaW1pdGVkIGFuZCBmcmFnaWxlLg0K PiA+ID4gQnV0IGF0IGxlYXN0LCB0aGVyZSB3b3VsZCBiZSBzb21lIHJlYWxpc3RpYyByZWZlcmVu Y2UgcG9pbnQgZm9yIGl0IGFuZA0KPiA+IHVzZXJzIGNhbiBkZWNpZGUgdGhlbXNlbHZlcyBpcyBp dCB3b3J0aCBpdCBvciBub3QuDQo+ID4NCj4gPiBJIGhhdmUgYWRkZWQgYSBwZXJmb3JtYW5jZSB0 ZXN0IHRoYXQgcnVucyB0aGUgY29tcHJlc3Npb24gYW5kDQo+ID4gZGVjb21wcmVzc2lvbiBsb29w IHdpdGggZGlmZmVyZW50IGJ1cnN0IHNpemVzIHNvIHRoYXQgeW91IGNhbiBlYXNpbHkNCj4gPiB0 ZXN0IGlmIGF0dGVtcHRpbmcgY29tcHJlc3Npb24gaXMgd29ydGggdGhlIHRoZSBlZmZvcnQgaW4g eW91ciB1c2VjYXNlLg0KPiA+IFRoaXMgaXMgZG9jdW1lbnRlZCBpbiB0aGUgZ3VpZGUuDQo+ID4N Cj4gPiA+DQo+ID4gPj4+DQo+ID4gPj4+IEkgd291bGQgbGlrZSB0byBhZGQ6DQo+ID4gPj4+IElm IHdlIHdhbnQgdG8gb2ZmZXIgb3B0aW1pemF0aW9ucyBzcGVjaWZpY2FsbHkgZm9yIGFwcGxpY2F0 aW9ucyB3aXRoDQo+ID4gYSBzaW5nbGUgbWJ1ZiBwb29sLCBJIHRoaW5rIGl0IHNob3VsZCBiZSBj b25zaWRlcmVkIGluIGEgc3lzdGVtLXdpZGUNCj4gPiA+PiBjb250ZXh0IHRvIGRldGVybWluZSBp ZiBwZXJmb3JtYW5jZSBjb3VsZCBiZSBpbXByb3ZlZCBpbiBtb3JlIGFyZWFzLg0KPiA+ID4+PiBF LmcuIHJlbW92aW5nIHRoZSBwb29sIGZpZWxkIGZyb20gdGhlIHJ0ZV9tYnVmIHN0cnVjdHVyZSBt aWdodCBmcmVlDQo+ID4gdXAgc3BhY2UgdG8gbW92ZSBob3QgZmllbGRzIGZyb20gdGhlIHNlY29u ZCBjYWNoZSBsaW5lIHRvIHRoZQ0KPiA+ID4+IGZpcnN0LCBzbyB0aGUgc2Vjb25kIGNhY2hlIGxp bmUgcmFyZWx5IG5lZWRzIHRvIGJlIHRvdWNoZWQuIChBcyBhbg0KPiA+IGFsdGVybmF0aXZlIHRv IHJlbW92aW5nIHRoZSBwb29sIGZpZWxkLCBpdCBjb3VsZCBiZSBtb3ZlZCB0byB0aGUNCj4gPiA+ PiBzZWNvbmQgY2FjaGUgbGluZSwgb25seSB0byBiZSB1c2VkIGlmIHRoZSBnbG9iYWwgInNpbmds ZSBtYnVmIHBvb2wiDQo+ID4gaXMgTlVMTC4pDQo+ID4gPj4gQWdyZWUgb24gdGhpcy4gVGhlIGZl ZWRiYWNrIEkgaGF2ZSByZWNlaXZlZCBpcyBvbiBzaW1pbGFyIGxpbmVzLCBtYW55DQo+ID4gYXJl IHVzaW5nIHNpbXBsZSBmZWF0dXJlcy4gSSBhbHNvIHJlY2VpdmVkIGZlZWRiYWNrIHRoYXQgOTAl IG9mDQo+ID4gPj4gdGhlIGFwcGxpY2F0aW9ucyB1c2UgbGVzcyB0aGFuIDRHQiBvZiBtZW1vcnkg Zm9yIG1idWYgYW5kIGJ1cnN0IHNpemVzDQo+ID4gYXJlIHVwIHRvIDI1Ni4NCj4gPiA+DQo+ID4g PiBXZWxsLCBmcm9tIG15IHBlcnNwZWN0aXZlIHRoZSBzdG9yeSBpcyBjb21wbGV0ZWx5IGRpZmZl cmVudDoNCj4gPiA+IE1ham9yaXR5IG9mIHJlYWwtd29ybGQgYXBwcyBJIGFtIGF3YXJlIGRvIHVz ZSBtdWx0aXBsZSBtZW1wb29scywNCj4gPiA+IGl0IGlzIGFsc28gbm90IHVuY29tbW9uIHRvIGhh dmUgYSBtZW1wb29scyB3aXRoIHNpemUgYmlnZ2VyIHRoZW4gNEdCDQo+ID4gKDgvMTYpLg0KPiA+ ID4gQWdhaW4sIHRoZXJlIGFyZSBxdWVyaWVzIHRvIG1ha2UgbWVtcG9vbHMgZ3Jvd2FibGUvc2hy aW5rYWJsZSBvbg0KPiA+IGRlbWFuZC4NCj4gPg0KPiA+IFlvdSBjYW4gdXNlIHRoaXMgQVBJIHdp dGggbWVtcG9vbHMgZXZlbiBhcyBiaWcgYXMgMzJHQiBhcyBsb25nIGFzIHlvdXINCj4gPiBhbGln bm1lbnQgYWxsb3dzIGZvciBzdWZmaWNpZW50IHNoaWZ0IChhcyBleHBsYWluZWQgaW4gdGhlIGhl YWRlcnMgYW5kDQo+ID4gZG9jcykgYW5kIHJ0ZV9tZW1wb29sIG9iamVjdHMgd2lsbCBoYXZlIGF0 IGxlYXN0IDggYnl0ZXMgYWxpZ25tZW50IHNvDQo+ID4gY2FuIGZpdCBhIDMyR0IgbWVtcG9vbCBp bi4gSXQgaXMgdHJ1ZSB0aGF0IHlvdSBjYW5ub3QgdXNlIGl0IGlmIHlvdQ0KPiA+IGNhbm5vdCBn dWFyYW50ZWUgdGhlIGFkZHJlc3MgcmFuZ2UgYXQgY29tcGlsZSB0aW1lLiBUaGlzIHV0aWxpdHkg aXMgbm90DQo+ID4gYSBnb2xkZW4gYnVsbGV0IHRvIHVzZSBvbiBldmVyeSBwb2ludGVyLg0KPiAN Cj4gRm9yIGZ1dHVyZSBwcm9vZmluZywgcGxlYXNlIHJlbmFtZSB0aGUgY29tcHJlc3Npb24gZnVu Y3Rpb25zIHRvIGluY2x1ZGUgdGhlIGNvbXByZXNzaW9uIGFsZ29yaXRobSwgaS5lLiAic2hpZnQi IG9yIHNpbWlsYXIsIGluIHRoZQ0KPiBmdW5jdGlvbiBuYW1lcy4NCj4gDQo+IFNwZWNpZmljYWxs eSBJJ20gdGhpbmtpbmcgYWJvdXQgYW4gYWx0ZXJuYXRpdmUgIm11bHRpcGx5IiBjb21wcmVzc2lv biBhbGdvcml0aG0gYmFzZWQgb24gZGl2aXNpb24vbXVsdGlwbGljYXRpb24gYnkgYSBjb25zdGFu dA0KPiAibXVsdGlwbGllciIgcGFyYW1ldGVyIChpbnN0ZWFkIG9mIHRoZSAiYml0X3NoaWZ0IiBw YXJhbWV0ZXIpLg0KPiBUaGlzICJtdWx0aXBsaWVyIiB3b3VsZCB0eXBpY2FsbHkgYmUgdGhlIG9i amVjdCBzaXplIG9mIHRoZSBwYWNrZXQgbWJ1ZiBtZW1wb29sLg0KPiBUaGUgIm11bHRpcGxpZXIi IGNvdWxkIGJlIGNvbnN0YW50IGF0IGJ1aWx0IHRpbWUsIGUuZy4gMjM2OCwgb3IgZGV0ZXJtaW5l ZCBhdCBydW50aW1lLg0KPiBJIGRvbid0IGtub3cgdGhlIHBlcmZvcm1hbmNlIG9mIGRpdmlzaW9u L211bHRpcGxpY2F0aW9uIGNvbXBhcmVkIHRvIGJpdCBzaGlmdGluZyBmb3IgdmFyaW91cyBDUFVz LCBidXQgaXQgd291bGQgbWFrZSBjb21wcmVzc2lvbiB0bw0KPiAxNiBiaXQgY29tcHJlc3NlZCBw b2ludGVycyB2aWFibGUgZm9yIG1vcmUgYXBwbGljYXRpb25zLg0KPiANCj4gVGhlIHBlcmYgdGVz dCBpbiB0aGlzIHNlcmllcyBjb3VsZCBiZSB1c2VkIHRvIGRldGVybWluZSBjb21wcmVzc2lvbi9k ZWNvbXByZXNzaW9uIHBlcmZvcm1hbmNlIG9mIHN1Y2ggYW4gYWxnb3JpdGhtLCBhbmQgdGhlDQo+ IGFwcGxpY2F0aW9uIGRldmVsb3BlciBjYW4gZGV0ZXJtaW5lIHdoaWNoIGFsZ29yaXRobSB0byB1 c2U7ICJzaGlmdCIgd2l0aCAzMiBiaXQgY29tcHJlc3NlZCBwb2ludGVycywgb3IgIm11bHRpcGx5 IiB3aXRoIDE2IGJpdA0KPiBjb21wcmVzc2VkIHBvaW50ZXJzLg0KDQo=