From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 2C119A0096
	for <public@inbox.dpdk.org>; Wed,  5 Jun 2019 16:34:25 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 0BE0E1BAD7;
	Wed,  5 Jun 2019 16:34:25 +0200 (CEST)
Received: from mga04.intel.com (mga04.intel.com [192.55.52.120])
 by dpdk.org (Postfix) with ESMTP id 073081B94E
 for <dev@dpdk.org>; Wed,  5 Jun 2019 16:34:22 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by fmsmga104.fm.intel.com with ESMTP; 05 Jun 2019 07:34:22 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.60,550,1549958400"; d="scan'208";a="181957906"
Received: from irsmsx106.ger.corp.intel.com ([163.33.3.31])
 by fmsmga002.fm.intel.com with ESMTP; 05 Jun 2019 07:34:21 -0700
Received: from irsmsx102.ger.corp.intel.com ([169.254.2.108]) by
 IRSMSX106.ger.corp.intel.com ([169.254.8.166]) with mapi id 14.03.0415.000;
 Wed, 5 Jun 2019 15:34:20 +0100
From: "Ferriter, Cian" <cian.ferriter@intel.com>
To: "Yigit, Ferruh" <ferruh.yigit@intel.com>, "Richardson, Bruce"
 <bruce.richardson@intel.com>, "Mcnamara, John" <john.mcnamara@intel.com>,
 "Kovacevic, Marko" <marko.kovacevic@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [PATCH 19.08] net/pcap: enable infinitely rxing a pcap file
Thread-Index: AQHU8FZeXOOXssqYzEW71k9DEg7amaZ/THeAgAMSr7A=
Date: Wed, 5 Jun 2019 14:34:20 +0000
Message-ID: <579B86492DFB364BBA627A48FB30C90E75D519C3@IRSMSX102.ger.corp.intel.com>
References: <20190411110048.6626-1-cian.ferriter@intel.com>
 <b0d748be-bbca-de64-d95b-3b47d9b0f491@intel.com>
In-Reply-To: <b0d748be-bbca-de64-d95b-3b47d9b0f491@intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ctpclassification: CTP_NT
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiM2ZhNDlmMzYtYmExNi00NjYwLTgxZmEtZTRmZWMwMmY5NzJiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiemZmYmh5VXM3bXJYVlA2cVlTNkhOSXN5WlJqaDd5eDVYQ0w2RjF2N3VBOWwrTkY3SDNVMGdXbjRsRjUyajFnTyJ9
dlp-product: dlpe-windows
dlp-version: 11.0.600.7
dlp-reaction: no-action
x-originating-ip: [163.33.239.180]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH 19.08] net/pcap: enable infinitely rxing a
	pcap file
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>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

