From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <harish.patil@qlogic.com>
Received: from mx0b-0016ce01.pphosted.com (mx0b-0016ce01.pphosted.com
 [67.231.156.153]) by dpdk.org (Postfix) with ESMTP id 4E99C694A
 for <dev@dpdk.org>; Tue, 23 Feb 2016 03:28:28 +0100 (CET)
Received: from pps.filterd (m0085408.ppops.net [127.0.0.1])
 by mx0b-0016ce01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id
 u1N2OJWh029027; Mon, 22 Feb 2016 18:28:27 -0800
Received: from avcashub1.qlogic.com ([198.186.0.116])
 by mx0b-0016ce01.pphosted.com with ESMTP id 216r0tbbje-1
 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT);
 Mon, 22 Feb 2016 18:28:27 -0800
Received: from AVMB1.qlogic.org ([fe80::b816:e739:5ab3:5221]) by
 avcashub2.qlogic.org ([::1]) with mapi id 14.03.0235.001; Mon, 22 Feb 2016
 18:28:26 -0800
From: Harish Patil <harish.patil@qlogic.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Thread-Topic: [dpdk-dev] [PATCH 5/6] qede: add driver
Thread-Index: AQHRa/UXHWyOhxUcpUq8weIDWEn+TJ82O/GAgAKv4IA=
Date: Tue, 23 Feb 2016 02:28:25 +0000
Message-ID: <D2F0D889.157D8E%harish.patil@qlogic.com>
References: <y> <1455982831-21682-1-git-send-email-harish.patil@qlogic.com>
 <1455982831-21682-6-git-send-email-harish.patil@qlogic.com>
 <20160220172623.5101c7e4@xeon-e3>
In-Reply-To: <20160220172623.5101c7e4@xeon-e3>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.3.9.131030
x-originating-ip: [10.29.102.62]
Content-Type: text/plain; charset="utf-8"
Content-ID: <45C05C97A88DBF4B8E93BCEEDF83A678@qlogic.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=nai engine=5800 definitions=8083
 signatures=670693
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 malwarescore=0
 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.0.1-1601100000 definitions=main-1602230028
Cc: "dev@dpdk.org" <dev@dpdk.org>, Sony Chacko <sony.chacko@qlogic.com>
Subject: Re: [dpdk-dev] [PATCH 5/6] qede: add driver
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <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: Tue, 23 Feb 2016 02:28:28 -0000

