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 inbox.dpdk.org (Postfix) with ESMTP id 9E56DA2EEB
	for <public@inbox.dpdk.org>; Tue, 10 Sep 2019 12:32:17 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 848D71BEFA;
	Tue, 10 Sep 2019 12:32:16 +0200 (CEST)
Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com
 [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id EE5771BED1
 for <dev@dpdk.org>; Tue, 10 Sep 2019 12:32:13 +0200 (CEST)
Received: from pps.filterd (m0045849.ppops.net [127.0.0.1])
 by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id
 x8AATo1b000558; Tue, 10 Sep 2019 03:32:03 -0700
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-0016f401.pphosted.com with ESMTP id 2uv9wpv34k-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 10 Sep 2019 03:32:03 -0700
Received: from m0045849.ppops.net (m0045849.ppops.net [127.0.0.1])
 by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id x8AAUjFo007203;
 Tue, 10 Sep 2019 03:32:02 -0700
Received: from sc-exch02.marvell.com ([199.233.58.182])
 by mx0a-0016f401.pphosted.com with ESMTP id 2uv9wpv34g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);
 Tue, 10 Sep 2019 03:32:02 -0700
Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH02.marvell.com
 (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 10 Sep
 2019 03:32:01 -0700
Received: from NAM04-BN3-obe.outbound.protection.outlook.com (104.47.46.56) by
 SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server
 (TLS) id
 15.0.1367.3 via Frontend Transport; Tue, 10 Sep 2019 03:32:01 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=d/nEFscPUf/MMndHAk/EJt7nafl7VHCgS2f1YWTv+KwZwzFwdwtBpZXXPgGKN6BVjAEqqQOMInau51ee/rr3ch9tOIBI8aMjycmXtdWA1YTCpHsMr1BlUKXtm7vUw0zeAb9BM+TTBDNAbm9ok9yzMAJWPuR/u3XMd4a2r+s5Xqq4szU0nSbDGYtrJUv/NPPRMe9XOU4ZW8C36T7ehuFH+T+mHWPlSJNcBxw1JwQ4+GZxr87EZQK+SmYYCXc4au+3w2tFJYd+KSZs3tSf599Mn7WXI45KnZDj5GFd4c98z5as7aWBij1HkJjyuiruFPzV4KH4uT2H2PfUPn97HdfOlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f4M9djFQ0GwXELhKad1RRZ4okg6dUi4xYWmsOHNb9CU=;
 b=LonbDGqmTB9pz+YKVyzivaBUTppuVD2L5IYJp5/AHyp+3oFPHj9xj4gi2tLf19yXKJp7jtBKvE26Rb255vbhsnVrqyglGh6PNC3Q/JFHaAtjRf7T1bDAHytcEPMgbYi8hRGujv0+QFM7gwTwIrFQntlmBywXKb6GPleQalBWQE9AAidF4Q4KUEz/epi3loUINqrhK4P8sSDx2cGg8UjOnHOS3zYclyALezLKxnr+boE3/Flf9MYD+zi8R/w6PZLgTzm64e4ByVC+dKaSn1SgTJ7ePPSwvXcHj3SsekYqu+j8Ymvc5nO2heqMzUvhQLR42SNp7iAfZYH9L/1InZQ01g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com;
 dkim=pass header.d=marvell.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f4M9djFQ0GwXELhKad1RRZ4okg6dUi4xYWmsOHNb9CU=;
 b=qmFJmz2V/2hzEO0fQ0J2UdUfl19XE4KHgC/kEPVXr+vOoXlOcr08bbgjjqFgblC5jGhjJkDCsN9kVRrdsIDb+lp6bok516nXLsmICUBHj/gny4o78YcoErmolIM1Xot6JFEK5ShAVkcDxgSroSItcfD9AHe3MzKFuJuaRHeE0gM=
Received: from BYAPR18MB2424.namprd18.prod.outlook.com (20.179.91.149) by
 BYAPR18MB3030.namprd18.prod.outlook.com (20.179.94.208) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2241.15; Tue, 10 Sep 2019 10:31:58 +0000
Received: from BYAPR18MB2424.namprd18.prod.outlook.com
 ([fe80::1d8b:430f:c74a:33]) by BYAPR18MB2424.namprd18.prod.outlook.com
 ([fe80::1d8b:430f:c74a:33%6]) with mapi id 15.20.2241.018; Tue, 10 Sep 2019
 10:31:58 +0000
From: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
To: Shahaf Shuler <shahafs@mellanox.com>, Thomas Monjalon
 <thomas@monjalon.net>, "dev@dpdk.org" <dev@dpdk.org>
CC: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>, Hemant Agrawal
 <hemant.agrawal@nxp.com>, Opher Reviv <opher@mellanox.com>, Alex Rosenbaum
 <alexr@mellanox.com>, Dovrat Zifroni <dovrat@marvell.com>, Prasun Kapoor
 <pkapoor@marvell.com>, Nipun Gupta <nipun.gupta@nxp.com>, "Wang, Xiang W"
 <xiang.w.wang@intel.com>, "Richardson, Bruce" <bruce.richardson@intel.com>,
 "yang.a.hong@intel.com" <yang.a.hong@intel.com>, "harry.chang@intel.com"
 <harry.chang@intel.com>, "gu.jian1@zte.com.cn" <gu.jian1@zte.com.cn>,
 "shanjiangh@chinatelecom.cn" <shanjiangh@chinatelecom.cn>,
 "zhangy.yun@chinatelecom.cn" <zhangy.yun@chinatelecom.cn>,
 "lixingfu@huachentel.com" <lixingfu@huachentel.com>, "wushuai@inspur.com"
 <wushuai@inspur.com>, "yuyingxia@yxlink.com" <yuyingxia@yxlink.com>,
 "fanchenggang@sunyainfo.com" <fanchenggang@sunyainfo.com>,
 "davidfgao@tencent.com" <davidfgao@tencent.com>, "liuzhong1@chinaunicom.cn"
 <liuzhong1@chinaunicom.cn>,
 "zhaoyong11@huawei.com" <zhaoyong11@huawei.com>,
 "oc@yunify.com" <oc@yunify.com>, "jim@netgate.com" <jim@netgate.com>,
 "hongjun.ni@intel.com" <hongjun.ni@intel.com>, "j.bromhead@titan-ic.com"
 <j.bromhead@titan-ic.com>,
 "deri@ntop.org" <deri@ntop.org>, "fc@napatech.com" <fc@napatech.com>,
 "arthur.su@lionic.com" <arthur.su@lionic.com>
Thread-Topic: [dpdk-dev] [RFC PATCH v1] regexdev: introduce regexdev subsystem
Thread-Index: AQHVU11rzFGXGDb9TEWOWcBbu1ajBKcFHPIAgB/Bp0A=
Date: Tue, 10 Sep 2019 10:31:57 +0000
Message-ID: <BYAPR18MB242438422884F56EB5CAB3B0C8B60@BYAPR18MB2424.namprd18.prod.outlook.com>
References: <20190627155036.56940-1-jerinj@marvell.com>
 <8285913.8xKIzI91KM@xps> <1922242.dABWq9CbNQ@xps>
 <AM0PR0502MB37956BA74063243F2C56EEDFC3AA0@AM0PR0502MB3795.eurprd05.prod.outlook.com>
In-Reply-To: <AM0PR0502MB37956BA74063243F2C56EEDFC3AA0@AM0PR0502MB3795.eurprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [14.140.231.66]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d8dfd0ab-c18a-4b0c-508e-08d735da1bc7
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020);
 SRVR:BYAPR18MB3030; 
x-ms-traffictypediagnostic: BYAPR18MB3030:
x-ms-exchange-purlcount: 2
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <BYAPR18MB30306BD726D96696F5942230C8B60@BYAPR18MB3030.namprd18.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:962;
x-forefront-prvs: 01565FED4C
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(4636009)(39850400004)(396003)(346002)(376002)(366004)(136003)(189003)(199004)(81156014)(52536014)(76116006)(110136005)(2501003)(54906003)(7696005)(3846002)(99286004)(6116002)(66446008)(64756008)(14454004)(66556008)(66476007)(33656002)(7736002)(8676002)(305945005)(478600001)(74316002)(7416002)(966005)(66946007)(2906002)(45080400002)(14444005)(86362001)(71200400001)(71190400001)(256004)(81166006)(66066001)(6436002)(26005)(4326008)(102836004)(186003)(6306002)(476003)(11346002)(55236004)(229853002)(316002)(6506007)(55016002)(9686003)(30864003)(8936002)(53936002)(5660300002)(446003)(486006)(53946003)(25786009)(6246003)(76176011)(91820200001)(579004)(559001)(569006);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB3030;
 H:BYAPR18MB2424.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: marvell.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: g/ivTEGaptETXUa77ltQatRaJg5U1HPFrJcQVF5QdErP4CdYrpvJEPpfWP7M4Buvh/sxCGnEY23I+bENERGHM7fM9LOzClF+ZDmh41AImQKhURzVtdE66P3b4rZWIR/XvP/UikmqaBtUmTXbofVBvipe6Lq7soTa7ctE/k60ESGBQ6E3v7mPXTtyFSLSMXV4XU9qOUxNt2Q2Wx9gPsX+j+WrPoQxhuqQfwxSb9D/iUbFkRzCrl6cF168/+wY7XTaDs4QEqlf2jWYfl+0wsxAT1YU8ZZB3iilG612SP6+L7vM13ZlfX0FFzGclz8Qc/wphCqeNwN41G3mcOjCdQRm6d2/MONO2++6q7iSl34L7Q4OVFn8lbOOyGfcnGtY44WsFDEardGTt5u8eK1huEnYo4vexCIWKAYzXBVCflUKGyo=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: d8dfd0ab-c18a-4b0c-508e-08d735da1bc7
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Sep 2019 10:31:57.7906 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mHbMd/dH33B17YcaBe8xB0C+yjkUTlKMrgCHVUsxV7MARJZXUTKqQtL9JwfHxysFa3wjECX6pIPqN8mDDDmAQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB3030
X-OriginatorOrg: marvell.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.70,1.0.8
 definitions=2019-09-10_07:2019-09-10,2019-09-10 signatures=0
Subject: Re: [dpdk-dev] [RFC PATCH v1] regexdev: introduce regexdev subsystem
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>

