From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Supreeth.Venkatesh@arm.com>
Received-SPF: Pass (sender SPF authorized) identity=mailfrom;
 client-ip=104.47.2.62; helo=eur01-db5-obe.outbound.protection.outlook.com;
 envelope-from=supreeth.venkatesh@arm.com; receiver=edk2-devel@lists.01.org 
Received: from EUR01-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur01on0062.outbound.protection.outlook.com [104.47.2.62])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
 (No client certificate requested)
 by ml01.01.org (Postfix) with ESMTPS id 7525E203BEA3A
 for <edk2-devel@lists.01.org>; Fri,  4 May 2018 16:20:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; 
 s=selector1-arm-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=0fFNrxeeTwasoebnZPaHb+S8igwQdEGLbEzUcjd3Ubg=;
 b=DnfBB4q73paZ0bTC11AGTROgNmywF+Biq0jhCSBkoMgvNiACKTUbWFH4RcolZCLweYDW0g2F1vXcWEUtktav1kw7z9G6guEPb7MLLjaKkfhFAK7aejldIRTd213YwEnfa+BCGDuud9fFJQ4XDPifwxoGfUqX+ahw62Wva1fnQvo=
Received: from AM4PR0802MB2306.eurprd08.prod.outlook.com (10.172.218.15) by
 AM4PR0802MB2196.eurprd08.prod.outlook.com (10.172.217.22) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.735.16; Fri, 4 May 2018 23:20:45 +0000
Received: from AM4PR0802MB2306.eurprd08.prod.outlook.com
 ([fe80::e117:6f62:6a9b:6be4]) by AM4PR0802MB2306.eurprd08.prod.outlook.com
 ([fe80::e117:6f62:6a9b:6be4%8]) with mapi id 15.20.0735.016; Fri, 4 May 2018
 23:20:45 +0000
From: Supreeth Venkatesh <Supreeth.Venkatesh@arm.com>
To: Achin Gupta <Achin.Gupta@arm.com>
CC: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Thread-Topic: [PATCH v1 06/18] StandaloneMmPkg: Add an AArch64 specific entry
 point library.
Thread-Index: AQHTzbWYAD51eIXwm0ysHFxjTXokaqQDfDoAgBtSHhA=
Date: Fri, 4 May 2018 23:20:45 +0000
Message-ID: <AM4PR0802MB23066A094447AF8F8D6B11BD80860@AM4PR0802MB2306.eurprd08.prod.outlook.com>
References: <20180406144223.10931-1-supreeth.venkatesh@arm.com>
 <20180406144223.10931-7-supreeth.venkatesh@arm.com>
 <20180416140421.GL663@e104320-lin>
In-Reply-To: <20180416140421.GL663@e104320-lin>
Accept-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=Supreeth.Venkatesh@arm.com; 
x-originating-ip: [217.140.111.135]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; AM4PR0802MB2196;
 7:MHIIDuSIRm+7XgMt7bQY9W5J1fUF++epRY3H0J5FwpDpuelsxhJJvdjC9bSvFNbNdMIY3OmRCm/yfoQOLnH6bEWHZbX1pmHfSOJ5rvHZvvnMyE/4g901EtzAXXJ56JMmMXXfVoRtbgZCehk+DcOmI/+HcfeCgmGdPRTx9LiGl/3jPoxqCOD1P0mVBZ7DG1wllxRAr5ttis/ltgQA9SL25+jWKg5G2QibnPUJ8ejUmLU2LXgKJX2YdvWq70c92PBp
x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR;
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(7020095)(4652020)(48565401081)(5600026)(2017052603328)(7153060)(7193020);
 SRVR:AM4PR0802MB2196; 
x-ms-traffictypediagnostic: AM4PR0802MB2196:
x-microsoft-antispam-prvs: <AM4PR0802MB2196F18BD61C588487C00D4380860@AM4PR0802MB2196.eurprd08.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(180628864354917)(162533806227266)(228905959029699); 
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011);
 SRVR:AM4PR0802MB2196; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0802MB2196; 
x-forefront-prvs: 06628F7CA4
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(6029001)(39860400002)(346002)(39380400002)(396003)(376002)(366004)(13464003)(199004)(189003)(52314003)(40434004)(105586002)(446003)(8936002)(106356001)(4326008)(11346002)(476003)(486006)(966005)(72206003)(5660300001)(6116002)(478600001)(305945005)(7736002)(3846002)(25786009)(81156014)(81166006)(8676002)(66066001)(14454004)(97736004)(316002)(5250100002)(3280700002)(99286004)(6246003)(86362001)(3660700001)(16200700003)(53946003)(74316002)(6306002)(9686003)(55016002)(6436002)(229853002)(102836004)(6862004)(2906002)(6636002)(6506007)(68736007)(59450400001)(53546011)(15188155005)(16799955002)(53376002)(33656002)(26005)(2900100001)(76176011)(7696005)(53936002)(5890100001)(579004)(569006);
 DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0802MB2196;
 H:AM4PR0802MB2306.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: arm.com does not designate
 permitted sender hosts)
x-microsoft-antispam-message-info: 8tb8VqPwV69y/0EwlBO+tePHAjBBkWXmzJSjVXqB0p6pHMA3yliATXi4KbA0I0QAJsgxiTI8EJ9pNSYAAKc6JJKRlSHYQMLi1iAfcQ4D/7AbTpcnpVCUuNAfXXQcTsjWbjryXPRZB9154mfFyFwSIYCn71zgfRMN+jmQLxAFfABEyPsbbfQd0LoVqzrUe8rJ
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
MIME-Version: 1.0
X-MS-Office365-Filtering-Correlation-Id: 7c0d0ea0-07a9-4e32-4177-08d5b215a9b9
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7c0d0ea0-07a9-4e32-4177-08d5b215a9b9
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2018 23:20:45.3559 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2196
Subject: Re: [PATCH v1 06/18] StandaloneMmPkg: Add an AArch64 specific entry point library.
X-BeenThere: edk2-devel@lists.01.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: EDK II Development  <edk2-devel.lists.01.org>
List-Unsubscribe: <https://lists.01.org/mailman/options/edk2-devel>,
 <mailto:edk2-devel-request@lists.01.org?subject=unsubscribe>
List-Archive: <http://lists.01.org/pipermail/edk2-devel/>
List-Post: <mailto:edk2-devel@lists.01.org>
List-Help: <mailto:edk2-devel-request@lists.01.org?subject=help>
List-Subscribe: <https://lists.01.org/mailman/listinfo/edk2-devel>,
 <mailto:edk2-devel-request@lists.01.org?subject=subscribe>
X-List-Received-Date: Fri, 04 May 2018 23:20:49 -0000
Content-Language: en-US
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