Pg0KPk9uIFNhdCwgMjAgRmViIDIwMTYgMDc6NDA6MzAgLTA4MDANCj5IYXJpc2ggUGF0aWwgPGhh
cmlzaC5wYXRpbEBxbG9naWMuY29tPiB3cm90ZToNCj4NCj4+IFNpZ25lZC1vZmYtYnk6IEhhcmlz
aCBQYXRpbCA8aGFyaXNoLnBhdGlsQHFsb2dpYy5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBSYXNl
c2ggTW9keSA8cmFzZXNoLm1vZHlAcWxvZ2ljLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IFNvbnkg
Q2hhY2tvIDxzb255LmNoYWNrb0BxbG9naWMuY29tPg0KPj4gLS0tDQo+PiAgZHJpdmVycy9uZXQv
cWVkZS9MSUNFTlNFLnFlZGVfcG1kICAgICAgICAgfCAgIDI4ICsNCj4+ICBkcml2ZXJzL25ldC9x
ZWRlL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgOTUgKysNCj4+ICBkcml2ZXJzL25ldC9x
ZWRlL3FlZGVfZXRoX2lmLmMgICAgICAgICAgICB8ICA0NjEgKysrKysrKysrKw0KPj4gIGRyaXZl
cnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaCAgICAgICAgICAgIHwgIDE4MCArKysrDQo+PiAgZHJp
dmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jICAgICAgICAgICAgfCAgODE1ICsrKysrKysrKysr
KysrKysrDQo+PiAgZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5oICAgICAgICAgICAgfCAg
MTM4ICsrKw0KPj4gIGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oICAgICAgICAgICAgICAgIHwg
IDE2NyArKysrDQo+PiAgZHJpdmVycy9uZXQvcWVkZS9xZWRlX2xvZ3MuaCAgICAgICAgICAgICAg
fCAgIDkzICsrDQo+PiAgZHJpdmVycy9uZXQvcWVkZS9xZWRlX21haW4uYyAgICAgICAgICAgICAg
fCAgNTg3ICsrKysrKysrKysrKysNCj4+ICBkcml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5jICAg
ICAgICAgICAgICB8IDEzNDYNCj4+KysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICBk
cml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5oICAgICAgICAgICAgICB8ICAxODMgKysrKw0KPj4g
IGRyaXZlcnMvbmV0L3FlZGUvcnRlX3BtZF9xZWRlX3ZlcnNpb24ubWFwIHwgICAgNCArDQo+PiAg
MTIgZmlsZXMgY2hhbmdlZCwgNDA5NyBpbnNlcnRpb25zKCspDQo+PiAgY3JlYXRlIG1vZGUgMTAw
NjQ0IGRyaXZlcnMvbmV0L3FlZGUvTElDRU5TRS5xZWRlX3BtZA0KPj4gIGNyZWF0ZSBtb2RlIDEw
MDY0NCBkcml2ZXJzL25ldC9xZWRlL01ha2VmaWxlDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy
aXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2
ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lmLmgNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy
cy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv
bmV0L3FlZGUvcWVkZV9ldGhkZXYuaA0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25l
dC9xZWRlL3FlZGVfaWYuaA0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9xZWRl
L3FlZGVfbG9ncy5oDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3FlZGUvcWVk
ZV9tYWluLmMNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4
dHguYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5o
DQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3FlZGUvcnRlX3BtZF9xZWRlX3Zl
cnNpb24ubWFwDQo+DQo+RFBESyBkb2Vzbid0IGZvbGxvdyBhbGwgdGhlIGtlcm5lbCBzdHlsZSBy
dWxlcywgYnV0IGxvdHMgb2YgdGhlbS4NCj5UaGUgYmlnZ2VzdCBjYXRjaCB3YXMgdGhlIDsgaW4g
dGhlIExPRyBtYWNyb3MuDQo+TWlub3Igc3R1ZmYgYWJvdXQgc3BhY2luZyBhcm91bmQgY2FzdHMg
ZXRjLg0KPg0KPg0KPlJ1bm5pbmcgY2hlY2twYXRjaCB3aXRoIC0taWdub3JlDQo+UFJFRkVSX0tF
Uk5FTF9UWVBFUyxMSU5FX1NQQUNJTkcsUEFSRU5USEVTSVNfQUxJR05NRU5ULEJJVF9NQUNSTyxO
RVRXT1JLSU4NCj5HX0JMT0NLX0NPTU1FTlRfU1RZTEUsU1BMSVRfU1RSSU5HLENPTVBBUklTT05f
VE9fTlVMTCxDT05DQVRFTkFURURfU1RSSU5HDQo+DQo+UHJvZHVjZXM6DQo+DQo+DQo+Q0hFQ0s6
U1BBQ0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnKicgKGN0eDpWeE8pDQo+IzQx
MDogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5jOjE3NToNCj4rICAgICAgICAg
ICAgdWludDE2X3QgY3FlX3BibF9zaXplLCB2b2lkIE9TQUxfSU9NRU0qKnBwX3Byb2QpDQo+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPg0KPkNI
RUNLOlNQQUNJTkc6IHNwYWNlcyBwcmVmZXJyZWQgYXJvdW5kIHRoYXQgJyonIChjdHg6VnhPKQ0K
PiM0Njc6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuYzoyMzI6DQo+KyAgICAg
ICAgICAgIHVpbnQxNl90IHBibF9zaXplLCB2b2lkIE9TQUxfSU9NRU0qKnBwX2Rvb3JiZWxsKQ0K
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPg0KPkNI
RUNLOkJSQUNFUzogQmxhbmsgbGluZXMgYXJlbid0IG5lY2Vzc2FyeSBhZnRlciBhbiBvcGVuIGJy
YWNlICd7Jw0KPiM1MTk6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuYzoyODQ6
DQo+K3sNCj4rDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUg
ZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jODIzOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl
L3FlZGVfZXRoX2lmLmg6MTIxOg0KPisgICAgICBpbnQgKCpmaWxsX2Rldl9pbmZvKSAoc3RydWN0
IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNl
IGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiM4MjY6IEZJTEU6IGRyaXZlcnMv
bmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxMjQ6DQo+KyAgICAgIGludCAoKnZwb3J0X3N0YXJ0KSAo
c3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5
IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiM4Mjk6IEZJTEU6IGRy
aXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxMjc6DQo+KyAgICAgIGludCAoKnZwb3J0X3N0
b3ApIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LCB1aW50OF90IHZwb3J0X2lkKTsNCj4NCj5XQVJO
SU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFy
Z3VtZW50cw0KPiM4MzE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxMjk6
DQo+KyAgICAgIGludCAoKnZwb3J0X3VwZGF0ZSkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+
DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9p
bnRlciBhcmd1bWVudHMNCj4jODM0OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lm
Lmg6MTMyOg0KPisgICAgICBpbnQgKCpxX3J4X3N0YXJ0KSAoc3RydWN0IGVjb3JlX2RldiAqY2Rl
diwNCj4NCj5DSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVycmVkIGFyb3VuZCB0aGF0ICcqJyAo
Y3R4OlZ4TykNCj4jODQwOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lmLmg6MTM4
Og0KPisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgY3FlX3BibF9zaXplLCB2b2lk
IE9TQUxfSU9NRU0qKnBwX3Byb2QpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQo+DQo+V0FSTklORzpTUEFDSU5HOiBV
bm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jODQy
OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lmLmg6MTQwOg0KPisgICAgICBpbnQg
KCpxX3J4X3N0b3ApIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lO
RzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+
Izg0NTogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE0MzoNCj4rICAgICAg
aW50ICgqcV90eF9zdGFydCkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+Q0hFQ0s6U1BB
Q0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnKicgKGN0eDpWeE8pDQo+Izg1MDog
RklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE0ODoNCj4rICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQxNl90IHBibF9zaXplLCB2b2lkIE9TQUxfSU9NRU0qKnBwX2Rvb3Ji
ZWxsKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBeDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZv
cmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jODUyOiBGSUxFOiBkcml2ZXJzL25ldC9x
ZWRlL3FlZGVfZXRoX2lmLmg6MTUwOg0KPisgICAgICBpbnQgKCpxX3R4X3N0b3ApIChzdHJ1Y3Qg
ZWNvcmVfZGV2ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2Ug
YmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+Izg1NTogRklMRTogZHJpdmVycy9u
ZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE1MzoNCj4rICAgICAgaW50ICgqZXRoX2NxZV9jb21wbGV0
aW9uKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVj
ZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiM4NTk6IEZJ
TEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxNTc6DQo+KyAgICAgIGludCAoKmZh
c3RwYXRoX3N0b3ApIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2KTsNCj4NCj5XQVJOSU5HOlNQQUNJ
Tkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0K
PiM4NjE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxNTk6DQo+KyAgICAg
IHZvaWQgKCpnZXRfdnBvcnRfc3RhdHMpIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LA0KPg0KPldB
Uk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIg
YXJndW1lbnRzDQo+Izg2NDogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE2
MjoNCj4rICAgICAgaW50ICgqZmlsdGVyX2NvbmZpZykgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYs
DQo+DQo+Q0hFQ0s6QVZPSURfRVhURVJOUzogZXh0ZXJuIHByb3RvdHlwZXMgc2hvdWxkIGJlIGF2
b2lkZWQgaW4gLmggZmlsZXMNCj4jODcyOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRo
X2lmLmg6MTcwOg0KPitleHRlcm4gaW50IHFlZF9maWxsX2V0aF9kZXZfaW5mbyhzdHJ1Y3QgZWNv
cmVfZGV2ICplZGV2LA0KPg0KPkNIRUNLOlNQQUNJTkc6IE5vIHNwYWNlIGlzIG5lY2Vzc2FyeSBh
ZnRlciBhIGNhc3QNCj4jOTA1OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6
MTc6DQo+KyAgICAgIGVjb3JlX2ludF9zcF9kcGMoKG9zYWxfaW50X3B0cl90KSAocF9od2ZuKSk7
DQo+DQo+Q0hFQ0s6VU5ORUNFU1NBUllfUEFSRU5USEVTRVM6IFVubmVjZXNzYXJ5IHBhcmVudGhl
c2VzIGFyb3VuZA0KPmV0aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlDQo+IzkxNjogRklMRTog
ZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjI4Og0KPisgICAgICBpZiAocnRlX2ludHJf
ZW5hYmxlKCYoZXRoX2Rldi0+cGNpX2Rldi0+aW50cl9oYW5kbGUpKSkNCj4NCj5DSEVDSzpCUkFD
RVM6IGJyYWNlcyB7fSBzaG91bGQgYmUgdXNlZCBvbiBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu
dA0KPiMxMDcxOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MTgzOg0KPisg
ICAgICBpZiAocnRlX2V0aF9wcm9taXNjdW91c19nZXQoZXRoX2Rldi0+ZGF0YS0+cG9ydF9pZCkg
PT0gMSkNCj5bLi4uXQ0KPisgICAgICBlbHNlIGlmICghcWRldi0+bm9uX2NvbmZpZ3VyZWRfdmxh
bnMpIHsNCj5bLi4uXQ0KPg0KPldBUk5JTkc6TUlTU0lOR19TUEFDRTogYnJlYWsgcXVvdGVkIHN0
cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXINCj4jMTA5NzogRklMRTogZHJpdmVycy9uZXQvcWVk
ZS9xZWRlX2V0aGRldi5jOjIwOToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgInVuZXF1YWwg
bnVtYmVyIG9mIHJ4L3R4IHF1ZXVlcyINCj4rICAgICAgICAgICAgICAgICAgICAgICAgImlzIG5v
dCBzdXBwb3J0ZWQgUlg9JXUgVFg9JXVcbiIsDQo+DQo+Q0hFQ0s6U1BBQ0lORzogTm8gc3BhY2Ug
aXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMxMTUxOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl
L3FlZGVfZXRoZGV2LmM6MjYzOg0KPisgICAgICBkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAo
dWludDMyX3QpIChFVEhFUl9NSU5fTVRVICsNCj4NCj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBp
cyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzExNTM6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUv
cWVkZV9ldGhkZXYuYzoyNjU6DQo+KyAgICAgIGRldl9pbmZvLT5tYXhfcnhfcGt0bGVuID0gKHVp
bnQzMl90KSBFVEhfVFhfTUFYX05PTl9MU09fUEtUX0xFTjsNCj4NCj5DSEVDSzpTUEFDSU5HOiBO
byBzcGFjZSBpcyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzExNTY6IEZJTEU6IGRyaXZlcnMv
bmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoyNjg6DQo+KyAgICAgIGRldl9pbmZvLT5tYXhfcnhfcXVl
dWVzID0gKHVpbnQxNl90KSBRRURFX01BWF9SU1NfQ05UKHFkZXYpOw0KPg0KPkNIRUNLOlNQQUNJ
Tkc6IE5vIHNwYWNlIGlzIG5lY2Vzc2FyeSBhZnRlciBhIGNhc3QNCj4jMTE1NzogRklMRTogZHJp
dmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjI2OToNCj4rICAgICAgZGV2X2luZm8tPm1heF90
eF9xdWV1ZXMgPSAodWludDE2X3QpIFFFREVfTUFYX1RTU19DTlQocWRldik7DQo+DQo+Q0hFQ0s6
U1BBQ0lORzogTm8gc3BhY2UgaXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMxMTU4OiBGSUxF
OiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MjcwOg0KPisgICAgICBkZXZfaW5mby0+
bWF4X21hY19hZGRycyA9ICh1aW50MzJfdCkgKFJFU0NfTlVNKCZlZGV2LT5od2Zuc1swXSwNCj4N
Cj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBpcyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzEx
NjA6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoyNzI6DQo+KyAgICAgIGRl
dl9pbmZvLT5tYXhfdmZzID0gKHVpbnQxNl90KSBOVU1fT0ZfVkZTKCZxZGV2LT5lZGV2KTsNCj4N
Cj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBpcyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzEx
NjM6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoyNzU6DQo+KyAgICAgIGRl
dl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gKHVpbnQ2NF90KSBRRURFX1JTU19PRkZM
T0FEX0FMTDsNCj4NCj5DSEVDSzpVTk5FQ0VTU0FSWV9QQVJFTlRIRVNFUzogVW5uZWNlc3Nhcnkg
cGFyZW50aGVzZXMgYXJvdW5kDQo+ZXRoX2Rldi0+cGNpX2Rldi0+aW50cl9oYW5kbGUNCj4jMTI5
OTogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjQxMToNCj4rICAgICAgcnRl
X2ludHJfZGlzYWJsZSgmKGV0aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlKSk7DQo+DQo+Q0hF
Q0s6VU5ORUNFU1NBUllfUEFSRU5USEVTRVM6IFVubmVjZXNzYXJ5IHBhcmVudGhlc2VzIGFyb3Vu
ZA0KPmV0aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlDQo+IzEzMDE6IEZJTEU6IGRyaXZlcnMv
bmV0L3FlZGUvcWVkZV9ldGhkZXYuYzo0MTM6DQo+KyAgICAgIHJ0ZV9pbnRyX2NhbGxiYWNrX3Vu
cmVnaXN0ZXIoJihldGhfZGV2LT5wY2lfZGV2LT5pbnRyX2hhbmRsZSksDQo+DQo+Q0hFQ0s6VU5O
RUNFU1NBUllfUEFSRU5USEVTRVM6IFVubmVjZXNzYXJ5IHBhcmVudGhlc2VzIGFyb3VuZA0KPmV0
aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlDQo+IzE1MTE6IEZJTEU6IGRyaXZlcnMvbmV0L3Fl
ZGUvcWVkZV9ldGhkZXYuYzo2MjM6DQo+KyAgICAgIHJ0ZV9pbnRyX2NhbGxiYWNrX3JlZ2lzdGVy
KCYoZXRoX2Rldi0+cGNpX2Rldi0+aW50cl9oYW5kbGUpLA0KPg0KPkNIRUNLOlVOTkVDRVNTQVJZ
X1BBUkVOVEhFU0VTOiBVbm5lY2Vzc2FyeSBwYXJlbnRoZXNlcyBhcm91bmQNCj5ldGhfZGV2LT5w
Y2lfZGV2LT5pbnRyX2hhbmRsZQ0KPiMxNTE0OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVf
ZXRoZGV2LmM6NjI2Og0KPisgICAgICBpZiAocnRlX2ludHJfZW5hYmxlKCYoZXRoX2Rldi0+cGNp
X2Rldi0+aW50cl9oYW5kbGUpKSkgew0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkg
c3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzE5NDg6IEZJTEU6IGRy
aXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oOjk1Og0KPisgICAgICB2b2lkICgqbGlua191cGRhdGUp
ICh2b2lkICpkZXYsIHN0cnVjdCBxZWRfbGlua19vdXRwdXQgKmxpbmspOw0KPg0KPldBUk5JTkc6
U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1l
bnRzDQo+IzE5NTk6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oOjEwNjoNCj4rICAg
ICAgaW50ICgqcmVnaXN0ZXJzKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldik7DQo+DQo+V0FSTklO
RzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1
bWVudHMNCj4jMTk2MzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTEwOg0KPisg
ICAgICBpbnQgKCpwcm9iZSkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpT
UEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVu
dHMNCj4jMTk2NzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTE0Og0KPisgICAg
ICB2b2lkICgqc2V0X2lkKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQ
QUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50
cw0KPiMxOTY5OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfaWYuaDoxMTY6DQo+KyAgICAg
IGVudW0gX2Vjb3JlX3N0YXR1c190ICgqY2hhaW5fYWxsb2MpIChzdHJ1Y3QgZWNvcmVfZGV2ICpl
ZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0
aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzE5Nzg6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVk
ZV9pZi5oOjEyNToNCj4rICAgICAgdm9pZCAoKmNoYWluX2ZyZWUpIChzdHJ1Y3QgZWNvcmVfZGV2
ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1
bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzE5ODE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUv
cWVkZV9pZi5oOjEyODoNCj4rICAgICAgdm9pZCAoKmdldF9saW5rKSAoc3RydWN0IGVjb3JlX2Rl
diAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBm
dW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiMxOTgzOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl
L3FlZGVfaWYuaDoxMzA6DQo+KyAgICAgIGludCAoKnNldF9saW5rKSAoc3RydWN0IGVjb3JlX2Rl
diAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBm
dW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiMxOTg2OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl
L3FlZGVfaWYuaDoxMzM6DQo+KyAgICAgIGludCAoKmRyYWluKSAoc3RydWN0IGVjb3JlX2RldiAq
ZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVu
Y3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk4ODogRklMRTogZHJpdmVycy9uZXQvcWVkZS9x
ZWRlX2lmLmg6MTM1Og0KPisgICAgICB2b2lkICgqcmVtb3ZlKSAoc3RydWN0IGVjb3JlX2RldiAq
ZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVu
Y3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5MDogRklMRTogZHJpdmVycy9uZXQvcWVkZS9x
ZWRlX2lmLmg6MTM3Og0KPisgICAgICBpbnQgKCpzbG93cGF0aF9zdG9wKSAoc3RydWN0IGVjb3Jl
X2RldiAqZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZv
cmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5MjogRklMRTogZHJpdmVycy9uZXQv
cWVkZS9xZWRlX2lmLmg6MTM5Og0KPisgICAgICB2b2lkICgqdXBkYXRlX3BmX3BhcmFtcykgKHN0
cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBz
cGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5NTogRklMRTogZHJp
dmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTQyOg0KPisgICAgICBpbnQgKCpzbG93cGF0aF9zdGFy
dCkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vz
c2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5ODogRklM
RTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTQ1Og0KPisgICAgICBpbnQgKCpzZXRfZnBf
aW50KSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwgdWludDE2X3QgY250KTsNCj4NCj5XQVJOSU5H
OlNQQUNJTkc6IG1pc3Npbmcgc3BhY2UgYWZ0ZXIgcmV0dXJuIHR5cGUNCj4jMjAwMDogRklMRTog
ZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTQ3Og0KPisgICAgICAgdWludDMyX3QoKnNiX2lu
aXQpIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNl
c3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzIwMDA6IEZJ
TEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oOjE0NzoNCj4rICAgICAgIHVpbnQzMl90KCpz
Yl9pbml0KSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IG1p
c3Npbmcgc3BhY2UgYWZ0ZXIgcmV0dXJuIHR5cGUNCj4jMjAwNjogRklMRTogZHJpdmVycy9uZXQv
cWVkZS9xZWRlX2lmLmg6MTUzOg0KPisgICAgICAgYm9vbCgqY2FuX2xpbmtfY2hhbmdlKSAoc3Ry
dWN0IGVjb3JlX2RldiAqZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBz
cGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMjAwNjogRklMRTogZHJp
dmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTUzOg0KPisgICAgICAgYm9vbCgqY2FuX2xpbmtfY2hh
bmdlKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5l
Y2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMjAwNzog
RklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTU0Og0KPisgICAgICB2b2lkICgqdXBk
YXRlX21zZ2x2bCkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpUUkFJTElO
R19TRU1JQ09MT046IG1hY3JvcyBzaG91bGQgbm90IHVzZSBhIHRyYWlsaW5nIHNlbWljb2xvbg0K
PiMyMDM4OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfbG9ncy5oOjEyOg0KPisjZGVmaW5l
IERQX0VSUihwX2RldiwgZm10LCAuLi4pIFwNCj4rICAgICAgcnRlX2xvZyhSVEVfTE9HX0VSUiwg
UlRFX0xPR1RZUEVfUE1ELCBcDQo+KyAgICAgICAgICAgICAgIlslczolZCglcyldIiBmbXQsIFwN
Cj4rICAgICAgICAgICAgICAgIF9fZnVuY19fLCBfX0xJTkVfXywgXA0KPisgICAgICAgICAgICAg
IChwX2RldiktPm5hbWUgPyAocF9kZXYpLT5uYW1lIDogIiIsIFwNCj4rICAgICAgICAgICAgICAj
I19fVkFfQVJHU19fKTsNCj4NCj5XQVJOSU5HOlRSQUlMSU5HX1NFTUlDT0xPTjogbWFjcm9zIHNo
b3VsZCBub3QgdXNlIGEgdHJhaWxpbmcgc2VtaWNvbG9uDQo+IzIxMDI6IEZJTEU6IGRyaXZlcnMv
bmV0L3FlZGUvcWVkZV9sb2dzLmg6NzY6DQo+KyNkZWZpbmUgUE1EX1JYX0xPRyhsZXZlbCwgcSwg
Zm10LCBhcmdzLi4uKSBcDQo+KyAgICAgIFJURV9MT0cobGV2ZWwsIFBNRCwgIiVzKCk6IHBvcnQ9
JXUgcXVldWU9JXUgIiBmbXQgIlxuIiwgXA0KPisgICAgICAgICAgICAgIF9fZnVuY19fLCBxLT5w
b3J0X2lkLCBxLT5xdWV1ZV9pZCwgIyMgYXJncyk7DQo+DQo+V0FSTklORzpTVVNQRUNUX0NPREVf
SU5ERU5UOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbA0KPnN0YXRlbWVudHMg
KDE2LCAyMCkNCj4jMjQ2OTogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX21haW4uYzozNDQ6
DQo+KyAgICAgICAgICAgICAgZm9yX2VhY2hfaHdmbihlZGV2LCBpKQ0KPisgICAgICAgICAgICAg
ICAgICBpbmZvLT5udW1fcXVldWVzICs9DQo+DQo+Q0hFQ0s6U1BBQ0lORzogTm8gc3BhY2UgaXMg
bmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMyNDg0OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3Fl
ZGVfbWFpbi5jOjM1OToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVp
bnQ4X3QgKikgJmluZm8tPnBvcnRfbWFjKTsNCj4NCj5XQVJOSU5HOlNVU1BFQ1RfQ09ERV9JTkRF
TlQ6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsDQo+c3RhdGVtZW50cyAoOCwg
MTIpDQo+IzI1ODI6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9tYWluLmM6NDU3Og0KPisg
ICAgICBmb3JfZWFjaF9od2ZuKGNkZXYsIGkpDQo+KyAgICAgICAgICBxZWRfaW5mb3JtX3ZmX2xp
bmtfc3RhdGUoJmNkZXYtPmh3Zm5zW2ldKTsNCj4NCj5DSEVDSzpCUkFDRVM6IEJsYW5rIGxpbmVz
IGFyZW4ndCBuZWNlc3NhcnkgYmVmb3JlIGEgY2xvc2UgYnJhY2UgJ30nDQo+IzI1ODY6IEZJTEU6
IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9tYWluLmM6NDYxOg0KPisNCj4rfQ0KPg0KPldBUk5JTkc6
TUlTU0lOR19TUEFDRTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXIN
Cj4jMjc1MzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzozNToNCj4rICAgICAg
ICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgcnggYnVmZmVyIg0KPisgICAg
ICAgICAgICAgICAgICAgICAgICAgInN3X3J4X3Byb2QgJXUgc3dfcnhfY29ucyAldSBtcCBlbnRy
aWVzICV1IGZyZWUgJXUiLA0KPg0KPldBUk5JTkc6Q09OU1RBTlRfQ09NUEFSSVNPTjogQ29tcGFy
aXNvbnMgc2hvdWxkIHBsYWNlIHRoZSBjb25zdGFudCBvbiB0aGUNCj5yaWdodCBzaWRlIG9mIHRo
ZSB0ZXN0DQo+IzI3NzY6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmM6NTg6DQo+
KyAgICAgICAgICAgICAgICAgICAgICBpZiAoTlVMTCAhPSByeHEtPnN3X3J4X3JpbmdbaV0ubWJ1
Zikgew0KPg0KPkNIRUNLOlNQQUNJTkc6IE5vIHNwYWNlIGlzIG5lY2Vzc2FyeSBhZnRlciBhIGNh
c3QNCj4jMjgxNzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzo5OToNCj4rICAg
ICAgdWludDE2X3QgcGt0X2xlbiA9ICh1aW50MTZfdCkgZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1v
ZGUubWF4X3J4X3BrdF9sZW47DQo+DQo+V0FSTklORzpNSVNTSU5HX1NQQUNFOiBicmVhayBxdW90
ZWQgc3RyaW5ncyBhdCBhIHNwYWNlIGNoYXJhY3Rlcg0KPiMzMTk5OiBGSUxFOiBkcml2ZXJzL25l
dC9xZWRlL3FlZGVfcnh0eC5jOjQ4MToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgYWxsIG9mIg0KPisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJSU1MgcXVldWVzXG4iDQo+DQo+Q0hFQ0s6U1BBQ0lORzogTm8g
c3BhY2UgaXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMzMjI4OiBGSUxFOiBkcml2ZXJzL25l
dC9xZWRlL3FlZGVfcnh0eC5jOjUxMDoNCj4rICAgICAgICAgICAgICAgICAgICAgICh1aW50MzJf
dCAqKSAmcnhfcHJvZHMpOw0KPg0KPldBUk5JTkc6VU5ORUNFU1NBUllfRUxTRTogZWxzZSBpcyBu
b3QgZ2VuZXJhbGx5IHVzZWZ1bCBhZnRlciBhIGJyZWFrIG9yDQo+cmV0dXJuDQo+IzMyNzU6IEZJ
TEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmM6NTU3Og0KPisgICAgICAgICAgICAgIHJl
dHVybiAtRUlOVkFMOw0KPisgICAgICB9IGVsc2Ugew0KPg0KPldBUk5JTkc6TUlTU0lOR19TUEFD
RTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXINCj4jMzMyNTogRklM
RTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzo2MDc6DQo+KyAgICAgICAgICAgICAgICAg
ICAgICJDYW5ub3QgdXBkYXRlIFYtVlBPUlQgYXMgYWN0aXZlIGFzIg0KPisgICAgICAgICAgICAg
ICAgICAgICAidGhlcmUgYXJlIG5vIFJ4IHF1ZXVlc1xuIik7DQo+DQo+Q0hFQ0s6U1BBQ0lORzog
Tm8gc3BhY2UgaXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMzNTg3OiBGSUxFOiBkcml2ZXJz
L25ldC9xZWRlL3FlZGVfcnh0eC5jOjg2OToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHN0cnVjdCBldGhfc2xvd19wYXRoX3J4X2NxZSAqKSBjcWUpOw0KPg0KPkNIRUNLOlJFRFVO
REFOVF9DT0RFOiBpZiB0aGlzIGNvZGUgaXMgcmVkdW5kYW50IGNvbnNpZGVyIHJlbW92aW5nIGl0
DQo+IzM2MDE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmM6ODgzOg0KPisjaWYg
MA0KPg0KPldBUk5JTkc6TUlTU0lOR19TUEFDRTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBz
cGFjZSBjaGFyYWN0ZXINCj4jMzYxNzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHgu
Yzo4OTk6DQo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDUUUgaW4gQ09OUyA9
ICV1IGhhcyBlcnJvciwgZmxhZ3MgPSAweCV4Ig0KPisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZHJvcHBpbmcgaW5jb21pbmcgcGFja2V0XG4iLA0KPg0KPldBUk5JTkc6TUlTU0lO
R19TUEFDRTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXINCj4jMzY4
ODogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzo5NzA6DQo+KyAgICAgICAgICAg
ICAgICAgICAgICAgICAibnVsbCBtYnVmIG5iX3R4X2Rlc2MgJXUgbmJfdHhfYXZhaWwgJXUiDQo+
KyAgICAgICAgICAgICAgICAgICAgICAgICAic3dfdHhfY29ucyAldSBzd190eF9wcm9kICV1XG4i
LA0KPg0KPldBUk5JTkc6VU5ORUNFU1NBUllfRUxTRTogZWxzZSBpcyBub3QgZ2VuZXJhbGx5IHVz
ZWZ1bCBhZnRlciBhIGJyZWFrIG9yDQo+cmV0dXJuDQo+IzM4OTM6IEZJTEU6IGRyaXZlcnMvbmV0
L3FlZGUvcWVkZV9yeHR4LmM6MTE3NToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHFlZGVfZHJhaW5fdHhxKHFkZXYsIHR4cSwgZmFsc2UpOw0KPisgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsNCj4NCj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBpcyBuZWNlc3Nh
cnkgYWZ0ZXIgYSBjYXN0DQo+IzQxMTM6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4
Lmg6NDM6DQo+KyAgICAgICgodWludDY0X3QpICgobWIpLT5idWZfcGh5c2FkZHIgKyAobWIpLT5k
YXRhX29mZikpDQo+DQo+DQoNCkFsbCBvZiB0aGUgY2hlY2twYXRjaCB3YXJuaW5ncyBoYWQgYmVl
biBmaXhlZCAgKGV4Y2VwdCBvbmUgd2hpY2ggY2Fubm90IGJlDQpmaXhlZCkgdXNpbmcgdGhlIGNo
ZWNrcGF0Y2ggc2NyaXB0IGF2YWlsYWJsZSB1bmRlciBEUERLIHNjcmlwdHMvDQpkaXJlY3Rvcnku
IFRoZSBsaW51eCBjaGVja3BhdGNoIHZlcnNpb24gaXMgMC4zMi4NCg0KW3Jvb3RAZHV0NDAxOSBk
cGRrXSMgLi9zY3JpcHRzL2NoZWNrcGF0Y2hlcy5zaCBwYXRjaGVzLXNlbmQvKi5wYXRjaA0KDQoj
IyMgcGF0Y2hlcy1zZW5kLzAwMDQtcWVkZS1hZGQtZHJpdmVyLWNvbW1vbi1tb2R1bGUucGF0Y2gN
Cg0KV0FSTklORzpDQU1FTENBU0U6IEF2b2lkIENhbWVsQ2FzZTogPGluZmxhdGVFbmQ+DQojMjUx
OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL2Vjb3JlL2JjbV9vc2FsLmM6MTIwOg0KKyAgICAgICBp
bmZsYXRlRW5kKHBfaHdmbi0+c3RyZWFtKTsNCg0KdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdz
LCA1NDQ2NyBsaW5lcyBjaGVja2VkDQoNCldvdWxkbuKAmXQgdGhhdCBzdWZmaWNlPw0KDQoNCg0K
DQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQoNClRoaXMgbWVzc2Fn
ZSBhbmQgYW55IGF0dGFjaGVkIGRvY3VtZW50cyBjb250YWluIGluZm9ybWF0aW9uIGZyb20gdGhl
IHNlbmRpbmcgY29tcGFueSBvciBpdHMgcGFyZW50IGNvbXBhbnkocyksIHN1YnNpZGlhcmllcywg
ZGl2aXNpb25zIG9yIGJyYW5jaCBvZmZpY2VzIHRoYXQgbWF5IGJlIGNvbmZpZGVudGlhbC4gSWYg
eW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IG1heSBub3QgcmVhZCwgY29w
eSwgZGlzdHJpYnV0ZSwgb3IgdXNlIHRoaXMgaW5mb3JtYXRpb24uIElmIHlvdSBoYXZlIHJlY2Vp
dmVkIHRoaXMgdHJhbnNtaXNzaW9uIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIg
aW1tZWRpYXRlbHkgYnkgcmVwbHkgZS1tYWlsIGFuZCB0aGVuIGRlbGV0ZSB0aGlzIG1lc3NhZ2Uu
DQo=