From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <zhiyong.yang@intel.com>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by dpdk.org (Postfix) with ESMTP id 9C53E4CE4
 for <dev@dpdk.org>; Sun, 11 Dec 2016 13:32:53 +0100 (CET)
Received: from fmsmga004.fm.intel.com ([10.253.24.48])
 by fmsmga103.fm.intel.com with ESMTP; 11 Dec 2016 04:32:52 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.33,332,1477983600"; d="scan'208";a="201349900"
Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203])
 by fmsmga004.fm.intel.com with ESMTP; 11 Dec 2016 04:32:52 -0800
Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by
 FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS)
 id 14.3.248.2; Sun, 11 Dec 2016 04:32:52 -0800
Received: from bgsmsx152.gar.corp.intel.com (10.224.48.50) by
 fmsmsx101.amr.corp.intel.com (10.18.124.199) with Microsoft SMTP Server (TLS)
 id 14.3.248.2; Sun, 11 Dec 2016 04:32:51 -0800
Received: from bgsmsx101.gar.corp.intel.com ([169.254.1.222]) by
 BGSMSX152.gar.corp.intel.com ([169.254.6.233]) with mapi id 14.03.0248.002;
 Sun, 11 Dec 2016 18:02:48 +0530
From: "Yang, Zhiyong" <zhiyong.yang@intel.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>, Thomas Monjalon
 <thomas.monjalon@6wind.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, "yuanhan.liu@linux.intel.com"
 <yuanhan.liu@linux.intel.com>, "Richardson, Bruce"
 <bruce.richardson@intel.com>, "De Lara Guarch, Pablo"
 <pablo.de.lara.guarch@intel.com>
Thread-Topic: [dpdk-dev] [PATCH 1/4] eal/common: introduce rte_memset on IA
 platform
Thread-Index: AQHSTHcq0cqfe4gXqkCtBCGLh5u1zaD0F6iAgAmXsfD//8XGgIAAXKoA//+1VQCABS9VkA==
Date: Sun, 11 Dec 2016 12:32:47 +0000
Message-ID: <E182254E98A5DA4EB1E657AC7CB9BD2A3EB58E90@BGSMSX101.gar.corp.intel.com>
References: <1480926387-63838-1-git-send-email-zhiyong.yang@intel.com>
 <1480926387-63838-2-git-send-email-zhiyong.yang@intel.com>
 <7223515.9TZuZb6buy@xps13>
 <E182254E98A5DA4EB1E657AC7CB9BD2A3EB565EC@BGSMSX101.gar.corp.intel.com>
 <2601191342CEEE43887BDE71AB9772583F0E55B0@irsmsx105.ger.corp.intel.com>
 <E182254E98A5DA4EB1E657AC7CB9BD2A3EB586ED@BGSMSX101.gar.corp.intel.com>
 <2601191342CEEE43887BDE71AB9772583F0E568B@irsmsx105.ger.corp.intel.com>
In-Reply-To: <2601191342CEEE43887BDE71AB9772583F0E568B@irsmsx105.ger.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNGU0NGM0NjUtY2NiMS00ZmM5LWIzY2UtMzQ5Yzc1NWQ3NzY5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImFaNjdNZ3R6SmVhbnJSVVNJNWVQdlVYeDlCM3NnRFlXSktWUlVIVlNKQjg9In0=
x-ctpclassification: CTP_IC
x-originating-ip: [10.223.10.10]
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH 1/4] eal/common: introduce rte_memset on IA
 platform
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Sun, 11 Dec 2016 12:32:54 -0000