SGkgRmVycnVoLA0KDQpUaGFua3MgZm9yIHRoZSByZXZpZXchDQoNCkkndmUgcG9zdGVkIHRoZSB2
MiBvZiB0aGlzIHBhdGNoLg0KDQpNeSByZXBsaWVzIGFyZSBpbmxpbmUNCg0KVGhhbmtzLA0KQ2lh
bg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlpZ2l0LCBGZXJydWgN
Cj4gU2VudDogMjcgTWF5IDIwMTkgMTY6MTUNCj4gVG86IEZlcnJpdGVyLCBDaWFuIDxjaWFuLmZl
cnJpdGVyQGludGVsLmNvbT47IFJpY2hhcmRzb24sIEJydWNlDQo+IDxicnVjZS5yaWNoYXJkc29u
QGludGVsLmNvbT47IE1jbmFtYXJhLCBKb2huDQo+IDxqb2huLm1jbmFtYXJhQGludGVsLmNvbT47
IEtvdmFjZXZpYywgTWFya28NCj4gPG1hcmtvLmtvdmFjZXZpY0BpbnRlbC5jb20+DQo+IENjOiBk
ZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxOS4wOF0gbmV0L3BjYXA6IGVuYWJs
ZSBpbmZpbml0ZWx5IHJ4aW5nIGEgcGNhcCBmaWxlDQo+IA0KPiBPbiA0LzExLzIwMTkgMTI6MDAg
UE0sIENpYW4gRmVycml0ZXIgd3JvdGU6DQo+ID4gSXQgY2FuIGJlIHVzZWZ1bCB0byB1c2UgcGNh
cCBmaWxlcyBmb3Igc29tZSBydWRpbWVudGFsIHBlcmZvcm1hbmNlDQo+ID4gdGVzdGluZy4gVGhp
cyBwYXRjaCBlbmFibGVzIHRoaXMgZnVuY3Rpb25hbGl0eSBpbiB0aGUgcGNhcCBkcml2ZXIuDQo+
ID4NCj4gPiBBdCBhIGhpZ2ggbGV2ZWwsIHRoaXMgd29ya3MgYnkgY3JlYWluZyBhIHJpbmcgb2Yg
c3VmZmljaWVudCBzaXplIHRvDQo+ID4gc3RvcmUgdGhlIHBhY2tldHMgaW4gdGhlIHBjYXAgZmls
ZSBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uLiBXaGVuIHRoZQ0KPiA+IHJ4IGZ1bmN0aW9uIGZv
ciB0aGlzIG1vZGUgaXMgY2FsbGVkLCBwYWNrZXRzIGFyZSBkZXF1ZXVlZCBmcm9tIHRoZQ0KPiA+
IHJpbmcgZm9yIHVzZSBieSB0aGUgYXBwbGljYXRpb24gYW5kIGFsc28gZW5xdWV1ZWQgYmFjayBv
biB0byB0aGUgcmluZw0KPiA+IHRvIGJlICJyZWNlaXZlZCIgYWdhaW4uDQo+ID4NCj4gPiBBIHR4
X2Ryb3AgbW9kZSBpcyBhbHNvIGFkZGVkIHNpbmNlIHRyYW5zbWl0dGluZyB0byBhIHR4X3BjYXAg
ZmlsZQ0KPiA+IGlzbid0IGRlc2lyYWJsZSBhdCBhIGhpZ2ggdHJhZmZpYyByYXRlLg0KPiA+DQo+
ID4gSnVtYm8gZnJhbWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgbW9kZS4gV2hlbiBmaWxs
aW5nIHRoZSByaW5nIGF0DQo+ID4gcnggcXVldWUgc2V0dXAgdGltZSwgdGhlIHByZXNlbmNlIG9m
IG11bHRpIHNlZ21lbnQgbWJ1ZnMgaXMgY2hlY2tlZCBmb3IuDQo+ID4gVGhlIFBNRCB3aWxsIGV4
aXQgb24gZGV0ZWN0aW9uIG9mIHRoZXNlIG11bHRpIHNlZ21lbnQgbWJ1ZnMuDQo+ID4NCj4gPiBT
aWduZWQtb2ZmLWJ5OiBDaWFuIEZlcnJpdGVyIDxjaWFuLmZlcnJpdGVyQGludGVsLmNvbT4NCj4g
PiAtLS0NCj4gPiAgZG9jL2d1aWRlcy9uaWNzL3BjYXBfcmluZy5yc3QgICB8ICAxNSArKysNCj4g
PiAgZHJpdmVycy9uZXQvcGNhcC9ydGVfZXRoX3BjYXAuYyB8IDIwOQ0KPiA+ICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjE1IGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9u
aWNzL3BjYXBfcmluZy5yc3QNCj4gPiBiL2RvYy9ndWlkZXMvbmljcy9wY2FwX3JpbmcucnN0IGlu
ZGV4IGMxZWY5MTk2Yi4uNDVmNTVhMzQ1IDEwMDY0NA0KPiA+IC0tLSBhL2RvYy9ndWlkZXMvbmlj
cy9wY2FwX3JpbmcucnN0DQo+ID4gKysrIGIvZG9jL2d1aWRlcy9uaWNzL3BjYXBfcmluZy5yc3QN
Cj4gPiBAQCAtMTA2LDYgKzEwNiwyMSBAQCBSdW50aW1lIENvbmZpZyBPcHRpb25zDQo+ID4NCj4g
PiAgICAgLS12ZGV2ICduZXRfcGNhcDAsaWZhY2U9ZXRoMCxwaHlfbWFjPTEnDQo+ID4NCj4gPiAr
LSBVc2UgdGhlIFJYIFBDQVAgZmlsZSB0byBpbmZpbml0ZWx5IHJlY2VpdmUgcGFja2V0cw0KPiA+
ICsNCj4gPiArIEluIGNhc2UgYGByeF9wY2FwPWBgIGNvbmZpZ3VyYXRpb24gaXMgc2V0LCB1c2Vy
IG1heSB3YW50IHRvIHVzZSB0aGUNCj4gPiArIHNlbGVjdGVkIFBDQVAgZmlsZSBmb3IgcnVkaW1l
bnRhbCBwZXJmb3JtYW5jZSB0ZXN0aW5nLiBUaGlzIGNhbiBiZSBkb25lDQo+IHdpdGggYSBgYGRl
dmFyZ2BgIGBgaW5maW5pdGVfcnhgYCwgZm9yIGV4YW1wbGU6Og0KPiA+ICsNCj4gPiArICAgLS12
ZGV2ICduZXRfcGNhcDAscnhfcGNhcD1maWxlX3J4LnBjYXAsaW5maW5pdGVfcng9MSx0eF9kcm9w
PTEnDQo+ID4gKw0KPiA+ICsgV2hlbiB0aGlzIG1vZGUgaXMgdXNlZCwgaXQgaXMgcmVjb21tZW5k
ZWQgdG8gdXNlIHRoZSBgYHR4X2Ryb3BgYA0KPiBgYGRldmFyZ2BgLg0KPiA+ICsNCj4gPiArLSBE
cm9wIGFsbCBwYWNrZXRzIG9uIHRyYW5zbWl0DQo+ID4gKw0KPiA+ICsgVGhlIHVzZXIgbWF5IHdh
bnQgdG8gZHJvcCBhbGwgcGFja2V0cyBvbiB0eCBmb3IgYSBkZXZpY2UuIFRoaXMgY2FuIGJlIGRv
bmUNCj4gd2l0aCB0aGUgYGB0eF9kcm9wYGAgYGBkZXZhcmdgYCwgZm9yIGV4YW1wbGU6Og0KPiA+
ICsNCj4gPiArICAgLS12ZGV2ICduZXRfcGNhcDAscnhfcGNhcD1maWxlX3J4LnBjYXAsdHhfZHJv
cD0xJw0KPiANCj4gSXMgdGhlcmUgYSBwZXJmb3JtYW5jZSBkcm9wIHdoZW4gdHggZmlsZXMgYXJl
IGRpcmVjdGVkIHRvICdsb29wYmFjaycNCj4gaW50ZXJmYWNlLA0KPiBsaWtlOiAtLXZkZXYgJ25l
dF9wY2FwMCxyeF9wY2FwPWZpbGVfcngucGNhcCx0eF9pZmFjZT1sbycgPw0KPiBJZiBubyBwZXJm
b3JtYW5jZSBkcm9wIEkgYW0gZm9yIHVzaW5nICdsbycgaW50ZXJmYWNlIGluc3RlYWQgb2YgYWRk
aW5nIG5ldw0KPiBkZXZhcmdzLg0KPiANCg0KV2hpbGUgSSBkaWQgdGhpbmsgb2YgdXNpbmcgL2Rl
di9udWxsIGFzIG1ldGhvZCBvZiBkcm9wcGluZyBwYWNrZXRzLCBJIGRpZG4ndCB0aGluayB0byB1
c2UgdGhlIGxvb3BiYWNrIGludGVyZmFjZS4gVGhlIHJlYXNvbiBJIGltcGxlbWVudGVkIHRoZSB0
eF9kcm9wIGZlYXR1cmUgYWZ0ZXIgdHJ5aW5nICd0eF9wY2FwPS9kZXYvbnVsbCcgd2FzIHRoYXQg
dGhlIGZpbGUgd3JpdGVzIHByb3ZlZCB0b28gZXhwZW5zaXZlLg0KDQpJJ3ZlIHRyaWVkIG91dCB0
aGUgbG9vcGJhY2sgaW50ZXJmYWNlIGFzIHBlciB5b3VyIHJlY29tbWVuZGF0aW9uIGFuZCBpdCBz
dWZmZXJzIGZyb20gdGhlIHNhbWUgcHJvYmxlbSBhcyB1c2luZyAvZGV2L251bGwuIEJlbG93IGlz
IGEgY29tcGFyaXNvbiBvZiB0aGUgdGhyZWUgb3B0aW9ucyBmb3IgZHJvcHBpbmcgcGFja2V0cy4N
Cg0KPSB0eF9kcm9wID0NCkNNRDogdGVzdHBtZCAtbCAxLDIgLS1maWxlLXByZWZpeD1iYXNpYyAt
dyAwOjAwLjAgLS12ZGV2IG5ldF9wY2FwMCxyeF9wY2FwPS9vcHQvY2lhbi9vdnMvc2NyaXB0cy9w
Y2Fwcy91ZHAucGNhcCxpbmZpbml0ZV9yeD0xLHR4X2Ryb3A9MSAtLXZkZXYgbmV0X3BjYXAxLHJ4
X3BjYXA9L29wdC9jaWFuL292cy9zY3JpcHRzL3BjYXBzL3VkcC5wY2FwLGluZmluaXRlX3J4PTEs
dHhfZHJvcD0xIC0tIC0tbm8tZmx1c2gtcnggLS1yeHE9MSAtLXR4cT0xIC0taQ0KRm9yIGVhY2gg
cG9ydDoNClR4LXBwczogICAgIDIyNjgwODU2DQoNCj0gbG8gPQ0KQ01EOiB0ZXN0cG1kIC1sIDEs
MiAtLWZpbGUtcHJlZml4PWJhc2ljIC13IDA6MDAuMCAtLXZkZXYgbmV0X3BjYXAwLHJ4X3BjYXA9
L29wdC9jaWFuL292cy9zY3JpcHRzL3BjYXBzL3VkcC5wY2FwLHR4X2lmYWNlPWxvLGluZmluaXRl
X3J4PTEgLS12ZGV2IG5ldF9wY2FwMSxyeF9wY2FwPS9vcHQvY2lhbi9vdnMvc2NyaXB0cy9wY2Fw
cy91ZHAucGNhcCx0eF9pZmFjZT1sbyxpbmZpbml0ZV9yeD0xIC0tIC0tbm8tZmx1c2gtcnggLS1y
eHE9MSAtLXR4cT0xIC0taQ0KRm9yIGVhY2ggcG9ydDoNClR4LXBwczogICAgICAgMjU1NTA3DQoN
Cj0gL2Rldi9udWxsID0NCkNNRDogdGVzdHBtZCAtbCAxLDIgLS1maWxlLXByZWZpeD1iYXNpYyAt
dyAwOjAwLjAgLS12ZGV2IG5ldF9wY2FwMCxyeF9wY2FwPS9vcHQvY2lhbi9vdnMvc2NyaXB0cy9w
Y2Fwcy91ZHAucGNhcCx0eF9wY2FwPS9kZXYvbnVsbCxpbmZpbml0ZV9yeD0xIC0tdmRldiBuZXRf
cGNhcDEscnhfcGNhcD0vb3B0L2NpYW4vb3ZzL3NjcmlwdHMvcGNhcHMvdWRwLnBjYXAsdHhfcGNh
cD0vZGV2L251bGwsaW5maW5pdGVfcng9MSAtLSAtLW5vLWZsdXNoLXJ4IC0tcnhxPTEgLS10eHE9
MSAtLWkNCkZvciBlYWNoIHBvcnQ6DQpUeC1wcHM6ICAgICAgMzEwNjEzMQ0KICANCg0KRm9yIHRo
ZSBjYXNlIHdoZXJlIHRoZSBsb29wYmFjayBvciBsb2NhbCBpbnRlcmZhY2UgaXMgYmVpbmcgdXNl
ZCB0byBkcm9wIHBhY2tldHMsIHBlcmYgdG9wIHNob3dzIHRoYXQgdGhlIG1ham9yaXR5IG9mIHRp
bWUgaXMgYmVpbmcgc3BlbnQgaW4ga2VybmVsIGZ1bmN0aW9ucyBzdWNoIGFzIHRwYWNrZXRfcmN2
LCBkb19zeXNjYWxsXzY0IGFuZCBrZnJlZV9za2IuDQpGb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIC9k
ZXYvbnVsbCBpcyBiZWluZyB1c2VkIHRvIGRyb3AgcGFja2V0cywgcGVyZiB0b3Agc2hvd3MgdGhh
dCB0aGUgbWFqb3JpdHkgb2YgdGltZSBpcyBiZWluZyBzcGVudCBpbiBsaWJjIGZpbGUgb3BlcmF0
aW9uIGZ1bmN0aW9ucyBzdWNoIGFzIF9JT19md3JpdGUgYW5kIF9JT19maWxlX3hzcHV0bi4NCg0K
VHhfZHJvcCBpcyA3LjMgdGltZXMgZmFzdGVyIHRoYW4gL2Rldi9udWxsIGFuZCB+ODkgdGltZXMg
ZmFzdGVyIHRoYW4gbG8gc28gaXQncyB0aGUgcHJlZmVycmVkIG1ldGhvZCBmb3IgZHJvcHBpbmcg
cGFja2V0cy4NCg0KPiA+ICsNCj4gPiAgRXhhbXBsZXMgb2YgVXNhZ2UNCj4gPiAgXl5eXl5eXl5e
Xl5eXl5eXl4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhf
cGNhcC5jDQo+ID4gYi9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jIGluZGV4IDM1MzUz
OGYxNi4uYjcyZGI5NzNhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L3BjYXAvcnRlX2V0
aF9wY2FwLmMNCj4gPiArKysgYi9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jDQo+IDwu
Li4+DQo+IA0KPiA+IEBAIC0xNzgsNiArMTg2LDQwIEBAIGV0aF9wY2FwX2dhdGhlcl9kYXRhKHVu
c2lnbmVkIGNoYXIgKmRhdGEsIHN0cnVjdA0KPiBydGVfbWJ1ZiAqbWJ1ZikNCj4gPiAgCX0NCj4g
PiAgfQ0KPiA+DQo+ID4gK3N0YXRpYyB1aW50MTZfdA0KPiA+ICtldGhfcGNhcF9yeF9pbmZpbml0
ZSh2b2lkICpxdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywgdWludDE2X3QNCj4gPiArbmJf
cGt0cykgew0KPiA+ICsJaW50IGk7DQo+ID4gKwlzdHJ1Y3QgcGNhcF9yeF9xdWV1ZSAqcGNhcF9x
ID0gcXVldWU7DQo+ID4gKw0KPiA+ICsJaWYgKHVubGlrZWx5KG5iX3BrdHMgPT0gMCkpDQo+ID4g
KwkJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICsJaWYgKHJ0ZV9wa3RtYnVmX2FsbG9jX2J1bGsocGNh
cF9xLT5tYl9wb29sLCBidWZzLCBuYl9wa3RzKSAhPSAwKQ0KPiA+ICsJCXJldHVybiAwOw0KPiA+
ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBuYl9wa3RzOyBpKyspIHsNCj4gPiArCQlzdHJ1Y3Qg
cnRlX21idWYgKnBjYXBfYnVmOw0KPiA+ICsJCWludCBlcnIgPSBydGVfcmluZ19kZXF1ZXVlKHBj
YXBfcS0+cGt0cywgKHZvaWQNCj4gKiopJnBjYXBfYnVmKTsNCj4gPiArCQlpZiAoZXJyKQ0KPiA+
ICsJCQlydGVfcGFuaWMoImZhaWxlZCB0byBkZXF1ZXVlIGZyb20gcGNhcCBwa3RzDQo+IHJpbmdc
biIpOw0KPiANCj4gUGxlYXNlIGRvbid0IGhhdmUgYW55IHJ0ZV9wYW5pYygpIGluIHRoZSBkcml2
ZXIgY29kZSwgdGhlcmUgYXJlIGEgZmV3IG1vcmUgaW4NCj4gcGF0Y2guDQo+IA0KDQpGaXhlZCBp
biB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ID4gKw0KPiA+ICsJCXJ0ZV9tZW1jcHkocnRlX3BrdG1i
dWZfbXRvZChidWZzW2ldLCB2b2lkICopLA0KPiA+ICsJCQkJcnRlX3BrdG1idWZfbXRvZChwY2Fw
X2J1Ziwgdm9pZCAqKSwNCj4gPiArCQkJCXBjYXBfYnVmLT5kYXRhX2xlbik7DQo+ID4gKwkJYnVm
c1tpXS0+ZGF0YV9sZW4gPSBwY2FwX2J1Zi0+ZGF0YV9sZW47DQo+ID4gKwkJYnVmc1tpXS0+cGt0
X2xlbiA9IHBjYXBfYnVmLT5wa3RfbGVuOw0KPiA+ICsJCWJ1ZnNbaV0tPnBvcnQgPSBwY2FwX3Et
PnBvcnRfaWQ7DQo+ID4gKw0KPiA+ICsJCS8qIGVucXVldWUgcGFja2V0IGJhY2sgb24gcmluZyB0
byBhbGxvdyBpbmZpbml0ZSByeCAqLw0KPiA+ICsJCXJ0ZV9yaW5nX2VucXVldWUocGNhcF9xLT5w
a3RzLCBwY2FwX2J1Zik7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcGNhcF9xLT5yeF9zdGF0LnBr
dHMgKz0gaTsNCj4gDQo+IEZvciBjb25zaXN0ZW5jeSwgY2FuIHlvdSBwbGVhc2UgdXBkYXRlICJw
Y2FwX3EtPnJ4X3N0YXQuYnl0ZXMiIHRvbz8NCj4gDQoNCkZpeGVkIGluIHRoZSBuZXh0IHZlcnNp
b24uDQoNCj4gPiArDQo+ID4gKwlyZXR1cm4gaTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGlj
IHVpbnQxNl90DQo+ID4gIGV0aF9wY2FwX3J4KHZvaWQgKnF1ZXVlLCBzdHJ1Y3QgcnRlX21idWYg
KipidWZzLCB1aW50MTZfdCBuYl9wa3RzKSAgew0KPiANCj4gPC4uLj4NCj4gDQo+ID4gQEAgLTQ0
Nyw2ICs1MDksMjQgQEAgb3Blbl9zaW5nbGVfcnhfcGNhcChjb25zdCBjaGFyICpwY2FwX2ZpbGVu
YW1lLA0KPiBwY2FwX3QgKipwY2FwKQ0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0KPiA+
ICtzdGF0aWMgdWludDY0X3QNCj4gPiArY291bnRfcGFja2V0c19pbl9wY2FwcyhwY2FwX3QgKipw
Y2FwLCBzdHJ1Y3QgcGNhcF9yeF9xdWV1ZSAqcGNhcF9xKQ0KPiB7DQo+ID4gKwljb25zdCB1X2No
YXIgKnBhY2tldDsNCj4gPiArCXN0cnVjdCBwY2FwX3BrdGhkciBoZWFkZXI7DQo+ID4gKwl1aW50
NjRfdCBwY2FwX3BrdF9jb3VudDsNCj4gDQo+IENvbXBpbGVyIGlzIGNvbXBsYWluaW5nIGFib3V0
IHVuaW5pdGlhbGl6ZWQgJ3BjYXBfcGt0X2NvdW50Jy4NCj4gDQoNClRoaXMgaXMgdmFsaWQgYW5k
IEkgc2VlIHRoZSBzYW1lIHdhcm5pbmcuIE5vdCBzdXJlIHdoeSBJIGRpZG4ndCBzZWUgdGhpcyBi
ZWZvcmUsIEkgZG9uJ3QgcmVtZW1iZXIgc3BlY2lmaWNhbGx5IGlnbm9yaW5nIHRoaXMgd2Fybmlu
Zy4uLg0KDQpGaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ID4gKw0KPiA+ICsJd2hpbGUg
KChwYWNrZXQgPSBwY2FwX25leHQoKnBjYXAsICZoZWFkZXIpKSkNCj4gPiArCQlwY2FwX3BrdF9j
b3VudCsrOw0KPiANCj4gSXQgc2VlbXMgdGhlcmUgaXMgbm8gcXVpY2tlciB3YXkgdG8gZ2V0IG51
bWJlciBvZiBwYWNrZXRzIGZyb20gYSBwY2FwIGZpbGUsIGlmDQo+IGFueW9uZSBrbm93IGEgd2F5
LCBjb21tZW50IGlzIHdlbGNvbWUuDQo+IA0KPiA+ICsNCj4gPiArCS8qIHRoZSBwY2FwIGlzIHJl
b3BlbmVkIHNvIGl0IGNhbiBiZSB1c2VkIGFzIG5vcm1hbCBsYXRlciAqLw0KPiA+ICsJcGNhcF9j
bG9zZSgqcGNhcCk7DQo+ID4gKwkqcGNhcCA9IE5VTEw7DQo+ID4gKwlvcGVuX3NpbmdsZV9yeF9w
Y2FwKHBjYXBfcS0+bmFtZSwgcGNhcCk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHBjYXBfcGt0X2Nv
dW50Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgaW50DQo+ID4gIGV0aF9kZXZfc3RhcnQo
c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpICB7DQo+IA0KPiA8Li4uPg0KPiANCj4gPiBAQCAtNjcx
LDYgKzc1Miw0OSBAQCBldGhfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs
DQo+ID4gIAlwY2FwX3EtPnF1ZXVlX2lkID0gcnhfcXVldWVfaWQ7DQo+ID4gIAlkZXYtPmRhdGEt
PnJ4X3F1ZXVlc1tyeF9xdWV1ZV9pZF0gPSBwY2FwX3E7DQo+ID4NCj4gPiArCWlmIChpbnRlcm5h
bHMtPmluZmluaXRlX3J4KSB7DQo+ID4gKwkJc3RydWN0IHBtZF9wcm9jZXNzX3ByaXZhdGUgKnBw
Ow0KPiA+ICsJCWNoYXIgcmluZ19uYW1lW05BTUVfTUFYXTsNCj4gPiArCQl1aW50MTZfdCBudW1f
cnggPSAwOw0KPiA+ICsJCXN0YXRpYyB1aW50MzJfdCByaW5nX251bWJlcjsNCj4gPiArCQl1aW50
NjRfdCBwY2FwX3BrdF9jb3VudCA9IDA7DQo+ID4gKwkJcGNhcF90ICoqcGNhcDsNCj4gPiArDQo+
ID4gKwkJcHAgPSBydGVfZXRoX2RldmljZXNbcGNhcF9xLT5wb3J0X2lkXS5wcm9jZXNzX3ByaXZh
dGU7DQo+ID4gKwkJcGNhcCA9ICZwcC0+cnhfcGNhcFtwY2FwX3EtPnF1ZXVlX2lkXTsNCj4gPiAr
DQo+ID4gKwkJaWYgKHVubGlrZWx5KCpwY2FwID09IE5VTEwpKQ0KPiA+ICsJCQlydGVfcGFuaWMo
Im5vIHBhY2tldHMgaW4gcGNhcCB0byBmaWxsIHJpbmcgd2l0aFxuIik7DQo+ID4gKw0KPiA+ICsJ
CXBjYXBfcGt0X2NvdW50ID0gY291bnRfcGFja2V0c19pbl9wY2FwcyhwY2FwLCBwY2FwX3EpOw0K
PiA+ICsNCj4gPiArCQlzbnByaW50ZihyaW5nX25hbWUsIHNpemVvZihyaW5nX25hbWUpLCAiUENB
UF9SSU5HJSINCj4gUFJJdTE2LA0KPiA+ICsJCQkJcmluZ19udW1iZXIpOw0KPiA+ICsNCj4gPiAr
CQlwY2FwX3EtPnBrdHMgPSBydGVfcmluZ19jcmVhdGUocmluZ19uYW1lLA0KPiA+ICsJCQkJcnRl
X2FsaWduNjRwb3cyKHBjYXBfcGt0X2NvdW50ICsgMSksIDAsDQo+ID4gKwkJCQlSSU5HX0ZfU1Bf
RU5RIHwgUklOR19GX1NDX0RFUSk7DQo+ID4gKwkJcmluZ19udW1iZXIrKzsNCj4gPiArCQlpZiAo
IXBjYXBfcS0+cGt0cykNCj4gPiArCQkJcnRlX3BhbmljKCJmYWlsZWQgdG8gYWxsb2MgcmluZ1xu
Iik7DQo+ID4gKw0KPiA+ICsNCj4gPiArCQlzdHJ1Y3QgcnRlX21idWYgKmJ1ZnNbcGNhcF9wa3Rf
Y291bnRdOw0KPiANCj4gQ2FuIHlvdSBwbGVhc2UgbW92ZSBkZWNlbGVyYXRpb24gdG8gdGhlIGJl
Z2lubmluZyBvZiB0aGUgZnVuY3Rpb24uDQo+IA0KDQpJIGhhdmUgcmV3b3JrZWQgdGhpcyBzZWN0
aW9uIHNvIHRoYXQgd2UgZG9uJ3QgbmVlZCB0byBkZWNsYXJlIGEgdmFyaWFibGUgbGVuZ3RoIGFy
cmF5IG9mIG1idWZzIGJhc2VkIG9uIHRoZSBhbW91bnQgb2YgcGNhcHMgaW4gdGhlIGZpbGUgcGFz
c2VkLg0KDQo+ID4gKwkJaWYgKHJ0ZV9wa3RtYnVmX2FsbG9jX2J1bGsobWJfcG9vbCwgYnVmcywg
cGNhcF9wa3RfY291bnQpDQo+ICE9IDApDQo+ID4gKwkJCXJldHVybiAwOw0KPiANCj4gU2hvdWxk
IHRoaXMgcmV0dXJuIGVycm9yPw0KPiANCg0KT29vcHMsIHRoaXMgc2hvdWxkIHJldHVybiBhbiBl
cnJvciwgbm90IHN1Y2Nlc3MhIQ0KDQpGaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ID4g
Kw0KPiA+ICsJCW51bV9yeCA9IGV0aF9wY2FwX3J4KHBjYXBfcSwgYnVmcywgcGNhcF9wa3RfY291
bnQpOw0KPiA+ICsNCj4gPiArCQkvKiBjaGVjayBmb3IgbXVsdGlzZWcgbWJ1ZnMgKi8NCj4gPiAr
CQlmb3IgKGkgPSAwOyBpIDwgbnVtX3J4OyBpKyspIHsNCj4gPiArCQkJaWYgKGJ1ZnNbaV0tPm5i
X3NlZ3MgIT0gMSkNCj4gPiArCQkJCXJ0ZV9wYW5pYygianVtYm8gZnJhbWVzIGFyZSBub3Qgc3Vw
cG9ydGVkDQo+IGluIGluZmluaXRlIHJ4DQo+ID4gK21vZGVcbiIpOw0KPiANCj4gVGhpcyBuZWVk
IHRvIGJlIHJlcGxhY2VkIHdpdGggcmV0dXJuaW5nIGVycm9yLCBhbmQgcGxlYXNlIHJlbWVtYmVy
IHRvDQo+IGNsZWFudXAgaW4gdGhhdCBjYXNlLg0KPiANCg0KRml4ZWQgaW4gdGhlIG5leHQgdmVy
c2lvbi4NCg0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJcnRlX3JpbmdfZW5xdWV1ZV9idWxrKHBj
YXBfcS0+cGt0cywgKHZvaWQgKiBjb25zdCAqKWJ1ZnMsDQo+ID4gKwkJCQludW1fcngsIE5VTEwp
Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiAgCXJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPC4uLj4N
Cj4gDQo+ID4gQEAgLTExMzIsOSArMTI4NSwxOCBAQCBldGhfZnJvbV9wY2FwcyhzdHJ1Y3QgcnRl
X3ZkZXZfZGV2aWNlICp2ZGV2LA0KPiA+ICAJCX0NCj4gPiAgCX0NCj4gPg0KPiA+IC0JZXRoX2Rl
di0+cnhfcGt0X2J1cnN0ID0gZXRoX3BjYXBfcng7DQo+ID4gKwkvKiBhc3NpZ24gcnggb3BzICov
DQo+ID4gKwlpZiAoaW5maW5pdGVfcngpIHsNCj4gPiArCQlldGhfZGV2LT5yeF9wa3RfYnVyc3Qg
PSBldGhfcGNhcF9yeF9pbmZpbml0ZTsNCj4gPiArCQlpbnRlcm5hbHMtPmluZmluaXRlX3J4ID0g
aW5maW5pdGVfcng7DQo+IA0KPiBTaW5jZSAiaW5maW5pdGVfcngiIGNhbiBiZSAwIG9yIDEsIGlz
bid0IGl0IGJldHRlciB0byBzZXQgImludGVybmFscy0+aW5maW5pdGVfcngiDQo+IG91dCBvZiB0
aGlzIGNoZWNrLCBhbHRob3VnaCBmdW5jdGlvbmFsbHkgaXQgd2lsbCBiZSBzYW1lIChzaW5jZSBp
bnRlcm5hbHMgaXMgYWxsDQo+IHplcm8gYnkgZGVmYXVsdCksIGxvZ2ljYWxseSBiZXR0ZXIgSSB0
aGluaw0KPiANCg0KQWdyZWVkLCBJJ3ZlIGRvbmUgdGhpcyBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0K
DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCWV0aF9kZXYtPnJ4X3BrdF9idXJzdCA9IGV0aF9wY2Fw
X3J4Ow0KPiA+ICsJfQ0KPiA+DQo+ID4gLQlpZiAodXNpbmdfZHVtcGVycykNCj4gPiArCS8qIGFz
c2lnbiB0eCBvcHMgKi8NCj4gPiArCWlmIChpbmZpbml0ZV9yeCkNCj4gPiArCQlldGhfZGV2LT50
eF9wa3RfYnVyc3QgPSBldGhfdHhfZHJvcDsNCj4gDQo+IFNob3VsZG4ndCBzZXQgJ3R4X3BrdF9i
dXJzdCcgd2l0aCAnaW5maW5pdGVfcngnIGNoZWNrLCBJIGd1ZXNzIGludGVudGlvbiB3YXMNCj4g
J3R4X2Ryb3AnIGNoZWNrLg0KPiANCg0KQ29ycmVjdCwgdGhpcyBzaG91bGQgY2hlY2sgdHhfZHJv
cCEgRml4ZWQgaW4gdGhlIG5leHQgdmVyc2lvbi4NCg0KPiA+ICsJZWxzZSBpZiAodXNpbmdfZHVt
cGVycykNCj4gPiAgCQlldGhfZGV2LT50eF9wa3RfYnVyc3QgPSBldGhfcGNhcF90eF9kdW1wZXI7
DQo+ID4gIAllbHNlDQo+ID4gIAkJZXRoX2Rldi0+dHhfcGt0X2J1cnN0ID0gZXRoX3BjYXBfdHg7
DQo+IA0KPiA8Li4uPg0KPiANCj4gPiBAQCAtMTIxNyw2ICsxMzgwLDE3IEBAIHBtZF9wY2FwX3By
b2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKmRldikNCj4gPiAgCXBjYXBzLm51bV9vZl9xdWV1
ZSA9IDA7DQo+ID4NCj4gPiAgCWlmIChpc19yeF9wY2FwKSB7DQo+ID4gKwkJLyoNCj4gPiArCQkg
KiBXZSBjaGVjayB3aGV0aGVyIHdlIHdhbnQgdG8gaW5maW5pdGVseSByeCB0aGUgcGNhcCBmaWxl
DQo+ID4gKwkJICovDQo+ID4gKwkJaWYgKHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhfUENB
UF9JTkZJTklURV9SWF9BUkcpDQo+ID09IDEpIHsNCj4gDQo+IFdoYXQgZG8geW91IHRoaW5rIHBy
aW50aW5nIGEgd2FybmluZyBpZiB1c2VyIHByb3ZpZGVkIHRoZSB2YWx1ZSBtb3JlIHRoYW4NCj4g
b25jZT8NCj4gDQoNClNvdW5kcyBsaWtlIGEgZ29vZCBpZGVhLCBJJ3ZlIGFkZGVkIHRoaXMgaW4g
dGhlIG5leHQgdmVyc2lvbi4NCg0KPiA+ICsJCQlyZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3Zs
aXN0LA0KPiA+ICsJCQkJCUVUSF9QQ0FQX0lORklOSVRFX1JYX0FSRywNCj4gPiArCQkJCQkmZ2V0
X2luZmluaXRlX3J4X2FyZywgJmluZmluaXRlX3J4KTsNCj4gPiArCQkJaWYgKHJldCA8IDApDQo+
ID4gKwkJCQlnb3RvIGZyZWVfa3ZsaXN0Ow0KPiA+ICsJCX0NCj4gPiArDQo+ID4gIAkJcmV0ID0g
cnRlX2t2YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX1BDQVBfUlhfUENBUF9BUkcsDQo+ID4gIAkJ
CQkmb3Blbl9yeF9wY2FwLCAmcGNhcHMpOw0KPiA+ICAJfSBlbHNlIHsNCj4gPiBAQCAtMTIyOCwx
OCArMTQwMiwzMCBAQCBwbWRfcGNhcF9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlDQo+ICpk
ZXYpDQo+ID4gIAkJZ290byBmcmVlX2t2bGlzdDsNCj4gPg0KPiA+ICAJLyoNCj4gPiAtCSAqIFdl
IGNoZWNrIHdoZXRoZXIgd2Ugd2FudCB0byBvcGVuIGEgVFggc3RyZWFtIHRvIGEgcmVhbCBOSUMg
b3IgYQ0KPiA+IC0JICogcGNhcCBmaWxlDQo+ID4gKwkgKiBXZSBjaGVjayB3aGV0aGVyIHdlIHdh
bnQgdG8gb3BlbiBhIFRYIHN0cmVhbSB0byBhIHJlYWwgTklDLA0KPiA+ICsJICogYSBwY2FwIGZp
bGUsIG9yIGRyb3AgcGFja2V0cyBvbiB0eA0KPiA+ICAJICovDQo+ID4gIAlpc190eF9wY2FwID0g
cnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9QQ0FQX1RYX1BDQVBfQVJHKSA/IDENCj4gOiAw
Ow0KPiA+ICAJZHVtcGVycy5udW1fb2ZfcXVldWUgPSAwOw0KPiA+DQo+ID4gLQlpZiAoaXNfdHhf
cGNhcCkNCj4gPiArCXR4X2Ryb3AgPSBydGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwgRVRIX1BDQVBf
VFhfRFJPUF9BUkcpID8gMSA6DQo+IDA7DQo+IA0KPiBDYW4gZHJvcCB0aGlzIGxpbmUsIGJlbG93
IGFscmVhZHkgZ2V0dGluZyB0aGUgJ3R4X2Ryb3AnIHZhbHVlLCBvdmVyd3JpdGluZyB0aGlzDQo+
IG9uZS4NCj4gDQo+ID4gKwlpZiAocnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9QQ0FQX1RY
X0RST1BfQVJHKSA9PSAxKSB7DQo+ID4gKwkJcmV0ID0gcnRlX2t2YXJnc19wcm9jZXNzKGt2bGlz
dCwgRVRIX1BDQVBfVFhfRFJPUF9BUkcsDQo+ID4gKwkJCQkmZ2V0X3R4X2Ryb3BfYXJnLCAmdHhf
ZHJvcCk7DQo+ID4gKwkJaWYgKHJldCA8IDApDQo+ID4gKwkJCWdvdG8gZnJlZV9rdmxpc3Q7DQo+
ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKHR4X2Ryb3ApIHsNCj4gPiArCQkvKiBhZGQgZHVtbXkg
cXVldWUgd2hpY2ggY291bnRzIGRyb3BwZWQgcGFja2V0cyAqLw0KPiA+ICsJCXJldCA9IGFkZF9x
dWV1ZSgmZHVtcGVycywgImR1bW15IiwgInR4X2Ryb3AiLCBOVUxMLA0KPiBOVUxMKTsNCj4gDQo+
IFRoaXMgd2lsbCBicmVhayB0aGUgbXVsdGlwbGUgcXVldWUgdXNlIGNhc2UuIEluc3RlYWQgb2Yg
YWRkaW5nIGEgc2luZ2xlIHF1ZXVlLA0KPiBuZWVkIHRvIGZpbmQgYSB3YXkgdG8gYWRkIG11bHRp
cGxlIHF1ZXVlcyBhcyB1c2VyIHdhbnQgYW5kIGFsbCB3aWxsIGp1c3QgaWdub3JlDQo+IHRoZSBw
YWNrdGV0cy4NCj4gDQoNCkkndmUgZml4ZWQgdGhpcyBpbiB0aGUgbGF0ZXN0IHZlcnNpb24gc28g
b25lIGRyb3AgcXVldWUgaXMgYWRkZWQgcGVyIHJ4cSBvbiB0aGUgZGV2aWNlLg0KDQo+ID4gKwl9
IGVsc2UgaWYgKGlzX3R4X3BjYXApIHsNCj4gPiAgCQlyZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Mo
a3ZsaXN0LCBFVEhfUENBUF9UWF9QQ0FQX0FSRywNCj4gPiAgCQkJCSZvcGVuX3R4X3BjYXAsICZk
dW1wZXJzKTsNCj4gPiAtCWVsc2UNCj4gPiArCX0gZWxzZSB7DQo+ID4gIAkJcmV0ID0gcnRlX2t2
YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX1BDQVBfVFhfSUZBQ0VfQVJHLA0KPiA+ICAJCQkJJm9w
ZW5fdHhfaWZhY2UsICZkdW1wZXJzKTsNCj4gPiArCX0NCj4gPg0KPiA+ICAJaWYgKHJldCA8IDAp
DQo+ID4gIAkJZ290byBmcmVlX2t2bGlzdDsNCj4gDQo+IDwuLi4+DQoNCg==