TXkgcmVzcG9uc2UgaW5saW5lLg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTog
QWNoaW4gR3VwdGENClNlbnQ6IE1vbmRheSwgQXByaWwgMTYsIDIwMTggOTowNCBBTQ0KVG86IFN1
cHJlZXRoIFZlbmthdGVzaCA8U3VwcmVldGguVmVua2F0ZXNoQGFybS5jb20+DQpDYzogZWRrMi1k
ZXZlbEBsaXN0cy4wMS5vcmc7IG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tOyBsaW1pbmcuZ2Fv
QGludGVsLmNvbTsgamlld2VuLnlhb0BpbnRlbC5jb207IGxlaWYubGluZGhvbG1AbGluYXJvLm9y
ZzsgYXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZzsgbmQgPG5kQGFybS5jb20+DQpTdWJqZWN0OiBS
ZTogW1BBVENIIHYxIDA2LzE4XSBTdGFuZGFsb25lTW1Qa2c6IEFkZCBhbiBBQXJjaDY0IHNwZWNp
ZmljIGVudHJ5IHBvaW50IGxpYnJhcnkuDQoNCkhpIFN1cHJlZXRoLA0KDQpPbiBGcmksIEFwciAw
NiwgMjAxOCBhdCAwMzo0MjoxMVBNICswMTAwLCBTdXByZWV0aCBWZW5rYXRlc2ggd3JvdGU6DQo+
IFRoZSBTdGFuZGFsb25lIE1NIGVudmlyb25tZW50IHJ1bnMgaW4gUy1FTDAgaW4gQUFyY2g2NCBv
biBBUk0gU3RhbmRhcmQNCj4gUGxhdGZvcm1zIGFuZCBpcyBpbml0aWFsaXNlZCBkdXJpbmcgdGhl
IFNFQyBwaGFzZS4gQVJNIFRydXN0ZWQgZmlybXdhcmUNCj4gaW4gRUwzIGlzIHJlc3BvbnNpYmxl
IGZvciBpbml0aWFsaXNpbmcgdGhlIGFyY2hpdGVjdHVyYWwgY29udGV4dCBmb3INCj4gUy1FTDAg
YW5kIGxvYWRpbmcgdGhlIFN0YW5kYWxvbmUgTU0gaW1hZ2UuIFRoZSBtZW1vcnkgYWxsb2NhdGVk
IHRvIHRoaXMNCj4gaW1hZ2UgaXMgbWFya2VkIGFzIFJPK1guIEhlYXAgbWVtb3J5IGlzIG1hcmtl
ZCBhcyBSVytYTi4NCj4NCj4gQ2VydGFpbiBhY3Rpb25zIGhhdmUgdG8gYmUgY29tcGxldGVkIHBy
aW9yIHRvIGV4ZWN1dGluZyB0aGUgZ2VuZXJpYyBjb2RlDQo+IGluIHRoZSBTdGFuZGFsb25lIE1N
IENvcmUgbW9kdWxlLiBUaGVzZSBhcmU6DQo+DQo+IDEuIE1lbW9yeSBwZXJtaXNzaW9uIGF0dHJp
YnV0ZXMgZm9yIGVhY2ggc2VjdGlvbiBvZiB0aGUgU3RhbmRhbG9uZSBNTQ0KPiAgICBDb3JlIG1v
ZHVsZSBuZWVkIHRvIGJlIGNoYW5nZWQgcHJpb3IgdG8gYWNjZXNzaW5nIGFueSBSVyBkYXRhLg0K
Pg0KPiAyLiBBIEhvYiBsaXN0IGhhcyB0byBiZSBjcmVhdGVkIHdpdGggaW5mb3JtYXRpb24gdGhh
dCBhbGxvd3MgdGhlIE1NDQo+ICAgIGVudmlyb25tZW50IHRvIGluaXRpYWxpc2UgYW5kIGRpc3Bh
dGNoIGRyaXZlcnMuDQo+DQo+IEZ1cnRoZXJtb3JlLCB0aGlzIG1vZHVsZSBpcyByZXNwb25zaWJs
ZSBmb3IgaGFuZGluZyBvdmVyIHJ1bnRpbWUgTU0NCj4gZXZlbnRzIHRvIHRoZSBTdGFuZGFsb25l
IE1NIENQVSBkcml2ZXIgYW5kIHJldHVybmluZyBjb250cm9sIHRvIEFSTQ0KPiBUcnVzdGVkIEZp
cm13YXJlIHVwb24gZXZlbnQgY29tcGxldGlvbi4gSGVuY2UgaXQgbmVlZHMgdG8ga25vdyB0aGUg
Q1BVDQo+IGRyaXZlciBlbnRyeSBwb2ludC4NCj4NCj4gVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGFu
IGVudHJ5IHBvaW50IG1vZHVsZSB0aGF0IEFSTSBUcnVzdGVkIEZpcm13YXJlDQo+IGp1bXBzIHRv
IGluIFMtRUwwLiBJdCB0aGVuIHBlcmZvcm1zIHRoZSBhYm92ZSBhY3Rpb25zIGJlZm9yZSBjYWxs
aW5nIHRoZQ0KPiBTdGFuZGFsb25lIE1NIEZvdW5kYXRpb24gZW50cnkgcG9pbnQgYW5kIGhhbmRs
aW5nIHN1YnNlcXVlbnQgTU0gZXZlbnRzLg0KPg0KPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9D
b3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+IFNpZ25lZC1vZmYtYnk6IEFjaGluIEd1
cHRhIDxhY2hpbi5ndXB0YUBhcm0uY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBTdXByZWV0aCBWZW5r
YXRlc2ggPHN1cHJlZXRoLnZlbmthdGVzaEBhcm0uY29tPg0KPiAtLS0NCj4gIC4uLi9MaWJyYXJ5
L0FybS9TdGFuZGFsb25lTW1Db3JlRW50cnlQb2ludC5oICAgICAgIHwgMjMyICsrKysrKysrKysr
KysrKysrDQo+ICAuLi4vSW5jbHVkZS9MaWJyYXJ5L01tQ29yZVN0YW5kYWxvbmVFbnRyeVBvaW50
LmggICB8IDEwMSArKysrKysrKw0KPiAgLi4uL1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50L0Fy
bS9DcmVhdGVIb2JMaXN0LmMgfCAyMDAgKysrKysrKysrKysrKysrDQo+ICAuLi4vQXJtL1NldFBl
cm1pc3Npb25zLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI3OCArKysrKysrKysrKysr
KysrKysrKysNCj4gIC4uLi9Bcm0vU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQuYyAgICAgICAg
ICAgICAgIHwgMjY0ICsrKysrKysrKysrKysrKysrKysNCj4gIC4uLi9TdGFuZGFsb25lTW1Db3Jl
RW50cnlQb2ludC5pbmYgICAgICAgICAgICAgICAgIHwgIDUzICsrKysNCj4gIFN0YW5kYWxvbmVN
bVBrZyA9PiBTdGFuZGFsb25lTW1Qa2d+SEVBRCAgICAgICAgICAgIHwgICAwDQo+ICA3IGZpbGVz
IGNoYW5nZWQsIDExMjggaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFN0YW5k
YWxvbmVNbVBrZy9JbmNsdWRlL0xpYnJhcnkvQXJtL1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50
LmgNCg0KVGhlIG5hbWVzIG9mIHRoaXMgZmlsZSBhbmQgdGhlIG9uZSBiZWxvdyBhcmUgcmUtYXJy
YW5nZW1lbnRzIG9mIHRoZSBzYW1lDQp3b3Jkcy4gVGhpcyBpcyBjb25mdXNpbmcuIEl0IHdvdWxk
IGJlIGJldHRlciB0byBzdGljayB0byBvbmUgY29udmVudGlvbi4gU2luY2UNCnRoZSBuYW1lIG9m
IHRoZSBwYWNrYWdlIHN0YXJ0cyB3aXRoIFN0YW5kYWxvbmVNbSwgZXZlcnl0aGluZyBlbHNlIHNo
b3VsZCBmb2xsb3cNCnN1aXQuDQoNClNvIGNhbiB0aGlzIGZpbGUgYmUgcmVuYW1lZCB0byBBcm1T
dGFuZGFsb25lTW1Db3JlRW50cnlQb2ludC5oIGFuZCB0aGUgb25lIGJlbG93DQp0byBTdGFuZGFs
b25lTW1Db3JlRW50cnlQb2ludC5oIHVubGVzcyB5b3UgdGhpbmsgdGhpcyBjYW4gYmUgZG9uZSBk
aWZmZXJlbnRseT8NCltTdXByZWV0aF0gT2suIEkgaGF2ZSByZW5hbWVkIHRoZXNlIGFzICIgU3Rh
bmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQuaCIgYW5kICJBQXJjaDY0LyBTdGFuZGFsb25lTW1Db3Jl
RW50cnlQb2ludC5oIi4NCg0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFN0YW5kYWxvbmVNbVBrZy9J
bmNsdWRlL0xpYnJhcnkvTW1Db3JlU3RhbmRhbG9uZUVudHJ5UG9pbnQuaA0KDQo8dGFnPg0KDQo+
ICBjcmVhdGUgbW9kZSAxMDA2NDQgU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1t
Q29yZUVudHJ5UG9pbnQvQXJtL0NyZWF0ZUhvYkxpc3QuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0
IFN0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50L0FybS9T
ZXRQZXJtaXNzaW9ucy5jDQoNClBlQ29mZkV4dHJhQWN0aW9uTGliIGFuZCB0aGUgSG9iTGliIGFy
ZSBwcmUtcmVxdWlzaXRlcyBmb3IgdGhlc2UgdHdvDQpmaWxlcy4gU2hvdWxkIHRoZXkgbm90IGFw
cGVhciBmaXJzdCBpbiB0aGUgcGF0Y2ggc3RhY2s/DQpbU3VwcmVldGhdIEhvYmxpYiAtIHllcy4N
ClBlQ29mZkV4dHJhQWN0aW9uTGliIC0gTm8sIGFzIGl0IGhhcyBubyBjb21waWxhdGlvbiBkZXBl
bmRlbmNpZXMuIE9mIGNvdXJzZSwgaXQgd2lsbCBmYWlsIGF0IHJ1bnRpbWUsIGJ1dCBQZUNvZmZF
eHRyYUFjdGlvbkxpYiBoYXMgYSByZXZlcnNlIGRlcGVuZGVuY3kNCm9uIFN0YW5kYWxvbmVNbVBr
ZyBQQ0QuIEFueXdheSwgc2luY2UgdGhpcyBpcyBiZWluZyBzZW50IGFzIGEgc2VyaWVzLiBJIGhv
cGUgaXQgd2lsbCBiZSBjaGVja2VkIGluIHRvZ2V0aGVyLg0KDQo+ICBjcmVhdGUgbW9kZSAxMDA2
NDQgU3RhbmRhbG9uZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQvQXJt
L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50LmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBTdGFu
ZGFsb25lTW1Qa2cvTGlicmFyeS9TdGFuZGFsb25lTW1Db3JlRW50cnlQb2ludC9TdGFuZGFsb25l
TW1Db3JlRW50cnlQb2ludC5pbmYNCg0KQ2FuIHRoaXMgYW5kIHRoZSB0YWdnZWQgZmlsZSBhYm92
ZSBnbyBpbiBhIHNlcGFyYXRlIGNvbW1pdD8gQ2Fubm90IHNlZSBob3cgdGhleQ0KYXJlIHJlbGF0
ZWQgdG8gdGhlIEFybSBzcGVjaWZpYyBlbnRyeSBwb2ludC4NCltTdXByZWV0aF0gSSB3aWxsIG1v
dmUgdGhlIGNvbW1pdCBvZiAuLi4vSW5jbHVkZS9MaWJyYXJ5L1N0YW5kYWxvbmVNbUNvcmVFbnRy
eVBvaW50LmggIHRvIHRoZSAiY29yZSIgY29tbWl0IGlkLiBSZXN0IG9mIHRoZW0gYXJlIEFBcmNo
NjQgc3BlY2lmaWMgZW50cnkgcG9pbnRzLg0KDQo+ICByZW5hbWUgU3RhbmRhbG9uZU1tUGtnID0+
IFN0YW5kYWxvbmVNbVBrZ35IRUFEICgxMDAlKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvU3RhbmRhbG9u
ZU1tUGtnL0luY2x1ZGUvTGlicmFyeS9Bcm0vU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQuaCBi
L1N0YW5kYWxvbmVNbVBrZy9JbmNsdWRlL0xpYnJhcnkvQXJtL1N0YW5kYWxvbmVNbUNvcmVFbnRy
eVBvaW50LmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uMDI5
YzZjNDc2Yw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1N0YW5kYWxvbmVNbVBrZy9JbmNsdWRl
L0xpYnJhcnkvQXJtL1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50LmgNCj4gQEAgLTAsMCArMSwy
MzIgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBFbnRyeSBwb2ludCB0byB0aGUgU3RhbmRhbG9uZSBN
TSBGb3VuZGF0aW9uIHdoZW4gaW5pdGlhbGlzZWQgZHVyaW5nIHRoZSBTRUMNCj4gKyAgcGhhc2Ug
b24gQVJNIHBsYXRmb3Jtcw0KPiArDQo+ICtDb3B5cmlnaHQgKGMpIDIwMTcsIEFSTSBMdGQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQpDb3B5cmlnaHQgeWVhciBuZWVkcyB0byBiZSB1cGRh
dGVkLg0KW1N1cHJlZXRoXSBPay4NCg0KPiArVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55
aW5nIG1hdGVyaWFscw0KPiArYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0
aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlDQo+ICt3aGljaCBhY2Nv
bXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2Ug
bWF5IGJlIGZvdW5kIGF0DQo+ICtodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxp
Y2Vuc2UucGhwDQo+ICsNCj4gK1RIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBC
U0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiIEJBU0lTLA0KPiArV0lUSE9VVCBXQVJSQU5USUVTIE9S
IFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRC4N
Cj4gKw0KPiArKiovDQo+ICsNCj4gKyNpZm5kZWYgX19NT0RVTEVfRU5UUllfUE9JTlRfSF9fDQo+
ICsjZGVmaW5lIF9fTU9EVUxFX0VOVFJZX1BPSU5UX0hfXw0KDQpOYW1lIG9mIHRoaXMgZGVmaW5l
IG5lZWRzIHRvIGJlIGNoYW5nZWQNCltTdXByZWV0aF0gT2suDQoNCj4gKw0KPiArI2luY2x1ZGUg
PExpYnJhcnkvUGVDb2ZmTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9GdkxpYi5oPg0KPiAr
DQo+ICsjZGVmaW5lIENQVV9JTkZPX0ZMQUdfUFJJTUFSWV9DUFUgIDB4MDAwMDAwMDENCj4gKw0K
PiArdHlwZWRlZg0KPiArRUZJX1NUQVRVUw0KPiArKCpQSV9NTV9DUFVfVFBfRldfRU5UUllQT0lO
VCkgKA0KPiArICBJTiBVSU5UTiBFdmVudElkLA0KPiArICBJTiBVSU5UTiBDcHVOdW1iZXIsDQo+
ICsgIElOIFVJTlROIE5zQ29tbUJ1ZmZlckFkZHINCj4gKyAgKTsNCg0KVGhpcyB0eXBlZGVmIGlz
IG5vdCBiZWluZyB1c2VkLg0KW1N1cHJlZXRoXSBPay4gUmVtb3ZlZC4NCg0KPiArDQo+ICt0eXBl
ZGVmIHN0cnVjdCB7DQo+ICsgIFVJTlQ4ICBUeXBlOyAgICAgICAvKiB0eXBlIG9mIHRoZSBzdHJ1
Y3R1cmUgKi8NCj4gKyAgVUlOVDggIFZlcnNpb247ICAgIC8qIHZlcnNpb24gb2YgdGhpcyBzdHJ1
Y3R1cmUgKi8NCj4gKyAgVUlOVDE2IFNpemU7ICAgICAgLyogc2l6ZSBvZiB0aGlzIHN0cnVjdHVy
ZSBpbiBieXRlcyAqLw0KPiArICBVSU5UMzIgQXR0cjsgICAgICAvKiBhdHRyaWJ1dGVzOiB1bnVz
ZWQgYml0cyBTQlogKi8NCj4gK30gRUZJX1BBUkFNX0hFQURFUjsNCj4gKw0KPiArdHlwZWRlZiBz
dHJ1Y3Qgew0KPiArICBVSU5UNjQgTXBpZHI7DQo+ICsgIFVJTlQzMiBMaW5lYXJJZDsNCj4gKyAg
VUlOVDMyIEZsYWdzOw0KPiArfSBFRklfU0VDVVJFX1BBUlRJVElPTl9DUFVfSU5GTzsNCj4gKw0K
PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiArICBFRklfUEFSQU1fSEVBREVSICAgICAgICAgICAgICBI
ZWFkZXI7DQo+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgIFNwTWVtQmFzZTsNCj4g
KyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgU3BNZW1MaW1pdDsNCj4gKyAgVUlOVDY0
ICAgICAgICAgICAgICAgICAgICAgICAgU3BJbWFnZUJhc2U7DQo+ICsgIFVJTlQ2NCAgICAgICAg
ICAgICAgICAgICAgICAgIFNwU3RhY2tCYXNlOw0KPiArICBVSU5UNjQgICAgICAgICAgICAgICAg
ICAgICAgICBTcEhlYXBCYXNlOw0KPiArICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICAgICBT
cE5zQ29tbUJ1ZkJhc2U7DQo+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgIFNwU2hh
cmVkQnVmQmFzZTsNCj4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgU3BJbWFnZVNp
emU7DQo+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgIFNwUGNwdVN0YWNrU2l6ZTsN
Cj4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgU3BIZWFwU2l6ZTsNCj4gKyAgVUlO
VDY0ICAgICAgICAgICAgICAgICAgICAgICAgU3BOc0NvbW1CdWZTaXplOw0KPiArICBVSU5UNjQg
ICAgICAgICAgICAgICAgICAgICAgICBTcFBjcHVTaGFyZWRCdWZTaXplOw0KPiArICBVSU5UMzIg
ICAgICAgICAgICAgICAgICAgICAgICBOdW1TcE1lbVJlZ2lvbnM7DQo+ICsgIFVJTlQzMiAgICAg
ICAgICAgICAgICAgICAgICAgIE51bUNwdXM7DQo+ICsgIEVGSV9TRUNVUkVfUEFSVElUSU9OX0NQ
VV9JTkZPICpDcHVJbmZvOw0KPiArfSBFRklfU0VDVVJFX1BBUlRJVElPTl9CT09UX0lORk87DQo+
ICsNCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gKyAgRUZJX1BBUkFNX0hFQURFUiAgICAgICAgICAg
ICAgIGg7DQo+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICBTcFN0YWNrQmFzZTsN
Cj4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgIFNwU2hhcmVkQnVmQmFzZTsNCj4g
KyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgIFNwUGNwdVN0YWNrU2l6ZTsNCj4gKyAg
VUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgIFNwUGNwdVNoYXJlZEJ1ZlNpemU7DQo+ICsg
IEVGSV9TRUNVUkVfUEFSVElUSU9OX0NQVV9JTkZPICBDcHVJbmZvOw0KPiArfSBFRklfU0VDVVJF
X1BBUlRJVElPTl9XQVJNX0JPT1RfSU5GTzsNCg0KVGhpcyBkYXRhIHN0cnVjdHVyZSBpcyBub3Qg
YmVpbmcgdXNlZC4NCltTdXByZWV0aF0gT2suIFJlbW92ZWQuDQoNCj4gKw0KPiArDQo+ICt0eXBl
ZGVmDQo+ICtFRklfU1RBVFVTDQo+ICsoKlBJX01NX0FSTV9URl9DUFVfRFJJVkVSX0VOVFJZUE9J
TlQpICgNCj4gKyAgSU4gVUlOVE4gRXZlbnRJZCwNCj4gKyAgSU4gVUlOVE4gQ3B1TnVtYmVyLA0K
PiArICBJTiBVSU5UTiBOc0NvbW1CdWZmZXJBZGRyDQo+ICsgICk7DQoNClRoaXMgcHJvdG90eXBl
IGludGVyZmFjZSBpcyBub3QgYWRlcXVhdGUgZm9yIHVwc3RyZWFtaW5nLiBJIGFtIHRoaW5raW5n
IG9mIHRoZQ0KZm9sbG93aW5nOg0KDQp0eXBlZGVmDQpFRklfU1RBVFVTDQooKlBJX01NX0FSTV9U
Rl9DUFVfRFJJVkVSX0VOVFJZUE9JTlQpICgNCiAgSU4gVUlOVDY0IEV2ZW50SW5mb0FkZHIsDQog
IElOIFVJTlQzMiBFdmVudEluZm9TaXplLA0KICBJTiBVSU5UMzIgQ3B1TnVtYmVyDQogICk7DQoN
CltTdXByZWV0aF0gSSBhbSBPayB3aXRoIGl0LiBIb3dldmVyLCB3ZSBzaG91bGQgc3RpbGwgdXNl
ICJVSU5UTiIgYXMgZGF0YSB0eXBlcywgYXMgdGhlc2UgYXJlIGRlcml2ZWQgZnJvbSBlaXRoZXIg
U01DIG9yIFNWQyBhcmd1bWVudHMgYW5kDQp0aGV5IGRlcGVuZCBvbiAgcmVnaXN0ZXIgbGVuZ3Ro
IHdoaWNoIGlzIGFyY2hpdGVjdHVyZSBzcGVjaWZpYy4gKG5vdCB0aGF0IHdlIGFyZSBzdXBwb3J0
aW5nIDMyIGJpdCBidXQgc3RpbGwgZnV0dXJlIHByb29maW5nIGl0KS4NCg0KV2hlbiB0aGUgTU1f
Q09NTVVOSUNBVEUgU01DIGlzIGludm9rZWQsIEV2ZW50SW5mb0FkZHIgLT4gTU0gY29tbXVuaWNh
dGlvbg0KYnVmZmVyLiBEaXR0byBmb3IgRXZlbnRJbmZvU2l6ZS4NCg0KSSBkb24ndCB0aGluayB0
aGVyZSBpcyBhIG5lZWQgdG8gcGFzcyBFdmVudElkIGFueSBsb25nZXIuIFRoZSBvcmlnaW5hbCB0
aGlua2luZw0Kd2FzIHRoYXQgZm9yIGFzeW5jaHJvbm91cyBldmVudHMgZS5nLiBpbnRlcnJ1cHRz
IGhhbmRsZWQgaW4gYW4gTU0gcGFydGl0aW9uLCBBcm0NClRGIHdpbGwgbm90IHVzZSBVVUlEcy4g
SW5zdGVhZCBFdmVudElEcyB3aWxsIGJlIHVzZWQuIEhlbmNlIHRoZXJlIHdhcyBhIG5lZWQgdG8N
CmNvbnZlcnQgYW4gRXZlbnRJRCBpbnRvIGEgVVVJRCBpbiB0aGUgTU0gQ1BVIERyaXZlci4gSXQg
d291bGQgdGhlbiB1c2UgdGhlIFVVSUQNCnRvIGNhbGwgU21pTWFuYWdlKCkuIFRoaXMgcmVzdHJp
Y3Rpb24gaXMgbm8gbG9uZ2VyIHRydWUuIFNvLCB0aGUgU1BNIGNhbg0KZGVsZWdhdGUgYW4gYXN5
bmNocm9ub3VzIGV2ZW50IHVzaW5nIHRoZSBHVUlEIG9mIGEgU3RhbmRhbG9uZU1NIGRyaXZlciBq
dXN0IGxpa2UNCnRoZSBub3JtYWwgd29ybGQgcG9wdWxhdGVzIHRoZSBjb21tdW5pY2F0aW9uIGJ1
ZmZlci4NCg0KVGhpcyB3aWxsIHJlc3VsdCBpbiBjaGFuZ2VzIHRvIHRoZSBNTSBDUFUgZHJpdmVy
LiBJIHdpbGwgY29tbWVudCBvbiB0aG9zZQ0Kc2VwYXJhdGVseS4NCg0KV2UgYWxzbyBuZWVkIHRv
IHR3ZWFrIHRoZSBBQkkgZHVyaW5nIGFuIEVSRVQgZnJvbSBTUF9FVkVOVF9DT01QTEVURSB0byB0
aGUNCmZvbGxvd2luZy4NCg0KeDAgLT4gQWRkcmVzcyBvZiB2ZXJzaW9uZWQgZGF0YSBzdHJ1Y3R1
cmUgcG9wdWxhdGVkIGluIFJPIG1lbW9yeSBzaGFyZWQgYmV0d2Vlbg0KICAgICAgU1BNIGFuZCBT
UCArIFBheWxvZA0KeDEgLT4gTUJaLiBSZXNlcnZlZC4NCngyIC0+IE1CWi4gUmVzZXJ2ZWQuDQp4
MyAtPiBNQlouIFJlc2VydmVkLg0KDQpUaGUgdmVyc2lvbmVkIGRhdGEgc3RydWN0dXJlIGNvdWxk
IGxvb2sgbGlrZSB0aGlzOg0KDQp0eXBlZGVmIHN0cnVjdCB7Xk0NCiAgRUZJX1BBUkFNX0hFQURF
UiAgICAgICAgICAgICAgSGVhZGVyO15NDQogIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAg
IENwdU51bWJlcjteTQ0KICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICAgICBFdmVudEJ1ZmZl
ckFkZHJlc3M7Xk0gLy8gTU0gQ29tbXVuaWNhdGlvbiBidWZmZXINCiAgVUlOVDMyICAgICAgICAg
ICAgICAgICAgICAgICAgRXZlbnRCdWZmZXJTaXplO15NICAgIC8vIE1NIENvbW0uIGJ1ZmZlciBz
aXplDQp9IEVGSV9TRUNVUkVfUEFSVElUSU9OX0VWRU5UX0lORk87Xk0NCg0KVGhlIHBvaW50IGJl
aW5nIHRoYXQganVzdCBsaWtlIHRoZSBTdGFuZGFsb25lTW1Db3JlRW50cnlQb2ludCBhbmQgU1BN
IHNoYXJlIGENCmRhdGEgc3RydWN0dXJlIHRvIHBhc3MgaW5mb3JtYXRpb24gZHVyaW5nIGluaXRp
YWxpc2F0aW9uLCB0aGUgYWJvdmUgZGF0YQ0Kc3RydWN0dXJlIHdpbGwgYmUgdXNlZCB0byBwYXNz
IGluZm9ybWF0aW9uIHdoZW4gYW4gZXZlbnQgaGFzIHRvIGJlIGRlbGVnYXRlZA0KZnJvbSB0aGUg
U1BNLg0KW1N1cHJlZXRoXSBZZXMuIEJ1dCBDdXJyZW50bHksIHVwLXN0cmVhbWVkIGFybS10ZiBn
ZXRzIGJhY2sgZXZlbnQgY29tcGxldGUgSUQgZnJvbSBBcmcwIGFuZCBzdGF0dXMgZnJvbSBBcmcx
Lg0KSGVuY2UgdGhlc2UgY2hhbmdlcyBpbiBlZGsyIHNob3VsZCBiZSB1cC1zdHJlYW1lZCB3aGVu
IGFybS10ZiBjb21wbGV0ZXMgdGhlIGltcGxlbWVudGF0aW9uIGFzIHBlciBuZXcgU1BSVCBpbnRl
cmZhY2UuDQoNCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiArICBQSV9NTV9BUk1fVEZfQ1BV
X0RSSVZFUl9FTlRSWVBPSU5UICpBcm1UZkNwdURyaXZlckVwUHRyOw0KPiArfSBBUk1fVEZfQ1BV
X0RSSVZFUl9FUF9ERVNDUklQVE9SOw0KPiArDQo+ICt0eXBlZGVmIFJFVFVSTl9TVEFUVVMgKCpS
RUdJT05fUEVSTUlTU0lPTl9VUERBVEVfRlVOQykgKA0KPiArICBJTiAgRUZJX1BIWVNJQ0FMX0FE
RFJFU1MgICAgICBCYXNlQWRkcmVzcywNCj4gKyAgSU4gIFVJTlQ2NCAgICAgICAgICAgICAgICAg
ICAgTGVuZ3RoDQo+ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArICBQcml2aWxlZ2VkIGZpcm13YXJl
IGFzc2lnbnMgUk8gJiBFeGVjdXRhYmxlIGF0dHJpYnV0ZXMgdG8gYWxsIG1lbW9yeSBvY2N1cGll
ZA0KPiArICBieSB0aGUgQm9vdCBGaXJtd2FyZSBWb2x1bWUuIFRoaXMgZnVuY3Rpb24gc2V0cyB0
aGUgY29ycmVjdCBwZXJtaXNzaW9ucyBvZg0KPiArICBzZWN0aW9ucyBpbiB0aGUgU3RhbmRhbG9u
ZSBNTSBDb3JlIG1vZHVsZSB0byBiZSBhYmxlIHRvIGFjY2VzcyBSTyBhbmQgUlcgZGF0YQ0KPiAr
ICBhbmQgbWFrZSBmdXJ0aGVyIHByb2dyZXNzIGluIHRoZSBib290IHByb2Nlc3MuDQo+ICsNCj4g
KyAgQHBhcmFtICBJbWFnZUNvbnRleHQgICAgICAgICAgIFBvaW50ZXIgdG8gUEUvQ09GRiBpbWFn
ZSBjb250ZXh0DQo+ICsgIEBwYXJhbSAgU2VjdGlvbkhlYWRlck9mZnNldCAgICBPZmZzZXQgb2Yg
UEUvQ09GRiBpbWFnZSBzZWN0aW9uIGhlYWRlcg0KPiArICBAcGFyYW0gIE51bWJlck9mU2VjdGlv
bnMgICAgICAgTnVtYmVyIG9mIFNlY3Rpb25zDQo+ICsgIEBwYXJhbSAgVGV4dFVwZGF0ZXIgICAg
ICAgICAgICBGdW5jdGlvbiB0byBjaGFuZ2UgY29kZSBwZXJtaXNzaW9ucw0KPiArICBAcGFyYW0g
IFJlYWRPbmx5VXBkYXRlciAgICAgICAgRnVuY3Rpb24gdG8gY2hhbmdlIFJPIHBlcm1pc3Npb25z
DQo+ICsgIEBwYXJhbSAgUmVhZFdyaXRlVXBkYXRlciAgICAgICBGdW5jdGlvbiB0byBjaGFuZ2Ug
UlcgcGVybWlzc2lvbnMNCj4gKw0KPiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4g
K1VwZGF0ZU1tRm91bmRhdGlvblBlQ29mZlBlcm1pc3Npb25zICgNCj4gKyAgSU4gIENPTlNUIFBF
X0NPRkZfTE9BREVSX0lNQUdFX0NPTlRFWFQgICAgICAqSW1hZ2VDb250ZXh0LA0KPiArICBJTiAg
VUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY3Rpb25IZWFkZXJPZmZz
ZXQsDQo+ICsgIElOICBDT05TVCAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVt
YmVyT2ZTZWN0aW9ucywNCg0KVUlOVDMyPw0KW1N1cHJlZXRoXSBOdW1iZXJPZlNlY3Rpb25zIGlz
IGFjdHVhbGx5IFVJTlQxNiBhcyBwZXIgYXMgdGhlIHBlaW1hZ2UuaCBoZWFkZXIgZmlsZS4NCg0K
PiArICBJTiAgUkVHSU9OX1BFUk1JU1NJT05fVVBEQVRFX0ZVTkMgICAgICAgICAgIFRleHRVcGRh
dGVyLA0KPiArICBJTiAgUkVHSU9OX1BFUk1JU1NJT05fVVBEQVRFX0ZVTkMgICAgICAgICAgIFJl
YWRPbmx5VXBkYXRlciwNCj4gKyAgSU4gIFJFR0lPTl9QRVJNSVNTSU9OX1VQREFURV9GVU5DICAg
ICAgICAgICBSZWFkV3JpdGVVcGRhdGVyDQo+ICsgICk7DQo+ICsNCj4gKw0KPiArLyoqDQo+ICsg
IFByaXZpbGVnZWQgZmlybXdhcmUgYXNzaWducyBSTyAmIEV4ZWN1dGFibGUgYXR0cmlidXRlcyB0
byBhbGwgbWVtb3J5IG9jY3VwaWVkDQo+ICsgIGJ5IHRoZSBCb290IEZpcm13YXJlIFZvbHVtZS4g
VGhpcyBmdW5jdGlvbiBsb2NhdGVzIHRoZSBzZWN0aW9uIGluZm9ybWF0aW9uIG9mDQo+ICsgIHRo
ZSBTdGFuZGFsb25lIE1NIENvcmUgbW9kdWxlIHRvIGJlIGFibGUgdG8gY2hhbmdlIHBlcm1pc3Np
b25zIG9mIHRoZQ0KPiArICBpbmRpdmlkdWFsIHNlY3Rpb25zIGxhdGVyIGluIHRoZSBib290IHBy
b2Nlc3MuDQo+ICsNCj4gKyAgQHBhcmFtICBUZURhdGEgICAgICAgICAgICAgICAgIFBvaW50ZXIg
dG8gUEUvQ09GRiBpbWFnZSBkYXRhDQo+ICsgIEBwYXJhbSAgSW1hZ2VDb250ZXh0ICAgICAgICAg
ICBQb2ludGVyIHRvIFBFL0NPRkYgaW1hZ2UgY29udGV4dA0KPiArICBAcGFyYW0gIFNlY3Rpb25I
ZWFkZXJPZmZzZXQgICAgT2Zmc2V0IG9mIFBFL0NPRkYgaW1hZ2Ugc2VjdGlvbiBoZWFkZXINCj4g
KyAgQHBhcmFtICBOdW1iZXJPZlNlY3Rpb25zICAgICAgIE51bWJlciBvZiBTZWN0aW9ucw0KPiAr
DQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArR2V0U3RhbmRhbG9uZU1tQ29y
ZVBlQ29mZlNlY3Rpb25zICgNCj4gKyAgSU4gICAgICAgIFZPSUQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKlRlRGF0YSwNCj4gKyAgSU4gIE9VVCAgIFBFX0NPRkZfTE9BREVSX0lNQUdFX0NP
TlRFWFQgICAgKkltYWdlQ29udGV4dCwNCj4gKyAgSU4gIE9VVCAgIFVJTlQzMiAgICAgICAgICAg
ICAgICAgICAgICAgICAgKlNlY3Rpb25IZWFkZXJPZmZzZXQ7DQo+ICsgIElOICBPVVQgICBVSU5U
TiAgICAgICAgICAgICAgICAgICAgICAgICAgICpOdW1iZXJPZlNlY3Rpb25zOw0KPiArICApOw0K
PiArDQo+ICsNCj4gKy8qKg0KPiArICBQcml2aWxlZ2VkIGZpcm13YXJlIGFzc2lnbnMgUk8gJiBF
eGVjdXRhYmxlIGF0dHJpYnV0ZXMgdG8gYWxsIG1lbW9yeSBvY2N1cGllZA0KPiArICBieSB0aGUg
Qm9vdCBGaXJtd2FyZSBWb2x1bWUuIFRoaXMgZnVuY3Rpb24gbG9jYXRlcyB0aGUgU3RhbmRhbG9u
ZSBNTSBDb3JlDQo+ICsgIG1vZHVsZSBQRS9DT0ZGIGltYWdlIGluIHRoZSBCRlYgYW5kIHJldHVy
bnMgdGhpcyBpbmZvcm1hdGlvbi4NCj4gKw0KPiArICBAcGFyYW0gIEJmdkFkZHJlc3MgICAgICAg
ICAgICAgQmFzZSBBZGRyZXNzIG9mIEJvb3QgRmlybXdhcmUgVm9sdW1lDQo+ICsgIEBwYXJhbSAg
VGVEYXRhICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIGFkZHJlc3MgZm9yIGFsbG9jYXRpbmcg
bWVtb3J5IGZvcg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEUvQ09GRiBp
bWFnZSBkYXRhDQo+ICsgIEBwYXJhbSAgVGVEYXRhU2l6ZSAgICAgICAgICAgICBQb2ludGVyIHRv
IHNpemUgb2YgUEUvQ09GRiBpbWFnZSBkYXRhDQo+ICsNCj4gKyoqLw0KPiArRUZJX1NUQVRVUw0K
PiArRUZJQVBJDQo+ICtMb2NhdGVTdGFuZGFsb25lTW1Db3JlUGVDb2ZmRGF0YSAoDQo+ICsgIElO
ICAgICAgICBFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiAgICAgICpCZnZBZGRyZXNzLA0KPiAr
ICBJTiAgT1VUICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKlRlRGF0YTsNCg0K
VUlOVDY0Kio/DQoNCj4gKyAgSU4gIE9VVCAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKlRlRGF0YVNpemU7DQoNClVJTlQzMj8NCg0KW1N1cHJlZXRoXSBGZnNGaW5kU2VjdGlvbkRh
dGEgKA0KICBJTiBFRklfU0VDVElPTl9UWVBFICAgICAgICAgICAgICBTZWN0aW9uVHlwZSwNCiAg
SU4gRUZJX0ZGU19GSUxFX0hFQURFUiAgICAgICAgICAgKkZmc0ZpbGVIZWFkZXIsDQogIE9VVCBW
T0lEICAgICAgICAgICAgICAgICAgICAgICAgICoqU2VjdGlvbkRhdGEsDQogIE9VVCBVSU5UTiAg
ICAgICAgICAgICAgICAgICAgICAgICpTZWN0aW9uRGF0YVNpemUNCiAgKTsNCkluIEZWIExpYnJh
cnkgaGFzIHRoZXNlLCBzbyBub3QgY2hhbmdpbmcgdGhlbS4NCg0KPiArICApOw0KPiArDQo+ICsN
Cj4gKy8qKg0KPiArICBVc2UgdGhlIGJvb3QgaW5mb3JtYXRpb24gcGFzc2VkIGJ5IHByaXZpbGVn
ZWQgZmlybXdhcmUgdG8gcG9wdWxhdGUgYSBIT0IgbGlzdA0KPiArICBzdWl0YWJsZSBmb3IgY29u
c3VtcHRpb24gYnkgdGhlIE1NIENvcmUgYW5kIGRyaXZlcnMuDQo+ICsNCj4gKyAgQHBhcmFtICBD
cHVEcml2ZXJFbnRyeVBvaW50ICAgIEFkZHJlc3Mgb2YgTU0gQ1BVIGRyaXZlciBlbnRyeXBvaW50
DQo+ICsgIEBwYXJhbSAgUGF5bG9hZEJvb3RJbmZvICAgICAgICBCb290IGluZm9ybWF0aW9uIHBh
c3NlZCBieSBwcml2aWxlZ2VkIGZpcm13YXJlDQo+ICsNCj4gKyoqLw0KPiArVk9JRCAqDQo+ICtF
RklBUEkNCj4gK0NyZWF0ZUhvYkxpc3RGcm9tQm9vdEluZm8gKA0KPiArICBJTiAgT1VUICBQSV9N
TV9BUk1fVEZfQ1BVX0RSSVZFUl9FTlRSWVBPSU5UICpDcHVEcml2ZXJFbnRyeVBvaW50LA0KPiAr
ICBJTiAgICAgICBFRklfU0VDVVJFX1BBUlRJVElPTl9CT09UX0lORk8gICAgICpQYXlsb2FkQm9v
dEluZm8NCj4gKyAgKTsNCj4gKw0KPiArDQo+ICsvKioNCj4gKyAgVGhlIGVudHJ5IHBvaW50IG9m
IFN0YW5kYWxvbmUgTU0gRm91bmRhdGlvbi4NCj4gKw0KPiArICBAcGFyYW0gIEhvYlN0YXJ0ICBQ
b2ludGVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIEhPQiBMaXN0Lg0KDQpDb21tZW50IG5lZWRz
IHRvIGJlIHVwZGF0ZWQuDQpbU3VwcmVldGhdIE9rLiBEb25lLg0KDQo+ICsNCj4gKyoqLw0KPiAr
Vk9JRA0KPiArRUZJQVBJDQo+ICtfTW9kdWxlRW50cnlQb2ludCAoDQo+ICsgIElOIFZPSUQgICAg
KlNoYXJlZEJ1ZkFkZHJlc3MsDQo+ICsgIElOIFVJTlQ2NCAgU2hhcmVkQnVmU2l6ZSwNCj4gKyAg
SU4gVUlOVDY0ICBjb29raWUxLA0KPiArICBJTiBVSU5UNjQgIGNvb2tpZTINCj4gKyAgKTsNCg0K
VGhlIEFCSSBmb3IgdGhlIGZpcnN0IEVSRVQgaW50byB0aGUgcGFydGl0aW9uIG5lZWRzIHRvIGJl
IHR3ZWFrZWQuIEkgZG9uJ3QgdGhpbmsNCndlIG5lZWQgU2hhcmVkQnVmU2l6ZSBhcyB0aGlzIGlz
IGRpc2NvdmVyYWJsZSBmcm9tIEhlYWRlci5TaXplIGluDQpFRklfU0VDVVJFX1BBUlRJVElPTl9C
T09UX0lORk8uDQpbU3VwcmVldGhdIE9rLiBEb25lLg0KDQo+ICsNCj4gKw0KPiArLyoqDQo+ICsg
IEF1dG9nZW5lcmF0ZWQgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgbGlicmFyeSBjb25zdHJ1Y3Rv
cnMgZm9yIGFsbCBvZiB0aGUgbW9kdWxlJ3MgZGVwZW5kZW50IGxpYnJhcmllcy4NCj4gKw0KPiAr
ICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGJ5IF9Nb2R1bGVFbnRyeVBvaW50KCkuDQo+
ICsgIFRoaXMgZnVuY3Rpb24gY2FsbHMgdGhlIHNldCBvZiBsaWJyYXJ5IGNvbnN0cnVjdG9ycyBm
b3IgdGhlIHNldCBvZiBsaWJyYXJ5IGluc3RhbmNlcw0KPiArICB0aGF0IGEgbW9kdWxlIGRlcGVu
ZHMgb24uICBUaGlzIGluY2x1ZGVzIGxpYnJhcnkgaW5zdGFuY2VzIHRoYXQgYSBtb2R1bGUgZGVw
ZW5kcyBvbg0KPiArICBkaXJlY3RseSBhbmQgbGlicmFyeSBpbnN0YW5jZXMgdGhhdCBhIG1vZHVs
ZSBkZXBlbmRzIG9uIGluZGlyZWN0bHkgdGhyb3VnaCBvdGhlcg0KPiArICBsaWJyYXJpZXMuIFRo
aXMgZnVuY3Rpb24gaXMgYXV0b2dlbmVyYXRlZCBieSBidWlsZCB0b29scyBhbmQgdGhvc2UgYnVp
bGQgdG9vbHMgYXJlDQo+ICsgIHJlc3BvbnNpYmxlIGZvciBjb2xsZWN0aW5nIHRoZSBzZXQgb2Yg
bGlicmFyeSBpbnN0YW5jZXMsIGRldGVybWluZSB3aGljaCBvbmVzIGhhdmUNCj4gKyAgY29uc3Ry
dWN0b3JzLCBhbmQgY2FsbGluZyB0aGUgbGlicmFyeSBjb25zdHJ1Y3RvcnMgaW4gdGhlIHByb3Bl
ciBvcmRlciBiYXNlZCB1cG9uDQo+ICsgIGVhY2ggb2YgdGhlIGxpYnJhcnkgaW5zdGFuY2VzIG93
biBkZXBlbmRlbmNpZXMuDQo+ICsNCj4gKyAgQHBhcmFtICBJbWFnZUhhbmRsZSAgVGhlIGltYWdl
IGhhbmRsZSBvZiB0aGUgRFhFIENvcmUuDQo+ICsgIEBwYXJhbSAgU3lzdGVtVGFibGUgIEEgcG9p
bnRlciB0byB0aGUgRUZJIFN5c3RlbSBUYWJsZS4NCj4gKw0KPiArKiovDQo+ICtWT0lEDQo+ICtF
RklBUEkNCj4gK1Byb2Nlc3NMaWJyYXJ5Q29uc3RydWN0b3JMaXN0ICgNCj4gKyAgSU4gRUZJX0hB
TkRMRSAgICAgICAgICAgICBJbWFnZUhhbmRsZSwNCj4gKyAgSU4gRUZJX01NX1NZU1RFTV9UQUJM
RSAgKk1tU3lzdGVtVGFibGUNCj4gKyAgKTsNCj4gKw0KPiArDQo+ICsvKioNCj4gKyAgQXV0b2dl
bmVyYXRlZCBmdW5jdGlvbiB0aGF0IGNhbGxzIGEgc2V0IG9mIG1vZHVsZSBlbnRyeSBwb2ludHMu
DQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBieSBfTW9kdWxlRW50cnlQ
b2ludCgpLg0KPiArICBUaGlzIGZ1bmN0aW9uIGNhbGxzIHRoZSBzZXQgb2YgbW9kdWxlIGVudHJ5
IHBvaW50cy4NCj4gKyAgVGhpcyBmdW5jdGlvbiBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGJ1aWxkIHRv
b2xzIGFuZCB0aG9zZSBidWlsZCB0b29scyBhcmUgcmVzcG9uc2libGUNCj4gKyAgZm9yIGNvbGxl
Y3RpbmcgdGhlIG1vZHVsZSBlbnRyeSBwb2ludHMgYW5kIGNhbGxpbmcgdGhlbSBpbiBhIHNwZWNp
ZmllZCBvcmRlci4NCj4gKw0KPiArICBAcGFyYW0gIEhvYlN0YXJ0ICBQb2ludGVyIHRvIHRoZSBi
ZWdpbm5pbmcgb2YgdGhlIEhPQiBMaXN0IHBhc3NlZCBpbiBmcm9tIHRoZSBQRUkgUGhhc2UuDQo+
ICsNCj4gKyoqLw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtQcm9jZXNzTW9kdWxlRW50cnlQb2lu
dExpc3QgKA0KPiArICBJTiBWT0lEICAqSG9iU3RhcnQNCj4gKyAgKTsNCj4gKw0KPiArI2VuZGlm
DQo+IGRpZmYgLS1naXQgYS9TdGFuZGFsb25lTW1Qa2cvSW5jbHVkZS9MaWJyYXJ5L01tQ29yZVN0
YW5kYWxvbmVFbnRyeVBvaW50LmggYi9TdGFuZGFsb25lTW1Qa2cvSW5jbHVkZS9MaWJyYXJ5L01t
Q29yZVN0YW5kYWxvbmVFbnRyeVBvaW50LmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k
ZXggMDAwMDAwMDAwMC4uZDYxMDVkNDkzNQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1N0YW5k
YWxvbmVNbVBrZy9JbmNsdWRlL0xpYnJhcnkvTW1Db3JlU3RhbmRhbG9uZUVudHJ5UG9pbnQuaA0K
PiBAQCAtMCwwICsxLDEwMSBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIE1vZHVsZSBlbnRyeSBwb2lu
dCBsaWJyYXJ5IGZvciBEWEUgY29yZS4NCg0KVGhpcyBjb21tZW50IG5lZWRzIHRvIGJlIGNoYW5n
ZWQuDQpbU3VwcmVldGhdIE9rLiBEb25lLg0KPiArDQo+ICtDb3B5cmlnaHQgKGMpIDIwMDYgLSAy
MDA4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICtDb3B5
cmlnaHQgKGMpIDIwMTYgLSAyMDE3LCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48
QlI+DQoNCkNvcHlyaWdodCB5ZWFyIGhlcmUgYW5kIGV2ZXJ5d2hlcmUgZWxzZS4NCltTdXByZWV0
aF0gT2suIERvbmUuDQo+ICsNCj4gK1RoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBt
YXRlcmlhbHMNCj4gK2FyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRl
cm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZQ0KPiArd2hpY2ggYWNjb21wYW5p
ZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBi
ZSBmb3VuZCBhdA0KPiAraHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNl
LnBocA0KPiArDQo+ICtUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJ
Q0VOU0UgT04gQU4gIkFTIElTIiBCQVNJUywNCj4gK1dJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBS
RVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ICsN
Cj4gKyoqLw0KPiArDQo+ICsjaWZuZGVmIF9fTU9EVUxFX0VOVFJZX1BPSU5UX0hfXw0KPiArI2Rl
ZmluZSBfX01PRFVMRV9FTlRSWV9QT0lOVF9IX18NCj4gKw0KPiArLy8vDQo+ICsvLy8gR2xvYmFs
IHZhcmlhYmxlIHRoYXQgY29udGFpbnMgYSBwb2ludGVyIHRvIHRoZSBIb2IgTGlzdCBwYXNzZWQg
aW50byB0aGUgRFhFIENvcmUgZW50cnkgcG9pbnQuDQo+ICsvLy8NCj4gK2V4dGVybiBWT0lEICAq
Z0hvYkxpc3Q7DQo+ICsNCj4gKw0KPiArLyoqDQo+ICsgIFRoZSBlbnRyeSBwb2ludCBvZiBQRS9D
T0ZGIEltYWdlIGZvciB0aGUgRFhFIENvcmUuDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBpcyB0
aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBEWEUgQ29yZS4gVGhpcyBmdW5jdGlvbiBpcyByZXF1aXJl
ZCB0byBjYWxsDQo+ICsgIFByb2Nlc3NNb2R1bGVFbnRyeVBvaW50TGlzdCgpIGFuZCBQcm9jZXNz
TW9kdWxlRW50cnlQb2ludExpc3QoKSBpcyBuZXZlciBleHBlY3RlZCB0byByZXR1cm4uDQo+ICsg
IFRoZSBEWEUgQ29yZSBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBQcm9jZXNzTGlicmFyeUNv
bnN0cnVjdG9yTGlzdCgpIGFzIHNvb24gYXMgdGhlIEVGSQ0KPiArICBTeXN0ZW0gVGFibGUgYW5k
IHRoZSBpbWFnZSBoYW5kbGUgZm9yIHRoZSBEWEUgQ29yZSBpdHNlbGYgaGF2ZSBiZWVuIGVzdGFi
bGlzaGVkLg0KPiArICBJZiBQcm9jZXNzTW9kdWxlRW50cnlQb2ludExpc3QoKSByZXR1cm5zLCB0
aGVuIEFTU0VSVCgpIGFuZCBoYWx0IHRoZSBzeXN0ZW0uDQoNClRoaXMgY29tbWVudCBuZWVkcyB0
byBiZSBjaGFuZ2VkIGFzIHRoaXMgaXMgbm90IHRoZSBEWEUgY29yZS4NCltTdXByZWV0aF0gT2su
IERvbmUuDQoNCj4gKw0KPiArICBAcGFyYW0gIEhvYlN0YXJ0ICBQb2ludGVyIHRvIHRoZSBiZWdp
bm5pbmcgb2YgdGhlIEhPQiBMaXN0IHBhc3NlZCBpbiBmcm9tIHRoZSBQRUkgUGhhc2UuDQo+ICsN
Cj4gKyoqLw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtfTW9kdWxlRW50cnlQb2ludCAoDQo+ICsg
IElOIFZPSUQgICpIb2JTdGFydA0KPiArICApOw0KPiArDQo+ICsNCj4gKy8qKg0KPiArICBSZXF1
aXJlZCBieSB0aGUgRUJDIGNvbXBpbGVyIGFuZCBpZGVudGljYWwgaW4gZnVuY3Rpb25hbGl0eSB0
byBfTW9kdWxlRW50cnlQb2ludCgpLg0KPiArDQo+ICsgIFRoaXMgZnVuY3Rpb24gaXMgcmVxdWly
ZWQgdG8gY2FsbCBfTW9kdWxlRW50cnlQb2ludCgpIHBhc3NpbmcgaW4gSG9iU3RhcnQuDQo+ICsN
Cj4gKyAgQHBhcmFtICBIb2JTdGFydCAgUG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBI
T0IgTGlzdCBwYXNzZWQgaW4gZnJvbSB0aGUgUEVJIFBoYXNlLg0KPiArDQo+ICsqKi8NCj4gK1ZP
SUQNCj4gK0VGSUFQSQ0KPiArRWZpTWFpbiAoDQo+ICsgIElOIFZPSUQgICpIb2JTdGFydA0KPiAr
ICApOw0KPiArDQo+ICsNCj4gKy8qKg0KPiArICBBdXRvZ2VuZXJhdGVkIGZ1bmN0aW9uIHRoYXQg
Y2FsbHMgdGhlIGxpYnJhcnkgY29uc3RydWN0b3JzIGZvciBhbGwgb2YgdGhlIG1vZHVsZSdzIGRl
cGVuZGVudCBsaWJyYXJpZXMuDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxl
ZCBieSBfTW9kdWxlRW50cnlQb2ludCgpLg0KPiArICBUaGlzIGZ1bmN0aW9uIGNhbGxzIHRoZSBz
ZXQgb2YgbGlicmFyeSBjb25zdHJ1Y3RvcnMgZm9yIHRoZSBzZXQgb2YgbGlicmFyeSBpbnN0YW5j
ZXMNCj4gKyAgdGhhdCBhIG1vZHVsZSBkZXBlbmRzIG9uLiAgVGhpcyBpbmNsdWRlcyBsaWJyYXJ5
IGluc3RhbmNlcyB0aGF0IGEgbW9kdWxlIGRlcGVuZHMgb24NCj4gKyAgZGlyZWN0bHkgYW5kIGxp
YnJhcnkgaW5zdGFuY2VzIHRoYXQgYSBtb2R1bGUgZGVwZW5kcyBvbiBpbmRpcmVjdGx5IHRocm91
Z2ggb3RoZXINCj4gKyAgbGlicmFyaWVzLiBUaGlzIGZ1bmN0aW9uIGlzIGF1dG9nZW5lcmF0ZWQg
YnkgYnVpbGQgdG9vbHMgYW5kIHRob3NlIGJ1aWxkIHRvb2xzIGFyZQ0KPiArICByZXNwb25zaWJs
ZSBmb3IgY29sbGVjdGluZyB0aGUgc2V0IG9mIGxpYnJhcnkgaW5zdGFuY2VzLCBkZXRlcm1pbmUg
d2hpY2ggb25lcyBoYXZlDQo+ICsgIGNvbnN0cnVjdG9ycywgYW5kIGNhbGxpbmcgdGhlIGxpYnJh
cnkgY29uc3RydWN0b3JzIGluIHRoZSBwcm9wZXIgb3JkZXIgYmFzZWQgdXBvbg0KPiArICBlYWNo
IG9mIHRoZSBsaWJyYXJ5IGluc3RhbmNlcyBvd24gZGVwZW5kZW5jaWVzLg0KPiArDQo+ICsgIEBw
YXJhbSAgSW1hZ2VIYW5kbGUgIFRoZSBpbWFnZSBoYW5kbGUgb2YgdGhlIERYRSBDb3JlLg0KPiAr
ICBAcGFyYW0gIFN5c3RlbVRhYmxlICBBIHBvaW50ZXIgdG8gdGhlIEVGSSBTeXN0ZW0gVGFibGUu
DQo+ICsNCj4gKyoqLw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtQcm9jZXNzTGlicmFyeUNvbnN0
cnVjdG9yTGlzdCAoDQo+ICsgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgSW1hZ2VIYW5kbGUs
DQo+ICsgIElOIEVGSV9NTV9TWVNURU1fVEFCTEUgICAgKk1tU3lzdGVtVGFibGUNCj4gKyAgKTsN
Cj4gKw0KPiArDQo+ICsvKioNCj4gKyAgQXV0b2dlbmVyYXRlZCBmdW5jdGlvbiB0aGF0IGNhbGxz
IGEgc2V0IG9mIG1vZHVsZSBlbnRyeSBwb2ludHMuDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBt
dXN0IGJlIGNhbGxlZCBieSBfTW9kdWxlRW50cnlQb2ludCgpLg0KPiArICBUaGlzIGZ1bmN0aW9u
IGNhbGxzIHRoZSBzZXQgb2YgbW9kdWxlIGVudHJ5IHBvaW50cy4NCj4gKyAgVGhpcyBmdW5jdGlv
biBpcyBhdXRvIGdlbmVyYXRlZCBieSBidWlsZCB0b29scyBhbmQgdGhvc2UgYnVpbGQgdG9vbHMg
YXJlIHJlc3BvbnNpYmxlDQo+ICsgIGZvciBjb2xsZWN0aW5nIHRoZSBtb2R1bGUgZW50cnkgcG9p
bnRzIGFuZCBjYWxsaW5nIHRoZW0gaW4gYSBzcGVjaWZpZWQgb3JkZXIuDQo+ICsNCj4gKyAgQHBh
cmFtICBIb2JTdGFydCAgUG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBIT0IgTGlzdCBw
YXNzZWQgaW4gZnJvbSB0aGUgUEVJIFBoYXNlLg0KPiArDQo+ICsqKi8NCj4gK1ZPSUQNCj4gK0VG
SUFQSQ0KPiArUHJvY2Vzc01vZHVsZUVudHJ5UG9pbnRMaXN0ICgNCj4gKyAgSU4gVk9JRCAgKkhv
YlN0YXJ0DQo+ICsgICk7DQo+ICsNCj4gKyNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvU3RhbmRhbG9u
ZU1tUGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQvQXJtL0NyZWF0ZUhvYkxp
c3QuYyBiL1N0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50
L0FybS9DcmVhdGVIb2JMaXN0LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw
MDAwMDAwMC4uZjliM2ZhZWE4Zg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1N0YW5kYWxvbmVN
bVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50L0FybS9DcmVhdGVIb2JMaXN0
LmMNCj4gQEAgLTAsMCArMSwyMDAgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBFbnRyeSBwb2ludCB0
byB0aGUgU3RhbmRhbG9uZSBNTSBGb3VuZGF0aW9uIHdoZW4gaW5pdGlhbGl6ZWQgZHVyaW5nIHRo
ZSBTRUMNCj4gKyAgcGhhc2Ugb24gQVJNIHBsYXRmb3Jtcw0KDQpUaGUgY29tbWVudCBuZWVkcyB0
byBiZSB1cGRhdGVkLg0KW1N1cHJlZXRoXSBPay4gRG9uZS4NCj4gKw0KPiArQ29weXJpZ2h0IChj
KSAyMDE3LCBBUk0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK1RoaXMgcHJvZ3Jh
bSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gK2FyZSBsaWNlbnNlZCBhbmQgbWFk
ZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGlj
ZW5zZQ0KPiArd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0
ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiAraHR0cDovL29wZW5zb3VyY2Uu
b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4gKw0KPiArVEhFIFBST0dSQU0gSVMgRElT
VFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyIgQkFTSVMsDQo+ICtX
SVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIg
RVhQUkVTUyBPUiBJTVBMSUVELg0KPiArDQo+ICsqKi8NCj4gKw0KPiArDQo+ICsjaW5jbHVkZSA8
UGlNbS5oPg0KPiArDQo+ICsjaW5jbHVkZSA8UGlQZWkuaD4NCj4gKyNpbmNsdWRlIDxHdWlkL01t
cmFtTWVtb3J5UmVzZXJ2ZS5oPg0KPiArI2luY2x1ZGUgPEd1aWQvTXBJbmZvcm1hdGlvbi5oPg0K
PiArDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9Bcm0vU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQu
aD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0FybU1tdUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJh
cnkvQXJtU3ZjTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiArI2lu
Y2x1ZGUgPExpYnJhcnkvSG9iTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+
DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQo+ICsjaW5jbHVkZSA8TGli
cmFyeS9TZXJpYWxQb3J0TGliLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJk
L0FybVN0ZFNtYy5oPg0KPiArDQo+ICtleHRlcm4gRUZJX0hPQl9IQU5ET0ZGX0lORk9fVEFCTEUq
DQo+ICtIb2JDb25zdHJ1Y3RvciAoDQo+ICsgIElOIFZPSUQgICAqRWZpTWVtb3J5QmVnaW4sDQo+
ICsgIElOIFVJTlROICBFZmlNZW1vcnlMZW5ndGgsDQoNClVJTlQzMiBvciBVSU5UNjQ/DQpbU3Vw
cmVldGhdIFVJTlROIGlzIGJldHRlci4NCg0KPiArICBJTiBWT0lEICAgKkVmaUZyZWVNZW1vcnlC
b3R0b20sDQo+ICsgIElOIFZPSUQgICAqRWZpRnJlZU1lbW9yeVRvcA0KPiArICApOw0KPiArDQo+
ICsvLyBHVUlEIHRvIGlkZW50aWZ5IEhPQiB3aXRoIHdoZXJlYWJvdXRzIG9mIGNvbW11bmljYXRp
b24gYnVmZmVyIHdpdGggTm9ybWFsDQo+ICsvLyBXb3JsZA0KPiArZXh0ZXJuIEVGSV9HVUlEIGdF
ZmlTdGFuZGFsb25lTW1Ob25TZWN1cmVCdWZmZXJHdWlkOw0KPiArDQo+ICsvLyBHVUlEIHRvIGlk
ZW50aWZ5IEhPQiB3aGVyZSB0aGUgZW50cnkgcG9pbnQgb2YgdGhlIENQVSBkcml2ZXIgd2lsbCBi
ZQ0KPiArLy8gcG9wdWxhdGVkIHRvIGFsbG93IHRoaXMgZW50cnkgcG9pbnQgZHJpdmVyIHRvIGlu
dm9rZSBpdCB1cG9uIHJlY2VpcHQgb2YgYW4NCj4gKy8vIGV2ZW50DQo+ICtleHRlcm4gRUZJX0dV
SUQgZ0VmaUFybVRmQ3B1RHJpdmVyRXBEZXNjcmlwdG9yR3VpZDsNCj4gKw0KPiArLyoqDQo+ICsg
IFVzZSB0aGUgYm9vdCBpbmZvcm1hdGlvbiBwYXNzZWQgYnkgcHJpdmlsZWdlZCBmaXJtd2FyZSB0
byBwb3B1bGF0ZSBhIEhPQiBsaXN0DQo+ICsgIHN1aXRhYmxlIGZvciBjb25zdW1wdGlvbiBieSB0
aGUgTU0gQ29yZSBhbmQgZHJpdmVycy4NCj4gKw0KPiArICBAcGFyYW0gIFBheWxvYWRCb290SW5m
byAgICBCb290IGluZm9ybWF0aW9uIHBhc3NlZCBieSBwcml2aWxlZ2VkIGZpcm13YXJlDQo+ICsN
Cj4gKyoqLw0KPiArVk9JRCAqDQo+ICtDcmVhdGVIb2JMaXN0RnJvbUJvb3RJbmZvICgNCj4gKyAg
SU4gIE9VVCAgUElfTU1fQVJNX1RGX0NQVV9EUklWRVJfRU5UUllQT0lOVCAqQ3B1RHJpdmVyRW50
cnlQb2ludCwNCj4gKyAgSU4gICAgICAgRUZJX1NFQ1VSRV9QQVJUSVRJT05fQk9PVF9JTkZPICAg
ICAqUGF5bG9hZEJvb3RJbmZvDQo+ICspDQo+ICt7DQo+ICsgIEVGSV9IT0JfSEFORE9GRl9JTkZP
X1RBQkxFICAgICAgKkhvYlN0YXJ0Ow0KPiArICBFRklfUkVTT1VSQ0VfQVRUUklCVVRFX1RZUEUg
ICAgIEF0dHJpYnV0ZXM7DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5k
ZXg7DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyU2l6ZTsNCj4g
KyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFnczsNCj4gKyAgRUZJX01NUkFN
X0hPQl9ERVNDUklQVE9SX0JMT0NLICAqTW1yYW1SYW5nZXNIb2I7DQo+ICsgIEVGSV9NTVJBTV9E
RVNDUklQVE9SICAgICAgICAgICAgKk1tcmFtUmFuZ2VzOw0KPiArICBFRklfTU1SQU1fREVTQ1JJ
UFRPUiAgICAgICAgICAgICpOc0NvbW1CdWZNbXJhbVJhbmdlOw0KPiArICBNUF9JTkZPUk1BVElP
Tl9IT0JfREFUQSAgICAgICAgICpNcEluZm9ybWF0aW9uSG9iRGF0YTsNCj4gKyAgRUZJX1BST0NF
U1NPUl9JTkZPUk1BVElPTiAgICAgICAqUHJvY0luZm9CdWZmZXI7DQo+ICsgIEVGSV9TRUNVUkVf
UEFSVElUSU9OX0NQVV9JTkZPICAgKkNwdUluZm87DQo+ICsgIEFSTV9URl9DUFVfRFJJVkVSX0VQ
X0RFU0NSSVBUT1IgKkNwdURyaXZlckVudHJ5UG9pbnREZXNjOw0KPiArDQo+ICsgIC8vIENyZWF0
ZSBhIGhvYmxpc3Qgd2l0aCBhIFBISVQgYW5kIEVPSA0KPiArICBIb2JTdGFydCA9IEhvYkNvbnN0
cnVjdG9yICgoVk9JRCAqKSBQYXlsb2FkQm9vdEluZm8tPlNwTWVtQmFzZSwNCj4gKyAgICAoVUlO
VE4pICBQYXlsb2FkQm9vdEluZm8tPlNwTWVtTGltaXQgLSBQYXlsb2FkQm9vdEluZm8tPlNwTWVt
QmFzZSwNCj4gKyAgICAoVk9JRCAqKSBQYXlsb2FkQm9vdEluZm8tPlNwSGVhcEJhc2UsDQo+ICsg
ICAgKFZPSUQgKikgKFBheWxvYWRCb290SW5mby0+U3BIZWFwQmFzZSArIFBheWxvYWRCb290SW5m
by0+U3BIZWFwU2l6ZSkpOw0KPiArDQo+ICsgIC8vIENoZWNrIHRoYXQgdGhlIEhvYmxpc3Qgc3Rh
cnRzIGF0IHRoZSBib3R0b20gb2YgdGhlIEhlYXANCj4gKyAgQVNTRVJUIChIb2JTdGFydCA9PSAo
Vk9JRCAqKSBQYXlsb2FkQm9vdEluZm8tPlNwSGVhcEJhc2UpOw0KPiArDQo+ICsgIC8vIEJ1aWxk
IGEgQm9vdCBGaXJtd2FyZSBWb2x1bWUgSE9CDQo+ICsgIEJ1aWxkRnZIb2IoUGF5bG9hZEJvb3RJ
bmZvLT5TcEltYWdlQmFzZSwgUGF5bG9hZEJvb3RJbmZvLT5TcEltYWdlU2l6ZSk7DQo+ICsNCj4g
KyAgLy8gQnVpbGQgYSByZXNvdXJjZSBkZXNjcmlwdG9yIEhvYiB0aGF0IGRlc2NyaWJlcyB0aGUg
YXZhaWxhYmxlIHBoeXNpY2FsDQo+ICsgIC8vIG1lbW9yeSByYW5nZQ0KPiArICBBdHRyaWJ1dGVz
ID0oDQo+ICsgICAgRUZJX1JFU09VUkNFX0FUVFJJQlVURV9QUkVTRU5UIHwNCj4gKyAgICBFRklf
UkVTT1VSQ0VfQVRUUklCVVRFX0lOSVRJQUxJWkVEIHwNCj4gKyAgICBFRklfUkVTT1VSQ0VfQVRU
UklCVVRFX1RFU1RFRCB8DQo+ICsgICAgRUZJX1JFU09VUkNFX0FUVFJJQlVURV9VTkNBQ0hFQUJM
RSB8DQo+ICsgICAgRUZJX1JFU09VUkNFX0FUVFJJQlVURV9XUklURV9DT01CSU5FQUJMRSB8DQo+
ICsgICAgRUZJX1JFU09VUkNFX0FUVFJJQlVURV9XUklURV9USFJPVUdIX0NBQ0hFQUJMRSB8DQo+
ICsgICAgRUZJX1JFU09VUkNFX0FUVFJJQlVURV9XUklURV9CQUNLX0NBQ0hFQUJMRQ0KPiArICAp
Ow0KPiArDQo+ICsgIEJ1aWxkUmVzb3VyY2VEZXNjcmlwdG9ySG9iIChFRklfUkVTT1VSQ0VfU1lT
VEVNX01FTU9SWSwNCj4gKyAgICBBdHRyaWJ1dGVzLA0KPiArICAgIChVSU5UTikgUGF5bG9hZEJv
b3RJbmZvLT5TcE1lbUJhc2UsDQo+ICsgICAgUGF5bG9hZEJvb3RJbmZvLT5TcE1lbUxpbWl0IC0g
UGF5bG9hZEJvb3RJbmZvLT5TcE1lbUJhc2UpOw0KPiArDQo+ICsgIC8vIEZpbmQgdGhlIHNpemUg
b2YgdGhlIEdVSURlZCBIT0Igd2l0aCBNUCBpbmZvcm1hdGlvbg0KPiArICBCdWZmZXJTaXplID0g
c2l6ZW9mIChNUF9JTkZPUk1BVElPTl9IT0JfREFUQSk7DQo+ICsgIEJ1ZmZlclNpemUgKz0gc2l6
ZW9mIChFRklfUFJPQ0VTU09SX0lORk9STUFUSU9OKSAqIFBheWxvYWRCb290SW5mby0+TnVtQ3B1
czsNCj4gKw0KPiArICAvLyBDcmVhdGUgYSBHdWlkZWQgTVAgaW5mb3JtYXRpb24gSE9CIHRvIGVu
YWJsZSB0aGUgQVJNIFRGIENQVSBkcml2ZXIgdG8NCj4gKyAgLy8gcGVyZm9ybSBwZXItY3B1IGFs
bG9jYXRpb25zLg0KPiArICBNcEluZm9ybWF0aW9uSG9iRGF0YSA9IEJ1aWxkR3VpZEhvYigmZ01w
SW5mb3JtYXRpb25Ib2JHdWlkLCBCdWZmZXJTaXplKTsNCj4gKw0KPiArICAvLyBQb3B1bGF0ZSB0
aGUgTVAgaW5mb3JtYXRpb24gSE9CIHdpdGggdGhlIHRvcG9sb2d5IGluZm9ybWF0aW9uIHBhc3Nl
ZCBieQ0KPiArICAvLyBwcml2aWxlZ2VkIGZpcm13YXJlDQo+ICsgIE1wSW5mb3JtYXRpb25Ib2JE
YXRhLT5OdW1iZXJPZlByb2Nlc3NvcnMgPSBQYXlsb2FkQm9vdEluZm8tPk51bUNwdXM7DQo+ICsg
IE1wSW5mb3JtYXRpb25Ib2JEYXRhLT5OdW1iZXJPZkVuYWJsZWRQcm9jZXNzb3JzID0gUGF5bG9h
ZEJvb3RJbmZvLT5OdW1DcHVzOw0KPiArICBQcm9jSW5mb0J1ZmZlciA9IE1wSW5mb3JtYXRpb25I
b2JEYXRhLT5Qcm9jZXNzb3JJbmZvQnVmZmVyOw0KPiArICBDcHVJbmZvID0gUGF5bG9hZEJvb3RJ
bmZvLT5DcHVJbmZvOw0KPiArDQo+ICsgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IFBheWxvYWRC
b290SW5mby0+TnVtQ3B1czsgSW5kZXgrKykgew0KPiArICAgIFByb2NJbmZvQnVmZmVyW0luZGV4
XS5Qcm9jZXNzb3JJZCAgICAgID0gQ3B1SW5mb1tJbmRleF0uTXBpZHI7DQo+ICsgICAgUHJvY0lu
Zm9CdWZmZXJbSW5kZXhdLkxvY2F0aW9uLlBhY2thZ2UgPSBHRVRfQ0xVU1RFUl9JRChDcHVJbmZv
W0luZGV4XS5NcGlkcik7DQo+ICsgICAgUHJvY0luZm9CdWZmZXJbSW5kZXhdLkxvY2F0aW9uLkNv
cmUgICAgPSBHRVRfQ09SRV9JRChDcHVJbmZvW0luZGV4XS5NcGlkcik7DQo+ICsgICAgUHJvY0lu
Zm9CdWZmZXJbSW5kZXhdLkxvY2F0aW9uLlRocmVhZCAgPSBHRVRfQ09SRV9JRChDcHVJbmZvW0lu
ZGV4XS5NcGlkcik7DQo+ICsNCj4gKyAgICBGbGFncyA9IFBST0NFU1NPUl9FTkFCTEVEX0JJVCB8
IFBST0NFU1NPUl9IRUFMVEhfU1RBVFVTX0JJVDsNCj4gKyAgICBpZiAoQ3B1SW5mb1tJbmRleF0u
RmxhZ3MgJiBDUFVfSU5GT19GTEFHX1BSSU1BUllfQ1BVKSB7DQo+ICsgICAgICBGbGFncyB8PSBQ
Uk9DRVNTT1JfQVNfQlNQX0JJVDsNCj4gKyAgICB9DQo+ICsgICAgUHJvY0luZm9CdWZmZXJbSW5k
ZXhdLlN0YXR1c0ZsYWcgPSBGbGFnczsNCj4gKyAgfQ0KPiArDQo+ICsgIC8vIENyZWF0ZSBhIEd1
aWRlZCBIT0IgdG8gdGVsbCB0aGUgQVJNIFRGIENQVSBkcml2ZXIgdGhlIGxvY2F0aW9uIGFuZCBs
ZW5ndGgNCj4gKyAgLy8gb2YgdGhlIGNvbW11bmljYXRpb24gYnVmZmVyIHNoYXJlZCB3aXRoIHRo
ZSBOb3JtYWwgd29ybGQuDQo+ICsgIE5zQ29tbUJ1Zk1tcmFtUmFuZ2UgPSAoRUZJX01NUkFNX0RF
U0NSSVBUT1IgKikgQnVpbGRHdWlkSG9iICgmZ0VmaVN0YW5kYWxvbmVNbU5vblNlY3VyZUJ1ZmZl
ckd1aWQsIHNpemVvZihFRklfTU1SQU1fREVTQ1JJUFRPUikpOw0KPiArICBOc0NvbW1CdWZNbXJh
bVJhbmdlLT5QaHlzaWNhbFN0YXJ0ID0gUGF5bG9hZEJvb3RJbmZvLT5TcE5zQ29tbUJ1ZkJhc2U7
DQo+ICsgIE5zQ29tbUJ1Zk1tcmFtUmFuZ2UtPkNwdVN0YXJ0ICAgICAgPSBQYXlsb2FkQm9vdElu
Zm8tPlNwTnNDb21tQnVmQmFzZTsNCj4gKyAgTnNDb21tQnVmTW1yYW1SYW5nZS0+UGh5c2ljYWxT
aXplICA9IFBheWxvYWRCb290SW5mby0+U3BOc0NvbW1CdWZTaXplOw0KPiArICBOc0NvbW1CdWZN
bXJhbVJhbmdlLT5SZWdpb25TdGF0ZSAgID0gRUZJX0NBQ0hFQUJMRSB8IEVGSV9BTExPQ0FURUQ7
DQo+ICsNCj4gKyAgLy8gQ3JlYXRlIGEgR3VpZGVkIEhPQiB0byBlbmFibGUgdGhlIEFSTSBURiBD
UFUgZHJpdmVyIHRvIHNoYXJlIGl0cyBlbnRyeQ0KPiArICAvLyBwb2ludCBhbmQgcG9wdWxhdGUg
aXQgd2l0aCB0aGUgYWRkcmVzcyBvZiB0aGUgc2hhcmVkIGJ1ZmZlcg0KPiArICBDcHVEcml2ZXJF
bnRyeVBvaW50RGVzYyA9IChBUk1fVEZfQ1BVX0RSSVZFUl9FUF9ERVNDUklQVE9SICopIEJ1aWxk
R3VpZEhvYiAoJmdFZmlBcm1UZkNwdURyaXZlckVwRGVzY3JpcHRvckd1aWQsIHNpemVvZihBUk1f
VEZfQ1BVX0RSSVZFUl9FUF9ERVNDUklQVE9SKSk7DQo+ICsNCj4gKyAgKkNwdURyaXZlckVudHJ5
UG9pbnQgPSBOVUxMOw0KPiArICBDcHVEcml2ZXJFbnRyeVBvaW50RGVzYy0+QXJtVGZDcHVEcml2
ZXJFcFB0ciA9IENwdURyaXZlckVudHJ5UG9pbnQ7DQo+ICsNCj4gKyAgLy8gRmluZCB0aGUgc2l6
ZSBvZiB0aGUgR1VJRGVkIEhPQiB3aXRoIFNSQU0gcmFuZ2VzDQo+ICsgIEJ1ZmZlclNpemUgPSBz
aXplb2YgKEVGSV9NTVJBTV9IT0JfREVTQ1JJUFRPUl9CTE9DSyk7DQo+ICsgIEJ1ZmZlclNpemUg
Kz0gUGF5bG9hZEJvb3RJbmZvLT5OdW1TcE1lbVJlZ2lvbnMgKg0KPiArICAgIHNpemVvZihFRklf
TU1SQU1fREVTQ1JJUFRPUik7DQo+ICsNCj4gKyAgLy8gQ3JlYXRlIGEgR1VJRGVkIEhPQiB3aXRo
IFNSQU0gcmFuZ2VzDQo+ICsgIE1tcmFtUmFuZ2VzSG9iID0gQnVpbGRHdWlkSG9iICgmZ0VmaU1t
UGVpTW1yYW1NZW1vcnlSZXNlcnZlR3VpZCwgQnVmZmVyU2l6ZSk7DQo+ICsNCj4gKyAgLy8gRmls
bCB1cCB0aGUgbnVtYmVyIG9mIE1NUkFNIG1lbW9yeSByZWdpb25zDQo+ICsgIE1tcmFtUmFuZ2Vz
SG9iLT5OdW1iZXJPZk1tUmVzZXJ2ZWRSZWdpb25zID0gUGF5bG9hZEJvb3RJbmZvLT5OdW1TcE1l
bVJlZ2lvbnM7DQo+ICsgIC8vIEZpbGwgdXAgdGhlIE1NUkFNIHJhbmdlcw0KPiArICBNbXJhbVJh
bmdlcyA9ICZNbXJhbVJhbmdlc0hvYi0+RGVzY3JpcHRvclswXTsNCj4gKw0KPiArICAvLyBCYXNl
IGFuZCBzaXplIG9mIG1lbW9yeSBvY2N1cGllZCBieSB0aGUgU3RhbmRhbG9uZSBNTSBpbWFnZQ0K
PiArICBNbXJhbVJhbmdlc1swXS5QaHlzaWNhbFN0YXJ0ID0gUGF5bG9hZEJvb3RJbmZvLT5TcElt
YWdlQmFzZTsNCj4gKyAgTW1yYW1SYW5nZXNbMF0uQ3B1U3RhcnQgICAgICA9IFBheWxvYWRCb290
SW5mby0+U3BJbWFnZUJhc2U7DQo+ICsgIE1tcmFtUmFuZ2VzWzBdLlBoeXNpY2FsU2l6ZSAgPSBQ
YXlsb2FkQm9vdEluZm8tPlNwSW1hZ2VTaXplOw0KPiArICBNbXJhbVJhbmdlc1swXS5SZWdpb25T
dGF0ZSAgID0gRUZJX0NBQ0hFQUJMRSB8IEVGSV9BTExPQ0FURUQ7DQo+ICsNCj4gKyAgLy8gQmFz
ZSBhbmQgc2l6ZSBvZiBidWZmZXIgc2hhcmVkIHdpdGggcHJpdmlsZWdlZCBTZWN1cmUgd29ybGQg
c29mdHdhcmUNCj4gKyAgTW1yYW1SYW5nZXNbMV0uUGh5c2ljYWxTdGFydCA9IFBheWxvYWRCb290
SW5mby0+U3BTaGFyZWRCdWZCYXNlOw0KPiArICBNbXJhbVJhbmdlc1sxXS5DcHVTdGFydCAgICAg
ID0gUGF5bG9hZEJvb3RJbmZvLT5TcFNoYXJlZEJ1ZkJhc2U7DQo+ICsgIE1tcmFtUmFuZ2VzWzFd
LlBoeXNpY2FsU2l6ZSAgPSBQYXlsb2FkQm9vdEluZm8tPlNwUGNwdVNoYXJlZEJ1ZlNpemUgKiBQ
YXlsb2FkQm9vdEluZm8tPk51bUNwdXM7DQo+ICsgIE1tcmFtUmFuZ2VzWzFdLlJlZ2lvblN0YXRl
ICAgPSBFRklfQ0FDSEVBQkxFIHwgRUZJX0FMTE9DQVRFRDsNCj4gKw0KPiArICAvLyBCYXNlIGFu
ZCBzaXplIG9mIGJ1ZmZlciB1c2VkIGZvciBzeW5jaHJvbm91cyBjb21tdW5pY2F0aW9uIHdpdGgg
Tm9ybWFsDQo+ICsgIC8vIHdvcmxkIHNvZnR3YXJlDQo+ICsgIE1tcmFtUmFuZ2VzWzJdLlBoeXNp
Y2FsU3RhcnQgPSBQYXlsb2FkQm9vdEluZm8tPlNwTnNDb21tQnVmQmFzZTsNCj4gKyAgTW1yYW1S
YW5nZXNbMl0uQ3B1U3RhcnQgICAgICA9IFBheWxvYWRCb290SW5mby0+U3BOc0NvbW1CdWZCYXNl
Ow0KPiArICBNbXJhbVJhbmdlc1syXS5QaHlzaWNhbFNpemUgID0gUGF5bG9hZEJvb3RJbmZvLT5T
cE5zQ29tbUJ1ZlNpemU7DQo+ICsgIE1tcmFtUmFuZ2VzWzJdLlJlZ2lvblN0YXRlICAgPSBFRklf
Q0FDSEVBQkxFIHwgRUZJX0FMTE9DQVRFRDsNCj4gKw0KPiArICAvLyBCYXNlIGFuZCBzaXplIG9m
IG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHN0YWNrcyBmb3IgYWxsIGNwdXMNCj4gKyAgTW1yYW1SYW5n
ZXNbM10uUGh5c2ljYWxTdGFydCA9IFBheWxvYWRCb290SW5mby0+U3BTdGFja0Jhc2U7DQo+ICsg
IE1tcmFtUmFuZ2VzWzNdLkNwdVN0YXJ0ICAgICAgPSBQYXlsb2FkQm9vdEluZm8tPlNwU3RhY2tC
YXNlOw0KPiArICBNbXJhbVJhbmdlc1szXS5QaHlzaWNhbFNpemUgID0gUGF5bG9hZEJvb3RJbmZv
LT5TcFBjcHVTdGFja1NpemUgKiBQYXlsb2FkQm9vdEluZm8tPk51bUNwdXM7DQo+ICsgIE1tcmFt
UmFuZ2VzWzNdLlJlZ2lvblN0YXRlICAgPSBFRklfQ0FDSEVBQkxFIHwgRUZJX0FMTE9DQVRFRDsN
Cj4gKw0KPiArICAvLyBCYXNlIGFuZCBzaXplIG9mIGhlYXAgbWVtb3J5IHNoYXJlZCBieSBhbGwg
Y3B1cw0KPiArICBNbXJhbVJhbmdlc1s0XS5QaHlzaWNhbFN0YXJ0ID0gKEVGSV9QSFlTSUNBTF9B
RERSRVNTKSBIb2JTdGFydDsNCj4gKyAgTW1yYW1SYW5nZXNbNF0uQ3B1U3RhcnQgICAgICA9IChF
RklfUEhZU0lDQUxfQUREUkVTUykgSG9iU3RhcnQ7DQo+ICsgIE1tcmFtUmFuZ2VzWzRdLlBoeXNp
Y2FsU2l6ZSAgPSBIb2JTdGFydC0+RWZpRnJlZU1lbW9yeUJvdHRvbSAtIChFRklfUEhZU0lDQUxf
QUREUkVTUykgSG9iU3RhcnQ7DQo+ICsgIE1tcmFtUmFuZ2VzWzRdLlJlZ2lvblN0YXRlICAgPSBF
RklfQ0FDSEVBQkxFIHwgRUZJX0FMTE9DQVRFRDsNCj4gKw0KPiArICAvLyBCYXNlIGFuZCBzaXpl
IG9mIGhlYXAgbWVtb3J5IHNoYXJlZCBieSBhbGwgY3B1cw0KPiArICBNbXJhbVJhbmdlc1s1XS5Q
aHlzaWNhbFN0YXJ0ID0gSG9iU3RhcnQtPkVmaUZyZWVNZW1vcnlCb3R0b207DQo+ICsgIE1tcmFt
UmFuZ2VzWzVdLkNwdVN0YXJ0ICAgICAgPSBIb2JTdGFydC0+RWZpRnJlZU1lbW9yeUJvdHRvbTsN
Cj4gKyAgTW1yYW1SYW5nZXNbNV0uUGh5c2ljYWxTaXplICA9IEhvYlN0YXJ0LT5FZmlGcmVlTWVt
b3J5VG9wIC0gSG9iU3RhcnQtPkVmaUZyZWVNZW1vcnlCb3R0b207DQo+ICsgIE1tcmFtUmFuZ2Vz
WzVdLlJlZ2lvblN0YXRlICAgPSBFRklfQ0FDSEVBQkxFOw0KPiArDQo+ICsgIHJldHVybiBIb2JT
dGFydDsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL1N0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5k
YWxvbmVNbUNvcmVFbnRyeVBvaW50L0FybS9TZXRQZXJtaXNzaW9ucy5jIGIvU3RhbmRhbG9uZU1t
UGtnL0xpYnJhcnkvU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQvQXJtL1NldFBlcm1pc3Npb25z
LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZTk2YjgxY2Rj
MA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1N0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5k
YWxvbmVNbUNvcmVFbnRyeVBvaW50L0FybS9TZXRQZXJtaXNzaW9ucy5jDQoNClRoaXMgZmlsZSBu
ZWVkcyB0byBiZSByZXZpZXdlZCBieSBBcmQgYXMgaXQgaXMgaGVhdmlseSBiYXNlZCB1cG9uIGhp
cyBvcmlnaW5hbA0Kd29yayBhbmQgaGFzIG5vdCBjaGFuZ2VkIG11Y2ggc2luY2UgSSB3cm90ZSBp
dC4NCltTdXByZWV0aF0gWWVzLiBIZSBpcyBvbiB0aGUgcmV2aWV3ZXJzIGxpc3QuDQoNCj4gQEAg
LTAsMCArMSwyNzggQEANCj4gKy8qKiBAZmlsZQ0KPiArICBFbnRyeSBwb2ludCB0byB0aGUgU3Rh
bmRhbG9uZSBNTSBGb3VuZGF0aW9uIHdoZW4gaW5pdGlhbGlzZWQgZHVyaW5nIHRoZSBTRUMNCj4g
KyAgcGhhc2Ugb24gQVJNIHBsYXRmb3Jtcw0KDQpDb21tZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQu
DQpbU3VwcmVldGhdIFllcy4gRG9uZS4NCj4gKw0KPiArQ29weXJpZ2h0IChjKSAyMDE3LCBBUk0g
THRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK1RoaXMgcHJvZ3JhbSBhbmQgdGhlIGFj
Y29tcGFueWluZyBtYXRlcmlhbHMNCj4gK2FyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUg
dW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZQ0KPiArd2hp
Y2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBs
aWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiAraHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2Vz
L2JzZC1saWNlbnNlLnBocC4NCj4gKw0KPiArVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5E
RVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyIgQkFTSVMsDQo+ICtXSVRIT1VUIFdBUlJB
TlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJ
TVBMSUVELg0KPiArDQo+ICsqKi8NCj4gKw0KPiArDQo+ICsjaW5jbHVkZSA8UGlNbS5oPg0KPiAr
DQo+ICsNCj4gKw0KPiArI2luY2x1ZGUgPFBpUGVpLmg+DQo+ICsjaW5jbHVkZSA8R3VpZC9NbXJh
bU1lbW9yeVJlc2VydmUuaD4NCj4gKyNpbmNsdWRlIDxHdWlkL01wSW5mb3JtYXRpb24uaD4NCj4g
Kw0KPiArI2luY2x1ZGUgPExpYnJhcnkvQXJtL1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50Lmg+
DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9Bcm1NbXVMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5
L0FybVN2Y0xpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gKyNpbmNs
dWRlIDxMaWJyYXJ5L0hvYkxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0K
PiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJh
cnkvU2VyaWFsUG9ydExpYi5oPg0KPiArDQo+ICsNCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5k
YXJkL0FybVN0ZFNtYy5oPg0KPiArDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK1VwZGF0
ZU1tRm91bmRhdGlvblBlQ29mZlBlcm1pc3Npb25zICgNCj4gKyAgSU4gIENPTlNUIFBFX0NPRkZf
TE9BREVSX0lNQUdFX0NPTlRFWFQgICAgICAqSW1hZ2VDb250ZXh0LA0KPiArICBJTiAgVUlOVDMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY3Rpb25IZWFkZXJPZmZzZXQsDQo+
ICsgIElOICBDT05TVCAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyT2ZT
ZWN0aW9ucywNCg0KVUlOVDMyPw0KW1N1cHJlZXRoXSBpdHMgYWN0dWFsbHkgVUlOVDE2Lg0KDQo+
ICsgIElOICBSRUdJT05fUEVSTUlTU0lPTl9VUERBVEVfRlVOQyAgICAgICAgICAgVGV4dFVwZGF0
ZXIsDQo+ICsgIElOICBSRUdJT05fUEVSTUlTU0lPTl9VUERBVEVfRlVOQyAgICAgICAgICAgUmVh
ZE9ubHlVcGRhdGVyLA0KPiArICBJTiAgUkVHSU9OX1BFUk1JU1NJT05fVVBEQVRFX0ZVTkMgICAg
ICAgICAgIFJlYWRXcml0ZVVwZGF0ZXINCj4gKyAgKQ0KPiArew0KPiArICBFRklfSU1BR0VfU0VD
VElPTl9IRUFERVIgICAgICAgICBTZWN0aW9uSGVhZGVyOw0KPiArICBSRVRVUk5fU1RBVFVTICAg
ICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsgIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAg
ICAgICAgIEJhc2U7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemU7
DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWRTaXplOw0KPiArICBV
SU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gKw0KPiArICBBU1NFUlQg
KEltYWdlQ29udGV4dCAhPSBOVUxMKTsNCj4gKw0KPiArICAvLw0KPiArICAvLyBJdGVyYXRlIG92
ZXIgdGhlIHNlY3Rpb25zDQo+ICsgIC8vDQo+ICsgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE51
bWJlck9mU2VjdGlvbnM7IEluZGV4KyspIHsNCj4gKyAgICAvLw0KPiArICAgIC8vIFJlYWQgc2Vj
dGlvbiBoZWFkZXIgZnJvbSBmaWxlDQo+ICsgICAgLy8NCj4gKyAgICBTaXplID0gc2l6ZW9mIChF
RklfSU1BR0VfU0VDVElPTl9IRUFERVIpOw0KPiArICAgIFJlYWRTaXplID0gU2l6ZTsNCj4gKyAg
ICBTdGF0dXMgPSBJbWFnZUNvbnRleHQtPkltYWdlUmVhZCAoSW1hZ2VDb250ZXh0LT5IYW5kbGUs
IFNlY3Rpb25IZWFkZXJPZmZzZXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZTaXplLCAmU2VjdGlvbkhlYWRlcik7DQo+ICsgICAgaWYgKFJFVFVSTl9FUlJPUiAoU3Rh
dHVzKSB8fCAoU2l6ZSAhPSBSZWFkU2l6ZSkpIHsNCj4gKyAgICAgIERFQlVHICgoREVCVUdfRVJS
T1IsDQo+ICsgICAgICAgICIlYTogSW1hZ2VDb250ZXh0LT5JbWFnZVJlYWQgKCkgZmFpbGVkIChT
dGF0dXMgPSAlcilcbiIsDQo+ICsgICAgICAgIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7DQo+ICsg
ICAgICByZXR1cm4gU3RhdHVzOw0KPiArICAgIH0NCj4gKw0KPiArICAgIERFQlVHICgoREVCVUdf
SU5GTywNCj4gKyAgICAgICAgICAgICIlYTogU2VjdGlvbiAlZCBvZiBpbWFnZSBhdCAweCVseCBo
YXMgMHgleCBwZXJtaXNzaW9uc1xuIiwNCj4gKyAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgSW5k
ZXgsIEltYWdlQ29udGV4dC0+SW1hZ2VBZGRyZXNzLCBTZWN0aW9uSGVhZGVyLkNoYXJhY3Rlcmlz
dGljcykpOw0KPiArICAgIERFQlVHICgoREVCVUdfSU5GTywNCj4gKyAgICAgICAgICAgICIlYTog
U2VjdGlvbiAlZCBvZiBpbWFnZSBhdCAweCVseCBoYXMgJXMgbmFtZVxuIiwNCj4gKyAgICAgICAg
ICAgIF9fRlVOQ1RJT05fXywgSW5kZXgsIEltYWdlQ29udGV4dC0+SW1hZ2VBZGRyZXNzLCBTZWN0
aW9uSGVhZGVyLk5hbWUpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sDQo+ICsgICAgICAg
ICAgICAiJWE6IFNlY3Rpb24gJWQgb2YgaW1hZ2UgYXQgMHglbHggaGFzIDB4JXggYWRkcmVzc1xu
IiwNCj4gKyAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgSW5kZXgsIEltYWdlQ29udGV4dC0+SW1h
Z2VBZGRyZXNzLCBJbWFnZUNvbnRleHQtPkltYWdlQWRkcmVzcyArIFNlY3Rpb25IZWFkZXIuVmly
dHVhbEFkZHJlc3MpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sDQo+ICsgICAgICAgICAg
ICAiJWE6IFNlY3Rpb24gJWQgb2YgaW1hZ2UgYXQgMHglbHggaGFzIDB4JXggZGF0YVxuIiwNCj4g
KyAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgSW5kZXgsIEltYWdlQ29udGV4dC0+SW1hZ2VBZGRy
ZXNzLCBTZWN0aW9uSGVhZGVyLlBvaW50ZXJUb1Jhd0RhdGEpKTsNCj4gKw0KPiArICAgIC8vDQo+
ICsgICAgLy8gSWYgdGhlIHNlY3Rpb24gaXMgbWFya2VkIGFzIFhOIHRoZW4gcmVtb3ZlIHRoZSBY
IGF0dHJpYnV0ZS4gRnVydGhlcm1vcmUsDQo+ICsgICAgLy8gaWYgaXQgaXMgYSB3cml0ZWFibGUg
c2VjdGlvbiB0aGVuIG1hcmsgaXQgYXBwcm9wcmlhdGVseSBhcyB3ZWxsLg0KPiArICAgIC8vDQo+
ICsgICAgaWYgKChTZWN0aW9uSGVhZGVyLkNoYXJhY3RlcmlzdGljcyAmIEVGSV9JTUFHRV9TQ05f
TUVNX0VYRUNVVEUpID09IDApIHsNCj4gKyAgICAgIEJhc2UgPSBJbWFnZUNvbnRleHQtPkltYWdl
QWRkcmVzcyArIFNlY3Rpb25IZWFkZXIuVmlydHVhbEFkZHJlc3M7DQo+ICsNCj4gKyAgICAgIFRl
eHRVcGRhdGVyIChCYXNlLCBTZWN0aW9uSGVhZGVyLk1pc2MuVmlydHVhbFNpemUpOw0KPiArDQo+
ICsgICAgICBpZiAoKFNlY3Rpb25IZWFkZXIuQ2hhcmFjdGVyaXN0aWNzICYgRUZJX0lNQUdFX1ND
Tl9NRU1fV1JJVEUpICE9IDApIHsNCj4gKyAgICAgICAgUmVhZFdyaXRlVXBkYXRlciAoQmFzZSwg
U2VjdGlvbkhlYWRlci5NaXNjLlZpcnR1YWxTaXplKTsNCj4gKyAgICAgICAgREVCVUcgKChERUJV
R19JTkZPLA0KPiArICAgICAgICAgICAgICAgICIlYTogTWFwcGluZyBzZWN0aW9uICVkIG9mIGlt
YWdlIGF0IDB4JWx4IHdpdGggUlctWE4gcGVybWlzc2lvbnNcbiIsDQo+ICsgICAgICAgICAgICAg
ICAgX19GVU5DVElPTl9fLCBJbmRleCwgSW1hZ2VDb250ZXh0LT5JbWFnZUFkZHJlc3MpKTsNCj4g
KyAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAgIERFQlVHICgoREVCVUdfSU5GTywNCj4gKyAgICAg
ICAgICAgICAgICAiJWE6IE1hcHBpbmcgc2VjdGlvbiAlZCBvZiBpbWFnZSBhdCAweCVseCB3aXRo
IFJPLVhOIHBlcm1pc3Npb25zXG4iLA0KPiArICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywg
SW5kZXgsIEltYWdlQ29udGV4dC0+SW1hZ2VBZGRyZXNzKSk7DQo+ICsgICAgICB9DQo+ICsgICAg
fSBlbHNlIHsNCj4gKyAgICAgICAgREVCVUcgKChERUJVR19JTkZPLA0KPiArICAgICAgICAgICAg
ICAgICIlYTogSWdub3Jpbmcgc2VjdGlvbiAlZCBvZiBpbWFnZSBhdCAweCVseCB3aXRoIDB4JXgg
cGVybWlzc2lvbnNcbiIsDQo+ICsgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBJbmRleCwg
SW1hZ2VDb250ZXh0LT5JbWFnZUFkZHJlc3MsIFNlY3Rpb25IZWFkZXIuQ2hhcmFjdGVyaXN0aWNz
KSk7DQo+ICsgICAgfQ0KPiArICAgIFNlY3Rpb25IZWFkZXJPZmZzZXQgKz0gc2l6ZW9mIChFRklf
SU1BR0VfU0VDVElPTl9IRUFERVIpOw0KPiArICB9DQo+ICsNCj4gKyAgcmV0dXJuIFJFVFVSTl9T
VUNDRVNTOw0KPiArfQ0KPiArDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK0xvY2F0ZVN0
YW5kYWxvbmVNbUNvcmVQZUNvZmZEYXRhICgNCj4gKyAgSU4gICAgICAgIEVGSV9GSVJNV0FSRV9W
T0xVTUVfSEVBREVSICAgICAgKkJmdkFkZHJlc3MsDQo+ICsgIElOICBPVVQgICBWT0lEICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICoqVGVEYXRhLA0KPiArICBJTiAgT1VUICAgVUlOVE4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAqVGVEYXRhU2l6ZQ0KPiArICApDQo+ICt7DQo+ICsgIEVG
SV9GRlNfRklMRV9IRUFERVIgICAgICAgICAgICAgKkZpbGVIZWFkZXIgPSBOVUxMOw0KPiArICBF
RklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gKw0KPiArICBTdGF0dXMg
PSBGZnNGaW5kTmV4dEZpbGUgKA0KPiArICAgICAgICAgICAgICAgICAgRUZJX0ZWX0ZJTEVUWVBF
X1NFQ1VSSVRZX0NPUkUsDQo+ICsgICAgICAgICAgICAgICAgICBCZnZBZGRyZXNzLA0KPiArICAg
ICAgICAgICAgICAgICAgJkZpbGVIZWFkZXIpOw0KPiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMp
KSB7DQo+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlVuYWJsZSB0byBsb2NhdGUgU3RhbmRh
bG9uZSBNTSBGRlMgZmlsZSAtIDB4JXhcbiIsDQo+ICsgICAgICBTdGF0dXMpKTsNCj4gKyAgICBy
ZXR1cm4gU3RhdHVzOw0KPiArICB9DQo+ICsNCj4gKyAgU3RhdHVzID0gRmZzRmluZFNlY3Rpb25E
YXRhIChFRklfU0VDVElPTl9QRTMyLCBGaWxlSGVhZGVyLCBUZURhdGEsIFRlRGF0YVNpemUpOw0K
PiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX0VS
Uk9SLCAiVW5hYmxlIHRvIGxvY2F0ZSBTdGFuZGFsb25lIE1NIFNlY3Rpb24gZGF0YSAtIDB4JXhc
biIsDQo+ICsgICAgICAgICAgICAgIFN0YXR1cykpOw0KPiArICAgIHJldHVybiBTdGF0dXM7DQo+
ICsgIH0NCj4gKw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJGb3VuZCBTdGFuZGFsb25lIE1N
IFBFIGRhdGEgLSAweCV4XG4iLCAqVGVEYXRhKSk7DQo+ICsgIHJldHVybiBTdGF0dXM7DQo+ICt9
DQo+ICsNCj4gK3N0YXRpYw0KPiArRUZJX1NUQVRVUw0KPiArR2V0UGVDb2ZmU2VjdGlvbkluZm9y
bWF0aW9uICgNCj4gKyAgSU4gIENPTlNUIFBFX0NPRkZfTE9BREVSX0lNQUdFX0NPTlRFWFQgICAg
ICAqSW1hZ2VDb250ZXh0LA0KPiArICBJTiAgT1VUICAgUEVfQ09GRl9MT0FERVJfSU1BR0VfQ09O
VEVYVCAgICAgICpUbXBDb250ZXh0LA0KPiArICBJTiAgT1VUICAgVUlOVDMyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICpTZWN0aW9uSGVhZGVyT2Zmc2V0LA0KPiArICBJTiAgT1VUICAgVUlO
VE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICpOdW1iZXJPZlNlY3Rpb25zDQo+ICsgICkN
Cj4gK3sNCj4gKyAgUkVUVVJOX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7
DQo+ICsgIEVGSV9JTUFHRV9PUFRJT05BTF9IRUFERVJfUFRSX1VOSU9OICAgSGRyOw0KPiArICBF
RklfSU1BR0VfT1BUSU9OQUxfSEVBREVSX1VOSU9OICAgICAgIEhkckRhdGE7DQo+ICsgIFVJTlRO
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZTsNCj4gKyAgVUlOVE4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkU2l6ZTsNCj4gKw0KPiArICBBU1NFUlQgKElt
YWdlQ29udGV4dCAhPSBOVUxMKTsNCj4gKyAgQVNTRVJUIChUbXBDb250ZXh0ICE9IE5VTEwpOw0K
PiArICBBU1NFUlQgKFNlY3Rpb25IZWFkZXJPZmZzZXQgIT0gTlVMTCk7DQo+ICsgIEFTU0VSVCAo
TnVtYmVyT2ZTZWN0aW9ucyAhPSBOVUxMKTsNCj4gKw0KPiArICAvLw0KPiArICAvLyBXZSBuZWVk
IHRvIGNvcHkgSW1hZ2VDb250ZXh0IHNpbmNlIFBlQ29mZkxvYWRlckdldEltYWdlSW5mbyAoKQ0K
PiArICAvLyB3aWxsIG1hbmdsZSB0aGUgSW1hZ2VBZGRyZXNzIGZpZWxkDQo+ICsgIC8vDQo+ICsg
IENvcHlNZW0gKFRtcENvbnRleHQsIEltYWdlQ29udGV4dCwgc2l6ZW9mICgqVG1wQ29udGV4dCkp
Ow0KPiArDQo+ICsgIGlmIChUbXBDb250ZXh0LT5QZUNvZmZIZWFkZXJPZmZzZXQgPT0gMCkgew0K
PiArICAgIFN0YXR1cyA9IFBlQ29mZkxvYWRlckdldEltYWdlSW5mbyAoVG1wQ29udGV4dCk7DQo+
ICsgICAgaWYgKFJFVFVSTl9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgICAgREVCVUcgKChERUJV
R19FUlJPUiwNCj4gKyAgICAgICAgIiVhOiBQZUNvZmZMb2FkZXJHZXRJbWFnZUluZm8gKCkgZmFp
bGVkIChTdGF0dXMgPSAlcilcbiIsDQo+ICsgICAgICAgIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7
DQo+ICsgICAgICByZXR1cm4gU3RhdHVzOw0KPiArICAgIH0NCj4gKyAgfQ0KPiArDQo+ICsgIGlm
IChUbXBDb250ZXh0LT5Jc1RlSW1hZ2UgJiYNCj4gKyAgICAgIFRtcENvbnRleHQtPkltYWdlQWRk
cmVzcyA9PSBJbWFnZUNvbnRleHQtPkltYWdlQWRkcmVzcykgew0KPiArICAgIERFQlVHICgoREVC
VUdfSU5GTywgIiVhOiBpZ25vcmluZyBYSVAgVEUgaW1hZ2UgYXQgMHglbHhcbiIsIF9fRlVOQ1RJ
T05fXywNCj4gKyAgICAgIEltYWdlQ29udGV4dC0+SW1hZ2VBZGRyZXNzKSk7DQo+ICsgICAgcmV0
dXJuIFJFVFVSTl9VTlNVUFBPUlRFRDsNCj4gKyAgfQ0KPiArDQo+ICsgIGlmIChUbXBDb250ZXh0
LT5TZWN0aW9uQWxpZ25tZW50IDwgRUZJX1BBR0VfU0laRSkgew0KPiArICAgIC8vDQo+ICsgICAg
Ly8gVGhlIHNlY3Rpb25zIG5lZWQgdG8gYmUgYXQgbGVhc3QgNCBLQiBhbGlnbmVkLCBzaW5jZSB0
aGF0IGlzIHRoZQ0KPiArICAgIC8vIGdyYW51bGFyaXR5IGF0IHdoaWNoIHdlIGNhbiB0aWdodGVu
IHBlcm1pc3Npb25zLg0KPiArICAgIC8vDQo+ICsgICAgaWYgKCFUbXBDb250ZXh0LT5Jc1RlSW1h
Z2UpIHsNCj4gKyAgICAgIERFQlVHICgoREVCVUdfV0FSTiwNCj4gKyAgICAgICAgIiVhOiBub24t
VEUgSW1hZ2UgYXQgMHglbHggaGFzIFNlY3Rpb25BbGlnbm1lbnQgPCA0IEtCICglbHUpXG4iLA0K
PiArICAgICAgICBfX0ZVTkNUSU9OX18sIEltYWdlQ29udGV4dC0+SW1hZ2VBZGRyZXNzLCBUbXBD
b250ZXh0LT5TZWN0aW9uQWxpZ25tZW50KSk7DQo+ICsgICAgfQ0KPiArICAgIHJldHVybiBSRVRV
Uk5fVU5TVVBQT1JURUQ7DQo+ICsgIH0NCj4gKw0KPiArICAvLw0KPiArICAvLyBSZWFkIHRoZSBQ
RS9DT0ZGIEhlYWRlci4gRm9yIFBFMzIgKDMyLWJpdCkgdGhpcyB3aWxsIHJlYWQgaW4gdG9vIG11
Y2gNCj4gKyAgLy8gZGF0YSwgYnV0IHRoYXQgc2hvdWxkIG5vdCBodXJ0IGFueXRoaW5nLiBIZHIu
UGUzMi0+T3B0aW9uYWxIZWFkZXIuTWFnaWMNCj4gKyAgLy8gZGV0ZXJtaW5lcyBpZiB0aGlzIGlz
IGEgUEUzMiBvciBQRTMyKyBpbWFnZS4gVGhlIG1hZ2ljIGlzIGluIHRoZSBzYW1lDQo+ICsgIC8v
IGxvY2F0aW9uIGluIGJvdGggaW1hZ2VzLg0KPiArICAvLw0KPiArICBIZHIuVW5pb24gPSAmSGRy
RGF0YTsNCj4gKyAgU2l6ZSA9IHNpemVvZiAoRUZJX0lNQUdFX09QVElPTkFMX0hFQURFUl9VTklP
Tik7DQo+ICsgIFJlYWRTaXplID0gU2l6ZTsNCj4gKyAgU3RhdHVzID0gVG1wQ29udGV4dC0+SW1h
Z2VSZWFkIChUbXBDb250ZXh0LT5IYW5kbGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
VG1wQ29udGV4dC0+UGVDb2ZmSGVhZGVyT2Zmc2V0LCAmU2l6ZSwgSGRyLlBlMzIpOw0KPiArICBp
ZiAoUkVUVVJOX0VSUk9SIChTdGF0dXMpIHx8IChTaXplICE9IFJlYWRTaXplKSkgew0KPiArICAg
IERFQlVHICgoREVCVUdfRVJST1IsDQo+ICsgICAgICAiJWE6IFRtcENvbnRleHQtPkltYWdlUmVh
ZCAoKSBmYWlsZWQgKFN0YXR1cyA9ICVyKVxuIiwNCj4gKyAgICAgIF9fRlVOQ1RJT05fXywgU3Rh
dHVzKSk7DQo+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gKyAgfQ0KPiArDQo+ICsgIEFTU0VSVCAo
SGRyLlBlMzItPlNpZ25hdHVyZSA9PSBFRklfSU1BR0VfTlRfU0lHTkFUVVJFKTsNCj4gKw0KPiAr
ICAqU2VjdGlvbkhlYWRlck9mZnNldCA9IFRtcENvbnRleHQtPlBlQ29mZkhlYWRlck9mZnNldCAr
IHNpemVvZiAoVUlOVDMyKSArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKEVG
SV9JTUFHRV9GSUxFX0hFQURFUik7DQo+ICsgICpOdW1iZXJPZlNlY3Rpb25zICAgID0gKFVJTlRO
KShIZHIuUGUzMi0+RmlsZUhlYWRlci5OdW1iZXJPZlNlY3Rpb25zKTsNCj4gKw0KPiArICBzd2l0
Y2ggKEhkci5QZTMyLT5PcHRpb25hbEhlYWRlci5NYWdpYykgew0KPiArICAgIGNhc2UgRUZJX0lN
QUdFX05UX09QVElPTkFMX0hEUjMyX01BR0lDOg0KPiArICAgICAgKlNlY3Rpb25IZWFkZXJPZmZz
ZXQgKz0gSGRyLlBlMzItPkZpbGVIZWFkZXIuU2l6ZU9mT3B0aW9uYWxIZWFkZXI7DQo+ICsgICAg
ICBicmVhazsNCj4gKyAgICBjYXNlIEVGSV9JTUFHRV9OVF9PUFRJT05BTF9IRFI2NF9NQUdJQzoN
Cj4gKyAgICAgICpTZWN0aW9uSGVhZGVyT2Zmc2V0ICs9IEhkci5QZTMyUGx1cy0+RmlsZUhlYWRl
ci5TaXplT2ZPcHRpb25hbEhlYWRlcjsNCj4gKyAgICAgIGJyZWFrOw0KPiArICAgIGRlZmF1bHQ6
DQo+ICsgICAgICBBU1NFUlQgKEZBTFNFKTsNCj4gKyAgfQ0KPiArDQo+ICsgIHJldHVybiBSRVRV
Uk5fU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtHZXRT
dGFuZGFsb25lTW1Db3JlUGVDb2ZmU2VjdGlvbnMgKA0KPiArICBJTiAgICAgICAgVk9JRCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqVGVEYXRhLA0KPiArICBJTiAgT1VUICAgUEVfQ09GRl9M
T0FERVJfSU1BR0VfQ09OVEVYVCAgICAqSW1hZ2VDb250ZXh0LA0KPiArICBJTiAgT1VUICAgVUlO
VDMyICAgICAgICAgICAgICAgICAgICAgICAgICAqU2VjdGlvbkhlYWRlck9mZnNldCwNCj4gKyAg
SU4gIE9VVCAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgKk51bWJlck9mU2VjdGlv
bnMNCj4gKyAgKQ0KPiArew0KPiArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgIFN0YXR1
czsNCj4gKyAgUEVfQ09GRl9MT0FERVJfSU1BR0VfQ09OVEVYVCBUbXBDb250ZXh0Ow0KPiArDQo+
ICsgIC8vIEluaXRpYWxpemUgdGhlIEltYWdlIENvbnRleHQNCj4gKyAgWmVyb01lbSAoSW1hZ2VD
b250ZXh0LCBzaXplb2YgKFBFX0NPRkZfTE9BREVSX0lNQUdFX0NPTlRFWFQpKTsNCj4gKyAgSW1h
Z2VDb250ZXh0LT5IYW5kbGUgICAgPSBUZURhdGE7DQo+ICsgIEltYWdlQ29udGV4dC0+SW1hZ2VS
ZWFkID0gUGVDb2ZmTG9hZGVySW1hZ2VSZWFkRnJvbU1lbW9yeTsNCj4gKw0KPiArICBERUJVRygo
REVCVUdfSU5GTywgIkZvdW5kIFN0YW5kYWxvbmUgTU0gUEUgZGF0YSAtIDB4JXhcbiIsIFRlRGF0
YSkpOw0KPiArDQo+ICsgIFN0YXR1cyA9IFBlQ29mZkxvYWRlckdldEltYWdlSW5mbyAoSW1hZ2VD
b250ZXh0KTsNCj4gKyAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ICsgICAgREVCVUcoKERF
QlVHX0VSUk9SLCAiVW5hYmxlIHRvIGxvY2F0ZSBTdGFuZGFsb25lIE1NIENvcmUgUEUtQ09GRiBJ
bWFnZSBpbmZvcm1hdGlvbiAtIDB4JXhcbiIsIFN0YXR1cykpOw0KPiArICAgIHJldHVybiBTdGF0
dXM7DQo+ICsgIH0NCj4gKw0KPiArICBTdGF0dXMgPSBHZXRQZUNvZmZTZWN0aW9uSW5mb3JtYXRp
b24oSW1hZ2VDb250ZXh0LCAmVG1wQ29udGV4dCwgU2VjdGlvbkhlYWRlck9mZnNldCwgTnVtYmVy
T2ZTZWN0aW9ucyk7DQo+ICsgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiArICAgIERFQlVH
KChERUJVR19FUlJPUiwgIlVuYWJsZSB0byBsb2NhdGUgU3RhbmRhbG9uZSBNTSBDb3JlIFBFLUNP
RkYgU2VjdGlvbiBpbmZvcm1hdGlvbiAtIDB4JXhcbiIsIFN0YXR1cykpOw0KPiArICAgIHJldHVy
biBTdGF0dXM7DQo+ICsgIH0NCj4gKw0KPiArICBERUJVRygoREVCVUdfSU5GTywgIlN0YW5kYWxv
bmUgTU0gQ29yZSBQRS1DT0ZGIFNlY3Rpb25IZWFkZXJPZmZzZXQgLSAweCV4LCBOdW1iZXJPZlNl
Y3Rpb25zIC0gJWRcbiIsICpTZWN0aW9uSGVhZGVyT2Zmc2V0LCAqTnVtYmVyT2ZTZWN0aW9ucykp
Ow0KPiArDQo+ICsgIHJldHVybiBTdGF0dXM7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9TdGFuZGFs
b25lTW1Qa2cvTGlicmFyeS9TdGFuZGFsb25lTW1Db3JlRW50cnlQb2ludC9Bcm0vU3RhbmRhbG9u
ZU1tQ29yZUVudHJ5UG9pbnQuYyBiL1N0YW5kYWxvbmVNbVBrZy9MaWJyYXJ5L1N0YW5kYWxvbmVN
bUNvcmVFbnRyeVBvaW50L0FybS9TdGFuZGFsb25lTW1Db3JlRW50cnlQb2ludC5jDQo+IG5ldyBm
aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjcyZTNiODM0ZDQNCj4gLS0tIC9k
ZXYvbnVsbA0KPiArKysgYi9TdGFuZGFsb25lTW1Qa2cvTGlicmFyeS9TdGFuZGFsb25lTW1Db3Jl
RW50cnlQb2ludC9Bcm0vU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQuYw0KPiBAQCAtMCwwICsx
LDI2NCBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIEVudHJ5IHBvaW50IHRvIHRoZSBTdGFuZGFsb25l
IE1NIEZvdW5kYXRpb24gd2hlbiBpbml0aWFsaXplZCBkdXJpbmcgdGhlIFNFQw0KPiArICBwaGFz
ZSBvbiBBUk0gcGxhdGZvcm1zDQo+ICsNCj4gK0NvcHlyaWdodCAoYykgMjAxNywgQVJNIEx0ZC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICtUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBh
bnlpbmcgbWF0ZXJpYWxzDQo+ICthcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVy
IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UNCj4gK3doaWNoIGFj
Y29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5z
ZSBtYXkgYmUgZm91bmQgYXQNCj4gK2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2Qt
bGljZW5zZS5waHAuDQo+ICsNCj4gK1RIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRI
RSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiIEJBU0lTLA0KPiArV0lUSE9VVCBXQVJSQU5USUVT
IE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElF
RC4NCj4gKw0KPiArKiovDQo+ICsNCj4gKw0KPiArI2luY2x1ZGUgPFBpTW0uaD4NCj4gKw0KPiAr
I2luY2x1ZGUgPExpYnJhcnkvQXJtL1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50Lmg+DQo+ICsN
Cj4gKyNpbmNsdWRlIDxQaVBlaS5oPg0KPiArI2luY2x1ZGUgPEd1aWQvTW1yYW1NZW1vcnlSZXNl
cnZlLmg+DQo+ICsjaW5jbHVkZSA8R3VpZC9NcEluZm9ybWF0aW9uLmg+DQo+ICsNCj4gKyNpbmNs
dWRlIDxMaWJyYXJ5L0FybU1tdUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvQXJtU3ZjTGli
Lmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJh
cnkvSG9iTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ICsjaW5jbHVk
ZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9TZXJpYWxQ
b3J0TGliLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL0FybVN0ZFNtYy5o
Pg0KPiArI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvQXJtTW1TdmMuaD4NCj4gKw0KPiArI2Rl
ZmluZSBTUE1fTUFKT1JfVkVSX01BU0sgICAgICAgIDB4RkZGRjAwMDANCj4gKyNkZWZpbmUgU1BN
X01JTk9SX1ZFUl9NQVNLICAgICAgICAweDAwMDBGRkZGDQo+ICsjZGVmaW5lIFNQTV9NQUpPUl9W
RVJfU0hJRlQgICAgICAgMTYNCj4gKw0KPiArY29uc3QgVUlOVDMyIFNQTV9NQUpPUl9WRVIgPSAw
Ow0KPiArY29uc3QgVUlOVDMyIFNQTV9NSU5PUl9WRVIgPSAxOw0KPiArDQo+ICtjb25zdCBVSU5U
OCBCT09UX1BBWUxPQURfVkVSU0lPTiA9IDE7DQo+ICsNCj4gK1BJX01NX0FSTV9URl9DUFVfRFJJ
VkVSX0VOVFJZUE9JTlQgICAgICBDcHVEcml2ZXJFbnRyeVBvaW50ID0gTlVMTDsNCj4gKw0KPiAr
LyoqDQo+ICsgIFJldHJpZXZlIGEgcG9pbnRlciB0byBhbmQgcHJpbnQgdGhlIGJvb3QgaW5mb3Jt
YXRpb24gcGFzc2VkIGJ5IHByaXZpbGVnZWQNCj4gKyAgc2VjdXJlIGZpcm13YXJlDQo+ICsNCj4g
KyAgQHBhcmFtICBTaGFyZWRCdWZBZGRyZXNzIFRoZSBwb2ludGVyIG1lbW9yeSBzaGFyZWQgd2l0
aCBwcml2aWxlZ2VkIGZpcm13YXJlDQo+ICsNCj4gKyoqLw0KPiArRUZJX1NFQ1VSRV9QQVJUSVRJ
T05fQk9PVF9JTkZPICoNCj4gK0dldEFuZFByaW50Qm9vdGluZm9ybWF0aW9uICgNCj4gKyAgSU4g
Vk9JRCAgICAgICAgICAgICAgICAgICAgICAqU2hhcmVkQnVmQWRkcmVzcw0KPiArKQ0KPiArew0K
PiArICBFRklfU0VDVVJFX1BBUlRJVElPTl9CT09UX0lORk8gKlBheWxvYWRCb290SW5mbzsNCj4g
KyAgRUZJX1NFQ1VSRV9QQVJUSVRJT05fQ1BVX0lORk8gICpQYXlsb2FkQ3B1SW5mbzsNCj4gKyAg
VUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiArDQo+ICsgIFBheWxvYWRC
b290SW5mbyA9IChFRklfU0VDVVJFX1BBUlRJVElPTl9CT09UX0lORk8gKikgU2hhcmVkQnVmQWRk
cmVzczsNCj4gKw0KPiArICBpZiAoUGF5bG9hZEJvb3RJbmZvLT5IZWFkZXIuVmVyc2lvbiAhPSBC
T09UX1BBWUxPQURfVkVSU0lPTikNCj4gKyAgew0KPiArICAgIERFQlVHKChERUJVR19FUlJPUiwg
IkJvb3QgSW5mb3JtYXRpb24gVmVyc2lvbiBNaXNtYXRjaC4gQ3VycmVudD0weCV4LCBFeHBlY3Rl
ZD0weCV4LlxuIiwgUGF5bG9hZEJvb3RJbmZvLT5IZWFkZXIuVmVyc2lvbiwgQk9PVF9QQVlMT0FE
X1ZFUlNJT04pKTsNCj4gKyAgICByZXR1cm4gTlVMTDsNCj4gKyAgfQ0KPiArICBERUJVRygoREVC
VUdfSU5GTywgIk51bVNwTWVtUmVnaW9ucyAtIDB4JXhcbiIsIFBheWxvYWRCb290SW5mby0+TnVt
U3BNZW1SZWdpb25zKSk7DQo+ICsgIERFQlVHKChERUJVR19JTkZPLCAiU3BNZW1CYXNlICAgICAg
IC0gMHglbHhcbiIsIFBheWxvYWRCb290SW5mby0+U3BNZW1CYXNlKSk7DQo+ICsgIERFQlVHKChE
RUJVR19JTkZPLCAiU3BNZW1MaW1pdCAgICAgIC0gMHglbHhcbiIsIFBheWxvYWRCb290SW5mby0+
U3BNZW1MaW1pdCkpOw0KPiArICBERUJVRygoREVCVUdfSU5GTywgIlNwSW1hZ2VCYXNlICAgICAt
IDB4JWx4XG4iLCBQYXlsb2FkQm9vdEluZm8tPlNwSW1hZ2VCYXNlKSk7DQo+ICsgIERFQlVHKChE
RUJVR19JTkZPLCAiU3BTdGFja0Jhc2UgICAgIC0gMHglbHhcbiIsIFBheWxvYWRCb290SW5mby0+
U3BTdGFja0Jhc2UpKTsNCj4gKyAgREVCVUcoKERFQlVHX0lORk8sICJTcEhlYXBCYXNlICAgICAg
LSAweCVseFxuIiwgUGF5bG9hZEJvb3RJbmZvLT5TcEhlYXBCYXNlKSk7DQo+ICsgIERFQlVHKChE
RUJVR19JTkZPLCAiU3BOc0NvbW1CdWZCYXNlIC0gMHglbHhcbiIsIFBheWxvYWRCb290SW5mby0+
U3BOc0NvbW1CdWZCYXNlKSk7DQo+ICsgIERFQlVHKChERUJVR19JTkZPLCAiU3BTaGFyZWRCdWZC
YXNlIC0gMHglbHhcbiIsIFBheWxvYWRCb290SW5mby0+U3BTaGFyZWRCdWZCYXNlKSk7DQo+ICsN
Cj4gKyAgREVCVUcoKERFQlVHX0lORk8sICJTcEltYWdlU2l6ZSAgICAgLSAweCV4XG4iLCBQYXls
b2FkQm9vdEluZm8tPlNwSW1hZ2VTaXplKSk7DQo+ICsgIERFQlVHKChERUJVR19JTkZPLCAiU3BQ
Y3B1U3RhY2tTaXplIC0gMHgleFxuIiwgUGF5bG9hZEJvb3RJbmZvLT5TcFBjcHVTdGFja1NpemUp
KTsNCj4gKyAgREVCVUcoKERFQlVHX0lORk8sICJTcEhlYXBTaXplICAgICAgLSAweCV4XG4iLCBQ
YXlsb2FkQm9vdEluZm8tPlNwSGVhcFNpemUpKTsNCj4gKyAgREVCVUcoKERFQlVHX0lORk8sICJT
cE5zQ29tbUJ1ZlNpemUgLSAweCV4XG4iLCBQYXlsb2FkQm9vdEluZm8tPlNwTnNDb21tQnVmU2l6
ZSkpOw0KPiArICBERUJVRygoREVCVUdfSU5GTywgIlNwUGNwdVNoYXJlZEJ1ZlNpemUgLSAweCV4
XG4iLCBQYXlsb2FkQm9vdEluZm8tPlNwUGNwdVNoYXJlZEJ1ZlNpemUpKTsNCj4gKw0KPiArICBE
RUJVRygoREVCVUdfSU5GTywgIk51bUNwdXMgICAgICAgICAtIDB4JXhcbiIsIFBheWxvYWRCb290
SW5mby0+TnVtQ3B1cykpOw0KPiArICBERUJVRygoREVCVUdfSU5GTywgIkNwdUluZm8gICAgICAg
ICAtIDB4JXBcbiIsIFBheWxvYWRCb290SW5mby0+Q3B1SW5mbykpOw0KPiArDQo+ICsgIFBheWxv
YWRDcHVJbmZvID0gKEVGSV9TRUNVUkVfUEFSVElUSU9OX0NQVV9JTkZPICopIFBheWxvYWRCb290
SW5mby0+Q3B1SW5mbzsNCj4gKw0KPiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBQYXlsb2Fk
Qm9vdEluZm8tPk51bUNwdXM7IEluZGV4KyspIHsNCj4gKyAgICBERUJVRygoREVCVUdfSU5GTywg
Ik1waWRyICAgICAgICAgICAtIDB4JWx4XG4iLCBQYXlsb2FkQ3B1SW5mb1tJbmRleF0uTXBpZHIp
KTsNCj4gKyAgICBERUJVRygoREVCVUdfSU5GTywgIkxpbmVhcklkICAgICAgICAtIDB4JXhcbiIs
IFBheWxvYWRDcHVJbmZvW0luZGV4XS5MaW5lYXJJZCkpOw0KPiArICAgIERFQlVHKChERUJVR19J
TkZPLCAiRmxhZ3MgICAgICAgICAgIC0gMHgleFxuIiwgUGF5bG9hZENwdUluZm9bSW5kZXhdLkZs
YWdzKSk7DQo+ICsgIH0NCj4gKw0KPiArICByZXR1cm4gUGF5bG9hZEJvb3RJbmZvOw0KPiArfQ0K
PiArDQo+ICtWT0lEDQo+ICtFRklBUEkNCj4gK0RlbGVnYXRlZEV2ZW50TG9vcCAoDQo+ICsgIElO
IEFSTV9TVkNfQVJHUyAqRXZlbnRDb21wbGV0ZVN2Y0FyZ3MNCj4gKyAgKQ0KPiArew0KPiArICBF
RklfU1RBVFVTIFN0YXR1czsNCj4gKw0KPiArICB3aGlsZShUUlVFKSB7DQo+ICsgICAgQXJtQ2Fs
bFN2YyhFdmVudENvbXBsZXRlU3ZjQXJncyk7DQo+ICsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lO
Rk8sICJSZWNlaXZlZCBkZWxlZ2F0ZWQgZXZlbnRcbiIpKTsNCj4gKyAgICBERUJVRyAoKERFQlVH
X0lORk8sICJYMCA6ICAweCV4XG4iLCAoVUlOVDMyKSBFdmVudENvbXBsZXRlU3ZjQXJncy0+QXJn
MCkpOw0KPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIlgxIDogIDB4JXhcbiIsIChVSU5UMzIp
IEV2ZW50Q29tcGxldGVTdmNBcmdzLT5BcmcxKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZP
LCAiWDIgOiAgMHgleFxuIiwgKFVJTlQzMikgRXZlbnRDb21wbGV0ZVN2Y0FyZ3MtPkFyZzIpKTsN
Cj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJYMyA6ICAweCV4XG4iLCAoVUlOVDMyKSBFdmVu
dENvbXBsZXRlU3ZjQXJncy0+QXJnMykpOw0KPiArDQo+ICsgICAgU3RhdHVzID0gQ3B1RHJpdmVy
RW50cnlQb2ludCgNCj4gKyAgICAgIEV2ZW50Q29tcGxldGVTdmNBcmdzLT5BcmcwLA0KPiArICAg
ICAgRXZlbnRDb21wbGV0ZVN2Y0FyZ3MtPkFyZzIsDQo+ICsgICAgICBFdmVudENvbXBsZXRlU3Zj
QXJncy0+QXJnMSk7DQo+ICsgICAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ICsgICAgICBE
RUJVRygoREVCVUdfRVJST1IsICJGYWlsZWQgZGVsZWdhdGVkIGV2ZW50IDB4JXgsIFN0YXR1cyAw
eCV4XG4iLA0KPiArICAgICAgICBFdmVudENvbXBsZXRlU3ZjQXJncy0+QXJnMCwgU3RhdHVzKSk7
DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgRXZlbnRDb21wbGV0ZVN2Y0FyZ3MtPkFyZzAgPSBBUk1f
U1ZDX0lEX1NQX0VWRU5UX0NPTVBMRVRFX0FBUkNINjQ7DQo+ICsgICAgRXZlbnRDb21wbGV0ZVN2
Y0FyZ3MtPkFyZzEgPSBTdGF0dXM7DQo+ICsgIH0NCj4gK30NCj4gKw0KPiArU1RBVElDDQo+ICtF
RklfU1RBVFVTDQo+ICtHZXRTcG1WZXJzaW9uICgpDQo+ICt7DQo+ICsgIEVGSV9TVEFUVVMgICBT
dGF0dXM7DQo+ICsgIFVJTlQxNiAgICAgICBTcG1NYWpvclZlcnNpb247DQo+ICsgIFVJTlQxNiAg
ICAgICBTcG1NaW5vclZlcnNpb247DQo+ICsgIFVJTlQzMiAgICAgICBTcG1WZXJzaW9uOw0KPiAr
ICBBUk1fU1ZDX0FSR1MgU3BtVmVyc2lvbkFyZ3M7DQo+ICsNCj4gKyAgU3BtVmVyc2lvbkFyZ3Mu
QXJnMCA9IEFSTV9TVkNfSURfU1BNX1ZFUlNJT05fQUFSQ0gzMjsNCj4gKw0KPiArICBBcm1DYWxs
U3ZjICgmU3BtVmVyc2lvbkFyZ3MpOw0KPiArDQo+ICsgIFNwbVZlcnNpb24gPSBTcG1WZXJzaW9u
QXJncy5BcmcwOw0KPiArDQo+ICsgIFNwbU1ham9yVmVyc2lvbiA9ICgoU3BtVmVyc2lvbiAmIFNQ
TV9NQUpPUl9WRVJfTUFTSykgPj4gU1BNX01BSk9SX1ZFUl9TSElGVCk7DQo+ICsgIFNwbU1pbm9y
VmVyc2lvbiA9ICgoU3BtVmVyc2lvbiAmIFNQTV9NSU5PUl9WRVJfTUFTSykgPj4gMCk7DQo+ICsN
Cj4gKyAgLy8gRGlmZmVyZW50IG1ham9yIHJldmlzaW9uIHZhbHVlcyBpbmRpY2F0ZSBwb3NzaWJs
eSBpbmNvbXBhdGlibGUgZnVuY3Rpb25zLg0KPiArICAvLyBGb3IgdHdvIHJldmlzaW9ucywgQSBh
bmQgQiwgZm9yIHdoaWNoIHRoZSBtYWpvciByZXZpc2lvbiB2YWx1ZXMgYXJlDQo+ICsgIC8vIGlk
ZW50aWNhbCwgaWYgdGhlIG1pbm9yIHJldmlzaW9uIHZhbHVlIG9mIHJldmlzaW9uIEIgaXMgZ3Jl
YXRlciB0aGFuDQo+ICsgIC8vIHRoZSBtaW5vciByZXZpc2lvbiB2YWx1ZSBvZiByZXZpc2lvbiBB
LCB0aGVuIGV2ZXJ5IGZ1bmN0aW9uIGluDQo+ICsgIC8vIHJldmlzaW9uIEEgbXVzdCB3b3JrIGlu
IGEgY29tcGF0aWJsZSB3YXkgd2l0aCByZXZpc2lvbiBCLg0KPiArICAvLyBIb3dldmVyLCBpdCBp
cyBwb3NzaWJsZSBmb3IgcmV2aXNpb24gQiB0byBoYXZlIGEgaGlnaGVyDQo+ICsgIC8vIGZ1bmN0
aW9uIGNvdW50IHRoYW4gcmV2aXNpb24gQS4NCj4gKyAgaWYgKChTcG1NYWpvclZlcnNpb24gPT0g
U1BNX01BSk9SX1ZFUikgJiYNCj4gKyAgICAgIChTcG1NaW5vclZlcnNpb24gPj0gU1BNX01JTk9S
X1ZFUikpDQo+ICsgIHsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJTUE0gVmVyc2lvbjog
TWFqb3I9MHgleCwgTWlub3I9MHgleFxuIiwNCj4gKyAgICAgICAgICAgU3BtTWFqb3JWZXJzaW9u
LCBTcG1NaW5vclZlcnNpb24pKTsNCj4gKyAgICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsNCj4gKyAg
fQ0KPiArICBlbHNlDQo+ICsgIHsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJJbmNvbXBh
dGlibGUgU1BNIFZlcnNpb25zLlxuIEN1cnJlbnQgVmVyc2lvbjogTWFqb3I9MHgleCwgTWlub3I9
MHgleC5cbiBFeHBlY3RlZDogTWFqb3I9MHgleCwgTWlub3I+PTB4JXguXG4iLA0KPiArICAgICAg
ICAgICAgU3BtTWFqb3JWZXJzaW9uLCBTcG1NaW5vclZlcnNpb24sIFNQTV9NQUpPUl9WRVIsIFNQ
TV9NSU5PUl9WRVIpKTsNCj4gKyAgICBTdGF0dXMgPSBFRklfVU5TVVBQT1JURUQ7DQo+ICsgIH0N
Cj4gKw0KPiArICByZXR1cm4gU3RhdHVzOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAgVGhlIGVu
dHJ5IHBvaW50IG9mIFN0YW5kYWxvbmUgTU0gRm91bmRhdGlvbi4NCj4gKw0KPiArICBAcGFyYW0g
IEhvYlN0YXJ0ICBUaGUgcG9pbnRlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBIT0IgTGlzdC4N
Cj4gKw0KPiArKiovDQo+ICtWT0lEDQo+ICtFRklBUEkNCj4gK19Nb2R1bGVFbnRyeVBvaW50ICgN
Cj4gKyAgSU4gVk9JRCAgICAqU2hhcmVkQnVmQWRkcmVzcywNCj4gKyAgSU4gVUlOVDY0ICBTaGFy
ZWRCdWZTaXplLA0KPiArICBJTiBVSU5UNjQgIGNvb2tpZTEsDQo+ICsgIElOIFVJTlQ2NCAgY29v
a2llMg0KDQpBcyBkZXNjcmliZWQgZWFybGllciwgU2hhcmVkQnVmU2l6ZSBpcyBub3QgcmVxdWly
ZWQuIFRoZSBmb3JtYXQgb2YgdGhlIGhlYWRlciBpbg0KU2hhcmVkQnVmQWRkcmVzcyBzaG91bGQg
cHJvdmlkZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gZGlzY292ZXIgdGhlIHNpemUuDQpbU3VwcmVl
dGhdIE9rLg0KDQo+ICsgICkNCj4gK3sNCj4gKyAgUEVfQ09GRl9MT0FERVJfSU1BR0VfQ09OVEVY
VCAgICAgICAgICAgIEltYWdlQ29udGV4dDsNCj4gKyAgRUZJX1NFQ1VSRV9QQVJUSVRJT05fQk9P
VF9JTkZPICAgICAgICAgICpQYXlsb2FkQm9vdEluZm87DQo+ICsgIEFSTV9TVkNfQVJHUyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJbml0TW1Gb3VuZGF0aW9uU3ZjQXJncyA9IHswfTsNCj4g
KyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gKyAg
VUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY3Rpb25IZWFkZXJPZmZz
ZXQ7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJP
ZlNlY3Rpb25zOw0KPiArICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KkhvYlN0YXJ0Ow0KPiArICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KlRlRGF0YTsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRl
RGF0YVNpemU7DQo+ICsNCj4gKyAgU3RhdHVzID0gU2VyaWFsUG9ydEluaXRpYWxpemUgKCk7DQoN
Ckl0IGlzIHdvcnRoIGNvbW1lbnRpbmcgaGVyZSB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBzdWNj
ZWVkIGFzIHRoZSBBcm0gVEYNCnBsYXRmb3JtIHBvcnQgaGFzIGdyYW50ZWQgYWNjZXNzIHRvIHRo
ZSBVQVJULiBJdCBpcyBhbHNvIHdvcnRoIGNoZWNraW5nIGluDQplZGsyLXBsYXRmb3JtcyB0aGF0
IHRoZSBVQVJUIGFsbG9jYXRlZCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIHVzZWQgYnkgQXJt
IFRGLg0KW1N1cHJlZXRoXSBXaGVuIEkgY3JlYXRlIFN0YW5kYWxvbmUgTU0gaW1hZ2UncyBkZXNj
cmlwdGlvbiBmaWxlIGZvciBBQXJjaDY0IEZWUCwNCkkgc3BlY2lmaWMgdGhpcyBQQ0QNCmdFZmlN
ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RTZXJpYWxSZWdpc3RlckJhc2UNCndoaWNoIHdp
bGwgZGV0ZXJtaW5lIHdoZXJlIHRoZSBzZXJpYWwgcG9ydCBtZXNzYWdlcyBnby4NClBsYXRmb3Jt
IG93bmVyIHdpbGwgY2hvb3NlIHRoaXMgYXMgcGVyIGhpcy9oZXIgcGxhdGZvcm0g8J+Yii4NCg0K
Y2hlZXJzLA0KQWNoaW4NCg0KPiArICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArDQo+
ICsgIC8vIEdldCBTZWN1cmUgUGFydGl0aW9uIE1hbmFnZXIgVmVyc2lvbiBJbmZvcm1hdGlvbg0K
PiArICBTdGF0dXMgPSBHZXRTcG1WZXJzaW9uKCk7DQo+ICsgIGlmIChFRklfRVJST1IoU3RhdHVz
KSkgew0KPiArICAgIGdvdG8gZmluaXNoOw0KPiArICB9DQo+ICsNCj4gKyAgUGF5bG9hZEJvb3RJ
bmZvID0gR2V0QW5kUHJpbnRCb290aW5mb3JtYXRpb24oU2hhcmVkQnVmQWRkcmVzcyk7DQo+ICsg
IGlmIChQYXlsb2FkQm9vdEluZm8gPT0gTlVMTCkgew0KPiArICAgIFN0YXR1cyA9IEVGSV9VTlNV
UFBPUlRFRDsNCj4gKyAgICBnb3RvIGZpbmlzaDsNCj4gKyAgfQ0KPiArDQo+ICsgIC8vIExvY2F0
ZSBQRS9DT0ZGIEZpbGUgaW5mb3JtYXRpb24gZm9yIHRoZSBTdGFuZGFsb25lIE1NIGNvcmUgbW9k
dWxlDQo+ICsgIFN0YXR1cyA9IExvY2F0ZVN0YW5kYWxvbmVNbUNvcmVQZUNvZmZEYXRhICgNCj4g
KyAgICAgICAgICAgICAgICAgKEVGSV9GSVJNV0FSRV9WT0xVTUVfSEVBREVSICopIFBheWxvYWRC
b290SW5mby0+U3BJbWFnZUJhc2UsDQo+ICsgICAgICAgICAgICAgICAgICZUZURhdGEsDQo+ICsg
ICAgICAgICAgICAgICAgICZUZURhdGFTaXplKTsNCj4gKyAgaWYgKEVGSV9FUlJPUihTdGF0dXMp
KSB7DQo+ICsgICAgZ290byBmaW5pc2g7DQo+ICsgIH0NCj4gKw0KPiArICAvLyBPYnRhaW4gdGhl
IFBFL0NPRkYgU2VjdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIFN0YW5kYWxvbmUgTU0gY29yZSBt
b2R1bGUNCj4gKyAgU3RhdHVzID0gR2V0U3RhbmRhbG9uZU1tQ29yZVBlQ29mZlNlY3Rpb25zICgN
Cj4gKyAgICAgICAgICAgIFRlRGF0YSwNCj4gKyAgICAgICAgICAgICZJbWFnZUNvbnRleHQsDQo+
ICsgICAgICAgICAgICAmU2VjdGlvbkhlYWRlck9mZnNldCwNCj4gKyAgICAgICAgICAgICZOdW1i
ZXJPZlNlY3Rpb25zKTsNCj4gKyAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ICsgICAgZ290
byBmaW5pc2g7DQo+ICsgIH0NCj4gKw0KPiArICAvLyBVcGRhdGUgdGhlIG1lbW9yeSBhY2Nlc3Mg
cGVybWlzc2lvbnMgb2YgaW5kaXZpZHVhbCBzZWN0aW9ucyBpbiB0aGUNCj4gKyAgLy8gU3RhbmRh
bG9uZSBNTSBjb3JlIG1vZHVsZQ0KPiArICBTdGF0dXMgPSBVcGRhdGVNbUZvdW5kYXRpb25QZUNv
ZmZQZXJtaXNzaW9ucygNCj4gKyAgICAgICAgICAgICZJbWFnZUNvbnRleHQsDQo+ICsgICAgICAg
ICAgICBTZWN0aW9uSGVhZGVyT2Zmc2V0LA0KPiArICAgICAgICAgICAgTnVtYmVyT2ZTZWN0aW9u
cywNCj4gKyAgICAgICAgICAgIEFybVNldE1lbW9yeVJlZ2lvbk5vRXhlYywNCj4gKyAgICAgICAg
ICAgIEFybVNldE1lbW9yeVJlZ2lvblJlYWRPbmx5LA0KPiArICAgICAgICAgICAgQXJtQ2xlYXJN
ZW1vcnlSZWdpb25SZWFkT25seSk7DQo+ICsgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiAr
ICAgIGdvdG8gZmluaXNoOw0KPiArICB9DQo+ICsNCj4gKyAgLy8NCj4gKyAgLy8gQ3JlYXRlIEhv
Ymxpc3QgYmFzZWQgdXBvbiBib290IGluZm9ybWF0aW9uIHBhc3NlZCBieSBwcml2aWxlZ2VkIHNv
ZnR3YXJlDQo+ICsgIC8vDQo+ICsgIEhvYlN0YXJ0ID0gQ3JlYXRlSG9iTGlzdEZyb21Cb290SW5m
bygmQ3B1RHJpdmVyRW50cnlQb2ludCwgUGF5bG9hZEJvb3RJbmZvKTsNCj4gKw0KPiArICAvLw0K
PiArICAvLyBDYWxsIHRoZSBNTSBDb3JlIGVudHJ5IHBvaW50DQo+ICsgIC8vDQo+ICsgIFByb2Nl
c3NNb2R1bGVFbnRyeVBvaW50TGlzdCAoSG9iU3RhcnQpOw0KPiArDQo+ICsgIEFTU0VSVF9FRklf
RVJST1IgKENwdURyaXZlckVudHJ5UG9pbnQpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJT
aGFyZWQgQ3B1IERyaXZlciBFUCAweCVseFxuIiwgKFVJTlQ2NCkgQ3B1RHJpdmVyRW50cnlQb2lu
dCkpOw0KPiArDQo+ICtmaW5pc2g6DQo+ICsgIEluaXRNbUZvdW5kYXRpb25TdmNBcmdzLkFyZzAg
PSBBUk1fU1ZDX0lEX1NQX0VWRU5UX0NPTVBMRVRFX0FBUkNINjQ7DQo+ICsgIEluaXRNbUZvdW5k
YXRpb25TdmNBcmdzLkFyZzEgPSBTdGF0dXM7DQo+ICsgIERlbGVnYXRlZEV2ZW50TG9vcCgmSW5p
dE1tRm91bmRhdGlvblN2Y0FyZ3MpOw0KPiArICBBU1NFUlRfRUZJX0VSUk9SKDApOw0KPiArDQo+
ICt9DQo+IGRpZmYgLS1naXQgYS9TdGFuZGFsb25lTW1Qa2cvTGlicmFyeS9TdGFuZGFsb25lTW1D
b3JlRW50cnlQb2ludC9TdGFuZGFsb25lTW1Db3JlRW50cnlQb2ludC5pbmYgYi9TdGFuZGFsb25l
TW1Qa2cvTGlicmFyeS9TdGFuZGFsb25lTW1Db3JlRW50cnlQb2ludC9TdGFuZGFsb25lTW1Db3Jl
RW50cnlQb2ludC5pbmYNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAw
MC4uOWVkYzg1ZDQwNg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1N0YW5kYWxvbmVNbVBrZy9M
aWJyYXJ5L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBvaW50L1N0YW5kYWxvbmVNbUNvcmVFbnRyeVBv
aW50LmluZg0KPiBAQCAtMCwwICsxLDUzIEBADQo+ICsjIyBAZmlsZQ0KPiArIyBNb2R1bGUgZW50
cnkgcG9pbnQgbGlicmFyeSBmb3IgRFhFIGNvcmUuDQo+ICsjDQo+ICsjIENvcHlyaWdodCAoYykg
MjAxNywgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsjDQo+ICsjICBUaGlz
IHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ICsjICBhcmUgbGljZW5z
ZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0
aGUgQlNEIExpY2Vuc2UNCj4gKyMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9u
LiBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiArIyAgaHR0
cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4gKyMgIFRIRSBQ
Uk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMi
IEJBU0lTLA0KPiArIyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBB
TlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gKyMNCj4gKyMNCj4gKyMjDQo+
ICsNCj4gK1tEZWZpbmVzXQ0KPiArICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAw
eDAwMDEwMDFBDQo+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IFN0YW5kYWxv
bmVNbUNvcmVFbnRyeVBvaW50DQo+ICsgIEZJTEVfR1VJRCAgICAgICAgICAgICAgICAgICAgICA9
IEM5N0FDNTkzLTEwOUEtNEM2My05MDVDLTY3NUZERTI2ODlFOA0KPiArICBNT0RVTEVfVFlQRSAg
ICAgICAgICAgICAgICAgICAgPSBNTV9DT1JFX1NUQU5EQUxPTkUNCj4gKyAgVkVSU0lPTl9TVFJJ
TkcgICAgICAgICAgICAgICAgID0gMS4wDQo+ICsgIFBJX1NQRUNJRklDQVRJT05fVkVSU0lPTiAg
ICAgICA9IDB4MDAwMTAwMzINCj4gKyAgTElCUkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0g
U3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnR8TU1fQ09SRV9TVEFOREFMT05FDQo+ICsNCj4gKyMN
Cj4gKyMgIFZBTElEX0FSQ0hJVEVDVFVSRVMgICAgICAgICAgID0gSUEzMiBYNjQgSVBGIEVCQyAo
RUJDIGlzIGZvciBidWlsZCBvbmx5KQ0KPiArIw0KPiArDQo+ICtbU291cmNlcy5BQVJDSDY0XQ0K
PiArICBBcm0vU3RhbmRhbG9uZU1tQ29yZUVudHJ5UG9pbnQuYw0KPiArICBBcm0vU2V0UGVybWlz
c2lvbnMuYw0KPiArICBBcm0vQ3JlYXRlSG9iTGlzdC5jDQo+ICsNCj4gK1tQYWNrYWdlc10NCj4g
KyAgTWRlUGtnL01kZVBrZy5kZWMNCj4gKyAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMN
Cj4gKyAgU3RhbmRhbG9uZU1tUGtnL1N0YW5kYWxvbmVNbVBrZy5kZWMNCj4gKw0KPiArW1BhY2th
Z2VzLkFBUkNINjRdDQo+ICsgIEFybVBrZy9Bcm1Qa2cuZGVjDQo+ICsgIEFybVBsYXRmb3JtUGtn
L0FybVBsYXRmb3JtUGtnLmRlYw0KPiArDQo+ICtbTGlicmFyeUNsYXNzZXNdDQo+ICsgIEFybU1t
dUxpYg0KPiArICBBcm1TdmNMaWINCj4gKyAgQmFzZUxpYg0KPiArICBEZWJ1Z0xpYg0KPiArDQo+
ICtbR3VpZHNdDQo+ICsgIGdNcEluZm9ybWF0aW9uSG9iR3VpZA0KPiArICBnRWZpTW1QZWlNbXJh
bU1lbW9yeVJlc2VydmVHdWlkDQo+ICsgIGdFZmlTdGFuZGFsb25lTW1Ob25TZWN1cmVCdWZmZXJH
dWlkDQo+ICsgIGdFZmlBcm1UZkNwdURyaXZlckVwRGVzY3JpcHRvckd1aWQNCj4gZGlmZiAtLWdp
dCBhL1N0YW5kYWxvbmVNbVBrZyBiL1N0YW5kYWxvbmVNbVBrZ35IRUFEDQo+IHNpbWlsYXJpdHkg
aW5kZXggMTAwJQ0KPiByZW5hbWUgZnJvbSBTdGFuZGFsb25lTW1Qa2cNCj4gcmVuYW1lIHRvIFN0
YW5kYWxvbmVNbVBrZ35IRUFEDQo+IC0tDQo+IDIuMTYuMg0KPg0KSU1QT1JUQU5UIE5PVElDRTog
VGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUgY29uZmlk
ZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50
ZW5kZWQgcmVjaXBpZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5k
IGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55IG90aGVyIHBlcnNvbiwgdXNlIGl0
IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55
IG1lZGl1bS4gVGhhbmsgeW91Lg0K