SGksIEtvbnN0YW50aW4sIEJydWNlOg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+
IEZyb206IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDgs
IDIwMTYgNjozMSBQTQ0KPiBUbzogWWFuZywgWmhpeW9uZyA8emhpeW9uZy55YW5nQGludGVsLmNv
bT47IFRob21hcyBNb25qYWxvbg0KPiA8dGhvbWFzLm1vbmphbG9uQDZ3aW5kLmNvbT4NCj4gQ2M6
IGRldkBkcGRrLm9yZzsgeXVhbmhhbi5saXVAbGludXguaW50ZWwuY29tOyBSaWNoYXJkc29uLCBC
cnVjZQ0KPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBEZSBMYXJhIEd1YXJjaCwgUGFi
bG8NCj4gPHBhYmxvLmRlLmxhcmEuZ3VhcmNoQGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtk
cGRrLWRldl0gW1BBVENIIDEvNF0gZWFsL2NvbW1vbjogaW50cm9kdWNlIHJ0ZV9tZW1zZXQgb24N
Cj4gSUEgcGxhdGZvcm0NCj4gDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LQ0KPiA+IEZyb206IFlhbmcsIFpoaXlvbmcNCj4gPiBTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIg
OCwgMjAxNiA5OjUzIEFNDQo+ID4gVG86IEFuYW55ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50aW4u
YW5hbnlldkBpbnRlbC5jb20+OyBUaG9tYXMNCj4gPiBNb25qYWxvbiA8dGhvbWFzLm1vbmphbG9u
QDZ3aW5kLmNvbT4NCj4gPiBDYzogZGV2QGRwZGsub3JnOyB5dWFuaGFuLmxpdUBsaW51eC5pbnRl
bC5jb207IFJpY2hhcmRzb24sIEJydWNlDQo+ID4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29t
PjsgRGUgTGFyYSBHdWFyY2gsIFBhYmxvDQo+ID4gPHBhYmxvLmRlLmxhcmEuZ3VhcmNoQGludGVs
LmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggMS80XSBlYWwvY29tbW9u
OiBpbnRyb2R1Y2UgcnRlX21lbXNldA0KPiA+IG9uIElBIHBsYXRmb3JtDQo+ID4NCj4gPiBIaaOs
IEtvbnN0YW50aW46DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g
PiBGcm9tOiBBbmFueWV2LCBLb25zdGFudGluDQo+ID4gPiBTZW50OiBUaHVyc2RheSwgRGVjZW1i
ZXIgOCwgMjAxNiA1OjI2IFBNDQo+ID4gPiBUbzogWWFuZywgWmhpeW9uZyA8emhpeW9uZy55YW5n
QGludGVsLmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA+ID4gPHRob21hcy5tb25qYWxvbkA2d2lu
ZC5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3JnOyB5dWFuaGFuLmxpdUBsaW51eC5pbnRlbC5j
b207IFJpY2hhcmRzb24sIEJydWNlDQo+ID4gPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+
OyBEZSBMYXJhIEd1YXJjaCwgUGFibG8NCj4gPiA+IDxwYWJsby5kZS5sYXJhLmd1YXJjaEBpbnRl
bC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggMS80XSBlYWwvY29t
bW9uOiBpbnRyb2R1Y2UgcnRlX21lbXNldA0KPiA+ID4gb24gSUEgcGxhdGZvcm0NCj4gPiA+DQo+
ID4gPg0KPiA+ID4gSGkgWmhpeW9uZywNCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEhJLCBUaG9t
YXM6DQo+ID4gPiA+IAlTb3JyeSBmb3IgbGF0ZSByZXBseS4gSSBoYXZlIGJlZW4gYmVpbmcgYWx3
YXlzIGNvbnNpZGVyaW5nIHlvdXINCj4gPiA+IHN1Z2dlc3Rpb24uDQo+ID4gPiA+DQo+ID4gPiA+
ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBUaG9tYXMgTW9u
amFsb24gW21haWx0bzp0aG9tYXMubW9uamFsb25ANndpbmQuY29tXQ0KPiA+ID4gPiA+IFNlbnQ6
IEZyaWRheSwgRGVjZW1iZXIgMiwgMjAxNiA2OjI1IFBNDQo+ID4gPiA+ID4gVG86IFlhbmcsIFpo
aXlvbmcgPHpoaXlvbmcueWFuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6IGRldkBkcGRrLm9y
ZzsgeXVhbmhhbi5saXVAbGludXguaW50ZWwuY29tOyBSaWNoYXJkc29uLCBCcnVjZQ0KPiA+ID4g
PiA+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4g
PiA+ID4gPiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IERlIExhcmEgR3VhcmNoLCBQ
YWJsbw0KPiA+ID4gPiA+IDxwYWJsby5kZS5sYXJhLmd1YXJjaEBpbnRlbC5jb20+DQo+ID4gPiA+
ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIDEvNF0gZWFsL2NvbW1vbjogaW50cm9k
dWNlDQo+ID4gPiBydGVfbWVtc2V0DQo+ID4gPiA+ID4gb24gSUEgcGxhdGZvcm0NCj4gPiA+ID4g
Pg0KPiA+ID4gPiA+IDIwMTYtMTItMDUgMTY6MjYsIFpoaXlvbmcgWWFuZzoNCj4gPiA+ID4gPiA+
ICsjaWZuZGVmIF9SVEVfTUVNU0VUX1g4Nl82NF9IXw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSXMg
dGhpcyBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyB0byA2NC1iaXQ/DQo+ID4gPiA+ID4NCj4gPiA+
ID4NCj4gPiA+ID4gWWVzLg0KPiA+ID4gPg0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKyNk
ZWZpbmUgcnRlX21lbXNldCBtZW1zZXQNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsjZWxz
ZQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkICoNCj4gPiA+ID4gPiA+
ICtydGVfbWVtc2V0KHZvaWQgKmRzdCwgaW50IGEsIHNpemVfdCBuKTsNCj4gPiA+ID4gPiA+ICsN
Cj4gPiA+ID4gPiA+ICsjZW5kaWYNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IElmIEkgdW5kZXJzdGFu
ZCB3ZWxsLCBydGVfbWVtc2V0IChhcyBydGVfbWVtY3B5KSBpcyB1c2luZyB0aGUNCj4gPiA+ID4g
PiBtb3N0IHJlY2VudCBpbnN0cnVjdGlvbnMgYXZhaWxhYmxlIChhbmQgZW5hYmxlZCkgd2hlbiBj
b21waWxpbmcuDQo+ID4gPiA+ID4gSXQgaXMgbm90IGFkYXB0aW5nIHRoZSBpbnN0cnVjdGlvbnMg
dG8gdGhlIHJ1bi10aW1lIENQVS4NCj4gPiA+ID4gPiBUaGVyZSBpcyBubyBuZWVkIHRvIGRvd25n
cmFkZSBhdCBydW4tdGltZSB0aGUgaW5zdHJ1Y3Rpb24gc2V0IGFzDQo+ID4gPiA+ID4gaXQgaXMg
b2J2aW91c2x5IG5vdCBhIHN1cHBvcnRlZCBjYXNlLCBidXQgaXQgd291bGQgYmUgbmljZSB0byBi
ZQ0KPiA+ID4gPiA+IGFibGUgdG8gdXBncmFkZSBhICJkZWZhdWx0IGNvbXBpbGF0aW9uIiBhdCBy
dW4tdGltZSBhcyBpdCBpcyBkb25lIGluDQo+IHJ0ZV9hY2wuDQo+ID4gPiA+ID4gSSBleHBsYWlu
IHRoaXMgY2FzZSBtb3JlIGNsZWFybHkgZm9yIHJlZmVyZW5jZToNCj4gPiA+ID4gPg0KPiA+ID4g
PiA+IFdlIGNhbiBoYXZlIEFWWDUxMiBzdXBwb3J0ZWQgaW4gdGhlIGNvbXBpbGVyIGJ1dCBkaXNh
YmxlIGl0IHdoZW4NCj4gPiA+ID4gPiBjb21waWxpbmcNCj4gPiA+ID4gPiAoQ09ORklHX1JURV9N
QUNISU5FPXNuYikgaW4gb3JkZXIgdG8gYnVpbGQgYSBiaW5hcnkgcnVubmluZw0KPiA+ID4gPiA+
IGFsbW9zdCBldmVyeXdoZXJlLg0KPiA+ID4gPiA+IFdoZW4gcnVubmluZyB0aGlzIGJpbmFyeSBv
biBhIENQVSBoYXZpbmcgQVZYNTEyIHN1cHBvcnQsIGl0IHdpbGwNCj4gPiA+ID4gPiBub3QgYmVu
ZWZpdCBvZiB0aGUgQVZYNTEyIGltcHJvdmVtZW50Lg0KPiA+ID4gPiA+IFRob3VnaCwgd2UgY2Fu
IGNvbXBpbGUgYW4gQVZYNTEyIHZlcnNpb24gb2Ygc29tZSBmdW5jdGlvbnMgYW5kDQo+ID4gPiA+
ID4gdXNlIHRoZW0gb25seSBpZiB0aGUgcnVubmluZyBDUFUgaXMgY2FwYWJsZS4NCj4gPiA+ID4g
PiBUaGlzIGtpbmQgb2YgbWlyYWNsZSBjYW4gYmUgYWNoaWV2ZWQgaW4gdHdvIHdheXM6DQo+ID4g
PiA+ID4NCj4gPiA+ID4gPiAxLyBGb3IgZ2VuZXJpYyBDIGNvZGUgY29tcGlsZWQgd2l0aCBhIHJl
Y2VudCBHQ0MsIGEgZnVuY3Rpb24gY2FuDQo+ID4gPiA+ID4gYmUgYnVpbHQgZm9yIHNldmVyYWwg
Q1BVcyB0aGFua3MgdG8gdGhlIGF0dHJpYnV0ZSB0YXJnZXRfY2xvbmVzLg0KPiA+ID4gPiA+DQo+
ID4gPiA+ID4gMi8gRm9yIG1hbnVhbGx5IG9wdGltaXplZCBmdW5jdGlvbnMgdXNpbmcgQ1BVLXNw
ZWNpZmljDQo+ID4gPiA+ID4gaW50cmluc2ljcyBvciBhc20sIGl0IGlzIHBvc3NpYmxlIHRvIGJ1
aWxkIHRoZW0gd2l0aCBub24tZGVmYXVsdA0KPiA+ID4gPiA+IGZsYWdzIHRoYW5rcyB0byB0aGUN
Cj4gPiA+IGF0dHJpYnV0ZSB0YXJnZXQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAzLyBGb3IgbWFu
dWFsbHkgb3B0aW1pemVkIGZpbGVzIHVzaW5nIENQVS1zcGVjaWZpYyBpbnRyaW5zaWNzIG9yDQo+
ID4gPiA+ID4gYXNtLCB3ZSB1c2Ugc3BlY2lmaWNzIGZsYWdzIGluIHRoZSBtYWtlZmlsZS4NCj4g
PiA+ID4gPg0KPiA+ID4gPiA+IFRoZSBmdW5jdGlvbiBjbG9uZSBpbiBjYXNlIDEvIGlzIGR5bmFt
aWNhbGx5IGNob3NlbiBhdCBydW4tdGltZQ0KPiA+ID4gPiA+IHRocm91Z2ggaWZ1bmMgcmVzb2x2
ZXIuDQo+ID4gPiA+ID4gVGhlIHNwZWNpZmljIGZ1bmN0aW9ucyBpbiBjYXNlcyAyLyBhbmQgMy8g
bXVzdCBjaG9zZW4gYXQNCj4gPiA+ID4gPiBydW4tdGltZSBieSBpbml0aWFsaXppbmcgYSBmdW5j
dGlvbiBwb2ludGVyIHRoYW5rcyB0bw0KPiBydGVfY3B1X2dldF9mbGFnX2VuYWJsZWQoKS4NCj4g
PiA+ID4gPg0KPiA+ID4gPiA+IE5vdGUgdGhhdCBydGVfaGFzaCBhbmQgc29mdHdhcmUgY3J5cHRv
IFBNRHMgaGF2ZSBhIHJ1bi10aW1lDQo+ID4gPiA+ID4gY2hlY2sgd2l0aA0KPiA+ID4gPiA+IHJ0
ZV9jcHVfZ2V0X2ZsYWdfZW5hYmxlZCgpIGJ1dCBkbyBub3Qgb3ZlcnJpZGUgQ0ZMQUdTIGluIHRo
ZQ0KPiBNYWtlZmlsZS4NCj4gPiA+ID4gPiBOZXh0IHN0ZXAgZm9yIHRoZXNlIGxpYnJhcmllcz8N
Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJhY2sgdG8gcnRlX21lbXNldCwgSSB0aGluayB5b3Ugc2hv
dWxkIHRyeSB0aGUgc29sdXRpb24gMi8uDQo+ID4gPiA+DQo+ID4gPiA+IEkgaGF2ZSByZWFkIHRo
ZSBBQ0wgY29kZSwgaWYgSSB1bmRlcnN0YW5kIHdlbGwgLCBmb3IgY29tcGxleCBhbGdvDQo+ID4g
PiA+IGltcGxlbWVudGF0aW9uLCBpdCBpcyBnb29kIGlkZWEsIGJ1dCBDaG9vc2luZyBmdW5jdGlv
bnMgYXQgcnVuDQo+ID4gPiA+IHRpbWUgd2lsbCBicmluZyBzb21lIG92ZXJoZWFkLiBGb3IgZnJl
cXVlbnRseSAgY2FsbGVkIGZ1bmN0aW9uDQo+ID4gPiA+IFdoaWNoIGNvbnN1bWVzIHNtYWxsIGN5
Y2xlcywgdGhlIG92ZXJoZWFkIG1heWJlIGlzIG1vcmUgdGhhbiAgdGhlDQo+ID4gPiA+IGdhaW5z
DQo+ID4gPiBvcHRpbWl6YXRpb25zIGJyaW5ncyBGb3IgZXhhbXBsZSwgZm9yIG1vc3QgYXBwbGlj
YXRpb25zIGluIGRwZGssDQo+ID4gPiBtZW1zZXQgb25seSBzZXQgTiA9IDEwIG9yIDEyYnl0ZXMu
IEl0IGNvbnN1bWVzIGZld2VyIGN5Y2xlcy4NCj4gPiA+DQo+ID4gPiBCdXQgdGhlbiB3aGF0IHRo
ZSBwb2ludCB0byBoYXZlIGFuIHJ0ZV9tZW1zZXQoKSB1c2luZyB2ZWN0b3INCj4gPiA+IGluc3Ry
dWN0aW9ucyBhdCBhbGw/DQo+ID4gPiBGcm9tIHdoYXQgeW91IGFyZSBzYXlpbmcgdGhlIG1vc3Qg
Y29tbW9uIGNhc2UgaXMgZXZlbiBsZXNzIHRoZW4gU1NFDQo+ID4gPiByZWdpc3RlciBzaXplLg0K
PiA+ID4gS29uc3RhbnRpbg0KPiA+DQo+ID4gRm9yIG1vc3QgY2FzZXMsIG1lbXNldCBpcyB1c2Vk
IHN1Y2ggYXMgbWVtc2V0KGFkZHJlc3MsIDAsDQo+ID4gc2l6ZW9mKHN0cnVjdCB4eHgpKTsNCj4g
DQo+IE9rIHRoZW4gSSBzdXBwb3NlIGZvciBzdWNoIGNhc2VzIHlvdSBkb24ndCBuZWVkIGFueSBz
cGVjaWFsIGZ1bmN0aW9uIGFuZA0KPiBtZW1zZXQoKSB3b3VsZCBzdGlsbCBiZSB0aGUgYmVzdCBj
aG9pY2UsIHJpZ2h0Pw0KPiANCg0KSW4gZmFjdCwgdGhlIGJhZCBwZXJmb3JtYW5jZSBkcm9wIGhh
cyBiZWVuIGZvdW5kIG9uIElWQiwgICBQbGVhc2UgcmVmZXJlbmNlIHRvIA0KaHR0cDovL2RwZGsu
b3JnL21sL2FyY2hpdmVzL2Rldi8yMDE2LU9jdG9iZXIvMDQ4NjI4Lmh0bWwNClRoZSBmb2xsb3dp
bmcgY29kZSBjYXVzZSB0aGUgcGVyZiBpc3N1ZQ0KbWVtc2V0KCh2b2lkICopKHVpbnRwdHJfdCkm
KHZpcnRpb19oZHItPmhkciksMCAsIGRldi0+dmhvc3RfaGxlbik7DQp2aG9zdF9obGVuIGlzIDEw
IG9yIDEyIGJ5dGVzLCBTbywgZ2xpYmMgbWVtc2V0IGlzIG5vdCB1c2VkIGhlcmUuDQoNCj4gPiBU
aGUgdXNlIGNhc2UgaGVyZSBpcyBzbWFsbCBieSBhY2NpZGVudCwgSSBvbmx5IGdpdmUgYW4gZXhh
bXBsZSBoZXJlLg0KPiA+IGJ1dCBydGVfbWVtc2V0IGlzIGludHJvZHVjZWQgdG8gbmVlZCBjb25z
aWRlciBnZW5lcmljIGNhc2UuDQo+IA0KPiBXZSBjYW4gaGF2ZSBydGVfbWVtc2V0X2h1Z2UoKSBv
ciBzbyBpbnN0ZWFkLCBhbmQgZG9jdW1lbnQgdGhhdCBpdCBzaG91bGQNCj4gYmUgdXNlZCBmb3Ig
c2l6ZXMgZ3JlYXRlciB0aGFuIHNvbWUgY3V0b2ZmIHBvaW50Lg0KPiBJbnNpZGUgaXQgeW91IGNh
biBqdXN0IGNhbGwgYSBmdW5jdGlvbiBwb2ludGVyIGluc3RhbGxlZCBhdCBzdGFydHVwIChzYW1l
IGFzDQo+IHJ0ZV9hY2xfY2xhc3NpZnkoKSBkb2VzKS4NCj4gRm9yIGJpZyBzaXplcywgSSBzdXBw
b3NlIHRoZSBwcmljZSBvZiBleHRyYSBmdW5jdGlvbiBwb2ludGVyIGNhbGwgd291bGQgbm90DQo+
IGFmZmVjdCBwZXJmb3JtYW5jZSBtdWNoLg0KPiBGb3Igc2l6ZXMgc21hbGxlciB0aGVuIHRoaXMg
Y3V0b2ZmIHBvaW50IHlvdSBzdGlsbCBjYW4gdXNlIGVpdGhlcg0KPiBydGVfbWVtc2V0X3NjYWxh
cigpIG9yIGp1c3Qgbm9ybWFsIHJ0ZV9tZW1zZXQoKS4NCj4gU29tZXRoaW5nIGxpa2UgdGhhdDoN
Cj4gDQo+IGV4dGVybiB2b2lkICooKl9fcnRlX21lbXNldF92ZWN0b3IpKCAodm9pZCAqcywgaW50
IGMsIHNpemVfdCBuKTsNCj4gDQo+IHN0YXRpYyBpbmxpbmUgdm9pZCoNCj4gcnRlX21lbXNldF9o
dWdlKHZvaWQgKnMsIGludCBjLCBzaXplX3Qgbikgew0KPiAgICByZXR1cm4gX19ydGVfbWVtc2V0
X3ZlY3RvcihzLCBjLCBuKTsNCj4gfQ0KPiANCj4gc3RhdGljIGlubGluZSB2b2lkICoNCj4gcnRl
X21lbXNldCh2b2lkICpzLCBpbnQgYywgc2l6ZV90IG4pDQo+IHsNCj4gCUlmIChuIDwgWFhYKQ0K
PiAJCXJldHVybiBydGVfbWVtc2V0X3NjYWxhcihzLCBjLCBuKTsNCj4gCWVsc2UNCj4gCQlyZXR1
cm4gcnRlX21lbXNldF9odWdlKHMsIGMsIG4pOw0KPiB9DQo+IA0KPiBYWFggY291bGQgYmUgZWl0
aGVyIGEgZGVmaW5lLCBvciBjb3VsZCBhbHNvIGJlIGEgdmFyaWFibGUsIHNvIGl0IGNhbiBiZSBz
ZXR1cGVkDQo+IGF0IHN0YXJ0dXAsIGRlcGVuZGluZyBvbiB0aGUgYXJjaGl0ZWN0dXJlLg0KPiAN
Cj4gV291bGQgdGhhdCB3b3JrPw0KPiBLb25zdGFudGluDQo+IA0KVGhlIGlkZWEgc291bmRzIGdv
b2QuICAgSXQgbWF5YmUgaXMgbW9yZSBmZWFzaWJsZSBmb3IgcnRlX21lbWNweSBhbmQgcnRlX21l
bXNldC4NCklmIEkgdW5kZXJzdGFuZCB3ZWxsICwgdGhlIGlkZWEgZnJvbSBCcnVjZSBpcyBzaW1p
bGFyLCByaWdodCA/DQoNCj4gPiBzaXplb2Yoc3RydWN0IHh4eCkgaXMgbm90IGxpbWl0ZWQgdG8g
dmVyeSBzbWFsbCBzaXplLCBzdWNoIGFzICBsZXNzIHRoYW4gU1NFDQo+IHJlZ2lzdGVyIHNpemUu
DQo+ID4gSSBqdXN0IHdhbnQgdG8gc2F5IHRoYXQgdGhlIHNpemUgZm9yIHRoZSBtb3N0IHVzZSBj
YXNlIGlzIG5vdCB2ZXJ5DQo+ID4gbGFyZ2UsICBTbyBjeWNsZXMgY29uc3VtZWQgSXMgbm90IGxh
cmdlLiBJdCBpcyBub3Qgc3VpdGVkIHRvIGNob29zZSBmdW5jdGlvbiBhdA0KPiBydW4tdGltZSBz
aW5jZSBvdmVyaGVhZCAgaXMgY29uc2lkZXJlZC4NCj4gPg0KPiA+IHRoYW5rcw0KPiA+IFpoaXlv
bmcNCg==