From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <G.Singh@nxp.com>
Received: from EUR04-HE1-obe.outbound.protection.outlook.com
 (mail-eopbgr70042.outbound.protection.outlook.com [40.107.7.42])
 by dpdk.org (Postfix) with ESMTP id 929B81B5F1
 for <dev@dpdk.org>; Fri, 12 Oct 2018 15:32:15 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; 
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kmI2gW02b2ggby8xhLVB6kBpuFh6MKPnqD2ztFiYM+k=;
 b=BqN9oKwmPiFwZWasMUuzpZORxaveGhzzhppK59xeWp4V6GXij9DVq59rTdI/Zcocomjo9AMEEexIW/Zp02bZqUvfFwp0lBimpRAqcqDJydrPEey4qgT3nYq21J9bYiJeY49Nzyh7f9ZVXQ99TbZYex2GdtvOPzrNScr/N+pBloc=
Received: from HE1PR04MB1530.eurprd04.prod.outlook.com (10.164.48.20) by
 HE1PR04MB3161.eurprd04.prod.outlook.com (10.171.196.148) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1228.21; Fri, 12 Oct 2018 13:32:14 +0000
Received: from HE1PR04MB1530.eurprd04.prod.outlook.com
 ([fe80::95cd:198:d5c5:59a4]) by HE1PR04MB1530.eurprd04.prod.outlook.com
 ([fe80::95cd:198:d5c5:59a4%4]) with mapi id 15.20.1207.029; Fri, 12 Oct 2018
 13:32:14 +0000
From: Gagandeep Singh <G.Singh@nxp.com>
To: Akhil Goyal <akhil.goyal@nxp.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: Hemant Agrawal <hemant.agrawal@nxp.com>
Thread-Topic: [dpdk-dev] [PATCH 03/10] crypto/caam_jr: add HW config for job
 rings
Thread-Index: AQHUSyhVY3pVnEOZbEGqCHTSGoap1qT2EyoAgCW11vA=
Date: Fri, 12 Oct 2018 13:32:13 +0000
Message-ID: <HE1PR04MB1530A606CBC73D5C39CB3278E1E20@HE1PR04MB1530.eurprd04.prod.outlook.com>
References: <20180913060846.29930-1-g.singh@nxp.com>
 <20180913060846.29930-4-g.singh@nxp.com>
 <72c9a8b1-6fcd-b45f-6e06-b4ff80a6d51e@nxp.com>
In-Reply-To: <72c9a8b1-6fcd-b45f-6e06-b4ff80a6d51e@nxp.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=G.Singh@nxp.com; 
x-originating-ip: [14.143.30.134]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; HE1PR04MB3161;
 6:zwpKsFpLHPGYNtc5IgpsZgAl1aaY7QARj/AMAr29wV2ZqKNiUvJHJpKwEcIooTMhqa3E0Ghjfp5WyaXniGMpuen8CvSiUHiXflszAk0gorj5BiJQWDXR5KWsscv8jh0LNzQbQpf2+VPjWg7xc7UZNoaokrj2zqXgjpges1W6Iz2TDc87RgkqHc8PZzjksqVXUir7mccEIaUWU4me/SyZv0C+tNxBovXjf3LFyqhKlrqCr4eA5IrY/8YvQegOFj4dNGtr0oKUKpr1c9heSpXdq2JZdq0qWPLaAt8RPK0lLh+O7KXOkjzN/fDEyjbnohOqllszCMeh4vpnDEn5SJ7yUEmGYXl2GQYZiKQOB+e1KnS4muVYniRV57t6t6NglQt4EjbUHo9Vn8LvNv4nF8eUjbvpptduRjkuyDrtQdSb9uQH45pQEFBnS402cOce7Wg/exgU0PeaGEfcBedRzdttdA==;
 5:KrBUL9C1CV/nNCNqbxOOh+WjnWQvIGsQqrhV6d0Eo2QXRZ8RV/eYjgiOtTZNClRVEcPWgKGpTZ3azV8eShxIaoBP4K8/WeT69ecH98DtM8L8e+s4IuJhHyBERjs0EZ3SdLTjjwSxGAwkpkO73+VD5wi9zanYwyjP/sJ0uXCAHs0=;
 7:uA5vc7Z7dOhIqf0vtpvF3zLc4dRG/XvnSnok4Py7bQwyuk1z1ELnLFdu4IaC1H+0eOXYV1jReCjM6eQObT+DWYprQIec3kz8k2Ly73tJtPmODa+/gOPDEu7lQeRFm4cbHUKgq89xXms9hUIN+DVIG7koJD2JSKb4R+mUml4zuef1zOAbO1W6mAF957WZgyCgW64eEoXHusDCda1qivM0y8WP0kwbNfKB3SBNIQGh6XlAUrbNilZzLtes5hVuvjCU
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 1a1042ec-9a3e-4de3-3cce-08d630471f07
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);
 SRVR:HE1PR04MB3161; 
