From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pbs-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id E39B81FF17C
	for <inbox@lore.proxmox.com>; Wed,  2 Apr 2025 15:34:56 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id F2AF41B9E8;
	Wed,  2 Apr 2025 15:34:45 +0200 (CEST)
Mime-Version: 1.0
Date: Wed, 02 Apr 2025 15:34:08 +0200
Message-Id: <D8W6WZYUNVSL.24VBRUOPALH4M@proxmox.com>
From: "Max Carrara" <m.carrara@proxmox.com>
To: "Proxmox Backup Server development discussion"
 <pbs-devel@lists.proxmox.com>
X-Mailer: aerc 0.18.2-0-ge037c095a049
References: <20250326152327.332179-1-f.gruenbichler@proxmox.com>
 <20250326152327.332179-15-f.gruenbichler@proxmox.com>
In-Reply-To: <20250326152327.332179-15-f.gruenbichler@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.075 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [lib.rs, rest.rs, formatter.rs, minimal-rest-server.rs,
 h2service.rs, connection.rs]
Subject: Re: [pbs-devel] [PATCH proxmox 14/17] proxmox-rest-server: update
 to hyper 1.0
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox Backup Server development discussion
 <pbs-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

T24gV2VkIE1hciAyNiwgMjAyNSBhdCA0OjIzIFBNIENFVCwgRmFiaWFuIEdyw7xuYmljaGxlciB3
cm90ZToKPiBhbmQgc3dpdGNoIHRvIHByb3htb3gtaHR0cCdzIEJvZHkgaW1wbGVtZW50YXRpb24u
Cj4KPiBoeXBlciBub3cgaGFzIGEgc3BlY2lhbCAob3BhcXVlKSBCb2R5IGltcGxlbWVudGF0aW9u
IGNhbGxlZCBJbmNvbWluZwo+IHdoaWNoIGlzIHVzZWQgZm9yIGluY29taW5nIHJlcXVlc3QgYm9k
aWVzIG9uIHRoZSBzZXJ2ZXIgc2lkZSwgYW5kCj4gaW5jb21pbmcgcmVzcG9uc2UgYm9kaWVzIG9u
IHRoZSBjbGllbnQgc2lkZSwgc28gb3VyIEFQSSBoYW5kbGVyJ3Mgbm93Cj4gY29uc3VtZSBhbiBp
bnN0YW5jZSBvZiB0aGlzIHR5cGUuCj4KPiB0aGUgQWNjZXB0IHRyYWl0IHByZXZpb3VzbHkgb2Zm
ZXJlZCBieSBoeXBlciBpcyBnb25lIGluIDEuMCwgYW5kIG5lZWRzCj4gdG8gYmUgcmVwbGFjZWQg
d2l0aCBhbiBhY2NlcHQgbG9vcC4gb3VyIGNvcnJlc3BvbmRpbmcgQWNjZXB0b3IKPiBpbXBsZW1l
bnRhdGlvbnMgaGF2ZSBiZWVuIGRyb3BwZWQgYXMgd2VsbC4KPgo+IGh5cGVyIG5vdyBoYXMgaXRz
IG93biBTZXJ2aWNlIGFuZCBhc3luYyBSZWFkL1dyaXRlIHRyYWl0cywgYnV0IGhlbHBmdWxseQo+
IHByb3ZpZGVzIHdyYXBwZXJzIGZvciB0b3dlcidzIFNlcnZpY2UgYW5kIHRva2lvJ3MgQXN5bmNS
ZWFkL0FzeW5jV3JpdGUKPiB2YXJpYW50cy4KPgo+IGdyYWNlZnVsIHNodXRkb3duIGhhbmRsaW5n
IGlzIG5vdyBleHBvc2VkIGRpZmZlcmVudGx5IG9uIHRoZSBoeXBlciBzaWRlLAo+IGFuZCB0byBh
bGxvdyB1c2FnZSB3aXRoIHVwZ3JhZGFibGUgY29ubmVjdGlvbnMgdGhlIHZhcmlhbnQgZm9ybQo+
IGh5cGVyLXV0aWwgbmVlZHMgdG8gYmUgdXNlZCwgYXMgdGhlIG9uZSBzdHJhaWdodCBmcm9tIGh5
cGVyIGRvZXNuJ3QKPiBzdXBwb3J0IGl0ICh5ZXQpLgo+Cj4gU2lnbmVkLW9mZi1ieTogRmFiaWFu
IEdyw7xuYmljaGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+Cj4gLS0tCj4gIHByb3ht
b3gtcmVzdC1zZXJ2ZXIvQ2FyZ28udG9tbCAgICAgICAgICAgICAgICB8ICAgNyArLQo+ICAuLi4v
ZXhhbXBsZXMvbWluaW1hbC1yZXN0LXNlcnZlci5ycyAgICAgICAgICAgfCAgIDUgKy0KPiAgcHJv
eG1veC1yZXN0LXNlcnZlci9zcmMvYXBpX2NvbmZpZy5ycyAgICAgICAgIHwgIDQ0ICsrLS0tCj4g
IHByb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2Nvbm5lY3Rpb24ucnMgICAgICAgICB8ICAxNCArLQo+
ICBwcm94bW94LXJlc3Qtc2VydmVyL3NyYy9mb3JtYXR0ZXIucnMgICAgICAgICAgfCAgIDggKy0K
PiAgcHJveG1veC1yZXN0LXNlcnZlci9zcmMvaDJzZXJ2aWNlLnJzICAgICAgICAgIHwgIDE1ICst
Cj4gIHByb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2xpYi5ycyAgICAgICAgICAgICAgICB8ICAgMiAr
LQo+ICBwcm94bW94LXJlc3Qtc2VydmVyL3NyYy9yZXN0LnJzICAgICAgICAgICAgICAgfCAxNjQg
KysrKysrKysrKystLS0tLS0tCj4gIDggZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyks
IDExNyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9wcm94bW94LXJlc3Qtc2VydmVyL0Nh
cmdvLnRvbWwgYi9wcm94bW94LXJlc3Qtc2VydmVyL0NhcmdvLnRvbWwKPiBpbmRleCBmZmJkOTI1
YS4uZWUyNTNiNGYgMTAwNjQ0Cj4gLS0tIGEvcHJveG1veC1yZXN0LXNlcnZlci9DYXJnby50b21s
Cj4gKysrIGIvcHJveG1veC1yZXN0LXNlcnZlci9DYXJnby50b21sCj4gQEAgLTIwLDcgKzIwLDkg
QEAgYW55aG93LndvcmtzcGFjZSA9IHRydWUKPiAgZnV0dXJlcy53b3Jrc3BhY2UgPSB0cnVlCj4g
IGhhbmRsZWJhcnMgPSB7IHdvcmtzcGFjZSA9IHRydWUsIG9wdGlvbmFsID0gdHJ1ZSB9Cj4gIGh0
dHAud29ya3NwYWNlID0gdHJ1ZQo+ICtodHRwLWJvZHktdXRpbC53b3Jrc3BhY2UgPSB0cnVlCj4g
IGh5cGVyID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsgImZ1bGwiIF0gfQo+ICto
eXBlci11dGlsID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsgImNsaWVudCIsICJj
bGllbnQtbGVnYWN5IiwgImh0dHAxIiwgInNlcnZlciIsICJzZXJ2ZXItYXV0byIsICJzZXJ2ZXIt
Z3JhY2VmdWwiLCAic2VydmljZSIsICJ0b2tpbyIgXX0KPiAgbGliYy53b3Jrc3BhY2UgPSB0cnVl
Cj4gIGxvZy53b3Jrc3BhY2UgPSB0cnVlCj4gIG5peC53b3Jrc3BhY2UgPSB0cnVlCj4gQEAgLTM5
LDcgKzQxLDcgQEAgdXJsLndvcmtzcGFjZSA9IHRydWUKPiAgcHJveG1veC1hc3luYy53b3Jrc3Bh
Y2UgPSB0cnVlCj4gIHByb3htb3gtY29tcHJlc3Npb24ud29ya3NwYWNlID0gdHJ1ZQo+ICBwcm94
bW94LWRhZW1vbi53b3Jrc3BhY2UgPSB0cnVlCj4gLXByb3htb3gtaHR0cCA9IHsgd29ya3NwYWNl
ID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KPiArcHJveG1veC1odHRwID0geyB3b3Jrc3BhY2Ug
PSB0cnVlLCBmZWF0dXJlcyA9IFsiYm9keSJdIH0KPiAgcHJveG1veC1sYW5nLndvcmtzcGFjZSA9
IHRydWUKPiAgcHJveG1veC1sb2cud29ya3NwYWNlID0gdHJ1ZQo+ICBwcm94bW94LXJvdXRlci53
b3Jrc3BhY2UgPSB0cnVlCj4gQEAgLTUyLDYgKzU0LDUgQEAgcHJveG1veC13b3JrZXItdGFzay53
b3Jrc3BhY2UgPSB0cnVlCj4gIGRlZmF1bHQgPSBbXQo+ICB0ZW1wbGF0ZXMgPSBbImRlcDpoYW5k
bGViYXJzIl0KPiAgcmF0ZS1saW1pdGVkLXN0cmVhbSA9IFsKPiAtICAgICJkZXA6cHJveG1veC1o
dHRwIiwKPiAtICAgICJwcm94bW94LWh0dHA/L3JhdGUtbGltaXRlZC1zdHJlYW0iLAo+ICsgICAg
InByb3htb3gtaHR0cC9yYXRlLWxpbWl0ZWQtc3RyZWFtIiwKPiAgXQo+IGRpZmYgLS1naXQgYS9w
cm94bW94LXJlc3Qtc2VydmVyL2V4YW1wbGVzL21pbmltYWwtcmVzdC1zZXJ2ZXIucnMgYi9wcm94
bW94LXJlc3Qtc2VydmVyL2V4YW1wbGVzL21pbmltYWwtcmVzdC1zZXJ2ZXIucnMKPiBpbmRleCAy
M2JlNTg2Yy4uNDU0NDMwZmIgMTAwNjQ0Cj4gLS0tIGEvcHJveG1veC1yZXN0LXNlcnZlci9leGFt
cGxlcy9taW5pbWFsLXJlc3Qtc2VydmVyLnJzCj4gKysrIGIvcHJveG1veC1yZXN0LXNlcnZlci9l
eGFtcGxlcy9taW5pbWFsLXJlc3Qtc2VydmVyLnJzCj4gQEAgLTYsOCArNiw5IEBAIHVzZSBzdGQ6
OnN5bmM6OntMYXp5TG9jaywgTXV0ZXh9Owo+ICB1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2Vy
ciwgRXJyb3J9Owo+ICB1c2UgaHR0cDo6cmVxdWVzdDo6UGFydHM7Cj4gIHVzZSBodHRwOjpIZWFk
ZXJNYXA7Cj4gLXVzZSBoeXBlcjo6e0JvZHksIE1ldGhvZCwgUmVzcG9uc2V9Owo+ICt1c2UgaHlw
ZXI6OntNZXRob2QsIFJlc3BvbnNlfTsKPiAgCj4gK3VzZSBwcm94bW94X2h0dHA6OkJvZHk7Cj4g
IHVzZSBwcm94bW94X3JvdXRlcjo6ewo+ICAgICAgbGlzdF9zdWJkaXJzX2FwaV9tZXRob2QsIFJv
dXRlciwgUnBjRW52aXJvbm1lbnRUeXBlLCBTdWJkaXJNYXAsIFVzZXJJbmZvcm1hdGlvbiwKPiAg
fTsKPiBAQCAtNTcsNyArNTgsNyBAQCBmbiBnZXRfaW5kZXgoCj4gICAgICBCb3g6OnBpbihhc3lu
YyBtb3ZlIHsKPiAgICAgICAgICAvLyBidWlsZCBhbiBpbmRleCBwYWdlCj4gICAgICAgICAgaHR0
cDo6UmVzcG9uc2U6OmJ1aWxkZXIoKQo+IC0gICAgICAgICAgICAuYm9keSgiaGVsbG8gd29ybGQi
LmludG8oKSkKPiArICAgICAgICAgICAgLmJvZHkoImhlbGxvIHdvcmxkIi50b19vd25lZCgpLmlu
dG9fYnl0ZXMoKS5pbnRvKCkpCj4gICAgICAgICAgICAgIC51bndyYXAoKQo+ICAgICAgfSkKPiAg
fQo+IGRpZmYgLS1naXQgYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9hcGlfY29uZmlnLnJzIGIv
cHJveG1veC1yZXN0LXNlcnZlci9zcmMvYXBpX2NvbmZpZy5ycwo+IGluZGV4IGIyMGIyZGEwLi4w
Yjg0N2EwYyAxMDA2NDQKPiAtLS0gYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9hcGlfY29uZmln
LnJzCj4gKysrIGIvcHJveG1veC1yZXN0LXNlcnZlci9zcmMvYXBpX2NvbmZpZy5ycwo+IEBAIC05
LDEwICs5LDEyIEBAIHVzZSBzdGQ6OnRhc2s6OntDb250ZXh0LCBQb2xsfTsKPiAgdXNlIGFueWhv
dzo6e2Zvcm1hdF9lcnIsIEVycm9yfTsKPiAgdXNlIGh0dHA6OntIZWFkZXJNYXAsIE1ldGhvZCwg
VXJpfTsKPiAgdXNlIGh5cGVyOjpodHRwOjpyZXF1ZXN0OjpQYXJ0czsKPiAtdXNlIGh5cGVyOjp7
Qm9keSwgUmVzcG9uc2V9Owo+ICt1c2UgaHlwZXI6OlJlc3BvbnNlOwo+ICt1c2UgaHlwZXJfdXRp
bDo6cnQ6OlRva2lvSW87Cj4gIHVzZSB0b3dlcl9zZXJ2aWNlOjpTZXJ2aWNlOwo+ICAKPiAgdXNl
IHByb3htb3hfZGFlbW9uOjpjb21tYW5kX3NvY2tldDo6Q29tbWFuZFNvY2tldDsKPiArdXNlIHBy
b3htb3hfaHR0cDo6Qm9keTsKPiAgdXNlIHByb3htb3hfbG9nOjp7RmlsZUxvZ09wdGlvbnMsIEZp
bGVMb2dnZXJ9Owo+ICB1c2UgcHJveG1veF9yb3V0ZXI6OntSb3V0ZXIsIFJwY0Vudmlyb25tZW50
VHlwZSwgVXNlckluZm9ybWF0aW9ufTsKPiAgdXNlIHByb3htb3hfc3lzOjpmczo6e2NyZWF0ZV9w
YXRoLCBDcmVhdGVPcHRpb25zfTsKPiBAQCAtMTA3LDcgKzEwOSw3IEBAIGltcGwgQXBpQ29uZmln
IHsKPiAgICAgICkgLT4gUmVzcG9uc2U8Qm9keT4gewo+ICAgICAgICAgIG1hdGNoIHNlbGYuaW5k
ZXhfaGFuZGxlci5hc19yZWYoKSB7Cj4gICAgICAgICAgICAgIFNvbWUoaGFuZGxlcikgPT4gKGhh
bmRsZXIuZnVuYykocmVzdF9lbnYsIHBhcnRzKS5hd2FpdCwKPiAtICAgICAgICAgICAgTm9uZSA9
PiBSZXNwb25zZTo6YnVpbGRlcigpLnN0YXR1cyg0MDQpLmJvZHkoIiIuaW50bygpKS51bndyYXAo
KSwKPiArICAgICAgICAgICAgTm9uZSA9PiBSZXNwb25zZTo6YnVpbGRlcigpLnN0YXR1cyg0MDQp
LmJvZHkoQm9keTo6ZW1wdHkoKSkudW53cmFwKCksCj4gICAgICAgICAgfQo+ICAgICAgfQo+ICAK
PiBAQCAtNTExLDcgKzUxMyw3IEBAIGltcGwgRnJvbTxzdGQ6Om9zOjp1bml4OjpuZXQ6OlNvY2tl
dEFkZHI+IGZvciBQcml2aWxlZ2VkQWRkciB7Cj4gIH0KPiAgCj4gIGltcGwgU2VydmljZTxVcmk+
IGZvciBQcml2aWxlZ2VkQWRkciB7Cj4gLSAgICB0eXBlIFJlc3BvbnNlID0gUHJpdmlsZWdlZFNv
Y2tldDsKPiArICAgIHR5cGUgUmVzcG9uc2UgPSBUb2tpb0lvPFByaXZpbGVnZWRTb2NrZXQ+Owo+
ICAgICAgdHlwZSBFcnJvciA9IGlvOjpFcnJvcjsKPiAgICAgIHR5cGUgRnV0dXJlID0gUGluPEJv
eDxkeW4gRnV0dXJlPE91dHB1dCA9IFJlc3VsdDxTZWxmOjpSZXNwb25zZSwgU2VsZjo6RXJyb3I+
PiArIFNlbmQ+PjsKPiAgCj4gQEAgLTUyNyw2ICs1MjksNyBAQCBpbXBsIFNlcnZpY2U8VXJpPiBm
b3IgUHJpdmlsZWdlZEFkZHIgewo+ICAgICAgICAgICAgICAgICAgICAgIHRva2lvOjpuZXQ6OlRj
cFN0cmVhbTo6Y29ubmVjdChhZGRyKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAuYXdhaXQK
PiAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChQcml2aWxlZ2VkU29ja2V0OjpUY3ApCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoVG9raW9Jbzo6bmV3KQo+ICAgICAgICAgICAg
ICAgICAgfSkKPiAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICBQcml2aWxlZ2VkQWRkcjo6
VW5peChhZGRyKSA9PiB7Cj4gQEAgLTUzNyw2ICs1NDAsNyBAQCBpbXBsIFNlcnZpY2U8VXJpPiBm
b3IgUHJpdmlsZWdlZEFkZHIgewo+ICAgICAgICAgICAgICAgICAgICAgIH0pPykKPiAgICAgICAg
ICAgICAgICAgICAgICAuYXdhaXQKPiAgICAgICAgICAgICAgICAgICAgICAubWFwKFByaXZpbGVn
ZWRTb2NrZXQ6OlVuaXgpCj4gKyAgICAgICAgICAgICAgICAgICAgLm1hcChUb2tpb0lvOjpuZXcp
Cj4gICAgICAgICAgICAgICAgICB9KQo+ICAgICAgICAgICAgICB9Cj4gICAgICAgICAgfQo+IEBA
IC02MDcsMzkgKzYxMSwxMSBAQCBpbXBsIHRva2lvOjppbzo6QXN5bmNXcml0ZSBmb3IgUHJpdmls
ZWdlZFNvY2tldCB7Cj4gICAgICB9Cj4gIH0KPiAgCj4gLWltcGwgaHlwZXI6OmNsaWVudDo6Y29u
bmVjdDo6Q29ubmVjdGlvbiBmb3IgUHJpdmlsZWdlZFNvY2tldCB7Cj4gLSAgICBmbiBjb25uZWN0
ZWQoJnNlbGYpIC0+IGh5cGVyOjpjbGllbnQ6OmNvbm5lY3Q6OkNvbm5lY3RlZCB7Cj4gK2ltcGwg
aHlwZXJfdXRpbDo6Y2xpZW50OjpsZWdhY3k6OmNvbm5lY3Q6OkNvbm5lY3Rpb24gZm9yIFByaXZp
bGVnZWRTb2NrZXQgewo+ICsgICAgZm4gY29ubmVjdGVkKCZzZWxmKSAtPiBoeXBlcl91dGlsOjpj
bGllbnQ6OmxlZ2FjeTo6Y29ubmVjdDo6Q29ubmVjdGVkIHsKPiAgICAgICAgICBtYXRjaCBzZWxm
IHsKPiAgICAgICAgICAgICAgU2VsZjo6VGNwKHMpID0+IHMuY29ubmVjdGVkKCksCj4gLSAgICAg
ICAgICAgIFNlbGY6OlVuaXgoXykgPT4gaHlwZXI6OmNsaWVudDo6Y29ubmVjdDo6Q29ubmVjdGVk
OjpuZXcoKSwKPiArICAgICAgICAgICAgU2VsZjo6VW5peChfKSA9PiBoeXBlcl91dGlsOjpjbGll
bnQ6OmxlZ2FjeTo6Y29ubmVjdDo6Q29ubmVjdGVkOjpuZXcoKSwKPiAgICAgICAgICB9Cj4gICAg
ICB9Cj4gIH0KPiAtCj4gLS8vLyBJbXBsZW1lbnRzIGh5cGVyJ3MgYEFjY2VwdGAgZm9yIGBVbml4
TGlzdGVuZXJgcy4KPiAtcHViIHN0cnVjdCBVbml4QWNjZXB0b3Igewo+IC0gICAgbGlzdGVuZXI6
IHRva2lvOjpuZXQ6OlVuaXhMaXN0ZW5lciwKPiAtfQo+IC0KPiAtaW1wbCBGcm9tPHRva2lvOjpu
ZXQ6OlVuaXhMaXN0ZW5lcj4gZm9yIFVuaXhBY2NlcHRvciB7Cj4gLSAgICBmbiBmcm9tKGxpc3Rl
bmVyOiB0b2tpbzo6bmV0OjpVbml4TGlzdGVuZXIpIC0+IFNlbGYgewo+IC0gICAgICAgIFNlbGYg
eyBsaXN0ZW5lciB9Cj4gLSAgICB9Cj4gLX0KPiAtCj4gLWltcGwgaHlwZXI6OnNlcnZlcjo6YWNj
ZXB0OjpBY2NlcHQgZm9yIFVuaXhBY2NlcHRvciB7Cj4gLSAgICB0eXBlIENvbm4gPSB0b2tpbzo6
bmV0OjpVbml4U3RyZWFtOwo+IC0gICAgdHlwZSBFcnJvciA9IGlvOjpFcnJvcjsKPiAtCj4gLSAg
ICBmbiBwb2xsX2FjY2VwdCgKPiAtICAgICAgICBzZWxmOiBQaW48Jm11dCBTZWxmPiwKPiAtICAg
ICAgICBjeDogJm11dCBDb250ZXh0PCdfPiwKPiAtICAgICkgLT4gUG9sbDxPcHRpb248aW86OlJl
c3VsdDxTZWxmOjpDb25uPj4+IHsKPiAtICAgICAgICBQaW46Om5ldygmbXV0IHNlbGYuZ2V0X211
dCgpLmxpc3RlbmVyKQo+IC0gICAgICAgICAgICAucG9sbF9hY2NlcHQoY3gpCj4gLSAgICAgICAg
ICAgIC5tYXAofHJlc3wgbWF0Y2ggcmVzIHsKPiAtICAgICAgICAgICAgICAgIE9rKChzdHJlYW0s
IF9hZGRyKSkgPT4gU29tZShPayhzdHJlYW0pKSwKPiAtICAgICAgICAgICAgICAgIEVycihlcnIp
ID0+IFNvbWUoRXJyKGVycikpLAo+IC0gICAgICAgICAgICB9KQo+IC0gICAgfQo+IC19Cj4gZGlm
ZiAtLWdpdCBhL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2Nvbm5lY3Rpb24ucnMgYi9wcm94bW94
LXJlc3Qtc2VydmVyL3NyYy9jb25uZWN0aW9uLnJzCj4gaW5kZXggNTI2NTU1YWUuLmE2NWVmMzk4
IDEwMDY0NAo+IC0tLSBhL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2Nvbm5lY3Rpb24ucnMKPiAr
KysgYi9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9jb25uZWN0aW9uLnJzCj4gQEAgLTE0LDcgKzE0
LDYgQEAgdXNlIHN0ZDo6dGltZTo6RHVyYXRpb247Cj4gIAo+ICB1c2UgYW55aG93Ojp7Zm9ybWF0
X2VyciwgQ29udGV4dCwgRXJyb3J9Owo+ICB1c2UgZnV0dXJlczo6RnV0dXJlRXh0Owo+IC11c2Ug
aHlwZXI6OnNlcnZlcjo6YWNjZXB0Owo+ICB1c2Ugb3BlbnNzbDo6ZWM6OntFY0dyb3VwLCBFY0tl
eX07Cj4gIHVzZSBvcGVuc3NsOjpuaWQ6Ok5pZDsKPiAgdXNlIG9wZW5zc2w6OnBrZXk6OntQS2V5
LCBQcml2YXRlfTsKPiBAQCAtMjI2LDEyICsyMjUsMTMgQEAgaW1wbCBBY2NlcHRCdWlsZGVyIHsK
PiAgICAgICAgICBzZWxmLAo+ICAgICAgICAgIGxpc3RlbmVyOiBUY3BMaXN0ZW5lciwKPiAgICAg
ICAgICBhY2NlcHRvcjogQXJjPE11dGV4PFNzbEFjY2VwdG9yPj4sCj4gLSAgICApIC0+IGltcGwg
YWNjZXB0OjpBY2NlcHQ8Q29ubiA9IENsaWVudFN0cmVhbVJlc3VsdCwgRXJyb3IgPSBFcnJvcj4g
ewo+ICsgICAgICAgIC8vIEZJWE1FOiByZXBsYWNlIHJldHVybiB2YWx1ZSB3aXRoIG93biB0cmFp
dD8gc2VlIG5vdyByZW1vdmVkIFVuaXhBY2NlcHRvcgoKWWVhaCwgd2UgcHJvYmFibHkgc2hvdWxk
IHByb3ZpZGUgb3VyIG93biB0cmFpdCBmb3IgdGhpcyBhbmQgaGF2ZSBpdAppbXBsZW1lbnQgYGZ1
dHVyZXNfY29yZTo6U3RyZWFtYCAob3IgYHN0ZDo6YXN5bmNfaXRlcjo6QXN5bmNJdGVyYXRvcmAK
b25jZSB0aGF0J3Mgc3RhYmlsaXplZCkuIEZvciBub3cgdGhlIGJlbG93IGlzIGZpbmUgSU1PLCBh
cyB3ZSBjYW4gY29vawp1cCBhIHRyYWl0IGxhdGVyIGFzIHdlbGwuIFN3aXRjaGluZyBvdmVyIHRv
IGh5cGVyLzEuMCBpc24ndCB0b28gcHJldHR5LApidXQgaXQgaXMgd2hhdCBpdCBpcyA6cwoKPiAr
ICAgICkgLT4gUmVjZWl2ZXJTdHJlYW08UmVzdWx0PENsaWVudFN0cmVhbVJlc3VsdCwgRXJyb3I+
PiB7Cj4gICAgICAgICAgbGV0IChzZWN1cmVfc2VuZGVyLCBzZWN1cmVfcmVjZWl2ZXIpID0gbXBz
Yzo6Y2hhbm5lbChzZWxmLm1heF9wZW5kaW5nX2FjY2VwdHMpOwo+ICAKPiAgICAgICAgICB0b2tp
bzo6c3Bhd24oc2VsZi5hY2NlcHRfY29ubmVjdGlvbnMobGlzdGVuZXIsIGFjY2VwdG9yLCBzZWN1
cmVfc2VuZGVyLmludG8oKSkpOwo+ICAKPiAtICAgICAgICBhY2NlcHQ6OmZyb21fc3RyZWFtKFJl
Y2VpdmVyU3RyZWFtOjpuZXcoc2VjdXJlX3JlY2VpdmVyKSkKPiArICAgICAgICBSZWNlaXZlclN0
cmVhbTo6bmV3KHNlY3VyZV9yZWNlaXZlcikKPiAgICAgIH0KPiAgCj4gICAgICBwdWIgZm4gYWNj
ZXB0X3Rsc19vcHRpb25hbCgKPiBAQCAtMjM5LDggKzIzOSw4IEBAIGltcGwgQWNjZXB0QnVpbGRl
ciB7Cj4gICAgICAgICAgbGlzdGVuZXI6IFRjcExpc3RlbmVyLAo+ICAgICAgICAgIGFjY2VwdG9y
OiBBcmM8TXV0ZXg8U3NsQWNjZXB0b3I+PiwKPiAgICAgICkgLT4gKAo+IC0gICAgICAgIGltcGwg
YWNjZXB0OjpBY2NlcHQ8Q29ubiA9IENsaWVudFN0cmVhbVJlc3VsdCwgRXJyb3IgPSBFcnJvcj4s
Cj4gLSAgICAgICAgaW1wbCBhY2NlcHQ6OkFjY2VwdDxDb25uID0gSW5zZWN1cmVDbGllbnRTdHJl
YW1SZXN1bHQsIEVycm9yID0gRXJyb3I+LAo+ICsgICAgICAgIFJlY2VpdmVyU3RyZWFtPFJlc3Vs
dDxDbGllbnRTdHJlYW1SZXN1bHQsIEVycm9yPj4sCj4gKyAgICAgICAgUmVjZWl2ZXJTdHJlYW08
UmVzdWx0PEluc2VjdXJlQ2xpZW50U3RyZWFtUmVzdWx0LCBFcnJvcj4+LAo+ICAgICAgKSB7Cj4g
ICAgICAgICAgbGV0IChzZWN1cmVfc2VuZGVyLCBzZWN1cmVfcmVjZWl2ZXIpID0gbXBzYzo6Y2hh
bm5lbChzZWxmLm1heF9wZW5kaW5nX2FjY2VwdHMpOwo+ICAgICAgICAgIGxldCAoaW5zZWN1cmVf
c2VuZGVyLCBpbnNlY3VyZV9yZWNlaXZlcikgPSBtcHNjOjpjaGFubmVsKHNlbGYubWF4X3BlbmRp
bmdfYWNjZXB0cyk7Cj4gQEAgLTI1Miw4ICsyNTIsOCBAQCBpbXBsIEFjY2VwdEJ1aWxkZXIgewo+
ICAgICAgICAgICkpOwo+ICAKPiAgICAgICAgICAoCj4gLSAgICAgICAgICAgIGFjY2VwdDo6ZnJv
bV9zdHJlYW0oUmVjZWl2ZXJTdHJlYW06Om5ldyhzZWN1cmVfcmVjZWl2ZXIpKSwKPiAtICAgICAg
ICAgICAgYWNjZXB0Ojpmcm9tX3N0cmVhbShSZWNlaXZlclN0cmVhbTo6bmV3KGluc2VjdXJlX3Jl
Y2VpdmVyKSksCj4gKyAgICAgICAgICAgIFJlY2VpdmVyU3RyZWFtOjpuZXcoc2VjdXJlX3JlY2Vp
dmVyKSwKPiArICAgICAgICAgICAgUmVjZWl2ZXJTdHJlYW06Om5ldyhpbnNlY3VyZV9yZWNlaXZl
ciksCj4gICAgICAgICAgKQo+ICAgICAgfQo+ICB9Cj4gZGlmZiAtLWdpdCBhL3Byb3htb3gtcmVz
dC1zZXJ2ZXIvc3JjL2Zvcm1hdHRlci5ycyBiL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2Zvcm1h
dHRlci5ycwo+IGluZGV4IDMyY2E5OTM2Li45Y2U4NzIwNSAxMDA2NDQKPiAtLS0gYS9wcm94bW94
LXJlc3Qtc2VydmVyL3NyYy9mb3JtYXR0ZXIucnMKPiArKysgYi9wcm94bW94LXJlc3Qtc2VydmVy
L3NyYy9mb3JtYXR0ZXIucnMKPiBAQCAtNSwxMiArNSwxNCBAQCB1c2UgYW55aG93OjpFcnJvcjsK
PiAgdXNlIHNlcmRlX2pzb246Ontqc29uLCBWYWx1ZX07Cj4gIAo+ICB1c2UgaHlwZXI6OmhlYWRl
cjsKPiAtdXNlIGh5cGVyOjp7Qm9keSwgUmVzcG9uc2UsIFN0YXR1c0NvZGV9Owo+ICt1c2UgaHlw
ZXI6OntSZXNwb25zZSwgU3RhdHVzQ29kZX07Cj4gIAo+ICt1c2UgcHJveG1veF9odHRwOjpCb2R5
Owo+ICB1c2UgcHJveG1veF9yb3V0ZXI6OntIdHRwRXJyb3IsIFJwY0Vudmlyb25tZW50LCBTZXJp
YWxpemFibGVSZXR1cm59Owo+ICB1c2UgcHJveG1veF9zY2hlbWE6OlBhcmFtZXRlckVycm9yOwo+
ICAKPiAgLy8vIEV4dGVuc2lvbiB0byBzZXQgZXJyb3IgbWVzc2FnZSBmb3Igc2VydmVyIHNpZGUg
bG9nZ2luZwo+ICsjW2Rlcml2ZShDbG9uZSldCj4gIHB1YihjcmF0ZSkgc3RydWN0IEVycm9yTWVz
c2FnZUV4dGVuc2lvbihwdWIgU3RyaW5nKTsKPiAgCj4gIC8vLyBNZXRob2RzIHRvIGZvcm1hdCBk
YXRhIGFuZCBlcnJvcnMKPiBAQCAtMTY4LDExICsxNzAsMTEgQEAgaW1wbCBPdXRwdXRGb3JtYXR0
ZXIgZm9yIEpzb25Gb3JtYXR0ZXIgewo+ICAKPiAgcHViKGNyYXRlKSBmbiBlcnJvcl90b19yZXNw
b25zZShlcnI6IEVycm9yKSAtPiBSZXNwb25zZTxCb2R5PiB7Cj4gICAgICBsZXQgbXV0IHJlc3Bv
bnNlID0gaWYgbGV0IFNvbWUoYXBpZXJyKSA9IGVyci5kb3duY2FzdF9yZWY6OjxIdHRwRXJyb3I+
KCkgewo+IC0gICAgICAgIGxldCBtdXQgcmVzcCA9IFJlc3BvbnNlOjpuZXcoQm9keTo6ZnJvbShh
cGllcnIubWVzc2FnZS5jbG9uZSgpKSk7Cj4gKyAgICAgICAgbGV0IG11dCByZXNwID0gUmVzcG9u
c2U6Om5ldyhhcGllcnIubWVzc2FnZS5jbG9uZSgpLmludG8oKSk7Cj4gICAgICAgICAgKnJlc3Au
c3RhdHVzX211dCgpID0gYXBpZXJyLmNvZGU7Cj4gICAgICAgICAgcmVzcAo+ICAgICAgfSBlbHNl
IHsKPiAtICAgICAgICBsZXQgbXV0IHJlc3AgPSBSZXNwb25zZTo6bmV3KEJvZHk6OmZyb20oZXJy
LnRvX3N0cmluZygpKSk7Cj4gKyAgICAgICAgbGV0IG11dCByZXNwID0gUmVzcG9uc2U6Om5ldyhl
cnIudG9fc3RyaW5nKCkuaW50bygpKTsKPiAgICAgICAgICAqcmVzcC5zdGF0dXNfbXV0KCkgPSBT
dGF0dXNDb2RlOjpCQURfUkVRVUVTVDsKPiAgICAgICAgICByZXNwCj4gICAgICB9Owo+IGRpZmYg
LS1naXQgYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9oMnNlcnZpY2UucnMgYi9wcm94bW94LXJl
c3Qtc2VydmVyL3NyYy9oMnNlcnZpY2UucnMKPiBpbmRleCBkYjZlM2IwYS4uMTgyNThlMTQgMTAw
NjQ0Cj4gLS0tIGEvcHJveG1veC1yZXN0LXNlcnZlci9zcmMvaDJzZXJ2aWNlLnJzCj4gKysrIGIv
cHJveG1veC1yZXN0LXNlcnZlci9zcmMvaDJzZXJ2aWNlLnJzCj4gQEAgLTYsOCArNiwxMCBAQCB1
c2Ugc3RkOjpzeW5jOjpBcmM7Cj4gIHVzZSBzdGQ6OnRhc2s6OntDb250ZXh0LCBQb2xsfTsKPiAg
Cj4gIHVzZSBmdXR1cmVzOjoqOwo+IC11c2UgaHlwZXI6OntCb2R5LCBSZXF1ZXN0LCBSZXNwb25z
ZSwgU3RhdHVzQ29kZX07Cj4gK3VzZSBoeXBlcjo6Ym9keTo6SW5jb21pbmc7Cj4gK3VzZSBoeXBl
cjo6e1JlcXVlc3QsIFJlc3BvbnNlLCBTdGF0dXNDb2RlfTsKPiAgCj4gK3VzZSBwcm94bW94X2h0
dHA6OkJvZHk7Cj4gIHVzZSBwcm94bW94X3JvdXRlcjo6aHR0cF9lcnI7Cj4gIHVzZSBwcm94bW94
X3JvdXRlcjo6e0FwaVJlc3BvbnNlRnV0dXJlLCBIdHRwRXJyb3IsIFJvdXRlciwgUnBjRW52aXJv
bm1lbnR9Owo+ICAKPiBAQCAtMTksNiArMjEsNyBAQCB1c2UgY3JhdGU6Ontub3JtYWxpemVfcGF0
aF93aXRoX2NvbXBvbmVudHMsIFdvcmtlclRhc2t9Owo+ICAvLy8gV2UgdXNlIHRoaXMga2luZCBv
ZiBzZXJ2aWNlIHRvIGhhbmRsZSBiYWNrdXAgcHJvdG9jb2wKPiAgLy8vIGNvbm5lY3Rpb25zLiBT
dGF0ZSBpcyBzdG9yZWQgaW5zaWRlIHRoZSBnZW5lcmljIGBgcnBjZW52YGAuIExvZ3MKPiAgLy8v
IGdvZXMgaW50byB0aGUgYGBXb3JrZXJUYXNrYGAgbG9nLgo+ICsjW2Rlcml2ZShDbG9uZSldCj4g
IHB1YiBzdHJ1Y3QgSDJTZXJ2aWNlPEU+IHsKPiAgICAgIHJvdXRlcjogJidzdGF0aWMgUm91dGVy
LAo+ICAgICAgcnBjZW52OiBFLAo+IEBAIC00Miw3ICs0NSw3IEBAIGltcGw8RTogUnBjRW52aXJv
bm1lbnQgKyBDbG9uZT4gSDJTZXJ2aWNlPEU+IHsKPiAgICAgICAgICB9Cj4gICAgICB9Cj4gIAo+
IC0gICAgZm4gaGFuZGxlX3JlcXVlc3QoJnNlbGYsIHJlcTogUmVxdWVzdDxCb2R5PikgLT4gQXBp
UmVzcG9uc2VGdXR1cmUgewo+ICsgICAgZm4gaGFuZGxlX3JlcXVlc3QoJnNlbGYsIHJlcTogUmVx
dWVzdDxJbmNvbWluZz4pIC0+IEFwaVJlc3BvbnNlRnV0dXJlIHsKPiAgICAgICAgICBsZXQgKHBh
cnRzLCBib2R5KSA9IHJlcS5pbnRvX3BhcnRzKCk7Cj4gIAo+ICAgICAgICAgIGxldCBtZXRob2Qg
PSBwYXJ0cy5tZXRob2QuY2xvbmUoKTsKPiBAQCAtMTAzLDcgKzEwNiw3IEBAIGltcGw8RTogUnBj
RW52aXJvbm1lbnQgKyBDbG9uZT4gSDJTZXJ2aWNlPEU+IHsKPiAgICAgIH0KPiAgfQo+ICAKPiAt
aW1wbDxFOiBScGNFbnZpcm9ubWVudCArIENsb25lPiB0b3dlcl9zZXJ2aWNlOjpTZXJ2aWNlPFJl
cXVlc3Q8Qm9keT4+IGZvciBIMlNlcnZpY2U8RT4gewo+ICtpbXBsPEU6IFJwY0Vudmlyb25tZW50
ICsgQ2xvbmU+IHRvd2VyX3NlcnZpY2U6OlNlcnZpY2U8UmVxdWVzdDxJbmNvbWluZz4+IGZvciBI
MlNlcnZpY2U8RT4gewo+ICAgICAgdHlwZSBSZXNwb25zZSA9IFJlc3BvbnNlPEJvZHk+Owo+ICAg
ICAgdHlwZSBFcnJvciA9IEVycm9yOwo+ICAgICAgI1thbGxvdyhjbGlwcHk6OnR5cGVfY29tcGxl
eGl0eSldCj4gQEAgLTExMyw3ICsxMTYsNyBAQCBpbXBsPEU6IFJwY0Vudmlyb25tZW50ICsgQ2xv
bmU+IHRvd2VyX3NlcnZpY2U6OlNlcnZpY2U8UmVxdWVzdDxCb2R5Pj4gZm9yIEgyU2Vydgo+ICAg
ICAgICAgIFBvbGw6OlJlYWR5KE9rKCgpKSkKPiAgICAgIH0KPiAgCj4gLSAgICBmbiBjYWxsKCZt
dXQgc2VsZiwgcmVxOiBSZXF1ZXN0PEJvZHk+KSAtPiBTZWxmOjpGdXR1cmUgewo+ICsgICAgZm4g
Y2FsbCgmbXV0IHNlbGYsIHJlcTogUmVxdWVzdDxJbmNvbWluZz4pIC0+IFNlbGY6OkZ1dHVyZSB7
Cj4gICAgICAgICAgbGV0IHBhdGggPSByZXEudXJpKCkucGF0aCgpLnRvX293bmVkKCk7Cj4gICAg
ICAgICAgbGV0IG1ldGhvZCA9IHJlcS5tZXRob2QoKS5jbG9uZSgpOwo+ICAgICAgICAgIGxldCB3
b3JrZXIgPSBzZWxmLndvcmtlci5jbG9uZSgpOwo+IEBAIC0xMjYsMTQgKzEyOSwxNCBAQCBpbXBs
PEU6IFJwY0Vudmlyb25tZW50ICsgQ2xvbmU+IHRvd2VyX3NlcnZpY2U6OlNlcnZpY2U8UmVxdWVz
dDxCb2R5Pj4gZm9yIEgyU2Vydgo+ICAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAg
ICAgRXJyKGVycikgPT4gewo+ICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKGFwaWVy
cikgPSBlcnIuZG93bmNhc3RfcmVmOjo8SHR0cEVycm9yPigpIHsKPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0IG11dCByZXNwID0gUmVzcG9uc2U6Om5ldyhCb2R5Ojpmcm9tKGFwaWVyci5t
ZXNzYWdlLmNsb25lKCkpKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCByZXNw
ID0gUmVzcG9uc2U6Om5ldyhhcGllcnIubWVzc2FnZS5jbG9uZSgpLmludG8oKSk7Cj4gICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3AuZXh0ZW5zaW9uc19tdXQoKQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLmluc2VydChFcnJvck1lc3NhZ2VFeHRlbnNpb24oYXBpZXJyLm1lc3Nh
Z2UuY2xvbmUoKSkpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAqcmVzcC5zdGF0dXNfbXV0
KCkgPSBhcGllcnIuY29kZTsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZjo6bG9nX3Jl
c3BvbnNlKHdvcmtlciwgbWV0aG9kLCAmcGF0aCwgJnJlc3ApOwo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICBPayhyZXNwKQo+ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcmVzcCA9IFJlc3BvbnNlOjpuZXcoQm9keTo6ZnJv
bShlcnIudG9fc3RyaW5nKCkpKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBy
ZXNwID0gUmVzcG9uc2U6Om5ldyhlcnIudG9fc3RyaW5nKCkuaW50bygpKTsKPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzcC5leHRlbnNpb25zX211dCgpCj4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAuaW5zZXJ0KEVycm9yTWVzc2FnZUV4dGVuc2lvbihlcnIudG9fc3RyaW5nKCkp
KTsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgKnJlc3Auc3RhdHVzX211dCgpID0gU3RhdHVz
Q29kZTo6QkFEX1JFUVVFU1Q7Cj4gZGlmZiAtLWdpdCBhL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3Jj
L2xpYi5ycyBiL3Byb3htb3gtcmVzdC1zZXJ2ZXIvc3JjL2xpYi5ycwo+IGluZGV4IDQzZGFmYTkx
Li41ZGRkMzY2NyAxMDA2NDQKPiAtLS0gYS9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9saWIucnMK
PiArKysgYi9wcm94bW94LXJlc3Qtc2VydmVyL3NyYy9saWIucnMKPiBAQCAtMzQsNyArMzQsNyBA
QCBtb2QgZW52aXJvbm1lbnQ7Cj4gIHB1YiB1c2UgZW52aXJvbm1lbnQ6Oio7Cj4gIAo+ICBtb2Qg
YXBpX2NvbmZpZzsKPiAtcHViIHVzZSBhcGlfY29uZmlnOjp7QXBpQ29uZmlnLCBBdXRoRXJyb3Is
IEF1dGhIYW5kbGVyLCBJbmRleEhhbmRsZXIsIFVuaXhBY2NlcHRvcn07Cj4gK3B1YiB1c2UgYXBp
X2NvbmZpZzo6e0FwaUNvbmZpZywgQXV0aEVycm9yLCBBdXRoSGFuZGxlciwgSW5kZXhIYW5kbGVy
fTsKPiAgCj4gIG1vZCByZXN0Owo+ICBwdWIgdXNlIHJlc3Q6OntSZWRpcmVjdG9yLCBSZXN0U2Vy
dmVyfTsKPiBkaWZmIC0tZ2l0IGEvcHJveG1veC1yZXN0LXNlcnZlci9zcmMvcmVzdC5ycyBiL3By
b3htb3gtcmVzdC1zZXJ2ZXIvc3JjL3Jlc3QucnMKPiBpbmRleCBmNWE3MjA1Mi4uZjkwMjU5MmQg
MTAwNjQ0Cj4gLS0tIGEvcHJveG1veC1yZXN0LXNlcnZlci9zcmMvcmVzdC5ycwo+ICsrKyBiL3By
b3htb3gtcmVzdC1zZXJ2ZXIvc3JjL3Jlc3QucnMKPiBAQCAtMTAsMTcgKzEwLDI1IEBAIHVzZSBz
dGQ6OnRhc2s6OntDb250ZXh0LCBQb2xsfTsKPiAgdXNlIGFueWhvdzo6e2JhaWwsIGZvcm1hdF9l
cnIsIEVycm9yfTsKPiAgdXNlIGZ1dHVyZXM6OmZ1dHVyZTo6RnV0dXJlRXh0Owo+ICB1c2UgZnV0
dXJlczo6c3RyZWFtOjpUcnlTdHJlYW1FeHQ7Cj4gLXVzZSBoeXBlcjo6Ym9keTo6SHR0cEJvZHk7
Cj4gK3VzZSBodHRwX2JvZHlfdXRpbDo6e0JvZHlEYXRhU3RyZWFtLCBCb2R5U3RyZWFtfTsKPiAr
dXNlIGh5cGVyOjpib2R5Ojp7Qm9keSBhcyBIeXBlckJvZHksIEluY29taW5nfTsKPiAgdXNlIGh5
cGVyOjpoZWFkZXI6OntzZWxmLCBIZWFkZXJNYXB9Owo+ICB1c2UgaHlwZXI6Omh0dHA6OnJlcXVl
c3Q6OlBhcnRzOwo+IC11c2UgaHlwZXI6OntCb2R5LCBSZXF1ZXN0LCBSZXNwb25zZSwgU3RhdHVz
Q29kZX07Cj4gK3VzZSBoeXBlcjo6e1JlcXVlc3QsIFJlc3BvbnNlLCBTdGF0dXNDb2RlfTsKPiAr
dXNlIGh5cGVyX3V0aWw6OnJ0Ojp7VG9raW9FeGVjdXRvciwgVG9raW9Jb307Cj4gK3VzZSBoeXBl
cl91dGlsOjpzZXJ2ZXI6OmNvbm47Cj4gK3VzZSBoeXBlcl91dGlsOjpzZXJ2ZXI6OmdyYWNlZnVs
OjpHcmFjZWZ1bFNodXRkb3duOwo+ICt1c2UgaHlwZXJfdXRpbDo6c2VydmljZTo6VG93ZXJUb0h5
cGVyU2VydmljZTsKPiAgdXNlIHJlZ2V4OjpSZWdleDsKPiAgdXNlIHNlcmRlX2pzb246OlZhbHVl
Owo+ICB1c2UgdG9raW86OmZzOjpGaWxlOwo+ICt1c2UgdG9raW86OmlvOjp7QXN5bmNSZWFkLCBB
c3luY1dyaXRlfTsKPiAgdXNlIHRva2lvOjp0aW1lOjpJbnN0YW50Owo+ICt1c2UgdG9raW9fc3Ry
ZWFtOjp3cmFwcGVyczo6UmVjZWl2ZXJTdHJlYW07Cj4gIHVzZSB0b3dlcl9zZXJ2aWNlOjpTZXJ2
aWNlOwo+ICB1c2UgdXJsOjpmb3JtX3VybGVuY29kZWQ7Cj4gIAo+ICt1c2UgcHJveG1veF9odHRw
OjpCb2R5Owo+ICB1c2UgcHJveG1veF9yb3V0ZXI6OnsKPiAgICAgIGNoZWNrX2FwaV9wZXJtaXNz
aW9uLCBBcGlIYW5kbGVyLCBBcGlNZXRob2QsIEh0dHBFcnJvciwgUGVybWlzc2lvbiwgUnBjRW52
aXJvbm1lbnQsCj4gICAgICBScGNFbnZpcm9ubWVudFR5cGUsIFVzZXJJbmZvcm1hdGlvbiwKPiBA
QCAtNDAsNiArNDgsNyBAQCB1bnNhZmUgZXh0ZXJuICJDIiB7Cj4gICAgICBmbiB0enNldCgpOwo+
ICB9Cj4gIAo+ICsjW2Rlcml2ZShDbG9uZSldCj4gIHN0cnVjdCBBdXRoU3RyaW5nRXh0ZW5zaW9u
KFN0cmluZyk7Cj4gIAo+ICBwdWIoY3JhdGUpIHN0cnVjdCBFbXB0eVVzZXJJbmZvcm1hdGlvbiB7
fQo+IEBAIC03NCwyNCArODMsMTEgQEAgaW1wbCBSZXN0U2VydmVyIHsKPiAgICAgICAgICAgICAg
YXBpX2NvbmZpZzogQXJjOjpuZXcoYXBpX2NvbmZpZyksCj4gICAgICAgICAgfQo+ICAgICAgfQo+
IC19Cj4gIAo+IC1pbXBsPFQ6IFBlZXJBZGRyZXNzPiBTZXJ2aWNlPCZUPiBmb3IgUmVzdFNlcnZl
ciB7Cj4gLSAgICB0eXBlIFJlc3BvbnNlID0gQXBpU2VydmljZTsKPiAtICAgIHR5cGUgRXJyb3Ig
PSBFcnJvcjsKPiAtICAgIHR5cGUgRnV0dXJlID0gc3RkOjpmdXR1cmU6OlJlYWR5PFJlc3VsdDxB
cGlTZXJ2aWNlLCBFcnJvcj4+Owo+IC0KPiAtICAgIGZuIHBvbGxfcmVhZHkoJm11dCBzZWxmLCBf
Y3g6ICZtdXQgQ29udGV4dCkgLT4gUG9sbDxSZXN1bHQ8KCksIFNlbGY6OkVycm9yPj4gewo+IC0g
ICAgICAgIFBvbGw6OlJlYWR5KE9rKCgpKSkKPiAtICAgIH0KPiAtCj4gLSAgICBmbiBjYWxsKCZt
dXQgc2VsZiwgY3R4OiAmVCkgLT4gU2VsZjo6RnV0dXJlIHsKPiAtICAgICAgICBzdGQ6OmZ1dHVy
ZTo6cmVhZHkobWF0Y2ggY3R4LnBlZXJfYWRkcigpIHsKPiAtICAgICAgICAgICAgRXJyKGVycikg
PT4gRXJyKGZvcm1hdF9lcnIhKCJ1bmFibGUgdG8gZ2V0IHBlZXIgYWRkcmVzcyAtIHt9IiwgZXJy
KSksCj4gLSAgICAgICAgICAgIE9rKHBlZXIpID0+IE9rKEFwaVNlcnZpY2Ugewo+IC0gICAgICAg
ICAgICAgICAgcGVlciwKPiAtICAgICAgICAgICAgICAgIGFwaV9jb25maWc6IEFyYzo6Y2xvbmUo
JnNlbGYuYXBpX2NvbmZpZyksCj4gLSAgICAgICAgICAgIH0pLAo+ICsgICAgcHViIGZuIGFwaV9z
ZXJ2aWNlKCZzZWxmLCBwZWVyOiAmZHluIFBlZXJBZGRyZXNzKSAtPiBSZXN1bHQ8QXBpU2Vydmlj
ZSwgRXJyb3I+IHsKPiArICAgICAgICBPayhBcGlTZXJ2aWNlIHsKPiArICAgICAgICAgICAgcGVl
cjogcGVlci5wZWVyX2FkZHIoKT8sCj4gKyAgICAgICAgICAgIGFwaV9jb25maWc6IEFyYzo6Y2xv
bmUoJnNlbGYuYXBpX2NvbmZpZyksCj4gICAgICAgICAgfSkKPiAgICAgIH0KPiAgfQo+IEBAIC0x
MDgsMjUgKzEwNCw0MCBAQCBpbXBsIFJlZGlyZWN0b3Igewo+ICAgICAgcHViIGZuIG5ldygpIC0+
IFNlbGYgewo+ICAgICAgICAgIFNlbGYge30KPiAgICAgIH0KPiAtfQo+ICAKPiAtaW1wbDxUPiBT
ZXJ2aWNlPCZUPiBmb3IgUmVkaXJlY3RvciB7Cj4gLSAgICB0eXBlIFJlc3BvbnNlID0gUmVkaXJl
Y3RTZXJ2aWNlOwo+IC0gICAgdHlwZSBFcnJvciA9IEVycm9yOwo+IC0gICAgdHlwZSBGdXR1cmUg
PSBzdGQ6OmZ1dHVyZTo6UmVhZHk8UmVzdWx0PFNlbGY6OlJlc3BvbnNlLCBTZWxmOjpFcnJvcj4+
Owo+IC0KPiAtICAgIGZuIHBvbGxfcmVhZHkoJm11dCBzZWxmLCBfY3g6ICZtdXQgQ29udGV4dDwn
Xz4pIC0+IFBvbGw8UmVzdWx0PCgpLCBTZWxmOjpFcnJvcj4+IHsKPiAtICAgICAgICBQb2xsOjpS
ZWFkeShPaygoKSkpCj4gLSAgICB9Cj4gLQo+IC0gICAgZm4gY2FsbCgmbXV0IHNlbGYsIF9jdHg6
ICZUKSAtPiBTZWxmOjpGdXR1cmUgewo+IC0gICAgICAgIHN0ZDo6ZnV0dXJlOjpyZWFkeShPayhS
ZWRpcmVjdFNlcnZpY2Uge30pKQo+ICsgICAgcHViIGZuIHJlZGlyZWN0X3NlcnZpY2UoJnNlbGYp
IC0+IFJlZGlyZWN0U2VydmljZSB7Cj4gKyAgICAgICAgUmVkaXJlY3RTZXJ2aWNlIHt9Cj4gICAg
ICB9Cj4gIH0KPiAgCj4gKyNbZGVyaXZlKENsb25lKV0KPiAgcHViIHN0cnVjdCBSZWRpcmVjdFNl
cnZpY2U7Cj4gIAo+IC1pbXBsIFNlcnZpY2U8UmVxdWVzdDxCb2R5Pj4gZm9yIFJlZGlyZWN0U2Vy
dmljZSB7Cj4gK2ltcGwgUmVkaXJlY3RTZXJ2aWNlIHsKPiArICAgIHB1YiBhc3luYyBmbiBzZXJ2
ZTxTPigKPiArICAgICAgICBzZWxmLAo+ICsgICAgICAgIGNvbm46IFMsCj4gKyAgICAgICAgbXV0
IGdyYWNlZnVsOiBPcHRpb248QXJjPEdyYWNlZnVsU2h1dGRvd24+PiwKPiArICAgICkgLT4gUmVz
dWx0PCgpLCBFcnJvcj4KPiArICAgIHdoZXJlCj4gKyAgICAgICAgUzogQXN5bmNSZWFkICsgQXN5
bmNXcml0ZSArIFVucGluICsgU2VuZCArICdzdGF0aWMsCj4gKyAgICB7Cj4gKyAgICAgICAgbGV0
IGFwaV9zZXJ2aWNlID0gVG93ZXJUb0h5cGVyU2VydmljZTo6bmV3KHNlbGYpOwo+ICsgICAgICAg
IGxldCBpbyA9IFRva2lvSW86Om5ldyhjb25uKTsKPiArICAgICAgICBsZXQgYXBpX2Nvbm4gPSBj
b25uOjphdXRvOjpCdWlsZGVyOjpuZXcoVG9raW9FeGVjdXRvcjo6bmV3KCkpOwo+ICsgICAgICAg
IGxldCBhcGlfY29ubiA9IGFwaV9jb25uLnNlcnZlX2Nvbm5lY3Rpb25fd2l0aF91cGdyYWRlcyhp
bywgYXBpX3NlcnZpY2UpOwo+ICsgICAgICAgIGlmIGxldCBTb21lKGdyYWNlZnVsKSA9IGdyYWNl
ZnVsLnRha2UoKSB7Cj4gKyAgICAgICAgICAgIGxldCBhcGlfY29ubiA9IGdyYWNlZnVsLndhdGNo
KGFwaV9jb25uKTsKPiArICAgICAgICAgICAgZHJvcChncmFjZWZ1bCk7Cj4gKyAgICAgICAgICAg
IGFwaV9jb25uLmF3YWl0Cj4gKyAgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgYXBpX2Nv
bm4uYXdhaXQKPiArICAgICAgICB9Cj4gKyAgICAgICAgLm1hcF9lcnIofGVycnwgZm9ybWF0X2Vy
ciEoImVycm9yIHNlcnZpbmcgcmVkaXJlY3QgY29ubmVjdGlvbjoge2Vycn0iKSkKPiArICAgIH0K
PiArfQo+ICsKPiAraW1wbCBTZXJ2aWNlPFJlcXVlc3Q8SW5jb21pbmc+PiBmb3IgUmVkaXJlY3RT
ZXJ2aWNlIHsKPiAgICAgIHR5cGUgUmVzcG9uc2UgPSBSZXNwb25zZTxCb2R5PjsKPiAgICAgIHR5
cGUgRXJyb3IgPSBhbnlob3c6OkVycm9yOwo+ICAgICAgdHlwZSBGdXR1cmUgPSBQaW48Qm94PGR5
biBGdXR1cmU8T3V0cHV0ID0gUmVzdWx0PFNlbGY6OlJlc3BvbnNlLCBTZWxmOjpFcnJvcj4+ICsg
U2VuZD4+Owo+IEBAIC0xMzUsNyArMTQ2LDcgQEAgaW1wbCBTZXJ2aWNlPFJlcXVlc3Q8Qm9keT4+
IGZvciBSZWRpcmVjdFNlcnZpY2Ugewo+ICAgICAgICAgIFBvbGw6OlJlYWR5KE9rKCgpKSkKPiAg
ICAgIH0KPiAgCj4gLSAgICBmbiBjYWxsKCZtdXQgc2VsZiwgcmVxOiBSZXF1ZXN0PEJvZHk+KSAt
PiBTZWxmOjpGdXR1cmUgewo+ICsgICAgZm4gY2FsbCgmbXV0IHNlbGYsIHJlcTogUmVxdWVzdDxJ
bmNvbWluZz4pIC0+IFNlbGY6OkZ1dHVyZSB7Cj4gICAgICAgICAgbGV0IGZ1dHVyZSA9IGFzeW5j
IG1vdmUgewo+ICAgICAgICAgICAgICBsZXQgaGVhZGVyX2hvc3RfdmFsdWUgPSByZXEKPiAgICAg
ICAgICAgICAgICAgIC5oZWFkZXJzKCkKPiBAQCAtMTk0LDEyICsyMDUsNiBAQCBpbXBsIFBlZXJB
ZGRyZXNzIGZvciB0b2tpbzo6bmV0OjpUY3BTdHJlYW0gewo+ICAgICAgfQo+ICB9Cj4gIAo+IC1p
bXBsIFBlZXJBZGRyZXNzIGZvciBoeXBlcjo6c2VydmVyOjpjb25uOjpBZGRyU3RyZWFtIHsKPiAt
ICAgIGZuIHBlZXJfYWRkcigmc2VsZikgLT4gUmVzdWx0PHN0ZDo6bmV0OjpTb2NrZXRBZGRyLCBF
cnJvcj4gewo+IC0gICAgICAgIE9rKHNlbGYucmVtb3RlX2FkZHIoKSkKPiAtICAgIH0KPiAtfQo+
IC0KPiAgaW1wbCBQZWVyQWRkcmVzcyBmb3IgdG9raW86Om5ldDo6VW5peFN0cmVhbSB7Cj4gICAg
ICBmbiBwZWVyX2FkZHIoJnNlbGYpIC0+IFJlc3VsdDxzdGQ6Om5ldDo6U29ja2V0QWRkciwgRXJy
b3I+IHsKPiAgICAgICAgICAvLyBUT0RPOiBGaW5kIGEgd2F5IHRvIGFjdHVhbGx5IHJlcHJlc2Vu
dCB0aGUgdnNvY2sgcGVlciBpbiB0aGUgQXBpU2VydmljZSBzdHJ1Y3QgLSBmb3Igbm93Cj4gQEAg
LTIyMywxMSArMjI4LDM2IEBAIGltcGw8VDogUGVlckFkZHJlc3M+IFBlZXJBZGRyZXNzIGZvciBw
cm94bW94X2h0dHA6OlJhdGVMaW1pdGVkU3RyZWFtPFQ+IHsKPiAgLy8gUnVzdCB3YW50cyB0aGlz
IHR5cGUgJ3B1YicgaGVyZSAoZWxzZSB3ZSBnZXQgJ3ByaXZhdGUgdHlwZSBgQXBpU2VydmljZWAK
PiAgLy8gaW4gcHVibGljIGludGVyZmFjZScpLiBUaGUgdHlwZSBpcyBzdGlsbCBwcml2YXRlIGJl
Y2F1c2UgdGhlIGNyYXRlIGRvZXMKPiAgLy8gbm90IGV4cG9ydCBpdC4KPiArI1tkZXJpdmUoQ2xv
bmUpXQo+ICBwdWIgc3RydWN0IEFwaVNlcnZpY2Ugewo+ICAgICAgcHViIHBlZXI6IHN0ZDo6bmV0
OjpTb2NrZXRBZGRyLAo+ICAgICAgcHViIGFwaV9jb25maWc6IEFyYzxBcGlDb25maWc+LAo+ICB9
Cj4gIAo+ICtpbXBsIEFwaVNlcnZpY2Ugewo+ICsgICAgcHViIGFzeW5jIGZuIHNlcnZlPFM+KAo+
ICsgICAgICAgIHNlbGYsCj4gKyAgICAgICAgY29ubjogUywKPiArICAgICAgICBtdXQgZ3JhY2Vm
dWw6IE9wdGlvbjxBcmM8R3JhY2VmdWxTaHV0ZG93bj4+LAo+ICsgICAgKSAtPiBSZXN1bHQ8KCks
IEVycm9yPgo+ICsgICAgd2hlcmUKPiArICAgICAgICBTOiBBc3luY1JlYWQgKyBBc3luY1dyaXRl
ICsgVW5waW4gKyBTZW5kICsgJ3N0YXRpYywKPiArICAgIHsKPiArICAgICAgICBsZXQgYXBpX3Nl
cnZpY2UgPSBUb3dlclRvSHlwZXJTZXJ2aWNlOjpuZXcoc2VsZik7Cj4gKyAgICAgICAgbGV0IGlv
ID0gVG9raW9Jbzo6bmV3KGNvbm4pOwo+ICsgICAgICAgIGxldCBhcGlfY29ubiA9IGNvbm46OmF1
dG86OkJ1aWxkZXI6Om5ldyhUb2tpb0V4ZWN1dG9yOjpuZXcoKSk7Cj4gKyAgICAgICAgbGV0IGFw
aV9jb25uID0gYXBpX2Nvbm4uc2VydmVfY29ubmVjdGlvbl93aXRoX3VwZ3JhZGVzKGlvLCBhcGlf
c2VydmljZSk7Cj4gKyAgICAgICAgaWYgbGV0IFNvbWUoZ3JhY2VmdWwpID0gZ3JhY2VmdWwudGFr
ZSgpIHsKPiArICAgICAgICAgICAgbGV0IGFwaV9jb25uID0gZ3JhY2VmdWwud2F0Y2goYXBpX2Nv
bm4pOwo+ICsgICAgICAgICAgICBkcm9wKGdyYWNlZnVsKTsKPiArICAgICAgICAgICAgYXBpX2Nv
bm4uYXdhaXQKPiArICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICBhcGlfY29ubi5hd2Fp
dAo+ICsgICAgICAgIH0KPiArICAgICAgICAubWFwX2Vycih8ZXJyfCBmb3JtYXRfZXJyISgiZXJy
b3Igc2VydmluZyBjb25uZWN0aW9uOiB7ZXJyfSIpKQo+ICsgICAgfQo+ICt9Cj4gKwo+ICBmbiBs
b2dfcmVzcG9uc2UoCj4gICAgICBsb2dmaWxlOiBPcHRpb248JkFyYzxNdXRleDxGaWxlTG9nZ2Vy
Pj4+LAo+ICAgICAgcGVlcjogJnN0ZDo6bmV0OjpTb2NrZXRBZGRyLAo+IEBAIC0zMDcsNyArMzM3
LDcgQEAgZm4gZ2V0X3VzZXJfYWdlbnQoaGVhZGVyczogJkhlYWRlck1hcCkgLT4gT3B0aW9uPFN0
cmluZz4gewo+ICAgICAgICAgIC5vaygpCj4gIH0KPiAgCj4gLWltcGwgU2VydmljZTxSZXF1ZXN0
PEJvZHk+PiBmb3IgQXBpU2VydmljZSB7Cj4gK2ltcGwgU2VydmljZTxSZXF1ZXN0PEluY29taW5n
Pj4gZm9yIEFwaVNlcnZpY2Ugewo+ICAgICAgdHlwZSBSZXNwb25zZSA9IFJlc3BvbnNlPEJvZHk+
Owo+ICAgICAgdHlwZSBFcnJvciA9IEVycm9yOwo+ICAgICAgI1thbGxvdyhjbGlwcHk6OnR5cGVf
Y29tcGxleGl0eSldCj4gQEAgLTMxNyw3ICszNDcsNyBAQCBpbXBsIFNlcnZpY2U8UmVxdWVzdDxC
b2R5Pj4gZm9yIEFwaVNlcnZpY2Ugewo+ICAgICAgICAgIFBvbGw6OlJlYWR5KE9rKCgpKSkKPiAg
ICAgIH0KPiAgCj4gLSAgICBmbiBjYWxsKCZtdXQgc2VsZiwgcmVxOiBSZXF1ZXN0PEJvZHk+KSAt
PiBTZWxmOjpGdXR1cmUgewo+ICsgICAgZm4gY2FsbCgmbXV0IHNlbGYsIHJlcTogUmVxdWVzdDxJ
bmNvbWluZz4pIC0+IFNlbGY6OkZ1dHVyZSB7Cj4gICAgICAgICAgbGV0IHBhdGggPSByZXEudXJp
KCkucGF0aF9hbmRfcXVlcnkoKS51bndyYXAoKS5hc19zdHIoKS50b19vd25lZCgpOwo+ICAgICAg
ICAgIGxldCBtZXRob2QgPSByZXEubWV0aG9kKCkuY2xvbmUoKTsKPiAgICAgICAgICBsZXQgdXNl
cl9hZ2VudCA9IGdldF91c2VyX2FnZW50KHJlcS5oZWFkZXJzKCkpOwo+IEBAIC0zODQsNyArNDE0
LDcgQEAgZm4gcGFyc2VfcXVlcnlfcGFyYW1ldGVyczxTOiAnc3RhdGljICsgQnVpbGRIYXNoZXIg
KyBTZW5kPigKPiAgYXN5bmMgZm4gZ2V0X3JlcXVlc3RfcGFyYW1ldGVyczxTOiAnc3RhdGljICsg
QnVpbGRIYXNoZXIgKyBTZW5kPigKPiAgICAgIHBhcmFtX3NjaGVtYTogUGFyYW1ldGVyU2NoZW1h
LAo+ICAgICAgcGFydHM6ICZQYXJ0cywKPiAtICAgIHJlcV9ib2R5OiBCb2R5LAo+ICsgICAgcmVx
X2JvZHk6IEluY29taW5nLAo+ICAgICAgdXJpX3BhcmFtOiBIYXNoTWFwPFN0cmluZywgU3RyaW5n
LCBTPiwKPiAgKSAtPiBSZXN1bHQ8VmFsdWUsIEVycm9yPiB7Cj4gICAgICBsZXQgbXV0IGlzX2pz
b24gPSBmYWxzZTsKPiBAQCAtNDAxLDEzICs0MzEsMTcgQEAgYXN5bmMgZm4gZ2V0X3JlcXVlc3Rf
cGFyYW1ldGVyczxTOiAnc3RhdGljICsgQnVpbGRIYXNoZXIgKyBTZW5kPigKPiAgICAgICAgICB9
Cj4gICAgICB9Cj4gIAo+IC0gICAgbGV0IGJvZHkgPSBUcnlTdHJlYW1FeHQ6Om1hcF9lcnIocmVx
X2JvZHksIHxlcnJ8IHsKPiArICAgIGxldCBzdHJlYW1fYm9keSA9IEJvZHlTdHJlYW06Om5ldyhy
ZXFfYm9keSk7Cj4gKyAgICBsZXQgYm9keSA9IFRyeVN0cmVhbUV4dDo6bWFwX2VycihzdHJlYW1f
Ym9keSwgfGVycnwgewo+ICAgICAgICAgIGh0dHBfZXJyIShCQURfUkVRVUVTVCwgIlByb2JsZW1z
IHJlYWRpbmcgcmVxdWVzdCBib2R5OiB7fSIsIGVycikKPiAgICAgIH0pCj4gLSAgICAudHJ5X2Zv
bGQoVmVjOjpuZXcoKSwgfG11dCBhY2MsIGNodW5rfCBhc3luYyBtb3ZlIHsKPiArICAgIC50cnlf
Zm9sZChWZWM6Om5ldygpLCB8bXV0IGFjYywgZnJhbWV8IGFzeW5jIG1vdmUgewo+ICAgICAgICAg
IC8vIEZJWE1FOiBtYXggcmVxdWVzdCBib2R5IHNpemU/Cj4gLSAgICAgICAgaWYgYWNjLmxlbigp
ICsgY2h1bmsubGVuKCkgPCA2NCAqIDEwMjQgewo+IC0gICAgICAgICAgICBhY2MuZXh0ZW5kX2Zy
b21fc2xpY2UoJmNodW5rKTsKPiArICAgICAgICBsZXQgZnJhbWUgPSBmcmFtZQo+ICsgICAgICAg
ICAgICAuaW50b19kYXRhKCkKPiArICAgICAgICAgICAgLm1hcF9lcnIofGVycnwgZm9ybWF0X2Vy
ciEoIkZhaWxlZCB0byByZWFkIHJlcXVlc3QgYm9keSBmcmFtZSAtIHtlcnI6P30iKSk/Owo+ICsg
ICAgICAgIGlmIGFjYy5sZW4oKSArIGZyYW1lLmxlbigpIDwgNjQgKiAxMDI0IHsKPiArICAgICAg
ICAgICAgYWNjLmV4dGVuZF9mcm9tX3NsaWNlKCZmcmFtZSk7Cj4gICAgICAgICAgICAgIE9rKGFj
YykKPiAgICAgICAgICB9IGVsc2Ugewo+ICAgICAgICAgICAgICBFcnIoaHR0cF9lcnIhKEJBRF9S
RVFVRVNULCAiUmVxdWVzdCBib2R5IHRvbyBsYXJnZSIpKQo+IEBAIC00MzcsMTMgKzQ3MSwxNCBA
QCBhc3luYyBmbiBnZXRfcmVxdWVzdF9wYXJhbWV0ZXJzPFM6ICdzdGF0aWMgKyBCdWlsZEhhc2hl
ciArIFNlbmQ+KAo+ICAgICAgfQo+ICB9Cj4gIAo+ICsjW2Rlcml2ZShDbG9uZSldCj4gIHN0cnVj
dCBOb0xvZ0V4dGVuc2lvbigpOwo+ICAKPiAgYXN5bmMgZm4gcHJveHlfcHJvdGVjdGVkX3JlcXVl
c3QoCj4gICAgICBjb25maWc6ICZBcGlDb25maWcsCj4gICAgICBpbmZvOiAmQXBpTWV0aG9kLAo+
ICAgICAgbXV0IHBhcnRzOiBQYXJ0cywKPiAtICAgIHJlcV9ib2R5OiBCb2R5LAo+ICsgICAgcmVx
X2JvZHk6IEluY29taW5nLAo+ICAgICAgcGVlcjogJnN0ZDo6bmV0OjpTb2NrZXRBZGRyLAo+ICAp
IC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKPiAgICAgIGxldCBtdXQgdXJpX3Bh
cnRzID0gcGFydHMudXJpLmNsb25lKCkuaW50b19wYXJ0cygpOwo+IEBAIC00NjMsOSArNDk4LDE0
IEBAIGFzeW5jIGZuIHByb3h5X3Byb3RlY3RlZF9yZXF1ZXN0KAo+ICAgICAgbGV0IHJlbG9hZF90
aW1lem9uZSA9IGluZm8ucmVsb2FkX3RpbWV6b25lOwo+ICAKPiAgICAgIGxldCBtdXQgcmVzcCA9
IG1hdGNoIGNvbmZpZy5wcml2aWxlZ2VkX2FkZHIuY2xvbmUoKSB7Cj4gLSAgICAgICAgTm9uZSA9
PiBoeXBlcjo6Y2xpZW50OjpDbGllbnQ6Om5ldygpLnJlcXVlc3QocmVxdWVzdCkuYXdhaXQ/LAo+
ICsgICAgICAgIE5vbmUgPT4gewo+ICsgICAgICAgICAgICBoeXBlcl91dGlsOjpjbGllbnQ6Omxl
Z2FjeTo6Q2xpZW50OjpidWlsZGVyKFRva2lvRXhlY3V0b3I6Om5ldygpKQo+ICsgICAgICAgICAg
ICAgICAgLmJ1aWxkX2h0dHAoKQo+ICsgICAgICAgICAgICAgICAgLnJlcXVlc3QocmVxdWVzdCkK
PiArICAgICAgICAgICAgICAgIC5hd2FpdD8KPiArICAgICAgICB9Cj4gICAgICAgICAgU29tZShh
ZGRyKSA9PiB7Cj4gLSAgICAgICAgICAgIGh5cGVyOjpjbGllbnQ6OkNsaWVudDo6YnVpbGRlcigp
Cj4gKyAgICAgICAgICAgIGh5cGVyX3V0aWw6OmNsaWVudDo6bGVnYWN5OjpDbGllbnQ6OmJ1aWxk
ZXIoVG9raW9FeGVjdXRvcjo6bmV3KCkpCj4gICAgICAgICAgICAgICAgICAuYnVpbGQoYWRkcikK
PiAgICAgICAgICAgICAgICAgIC5yZXF1ZXN0KHJlcXVlc3QpCj4gICAgICAgICAgICAgICAgICAu
YXdhaXQ/Cj4gQEAgLTQ3OSw3ICs1MTksNyBAQCBhc3luYyBmbiBwcm94eV9wcm90ZWN0ZWRfcmVx
dWVzdCgKPiAgICAgICAgICB9Cj4gICAgICB9Cj4gIAo+IC0gICAgT2socmVzcCkKPiArICAgIE9r
KHJlc3AubWFwKHxifCBCb2R5Ojp3cmFwX3N0cmVhbShCb2R5RGF0YVN0cmVhbTo6bmV3KGIpKSkp
Cj4gIH0KPiAgCj4gIGZuIGRlbGF5X3VuYXV0aF90aW1lKCkgLT4gc3RkOjp0aW1lOjpJbnN0YW50
IHsKPiBAQCAtNDkxLDIyICs1MzEsMjMgQEAgZm4gYWNjZXNzX2ZvcmJpZGRlbl90aW1lKCkgLT4g
c3RkOjp0aW1lOjpJbnN0YW50IHsKPiAgfQo+ICAKPiAgZm4gaGFuZGxlX3N0cmVhbV9hc19qc29u
X3NlcShzdHJlYW06IHByb3htb3hfcm91dGVyOjpTdHJlYW0pIC0+IFJlc3VsdDxSZXNwb25zZTxC
b2R5PiwgRXJyb3I+IHsKPiAtICAgIGxldCAobXV0IHNlbmQsIGJvZHkpID0gaHlwZXI6OkJvZHk6
OmNoYW5uZWwoKTsKPiArICAgIGxldCAoc2VuZCwgYm9keSkgPSB0b2tpbzo6c3luYzo6bXBzYzo6
Y2hhbm5lbDo6PFJlc3VsdDxWZWM8dTg+LCBFcnJvcj4+KDEpOwo+ICAgICAgdG9raW86OnNwYXdu
KGFzeW5jIG1vdmUgewo+ICAgICAgICAgIHVzZSBmdXR1cmVzOjpTdHJlYW1FeHQ7Cj4gIAo+ICAg
ICAgICAgIGxldCBtdXQgc3RyZWFtID0gc3RyZWFtLmludG9faW5uZXIoKTsKPiAgICAgICAgICB3
aGlsZSBsZXQgU29tZShyZWNvcmQpID0gc3RyZWFtLm5leHQoKS5hd2FpdCB7Cj4gLSAgICAgICAg
ICAgIGlmIHNlbmQuc2VuZF9kYXRhKHJlY29yZC50b19ieXRlcygpLmludG8oKSkuYXdhaXQuaXNf
ZXJyKCkgewo+ICsgICAgICAgICAgICBpZiBzZW5kLnNlbmQoT2socmVjb3JkLnRvX2J5dGVzKCkp
KS5hd2FpdC5pc19lcnIoKSB7Cj4gICAgICAgICAgICAgICAgICBicmVhazsKPiAgICAgICAgICAg
ICAgfQo+ICAgICAgICAgIH0KPiAgICAgIH0pOwo+ICAKPiAtICAgIE9rKFJlc3BvbnNlOjpidWls
ZGVyKCkKPiArICAgIFJlc3BvbnNlOjpidWlsZGVyKCkKPiAgICAgICAgICAuc3RhdHVzKGh0dHA6
OlN0YXR1c0NvZGU6Ok9LKQo+ICAgICAgICAgIC5oZWFkZXIoaHR0cDo6aGVhZGVyOjpDT05URU5U
X1RZUEUsICJhcHBsaWNhdGlvbi9qc29uLXNlcSIpCj4gLSAgICAgICAgLmJvZHkoYm9keSk/KQo+
ICsgICAgICAgIC5ib2R5KEJvZHk6OndyYXBfc3RyZWFtKFJlY2VpdmVyU3RyZWFtOjpuZXcoYm9k
eSkpKQo+ICsgICAgICAgIC5tYXBfZXJyKEVycm9yOjpmcm9tKQo+ICB9Cj4gIAo+ICBmbiBoYW5k
bGVfc3luY19zdHJlYW1fYXNfanNvbl9zZXEoCj4gQEAgLTUyNyw3ICs1NjgsNyBAQCBwdWIoY3Jh
dGUpIGFzeW5jIGZuIGhhbmRsZV9hcGlfcmVxdWVzdDxFbnY6IFJwY0Vudmlyb25tZW50LCBTOiAn
c3RhdGljICsgQnVpbGRIYQo+ICAgICAgaW5mbzogJidzdGF0aWMgQXBpTWV0aG9kLAo+ICAgICAg
Zm9ybWF0dGVyOiBPcHRpb248JidzdGF0aWMgZHluIE91dHB1dEZvcm1hdHRlcj4sCj4gICAgICBw
YXJ0czogUGFydHMsCj4gLSAgICByZXFfYm9keTogQm9keSwKPiArICAgIHJlcV9ib2R5OiBJbmNv
bWluZywKPiAgICAgIHVyaV9wYXJhbTogSGFzaE1hcDxTdHJpbmcsIFN0cmluZywgUz4sCj4gICkg
LT4gUmVzdWx0PFJlc3BvbnNlPEJvZHk+LCBFcnJvcj4gewo+ICAgICAgbGV0IGZvcm1hdHRlciA9
IGZvcm1hdHRlci51bndyYXBfb3IoY3JhdGU6OmZvcm1hdHRlcjo6RElSRUNUX0pTT05fRk9STUFU
VEVSKTsKPiBAQCAtNjMwLDkgKzY3MSwxMCBAQCBwdWIoY3JhdGUpIGFzeW5jIGZuIGhhbmRsZV9h
cGlfcmVxdWVzdDxFbnY6IFJwY0Vudmlyb25tZW50LCBTOiAnc3RhdGljICsgQnVpbGRIYQo+ICAg
ICAgICAgICAgICApOwo+ICAgICAgICAgICAgICByZXNwLm1hcCh8Ym9keXwgewo+ICAgICAgICAg
ICAgICAgICAgQm9keTo6d3JhcF9zdHJlYW0oCj4gLSAgICAgICAgICAgICAgICAgICAgRGVmbGF0
ZUVuY29kZXI6OmJ1aWxkZXIoVHJ5U3RyZWFtRXh0OjptYXBfZXJyKGJvZHksIHxlcnJ8IHsKPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgcHJveG1veF9sYW5nOjppb19mb3JtYXRfZXJyISgiZXJy
b3IgZHVyaW5nIGNvbXByZXNzaW9uOiB7fSIsIGVycikKPiAtICAgICAgICAgICAgICAgICAgICB9
KSkKPiArICAgICAgICAgICAgICAgICAgICBEZWZsYXRlRW5jb2Rlcjo6YnVpbGRlcihUcnlTdHJl
YW1FeHQ6Om1hcF9lcnIoCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEJvZHlEYXRhU3RyZWFt
OjpuZXcoYm9keSksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHxlcnJ8IHByb3htb3hfbGFu
Zzo6aW9fZm9ybWF0X2VyciEoImVycm9yIGR1cmluZyBjb21wcmVzc2lvbjoge30iLCBlcnIpLAoK
Q291bGQgaW5saW5lIHRoZSBgZXJyYCBhYm92ZSBpbnRvIHRoZSBhcmdzIG9mIGBpb19mb3JtYXRf
ZXJyYCBzaW5jZQp5b3UncmUgdG91Y2hpbmcgdGhhdCBwYXJ0ICh1bmxlc3Mgb3VyIG1hY3JvIGRv
ZXNuJ3Qgc3VwcG9ydCB0aGF0LCBidXQgSQphc3N1bWUgaXQgZG9lcykuCgo+ICsgICAgICAgICAg
ICAgICAgICAgICkpCj4gICAgICAgICAgICAgICAgICAgICAgLnpsaWIodHJ1ZSkKPiAgICAgICAg
ICAgICAgICAgICAgICAuZmx1c2hfd2luZG93KGlzX3N0cmVhbWluZy50aGVuX3NvbWUoNjQgKiAx
MDI0KSkKPiAgICAgICAgICAgICAgICAgICAgICAuYnVpbGQoKSwKPiBAQCAtNzk2LDcgKzgzOCw3
IEBAIGZuIGV4dHJhY3RfY29tcHJlc3Npb25fbWV0aG9kKGhlYWRlcnM6ICZodHRwOjpIZWFkZXJN
YXApIC0+IE9wdGlvbjxDb21wcmVzc2lvbk1lCj4gIGltcGwgQXBpQ29uZmlnIHsKPiAgICAgIHB1
YiBhc3luYyBmbiBoYW5kbGVfcmVxdWVzdCgKPiAgICAgICAgICBzZWxmOiBBcmM8QXBpQ29uZmln
PiwKPiAtICAgICAgICByZXE6IFJlcXVlc3Q8Qm9keT4sCj4gKyAgICAgICAgcmVxOiBSZXF1ZXN0
PEluY29taW5nPiwKPiAgICAgICAgICBwZWVyOiAmc3RkOjpuZXQ6OlNvY2tldEFkZHIsCj4gICAg
ICApIC0+IFJlc3VsdDxSZXNwb25zZTxCb2R5PiwgRXJyb3I+IHsKPiAgICAgICAgICBsZXQgKHBh
cnRzLCBib2R5KSA9IHJlcS5pbnRvX3BhcnRzKCk7Cj4gQEAgLTgwOCw3ICs4NTAsNyBAQCBpbXBs
IEFwaUNvbmZpZyB7Cj4gICAgICAgICAgaWYgcGF0aC5sZW4oKSArIHF1ZXJ5LmxlbigpID4gTUFY
X1VSSV9RVUVSWV9MRU5HVEggewo+ICAgICAgICAgICAgICByZXR1cm4gT2soUmVzcG9uc2U6OmJ1
aWxkZXIoKQo+ICAgICAgICAgICAgICAgICAgLnN0YXR1cyhTdGF0dXNDb2RlOjpVUklfVE9PX0xP
TkcpCj4gLSAgICAgICAgICAgICAgICAuYm9keSgiIi5pbnRvKCkpCj4gKyAgICAgICAgICAgICAg
ICAuYm9keShCb2R5OjplbXB0eSgpKQo+ICAgICAgICAgICAgICAgICAgLnVud3JhcCgpKTsKPiAg
ICAgICAgICB9Cj4gIAo+IEBAIC05MDcsNyArOTQ5LDcgQEAgaW1wbCBBY3Rpb24gewo+ICAKPiAg
cHViIHN0cnVjdCBBcGlSZXF1ZXN0RGF0YTwnYT4gewo+ICAgICAgcGFydHM6IFBhcnRzLAo+IC0g
ICAgYm9keTogQm9keSwKPiArICAgIGJvZHk6IEluY29taW5nLAo+ICAgICAgcGVlcjogJidhIHN0
ZDo6bmV0OjpTb2NrZXRBZGRyLAo+ICAgICAgY29uZmlnOiAmJ2EgQXBpQ29uZmlnLAo+ICAgICAg
ZnVsbF9wYXRoOiAmJ2Egc3RyLAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94
bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by9wYnMtZGV2ZWwK