PiBIaSBKZXJpbiwNCg0KDQoNCg0KDQoNCg0KDQoNCg0KPiANCj4gVGh1cnNkYXksIEF1Z3VzdCAx
NSwgMjAxOSAyOjM0IFBNLCBUaG9tYXMgTW9uamFsb246DQo+ID4gU3ViamVjdDogUmU6IFtkcGRr
LWRldl0gW1JGQyBQQVRDSCB2MV0gcmVnZXhkZXY6IGludHJvZHVjZSByZWdleGRldg0KPiA+IHN1
YnN5c3RlbQ0KPiA+DQo+ID4gK0NjIG1vcmUNCj4gPg0KPiA+IC0tLS0tLS0tLS0tLQ0KPiA+DQo+
ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluakBtYXJ2ZWxsLmNvbT4NCj4gPg0KPiA+IEV2ZW4g
dGhvdWdoIHRoZXJlIGFyZSBzb21lIHZlbmRvcnMgd2hpY2ggb2ZmZXIgUmVnZXggSFcgb2ZmbG9h
ZCwgZHVlIHRvDQo+ID4gbGFjayBvZiBzdGFuZGFyZCBBUEksIEl0IGlzIGRpZmZjdWx0IGZvciBE
UERLIGNvbnN1bWVyIHRvIHVzZSB0aGVtDQo+ID4gaW4gYSBwb3J0YWJsZSB3YXkuDQo+ID4NCj4g
PiBUaGlzIF9SRkNfIGF0dGVtcHRzIHRvIHN0YW5kYXJkaXplIHRoZSBSZWdFeC9EUEkgb2ZmbG9h
ZCBBUElzIGZvciBEUERLLg0KPiA+DQo+ID4gVGhlIERveHlnZW4gZ2VuZXJhdGVkIFJGQyBBUEkg
ZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUgaGVyZToNCj4gPiBodHRwczovL2V1cjAzLnNhZmVsaW5r
cy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZkcmVhDQo+ID4gbXkt
bm9ldGhlci0NCj4gPiAyMjc3N2UubmV0bGlmeS5jb20lMkZydGVfX3JlZ2V4ZGV2XzhoLmh0bWwm
YW1wO2RhdGE9MDIlN0MwMSU3Q3NoYQ0KPiA+DQo+IGhhZnMlNDBtZWxsYW5veC5jb20lN0NkZjkz
NDE2Y2Y0ZTg0OThhOTgyYzA4ZDcyMTc0ODkzNyU3Q2E2NTI5NzFjDQo+ID4NCj4gN2QyZTRkOWJh
NmE0ZDE0OTI1NmY0NjFiJTdDMCU3QzAlN0M2MzcwMTQ2NTY3Mzk5OTMxMzEmYW1wO3NkYXRhDQo+
ID4gPTZaQU9yTG1qM3NmN0xyUFJsekU3SXlxa0s4YjRjdkZJUXFLNnpTd0Y0YXclM0QmYW1wO3Jl
c2VydmVkPTANCj4gPg0KPiA+IFRoaXMgUkZDIGNyYWZ0ZWQgYmFzZWQgb24gU1cgUmVnZXggQVBJ
IGZyYW1ld29ya3Mgc3VjaCBhcyBsaWJwY3JlIGFuZA0KPiA+IGh5cGVyc2NhbiBhbmQgYSBmZXcg
b2YgdGhlIFJlZ0V4IEhXIElQcyB3aGljaCBJIGFtIGF3YXJlIG9mLg0KPiA+DQo+ID4gUmVnRXgg
cGF0dGVybiBtYXRjaGluZyBhcHBsaWNhdGlvbnM6DQo+ID4g4oCiIE5leHQgR2VuZXJhdGlvbiBG
aXJld2FsbHMgKE5HRlcpDQo+ID4g4oCiIERlZXAgUGFja2V0IGFuZCBGbG93IEluc3BlY3Rpb24g
KERQSSkNCj4gPiDigKIgSW50cnVzaW9uIFByZXZlbnRpb24gU3lzdGVtcyAoSVBTKQ0KPiA+IOKA
oiBERG9TIE1pdGlnYXRpb24NCj4gPiDigKIgTmV0d29yayBNb25pdG9yaW5nDQo+ID4g4oCiIERh
dGEgTG9zcyBQcmV2ZW50aW9uIChETFApDQo+ID4g4oCiIFNtYXJ0IE5JQ3MNCj4gPiDigKIgR3Jh
bW1hciBiYXNlZCBjb250ZW50IHByb2Nlc3NpbmcNCj4gPiDigKIgVVJMLCBzcGFtIGFuZCBhZHdh
cmUgZmlsdGVyaW5nDQo+ID4g4oCiIEFkdmFuY2VkIGF1ZGl0aW5nIGFuZCBwb2xpY2luZyBvZiB1
c2VyL2FwcGxpY2F0aW9uIHNlY3VyaXR5IHBvbGljaWVzDQo+ID4g4oCiIEZpbmFuY2lhbCBkYXRh
IG1pbmluZyAtIHBhcnNpbmcgb2Ygc3RyZWFtZWQgZmluYW5jaWFsIGZlZWRzDQo+IA0KPiBJIHRo
aW5rIHR3byBtb3JlIGltcG9ydGFudCB1c2UgY2FzZSB0byBhZGQgKGF0IGxlYXN0IG9uIHRoZSBk
b2Mgb2YgdGhpcw0KPiBzdWJzeXN0ZW0pIGFyZToNCj4gKiBhcHBsaWNhdGlvbiByZWNvZ25pdGlv
bg0KPiAqIG1lbW9yeSBpbnRyb3NwZWN0aW9uDQo+IA0KPiANCj4gPg0KPiA+IFJlcXVlc3QgdG8g
cmV2aWV3IGZyb20gSFcgYW5kIFNXIFJlZ0V4IHZlbmRvcnMgYW5kIFJlZ0V4IGFwcGxpY2F0aW9u
DQo+ID4gdXNlcnMNCj4gPiB0byBoYXZlIHBvcnRhYmxlIERQREsgQVBJIGZvciBSZWdFeC4NCj4g
Pg0KPiA+IFRoZSBBUEkgc2NoZW1hdGljcyBhcmUgYmFzZWQgY3J5cHRvZGV2LCBldmVudGRldiBh
bmQgZXRoZGV2IGV4aXN0aW5nDQo+ID4gZGV2aWNlIEFQSS4NCj4gPg0KPiA+IFNpZ25lZC1vZmYt
Ynk6IEplcmluIEphY29iIDxqZXJpbmpAbWFydmVsbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTog
UGF2YW4gTmlraGlsZXNoIDxwYmhhZ2F2YXR1bGFAbWFydmVsbC5jb20+DQo+ID4gLS0tDQo+ID4N
Cj4gPiBSVEUgUmVnRXggRGV2aWNlIEFQSQ0KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4N
Cj4gPiBEZWZpbmVzIFJURSBSZWdFeCBEZXZpY2UgQVBJcyBmb3IgUmVnRXggb3BlcmF0aW9ucyBh
bmQgaXRzIHByb3Zpc2lvbmluZy4NCj4gPg0KPiA+IFRoZSBSZWdFeCBEZXZpY2UgQVBJIGlzIGNv
bXBvc2VkIG9mIHR3byBwYXJ0czoNCj4gPg0KPiA+IC0gVGhlIGFwcGxpY2F0aW9uLW9yaWVudGVk
IFJlZ0V4IEFQSSB0aGF0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBzZXR1cA0KPiA+IGEgUmVnRXgg
ZGV2aWNlIChjb25maWd1cmUgaXQsIHNldHVwIGl0cyBxdWV1ZSBwYWlycyBhbmQgc3RhcnQgaXQp
LA0KPiA+IHVwZGF0ZSB0aGUgcnVsZSBkYXRhYmFzZSBhbmQgc28gb24uDQo+ID4NCj4gPiAtIFRo
ZSBkcml2ZXItb3JpZW50ZWQgUmVnRXggQVBJIHRoYXQgZXhwb3J0cyBhIGZ1bmN0aW9uIGFsbG93
aW5nDQo+ID4gYSBSZWdFeCBwb2xsIE1vZGUgRHJpdmVyIChQTUQpIHRvIHNpbXVsdGFuZW91c2x5
IHJlZ2lzdGVyIGl0c2VsZiBhcw0KPiA+IGEgUmVnRXggZGV2aWNlIGRyaXZlci4NCj4gPg0KPiA+
IFJlZ0V4IGRldmljZSBjb21wb25lbnRzIGFuZCBkZWZpbml0aW9uczoNCj4gPg0KPiA+ICAgICAr
LS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gICAgIHwgICAgICAgICAgICAgICAgIHwNCj4gPiAgICAg
fCAgICAgICAgICAgICAgICAgby0tLS0tLS0tLSsgICAgcnRlX3JlZ2V4X1tlbnxkZV1xdWV1ZV9i
dXJzdCgpDQo+ID4gICAgIHwgICBQQ1JFIGJhc2VkICAgIG8tLS0tLS0rICB8ICAgICAgICAgICAg
ICAgfA0KPiA+ICAgICB8ICBSZWdFeCBwYXR0ZXJuICB8ICAgICAgfCAgfCAgKy0tLS0tLS0tKyAg
IHwNCj4gPiAgICAgfCBtYXRjaGluZyBlbmdpbmUgby0tLS0tLSstLSstLW8gICAgICAgIHwgICB8
ICAgICstLS0tLS0rDQo+ID4gICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICB8ICB8ICB8IHF1
ZXVlICB8PD09bz09PT58Q29yZSAwfA0KPiA+ICAgICB8ICAgICAgICAgICAgICAgICBvLS0tLSsg
fCAgfCAgfCBwYWlyIDAgfCAgICAgICAgfCAgICAgIHwNCj4gPiAgICAgfCAgICAgICAgICAgICAg
ICAgfCAgICB8IHwgIHwgICstLS0tLS0tLSsgICAgICAgICstLS0tLS0rDQo+ID4gICAgICstLS0t
LS0tLS0tLS0tLS0tLSsgICAgfCB8ICB8DQo+ID4gICAgICAgICAgICBeICAgICAgICAgICAgICAg
fCB8ICB8ICArLS0tLS0tLS0rDQo+ID4gICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCB8ICB8
ICB8ICAgICAgICB8ICAgICAgICArLS0tLS0tKw0KPiA+ICAgICAgICAgICAgfCAgICAgICAgICAg
ICAgIHwgKy0tKy0tbyBxdWV1ZSAgfDw9PT09PT0+fENvcmUgMXwNCj4gPiAgICAgICAgUnVsZXxE
YXRhYmFzZSAgICAgICB8ICAgIHwgIHwgcGFpciAxIHwgICAgICAgIHwgICAgICB8DQo+ID4gICAg
ICstLS0tLS0rLS0tLS0tLS0tLSsgICAgfCAgICB8ICArLS0tLS0tLS0rICAgICAgICArLS0tLS0t
Kw0KPiA+ICAgICB8ICAgICBHcm91cCAwICAgICB8ICAgIHwgICAgfA0KPiA+ICAgICB8ICstLS0t
LS0tLS0tLS0tKyB8ICAgIHwgICAgfCAgKy0tLS0tLS0tKyAgICAgICAgKy0tLS0tLSsNCj4gPiAg
ICAgfCB8IFJ1bGVzIDAuLm4gIHwgfCAgICB8ICAgIHwgIHwgICAgICAgIHwgICAgICAgIHxDb3Jl
IDJ8DQo+ID4gICAgIHwgKy0tLS0tLS0tLS0tLS0rIHwgICAgfCAgICArLS1vIHF1ZXVlICB8PD09
PT09PT58ICAgICAgfA0KPiA+ICAgICB8ICAgICBHcm91cCAxICAgICB8ICAgIHwgICAgICAgfCBw
YWlyIDIgfCAgICAgICAgKy0tLS0tLSsNCj4gPiAgICAgfCArLS0tLS0tLS0tLS0tLSsgfCAgICB8
ICAgICAgICstLS0tLS0tLSsNCj4gPiAgICAgfCB8IFJ1bGVzIDAuLm4gIHwgfCAgICB8DQo+ID4g
ICAgIHwgKy0tLS0tLS0tLS0tLS0rIHwgICAgfCAgICAgICArLS0tLS0tLS0rDQo+ID4gICAgIHwg
ICAgIEdyb3VwIDIgICAgIHwgICAgfCAgICAgICB8ICAgICAgICB8ICAgICAgICArLS0tLS0tKw0K
PiA+ICAgICB8ICstLS0tLS0tLS0tLS0tKyB8ICAgIHwgICAgICAgfCBxdWV1ZSAgfDw9PT09PT0+
fENvcmUgbnwNCj4gPiAgICAgfCB8IFJ1bGVzIDAuLm4gIHwgfCAgICArLS0tLS0tLW8gcGFpciBu
IHwgICAgICAgIHwgICAgICB8DQo+ID4gICAgIHwgKy0tLS0tLS0tLS0tLS0rIHwgICAgICAgICAg
ICArLS0tLS0tLS0rICAgICAgICArLS0tLS0tKw0KPiA+ICAgICB8ICAgICBHcm91cCBuICAgICB8
DQo+ID4gICAgIHwgKy0tLS0tLS0tLS0tLS0rIHw8LS0tLS0tLXJ0ZV9yZWdleF9ydWxlX2RiX3Vw
ZGF0ZSgpDQo+ID4gICAgIHwgfCBSdWxlcyAwLi5uICB8IHw8LS0tLS0tLXJ0ZV9yZWdleF9ydWxl
X2RiX2ltcG9ydCgpDQo+ID4gICAgIHwgKy0tLS0tLS0tLS0tLS0rIHwtLS0tLS0tPnJ0ZV9yZWdl
eF9ydWxlX2RiX2V4cG9ydCgpDQo+ID4gICAgICstLS0tLS0tLS0tLS0tLS0tLSsNCj4gPg0KPiA+
IFJlZ0V4OiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyBhIGNvbmNpc2UgYW5kIGZsZXhpYmxlIG1l
YW5zIGZvciBtYXRjaGluZw0KPiA+IHN0cmluZ3Mgb2YgdGV4dCwgc3VjaCBhcyBwYXJ0aWN1bGFy
IGNoYXJhY3RlcnMsIHdvcmRzLCBvciBwYXR0ZXJucyBvZg0KPiA+IGNoYXJhY3RlcnMuIEEgY29t
bW9uIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBpcyDigJxSZWdFeOKAnS4NCj4gPg0KPiA+IFJlZ0V4
IGRldmljZTogQSBoYXJkd2FyZSBvciBzb2Z0d2FyZS1iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBS
ZWdFeA0KPiA+IGRldmljZSBBUEkgZm9yIFBDUkUgYmFzZWQgcGF0dGVybiBtYXRjaGluZyBzeW50
YXggYW5kIHNlbWFudGljcy4NCj4gPg0KPiA+IFBDUkUgUmVnRXggc3ludGF4IGFuZCBzZW1hbnRp
Y3Mgc3BlY2lmaWNhdGlvbjoNCj4gPiBodHRwczovL2V1cjAzLnNhZmVsaW5rcy5wcm90ZWN0aW9u
Lm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRnJlZ2V4DQo+ID4ga2l0LnNvdXJjZWZvcmdl
Lm5ldCUyRkRvY3VtZW50YXRpb24lMkZwY3JlJTJGcGNyZXBhdHRlcm4uaHRtbCZhbXA7ZA0KPiA+
DQo+IGF0YT0wMiU3QzAxJTdDc2hhaGFmcyU0MG1lbGxhbm94LmNvbSU3Q2RmOTM0MTZjZjRlODQ5
OGE5ODJjMDhkNzIxDQo+ID4NCj4gNzQ4OTM3JTdDYTY1Mjk3MWM3ZDJlNGQ5YmE2YTRkMTQ5MjU2
ZjQ2MWIlN0MwJTdDMCU3QzYzNzAxNDY1NjczDQo+ID4gOTk5MzEzMSZhbXA7c2RhdGE9QjBMU011
YmxkRHkzVWxGNTVaM3doaE5pUnE2ZXAxcHhCOFJydDVESXRmdyUzDQo+ID4gRCZhbXA7cmVzZXJ2
ZWQ9MA0KPiA+DQo+ID4gUmVnRXggcXVldWUgcGFpcjogRWFjaCBSZWdFeCBkZXZpY2Ugc2hvdWxk
IGhhdmUgb25lIG9yIG1vcmUgcXVldWUgcGFpciB0bw0KPiA+IHRyYW5zbWl0IGEgYnVyc3Qgb2Yg
cGF0dGVybiBtYXRjaGluZyByZXF1ZXN0IGFuZCByZWNlaXZlIGEgYnVyc3Qgb2YNCj4gPiByZWNl
aXZlIHRoZSBwYXR0ZXJuIG1hdGNoaW5nIHJlc3BvbnNlLiBUaGUgcGF0dGVybiBtYXRjaGluZw0K
PiA+IHJlcXVlc3QvcmVzcG9uc2UNCj4gPiBlbWJlZGRlZCBpbiAqcnRlX3JlZ2V4X29wcyogc3Ry
dWN0dXJlLg0KPiA+DQo+ID4gUnVsZTogQSBwYXR0ZXJuIG1hdGNoaW5nIHJ1bGUgZXhwcmVzc2Vk
IGluIFBDUkUgUmVnRXggc3ludGF4IGFsb25nIHdpdGgNCj4gPiBNYXRjaCBJRCBhbmQgR3JvdXAg
SUQgdG8gaWRlbnRpZnkgdGhlIHJ1bGUgdXBvbiB0aGUgbWF0Y2guDQo+ID4NCj4gPiBSdWxlIGRh
dGFiYXNlOiBUaGUgUmVnRXggZGV2aWNlIGFjY2VwdHMgcmVndWxhciBleHByZXNzaW9ucyBhbmQg
Y29udmVydHMNCj4gPiB0aGVtDQo+ID4gaW50byBhIGNvbXBpbGVkIHJ1bGUgZGF0YWJhc2UgdGhh
dCBjYW4gdGhlbiBiZSB1c2VkIHRvIHNjYW4gZGF0YS4NCj4gPiBDb21waWxhdGlvbiBhbGxvd3Mg
dGhlIGRldmljZSB0byBhbmFseXplIHRoZSBnaXZlbiBwYXR0ZXJuKHMpIGFuZA0KPiA+IHByZS1k
ZXRlcm1pbmUgaG93IHRvIHNjYW4gZm9yIHRoZXNlIHBhdHRlcm5zIGluIGFuIG9wdGltaXplZCBm
YXNoaW9uIHRoYXQNCj4gPiB3b3VsZCBiZSBmYXIgdG9vIGV4cGVuc2l2ZSB0byBjb21wdXRlIGF0
IHJ1bi10aW1lLiBBIHJ1bGUgZGF0YWJhc2UgY29udGFpbnMNCj4gPiBhIHNldCBvZiBydWxlcyB0
aGF0IGNvbXBpbGVkIGluIGRldmljZSBzcGVjaWZpYyBiaW5hcnkgZm9ybS4NCj4gPg0KPiA+IE1h
dGNoIElEIG9yIFJ1bGUgSUQ6IEEgdW5pcXVlIGlkZW50aWZpZXIgcHJvdmlkZWQgYXQgdGhlIHRp
bWUgb2YgcnVsZQ0KPiA+IGNyZWF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24gdG8gaWRlbnRpZnkg
dGhlIHJ1bGUgdXBvbiBtYXRjaC4NCj4gPg0KPiA+IEdyb3VwIElEOiBHcm91cCBvZiBydWxlcyBj
YW4gYmUgZ3JvdXBlZCB1bmRlciBvbmUgZ3JvdXAgSUQgdG8gZW5hYmxlDQo+ID4gcnVsZSBpc29s
YXRpb24gYW5kIGVmZmVjdGl2ZSBwYXR0ZXJuIG1hdGNoaW5nLiBBIHVuaXF1ZSBncm91cCBpZGVu
dGlmaWVyDQo+ID4gcHJvdmlkZWQgYXQgdGhlIHRpbWUgb2YgcnVsZSBjcmVhdGlvbiBmb3IgdGhl
IGFwcGxpY2F0aW9uIHRvIGlkZW50aWZ5IHRoZQ0KPiA+IHJ1bGUgdXBvbiBtYXRjaC4NCj4gPg0K
PiA+IFNjYW46IEEgcGF0dGVybiBtYXRjaGluZyByZXF1ZXN0IHRocm91Z2ggKmVucXVldWUqIEFQ
SS4NCj4gPg0KPiA+IEl0IG1heSBwb3NzaWJsZSB0aGF0IGEgZ2l2ZW4gUmVnRXggZGV2aWNlIG1h
eSBub3Qgc3VwcG9ydCBhbGwgdGhlIGZlYXR1cmVzDQo+ID4gb2YgUENSRS4gVGhlIGFwcGxpY2F0
aW9uIG1heSBwcm9iZSB1bnN1cHBvcnRlZCBmZWF0dXJlcyB0aHJvdWdoDQo+ID4gc3RydWN0IHJ0
ZV9yZWdleF9kZXZfaW5mbzo6cGNyZV91bnN1cF9mbGFncw0KPiA+DQo+ID4gQnkgZGVmYXVsdCwg
YWxsIHRoZSBmdW5jdGlvbnMgb2YgdGhlIFJlZ0V4IERldmljZSBBUEkgZXhwb3J0ZWQgYnkgYSBQ
TUQNCj4gPiBhcmUgbG9jay1mcmVlIGZ1bmN0aW9ucyB3aGljaCBhc3N1bWUgdG8gbm90IGJlIGlu
dm9rZWQgaW4gcGFyYWxsZWwgb24NCj4gPiBkaWZmZXJlbnQgbG9naWNhbCBjb3JlcyB0byB3b3Jr
IG9uIHRoZSBzYW1lIHRhcmdldCBvYmplY3QuIEZvciBpbnN0YW5jZSwNCj4gPiB0aGUgZGVxdWV1
ZSBmdW5jdGlvbiBvZiBhIFBNRCBjYW5ub3QgYmUgaW52b2tlZCBpbiBwYXJhbGxlbCBvbiB0d28g
bG9naWNhbA0KPiA+IGNvcmVzIHRvIG9wZXJhdGVzIG9uIHNhbWUgUmVnRXggcXVldWUgcGFpci4g
T2YgY291cnNlLCB0aGlzIGZ1bmN0aW9uDQo+ID4gY2FuIGJlIGludm9rZWQgaW4gcGFyYWxsZWwg
YnkgZGlmZmVyZW50IGxvZ2ljYWwgY29yZSBvbiBkaWZmZXJlbnQgcXVldWUgcGFpci4NCj4gPiBJ
dCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHVwcGVyIGxldmVsIGFwcGxpY2F0aW9uIHRv
IGVuZm9yY2UgdGhpcyBydWxlLg0KPiA+DQo+ID4gSW4gYWxsIGZ1bmN0aW9ucyBvZiB0aGUgUmVn
RXggQVBJLCB0aGUgUmVnRXggZGV2aWNlIGlzDQo+ID4gZGVzaWduYXRlZCBieSBhbiBpbnRlZ2Vy
ID49IDAgbmFtZWQgdGhlIGRldmljZSBpZGVudGlmaWVyICpkZXZfaWQqDQo+ID4NCj4gPiBBdCB0
aGUgUmVnRXggZHJpdmVyIGxldmVsLCBSZWdFeCBkZXZpY2VzIGFyZSByZXByZXNlbnRlZCBieSBh
IGdlbmVyaWMNCj4gPiBkYXRhIHN0cnVjdHVyZSBvZiB0eXBlICpydGVfcmVnZXhfZGV2Ki4NCj4g
Pg0KPiA+IFJlZ0V4IGRldmljZXMgYXJlIGR5bmFtaWNhbGx5IHJlZ2lzdGVyZWQgZHVyaW5nIHRo
ZSBQQ0kvU29DIGRldmljZSBwcm9iaW5nDQo+ID4gcGhhc2UgcGVyZm9ybWVkIGF0IEVBTCBpbml0
aWFsaXphdGlvbiB0aW1lLg0KPiA+IFdoZW4gYSBSZWdFeCBkZXZpY2UgaXMgYmVpbmcgcHJvYmVk
LCBhICpydGVfcmVnZXhfZGV2KiBzdHJ1Y3R1cmUgYW5kDQo+ID4gYSBuZXcgZGV2aWNlIGlkZW50
aWZpZXIgYXJlIGFsbG9jYXRlZCBmb3IgdGhhdCBkZXZpY2UuIFRoZW4sIHRoZQ0KPiA+IHJlZ2V4
X2Rldl9pbml0KCkgZnVuY3Rpb24gc3VwcGxpZWQgYnkgdGhlIFJlZ0V4IGRyaXZlciBtYXRjaGlu
ZyB0aGUgcHJvYmVkDQo+ID4gZGV2aWNlIGlzIGludm9rZWQgdG8gcHJvcGVybHkgaW5pdGlhbGl6
ZSB0aGUgZGV2aWNlLg0KPiA+DQo+ID4gVGhlIHJvbGUgb2YgdGhlIGRldmljZSBpbml0IGZ1bmN0
aW9uIGNvbnNpc3RzIG9mIHJlc2V0dGluZyB0aGUgaGFyZHdhcmUgb3INCj4gPiBzb2Z0d2FyZSBS
ZWdFeCBkcml2ZXIgaW1wbGVtZW50YXRpb25zLg0KPiA+DQo+ID4gSWYgdGhlIGRldmljZSBpbml0
IG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLCB0aGUgY29ycmVzcG9uZGVuY2UgYmV0d2Vlbg0KPiA+
IHRoZSBkZXZpY2UgaWRlbnRpZmllciBhc3NpZ25lZCB0byB0aGUgbmV3IGRldmljZSBhbmQgaXRz
IGFzc29jaWF0ZWQNCj4gPiAqcnRlX3JlZ2V4X2Rldiogc3RydWN0dXJlIGlzIGVmZmVjdGl2ZWx5
IHJlZ2lzdGVyZWQuDQo+ID4gT3RoZXJ3aXNlLCBib3RoIHRoZSAqcnRlX3JlZ2V4X2Rldiogc3Ry
dWN0dXJlIGFuZCB0aGUgZGV2aWNlIGlkZW50aWZpZXIgYXJlDQo+ID4gZnJlZWQuDQo+ID4NCj4g
PiBUaGUgZnVuY3Rpb25zIGV4cG9ydGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBSZWdFeCBBUEkgdG8g
c2V0dXAgYSBkZXZpY2UNCj4gPiBkZXNpZ25hdGVkIGJ5IGl0cyBkZXZpY2UgaWRlbnRpZmllciBt
dXN0IGJlIGludm9rZWQgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjoNCj4gPiAtIHJ0ZV9yZWdleF9k
ZXZfY29uZmlndXJlKCkNCj4gPiAtIHJ0ZV9yZWdleF9xdWV1ZV9wYWlyX3NldHVwKCkNCj4gPiAt
IHJ0ZV9yZWdleF9kZXZfc3RhcnQoKQ0KPiA+DQo+ID4gVGhlbiwgdGhlIGFwcGxpY2F0aW9uIGNh
biBpbnZva2UsIGluIGFueSBvcmRlciwgdGhlIGZ1bmN0aW9ucw0KPiA+IGV4cG9ydGVkIGJ5IHRo
ZSBSZWdFeCBBUEkgdG8gZW5xdWV1ZSBwYXR0ZXJuIG1hdGNoaW5nIGpvYiwgZGVxdWV1ZQ0KPiA+
IHBhdHRlcm4NCj4gPiBtYXRjaGluZyByZXNwb25zZSwgZ2V0IHRoZSBzdGF0cywgdXBkYXRlIHRo
ZSBydWxlIGRhdGFiYXNlLA0KPiA+IGdldC9zZXQgZGV2aWNlIGF0dHJpYnV0ZXMgYW5kIHNvIG9u
DQo+ID4NCj4gPiBJZiB0aGUgYXBwbGljYXRpb24gd2FudHMgdG8gY2hhbmdlIHRoZSBjb25maWd1
cmF0aW9uIChpLmUuIGNhbGwNCj4gPiBydGVfcmVnZXhfZGV2X2NvbmZpZ3VyZSgpIG9yIHJ0ZV9y
ZWdleF9xdWV1ZV9wYWlyX3NldHVwKCkpLCBpdCBtdXN0IGNhbGwNCj4gPiBydGVfcmVnZXhfZGV2
X3N0b3AoKSBmaXJzdCB0byBzdG9wIHRoZSBkZXZpY2UgYW5kIHRoZW4gZG8gdGhlDQo+ID4gcmVj
b25maWd1cmF0aW9uDQo+ID4gYmVmb3JlIGNhbGxpbmcgcnRlX3JlZ2V4X2Rldl9zdGFydCgpIGFn
YWluLiBUaGUgZW5xdWV1ZSBhbmQgZGVxdWV1ZQ0KPiA+IGZ1bmN0aW9ucyBzaG91bGQgbm90IGJl
IGludm9rZWQgd2hlbiB0aGUgZGV2aWNlIGlzIHN0b3BwZWQuDQo+ID4NCj4gPiBGaW5hbGx5LCBh
biBhcHBsaWNhdGlvbiBjYW4gY2xvc2UgYSBSZWdFeCBkZXZpY2UgYnkgaW52b2tpbmcgdGhlDQo+
ID4gcnRlX3JlZ2V4X2Rldl9jbG9zZSgpIGZ1bmN0aW9uLg0KPiA+DQo+ID4gRWFjaCBmdW5jdGlv
biBvZiB0aGUgYXBwbGljYXRpb24gUmVnRXggQVBJIGludm9rZXMgYSBzcGVjaWZpYyBmdW5jdGlv
bg0KPiA+IG9mIHRoZSBQTUQgdGhhdCBjb250cm9scyB0aGUgdGFyZ2V0IGRldmljZSBkZXNpZ25h
dGVkIGJ5IGl0cyBkZXZpY2UNCj4gPiBpZGVudGlmaWVyLg0KPiA+DQo+ID4gRm9yIHRoaXMgcHVy
cG9zZSwgYWxsIGRldmljZS1zcGVjaWZpYyBmdW5jdGlvbnMgb2YgYSBSZWdFeCBkcml2ZXIgYXJl
DQo+ID4gc3VwcGxpZWQgdGhyb3VnaCBhIHNldCBvZiBwb2ludGVycyBjb250YWluZWQgaW4gYSBn
ZW5lcmljIHN0cnVjdHVyZSBvZiB0eXBlDQo+ID4gKnJlZ2V4X2Rldl9vcHMqLg0KPiA+IFRoZSBh
ZGRyZXNzIG9mIHRoZSAqcmVnZXhfZGV2X29wcyogc3RydWN0dXJlIGlzIHN0b3JlZCBpbiB0aGUN
Cj4gPiAqcnRlX3JlZ2V4X2RldioNCj4gPiBzdHJ1Y3R1cmUgYnkgdGhlIGRldmljZSBpbml0IGZ1
bmN0aW9uIG9mIHRoZSBSZWdFeCBkcml2ZXIsIHdoaWNoIGlzDQo+ID4gaW52b2tlZCBkdXJpbmcg
dGhlIFBDSS9Tb0MgZGV2aWNlIHByb2JpbmcgcGhhc2UsIGFzIGV4cGxhaW5lZCBlYXJsaWVyLg0K
PiA+DQo+ID4gSW4gb3RoZXIgd29yZHMsIGVhY2ggZnVuY3Rpb24gb2YgdGhlIFJlZ0V4IEFQSSBz
aW1wbHkgcmV0cmlldmVzIHRoZQ0KPiA+ICpydGVfcmVnZXhfZGV2KiBzdHJ1Y3R1cmUgYXNzb2Np
YXRlZCB3aXRoIHRoZSBkZXZpY2UgaWRlbnRpZmllciBhbmQNCj4gPiBwZXJmb3JtcyBhbiBpbmRp
cmVjdCBpbnZvY2F0aW9uIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRyaXZlciBmdW5jdGlvbg0KPiA+
IHN1cHBsaWVkIGluIHRoZSAqcmVnZXhfZGV2X29wcyogc3RydWN0dXJlIG9mIHRoZSAqcnRlX3Jl
Z2V4X2RldioNCj4gPiBzdHJ1Y3R1cmUuDQo+ID4NCj4gPiBGb3IgcGVyZm9ybWFuY2UgcmVhc29u
cywgdGhlIGFkZHJlc3Mgb2YgdGhlIGZhc3QtcGF0aCBmdW5jdGlvbnMgb2YgdGhlDQo+ID4gUmVn
RXggZHJpdmVyIGlzIG5vdCBjb250YWluZWQgaW4gdGhlICpyZWdleF9kZXZfb3BzKiBzdHJ1Y3R1
cmUuDQo+ID4gSW5zdGVhZCwgdGhleSBhcmUgZGlyZWN0bHkgc3RvcmVkIGF0IHRoZSBiZWdpbm5p
bmcgb2YgdGhlICpydGVfcmVnZXhfZGV2Kg0KPiA+IHN0cnVjdHVyZSB0byBhdm9pZCBhbiBleHRy
YSBpbmRpcmVjdCBtZW1vcnkgYWNjZXNzIGR1cmluZyB0aGVpciBpbnZvY2F0aW9uLg0KPiA+DQo+
ID4gUlRFIFJlZ0V4IGRldmljZSBkcml2ZXJzIGRvIG5vdCB1c2UgaW50ZXJydXB0cyBmb3IgZW5x
dWV1ZSBvciBkZXF1ZXVlDQo+ID4gb3BlcmF0aW9uLiBJbnN0ZWFkLCBSZWdFeCBkcml2ZXJzIGV4
cG9ydCBQb2xsLU1vZGUgZW5xdWV1ZSBhbmQgZGVxdWV1ZQ0KPiA+IGZ1bmN0aW9ucyB0byBhcHBs
aWNhdGlvbnMuDQo+ID4NCj4gPiBUaGUgKmVucXVldWUqIG9wZXJhdGlvbiBzdWJtaXRzIGEgYnVy
c3Qgb2YgUmVnRXggcGF0dGVybiBtYXRjaGluZw0KPiA+IHJlcXVlc3QNCj4gPiB0byB0aGUgUmVn
RXggZGV2aWNlIGFuZCB0aGUgKmRlcXVldWUqIG9wZXJhdGlvbiBnZXRzIGEgYnVyc3Qgb2YgcGF0
dGVybg0KPiA+IG1hdGNoaW5nIHJlc3BvbnNlIGZvciB0aGUgb25lcyBzdWJtaXR0ZWQgdGhyb3Vn
aCAqZW5xdWV1ZSogb3BlcmF0aW9uLg0KPiA+DQo+ID4gVHlwaWNhbCBhcHBsaWNhdGlvbiB1dGls
aXNhdGlvbiBvZiB0aGUgUmVnRXggZGV2aWNlIEFQSSB3aWxsIGZvbGxvdyB0aGUNCj4gPiBmb2xs
b3dpbmcgcHJvZ3JhbW1pbmcgZmxvdy4NCj4gPg0KPiA+IC0gcnRlX3JlZ2V4X2Rldl9jb25maWd1
cmUoKQ0KPiA+IC0gcnRlX3JlZ2V4X3F1ZXVlX3BhaXJfc2V0dXAoKQ0KPiA+IC0gcnRlX3JlZ2V4
X3J1bGVfZGJfdXBkYXRlKCkgTmVlZHMgdG8gaW52b2tlIGlmIHByZWNvbXBpbGVkIHJ1bGUgZGF0
YWJhc2UNCj4gPiBub3QNCj4gPiBwcm92aWRlZCBpbiBydGVfcmVnZXhfZGV2X2NvbmZpZzo6cnVs
ZV9kYiBmb3IgcnRlX3JlZ2V4X2Rldl9jb25maWd1cmUoKQ0KPiA+IGFuZC9vciBhcHBsaWNhdGlv
biBuZWVkcyB0byB1cGRhdGUgcnVsZSBkYXRhYmFzZS4NCj4gPiAtIENyZWF0ZSBvciByZXVzZSBl
eGl0aW5nIG1lbXBvb2wgZm9yICpydGVfcmVnZXhfb3BzKiBvYmplY3RzLg0KPiA+IC0gcnRlX3Jl
Z2V4X2Rldl9zdGFydCgpDQo+ID4gLSBydGVfcmVnZXhfZW5xdWV1ZV9idXJzdCgpDQo+ID4gLSBy
dGVfcmVnZXhfZGVxdWV1ZV9idXJzdCgpDQo+ID4NCj4gPiAtLS0NCj4gPg0KPiA+IGNvbmZpZy9j
b21tb25fYmFzZSAgICAgICAgICAgICAgICAgfCAgICA1ICsNCj4gPiBkb2MvYXBpL2RveHktYXBp
LWluZGV4Lm1kICAgICAgICAgIHwgICAgMSArDQo+ID4gZG9jL2FwaS9kb3h5LWFwaS5jb25mLmlu
ICAgICAgICAgICB8ICAgIDEgKw0KPiA+IGxpYi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAyICsNCj4gPiBsaWIvbGlicnRlX3JlZ2V4ZGV2L01ha2VmaWxlICAgICAgIHwgICAy
MyArDQo+ID4gbGliL2xpYnJ0ZV9yZWdleGRldi9ydGVfcmVnZXhkZXYuYyB8ICAgIDUgKw0KPiA+
IGxpYi9saWJydGVfcmVnZXhkZXYvcnRlX3JlZ2V4ZGV2LmggfCAxMjQ3DQo+ID4gKysrKysrKysr
KysrKysrKysrKysrKysrKysrKw0KPiA+IDcgZmlsZXMgY2hhbmdlZCwgMTI4NCBpbnNlcnRpb25z
KCspDQo+ID4gY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfcmVnZXhkZXYvTWFrZWZpbGUN
Cj4gPiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9yZWdleGRldi9ydGVfcmVnZXhkZXYu
Yw0KPiA+IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX3JlZ2V4ZGV2L3J0ZV9yZWdleGRl
di5oDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvY29uZmlnL2NvbW1vbl9iYXNlIGIvY29uZmlnL2Nv
bW1vbl9iYXNlDQo+ID4gaW5kZXggZTQwNmU3ODM2Li45ODYwOTNkNmUgMTAwNjQ0DQo+ID4gLS0t
IGEvY29uZmlnL2NvbW1vbl9iYXNlDQo+ID4gKysrIGIvY29uZmlnL2NvbW1vbl9iYXNlDQo+ID4g
QEAgLTc0Niw2ICs3NDYsMTEgQEANCj4gPiBDT05GSUdfUlRFX0xJQlJURV9QTURfRFBBQTJfUURN
QV9SQVdERVY9bg0KPiA+ICMNCj4gPiBDT05GSUdfUlRFX0xJQlJURV9QTURfSUZQR0FfUkFXREVW
PXkNCj4gPg0KPiA+ICsjDQo+ID4gKyMgQ29tcGlsZSByZWdleCBkZXZpY2Ugc3VwcG9ydA0KPiA+
ICsjDQo+ID4gK0NPTkZJR19SVEVfTElCUlRFX1JFR0VYREVWPXkNCj4gPiArDQo+ID4gIw0KPiA+
ICMgQ29tcGlsZSBsaWJydGVfcmluZw0KPiA+ICMNCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2FwaS9k
b3h5LWFwaS1pbmRleC5tZCBiL2RvYy9hcGkvZG94eS1hcGktaW5kZXgubWQNCj4gPiBpbmRleCA3
MTUyNDhkZDEuLmEwYmMyN2FlNCAxMDA2NDQNCj4gPiAtLS0gYS9kb2MvYXBpL2RveHktYXBpLWlu
ZGV4Lm1kDQo+ID4gKysrIGIvZG9jL2FwaS9kb3h5LWFwaS1pbmRleC5tZA0KPiA+IEBAIC0yNiw2
ICsyNiw3IEBAIFRoZSBwdWJsaWMgQVBJIGhlYWRlcnMgYXJlIGdyb3VwZWQgYnkgdG9waWNzOg0K
PiA+IFtldmVudF90aW1lcl9hZGFwdGVyXSAgICAoQHJlZiBydGVfZXZlbnRfdGltZXJfYWRhcHRl
ci5oKSwNCj4gPiBbZXZlbnRfY3J5cHRvX2FkYXB0ZXJdICAgKEByZWYgcnRlX2V2ZW50X2NyeXB0
b19hZGFwdGVyLmgpLA0KPiA+IFtyYXdkZXZdICAgICAgICAgICAgIChAcmVmIHJ0ZV9yYXdkZXYu
aCksDQo+ID4gKyAgW3JlZ2V4ZGV2XSAgICAgICAgICAgKEByZWYgcnRlX3JlZ2V4ZGV2LmgpLA0K
PiA+IFttZXRyaWNzXSAgICAgICAgICAgIChAcmVmIHJ0ZV9tZXRyaWNzLmgpLA0KPiA+IFtiaXRy
YXRlXSAgICAgICAgICAgIChAcmVmIHJ0ZV9iaXRyYXRlLmgpLA0KPiA+IFtsYXRlbmN5XSAgICAg
ICAgICAgIChAcmVmIHJ0ZV9sYXRlbmN5c3RhdHMuaCksDQo+ID4gZGlmZiAtLWdpdCBhL2RvYy9h
cGkvZG94eS1hcGkuY29uZi5pbiBiL2RvYy9hcGkvZG94eS1hcGkuY29uZi5pbg0KPiA+IGluZGV4
IGI5ODk2Y2I2My4uN2FkYjgyMWJiIDEwMDY0NA0KPiA+IC0tLSBhL2RvYy9hcGkvZG94eS1hcGku
Y29uZi5pbg0KPiA+ICsrKyBiL2RvYy9hcGkvZG94eS1hcGkuY29uZi5pbg0KPiA+IEBAIC01Myw2
ICs1Myw3IEBAIElOUFVUICAgICAgICAgICAgICAgICAgID0gQFRPUERJUkAvZG9jL2FwaS9kb3h5
LWFwaS0NCj4gPiBpbmRleC5tZCBcDQo+ID4gQFRPUERJUkAvbGliL2xpYnJ0ZV9yYXdkZXYgXA0K
PiA+IEBUT1BESVJAL2xpYi9saWJydGVfcmN1IFwNCj4gPiBAVE9QRElSQC9saWIvbGlicnRlX3Jl
b3JkZXIgXA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEBUT1BESVJAL2xpYi9saWJy
dGVfcmVnZXhkZXYgXA0KPiA+IEBUT1BESVJAL2xpYi9saWJydGVfcmluZyBcDQo+ID4gQFRPUERJ
UkAvbGliL2xpYnJ0ZV9zY2hlZCBcDQo+ID4gQFRPUERJUkAvbGliL2xpYnJ0ZV9zZWN1cml0eSBc
DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZSBiL2xpYi9NYWtlZmlsZQ0KPiA+IGluZGV4
IDc5MWUwZDk5MS4uNTdkZTk2OTFhIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9NYWtlZmlsZQ0KPiA+
ICsrKyBiL2xpYi9NYWtlZmlsZQ0KPiA+IEBAIC00NCw2ICs0NCw4IEBAIERFUERJUlMtbGlicnRl
X2V2ZW50ZGV2IDo9IGxpYnJ0ZV9lYWwgbGlicnRlX3JpbmcNCj4gPiBsaWJydGVfZXRoZGV2IGxp
YnJ0ZV9oYXNoIFwNCj4gPiBsaWJydGVfbWVtcG9vbCBsaWJydGVfdGltZXIgbGlicnRlX2NyeXB0
b2Rldg0KPiA+IERJUlMtJChDT05GSUdfUlRFX0xJQlJURV9SQVdERVYpICs9IGxpYnJ0ZV9yYXdk
ZXYNCj4gPiBERVBESVJTLWxpYnJ0ZV9yYXdkZXYgOj0gbGlicnRlX2VhbCBsaWJydGVfZXRoZGV2
DQo+ID4gK0RJUlMtJChDT05GSUdfUlRFX0xJQlJURV9SRUdFWERFVikgKz0gbGlicnRlX3JlZ2V4
ZGV2DQo+ID4gK0RFUERJUlMtbGlicnRlX3JlZ2V4ZGV2IDo9IGxpYnJ0ZV9lYWwNCj4gPiBESVJT
LSQoQ09ORklHX1JURV9MSUJSVEVfVkhPU1QpICs9IGxpYnJ0ZV92aG9zdA0KPiA+IERFUERJUlMt
bGlicnRlX3Zob3N0IDo9IGxpYnJ0ZV9lYWwgbGlicnRlX21lbXBvb2wgbGlicnRlX21idWYNCj4g
PiBsaWJydGVfZXRoZGV2IFwNCj4gPiAJCQlsaWJydGVfbmV0DQo+ID4gZGlmZiAtLWdpdCBhL2xp
Yi9saWJydGVfcmVnZXhkZXYvTWFrZWZpbGUgYi9saWIvbGlicnRlX3JlZ2V4ZGV2L01ha2VmaWxl
DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAuLjcyM2I0YjI4
Yw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9saWIvbGlicnRlX3JlZ2V4ZGV2L01ha2Vm
aWxlDQo+ID4gQEAgLTAsMCArMSwyMyBAQA0KPiA+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy
OiBCU0QtMy1DbGF1c2UNCj4gPiArIyBDb3B5cmlnaHQoQykgMjAxOSBNYXJ2ZWxsIEludGVybmF0
aW9uYWwgTHRkLg0KPiA+ICsjDQo+ID4gKw0KPiA+ICtpbmNsdWRlICQoUlRFX1NESykvbWsvcnRl
LnZhcnMubWsNCj4gPiArDQo+ID4gKyMgbGlicmFyeSBuYW1lDQo+ID4gK0xJQiA9IGxpYnJ0ZV9y
ZWdleGRldi5hDQo+ID4gKw0KPiA+ICsjIGxpYnJhcnkgdmVyc2lvbg0KPiA+ICtMSUJBQklWRVIg
Oj0gMQ0KPiA+ICsNCj4gPiArIyBidWlsZCBmbGFncw0KPiA+ICtDRkxBR1MgKz0gLU8zDQo+ID4g
K0NGTEFHUyArPSAkKFdFUlJPUl9GTEFHUykNCj4gPiArDQo+ID4gKyMgbGlicmFyeSBzb3VyY2Ug
ZmlsZXMNCj4gPiArU1JDUy15ICs9IHJ0ZV9yZWdleGRldi5jDQo+ID4gKw0KPiA+ICsjIGV4cG9y
dCBpbmNsdWRlIGZpbGVzDQo+ID4gK1NZTUxJTksteS1pbmNsdWRlICs9IHJ0ZV9yZWdleGRldi5o
DQo+ID4gKw0KPiA+ICtpbmNsdWRlICQoUlRFX1NESykvbWsvcnRlLmxpYi5taw0KPiA+IGRpZmYg
LS1naXQgYS9saWIvbGlicnRlX3JlZ2V4ZGV2L3J0ZV9yZWdleGRldi5jDQo+ID4gYi9saWIvbGli
cnRlX3JlZ2V4ZGV2L3J0ZV9yZWdleGRldi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g
PiBpbmRleCAwMDAwMDAwMDAuLmU1YmUwZjI5Yw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysg
Yi9saWIvbGlicnRlX3JlZ2V4ZGV2L3J0ZV9yZWdleGRldi5jDQo+ID4gQEAgLTAsMCArMSw1IEBA
DQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPiArICog
Q29weXJpZ2h0KEMpIDIwMTkgTWFydmVsbCBJbnRlcm5hdGlvbmFsIEx0ZC4NCj4gPiArICovDQo+
ID4gKw0KPiA+ICsjaW5jbHVkZSA8cnRlX3JlZ2V4ZGV2Lmg+DQo+ID4gZGlmZiAtLWdpdCBhL2xp
Yi9saWJydGVfcmVnZXhkZXYvcnRlX3JlZ2V4ZGV2LmgNCj4gPiBiL2xpYi9saWJydGVfcmVnZXhk
ZXYvcnRlX3JlZ2V4ZGV2LmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAw
MDAwMDAwMC4uNzY1ZGE0YWFhDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2xpYi9saWJy
dGVfcmVnZXhkZXYvcnRlX3JlZ2V4ZGV2LmgNCj4gPiBAQCAtMCwwICsxLDEyNDcgQEANCj4gPiAr
LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiA+ICsgKiBDb3B5cmln
aHQoQykgMjAxOSBNYXJ2ZWxsIEludGVybmF0aW9uYWwgTHRkLg0KPiA+ICsgKi8NCj4gPiArDQo+
ID4gKyNpZm5kZWYgX1JURV9SRUdFWERFVl9IXw0KPiA+ICsjZGVmaW5lIF9SVEVfUkVHRVhERVZf
SF8NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAZmlsZQ0KPiA+ICsgKg0KPiA+ICsgKiBSVEUg
UmVnRXggRGV2aWNlIEFQSQ0KPiA+ICsgKg0KPiA+ICsgKiBEZWZpbmVzIFJURSBSZWdFeCBEZXZp
Y2UgQVBJcyBmb3IgUmVnRXggb3BlcmF0aW9ucyBhbmQgaXRzIHByb3Zpc2lvbmluZy4NCj4gPiAr
ICoNCj4gPiArICogVGhlIFJlZ0V4IERldmljZSBBUEkgaXMgY29tcG9zZWQgb2YgdHdvIHBhcnRz
Og0KPiA+ICsgKg0KPiA+ICsgKiAtIFRoZSBhcHBsaWNhdGlvbi1vcmllbnRlZCBSZWdFeCBBUEkg
dGhhdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gc2V0dXANCj4gPiArICogICBhIFJlZ0V4IGRldmlj
ZSAoY29uZmlndXJlIGl0LCBzZXR1cCBpdHMgcXVldWUgcGFpcnMgYW5kIHN0YXJ0IGl0KSwNCj4g
PiArICogICB1cGRhdGUgdGhlIHJ1bGUgZGF0YWJhc2UgYW5kIHNvIG9uLg0KPiA+ICsgKg0KPiA+
ICsgKiAtIFRoZSBkcml2ZXItb3JpZW50ZWQgUmVnRXggQVBJIHRoYXQgZXhwb3J0cyBhIGZ1bmN0
aW9uIGFsbG93aW5nDQo+ID4gKyAqICAgYSBSZWdFeCBwb2xsIE1vZGUgRHJpdmVyIChQTUQpIHRv
IHNpbXVsdGFuZW91c2x5IHJlZ2lzdGVyIGl0c2VsZiBhcw0KPiA+ICsgKiAgIGEgUmVnRXggZGV2
aWNlIGRyaXZlci4NCj4gPiArICoNCj4gPiArICogUmVnRXggZGV2aWNlIGNvbXBvbmVudHMgYW5k
IGRlZmluaXRpb25zOg0KPiA+ICsgKg0KPiA+ICsgKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKw0K
PiA+ICsgKiAgICAgfCAgICAgICAgICAgICAgICAgfA0KPiA+ICsgKiAgICAgfCAgICAgICAgICAg
ICAgICAgby0tLS0tLS0tLSsgICAgcnRlX3JlZ2V4X1tlbnxkZV1xdWV1ZV9idXJzdCgpDQo+ID4g
KyAqICAgICB8ICAgUENSRSBiYXNlZCAgICBvLS0tLS0tKyAgfCAgICAgICAgICAgICAgIHwNCj4g
PiArICogICAgIHwgIFJlZ0V4IHBhdHRlcm4gIHwgICAgICB8ICB8ICArLS0tLS0tLS0rICAgfA0K
PiA+ICsgKiAgICAgfCBtYXRjaGluZyBlbmdpbmUgby0tLS0tLSstLSstLW8gICAgICAgIHwgICB8
ICAgICstLS0tLS0rDQo+ID4gKyAqICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgfCAgfCAg
fCBxdWV1ZSAgfDw9PW89PT0+fENvcmUgMHwNCj4gPiArICogICAgIHwgICAgICAgICAgICAgICAg
IG8tLS0tKyB8ICB8ICB8IHBhaXIgMCB8ICAgICAgICB8ICAgICAgfA0KPiA+ICsgKiAgICAgfCAg
ICAgICAgICAgICAgICAgfCAgICB8IHwgIHwgICstLS0tLS0tLSsgICAgICAgICstLS0tLS0rDQo+
ID4gKyAqICAgICArLS0tLS0tLS0tLS0tLS0tLS0rICAgIHwgfCAgfA0KPiA+ICsgKiAgICAgICAg
ICAgIF4gICAgICAgICAgICAgICB8IHwgIHwgICstLS0tLS0tLSsNCj4gPiArICogICAgICAgICAg
ICB8ICAgICAgICAgICAgICAgfCB8ICB8ICB8ICAgICAgICB8ICAgICAgICArLS0tLS0tKw0KPiA+
ICsgKiAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICstLSstLW8gcXVldWUgIHw8PT09PT09
PnxDb3JlIDF8DQo+ID4gKyAqICAgICAgICBSdWxlfERhdGFiYXNlICAgICAgIHwgICAgfCAgfCBw
YWlyIDEgfCAgICAgICAgfCAgICAgIHwNCj4gPiArICogICAgICstLS0tLS0rLS0tLS0tLS0tLSsg
ICAgfCAgICB8ICArLS0tLS0tLS0rICAgICAgICArLS0tLS0tKw0KPiA+ICsgKiAgICAgfCAgICAg
R3JvdXAgMCAgICAgfCAgICB8ICAgIHwNCj4gPiArICogICAgIHwgKy0tLS0tLS0tLS0tLS0rIHwg
ICAgfCAgICB8ICArLS0tLS0tLS0rICAgICAgICArLS0tLS0tKw0KPiA+ICsgKiAgICAgfCB8IFJ1
bGVzIDAuLm4gIHwgfCAgICB8ICAgIHwgIHwgICAgICAgIHwgICAgICAgIHxDb3JlIDJ8DQo+ID4g
KyAqICAgICB8ICstLS0tLS0tLS0tLS0tKyB8ICAgIHwgICAgKy0tbyBxdWV1ZSAgfDw9PT09PT0+
fCAgICAgIHwNCj4gPiArICogICAgIHwgICAgIEdyb3VwIDEgICAgIHwgICAgfCAgICAgICB8IHBh
aXIgMiB8ICAgICAgICArLS0tLS0tKw0KPiA+ICsgKiAgICAgfCArLS0tLS0tLS0tLS0tLSsgfCAg
ICB8ICAgICAgICstLS0tLS0tLSsNCj4gPiArICogICAgIHwgfCBSdWxlcyAwLi5uICB8IHwgICAg
fA0KPiA+ICsgKiAgICAgfCArLS0tLS0tLS0tLS0tLSsgfCAgICB8ICAgICAgICstLS0tLS0tLSsN
Cj4gPiArICogICAgIHwgICAgIEdyb3VwIDIgICAgIHwgICAgfCAgICAgICB8ICAgICAgICB8ICAg
ICAgICArLS0tLS0tKw0KPiA+ICsgKiAgICAgfCArLS0tLS0tLS0tLS0tLSsgfCAgICB8ICAgICAg
IHwgcXVldWUgIHw8PT09PT09PnxDb3JlIG58DQo+ID4gKyAqICAgICB8IHwgUnVsZXMgMC4ubiAg
fCB8ICAgICstLS0tLS0tbyBwYWlyIG4gfCAgICAgICAgfCAgICAgIHwNCj4gPiArICogICAgIHwg
Ky0tLS0tLS0tLS0tLS0rIHwgICAgICAgICAgICArLS0tLS0tLS0rICAgICAgICArLS0tLS0tKw0K
PiA+ICsgKiAgICAgfCAgICAgR3JvdXAgbiAgICAgfA0KPiA+ICsgKiAgICAgfCArLS0tLS0tLS0t
LS0tLSsgfDwtLS0tLS0tcnRlX3JlZ2V4X3J1bGVfZGJfdXBkYXRlKCkNCj4gPiArICogICAgIHwg
fCBSdWxlcyAwLi5uICB8IHw8LS0tLS0tLXJ0ZV9yZWdleF9ydWxlX2RiX2ltcG9ydCgpDQo+ID4g
KyAqICAgICB8ICstLS0tLS0tLS0tLS0tKyB8LS0tLS0tLT5ydGVfcmVnZXhfcnVsZV9kYl9leHBv
cnQoKQ0KPiA+ICsgKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgKg0KPiA+ICsgKiBS
ZWdFeDogQSByZWd1bGFyIGV4cHJlc3Npb24gaXMgYSBjb25jaXNlIGFuZCBmbGV4aWJsZSBtZWFu
cyBmb3IgbWF0Y2hpbmcNCj4gPiArICogc3RyaW5ncyBvZiB0ZXh0LCBzdWNoIGFzIHBhcnRpY3Vs
YXIgY2hhcmFjdGVycywgd29yZHMsIG9yIHBhdHRlcm5zIG9mDQo+ID4gKyAqIGNoYXJhY3RlcnMu
IEEgY29tbW9uIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBpcyDigJxSZWdFeOKAnS4NCj4gPiArICoN
Cj4gPiArICogUmVnRXggZGV2aWNlOiBBIGhhcmR3YXJlIG9yIHNvZnR3YXJlLWJhc2VkIGltcGxl
bWVudGF0aW9uIG9mIFJlZ0V4DQo+ID4gKyAqIGRldmljZSBBUEkgZm9yIFBDUkUgYmFzZWQgcGF0
dGVybiBtYXRjaGluZyBzeW50YXggYW5kIHNlbWFudGljcy4NCj4gPiArICoNCj4gPiArICogUENS
RSBSZWdFeCBzeW50YXggYW5kIHNlbWFudGljcyBzcGVjaWZpY2F0aW9uOg0KPiA+ICsgKg0KPiA+
IGh0dHBzOi8vZXVyMDMuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRw
JTNBJTJGJTJGcmVnZXgNCj4gPiBraXQuc291cmNlZm9yZ2UubmV0JTJGRG9jdW1lbnRhdGlvbiUy
RnBjcmUlMkZwY3JlcGF0dGVybi5odG1sJmFtcDtkDQo+ID4NCj4gYXRhPTAyJTdDMDElN0NzaGFo
YWZzJTQwbWVsbGFub3guY29tJTdDZGY5MzQxNmNmNGU4NDk4YTk4MmMwOGQ3MjENCj4gPg0KPiA3
NDg5MzclN0NhNjUyOTcxYzdkMmU0ZDliYTZhNGQxNDkyNTZmNDYxYiU3QzAlN0MwJTdDNjM3MDE0
NjU2NzMNCj4gPiA5OTkzMTMxJmFtcDtzZGF0YT1CMExTTXVibGREeTNVbEY1NVozd2hoTmlScTZl
cDFweEI4UnJ0NURJdGZ3JTMNCj4gPiBEJmFtcDtyZXNlcnZlZD0wDQo+ID4gKyAqDQo+ID4gKyAq
IFJlZ0V4IHF1ZXVlIHBhaXI6IEVhY2ggUmVnRXggZGV2aWNlIHNob3VsZCBoYXZlIG9uZSBvciBt
b3JlIHF1ZXVlDQo+ID4gcGFpciB0bw0KPiA+ICsgKiB0cmFuc21pdCBhIGJ1cnN0IG9mIHBhdHRl
cm4gbWF0Y2hpbmcgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIGJ1cnN0IG9mDQo+ID4gKyAqIHJlY2Vp
dmUgdGhlIHBhdHRlcm4gbWF0Y2hpbmcgcmVzcG9uc2UuIFRoZSBwYXR0ZXJuIG1hdGNoaW5nDQo+
ID4gcmVxdWVzdC9yZXNwb25zZQ0KPiA+ICsgKiBlbWJlZGRlZCBpbiAqcnRlX3JlZ2V4X29wcyog
c3RydWN0dXJlLg0KPiA+ICsgKg0KPiA+ICsgKiBSdWxlOiBBIHBhdHRlcm4gbWF0Y2hpbmcgcnVs
ZSBleHByZXNzZWQgaW4gUENSRSBSZWdFeCBzeW50YXggYWxvbmcgd2l0aA0KPiA+ICsgKiBNYXRj
aCBJRCBhbmQgR3JvdXAgSUQgdG8gaWRlbnRpZnkgdGhlIHJ1bGUgdXBvbiB0aGUgbWF0Y2guDQo+
ID4gKyAqDQo+ID4gKyAqIFJ1bGUgZGF0YWJhc2U6IFRoZSBSZWdFeCBkZXZpY2UgYWNjZXB0cyBy
ZWd1bGFyIGV4cHJlc3Npb25zIGFuZA0KPiA+IGNvbnZlcnRzIHRoZW0NCj4gPiArICogaW50byBh
IGNvbXBpbGVkIHJ1bGUgZGF0YWJhc2UgdGhhdCBjYW4gdGhlbiBiZSB1c2VkIHRvIHNjYW4gZGF0
YS4NCj4gPiArICogQ29tcGlsYXRpb24gYWxsb3dzIHRoZSBkZXZpY2UgdG8gYW5hbHl6ZSB0aGUg
Z2l2ZW4gcGF0dGVybihzKSBhbmQNCj4gPiArICogcHJlLWRldGVybWluZSBob3cgdG8gc2NhbiBm
b3IgdGhlc2UgcGF0dGVybnMgaW4gYW4gb3B0aW1pemVkIGZhc2hpb24NCj4gPiB0aGF0DQo+ID4g
KyAqIHdvdWxkIGJlIGZhciB0b28gZXhwZW5zaXZlIHRvIGNvbXB1dGUgYXQgcnVuLXRpbWUuIEEg
cnVsZSBkYXRhYmFzZQ0KPiA+IGNvbnRhaW5zDQo+ID4gKyAqIGEgc2V0IG9mIHJ1bGVzIHRoYXQg
Y29tcGlsZWQgaW4gZGV2aWNlIHNwZWNpZmljIGJpbmFyeSBmb3JtLg0KPiA+ICsgKg0KPiA+ICsg
KiBNYXRjaCBJRCBvciBSdWxlIElEOiBBIHVuaXF1ZSBpZGVudGlmaWVyIHByb3ZpZGVkIGF0IHRo
ZSB0aW1lIG9mIHJ1bGUNCj4gPiArICogY3JlYXRpb24gZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBp
ZGVudGlmeSB0aGUgcnVsZSB1cG9uIG1hdGNoLg0KPiA+ICsgKg0KPiA+ICsgKiBHcm91cCBJRDog
R3JvdXAgb2YgcnVsZXMgY2FuIGJlIGdyb3VwZWQgdW5kZXIgb25lIGdyb3VwIElEIHRvIGVuYWJs
ZQ0KPiA+ICsgKiBydWxlIGlzb2xhdGlvbiBhbmQgZWZmZWN0aXZlIHBhdHRlcm4gbWF0Y2hpbmcu
IEEgdW5pcXVlIGdyb3VwIGlkZW50aWZpZXINCj4gPiArICogcHJvdmlkZWQgYXQgdGhlIHRpbWUg
b2YgcnVsZSBjcmVhdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGlkZW50aWZ5IHRoZQ0KPiA+
ICsgKiBydWxlIHVwb24gbWF0Y2guDQo+ID4gKyAqDQo+ID4gKyAqIFNjYW46IEEgcGF0dGVybiBt
YXRjaGluZyByZXF1ZXN0IHRocm91Z2ggKmVucXVldWUqIEFQSS4NCj4gPiArICoNCj4gPiArICog
SXQgbWF5IHBvc3NpYmxlIHRoYXQgYSBnaXZlbiBSZWdFeCBkZXZpY2UgbWF5IG5vdCBzdXBwb3J0
IGFsbCB0aGUgZmVhdHVyZXMNCj4gPiArICogb2YgUENSRS4gVGhlIGFwcGxpY2F0aW9uIG1heSBw
cm9iZSB1bnN1cHBvcnRlZCBmZWF0dXJlcyB0aHJvdWdoDQo+ID4gKyAqIHN0cnVjdCBydGVfcmVn
ZXhfZGV2X2luZm86OnBjcmVfdW5zdXBfZmxhZ3MNCj4gPiArICoNCj4gPiArICogQnkgZGVmYXVs
dCwgYWxsIHRoZSBmdW5jdGlvbnMgb2YgdGhlIFJlZ0V4IERldmljZSBBUEkgZXhwb3J0ZWQgYnkg
YSBQTUQNCj4gPiArICogYXJlIGxvY2stZnJlZSBmdW5jdGlvbnMgd2hpY2ggYXNzdW1lIHRvIG5v
dCBiZSBpbnZva2VkIGluIHBhcmFsbGVsIG9uDQo+ID4gKyAqIGRpZmZlcmVudCBsb2dpY2FsIGNv
cmVzIHRvIHdvcmsgb24gdGhlIHNhbWUgdGFyZ2V0IG9iamVjdC4gRm9yIGluc3RhbmNlLA0KPiA+
ICsgKiB0aGUgZGVxdWV1ZSBmdW5jdGlvbiBvZiBhIFBNRCBjYW5ub3QgYmUgaW52b2tlZCBpbiBw
YXJhbGxlbCBvbiB0d28NCj4gPiBsb2dpY2FsDQo+ID4gKyAqIGNvcmVzIHRvIG9wZXJhdGVzIG9u
IHNhbWUgUmVnRXggcXVldWUgcGFpci4gT2YgY291cnNlLCB0aGlzIGZ1bmN0aW9uDQo+ID4gKyAq
IGNhbiBiZSBpbnZva2VkIGluIHBhcmFsbGVsIGJ5IGRpZmZlcmVudCBsb2dpY2FsIGNvcmUgb24g
ZGlmZmVyZW50IHF1ZXVlDQo+ID4gcGFpci4NCj4gPiArICogSXQgaXMgdGhlIHJlc3BvbnNpYmls
aXR5IG9mIHRoZSB1cHBlciBsZXZlbCBhcHBsaWNhdGlvbiB0byBlbmZvcmNlIHRoaXMgcnVsZS4N
Cj4gPiArICoNCj4gPiArICogSW4gYWxsIGZ1bmN0aW9ucyBvZiB0aGUgUmVnRXggQVBJLCB0aGUg
UmVnRXggZGV2aWNlIGlzDQo+ID4gKyAqIGRlc2lnbmF0ZWQgYnkgYW4gaW50ZWdlciA+PSAwIG5h
bWVkIHRoZSBkZXZpY2UgaWRlbnRpZmllciAqZGV2X2lkKg0KPiA+ICsgKg0KPiA+ICsgKiBBdCB0
aGUgUmVnRXggZHJpdmVyIGxldmVsLCBSZWdFeCBkZXZpY2VzIGFyZSByZXByZXNlbnRlZCBieSBh
IGdlbmVyaWMNCj4gPiArICogZGF0YSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX3JlZ2V4X2Rldiou
DQo+ID4gKyAqDQo+ID4gKyAqIFJlZ0V4IGRldmljZXMgYXJlIGR5bmFtaWNhbGx5IHJlZ2lzdGVy
ZWQgZHVyaW5nIHRoZSBQQ0kvU29DIGRldmljZQ0KPiA+IHByb2JpbmcNCj4gPiArICogcGhhc2Ug
cGVyZm9ybWVkIGF0IEVBTCBpbml0aWFsaXphdGlvbiB0aW1lLg0KPiA+ICsgKiBXaGVuIGEgUmVn
RXggZGV2aWNlIGlzIGJlaW5nIHByb2JlZCwgYSAqcnRlX3JlZ2V4X2Rldiogc3RydWN0dXJlIGFu
ZA0KPiA+ICsgKiBhIG5ldyBkZXZpY2UgaWRlbnRpZmllciBhcmUgYWxsb2NhdGVkIGZvciB0aGF0
IGRldmljZS4gVGhlbiwgdGhlDQo+ID4gKyAqIHJlZ2V4X2Rldl9pbml0KCkgZnVuY3Rpb24gc3Vw
cGxpZWQgYnkgdGhlIFJlZ0V4IGRyaXZlciBtYXRjaGluZyB0aGUNCj4gPiBwcm9iZWQNCj4gPiAr
ICogZGV2aWNlIGlzIGludm9rZWQgdG8gcHJvcGVybHkgaW5pdGlhbGl6ZSB0aGUgZGV2aWNlLg0K
PiA+ICsgKg0KPiA+ICsgKiBUaGUgcm9sZSBvZiB0aGUgZGV2aWNlIGluaXQgZnVuY3Rpb24gY29u
c2lzdHMgb2YgcmVzZXR0aW5nIHRoZSBoYXJkd2FyZSBvcg0KPiA+ICsgKiBzb2Z0d2FyZSBSZWdF
eCBkcml2ZXIgaW1wbGVtZW50YXRpb25zLg0KPiA+ICsgKg0KPiA+ICsgKiBJZiB0aGUgZGV2aWNl
IGluaXQgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwsIHRoZSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVu
DQo+ID4gKyAqIHRoZSBkZXZpY2UgaWRlbnRpZmllciBhc3NpZ25lZCB0byB0aGUgbmV3IGRldmlj
ZSBhbmQgaXRzIGFzc29jaWF0ZWQNCj4gPiArICogKnJ0ZV9yZWdleF9kZXYqIHN0cnVjdHVyZSBp
cyBlZmZlY3RpdmVseSByZWdpc3RlcmVkLg0KPiA+ICsgKiBPdGhlcndpc2UsIGJvdGggdGhlICpy
dGVfcmVnZXhfZGV2KiBzdHJ1Y3R1cmUgYW5kIHRoZSBkZXZpY2UgaWRlbnRpZmllcg0KPiA+IGFy
ZQ0KPiA+ICsgKiBmcmVlZC4NCj4gPiArICoNCj4gPiArICogVGhlIGZ1bmN0aW9ucyBleHBvcnRl
ZCBieSB0aGUgYXBwbGljYXRpb24gUmVnRXggQVBJIHRvIHNldHVwIGEgZGV2aWNlDQo+ID4gKyAq
IGRlc2lnbmF0ZWQgYnkgaXRzIGRldmljZSBpZGVudGlmaWVyIG11c3QgYmUgaW52b2tlZCBpbiB0
aGUgZm9sbG93aW5nIG9yZGVyOg0KPiA+ICsgKiAgICAgLSBydGVfcmVnZXhfZGV2X2NvbmZpZ3Vy
ZSgpDQo+ID4gKyAqICAgICAtIHJ0ZV9yZWdleF9xdWV1ZV9wYWlyX3NldHVwKCkNCj4gPiArICog
ICAgIC0gcnRlX3JlZ2V4X2Rldl9zdGFydCgpDQo+ID4gKyAqDQo+ID4gKyAqIFRoZW4sIHRoZSBh
cHBsaWNhdGlvbiBjYW4gaW52b2tlLCBpbiBhbnkgb3JkZXIsIHRoZSBmdW5jdGlvbnMNCj4gPiAr
ICogZXhwb3J0ZWQgYnkgdGhlIFJlZ0V4IEFQSSB0byBlbnF1ZXVlIHBhdHRlcm4gbWF0Y2hpbmcg
am9iLCBkZXF1ZXVlDQo+ID4gcGF0dGVybg0KPiA+ICsgKiBtYXRjaGluZyByZXNwb25zZSwgZ2V0
IHRoZSBzdGF0cywgdXBkYXRlIHRoZSBydWxlIGRhdGFiYXNlLA0KPiA+ICsgKiBnZXQvc2V0IGRl
dmljZSBhdHRyaWJ1dGVzIGFuZCBzbyBvbg0KPiA+ICsgKg0KPiA+ICsgKiBJZiB0aGUgYXBwbGlj
YXRpb24gd2FudHMgdG8gY2hhbmdlIHRoZSBjb25maWd1cmF0aW9uIChpLmUuIGNhbGwNCj4gPiAr
ICogcnRlX3JlZ2V4X2Rldl9jb25maWd1cmUoKSBvciBydGVfcmVnZXhfcXVldWVfcGFpcl9zZXR1
cCgpKSwgaXQgbXVzdA0KPiA+IGNhbGwNCj4gPiArICogcnRlX3JlZ2V4X2Rldl9zdG9wKCkgZmly
c3QgdG8gc3RvcCB0aGUgZGV2aWNlIGFuZCB0aGVuIGRvIHRoZQ0KPiA+IHJlY29uZmlndXJhdGlv
bg0KPiA+ICsgKiBiZWZvcmUgY2FsbGluZyBydGVfcmVnZXhfZGV2X3N0YXJ0KCkgYWdhaW4uIFRo
ZSBlbnF1ZXVlIGFuZCBkZXF1ZXVlDQo+ID4gKyAqIGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIGlu
dm9rZWQgd2hlbiB0aGUgZGV2aWNlIGlzIHN0b3BwZWQuDQo+ID4gKyAqDQo+ID4gKyAqIEZpbmFs
bHksIGFuIGFwcGxpY2F0aW9uIGNhbiBjbG9zZSBhIFJlZ0V4IGRldmljZSBieSBpbnZva2luZyB0
aGUNCj4gPiArICogcnRlX3JlZ2V4X2Rldl9jbG9zZSgpIGZ1bmN0aW9uLg0KPiA+ICsgKg0KPiA+
ICsgKiBFYWNoIGZ1bmN0aW9uIG9mIHRoZSBhcHBsaWNhdGlvbiBSZWdFeCBBUEkgaW52b2tlcyBh
IHNwZWNpZmljIGZ1bmN0aW9uDQo+ID4gKyAqIG9mIHRoZSBQTUQgdGhhdCBjb250cm9scyB0aGUg
dGFyZ2V0IGRldmljZSBkZXNpZ25hdGVkIGJ5IGl0cyBkZXZpY2UNCj4gPiArICogaWRlbnRpZmll
ci4NCj4gPiArICoNCj4gPiArICogRm9yIHRoaXMgcHVycG9zZSwgYWxsIGRldmljZS1zcGVjaWZp
YyBmdW5jdGlvbnMgb2YgYSBSZWdFeCBkcml2ZXIgYXJlDQo+ID4gKyAqIHN1cHBsaWVkIHRocm91
Z2ggYSBzZXQgb2YgcG9pbnRlcnMgY29udGFpbmVkIGluIGEgZ2VuZXJpYyBzdHJ1Y3R1cmUgb2Yg
dHlwZQ0KPiA+ICsgKiAqcmVnZXhfZGV2X29wcyouDQo+ID4gKyAqIFRoZSBhZGRyZXNzIG9mIHRo
ZSAqcmVnZXhfZGV2X29wcyogc3RydWN0dXJlIGlzIHN0b3JlZCBpbiB0aGUNCj4gPiAqcnRlX3Jl
Z2V4X2RldioNCj4gPiArICogc3RydWN0dXJlIGJ5IHRoZSBkZXZpY2UgaW5pdCBmdW5jdGlvbiBv
ZiB0aGUgUmVnRXggZHJpdmVyLCB3aGljaCBpcw0KPiA+ICsgKiBpbnZva2VkIGR1cmluZyB0aGUg
UENJL1NvQyBkZXZpY2UgcHJvYmluZyBwaGFzZSwgYXMgZXhwbGFpbmVkIGVhcmxpZXIuDQo+ID4g
KyAqDQo+ID4gKyAqIEluIG90aGVyIHdvcmRzLCBlYWNoIGZ1bmN0aW9uIG9mIHRoZSBSZWdFeCBB
UEkgc2ltcGx5IHJldHJpZXZlcyB0aGUNCj4gPiArICogKnJ0ZV9yZWdleF9kZXYqIHN0cnVjdHVy
ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRldmljZSBpZGVudGlmaWVyIGFuZA0KPiA+ICsgKiBwZXJm
b3JtcyBhbiBpbmRpcmVjdCBpbnZvY2F0aW9uIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRyaXZlciBm
dW5jdGlvbg0KPiA+ICsgKiBzdXBwbGllZCBpbiB0aGUgKnJlZ2V4X2Rldl9vcHMqIHN0cnVjdHVy
ZSBvZiB0aGUgKnJ0ZV9yZWdleF9kZXYqDQo+ID4gc3RydWN0dXJlLg0KPiA+ICsgKg0KPiA+ICsg
KiBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhlIGFkZHJlc3Mgb2YgdGhlIGZhc3QtcGF0aCBm
dW5jdGlvbnMgb2YgdGhlDQo+ID4gKyAqIFJlZ0V4IGRyaXZlciBpcyBub3QgY29udGFpbmVkIGlu
IHRoZSAqcmVnZXhfZGV2X29wcyogc3RydWN0dXJlLg0KPiA+ICsgKiBJbnN0ZWFkLCB0aGV5IGFy
ZSBkaXJlY3RseSBzdG9yZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgKnJ0ZV9yZWdleF9kZXYq
DQo+ID4gKyAqIHN0cnVjdHVyZSB0byBhdm9pZCBhbiBleHRyYSBpbmRpcmVjdCBtZW1vcnkgYWNj
ZXNzIGR1cmluZyB0aGVpcg0KPiA+IGludm9jYXRpb24uDQo+ID4gKyAqDQo+ID4gKyAqIFJURSBS
ZWdFeCBkZXZpY2UgZHJpdmVycyBkbyBub3QgdXNlIGludGVycnVwdHMgZm9yIGVucXVldWUgb3Ig
ZGVxdWV1ZQ0KPiA+ICsgKiBvcGVyYXRpb24uIEluc3RlYWQsIFJlZ0V4IGRyaXZlcnMgZXhwb3J0
IFBvbGwtTW9kZSBlbnF1ZXVlIGFuZA0KPiA+IGRlcXVldWUNCj4gPiArICogZnVuY3Rpb25zIHRv
IGFwcGxpY2F0aW9ucy4NCj4gPiArICoNCj4gPiArICogVGhlICplbnF1ZXVlKiBvcGVyYXRpb24g
c3VibWl0cyBhIGJ1cnN0IG9mIFJlZ0V4IHBhdHRlcm4gbWF0Y2hpbmcNCj4gPiByZXF1ZXN0DQo+
ID4gKyAqIHRvIHRoZSBSZWdFeCBkZXZpY2UgYW5kIHRoZSAqZGVxdWV1ZSogb3BlcmF0aW9uIGdl
dHMgYSBidXJzdCBvZiBwYXR0ZXJuDQo+ID4gKyAqIG1hdGNoaW5nIHJlc3BvbnNlIGZvciB0aGUg
b25lcyBzdWJtaXR0ZWQgdGhyb3VnaCAqZW5xdWV1ZSoNCj4gPiBvcGVyYXRpb24uDQo+ID4gKyAq
DQo+ID4gKyAqIFR5cGljYWwgYXBwbGljYXRpb24gdXRpbGlzYXRpb24gb2YgdGhlIFJlZ0V4IGRl
dmljZSBBUEkgd2lsbCBmb2xsb3cgdGhlDQo+ID4gKyAqIGZvbGxvd2luZyBwcm9ncmFtbWluZyBm
bG93Lg0KPiA+ICsgKg0KPiA+ICsgKiAtIHJ0ZV9yZWdleF9kZXZfY29uZmlndXJlKCkNCj4gPiAr
ICogLSBydGVfcmVnZXhfcXVldWVfcGFpcl9zZXR1cCgpDQo+ID4gKyAqIC0gcnRlX3JlZ2V4X3J1
bGVfZGJfdXBkYXRlKCkgTmVlZHMgdG8gaW52b2tlIGlmIHByZWNvbXBpbGVkIHJ1bGUNCj4gPiBk
YXRhYmFzZSBub3QNCj4gPiArICogICBwcm92aWRlZCBpbiBydGVfcmVnZXhfZGV2X2NvbmZpZzo6
cnVsZV9kYiBmb3INCj4gPiBydGVfcmVnZXhfZGV2X2NvbmZpZ3VyZSgpDQo+ID4gKyAqICAgYW5k
L29yIGFwcGxpY2F0aW9uIG5lZWRzIHRvIHVwZGF0ZSBydWxlIGRhdGFiYXNlLg0KPiA+ICsgKiAt
IENyZWF0ZSBvciByZXVzZSBleGl0aW5nIG1lbXBvb2wgZm9yICpydGVfcmVnZXhfb3BzKiBvYmpl
Y3RzLg0KPiA+ICsgKiAtIHJ0ZV9yZWdleF9kZXZfc3RhcnQoKQ0KPiA+ICsgKiAtIHJ0ZV9yZWdl
eF9lbnF1ZXVlX2J1cnN0KCkNCj4gPiArICogLSBydGVfcmVnZXhfZGVxdWV1ZV9idXJzdCgpDQo+
ID4gKyAqDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ID4gK2V4
dGVybiAiQyIgew0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxydGVfY29tbW9u
Lmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfY29uZmlnLmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfZGV2
Lmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfZXJybm8uaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9tZW1v
cnkuaD4NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBHZXQgdGhlIHRvdGFsIG51bWJlciBvZiBS
ZWdFeCBkZXZpY2VzIHRoYXQgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseQ0KPiA+ICsgKiBpbml0aWFs
aXNlZC4NCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIFRoZSB0b3RhbCBudW1i
ZXIgb2YgdXNhYmxlIFJlZ0V4IGRldmljZXMuDQo+ID4gKyAqLw0KPiA+ICt1aW50OF90DQo+ID4g
K3J0ZV9yZWdleF9kZXZfY291bnQodm9pZCk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogR2V0
IHRoZSBkZXZpY2UgaWRlbnRpZmllciBmb3IgdGhlIG5hbWVkIFJlZ0V4IGRldmljZS4NCj4gPiAr
ICoNCj4gPiArICogQHBhcmFtIG5hbWUNCj4gPiArICogICBSZWdFeCBkZXZpY2UgbmFtZSB0byBz
ZWxlY3QgdGhlIFJlZ0V4IGRldmljZSBpZGVudGlmaWVyLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0
dXJuDQo+ID4gKyAqICAgUmV0dXJucyBSZWdFeCBkZXZpY2UgaWRlbnRpZmllciBvbiBzdWNjZXNz
Lg0KPiA+ICsgKiAgIC0gPDA6IEZhaWx1cmUgdG8gZmluZCBuYW1lZCBSZWdFeCBkZXZpY2UuDQo+
ID4gKyAqLw0KPiA+ICtpbnQNCj4gPiArcnRlX3JlZ2V4X2Rldl9nZXRfZGV2X2lkKGNvbnN0IGNo
YXIgKm5hbWUpOw0KPiA+ICsNCj4gPiArLyogRW51bWVyYXRlcyBSZWdFeCBkZXZpY2UgY2FwYWJp
bGl0aWVzICovDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VYX0RFVl9DQVBBX1JVTlRJTUVfQ09NUElM
QVRJT05fRiAoMVVMTCA8PCAwKQ0KPiA+ICsvKio8IFJlZ0V4IGRldmljZSBkb2VzIHN1cHBvcnQg
Y29tcGlsaW5nIHRoZSBydWxlcyBhdCBydW50aW1lIHVubGlrZQ0KPiA+ICsgKiBsb2FkaW5nIG9u
bHkgdGhlIHByZS1idWlsdCBydWxlIGRhdGFiYXNlIHVzaW5nDQo+ID4gKyAqIHN0cnVjdCBydGVf
cmVnZXhfZGV2X2NvbmZpZzo6cnVsZV9kYiBpbiBydGVfcmVnZXhfZGV2X2NvbmZpZ3VyZSgpDQo+
ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfY29uZmlnOjpydWxlX2RiLCBydGVfcmVn
ZXhfZGV2X2NvbmZpZ3VyZSgpDQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5m
bzo6cmVnZXhfZGV2X2NhcGENCj4gPiArICovDQo+ID4gKw0KPiA+ICsNCj4gPiArLyogRW51bWVy
YXRlcyB1bnN1cHBvcnRlZCBQQ1JFIGZlYXR1cmVzIGZvciB0aGUgUmVnRXggZGV2aWNlICovDQo+
ID4gKyNkZWZpbmUgUlRFX1JFR0VYX0RFVl9QQ1JFX1VOU1VQX1NUQVJUX0FOQ0hPUl9GICgxVUxM
IDw8IDApDQo+ID4gKy8qKjwgUmVnRXggZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBQQ1JFIEFuY2hv
ciB0byBzdGFydCBvZiBtYXRjaCBmbGFnLg0KPiA+ICsgKiBFeGFtcGxlIFJlZ0V4IGlzICcvXEdm
b29cZC8nLiBIZXJlICdcRycgYXNzZXJ0cyBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIHRoZQ0KPiA+
ICsgKiBwcmV2aW91cyBtYXRjaCBvciB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZyBmb3IgdGhlIGZp
cnN0IG1hdGNoLg0KPiA+ICsgKiBUaGlzIHBvc2l0aW9uIHdpbGwgY2hhbmdlIGVhY2ggdGltZSB0
aGUgUmVnRXggaXMgYXBwbGllZCB0byB0aGUgc3ViamVjdA0KPiA+ICsgKiBzdHJpbmcuIElmIHRo
ZSBSZWdFeCBpcyBhcHBsaWVkIHRvICdmb28xZm9vMlpmb28zJyB0aGUgZmlyc3QgdHdvIG1hdGNo
ZXMgd2lsbA0KPiA+ICsgKiBiZSBzdWNjZXNzZnVsIGZvciAnZm9vMWZvbzInIGFuZCBmYWlsIGZv
ciAnWmZvbzMnLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnBjcmVf
dW5zdXBfZmxhZ3MNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9ERVZf
UENSRV9VTlNVUF9BVE9NSUNfR1JPVVBJTkdfRiAoMVVMTCA8PA0KPiA+IDEpDQo+ID4gKy8qKjwg
UmVnRXggZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBQQ1JFIEF0b21pYyBncm91cGluZy4NCj4gPiAr
ICogQXRvbWljIGdyb3VwcyBhcmUgcmVwcmVzZW50ZWQgYnkgJyg/PiknLiBBbiBhdG9taWMgZ3Jv
dXAgaXMgYSBncm91cCB0aGF0LA0KPiA+ICsgKiB3aGVuIHRoZSBSZWdFeCBlbmdpbmUgZXhpdHMg
ZnJvbSBpdCwgYXV0b21hdGljYWxseSB0aHJvd3MgYXdheSBhbGwNCj4gPiArICogYmFja3RyYWNr
aW5nIHBvc2l0aW9ucyByZW1lbWJlcmVkIGJ5IGFueSB0b2tlbnMgaW5zaWRlIHRoZSBncm91cC4N
Cj4gPiArICogRXhhbXBsZSBSZWdFeCBpcyAnYSg/PmJjfGIpYycgaWYgdGhlIGdpdmVuIHBhdHRl
cm5zIGFyZSAnYWJjJyBhbmQgJ2FiY2MnDQo+ID4gdGhlbg0KPiA+ICsgKiAnYShiY3xiKWMnIG1h
dGNoZXMgYm90aCB3aGVyZSBhcyAnYSg/PmJjfGIpYycgbWF0Y2hlcyBvbmx5IGFiY2MgYmVjYXVz
ZQ0KPiA+ICsgKiBhdG9taWMgZ3JvdXBzIGRvbid0IGFsbG93IGJhY2t0cmFjaW5nIGJhY2sgdG8g
J2InLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnBjcmVfdW5zdXBf
ZmxhZ3MNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9ERVZfUENSRV9V
TlNVUF9CQUNLVFJBQ0tJTkdfQ1RSTF9GICgxVUxMIDw8DQo+ID4gMikNCj4gPiArLyoqPCBSZWdF
eCBkZXZpY2UgZG9lc24ndCBzdXBwb3J0IFBDUkUgYmFja3RyYWNraW5nIGNvbnRyb2wgdmVyYnMu
DQo+ID4gKyAqIFNvbWUgZXhhbXBsZXMgb2YgYmFja3RyYWNpbmcgdmVyYnMgYXJlICgqQ09NTUlU
KSwgKCpBQ0NFUFQpLCAoKkZBSUwpLA0KPiA+ICsgKiAoKlNLSVApLCAoKlBSVU5FKS4NCj4gPiAr
ICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjpwY3JlX3Vuc3VwX2ZsYWdzDQo+ID4g
KyAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVfUkVHRVhfREVWX1BDUkVfVU5TVVBfQ0FMTE9V
VFNfRiAoMVVMTCA8PCAzKQ0KPiA+ICsvKio8IFJlZ0V4IGRldmljZSBkb2Vzbid0IHN1cHBvcnQg
UENSRSBjYWxsb3V0cy4NCj4gPiArICogUENSRSBzdXBwb3J0cyBjYWxsaW5nIGV4dGVybmFsIGZ1
bmN0aW9uIGluIGJldHdlZW4gbWF0Y2hlcyBieSB1c2luZw0KPiA+ICcoP0MpJy4NCj4gPiArICog
RXhhbXBsZSBSZWdFeCAnQUJDKD9DKUQnIGlmIGEgZ2l2ZW4gcGF0dGVyIGlzICdBQkNEJyB0aGVu
IHRoZSBSZWdFeA0KPiA+IGVuZ2luZQ0KPiA+ICsgKiB3aWxsIHBhcnNlIEFCQyBwZXJmb3JtIGEg
dXNlcmRlZmluZWQgY2FsbG91dCBhbmQgcmV0dXJuIGEgc3VjY2Vzc2Z1bA0KPiA+IG1hdGNoIGF0
DQo+ID4gKyAqIEQuDQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5mbzo6cGNy
ZV91bnN1cF9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VYX0RF
Vl9QQ1JFX1VOU1VQX0JBQ0tSRUZFUkVOQ0VfRiAoMVVMTCA8PCA0KQ0KPiA+ICsvKio8IFJlZ0V4
IGRldmljZSBkb2Vzbid0IHN1cHBvcnQgUENSRSBiYWNrcmVmZXJlbmNlLg0KPiA+ICsgKiBFeGFt
cGxlIFJlZ0V4IGlzICcoXDJBQkN8KEdISSkpKycgXDIgbWF0Y2hlcyB0aGUgc2FtZSB0ZXh0IGFz
IG1vc3QNCj4gPiByZWNlbnRseQ0KPiA+ICsgKiBtYXRjaGVkIGJ5IHRoZSAybmQgY2FwdHVyaW5n
IGdyb3VwIGkuZS4gJ0dISScuDQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5m
bzo6cGNyZV91bnN1cF9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JF
R0VYX0RFVl9QQ1JFX1VOU1VQX0dSRUVEWV9GICgxVUxMIDw8IDUpDQo+ID4gKy8qKjwgUmVnRXgg
ZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBQQ1JFIEdyZWVkeSBtb2RlLg0KPiA+ICsgKiBGb3IgZXhh
bXBsZSBpZiB0aGUgUmVnRXggaXMgJ0FCXGQqPycgdGhlbiAnKj8nIHJlcHJlc2VudHMgemVybyBv
cg0KPiA+IHVubGltaXRlZA0KPiA+ICsgKiBtYXRjaGVzLiBJbiBncmVlZHkgbW9kZSB0aGUgcGF0
dGVybiAnQUIxMjM0NScgd2lsbCBiZSBtYXRjaGVkDQo+ID4gY29tcGxldGVseQ0KPiA+ICsgKiB3
aGVyZSBhcyB0aGUgdW5ncmVlZHkgbW9kZSAnQUInIHdpbGwgYmUgcmV0dXJuZWQgYXMgdGhlIG1h
dGNoLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnBjcmVfdW5zdXBf
ZmxhZ3MNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9ERVZfUENSRV9V
TlNVUF9MT09LQVJPVU5EX0FTUlRfRiAoMVVMTCA8PA0KPiA+IDYpDQo+ID4gKy8qKjwgUmVnRXgg
ZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBQQ1JFIExvb2thcm91bmQgYXNzZXJ0aW9ucw0KPiA+ICsg
KiAoWmVyby13aWR0aCBhc3NlcnRpb25zKS4gRXhhbXBsZSBSZWdFeCBpcyAnW2Etel0rXGQrKD89
IXszLH0pJyBpZg0KPiA+ICsgKiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyAnZHdhZDEyMzQhJyB0aGUg
UmVnRXggZW5naW5lIGRvZXNuJ3QgcmVwb3J0IGFueQ0KPiA+IG1hdGNoZXMNCj4gPiArICogYmVj
YXVzZSB0aGUgYXNzZXJ0ICcoPz0hezMsfSknIGZhaWxzLiBUaGUgcGF0dGVybiAnZHdhZDEyMyEh
IScgd291bGQgcmV0dXJuDQo+ID4gYQ0KPiA+ICsgKiBzdWNjZXNzZnVsIG1hdGNoLg0KPiA+ICsg
KiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnBjcmVfdW5zdXBfZmxhZ3MNCj4gPiAr
ICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9ERVZfUENSRV9VTlNVUF9NQVRDSF9Q
T0lOVF9SU1RfRiAoMVVMTCA8PA0KPiA+IDcpDQo+ID4gKy8qKjwgUmVnRXggZGV2aWNlIGRvZXNu
J3Qgc3VwcG9ydCBQQ1JFIG1hdGNoIHBvaW50IHJlc2V0IGRpcmVjdGl2ZS4NCj4gPiArICogRXhh
bXBsZSBSZWdFeCBpcyAnW2Etel0rXEtcZCsnIGlmIHRoZSBwYXR0ZXJuIGlzICdkd2FkMTIzJw0K
PiA+ICsgKiB0aGVuIGV2ZW4gdGhvdWdoIHRoZSBlbnRpcmUgcGF0dGVybiBtYXRjaGVzIG9ubHkg
JzEyMycNCj4gPiArICogaXMgcmVwb3J0ZWQgYXMgYSBtYXRjaC4NCj4gPiArICogQHNlZSBzdHJ1
Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjpwY3JlX3Vuc3VwX2ZsYWdzDQo+ID4gKyAqLw0KPiA+ICsN
Cj4gPiArI2RlZmluZSBSVEVfUkVHRVhfREVWX1BDUkVfVU5TVVBfTkVXTElORV9DT05WRU5USU9O
U19GDQo+ID4gKDFVTEwgPDwgOCkNCj4gPiArLyoqPCBSZWdFeCBkZXZpY2UgZG9lc24ndCBzdXBw
b3J0IFBDUkUgbmV3bGluZSBjb252ZW50aW9uLg0KPiA+ICsgKiBOZXdsaW5lIGNvbnZlbnRpb25z
IGFyZSByZXByZXNlbnRlZCBhcyBmb2xsb3dzOg0KPiA+ICsgKiAoKkNSKSAgICAgICAgY2Fycmlh
Z2UgcmV0dXJuDQo+ID4gKyAqICgqTEYpICAgICAgICBsaW5lZmVlZA0KPiA+ICsgKiAoKkNSTEYp
ICAgICAgY2FycmlhZ2UgcmV0dXJuLCBmb2xsb3dlZCBieSBsaW5lZmVlZA0KPiA+ICsgKiAoKkFO
WUNSTEYpICAgYW55IG9mIHRoZSB0aHJlZSBhYm92ZQ0KPiA+ICsgKiAoKkFOWSkgICAgICAgYWxs
IFVuaWNvZGUgbmV3bGluZSBzZXF1ZW5jZXMNCj4gPiArICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4
X2Rldl9pbmZvOjpwY3JlX3Vuc3VwX2ZsYWdzDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmlu
ZSBSVEVfUkVHRVhfREVWX1BDUkVfVU5TVVBfTkVXTElORV9TRVFfRiAoMVVMTCA8PCA5KQ0KPiA+
ICsvKio8IFJlZ0V4IGRldmljZSBkb2Vzbid0IHN1cHBvcnQgUENSRSBuZXdsaW5lIHNlcXVlbmNl
Lg0KPiA+ICsgKiBUaGUgZXNjYXBlIHNlcXVlbmNlICdcUicgd2lsbCBtYXRjaCBhbnkgbmV3bGlu
ZSBzZXF1ZW5jZS4NCj4gPiArICogSXQgaXMgZXF1aXZhbGVudCB0bzogJyg/PlxyXG58XG58XHgw
YnxcZnxccnxceDg1KScuDQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5mbzo6
cGNyZV91bnN1cF9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VY
X0RFVl9QQ1JFX1VOU1VQX1BPU1NFU1NJVkVfUVVBTElGSUVSU19GICgxVUxMDQo+ID4gPDwgMTAp
DQo+ID4gKy8qKjwgUmVnRXggZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBQQ1JFIHBvc3Nlc3NpdmUg
cXVhbGlmaWVycy4NCj4gPiArICogRXhhbXBsZSBSZWdFeCBwb3NzZXNzaXZlIHF1YWxpZmllcnMg
JyorJywgJysrJywgJz8rJywgJ3ttLG59KycuDQo+ID4gKyAqIFBvc3Nlc3NpdmUgcXVhbnRpZmll
ciByZXBlYXRzIHRoZSB0b2tlbiBhcyBtYW55IHRpbWVzIGFzIHBvc3NpYmxlIGFuZCBpdA0KPiA+
IGRvZXMNCj4gPiArICogbm90IGdpdmUgdXAgbWF0Y2hlcyBhcyB0aGUgZW5naW5lIGJhY2t0cmFj
a3MuIFdpdGggYSBwb3NzZXNzaXZlDQo+ID4gcXVhbnRpZmllciwNCj4gPiArICogdGhlIGRlYWwg
aXMgYWxsIG9yIG5vdGhpbmcuDQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5m
bzo6cGNyZV91bnN1cF9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JF
R0VYX0RFVl9QQ1JFX1VOU1VQX1NVQlJPVVRJTkVfUkVGRVJFTkNFU19GDQo+ID4gKDFVTEwgPDwg
MTEpDQo+ID4gKy8qKjwgUmVnRXggZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBQQ1JFIFN1YnJvdXRp
bmUgcmVmZXJlbmNlcy4NCj4gPiArICogUENSRSBTdWJyb3V0aW5lIHJlZmVyZW5jZXMgYWxsb3cg
Zm9yIHN1YiBwYXR0ZXJucyB0byBiZSBhc3Nlc3NlZA0KPiA+ICsgKiBhcyBwYXJ0IG9mIHRoZSBS
ZWdFeC4gRXhhbXBsZSBSZWdFeCBpcyAnKGZvb3xmdXp6KVxnPDE+K2JhcicgbWF0Y2hlcyB0aGUN
Cj4gPiArICogcGF0dGVybiAnZm9vZm9vZnV6emZvb2Z1enpiYXInLg0KPiA+ICsgKiBAc2VlIHN0
cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnBjcmVfdW5zdXBfZmxhZ3MNCj4gPiArICovDQo+ID4g
Kw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9ERVZfUENSRV9VTlNVUF9VVEZfOF9GICgxVUxMIDw8
IDEyKQ0KPiA+ICsvKio8IFJlZ0V4IGRldmljZSBkb2Vzbid0IHN1cHBvcnQgVVRGLTggY2hhcmFj
dGVyIGVuY29kaW5nLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnBj
cmVfdW5zdXBfZmxhZ3MNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9E
RVZfUENSRV9VTlNVUF9VVEZfMTZfRiAoMVVMTCA8PCAxMykNCj4gPiArLyoqPCBSZWdFeCBkZXZp
Y2UgZG9lc24ndCBzdXBwb3J0IFVURi0xNiBjaGFyYWN0ZXIgZW5jb2RpbmcuDQo+ID4gKyAqIEBz
ZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5mbzo6cGNyZV91bnN1cF9mbGFncw0KPiA+ICsgKi8N
Cj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VYX0RFVl9QQ1JFX1VOU1VQX1VURl8zMl9GICgx
VUxMIDw8IDE0KQ0KPiA+ICsvKio8IFJlZ0V4IGRldmljZSBkb2Vzbid0IHN1cHBvcnQgVVRGLTMy
IGNoYXJhY3RlciBlbmNvZGluZy4NCj4gPiArICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9p
bmZvOjpwY3JlX3Vuc3VwX2ZsYWdzDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVf
UkVHRVhfREVWX1BDUkVfVU5TVVBfV09SRF9CT1VOREFSWV9GICgxVUxMIDw8DQo+ID4gMTUpDQo+
ID4gKy8qKjwgUmVnRXggZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCB3b3JkIGJvdW5kYXJpZXMuDQo+
ID4gKyAqIFRoZSBtZXRhIGNoYXJhY3RlciAnXGInIHJlcHJlc2VudHMgd29yZCBib3VuZGFyeSBh
bmNob3IuDQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5mbzo6cGNyZV91bnN1
cF9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VYX0RFVl9QQ1JF
X1VOU1VQX0ZPUldBUkRfUkVGRVJFTkNFU19GICgxVUxMDQo+ID4gPDwgMTYpDQo+ID4gKy8qKjwg
UmVnRXggZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBGb3J3YXJkIHJlZmVyZW5jZXMuDQo+ID4gKyAq
IEZvcndhcmQgcmVmZXJlbmNlcyBhbGxvdyB5b3UgdG8gdXNlIGEgYmFjayByZWZlcmVuY2UgdG8g
YSBncm91cCB0aGF0DQo+ID4gYXBwZWFycw0KPiA+ICsgKiBsYXRlciBpbiB0aGUgUmVnRXguIEV4
YW1wbGUgUmVnRXggaXMgJyhcM0FCQ3woREVGfChHSEkpKSkrJyBtYXRjaGVzIHRoZQ0KPiA+ICsg
KiBmb2xsb3dpbmcgc3RyaW5nICdHSElHSElBQkNERUYnLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBy
dGVfcmVnZXhfZGV2X2luZm86OnBjcmVfdW5zdXBfZmxhZ3MNCj4gPiArICovDQo+ID4gKw0KPiA+
ICsvKiBFbnVtZXJhdGVzIFBDUkUgcnVsZSBmbGFncyAqLw0KPiA+ICsjZGVmaW5lIFJURV9SRUdF
WF9QQ1JFX1JVTEVfQUxMT1dfRU1QVFlfRiAoMVVMTCA8PCAwKQ0KPiA+ICsvKio8IFdoZW4gdGhp
cyBmbGFnIGlzIHNldCwgdGhlIHBhdHRlcm4gdGhhdCBjYW4gbWF0Y2ggYWdhaW5zdCBhbiBlbXB0
eQ0KPiA+IHN0cmluZywNCj4gPiArICogc3VjaCBhcyAnLionIGFyZSBhbGxvd2VkLg0KPiA+ICsg
KiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnJ1bGVfZmxhZ3MsIHN0cnVjdA0KPiA+
IHJ0ZV9yZWdleF9ydWxlOjpydWxlX2ZsYWdzDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmlu
ZSBSVEVfUkVHRVhfUENSRV9SVUxFX0FOQ0hPUkVEX0YgKDFVTEwgPDwgMSkNCj4gPiArLyoqPCBX
aGVuIHRoaXMgZmxhZyBpcyBzZXQsIHRoZSBwYXR0ZXJuIGlzIGZvcmNlZCB0byBiZSAiYW5jaG9y
ZWQiLCB0aGF0IGlzLCBpdA0KPiA+ICsgKiBpcyBjb25zdHJhaW5lZCB0byBtYXRjaCBvbmx5IGF0
IHRoZSBmaXJzdCBtYXRjaGluZyBwb2ludCBpbiB0aGUgc3RyaW5nIHRoYXQNCj4gPiArICogaXMg
YmVpbmcgc2VhcmNoZWQuIFNpbWlsYXIgdG8gJ14nIGFuZCByZXByZXNlbnRlZCBieSBcQS4NCj4g
PiArICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjpydWxlX2ZsYWdzLCBzdHJ1Y3QN
Cj4gPiBydGVfcmVnZXhfcnVsZTo6cnVsZV9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNk
ZWZpbmUgUlRFX1JFR0VYX1BDUkVfUlVMRV9DQVNFTEVTU19GICgxVUxMIDw8IDIpDQo+ID4gKy8q
KjwgV2hlbiB0aGlzIGZsYWcgaXMgc2V0LCBsZXR0ZXJzIGluIHRoZSBwYXR0ZXJuIG1hdGNoIGJv
dGggdXBwZXIgYW5kDQo+ID4gbG93ZXINCj4gPiArICogY2FzZSBsZXR0ZXJzIGluIHRoZSBzdWJq
ZWN0Lg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm86OnJ1bGVfZmxhZ3Ms
IHN0cnVjdA0KPiA+IHJ0ZV9yZWdleF9ydWxlOjpydWxlX2ZsYWdzDQo+ID4gKyAqLw0KPiA+ICsN
Cj4gPiArI2RlZmluZSBSVEVfUkVHRVhfUENSRV9SVUxFX0RPVEFMTF9GICgxVUxMIDw8IDMpDQo+
ID4gKy8qKjwgV2hlbiB0aGlzIGZsYWcgaXMgc2V0LCBhIGRvdCBtZXRhY2hhcmFjdGVyIGluIHRo
ZSBwYXR0ZXJuIG1hdGNoZXMgYW55DQo+ID4gKyAqIGNoYXJhY3RlciwgaW5jbHVkaW5nIG9uZSB0
aGF0IGluZGljYXRlcyBhIG5ld2xpbmUuDQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9k
ZXZfaW5mbzo6cnVsZV9mbGFncywgc3RydWN0DQo+ID4gcnRlX3JlZ2V4X3J1bGU6OnJ1bGVfZmxh
Z3MNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9QQ1JFX1JVTEVfRFVQ
TkFNRVNfRiAoMVVMTCA8PCA0KQ0KPiA+ICsvKio8IFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgbmFt
ZXMgdXNlZCB0byBpZGVudGlmeSBjYXB0dXJlIGdyb3VwcyBuZWVkIG5vdA0KPiA+IGJlDQo+ID4g
KyAqIHVuaXF1ZS4NCj4gPiArICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjpydWxl
X2ZsYWdzLCBzdHJ1Y3QNCj4gPiBydGVfcmVnZXhfcnVsZTo6cnVsZV9mbGFncw0KPiA+ICsgKi8N
Cj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VYX1BDUkVfUlVMRV9FWFRFTkRFRF9GICgxVUxM
IDw8IDUpDQo+ID4gKy8qKjwgV2hlbiB0aGlzIGZsYWcgaXMgc2V0LCBtb3N0IHdoaXRlIHNwYWNl
IGNoYXJhY3RlcnMgaW4gdGhlIHBhdHRlcm4gYXJlDQo+ID4gKyAqIHRvdGFsbHkgaWdub3JlZCBl
eGNlcHQgd2hlbiBlc2NhcGVkIG9yIGluc2lkZSBhIGNoYXJhY3RlciBjbGFzcy4NCj4gPiArICog
QHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjpydWxlX2ZsYWdzLCBzdHJ1Y3QNCj4gPiBy
dGVfcmVnZXhfcnVsZTo6cnVsZV9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNkZWZpbmUg
UlRFX1JFR0VYX1BDUkVfUlVMRV9NQVRDSF9VTlNFVF9CQUNLUkVGX0YgKDFVTEwgPDwgNikNCj4g
PiArLyoqPCBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIGEgYmFja3JlZmVyZW5jZSB0byBhbiB1bnNl
dCBjYXB0dXJlIGdyb3VwDQo+ID4gbWF0Y2hlcyBhbg0KPiA+ICsgKiBlbXB0eSBzdHJpbmcuDQo+
ID4gKyAqIEBzZWUgUlRFX1JFR0VYX0RFVl9QQ1JFX1VOU1VQX0ZPUldBUkRfUkVGRVJFTkNFU19G
DQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5mbzo6cnVsZV9mbGFncywgc3Ry
dWN0DQo+ID4gcnRlX3JlZ2V4X3J1bGU6OnJ1bGVfZmxhZ3MNCj4gPiArICovDQo+ID4gKw0KPiA+
ICsjZGVmaW5lIFJURV9SRUdFWF9QQ1JFX1JVTEVfTVVMVElMSU5FX0YgKDFVTEwgPDwgNykNCj4g
PiArLyoqPCBXaGVuIHRoaXMgZmxhZyAgaXMgc2V0LCB0aGUgJ14nIGFuZCAnJCcgY29uc3RydWN0
cyBtYXRjaCBpbW1lZGlhdGVseQ0KPiA+ICsgKiBmb2xsb3dpbmcgb3IgaW1tZWRpYXRlbHkgYmVm
b3JlIGludGVybmFsIG5ld2xpbmVzIGluIHRoZSBzdWJqZWN0IHN0cmluZywNCj4gPiArICogcmVz
cGVjdGl2ZWx5LCBhcyB3ZWxsIGFzIGF0IHRoZSB2ZXJ5IHN0YXJ0IGFuZCBlbmQuDQo+ID4gKyAq
IEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5mbzo6cnVsZV9mbGFncywgc3RydWN0DQo+ID4g
cnRlX3JlZ2V4X3J1bGU6OnJ1bGVfZmxhZ3MNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjZGVmaW5l
IFJURV9SRUdFWF9QQ1JFX1JVTEVfTk9fQVVUT19DQVBUVVJFX0YgKDFVTEwgPDwgOCkNCj4gPiAr
LyoqPCBXaGVuIHRoaXMgRmxhZyBpcyBzZXQsIGl0IGRpc2FibGVzIHRoZSB1c2Ugb2YgbnVtYmVy
ZWQgY2FwdHVyaW5nDQo+ID4gKyAqIHBhcmVudGhlc2VzIGluIHRoZSBwYXR0ZXJuLiBSZWZlcmVu
Y2VzIHRvIGNhcHR1cmUgZ3JvdXBzDQo+ID4gKGJhY2tyZWZlcmVuY2VzIG9yDQo+ID4gKyAqIHJl
Y3Vyc2lvbi9zdWJyb3V0aW5lIGNhbGxzKSBtYXkgb25seSByZWZlciB0byBuYW1lZCBncm91cHMs
IHRob3VnaCB0aGUNCj4gPiArICogcmVmZXJlbmNlIGNhbiBiZSBieSBuYW1lIG9yIGJ5IG51bWJl
ci4NCj4gPiArICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjpydWxlX2ZsYWdzLCBz
dHJ1Y3QNCj4gPiBydGVfcmVnZXhfcnVsZTo6cnVsZV9mbGFncw0KPiA+ICsgKi8NCj4gPiArDQo+
ID4gKyNkZWZpbmUgUlRFX1JFR0VYX1BDUkVfUlVMRV9VQ1BfRiAoMVVMTCA8PCA5KQ0KPiA+ICsv
Kio8IEJ5IGRlZmF1bHQsIG9ubHkgQVNDSUkgY2hhcmFjdGVycyBhcmUgcmVjb2duaXplZCwgV2hl
biB0aGlzIGZsYWcgaXMgc2V0LA0KPiA+ICsgKiBVbmljb2RlIHByb3BlcnRpZXMgYXJlIHVzZWQg
aW5zdGVhZCB0byBjbGFzc2lmeSBjaGFyYWN0ZXJzLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBydGVf
cmVnZXhfZGV2X2luZm86OnJ1bGVfZmxhZ3MsIHN0cnVjdA0KPiA+IHJ0ZV9yZWdleF9ydWxlOjpy
dWxlX2ZsYWdzDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVfUkVHRVhfUENSRV9S
VUxFX1VOR1JFRURZX0YgKDFVTEwgPDwgMTApDQo+ID4gKy8qKjwgV2hlbiB0aGlzIGZsYWcgaXMg
c2V0LCB0aGUgImdyZWVkaW5lc3MiIG9mIHRoZSBxdWFudGlmaWVycyBpcyBpbnZlcnRlZA0KPiA+
ICsgKiBzbyB0aGF0IHRoZXkgYXJlIG5vdCBncmVlZHkgYnkgZGVmYXVsdCwgYnV0IGJlY29tZSBn
cmVlZHkgaWYgZm9sbG93ZWQgYnkNCj4gPiArICogJz8nLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBy
dGVfcmVnZXhfZGV2X2luZm86OnJ1bGVfZmxhZ3MsIHN0cnVjdA0KPiA+IHJ0ZV9yZWdleF9ydWxl
OjpydWxlX2ZsYWdzDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVfUkVHRVhfUENS
RV9SVUxFX1VURl9GICgxVUxMIDw8IDExKQ0KPiA+ICsvKio8IFdoZW4gdGhpcyBmbGFnIGlzIHNl
dCwgUmVnRXggZW5naW5lIGhhcyB0byByZWdhcmQgYm90aCB0aGUgcGF0dGVybiBhbmQNCj4gPiB0
aGUNCj4gPiArICogc3ViamVjdCBzdHJpbmdzIHRoYXQgYXJlIHN1YnNlcXVlbnRseSBwcm9jZXNz
ZWQgYXMgc3RyaW5ncyBvZiBVVEYNCj4gPiBjaGFyYWN0ZXJzDQo+ID4gKyAqIGluc3RlYWQgb2Yg
c2luZ2xlLWNvZGUtdW5pdCBzdHJpbmdzLg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhf
ZGV2X2luZm86OnJ1bGVfZmxhZ3MsIHN0cnVjdA0KPiA+IHJ0ZV9yZWdleF9ydWxlOjpydWxlX2Zs
YWdzDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVfUkVHRVhfUENSRV9SVUxFX05F
VkVSX0JBQ0tTTEFTSF9DX0YgKDFVTEwgPDwgMTIpDQo+ID4gKy8qKjwgVGhpcyBGbGFnIGxvY2tz
IG91dCB0aGUgdXNlIG9mICdcQycgaW4gdGhlIHBhdHRlcm4gdGhhdCBpcyBiZWluZyBjb21waWxl
ZC4NCj4gPiArICogVGhpcyBlc2NhcGUgbWF0Y2hlcyBvbmUgZGF0YSB1bml0LCBldmVuIGluIFVU
RiBtb2RlIHdoaWNoIGNhbiBjYXVzZQ0KPiA+ICsgKiB1bnByZWRpY3RhYmxlIGJlaGF2aW9yIGlu
IFVURi04IG9yIFVURi0xNiBtb2RlcywgYmVjYXVzZSBpdCBtYXkgbGVhdmUNCj4gPiB0aGUNCj4g
PiArICogY3VycmVudCBtYXRjaGluZyBwb2ludCBpbiB0aGUgbWlkZGxlIG9mIGEgbXVsdGktY29k
ZS11bml0IGNoYXJhY3Rlci4NCj4gPiArICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZv
OjpydWxlX2ZsYWdzLCBzdHJ1Y3QNCj4gPiBydGVfcmVnZXhfcnVsZTo6cnVsZV9mbGFncw0KPiA+
ICsgKi8NCj4gPiArDQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogUmVnRXggZGV2aWNlIGluZm9y
bWF0aW9uDQo+ID4gKyAqLw0KPiA+ICtzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvIHsNCj4gPiAr
CWNvbnN0IGNoYXIgKmRyaXZlcl9uYW1lOyAvKio8IFJlZ0V4IGRyaXZlciBuYW1lICovDQo+ID4g
KwlzdHJ1Y3QgcnRlX2RldmljZSAqZGV2OwkvKio8IERldmljZSBpbmZvcm1hdGlvbiAqLw0KPiA+
ICsJdWludDhfdCBtYXhfbWF0Y2hlczsNCj4gPiArCS8qKjwgTWF4aW11bSBtYXRjaGVzIHBlciBz
Y2FuIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZSAqLw0KPiA+ICsJdWludDE2X3QgbWF4X3F1ZXVl
X3BhaXJzOw0KPiA+ICsJLyoqPCBNYXhpbXVtIHF1ZXVlIHBhaXJzIHN1cHBvcnRlZCBieSB0aGlz
IGRldmljZSAqLw0KPiA+ICsJdWludDE2X3QgbWF4X3BheWxvYWRfc2l6ZTsNCj4gPiArCS8qKjwg
TWF4aW11bSBwYXlsb2FkIHNpemUgZm9yIGEgcGF0dGVybiBtYXRjaCByZXF1ZXN0IG9yIHNjYW4u
DQo+ID4gKwkgKiBAc2VlIFJURV9SRUdFWF9ERVZfQ0ZHX0NST1NTX0JVRkZFUl9TQ0FOX0YNCj4g
PiArCSAqLw0KPiA+ICsJdWludDE2X3QgbWF4X3J1bGVzX3Blcl9ncm91cDsNCj4gPiArCS8qKjwg
TWF4aW11bSBydWxlcyBzdXBwb3J0ZWQgcGVyIGdyb3VwIGJ5IHRoaXMgZGV2aWNlICovDQo+ID4g
Kwl1aW50MTZfdCBtYXhfZ3JvdXBzOw0KPiA+ICsJLyoqPCBNYXhpbXVtIGdyb3VwIHN1cHBvcnRl
ZCBieSB0aGlzIGRldmljZSAqLw0KPiA+ICsJdWludDMyX3QgcmVnZXhfZGV2X2NhcGE7DQo+ID4g
KwkvKio8IFJlZ0V4IGRldmljZSBjYXBhYmlsaXRpZXMuIEBzZWUgUlRFX1JFR0VYX0RFVl9DQVBB
XyogKi8NCj4gPiArCXVpbnQ2NF90IHJ1bGVfZmxhZ3M7DQo+ID4gKwkvKio8IFN1cHBvcnRlZCBj
b21waWxlciBydWxlIGZsYWdzLg0KPiA+ICsJICogQHNlZSBSVEVfUkVHRVhfUENSRV9SVUxFXyos
IHN0cnVjdCBydGVfcmVnZXhfcnVsZTo6cnVsZV9mbGFncw0KPiA+ICsJICovDQo+ID4gKwl1aW50
NjRfdCBwY3JlX3Vuc3VwX2ZsYWdzOw0KPiA+ICsJLyoqPCBVbnN1cHBvcnRlZCBQQ1JFIGZlYXR1
cmVzIGZvciB0aGlzIFJlZ0V4IGRldmljZS4NCj4gPiArCSAqIEBzZWUgUlRFX1JFR0VYX0RFVl9Q
Q1JFX1VOU1VQXyoNCj4gPiArCSAqLw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAq
IFJldHJpZXZlIHRoZSBjb250ZXh0dWFsIGluZm9ybWF0aW9uIG9mIGEgUmVnRXggZGV2aWNlLg0K
PiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ID4gKyAqICAgVGhlIGlkZW50aWZpZXIg
b2YgdGhlIGRldmljZS4NCj4gPiArICoNCj4gPiArICogQHBhcmFtW291dF0gZGV2X2luZm8NCj4g
PiArICogICBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX3JlZ2V4X2Rldl9p
bmZvKiB0byBiZSBmaWxsZWQgd2l0aA0KPiA+IHRoZQ0KPiA+ICsgKiAgIGNvbnRleHR1YWwgaW5m
b3JtYXRpb24gb2YgdGhlIGRldmljZS4NCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsg
KiAgIC0gMDogU3VjY2VzcywgZHJpdmVyIHVwZGF0ZXMgdGhlIGNvbnRleHR1YWwgaW5mb3JtYXRp
b24gb2YgdGhlIFJlZ0V4DQo+ID4gZGV2aWNlDQo+ID4gKyAqICAgLSA8MDogRXJyb3IgY29kZSBy
ZXR1cm5lZCBieSB0aGUgZHJpdmVyIGluZm8gZ2V0IGZ1bmN0aW9uLg0KPiA+ICsgKg0KPiA+ICsg
Ki8NCj4gPiAraW50DQo+ID4gK3J0ZV9yZWdleF9kZXZfaW5mb19nZXQodWludDhfdCBkZXZfaWQs
IHN0cnVjdCBydGVfcmVnZXhfZGV2X2luZm8NCj4gPiAqZGV2X2luZm8pOw0KPiA+ICsNCj4gPiAr
LyogRW51bWVyYXRlcyBSZWdFeCBkZXZpY2UgY29uZmlndXJhdGlvbiBmbGFncyAqLw0KPiA+ICsj
ZGVmaW5lIFJURV9SRUdFWF9ERVZfQ0ZHX0NST1NTX0JVRkZFUl9TQ0FOX0YgKDFVTEwgPDwgMCkN
Cj4gPiArLyoqPCBDcm9zcyBidWZmZXIgc2NhbiByZWZlcnMgdG8gdGhlIGFiaWxpdHkgdG8gYmUg
YWJsZSB0byBkZXRlY3QNCj4gPiArICogbWF0Y2hlcyB0aGF0IG9jY3VyIGFjcm9zcyBidWZmZXIg
Ym91bmRhcmllcywgd2hlcmUgdGhlIGJ1ZmZlcnMgYXJlDQo+ID4gcmVsYXRlZA0KPiA+ICsgKiB0
byBlYWNoIG90aGVyIGluIHNvbWUgd2F5LiBFbmFibGUgdGhpcyBmbGFnIHdoZW4gdG8gc2NhbiBw
YXlsb2FkIHNpemUNCj4gPiArICogZ3JlYXRlciBzdHJ1Y3Qgc3RydWN0IHJ0ZV9yZWdleF9kZXZf
aW5mbzo6bWF4X3BheWxvYWRfc2l6ZSBhbmQvb3INCj4gPiArICogbWF0Y2hlcyBjYW4gcHJlc2Vu
dCBhY3Jvc3Mgc2NhbiBidWZmZXIgYm91bmRhcmllcy4NCj4gPiArICoNCj4gPiArICogQHNlZSBz
dHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjptYXhfcGF5bG9hZF9zaXplDQo+ID4gKyAqIEBzZWUg
c3RydWN0IHJ0ZV9yZWdleF9kZXZfY29uZmlnOjpkZXZfY2ZnX2ZsYWdzLA0KPiA+IHJ0ZV9yZWdl
eF9kZXZfY29uZmlndXJlKCkNCj4gPiArICogQHNlZSBSVEVfUkVHRVhfT1BTX1JTUF9QTUlfU09K
X0YNCj4gPiArICogQHNlZSBSVEVfUkVHRVhfT1BTX1JTUF9QTUlfRU9KX0YNCj4gPiArICovDQo+
ID4gKw0KPiA+ICsvKiogUmVnRXggZGV2aWNlIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlICovDQo+
ID4gK3N0cnVjdCBydGVfcmVnZXhfZGV2X2NvbmZpZyB7DQo+ID4gKwl1aW50OF90IG5iX21heF9t
YXRjaGVzOw0KPiA+ICsJLyoqPCBNYXhpbXVtIG1hdGNoZXMgcGVyIHNjYW4gY29uZmlndXJlZCBv
biB0aGlzIGRldmljZS4NCj4gPiArCSAqIFRoaXMgdmFsdWUgY2Fubm90IGV4Y2VlZCB0aGUgKm1h
eF9tYXRjaGVzKg0KPiA+ICsJICogd2hpY2ggcHJldmlvdXNseSBwcm92aWRlZCBpbiBydGVfcmVn
ZXhfZGV2X2luZm9fZ2V0KCkuDQo+ID4gKwkgKiBUaGUgdmFsdWUgMCBpcyBhbGxvd2VkLCBpbiB3
aGljaCBjYXNlLCB2YWx1ZSAxIHVzZWQuDQo+ID4gKwkgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhf
ZGV2X2luZm86Om1heF9tYXRjaGVzDQo+ID4gKwkgKi8NCj4gPiArCXVpbnQxNl90IG5iX3F1ZXVl
X3BhaXJzOw0KPiA+ICsJLyoqPCBOdW1iZXIgb2YgUmVnRXggcXVldWUgcGFpcnMgdG8gY29uZmln
dXJlIG9uIHRoaXMgZGV2aWNlLg0KPiA+ICsJICogVGhpcyB2YWx1ZSBjYW5ub3QgZXhjZWVkIHRo
ZSAqbWF4X3F1ZXVlX3BhaXJzKiB3aGljaA0KPiA+IHByZXZpb3VzbHkNCj4gPiArCSAqIHByb3Zp
ZGVkIGluIHJ0ZV9yZWdleF9kZXZfaW5mb19nZXQoKS4NCj4gPiArCSAqIEBzZWUgc3RydWN0IHJ0
ZV9yZWdleF9kZXZfaW5mbzo6bWF4X3F1ZXVlX3BhaXJzDQo+ID4gKwkgKi8NCj4gPiArCXVpbnQx
Nl90IG5iX3J1bGVzX3Blcl9ncm91cDsNCj4gPiArCS8qKjwgTnVtYmVyIG9mIHJ1bGVzIHBlciBn
cm91cCB0byBjb25maWd1cmUgb24gdGhpcyBkZXZpY2UuDQo+ID4gKwkgKiBUaGlzIHZhbHVlIGNh
bm5vdCBleGNlZWQgdGhlICptYXhfcnVsZXNfcGVyX2dyb3VwKg0KPiA+ICsJICogd2hpY2ggcHJl
dmlvdXNseSBwcm92aWRlZCBpbiBydGVfcmVnZXhfZGV2X2luZm9fZ2V0KCkuDQo+ID4gKwkgKiBU
aGUgdmFsdWUgMCBpcyBhbGxvd2VkLCBpbiB3aGljaCBjYXNlLA0KPiA+ICsJICogc3RydWN0IHJ0
ZV9yZWdleF9kZXZfaW5mbzo6bWF4X3J1bGVzX3Blcl9ncm91cCB1c2VkLg0KPiA+ICsJICogQHNl
ZSBzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl9pbmZvOjptYXhfcnVsZXNfcGVyX2dyb3VwDQo+ID4gKwkg
Ki8NCj4gPiArCXVpbnQxNl90IG5iX2dyb3VwczsNCj4gPiArCS8qKjwgTnVtYmVyIG9mIGdyb3Vw
cyB0byBjb25maWd1cmUgb24gdGhpcyBkZXZpY2UuDQo+ID4gKwkgKiBUaGlzIHZhbHVlIGNhbm5v
dCBleGNlZWQgdGhlICptYXhfZ3JvdXBzKg0KPiA+ICsJICogd2hpY2ggcHJldmlvdXNseSBwcm92
aWRlZCBpbiBydGVfcmVnZXhfZGV2X2luZm9fZ2V0KCkuDQo+ID4gKwkgKiBAc2VlIHN0cnVjdCBy
dGVfcmVnZXhfZGV2X2luZm86Om1heF9ncm91cHMNCj4gPiArCSAqLw0KPiA+ICsJY29uc3QgY2hh
ciAqcnVsZV9kYjsNCj4gPiArCS8qKjwgSW1wb3J0IGluaXRpYWwgc2V0IG9mIHByZWJ1aWx0IHJ1
bGUgZGF0YWJhc2Ugb24gdGhpcyBkZXZpY2UuDQo+ID4gKwkgKiBUaGUgdmFsdWUgTlVMTCBpcyBh
bGxvd2VkLCBpbiB3aGljaCBjYXNlLCB0aGUgZGV2aWNlIHdpbGwgbm90DQo+ID4gKwkgKiBiZSBj
b25maWd1cmVkIHByZWJ1aWx0IHJ1bGUgZGF0YWJhc2UuIEFwcGxpY2F0aW9uIG1heSB1c2UNCj4g
PiArCSAqIHJ0ZV9yZWdleF9ydWxlX2RiX3VwZGF0ZSgpIG9yIHJ0ZV9yZWdleF9ydWxlX2RiX2lt
cG9ydCgpIEFQSQ0KPiA+ICsJICogdG8gdXBkYXRlIG9yIGltcG9ydCBydWxlIGRhdGFiYXNlIGFm
dGVyIHRoZQ0KPiA+ICsJICogcnRlX3JlZ2V4X2Rldl9jb25maWd1cmUoKS4NCj4gPiArCSAqIEBz
ZWUgcnRlX3JlZ2V4X3J1bGVfZGJfdXBkYXRlKCksIHJ0ZV9yZWdleF9ydWxlX2RiX2ltcG9ydCgp
DQo+ID4gKwkgKi8NCj4gPiArCXVpbnQzMl90IHJ1bGVfZGJfbGVuOw0KPiA+ICsJLyoqPCBMZW5n
dGggb2YgKnJ1bGVfZGIqIGJ1ZmZlci4gKi8NCj4gPiArCXVpbnQzMl90IGRldl9jZmdfZmxhZ3M7
DQo+ID4gKwkvKio8IFJlZ0V4IGRldmljZSBjb25maWd1cmF0aW9uIGZsYWdzLCBTZWUgUlRFX1JF
R0VYX0RFVl9DRkdfKg0KPiA+ICovDQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICog
Q29uZmlndXJlIGEgUmVnRXggZGV2aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIGZ1bmN0aW9u
IG11c3QgYmUgaW52b2tlZCBmaXJzdCBiZWZvcmUgYW55IG90aGVyIGZ1bmN0aW9uIGluIHRoZQ0K
PiA+ICsgKiBBUEkuIFRoaXMgZnVuY3Rpb24gY2FuIGFsc28gYmUgcmUtaW52b2tlZCB3aGVuIGEg
ZGV2aWNlIGlzIGluIHRoZQ0KPiA+ICsgKiBzdG9wcGVkIHN0YXRlLg0KPiA+ICsgKg0KPiA+ICsg
KiBUaGUgY2FsbGVyIG1heSB1c2UgcnRlX3JlZ2V4X2Rldl9pbmZvX2dldCgpIHRvIGdldCB0aGUg
Y2FwYWJpbGl0eSBvZiBlYWNoDQo+ID4gKyAqIHJlc291cmNlcyBhdmFpbGFibGUgZm9yIHRoaXMg
cmVnZXggZGV2aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ID4gKyAqICAg
VGhlIGlkZW50aWZpZXIgb2YgdGhlIGRldmljZSB0byBjb25maWd1cmUuDQo+ID4gKyAqIEBwYXJh
bSBjZmcNCj4gPiArICogICBUaGUgUmVnRXggZGV2aWNlIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJl
Lg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgLSAwOiBTdWNjZXNzLCBkZXZp
Y2UgY29uZmlndXJlZC4NCj4gPiArICogICAtIDwwOiBFcnJvciBjb2RlIHJldHVybmVkIGJ5IHRo
ZSBkcml2ZXIgY29uZmlndXJhdGlvbiBmdW5jdGlvbi4NCj4gPiArICovDQo+ID4gK2ludA0KPiA+
ICtydGVfcmVnZXhfZGV2X2NvbmZpZ3VyZSh1aW50OF90IGRldl9pZCwgY29uc3Qgc3RydWN0DQo+
ID4gcnRlX3JlZ2V4X2Rldl9jb25maWcgKmNmZyk7DQo+ID4gKw0KPiA+ICsvKiBFbnVtZXJhdGVz
IFJlZ0V4IHF1ZXVlIHBhaXIgY29uZmlndXJhdGlvbiBmbGFncyAqLw0KPiA+ICsjZGVmaW5lIFJU
RV9SRUdFWF9RVUVVRV9QQUlSX0NGR19PT1NfRiAoMVVMTCA8PCAwKQ0KPiA+ICsvKio8IE91dCBv
ZiBvcmRlciBzY2FuLCBJZiBub3Qgc2V0LCBhIHNjYW4gbXVzdCByZXRpcmUgYWZ0ZXIgcHJldmlv
dXNseSBpc3N1ZWQNCj4gPiArICogaW4tb3JkZXIgc2NhbnMgdG8gdGhpcyBxdWV1ZSBwYWlyLiBJ
ZiBzZXQsIHRoaXMgc2NhbiBjYW4gYmUgcmV0aXJlZCBhcyBzb29uDQo+ID4gKyAqIGFzIGRldmlj
ZSByZXR1cm5zIGNvbXBsZXRpb24uIEFwcGxpY2F0aW9uIHNob3VsZCBub3Qgc2V0IG91dCBvZiBv
cmRlciBzY2FuDQo+ID4gKyAqIGZsYWcgaWYgaXQgbmVlZHMgdG8gbWFpbnRhaW4gdGhlIGluZ3Jl
c3Mgb3JkZXIgb2Ygc2NhbiByZXF1ZXN0Lg0KPiA+ICsgKg0KPiA+ICsgKiBAc2VlIHN0cnVjdCBy
dGVfcmVnZXhfcXBfY29uZjo6cXBfY29uZl9mbGFncywNCj4gPiBydGVfcmVnZXhfcXVldWVfcGFp
cl9zZXR1cCgpDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArc3RydWN0IHJ0ZV9yZWdleF9vcHM7DQo+
ID4gK3R5cGVkZWYgdm9pZCAoKnJlZ2V4ZGV2X3N0b3BfZmx1c2hfdCkodWludDhfdCBkZXZfaWQs
IHVpbnQxNl90IHFwX2lkLA0KPiA+ICsJCQkJICAgICAgc3RydWN0IHJ0ZV9yZWdleF9vcHMgKm9w
KTsNCj4gPiArLyoqPCBDYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgZHVyaW5nIHJ0ZV9yZWdleF9k
ZXZfc3RvcCgpLCBpbnZva2VkIG9uY2UNCj4gPiBwZXINCj4gPiArICogZmx1c2hlZCBSZWdFeCBv
cC4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsvKiogUmVnRXggcXVldWUgcGFpciBjb25maWd1cmF0
aW9uIHN0cnVjdHVyZSAqLw0KPiA+ICtzdHJ1Y3QgcnRlX3JlZ2V4X3FwX2NvbmYgew0KPiA+ICsJ
dWludDMyX3QgcXBfY29uZl9mbGFnczsNCj4gPiArCS8qKjwgUXVldWUgcGFpciBjb25maWcgZmxh
Z3MsIFNlZSBSVEVfUkVHRVhfUVVFVUVfUEFJUl9DRkdfKg0KPiA+ICovDQo+ID4gKwl1aW50MTZf
dCBuYl9kZXNjOw0KPiA+ICsJLyoqPCBUaGUgbnVtYmVyIG9mIGRlc2NyaXB0b3JzIHRvIGFsbG9j
YXRlIGZvciB0aGlzIHF1ZXVlIHBhaXIuICovDQo+ID4gKwlyZWdleGRldl9zdG9wX2ZsdXNoX3Qg
Y2I7DQo+ID4gKwkvKio8IENhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCBkdXJpbmcgcnRlX3JlZ2V4
X2Rldl9zdG9wKCksIGludm9rZWQNCj4gPiArCSAqIG9uY2UgcGVyIGZsdXNoZWQgcmVnZXggb3Au
IFZhbHVlIE5VTEwgaXMgYWxsb3dlZCwgaW4gd2hpY2ggY2FzZQ0KPiA+ICsJICogY2FsbGJhY2sg
d2lsbCBub3QgYmUgaW52b2tlZC4gVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBwcm9wZXJs
eQ0KPiA+ICsJICogZGlzcG9zZSBvZiBvdXRzdGFuZGluZyByZWdleCBvcHMgZnJvbSByZXNwb25z
ZSBxdWV1ZSwNCj4gPiArCSAqIGZvciBleGFtcGxlIG9wcyBjb250YWluaW5nIG1lbW9yeSBwb2lu
dGVycy4NCj4gPiArCSAqIEBzZWUgcnRlX3JlZ2V4X2Rldl9zdG9wKCkNCj4gPiArCSAqLw0KPiA+
ICt9Ow0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIEFsbG9jYXRlIGFuZCBzZXQgdXAgYSBSZWdF
eCBxdWV1ZSBwYWlyIGZvciBhIFJlZ0V4IGRldmljZS4NCj4gPiArICoNCj4gPiArICogQHBhcmFt
IGRldl9pZA0KPiA+ICsgKiAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UuDQo+ID4gKyAq
IEBwYXJhbSBxdWV1ZV9wYWlyX2lkDQo+ID4gKyAqICAgVGhlIGluZGV4IG9mIHRoZSBSZWdFeCBx
dWV1ZSBwYWlyIHRvIHNldHVwLiBUaGUgdmFsdWUgbXVzdCBiZSBpbiB0aGUNCj4gPiByYW5nZQ0K
PiA+ICsgKiAgIFswLCBuYl9xdWV1ZV9wYWlycyAtIDFdIHByZXZpb3VzbHkgc3VwcGxpZWQgdG8N
Cj4gPiBydGVfcmVnZXhfZGV2X2NvbmZpZ3VyZSgpLg0KPiA+ICsgKiBAcGFyYW0gcXBfY29uZg0K
PiA+ICsgKiAgIFRoZSBwb2ludGVyIHRvIHRoZSBjb25maWd1cmF0aW9uIGRhdGEgdG8gYmUgdXNl
ZCBmb3IgdGhlIFJlZ0V4IHF1ZXVlDQo+ID4gcGFpci4NCj4gPiArICogICBOVUxMIHZhbHVlIGlz
IGFsbG93ZWQsIGluIHdoaWNoIGNhc2UgZGVmYXVsdCBjb25maWd1cmF0aW9uCXVzZWQuDQo+ID4g
KyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICAtIDA6IFN1Y2Nlc3MsIFJlZ0V4IHF1ZXVl
IHBhaXIgY29ycmVjdGx5IHNldCB1cC4NCj4gPiArICogICAtIDwwOiBSZWdFeCBxdWV1ZSBjb25m
aWd1cmF0aW9uIGZhaWxlZA0KPiA+ICsgKi8NCj4gPiAraW50DQo+ID4gK3J0ZV9yZWdleF9xdWV1
ZV9wYWlyX3NldHVwKHVpbnQ4X3QgZGV2X2lkLCB1aW50OF90IHF1ZXVlX3BhaXJfaWQsDQo+ID4g
KwkJCSAgIGNvbnN0IHN0cnVjdCBydGVfcmVnZXhfcXBfY29uZiAqcXBfY29uZik7DQo+ID4gKw0K
PiA+ICsvKioNCj4gPiArICogU3RhcnQgYSBSZWdFeCBkZXZpY2UuDQo+ID4gKyAqDQo+ID4gKyAq
IFRoZSBkZXZpY2Ugc3RhcnQgc3RlcCBpcyB0aGUgbGFzdCBvbmUgYW5kIGNvbnNpc3RzIG9mIHNl
dHRpbmcgdGhlIFJlZ0V4DQo+ID4gKyAqIHF1ZXVlcyB0byBzdGFydCBhY2NlcHRpbmcgdGhlIHBh
dHRlcm4gbWF0Y2hpbmcgc2NhbiByZXF1ZXN0cy4NCj4gPiArICoNCj4gPiArICogT24gc3VjY2Vz
cywgYWxsIGJhc2ljIGZ1bmN0aW9ucyBleHBvcnRlZCBieSB0aGUgQVBJIChSZWdFeCBlbnF1ZXVl
LA0KPiA+ICsgKiBSZWdFeCBkZXF1ZXVlIGFuZCBzbyBvbikgY2FuIGJlIGludm9rZWQuDQo+ID4g
KyAqDQo+ID4gKyAqIEBwYXJhbSBkZXZfaWQNCj4gPiArICogICBSZWdFeCBkZXZpY2UgaWRlbnRp
Zmllcg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgLSAwOiBTdWNjZXNzLCBkZXZpY2Ugc3Rh
cnRlZC4NCj4gPiArICogICAtIDwwOiBEZXZpY2Ugc3RhcnQgZmFpbGVkLg0KPiA+ICsgKi8NCj4g
PiAraW50DQo+ID4gK3J0ZV9yZWdleF9kZXZfc3RhcnQodWludDhfdCBkZXZfaWQpOw0KPiA+ICsN
Cj4gPiArLyoqDQo+ID4gKyAqIFN0b3AgYSBSZWdFeCBkZXZpY2UuDQo+ID4gKyAqDQo+ID4gKyAq
IFN0b3AgYSBSZWdFeCBkZXZpY2UuIFRoZSBkZXZpY2UgY2FuIGJlIHJlc3RhcnRlZCB3aXRoIGEg
Y2FsbCB0bw0KPiA+ICsgKiBydGVfcmVnZXhfZGV2X3N0YXJ0KCkuDQo+ID4gKyAqDQo+ID4gKyAq
IFRoaXMgZnVuY3Rpb24gY2F1c2VzIGFsbCBxdWV1ZWQgcmVzcG9uc2UgcmVnZXggb3BzIHRvIGJl
IGRyYWluZWQgaW4gdGhlDQo+ID4gKyAqIHJlc3BvbnNlIHF1ZXVlLiBXaGlsZSBkcmFpbmluZyBv
cHMgb3V0IG9mIHRoZSBkZXZpY2UsDQo+ID4gKyAqIHN0cnVjdCBydGVfcmVnZXhfcXBfY29uZjo6
Y2Igd2lsbCBiZSBpbnZva2VkIGZvciBlYWNoIG9wcy4NCj4gPiArICoNCj4gPiArICogQHBhcmFt
IGRldl9pZA0KPiA+ICsgKiAgIFJlZ0V4IGRldmljZSBpZGVudGlmaWVyLg0KPiA+ICsgKg0KPiA+
ICsgKiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfcXBfY29uZjo6Y2IsIHJ0ZV9yZWdleF9xdWV1ZV9w
YWlyX3NldHVwKCkNCj4gPiArICovDQo+ID4gK3ZvaWQNCj4gPiArcnRlX3JlZ2V4X2Rldl9zdG9w
KHVpbnQ4X3QgZGV2X2lkKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBDbG9zZSBhIFJlZ0V4
IGRldmljZS4gVGhlIGRldmljZSBjYW5ub3QgYmUgcmVzdGFydGVkIQ0KPiA+ICsgKg0KPiA+ICsg
KiBAcGFyYW0gZGV2X2lkDQo+ID4gKyAqICAgUmVnRXggZGV2aWNlIGlkZW50aWZpZXINCj4gPiAr
ICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgLSAwIG9uIHN1Y2Nlc3NmdWxseSBjbG9zZWQg
dGhlIGRldmljZS4NCj4gPiArICogIC0gPDAgb24gZmFpbHVyZSB0byBjbG9zZSB0aGUgZGV2aWNl
Lg0KPiA+ICsgKi8NCj4gPiAraW50DQo+ID4gK3J0ZV9yZWdleF9kZXZfY2xvc2UodWludDhfdCBk
ZXZfaWQpOw0KPiA+ICsNCj4gPiArLyogRGV2aWNlIGdldC9zZXQgYXR0cmlidXRlcyAqLw0KPiA+
ICsNCj4gPiArLyoqIEVudW1lcmF0ZXMgUmVnRXggZGV2aWNlIGF0dHJpYnV0ZSBpZGVudGlmaWVy
ICovDQo+ID4gK2VudW0gcnRlX3JlZ2V4X2Rldl9hdHRyX2lkIHsNCj4gPiArCVJURV9SRUdFWF9E
RVZfQVRUUl9TT0NLRVRfSUQsDQo+ID4gKwkvKio8IFRoZSBOVU1BIHNvY2tldCBpZCB0byB3aGlj
aCB0aGUgZGV2aWNlIGlzIGNvbm5lY3RlZCBvcg0KPiA+ICsJICogYSBkZWZhdWx0IG9mIHplcm8g
aWYgdGhlIHNvY2tldCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4NCj4gPiArCSAqIGRhdGF0eXBl
OiAqaW50Kg0KPiA+ICsJICogb3BlcmF0aW9uOiAqZ2V0Kg0KPiA+ICsJICovDQo+ID4gKwlSVEVf
UkVHRVhfREVWX0FUVFJfTUFYX01BVENIRVMsDQo+ID4gKwkvKio8IE1heGltdW0gbnVtYmVyIG9m
IG1hdGNoZXMgcGVyIHNjYW4uDQo+ID4gKwkgKiBkYXRhdHlwZTogKnVpbnQ4X3QqDQo+ID4gKwkg
KiBvcGVyYXRpb246ICpnZXQqIGFuZCAqc2V0Kg0KPiA+ICsJICoNCj4gPiArCSAqIEBzZWUgUlRF
X1JFR0VYX09QU19SU1BfTUFYX01BVENIX0YNCj4gPiArCSAqLw0KPiA+ICsJUlRFX1JFR0VYX0RF
Vl9BVFRSX01BWF9TQ0FOX1RJTUVPVVQsDQo+ID4gKwkvKio8IFVwcGVyIGJvdW5kIHNjYW4gdGlt
ZSBpbiBucy4NCj4gPiArCSAqIGRhdGF0eXBlOiAqdWludDE2X3QqDQo+ID4gKwkgKiBvcGVyYXRp
b246ICpnZXQqIGFuZCAqc2V0Kg0KPiA+ICsJICoNCj4gPiArCSAqIEBzZWUgUlRFX1JFR0VYX09Q
U19SU1BfTUFYX1NDQU5fVElNRU9VVF9GDQo+ID4gKwkgKi8NCj4gPiArCVJURV9SRUdFWF9ERVZf
QVRUUl9NQVhfUFJFRklYLA0KPiA+ICsJLyoqPCBNYXhpbXVtIG51bWJlciBvZiBwcmVmaXggZGV0
ZWN0ZWQgcGVyIHNjYW4uDQo+ID4gKwkgKiBUaGlzIHdvdWxkIGJlIHVzZWZ1bCBmb3IgZGVuaWFs
IG9mIHNlcnZpY2UgZGV0ZWN0aW9uLg0KPiA+ICsJICogZGF0YXR5cGU6ICp1aW50MTZfdCoNCj4g
PiArCSAqIG9wZXJhdGlvbjogKmdldCogYW5kICpzZXQqDQo+ID4gKwkgKg0KPiA+ICsJICogQHNl
ZSBSVEVfUkVHRVhfT1BTX1JTUF9NQVhfUFJFRklYX0YNCj4gPiArCSAqLw0KPiA+ICt9Ow0KPiA+
ICsNCj4gPiArLyoqDQo+ID4gKyAqIEdldCBhbiBhdHRyaWJ1dGUgZnJvbSBhIFJlZ0V4IGRldmlj
ZS4NCj4gPiArICoNCj4gPiArICogQHBhcmFtIGRldl9pZCBSZWdFeCBkZXZpY2UgaWRlbnRpZmll
cg0KPiA+ICsgKiBAcGFyYW0gYXR0cl9pZCBUaGUgYXR0cmlidXRlIElEIHRvIHJldHJpZXZlDQo+
ID4gKyAqIEBwYXJhbVtvdXRdIGF0dHJfdmFsdWUgQSBwb2ludGVyIHRoYXQgd2lsbCBiZSBmaWxs
ZWQgaW4gd2l0aCB0aGUgYXR0cmlidXRlDQo+ID4gKyAqICAgICAgICAgICAgIHZhbHVlIGlmIHN1
Y2Nlc3NmdWwuDQo+ID4gKyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICAtIDA6IFN1Y2Nl
c3NmdWxseSByZXRyaWV2ZWQgYXR0cmlidXRlIHZhbHVlLg0KPiA+ICsgKiAgIC0gLUVJTlZBTDog
SW52YWxpZCBkZXZpY2Ugb3IgICphdHRyX2lkKiBwcm92aWRlZCwgb3IgKmF0dHJfdmFsdWUqIGlz
IE5VTEwuDQo+ID4gKyAqICAgLSAtRU5PVFNVUDogaWYgdGhlIGRldmljZSBkb2Vzbid0IHN1cHBv
cnQgc3BlY2lmaWMgKmF0dHJfaWQqLg0KPiA+ICsgKi8NCj4gPiAraW50DQo+ID4gK3J0ZV9yZWdl
eF9kZXZfYXR0cl9nZXQodWludDhfdCBkZXZfaWQsIGVudW0gcnRlX3JlZ2V4X2Rldl9hdHRyX2lk
DQo+ID4gYXR0cl9pZCwNCj4gPiArCQkgICAgICAgdm9pZCAqYXR0cl92YWx1ZSk7DQo+ID4gKw0K
PiA+ICsvKioNCj4gPiArICogU2V0IGFuIGF0dHJpYnV0ZSB0byBhIFJlZ0V4IGRldmljZS4NCj4g
PiArICoNCj4gPiArICogQHBhcmFtIGRldl9pZCBSZWdFeCBkZXZpY2UgaWRlbnRpZmllcg0KPiA+
ICsgKiBAcGFyYW0gYXR0cl9pZCBUaGUgYXR0cmlidXRlIElEIHRvIHJldHJpZXZlDQo+ID4gKyAq
IEBwYXJhbSBhdHRyX3ZhbHVlIEEgcG9pbnRlciB0aGF0IHdpbGwgYmUgZmlsbGVkIGluIHdpdGgg
dGhlIGF0dHJpYnV0ZSB2YWx1ZQ0KPiA+ICsgKiAgICAgICAgICAgICAgICAgICBieSB0aGUgYXBw
bGljYXRpb24NCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIC0gMDogU3VjY2Vz
c2Z1bGx5IGFwcGxpZWQgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4NCj4gPiArICogICAtIC1FSU5WQUw6
IEludmFsaWQgZGV2aWNlIG9yICAqYXR0cl9pZCogcHJvdmlkZWQsIG9yICphdHRyX3ZhbHVlKiBp
cyBOVUxMLg0KPiA+ICsgKiAgIC0gLUVOT1RTVVA6IGlmIHRoZSBkZXZpY2UgZG9lc24ndCBzdXBw
b3J0IHNwZWNpZmljICphdHRyX2lkKi4NCj4gPiArICovDQo+ID4gK2ludA0KPiA+ICtydGVfcmVn
ZXhfZGV2X2F0dHJfc2V0KHVpbnQ4X3QgZGV2X2lkLCBlbnVtIHJ0ZV9yZWdleF9kZXZfYXR0cl9p
ZA0KPiA+IGF0dHJfaWQsDQo+ID4gKwkJICAgICAgIGNvbnN0IHZvaWQgKmF0dHJfdmFsdWUpOw0K
PiA+ICsNCj4gPiArLyogUnVsZSByZWxhdGVkIEFQSXMgKi8NCj4gPiArLyoqIEVudW1lcmF0ZXMg
UmVnRXggcnVsZSBvcGVyYXRpb24gKi8NCj4gPiArZW51bSBydGVfcmVnZXhfcnVsZV9vcCB7DQo+
ID4gKwlSVEVfUkVHRVhfUlVMRV9PUF9BREQsDQo+ID4gKwkvKio8IEFkZCBSZWdFeCBydWxlIHRv
IHJ1bGUgZGF0YWJhc2UgKi8NCj4gPiArCVJURV9SRUdFWF9SVUxFX09QX1JFTU9WRQ0KPiA+ICsJ
LyoqPCBSZW1vdmUgUmVnRXggcnVsZSBmcm9tIHJ1bGUgZGF0YWJhc2UgKi8NCj4gPiArfTsNCj4g
PiArDQo+ID4gKy8qKiBTdHJ1Y3R1cmUgdG8gaG9sZCBhIFJlZ0V4IHJ1bGUgYXR0cmlidXRlcyAq
Lw0KPiA+ICtzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGUgew0KPiA+ICsJZW51bSBydGVfcmVnZXhfcnVs
ZV9vcCBvcDsNCj4gPiArCS8qKjwgT1AgdHlwZSBvZiB0aGUgcnVsZSBlaXRoZXIgYSBPUF9BREQg
b3IgT1BfREVMRVRFICovDQo+ID4gKwl1aW50MTZfdCBncm91cF9pZDsNCj4gPiArCS8qKjwgR3Jv
dXAgaWRlbnRpZmllciB0byB3aGljaCB0aGUgcnVsZSBiZWxvbmdzIHRvLiAqLw0KPiA+ICsJdWlu
dDMyX3QgcnVsZV9pZDsNCj4gPiArCS8qKjwgUnVsZSBpZGVudGlmaWVyIHdoaWNoIGlzIHJldHVy
bmVkIG9uIHN1Y2Nlc3NmdWwgbWF0Y2guICovDQo+ID4gKwljb25zdCBjaGFyICpwY3JlX3J1bGU7
DQo+ID4gKwkvKio8IEJ1ZmZlciB0byBob2xkIHRoZSBQQ1JFIHJ1bGUuICovDQo+ID4gKwl1aW50
MTZfdCBwY3JlX3J1bGVfbGVuOw0KPiA+ICsJLyoqPCBMZW5ndGggb2YgdGhlIFBDUkUgcnVsZSov
DQo+ID4gKwl1aW50NjRfdCBydWxlX2ZsYWdzOw0KPiA+ICsJLyogUENSRSBydWxlIGZsYWdzLiBT
dXBwb3J0ZWQgZGV2aWNlIHNwZWNpZmljIFBDUkUgcnVsZXMgZW51bWVyYXRlZA0KPiA+ICsJICog
aW4gc3RydWN0IHJ0ZV9yZWdleF9kZXZfaW5mbzo6cnVsZV9mbGFncy4gRm9yIHN1Y2Nlc3NmdWwg
cnVsZQ0KPiA+ICsJICogZGF0YWJhc2UgdXBkYXRlLCBhcHBsaWNhdGlvbiBuZWVkcyB0byBwcm92
aWRlIG9ubHkgc3VwcG9ydGVkDQo+ID4gKwkgKiBydWxlIGZsYWdzLg0KPiA+ICsJICogQFNlZSBS
VEVfUkVHRVhfUENSRV9SVUxFXyosIHN0cnVjdA0KPiA+IHJ0ZV9yZWdleF9kZXZfaW5mbzo6cnVs
ZV9mbGFncw0KPiA+ICsJICovDQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogVXBk
YXRlIHRoZSBydWxlIGRhdGFiYXNlIG9mIGEgUmVnRXggZGV2aWNlLg0KPiA+ICsgKg0KPiA+ICsg
KiBAcGFyYW0gZGV2X2lkIFJlZ0V4IGRldmljZSBpZGVudGlmaWVyDQo+ID4gKyAqIEBwYXJhbSBy
dWxlcw0KPiA+ICsgKiAgIFBvaW50cyB0byBhbiBhcnJheSBvZiAqbmJfcnVsZXMqIG9iamVjdHMg
b2YgdHlwZSAqcnRlX3JlZ2V4X3J1bGUqDQo+ID4gc3RydWN0dXJlDQo+ID4gKyAqICAgd2hpY2gg
Y29udGFpbiB0aGUgcmVnZXggcnVsZXMgYXR0cmlidXRlcyB0byBiZSB1cGRhdGVkIGluIHJ1bGUg
ZGF0YWJhc2UuDQo+ID4gKyAqIEBwYXJhbSBuYl9ydWxlcw0KPiA+ICsgKiAgIFRoZSBudW1iZXIg
b2YgUENSRSBydWxlcyB0byB1cGRhdGUgdGhlIHJ1bGUgZGF0YWJhc2UuDQo+ID4gKyAqDQo+ID4g
KyAqIEByZXR1cm4NCj4gPiArICogICBUaGUgbnVtYmVyIG9mIHJlZ2V4IHJ1bGVzIGFjdHVhbGx5
IHVwZGF0ZWQgb24gdGhlIHJlZ2V4IGRldmljZSdzIHJ1bGUNCj4gPiArICogICBkYXRhYmFzZS4g
VGhlIHJldHVybiB2YWx1ZSBjYW4gYmUgbGVzcyB0aGFuIHRoZSB2YWx1ZSBvZiB0aGUgKm5iX3J1
bGVzKg0KPiA+ICsgKiAgIHBhcmFtZXRlciB3aGVuIHRoZSByZWdleCBkZXZpY2VzIGZhaWxzIHRv
IHVwZGF0ZSB0aGUgcnVsZSBkYXRhYmFzZSBvcg0KPiA+ICsgKiAgIGlmIGludmFsaWQgcGFyYW1l
dGVycyBhcmUgc3BlY2lmaWVkIGluIGEgKnJ0ZV9yZWdleF9ydWxlKi4NCj4gPiArICogICBJZiB0
aGUgcmV0dXJuIHZhbHVlIGlzIGxlc3MgdGhhbiAqbmJfcnVsZXMqLCB0aGUgcmVtYWluaW5nIFBD
UkUgcnVsZXMNCj4gPiArICogICBhdCB0aGUgZW5kIG9mICpydWxlcyogYXJlIG5vdCBjb25zdW1l
ZCBhbmQgdGhlIGNhbGxlciBoYXMgdG8gdGFrZQ0KPiA+ICsgKiAgIGNhcmUgb2YgdGhlbSBhbmQg
cnRlX2Vycm5vIGlzIHNldCBhY2NvcmRpbmdseS4NCj4gPiArICogICBQb3NzaWJsZSBlcnJubyB2
YWx1ZXMgaW5jbHVkZToNCj4gPiArICogICAtIC1FSU5WQUw6ICBJbnZhbGlkIGRldmljZSBJRCBv
ciBydWxlcyBpcyBOVUxMDQo+ID4gKyAqICAgLSAtRU5PVFNVUDogVGhlIGxhc3QgcHJvY2Vzc2Vk
IHJ1bGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRldmljZS4NCj4gPiArICogICAtIC1FTk9T
UEM6IE5vIHNwYWNlIGF2YWlsYWJsZSBpbiBydWxlIGRhdGFiYXNlLg0KPiA+ICsgKg0KPiA+ICsg
KiBAc2VlIHJ0ZV9yZWdleF9ydWxlX2RiX2ltcG9ydCgpLCBydGVfcmVnZXhfcnVsZV9kYl9leHBv
cnQoKQ0KPiA+ICsgKi8NCj4gPiArdWludDE2X3QNCj4gPiArcnRlX3JlZ2V4X3J1bGVfZGJfdXBk
YXRlKHVpbnQ4X3QgZGV2X2lkLCBjb25zdCBzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGUNCj4gPiAqcnVs
ZXMsDQo+ID4gKwkJCSB1aW50MTZfdCBuYl9ydWxlcyk7DQo+IA0KPiBJIHRoaW5rIHRoZSBmdW5j
dGlvbiBuYW1lIGlzIG5vdCB0b28gaW5mb3JtYXRpdmUuIElmIHRoaXMgZnVuY3Rpb24gbWVhbnQg
dG8NCj4gY29tcGlsZSB0aGUgcnVsZSB0aGVuIGl0IHNob3VsZCBiZSBleHBsaWNpdCBvbiB0aGUg
ZnVuY3Rpb24gbmFtZS4NCj4gDQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogSW1wb3J0IGEgcHJl
YnVpbHQgcnVsZSBkYXRhYmFzZSBmcm9tIGEgYnVmZmVyIHRvIGEgUmVnRXggZGV2aWNlLg0KPiA+
ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2X2lkIFJlZ0V4IGRldmljZSBpZGVudGlmaWVyDQo+ID4g
KyAqIEBwYXJhbSBydWxlX2RiDQo+ID4gKyAqICAgUG9pbnRzIHRvIHByZWJ1aWx0IHJ1bGUgZGF0
YWJhc2UuDQo+ID4gKyAqIEBwYXJhbSBydWxlX2RiX2xlbg0KPiA+ICsgKiAgIExlbmd0aCBvZiB0
aGUgcnVsZSBkYXRhYmFzZS4NCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIC0g
MDogU3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgdGhlIHByZWJ1aWx0IHJ1bGUgZGF0YWJhc2UuDQo+ID4g
KyAqICAgLSAtRUlOVkFMOiAgSW52YWxpZCBkZXZpY2UgSUQgb3IgcnVsZV9kYiBpcyBOVUxMDQo+
ID4gKyAqICAgLSAtRU5PVFNVUDogUnVsZSBkYXRhYmFzZSBpbXBvcnQgaXMgbm90IHN1cHBvcnRl
ZCBvbiB0aGlzIGRldmljZS4NCj4gPiArICogICAtIC1FTk9TUEM6IE5vIHNwYWNlIGF2YWlsYWJs
ZSBpbiBydWxlIGRhdGFiYXNlLg0KPiA+ICsgKg0KPiA+ICsgKiBAc2VlIHJ0ZV9yZWdleF9ydWxl
X2RiX3VwZGF0ZSgpLCBydGVfcmVnZXhfcnVsZV9kYl9leHBvcnQoKQ0KPiA+ICsgKi8NCj4gPiAr
aW50DQo+ID4gK3J0ZV9yZWdleF9ydWxlX2RiX2ltcG9ydCh1aW50OF90IGRldl9pZCwgY29uc3Qg
Y2hhciAqcnVsZV9kYiwNCj4gPiArCQkJIHVpbnQzMl90IHJ1bGVfZGJfbGVuKTsNCj4gPiArDQo+
ID4gKy8qKg0KPiA+ICsgKiBFeHBvcnQgdGhlIHByZWJ1aWx0IHJ1bGUgZGF0YWJhc2UgZnJvbSBh
IFJlZ0V4IGRldmljZSB0byB0aGUgYnVmZmVyLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2
X2lkIFJlZ0V4IGRldmljZSBpZGVudGlmaWVyDQo+ID4gKyAqIEBwYXJhbVtvdXRdIHJ1bGVfZGIN
Cj4gPiArICogICBCbG9jayBvZiBtZW1vcnkgdG8gaW5zZXJ0IHRoZSBydWxlIGRhdGFiYXNlLiBN
dXN0IGJlIGF0IGxlYXN0IHNpemUgaW4NCj4gPiArICogICBjYXBhY2l0eS4gSWYgc2V0IHRvIE5V
TEwsIGZ1bmN0aW9uIHJldHVybnMgcmVxdWlyZWQgY2FwYWNpdHkuDQo+ID4gKyAqDQo+ID4gKyAq
IEByZXR1cm4NCj4gPiArICogICAtIDA6IFN1Y2Nlc3NmdWxseSBleHBvcnRlZCB0aGUgcHJlYnVp
bHQgcnVsZSBkYXRhYmFzZS4NCj4gPiArICogICAtIHNpemU6IElmIHJ1bGVfZGIgc2V0IHRvIE5V
TEwgdGhlbiByZXF1aXJlZCBjYXBhY2l0eSBmb3IgKnJ1bGVfZGIqDQo+ID4gKyAqICAgLSAtRUlO
VkFMOiAgSW52YWxpZCBkZXZpY2UgSUQNCj4gPiArICogICAtIC1FTk9UU1VQOiBSdWxlIGRhdGFi
YXNlIGV4cG9ydCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgZGV2aWNlLg0KPiA+ICsgKg0KPiA+
ICsgKiBAc2VlIHJ0ZV9yZWdleF9ydWxlX2RiX3VwZGF0ZSgpLCBydGVfcmVnZXhfcnVsZV9kYl9p
bXBvcnQoKQ0KPiA+ICsgKi8NCj4gPiAraW50DQo+ID4gK3J0ZV9yZWdleF9ydWxlX2RiX2V4cG9y
dCh1aW50OF90IGRldl9pZCwgY2hhciAqcnVsZV9kYik7DQo+ID4gKw0KPiA+ICsvKiBFeHRlbmRl
ZCBzdGF0aXN0aWNzICovDQo+ID4gKy8qKiBNYXhpbXVtIG5hbWUgbGVuZ3RoIGZvciBleHRlbmRl
ZCBzdGF0aXN0aWNzIGNvdW50ZXJzICovDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VYX0RFVl9YU1RB
VFNfTkFNRV9TSVpFIDY0DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogQSBuYW1lLWtleSBsb29r
dXAgZWxlbWVudCBmb3IgZXh0ZW5kZWQgc3RhdGlzdGljcy4NCj4gPiArICoNCj4gPiArICogVGhp
cyBzdHJ1Y3R1cmUgaXMgdXNlZCB0byBtYXAgYmV0d2VlbiBuYW1lcyBhbmQgSUQgbnVtYmVycw0K
PiA+ICsgKiBmb3IgZXh0ZW5kZWQgUmVnRXggZGV2aWNlIHN0YXRpc3RpY3MuDQo+ID4gKyAqLw0K
PiA+ICtzdHJ1Y3QgcnRlX3JlZ2V4X2Rldl94c3RhdHNfbWFwIHsNCj4gPiArCXVpbnQxNl90IGlk
Ow0KPiA+ICsJLyoqPCB4c3RhdCBpZGVudGlmaWVyICovDQo+ID4gKwljaGFyIG5hbWVbUlRFX1JF
R0VYX0RFVl9YU1RBVFNfTkFNRV9TSVpFXTsNCj4gPiArCS8qKjwgeHN0YXQgbmFtZSAqLw0KPiA+
ICt9Ow0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIFJldHJpZXZlIG5hbWVzIG9mIGV4dGVuZGVk
IHN0YXRpc3RpY3Mgb2YgYSByZWdleCBkZXZpY2UuDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSBk
ZXZfaWQNCj4gPiArICogICBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVnZXggZGV2aWNlLg0KPiA+
ICsgKiBAcGFyYW1bb3V0XSB4c3RhdHNfbWFwDQo+ID4gKyAqICAgQmxvY2sgb2YgbWVtb3J5IHRv
IGluc2VydCBpZCBhbmQgbmFtZXMgaW50by4gTXVzdCBiZSBhdCBsZWFzdCBzaXplIGluDQo+ID4g
KyAqICAgY2FwYWNpdHkuIElmIHNldCB0byBOVUxMLCBmdW5jdGlvbiByZXR1cm5zIHJlcXVpcmVk
IGNhcGFjaXR5Lg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgLSBwb3NpdGl2ZSB2YWx1ZSBv
biBzdWNjZXNzOg0KPiA+ICsgKiAgICAgICAgLVRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIG51bWJl
ciBvZiBlbnRyaWVzIGZpbGxlZCBpbiB0aGUgc3RhdHMgbWFwLg0KPiA+ICsgKiAgICAgICAgLUlm
IHhzdGF0c19tYXAgc2V0IHRvIE5VTEwgdGhlbiByZXF1aXJlZCBjYXBhY2l0eSBmb3IgeHN0YXRz
X21hcC4NCj4gPiArICogICAtIG5lZ2F0aXZlIHZhbHVlIG9uIGVycm9yOg0KPiA+ICsgKiAgICAg
IC1FTk9ERVYgZm9yIGludmFsaWQgKmRldl9pZCoNCj4gPiArICogICAgICAtRU5PVFNVUCBpZiB0
aGUgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIGZ1bmN0aW9uLg0KPiA+ICsgKi8NCj4gPiAr
aW50DQo+ID4gK3J0ZV9yZWdleF9kZXZfeHN0YXRzX25hbWVzX2dldCh1aW50OF90IGRldl9pZCwN
Cj4gPiArCQkJICAgICAgIHN0cnVjdCBydGVfcmVnZXhfZGV2X3hzdGF0c19tYXAgKnhzdGF0c19t
YXApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIFJldHJpZXZlIGV4dGVuZGVkIHN0YXRpc3Rp
Y3Mgb2YgYW4gcmVnZXggZGV2aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2X2lkDQo+
ID4gKyAqICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGRldmljZS4NCj4gPiArICogQHBhcmFtIGlk
cw0KPiA+ICsgKiAgIFRoZSBpZCBudW1iZXJzIG9mIHRoZSBzdGF0cyB0byBnZXQuIFRoZSBpZHMg
Y2FuIGJlIGdvdCBmcm9tIHRoZSBzdGF0DQo+ID4gKyAqICAgcG9zaXRpb24gaW4gdGhlIHN0YXQg
bGlzdCBmcm9tIHJ0ZV9yZWdleF9kZXZfeHN0YXRzX25hbWVzX2dldCgpLCBvcg0KPiA+ICsgKiAg
IGJ5IHVzaW5nIHJ0ZV9yZWdleF9kZXZfeHN0YXRzX2J5X25hbWVfZ2V0KCkuDQo+ID4gKyAqIEBw
YXJhbVtvdXRdIHZhbHVlcw0KPiA+ICsgKiAgIFRoZSB2YWx1ZXMgZm9yIGVhY2ggc3RhdHMgcmVx
dWVzdCBieSBJRC4NCj4gPiArICogQHBhcmFtIG4NCj4gPiArICogICBUaGUgbnVtYmVyIG9mIHN0
YXRzIHJlcXVlc3RlZA0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgLSBwb3NpdGl2ZSB2YWx1
ZTogbnVtYmVyIG9mIHN0YXQgZW50cmllcyBmaWxsZWQgaW50byB0aGUgdmFsdWVzIGFycmF5DQo+
ID4gKyAqICAgLSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvcjoNCj4gPiArICogICAgICAtRU5PREVW
IGZvciBpbnZhbGlkICpkZXZfaWQqDQo+ID4gKyAqICAgICAgLUVOT1RTVVAgaWYgdGhlIGRldmlj
ZSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBmdW5jdGlvbi4NCj4gPiArICovDQo+ID4gK2ludA0KPiA+
ICtydGVfcmVnZXhfZGV2X3hzdGF0c19nZXQodWludDhfdCBkZXZfaWQsIGNvbnN0IHVpbnQxNl90
IGlkc1tdLA0KPiA+ICsJCQkgdWludDY0X3QgdmFsdWVzW10sIHVpbnQxNl90IG4pOw0KPiA+ICsN
Cj4gPiArLyoqDQo+ID4gKyAqIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiBhIHNpbmdsZSBzdGF0IGJ5
IHJlcXVlc3RpbmcgaXQgYnkgbmFtZS4NCj4gPiArICoNCj4gPiArICogQHBhcmFtIGRldl9pZA0K
PiA+ICsgKiAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UNCj4gPiArICogQHBhcmFtIG5h
bWUNCj4gPiArICogICBUaGUgc3RhdCBuYW1lIHRvIHJldHJpZXZlDQo+ID4gKyAqIEBwYXJhbVtv
dXRdIGlkDQo+ID4gKyAqICAgSWYgbm9uLU5VTEwsIHRoZSBudW1lcmljYWwgaWQgb2YgdGhlIHN0
YXQgd2lsbCBiZSByZXR1cm5lZCwgc28gdGhhdCBmdXJ0aGVyDQo+ID4gKyAqICAgcmVxdWVzdHMg
Zm9yIHRoZSBzdGF0IGNhbiBiZSBnb3QgdXNpbmcgcnRlX3JlZ2V4X2Rldl94c3RhdHNfZ2V0LCB3
aGljaA0KPiA+IHdpbGwNCj4gPiArICogICBiZSBmYXN0ZXIgYXMgaXQgZG9lc24ndCBuZWVkIHRv
IHNjYW4gYSBsaXN0IG9mIG5hbWVzIGZvciB0aGUgc3RhdC4NCj4gPiArICogQHBhcmFtW291dF0g
dmFsdWUNCj4gPiArICogICBNdXN0IGJlIG5vbi1OVUxMLCByZXRyaWV2ZWQgeHN0YXQgdmFsdWUg
d2lsbCBiZSBzdG9yZWQgaW4gdGhpcyBhZGRyZXNzLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJu
DQo+ID4gKyAqICAgLSAwOiBTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHhzdGF0IHZhbHVlLg0KPiA+
ICsgKiAgIC0gLUVJTlZBTDogaW52YWxpZCBwYXJhbWV0ZXJzDQo+ID4gKyAqICAgLSAtRU5PVFNV
UDogaWYgbm90IHN1cHBvcnRlZC4NCj4gPiArICovDQo+ID4gK2ludA0KPiA+ICtydGVfcmVnZXhf
ZGV2X3hzdGF0c19ieV9uYW1lX2dldCh1aW50OF90IGRldl9pZCwgY29uc3QgY2hhciAqbmFtZSwN
Cj4gPiArCQkJCSB1aW50MTZfdCAqaWQsIHVpbnQ2NF90ICp2YWx1ZSk7DQo+ID4gKw0KPiA+ICsv
KioNCj4gPiArICogUmVzZXQgdGhlIHZhbHVlcyBvZiB0aGUgeHN0YXRzIG9mIHRoZSBzZWxlY3Rl
ZCBjb21wb25lbnQgaW4gdGhlIGRldmljZS4NCj4gPiArICoNCj4gPiArICogQHBhcmFtIGRldl9p
ZA0KPiA+ICsgKiAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UNCj4gPiArICogQHBhcmFt
IGlkcw0KPiA+ICsgKiAgIFNlbGVjdHMgc3BlY2lmaWMgc3RhdGlzdGljcyB0byBiZSByZXNldC4g
V2hlbiBOVUxMLCBhbGwgc3RhdGlzdGljcyB3aWxsIGJlDQo+ID4gKyAqICAgcmVzZXQuIElmIG5v
bi1OVUxMLCBtdXN0IHBvaW50IHRvIGFycmF5IG9mIGF0IGxlYXN0ICpuYl9pZHMqIHNpemUuDQo+
ID4gKyAqIEBwYXJhbSBuYl9pZHMNCj4gPiArICogICBUaGUgbnVtYmVyIG9mIGlkcyBhdmFpbGFi
bGUgZnJvbSB0aGUgKmlkcyogYXJyYXkuIElnbm9yZWQgd2hlbiBpZHMgaXMNCj4gPiBOVUxMLg0K
PiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgLSAwOiBTdWNjZXNzZnVsbHkgcmVzZXQgdGhlIHN0
YXRpc3RpY3MgdG8gemVyby4NCj4gPiArICogICAtIC1FSU5WQUw6IGludmFsaWQgcGFyYW1ldGVy
cw0KPiA+ICsgKiAgIC0gLUVOT1RTVVA6IGlmIG5vdCBzdXBwb3J0ZWQuDQo+ID4gKyAqLw0KPiA+
ICtpbnQNCj4gPiArcnRlX3JlZ2V4X2Rldl94c3RhdHNfcmVzZXQodWludDhfdCBkZXZfaWQsIGNv
bnN0IHVpbnQxNl90IGlkc1tdLA0KPiA+ICsJCQkgICB1aW50MTZfdCBuYl9pZHMpOw0KPiA+ICsN
Cj4gPiArLyoqDQo+ID4gKyAqIFRyaWdnZXIgdGhlIFJlZ0V4IGRldmljZSBzZWxmIHRlc3QuDQo+
ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSBkZXZfaWQNCj4gPiArICogICBUaGUgaWRlbnRpZmllciBv
ZiB0aGUgZGV2aWNlDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICAtIDA6IFNlbGZ0ZXN0IHN1
Y2Nlc3NmdWwNCj4gPiArICogICAtIC1FTk9UU1VQIGlmIHRoZSBkZXZpY2UgZG9lc24ndCBzdXBw
b3J0IHNlbGZ0ZXN0DQo+ID4gKyAqICAgLSBvdGhlciB2YWx1ZXMgPCAwIG9uIGZhaWx1cmUuDQo+
ID4gKyAqLw0KPiA+ICtpbnQgcnRlX3JlZ2V4X2Rldl9zZWxmdGVzdCh1aW50OF90IGRldl9pZCk7
DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogRHVtcCBpbnRlcm5hbCBpbmZvcm1hdGlvbiBhYm91
dCAqZGV2X2lkKiB0byB0aGUgRklMRSogcHJvdmlkZWQgaW4gKmYqLg0KPiA+ICsgKg0KPiA+ICsg
KiBAcGFyYW0gZGV2X2lkDQo+ID4gKyAqICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGRldmljZS4N
Cj4gPiArICoNCj4gPiArICogQHBhcmFtIGYNCj4gPiArICogICBBIHBvaW50ZXIgdG8gYSBmaWxl
IGZvciBvdXRwdXQNCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIC0gMDogb24g
c3VjY2Vzcw0KPiA+ICsgKiAgIC0gPDA6IG9uIGZhaWx1cmUuDQo+ID4gKyAqLw0KPiA+ICtpbnQN
Cj4gPiArcnRlX3JlZ2V4X2Rldl9kdW1wKHVpbnQ4X3QgZGV2X2lkLCBGSUxFICpmKTsNCj4gPiAr
DQo+ID4gKy8qIEZhc3QgcGF0aCBBUElzICovDQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogVGhl
IGdlbmVyaWMgKnJ0ZV9yZWdleF9tYXRjaCogc3RydWN0dXJlIHRvIGhvbGQgdGhlIFJlZ0V4IG1h
dGNoDQo+ID4gYXR0cmlidXRlcy4NCj4gPiArICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X29wczo6
bWF0Y2hlcw0KPiA+ICsgKi8NCj4gPiArc3RydWN0IHJ0ZV9yZWdleF9tYXRjaCB7DQo+ID4gKwlS
VEVfU1REX0MxMQ0KPiA+ICsJdW5pb24gew0KPiA+ICsJCXVpbnQ2NF90IHU2NDsNCj4gPiArCQlz
dHJ1Y3Qgew0KPiA+ICsJCQl1aW50MzJfdCBydWxlX2lkOjIwOw0KPiA+ICsJCQkvKio8IFJ1bGUg
aWRlbnRpZmllciB0byB3aGljaCB0aGUgcGF0dGVybiBtYXRjaGVkLg0KPiA+ICsJCQkgKiBAc2Vl
IHN0cnVjdCBydGVfcmVnZXhfcnVsZTo6cnVsZV9pZA0KPiA+ICsJCQkgKi8NCj4gPiArCQkJdWlu
dDMyX3QgZ3JvdXBfaWQ6MTI7DQo+ID4gKwkJCS8qKjwgR3JvdXAgaWRlbnRpZmllciBvZiB0aGUg
cnVsZSB3aGljaCB0aGUgcGF0dGVybg0KPiA+ICsJCQkgKiBtYXRjaGVkLiBAc2VlIHN0cnVjdCBy
dGVfcmVnZXhfcnVsZTo6Z3JvdXBfaWQNCj4gPiArCQkJICovDQo+ID4gKwkJCXVpbnQxNl90IG9m
ZnNldDsNCj4gPiArCQkJLyoqPCBTdGFydGluZyBCeXRlIFBvc2l0aW9uIGZvciBtYXRjaGVkIHJ1
bGUuICovDQo+ID4gKwkJCXVpbnQxNl90IGxlbjsNCj4gPiArCQkJLyoqPCBMZW5ndGggb2YgbWF0
Y2ggaW4gYnl0ZXMgKi8NCj4gPiArCQl9Ow0KPiA+ICsJfTsNCj4gPiArfTsNCj4gPiArDQo+ID4g
Ky8qIEVudW1lcmF0ZXMgUmVnRXggcmVxdWVzdCBmbGFncy4gKi8NCj4gPiArI2RlZmluZSBSVEVf
UkVHRVhfT1BTX1JFUV9HUk9VUF9JRDFfVkFMSURfRiAoMSA8PCAwKQ0KPiA+ICsvKio8IFNldCB3
aGVuIHN0cnVjdCBydGVfcmVnZXhfcnVsZTo6Z3JvdXBfaWQxIHZhbGlkICovDQo+ID4gKw0KPiA+
ICsjZGVmaW5lIFJURV9SRUdFWF9PUFNfUkVRX0dST1VQX0lEMl9WQUxJRF9GICgxIDw8IDEpDQo+
ID4gKy8qKjwgU2V0IHdoZW4gc3RydWN0IHJ0ZV9yZWdleF9ydWxlOjpncm91cF9pZDIgdmFsaWQg
Ki8NCj4gPiArDQo+ID4gKyNkZWZpbmUgUlRFX1JFR0VYX09QU19SRVFfR1JPVVBfSUQzX1ZBTElE
X0YgKDEgPDwgMikNCj4gPiArLyoqPCBTZXQgd2hlbiBzdHJ1Y3QgcnRlX3JlZ2V4X3J1bGU6Omdy
b3VwX2lkMyB2YWxpZCAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVfUkVHRVhfT1BTX1JFUV9T
VE9QX09OX01BVENIX0YgKDEgPDwgNCkNCj4gPiArLyoqPCBUaGUgUmVnRXggZW5naW5lIHdpbGwg
c3RvcCBzY2FubmluZyBhbmQgcmV0dXJuIHRoZSBmaXJzdCBtYXRjaC4gKi8NCj4gPiArDQo+ID4g
KyNkZWZpbmUgUlRFX1JFR0VYX09QU19SRVFfTUFUQ0hfSElHSF9QUklPUklUWV9GICgxIDw8IDUp
DQo+ID4gKy8qKjwgSW4gSGlnaCBQcmlvcml0eSBtb2RlIGEgbWF4aW11bSBvZiBvbmUgbWF0Y2gg
d2lsbCBiZSByZXR1cm5lZCBwZXINCj4gPiBzY2FuIHRvDQo+ID4gKyAqIHJlZHVjZSB0aGUgcG9z
dC1wcm9jZXNzaW5nIHJlcXVpcmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhlIG1hdGNoIHdpdGgN
Cj4gPiB0aGUNCj4gPiArICogbG93ZXN0IFJ1bGUgaWQsIGxvd2VzdCBzdGFydCBwb2ludGVyIGFu
ZCBsb3dlc3QgbWF0Y2ggbGVuZ3RoIHdpbGwgYmUNCj4gPiArICogcmV0dXJuZWQuDQo+ID4gKyAq
DQo+ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9vcHM6Om5iX2FjdHVhbF9tYXRjaGVzDQo+
ID4gKyAqIEBzZWUgc3RydWN0IHJ0ZV9yZWdleF9vcHM6Om5iX21hdGNoZXMNCj4gPiArICovDQo+
ID4gKw0KPiA+ICsNCj4gPiArLyogRW51bWVyYXRlcyBSZWdFeCByZXNwb25zZSBmbGFncy4gKi8N
Cj4gPiArI2RlZmluZSBSVEVfUkVHRVhfT1BTX1JTUF9QTUlfU09KX0YgKDEgPDwgMCkNCj4gPiAr
LyoqPCBJbmRpY2F0ZXMgdGhhdCB0aGUgUmVnRXggZGV2aWNlIGhhcyBlbmNvdW50ZXJlZCBhIHBh
cnRpYWwgbWF0Y2ggYXQgdGhlDQo+ID4gKyAqIHN0YXJ0IG9mIHNjYW4gaW4gdGhlIGdpdmVuIGJ1
ZmZlci4NCj4gPiArICoNCj4gPiArICogQHNlZSBSVEVfUkVHRVhfREVWX0NGR19DUk9TU19CVUZG
RVJfU0NBTl9GDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVfUkVHRVhfT1BTX1JT
UF9QTUlfRU9KX0YgKDEgPDwgMSkNCj4gPiArLyoqPCBJbmRpY2F0ZXMgdGhhdCB0aGUgUmVnRXgg
ZGV2aWNlIGhhcyBlbmNvdW50ZXJlZCBhIHBhcnRpYWwgbWF0Y2ggYXQgdGhlDQo+ID4gKyAqIGVu
ZCBvZiBzY2FuIGluIHRoZSBnaXZlbiBidWZmZXIuDQo+ID4gKyAqDQo+ID4gKyAqIEBzZWUgUlRF
X1JFR0VYX0RFVl9DRkdfQ1JPU1NfQlVGRkVSX1NDQU5fRg0KPiA+ICsgKi8NCj4gPiArDQo+ID4g
KyNkZWZpbmUgUlRFX1JFR0VYX09QU19SU1BfTUFYX1NDQU5fVElNRU9VVF9GICgxIDw8IDIpDQo+
ID4gKy8qKjwgSW5kaWNhdGVzIHRoYXQgdGhlIFJlZ0V4IGRldmljZSBoYXMgZXhjZWVkZWQgdGhl
IG1heCB0aW1lb3V0IHdoaWxlDQo+ID4gKyAqIHNjYW5uaW5nIHRoZSBnaXZlbiBidWZmZXIuDQo+
ID4gKyAqDQo+ID4gKyAqIEBzZWUgUlRFX1JFR0VYX0RFVl9BVFRSX01BWF9TQ0FOX1RJTUVPVVQN
Cj4gPiArICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJURV9SRUdFWF9PUFNfUlNQX01BWF9NQVRD
SF9GICgxIDw8IDMpDQo+ID4gKy8qKjwgSW5kaWNhdGVzIHRoYXQgdGhlIFJlZ0V4IGRldmljZSBo
YXMgZXhjZWVkZWQgdGhlIG1heCBtYXRjaGVzIHdoaWxlDQo+ID4gKyAqIHNjYW5uaW5nIHRoZSBn
aXZlbiBidWZmZXIuDQo+ID4gKyAqDQo+ID4gKyAqIEBzZWUgUlRFX1JFR0VYX0RFVl9BVFRSX01B
WF9NQVRDSEVTDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2RlZmluZSBSVEVfUkVHRVhfT1BTX1JT
UF9NQVhfUFJFRklYX0YgKDEgPDwgNCkNCj4gPiArLyoqPCBJbmRpY2F0ZXMgdGhhdCB0aGUgUmVn
RXggZGV2aWNlIGhhcyByZWFjaGVkIHRoZSBtYXggYWxsb3dlZCBwcmVmaXgNCj4gPiBsZW5ndGgN
Cj4gPiArICogd2hpbGUgc2Nhbm5pbmcgdGhlIGdpdmVuIGJ1ZmZlci4NCj4gPiArICoNCj4gPiAr
ICogQHNlZSBSVEVfUkVHRVhfREVWX0FUVFJfTUFYX1BSRUZJWA0KPiA+ICsgKi8NCj4gPiArDQo+
ID4gKy8qKg0KPiA+ICsgKiBUaGUgZ2VuZXJpYyAqcnRlX3JlZ2V4X29wcyogc3RydWN0dXJlIHRv
IGhvbGQgdGhlIFJlZ0V4IGF0dHJpYnV0ZXMNCj4gPiArICogZm9yIGVucXVldWUgYW5kIGRlcXVl
dWUgb3BlcmF0aW9uLg0KPiA+ICsgKi8NCj4gPiArc3RydWN0IHJ0ZV9yZWdleF9vcHMgew0KPiA+
ICsJLyogVzAgKi8NCj4gPiArCXVpbnQxNl90IHJlcV9mbGFnczsNCj4gPiArCS8qKjwgUmVxdWVz
dCBmbGFncyBmb3IgdGhlIFJlZ0V4IG9wcy4NCj4gPiArCSAqIEBzZWUgUlRFX1JFR0VYX09QU19S
RVFfKg0KPiA+ICsJICovDQo+ID4gKwl1aW50MTZfdCBzY2FuX3NpemU7DQo+ID4gKwkvKio8IFNj
YW4gc2l6ZSBvZiB0aGUgYnVmZmVyIHRvIGJlIHNjYW5uZWQgaW4gYnl0ZXMuICovDQo+ID4gKwl1
aW50MTZfdCByc3BfZmxhZ3M7DQo+ID4gKwkvKio8IFJlc3BvbnNlIGZsYWdzIGZvciB0aGUgUmVn
RXggb3BzLg0KPiA+ICsJICogQHNlZSBSVEVfUkVHRVhfT1BTX1JTUF8qDQo+ID4gKwkgKi8NCj4g
PiArCXVpbnQ4X3QgbmJfYWN0dWFsX21hdGNoZXM7DQo+ID4gKwkvKio8IFRoZSB0b3RhbCBudW1i
ZXIgb2YgYWN0dWFsIG1hdGNoZXMgZGV0ZWN0ZWQgYnkgdGhlIFJlZ2V4DQo+ID4gZGV2aWNlLiov
DQo+ID4gKwl1aW50OF90IG5iX21hdGNoZXM7DQo+ID4gKwkvKio8IFRoZSB0b3RhbCBudW1iZXIg
b2YgbWF0Y2hlcyByZXR1cm5lZCBieSB0aGUgUmVnRXggZGV2aWNlIGZvcg0KPiA+IHRoaXMNCj4g
PiArCSAqIHNjYW4uIFRoZSBzaXplIG9mICpydGVfcmVnZXhfb3BzOjptYXRjaGVzKiB6ZXJvIGxl
bmd0aCBhcnJheSB3aWxsDQo+ID4gYmUNCj4gPiArCSAqIHRoaXMgdmFsdWUuDQo+ID4gKwkgKg0K
PiA+ICsJICogQHNlZSBzdHJ1Y3QgcnRlX3JlZ2V4X29wczo6bWF0Y2hlcywgc3RydWN0IHJ0ZV9y
ZWdleF9tYXRjaA0KPiA+ICsJICovDQo+ID4gKw0KPiA+ICsJLyogVzEgKi8NCj4gPiArCVJURV9T
VERfQzExDQo+ID4gKwl1bmlvbiB7DQo+ID4gKwkJdWludDY0X3QgdTY0Ow0KPiA+ICsJCS8qKjwg
IEFsbG93IDgtYnl0ZSByZXNlcnZlZCBvbiAzMi1iaXQgc3lzdGVtICovDQo+ID4gKwkJdm9pZCAq
YnVmX2FkZHI7DQo+ID4gKwkJLyoqPCBWaXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIHBhdHRlcm4gdG8g
YmUgbWF0Y2hlZC4gKi8NCj4gPiArCX07DQo+ID4gKw0KPiA+ICsJLyogVzIgKi8NCj4gPiArCXJ0
ZV9pb3ZhX3QgYnVmX2lvdmE7DQo+ID4gKwkvKio8IElPVkEgYWRkcmVzcyBvZiB0aGUgcGF0dGVy
biB0byBiZSBtYXRjaGVkLiAqLw0KPiA+ICsNCj4gPiArCS8qIFczICovDQo+ID4gKwl1aW50MTZf
dCBncm91cF9pZDA7DQo+ID4gKwkvKio8IEZpcnN0IGdyb3VwX2lkIHRvIG1hdGNoIHRoZSBydWxl
IGFnYWluc3QuIE1pbmltdW0gb25lIGdyb3VwIGlkDQo+ID4gKwkgKiBtdXN0IGJlIHByb3ZpZGVk
IGJ5IGFwcGxpY2F0aW9uLg0KPiA+ICsJICogV2hlbiBSVEVfUkVHRVhfT1BTX1JFUV9HUk9VUF9J
RDFfVkFMSURfRiBzZXQgdGhlbg0KPiA+IGdyb3VwX2lkMQ0KPiA+ICsJICogaXMgdmFsaWQsIHJl
c3BlY3RpdmVseSBzaW1pbGFyIGZsYWdzIGZvciBncm91cF9pZDIgYW5kIGdyb3VwX2lkMy4NCj4g
PiArCSAqIFVwb24gdGhlIG1hdGNoLCBzdHJ1Y3QgcnRlX3JlZ2V4X21hdGNoOjpncm91cF9pZCBz
aGFsbCBiZQ0KPiA+IHVwZGF0ZWQNCj4gPiArCSAqIHdpdGggbWF0Y2hpbmcgZ3JvdXAgSUQgYnkg
dGhlIGRldmljZS4gR3JvdXAgSUQgc2NoZW1lIHByb3ZpZGVzDQo+ID4gKwkgKiBydWxlIGlzb2xh
dGlvbiBhbmQgZWZmZWN0aXZlIHBhdHRlcm4gbWF0Y2hpbmcuDQo+ID4gKwkgKi8NCj4gPiArCXVp
bnQxNl90IGdyb3VwX2lkMTsNCj4gPiArCS8qKjwgU2Vjb25kIGdyb3VwX2lkIHRvIG1hdGNoIHRo
ZSBydWxlIGFnYWluc3QuDQo+ID4gKwkgKg0KPiA+ICsJICogQHNlZSBSVEVfUkVHRVhfT1BTX1JF
UV9HUk9VUF9JRDFfVkFMSURfRg0KPiA+ICsJICovDQo+ID4gKwl1aW50MTZfdCBncm91cF9pZDI7
DQo+ID4gKwkvKio8IFRoaXJkIGdyb3VwX2lkIHRvIG1hdGNoIHRoZSBydWxlIGFnYWluc3QuDQo+
ID4gKwkgKg0KPiA+ICsJICogQHNlZSBSVEVfUkVHRVhfT1BTX1JFUV9HUk9VUF9JRDJfVkFMSURf
Rg0KPiA+ICsJICovDQo+ID4gKwl1aW50MTZfdCBncm91cF9pZDM7DQo+ID4gKwkvKio8IEZvcnRo
IGdyb3VwX2lkIHRvIG1hdGNoIHRoZSBydWxlIGFnYWluc3QuDQo+ID4gKwkgKg0KPiA+ICsJICog
QHNlZSBSVEVfUkVHRVhfT1BTX1JFUV9HUk9VUF9JRDNfVkFMSURfRg0KPiA+ICsJICovDQo+ID4g
Kw0KPiA+ICsJLyogVzQgKi8NCj4gPiArCVJURV9TVERfQzExDQo+ID4gKwl1bmlvbiB7DQo+ID4g
KwkJdWludDY0X3QgdXNlcl9pZDsNCj4gPiArCQkvKio8IEFwcGxpY2F0aW9uIHNwZWNpZmljIG9w
YXF1ZSB2YWx1ZS4gQW4gYXBwbGljYXRpb24gbWF5DQo+ID4gdXNlDQo+ID4gKwkJICogdGhpcyBm
aWVsZCB0byBob2xkIGFwcGxpY2F0aW9uIHNwZWNpZmljIHZhbHVlIHRvIHNoYXJlDQo+ID4gKwkJ
ICogYmV0d2VlbiBkZXF1ZXVlIGFuZCBlbnF1ZXVlIG9wZXJhdGlvbi4NCj4gPiArCQkgKiBJbXBs
ZW1lbnRhdGlvbiBzaG91bGQgbm90IG1vZGlmeSB0aGlzIGZpZWxkLg0KPiA+ICsJCSAqLw0KPiA+
ICsJCXZvaWQgKnVzZXJfcHRyOw0KPiA+ICsJCS8qKjwgUG9pbnRlciByZXByZXNlbnRhdGlvbiBv
ZiAqdXNlcl9pZCogKi8NCj4gPiArCX07DQo+IA0KPiBTaW5jZSB3ZSB0YXJnZXQgdGhlIHJlZ2V4
IHN1YnN5c3RlbSBmb3IgYm90aCByZWdleCBhbmQgRFBJIEkgdGhpbmsgaXQgd2lsbCBiZQ0KPiBn
b29kIHRvIGFkZCBhbm90aGVyIHVpbnQ2NF90IGZpZWxkIGNhbGxlZCBjb25uZWN0aW9uX2lkLg0K
PiBEZXZpY2UgdGhhdCBzdXBwb3J0IERQSSBjYW4gcmVmZXIgdG8gaXQgYXMgYW5vdGhlciBtYXRj
aCBhYmxlIGZpZWxkIHdoZW4gbG9va2luZw0KPiB1cCBmb3IgbWF0Y2hlcyBvbiB0aGUgZ2l2ZW4g
YnVmZmVyLg0KPiANCj4gVGhpcyBmaWVsZCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgdXNlcl9pZCwg
YXMgaXQgaXMgbm90IG9wYXF1ZSBmb3IgdGhlIGRldmljZS4NCj4gDQo+ID4gKw0KPiA+ICsJLyog
VzUgKi8NCj4gPiArCXN0cnVjdCBydGVfcmVnZXhfbWF0Y2ggbWF0Y2hlc1tdOw0KPiA+ICsJLyoq
PCBaZXJvIGxlbmd0aCBhcnJheSB0byBob2xkIHRoZSBtYXRjaCB0dXBsZXMuDQo+ID4gKwkgKiBU
aGUgc3RydWN0IHJ0ZV9yZWdleF9vcHM6Om5iX21hdGNoZXMgdmFsdWUgaG9sZHMgdGhlIG51bWJl
ciBvZg0KPiA+ICsJICogZWxlbWVudHMgaW4gdGhpcyBhcnJheS4NCj4gPiArCSAqDQo+ID4gKwkg
KiBAc2VlIHN0cnVjdCBydGVfcmVnZXhfb3BzOjpuYl9tYXRjaGVzDQo+ID4gKwkgKi8NCj4gPiAr
fTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBFbnF1ZXVlIGEgYnVyc3Qgb2Ygc2NhbiByZXF1
ZXN0IG9uIGEgUmVnRXggZGV2aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGUgcnRlX3JlZ2V4X2Vu
cXVldWVfYnVyc3QoKSBmdW5jdGlvbiBpcyBpbnZva2VkIHRvIHBsYWNlDQo+ID4gKyAqIHJlZ2V4
IG9wZXJhdGlvbnMgb24gdGhlIHF1ZXVlICpxcF9pZCogb2YgdGhlIGRldmljZSBkZXNpZ25hdGVk
IGJ5DQo+ID4gKyAqIGl0cyAqZGV2X2lkKi4NCj4gPiArICoNCj4gPiArICogVGhlICpuYl9vcHMq
IHBhcmFtZXRlciBpcyB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgdG8gcHJvY2VzcyB3aGljaA0K
PiA+IGFyZQ0KPiA+ICsgKiBzdXBwbGllZCBpbiB0aGUgKm9wcyogYXJyYXkgb2YgKnJ0ZV9yZWdl
eF9vcCogc3RydWN0dXJlcy4NCj4gPiArICoNCj4gPiArICogVGhlIHJ0ZV9yZWdleF9lbnF1ZXVl
X2J1cnN0KCkgZnVuY3Rpb24gcmV0dXJucyB0aGUgbnVtYmVyIG9mDQo+ID4gKyAqIG9wZXJhdGlv
bnMgaXQgYWN0dWFsbHkgZW5xdWV1ZWQgZm9yIHByb2Nlc3NpbmcuIEEgcmV0dXJuIHZhbHVlIGVx
dWFsIHRvDQo+ID4gKyAqICpuYl9vcHMqIG1lYW5zIHRoYXQgYWxsIHBhY2tldHMgaGF2ZSBiZWVu
IGVucXVldWVkLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ID4gKyAqICAgVGhl
IGlkZW50aWZpZXIgb2YgdGhlIGRldmljZS4NCj4gPiArICogQHBhcmFtIHFwX2lkDQo+ID4gKyAq
ICAgVGhlIGluZGV4IG9mIHRoZSBxdWV1ZSBwYWlyIHdoaWNoIHBhY2tldHMgYXJlIHRvIGJlIGVu
cXVldWVkIGZvcg0KPiA+ICsgKiAgIHByb2Nlc3NpbmcuIFRoZSB2YWx1ZSBtdXN0IGJlIGluIHRo
ZSByYW5nZSBbMCwgbmJfcXVldWVfcGFpcnMgLSAxXQ0KPiA+ICsgKiAgIHByZXZpb3VzbHkgc3Vw
cGxpZWQgdG8gcnRlX3JlZ2V4X2Rldl9jb25maWd1cmUoKS4NCj4gPiArICogQHBhcmFtIG9wcw0K
PiA+ICsgKiAgIFRoZSBhZGRyZXNzIG9mIGFuIGFycmF5IG9mICpuYl9vcHMqIHBvaW50ZXJzIHRv
ICpydGVfcmVnZXhfb3AqDQo+ID4gc3RydWN0dXJlcw0KPiA+ICsgKiAgIHdoaWNoIGNvbnRhaW4g
dGhlIHJlZ2V4IG9wZXJhdGlvbnMgdG8gYmUgcHJvY2Vzc2VkLg0KPiA+ICsgKiBAcGFyYW0gbmJf
b3BzDQo+ID4gKyAqICAgVGhlIG51bWJlciBvZiBvcGVyYXRpb25zIHRvIHByb2Nlc3MuDQo+ID4g
KyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICBUaGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMg
YWN0dWFsbHkgZW5xdWV1ZWQgb24gdGhlIHJlZ2V4IGRldmljZS4gVGhlDQo+ID4gcmV0dXJuDQo+
ID4gKyAqICAgdmFsdWUgY2FuIGJlIGxlc3MgdGhhbiB0aGUgdmFsdWUgb2YgdGhlICpuYl9vcHMq
IHBhcmFtZXRlciB3aGVuIHRoZQ0KPiA+ICsgKiAgIHJlZ2V4IGRldmljZXMgcXVldWUgaXMgZnVs
bCBvciBpZiBpbnZhbGlkIHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBpbg0KPiA+ICsgKiAgIGEg
KnJ0ZV9yZWdleF9vcCouIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgbGVzcyB0aGFuICpuYl9vcHMq
LCB0aGUNCj4gPiByZW1haW5pbmcNCj4gPiArICogICBvcHMgYXQgdGhlIGVuZCBvZiAqb3BzKiBh
cmUgbm90IGNvbnN1bWVkIGFuZCB0aGUgY2FsbGVyIGhhcyB0byB0YWtlDQo+ID4gY2FyZQ0KPiA+
ICsgKiAgIG9mIHRoZW0uDQo+ID4gKyAqLw0KPiA+ICt1aW50MTZfdA0KPiA+ICtydGVfcmVnZXhf
ZW5xdWV1ZV9idXJzdCh1aW50OF90IGRldl9pZCwgdWludDE2X3QgcXBfaWQsDQo+ID4gKwkJCXN0
cnVjdCBydGVfcmVnZXhfb3BzICoqb3BzLCB1aW50MTZfdCBuYl9vcHMpOw0KPiA+ICsNCj4gPiAr
LyoqDQo+ID4gKyAqDQo+ID4gKyAqIERlcXVldWUgYSBidXJzdCBvZiBzY2FuIHJlc3BvbnNlIGZy
b20gYSBxdWV1ZSBvbiB0aGUgUmVnRXggZGV2aWNlLg0KPiA+ICsgKiBUaGUgZGVxdWV1ZWQgb3Bl
cmF0aW9uIGFyZSBzdG9yZWQgaW4gKnJ0ZV9yZWdleF9vcCogc3RydWN0dXJlcw0KPiA+ICsgKiB3
aG9zZSBwb2ludGVycyBhcmUgc3VwcGxpZWQgaW4gdGhlICpvcHMqIGFycmF5Lg0KPiA+ICsgKg0K
PiA+ICsgKiBUaGUgcnRlX3JlZ2V4X2RlcXVldWVfYnVyc3QoKSBmdW5jdGlvbiByZXR1cm5zIHRo
ZSBudW1iZXIgb2Ygb3BzDQo+ID4gKyAqIGFjdHVhbGx5IGRlcXVldWVkLCB3aGljaCBpcyB0aGUg
bnVtYmVyIG9mICpydGVfcmVnZXhfb3AqIGRhdGENCj4gPiBzdHJ1Y3R1cmVzDQo+ID4gKyAqIGVm
ZmVjdGl2ZWx5IHN1cHBsaWVkIGludG8gdGhlICpvcHMqIGFycmF5Lg0KPiA+ICsgKg0KPiA+ICsg
KiBBIHJldHVybiB2YWx1ZSBlcXVhbCB0byAqbmJfb3BzKiBpbmRpY2F0ZXMgdGhhdCB0aGUgcXVl
dWUgY29udGFpbmVkDQo+ID4gKyAqIGF0IGxlYXN0ICpuYl9vcHMqIG9wZXJhdGlvbnMsIGFuZCB0
aGlzIGlzIGxpa2VseSB0byBzaWduaWZ5IHRoYXQgb3RoZXINCj4gPiArICogcHJvY2Vzc2VkIG9w
ZXJhdGlvbnMgcmVtYWluIGluIHRoZSBkZXZpY2VzIG91dHB1dCBxdWV1ZS4gQXBwbGljYXRpb25z
DQo+ID4gKyAqIGltcGxlbWVudGluZyBhICJyZXRyaWV2ZSBhcyBtYW55IHByb2Nlc3NlZCBvcGVy
YXRpb25zIGFzIHBvc3NpYmxlIg0KPiA+IHBvbGljeQ0KPiA+ICsgKiBjYW4gY2hlY2sgdGhpcyBz
cGVjaWZpYyBjYXNlIGFuZCBrZWVwIGludm9raW5nIHRoZQ0KPiA+ICsgKiBydGVfcmVnZXhfZGVx
dWV1ZV9idXJzdCgpIGZ1bmN0aW9uIHVudGlsIGEgdmFsdWUgbGVzcyB0aGFuDQo+ID4gKyAqICpu
Yl9vcHMqIGlzIHJldHVybmVkLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGUgcnRlX3JlZ2V4X2RlcXVl
dWVfYnVyc3QoKSBmdW5jdGlvbiBkb2VzIG5vdCBwcm92aWRlIGFueSBlcnJvcg0KPiA+ICsgKiBu
b3RpZmljYXRpb24gdG8gYXZvaWQgdGhlIGNvcnJlc3BvbmRpbmcgb3ZlcmhlYWQuDQo+ID4gKyAq
DQo+ID4gKyAqIEBwYXJhbSBkZXZfaWQNCj4gPiArICogICBUaGUgUmVnRXggZGV2aWNlIGlkZW50
aWZpZXINCj4gPiArICogQHBhcmFtIHFwX2lkDQo+ID4gKyAqICAgVGhlIGluZGV4IG9mIHRoZSBx
dWV1ZSBwYWlyIGZyb20gd2hpY2ggdG8gcmV0cmlldmUgcHJvY2Vzc2VkIHBhY2tldHMuDQo+ID4g
KyAqICAgVGhlIHZhbHVlIG11c3QgYmUgaW4gdGhlIHJhbmdlIFswLCBuYl9xdWV1ZV9wYWlycyAt
IDFdIHByZXZpb3VzbHkNCj4gPiArICogICBzdXBwbGllZCB0byBydGVfcmVnZXhfZGV2X2NvbmZp
Z3VyZSgpLg0KPiA+ICsgKiBAcGFyYW0gb3BzDQo+ID4gKyAqICAgVGhlIGFkZHJlc3Mgb2YgYW4g
YXJyYXkgb2YgcG9pbnRlcnMgdG8gKnJ0ZV9yZWdleF9vcCogc3RydWN0dXJlcyB0aGF0DQo+ID4g
bXVzdA0KPiA+ICsgKiAgIGJlIGxhcmdlIGVub3VnaCB0byBzdG9yZSAqbmJfb3BzKiBwb2ludGVy
cyBpbiBpdC4NCj4gPiArICogQHBhcmFtIG5iX29wcw0KPiA+ICsgKiAgIFRoZSBtYXhpbXVtIG51
bWJlciBvZiBvcGVyYXRpb25zIHRvIGRlcXVldWUuDQo+ID4gKyAqDQo+ID4gKyAqIEByZXR1cm4N
Cj4gPiArICogICBUaGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgYWN0dWFsbHkgZGVxdWV1ZWQsIHdo
aWNoIGlzIHRoZSBudW1iZXINCj4gPiArICogICBvZiBwb2ludGVycyB0byAqcnRlX3JlZ2V4X29w
KiBzdHJ1Y3R1cmVzIGVmZmVjdGl2ZWx5IHN1cHBsaWVkIHRvIHRoZQ0KPiA+ICsgKiAgICpvcHMq
IGFycmF5LiBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIGxlc3MgdGhhbiAqbmJfb3BzKiwgdGhlIHJl
bWFpbmluZw0KPiA+ICsgKiAgIG9wcyBhdCB0aGUgZW5kIG9mICpvcHMqIGFyZSBub3QgY29uc3Vt
ZWQgYW5kIHRoZSBjYWxsZXIgaGFzIHRvIHRha2UNCj4gPiBjYXJlDQo+ID4gKyAqICAgb2YgdGhl
bS4NCj4gPiArICovDQo+ID4gK3VpbnQxNl90DQo+ID4gK3J0ZV9yZWdleF9kZXF1ZXVlX2J1cnN0
KHVpbnQ4X3QgZGV2X2lkLCB1aW50MTZfdCBxcF9pZCwNCj4gPiArCQkJc3RydWN0IHJ0ZV9yZWdl
eF9vcHMgKipvcHMsIHVpbnQxNl90IG5iX29wcyk7DQo+ID4gKw0KPiA+ICsjaWZkZWYgX19jcGx1
c3BsdXMNCj4gPiArfQ0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gKyNlbmRpZiAvKiBfUlRFX1JF
R0VYREVWX0hfICovDQo+ID4NCg0K