x-ms-traffictypediagnostic: HE1PR04MB3161:
x-microsoft-antispam-prvs: <HE1PR04MB3161DCAD08C3F6BE9845017BE1E20@HE1PR04MB3161.eurprd04.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(192374486261705)(185117386973197);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231355)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(201708071742011)(7699051);
 SRVR:HE1PR04MB3161; BCL:0; PCL:0; RULEID:; SRVR:HE1PR04MB3161; 
x-forefront-prvs: 0823A5777B
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(39860400002)(136003)(366004)(396003)(346002)(376002)(199004)(189003)(13464003)(256004)(26005)(14454004)(2501003)(5250100002)(71200400001)(71190400001)(105586002)(2900100001)(106356001)(316002)(99286004)(86362001)(478600001)(486006)(7696005)(14444005)(72206003)(11346002)(6246003)(476003)(53546011)(446003)(6506007)(102836004)(8936002)(110136005)(76176011)(74316002)(3846002)(81156014)(305945005)(33656002)(66066001)(6116002)(7736002)(186003)(8676002)(81166006)(68736007)(5660300001)(2906002)(229853002)(25786009)(4326008)(97736004)(53936002)(6436002)(9686003)(55016002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR04MB3161;
 H:HE1PR04MB1530.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: nxp.com does not designate
 permitted sender hosts)
x-microsoft-antispam-message-info: lSeVToyn3sPBG3+DAh+9ZDLqgmifys1P6XN8qex4TEdhBO5V5wqYid9iE2I0C6oDxKvz+OVUvyZ7hDvRI8ZcHFyYYicZ6XfdU+A7h1NYJ+CjmPPQh7eFgG6PdPI6+/vcOWT9Lfy53q/jlw+PwlgFrASURm2n3wCK7YEGlh3AO9VVTc4BJPN6dLFhdvE6qhQndzDbfEg0abePz6Rz4a9bqWJ20CbNSeK7UwzuJrAvZ5smICCzy4l5z1bhDbQ8fwQfJdMH/iQBeC6Bc2uji+F3hW/YvWIKAjiSwPB10omBvhcaPFQ262kWNc3Q0DzPDcLutEi10idgJpnwVTcLDt763NWqTJTlDQO95pv/d7fLJY4=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a1042ec-9a3e-4de3-3cce-08d630471f07
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2018 13:32:13.9320 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3161
Subject: Re: [dpdk-dev] [PATCH 03/10] crypto/caam_jr: add HW config for job
 rings
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, 12 Oct 2018 13:32:15 -0000

SGkgQWtoaWwsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWtoaWwg
R295YWwNCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDE4LCAyMDE4IDc6MDcgUE0NCj4gVG86
IEdhZ2FuZGVlcCBTaW5naCA8Ry5TaW5naEBueHAuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBI
ZW1hbnQgQWdyYXdhbCA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtk
cGRrLWRldl0gW1BBVENIIDAzLzEwXSBjcnlwdG8vY2FhbV9qcjogYWRkIEhXIGNvbmZpZyBmb3Ig
am9iDQo+IHJpbmdzDQo+IA0KPiBIaSBHYWdhbiwNCj4gDQo+IE9uIDkvMTMvMjAxOCAxMTozOCBB
TSwgR2FnYW5kZWVwIFNpbmdoIHdyb3RlOg0KPiA+IEZyb206IEhlbWFudCBBZ3Jhd2FsIDxoZW1h
bnQuYWdyYXdhbEBueHAuY29tPg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogR2FnYW5kZWVwIFNp
bmdoIDxnLnNpbmdoQG54cC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogSGVtYW50IEFncmF3YWwg
PGhlbWFudC5hZ3Jhd2FsQG54cC5jb20+DQo+ID4gLS0tDQo+ID4gICBkcml2ZXJzL2NyeXB0by9j
YWFtX2pyL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgNiArDQo+ID4gICBkcml2ZXJzL2NyeXB0
by9jYWFtX2pyL2NhYW1fanIuYyAgICAgICAgICAgICB8IDMyOSArKysrKysrKysrKy0NCj4gPiAg
IGRyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qcl9jb25maWcuaCAgICAgIHwgMjA3ICsrKysr
KysrDQo+ID4gICBkcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJfaHcuYyAgICAgICAgICB8
IDM2NSArKysrKysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9jcnlwdG8vY2FhbV9qci9jYWFtX2py
X2h3X3NwZWNpZmljLmggfCA1MDMgKysrKysrKysrKysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9j
cnlwdG8vY2FhbV9qci9jYWFtX2pyX3B2dC5oICAgICAgICAgfCAyODUgKysrKysrKysrKysNCj4g
PiAgIGRyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qcl91aW8uYyAgICAgICAgIHwgNDkxICsr
KysrKysrKysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9jcnlwdG8vY2FhbV9qci9tZXNvbi5idWls
ZCAgICAgICAgICAgfCAgIDUgKy0NCj4gPiAgIDggZmlsZXMgY2hhbmdlZCwgMjE4OCBpbnNlcnRp
b25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv
Y3J5cHRvL2NhYW1fanIvY2FhbV9qcl9jb25maWcuaA0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0
IGRyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qcl9ody5jDQo+ID4gICBjcmVhdGUgbW9kZSAx
MDA2NDQgZHJpdmVycy9jcnlwdG8vY2FhbV9qci9jYWFtX2pyX2h3X3NwZWNpZmljLmgNCj4gPiAg
IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJfcHZ0LmgN
Cj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJf
dWlvLmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL01ha2Vm
aWxlDQo+ID4gYi9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL01ha2VmaWxlIGluZGV4IDQ2ZDc1MmFm
Ny4uOGI4NjNiNGFmIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvY3J5cHRvL2NhYW1fanIvTWFr
ZWZpbGUNCj4gPiArKysgYi9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL01ha2VmaWxlDQo+ID4gQEAg
LTE5LDcgKzE5LDEwIEBAIENGTEFHUyArPSAtTzMNCj4gPiAgIENGTEFHUyArPSAkKFdFUlJPUl9G
TEFHUykNCj4gPiAgIGVuZGlmDQo+ID4NCj4gPiArQ0ZMQUdTICs9IC1JJChSVEVfU0RLKS9kcml2
ZXJzL2J1cy9kcGFhL2luY2x1ZGUNCj4gPiAgIENGTEFHUyArPSAtSSQoUlRFX1NESykvZHJpdmVy
cy9jcnlwdG8vY2FhbV9qcg0KPiA+ICsjc2hhcmluZyB0aGUgaHcgZmxpYiBoZWFkZXJzIGZyb20g
ZHBhYTJfc2VjIHBtZCBDRkxBR1MgKz0NCj4gPiArLUkkKFJURV9TREspL2RyaXZlcnMvY3J5cHRv
L2RwYWEyX3NlYy8NCj4gPiAgIENGTEFHUyArPSAtSSQoUlRFX1NESykvbGliL2xpYnJ0ZV9lYWwv
Y29tbW9uL2luY2x1ZGUNCj4gPiAgIENGTEFHUyArPSAtSSQoUlRFX1NESykvbGliL2xpYnJ0ZV9l
YWwvbGludXhhcHAvZWFsDQo+ID4NCj4gPiBAQCAtMzAsMTEgKzMzLDE0IEBAIEVYUE9SVF9NQVAg
Oj0gcnRlX3BtZF9jYWFtX2pyX3ZlcnNpb24ubWFwDQo+ID4gICBMSUJBQklWRVIgOj0gMQ0KPiA+
DQo+ID4gICAjIGxpYnJhcnkgc291cmNlIGZpbGVzDQo+ID4gK1NSQ1MtJChDT05GSUdfUlRFX0xJ
QlJURV9QTURfQ0FBTV9KUikgKz0gY2FhbV9qcl9ody5jDQo+ID4gK1NSQ1MtJChDT05GSUdfUlRF
X0xJQlJURV9QTURfQ0FBTV9KUikgKz0gY2FhbV9qcl91aW8uYw0KPiA+ICAgU1JDUy0kKENPTkZJ
R19SVEVfTElCUlRFX1BNRF9DQUFNX0pSKSArPSBjYWFtX2pyLmMNCj4gPiAgICMgbGlicmFyeSBk
ZXBlbmRlbmNpZXMNCj4gPg0KPiA+ICAgTERMSUJTICs9IC1scnRlX2VhbCAtbHJ0ZV9tYnVmIC1s
cnRlX21lbXBvb2wgLWxydGVfcmluZw0KPiA+ICAgTERMSUJTICs9IC1scnRlX2NyeXB0b2Rldg0K
PiA+ICtMRExJQlMgKz0gLWxydGVfYnVzX2RwYWENCj4gPiAgIExETElCUyArPSAtbHJ0ZV9idXNf
dmRldg0KPiA+DQo+ID4gICBpbmNsdWRlICQoUlRFX1NESykvbWsvcnRlLmxpYi5taw0KPiA+IGRp
ZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanIuYw0KPiA+IGIvZHJpdmVy
cy9jcnlwdG8vY2FhbV9qci9jYWFtX2pyLmMNCj4gPiBpbmRleCA2ODc3OWNiYTUuLjlkNWY1Yjc5
YiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanIuYw0KPiA+
ICsrKyBiL2RyaXZlcnMvY3J5cHRvL2NhYW1fanIvY2FhbV9qci5jDQo+ID4gQEAgLTE2LDEzICsx
NiwxNDYgQEANCj4gPiAgICNpbmNsdWRlIDxydGVfbWFsbG9jLmg+DQo+ID4gICAjaW5jbHVkZSA8
cnRlX3NlY3VyaXR5X2RyaXZlci5oPg0KPiA+ICAgI2luY2x1ZGUgPHJ0ZV9oZXhkdW1wLmg+DQo+
ID4gKyNpbmNsdWRlIDxjYWFtX2pyX2NvbmZpZy5oPg0KPiBQbGVhc2UgZ2l2ZSBvbmUgbGluZSBi
cmVhayBiZXR3ZWVuIHRoZSBydGVfIGluY2x1ZGVzIGFuZCBkcml2ZXIgc3BlY2lmaWMgaW5jbHVk
ZXMNCm9rDQo+ID4NCj4gPiArLyogUlRBIGhlYWRlciBmaWxlcyAqLw0KPiA+ICsjaW5jbHVkZSA8
aHcvZGVzYy9jb21tb24uaD4NCj4gPiArI2luY2x1ZGUgPG9mLmg+DQo+ID4gKyNpbmNsdWRlIDxj
YWFtX2pyX2h3X3NwZWNpZmljLmg+DQo+ID4gKyNpbmNsdWRlIDxjYWFtX2pyX3B2dC5oPg0KPiA+
ICAgI2luY2x1ZGUgPGNhYW1fanJfbG9nLmg+DQo+ID4NCj4gPiAgICNkZWZpbmUgQ1JZUFRPREVW
X05BTUVfQ0FBTV9KUl9QTUQJY3J5cHRvX2NhYW1fanINCj4gPiAgIHN0YXRpYyB1aW50OF90IGNy
eXB0b2Rldl9kcml2ZXJfaWQ7DQo+ID4gICBpbnQgY2FhbV9qcl9sb2d0eXBlOw0KPiA+DQo+ID4g
K2VudW0gcnRhX3NlY19lcmEgcnRhX3NlY19lcmE7DQo+ID4gKw0KPiA+ICsvKiBMaXN0cyB0aGUg
c3RhdGVzIHBvc3NpYmxlIGZvciB0aGUgU0VDIHVzZXIgc3BhY2UgZHJpdmVyLiAqLyBlbnVtDQo+
ID4gK3NlY19kcml2ZXJfc3RhdGVfZSB7DQo+ID4gKwlTRUNfRFJJVkVSX1NUQVRFX0lETEUsCQkv
KiBEcml2ZXIgbm90IGluaXRpYWxpemVkICovDQo+ID4gKwlTRUNfRFJJVkVSX1NUQVRFX1NUQVJU
RUQsCS8qIERyaXZlciBpbml0aWFsaXplZCBhbmQgY2FuIGJlIHVzZWQqLw0KPiA+ICsJU0VDX0RS
SVZFUl9TVEFURV9SRUxFQVNFLAkvKiBEcml2ZXIgcmVsZWFzZSBpcyBpbiBwcm9ncmVzcyAqLw0K
PiA+ICt9Ow0KPiA+ICsNCj4gPiArLyogSm9iIHJpbmdzIHVzZWQgZm9yIGNvbW11bmljYXRpb24g
d2l0aCBTRUMgSFcgKi8gc3RhdGljIHN0cnVjdA0KPiA+ICtzZWNfam9iX3JpbmdfdCBnX2pvYl9y
aW5nc1tNQVhfU0VDX0pPQl9SSU5HU107DQo+ID4gKw0KPiA+ICsvKiBUaGUgY3VycmVudCBzdGF0
ZSBvZiBTRUMgdXNlciBzcGFjZSBkcml2ZXIgKi8gc3RhdGljIGVudW0NCj4gPiArc2VjX2RyaXZl
cl9zdGF0ZV9lIGdfZHJpdmVyX3N0YXRlID0gU0VDX0RSSVZFUl9TVEFURV9JRExFOw0KPiA+ICsN
Cj4gPiArLyogVGhlIG51bWJlciBvZiBqb2IgcmluZ3MgdXNlZCBieSBTRUMgdXNlciBzcGFjZSBk
cml2ZXIgKi8gc3RhdGljDQo+ID4gK2ludCBnX2pvYl9yaW5nc19ubzsgc3RhdGljIGludCBnX2pv
Yl9yaW5nc19tYXg7DQo+ID4gKw0KPiA+ICsvKiBAYnJpZWYgUG9sbCB0aGUgSFcgZm9yIGFscmVh
ZHkgcHJvY2Vzc2VkIGpvYnMgaW4gdGhlIEpSDQo+ID4gKyAqIGFuZCBzaWxlbnRseSBkaXNjYXJk
IHRoZSBhdmFpbGFibGUgam9icyBvciBub3RpZnkgdGhlbSB0byBVQQ0KPiA+ICsgKiB3aXRoIGlu
ZGljYXRlZCBlcnJvciBjb2RlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gW2luLG91dF0gIGpv
Yl9yaW5nICAgICAgICBUaGUgam9iIHJpbmcgdG8gcG9sbC4NCj4gPiArICogQHBhcmFtIFtpbl0g
IGRvX25vdGlmeSAgICAgICAgICAgQ2FuIGJlICNUUlVFIG9yICNGQUxTRS4gSW5kaWNhdGVzIGlm
DQo+ID4gKyAqCQkJCSAgICBkZXNjcmlwdG9ycyBhcmUgdG8gYmUgZGlzY2FyZGVkDQo+ID4gKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIG5vdGlmaWVkIHRvIFVBIHdpdGgg
Z2l2ZW4gZXJyb3JfY29kZS4NCj4gPiArICogQHBhcmFtIFtvdXRdIG5vdGlmaWVkX2Rlc2NzICAg
IE51bWJlciBvZiBub3RpZmllZCBkZXNjcmlwdG9ycy4gQ2FuIGJlDQo+IE5VTEwNCj4gPiArICoJ
CQkJCWlmIGRvX25vdGlmeSBpcyAjRkFMU0UNCj4gPiArICovDQo+ID4gK3N0YXRpYyB2b2lkIGh3
X2ZsdXNoX2pvYl9yaW5nKHN0cnVjdCBzZWNfam9iX3JpbmdfdCAqam9iX3JpbmcsDQo+ID4gKwkJ
CSAgICAgIHVpbnQzMl90IGRvX25vdGlmeSwNCj4gPiArCQkJICAgICAgdWludDMyX3QgKm5vdGlm
aWVkX2Rlc2NzKQ0KPiBzdGF0aWMgdm9pZCBzaG91bGQgYmUgaW4gYSBzZXBhcmF0ZSBsaW5lLi4g
UGxlYXNlIGNoZWNrIGluIHJlc3Qgb2YgdGhlIGNvZGUgYXMgd2VsbC4NCkkgd2lsbCBoYW5kbGVk
IGFsbCBvZiB0aGVtIGluIG5leHQgdmVyc2lvbi4NCj4gPiArew0KPiA+ICsJaW50MzJfdCBqb2Jz
X25vX3RvX2Rpc2NhcmQgPSAwOw0KPiA+ICsJaW50MzJfdCBkaXNjYXJkZWRfZGVzY3Nfbm8gPSAw
Ow0KPiA+ICsNCj4gPiArCUNBQU1fSlJfREVCVUcoIkpyWyVwXSBwaVslZF0gY2lbJWRdLkZsdXNo
aW5nIGpyIG5vdGlmeSBkZXNjPVslZF0iLA0KPiA+ICsJCWpvYl9yaW5nLCBqb2JfcmluZy0+cGlk
eCwgam9iX3JpbmctPmNpZHgsIGRvX25vdGlmeSk7DQo+ID4gKw0KPiA+ICsJam9ic19ub190b19k
aXNjYXJkID0gaHdfZ2V0X25vX2ZpbmlzaGVkX2pvYnMoam9iX3JpbmcpOw0KPiA+ICsNCj4gPiAr
CS8qIERpc2NhcmQgYWxsIGpvYnMgKi8NCj4gPiArCUNBQU1fSlJfREVCVUcoIkpyWyVwXSBwaVsl
ZF0gY2lbJWRdLkRpc2NhcmRpbmcgJWQgZGVzY3MiLA0KPiA+ICsJCSAgam9iX3JpbmcsIGpvYl9y
aW5nLT5waWR4LCBqb2JfcmluZy0+Y2lkeCwNCj4gPiArCQkgIGpvYnNfbm9fdG9fZGlzY2FyZCk7
DQo+ID4gKw0KPiA+ICsJd2hpbGUgKGpvYnNfbm9fdG9fZGlzY2FyZCA+IGRpc2NhcmRlZF9kZXNj
c19ubykgew0KPiA+ICsJCS8qIEdldCBjb21wbGV0ZWQgZGVzY3JpcHRvciAqLw0KPiA+ICsjaWYg
MA0KPiA+ICsJCS8qVE9ETyBpZiB3ZSB3YW50IHRvIGRvIHNvbWV0aGluZyB3aXRoIGRlc2MqLw0K
PiA+ICsJCS8qIFNpbmNlIHRoZSBtZW1vcnkgaXMgY29udGlnb3VzLCB0aGVuIFAyViB0cmFuc2xh
dGlvbiBpcyBhDQo+ID4gKwkJICogbWVyZSBhZGRpdGlvbiB0byB0aGUgYmFzZSBkZXNjcmlwdG9y
IHBoeXNpY2FsIGFkZHJlc3MNCj4gPiArCQkgKi8NCj4gPiArCQljdXJyZW50X2Rlc2MgPSBqb2Jf
cmluZy0+b3V0cHV0X3Jpbmdbam9iX3JpbmctPmNpZHhdLmRlc2M7DQo+ID4gKyNlbmRpZg0KPiBQ
bGVhc2UgcmVtb3ZlIGRlYWQgY29kZS4NCm9rDQo+ID4gKw0KPiA+ICsJCWRpc2NhcmRlZF9kZXNj
c19ubysrOw0KPiA+ICsJCS8qIE5vdyBpbmNyZW1lbnQgdGhlIGNvbnN1bWVyIGluZGV4IGZvciB0
aGUgY3VycmVudCBqb2IgcmluZywNCj4gPiArCQkgKiBBRlRFUiBzYXZpbmcgam9iIGluIHRlbXBv
cmFyeSBsb2NhdGlvbiENCj4gPiArCQkgKiBJbmNyZW1lbnQgdGhlIGNvbnN1bWVyIGluZGV4IGZv
ciB0aGUgY3VycmVudCBqb2IgcmluZw0KPiA+ICsJCSAqLw0KPiA+ICsJCWpvYl9yaW5nLT5jaWR4
ID0gU0VDX0NJUkNVTEFSX0NPVU5URVIoam9iX3JpbmctPmNpZHgsDQo+ID4gKwkJCQkJIFNFQ19K
T0JfUklOR19TSVpFKTsNCj4gPiArDQo+ID4gKwkJaHdfcmVtb3ZlX2VudHJpZXMoam9iX3Jpbmcs
IDEpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWlmIChkb19ub3RpZnkgPT0gdHJ1ZSkgew0KPiA+
ICsJCUFTU0VSVChub3RpZmllZF9kZXNjcyAhPSBOVUxMKTsNCj4gPiArCQkqbm90aWZpZWRfZGVz
Y3MgPSBkaXNjYXJkZWRfZGVzY3Nfbm87DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gKw0K
PiA+ICsvKiBAYnJpZWYgRmx1c2ggam9iIHJpbmdzIG9mIGFueSBwcm9jZXNzZWQgZGVzY3MuDQo+
ID4gKyAqIFRoZSBwcm9jZXNzZWQgZGVzY3MgYXJlIHNpbGVudGx5IGRyb3BwZWQsDQo+ID4gKyAq
IFdJVEhPVVQgYmVpbmcgbm90aWZpZWQgdG8gVUEuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgdm9p
ZCBjbG9zZV9qb2JfcmluZyhzdHJ1Y3Qgc2VjX2pvYl9yaW5nX3QgKmpvYl9yaW5nKSB7DQo+ID4g
KwlpZiAoam9iX3JpbmctPmlycV9mZCkgew0KPiA+ICsJCS8qIFByb2R1Y2VyIGluZGV4IGlzIGZy
b3plbi4gSWYgY29uc3VtZXIgaW5kZXggaXMgbm90IGVxdWFsDQo+ID4gKwkJICogd2l0aCBwcm9k
dWNlciBpbmRleCwgdGhlbiB3ZSBoYXZlIGRlc2NzIHRvIGZsdXNoLg0KPiA+ICsJCSAqLw0KPiA+
ICsJCXdoaWxlIChqb2JfcmluZy0+cGlkeCAhPSBqb2JfcmluZy0+Y2lkeCkNCj4gPiArCQkJaHdf
Zmx1c2hfam9iX3Jpbmcoam9iX3JpbmcsIGZhbHNlLCBOVUxMKTsNCj4gPiArDQo+ID4gKwkJLyog
ZnJlZSB0aGUgdWlvIGpvYiByaW5nICovDQo+ID4gKwkJZnJlZV9qb2JfcmluZyhqb2JfcmluZy0+
aXJxX2ZkKTsNCj4gPiArCQlqb2JfcmluZy0+aXJxX2ZkID0gMDsNCj4gPiArCQljYWFtX2pyX2Rt
YV9mcmVlKGpvYl9yaW5nLT5pbnB1dF9yaW5nKTsNCj4gPiArCQljYWFtX2pyX2RtYV9mcmVlKGpv
Yl9yaW5nLT5vdXRwdXRfcmluZyk7DQo+ID4gKw0KPiA+ICsJCWdfam9iX3JpbmdzX25vLS07DQo+
ID4gKw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiogQGJyaWVmIFJlbGVhc2UgdGhl
IHNvZnR3YXJlIGFuZCBoYXJkd2FyZSByZXNvdXJjZXMgdGllZCB0byBhIGpvYiByaW5nLg0KPiA+
ICsgKiBAcGFyYW0gW2luXSBqb2JfcmluZyBUaGUgam9iIHJpbmcNCj4gPiArICoNCj4gPiArICog
QHJldHZhbCAgMCBmb3Igc3VjY2Vzcw0KPiA+ICsgKiBAcmV0dmFsICAtMSBmb3IgZXJyb3INCj4g
PiArICovDQo+ID4gK3N0YXRpYyBpbnQgc2h1dGRvd25fam9iX3Jpbmcoc3RydWN0IHNlY19qb2Jf
cmluZ190ICpqb2JfcmluZykgew0KPiA+ICsJaW50IHJldCA9IDA7DQo+ID4gKw0KPiA+ICsJQVNT
RVJUKGpvYl9yaW5nICE9IE5VTEwpOw0KPiA+ICsJcmV0ID0gaHdfc2h1dGRvd25fam9iX3Jpbmco
am9iX3JpbmcpOw0KPiA+ICsJU0VDX0FTU0VSVChyZXQgPT0gMCwgcmV0LA0KPiA+ICsJCSJGYWls
ZWQgdG8gc2h1dGRvd24gaGFyZHdhcmUgam9iIHJpbmcgJXAiLA0KPiA+ICsJCWpvYl9yaW5nKTsN
Cj4gPiArDQo+ID4gKwlpZiAoam9iX3JpbmctPmNvYWxlc2NpbmdfZW4pDQo+ID4gKwkJaHdfam9i
X3JpbmdfZGlzYWJsZV9jb2FsZXNjaW5nKGpvYl9yaW5nKTsNCj4gPiArDQo+ID4gKwlpZiAoam9i
X3JpbmctPmpyX21vZGUgIT0gU0VDX05PVElGSUNBVElPTl9UWVBFX1BPTEwpIHsNCj4gPiArCQly
ZXQgPSBjYWFtX2pyX2Rpc2FibGVfaXJxcyhqb2JfcmluZy0+aXJxX2ZkKTsNCj4gPiArCQlTRUNf
QVNTRVJUKHJldCA9PSAwLCByZXQsDQo+ID4gKwkJIkZhaWxlZCB0byBkaXNhYmxlIGlycXMgZm9y
IGpvYiByaW5nICVwIiwNCj4gPiArCQlqb2JfcmluZyk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJ
cmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+DQo+ID4gICAvKg0KPiA+ICAgICogQGJyaWVmIFJlbGVh
c2UgdGhlIHJlc291cmNlcyB1c2VkIGJ5IHRoZSBTRUMgdXNlciBzcGFjZSBkcml2ZXIuDQo+ID4g
QEAgLTQyLDMxICsxNzUsMTk1IEBAIGludCBjYWFtX2pyX2xvZ3R5cGU7DQo+ID4gICBzdGF0aWMg
aW50DQo+ID4gICBjYWFtX2pyX2Rldl91bmluaXQoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldikN
Cj4gPiAgIHsNCj4gPiArCXN0cnVjdCBzZWNfam9iX3JpbmdfdCAqaW50ZXJuYWxzOw0KPiA+DQo+
ID4gICAJaWYgKGRldiA9PSBOVUxMKQ0KPiA+ICAgCQlyZXR1cm4gLUVOT0RFVjsNCj4gPg0KPiA+
ICsJaW50ZXJuYWxzID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArCXJ0ZV9mcmVlKGRl
di0+c2VjdXJpdHlfY3R4KTsNCj4gPiArDQo+ID4gKw0KPiA+ICsJLyogSWYgYW55IGRlc2NyaXB0
b3JzIGluIGZsaWdodCAsIHBvbGwgYW5kIHdhaXQNCj4gPiArCSAqIHVudGlsIGFsbCBkZXNjcmlw
dG9ycyBhcmUgcmVjZWl2ZWQgYW5kIHNpbGVudGx5IGRpc2NhcmRlZC4NCj4gPiArCSAqLw0KPiA+
ICsJaWYgKGludGVybmFscykgew0KPiA+ICsJCXNodXRkb3duX2pvYl9yaW5nKGludGVybmFscyk7
DQo+ID4gKwkJY2xvc2Vfam9iX3JpbmcoaW50ZXJuYWxzKTsNCj4gPiArCQlydGVfbWVtcG9vbF9m
cmVlKGludGVybmFscy0+Y3R4X3Bvb2wpOw0KPiA+ICsJfQ0KPiA+DQo+ID4gICAJQ0FBTV9KUl9J
TkZPKCJDbG9zaW5nIERQQUFfU0VDIGRldmljZSAlcyIsIGRldi0+ZGF0YS0+bmFtZSk7DQo+IERQ
QUFfU0VDPz8/IGNoZWNrIHJlc3Qgb2YgdGhlIGNvZGUgYXMgd2VsbA0KTWVzc2FnZSB3aWxsIGJl
IHVwZGF0ZWQgaW4gbmV4dCB2ZXJzaW9uLg0KPiA+DQo+ID4gKwkvKiBsYXN0IGNhYW0ganIgaW5z
dGFuY2UpICovDQo+ID4gKwlpZiAoZ19qb2JfcmluZ3Nfbm8gPT0gMCkNCj4gPiArCQlnX2RyaXZl
cl9zdGF0ZSA9IFNFQ19EUklWRVJfU1RBVEVfSURMRTsNCj4gPg0KPiA+IC0JcmV0dXJuIDA7DQo+
ID4gKwlyZXR1cm4gU0VDX1NVQ0NFU1M7DQo+ID4gICB9DQo+ID4NCj4gPiArLyogQGJyaWVmIElu
aXRpYWxpemUgdGhlIHNvZnR3YXJlIGFuZCBoYXJkd2FyZSByZXNvdXJjZXMgdGllZCB0byBhIGpv
YiByaW5nLg0KPiAuLiBbc25pcF0NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vY2Fh
bV9qci9jYWFtX2pyX2h3X3NwZWNpZmljLmgNCj4gPiBiL2RyaXZlcnMvY3J5cHRvL2NhYW1fanIv
Y2FhbV9qcl9od19zcGVjaWZpYy5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl
eCAwMDAwMDAwMDAuLjdjODkwOWQyYg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2
ZXJzL2NyeXB0by9jYWFtX2pyL2NhYW1fanJfaHdfc3BlY2lmaWMuaA0KPiA+IEBAIC0wLDAgKzEs
NTAzIEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4g
PiArICogQ29weXJpZ2h0IDIwMTcgTlhQDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBD
QUFNX0pSX0hXX1NQRUNJRklDX0gNCj4gPiArI2RlZmluZSBDQUFNX0pSX0hXX1NQRUNJRklDX0gN
Cj4gPiArDQo+ID4gKyNpbmNsdWRlIDxjYWFtX2pyX2NvbmZpZy5oPg0KPiA+ICsNCj4gPiArLyoN
Cj4gPiArICogT2Zmc2V0IHRvIHRoZSByZWdpc3RlcnMgb2YgYSBqb2IgcmluZy4NCj4gPiArICog
SXMgZGlmZmVyZW50IGZvciBlYWNoIGpvYiByaW5nLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBD
SEFOX0JBU0UoanIpICAgKChzaXplX3QpKGpyKS0+cmVnaXN0ZXJfYmFzZV9hZGRyKQ0KPiA+ICsN
Cj4gPiArI2lmbmRlZiB1bmxpa2VseQ0KPiA+ICsjZGVmaW5lIHVubGlrZWx5KHgpICAgICBfX2J1
aWx0aW5fZXhwZWN0KCEhKHgpLCAwKQ0KPiA+ICsjZW5kaWYNCj4gbGlrZWx5L3VubGlrZWx5IGFy
ZSBhbHJlYWR5IGRlZmluZWQgaW4gRFBESw0KT2ssIHdpbGwgYmUgcmVtb3ZlZC4NCj4gPiArDQo+
IC4uIFtzbmlwXQ0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSBydGVfaW92YV90DQo+ID4gK2Nh
YW1fanJfbWVtX3Z0b3Aodm9pZCAqdmFkZHIpDQo+ID4gK3sNCj4gPiArCWNvbnN0IHN0cnVjdCBy
dGVfbWVtc2VnICptczsNCj4gPiArDQo+ID4gKwltcyA9IHJ0ZV9tZW1fdmlydDJtZW1zZWcodmFk
ZHIsIE5VTEwpOw0KPiA+ICsJaWYgKG1zKQ0KPiA+ICsJCXJldHVybiBtcy0+aW92YSArIFJURV9Q
VFJfRElGRih2YWRkciwgbXMtPmFkZHIpOw0KPiA+ICsJcmV0dXJuIChzaXplX3QpTlVMTDsNCj4g
PiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSB2b2lkICoNCj4gPiArY2FhbV9qcl9kbWFf
cHRvdihydGVfaW92YV90IHBhZGRyKQ0KPiA+ICt7DQo+ID4gKwlyZXR1cm4gcnRlX21lbV9pb3Zh
MnZpcnQocGFkZHIpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBWaXJ0dWFsIHRvIHBoeXNpY2Fs
IGFkZHJlc3MgY29udmVyc2lvbiAqLyBzdGF0aWMgaW5saW5lIHJ0ZV9pb3ZhX3QNCj4gPiArY2Fh
bV9qcl9kbWFfdnRvcCh2b2lkICpwdHIpIHsNCj4gPiArCS8vcmV0dXJuIHJ0ZV9tYWxsb2Nfdmly
dDJpb3ZhKHB0cik7DQo+IHJlbW92ZSB0aGlzIGNvbW1lbnQuDQpvaw0KPiA+ICsJcmV0dXJuIGNh
YW1fanJfbWVtX3Z0b3AocHRyKTsNCj4gPiArfQ0KPiA+ICsNCj4gPg0KDQo=