From owner-doc-jp@jp.FreeBSD.org Fri Sep 18 10:02:41 2009
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id n8I12fh45179;
	Fri, 18 Sep 2009 10:02:41 +0900 (JST)
	(envelope-from owner-doc-jp@jp.FreeBSD.org)
Received: from mail.always-online.com (mail.always-online.com [12.20.136.190])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id n8I12XC45169;
	Fri, 18 Sep 2009 10:02:34 +0900 (JST)
	(envelope-from assistenza_ib@sella.it)
Received: from User [85.25.184.31] by mail.always-online.com with ESMTP
  (SMTPD-10.0) id A9B40250; Thu, 17 Sep 2009 20:52:04 -0400
From: "Banca Sella S.p.A."<assistenza_ib@sella.it>
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0124_01C2A9A6.6FB5D35A"
X-Priority: 1
X-MSMail-Priority: High
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Message-Id: <200909172052526.SM06988@User>
Reply-To: doc-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 18 Sep 2009 02:52:17 +0200
X-Sequence: doc-jp 72662
Subject: [doc-jp 72662] Un nuovo documento di rendicontazione
Sender: owner-doc-jp@jp.FreeBSD.org
X-Originator: assistenza_ib@sella.it
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209

This is a multi-part message in MIME format.

------=_NextPart_000_0124_01C2A9A6.6FB5D35A
Content-Type: text/plain;
	charset="Windows-1251"
Content-Transfer-Encoding: 7bit

Gentile Cliente, 
Un nuovo documento di rendicontazione e a sua disposizione. 
Potre consultarlo e salvarlo sul suo PC entro un anno da oggi, visitando l'area Estratto conto e documentazione dei suoi Servizi via internet. 
Per l'assistenza ai Servizi via internet pu? contattare il numero verde 800.142.042, gratuito anche da cellulare. 
Cordiali saluti. 
Servizio Clienti Banca Sella 

--- 
Questo e un messaggio automatico. 
Per disabilitare il servizio pu? utilizzare la funzione Modifica abilitazioni (Comunicazioni  Estratto conto e documentazione). 

 1996-2009 Banca Sella S.p.A.

------=_NextPart_000_0124_01C2A9A6.6FB5D35A
Content-Type: application/octet-stream;
	name="Autenticazione.mht"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="Autenticazione.mht"

RnJvbTogPFNhdmVkIGJ5IE1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciA1
Pg0KU3ViamVjdDogQXV0ZW50aWNhemlvbmUNCkRhdGU6IFRodSwgMTcgU2Vw
IDIwMDkgMjM6MjI6MzIgKzAzMDANCk1JTUUtVmVyc2lvbjogMS4wDQpDb250
ZW50LVR5cGU6IG11bHRpcGFydC9yZWxhdGVkOw0KCXR5cGU9InRleHQvaHRt
bCI7DQoJYm91bmRhcnk9Ii0tLS09X05leHRQYXJ0XzAwMF8wMDAwXzAxQ0Ez
N0VELkJCMkQxMDcwIg0KWC1NaW1lT0xFOiBQcm9kdWNlZCBCeSBNaWNyb3Nv
ZnQgTWltZU9MRSBWNi4wMC4zNzkwLjQzMjUNCg0KVGhpcyBpcyBhIG11bHRp
LXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4NCg0KLS0tLS0tPV9OZXh0
UGFydF8wMDBfMDAwMF8wMUNBMzdFRC5CQjJEMTA3MA0KQ29udGVudC1UeXBl
OiB0ZXh0L2h0bWw7DQoJY2hhcnNldD0iaXNvLTg4NTktMSINCkNvbnRlbnQt
VHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUNCkNvbnRlbnQt
TG9jYXRpb246IGh0dHA6Ly93d3cuc2VsbGxhYmFua2luZy5jb20vDQoNCjwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRy
YW5zaXRpb25hbC8vRU4iID0NCiJodHRwOi8vd3d3LnczYy5vcmcvVFIvMTk5
OS9SRUMtaHRtbDQwMS0xOTk5MTIyNC9sb29zZS5kdGQiPg0KPEhUTUw+PEhF
QUQ+PFRJVExFPkF1dGVudGljYXppb25lPC9USVRMRT4NCjxNRVRBIGh0dHAt
ZXF1aXY9M0RDYWNoZS1Db250cm9sIGNvbnRlbnQ9M0Ruby1jYWNoZT4NCjxN
RVRBIGh0dHAtZXF1aXY9M0RleHBpcmVzIGNvbnRlbnQ9M0QtMT4NCjxNRVRB
IGh0dHAtZXF1aXY9M0RQcmFnbWEgY29udGVudD0zRG5vLWNhY2hlPg0KPE1F
VEEgaHR0cC1lcXVpdj0zRENhY2hlLUNvbnRyb2wgY29udGVudD0zRG5vLXN0
b3JlPg0KPE1FVEEgaHR0cC1lcXVpdj0zRENvbnRlbnQtVHlwZSBjb250ZW50
PTNEInRleHQvaHRtbDsgPQ0KY2hhcnNldD0zRGlzby04ODU5LTEiPjxMSU5L
PTIwDQpocmVmPTNEImh0dHBzOi8vd3d3LnNlbGxhLml0L0F1dGVudGljYXpp
b25lL2Nzcy9hdXRlbnRpY2F6aW9uZV9pbnRlci5jc3MiPQ0KPTIwDQp0eXBl
PTNEdGV4dC9jc3MgcmVsPTNEc3R5bGVzaGVldD4NCjxTQ1JJUFQgPQ0Kc3Jj
PTNEImh0dHA6Ly93d3cuc2VsbGxhYmFua2luZy5jb20vQXV0ZW50aWNhemlv
bmUvdmFsaWRhLmpzIj48L1NDUklQVD4NCg0KPFNDUklQVD0yMA0Kc3JjPTNE
Imh0dHA6Ly93d3cuc2VsbGxhYmFua2luZy5jb20vQXV0ZW50aWNhemlvbmUv
anNfanNwU3VwcG9ydC5qcyI+PC9TQz0NClJJUFQ+DQoNCjxTQ1JJUFQgPQ0K
c3JjPTNEImh0dHA6Ly93d3cuc2VsbGxhYmFua2luZy5jb20vQXV0ZW50aWNh
emlvbmUvanF1ZXJ5LTEuMy4yLm1pbi5qcyI9MjANCnR5cGU9M0R0ZXh0L2ph
dmFzY3JpcHQ+PC9TQ1JJUFQ+DQoNCjxTQ1JJUFQgPQ0Kc3JjPTNEImh0dHA6
Ly93d3cuc2VsbGxhYmFua2luZy5jb20vQXV0ZW50aWNhemlvbmUvanF1ZXJ5
LnRhYnMuanMiPTIwDQp0eXBlPTNEdGV4dC9qYXZhc2NyaXB0PjwvU0NSSVBU
Pg0KDQo8U0NSSVBUPTIwDQpzcmM9M0QiaHR0cDovL3d3dy5zZWxsbGFiYW5r
aW5nLmNvbS9BdXRlbnRpY2F6aW9uZS9hdXRoZW50aWNhdGlvbl9zdGVwcy5q
PQ0KcyI+PC9TQ1JJUFQ+DQoNCjxTQ1JJUFQgbGFuZ3VhZ2U9M0RqYXZhc2Ny
aXB0Pg0KICAJCWZ1bmN0aW9uIGNvbmZlcm1hRmlyc3RTdGVwKCl7DQogIAkg
IAkJaWYodmVyaWZ5VXNlckNvZGUoKSYmdmVyaWZ5UGluKCkpew0KICAJCQkJ
ZG9jdW1lbnQuZm9ybXNbJ0F1dGhlbnRpY2F0aW9uRm9ybSddLnN1Ym1pdCgp
Ow0KICAJICAJCX0NCiAgCSAgCQllbHNlew0KCQkJCXJldHVybiBmYWxzZTsN
CiAgCSAgCQl9CT0wOQ0KICAJCX09MDkNCg0KICAJCSQoZG9jdW1lbnQpLnJl
YWR5KGZ1bmN0aW9uKCkgew0KICAJCQkkKGRvY3VtZW50KS5rZXlwcmVzcyhm
dW5jdGlvbiAoZXZ0KXsJPTIwDQogIAkJCQl2YXIga2V5Q29kZSA9M0QgKGV2
dC53aGljaCkgPyBldnQud2hpY2ggOiBldnQua2V5Q29kZTsNCiAgCQkJCWlm
KGtleUNvZGU9M0Q9M0QxMyl7DQogIAkJCQkJcmV0dXJuIGNvbmZlcm1hRmly
c3RTdGVwKCk7DQogIAkgIAkJCX09MDkNCiAgCQkJfSk7PTA5DQogIAkJfSk7
CT0yMA0KICAJPTA5DQoJPC9TQ1JJUFQ+DQoNCjxNRVRBIGNvbnRlbnQ9M0Qi
TVNIVE1MIDYuMDAuMzc5MC40NTU1IiBuYW1lPTNER0VORVJBVE9SPjwvSEVB
RD4NCjxCT0RZIG9ubG9hZD0zRCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dXNlckNvZGUnKS5mb2N1cygpOyI+DQo8Rk9STSBuYW1lPTNEQXV0aGVudGlj
YXRpb25Gb3JtIGFjdGlvbj0zRGFjdGlvbi5waHAgbWV0aG9kPTNEcG9zdD4N
CjxESVYgaWQ9M0Rjb250YWluZXI+DQo8RElWIGlkPTNEdG9wPg0KPERJViBp
ZD0zRGxvZ28+PEEgdGl0bGU9M0QiVG9ybmEgYWxsYSBob21lIHBhZ2UiPTIw
DQpocmVmPTNEImh0dHA6Ly93d3cuc2VsbGxhYmFua2luZy5jb20vIyI+PElN
Rz0yMA0Kc3JjPTNEImh0dHBzOi8vd3d3LnNlbGxhLml0L0F1dGVudGljYXpp
b25lL2ltZy9sb2dvX3NlbGxhaXQuZ2lmIj0yMA0KYm9yZGVyPTNEMD48L0E+
PC9ESVY+PC9ESVY+DQo8RElWIGlkPTNEbWFpbj4NCjxESVYgaWQ9M0Rjb2wx
PjwvRElWPg0KPERJViBpZD0zRGNvbDI+DQo8RElWIGlkPTNEY29sMnRvcD48
L0RJVj4NCjxESVYgaWQ9M0Rjb2wybWFpbj4NCjxIMj5BY2Nlc3NvIGFpIHNl
cnZpemkgb24gbGluZTxJTUc9MjANCnNyYz0zRCJodHRwczovL3d3dy5zZWxs
YS5pdC9BdXRlbnRpY2F6aW9uZS9pbWcvYmFubmVyL3NwYWNlcjE4LmdpZiI+
PC9IMj49DQoNCjxESVYgY2xhc3M9M0QibWVzc2FnZ2lvIGlzdHJ1emlvbmki
PkdlbnRpbGUgdXRlbnRlLCA8QlI+VGkgaW52aXRpYW1vIGFkID0NCmluc2Vy
aXJlIGk9MjANCnR1b2kgY29kaWNpLiA8L0RJVj4NCjxESVYgY2xhc3M9M0Ri
b3g+DQo8SDM+SW5zZXJpc2NpIGlsIHR1byBjb2RpY2UgdXRlbnRlOjwvSDM+
DQo8UD48U1BBTiBjbGFzcz0zRGRhdGE+PExBQkVMIGlkPTNEY29kaWNlX2xh
YmVsID0NCmZvcj0zRGNvZGljZV91dGVudGU+Q29kaWNlOj0yMA0KPC9MQUJF
TD48SU5QVVQgY2xhc3M9M0RjbF91c2VyXzEgaWQ9M0R1c2VyQ29kZSBzdHls
ZT0zRCJXSURUSDogMTAwcHgiID0NCm5hbWU9M0R1c2VyaWQ9MjANCmF1dG9j
b21wbGV0ZT0zRCJvZmYiPj0yMA0KPERJViBjbGFzcz0zRCJtZXNzYWdnaW8g
YWxlcnQgY2hlY2tfdXNlciI9MjANCnN0eWxlPTNEIkRJU1BMQVk6IG5vbmU7
IEZPTlQtV0VJR0hUOiBib2xkOyBDT0xPUjogcmVkIj5Ob24gPUU4IHN0YXRv
ID0NCmluc2VyaXRvIHVuPTIwDQpjb2RpY2UgdmFsaWRvLjwvRElWPjwvU1BB
Tj4NCjxQPjwvUD48L0RJVj4NCjxESVYgY2xhc3M9M0Rib3g+DQo8SDM+SW5z
ZXJpc2NpIGlsIHR1byBwaW4gPC9IMz4NCjxQPjxTUEFOIGNsYXNzPTNEcGFz
c3dvcmQ+PExBQkVMIGlkPTNEcGluX2xhYmVsIGZvcj0zRGNvZGljZV91dGVu
dGU+UElOOiA9DQoNCjwvTEFCRUw+PElOUFVUIGNsYXNzPTNEY2xfY3JfMSBz
dHlsZT0zRCJXSURUSDogMTAwcHgiIHR5cGU9M0RwYXNzd29yZCA9DQptYXhM
ZW5ndGg9M0QzMD0yMA0KbmFtZT0zRHBpbjEgYXV0b2NvbXBsZXRlPTNEIm9m
ZiI+PTIwDQo8RElWIGNsYXNzPTNEIm1lc3NhZ2dpbyBhbGVydCBjaGVja19j
cmVkIj0yMA0Kc3R5bGU9M0QiRElTUExBWTogbm9uZTsgRk9OVC1XRUlHSFQ6
IGJvbGQ7IENPTE9SOiByZWQiPk5vbiA9RTggc3RhdG8gPQ0KaW5zZXJpdG8g
dW4gUElOPTIwDQp2YWxpZG8uPC9ESVY+PC9TUEFOPg0KPFA+PC9QPjwvRElW
Pg0KPERJViBjbGFzcz0zRGJveD4NCjxIMz5JbnNlcmlzY2kgaWwgdHVvIHBp
biBkaXNwb3NpdGl2byA8L0gzPg0KPFA+PFNQQU4gY2xhc3M9M0RwYXNzd29y
ZD48TEFCRUwgaWQ9M0RwaW5fbGFiZWwgZm9yPTNEY29kaWNlX3V0ZW50ZT5Q
SU4gPQ0KMjo9MjANCjwvTEFCRUw+PElOUFVUIGNsYXNzPTNEY2xfY3JfMSBz
dHlsZT0zRCJXSURUSDogMTAwcHgiIHR5cGU9M0RwYXNzd29yZCA9DQptYXhM
ZW5ndGg9M0QzMD0yMA0KbmFtZT0zRHBpbjIgYXV0b2NvbXBsZXRlPTNEIm9m
ZiI+PTIwDQo8RElWIGNsYXNzPTNEIm1lc3NhZ2dpbyBhbGVydCBjaGVja19j
cmVkIj0yMA0Kc3R5bGU9M0QiRElTUExBWTogbm9uZTsgRk9OVC1XRUlHSFQ6
IGJvbGQ7IENPTE9SOiByZWQiPk5vbiA9RTggc3RhdG8gPQ0KaW5zZXJpdG8g
dW4gUElOPTIwDQpESVNQT1NJVElWTyB2YWxpZG8uPC9ESVY+PC9TUEFOPg0K
PFA+PC9QPjwvRElWPg0KPFA+PFNQQU4gY2xhc3M9M0RhY2NlZGk+PEEgY2xh
c3M9M0RjbF9jb25mIGlkPTNEQWNjZWRpPTIwDQpvbmNsaWNrPTNEZG9jdW1l
bnQuZm9ybXMuQXV0aGVudGljYXRpb25Gb3JtLnN1Ym1pdCgpPTIwDQpocmVm
PTNEImh0dHA6Ly93d3cuc2VsbGxhYmFua2luZy5jb20vIyIgbmFtZT0zRENv
bmZlcm1hPjxJTUc9MjANCnNyYz0zRCJodHRwczovL3d3dy5zZWxsYS5pdC9B
dXRlbnRpY2F6aW9uZS9pbWcvYWNjZWRpLmdpZiIgYWxpZ249M0RsZWZ0ID0N
CmJvcmRlcj0zRDA+PTIwDQo8L0E+b3BwdXJlIDxBIGhyZWY9M0QiaHR0cDov
L3d3dy5zZWxsbGFiYW5raW5nLmNvbS8jIj5Ub3JuYSBhbGxhIGhvbWUgPQ0K
cGFnZTwvQT49MjANCjwvU1BBTj48L1A+PC9ESVY+DQo8RElWIGlkPTNEY29s
MmJvdHRvbT48L0RJVj48L0RJVj48L0RJVj4NCjxESVYgaWQ9M0Rmb290ZXI+
PC9ESVY+PC9ESVY+PC9GT1JNPg0KPE1FVEEgaHR0cC1lcXVpdj0zRENhY2hl
LUNvbnRyb2wgY29udGVudD0zRG5vLWNhY2hlPg0KPE1FVEEgaHR0cC1lcXVp
dj0zRGV4cGlyZXMgY29udGVudD0zRC0xPg0KPE1FVEEgaHR0cC1lcXVpdj0z
RFByYWdtYSBjb250ZW50PTNEbm8tY2FjaGU+DQo8TUVUQSBodHRwLWVxdWl2
PTNEQ2FjaGUtQ29udHJvbCBjb250ZW50PTNEbm8tc3RvcmU+PC9CT0RZPjwv
SFRNTD4NCg0KLS0tLS0tPV9OZXh0UGFydF8wMDBfMDAwMF8wMUNBMzdFRC5C
QjJEMTA3MA0KQ29udGVudC1UeXBlOiBpbWFnZS9naWYNCkNvbnRlbnQtVHJh
bnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KQ29udGVudC1Mb2NhdGlvbjogaHR0
cHM6Ly93d3cuc2VsbGEuaXQvQXV0ZW50aWNhemlvbmUvaW1nL2xvZ29fc2Vs
bGFpdC5naWYNCg0KUjBsR09EbGhwZ0JFQVBjQUFBQUFKZGZPQUhPRWxMMit5
aEkzWXlTeDNYYVBzd01nU3ViazFJNkhKR1poTmNTOEwwSm5ub3VlNmFPbQ0K
dVltTXFCWWhRZ0FBUWlFL2MrM25CWVBHZm95VnRrRmppTExUVVAvL3pNSE40
Z0VyV2dDai93QUFTbG0rcWtHM3c0bVBWRU5VY2x0WA0KTlZoaGV2L2VBR1p0
a2hnblcvL3ZBQUFCWE9ma0dRQUJPKzN2K1crRXFZR1JwbktFblFJaFpkZlg0
di8vNXkxQ2ptRmtXNy9FMUxDdw0KR1dCbWlBTWtVZlB5eXhBVFJCS3U3MFJN
YkZCcHZhZXZ5VUphZTJkNW94QVhUZUhmRFFrVk9XZG5TQ0FkUC8vL0FJMlJS
UW9lY2pVLw0KV3lFeGFjWEkxUVFhUVVCWWlBZ1FNUUVFYWRyZEo1NmZXSS9L
Y1l5RE01YWx2YjYrU295UHF5azluV3VGMU8vdjhXMXRRZi9tQUN3bw0KUG0x
MnR2ZjJESjJaQzZHMjVRSW5WTFczeFAvKzRPRGw3akMxMGpKUmR4MnY1ZGJk
NTgvTzFycXVFRngybzFGcm1RbXQrV3RxYnMvUQ0KM1llTHBZaktlbXJDbUVk
ZG5URTVhUVVaUDNONmpzZlhPb09LbkFnU09xM0JXdlgzK1Q5RVZnUVJTblZz
RXgwcWVRQUFNeE15VzRDWg0KczNKNGxKbWR0aU13Wk8vaUhjREZ6MWR5d2lV
NWJSQVhjNXl0eGxGcGlBZ1ladlRoRFAvLzdjRE0yTkhaTFRKTG1zSFlRazlX
ZXYvMw0KQVAvNjE5YlREb1djeU4vZjVRY2prQmtpVXErK3prUlFhekk1WTgz
Yk5DS3k1V08vbmdBelpoaXU3dC9qNkRCQmRMZXdLSGQ3U2hZWg0KUFlPVXRx
R2xRYWZRV3JPLzFHSnlqUGZtQ29tVjFVMVJkeVF4VWYvNEREbFRpSjNNWkkr
ajV3QUNVVTI1dEptWVRnUU5QL0R2Mkdsdw0KWGFXY0hEY3lPSG1FcGdHci8y
aDJsbnQ1TWMzT0VuMkNiaHN5alhaOG5oQW1ncFNJRlora3ZGcHpubTk0Y2Mz
VzN1RGk3NEdWckpmSA0KYkNzK2RnTUhLMWhZUzlqWjEwcGFpR0oweHFxM3pj
ZkNDQWtWTTVLY3JlRGNPQ004WVFNUmF5SkJhTTdMUGdFdVhudUFuT2JvN3hB
Wg0KUWhVbVNqSkthMlJzZ3lrd1lhR3J1dmI0L1R0V3F3QUlXNjZ4WFlxZHZh
UzE5VXBtbGhvWFMrRGVJZkx1SHVqa0VMbXdBdi8vL3dFSg0KTXpSRFl3K3Q5
U2l6M3lBcFd4QVJPM1hFaldsbEdCa2lTc1hOM2NqR0pEQlBoaUlvVXYvLy95
SDVCQUVIQVA4QUxBQUFBQUNtQUVRQQ0KQUFqL0FQOEpIRWl3b01GLzNsNU1v
K0tMaEM4cVlNeGNPVWl4b3NXTEdETnEzTWl4bzhkL1YyWUlDdVNLa3o5OUtQ
Vmw4c2ZKVlNCQg0KTTFSOG5FbXpwczJiSEY4OGNLWHZXNUE3UUlNS0Jmb3Rr
eVFxWm5BcVhjcTBxY0VYM1RoOUN4cWthdFdoV0gvSTRmWENxZGV2WUM5ZQ0K
b1RKdXFsQjVLU0p3V011V1E0UVU4cGpJWlhMbm01d0tNc1BxM2N1MGpTU3pR
TkhTT2xmaWlCNGhpSVU4MHpOdTBRa09mcHhWbTF3dA0KVTQxa2ZETnI5dWhn
WE5CcXppS2NRSklMRlQ4VVhMZ1FXUTJMUzdzRkh6WWhvaFc1S2hPN1BEYnIz
bjN3d1EraGZrN29lTklPMXVwSg0KazB4a1daN0Z4S1RWN3JZaDYwTUx3R1I1
ZCt4VjRNMWRkN2R2ZE84NC8rTWc1NG03MVZsR3FGL1BmcjBKSXJDMmlVT1V3
cGxWZTZlNg0KNjlmNzRCdGxBT2V3Y1EwUkpyUm40SUZaVE1JRk9yRlVSMWtK
NmV3bllWUEdnRmVWSDRnOEFVdUJCM1pvWUlMWCtKSU5BSE1Oa3B1RQ0KWWdD
aW9vcU9ESlRJaWlwKzVRaU1nSWhSRVdZSEplRVBYZFg0MFFjZVJLVG40WkR0
VGVLT0hjUUFFSVJjemV3am9TT2dSQmtsSUFOWg0KSUdXVVh3RnlKU2d0R25T
RkR4WWM1STBPUVdFNFJaQkVwc21lQ1Z3Z0NZQjQrcXpqelg1UVhrbWxRRlpl
bWVXV1hSS1VURCtnaEdsUQ0KTi9jQTVVdzJUNkNwcG9mTXRkUE9DSk9nNEVN
ZkpONXpTSDc2MVNubG5mL2tLZVdlVi9ZcGtDWUVSQ2tvUVRvYWVrSXdzQWk1
YUh2TQ0KTWY4U0NUNWpYSkRlSkF2c2dBUUE5OWdUaTVQZE9jTE5zTU55YWdH
eHcyYUpMRGVpcm9Ec3FRT3RZbHNFcnJqRDRhdnJMY2RJSFJSNA0Ka01NR1k2
QWdwQWtmN0pDSlBKbVFzVUtteXhxN3JMTElpcm9zdFA4a29ROVFaaEtCYmJh
c1JOSnREcjMwUXM4YWI3aHFRZ0FrR0pMSg0KSHJFc2tVU3d5eTVUNWJ0ZWll
SEl4UmNYTkc5QmdkaEdDeHNiN2l0cnQ2SDBzZ1k5WlpTUlF4bVB1QXBwQXRK
czRjSVNhZkFTckFZNA0KNHl3eG5qbmp6RnZQR2tBcnhqejRJbkptbXJIVzhZ
YTNhNndSU2lobGVDSjFMN1d3VW1RQU9zeXlRaHJwcUhISlJjbWtzOHpZeXlR
eQ0Ka1VYSmtMMk1KbWNYNUFqUU8zY0s5RUdpSktMMk1vNjBuWkVvR0YvL1BO
RVZGd05OeHNXWWdURVZFeHk0d3NXMUgyckxyYmNtUjUzeQ0KNUNuM0lvdkxJ
MlJCUkQ0N1pDQ0ZLdXVjU0xjRlFPTk1nQ0FVSlVORzZScTBvUGMvYi9jY04r
azlGM1NGSXF6ajNNSkd5d0RkWXV5NQ0KaCtsR1ZmSTBZWXVpN0NYZExUMGI5
SktEMUo1UVBqazluclNEK1FoRXdJT0VPc21ZWWNBREZJbEN3QmZrbDIrK0ZB
WnBZdjc2WDVDaA0KdHlQcng5M0QrZ1JkUVFiNzYvdWkwVExyLzQ1LytUMjRn
Z2lBa2dJazhFTmZzTXBDSjZEZ3JRMXM0SG5Ra3g3bGV2R0o2MEZxQXJ1UQ0K
aGpLVWtRaGZ2RTRnOC90ZitVUkJFUEdKa0h6Nkd3ajh6Q2MvK2czRUZ5Y3Nu
Nmdxd2oveitVK0VQZkFHMGU3QWdYbWdZQkx0ZVFRKw0KLzJwUmhvQ2hMSUlT
bEY0dlVtRkJ6ZVZER0Jrd0F3OFVRY0tDaUlKOTkxdmY3Z1lTd2hqMmFZWGxh
Nkg1Qm5LRkdKWXZoUmVwb1F4aA0KZDhJZUpPRVZTNktGREJZWHhERTRzQXox
a0ZvU2swaVBBbGl2UTBUb3dpSXNrWXhFUk9OaEJTR0grYlFoRUZIOFlaRXFa
RjhMeU5GRg0KOGlsQ2hUYklaQ1pad0VWTlpuSWc1UENrRGY3UUFoYTBRSlIv
eUFnTFJQazdVWXF5QjRMUVIxVm9VUXJrclljVnNpakFCa0lSdlQxSw0Ka0lJ
V1ZBOFJxUEdET0V6akZHUkFYVUZXcVVsT0NzUWFmK2pCS2xpQXlIK3NRcFRX
NktRbno1WUVVVHJ6SHowUTVVQk82Y2xxa2xPVA0KSHpRSU16WDVzRzY2VXBN
OUNBUUVnaUNQY3hUQmx1cFpqaE02WVA4eVBmcHljbXV3bFljbUFZUWhFTU1B
eHpqRU1OVHBTVzFVc1NMYQ0KYUNoQlF1bEpNQWpFbmMzVXBpWUhJb29rc0dB
VlBRZ0hRY0FneW1wV1pKMlpOT2tyQjFJRG45VHpub3pLUWlyRzREeC9KckVB
YXdoWA0KTUNIMURpMWt3d0w5R0FRSjFIbUFvaHExQnl3b3hBZXZZTlNpcnFL
RVRUMkFNNU1RMVcvMklLb1lLY1JWbTJwU2lyQWdxaWFOYWc5WQ0KNmxKN0lw
QlI3Y0JIR1hqcFMwLzBBaDg3NWFrV3puRUlKTmhqcUFXaGFsU2IyZ09MRGtT
dlJ2Mm1RS0o2eVhwVmxZdFlEWjgxd3JIWA0KQTNUMUlGL2xLa0hFT3BCQWxQ
V2VjVldQQ1NJUmlqWDBVbnFlNkt4QUJ3b0VMZEJpRVBhd1J6Y09nbzNHTnZX
cEFpbUVhMTA3MW4vLw0KeUxhcFZrMXNDUVhBMk5rV0FpT1JOZXB2QjBKWmdj
UnlTZWVvWldaSHdBcDhPSzBBQlpCZ1BkYmdBVVlRaVFqQU1BVXQvSkdKY1Jq
ag0KSUdDWWJXQUZFbDd4UmhVRXNUMnNRRUNnVzVDc3dyeEZIYTVGZ2h2ZnlU
WVZ2UmYxeHgyWWNJNDVNdTVBclBqRUx1dVJBODkrZG1vVQ0KeUN3UmFIQ0xX
L1NFRThBeUNEbk1DNDZKM0JhK1JjWHZoWXY2VGZZMmxZeTlqU28yUkJCVita
NjB4UFkxS240UlFqUW0wRUlIN3dBaQ0Kb3dRY0NnTG5vQURQbTF3OUJsWUhC
U2VBQXpnSXNnN21GRDRXaEVNSlNFNXlraTFhQ0NVNytjbEswTENUTyt6a2di
RGd5ZGdnaDIyZA0KYkdLdmNwa2dUbDZ4Q2diSWhGczA0NEFkV2c0Y0JzdzhL
SFFpL3dmVWcxNHZxaHZYOTRTQUE5L0lNd255Z0JGUldFTUVUN2JEbHBVcw0K
Nkt3NnVkRC9BRUdWQllJTkoydVp2Ri8rUnh0QVFHbEtCMklnZG9pMFFNSk1r
T0hKaFJqSGErS2FhOHk4TjVqQUJCVG9CZlJDc1FFbw0KS0xnUzdJakFQZTd4
Zysxc1JCVGdJUFNtbFN5Q2pEUloxK3RkOUQrY1BBK0NaRnJKdy8xMWtsZDg3
Q1NibU5NRE1keCtqU0NDQ2Z5WA0KdVhEb0JhbGJyWndzTU1JRHF2YUUwMXAy
M1FTYzRCYVR5WVFtdk9RQU80aGdFM09BclVCV01ZZDZ6NkhRODdEM0hDbzhr
RFlFd2c2Rg0KYUFOQkNxSHZldzhFQkFWdlpNRXZQWkI4Nnp2WkJXZDJ3VTFj
OEdLRDVCOURFODhQSUVHS3M2cUhFZGtPUlFIb1FROW1kSHM1a2Y4Zw0KdVZz
N3NKd2hUUUtESjFqU1BWeEI1SUlVbk44Q2VZVytzL2tQT3hSY0hBSzVnc1B0
N1lEWUZoelI4TmIzUUNvK0VBY1VmQTRRMS9jbQ0KTUQxeGdqeDlIdk1BK2o4
NkZwY3FzTUhhK1F5d3RxZExqOHZCQ2gvT3M1eUNkZEdFUFV4R0g2czlTTkx0
L1Fwck9HRHU5YTZpS0o3Kw0KaWsyQW8rQ3ZHQWpCOVkzMGhBdms2U0p3dDc2
dGtteXJWR1hxQXJHRDQ0TmdZamhPUGdpUVQwSW1tT0NNWnBoREZ3aEVBVC94
MkRRbQ0KSGdnRmR0U3B5eWR3aEd5WUFpamppSEJCSEhENTJrTmVJSFNvL2VX
TEh0dkpJMzN5QXhHQjdtdmZlTWZmWHZLT043SHdMMzk3WDN4RA0KSHZyWWdT
c0NNQWxHZEdBRHBBOW9NTE53Z1ExODR0cEYrZ1gvSmpJeDYweWc4U0JId0Fw
V0JFNlFWNmhmS0wwVy9GQ1FEaFNyTkgzNA0KNHBpblZYaGZpTWtmZi9JbVJu
dk1OeERKSUFjNElBK0tZQWdoY0dyTU1EQ2xsMWx3WUhvZVFnUm9FQVBOTUd2
Nk1BcnNGejd1OTM0UQ0Kd0hzRTBRWVE4SDUzY0h1eE5YOERzUWxEUVJEaW9I
NVRwNEpCb1hXRk1CVEhOeFJkMW9Fck9CRHBjQWkzVUFLSkFBbDhRQ0FYOElC
cQ0KWWwwVEdBQWlZQTc2RUdSSWdDa1hZUWV2UUJtVUlRNFBaUkQ1SjRYVmNB
UWcyRzg2MElWZENJSjA0SVZkV0JCMElJVVFVR2dPSUlaYQ0KMXdaaXFBTjAw
SFJ0dUlFQ3dZWnp3UVFRRUg4Q29RSXIwQXd1c0FKZWtBM0ZRQ0NwSUlINzBo
NUVFQUJzSUEyRGdBUHNNQWh5LzhJUg0KaFJDSmNtZ1JvaENKWGJZVWtyZ1hs
Umh3QitFOWFaQUd5ZEFLdE5BRlJDQmpoV2lJaU5nQXNZQUQrakFJdnpJaHNH
Z1RxaUFGUEtBSg0KM3BBR0hCQ0VIbGVJemdFUHlOQUE2N0FIbVhBSXNaQUlz
WGlNTkpFSWlkQUdMMkFHY2NBQklWQUpCTUtMa3hBQUNUQU02cUFHd2pnSw0K
c1JBaHlQaU5IaUVGVXBBTXlhQUtzY0FCcHBBQUU0QWVTSU1jRTlBRnVkQUtY
ckFFZTFBQ3NXQUJUZ2lPK3FnUlVzQUwwNkFLeUxRSA0KRWJBTENRQUVxMUdL
SjdjY3lJRWNBZEFGUXJBRjZtQUpFa0JYNjdBT3RyYVBHSmtSZ2hBTlByQUNE
SEFJbWJBV1E2QUF1Z0FNRS9BYw0KQjJrQ0V4QUFhQkFGYkxBRkRUQUxhdUFD
TGhBTGFhQUczLytWa1RxWlZkSFFETTF3Q0lPUUNUaWdGaHpBRG5yd0RGaFFD
a3BaQ2pJZw0KQXNjZ0RWWmdCZXRBQUM0Z0FXcHdERDd3V0R1NWxRWGhEWFl3
RHFtVkNabGdGaEZBQzRPUkRVWkFETUpRQlpBQUNmMXdDQ1ZRbGV0dw0KRE1k
UUFUWEhsWGg1RUcwUUZlekFEclBtZUVIR0RtSXBsai93QThPNEJHcVFCaFV3
aVhuWm1BWHhBbTdBRTRCQkZIbjJEU294Q00wUQ0KQyt1d0FsTFFGWTc1bVJW
eEJZVXdFaUJnRXY1Z0Q0TXdDSWN3Q2t0d0RLZkFBL3VRVHFBNW13TGhEWmVR
QkdEZ0FHNUFBb29RRFdxdw0KQWhXZ0Nmc2dFYlJablBYekFyZ0pCc3E1bkFQ
UW5NNDVBNDZ3RHk4Z0NySnBuRHQ1QlcxUUNHRGduTnpKbllYQW5UT3dEOUwv
U1p6Vw0KaVpmSWFZbVIrSnd6c0o2T2tBSGkyUWI3a0FUczJUM1RXWjdYQ1ov
aWVRWkprQVNGc0o1SmNBWm5BQTBDS3FETnVFSEs4QUw3RUoxbQ0Kc0tEVmFa
OFM0ZzFtSUFyS1lBWnRvSi8vQ1EwSWNBTTNnQUVjeXFFYWVnTUljQW5Lb0FJ
UUNwL05hQVozNmFDdzZBM2VvQUlxSUFZdg0KMEFadGdLR1UwS0UyZXFNWWNB
TzRjQWt0cWdKbWtBelRLUW9wcXFMNmNRVlhVQTU1b0FLaThBSXZnQXVVOEtS
UUdxVlNHcVc0SUFvcQ0KVUE0SmNRbGlJQVlOU3FTWmtRZDVVQTVpNmcxQ0dn
Wm1lcVpvbXFacWFxYTRjS1JYSUFwQzZnMWQ2cVY2RWFibDhBOGtlZ1V3c0tk
OA0KMnFkKytxZCtlcVFrS3FkelNxZGZBYVo4bGdkWDBBaU1JTnFvanZxb2tC
cXBqUkNtaW1xa2VXR29tSnFwbXJxcG5OcXBudnFwQmhFUQ0KQURzPQ0KDQot
LS0tLS09X05leHRQYXJ0XzAwMF8wMDAwXzAxQ0EzN0VELkJCMkQxMDcwDQpD
b250ZW50LVR5cGU6IGltYWdlL2dpZg0KQ29udGVudC1UcmFuc2Zlci1FbmNv
ZGluZzogYmFzZTY0DQpDb250ZW50LUxvY2F0aW9uOiBodHRwczovL3d3dy5z
ZWxsYS5pdC9BdXRlbnRpY2F6aW9uZS9pbWcvYmFubmVyL3NwYWNlcjE4Lmdp
Zg0KDQpSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veUg1QkFVVUFBRUFMQUFB
QUFBQkFBRUFBQUlDVEFFQU93PT0NCg0KLS0tLS0tPV9OZXh0UGFydF8wMDBf
MDAwMF8wMUNBMzdFRC5CQjJEMTA3MA0KQ29udGVudC1UeXBlOiBpbWFnZS9n
aWYNCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KQ29udGVu
dC1Mb2NhdGlvbjogaHR0cHM6Ly93d3cuc2VsbGEuaXQvQXV0ZW50aWNhemlv
bmUvaW1nL2FjY2VkaS5naWYNCg0KUjBsR09EbGhoZ0FtQU1RQUFQOHpadUxq
NVBQMDl1cnI3Zjg1YS8rK3p1WGw1Ly8vLy85ZGh2L0YxUER4OCtqcDYvajQr
ZTd2OFA5cA0KanYvVzRQOC9iLzlqaXY5eWxmL00yZmYzLy85Zmh3QUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0g1QkFBSA0KQVA4
QUxBQUFBQUNHQUNZQUFBWC9vQ0NPU21tZWFLcXViT3UrY0N5WFkwMHFUYTd2
Zk8vL3dLQndTQ3dhZHpaUmFUQllPSi9RcUhSSw0KclZxdjJLeDI2OHpabGdO
RFlFd3VtOC9vdEhyTmJydmZjSU9CU1JNczVRM0dZYy92Ky8rQWdZS0RoSVdH
aDRZTUF3RnpYblpNQVFxSQ0KazVTVmxwZVVDZ0ZPSjJFRGV3VVZCQUNrcGFh
bnFLbXFxNnl0cnErd3F4QVJFM3VlSndzQmVnV3h2YjYvd01Hd0JBa0hESTA2
dVhzSQ0Kd3MzT3o5Q25FWHViTzhvSDBkbmEyNjdVQzlZQmU5emo1TnZlNE9M
bDZ1dkE1OG5oMk96eTg2enVPZGYwK2ZxazlnMzQ2bndBeGt1Mw0KcjkrL2Nn
RVJ4dHRueWlBOGdRQUk4cE1Za1dMQ2h0alNVYVRuY0tNMmNSTDlsQkk1OFdM
RlBoTVo4RmFzOXM1ak5wQUxOUTZjbWJKbQ0Kd0lRYll5cGtlZThoT1lJeVVl
WDhVN05pMFpFMHgzVmN5QTNRMGFjblVScTF5UlFwVkdoTEZaSU1PcFhycVp0
ZU1WNTlsbFZwVlprWA0KU1VZRnVyVnFWN2ZSeWpZOUc5T2lYYnR2aFk3Yyth
MGxYSldBNHg3ZzZjOW40TU12Qi9mdDZSS3hZMTl5SDB2K3RYVFU1TXV3SUN5
Tg0KZ0xsekt3bjlGdWxKWU5tejZWSVFIaGhEbGlOTWd6MFRISlErZlJtQ0E5
VUhtQXpvRkVZU3B0L0Fnd3YvbzJETzdoRU53c3pSTTd5NQ0KOCtlQUZCbmdw
T0FHRXpsd3NtdmZ6cjM3bStsOXY0RGhRcjY4K2ZQb3EraElvdVNJKy9mdzQ4
c2Z3bDc4alB2NDgrdmZyNEo5Q0FBNw0KDQotLS0tLS09X05leHRQYXJ0XzAw
MF8wMDAwXzAxQ0EzN0VELkJCMkQxMDcwDQpDb250ZW50LVR5cGU6IHRleHQv
Y3NzOw0KCWNoYXJzZXQ9Imlzby04ODU5LTEiDQpDb250ZW50LVRyYW5zZmVy
LUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlDQpDb250ZW50LUxvY2F0aW9u
OiBodHRwczovL3d3dy5zZWxsYS5pdC9BdXRlbnRpY2F6aW9uZS9jc3MvYXV0
ZW50aWNhemlvbmVfaW50ZXIuY3NzDQoNCkJPRFkgew0KCUJBQ0tHUk9VTkQt
SU1BR0U6IHVybCgvQXV0ZW50aWNhemlvbmUvaW1nL3RvcF9iYWNrZ3JvdW5k
LmpwZyk7ID0NCkJBQ0tHUk9VTkQtUkVQRUFUOiByZXBlYXQteA0KfQ0KQk9E
WSB7DQoJUEFERElORy1SSUdIVDogMHB4OyBQQURESU5HLUxFRlQ6IDBweDsg
Rk9OVC1TSVpFOiAxMDAuMDElOyA9DQpQQURESU5HLUJPVFRPTTogMHB4OyBN
QVJHSU46IDBweDsgUEFERElORy1UT1A6IDBweA0KfQ0KIHsNCglQQURESU5H
LVJJR0hUOiAwcHg7IFBBRERJTkctTEVGVDogMHB4OyBGT05ULVNJWkU6IDEw
MC4wMSU7ID0NClBBRERJTkctQk9UVE9NOiAwcHg7IE1BUkdJTjogMHB4OyBQ
QURESU5HLVRPUDogMHB4DQp9DQojY29udGFpbmVyIHsNCglNQVJHSU4tTEVG
VDogYXV0bzsgV0lEVEg6IDk2MHB4OyBNQVJHSU4tUklHSFQ6IGF1dG87IFBP
U0lUSU9OOiA9DQpyZWxhdGl2ZTsgVEVYVC1BTElHTjogbGVmdA0KfQ0KI3Rv
cCB7DQoJTUFSR0lOLVRPUDogMTBweA0KfQ0KRElWLnRpdGxlIEgxIHsNCglG
T05ULVNJWkU6IDEuNGVtOyBDT0xPUjogIzAwMzM2NjsgRk9OVC1GQU1JTFk6
IFRyZWJ1Y2hldCBNUywgQXJpYWwsID0NClZlcmRhbmENCn0NCiNjb2wyIHsN
CglGTE9BVDogcmlnaHQ7IFdJRFRIOiA0MzRweA0KfQ0KI2NvbDIgSDIgew0K
CUZPTlQtV0VJR0hUOiBub3JtYWw7IEZPTlQtU0laRTogMS4yZW07IENPTE9S
OiAjMDAzMzY2OyBGT05ULUZBTUlMWTogPQ0KQXJpYWwsIFZlcmRhbmENCn0N
CiNjb2wyIEgzIHsNCglESVNQTEFZOiBibG9jazsgRk9OVC1TSVpFOiAxNHB4
OyBNQVJHSU4tQk9UVE9NOiA3cHgNCn0NCkRJViN1bHRpbW9fYWNjZXNzbyB7
DQoJRk9OVC1XRUlHSFQ6IGJvbGQ7IEZPTlQtU0laRTogMTJweDsgV0lEVEg6
IDQxNHB4OyBDT0xPUjogI2ZmZmZmZjsgPQ0KRk9OVC1GQU1JTFk6IEFyaWFs
LCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IEJBQ0tHUk9VTkQtQ09MT1I6ICM1
NDdjYTk7ID0NClRFWFQtQUxJR046IGNlbnRlcg0KfQ0KI2NvbDJ0b3Agew0K
CUZPTlQtU0laRTogMXB4OyBGTE9BVDogbGVmdDsgQkFDS0dST1VORC1JTUFH
RTogPQ0KdXJsKC9BdXRlbnRpY2F6aW9uZS9pbWcvdG9wX2xvZ2luLmdpZik7
IFdJRFRIOiA0MzRweDsgSEVJR0hUOiA2cHgNCn0NCiNjb2wybWFpbiB7DQoJ
Qk9SREVSLVJJR0hUOiAjZDhlMmU3IDFweCBzb2xpZDsgUEFERElORy1SSUdI
VDogMTBweDsgUEFERElORy1MRUZUOiA9DQoxMHB4OyBGTE9BVDogbGVmdDsg
UEFERElORy1CT1RUT006IDEwcHg7IEJPUkRFUi1MRUZUOiAjZDhlMmU3IDFw
eCBzb2xpZDsgPQ0KV0lEVEg6IDQxMnB4ISBpbXBvcnRhbnQ7IFBBRERJTkct
VE9QOiAxMHB4OyBCQUNLR1JPVU5ELUNPTE9SOiAjZjRmNWY3DQp9DQojY29s
MmJvdHRvbSB7DQoJQ0xFQVI6IGJvdGg7IEZPTlQtU0laRTogMXB4OyBGTE9B
VDogbm9uZTsgQkFDS0dST1VORC1JTUFHRTogPQ0KdXJsKC9BdXRlbnRpY2F6
aW9uZS9pbWcvYm90dG9tX2xvZ2luLmdpZik7IFdJRFRIOiA0MzRweDsgSEVJ
R0hUOiA2cHgNCn0NCiNjb2wxIHsNCglNQVJHSU4tVE9QOiA4cHg7IEZMT0FU
OiBsZWZ0OyBXSURUSDogNDYwcHgNCn0NCiNjb2wxIEgyIHsNCglNQVJHSU4t
VE9QOiAxMHB4OyBGT05ULVNJWkU6IDFlbTsgQ09MT1I6ICMwMDk5Y2M7IEZP
TlQtRkFNSUxZOiBBcmlhbCwgPQ0KVmVyZGFuYQ0KfQ0KI2NvbDEgUCB7DQoJ
TUFSR0lOLVRPUDogMTBweDsgRk9OVC1TSVpFOiAxMXB4OyBDT0xPUjogIzY2
NjY2NjsgTElORS1IRUlHSFQ6IDEzMCU7ID0NCkZPTlQtRkFNSUxZOiBBcmlh
bCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmDQp9DQojY29sMSBMSSB7DQoJRk9O
VC1TSVpFOiAxMXB4OyBDT0xPUjogIzY2NjY2NjsgTElORS1IRUlHSFQ6IDEz
MCU7IEZPTlQtRkFNSUxZOiBBcmlhbCwgPQ0KSGVsdmV0aWNhLCBzYW5zLXNl
cmlmDQp9DQojY29sMSBJTUcuc2NyZWVuc2hvdCB7DQoJUEFERElORy1SSUdI
VDogMHB4OyBQQURESU5HLUxFRlQ6IDBweDsgUEFERElORy1CT1RUT006IDEw
cHg7ID0NClBBRERJTkctVE9QOiAxMHB4DQp9DQojY29sMSBVTCB7DQoJTUFS
R0lOLVRPUDogMTBweDsgTUFSR0lOLUJPVFRPTTogMTBweDsgTUFSR0lOLUxF
RlQ6IDMwcHgNCn0NCiNjb2wxIE9MIHsNCglNQVJHSU4tVE9QOiAxMHB4OyBN
QVJHSU4tQk9UVE9NOiAxMHB4OyBNQVJHSU4tTEVGVDogMzBweA0KfQ0KI2Ns
aWVudGUgew0KPTA5DQp9DQojbm9uX2NsaWVudGUgew0KCU1BUkdJTi1UT1A6
IDMwcHg7IE1BUkdJTi1CT1RUT006IDIwcHg7IFBBRERJTkctQk9UVE9NOiAy
MHB4OyA9DQpCT1JERVItQk9UVE9NOiAjY2NjY2NjIDFweCBkb3R0ZWQNCn0N
CiNjaGFuZ2VfcGluIHsNCglGTE9BVDogbGVmdDsgV0lEVEg6IDEzMHB4OyBM
SU5FLUhFSUdIVDogMjRweDsgSEVJR0hUOiAyMHB4DQp9DQojY2hhbmdlX3B3
ZCB7DQoJRkxPQVQ6IGxlZnQ7IFdJRFRIOiAxMzBweDsgTElORS1IRUlHSFQ6
IDI0cHg7IEhFSUdIVDogMjBweA0KfQ0KI2NoYW5nZV9jb250cm9sd29yZCB7
DQoJRkxPQVQ6IGxlZnQ7IFdJRFRIOiAxMzBweDsgTElORS1IRUlHSFQ6IDI0
cHg7IEhFSUdIVDogMjBweA0KfQ0KI2NoYW5nZV9hbGlhcyB7DQoJRkxPQVQ6
IGxlZnQ7IFdJRFRIOiAxMzBweDsgTElORS1IRUlHSFQ6IDI0cHg7IEhFSUdI
VDogMjBweA0KfQ0KI25ld3NsZXR0ZXJfc290dG9zY3JpdHRlX2xhYmVsIHsN
CglGTE9BVDogbGVmdDsgV0lEVEg6IDEzMHB4OyBMSU5FLUhFSUdIVDogMjRw
eDsgSEVJR0hUOiAyMHB4DQp9DQojY2hhbmdlX3VzZXJjb2RlIHsNCglGTE9B
VDogbGVmdDsgV0lEVEg6IDEzMHB4OyBMSU5FLUhFSUdIVDogMjRweDsgSEVJ
R0hUOiAyMHB4DQp9DQojZGF0aV9hbmFncmFmaWNpX2xhYmVsIHsNCglGTE9B
VDogbGVmdDsgV0lEVEg6IDEzMHB4OyBMSU5FLUhFSUdIVDogMjRweDsgSEVJ
R0hUOiAyMHB4DQp9DQojY29uc2Vuc2lfcHJpdmFjeV9sYWJlbCB7DQoJRkxP
QVQ6IGxlZnQ7IFdJRFRIOiAxMzBweDsgTElORS1IRUlHSFQ6IDI0cHg7IEhF
SUdIVDogMjBweA0KfQ0KLnNhbXBsZSB7DQoJRk9OVC1XRUlHSFQ6IGJvbGQ7
IEZMT0FUOiBsZWZ0OyBXSURUSDogMTQwcHg7IExJTkUtSEVJR0hUOiAyNHB4
OyA9DQpGT05ULUZBTUlMWTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwg
c2Fucy1zZXJpZjsgSEVJR0hUOiAyMHB4DQp9DQojc2ljdXJlenphIHsNCglQ
QURESU5HLVJJR0hUOiAxMHB4OyBQQURESU5HLUxFRlQ6IDEwcHg7IEZPTlQt
U0laRTogMTJweDsgPQ0KUEFERElORy1CT1RUT006IDEwcHg7IENPTE9SOiAj
NjY2NjY2OyBQQURESU5HLVRPUDogMTBweDsgRk9OVC1GQU1JTFk6ID0NCkFy
aWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYNCn0NCiNkaXNjbGFpbWVyIHsN
CglCT1JERVItVE9QOiAjOTk5OTk5IDFweCBkb3R0ZWQ7IE1BUkdJTi1UT1A6
IDVweDsgUEFERElORy1CT1RUT006IDVweDsgPQ0KQk9SREVSLUJPVFRPTTog
Izk5OTk5OSAxcHggZG90dGVkDQp9DQojZGlzY2xhaW1lciBQIHsNCglNQVJH
SU4tVE9QOiA1cHgNCn0NCiNjb2wxIFAuYXZ2aXNvIHsNCglQQURESU5HLVJJ
R0hUOiAwcHg7IEJBQ0tHUk9VTkQtUE9TSVRJT046IGxlZnQgdG9wOyBQQURE
SU5HLUxFRlQ6IDE4cHg7ID0NCkJBQ0tHUk9VTkQtSU1BR0U6IHVybCgvQXV0
ZW50aWNhemlvbmUvaW1nL2NvbW1lbnQucG5nKTsgUEFERElORy1CT1RUT006
ID0NCjBweDsgTUFSR0lOOiAycHggMHB4OyBQQURESU5HLVRPUDogMHB4OyBC
QUNLR1JPVU5ELVJFUEVBVDogbm8tcmVwZWF0DQp9DQpESVYuYXZ2aXNvIHsN
CglCT1JERVItUklHSFQ6ICNmMGQyMDAgMnB4IHNvbGlkOyBQQURESU5HLVJJ
R0hUOiAycHg7IEJPUkRFUi1UT1A6ID0NCiNmMGQyMDAgMnB4IHNvbGlkOyBN
QVJHSU4tVE9QOiAxMHB4OyBQQURESU5HLUxFRlQ6IDJweDsgUEFERElORy1C
T1RUT006ID0NCjJweDsgQk9SREVSLUxFRlQ6ICNmMGQyMDAgMnB4IHNvbGlk
OyBQQURESU5HLVRPUDogMnB4OyBCT1JERVItQk9UVE9NOiA9DQojZjBkMjAw
IDJweCBzb2xpZDsgQkFDS0dST1VORC1DT0xPUjogI2Y0ZmFmYg0KfQ0KI2Nv
bDEgRElWLmF2dmlzbyBQIHsNCglNQVJHSU4tVE9QOiAwcHg7IE1BUkdJTi1C
T1RUT006IDVweA0KfQ0KRElWLmJveCB7DQoJQ0xFQVI6IGJvdGg7IEZPTlQt
U0laRTogMTJweDsgRkxPQVQ6IGxlZnQ7IFBBRERJTkctQk9UVE9NOiAxNXB4
OyBXSURUSDogPQ0KMTAwJTsgUEFERElORy1UT1A6IDE1cHg7IEJPUkRFUi1C
T1RUT006ICNlOWU5ZTkgMXB4IHNvbGlkOyBGT05ULUZBTUlMWTogPQ0KQXJp
YWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZg0KfQ0KUCB7DQoJQ0xFQVI6IGJv
dGg7IE1BUkdJTi1UT1A6IDdweA0KfQ0KU1BBTi5kYXRhIHsNCglDTEVBUjog
Ym90aDsgTUFSR0lOLVRPUDogN3B4OyBESVNQTEFZOiBibG9jazsgRkxPQVQ6
IGxlZnQ7ID0NCk1BUkdJTi1CT1RUT006IDdweA0KfQ0KU1BBTi5wYXNzd29y
ZCB7DQoJQ0xFQVI6IGJvdGg7IE1BUkdJTi1UT1A6IDdweDsgRElTUExBWTog
YmxvY2s7IEZMT0FUOiBsZWZ0OyA9DQpNQVJHSU4tQk9UVE9NOiA3cHgNCn0N
ClNQQU4uc2Vydml6aW8gew0KCUNMRUFSOiBib3RoOyBNQVJHSU4tVE9QOiA3
cHg7IERJU1BMQVk6IGJsb2NrOyBGTE9BVDogbGVmdDsgPQ0KTUFSR0lOLUJP
VFRPTTogN3B4DQp9DQpTUEFOLmFjY2VkaSB7DQoJQ0xFQVI6IGJvdGg7IE1B
UkdJTi1UT1A6IDdweDsgRElTUExBWTogYmxvY2s7IEZMT0FUOiBsZWZ0OyA9
DQpNQVJHSU4tQk9UVE9NOiA3cHgNCn0NClNQQU4ucm93IHsNCglDTEVBUjog
Ym90aDsgTUFSR0lOLVRPUDogN3B4OyBESVNQTEFZOiBibG9jazsgRkxPQVQ6
IGxlZnQ7ID0NCk1BUkdJTi1CT1RUT006IDdweA0KfQ0KU1BBTi5mcmFzZSB7
DQoJRElTUExBWTogYmxvY2s7IEZPTlQtU1RZTEU6IGl0YWxpYw0KfQ0KU1BB
Ti5hY2NlZGkgew0KCU1BUkdJTi1UT1A6IDE1cHg7IERJU1BMQVk6IGJsb2Nr
OyBGT05ULVNJWkU6IDExcHg7IEZMT0FUOiBsZWZ0OyA9DQpNQVJHSU4tTEVG
VDogMTVweDsgTElORS1IRUlHSFQ6IDQwcHg7IEZPTlQtRkFNSUxZOiBBcmlh
bCwgSGVsdmV0aWNhLCA9DQpzYW5zLXNlcmlmOyBIRUlHSFQ6IDUwcHgNCn0N
Ci5naW9ybm8gew0KCVdJRFRIOiAyMHB4DQp9DQoubWVzZSB7DQoJV0lEVEg6
IDIwcHgNCn0NCi5hbm5vIHsNCglXSURUSDogMzVweA0KfQ0KI3ByaW1vX2Nh
cmF0dGVyZSB7DQoJV0lEVEg6IDE1cHgNCn0NCiNzZWNvbmRvX2NhcmF0dGVy
ZSB7DQoJV0lEVEg6IDE1cHgNCn0NCiNjb2RpY2VfdXRlbnRlIHsNCglXSURU
SDogMTAwcHgNCn0NCiNwaW4gew0KCVdJRFRIOiA3MHB4DQp9DQoubWVzc2Fn
Z2lvIHsNCglDTEVBUjogYm90aA0KfQ0KLmlzdHJ1emlvbmkgew0KCUZPTlQt
U0laRTogMTJweDsgQ09MT1I6ICM2NjY2NjY7IEZPTlQtRkFNSUxZOiBBcmlh
bCwgSGVsdmV0aWNhLCA9DQpzYW5zLXNlcmlmDQp9DQoub2sgew0KCUJBQ0tH
Uk9VTkQtUE9TSVRJT046IGxlZnQgdG9wOyBQQURESU5HLUxFRlQ6IDIwcHg7
IEZPTlQtV0VJR0hUOiBib2xkOyA9DQpGT05ULVNJWkU6IDEycHg7IEJBQ0tH
Uk9VTkQtSU1BR0U6IHVybCgvQXV0ZW50aWNhemlvbmUvaW1nL29rLnBuZyk7
ID0NCkNPTE9SOiAjMDA5OTAwOyBCQUNLR1JPVU5ELVJFUEVBVDogbm8tcmVw
ZWF0OyBGT05ULUZBTUlMWTogQXJpYWwsID0NCkhlbHZldGljYSwgc2Fucy1z
ZXJpZg0KfQ0KLmFsZXJ0IHsNCglCQUNLR1JPVU5ELVBPU0lUSU9OOiBsZWZ0
IHRvcDsgUEFERElORy1MRUZUOiAyMHB4OyBGT05ULVdFSUdIVDogYm9sZDsg
PQ0KRk9OVC1TSVpFOiAxMnB4OyBCQUNLR1JPVU5ELUlNQUdFOiA9DQp1cmwo
L0F1dGVudGljYXppb25lL2ltZy9pbXBvcnRhbnQucG5nKTsgQ09MT1I6ICNm
ZjAwMDA7ID0NCkJBQ0tHUk9VTkQtUkVQRUFUOiBuby1yZXBlYXQ7IEZPTlQt
RkFNSUxZOiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmDQp9DQpJTlBV
VC5pbnB1dF9yc2Egew0KCUJPUkRFUi1SSUdIVDogI2Y0ZjVmNyAwcHggc29s
aWQ7IEJPUkRFUi1UT1A6ICNmNGY1ZjcgMHB4IHNvbGlkOyA9DQpGT05ULVdF
SUdIVDogYm9sZDsgRk9OVC1TSVpFOiAxNXB4OyBNQVJHSU4tTEVGVDogM3B4
OyBCT1JERVItTEVGVDogPQ0KI2Y0ZjVmNyAwcHggc29saWQ7IFdJRFRIOiA3
MHB4OyBCT1JERVItQk9UVE9NOiAjZjRmNWY3IDBweCBzb2xpZDsgPQ0KTEVU
VEVSLVNQQUNJTkc6IDFweDsgSEVJR0hUOiAxOHB4OyBCQUNLR1JPVU5ELUNP
TE9SOiAjZjRmNWY3DQp9DQpMQUJFTCB7DQo9MDkNCn0NCiNwaW5fbGFiZWwg
ew0KCUZMT0FUOiBsZWZ0OyBNQVJHSU4tTEVGVDogMjBweDsgV0lEVEg6IDcw
cHg7IExJTkUtSEVJR0hUOiAyNHB4OyBIRUlHSFQ6ID0NCjIwcHgNCn0NCiNj
b2RpY2VfbGFiZWwgew0KCUZMT0FUOiBsZWZ0OyBNQVJHSU4tTEVGVDogMjBw
eDsgV0lEVEg6IDcwcHg7IExJTkUtSEVJR0hUOiAyNHB4OyBIRUlHSFQ6ID0N
CjIwcHgNCn0NCi5ub21lX2JhbmNhIHsNCglGTE9BVDogbGVmdDsgTUFSR0lO
LUxFRlQ6IDIwcHg7IFdJRFRIOiA3MHB4OyBMSU5FLUhFSUdIVDogMjRweDsg
SEVJR0hUOiA9DQoyMHB4DQp9DQpMQUJFTC5ub21lX2JhbmNhIHsNCglGTE9B
VDogbm9uZTsgTUFSR0lOLUxFRlQ6IDJweDsgV0lEVEg6IDM1MHB4DQp9DQpM
QUJFTC5yZWdpc3RyYXRpIHsNCglGTE9BVDogbGVmdDsgTUFSR0lOLUxFRlQ6
IDEwcHg7IFdJRFRIOiAxNTBweDsgTElORS1IRUlHSFQ6IDI0cHg7ID0NCkhF
SUdIVDogMjBweA0KfQ0KTEFCRUwuY2FtYmlvX3Bhc3N3b3JkIHsNCglGTE9B
VDogbGVmdDsgTUFSR0lOLUxFRlQ6IDIwcHg7IFdJRFRIOiAxMzBweDsgTElO
RS1IRUlHSFQ6IDI0cHg7ID0NCkhFSUdIVDogMjBweA0KfQ0KI2NvZGljZV91
dGVudGUgew0KCUJPUkRFUi1SSUdIVDogI2NjY2NjYyAxcHggc29saWQ7IEJP
UkRFUi1UT1A6ICNjY2NjY2MgMXB4IHNvbGlkOyA9DQpQQURESU5HLUxFRlQ6
IDNweDsgRk9OVC1XRUlHSFQ6IGJvbGQ7IEJPUkRFUi1MRUZUOiAjY2NjY2Nj
IDFweCBzb2xpZDsgPQ0KTElORS1IRUlHSFQ6IDIwcHg7IEJPUkRFUi1CT1RU
T006ICNjY2NjY2MgMXB4IHNvbGlkOyBIRUlHSFQ6IDIwcHgNCn0NCiNwaW4g
ew0KCUJPUkRFUi1SSUdIVDogI2NjY2NjYyAxcHggc29saWQ7IEJPUkRFUi1U
T1A6ICNjY2NjY2MgMXB4IHNvbGlkOyA9DQpQQURESU5HLUxFRlQ6IDNweDsg
Rk9OVC1XRUlHSFQ6IGJvbGQ7IEJPUkRFUi1MRUZUOiAjY2NjY2NjIDFweCBz
b2xpZDsgPQ0KTElORS1IRUlHSFQ6IDIwcHg7IEJPUkRFUi1CT1RUT006ICNj
Y2NjY2MgMXB4IHNvbGlkOyBIRUlHSFQ6IDIwcHgNCn0NCi5saW5rX2J1dHRv
biB7DQoJTElORS1IRUlHSFQ6IDI0cHgNCn0NCklGUkFNRS5pZnJhbWVfY29u
dHJhdHRvIHsNCglCT1JERVItUklHSFQ6ICNlZWVlZWUgMXB4IHNvbGlkOyBC
T1JERVItVE9QOiAjZWVlZWVlIDFweCBzb2xpZDsgPQ0KTUFSR0lOLUxFRlQ6
IDE4cHg7IEJPUkRFUi1MRUZUOiAjZWVlZWVlIDFweCBzb2xpZDsgTUFSR0lO
LVJJR0hUOiAxOHB4OyA9DQpCT1JERVItQk9UVE9NOiAjZWVlZWVlIDFweCBz
b2xpZDsgQkFDS0dST1VORC1DT0xPUjogI2ZmZmZmZg0KfQ0KSUZSQU1FLmlm
cmFtZV9pbmZvcm1hdGl2YSB7DQoJQk9SREVSLVJJR0hUOiAjZWVlZWVlIDFw
eCBzb2xpZDsgQk9SREVSLVRPUDogI2VlZWVlZSAxcHggc29saWQ7ID0NCk1B
UkdJTi1MRUZUOiAxOHB4OyBCT1JERVItTEVGVDogI2VlZWVlZSAxcHggc29s
aWQ7IE1BUkdJTi1SSUdIVDogMThweDsgPQ0KQk9SREVSLUJPVFRPTTogI2Vl
ZWVlZSAxcHggc29saWQ7IEJBQ0tHUk9VTkQtQ09MT1I6ICNmZmZmZmYNCn0N
Ci5kaXNjbGFpbWVyX3ByaXZhY3kgew0KCU1BUkdJTi1UT1A6IDEwcHg7IEZP
TlQtU0laRTogMTFweA0KfQ0KLmNvbnNlbnNvIHsNCglGT05ULVdFSUdIVDog
Ym9sZDsgRk9OVC1TSVpFOiAxMXB4OyBURVhULUFMSUdOOiBjZW50ZXINCn0N
Ci5oaWRkZW5fdGFzdGllcmFfaGVhZCB7DQoJRk9OVC1XRUlHSFQ6IGJvbGQ7
IEZPTlQtU0laRTogMTFweDsgRkxPQVQ6IGxlZnQ7IFdJRFRIOiAxMDAlOyA9
DQpQQURESU5HLVRPUDogNXB4OyBGT05ULUZBTUlMWTogQXJpYWwsIEhlbHZl
dGljYSwgc2Fucy1zZXJpZjsgSEVJR0hUOiA9DQoyMHB4OyBCQUNLR1JPVU5E
LUNPTE9SOiAjZGJkYmRiOyBURVhULUFMSUdOOiBjZW50ZXINCn0NCi5oaWRk
ZW5fdGFzdGllcmFfaGVhZCBMQUJFTCB7DQoJVkVSVElDQUwtQUxJR046IHRv
cA0KfQ0KI3Rhc3RpZXJhIHsNCglGTE9BVDogbGVmdA0KfQ0KRElWI2ZyYXNl
X2RpX2NvbnRyb2xsbyB7DQoJQk9SREVSLVJJR0hUOiAjZDRkMGM4IDFweCBz
b2xpZDsgQkFDS0dST1VORC1QT1NJVElPTjogNXB4IDVweDsgPQ0KQk9SREVS
LVRPUDogI2Q0ZDBjOCAxcHggc29saWQ7IFBBRERJTkctTEVGVDogMjVweDsg
Rk9OVC1TSVpFOiAxMnB4OyA9DQpCQUNLR1JPVU5ELUlNQUdFOiB1cmwoL0F1
dGVudGljYXppb25lL2ltZy9sb2NrLnBuZyk7IFBBRERJTkctQk9UVE9NOiA9
DQo1cHg7IEJPUkRFUi1MRUZUOiAjZDRkMGM4IDFweCBzb2xpZDsgTElORS1I
RUlHSFQ6IDE1MCU7IEJPUkRFUi1CT1RUT006ID0NCiNkNGQwYzggMXB4IHNv
bGlkOyBCQUNLR1JPVU5ELVJFUEVBVDogbm8tcmVwZWF0OyBGT05ULUZBTUlM
WTogQXJpYWwsID0NCkhlbHZldGljYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjsg
QkFDS0dST1VORC1DT0xPUjogI2U5ZWNlZg0KfQ0KU1BBTi5ub3RlcyB7DQoJ
Rk9OVC1TSVpFOiAxMXB4OyBNQVJHSU4tTEVGVDogMTBweDsgQ09MT1I6ICM2
NjY2NjYNCn0NCi52ZXJkZSB7DQoJRk9OVC1XRUlHSFQ6IGJvbGQ7IENPTE9S
OiAjMDA5OTAwDQp9DQoubWVzc2FnZ2lvQ2hlY2sgew0KCUZMT0FUOiBsZWZ0
DQp9DQouZnJhc2VEaUNvbnRyb2xsbyB7DQoJTUFSR0lOLVRPUDogMHB4OyBQ
QURESU5HLUxFRlQ6IDVweDsgRkxPQVQ6IGxlZnQ7IE1BUkdJTi1MRUZUOiAw
cHg7ID0NCldJRFRIOiAyNTBweDsgTElORS1IRUlHSFQ6IDE2cHgNCn0NCiNp
ZDEgew0KCU1BUkdJTi1SSUdIVDogNXB4DQp9DQojaWQyIHsNCglNQVJHSU4t
TEVGVDogMTBweDsgTUFSR0lOLVJJR0hUOiA1cHgNCn0NCiN1c2FfdGFzdGll
cmEgew0KCU1BUkdJTi1UT1A6IDEwcHg7IERJU1BMQVk6IGJsb2NrDQp9DQou
Y2hlY2tfY29udHJvbF93b3JkIHsNCglNQVJHSU4tVE9QOiAzMHB4OyBESVNQ
TEFZOiBibG9jaw0KfQ0KI2ludmFsaWRfcGluX2xlbmd0aCB7DQoJTUFSR0lO
LVRPUDogMTBweDsgRElTUExBWTogYmxvY2sNCn0NCi5lbXB0eV9waW4gew0K
CU1BUkdJTi1UT1A6IDEwcHg7IERJU1BMQVk6IGJsb2NrDQp9DQouZW1wdHlf
cHdkIHsNCglNQVJHSU4tVE9QOiAxMHB4OyBESVNQTEFZOiBibG9jaw0KfQ0K
I3Bpbl9pc19udW1lcmljX3N0cmluZyB7DQoJTUFSR0lOLVRPUDogMTBweDsg
RElTUExBWTogYmxvY2sNCn0NCiNpbnZhbGlkX3Bpbl9jb25maXJtIHsNCglN
QVJHSU4tVE9QOiAxMHB4OyBESVNQTEFZOiBibG9jaw0KfQ0KI29sZF9maXJz
dF9jaGFyIHsNCglNQVJHSU4tTEVGVDogNXB4OyBNQVJHSU4tUklHSFQ6IDVw
eA0KfQ0KLmlucHV0UGFzc3dvcmQgew0KCU1BUkdJTi1MRUZUOiA1cHgNCn0N
CiNpbnZhbGlkX3B3ZF9jb25maXJtIHsNCglNQVJHSU4tVE9QOiAxMHB4OyBE
SVNQTEFZOiBibG9jaw0KfQ0KI3B3ZF9pc19hbGZhbnVtZXJpY19zdHJpbmcg
ew0KCU1BUkdJTi1UT1A6IDEwcHg7IERJU1BMQVk6IGJsb2NrDQp9DQojdWx0
aW1vQWNjZXNzb0VmZmV0dHVhdG8gew0KCU1BUkdJTi1UT1A6IDE0cHg7IEZP
TlQtV0VJR0hUOiBib2xkOyBGT05ULVNJWkU6IDEycHg7IE1BUkdJTi1CT1RU
T006ID0NCjhweDsgRk9OVC1GQU1JTFk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNh
bnMtc2VyaWYNCn0NCiN0b3BBdXRlbnRpY2F6aW9uZSB7DQoJRk9OVC1TSVpF
OiAxcHg7IEJBQ0tHUk9VTkQtSU1BR0U6ID0NCnVybCgvQXV0ZW50aWNhemlv
bmUvaW1nL3N0ZXBUd28vYm94X3BhcnRlQWx0YS5naWYpOyBXSURUSDogNDE0
cHg7ID0NCkJBQ0tHUk9VTkQtUkVQRUFUOiBuby1yZXBlYXQ7IEhFSUdIVDog
M3B4DQp9DQojYm90dG9tQXV0ZW50aWNhemlvbmUgew0KCUZPTlQtU0laRTog
MXB4OyBCQUNLR1JPVU5ELUlNQUdFOiA9DQp1cmwoL0F1dGVudGljYXppb25l
L2ltZy9zdGVwVHdvL2JveF9wYXJ0ZUJhc3NhLmdpZik7IFdJRFRIOiA0MTRw
eDsgPQ0KQkFDS0dST1VORC1SRVBFQVQ6IG5vLXJlcGVhdDsgSEVJR0hUOiAz
cHgNCn0NCiNib3R0b21BdXRlbnRpY2F6aW9uZUZyZWNjaWEgew0KCUZPTlQt
U0laRTogMXB4OyBCQUNLR1JPVU5ELUlNQUdFOiA9DQp1cmwoL0F1dGVudGlj
YXppb25lL2ltZy9zdGVwVHdvL2JveF9wYXJ0ZUJhc3NhRnJlY2NpYS5naWYp
OyBXSURUSDogPQ0KNDE0cHg7IEJBQ0tHUk9VTkQtUkVQRUFUOiBuby1yZXBl
YXQ7IEhFSUdIVDogMThweA0KfQ0KLmNyZWRlbnRpYWxfbGFzdF9jaGFuZ2Ug
ew0KCU1BUkdJTi1UT1A6IDEwcHg7IEZPTlQtV0VJR0hUOiBib2xkDQp9DQou
Y2xlYXJtZSB7DQoJQ0xFQVI6IGJvdGg7IERJU1BMQVk6IGJsb2NrOyBGTE9B
VDogbm9uZQ0KfQ0KDQotLS0tLS09X05leHRQYXJ0XzAwMF8wMDAwXzAxQ0Ez
N0VELkJCMkQxMDcwDQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQ0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXBy
aW50YWJsZQ0KQ29udGVudC1Mb2NhdGlvbjogaHR0cDovL3d3dy5zZWxsbGFi
YW5raW5nLmNvbS9BdXRlbnRpY2F6aW9uZS92YWxpZGEuanMNCg0KZnVuY3Rp
b24gdmFsaWRhKGlucHV0KQ0Kew0KDQogIHZhciBtc2c7DQogIG1zZyA9M0Qg
IkF0dGVuemlvbmUhXG5UdXR0aSBpIGNhbXBpIGNvbiBsJ2FzdGVyaXNjbyBz
b25vID0NCm9iYmxpZ2F0b3JpLiI7DQogIGZvciAoIHZhciBpPTNEMDsgaTxp
bnB1dC5sZW5ndGg7IGkrKyApDQogIHsNCiA9MjANCiAgICAvLyBjb250cm9s
bG8gY2hlIGkgY2FtcGkgb2JibGlnYXRvcmkgc2lhbm8gc3RhdGkgdmFsb3Jp
enphdGkNCiAgICBjb250cm9sbG8gPTNEIGlucHV0W2ldLmNoZWNrOw0KICAg
IG9iYmxpZ2F0b3JpbyA9M0QgZmFsc2U7DQogICAgaWYgKCBjb250cm9sbG8u
aW5kZXhPZignfCcpICE9M0QgLTEgJiYgPQ0KY29udHJvbGxvLnN1YnN0cmlu
ZygwLGNvbnRyb2xsby5pbmRleE9mKCd8JykpID0zRD0zRCAnbycgKQ0KICAg
ICAgb2JibGlnYXRvcmlvID0zRCB0cnVlOw0KICAgIGNvbnRyb2xsbyA9M0Qg
PQ0KY29udHJvbGxvLnN1YnN0cmluZyhjb250cm9sbG8uaW5kZXhPZignfCcp
KzEsY29udHJvbGxvLmxlbmd0aCApOw0KDQoNCiAgICBpZiAoIG9iYmxpZ2F0
b3JpbyApDQogICAgew0KICAgICAgaWYgKCBpbnB1dFtpXS5vYmoudHlwZT0z
RD0zRCJoaWRkZW4iICYmID0NCmlucHV0W2ldLm9iai5uYW1lPTNEPTNEIm1z
Z0l0ZW1NYW5kIiApDQogICAgICAgIG1zZyA9M0QgaW5wdXRbaV0ub2JqLnZh
bHVlOw0KICAgICAgaWYgKCBpbnB1dFtpXS5vYmoudHlwZT0zRD0zRCJ0ZXh0
IiB8fCA9DQppbnB1dFtpXS5vYmoudHlwZT0zRD0zRCJwYXNzd29yZCIgKQ0K
ICAgICAgew0KICAgICAgICBpZiAoIGlzRW1wdHkoaW5wdXRbaV0ub2JqLnZh
bHVlKSApDQogICAgICAgIHsNCiAgICAgICAgICBhbGVydChtc2cpOw0KICAg
ICAgICAgIGlucHV0W2ldLm9iai5mb2N1cygpOw0KICAgICAgICAgIHJldHVy
biBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAo
IGlucHV0W2ldLm9iai50eXBlPTNEPTNEInNlbGVjdC1vbmUiICkNCiAgICAg
IHsNCiAgICAgICAgdmFyIHNlbGVjdE9LPTNEZmFsc2U7DQogICAgICAgIGlm
ICggPQ0KaXNFbXB0eShpbnB1dFtpXS5vYmoub3B0aW9uc1tpbnB1dFtpXS5v
Ymouc2VsZWN0ZWRJbmRleF0udmFsdWUpICkNCiAgICAgICAgew0KICAgICAg
ICAgIGFsZXJ0KG1zZyk7DQogICAgICAgICAgaW5wdXRbaV0ub2JqLmZvY3Vz
KCk7DQogICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAg
ICB9DQogICAgICBlbHNlIGlmICggaW5wdXRbaV0ub2JqLnR5cGU9M0Q9M0Qi
Y2hlY2tib3giICk7IC8vcGVyIG9yYSBub24gbG8gPQ0KZ2VzdGlzY28NCiAg
ICAgIGVsc2UgaWYgKCBpbnB1dFtpXS5vYmoudHlwZT0zRD0zRCJoaWRkZW4i
ICk7DQogICAgICBlbHNlIGlmICggaW5wdXRbaV0ub2JqWzBdLnR5cGU9M0Q9
M0QicmFkaW8iICkNCiAgICAgIHsNCiAgICAgICAgdmFyIGNoZWNrT0s9M0Rm
YWxzZTsNCiAgICAgICAgZm9yICh2YXIgaj0zRDA7IGogPCBpbnB1dFtpXS5v
YmoubGVuZ3RoOyBqKyspDQogICAgICAgIHsNCiAgICAgICAgICBpZiAoaW5w
dXRbaV0ub2JqW2pdLmNoZWNrZWQpDQogICAgICAgICAgew0KICAgICAgICAg
ICAgY2hlY2tPSz0zRHRydWU7DQogICAgICAgICAgfQ0KICAgICAgICB9DQog
ICAgICAgIGlmICggIWNoZWNrT0sgKQ0KICAgICAgICB7DQogICAgICAgICAg
YWxlcnQobXNnKTsNCiAgICAgICAgICBpbnB1dFtpXS5vYmpbMF0uZm9jdXMo
KTsNCiAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAg
IH0NCiAgICB9DQoNCiAgICAvL2NvbnRyb2xsbyBzZSBsJ29nZ2V0dG8gPUU4
IHN0YXRvIHZhbG9yaXp6YXRvDQogICAgaXNGdWxsID0zRCBmYWxzZTsNCiAg
ID0yMA0KICAgIGlmICggaW5wdXRbaV0ub2JqLnR5cGU9M0Q9M0QidGV4dCIg
fHwgPQ0KaW5wdXRbaV0ub2JqLnR5cGU9M0Q9M0QicGFzc3dvcmQiICkNCiAg
ICB7DQogICAgICBpZiAoICFpc0VtcHR5KGlucHV0W2ldLm9iai52YWx1ZSkg
KSBpc0Z1bGwgPTNEIHRydWU7DQogICAgfQ0KICAgIGVsc2UgaWYgKCBpbnB1
dFtpXS5vYmoudHlwZT0zRD0zRCJzZWxlY3Qtb25lIiApDQogICAgew0KICAg
ICAgaWYgKCA9DQohaXNFbXB0eShpbnB1dFtpXS5vYmoub3B0aW9uc1tpbnB1
dFtpXS5vYmouc2VsZWN0ZWRJbmRleF0udmFsdWUpICkgPQ0KaXNGdWxsID0z
RCB0cnVlOw0KICAgIH0NCiAgICBlbHNlIGlmICggaW5wdXRbaV0ub2JqLnR5
cGU9M0Q9M0QiY2hlY2tib3giICk7IC8vcGVyIG9yYSBub24gbG8gPQ0KZ2Vz
dGlzY28NCiAgICBlbHNlIGlmICggaW5wdXRbaV0ub2JqLnR5cGU9M0Q9M0Qi
aGlkZGVuIiApOw0KICAgIGVsc2UgaWYgKCBpbnB1dFtpXS5vYmpbMF0udHlw
ZT0zRD0zRCJyYWRpbyIgKQ0KICAgIHsNCiAgICAgIGZvciAodmFyIGo9M0Qw
OyBqIDwgaW5wdXRbaV0ub2JqLmxlbmd0aDsgaisrKQ0KICAgICAgew0KICAg
ICAgICBpZiAoaW5wdXRbaV0ub2JqW2pdLmNoZWNrZWQpDQogICAgICAgIHsN
CiAgICAgICAgICBpc0Z1bGwgPTNEIHRydWU7DQogICAgICAgIH0NCiAgICAg
IH0NCiAgICB9DQoNCiAgICAvL2NvbnRyb2xsbyBkaSBjb3JyZXR0YSB2YWxv
cml6emF6aW9uZQ0KICAgIGlmICggaXNGdWxsICkNCiAgICB7DQogICAgICBp
ZiAoIGNvbnRyb2xsbyA9M0Q9M0QgJ2lzQWxmYVNwZWMnICkgLy9wZXIgb2Jq
IHRpcG8gdGV4dCAoY29nbm9tZSwgPQ0Kbm9tZSwgLi4pDQogICAgICB7DQog
ICAgICAgIGlmICghaXNBbGZhU3BlYyhpbnB1dFtpXS5vYmoudmFsdWUsICIg
IikpDQogICAgICAgIHsNCiAgICAgICAgICBhbGVydChpbnB1dFtpXS5tc2cp
Ow0KICAgICAgICAgIGlucHV0W2ldLm9iai5mb2N1cygpOw0KICAgICAgICAg
IHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWxz
ZSBpZiAoIGNvbnRyb2xsbyA9M0Q9M0QgJ2lzQWxmYU51bVNwZWMnICkgLy9w
ZXIgb2JqIHRpcG8gdGV4dCA9DQooaW5kaXJpenpvLCAuLikNCiAgICAgIHsN
CiAgICAgICAgaWYgKCFpc0FsZmFOdW1TcGVjKGlucHV0W2ldLm9iai52YWx1
ZSwgIiAtLiwoKS89QjAiKSkNCiAgICAgICAgew0KICAgICAgICAgIGFsZXJ0
KGlucHV0W2ldLm1zZyk7DQogICAgICAgICAgaW5wdXRbaV0ub2JqLmZvY3Vz
KCk7DQogICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAg
ICB9DQogICAgICBlbHNlIGlmICggY29udHJvbGxvID0zRD0zRCAnaXNOdW0n
ICkgLy9wZXIgb2JqIHRpcG8gdGV4dCA9DQoocHJlZmlzc28sIHRlbGVmb25v
LCAuLikNCiAgICAgIHsNCiAgICAgICAgaWYgKCAhaXNJbnRlZ2VyKGlucHV0
W2ldLm9iai52YWx1ZSkgKQ0KICAgICAgICB7DQogICAgICAgICAgYWxlcnQo
aW5wdXRbaV0ubXNnKTsNCiAgICAgICAgICBpbnB1dFtpXS5vYmouZm9jdXMo
KTsNCiAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAg
IH0NCiAgICA9MjANCiAgICAgIGVsc2UgaWYgKCBjb250cm9sbG8gPTNEPTNE
ICdpc0RhdGUnICkgLy9wZXIgb2JqW2ldKGFubm8gdGlwbyA9DQp0ZXh0KSwg
b2JqW2ktMV0obWVzZSB0aXBvIHNlbGVjdCksIG9ialtpLTJdKGFubm8gdGlw
byBzZWxlY3QpIChkYXRhIGRpID0NCm5hc2NpdGEsIGRhdGEgcmlsYXNjaW8g
ZG9jdW1lbnRpIC4uKQ0KICAgICAgew0KICAgICAgICB2YXIgZ2lvcm5vID0z
RCBpbnB1dFtpLTJdLm9iai52YWx1ZTsNCiAgICAgICAgdmFyIG1lc2UgPTNE
IGlucHV0W2ktMV0ub2JqLnZhbHVlOw0KICAgICAgICB2YXIgYW5ubyA9M0Qg
aW5wdXRbaV0ub2JqLnZhbHVlOw0KICAgICAgICB2YXIgZGF0ZVN0ciA9M0Qg
Z2lvcm5vKyIvIittZXNlKyIvIithbm5vOw0KICAgICAgICB2YXIgZGF0ZVBh
dCA9M0QgL14oXGR7MSwyfSkoXC98LSkoXGR7MSwyfSkoXC98LSkoXGR7NH0p
JC87DQogICAgICAgIGlmICggZGF0ZVN0ci5tYXRjaChkYXRlUGF0KSA9M0Q9
M0QgbnVsbCkNCiAgICAgICAgew0KICAgICAgICAgIGFsZXJ0KGlucHV0W2ld
Lm1zZyk7DQogICAgICAgICAgaW5wdXRbaS0yXS5vYmouZm9jdXMoKTsNCiAg
ICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgaWYg
KCBnaW9ybm88MSB8fCBnaW9ybm8+MzEgfHwgbWVzZSA8IDEgfHwgbWVzZSA+
IDEyIHx8IGFubm8gPCA9DQoxOTAwICkNCiAgICAgICAgew0KICAgICAgICAg
IGFsZXJ0KGlucHV0W2ldLm1zZyk7DQogICAgICAgICAgaW5wdXRbaS0yXS5v
YmouZm9jdXMoKTsNCiAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAg
IH0NCiAgICAgICAgaWYgKCAobWVzZT0zRD0zRDQgfHwgbWVzZT0zRD0zRDYg
fHwgbWVzZT0zRD0zRDkgfHwgbWVzZT0zRD0zRDExKSA9DQomJiBnaW9ybm89
M0Q9M0QzMSApDQogICAgICAgIHsNCiAgICAgICAgICBhbGVydChpbnB1dFtp
XS5tc2cpOw0KICAgICAgICAgIGlucHV0W2ktMl0ub2JqLmZvY3VzKCk7DQog
ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGlm
ICggbWVzZT0zRD0zRDIgKQ0KICAgICAgICB7DQogICAgICAgICAgdmFyIGlz
bGVhcCA9M0QgKGFubm8gJSA0ID0zRD0zRCAwICYmIChhbm5vICUgMTAwICE9
M0QgMCB8fCA9DQphbm5vICUgNDAwID0zRD0zRCAwKSk7DQogICAgICAgICAg
aWYgKGdpb3Jubz4yOSB8fCAoZ2lvcm5vPTNEPTNEMjkgJiYgIWlzbGVhcCkp
DQogICAgICAgICAgew0KICAgICAgICAgICAgYWxlcnQoaW5wdXRbaV0ubXNn
KTsNCiAgICAgICAgICAgIGlucHV0W2ktMl0ub2JqLmZvY3VzKCk7DQogICAg
ICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgfQ0KICAgICAgICB9
DQogICAgICB9DQogICAgPTIwDQogICAgICBlbHNlIGlmICggY29udHJvbGxv
ID0zRD0zRCAnaXNEaWYnICkgLy9wZXIgb2JqW2ldLCBvYmpbaSsxXSAodGlw
byA9DQp0ZXh0KSAobnVvdmEgY2hpYXZlIHJlZ2lzdHJhdG8sIG51b3ZvIHBp
biBjbGllbnRlLCBudW92YSBwd2QgY2xpZW50ZSwgPQ0KLi4pDQogICAgICB7
DQogICAgICAgIGlmICggaW5wdXRbaV0ub2JqLnZhbHVlPTNEPTNEaW5wdXRb
aSsxXS5vYmoudmFsdWUgKQ0KICAgICAgICB7DQogICAgICAgICAgYWxlcnQo
aW5wdXRbaV0ubXNnKTsNCiAgICAgICAgICBpbnB1dFtpKzFdLm9iai5mb2N1
cygpOw0KICAgICAgICAgIGlucHV0W2krMV0ub2JqLnZhbHVlPTNEIiI7DQog
ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICB9DQoN
CiAgICB9DQogIH0NCiAgcmV0dXJuIHRydWU7DQp9DQoNCg0KLy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioNCi8vDQovLyAgRlVOQ1RJT04gU1VMTEUg
U1RSSU5HSEUNCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKg0K
DQovLyBjb250cm9sbGEgc2UgcyA9RTggdW5hIHN0cmluZ2EgdnVvdGENCmZ1
bmN0aW9uIGlzRW1wdHkgKHMpDQp7DQogIGlmICgocz0zRD0zRG51bGwpIHx8
IChzLmxlbmd0aD0zRD0zRDApKXsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0K
ICByZXR1cm4gZmFsc2U7DQp9DQoNCi8vdHJpbSBzdWxsYSBzdHJpbmdhDQoN
CmZ1bmN0aW9uIHRyaW0oc3RyaW5nYSkgew0KCWZvcig7IHN0cmluZ2EuY2hh
ckF0KDApPTNEPTNEJyAnOykgew0KCQlzdHJpbmdhID0zRCBzdHJpbmdhLnN1
YnN0cmluZygxLCBzdHJpbmdhLmxlbmd0aCk7DQoJfQ0KCWZvcig7IHN0cmlu
Z2EuY2hhckF0KHN0cmluZ2EubGVuZ3RoLTEpPTNEPTNEJyAnOykgew0KCQlz
dHJpbmdhID0zRCBzdHJpbmdhLnN1YnN0cmluZygwLHN0cmluZ2EubGVuZ3Ro
LTEpOw0KCX0NCglyZXR1cm4gc3RyaW5nYTsNCn0NCg0KDQovLyBjb250cm9s
bGEgc2UgdHV0dGkgaSBjYXJhdHRlcmkgZGkgcyBzb25vIGNvbnRlbnV0aSBp
biBzcGVjDQpmdW5jdGlvbiBpc1NwZWNpYWwgKHMsIHNwZWMpDQp7DQogIGZv
ciAoaT0zRDA7IGk8cy5sZW5ndGg7IGkrKykNCiAgICBpZiAoIWlzU3BlYyhz
LmNoYXJBdChpKSwgc3BlYykpDQogICAgICByZXR1cm4gZmFsc2U7DQogIHJl
dHVybiB0cnVlOw0KfQ0KDQovLyBjb250cm9sbGEgc2UgcyBjb250aWVuZSBh
bG1lbm8gdW4gY2FyYXR0ZXJlIGRpIHNwZWMNCmZ1bmN0aW9uIGhhc1NwZWNp
YWwgKHMsIHNwZWMpDQp7DQogIGZvciAoaT0zRDA7IGk8cy5sZW5ndGg7IGkr
KykNCiAgICBpZiAoaXNTcGVjKHMuY2hhckF0KGkpLCBzcGVjKSkNCiAgICAg
IHJldHVybiB0cnVlOw0KICByZXR1cm4gZmFsc2U7DQp9DQoNCi8vIGNvbnRy
b2xsYSBzZSBzID1FOCB1biBudW1lcm8gaW50ZXJvDQpmdW5jdGlvbiBpc0lu
dGVnZXIgKHMpDQp7DQogIHZhciBpOw0KICBmb3IgKGk9M0QwOyBpPHMubGVu
Z3RoOyBpKyspDQogICAgaWYgKCFpc051bWJlcihzLmNoYXJBdChpKSkpDQog
ICAgICByZXR1cm4gZmFsc2U7DQogIHJldHVybiB0cnVlOw0KfQ0KDQoNCi8v
IGNvbnRyb2xsYSBzZSBzID1FOCB1bmEgc3RyaW5nYSBmb3JtYXRhIGRhaSBz
b2xpIGNhcmF0dGVyaSBhbGZhYmV0aWNpID0NCm8gbnVtZXJpY2kgbyBkYSBc
Jz1FMD1FOD1FOT8/PUY5DQpmdW5jdGlvbiBpc0FsZmFOdW0gKHMpDQp7DQog
IHZhciBpOw0KICBmb3IgKGk9M0QwOyBpPHMubGVuZ3RoOyBpKyspDQogICAg
aWYgKCEoaXNTcGVjKHMuY2hhckF0KGkpLCAiXCc9RTA9RTg9RTk/Pz1GOSIp
IHx8ID0NCmlzTGV0dGVyKHMuY2hhckF0KGkpKSB8fCBpc051bWJlcihzLmNo
YXJBdChpKSkpKQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICByZXR1cm4gdHJ1
ZTsNCn0NCg0KLy8gY29udHJvbGxhIHNlIHMgPUU4IHVuYSBzdHJpbmdhIGZv
cm1hdGEgZGFpIHNvbGkgY2FyYXR0ZXJpIGFsZmFiZXRpY2kgPQ0KbyBudW1l
cmljaQ0KZnVuY3Rpb24gaXNSZWFsQWxmYU51bSAocykNCnsNCiAgdmFyIGk7
DQogIGZvciAoaT0zRDA7IGk8cy5sZW5ndGg7IGkrKykNCiAgICBpZiAoIShp
c0xldHRlcihzLmNoYXJBdChpKSkgfHwgaXNOdW1iZXIocy5jaGFyQXQoaSkp
KSkNCiAgICAgIHJldHVybiBmYWxzZTsNCiAgcmV0dXJuIHRydWU7DQp9DQoN
Ci8vIGNvbnRyb2xsYSBzZSBzID1FOCB1bmEgc3RyaW5nYSBmb3JtYXRhIGRh
aSBzb2xpIGNhcmF0dGVyaSBhbGZhYmV0aWNpID0NCm8gZGEgXCc9RTA9RTg9
RTk/Pz1GOSBvIGRhIHF1YWxjaGUgY2FyYXR0ZXJlIGRpIHNwZWMNCmZ1bmN0
aW9uIGlzQWxmYVNwZWMgKHMsIHNwZWMpDQp7DQogIHZhciBpOw0KICBmb3Ig
KGk9M0QwOyBpPHMubGVuZ3RoOyBpKyspDQogICAgaWYgKCEoaXNTcGVjKHMu
Y2hhckF0KGkpLCAiXCc9RTA9RTg9RTk/Pz1GOSIpIHx8ID0NCmlzTGV0dGVy
KHMuY2hhckF0KGkpKSB8fCBpc1NwZWMocy5jaGFyQXQoaSksIHNwZWMpKSkN
CiAgICAgIHJldHVybiBmYWxzZTsNCiAgcmV0dXJuIHRydWU7DQp9DQoNCi8v
IGNvbnRyb2xsYSBzZSBzID1FOCB1bmEgc3RyaW5nYSBmb3JtYXRhIGRhaSBz
b2xpIGNhcmF0dGVyaSBhbGZhYmV0aWNpID0NCm8gbnVtZXJpY2kgbyBkYSBc
Jz1FMD1FOD1FOT8/PUY5IG8gZGEgcXVhbGNoZSBjYXJhdHRlcmUgZGkgc3Bl
Yw0KZnVuY3Rpb24gaXNBbGZhTnVtU3BlYyAocywgc3BlYykNCnsNCiAgdmFy
IGk7DQogIGZvciAoaT0zRDA7IGk8cy5sZW5ndGg7IGkrKykNCiAgICBpZiAo
IShpc1NwZWMocy5jaGFyQXQoaSksICJcJz1FMD1FOD1FOT8/PUY5IikgfHwg
PQ0KaXNMZXR0ZXIocy5jaGFyQXQoaSkpIHx8IGlzU3BlYyhzLmNoYXJBdChp
KSwgc3BlYykgfHwgPQ0KaXNOdW1iZXIocy5jaGFyQXQoaSkpKSkNCiAgICAg
IHJldHVybiBmYWxzZTsNCiAgcmV0dXJuIHRydWU7DQp9DQoNCi8vIGNvbnRy
b2xsYSBzZSBzID1FOCB1bmEgc3RyaW5nYSBmb3JtYXRhIGRhaSBzb2xpIGNh
cmF0dGVyaSBhbGZhYmV0aWNpID0NCm8gbnVtZXJpY2kgbyBkYSBxdWFsY2hl
IGNhcmF0dGVyZSBkaSBzcGVjDQpmdW5jdGlvbiBpc1JlYWxBbGZhTnVtU3Bl
YyAocywgc3BlYykNCnsNCiAgdmFyIGk7DQogIGZvciAoaT0zRDA7IGk8cy5s
ZW5ndGg7IGkrKykNCiAgICBpZiAoIShpc0xldHRlcihzLmNoYXJBdChpKSkg
fHwgaXNTcGVjKHMuY2hhckF0KGkpLCBzcGVjKSB8fCA9DQppc051bWJlcihz
LmNoYXJBdChpKSkpKQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICByZXR1cm4g
dHJ1ZTsNCn0NCg0KLy8gY29udHJvbGxhIHNlIHMgPUU4IHVuYSBzdHJpbmdh
IGZvcm1hdGEgZGFpIHNvbGkgY2FyYXR0ZXJpIG51bWVyaWNpIG8gPQ0KZGEg
cXVhbGNoZSBjYXJhdHRlcmUgZGkgc3BlYw0KZnVuY3Rpb24gaXNOdW1TcGVj
IChzLCBzcGVjKQ0Kew0KICB2YXIgaTsNCiAgZm9yIChpPTNEMDsgaTxzLmxl
bmd0aDsgaSsrKQ0KICAgIGlmICghKGlzU3BlYyhzLmNoYXJBdChpKSwgc3Bl
YykgfHwgaXNOdW1iZXIocy5jaGFyQXQoaSkpKSkNCiAgICAgIHJldHVybiBm
YWxzZTsNCiAgcmV0dXJuIHRydWU7DQp9DQoNCi8vIGNvbnRyb2xsYSBzZSBz
IGNvbnRpZW5lIHNwYXppDQpmdW5jdGlvbiBoYXNXaGl0ZVNwYWNlIChzKQ0K
ew0KICB2YXIgaTsNCiAgZm9yIChpPTNEMDsgaTxzLmxlbmd0aDsgaSsrKQ0K
ICAgIGlmIChzLmNoYXJBdChpKT0zRD0zRCIgIikNCiAgICAgIHJldHVybiB0
cnVlOw0KICByZXR1cm4gZmFsc2U7DQp9DQoNCg0KLy8qKioqKioqKioqKioq
KioqKioqKioqKioqKg0KLy8NCi8vICBGVU5DVElPTiBTVUkgQ0FSQVRURVJJ
DQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKg0KDQovLyBjb250
cm9sbGEgc2UgaWwgY2FyYXR0ZXJlIGMgPUU4IHByZXNlbnRlIG5lbGxhIHN0
cmluZ2Egc3BlYw0KZnVuY3Rpb24gaXNTcGVjIChjLCBzcGVjKQ0Kew0KICB2
YXIgaTsNCiAgZm9yIChpPTNEMDsgaTxzcGVjLmxlbmd0aDsgaSsrKXsNCglp
ZiAoc3BlYy5jaGFyQXQoaSk9M0Q9M0RjKXsNCiAgICAgIHJldHVybiB0cnVl
Ow0KICAgIH0gID0yMA0KICB9ID0yMA0KICByZXR1cm4gZmFsc2U7DQp9DQoN
Ci8vIGNvbnRyb2xsYSBzZSBpbCBjYXJhdHRlcmUgYyA9RTggdW5hIGxldHRl
cmEgZGVsbCdhbGZhYmV0bw0KZnVuY3Rpb24gaXNMZXR0ZXIgKGMpDQp7DQog
IGlmICgoYz49M0QnYScgJiYgYzw9M0QneicpIHx8IChjPj0zRCdBJyAmJiBj
PD0zRCdaJykpDQogICAgcmV0dXJuIHRydWU7DQogIHJldHVybiBmYWxzZTsN
Cn0NCg0KLy8gY29udHJvbGxhIHNlIGlsIGNhcmF0dGVyZSBjID1FOCB1bmEg
Y2lmcmENCmZ1bmN0aW9uIGlzTnVtYmVyIChjKQ0Kew0KICBpZiAoYz49M0Qn
MCcgJiYgYzw9M0QnOScpDQogICAgcmV0dXJuIHRydWU7DQogIHJldHVybiBm
YWxzZTsNCn0NCg0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioNCi8v
DQovLyAgRlVOQ1RJT04gU1VHTEkgSU5URVJJDQovLw0KLy8qKioqKioqKioq
KioqKioqKioqKioqKioqDQoNCi8vIGNvbnRyb2xsYSBzZSBzID1FOCB1biBp
bnRlcm8gY29udGVudXRvIG5lbGwnaW50ZXJ2YWxsbyBjaGl1c28gW2EsYl0N
CmZ1bmN0aW9uIGlzSW50ZWdlckluUmFuZ2UgKHMsIGEsIGIpDQp7DQogIGlm
ICggIWlzSW50ZWdlcihzKSB8fCAhaXNJbnRlZ2VyKGEpIHx8ICFpc0ludGVn
ZXIoYikgKQ0KICAgIHJldHVybiBmYWxzZTsNCiAgaWYgKCAocGFyc2VJbnQo
cyk+PTNEcGFyc2VJbnQoYSkpICYmIChwYXJzZUludChzKTw9M0RwYXJzZUlu
dChiKSkgKQ0KICAgIHJldHVybiB0cnVlOw0KICByZXR1cm4gZmFsc2U7DQp9
DQoNCi8vIGNvbnRyb2xsYSBzZSBzID1FOCB1biBhbm5vIGRpIDIgbyA0IGNp
ZnJlIG5vbiBpbmZlcmlvcmUgYWwgMTg1MCBlIG5vbiA9DQpzdXBlcmlvcmUg
YWxsJ2Fubm8gY29ycmVudGUNCi8vZGEgcml2ZWRlcmUNCmZ1bmN0aW9uIGlz
WWVhciAocykNCnsNCiAgdmFyIGRhdGFvZGllcm5hID0zRCBuZXcgRGF0ZSgp
Ow0KICBpZiAoIChzLmxlbmd0aD0zRD0zRDQgJiYgaXNJbnRlZ2VySW5SYW5n
ZShzLCAiMTg1MCIsID0NCmRhdGFvZGllcm5hLmdldFllYXIoKSsxOTAwKSAp
IHx8DQogICAgICAgKHMubGVuZ3RoPTNEPTNEMiAmJiBpc0ludGVnZXJJblJh
bmdlKHMsICIwIiwgIjk5IikpICkNCiAgICByZXR1cm4gdHJ1ZTsNCiAgcmV0
dXJuIGZhbHNlOw0KfQ0KDQovLyBjb250cm9sbGEgc2UgcyA9RTggdW4gbWVz
ZSBvc3NpYSB1biBpbnRlcm8gY29udGVudXRvIG5lbGwnaW50ZXJ2YWxsbyA9
DQpjaGl1c28gWzEsMTJdDQpmdW5jdGlvbiBpc01vbnRoIChzKQ0Kew0KICBp
ZiAoaXNJbnRlZ2VySW5SYW5nZShzLCAiMSIsICIxMiIpKQ0KICAgIHJldHVy
biB0cnVlOw0KICByZXR1cm4gZmFsc2U7DQp9DQoNCi8vIGNvbnRyb2xsYSBz
ZSBzID1FOCB1biBnaW9ybm8gb3NzaWEgdW4gaW50ZXJvIGNvbnRlbnV0byA9
DQpuZWxsJ2ludGVydmFsbG8gY2hpdXNvIFsxLDMxXQ0KZnVuY3Rpb24gaXNE
YXkgKHMpDQp7DQogIGlmIChpc0ludGVnZXJJblJhbmdlKHMsICIxIiwgIjMx
IikpDQogICAgcmV0dXJuIHRydWU7DQogIHJldHVybiBmYWxzZTsNCn0NCg0K
ZnVuY3Rpb24gaGlkZURpdihJRCl7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoSUQpLnN0eWxlLmRpc3BsYXk9M0Qnbm9uZSc7DQp9DQo9MDkNCmZ1bmN0
aW9uIHNob3dEaXYoSUQpew0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKElE
KS5zdHlsZS5kaXNwbGF5PTNEJyc7DQp9DQoNCg0KLS0tLS0tPV9OZXh0UGFy
dF8wMDBfMDAwMF8wMUNBMzdFRC5CQjJEMTA3MA0KQ29udGVudC1UeXBlOiBh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0NCkNvbnRlbnQtVHJhbnNmZXItRW5j
b2Rpbmc6IHF1b3RlZC1wcmludGFibGUNCkNvbnRlbnQtTG9jYXRpb246IGh0
dHA6Ly93d3cuc2VsbGxhYmFua2luZy5jb20vQXV0ZW50aWNhemlvbmUvanNf
anNwU3VwcG9ydC5qcw0KDQovKg0KCVRlc3RhIHNlIGxhIGx1bmdoZXp6YSBk
ZWwgdGVzdG8gY29udGVudXRvIHNpYSB1Z3VhbGUgYSBxdWVsbGEgcGFzc2F0
YSBlID0NCnBhc3NhIGlsIGZ1b2NvIGFsbCdlbGVtZW50byBjb3JyZW50ZSAr
IG9mZnNldA0KKi8NCmZ1bmN0aW9uIGNoYW5nZUZvY3VzT2Zmc2V0IChJbnB1
dE9iaiwgSW5wdXRMZW4sIG9mZnNldCkgew0KICB2YXIgaTsNCiAgaWYgKElu
cHV0T2JqLnZhbHVlLmxlbmd0aD0zRD0zRElucHV0TGVuKSB7DQoJZm9yIChp
PTNEMDsgaTxJbnB1dE9iai5mb3JtLmxlbmd0aDsgaSsrKSB7DQogIAkJaWYg
KElucHV0T2JqLmZvcm0uZWxlbWVudHNbaV0ubmFtZT0zRD0zRElucHV0T2Jq
Lm5hbWUpIHsNCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoJCX0NCiAgID0y
MA0KCQlpID0zRCBpICsgb2Zmc2V0Ow0KCQlpZiAoaTxJbnB1dE9iai5mb3Jt
Lmxlbmd0aCkgew0KICAgICAgSW5wdXRPYmouZm9ybS5lbGVtZW50c1tpXS5m
b2N1cygpOw0KICAgIH0NCiAgfQ0KfQ0KDQoNCg0KDQoNCi8qDQogIFRlc3Rh
IHNlIGxhIGx1bmdoZXp6YSBkZWwgdGVzdG8gY29udGVudXRvIHNpYSB1Z3Vh
bGUgYSBxdWVsbGEgcGFzc2F0YSA9DQplIHBhc3NhIGlsIGZ1b2NvIGFsbCdl
bGVtZW50byBzdWNjZXNzaXZvDQoqLw0KZnVuY3Rpb24gY2hhbmdlRm9jdXMo
SW5wdXRPYmosIElucHV0TGVuKSB7DQoJY2hhbmdlRm9jdXNPZmZzZXQgKElu
cHV0T2JqLCBJbnB1dExlbiwgMSk7DQp9DQoNCg0KDQovKg0KCUltcG9zdGEg
aWwgZnVvY28gc3UgdW4gaXRlbQ0KKi8NCmZ1bmN0aW9uIHNldEZvY3VzIChJ
bnB1dE9iaikgew0KICBJbnB1dE9iai5mb2N1cygpOw0KfQ0KDQoNCg0KLyoN
CiAgQ29udHJvbGxhIGlsIHZhbG9yZSBkaSB1bmEgc2VsZWN0LCBlIHNlIHF1
ZXN0byA9RTggdWd1YWxlIGEgcXVlbGxvID0NCnBhc3NhdG8gY29tZSBwYXJh
bWV0cm8sIG1ldHRlIGlsIGNoZWNrIGFsIGNoZWNrYm94Lg0KKi8NCmZ1bmN0
aW9uIGNoYW5nZUNoZWNrYm94VmFsdWUoc2VsT2JqLCBjaGVja09iaiwgdmFs
b3JlKSB7DQoJaWYgKHNlbE9iai5vcHRpb25zW3NlbE9iai5zZWxlY3RlZElu
ZGV4XS52YWx1ZT0zRD0zRHZhbG9yZSkgew0KCQljaGVja09iai5jaGVja2Vk
ID0zRCB0cnVlOw0KCX0NCgllbHNlIHsNCgkJY2hlY2tPYmouY2hlY2tlZCA9
M0QgZmFsc2U7DQoJfQ0KfQ0KDQoNCg0KLyoNCiAgQ29udHJvbGxhIGNoZSBs
J3V0ZW50ZSBhYmJpYSBpIGNvb2tpZXMgYWJpbGl0YXRpDQoqLw0KZnVuY3Rp
b24gdGVzdENvb2tpZShkb2MsIHVybFJlZGlyZWN0KSB7PTIwDQo9MDkNCiAg
ZG9jLmNvb2tpZSA9M0QgImFyZUNvb2tpZXNFbmFibGVkIiArICI9M0QiICsg
ZXNjYXBlKCJsYXByb3ZhIik7DQogPTIwDQogIHZhciB0ZW1wID0zRCBkb2Mu
Y29va2llLmluZGV4T2YoImFyZUNvb2tpZXNFbmFibGVkPTNEIik7DQogPTIw
DQogIGlmICh0ZW1wPTNEPTNELTEpIHsNCiAgICB2YXIgcmVzdWx0ID0zRCBj
b25maXJtKCJMXCdpbnNlcmltZW50byBkZWkgY29kaWNpIG5vbiBoYSBhdnV0
byA9DQpzdWNjZXNzbyBwZXJjaD1FOSBpbCBicm93c2VyIGluIHV0aWxpenpv
IG5vbiBoYSBpIGNvb2tpZXMgYWJpbGl0YXRpLiA9DQpWZXJyYWkgb3JhIHJl
ZGlyZXR0byBhbGxhIEd1aWRhIGFsbFwnQXR0aXZhemlvbmUgZGVpIENvb2tp
ZXMiKTsNCiAgICBpZiAocmVzdWx0KSAgICAgPTIwDQogICAgICBsb2NhdGlv
bi5ocmVmID0zRCB1cmxSZWRpcmVjdDsNCiAgICBlbHNlDQogICAgICBsb2Nh
dGlvbi5ocmVmID0zRCAiL2luZGV4LmpzcCI7DQogIH0NCn0NCg0KDQoNCi8q
DQogIEFwcmUgaWwgcG9wdXAgcGVyIGkgY29va2llcw0KKi8NCmZ1bmN0aW9u
IHNob3dQT1AodXJsUG9wKSB7CT0wOQ0KCT0NCndpbmRvdy5vcGVuKHVybFBv
cCwncG9wX3VwX21zaWUnLCd0b3A9M0QxNTAwLGxlZnQ9M0QxNTAwLGhlaWdo
dD0zRDMwMCx3aWQ9DQp0aD0zRDM1MCxzY3JvbGxiYXJzPTNEeWVzLG5vcmVz
aXplJyk7DQp9DQoNCg0KDQovKg0KICBJbXBvc3RhIGNoZSA9RTggc3RhdG8g
c2VsZXppb25hdG8gdW4gbnVvdm8gc2Vydml6aW8gcHJlZmVyaXRvDQoqLw0K
ZnVuY3Rpb24gc2V0UHJlZlNlcnZpY2Uoc2VsZWN0U2Vydml6aSwgc2Vydml6
aW9PbGQsIGNoZWNrYm94Q2hhbmdlZCwgPQ0KaGlkZGVuQ2hhbmdlZCkgew0K
CWlmIChjaGVja2JveENoYW5nZWQpIHsNCgkJaWYgPQ0KKHNlcnZpemlvT2xk
IT0zRHNlbGVjdFNlcnZpemkub3B0aW9uc1tzZWxlY3RTZXJ2aXppLnNlbGVj
dGVkSW5kZXhdLnZhbHVlKT0NCiB7DQoJCQloaWRkZW5DaGFuZ2VkLnZhbHVl
ID0zRCA9DQpzZWxlY3RTZXJ2aXppLm9wdGlvbnNbc2VsZWN0U2Vydml6aS5z
ZWxlY3RlZEluZGV4XS52YWx1ZTsNCgkJfQ0KCX0NCn0NCg0KDQoNCi8qDQog
IERpc2FiaWxpdGEgdW4gYm90dG9uZQ0KKi8NCmZ1bmN0aW9uIGRpc2FibGVC
dXR0b24ocHVsc2FudGUpIHsNCglwdWxzYW50ZS5kaXNhYmxlZCA9M0QgdHJ1
ZTsNCn0NCg0KLyoNCiAgQWJpbGl0YSB1biBib3R0b25lDQoqLw0KZnVuY3Rp
b24gZW5hYmxlQnV0dG9uKHB1bHNhbnRlKSB7DQoJcHVsc2FudGUuZGlzYWJs
ZWQgPTNEIGZhbHNlOw0KfQ0KDQotLS0tLS09X05leHRQYXJ0XzAwMF8wMDAw
XzAxQ0EzN0VELkJCMkQxMDcwDQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbQ0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVv
dGVkLXByaW50YWJsZQ0KQ29udGVudC1Mb2NhdGlvbjogaHR0cDovL3d3dy5z
ZWxsbGFiYW5raW5nLmNvbS9BdXRlbnRpY2F6aW9uZS9qcXVlcnktMS4zLjIu
bWluLmpzDQoNCi8qDQogKiBqUXVlcnkgSmF2YVNjcmlwdCBMaWJyYXJ5IHYx
LjMuMg0KICogaHR0cDovL2pxdWVyeS5jb20vDQogKg0KICogQ29weXJpZ2h0
IChjKSAyMDA5IEpvaG4gUmVzaWcNCiAqIER1YWwgbGljZW5zZWQgdW5kZXIg
dGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLg0KICogaHR0cDovL2RvY3MuanF1
ZXJ5LmNvbS9MaWNlbnNlDQogKg0KICogRGF0ZTogMjAwOS0wMi0xOSAxNzoz
NDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkNCiAqIFJldmlzaW9uOiA2
MjQ2DQogKi8NCihmdW5jdGlvbigpe3ZhciA9DQpsPTNEdGhpcyxnLHk9M0Rs
LmpRdWVyeSxwPTNEbC4kLG89M0RsLmpRdWVyeT0zRGwuJD0zRGZ1bmN0aW9u
KEUsRil7cmV0dXJuPQ0KIG5ldyA9DQpvLmZuLmluaXQoRSxGKX0sRD0zRC9e
W148XSooPCgufFxzKSs+KVtePl0qJHxeIyhbXHctXSspJC8sZj0zRC9eLlte
OiNcW1wuPQ0KLF0qJC87by5mbj0zRG8ucHJvdG90eXBlPTNEe2luaXQ6ZnVu
Y3Rpb24oRSxIKXtFPTNERXx8ZG9jdW1lbnQ7aWYoRS5ub2RlVD0NCnlwZSl7
dGhpc1swXT0zREU7dGhpcy5sZW5ndGg9M0QxO3RoaXMuY29udGV4dD0zREU7
cmV0dXJuIHRoaXN9aWYodHlwZW9mID0NCkU9M0Q9M0Q9M0Qic3RyaW5nIil7
dmFyID0NCkc9M0RELmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sx
XSl7RT0zRG8uY2xlYW4oW0dbMV1dLEgpfWVsc2V7dmFyID0NCkk9M0Rkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChHWzNdKTtpZihJJiZJLmlkIT0zREdbM10p
e3JldHVybiA9DQpvKCkuZmluZChFKX12YXIgRj0zRG8oSXx8W10pO0YuY29u
dGV4dD0zRGRvY3VtZW50O0Yuc2VsZWN0b3I9M0RFO3JldHVybiA9DQpGfX1l
bHNle3JldHVybiBvKEgpLmZpbmQoRSl9fWVsc2V7aWYoby5pc0Z1bmN0aW9u
KEUpKXtyZXR1cm4gPQ0Kbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUuc2Vs
ZWN0b3ImJkUuY29udGV4dCl7dGhpcy5zZWxlY3Rvcj0zREUuc2VsZWN0bz0N
CnI7dGhpcy5jb250ZXh0PTNERS5jb250ZXh0fXJldHVybiA9DQp0aGlzLnNl
dEFycmF5KG8uaXNBcnJheShFKT9FOm8ubWFrZUFycmF5KEUpKX0sc2VsZWN0
b3I6IiIsanF1ZXJ5OiIxLjMuMiIsPQ0Kc2l6ZTpmdW5jdGlvbigpe3JldHVy
biB0aGlzLmxlbmd0aH0sZ2V0OmZ1bmN0aW9uKEUpe3JldHVybiA9DQpFPTNE
PTNEPTNEZz9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzKTp0aGlz
W0VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oPQ0KRixILEUpe3ZhciA9DQpHPTNE
byhGKTtHLnByZXZPYmplY3Q9M0R0aGlzO0cuY29udGV4dD0zRHRoaXMuY29u
dGV4dDtpZihIPTNEPTNEPTNEImZpbmQiPQ0KKXtHLnNlbGVjdG9yPTNEdGhp
cy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iID0NCiI6IiIpK0V9ZWxzZXtp
ZihIKXtHLnNlbGVjdG9yPTNEdGhpcy5zZWxlY3RvcisiLiIrSCsiKCIrRSsi
KSJ9fXJldHVybiA9DQpHfSxzZXRBcnJheTpmdW5jdGlvbihFKXt0aGlzLmxl
bmd0aD0zRDA7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcyxFPQ0K
KTtyZXR1cm4gdGhpc30sZWFjaDpmdW5jdGlvbihGLEUpe3JldHVybiA9DQpv
LmVhY2godGhpcyxGLEUpfSxpbmRleDpmdW5jdGlvbihFKXtyZXR1cm4gPQ0K
by5pbkFycmF5KEUmJkUuanF1ZXJ5P0VbMF06RSx0aGlzKX0sYXR0cjpmdW5j
dGlvbihGLEgsRyl7dmFyID0NCkU9M0RGO2lmKHR5cGVvZiBGPTNEPTNEPTNE
InN0cmluZyIpe2lmKEg9M0Q9M0Q9M0RnKXtyZXR1cm4gPQ0KdGhpc1swXSYm
b1tHfHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPTNEe307RVtGXT0zREh9
fXJldHVybiA9DQp0aGlzLmVhY2goZnVuY3Rpb24oSSl7Zm9yKEYgaW4gPQ0K
RSl7by5hdHRyKEc/dGhpcy5zdHlsZTp0aGlzLEYsby5wcm9wKHRoaXMsRVtG
XSxHLEksRikpfX0pfSxjc3M6ZnVuY3Rpb24oRT0NCixGKXtpZigoRT0zRD0z
RCJ3aWR0aCJ8fEU9M0Q9M0QiaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7
Rj0zRGd9cmV0dXJuID0NCnRoaXMuYXR0cihFLEYsImN1ckNTUyIpfSx0ZXh0
OmZ1bmN0aW9uKEYpe2lmKHR5cGVvZiA9DQpGIT0zRD0zRCJvYmplY3QiJiZG
IT0zRG51bGwpe3JldHVybiA9DQp0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlz
WzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KS5jcmVhdGVU
ZXh0PQ0KTm9kZShGKSl9dmFyID0NCkU9M0QiIjtvLmVhY2goRnx8dGhpcyxm
dW5jdGlvbigpe28uZWFjaCh0aGlzLmNoaWxkTm9kZXMsZnVuY3Rpb24oKXtp
Zih0aGk9DQpzLm5vZGVUeXBlIT0zRDgpe0UrPTNEdGhpcy5ub2RlVHlwZSE9
M0QxP3RoaXMubm9kZVZhbHVlOm8uZm4udGV4dChbdGhpc10pPQ0KfX0pfSk7
cmV0dXJuIEV9LHdyYXBBbGw6ZnVuY3Rpb24oRSl7aWYodGhpc1swXSl7dmFy
ID0NCkY9M0RvKEUsdGhpc1swXS5vd25lckRvY3VtZW50KS5jbG9uZSgpO2lm
KHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5pbnNlcnRCZWY9DQpvcmUodGhpc1sw
XSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgPQ0KRz0zRHRoaXM7d2hpbGUoRy5m
aXJzdENoaWxkKXtHPTNERy5maXJzdENoaWxkfXJldHVybiA9DQpHfSkuYXBw
ZW5kKHRoaXMpfXJldHVybiB0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24oRSl7
cmV0dXJuID0NCnRoaXMuZWFjaChmdW5jdGlvbigpe28odGhpcykuY29udGVu
dHMoKS53cmFwQWxsKEUpfSl9LHdyYXA6ZnVuY3Rpb24oRSl7cmU9DQp0dXJu
IHRoaXMuZWFjaChmdW5jdGlvbigpe28odGhpcykud3JhcEFsbChFKX0pfSxh
cHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gPQ0KdGhpcy5kb21NYW5pcChhcmd1
bWVudHMsdHJ1ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPTNEPTNE
MSl7dGhpcy5hcD0NCnBlbmRDaGlsZChFKX19KX0scHJlcGVuZDpmdW5jdGlv
bigpe3JldHVybiA9DQp0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1
bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9M0Q9M0QxKXt0aGlzLmluPQ0K
c2VydEJlZm9yZShFLHRoaXMuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5j
dGlvbigpe3JldHVybiA9DQp0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxz
ZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUs
PQ0KdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gPQ0KdGhpcy5k
b21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oRSl7dGhpcy5wYXJl
bnROb2RlLmluc2VydEJlZm9yZShFLD0NCnRoaXMubmV4dFNpYmxpbmcpfSl9
LGVuZDpmdW5jdGlvbigpe3JldHVybiA9DQp0aGlzLnByZXZPYmplY3R8fG8o
W10pfSxwdXNoOltdLnB1c2gsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxp
Y2UsZmluZDpmPQ0KdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0aD0zRD0zRD0z
RDEpe3ZhciA9DQpGPTNEdGhpcy5wdXNoU3RhY2soW10sImZpbmQiLEUpO0Yu
bGVuZ3RoPTNEMDtvLmZpbmQoRSx0aGlzWzBdLEYpO3JldHVybiA9DQpGfWVs
c2V7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8udW5pcXVlKG8ubWFwKHRoaXMs
ZnVuY3Rpb24oRyl7cmV0dXJuID0NCm8uZmluZChFLEcpfSkpLCJmaW5kIixF
KX19LGNsb25lOmZ1bmN0aW9uKEcpe3ZhciA9DQpFPTNEdGhpcy5tYXAoZnVu
Y3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVFdmVudCYmIW8uaXNYTUxE
b2ModGhpcykpe3ZhPQ0KciBJPTNEdGhpcy5vdXRlckhUTUw7aWYoIUkpe3Zh
ciA9DQpKPTNEdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpO0ouYXBwZW5kQ2hpbGQodGhpcy5jbG9uZU5vZGUoPQ0KdHJ1ZSkpO0k9
M0RKLmlubmVySFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8gPQ0K
alF1ZXJ5XGQrPTNEIig/OlxkK3xudWxsKSIvZywiIikucmVwbGFjZSgvXlxz
Ki8sIiIpXSlbMF19ZWxzZXtyZXR1cm4gPQ0KdGhpcy5jbG9uZU5vZGUodHJ1
ZSl9fSk7aWYoRz0zRD0zRD0zRHRydWUpe3ZhciA9DQpIPTNEdGhpcy5maW5k
KCIqIikuYW5kU2VsZigpLEY9M0QwO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5l
YWNoKGZ1bmN0aW9uKCl7PQ0KaWYodGhpcy5ub2RlTmFtZSE9M0Q9M0RIW0Zd
Lm5vZGVOYW1lKXtyZXR1cm59dmFyID0NCkk9M0RvLmRhdGEoSFtGXSwiZXZl
bnRzIik7Zm9yKHZhciBLIGluIEkpe2Zvcih2YXIgSiBpbiA9DQpJW0tdKXtv
LmV2ZW50LmFkZCh0aGlzLEssSVtLXVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9
KX1yZXR1cm4gPQ0KRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3JldHVybiA9DQp0
aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlzLGZ1
bmN0aW9uKEcsRil7cmV0dXJuID0NCkUuY2FsbChHLEYpfSl8fG8ubXVsdGlG
aWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihGKXtyZXR1cm4gPQ0KRi5u
b2RlVHlwZT0zRD0zRD0zRDF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVu
Y3Rpb24oRSl7dmFyID0NCkc9M0RvLmV4cHIubWF0Y2guUE9TLnRlc3QoRSk/
byhFKTpudWxsLEY9M0QwO3JldHVybiA9DQp0aGlzLm1hcChmdW5jdGlvbigp
e3ZhciA9DQpIPTNEdGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1lbnQpe2lm
KEc/Ry5pbmRleChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoPQ0KSCwiY2xv
c2VzdCIsRik7cmV0dXJuID0NCkh9SD0zREgucGFyZW50Tm9kZTtGKyt9fSl9
LG5vdDpmdW5jdGlvbihFKXtpZih0eXBlb2YgPQ0KRT0zRD0zRD0zRCJzdHJp
bmciKXtpZihmLnRlc3QoRSkpe3JldHVybiA9DQp0aGlzLnB1c2hTdGFjayhv
Lm11bHRpRmlsdGVyKEUsdGhpcyx0cnVlKSwibm90IixFKX1lbHNle0U9M0Rv
Lm11bHRpRmlsdGVyPQ0KKEUsdGhpcyl9fXZhciBGPTNERS5sZW5ndGgmJkVb
RS5sZW5ndGgtMV0hPTNEPTNEZyYmIUUubm9kZVR5cGU7cmV0dXJuID0NCnRo
aXMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuID0NCkY/by5pbkFycmF5KHRo
aXMsRSk8MDp0aGlzIT0zREV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiA9
DQp0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCks
dHlwZW9mID0NCkU9M0Q9M0Q9M0Qic3RyaW5nIj9vKEUpOm8ubWFrZUFycmF5
KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4gPQ0KISFFJiZvLm11bHRp
RmlsdGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1bmN0aW9uKEUp
e3JldHVybiA9DQohIUUmJnRoaXMuaXMoIi4iK0UpfSx2YWw6ZnVuY3Rpb24o
Syl7aWYoSz0zRD0zRD0zRGcpe3ZhciA9DQpFPTNEdGhpc1swXTtpZihFKXtp
ZihvLm5vZGVOYW1lKEUsIm9wdGlvbiIpKXtyZXR1cm4oRS5hdHRyaWJ1dGVz
LnZhbHVlfHx7PQ0KfSkuc3BlY2lmaWVkP0UudmFsdWU6RS50ZXh0fWlmKG8u
bm9kZU5hbWUoRSwic2VsZWN0Iikpe3ZhciA9DQpJPTNERS5zZWxlY3RlZElu
ZGV4LEw9M0RbXSxNPTNERS5vcHRpb25zLEg9M0RFLnR5cGU9M0Q9M0Qic2Vs
ZWN0LW9uZSI7aWYoPQ0KSTwwKXtyZXR1cm4gbnVsbH1mb3IodmFyIEY9M0RI
P0k6MCxKPTNESD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyID0NCkc9M0RN
W0ZdO2lmKEcuc2VsZWN0ZWQpe0s9M0RvKEcpLnZhbCgpO2lmKEgpe3JldHVy
biBLfUwucHVzaChLKX19cmV0dXJuID0NCkx9cmV0dXJuKEUudmFsdWV8fCIi
KS5yZXBsYWNlKC9cci9nLCIiKX1yZXR1cm4gZ31pZih0eXBlb2YgPQ0KSz0z
RD0zRD0zRCJudW1iZXIiKXtLKz0zRCIifXJldHVybiA9DQp0aGlzLmVhY2go
ZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT0zRDEpe3JldHVybn1pZihv
LmlzQXJyYXkoSykmJi9yYWRpPQ0Kb3xjaGVja2JveC8udGVzdCh0aGlzLnR5
cGUpKXt0aGlzLmNoZWNrZWQ9M0Qoby5pbkFycmF5KHRoaXMudmFsdWUsSyk+
PTNEMD0NCnx8by5pbkFycmF5KHRoaXMubmFtZSxLKT49M0QwKX1lbHNle2lm
KG8ubm9kZU5hbWUodGhpcywic2VsZWN0Iikpe3ZhciA9DQpOPTNEby5tYWtl
QXJyYXkoSyk7bygib3B0aW9uIix0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7dGhp
cy5zZWxlY3RlZD0zRChvLmluPQ0KQXJyYXkodGhpcy52YWx1ZSxOKT49M0Qw
fHxvLmluQXJyYXkodGhpcy50ZXh0LE4pPj0zRDApfSk7aWYoIU4ubGVuZ3Ro
KXt0aD0NCmlzLnNlbGVjdGVkSW5kZXg9M0QtMX19ZWxzZXt0aGlzLnZhbHVl
PTNES319fSl9LGh0bWw6ZnVuY3Rpb24oRSl7cmV0dXJuID0NCkU9M0Q9M0Q9
M0RnPyh0aGlzWzBdP3RoaXNbMF0uaW5uZXJIVE1MLnJlcGxhY2UoLyA9DQpq
UXVlcnlcZCs9M0QiKD86XGQrfG51bGwpIi9nLCIiKTpudWxsKTp0aGlzLmVt
cHR5KCkuYXBwZW5kKEUpfSxyZXBsYWNlV2l0PQ0KaDpmdW5jdGlvbihFKXty
ZXR1cm4gdGhpcy5hZnRlcihFKS5yZW1vdmUoKX0sZXE6ZnVuY3Rpb24oRSl7
cmV0dXJuID0NCnRoaXMuc2xpY2UoRSwrRSsxKX0sc2xpY2U6ZnVuY3Rpb24o
KXtyZXR1cm4gPQ0KdGhpcy5wdXNoU3RhY2soQXJyYXkucHJvdG90eXBlLnNs
aWNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwic2xpY2UiLEFycmF5Lj0NCnBy
b3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpKX0sbWFw
OmZ1bmN0aW9uKEUpe3JldHVybiA9DQp0aGlzLnB1c2hTdGFjayhvLm1hcCh0
aGlzLGZ1bmN0aW9uKEcsRil7cmV0dXJuID0NCkUuY2FsbChHLEYsRyl9KSl9
LGFuZFNlbGY6ZnVuY3Rpb24oKXtyZXR1cm4gPQ0KdGhpcy5hZGQodGhpcy5w
cmV2T2JqZWN0KX0sZG9tTWFuaXA6ZnVuY3Rpb24oSixNLEwpe2lmKHRoaXNb
MF0pe3ZhciA9DQpJPTNEKHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1sw
XSkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEY9M0RvLmNsZWFuPQ0KKEos
KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSksSSksSD0zREkuZmly
c3RDaGlsZDtpZihIKXtmb3IodmFyID0NCkc9M0QwLEU9M0R0aGlzLmxlbmd0
aDtHPEU7RysrKXtMLmNhbGwoSyh0aGlzW0ddLEgpLHRoaXMubGVuZ3RoPjF8
fEc+MD9JLmM9DQpsb25lTm9kZSh0cnVlKTpJKX19aWYoRil7by5lYWNoKEYs
eil9fXJldHVybiB0aGlzO2Z1bmN0aW9uIEsoTixPKXtyZXR1cm4gPQ0KTSYm
by5ub2RlTmFtZShOLCJ0YWJsZSIpJiZvLm5vZGVOYW1lKE8sInRyIik/KE4u
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInRibz0NCmR5IilbMF18fE4uYXBwZW5k
Q2hpbGQoTi5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5Iikp
KTpOfX19O28uZm49DQouaW5pdC5wcm90b3R5cGU9M0RvLmZuO2Z1bmN0aW9u
ID0NCnooRSxGKXtpZihGLnNyYyl7by5hamF4KHt1cmw6Ri5zcmMsYXN5bmM6
ZmFsc2UsZGF0YVR5cGU6InNjcmlwdCJ9KX1lbHNle289DQouZ2xvYmFsRXZh
bChGLnRleHR8fEYudGV4dENvbnRlbnR8fEYuaW5uZXJIVE1MfHwiIil9aWYo
Ri5wYXJlbnROb2RlKXtGLnBhPQ0KcmVudE5vZGUucmVtb3ZlQ2hpbGQoRil9
fWZ1bmN0aW9uIGUoKXtyZXR1cm4gK25ldyA9DQpEYXRlfW8uZXh0ZW5kPTNE
by5mbi5leHRlbmQ9M0RmdW5jdGlvbigpe3ZhciA9DQpKPTNEYXJndW1lbnRz
WzBdfHx7fSxIPTNEMSxJPTNEYXJndW1lbnRzLmxlbmd0aCxFPTNEZmFsc2Us
RztpZih0eXBlb2YgPQ0KSj0zRD0zRD0zRCJib29sZWFuIil7RT0zREo7Sj0z
RGFyZ3VtZW50c1sxXXx8e307SD0zRDJ9aWYodHlwZW9mID0NCkohPTNEPTNE
Im9iamVjdCImJiFvLmlzRnVuY3Rpb24oSikpe0o9M0R7fX1pZihJPTNEPTNE
SCl7Sj0zRHRoaXM7LS1IfWZvcig9DQo7SDxJO0grKyl7aWYoKEc9M0Rhcmd1
bWVudHNbSF0pIT0zRG51bGwpe2Zvcih2YXIgRiBpbiBHKXt2YXIgPQ0KSz0z
REpbRl0sTD0zREdbRl07aWYoSj0zRD0zRD0zREwpe2NvbnRpbnVlfWlmKEUm
JkwmJnR5cGVvZiA9DQpMPTNEPTNEPTNEIm9iamVjdCImJiFMLm5vZGVUeXBl
KXtKW0ZdPTNEby5leHRlbmQoRSxLfHwoTC5sZW5ndGghPTNEbnVsbD9bPQ0K
XTp7fSksTCl9ZWxzZXtpZihMIT0zRD0zRGcpe0pbRl09M0RMfX19fX1yZXR1
cm4gSn07dmFyID0NCmI9M0Qvei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNp
dHl8em9vbXxsaW5lLT9oZWlnaHQvaSxxPTNEZG9jdW1lbnQuZGVmYXU9DQps
dFZpZXd8fHt9LHM9M0RPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO28uZXh0
ZW5kKHtub0NvbmZsaWN0OmZ1bmN0aW9uKEUpPQ0Ke2wuJD0zRHA7aWYoRSl7
bC5qUXVlcnk9M0R5fXJldHVybiBvfSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKEUp
e3JldHVybiA9DQpzLmNhbGwoRSk9M0Q9M0Q9M0QiW29iamVjdCBGdW5jdGlv
bl0ifSxpc0FycmF5OmZ1bmN0aW9uKEUpe3JldHVybiA9DQpzLmNhbGwoRSk9
M0Q9M0Q9M0QiW29iamVjdCBBcnJheV0ifSxpc1hNTERvYzpmdW5jdGlvbihF
KXtyZXR1cm4gPQ0KRS5ub2RlVHlwZT0zRD0zRD0zRDkmJkUuZG9jdW1lbnRF
bGVtZW50Lm5vZGVOYW1lIT0zRD0zRCJIVE1MInx8ISFFLm93bmVyRD0NCm9j
dW1lbnQmJm8uaXNYTUxEb2MoRS5vd25lckRvY3VtZW50KX0sZ2xvYmFsRXZh
bDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnQ9DQplc3QoRykpe3ZhciA9DQpG
PTNEZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEU9M0Q9DQpkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzY3JpcHQiKTtFLnR5cGU9M0QidGV4dC9qYXZhc2NyaXB0
IjtpZihvLnN1cHBvcnQuPQ0Kc2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShHKSl9ZWxzZXtFLnRleHQ9M0RHfUYu
aT0NCm5zZXJ0QmVmb3JlKEUsRi5maXJzdENoaWxkKTtGLnJlbW92ZUNoaWxk
KEUpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oRixFKXtyZXQ9DQp1cm4gPQ0KRi5u
b2RlTmFtZSYmRi5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPTNEPTNERS50b1Vw
cGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKD0NCkcsSyxGKXt2YXIgRSxIPTNE
MCxJPTNERy5sZW5ndGg7aWYoRil7aWYoST0zRD0zRD0zRGcpe2ZvcihFIGlu
ID0NCkcpe2lmKEsuYXBwbHkoR1tFXSxGKT0zRD0zRD0zRGZhbHNlKXticmVh
a319fWVsc2V7Zm9yKDtIPEk7KXtpZihLLmFwcGx5KEc9DQpbSCsrXSxGKT0z
RD0zRD0zRGZhbHNlKXticmVha319fX1lbHNle2lmKEk9M0Q9M0Q9M0RnKXtm
b3IoRSBpbiA9DQpHKXtpZihLLmNhbGwoR1tFXSxFLEdbRV0pPTNEPTNEPTNE
ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IodmFyID0NCko9M0RHWzBdO0g8SSYm
Sy5jYWxsKEosSCxKKSE9M0Q9M0RmYWxzZTtKPTNER1srK0hdKXt9fX1yZXR1
cm4gPQ0KR30scHJvcDpmdW5jdGlvbihILEksRyxGLEUpe2lmKG8uaXNGdW5j
dGlvbihJKSl7ST0zREkuY2FsbChILEYpfXJldHVybiA9DQp0eXBlb2YgPQ0K
ST0zRD0zRD0zRCJudW1iZXIiJiZHPTNEPTNEImN1ckNTUyImJiFiLnRlc3Qo
RSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7YWRkOj0NCmZ1bmN0aW9uKEUsRil7
by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYo
RS5ub2RlVHlwZT0zRD0zRD0NCjEmJiFvLmNsYXNzTmFtZS5oYXMoRS5jbGFz
c05hbWUsSCkpe0UuY2xhc3NOYW1lKz0zRChFLmNsYXNzTmFtZT8iID0NCiI6
IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5cGU9
M0Q9M0QxKXtFLmNsYXNzTmFtZT0zREYhPTNEPQ0KPTNEZz9vLmdyZXAoRS5j
bGFzc05hbWUuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcpe3JldHVybiA9DQoh
by5jbGFzc05hbWUuaGFzKEYsRyl9KS5qb2luKCIgIik6IiJ9fSxoYXM6ZnVu
Y3Rpb24oRixFKXtyZXR1cm4gPQ0KRiYmby5pbkFycmF5KEUsKEYuY2xhc3NO
YW1lfHxGKS50b1N0cmluZygpLnNwbGl0KC9ccysvKSk+LTF9fSxzd2FwOmZ1
bmN0aT0NCm9uKEgsRyxJKXt2YXIgRT0zRHt9O2Zvcih2YXIgRiBpbiA9DQpH
KXtFW0ZdPTNESC5zdHlsZVtGXTtILnN0eWxlW0ZdPTNER1tGXX1JLmNhbGwo
SCk7Zm9yKHZhciBGIGluID0NCkcpe0guc3R5bGVbRl09M0RFW0ZdfX0sY3Nz
OmZ1bmN0aW9uKEgsRixKLEUpe2lmKEY9M0Q9M0Qid2lkdGgifHxGPTNEPTNE
Img9DQplaWdodCIpe3ZhciA9DQpMLEc9M0R7cG9zaXRpb246ImFic29sdXRl
Iix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sSz0zREY9
M0Q9M0Q9DQoid2lkdGgiP1siTGVmdCIsIlJpZ2h0Il06WyJUb3AiLCJCb3R0
b20iXTtmdW5jdGlvbiA9DQpJKCl7TD0zREY9M0Q9M0Qid2lkdGgiP0gub2Zm
c2V0V2lkdGg6SC5vZmZzZXRIZWlnaHQ7aWYoRT0zRD0zRD0zRCJib3JkZXIi
PQ0KKXtyZXR1cm59by5lYWNoKEssZnVuY3Rpb24oKXtpZighRSl7TC09M0Rw
YXJzZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciKz0NCnRoaXMsdHJ1ZSkp
fHwwfWlmKEU9M0Q9M0Q9M0QibWFyZ2luIil7TCs9M0RwYXJzZUZsb2F0KG8u
Y3VyQ1NTKEgsIm1hcmdpbiI9DQordGhpcyx0cnVlKSl8fDB9ZWxzZXtMLT0z
RHBhcnNlRmxvYXQoby5jdXJDU1MoSCwiYm9yZGVyIit0aGlzKyJXaWR0aCIs
dHJ1PQ0KZSkpfHwwfX0pfWlmKEgub2Zmc2V0V2lkdGghPTNEPTNEMCl7SSgp
fWVsc2V7by5zd2FwKEgsRyxJKX1yZXR1cm4gPQ0KTWF0aC5tYXgoMCxNYXRo
LnJvdW5kKEwpKX1yZXR1cm4gPQ0Kby5jdXJDU1MoSCxGLEopfSxjdXJDU1M6
ZnVuY3Rpb24oSSxGLEcpe3ZhciA9DQpMLEU9M0RJLnN0eWxlO2lmKEY9M0Q9
M0Qib3BhY2l0eSImJiFvLnN1cHBvcnQub3BhY2l0eSl7TD0zRG8uYXR0cihF
LCJvcGFjPQ0KaXR5Iik7cmV0dXJuID0NCkw9M0Q9M0QiIj8iMSI6TH1pZihG
Lm1hdGNoKC9mbG9hdC9pKSl7Rj0zRHd9aWYoIUcmJkUmJkVbRl0pe0w9M0RF
W0ZdfWVsc2U9DQp7aWYocS5nZXRDb21wdXRlZFN0eWxlKXtpZihGLm1hdGNo
KC9mbG9hdC9pKSl7Rj0zRCJmbG9hdCJ9Rj0zREYucmVwbGFjZSgvPQ0KKFtB
LVpdKS9nLCItJDEiKS50b0xvd2VyQ2FzZSgpO3ZhciA9DQpNPTNEcS5nZXRD
b21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD0zRE0uZ2V0UHJvcGVydHlW
YWx1ZShGKX1pZihGPTNEPTNEPQ0KIm9wYWNpdHkiJiZMPTNEPTNEIiIpe0w9
M0QiMSJ9fWVsc2V7aWYoSS5jdXJyZW50U3R5bGUpe3ZhciA9DQpKPTNERi5y
ZXBsYWNlKC9cLShcdykvZyxmdW5jdGlvbihOLE8pe3JldHVybiA9DQpPLnRv
VXBwZXJDYXNlKCl9KTtMPTNESS5jdXJyZW50U3R5bGVbRl18fEkuY3VycmVu
dFN0eWxlW0pdO2lmKCEvXlxkKyhweCk/PQ0KJC9pLnRlc3QoTCkmJi9eXGQv
LnRlc3QoTCkpe3ZhciA9DQpIPTNERS5sZWZ0LEs9M0RJLnJ1bnRpbWVTdHls
ZS5sZWZ0O0kucnVudGltZVN0eWxlLmxlZnQ9M0RJLmN1cnJlbnRTdHlsZS5s
PQ0KZWZ0O0UubGVmdD0zREx8fDA7TD0zREUucGl4ZWxMZWZ0KyJweCI7RS5s
ZWZ0PTNESDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PTNESz0NCn19fX1yZXR1cm4g
TH0sY2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9M0RLfHxkb2N1bWVudDtpZih0
eXBlb2YgPQ0KSy5jcmVhdGVFbGVtZW50PTNEPTNEPTNEInVuZGVmaW5lZCIp
e0s9M0RLLm93bmVyRG9jdW1lbnR8fEtbMF0mJktbMF0ub3duZT0NCnJEb2N1
bWVudHx8ZG9jdW1lbnR9aWYoIUkmJkYubGVuZ3RoPTNEPTNEPTNEMSYmdHlw
ZW9mID0NCkZbMF09M0Q9M0Q9M0Qic3RyaW5nIil7dmFyID0NCkg9M0QvXjwo
XHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltLLmNyZWF0
ZUVsZW1lbnQoSFsxXSldfX12YXI9DQogPQ0KRz0zRFtdLEU9M0RbXSxMPTNE
Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5jdGlvbihQLFMp
e2lmKHR5cGVvZj0NCiBTPTNEPTNEPTNEIm51bWJlciIpe1MrPTNEIiJ9aWYo
IVMpe3JldHVybn1pZih0eXBlb2YgPQ0KUz0zRD0zRD0zRCJzdHJpbmciKXtT
PTNEUy5yZXBsYWNlKC8oPChcdyspW14+XSo/KVwvPi9nLGZ1bmN0aW9uKFUs
VixUKXtyZT0NCnR1cm4gPQ0KVC5tYXRjaCgvXihhYmJyfGJyfGNvbHxpbWd8
aW5wdXR8bGlua3xtZXRhfHBhcmFtfGhyfGFyZWF8ZW1iZWQpJC9pKT9VOlYr
Ij0NCj48LyIrVCsiPiJ9KTt2YXIgPQ0KTz0zRFMucmVwbGFjZSgvXlxzKy8s
IiIpLnN1YnN0cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciA9DQpRPTNE
IU8uaW5kZXhPZigiPG9wdCIpJiZbMSwiPHNlbGVjdCA9DQptdWx0aXBsZT0z
RCdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il18fCFPLmluZGV4T2YoIjxsZWci
KSYmWzEsIjxmaWVsZHNldD4iPQ0KLCI8L2ZpZWxkc2V0PiJdfHxPLm1hdGNo
KC9ePCh0aGVhZHx0Ym9keXx0Zm9vdHxjb2xnfGNhcCkvKSYmWzEsIjx0YWJs
ZT4iLD0NCiI8L3RhYmxlPiJdfHwhTy5pbmRleE9mKCI8dHIiKSYmWzIsIjx0
YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdfHw9DQooIU8uaW5k
ZXhPZigiPHRkIil8fCFPLmluZGV4T2YoIjx0aCIpKSYmWzMsIjx0YWJsZT48
dGJvZHk+PHRyPiIsIjwvdHI+PC90PQ0KYm9keT48L3RhYmxlPiJdfHwhTy5p
bmRleE9mKCI8Y29sIikmJlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNv
bGdyb3VwPj0NCiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXXx8IW8uc3VwcG9y
dC5odG1sU2VyaWFsaXplJiZbMSwiZGl2PGRpdj4iLCI8L2Rpdj49DQoiXXx8
WzAsIiIsIiJdO0wuaW5uZXJIVE1MPTNEUVsxXStTK1FbMl07d2hpbGUoUVsw
XS0tKXtMPTNETC5sYXN0Q2hpbGR9aWYoPQ0KIW8uc3VwcG9ydC50Ym9keSl7
dmFyID0NClI9M0QvPHRib2R5L2kudGVzdChTKSxOPTNEIU8uaW5kZXhPZigi
PHRhYmxlIikmJiFSP0wuZmlyc3RDaGlsZCYmTC5maXJzdEM9DQpoaWxkLmNo
aWxkTm9kZXM6UVsxXT0zRD0zRCI8dGFibGU+IiYmIVI/TC5jaGlsZE5vZGVz
OltdO2Zvcih2YXIgPQ0KTT0zRE4ubGVuZ3RoLTE7TT49M0QwOy0tTSl7aWYo
by5ub2RlTmFtZShOW01dLCJ0Ym9keSIpJiYhTltNXS5jaGlsZE5vZGVzLj0N
Cmxlbmd0aCl7TltNXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKE5bTV0pfX19
aWYoIW8uc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGE9DQpjZSYmL15ccy8udGVz
dChTKSl7TC5pbnNlcnRCZWZvcmUoSy5jcmVhdGVUZXh0Tm9kZShTLm1hdGNo
KC9eXHMqLylbMF0pLEwuPQ0KZmlyc3RDaGlsZCl9Uz0zRG8ubWFrZUFycmF5
KEwuY2hpbGROb2Rlcyl9aWYoUy5ub2RlVHlwZSl7Ry5wdXNoKFMpfWVsc2V7
Rz0NCj0zRG8ubWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyID0NCko9M0Qw
O0dbSl07SisrKXtpZihvLm5vZGVOYW1lKEdbSl0sInNjcmlwdCIpJiYoIUdb
Sl0udHlwZXx8R1tKXS50eXBlLnRvTG89DQp3ZXJDYXNlKCk9M0Q9M0Q9M0Qi
dGV4dC9qYXZhc2NyaXB0Iikpe0UucHVzaChHW0pdLnBhcmVudE5vZGU/R1tK
XS5wYXJlbnROPQ0Kb2RlLnJlbW92ZUNoaWxkKEdbSl0pOkdbSl0pfWVsc2V7
aWYoR1tKXS5ub2RlVHlwZT0zRD0zRD0zRDEpe0cuc3BsaWNlLmFwcD0NCmx5
KEcsW0orMSwwXS5jb25jYXQoby5tYWtlQXJyYXkoR1tKXS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgic2NyaXB0IikpKSl9SS49DQphcHBlbmRDaGlsZChHW0pd
KX19cmV0dXJuIEV9cmV0dXJuID0NCkd9LGF0dHI6ZnVuY3Rpb24oSixHLEsp
e2lmKCFKfHxKLm5vZGVUeXBlPTNEPTNEM3x8Si5ub2RlVHlwZT0zRD0zRDgp
e3JldHU9DQpybiBnfXZhciA9DQpIPTNEIW8uaXNYTUxEb2MoSiksTD0zREsh
PTNEPTNEZztHPTNESCYmby5wcm9wc1tHXXx8RztpZihKLnRhZ05hbWUpe3Zh
ciA9DQpGPTNEL2hyZWZ8c3JjfHN0eWxlLy50ZXN0KEcpO2lmKEc9M0Q9M0Qi
c2VsZWN0ZWQiJiZKLnBhcmVudE5vZGUpe0oucGFyZW50PQ0KTm9kZS5zZWxl
Y3RlZEluZGV4fWlmKEcgaW4gPQ0KSiYmSCYmIUYpe2lmKEwpe2lmKEc9M0Q9
M0QidHlwZSImJm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnROb2Rl
KXt0aD0NCnJvdyJ0eXBlIHByb3BlcnR5IGNhbid0IGJlID0NCmNoYW5nZWQi
fUpbR109M0RLfWlmKG8ubm9kZU5hbWUoSiwiZm9ybSIpJiZKLmdldEF0dHJp
YnV0ZU5vZGUoRykpe3JldHVybiA9DQpKLmdldEF0dHJpYnV0ZU5vZGUoRyku
bm9kZVZhbHVlfWlmKEc9M0Q9M0QidGFiSW5kZXgiKXt2YXIgPQ0KST0zREou
Z2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKTtyZXR1cm4gPQ0KSSYmSS5z
cGVjaWZpZWQ/SS52YWx1ZTpKLm5vZGVOYW1lLm1hdGNoKC8oYnV0dG9ufGlu
cHV0fG9iamVjdHxzZWxlY3R8dGV4dD0NCmFyZWEpL2kpPzA6Si5ub2RlTmFt
ZS5tYXRjaCgvXihhfGFyZWEpJC9pKSYmSi5ocmVmPzA6Z31yZXR1cm4gPQ0K
SltHXX1pZighby5zdXBwb3J0LnN0eWxlJiZIJiZHPTNEPTNEInN0eWxlIil7
cmV0dXJuID0NCm8uYXR0cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtK
LnNldEF0dHJpYnV0ZShHLCIiK0spfXZhciA9DQpFPTNEIW8uc3VwcG9ydC5o
cmVmTm9ybWFsaXplZCYmSCYmRj9KLmdldEF0dHJpYnV0ZShHLDIpOkouZ2V0
QXR0cmlidXRlKEcpPQ0KO3JldHVybiA9DQpFPTNEPTNEPTNEbnVsbD9nOkV9
aWYoIW8uc3VwcG9ydC5vcGFjaXR5JiZHPTNEPTNEIm9wYWNpdHkiKXtpZihM
KXtKLnpvb209M0Q9DQoxO0ouZmlsdGVyPTNEKEouZmlsdGVyfHwiIikucmVw
bGFjZSgvYWxwaGFcKFteKV0qXCkvLCIiKSsocGFyc2VJbnQoSykrIiI9M0Q9
DQo9M0QiTmFOIj8iIjoiYWxwaGEob3BhY2l0eT0zRCIrSyoxMDArIikiKX1y
ZXR1cm4gPQ0KSi5maWx0ZXImJkouZmlsdGVyLmluZGV4T2YoIm9wYWNpdHk9
M0QiKT49M0QwPyhwYXJzZUZsb2F0KEouZmlsdGVyLm1hdGNoKD0NCi9vcGFj
aXR5PTNEKFteKV0qKS8pWzFdKS8xMDApKyIiOiIifUc9M0RHLnJlcGxhY2Uo
Ly0oW2Etel0pL2lnLGZ1bmN0aW9uKE09DQosTil7cmV0dXJuIE4udG9VcHBl
ckNhc2UoKX0pO2lmKEwpe0pbR109M0RLfXJldHVybiA9DQpKW0ddfSx0cmlt
OmZ1bmN0aW9uKEUpe3JldHVybihFfHwiIikucmVwbGFjZSgvXlxzK3xccysk
L2csIiIpfSxtYWtlQXJyYXk6PQ0KZnVuY3Rpb24oRyl7dmFyIEU9M0RbXTtp
ZihHIT0zRG51bGwpe3ZhciA9DQpGPTNERy5sZW5ndGg7aWYoRj0zRD0zRG51
bGx8fHR5cGVvZiA9DQpHPTNEPTNEPTNEInN0cmluZyJ8fG8uaXNGdW5jdGlv
bihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT0zREd9ZWxzZXt3aGlsZShGPQ0K
KXtFWy0tRl09M0RHW0ZdfX19cmV0dXJuIEV9LGluQXJyYXk6ZnVuY3Rpb24o
RyxIKXtmb3IodmFyID0NCkU9M0QwLEY9M0RILmxlbmd0aDtFPEY7RSsrKXtp
ZihIW0VdPTNEPTNEPTNERyl7cmV0dXJuIEV9fXJldHVybiA9DQotMX0sbWVy
Z2U6ZnVuY3Rpb24oSCxFKXt2YXIgPQ0KRj0zRDAsRyxJPTNESC5sZW5ndGg7
aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPTNERVtGKytdKSE9M0Ru
dWxsKXtpZj0NCihHLm5vZGVUeXBlIT0zRDgpe0hbSSsrXT0zREd9fX1lbHNl
e3doaWxlKChHPTNERVtGKytdKSE9M0RudWxsKXtIW0krK109M0Q9DQpHfX1y
ZXR1cm4gSH0sdW5pcXVlOmZ1bmN0aW9uKEspe3ZhciBGPTNEW10sRT0zRHt9
O3RyeXtmb3IodmFyID0NCkc9M0QwLEg9M0RLLmxlbmd0aDtHPEg7RysrKXt2
YXIgPQ0KSj0zRG8uZGF0YShLW0ddKTtpZighRVtKXSl7RVtKXT0zRHRydWU7
Ri5wdXNoKEtbR10pfX19Y2F0Y2goSSl7Rj0zREt9cmV0dT0NCnJuIEZ9LGdy
ZXA6ZnVuY3Rpb24oRixKLEUpe3ZhciBHPTNEW107Zm9yKHZhciA9DQpIPTNE
MCxJPTNERi5sZW5ndGg7SDxJO0grKyl7aWYoIUUhPTNEIUooRltIXSxIKSl7
Ry5wdXNoKEZbSF0pfX1yZXR1cm4gPQ0KR30sbWFwOmZ1bmN0aW9uKEUsSil7
dmFyIEY9M0RbXTtmb3IodmFyIEc9M0QwLEg9M0RFLmxlbmd0aDtHPEg7Rysr
KXt2YXIgPQ0KST0zREooRVtHXSxHKTtpZihJIT0zRG51bGwpe0ZbRi5sZW5n
dGhdPTNESX19cmV0dXJuID0NCkYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3Zh
ciA9DQpDPTNEbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO28u
YnJvd3Nlcj0zRHt2ZXJzaW9uOihDLm1hdGNoKC8uKyg/PQ0KOnJ2fGl0fHJh
fGllKVtcLzogPQ0KXShbXGQuXSspLyl8fFswLCIwIl0pWzFdLHNhZmFyaTov
d2Via2l0Ly50ZXN0KEMpLG9wZXJhOi9vcGVyYS8udGVzdChDKSxtcz0NCmll
Oi9tc2llLy50ZXN0KEMpJiYhL29wZXJhLy50ZXN0KEMpLG1vemlsbGE6L21v
emlsbGEvLnRlc3QoQykmJiEvKGNvbXBhdGk9DQpibGV8d2Via2l0KS8udGVz
dChDKX07by5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oRSl7cmV0dXJuID0NCkUu
cGFyZW50Tm9kZX0scGFyZW50czpmdW5jdGlvbihFKXtyZXR1cm4gPQ0Kby5k
aXIoRSwicGFyZW50Tm9kZSIpfSxuZXh0OmZ1bmN0aW9uKEUpe3JldHVybiA9
DQpvLm50aChFLDIsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oRSl7
cmV0dXJuID0NCm8ubnRoKEUsMiwicHJldmlvdXNTaWJsaW5nIil9LG5leHRB
bGw6ZnVuY3Rpb24oRSl7cmV0dXJuID0NCm8uZGlyKEUsIm5leHRTaWJsaW5n
Iil9LHByZXZBbGw6ZnVuY3Rpb24oRSl7cmV0dXJuID0NCm8uZGlyKEUsInBy
ZXZpb3VzU2libGluZyIpfSxzaWJsaW5nczpmdW5jdGlvbihFKXtyZXR1cm4g
PQ0Kby5zaWJsaW5nKEUucGFyZW50Tm9kZS5maXJzdENoaWxkLEUpfSxjaGls
ZHJlbjpmdW5jdGlvbihFKXtyZXR1cm4gPQ0Kby5zaWJsaW5nKEUuZmlyc3RD
aGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKEUpe3JldHVybiA9DQpvLm5vZGVO
YW1lKEUsImlmcmFtZSIpP0UuY29udGVudERvY3VtZW50fHxFLmNvbnRlbnRX
aW5kb3cuZG9jdW1lbnQ6by5tYWtlPQ0KQXJyYXkoRS5jaGlsZE5vZGVzKX19
LGZ1bmN0aW9uKEUsRil7by5mbltFXT0zRGZ1bmN0aW9uKEcpe3ZhciA9DQpI
PTNEby5tYXAodGhpcyxGKTtpZihHJiZ0eXBlb2YgPQ0KRz0zRD0zRCJzdHJp
bmciKXtIPTNEby5tdWx0aUZpbHRlcihHLEgpfXJldHVybiA9DQp0aGlzLnB1
c2hTdGFjayhvLnVuaXF1ZShIKSxFLEcpfX0pO28uZWFjaCh7YXBwZW5kVG86
ImFwcGVuZCIscHJlcGVuZFRvOiJwPQ0KcmVwZW5kIixpbnNlcnRCZWZvcmU6
ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBs
YWNlV2l0aD0NCiJ9LGZ1bmN0aW9uKEUsRil7by5mbltFXT0zRGZ1bmN0aW9u
KEcpe3ZhciBKPTNEW10sTD0zRG8oRyk7Zm9yKHZhciA9DQpLPTNEMCxIPTNE
TC5sZW5ndGg7SzxIO0srKyl7dmFyID0NCkk9M0QoSz4wP3RoaXMuY2xvbmUo
dHJ1ZSk6dGhpcykuZ2V0KCk7by5mbltGXS5hcHBseShvKExbS10pLEkpO0o9
M0RKLmNvbmM9DQphdChJKX1yZXR1cm4gPQ0KdGhpcy5wdXNoU3RhY2soSixF
LEcpfX0pO28uZWFjaCh7cmVtb3ZlQXR0cjpmdW5jdGlvbihFKXtvLmF0dHIo
dGhpcyxFLCIiKT0NCjtpZih0aGlzLm5vZGVUeXBlPTNEPTNEMSl7dGhpcy5y
ZW1vdmVBdHRyaWJ1dGUoRSl9fSxhZGRDbGFzczpmdW5jdGlvbihFKXs9DQpv
LmNsYXNzTmFtZS5hZGQodGhpcyxFKX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24o
RSl7by5jbGFzc05hbWUucmVtb3ZlKHRoaXMsPQ0KRSl9LHRvZ2dsZUNsYXNz
OmZ1bmN0aW9uKEYsRSl7aWYodHlwZW9mID0NCkUhPTNEPTNEImJvb2xlYW4i
KXtFPTNEIW8uY2xhc3NOYW1lLmhhcyh0aGlzLEYpfW8uY2xhc3NOYW1lW0U/
ImFkZCI6InJlbW89DQp2ZSJdKHRoaXMsRil9LHJlbW92ZTpmdW5jdGlvbihF
KXtpZighRXx8by5maWx0ZXIoRSxbdGhpc10pLmxlbmd0aCl7bygiKiIsPQ0K
dGhpcykuYWRkKFt0aGlzXSkuZWFjaChmdW5jdGlvbigpe28uZXZlbnQucmVt
b3ZlKHRoaXMpO28ucmVtb3ZlRGF0YSh0aGlzKT0NCn0pO2lmKHRoaXMucGFy
ZW50Tm9kZSl7dGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpfX19
LGVtcHR5OmZ1bmN0aW89DQpuKCl7byh0aGlzKS5jaGlsZHJlbigpLnJlbW92
ZSgpO3doaWxlKHRoaXMuZmlyc3RDaGlsZCl7dGhpcy5yZW1vdmVDaGlsZCh0
PQ0KaGlzLmZpcnN0Q2hpbGQpfX19LGZ1bmN0aW9uKEUsRil7by5mbltFXT0z
RGZ1bmN0aW9uKCl7cmV0dXJuID0NCnRoaXMuZWFjaChGLGFyZ3VtZW50cyl9
fSk7ZnVuY3Rpb24gaihFLEYpe3JldHVybiA9DQpFWzBdJiZwYXJzZUludChv
LmN1ckNTUyhFWzBdLEYsdHJ1ZSksMTApfHwwfXZhciA9DQpoPTNEImpRdWVy
eSIrZSgpLHY9M0QwLEE9M0R7fTtvLmV4dGVuZCh7Y2FjaGU6e30sZGF0YTpm
dW5jdGlvbihGLEUsRyl7Rj0zRD0NCkY9M0Q9M0RsP0E6Rjt2YXIgPQ0KSD0z
REZbaF07aWYoIUgpe0g9M0RGW2hdPTNEKyt2fWlmKEUmJiFvLmNhY2hlW0hd
KXtvLmNhY2hlW0hdPTNEe319aWYoRyE9M0Q9DQo9M0RnKXtvLmNhY2hlW0hd
W0VdPTNER31yZXR1cm4gPQ0KRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURh
dGE6ZnVuY3Rpb24oRixFKXtGPTNERj0zRD0zRGw/QTpGO3ZhciA9DQpIPTNE
RltoXTtpZihFKXtpZihvLmNhY2hlW0hdKXtkZWxldGUgby5jYWNoZVtIXVtF
XTtFPTNEIiI7Zm9yKEUgaW4gPQ0Kby5jYWNoZVtIXSl7YnJlYWt9aWYoIUUp
e28ucmVtb3ZlRGF0YShGKX19fWVsc2V7dHJ5e2RlbGV0ZSA9DQpGW2hdfWNh
dGNoKEcpe2lmKEYucmVtb3ZlQXR0cmlidXRlKXtGLnJlbW92ZUF0dHJpYnV0
ZShoKX19ZGVsZXRlID0NCm8uY2FjaGVbSF19fSxxdWV1ZTpmdW5jdGlvbihG
LEUsSCl7aWYoRil7RT0zRChFfHwiZngiKSsicXVldWUiO3ZhciA9DQpHPTNE
by5kYXRhKEYsRSk7aWYoIUd8fG8uaXNBcnJheShIKSl7Rz0zRG8uZGF0YShG
LEUsby5tYWtlQXJyYXkoSCkpfWVsc2V7PQ0KaWYoSCl7Ry5wdXNoKEgpfX19
cmV0dXJuIEd9LGRlcXVldWU6ZnVuY3Rpb24oSCxHKXt2YXIgPQ0KRT0zRG8u
cXVldWUoSCxHKSxGPTNERS5zaGlmdCgpO2lmKCFHfHxHPTNEPTNEPTNEImZ4
Iil7Rj0zREVbMF19aWYoRiE9M0Q9M0Q9DQpnKXtGLmNhbGwoSCl9fX0pO28u
Zm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKEUsRyl7dmFyID0NCkg9M0RFLnNw
bGl0KCIuIik7SFsxXT0zREhbMV0/Ii4iK0hbMV06IiI7aWYoRz0zRD0zRD0z
RGcpe3ZhciA9DQpGPTNEdGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIr
SFsxXSsiISIsW0hbMF1dKTtpZihGPTNEPTNEPTNEZyYmdGhpcy5sPQ0KZW5n
dGgpe0Y9M0RvLmRhdGEodGhpc1swXSxFKX1yZXR1cm4gPQ0KRj0zRD0zRD0z
RGcmJkhbMV0/dGhpcy5kYXRhKEhbMF0pOkZ9ZWxzZXtyZXR1cm4gPQ0KdGhp
cy50cmlnZ2VyKCJzZXREYXRhIitIWzFdKyIhIixbSFswXSxHXSkuZWFjaChm
dW5jdGlvbigpe28uZGF0YSh0aGlzLEUsRz0NCil9KX19LHJlbW92ZURhdGE6
ZnVuY3Rpb24oRSl7cmV0dXJuID0NCnRoaXMuZWFjaChmdW5jdGlvbigpe28u
cmVtb3ZlRGF0YSh0aGlzLEUpfSl9LHF1ZXVlOmZ1bmN0aW9uKEUsRil7aWYo
dHlwZW89DQpmIEUhPTNEPTNEInN0cmluZyIpe0Y9M0RFO0U9M0QiZngifWlm
KEY9M0Q9M0Q9M0RnKXtyZXR1cm4gPQ0Kby5xdWV1ZSh0aGlzWzBdLEUpfXJl
dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgPQ0KRz0zRG8ucXVldWUo
dGhpcyxFLEYpO2lmKEU9M0Q9M0QiZngiJiZHLmxlbmd0aD0zRD0zRDEpe0db
MF0uY2FsbCh0aGlzKX19KT0NCn0sZGVxdWV1ZTpmdW5jdGlvbihFKXtyZXR1
cm4gPQ0KdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5kZXF1ZXVlKHRoaXMsRSl9
KX19KTsNCi8qDQogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSAtIHYw
LjkuMw0KICogIENvcHlyaWdodCAyMDA5LCBUaGUgRG9qbyBGb3VuZGF0aW9u
DQogKiAgUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExp
Y2Vuc2VzLg0KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6bGVq
cy5jb20vDQogKi8NCihmdW5jdGlvbigpe3ZhciA9DQpSPTNELygoPzpcKCg/
OlwoW14oKV0rXCl8W14oKV0rKStcKXxcWyg/OlxbW15bXF1dKlxdfFsnIl1b
XiciXSpbJyJdfFteW1xdPQ0KJyJdKykrXF18XFwufFteID0NCj4rfiwoXFtc
XF0rKSt8Wz4rfl0pKFxzKixccyopPy9nLEw9M0QwLEg9M0RPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nO3ZhciA9DQpGPTNEZnVuY3Rpb24oWSxVLGFiLGFj
KXthYj0zRGFifHxbXTtVPTNEVXx8ZG9jdW1lbnQ7aWYoVS5ub2RlVHlwZSE9
M0Q9M0QxPQ0KJiZVLm5vZGVUeXBlIT0zRD0zRDkpe3JldHVybltdfWlmKCFZ
fHx0eXBlb2YgWSE9M0Q9M0Qic3RyaW5nIil7cmV0dXJuID0NCmFifXZhciA9
DQpaPTNEW10sVyxhZixhaSxULGFkLFYsWD0zRHRydWU7Ui5sYXN0SW5kZXg9
M0QwO3doaWxlKChXPTNEUi5leGVjKFkpKSE9M0Q9M0Q9DQpudWxsKXtaLnB1
c2goV1sxXSk7aWYoV1syXSl7Vj0zRFJlZ0V4cC5yaWdodENvbnRleHQ7YnJl
YWt9fWlmKFoubGVuZ3RoPjEmPQ0KJk0uZXhlYyhZKSl7aWYoWi5sZW5ndGg9
M0Q9M0Q9M0QyJiZJLnJlbGF0aXZlW1pbMF1dKXthZj0zREooWlswXStaWzFd
LFUpfT0NCmVsc2V7YWY9M0RJLnJlbGF0aXZlW1pbMF1dP1tVXTpGKFouc2hp
ZnQoKSxVKTt3aGlsZShaLmxlbmd0aCl7WT0zRFouc2hpZnQ9DQooKTtpZihJ
LnJlbGF0aXZlW1ldKXtZKz0zRFouc2hpZnQoKX1hZj0zREooWSxhZil9fX1l
bHNle3ZhciA9DQphZT0zRGFjP3tleHByOloucG9wKCksc2V0OkUoYWMpfTpG
LmZpbmQoWi5wb3AoKSxaLmxlbmd0aD0zRD0zRD0zRDEmJlUucGFyPQ0KZW50
Tm9kZT9VLnBhcmVudE5vZGU6VSxRKFUpKTthZj0zREYuZmlsdGVyKGFlLmV4
cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKT0NCnthaT0zREUoYWYpfWVsc2V7
WD0zRGZhbHNlfXdoaWxlKFoubGVuZ3RoKXt2YXIgPQ0KYWg9M0RaLnBvcCgp
LGFnPTNEYWg7aWYoIUkucmVsYXRpdmVbYWhdKXthaD0zRCIifWVsc2V7YWc9
M0RaLnBvcCgpfWlmKGFnPTNEPQ0KPTNEbnVsbCl7YWc9M0RVfUkucmVsYXRp
dmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPTNEYWZ9aWYoIWFpKXt0
aHJvdz0NCiJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9u
OiA9DQoiKyhhaHx8WSl9aWYoSC5jYWxsKGFpKT0zRD0zRD0zRCJbb2JqZWN0
ID0NCkFycmF5XSIpe2lmKCFYKXthYi5wdXNoLmFwcGx5KGFiLGFpKX1lbHNl
e2lmKFUubm9kZVR5cGU9M0Q9M0Q9M0QxKXtmb3IodmE9DQpyID0NCmFhPTNE
MDthaVthYV0hPTNEbnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09M0Q9
M0Q9M0R0cnVlfHxhaVthYV0ubm9kZVQ9DQp5cGU9M0Q9M0Q9M0QxJiZLKFUs
YWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19fWVsc2V7Zm9yKHZhciA9DQph
YT0zRDA7YWlbYWFdIT0zRG51bGw7YWErKyl7aWYoYWlbYWFdJiZhaVthYV0u
bm9kZVR5cGU9M0Q9M0Q9M0QxKXthYi5wdXNoPQ0KKGFmW2FhXSl9fX19fWVs
c2V7RShhaSxhYil9aWYoVil7RihWLFUsYWIsYWMpO2lmKEcpe2hhc0R1cGxp
Y2F0ZT0zRGZhbHNlOz0NCmFiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtm
b3IodmFyID0NCmFhPTNEMTthYTxhYi5sZW5ndGg7YWErKyl7aWYoYWJbYWFd
PTNEPTNEPTNEYWJbYWEtMV0pe2FiLnNwbGljZShhYS0tLDEpfX09DQp9fX1y
ZXR1cm4gYWJ9O0YubWF0Y2hlcz0zRGZ1bmN0aW9uKFQsVSl7cmV0dXJuID0N
CkYoVCxudWxsLG51bGwsVSl9O0YuZmluZD0zRGZ1bmN0aW9uKGFhLFQsYWIp
e3ZhciA9DQpaLFg7aWYoIWFhKXtyZXR1cm5bXX1mb3IodmFyIFc9M0QwLFY9
M0RJLm9yZGVyLmxlbmd0aDtXPFY7VysrKXt2YXIgPQ0KWT0zREkub3JkZXJb
V10sWDtpZigoWD0zREkubWF0Y2hbWV0uZXhlYyhhYSkpKXt2YXIgPQ0KVT0z
RFJlZ0V4cC5sZWZ0Q29udGV4dDtpZihVLnN1YnN0cihVLmxlbmd0aC0xKSE9
M0Q9M0QiXFwiKXtYWzFdPTNEKFhbMV18fD0NCiIiKS5yZXBsYWNlKC9cXC9n
LCIiKTtaPTNESS5maW5kW1ldKFgsVCxhYik7aWYoWiE9M0RudWxsKXthYT0z
RGFhLnJlcGxhY2U9DQooSS5tYXRjaFtZXSwiIik7YnJlYWt9fX19aWYoIVop
e1o9M0RULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NlPQ0K
dDpaLGV4cHI6YWF9fTtGLmZpbHRlcj0zRGZ1bmN0aW9uKGFkLGFjLGFnLFcp
e3ZhciA9DQpWPTNEYWQsYWk9M0RbXSxhYT0zRGFjLFksVCxaPTNEYWMmJmFj
WzBdJiZRKGFjWzBdKTt3aGlsZShhZCYmYWMubGVuZ3RoKXtmPQ0Kb3IodmFy
IGFiIGluIEkuZmlsdGVyKXtpZigoWT0zREkubWF0Y2hbYWJdLmV4ZWMoYWQp
KSE9M0RudWxsKXt2YXIgPQ0KVT0zREkuZmlsdGVyW2FiXSxhaCxhZjtUPTNE
ZmFsc2U7aWYoYWE9M0Q9M0RhaSl7YWk9M0RbXX1pZihJLnByZUZpbHRlclth
Yj0NCl0pe1k9M0RJLnByZUZpbHRlclthYl0oWSxhYSxhZyxhaSxXLFopO2lm
KCFZKXtUPTNEYWg9M0R0cnVlfWVsc2V7aWYoWT0zRD0zRD0NCj0zRHRydWUp
e2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciA9DQpYPTNEMDsoYWY9M0RhYVtY
XSkhPTNEbnVsbDtYKyspe2lmKGFmKXthaD0zRFUoYWYsWSxYLGFhKTt2YXIg
PQ0KYWU9M0RXXiEhYWg7aWYoYWcmJmFoIT0zRG51bGwpe2lmKGFlKXtUPTNE
dHJ1ZX1lbHNle2FhW1hdPTNEZmFsc2V9fWVsc2V7aT0NCmYoYWUpe2FpLnB1
c2goYWYpO1Q9M0R0cnVlfX19fX1pZihhaCE9M0Q9M0RnKXtpZighYWcpe2Fh
PTNEYWl9YWQ9M0RhZC5yZXA9DQpsYWNlKEkubWF0Y2hbYWJdLCIiKTtpZigh
VCl7cmV0dXJuW119YnJlYWt9fX1pZihhZD0zRD0zRFYpe2lmKFQ9M0Q9M0Ru
dWxsPQ0KKXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHBy
ZXNzaW9uOiA9DQoiK2FkfWVsc2V7YnJlYWt9fVY9M0RhZH1yZXR1cm4gYWF9
O3ZhciA9DQpJPTNERi5zZWxlY3RvcnM9M0R7b3JkZXI6WyJJRCIsIk5BTUUi
LCJUQUciXSxtYXRjaDp7SUQ6LyMoKD86W1x3XHUwMGMwLVx1PQ0KRkZGRl8t
XXxcXC4pKykvLENMQVNTOi9cLigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxc
LikrKS8sTkFNRTovXFtuYW1lPTNEWz0NCiciXSooKD86W1x3XHUwMGMwLVx1
RkZGRl8tXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAw
YzAtXHVGRkY9DQpGXy1dfFxcLikrKVxzKig/OihcUz89M0QpXHMqKFsnIl0q
KSguKj8pXDN8KVxzKlxdLyxUQUc6L14oKD86W1x3XHUwMGMwLVx1PQ0KRkZG
RlwqXy1dfFxcLikrKS8sQ0hJTEQ6Lzoob25seXxudGh8bGFzdHxmaXJzdCkt
Y2hpbGQoPzpcKChldmVufG9kZHxbXGRuKz0NCi1dKilcKSk/LyxQT1M6Lzoo
bnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwp
KT8oPz0zRFteLV09DQp8JCkvLFBTRVVETzovOigoPzpbXHdcdTAwYzAtXHVG
RkZGXy1dfFxcLikrKSg/OlwoKFsnIl0qKSgoPzpcKFteXCldK1wpfFtePQ0K
XDJcKFwpXSopKylcMlwpKT8vfSxhdHRyTWFwOnsiY2xhc3MiOiJjbGFzc05h
bWUiLCJmb3IiOiJodG1sRm9yIn0sYXR0ckhhbj0NCmRsZTp7aHJlZjpmdW5j
dGlvbihUKXtyZXR1cm4gPQ0KVC5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LHJl
bGF0aXZlOnsiKyI6ZnVuY3Rpb24oYWEsVCxaKXt2YXIgWD0zRHR5cGVvZiA9
DQpUPTNEPTNEPTNEInN0cmluZyIsYWI9M0RYJiYhL1xXLy50ZXN0KFQpLFk9
M0RYJiYhYWI7aWYoYWImJiFaKXtUPTNEVC50b1VwPQ0KcGVyQ2FzZSgpfWZv
cih2YXIgPQ0KVz0zRDAsVj0zRGFhLmxlbmd0aCxVO1c8VjtXKyspe2lmKChV
PTNEYWFbV10pKXt3aGlsZSgoVT0zRFUucHJldmlvdXNTaWJsaT0NCm5nKSYm
VS5ub2RlVHlwZSE9M0Q9M0QxKXt9YWFbV109M0RZfHxVJiZVLm5vZGVOYW1l
PTNEPTNEPTNEVD9VfHxmYWxzZTpVPTNEPQ0KPTNEPTNEVH19aWYoWSl7Ri5m
aWx0ZXIoVCxhYSx0cnVlKX19LCI+IjpmdW5jdGlvbihaLFUsYWEpe3ZhciBY
PTNEdHlwZW9mID0NClU9M0Q9M0Q9M0Qic3RyaW5nIjtpZihYJiYhL1xXLy50
ZXN0KFUpKXtVPTNEYWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciA9DQpW
PTNEMCxUPTNEWi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9M0RaW1ZdO2lmKFkp
e3ZhciA9DQpXPTNEWS5wYXJlbnROb2RlO1pbVl09M0RXLm5vZGVOYW1lPTNE
PTNEPTNEVT9XOmZhbHNlfX19ZWxzZXtmb3IodmFyID0NClY9M0QwLFQ9M0Ra
Lmxlbmd0aDtWPFQ7VisrKXt2YXIgPQ0KWT0zRFpbVl07aWYoWSl7WltWXT0z
RFg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT0zRD0zRD0zRFV9fWlmKFgp
e0YuZmlsdD0NCmVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7
dmFyID0NClY9M0RMKyssVD0zRFM7aWYoIVUubWF0Y2goL1xXLykpe3ZhciA9
DQpYPTNEVT0zRFk/VTpVLnRvVXBwZXJDYXNlKCk7VD0zRFB9VCgicGFyZW50
Tm9kZSIsVSxWLFcsWCxZKX0sIn4iOmZ1bmN0aW9uPQ0KKFcsVSxZKXt2YXIg
Vj0zREwrKyxUPTNEUztpZih0eXBlb2YgPQ0KVT0zRD0zRD0zRCJzdHJpbmci
JiYhVS5tYXRjaCgvXFcvKSl7dmFyID0NClg9M0RVPTNEWT9VOlUudG9VcHBl
ckNhc2UoKTtUPTNEUH1UKCJwcmV2aW91c1NpYmxpbmciLFUsVixXLFgsWSl9
fSxmaW5kOns9DQpJRDpmdW5jdGlvbihVLFYsVyl7aWYodHlwZW9mIFYuZ2V0
RWxlbWVudEJ5SWQhPTNEPTNEInVuZGVmaW5lZCImJiFXKXt2YXIgPQ0KVD0z
RFYuZ2V0RWxlbWVudEJ5SWQoVVsxXSk7cmV0dXJuID0NClQ/W1RdOltdfX0s
TkFNRTpmdW5jdGlvbihWLFksWil7aWYodHlwZW9mID0NClkuZ2V0RWxlbWVu
dHNCeU5hbWUhPTNEPTNEInVuZGVmaW5lZCIpe3ZhciA9DQpVPTNEW10sWD0z
RFkuZ2V0RWxlbWVudHNCeU5hbWUoVlsxXSk7Zm9yKHZhciA9DQpXPTNEMCxU
PTNEWC5sZW5ndGg7VzxUO1crKyl7aWYoWFtXXS5nZXRBdHRyaWJ1dGUoIm5h
bWUiKT0zRD0zRD0zRFZbMV0pe1UuPQ0KcHVzaChYW1ddKX19cmV0dXJuIFUu
bGVuZ3RoPTNEPTNEPTNEMD9udWxsOlV9fSxUQUc6ZnVuY3Rpb24oVCxVKXty
ZXR1cm4gPQ0KVS5nZXRFbGVtZW50c0J5VGFnTmFtZShUWzFdKX19LHByZUZp
bHRlcjp7Q0xBU1M6ZnVuY3Rpb24oVyxVLFYsVCxaLGFhKXtXPTNEPQ0KIiAi
K1dbMV0ucmVwbGFjZSgvXFwvZywiIikrIiAiO2lmKGFhKXtyZXR1cm4gV31m
b3IodmFyID0NClg9M0QwLFk7KFk9M0RVW1hdKSE9M0RudWxsO1grKyl7aWYo
WSl7aWYoWl4oWS5jbGFzc05hbWUmJigiID0NCiIrWS5jbGFzc05hbWUrIiA9
DQoiKS5pbmRleE9mKFcpPj0zRDApKXtpZighVil7VC5wdXNoKFkpfX1lbHNl
e2lmKFYpe1VbWF09M0RmYWxzZX19fX1yZXR1cm4gPQ0KZmFsc2V9LElEOmZ1
bmN0aW9uKFQpe3JldHVybiA9DQpUWzFdLnJlcGxhY2UoL1xcL2csIiIpfSxU
QUc6ZnVuY3Rpb24oVSxUKXtmb3IodmFyID0NClY9M0QwO1RbVl09M0Q9M0Q9
M0RmYWxzZTtWKyspe31yZXR1cm4gPQ0KVFtWXSYmUShUW1ZdKT9VWzFdOlVb
MV0udG9VcHBlckNhc2UoKX0sQ0hJTEQ6ZnVuY3Rpb24oVCl7aWYoVFsxXT0z
RD0zRCJudD0NCmgiKXt2YXIgPQ0KVT0zRC8oLT8pKFxkKiluKCg/OlwrfC0p
P1xkKikvLmV4ZWMoVFsyXT0zRD0zRCJldmVuIiYmIjJuInx8VFsyXT0zRD0z
RCJvZD0NCmQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1Rb
Ml18fFRbMl0pO1RbMl09M0QoVVsxXSsoVVsyXXx8MSkpLTA9DQo7VFszXT0z
RFVbM10tMH1UWzBdPTNETCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgs
VSxWLFQsWSxaKXt2YXIgPQ0KVz0zRFhbMV0ucmVwbGFjZSgvXFwvZywiIik7
aWYoIVomJkkuYXR0ck1hcFtXXSl7WFsxXT0zREkuYXR0ck1hcFtXXX1pZihY
Wz0NCjJdPTNEPTNEPTNEIn49M0QiKXtYWzRdPTNEIiAiK1hbNF0rIiAifXJl
dHVybiA9DQpYfSxQU0VVRE86ZnVuY3Rpb24oWCxVLFYsVCxZKXtpZihYWzFd
PTNEPTNEPTNEIm5vdCIpe2lmKFhbM10ubWF0Y2goUikubGVuPQ0KZ3RoPjF8
fC9eXHcvLnRlc3QoWFszXSkpe1hbM109M0RGKFhbM10sbnVsbCxudWxsLFUp
fWVsc2V7dmFyID0NClc9M0RGLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lm
KCFWKXtULnB1c2guYXBwbHkoVCxXKX1yZXR1cm4gPQ0KZmFsc2V9fWVsc2V7
aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50ZXN0
KFhbMF0pKXtyZXR1cm4gPQ0KdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlv
bihUKXtULnVuc2hpZnQodHJ1ZSk7cmV0dXJuID0NClR9fSxmaWx0ZXJzOntl
bmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiA9DQpULmRpc2FibGVkPTNEPTNE
PTNEZmFsc2UmJlQudHlwZSE9M0Q9M0QiaGlkZGVuIn0sZGlzYWJsZWQ6ZnVu
Y3Rpb24oVCl7cmV0PQ0KdXJuIFQuZGlzYWJsZWQ9M0Q9M0Q9M0R0cnVlfSxj
aGVja2VkOmZ1bmN0aW9uKFQpe3JldHVybiA9DQpULmNoZWNrZWQ9M0Q9M0Q9
M0R0cnVlfSxzZWxlY3RlZDpmdW5jdGlvbihUKXtULnBhcmVudE5vZGUuc2Vs
ZWN0ZWRJbmRleDtyPQ0KZXR1cm4gVC5zZWxlY3RlZD0zRD0zRD0zRHRydWV9
LHBhcmVudDpmdW5jdGlvbihUKXtyZXR1cm4gPQ0KISFULmZpcnN0Q2hpbGR9
LGVtcHR5OmZ1bmN0aW9uKFQpe3JldHVybiA9DQohVC5maXJzdENoaWxkfSxo
YXM6ZnVuY3Rpb24oVixVLFQpe3JldHVybiA9DQohIUYoVFszXSxWKS5sZW5n
dGh9LGhlYWRlcjpmdW5jdGlvbihUKXtyZXR1cm4vaFxkL2kudGVzdChULm5v
ZGVOYW1lKX0sdGV4PQ0KdDpmdW5jdGlvbihUKXtyZXR1cm4idGV4dCI9M0Q9
M0Q9M0RULnR5cGV9LHJhZGlvOmZ1bmN0aW9uKFQpe3JldHVybiJyYWRpbz0N
CiI9M0Q9M0Q9M0RULnR5cGV9LGNoZWNrYm94OmZ1bmN0aW9uKFQpe3JldHVy
biJjaGVja2JveCI9M0Q9M0Q9M0RULnR5cGV9LGY9DQppbGU6ZnVuY3Rpb24o
VCl7cmV0dXJuImZpbGUiPTNEPTNEPTNEVC50eXBlfSxwYXNzd29yZDpmdW5j
dGlvbihUKXtyZXR1cm4iPQ0KcGFzc3dvcmQiPTNEPTNEPTNEVC50eXBlfSxz
dWJtaXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInN1Ym1pdCI9M0Q9M0Q9M0RULnR5
cD0NCmV9LGltYWdlOmZ1bmN0aW9uKFQpe3JldHVybiJpbWFnZSI9M0Q9M0Q9
M0RULnR5cGV9LHJlc2V0OmZ1bmN0aW9uKFQpe3JldHU9DQpybiJyZXNldCI9
M0Q9M0Q9M0RULnR5cGV9LGJ1dHRvbjpmdW5jdGlvbihUKXtyZXR1cm4iYnV0
dG9uIj0zRD0zRD0zRFQudHlwPQ0KZXx8VC5ub2RlTmFtZS50b1VwcGVyQ2Fz
ZSgpPTNEPTNEPTNEIkJVVFRPTiJ9LGlucHV0OmZ1bmN0aW9uKFQpe3JldHVy
bi9pbj0NCnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uL2kudGVzdChULm5v
ZGVOYW1lKX19LHNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0aW89DQpuKFUsVCl7
cmV0dXJuIFQ9M0Q9M0Q9M0QwfSxsYXN0OmZ1bmN0aW9uKFYsVSxULFcpe3Jl
dHVybiA9DQpVPTNEPTNEPTNEVy5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihV
LFQpe3JldHVybiA9DQpUJTI9M0Q9M0Q9M0QwfSxvZGQ6ZnVuY3Rpb24oVSxU
KXtyZXR1cm4gPQ0KVCUyPTNEPTNEPTNEMX0sbHQ6ZnVuY3Rpb24oVixVLFQp
e3JldHVybiA9DQpVPFRbM10tMH0sZ3Q6ZnVuY3Rpb24oVixVLFQpe3JldHVy
biBVPlRbM10tMH0sbnRoOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gPQ0KVFsz
XS0wPTNEPTNEVX0sZXE6ZnVuY3Rpb24oVixVLFQpe3JldHVybiA9DQpUWzNd
LTA9M0Q9M0RVfX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oWixWLFcsYWEp
e3ZhciA9DQpVPTNEVlsxXSxYPTNESS5maWx0ZXJzW1VdO2lmKFgpe3JldHVy
biA9DQpYKFosVyxWLGFhKX1lbHNle2lmKFU9M0Q9M0Q9M0QiY29udGFpbnMi
KXtyZXR1cm4oWi50ZXh0Q29udGVudHx8Wi5pbm5lclRlPQ0KeHR8fCIiKS5p
bmRleE9mKFZbM10pPj0zRDB9ZWxzZXtpZihVPTNEPTNEPTNEIm5vdCIpe3Zh
ciBZPTNEVlszXTtmb3IodmFyID0NClc9M0QwLFQ9M0RZLmxlbmd0aDtXPFQ7
VysrKXtpZihZW1ddPTNEPTNEPTNEWil7cmV0dXJuIGZhbHNlfX1yZXR1cm4g
PQ0KdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgPQ0KWj0zRFdb
MV0sVT0zRFQ7c3dpdGNoKFope2Nhc2Uib25seSI6Y2FzZSJmaXJzdCI6d2hp
bGUoVT0zRFUucHJldmlvdXNTaWJsaT0NCm5nKXtpZihVLm5vZGVUeXBlPTNE
PTNEPTNEMSl7cmV0dXJuIGZhbHNlfX1pZihaPTNEPTNEImZpcnN0Iil7cmV0
dXJuID0NCnRydWV9VT0zRFQ7Y2FzZSJsYXN0Ijp3aGlsZShVPTNEVS5uZXh0
U2libGluZyl7aWYoVS5ub2RlVHlwZT0zRD0zRD0zRDEpe3I9DQpldHVybiBm
YWxzZX19cmV0dXJuIHRydWU7Y2FzZSJudGgiOnZhciA9DQpWPTNEV1syXSxh
Yz0zRFdbM107aWYoVj0zRD0zRDEmJmFjPTNEPTNEMCl7cmV0dXJuIHRydWV9
dmFyID0NClk9M0RXWzBdLGFiPTNEVC5wYXJlbnROb2RlO2lmKGFiJiYoYWIu
c2l6Y2FjaGUhPTNEPTNEWXx8IVQubm9kZUluZGV4KSl7dmE9DQpyID0NClg9
M0QwO2ZvcihVPTNEYWIuZmlyc3RDaGlsZDtVO1U9M0RVLm5leHRTaWJsaW5n
KXtpZihVLm5vZGVUeXBlPTNEPTNEPTNEMSk9DQp7VS5ub2RlSW5kZXg9M0Qr
K1h9fWFiLnNpemNhY2hlPTNEWX12YXIgPQ0KYWE9M0RULm5vZGVJbmRleC1h
YztpZihWPTNEPTNEMCl7cmV0dXJuID0NCmFhPTNEPTNEMH1lbHNle3JldHVy
bihhYSVWPTNEPTNEMCYmYWEvVj49M0QwKX19fSxJRDpmdW5jdGlvbihVLFQp
e3JldHVybiA9DQpVLm5vZGVUeXBlPTNEPTNEPTNEMSYmVS5nZXRBdHRyaWJ1
dGUoImlkIik9M0Q9M0Q9M0RUfSxUQUc6ZnVuY3Rpb24oVSxUKXtyPQ0KZXR1
cm4oVD0zRD0zRD0zRCIqIiYmVS5ub2RlVHlwZT0zRD0zRD0zRDEpfHxVLm5v
ZGVOYW1lPTNEPTNEPTNEVH0sQ0xBU1M6Zj0NCnVuY3Rpb24oVSxUKXtyZXR1
cm4oIiAiKyhVLmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikp
KyIgPQ0KIikuaW5kZXhPZihUKT4tMX0sQVRUUjpmdW5jdGlvbihZLFcpe3Zh
ciA9DQpWPTNEV1sxXSxUPTNESS5hdHRySGFuZGxlW1ZdP0kuYXR0ckhhbmRs
ZVtWXShZKTpZW1ZdIT0zRG51bGw/WVtWXTpZLmdldEF0PQ0KdHJpYnV0ZShW
KSxaPTNEVCsiIixYPTNEV1syXSxVPTNEV1s0XTtyZXR1cm4gPQ0KVD0zRD0z
RG51bGw/WD0zRD0zRD0zRCIhPTNEIjpYPTNEPTNEPTNEIj0zRCI/Wj0zRD0z
RD0zRFU6WD0zRD0zRD0zRCIqPTNEIj0NCj9aLmluZGV4T2YoVSk+PTNEMDpY
PTNEPTNEPTNEIn49M0QiPygiICIrWisiID0NCiIpLmluZGV4T2YoVSk+PTNE
MDohVT9aJiZUIT0zRD0zRGZhbHNlOlg9M0Q9M0Q9M0QiIT0zRCI/WiE9M0RV
Olg9M0Q9M0Q9M0Q9DQoiXj0zRCI/Wi5pbmRleE9mKFUpPTNEPTNEPTNEMDpY
PTNEPTNEPTNEIiQ9M0QiP1ouc3Vic3RyKFoubGVuZ3RoLVUubGVuZ3RoPQ0K
KT0zRD0zRD0zRFU6WD0zRD0zRD0zRCJ8PTNEIj9aPTNEPTNEPTNEVXx8Wi5z
dWJzdHIoMCxVLmxlbmd0aCsxKT0zRD0zRD0zRD0NClUrIi0iOmZhbHNlfSxQ
T1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyID0NClQ9M0RVWzJdLFc9M0RJLnNl
dEZpbHRlcnNbVF07aWYoVyl7cmV0dXJuIFcoWCxWLFUsWSl9fX19O3ZhciA9
DQpNPTNESS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluID0NCkkubWF0Y2gpe0ku
bWF0Y2hbT109M0RSZWdFeHAoSS5tYXRjaFtPXS5zb3VyY2UrLyg/IVteXFtd
KlxdKSg/IVteXChdKlwpKS89DQouc291cmNlKX12YXIgPQ0KRT0zRGZ1bmN0
aW9uKFUsVCl7VT0zREFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFUpO2lm
KFQpe1QucHVzaC5hcHBseShULD0NClUpO3JldHVybiBUfXJldHVybiA9DQpV
fTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LmNoaWxkTm9kZXMpfWNhPQ0KdGNoKE4pe0U9M0RmdW5j
dGlvbihYLFcpe3ZhciBVPTNEV3x8W107aWYoSC5jYWxsKFgpPTNEPTNEPTNE
IltvYmplY3QgPQ0KQXJyYXldIil7QXJyYXkucHJvdG90eXBlLnB1c2guYXBw
bHkoVSxYKX1lbHNle2lmKHR5cGVvZiA9DQpYLmxlbmd0aD0zRD0zRD0zRCJu
dW1iZXIiKXtmb3IodmFyID0NClY9M0QwLFQ9M0RYLmxlbmd0aDtWPFQ7Visr
KXtVLnB1c2goWFtWXSl9fWVsc2V7Zm9yKHZhciA9DQpWPTNEMDtYW1ZdO1Yr
Kyl7VS5wdXNoKFhbVl0pfX19cmV0dXJuIFV9fXZhciA9DQpHO2lmKGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbil7
Rz0zRGZ1bmN0aW9uKFUsVCl7PQ0KdmFyID0NClY9M0RVLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKFQpJjQ/LTE6VT0zRD0zRD0zRFQ/MDoxO2lmKFY9M0Q9
M0Q9M0QwKXtoYXM9DQpEdXBsaWNhdGU9M0R0cnVlfXJldHVybiBWfX1lbHNl
e2lmKCJzb3VyY2VJbmRleCIgaW4gPQ0KZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50KXtHPTNEZnVuY3Rpb24oVSxUKXt2YXIgPQ0KVj0zRFUuc291cmNlSW5k
ZXgtVC5zb3VyY2VJbmRleDtpZihWPTNEPTNEPTNEMCl7aGFzRHVwbGljYXRl
PTNEdHJ1ZX1yZXR1cj0NCm4gVn19ZWxzZXtpZihkb2N1bWVudC5jcmVhdGVS
YW5nZSl7Rz0zRGZ1bmN0aW9uKFcsVSl7dmFyID0NClY9M0RXLm93bmVyRG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKSxUPTNEVS5vd25lckRvY3VtZW50LmNyZWF0
ZVJhbmdlKCk7Vi5zZWw9DQplY3ROb2RlKFcpO1YuY29sbGFwc2UodHJ1ZSk7
VC5zZWxlY3ROb2RlKFUpO1QuY29sbGFwc2UodHJ1ZSk7dmFyID0NClg9M0RW
LmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7
aWYoWD0zRD0zRD0zRDApe2hhc0R1cGw9DQppY2F0ZT0zRHRydWV9cmV0dXJu
IFh9fX19KGZ1bmN0aW9uKCl7dmFyID0NClU9M0Rkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJmb3JtIiksVj0zRCJzY3JpcHQiKyhuZXcgPQ0KRGF0ZSkuZ2V0
VGltZSgpO1UuaW5uZXJIVE1MPTNEIjxpbnB1dCBuYW1lPTNEJyIrVisiJy8+
Ijt2YXIgPQ0KVD0zRGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtULmluc2Vy
dEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudD0NCi5nZXRF
bGVtZW50QnlJZChWKSl7SS5maW5kLklEPTNEZnVuY3Rpb24oWCxZLFope2lm
KHR5cGVvZiA9DQpZLmdldEVsZW1lbnRCeUlkIT0zRD0zRCJ1bmRlZmluZWQi
JiYhWil7dmFyID0NClc9M0RZLmdldEVsZW1lbnRCeUlkKFhbMV0pO3JldHVy
biBXP1cuaWQ9M0Q9M0Q9M0RYWzFdfHx0eXBlb2YgPQ0KVy5nZXRBdHRyaWJ1
dGVOb2RlIT0zRD0zRCJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0ZU5vZGUo
ImlkIikubm9kZVZhbHVlPTNEPQ0KPTNEPTNEWFsxXT9bV106ZzpbXX19O0ku
ZmlsdGVyLklEPTNEZnVuY3Rpb24oWSxXKXt2YXIgWD0zRHR5cGVvZiA9DQpZ
LmdldEF0dHJpYnV0ZU5vZGUhPTNEPTNEInVuZGVmaW5lZCImJlkuZ2V0QXR0
cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gPQ0KWS5ub2RlVHlwZT0zRD0zRD0z
RDEmJlgmJlgubm9kZVZhbHVlPTNEPTNEPTNEV319VC5yZW1vdmVDaGlsZChV
KX0pKCk7KGZ1bj0NCmN0aW9uKCl7dmFyID0NClQ9M0Rkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTtULmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUNvbW1lbnQoIiI9DQopKTtpZihULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIq
IikubGVuZ3RoPjApe0kuZmluZC5UQUc9M0RmdW5jdGlvbihVLFkpe3ZhPQ0K
ciBYPTNEWS5nZXRFbGVtZW50c0J5VGFnTmFtZShVWzFdKTtpZihVWzFdPTNE
PTNEPTNEIioiKXt2YXIgPQ0KVz0zRFtdO2Zvcih2YXIgPQ0KVj0zRDA7WFtW
XTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9M0Q9M0Q9M0QxKXtXLnB1c2goWFtW
XSl9fVg9M0RXfXJldHVybiA9DQpYfX1ULmlubmVySFRNTD0zRCI8YSBocmVm
PTNEJyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlwZW9mID0NClQuZmly
c3RDaGlsZC5nZXRBdHRyaWJ1dGUhPTNEPTNEInVuZGVmaW5lZCImJlQuZmly
c3RDaGlsZC5nZXRBdHRyaWJ1dGUoImg9DQpyZWYiKSE9M0Q9M0QiIyIpe0ku
YXR0ckhhbmRsZS5ocmVmPTNEZnVuY3Rpb24oVSl7cmV0dXJuID0NClUuZ2V0
QXR0cmlidXRlKCJocmVmIiwyKX19fSkoKTtpZihkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKXsoZnVuY3Rpb24oKXs9DQp2YXIgVD0zREYsVT0zRGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1UuaW5uZXJIVE1MPTNEIjxwID0N
CmNsYXNzPTNEJ1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYm
VS5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmw9DQplbmd0aD0zRD0zRD0z
RDApe3JldHVybn1GPTNEZnVuY3Rpb24oWSxYLFYsVyl7WD0zRFh8fGRvY3Vt
ZW50O2lmKCFXJiZYLm5vPQ0KZGVUeXBlPTNEPTNEPTNEOSYmIVEoWCkpe3Ry
eXtyZXR1cm4gPQ0KRShYLnF1ZXJ5U2VsZWN0b3JBbGwoWSksVil9Y2F0Y2go
Wil7fX1yZXR1cm4gPQ0KVChZLFgsVixXKX07Ri5maW5kPTNEVC5maW5kO0Yu
ZmlsdGVyPTNEVC5maWx0ZXI7Ri5zZWxlY3RvcnM9M0RULnNlbGVjdG9ycz0N
CjtGLm1hdGNoZXM9M0RULm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmQ9DQpvY3VtZW50RWxlbWVu
dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgPQ0K
VD0zRGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuaW5uZXJIVE1M
PTNEIjxkaXYgY2xhc3M9M0QndGVzdCA9DQplJz48L2Rpdj48ZGl2ID0NCmNs
YXNzPTNEJ3Rlc3QnPjwvZGl2PiI7aWYoVC5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKCJlIikubGVuZ3RoPTNEPTNEPTNEMCk9DQp7cmV0dXJufVQubGFzdENo
aWxkLmNsYXNzTmFtZT0zRCJlIjtpZihULmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoImUiKS5sZW5nPQ0KdGg9M0Q9M0Q9M0QxKXtyZXR1cm59SS5vcmRlci5z
cGxpY2UoMSwwLCJDTEFTUyIpO0kuZmluZC5DTEFTUz0zRGZ1bmN0aW9uKD0N
ClUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT0z
RD0zRCJ1bmRlZmluZWQiJiYhVyl7cmV0dXJuID0NClYuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZShVWzFdKX19fSkoKX1mdW5jdGlvbiBQKFUsWixZLGFkLGFh
LGFjKXt2YXIgPQ0KYWI9M0RVPTNEPTNEInByZXZpb3VzU2libGluZyImJiFh
Yztmb3IodmFyID0NClc9M0QwLFY9M0RhZC5sZW5ndGg7VzxWO1crKyl7dmFy
ID0NClQ9M0RhZFtXXTtpZihUKXtpZihhYiYmVC5ub2RlVHlwZT0zRD0zRD0z
RDEpe1Quc2l6Y2FjaGU9M0RZO1Quc2l6c2V0PTNEV309DQpUPTNEVFtVXTt2
YXIgPQ0KWD0zRGZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9M0Q9M0Q9
M0RZKXtYPTNEYWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubj0NCm9kZVR5cGU9
M0Q9M0Q9M0QxJiYhYWMpe1Quc2l6Y2FjaGU9M0RZO1Quc2l6c2V0PTNEV31p
ZihULm5vZGVOYW1lPTNEPTNEPTNEPQ0KWil7WD0zRFQ7YnJlYWt9VD0zRFRb
VV19YWRbV109M0RYfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxhYyl7dmFy
ID0NCmFiPTNEVT0zRD0zRCJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZh
ciA9DQpXPTNEMCxWPTNEYWQubGVuZ3RoO1c8VjtXKyspe3ZhciA9DQpUPTNE
YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9M0Q9M0Q9M0QxKXtULnNp
emNhY2hlPTNEWTtULnNpenNldD0zRFd9PQ0KVD0zRFRbVV07dmFyID0NClg9
M0RmYWxzZTt3aGlsZShUKXtpZihULnNpemNhY2hlPTNEPTNEPTNEWSl7WD0z
RGFkW1Quc2l6c2V0XTticmVha31pZihULm49DQpvZGVUeXBlPTNEPTNEPTNE
MSl7aWYoIWFjKXtULnNpemNhY2hlPTNEWTtULnNpenNldD0zRFd9aWYodHlw
ZW9mID0NClohPTNEPTNEInN0cmluZyIpe2lmKFQ9M0Q9M0Q9M0RaKXtYPTNE
dHJ1ZTticmVha319ZWxzZXtpZihGLmZpbHRlcihaLFtUXSk9DQoubGVuZ3Ro
PjApe1g9M0RUO2JyZWFrfX19VD0zRFRbVV19YWRbV109M0RYfX19dmFyID0N
Cks9M0Rkb2N1bWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlv
bihVLFQpe3JldHVybiA9DQpVLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKFQp
JjE2fTpmdW5jdGlvbihVLFQpe3JldHVybiA9DQpVIT0zRD0zRFQmJihVLmNv
bnRhaW5zP1UuY29udGFpbnMoVCk6dHJ1ZSl9O3ZhciBRPTNEZnVuY3Rpb24o
VCl7cmV0dXJuID0NClQubm9kZVR5cGU9M0Q9M0Q9M0Q5JiZULmRvY3VtZW50
RWxlbWVudC5ub2RlTmFtZSE9M0Q9M0QiSFRNTCJ8fCEhVC5vd25lckQ9DQpv
Y3VtZW50JiZRKFQub3duZXJEb2N1bWVudCl9O3ZhciBKPTNEZnVuY3Rpb24o
VCxhYSl7dmFyID0NClc9M0RbXSxYPTNEIiIsWSxWPTNEYWEubm9kZVR5cGU/
W2FhXTphYTt3aGlsZSgoWT0zREkubWF0Y2guUFNFVURPLmV4ZWMoVCk9DQop
KXtYKz0zRFlbMF07VD0zRFQucmVwbGFjZShJLm1hdGNoLlBTRVVETywiIil9
VD0zREkucmVsYXRpdmVbVF0/VCsiKiI6VDtmPQ0Kb3IodmFyIFo9M0QwLFU9
M0RWLmxlbmd0aDtaPFU7WisrKXtGKFQsVltaXSxXKX1yZXR1cm4gPQ0KRi5m
aWx0ZXIoWCxXKX07by5maW5kPTNERjtvLmZpbHRlcj0zREYuZmlsdGVyO28u
ZXhwcj0zREYuc2VsZWN0b3JzO28uZXhwcj0NClsiOiJdPTNEby5leHByLmZp
bHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49M0RmdW5jdGlvbihU
KXtyZXR1cm4gPQ0KVC5vZmZzZXRXaWR0aD0zRD0zRD0zRDB8fFQub2Zmc2V0
SGVpZ2h0PTNEPTNEPTNEMH07Ri5zZWxlY3RvcnMuZmlsdGVycy52aT0NCnNp
YmxlPTNEZnVuY3Rpb24oVCl7cmV0dXJuID0NClQub2Zmc2V0V2lkdGg+MHx8
VC5vZmZzZXRIZWlnaHQ+MH07Ri5zZWxlY3RvcnMuZmlsdGVycy5hbmltYXRl
ZD0zRGZ1bmN0aW89DQpuKFQpe3JldHVybiBvLmdyZXAoby50aW1lcnMsZnVu
Y3Rpb24oVSl7cmV0dXJuID0NClQ9M0Q9M0Q9M0RVLmVsZW19KS5sZW5ndGh9
O28ubXVsdGlGaWx0ZXI9M0RmdW5jdGlvbihWLFQsVSl7aWYoVSl7Vj0zRCI6
bm89DQp0KCIrVisiKSJ9cmV0dXJuIEYubWF0Y2hlcyhWLFQpfTtvLmRpcj0z
RGZ1bmN0aW9uKFYsVSl7dmFyID0NClQ9M0RbXSxXPTNEVltVXTt3aGlsZShX
JiZXIT0zRGRvY3VtZW50KXtpZihXLm5vZGVUeXBlPTNEPTNEMSl7VC5wdXNo
KFcpfVc9DQo9M0RXW1VdfXJldHVybiBUfTtvLm50aD0zRGZ1bmN0aW9uKFgs
VCxWLFcpe1Q9M0RUfHwxO3ZhciA9DQpVPTNEMDtmb3IoO1g7WD0zRFhbVl0p
e2lmKFgubm9kZVR5cGU9M0Q9M0QxJiYrK1U9M0Q9M0RUKXticmVha319cmV0
dXJuID0NClh9O28uc2libGluZz0zRGZ1bmN0aW9uKFYsVSl7dmFyID0NClQ9
M0RbXTtmb3IoO1Y7Vj0zRFYubmV4dFNpYmxpbmcpe2lmKFYubm9kZVR5cGU9
M0Q9M0QxJiZWIT0zRFUpe1QucHVzaChWKX09DQp9cmV0dXJuID0NClR9O3Jl
dHVybjtsLlNpenpsZT0zREZ9KSgpO28uZXZlbnQ9M0R7YWRkOmZ1bmN0aW9u
KEksRixILEspe2lmKEkubm9kZVR5cGU9DQo9M0Q9M0QzfHxJLm5vZGVUeXBl
PTNEPTNEOCl7cmV0dXJufWlmKEkuc2V0SW50ZXJ2YWwmJkkhPTNEbCl7ST0z
RGx9aWYoIUguPQ0KZ3VpZCl7SC5ndWlkPTNEdGhpcy5ndWlkKyt9aWYoSyE9
M0Q9M0RnKXt2YXIgPQ0KRz0zREg7SD0zRHRoaXMucHJveHkoRyk7SC5kYXRh
PTNES312YXIgPQ0KRT0zRG8uZGF0YShJLCJldmVudHMiKXx8by5kYXRhKEks
ImV2ZW50cyIse30pLEo9M0RvLmRhdGEoSSwiaGFuZGxlIil8fG8uZD0NCmF0
YShJLCJoYW5kbGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiA9DQpvIT0z
RD0zRCJ1bmRlZmluZWQiJiYhby5ldmVudC50cmlnZ2VyZWQ/by5ldmVudC5o
YW5kbGUuYXBwbHkoYXJndW1lbnRzLmNhPQ0KbGxlZS5lbGVtLGFyZ3VtZW50
cyk6Z30pO0ouZWxlbT0zREk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0
aW9uKE0sTil7dj0NCmFyID0NCk89M0ROLnNwbGl0KCIuIik7Tj0zRE8uc2hp
ZnQoKTtILnR5cGU9M0RPLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIg
PQ0KTD0zREVbTl07aWYoby5ldmVudC5zcGVjaWFsQWxsW05dKXtvLmV2ZW50
LnNwZWNpYWxBbGxbTl0uc2V0dXAuY2FsbChJLEssTz0NCil9aWYoIUwpe0w9
M0RFW05dPTNEe307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5z
cGVjaWFsW05dLnNldHVwLmM9DQphbGwoSSxLLE8pPTNEPTNEPTNEZmFsc2Up
e2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5hZGRFdmVudExpc3RlbmVyKE4s
SixmPQ0KYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2
ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09M0RIO28uZT0NCnZlbnQuZ2xv
YmFsW05dPTNEdHJ1ZX0pO0k9M0RudWxsfSxndWlkOjEsZ2xvYmFsOnt9LHJl
bW92ZTpmdW5jdGlvbihLLEgsSik9DQp7aWYoSy5ub2RlVHlwZT0zRD0zRDN8
fEsubm9kZVR5cGU9M0Q9M0Q4KXtyZXR1cm59dmFyID0NCkc9M0RvLmRhdGEo
SywiZXZlbnRzIiksRixFO2lmKEcpe2lmKEg9M0Q9M0Q9M0RnfHwodHlwZW9m
ID0NCkg9M0Q9M0Q9M0Qic3RyaW5nIiYmSC5jaGFyQXQoMCk9M0Q9M0QiLiIp
KXtmb3IodmFyIEkgaW4gPQ0KRyl7dGhpcy5yZW1vdmUoSyxJKyhIfHwiIikp
fX1lbHNle2lmKEgudHlwZSl7Sj0zREguaGFuZGxlcjtIPTNESC50eXBlfW8u
ZT0NCmFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPTNE
Ty5zcGxpdCgiLiIpO089M0RRLnNoaWZ0KCk7dmFyID0NCk49M0RSZWdFeHAo
IihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigiLipcXC4iKSsiKFxc
LnwkKSIpO2lmKEdbT10pe2k9DQpmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19
ZWxzZXtmb3IodmFyIFAgaW4gPQ0KR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0u
dHlwZSkpe2RlbGV0ZSA9DQpHW09dW1BdfX19aWYoby5ldmVudC5zcGVjaWFs
QWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2FsbChL
PQ0KLFEpfWZvcihGIGluID0NCkdbT10pe2JyZWFrfWlmKCFGKXtpZighby5l
dmVudC5zcGVjaWFsW09dfHxvLmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24u
Y2E9DQpsbChLLFEpPTNEPTNEPTNEZmFsc2Upe2lmKEsucmVtb3ZlRXZlbnRM
aXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sPQ0Kby5kYXRhKEss
ImhhbmRsZSIpLGZhbHNlKX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0
YWNoRXZlbnQoIm9uIitPLG8uZD0NCmF0YShLLCJoYW5kbGUiKSl9fX1GPTNE
bnVsbDtkZWxldGUgR1tPXX19fSl9Zm9yKEYgaW4gRyl7YnJlYWt9aWYoIUYp
e3ZhciA9DQpMPTNEby5kYXRhKEssImhhbmRsZSIpO2lmKEwpe0wuZWxlbT0z
RG51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50cyIpO28ucmVtPQ0Kb3ZlRGF0
YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3Zh
ciA9DQpHPTNESS50eXBlfHxJO2lmKCFFKXtJPTNEdHlwZW9mID0NCkk9M0Q9
M0Q9M0Qib2JqZWN0Ij9JW2hdP0k6by5leHRlbmQoby5FdmVudChHKSxJKTpv
LkV2ZW50KEcpO2lmKEcuaW5kZXhPZig9DQoiISIpPj0zRDApe0kudHlwZT0z
REc9M0RHLnNsaWNlKDAsLTEpO0kuZXhjbHVzaXZlPTNEdHJ1ZX1pZighSCl7
SS5zdG9wUHJvPQ0KcGFnYXRpb24oKTtpZih0aGlzLmdsb2JhbFtHXSl7by5l
YWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdD0NCmhp
cy5ldmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUu
ZWxlbSl9fSl9fWlmKCFIfHxILm5vZGVUeXA9DQplPTNEPTNEM3x8SC5ub2Rl
VHlwZT0zRD0zRDgpe3JldHVybiA9DQpnfUkucmVzdWx0PTNEZztJLnRhcmdl
dD0zREg7Sz0zRG8ubWFrZUFycmF5KEspO0sudW5zaGlmdChJKX1JLmN1cnJl
bnRUYXJnPQ0KZXQ9M0RIO3ZhciA9DQpKPTNEby5kYXRhKEgsImhhbmRsZSIp
O2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgs
ImEiKSYmPQ0KRz0zRD0zRCJjbGljayIpKSYmSFsib24iK0ddJiZIWyJvbiIr
R10uYXBwbHkoSCxLKT0zRD0zRD0zRGZhbHNlKXtJLnJlc3VsdD0NCj0zRGZh
bHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShv
Lm5vZGVOYW1lKEgsImEiKSYmRz0zRD0zRD0NCiJjbGljayIpKXt0aGlzLnRy
aWdnZXJlZD0zRHRydWU7dHJ5e0hbR10oKX1jYXRjaChMKXt9fXRoaXMudHJp
Z2dlcmVkPTNEZmE9DQpsc2U7aWYoIUkuaXNQcm9wYWdhdGlvblN0b3BwZWQo
KSl7dmFyID0NCkY9M0RILnBhcmVudE5vZGV8fEgub3duZXJEb2N1bWVudDtp
ZihGKXtvLmV2ZW50LnRyaWdnZXIoSSxLLEYsdHJ1ZSl9fX0saGE9DQpuZGxl
OmZ1bmN0aW9uKEspe3ZhciA9DQpKLEU7Sz0zRGFyZ3VtZW50c1swXT0zRG8u
ZXZlbnQuZml4KEt8fGwuZXZlbnQpO0suY3VycmVudFRhcmdldD0zRHRoaXM7
dmFyPQ0KID0NCkw9M0RLLnR5cGUuc3BsaXQoIi4iKTtLLnR5cGU9M0RMLnNo
aWZ0KCk7Sj0zRCFMLmxlbmd0aCYmIUsuZXhjbHVzaXZlO3ZhciA9DQpJPTNE
UmVnRXhwKCIoXnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwu
IikrIihcXC58JCkiKTtFPTNEKG8uZGF0PQ0KYSh0aGlzLCJldmVudHMiKXx8
e30pW0sudHlwZV07Zm9yKHZhciBHIGluIEUpe3ZhciA9DQpIPTNERVtHXTtp
ZihKfHxJLnRlc3QoSC50eXBlKSl7Sy5oYW5kbGVyPTNESDtLLmRhdGE9M0RI
LmRhdGE7dmFyID0NCkY9M0RILmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihG
IT0zRD0zRGcpe0sucmVzdWx0PTNERjtpZihGPTNEPTNEPTNEZmFsc2U9DQop
e0sucHJldmVudERlZmF1bHQoKTtLLnN0b3BQcm9wYWdhdGlvbigpfX1pZihL
LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wPQ0KcGVkKCkpe2JyZWFrfX19
fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBi
dXR0b24gPQ0KY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkg
Y3RybEtleSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsID0NCmV2ZW50UGhh
c2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIG1ldGFLZXkgbmV3VmFs
dWUgb3JpZ2luYWxUYXJnZXQgPQ0KcGFnZVggcGFnZVkgcHJldlZhbHVlIHJl
bGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0
S2V5ID0NCnNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVs
RGVsdGEgd2hpY2giLnNwbGl0KCIgPQ0KIiksZml4OmZ1bmN0aW9uKEgpe2lm
KEhbaF0pe3JldHVybiBIfXZhciBGPTNESDtIPTNEby5FdmVudChGKTtmb3Io
dmFyID0NCkc9M0R0aGlzLnByb3BzLmxlbmd0aCxKO0c7KXtKPTNEdGhpcy5w
cm9wc1stLUddO0hbSl09M0RGW0pdfWlmKCFILnRhcmdldCk9DQp7SC50YXJn
ZXQ9M0RILnNyY0VsZW1lbnR8fGRvY3VtZW50fWlmKEgudGFyZ2V0Lm5vZGVU
eXBlPTNEPTNEMyl7SC50YXJnZXQ9M0Q9DQpILnRhcmdldC5wYXJlbnROb2Rl
fWlmKCFILnJlbGF0ZWRUYXJnZXQmJkguZnJvbUVsZW1lbnQpe0gucmVsYXRl
ZFRhcmdldD0zRD0NCkguZnJvbUVsZW1lbnQ9M0Q9M0RILnRhcmdldD9ILnRv
RWxlbWVudDpILmZyb21FbGVtZW50fWlmKEgucGFnZVg9M0Q9M0RudWw9DQps
JiZILmNsaWVudFghPTNEbnVsbCl7dmFyID0NCkk9M0Rkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQsRT0zRGRvY3VtZW50LmJvZHk7SC5wYWdlWD0zREguY2xp
ZW50WCsoSSYmSS49DQpzY3JvbGxMZWZ0fHxFJiZFLnNjcm9sbExlZnR8fDAp
LShJLmNsaWVudExlZnR8fDApO0gucGFnZVk9M0RILmNsaWVudFkrKEkmPQ0K
Jkkuc2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9w
fHwwKX1pZighSC53aGljaCYmKChILmNoYXJDbz0NCmRlfHxILmNoYXJDb2Rl
PTNEPTNEPTNEMCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNoPTNE
SC5jaGFyQ29kZXx8SC49DQprZXlDb2RlfWlmKCFILm1ldGFLZXkmJkguY3Ry
bEtleSl7SC5tZXRhS2V5PTNESC5jdHJsS2V5fWlmKCFILndoaWNoJiZILmJ1
PQ0KdHRvbil7SC53aGljaD0zRChILmJ1dHRvbiYxPzE6KEguYnV0dG9uJjI/
MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuID0NCkh9LHByb3h5OmZ1bmN0
aW9uKEYsRSl7RT0zREV8fGZ1bmN0aW9uKCl7cmV0dXJuID0NCkYuYXBwbHko
dGhpcyxhcmd1bWVudHMpfTtFLmd1aWQ9M0RGLmd1aWQ9M0RGLmd1aWR8fEUu
Z3VpZHx8dGhpcy5ndWlkKys7cmU9DQp0dXJuID0NCkV9LHNwZWNpYWw6e3Jl
YWR5OntzZXR1cDpCLHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxB
bGw6e2xpdmU6e3NldHU9DQpwOmZ1bmN0aW9uKEUsRil7by5ldmVudC5hZGQo
dGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0
PQ0KaCl7dmFyID0NCkU9M0QwLEY9M0RSZWdFeHAoIihefFxcLikiK0dbMF0r
IihcXC58JCkiKTtvLmVhY2goKG8uZGF0YSh0aGlzLCJldmVudHMiKS49DQps
aXZlfHx7fSksZnVuY3Rpb24oKXtpZihGLnRlc3QodGhpcy50eXBlKSl7RSsr
fX0pO2lmKEU8MSl7by5ldmVudC5yZW1vdmUoPQ0KdGhpcyxHWzBdLGMpfX19
fX19O28uRXZlbnQ9M0RmdW5jdGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVm
YXVsdCl7cmV0dXJuID0NCm5ldyA9DQpvLkV2ZW50KEUpfWlmKEUmJkUudHlw
ZSl7dGhpcy5vcmlnaW5hbEV2ZW50PTNERTt0aGlzLnR5cGU9M0RFLnR5cGV9
ZWxzZXt0PQ0KaGlzLnR5cGU9M0RFfXRoaXMudGltZVN0YW1wPTNEZSgpO3Ro
aXNbaF09M0R0cnVlfTtmdW5jdGlvbiBrKCl7cmV0dXJuID0NCmZhbHNlfWZ1
bmN0aW9uIHUoKXtyZXR1cm4gPQ0KdHJ1ZX1vLkV2ZW50LnByb3RvdHlwZT0z
RHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJl
dmVudD0NCmVkPTNEdTt2YXIgPQ0KRT0zRHRoaXMub3JpZ2luYWxFdmVudDtp
ZighRSl7cmV0dXJufWlmKEUucHJldmVudERlZmF1bHQpe0UucHJldmVudERl
ZmF1bD0NCnQoKX1FLnJldHVyblZhbHVlPTNEZmFsc2V9LHN0b3BQcm9wYWdh
dGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdhdGlvblM9DQp0b3BwZWQ9
M0R1O3ZhciA9DQpFPTNEdGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFFKXtyZXR1
cm59aWYoRS5zdG9wUHJvcGFnYXRpb24pe0Uuc3RvcFByb3BhZ2F0PQ0KaW9u
KCl9RS5jYW5jZWxCdWJibGU9M0R0cnVlfSxzdG9wSW1tZWRpYXRlUHJvcGFn
YXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzST0NCm1tZWRpYXRlUHJvcGFnYXRp
b25TdG9wcGVkPTNEdTt0aGlzLnN0b3BQcm9wYWdhdGlvbigpfSxpc0RlZmF1
bHRQcmV2ZW50ZWQ9DQo6ayxpc1Byb3BhZ2F0aW9uU3RvcHBlZDprLGlzSW1t
ZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmt9O3ZhciA9DQphPTNEZnVuY3Rp
b24oRil7dmFyID0NCkU9M0RGLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9
M0R0aGlzKXt0cnl7RT0zREUucGFyZW50Tm9kZX1jYXRjaChHKXtFPTNEPQ0K
dGhpc319aWYoRSE9M0R0aGlzKXtGLnR5cGU9M0RGLmRhdGE7by5ldmVudC5o
YW5kbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfT0NCn07by5lYWNoKHttb3Vz
ZW92ZXI6Im1vdXNlZW50ZXIiLG1vdXNlb3V0OiJtb3VzZWxlYXZlIn0sZnVu
Y3Rpb24oRixFKXtvLmU9DQp2ZW50LnNwZWNpYWxbRV09M0R7c2V0dXA6ZnVu
Y3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVu
PQ0KY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4u
ZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxFKXtyZT0NCnR1cm4gPQ0KRj0z
RD0zRCJ1bmxvYWQiP3RoaXMub25lKEYsRyxFKTp0aGlzLmVhY2goZnVuY3Rp
b24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsRT0NCnx8RyxFJiZHKX0pfSxvbmU6
ZnVuY3Rpb24oRyxILEYpe3ZhciA9DQpFPTNEby5ldmVudC5wcm94eShGfHxI
LGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgp
LmFwcGx5PQ0KKHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiA9DQp0aGlzLmVh
Y2goZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1
bmJpbmQ6ZnVuY3Rpb24oRixFKXtyPQ0KZXR1cm4gPQ0KdGhpcy5lYWNoKGZ1
bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6
ZnVuY3Rpb24oRSxGKXtyZT0NCnR1cm4gPQ0KdGhpcy5lYWNoKGZ1bmN0aW9u
KCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0cmlnZ2VySGFuZGxl
cjpmdW5jdGlvbj0NCihFLEcpe2lmKHRoaXNbMF0pe3ZhciA9DQpGPTNEby5F
dmVudChFKTtGLnByZXZlbnREZWZhdWx0KCk7Ri5zdG9wUHJvcGFnYXRpb24o
KTtvLmV2ZW50LnRyaWdnZXIoRixHPQ0KLHRoaXNbMF0pO3JldHVybiBGLnJl
c3VsdH19LHRvZ2dsZTpmdW5jdGlvbihHKXt2YXIgPQ0KRT0zRGFyZ3VtZW50
cyxGPTNEMTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtG
KytdKX1yZXR1cm4gPQ0KdGhpcy5jbGljayhvLmV2ZW50LnByb3h5KEcsZnVu
Y3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPTNEKHRoaXMubGFzdFRvZ2dsZT0N
Cnx8MCklRjtILnByZXZlbnREZWZhdWx0KCk7cmV0dXJuID0NCkVbdGhpcy5s
YXN0VG9nZ2xlKytdLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8ZmFsc2V9KSl9
LGhvdmVyOmZ1bmN0aW9uKEUsRik9DQp7cmV0dXJuID0NCnRoaXMubW91c2Vl
bnRlcihFKS5tb3VzZWxlYXZlKEYpfSxyZWFkeTpmdW5jdGlvbihFKXtCKCk7
aWYoby5pc1JlYWR5KXtFLmM9DQphbGwoZG9jdW1lbnQsbyl9ZWxzZXtvLnJl
YWR5TGlzdC5wdXNoKEUpfXJldHVybiA9DQp0aGlzfSxsaXZlOmZ1bmN0aW9u
KEcsRil7dmFyID0NCkU9M0RvLmV2ZW50LnByb3h5KEYpO0UuZ3VpZCs9M0R0
aGlzLnNlbGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy49DQpz
ZWxlY3RvciksdGhpcy5zZWxlY3RvcixFKTtyZXR1cm4gPQ0KdGhpc30sZGll
OmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlzLnNl
bGVjdG9yKSxFP3tndWlkOkUuZz0NCnVpZCt0aGlzLnNlbGVjdG9yK0Z9Om51
bGwpO3JldHVybiB0aGlzfX0pO2Z1bmN0aW9uIGMoSCl7dmFyID0NCkU9M0RS
ZWdFeHAoIihefFxcLikiK0gudHlwZSsiKFxcLnwkKSIpLEc9M0R0cnVlLEY9
M0RbXTtvLmVhY2goby5kYXRhKHRoaXM9DQosImV2ZW50cyIpLmxpdmV8fFtd
LGZ1bmN0aW9uKEksSil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciA9DQpLPTNE
byhILnRhcmdldCkuY2xvc2VzdChKLmRhdGEpWzBdO2lmKEspe0YucHVzaCh7
ZWxlbTpLLGZuOkp9KX19fSk7Ri5zb3J0PQ0KKGZ1bmN0aW9uKEosSSl7cmV0
dXJuID0NCm8uZGF0YShKLmVsZW0sImNsb3Nlc3QiKS1vLmRhdGEoSS5lbGVt
LCJjbG9zZXN0Iil9KTtvLmVhY2goRixmdW5jdGlvbigpe2k9DQpmKHRoaXMu
Zm4uY2FsbCh0aGlzLmVsZW0sSCx0aGlzLmZuLmRhdGEpPTNEPTNEPTNEZmFs
c2Upe3JldHVybihHPTNEZmFsc2UpPQ0KfX0pO3JldHVybiBHfWZ1bmN0aW9u
ID0NCmkoRixFKXtyZXR1cm5bImxpdmUiLEYsRS5yZXBsYWNlKC9cLi9nLCJg
IikucmVwbGFjZSgvID0NCi9nLCJ8IildLmpvaW4oIi4iKX1vLmV4dGVuZCh7
aXNSZWFkeTpmYWxzZSxyZWFkeUxpc3Q6W10scmVhZHk6ZnVuY3Rpb24oKXs9
DQppZighby5pc1JlYWR5KXtvLmlzUmVhZHk9M0R0cnVlO2lmKG8ucmVhZHlM
aXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3RpPQ0Kb24oKXt0aGlzLmNh
bGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD0zRG51bGx9byhkb2N1bWVu
dCkudHJpZ2dlckhhbmRsZT0NCnIoInJlYWR5Iil9fX0pO3ZhciB4PTNEZmFs
c2U7ZnVuY3Rpb24gPQ0KQigpe2lmKHgpe3JldHVybn14PTNEdHJ1ZTtpZihk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudD0N
Ckxpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3Vt
ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUM9DQpvbnRlbnRMb2FkZWQi
LGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFsc2UpfWVs
c2V7aWYoZG9jdW1lbnQuPQ0KYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFj
aEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9j
dT0NCm1lbnQucmVhZHlTdGF0ZT0zRD0zRD0zRCJjb21wbGV0ZSIpe2RvY3Vt
ZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGE9DQpuZ2UiLGFyZ3Vt
ZW50cy5jYWxsZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuZG9TY3JvbGwmPQ0KJmw9M0Q9M0RsLnRvcCl7KGZ1bmN0aW9u
KCl7aWYoby5pc1JlYWR5KXtyZXR1cm59dHJ5e2RvY3VtZW50LmRvY3VtZW50
RWxlbT0NCmVudC5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKEUpe3NldFRpbWVv
dXQoYXJndW1lbnRzLmNhbGxlZSwwKTtyZXR1cm59by5yZWE9DQpkeSgpfSko
KX19fW8uZXZlbnQuYWRkKGwsImxvYWQiLG8ucmVhZHkpfW8uZWFjaCgoImJs
dXIsZm9jdXMsbG9hZCxyZXNpemUsPQ0Kc2Nyb2xsLHVubG9hZCxjbGljayxk
YmxjbGljayxtb3VzZWRvd24sbW91c2V1cCxtb3VzZW1vdmUsbW91c2VvdmVy
LG1vdXNlbz0NCnV0LG1vdXNlZW50ZXIsbW91c2VsZWF2ZSxjaGFuZ2Usc2Vs
ZWN0LHN1Ym1pdCxrZXlkb3duLGtleXByZXNzLGtleXVwLGVycm89DQpyIiku
c3BsaXQoIiwiKSxmdW5jdGlvbihGLEUpe28uZm5bRV09M0RmdW5jdGlvbihH
KXtyZXR1cm4gPQ0KRz90aGlzLmJpbmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9
fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhcj0NCiBF
IGluID0NCm8uY2FjaGUpe2lmKEUhPTNEMSYmby5jYWNoZVtFXS5oYW5kbGUp
e28uZXZlbnQucmVtb3ZlKG8uY2FjaGVbRV0uaGFuZGxlLmU9DQpsZW0pfX19
KTsoZnVuY3Rpb24oKXtvLnN1cHBvcnQ9M0R7fTt2YXIgPQ0KRj0zRGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCxHPTNEZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0IiksSz0zRGRvYz0NCnVtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpLEo9M0Qic2NyaXB0IisobmV3ID0NCkRhdGUpLmdldFRpbWUoKTtLLnN0
eWxlLmRpc3BsYXk9M0Qibm9uZSI7Sy5pbm5lckhUTUw9M0QnICAgPQ0KPGxp
bmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9M0QiL2EiID0NCnN0eWxlPTNE
ImNvbG9yOnJlZDtmbG9hdDpsZWZ0O29wYWNpdHk6LjU7Ij5hPC9hPjxzZWxl
Y3Q+PG9wdGlvbj50ZXh0PC9vcHQ9DQppb24+PC9zZWxlY3Q+PG9iamVjdD48
cGFyYW0vPjwvb2JqZWN0Pic7dmFyID0NCkg9M0RLLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCIqIiksRT0zREsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVsw
XTtpZighSHw9DQp8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD0z
RHtsZWFkaW5nV2hpdGVzcGFjZTpLLmZpcnN0Q2hpbGQubm9kZVR5PQ0KcGU9
M0Q9M0QzLHRib2R5OiFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIp
Lmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldD0NCkVsZW1lbnRzQnlUYWdOYW1l
KCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0
aCxodG1sU2VyaWE9DQpsaXplOiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
bGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUuZ2V0QXR0cmliPQ0K
dXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgi
aHJlZiIpPTNEPTNEPTNEIi9hIixvcGFjaXR5Oj0NCkUuc3R5bGUub3BhY2l0
eT0zRD0zRD0zRCIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5jc3NGbG9hdCxz
Y3JpcHRFdmFsOmZhbHM9DQplLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVs
Om51bGx9O0cudHlwZT0zRCJ0ZXh0L2phdmFzY3JpcHQiO3RyeXtHLmFwcGVu
PQ0KZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ3aW5kb3cuIitK
KyI9M0QxOyIpKX1jYXRjaChJKXt9Ri5pbnNlcnRCZT0NCmZvcmUoRyxGLmZp
cnN0Q2hpbGQpO2lmKGxbSl0pe28uc3VwcG9ydC5zY3JpcHRFdmFsPTNEdHJ1
ZTtkZWxldGUgPQ0KbFtKXX1GLnJlbW92ZUNoaWxkKEcpO2lmKEsuYXR0YWNo
RXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNsaT0NCmNr
IixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9M0RmYWxzZTtL
LmRldGFjaEV2ZW50KCJvbmNsaWNrIixhcmc9DQp1bWVudHMuY2FsbGVlKX0p
O0suY2xvbmVOb2RlKHRydWUpLmZpcmVFdmVudCgib25jbGljayIpfW8oZnVu
Y3Rpb24oKXt2YXIgPQ0KTD0zRGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpO0wuc3R5bGUud2lkdGg9M0RMLnN0eWxlLnBhZGRpbmdMZWZ0PTNEIj0N
CjFweCI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChMKTtvLmJveE1vZGVs
PTNEby5zdXBwb3J0LmJveE1vZGVsPTNETC5vZmY9DQpzZXRXaWR0aD0zRD0z
RD0zRDI7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNw
bGF5PTNEIm5vbmUifSl9PQ0KKSgpO3ZhciA9DQp3PTNEby5zdXBwb3J0LmNz
c0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQiO28ucHJvcHM9M0R7ImZv
ciI6Imh0bWxGb3IiPQ0KLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3
LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJlYWRvbmx5OiJyZWFkT25seT0N
CiIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3Bh
Y2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW49DQpkZXg6InRhYkluZGV4
In07by5mbi5leHRlbmQoe19sb2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9u
KEcsSixLKXtpZih0eXBlPQ0Kb2YgRyE9M0Q9M0Qic3RyaW5nIil7cmV0dXJu
IHRoaXMuX2xvYWQoRyl9dmFyIEk9M0RHLmluZGV4T2YoIiA9DQoiKTtpZihJ
Pj0zRDApe3ZhciBFPTNERy5zbGljZShJLEcubGVuZ3RoKTtHPTNERy5zbGlj
ZSgwLEkpfXZhciA9DQpIPTNEIkdFVCI7aWYoSil7aWYoby5pc0Z1bmN0aW9u
KEopKXtLPTNESjtKPTNEbnVsbH1lbHNle2lmKHR5cGVvZiA9DQpKPTNEPTNE
PTNEIm9iamVjdCIpe0o9M0RvLnBhcmFtKEopO0g9M0QiUE9TVCJ9fX12YXIg
PQ0KRj0zRHRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0
bWwiLGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLD0NCkwpe2lmKEw9M0Q9
M0Qic3VjY2VzcyJ8fEw9M0Q9M0Qibm90bW9kaWZpZWQiKXtGLmh0bWwoRT9v
KCI8ZGl2Lz4iKS5hcHBlbmQ9DQooTS5yZXNwb25zZVRleHQucmVwbGFjZSgv
PHNjcmlwdCgufFxzKSo/XC9zY3JpcHQ+L2csIiIpKS5maW5kKEUpOk0ucmVz
cG9uPQ0Kc2VUZXh0KX1pZihLKXtGLmVhY2goSyxbTS5yZXNwb25zZVRleHQs
TCxNXSl9fX0pO3JldHVybiA9DQp0aGlzfSxzZXJpYWxpemU6ZnVuY3Rpb24o
KXtyZXR1cm4gPQ0Kby5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxz
ZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiA9DQp0aGlzLm1hcChm
dW5jdGlvbigpe3JldHVybiA9DQp0aGlzLmVsZW1lbnRzP28ubWFrZUFycmF5
KHRoaXMuZWxlbWVudHMpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1
cm4gPQ0KdGhpcy5uYW1lJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuY2hlY2tl
ZHx8L3NlbGVjdHx0ZXh0YXJlYS9pLnRlc3QodGhpcy5ubz0NCmRlTmFtZSl8
fC90ZXh0fGhpZGRlbnxwYXNzd29yZHxzZWFyY2gvaS50ZXN0KHRoaXMudHlw
ZSkpfSkubWFwKGZ1bmN0aW9uKEU9DQosRil7dmFyIEc9M0RvKHRoaXMpLnZh
bCgpO3JldHVybiA9DQpHPTNEPTNEbnVsbD9udWxsOm8uaXNBcnJheShHKT9v
Lm1hcChHLGZ1bmN0aW9uKEksSCl7cmV0dXJue25hbWU6Ri5uYW1lLHZhPQ0K
bHVlOkl9fSk6e25hbWU6Ri5uYW1lLHZhbHVlOkd9fSkuZ2V0KCl9fSk7by5l
YWNoKCJhamF4U3RhcnQsYWpheFN0b3AsYWpheD0NCkNvbXBsZXRlLGFqYXhF
cnJvcixhamF4U3VjY2VzcyxhamF4U2VuZCIuc3BsaXQoIiwiKSxmdW5jdGlv
bihFLEYpe28uZm5bRl09DQo9M0RmdW5jdGlvbihHKXtyZXR1cm4gdGhpcy5i
aW5kKEYsRyl9fSk7dmFyID0NCnI9M0RlKCk7by5leHRlbmQoe2dldDpmdW5j
dGlvbihFLEcsSCxGKXtpZihvLmlzRnVuY3Rpb24oRykpe0g9M0RHO0c9M0Ru
dWw9DQpsfXJldHVybiA9DQpvLmFqYXgoe3R5cGU6IkdFVCIsdXJsOkUsZGF0
YTpHLHN1Y2Nlc3M6SCxkYXRhVHlwZTpGfSl9LGdldFNjcmlwdDpmdW5jdGlv
PQ0KbihFLEYpe3JldHVybiBvLmdldChFLG51bGwsRiwic2NyaXB0Iil9LGdl
dEpTT046ZnVuY3Rpb24oRSxGLEcpe3JldHVybiA9DQpvLmdldChFLEYsRywi
anNvbiIpfSxwb3N0OmZ1bmN0aW9uKEUsRyxILEYpe2lmKG8uaXNGdW5jdGlv
bihHKSl7SD0zREc7Rz0zRD0NCnt9fXJldHVybiA9DQpvLmFqYXgoe3R5cGU6
IlBPU1QiLHVybDpFLGRhdGE6RyxzdWNjZXNzOkgsZGF0YVR5cGU6Rn0pfSxh
amF4U2V0dXA6ZnVuY3RpPQ0Kb24oRSl7by5leHRlbmQoby5hamF4U2V0dGlu
Z3MsRSl9LGFqYXhTZXR0aW5nczp7dXJsOmxvY2F0aW9uLmhyZWYsZ2xvYmFs
Oj0NCnRydWUsdHlwZToiR0VUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24v
eC13d3ctZm9ybS11cmxlbmNvZGVkIixwcm9jZXNzRGE9DQp0YTp0cnVlLGFz
eW5jOnRydWUseGhyOmZ1bmN0aW9uKCl7cmV0dXJuIGwuQWN0aXZlWE9iamVj
dD9uZXcgPQ0KQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTpu
ZXcgPQ0KWE1MSHR0cFJlcXVlc3QoKX0sYWNjZXB0czp7eG1sOiJhcHBsaWNh
dGlvbi94bWwsID0NCnRleHQveG1sIixodG1sOiJ0ZXh0L2h0bWwiLHNjcmlw
dDoidGV4dC9qYXZhc2NyaXB0LCA9DQphcHBsaWNhdGlvbi9qYXZhc2NyaXB0
Iixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCA9DQp0ZXh0L2phdmFzY3JpcHQi
LHRleHQ6InRleHQvcGxhaW4iLF9kZWZhdWx0OiIqLyoifX0sbGFzdE1vZGlm
aWVkOnt9LGFqYXg6PQ0KZnVuY3Rpb24oTSl7TT0zRG8uZXh0ZW5kKHRydWUs
TSxvLmV4dGVuZCh0cnVlLHt9LG8uYWpheFNldHRpbmdzLE0pKTt2YXIgPQ0K
VyxGPTNELz0zRFw/KCZ8JCkvZyxSLFYsRz0zRE0udHlwZS50b1VwcGVyQ2Fz
ZSgpO2lmKE0uZGF0YSYmTS5wcm9jZXNzRGF0YT0NCiYmdHlwZW9mID0NCk0u
ZGF0YSE9M0Q9M0Qic3RyaW5nIil7TS5kYXRhPTNEby5wYXJhbShNLmRhdGEp
fWlmKE0uZGF0YVR5cGU9M0Q9M0QianNvbnA9DQoiKXtpZihHPTNEPTNEIkdF
VCIpe2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPTNEKE0udXJsLm1hdGNo
KC9cPy8pPyImIjoiPQ0KPyIpKyhNLmpzb25wfHwiY2FsbGJhY2siKSsiPTNE
PyJ9fWVsc2V7aWYoIU0uZGF0YXx8IU0uZGF0YS5tYXRjaChGKSl7TS5kYT0N
CnRhPTNEKE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxi
YWNrIikrIj0zRD8ifX1NLmRhdGFUeXBlPTNEImo9DQpzb24ifWlmKE0uZGF0
YVR5cGU9M0Q9M0QianNvbiImJihNLmRhdGEmJk0uZGF0YS5tYXRjaChGKXx8
TS51cmwubWF0Y2goRikpPQ0KKXtXPTNEImpzb25wIityKys7aWYoTS5kYXRh
KXtNLmRhdGE9M0QoTS5kYXRhKyIiKS5yZXBsYWNlKEYsIj0zRCIrVysiJDEi
KT0NCn1NLnVybD0zRE0udXJsLnJlcGxhY2UoRiwiPTNEIitXKyIkMSIpO00u
ZGF0YVR5cGU9M0Qic2NyaXB0IjtsW1ddPTNEZnVuY3Q9DQppb24oWCl7Vj0z
RFg7SSgpO0woKTtsW1ddPTNEZzt0cnl7ZGVsZXRlID0NCmxbV119Y2F0Y2go
WSl7fWlmKEgpe0gucmVtb3ZlQ2hpbGQoVCl9fX1pZihNLmRhdGFUeXBlPTNE
PTNEInNjcmlwdCImJk0uY2E9DQpjaGU9M0Q9M0RudWxsKXtNLmNhY2hlPTNE
ZmFsc2V9aWYoTS5jYWNoZT0zRD0zRD0zRGZhbHNlJiZHPTNEPTNEIkdFVCIp
e3ZhPQ0KciBFPTNEZSgpO3ZhciA9DQpVPTNETS51cmwucmVwbGFjZSgvKFw/
fCYpXz0zRC4qPygmfCQpLywiJDFfPTNEIitFKyIkMiIpO00udXJsPTNEVSso
KFU9M0Q9M0Q9DQpNLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoiPyIp
KyJfPTNEIitFOiIiKX1pZihNLmRhdGEmJkc9M0Q9M0QiR0VUIil7PQ0KTS51
cmwrPTNEKE0udXJsLm1hdGNoKC9cPy8pPyImIjoiPyIpK00uZGF0YTtNLmRh
dGE9M0RudWxsfWlmKE0uZ2xvYmFsJiYhbz0NCi5hY3RpdmUrKyl7by5ldmVu
dC50cmlnZ2VyKCJhamF4U3RhcnQiKX12YXIgPQ0KUT0zRC9eKFx3KzopP1wv
XC8oW15cLz8jXSspLy5leGVjKE0udXJsKTtpZihNLmRhdGFUeXBlPTNEPTNE
InNjcmlwdCImJkc9M0Q9DQo9M0QiR0VUIiYmUSYmKFFbMV0mJlFbMV0hPTNE
bG9jYXRpb24ucHJvdG9jb2x8fFFbMl0hPTNEbG9jYXRpb24uaG9zdCkpe3Zh
PQ0KciBIPTNEZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQi
KVswXTt2YXIgPQ0KVD0zRGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlw
dCIpO1Quc3JjPTNETS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULj0NCmNo
YXJzZXQ9M0RNLnNjcmlwdENoYXJzZXR9aWYoIVcpe3ZhciA9DQpPPTNEZmFs
c2U7VC5vbmxvYWQ9M0RULm9ucmVhZHlzdGF0ZWNoYW5nZT0zRGZ1bmN0aW9u
KCl7aWYoIU8mJighdGhpcy5yZWFkPQ0KeVN0YXRlfHx0aGlzLnJlYWR5U3Rh
dGU9M0Q9M0QibG9hZGVkInx8dGhpcy5yZWFkeVN0YXRlPTNEPTNEImNvbXBs
ZXRlIikpez0NCk89M0R0cnVlO0koKTtMKCk7VC5vbmxvYWQ9M0RULm9ucmVh
ZHlzdGF0ZWNoYW5nZT0zRG51bGw7SC5yZW1vdmVDaGlsZChUKX09DQp9fUgu
YXBwZW5kQ2hpbGQoVCk7cmV0dXJuIGd9dmFyIEs9M0RmYWxzZTt2YXIgPQ0K
Sj0zRE0ueGhyKCk7aWYoTS51c2VybmFtZSl7Si5vcGVuKEcsTS51cmwsTS5h
c3luYyxNLnVzZXJuYW1lLE0ucGFzc3dvcmQpfT0NCmVsc2V7Si5vcGVuKEcs
TS51cmwsTS5hc3luYyl9dHJ5e2lmKE0uZGF0YSl7Si5zZXRSZXF1ZXN0SGVh
ZGVyKCJDb250ZW50LVQ9DQp5cGUiLE0uY29udGVudFR5cGUpfWlmKE0uaWZN
b2RpZmllZCl7Si5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5j
PQ0KZSIsby5sYXN0TW9kaWZpZWRbTS51cmxdfHwiVGh1LCAwMSBKYW4gMTk3
MCAwMDowMDowMCA9DQpHTVQiKX1KLnNldFJlcXVlc3RIZWFkZXIoIlgtUmVx
dWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpO0ouc2V0UmVxdWVzPQ0K
dEhlYWRlcigiQWNjZXB0IixNLmRhdGFUeXBlJiZNLmFjY2VwdHNbTS5kYXRh
VHlwZV0/TS5hY2NlcHRzW00uZGF0YVR5cGVdKz0NCiIsID0NCiovKiI6TS5h
Y2NlcHRzLl9kZWZhdWx0KX1jYXRjaChTKXt9aWYoTS5iZWZvcmVTZW5kJiZN
LmJlZm9yZVNlbmQoSixNKT0zRD0zRD0NCj0zRGZhbHNlKXtpZihNLmdsb2Jh
bCYmIS0tby5hY3RpdmUpe28uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKX1K
LmFib3J0KCk9DQo7cmV0dXJuIGZhbHNlfWlmKE0uZ2xvYmFsKXtvLmV2ZW50
LnRyaWdnZXIoImFqYXhTZW5kIixbSixNXSl9dmFyID0NCk49M0RmdW5jdGlv
bihYKXtpZihKLnJlYWR5U3RhdGU9M0Q9M0QwKXtpZihQKXtjbGVhckludGVy
dmFsKFApO1A9M0RudWxsO2k9DQpmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7
by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX19ZWxzZXtpZighSyYmSiYm
KEouPQ0KcmVhZHlTdGF0ZT0zRD0zRDR8fFg9M0Q9M0QidGltZW91dCIpKXtL
PTNEdHJ1ZTtpZihQKXtjbGVhckludGVydmFsKFApO1A9M0Q9DQpudWxsfVI9
M0RYPTNEPTNEInRpbWVvdXQiPyJ0aW1lb3V0Ijohby5odHRwU3VjY2VzcyhK
KT8iZXJyb3IiOk0uaWZNb2RpZmllPQ0KZCYmby5odHRwTm90TW9kaWZpZWQo
SixNLnVybCk/Im5vdG1vZGlmaWVkIjoic3VjY2VzcyI7aWYoUj0zRD0zRCJz
dWNjZXNzIj0NCil7dHJ5e1Y9M0RvLmh0dHBEYXRhKEosTS5kYXRhVHlwZSxN
KX1jYXRjaChaKXtSPTNEInBhcnNlcmVycm9yIn19aWYoUj0zRD0zRD0NCiJz
dWNjZXNzIil7dmFyID0NClk7dHJ5e1k9M0RKLmdldFJlc3BvbnNlSGVhZGVy
KCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCY9
DQomWSl7by5sYXN0TW9kaWZpZWRbTS51cmxdPTNEWX1pZighVyl7SSgpfX1l
bHNle28uaGFuZGxlRXJyb3IoTSxKLFIpfUwoKTtpPQ0KZihYKXtKLmFib3J0
KCl9aWYoTS5hc3luYyl7Sj0zRG51bGx9fX19O2lmKE0uYXN5bmMpe3ZhciA9
DQpQPTNEc2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRp
bWVvdXQoZnVuY3Rpb24oKXtpZihKJiYhSyl7TigiPQ0KdGltZW91dCIpfX0s
TS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMpe28uaGFu
ZGxlRXJyb3IoTSxKLG51bD0NCmwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5j
dGlvbiA9DQpJKCl7aWYoTS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihN
Lmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzPQ0KcyIsW0os
TV0pfX1mdW5jdGlvbiA9DQpMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0
ZShKLFIpfWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21w
PQ0KbGV0ZSIsW0osTV0pfWlmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7by5l
dmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cj0NCm4gPQ0KSn0saGFu
ZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJv
cihILEUsRyl9aWYoRi5nbG9iYWwpez0NCm8uZXZlbnQudHJpZ2dlcigiYWph
eEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0
aW9uKEYpe3Q9DQpyeXtyZXR1cm4gPQ0KIUYuc3RhdHVzJiZsb2NhdGlvbi5w
cm90b2NvbD0zRD0zRCJmaWxlOiJ8fChGLnN0YXR1cz49M0QyMDAmJkYuc3Rh
dHVzPDMwMD0NCil8fEYuc3RhdHVzPTNEPTNEMzA0fHxGLnN0YXR1cz0zRD0z
RDEyMjN9Y2F0Y2goRSl7fXJldHVybiA9DQpmYWxzZX0saHR0cE5vdE1vZGlm
aWVkOmZ1bmN0aW9uKEcsRSl7dHJ5e3ZhciA9DQpIPTNERy5nZXRSZXNwb25z
ZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpO3JldHVybiA9DQpHLnN0YXR1cz0z
RD0zRDMwNHx8SD0zRD0zRG8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31y
ZXR1cm4gPQ0KZmFsc2V9LGh0dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIg
PQ0KRj0zREouZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpLEU9
M0RIPTNEPTNEInhtbCJ8fCFIJiZGJiZGLmluZGV4Tz0NCmYoInhtbCIpPj0z
RDAsST0zREU/Si5yZXNwb25zZVhNTDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJ
LmRvY3VtZW50RWxlbWVudC49DQp0YWdOYW1lPTNEPTNEInBhcnNlcmVycm9y
Iil7dGhyb3cicGFyc2VyZXJyb3IifWlmKEcmJkcuZGF0YUZpbHRlcil7ST0z
REcuPQ0KZGF0YUZpbHRlcihJLEgpfWlmKHR5cGVvZiA9DQpJPTNEPTNEPTNE
InN0cmluZyIpe2lmKEg9M0Q9M0Qic2NyaXB0Iil7by5nbG9iYWxFdmFsKEkp
fWlmKEg9M0Q9M0QianNvbiIpPQ0Ke0k9M0RsWyJldmFsIl0oIigiK0krIiki
KX19cmV0dXJuIEl9LHBhcmFtOmZ1bmN0aW9uKEUpe3ZhciA9DQpHPTNEW107
ZnVuY3Rpb24gPQ0KSChJLEope0dbRy5sZW5ndGhdPTNEZW5jb2RlVVJJQ29t
cG9uZW50KEkpKyI9M0QiK2VuY29kZVVSSUNvbXBvbmVudChKKX1pZj0NCihv
LmlzQXJyYXkoRSl8fEUuanF1ZXJ5KXtvLmVhY2goRSxmdW5jdGlvbigpe0go
dGhpcy5uYW1lLHRoaXMudmFsdWUpfSl9ZWw9DQpzZXtmb3IodmFyIEYgaW4g
PQ0KRSl7aWYoby5pc0FycmF5KEVbRl0pKXtvLmVhY2goRVtGXSxmdW5jdGlv
bigpe0goRix0aGlzKX0pfWVsc2V7SChGLG8uaXNGdT0NCm5jdGlvbihFW0Zd
KT9FW0ZdKCk6RVtGXSl9fX1yZXR1cm4gPQ0KRy5qb2luKCImIikucmVwbGFj
ZSgvJTIwL2csIisiKX19KTt2YXIgPQ0KbT0zRHt9LG4sZD0zRFtbImhlaWdo
dCIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3AiLCJw
YWRkaW5nQj0NCm90dG9tIl0sWyJ3aWR0aCIsIm1hcmdpbkxlZnQiLCJtYXJn
aW5SaWdodCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0Il09DQosWyJv
cGFjaXR5Il1dO2Z1bmN0aW9uIHQoRixFKXt2YXIgPQ0KRz0zRHt9O28uZWFj
aChkLmNvbmNhdC5hcHBseShbXSxkLnNsaWNlKDAsRSkpLGZ1bmN0aW9uKCl7
R1t0aGlzXT0zREZ9KTtyZT0NCnR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpm
dW5jdGlvbihKLEwpe2lmKEope3JldHVybiA9DQp0aGlzLmFuaW1hdGUodCgi
c2hvdyIsMyksSixMKX1lbHNle2Zvcih2YXIgPQ0KSD0zRDAsRj0zRHRoaXMu
bGVuZ3RoO0g8RjtIKyspe3ZhciA9DQpFPTNEby5kYXRhKHRoaXNbSF0sIm9s
ZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9M0RFfHwiIjtpZihv
LmNzcyh0PQ0KaGlzW0hdLCJkaXNwbGF5Iik9M0Q9M0Q9M0Qibm9uZSIpe3Zh
ciA9DQpHPTNEdGhpc1tIXS50YWdOYW1lLEs7aWYobVtHXSl7Sz0zRG1bR119
ZWxzZXt2YXIgST0zRG8oIjwiK0crIiA9DQovPiIpLmFwcGVuZFRvKCJib2R5
Iik7Sz0zREkuY3NzKCJkaXNwbGF5Iik7aWYoSz0zRD0zRD0zRCJub25lIil7
Sz0zRCJibG9jPQ0KayJ9SS5yZW1vdmUoKTttW0ddPTNES31vLmRhdGEodGhp
c1tIXSwib2xkZGlzcGxheSIsSyl9fWZvcih2YXIgPQ0KSD0zRDAsRj0zRHRo
aXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5bGUuZGlzcGxheT0zRG8u
ZGF0YSh0aGlzW0hdLCJvbD0NCmRkaXNwbGF5Iil8fCIifXJldHVybiB0aGlz
fX0saGlkZTpmdW5jdGlvbihILEkpe2lmKEgpe3JldHVybiA9DQp0aGlzLmFu
aW1hdGUodCgiaGlkZSIsMyksSCxJKX1lbHNle2Zvcih2YXIgPQ0KRz0zRDAs
Rj0zRHRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciA9DQpFPTNEby5kYXRhKHRo
aXNbR10sIm9sZGRpc3BsYXkiKTtpZighRSYmRSE9M0Q9M0Qibm9uZSIpe28u
ZGF0YSh0aGlzW0ddLCJvPQ0KbGRkaXNwbGF5IixvLmNzcyh0aGlzW0ddLCJk
aXNwbGF5IikpfX1mb3IodmFyID0NCkc9M0QwLEY9M0R0aGlzLmxlbmd0aDtH
PEY7RysrKXt0aGlzW0ddLnN0eWxlLmRpc3BsYXk9M0Qibm9uZSJ9cmV0dXJu
ID0NCnRoaXN9fSxfdG9nZ2xlOm8uZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlv
bihHLEYpe3ZhciBFPTNEdHlwZW9mID0NCkc9M0Q9M0Q9M0QiYm9vbGVhbiI7
cmV0dXJuID0NCm8uaXNGdW5jdGlvbihHKSYmby5pc0Z1bmN0aW9uKEYpP3Ro
aXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6Rz0zRD0zRD0NCm51
bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyID0NCkg9M0RFP0c6byh0
aGlzKS5pcygiOmhpZGRlbiIpO28odGhpcylbSD8ic2hvdyI6ImhpZGUiXSgp
fSk6dGhpcy5hbmltYXRlKHQ9DQooInRvZ2dsZSIsMyksRyxGKX0sZmFkZVRv
OmZ1bmN0aW9uKEUsRyxGKXtyZXR1cm4gPQ0KdGhpcy5hbmltYXRlKHtvcGFj
aXR5Okd9LEUsRil9LGFuaW1hdGU6ZnVuY3Rpb24oSSxGLEgsRyl7dmFyID0N
CkU9M0RvLnNwZWVkKEYsSCxHKTtyZXR1cm4gPQ0KdGhpc1tFLnF1ZXVlPTNE
PTNEPTNEZmFsc2U/ImVhY2giOiJxdWV1ZSJdKGZ1bmN0aW9uKCl7dmFyID0N
Cks9M0RvLmV4dGVuZCh7fSxFKSxNLEw9M0R0aGlzLm5vZGVUeXBlPTNEPTNE
MSYmbyh0aGlzKS5pcygiOmhpZGRlbiIpLEo9M0Q9DQp0aGlzO2ZvcihNIGlu
IEkpe2lmKElbTV09M0Q9M0QiaGlkZSImJkx8fElbTV09M0Q9M0Qic2hvdyIm
JiFMKXtyZXR1cm4gPQ0KSy5jb21wbGV0ZS5jYWxsKHRoaXMpfWlmKChNPTNE
PTNEImhlaWdodCJ8fE09M0Q9M0Qid2lkdGgiKSYmdGhpcy5zdHlsZSl7Sz0N
Ci5kaXNwbGF5PTNEby5jc3ModGhpcywiZGlzcGxheSIpO0sub3ZlcmZsb3c9
M0R0aGlzLnN0eWxlLm92ZXJmbG93fX1pZihLLm89DQp2ZXJmbG93IT0zRG51
bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9M0QiaGlkZGVuIn1LLmN1ckFuaW09
M0RvLmV4dGVuZCh7fSxJPQ0KKTtvLmVhY2goSSxmdW5jdGlvbihPLFMpe3Zh
ciBSPTNEbmV3ID0NCm8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRl
Ly50ZXN0KFMpKXtSW1M9M0Q9M0QidG9nZ2xlIj9MPyJzaG93IjoiaGk9DQpk
ZSI6U10oSSl9ZWxzZXt2YXIgPQ0KUT0zRFMudG9TdHJpbmcoKS5tYXRjaCgv
XihbKy1dPTNEKT8oW1xkKy0uXSspKC4qKSQvKSxUPTNEUi5jdXIodHJ1ZSl8
fDA7aT0NCmYoUSl7dmFyID0NCk49M0RwYXJzZUZsb2F0KFFbMl0pLFA9M0RR
WzNdfHwicHgiO2lmKFAhPTNEInB4Iil7Si5zdHlsZVtPXT0zRChOfHwxKStQ
O1Q9DQo9M0QoKE58fDEpL1IuY3VyKHRydWUpKSpUO0ouc3R5bGVbT109M0RU
K1B9aWYoUVsxXSl7Tj0zRCgoUVsxXT0zRD0zRCItPTNEPQ0KIj8tMToxKSpO
KStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0p
O3JldHVybiA9DQp0cnVlfSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgPQ0K
Rz0zRG8udGltZXJzO2lmKEYpe3RoaXMucXVldWUoW10pfXRoaXMuZWFjaChm
dW5jdGlvbigpe2Zvcih2YXIgPQ0KSD0zREcubGVuZ3RoLTE7SD49M0QwO0gt
LSl7aWYoR1tIXS5lbGVtPTNEPTNEdGhpcyl7aWYoRSl7R1tIXSh0cnVlKX1H
LnNwbD0NCmljZShILDEpfX19KTtpZighRSl7dGhpcy5kZXF1ZXVlKCl9cmV0
dXJuID0NCnRoaXN9fSk7by5lYWNoKHtzbGlkZURvd246dCgic2hvdyIsMSks
c2xpZGVVcDp0KCJoaWRlIiwxKSxzbGlkZVRvZ2dsZTp0KCI9DQp0b2dnbGUi
LDEpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6
ImhpZGUifX0sZnVuY3Rpb24oRSxGPQ0KKXtvLmZuW0VdPTNEZnVuY3Rpb24o
RyxIKXtyZXR1cm4gPQ0KdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVu
ZCh7c3BlZWQ6ZnVuY3Rpb24oRyxILEYpe3ZhciBFPTNEdHlwZW9mID0NCkc9
M0Q9M0Q9M0Qib2JqZWN0Ij9HOntjb21wbGV0ZTpGfHwhRiYmSHx8by5pc0Z1
bmN0aW9uKEcpJiZHLGR1cmF0aW9uOkcsZWE9DQpzaW5nOkYmJkh8fEgmJiFv
LmlzRnVuY3Rpb24oSCkmJkh9O0UuZHVyYXRpb249M0RvLmZ4Lm9mZj8wOnR5
cGVvZiA9DQpFLmR1cmF0aW9uPTNEPTNEPTNEIm51bWJlciI/RS5kdXJhdGlv
bjpvLmZ4LnNwZWVkc1tFLmR1cmF0aW9uXXx8by5meC5zcGVlPQ0KZHMuX2Rl
ZmF1bHQ7RS5vbGQ9M0RFLmNvbXBsZXRlO0UuY29tcGxldGU9M0RmdW5jdGlv
bigpe2lmKEUucXVldWUhPTNEPTNEZj0NCmFsc2Upe28odGhpcykuZGVxdWV1
ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9
fTtyZXR1cm49DQogRX0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUs
Ril7cmV0dXJuID0NCkUrRipHfSxzd2luZzpmdW5jdGlvbihHLEgsRSxGKXty
ZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX09DQos
dGltZXJzOltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9M0RF
O3RoaXMuZWxlbT0zREY7dGhpcy5wcm9wPTNEPQ0KRztpZighRS5vcmlnKXtF
Lm9yaWc9M0R7fX19fSk7by5meC5wcm90b3R5cGU9M0R7dXBkYXRlOmZ1bmN0
aW9uKCl7aWYodGhpcz0NCi5vcHRpb25zLnN0ZXApe3RoaXMub3B0aW9ucy5z
dGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpfShvLmZ4LnN0ZXA9
DQpbdGhpcy5wcm9wXXx8by5meC5zdGVwLl9kZWZhdWx0KSh0aGlzKTtpZigo
dGhpcy5wcm9wPTNEPTNEImhlaWdodCJ8fHRoaXMuPQ0KcHJvcD0zRD0zRCJ3
aWR0aCIpJiZ0aGlzLmVsZW0uc3R5bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNw
bGF5PTNEImJsb2NrIn19LD0NCmN1cjpmdW5jdGlvbihGKXtpZih0aGlzLmVs
ZW1bdGhpcy5wcm9wXSE9M0RudWxsJiYoIXRoaXMuZWxlbS5zdHlsZXx8dGhp
cy49DQplbGVtLnN0eWxlW3RoaXMucHJvcF09M0Q9M0RudWxsKSl7cmV0dXJu
IHRoaXMuZWxlbVt0aGlzLnByb3BdfXZhciA9DQpFPTNEcGFyc2VGbG9hdChv
LmNzcyh0aGlzLmVsZW0sdGhpcy5wcm9wLEYpKTtyZXR1cm4gPQ0KRSYmRT4t
MTAwMDA/RTpwYXJzZUZsb2F0KG8uY3VyQ1NTKHRoaXMuZWxlbSx0aGlzLnBy
b3ApKXx8MH0sY3VzdG9tOmZ1bmN0aT0NCm9uKEksSCxHKXt0aGlzLnN0YXJ0
VGltZT0zRGUoKTt0aGlzLnN0YXJ0PTNESTt0aGlzLmVuZD0zREg7dGhpcy51
bml0PTNER3w9DQp8dGhpcy51bml0fHwicHgiO3RoaXMubm93PTNEdGhpcy5z
dGFydDt0aGlzLnBvcz0zRHRoaXMuc3RhdGU9M0QwO3ZhciA9DQpFPTNEdGhp
cztmdW5jdGlvbiBGKEope3JldHVybiA9DQpFLnN0ZXAoSil9Ri5lbGVtPTNE
dGhpcy5lbGVtO2lmKEYoKSYmby50aW1lcnMucHVzaChGKSYmIW4pe249M0Rz
ZXRJbnRlcnZhPQ0KbChmdW5jdGlvbigpe3ZhciBLPTNEby50aW1lcnM7Zm9y
KHZhciA9DQpKPTNEMDtKPEsubGVuZ3RoO0orKyl7aWYoIUtbSl0oKSl7Sy5z
cGxpY2UoSi0tLDEpfX1pZighSy5sZW5ndGgpe2NsZWFySW50PQ0KZXJ2YWwo
bik7bj0zRGd9fSwxMyl9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25z
Lm9yaWdbdGhpcy5wcm9wXT0zRG8uYT0NCnR0cih0aGlzLmVsZW0uc3R5bGUs
dGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuc2hvdz0zRHRydWU7dGhpcy5jdXN0
b20odGhpcy49DQpwcm9wPTNEPTNEIndpZHRoInx8dGhpcy5wcm9wPTNEPTNE
ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zPQ0KaG93
KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnBy
b3BdPTNEby5hdHRyKHRoaXMuZWxlbS5zdD0NCnlsZSx0aGlzLnByb3ApO3Ro
aXMub3B0aW9ucy5oaWRlPTNEdHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLmN1cigp
LDApfSxzdGVwOmY9DQp1bmN0aW9uKEgpe3ZhciA9DQpHPTNEZSgpO2lmKEh8
fEc+PTNEdGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMuc3RhcnRUaW1lKXt0
aGlzLm5vdz0zRHRoaXMuPQ0KZW5kO3RoaXMucG9zPTNEdGhpcy5zdGF0ZT0z
RDE7dGhpcy51cGRhdGUoKTt0aGlzLm9wdGlvbnMuY3VyQW5pbVt0aGlzLnBy
bz0NCnBdPTNEdHJ1ZTt2YXIgRT0zRHRydWU7Zm9yKHZhciBGIGluID0NCnRo
aXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtG
XSE9M0Q9M0R0cnVlKXtFPTNEZmFsc2V9fWk9DQpmKEUpe2lmKHRoaXMub3B0
aW9ucy5kaXNwbGF5IT0zRG51bGwpe3RoaXMuZWxlbS5zdHlsZS5vdmVyZmxv
dz0zRHRoaXMub3B0PQ0KaW9ucy5vdmVyZmxvdzt0aGlzLmVsZW0uc3R5bGUu
ZGlzcGxheT0zRHRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaT0N
CnMuZWxlbSwiZGlzcGxheSIpPTNEPTNEIm5vbmUiKXt0aGlzLmVsZW0uc3R5
bGUuZGlzcGxheT0zRCJibG9jayJ9fWlmKHRoaXM9DQoub3B0aW9ucy5oaWRl
KXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0
aGlzLm9wdGlvbnMuc2hvPQ0Kdyl7Zm9yKHZhciBJIGluID0NCnRoaXMub3B0
aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0eWxlLEksdGhpcy5v
cHRpb25zLm9yaWdbSV0pfX10aGk9DQpzLm9wdGlvbnMuY29tcGxldGUuY2Fs
bCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciA9DQpKPTNERy10
aGlzLnN0YXJ0VGltZTt0aGlzLnN0YXRlPTNESi90aGlzLm9wdGlvbnMuZHVy
YXRpb247dGhpcy5wb3M9M0RvLmVhPQ0Kc2luZ1t0aGlzLm9wdGlvbnMuZWFz
aW5nfHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMu
c3RhdGUsSj0NCiwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5v
dz0zRHRoaXMuc3RhcnQrKCh0aGlzLmVuZC10aGlzLnN0YXJ0KSo9DQp0aGlz
LnBvcyk7dGhpcy51cGRhdGUoKX1yZXR1cm4gPQ0KdHJ1ZX19O28uZXh0ZW5k
KG8uZngse3NwZWVkczp7c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAw
fSxzdGVwOntvcGFjaT0NCnR5OmZ1bmN0aW9uKEUpe28uYXR0cihFLmVsZW0u
c3R5bGUsIm9wYWNpdHkiLEUubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oRSk9
DQp7aWYoRS5lbGVtLnN0eWxlJiZFLmVsZW0uc3R5bGVbRS5wcm9wXSE9M0Ru
dWxsKXtFLmVsZW0uc3R5bGVbRS5wcm9wXT0zREUuPQ0Kbm93K0UudW5pdH1l
bHNle0UuZWxlbVtFLnByb3BdPTNERS5ub3d9fX19KTtpZihkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQuZz0NCmV0Qm91bmRpbmdDbGllbnRSZWN0KXtvLmZu
Lm9mZnNldD0zRGZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6
MCw9DQpsZWZ0OjB9fWlmKHRoaXNbMF09M0Q9M0Q9M0R0aGlzWzBdLm93bmVy
RG9jdW1lbnQuYm9keSl7cmV0dXJuID0NCm8ub2Zmc2V0LmJvZHlPZmZzZXQo
dGhpc1swXSl9dmFyID0NCkc9M0R0aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLEo9M0R0aGlzWzBdLm93bmVyRG9jdW1lbnQsRj0zREouYm9keSw9
DQpFPTNESi5kb2N1bWVudEVsZW1lbnQsTD0zREUuY2xpZW50VG9wfHxGLmNs
aWVudFRvcHx8MCxLPTNERS5jbGllbnRMZWZ0fHxGPQ0KLmNsaWVudExlZnR8
fDAsST0zREcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1vZGVsJiZF
LnNjcm9sbFRvcHx8Ri5zYz0NCnJvbGxUb3ApLUwsSD0zREcubGVmdCsoc2Vs
Zi5wYWdlWE9mZnNldHx8by5ib3hNb2RlbCYmRS5zY3JvbGxMZWZ0fHxGLnNj
cm89DQpsbExlZnQpLUs7cmV0dXJue3RvcDpJLGxlZnQ6SH19fWVsc2V7by5m
bi5vZmZzZXQ9M0RmdW5jdGlvbigpe2lmKCF0aGlzWzBdPQ0KKXtyZXR1cm57
dG9wOjAsbGVmdDowfX1pZih0aGlzWzBdPTNEPTNEPTNEdGhpc1swXS5vd25l
ckRvY3VtZW50LmJvZHkpe3JldD0NCnVybiA9DQpvLm9mZnNldC5ib2R5T2Zm
c2V0KHRoaXNbMF0pfW8ub2Zmc2V0LmluaXRpYWxpemVkfHxvLm9mZnNldC5p
bml0aWFsaXplKCk7PQ0KdmFyID0NCko9M0R0aGlzWzBdLEc9M0RKLm9mZnNl
dFBhcmVudCxGPTNESixPPTNESi5vd25lckRvY3VtZW50LE0sSD0zRE8uZG9j
dW1lbnQ9DQpFbGVtZW50LEs9M0RPLmJvZHksTD0zRE8uZGVmYXVsdFZpZXcs
RT0zREwuZ2V0Q29tcHV0ZWRTdHlsZShKLG51bGwpLE49M0RKPQ0KLm9mZnNl
dFRvcCxJPTNESi5vZmZzZXRMZWZ0O3doaWxlKChKPTNESi5wYXJlbnROb2Rl
KSYmSiE9M0Q9M0RLJiZKIT0zRD0zRD0NCkgpe009M0RMLmdldENvbXB1dGVk
U3R5bGUoSixudWxsKTtOLT0zREouc2Nyb2xsVG9wLEktPTNESi5zY3JvbGxM
ZWZ0O2lmKEo9DQo9M0Q9M0Q9M0RHKXtOKz0zREoub2Zmc2V0VG9wLEkrPTNE
Si5vZmZzZXRMZWZ0O2lmKG8ub2Zmc2V0LmRvZXNOb3RBZGRCb3JkPQ0KZXIm
JiEoby5vZmZzZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMmJi9e
dChhYmxlfGR8aCkkL2kudGVzdChKLnRhZz0NCk5hbWUpKSl7Tis9M0RwYXJz
ZUludChNLmJvcmRlclRvcFdpZHRoLDEwKXx8MCxJKz0zRHBhcnNlSW50KE0u
Ym9yZGVyTGVmdFc9DQppZHRoLDEwKXx8MH1GPTNERyxHPTNESi5vZmZzZXRQ
YXJlbnR9aWYoby5vZmZzZXQuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsPQ0K
b3dOb3RWaXNpYmxlJiZNLm92ZXJmbG93IT0zRD0zRCJ2aXNpYmxlIil7Tis9
M0RwYXJzZUludChNLmJvcmRlclRvcFdpZHRoLD0NCjEwKXx8MCxJKz0zRHBh
cnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPTNETX1pZihFLnBv
c2l0aW9uPTNEPTNEPTNEPQ0KInJlbGF0aXZlInx8RS5wb3NpdGlvbj0zRD0z
RD0zRCJzdGF0aWMiKXtOKz0zREsub2Zmc2V0VG9wLEkrPTNESy5vZmZzZXRM
ZT0NCmZ0fWlmKEUucG9zaXRpb249M0Q9M0Q9M0QiZml4ZWQiKXtOKz0zRE1h
dGgubWF4KEguc2Nyb2xsVG9wLEsuc2Nyb2xsVG9wKSw9DQpJKz0zRE1hdGgu
bWF4KEguc2Nyb2xsTGVmdCxLLnNjcm9sbExlZnQpfXJldHVybnt0b3A6Tixs
ZWZ0Okl9fX1vLm9mZnNldD0zRD0NCntpbml0aWFsaXplOmZ1bmN0aW9uKCl7
aWYodGhpcy5pbml0aWFsaXplZCl7cmV0dXJufXZhciA9DQpMPTNEZG9jdW1l
bnQuYm9keSxGPTNEZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSCxH
LE4sSSxNLEUsSj0zREwuc3R5PQ0KbGUubWFyZ2luVG9wLEs9M0QnPGRpdiA9
DQpzdHlsZT0zRCJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFy
Z2luOjA7Ym9yZGVyOjVweCBzb2xpZCA9DQojMDAwO3BhZGRpbmc6MDt3aWR0
aDoxcHg7aGVpZ2h0OjFweDsiPjxkaXY+PC9kaXY+PC9kaXY+PHRhYmxlID0N
CnN0eWxlPTNEInBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJn
aW46MDtib3JkZXI6NXB4IHNvbGlkID0NCiMwMDA7cGFkZGluZzowO3dpZHRo
OjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9M0QiMCIgPQ0KY2VsbHNw
YWNpbmc9M0QiMCI+PHRyPjx0ZD48L3RkPjwvdHI+PC90YWJsZT4nO009M0R7
cG9zaXRpb246ImFic29sdXRlIix0bz0NCnA6MCxsZWZ0OjAsbWFyZ2luOjAs
Ym9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6
ImhpZGRlbiI9DQp9O2ZvcihFIGluID0NCk0pe0Yuc3R5bGVbRV09M0RNW0Vd
fUYuaW5uZXJIVE1MPTNESztMLmluc2VydEJlZm9yZShGLEwuZmlyc3RDaGls
ZCk7SD0zREY9DQouZmlyc3RDaGlsZCxHPTNESC5maXJzdENoaWxkLEk9M0RI
Lm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDt0aGlzPQ0KLmRv
ZXNOb3RBZGRCb3JkZXI9M0QoRy5vZmZzZXRUb3AhPTNEPTNENSk7dGhpcy5k
b2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZT0NCmxscz0zRChJLm9mZnNldFRv
cD0zRD0zRD0zRDUpO0guc3R5bGUub3ZlcmZsb3c9M0QiaGlkZGVuIixILnN0
eWxlLnBvc2l0aW89DQpuPTNEInJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0Jv
cmRlckZvck92ZXJmbG93Tm90VmlzaWJsZT0zRChHLm9mZnNldFRvcD0zRD0N
Cj0zRD0zRC01KTtMLnN0eWxlLm1hcmdpblRvcD0zRCIxcHgiO3RoaXMuZG9l
c05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9DQo9M0QoTC5vZmZzZXRU
b3A9M0Q9M0Q9M0QwKTtMLnN0eWxlLm1hcmdpblRvcD0zREo7TC5yZW1vdmVD
aGlsZChGKTt0aGlzLmluPQ0KaXRpYWxpemVkPTNEdHJ1ZX0sYm9keU9mZnNl
dDpmdW5jdGlvbihFKXtvLm9mZnNldC5pbml0aWFsaXplZHx8by5vZmZzZXQu
aT0NCm5pdGlhbGl6ZSgpO3ZhciA9DQpHPTNERS5vZmZzZXRUb3AsRj0zREUu
b2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbklu
Qm9keU9mPQ0KZnNldCl7Rys9M0RwYXJzZUludChvLmN1ckNTUyhFLCJtYXJn
aW5Ub3AiLHRydWUpLDEwKXx8MCxGKz0zRHBhcnNlSW50KG8uYz0NCnVyQ1NT
KEUsIm1hcmdpbkxlZnQiLHRydWUpLDEwKXx8MH1yZXR1cm57dG9wOkcsbGVm
dDpGfX19O28uZm4uZXh0ZW5kKHtwb3M9DQppdGlvbjpmdW5jdGlvbigpe3Zh
ciBJPTNEMCxIPTNEMCxGO2lmKHRoaXNbMF0pe3ZhciA9DQpHPTNEdGhpcy5v
ZmZzZXRQYXJlbnQoKSxKPTNEdGhpcy5vZmZzZXQoKSxFPTNEL15ib2R5fGh0
bWwkL2kudGVzdChHWzBdLnRhPQ0KZ05hbWUpP3t0b3A6MCxsZWZ0OjB9Okcu
b2Zmc2V0KCk7Si50b3AtPTNEaih0aGlzLCJtYXJnaW5Ub3AiKTtKLmxlZnQt
PTNEaj0NCih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPTNEaihHLCJib3Jk
ZXJUb3BXaWR0aCIpO0UubGVmdCs9M0RqKEcsImJvcmRlckw9DQplZnRXaWR0
aCIpO0Y9M0R7dG9wOkoudG9wLUUudG9wLGxlZnQ6Si5sZWZ0LUUubGVmdH19
cmV0dXJuID0NCkZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciA9DQpF
PTNEdGhpc1swXS5vZmZzZXRQYXJlbnR8fGRvY3VtZW50LmJvZHk7d2hpbGUo
RSYmKCEvXmJvZHl8aHRtbCQvaS50ZXN0KEUuPQ0KdGFnTmFtZSkmJm8uY3Nz
KEUsInBvc2l0aW9uIik9M0Q9M0Qic3RhdGljIikpe0U9M0RFLm9mZnNldFBh
cmVudH1yZXR1cm4gPQ0KbyhFKX19KTtvLmVhY2goWyJMZWZ0IiwiVG9wIl0s
ZnVuY3Rpb24oRixFKXt2YXIgPQ0KRz0zRCJzY3JvbGwiK0U7by5mbltHXT0z
RGZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1cm4g
PQ0KSCE9M0Q9M0RnP3RoaXMuZWFjaChmdW5jdGlvbigpe3RoaXM9M0Q9M0Rs
fHx0aGlzPTNEPTNEZG9jdW1lbnQ/bC5zY3JvbGxUbz0NCighRj9IOm8obCku
c2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPTNE
SH0pOnRoaXNbMF09M0Q9M0Q9DQpsfHx0aGlzWzBdPTNEPTNEZG9jdW1lbnQ/
c2VsZltGPyJwYWdlWU9mZnNldCI6InBhZ2VYT2Zmc2V0Il18fG8uYm94TW9k
ZWwmPQ0KJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtHXXx8ZG9jdW1lbnQu
Ym9keVtHXTp0aGlzWzBdW0ddfX0pO28uZWFjaChbIkhlaT0NCmdodCIsIldp
ZHRoIl0sZnVuY3Rpb24oSSxHKXt2YXIgPQ0KRT0zREk/IkxlZnQiOiJUb3Ai
LEg9M0RJPyJSaWdodCI6IkJvdHRvbSIsRj0zREcudG9Mb3dlckNhc2UoKTtv
LmZuWyJpbm5lcj0NCiIrR109M0RmdW5jdGlvbigpe3JldHVybiA9DQp0aGlz
WzBdP28uY3NzKHRoaXNbMF0sRixmYWxzZSwicGFkZGluZyIpOm51bGx9O28u
Zm5bIm91dGVyIitHXT0zRGZ1bmN0aW9uPQ0KKEspe3JldHVybiB0aGlzWzBd
P28uY3NzKHRoaXNbMF0sRixmYWxzZSxLPyJtYXJnaW4iOiJib3JkZXIiKTpu
dWxsfTt2YXIgPQ0KSj0zREcudG9Mb3dlckNhc2UoKTtvLmZuW0pdPTNEZnVu
Y3Rpb24oSyl7cmV0dXJuID0NCnRoaXNbMF09M0Q9M0RsP2RvY3VtZW50LmNv
bXBhdE1vZGU9M0Q9M0QiQ1NTMUNvbXBhdCImJmRvY3VtZW50LmRvY3VtZW50
RWw9DQplbWVudFsiY2xpZW50IitHXXx8ZG9jdW1lbnQuYm9keVsiY2xpZW50
IitHXTp0aGlzWzBdPTNEPTNEZG9jdW1lbnQ/TWF0aC5tPQ0KYXgoZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlb
InNjcm9sbCIrR10sZG9jdW1lbj0NCnQuZG9jdW1lbnRFbGVtZW50WyJzY3Jv
bGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNldCIrR10sZG9jdW1lbnQuZG9j
dW1lbnQ9DQpFbGVtZW50WyJvZmZzZXQiK0ddKTpLPTNEPTNEPTNEZz8odGhp
cy5sZW5ndGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzPQ0KLmNzcyhK
LHR5cGVvZiBLPTNEPTNEPTNEInN0cmluZyI/SzpLKyJweCIpfX0pfSkoKTsN
Ci0tLS0tLT1fTmV4dFBhcnRfMDAwXzAwMDBfMDFDQTM3RUQuQkIyRDEwNzAN
CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtDQpDb250
ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlDQpDb250
ZW50LUxvY2F0aW9uOiBodHRwOi8vd3d3LnNlbGxsYWJhbmtpbmcuY29tL0F1
dGVudGljYXppb25lL2pxdWVyeS50YWJzLmpzDQoNCi8qKg0KICogVGFicyAt
IGpRdWVyeSBwbHVnaW4gZm9yIGFjY2Vzc2libGUsIHVub2J0cnVzaXZlIHRh
YnMNCiAqIEByZXF1aXJlcyBqUXVlcnkgdjEuMS4xDQogKg0KICogaHR0cDov
L3N0aWxidWVyby5kZS90YWJzLw0KICoNCiAqIENvcHlyaWdodCAoYykgMjAw
NiBLbGF1cyBIYXJ0bCAoc3RpbGJ1ZXJvLmRlKQ0KICogRHVhbCBsaWNlbnNl
ZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXM6DQogKiBodHRwOi8v
d3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocA0K
ICogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sDQogKg0K
ICogVmVyc2lvbjogMi43LjQNCiAqLw0KDQooZnVuY3Rpb24oJCkgeyAvLyBi
bG9jayBzY29wZQ0KDQokLmV4dGVuZCh7DQogICAgdGFiczogew0KICAgICAg
ICByZW1vdGVDb3VudDogMCAvLyBUT0RPIGluIFRhYnMgMyB0aGlzIGlzIGdv
aW5nIHRvIGJlIG1vcmUgPQ0KY2xlYW5seSBpbiBvbmUgc2luZ2xlIG5hbWVz
cGFjZQ0KICAgIH0NCn0pOw0KDQovKioNCiAqIENyZWF0ZSBhbiBhY2Nlc3Np
YmxlLCB1bm9idHJ1c2l2ZSB0YWIgaW50ZXJmYWNlIGJhc2VkIG9uIGEgcGFy
dGljdWxhciA9DQpIVE1MIHN0cnVjdHVyZS4NCiAqDQogKiBUaGUgdW5kZXJs
eWluZyBIVE1MIGhhcyB0byBsb29rIGxpa2UgdGhpczoNCiAqDQogKiA8ZGl2
IGlkPTNEImNvbnRhaW5lciI+DQogKiAgICAgPHVsPg0KICogICAgICAgICA8
bGk+PGEgaHJlZj0zRCIjZnJhZ21lbnQtMSI+U2VjdGlvbiAxPC9hPjwvbGk+
DQogKiAgICAgICAgIDxsaT48YSBocmVmPTNEIiNmcmFnbWVudC0yIj5TZWN0
aW9uIDI8L2E+PC9saT4NCiAqICAgICAgICAgPGxpPjxhIGhyZWY9M0QiI2Zy
YWdtZW50LTMiPlNlY3Rpb24gMzwvYT48L2xpPg0KICogICAgIDwvdWw+DQog
KiAgICAgPGRpdiBpZD0zRCJmcmFnbWVudC0xIj4NCiAqDQogKiAgICAgPC9k
aXY+DQogKiAgICAgPGRpdiBpZD0zRCJmcmFnbWVudC0yIj4NCiAqDQogKiAg
ICAgPC9kaXY+DQogKiAgICAgPGRpdiBpZD0zRCJmcmFnbWVudC0zIj4NCiAq
DQogKiAgICAgPC9kaXY+DQogKiA8L2Rpdj4NCiAqDQogKiBFYWNoIGFuY2hv
ciBpbiB0aGUgdW5vcmRlcmVkIGxpc3QgcG9pbnRzIGRpcmVjdGx5IHRvIGEg
c2VjdGlvbiBiZWxvdyA9DQpyZXByZXNlbnRlZCBieSBvbmUgb2YgdGhlDQog
KiBkaXZzICh0aGUgVVJJIGluIHRoZSBhbmNob3IncyBocmVmIGF0dHJpYnV0
ZSByZWZlcnMgdG8gdGhlIGZyYWdtZW50ID0NCndpdGggdGhlIGNvcnJlc3Bv
bmRpbmcgaWQpLg0KICogQmVjYXVzZSBzdWNoIEhUTUwgc3RydWN0dXJlIGlz
IGZ1bGx5IGZ1bmN0aW9uYWwgb24gaXRzIG93biwgZS5nLiA9DQp3aXRob3V0
IEphdmFTY3JpcHQsIHRoZSB0YWINCiAqIGludGVyZmFjZSBpcyBhY2Nlc3Np
YmxlIGFuZCB1bm9idHJ1c2l2ZS4NCiAqDQogKiBBIHRhYiBpcyBhbHNvIGJv
b2ttYXJrYWJsZSB2aWEgaGFzaCBpbiB0aGUgVVJMLiBVc2UgdGhlID0NCkhp
c3RvcnkvUmVtb3RlIHBsdWdpbiAoVGFicyB3aWxsDQogKiBhdXRvLWRldGVj
dCBpdHMgcHJlc2VuY2UpIHRvIGZpeCB0aGUgYmFjayAoYW5kIGZvcndhcmQp
IGJ1dHRvbi4NCiAqDQogKiBAZXhhbXBsZSAkKCcjY29udGFpbmVyJykudGFi
cygpOw0KICogQGRlc2MgQ3JlYXRlIGEgYmFzaWMgdGFiIGludGVyZmFjZS4N
CiAqIEBleGFtcGxlICQoJyNjb250YWluZXInKS50YWJzKDIpOw0KICogQGRl
c2MgQ3JlYXRlIGEgYmFzaWMgdGFiIGludGVyZmFjZSB3aXRoIHRoZSBzZWNv
bmQgdGFiIGluaXRpYWxseSA9DQphY3RpdmF0ZWQuDQogKiBAZXhhbXBsZSAk
KCcjY29udGFpbmVyJykudGFicyh7ZGlzYWJsZWQ6IFszLCA0XX0pOw0KICog
QGRlc2MgQ3JlYXRlIGEgdGFiIGludGVyZmFjZSB3aXRoIHRoZSB0aGlyZCBh
bmQgZm91cnRoIHRhYiBiZWluZyA9DQpkaXNhYmxlZC4NCiAqIEBleGFtcGxl
ICQoJyNjb250YWluZXInKS50YWJzKHtmeFNsaWRlOiB0cnVlfSk7DQogKiBA
ZGVzYyBDcmVhdGUgYSB0YWIgaW50ZXJmYWNlIHRoYXQgdXNlcyBzbGlkZSBk
b3duL3VwIGFuaW1hdGlvbnMgZm9yID0NCnNob3dpbmcvaGlkaW5nIHRhYg0K
ICogICAgICAgY29udGVudCB1cG9uIHRhYiBzd2l0Y2hpbmcuDQogKg0KICog
QHBhcmFtIE51bWJlciBpbml0aWFsIEFuIGludGVnZXIgc3BlY2lmeWluZyB0
aGUgcG9zaXRpb24gb2YgdGhlIHRhYiA9DQoobm8gemVyby1iYXNlZCBpbmRl
eCkgdGhhdA0KICogICAgICAgICAgICAgICAgICAgICAgIGdldHMgYWN0aXZh
dGVkIGF0IGZpcnN0IChvbiBwYWdlIGxvYWQpLiBUd28gPQ0KYWx0ZXJuYXRp
dmUgd2F5cyB0byBzcGVjaWZ5DQogKiAgICAgICAgICAgICAgICAgICAgICAg
dGhlIGFjdGl2ZSB0YWIgd2lsbCBvdmVycnVsZSB0aGlzIGFyZ3VtZW50LiA9
DQpGaXJzdCBhIGxpIGVsZW1lbnQNCiAqICAgICAgICAgICAgICAgICAgICAg
ICAocmVwcmVzZW50aW5nIG9uZSBzaW5nbGUgdGFiKSBiZWxvbmdpbmcgdG8g
dGhlID0NCnNlbGVjdGVkIHRhYiBjbGFzcywgZS5nLg0KICogICAgICAgICAg
ICAgICAgICAgICAgIHNldCB0aGUgc2VsZWN0ZWQgdGFiIGNsYXNzIChkZWZh
dWx0OiA9DQoidGFicy1zZWxlY3RlZCIsIHNlZSBvcHRpb24NCiAqICAgICAg
ICAgICAgICAgICAgICAgICBzZWxlY3RlZENsYXNzKSBmb3Igb25lIG9mIHRo
ZSB1bm9yZGVyZWQgbGkgPQ0KZWxlbWVudHMgaW4gdGhlIEhUTUwgc291cmNl
Lg0KICogICAgICAgICAgICAgICAgICAgICAgIEluIGFkZGl0aW9uIGlmIGEg
ZnJhZ21lbnQgaWRlbnRpZmllci9oYXNoIGluID0NCnRoZSBVUkwgb2YgdGhl
IHBhZ2UgcmVmZXJzDQogKiAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhl
IGlkIG9mIGEgdGFiIGNvbnRhaW5lciBvZiBhIHRhYiBpbnRlcmZhY2UgPQ0K
dGhlIGNvcnJlc3BvbmRpbmcgdGFiIHdpbGwNCiAqICAgICAgICAgICAgICAg
ICAgICAgICBiZSBhY3RpdmF0ZWQgYW5kIGJvdGggdGhlIGluaXRpYWwgYXJn
dW1lbnQgYXMgPQ0Kd2VsbCBhcyBhbiBldmVudHVhbGx5DQogKiAgICAgICAg
ICAgICAgICAgICAgICAgZGVjbGFyZWQgY2xhc3MgYXR0cmlidXRlIHdpbGwg
YmUgb3ZlcnJ1bGVkLiA9DQpEZWZhdWx0cyB0byAxIGlmIG9taXR0ZWQuDQog
KiBAcGFyYW0gT2JqZWN0IHNldHRpbmdzIEFuIG9iamVjdCBsaXRlcmFsIGNv
bnRhaW5pbmcga2V5L3ZhbHVlIHBhaXJzID0NCnRvIHByb3ZpZGUgb3B0aW9u
YWwgc2V0dGluZ3MuDQogKiBAb3B0aW9uIEFycmF5PE51bWJlcj4gZGlzYWJs
ZWQgQW4gYXJyYXkgY29udGFpbmluZyB0aGUgcG9zaXRpb24gb2YgPQ0KdGhl
IHRhYnMgKG5vIHplcm8tYmFzZWQgaW5kZXgpDQogKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhhdCBzaG91bGQgYmUgZGlzYWJsZWQgb24g
PQ0KaW5pdGlhbGl6YXRpb24uIERlZmF1bHQgdmFsdWU6IG51bGwuDQogKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSB0YWIgY2FuIGFsc28g
YmUgZGlzYWJsZWQgYnkgc2ltcGx5ID0NCmFkZGluZyB0aGUgZGlzYWJsaW5n
IGNsYXNzDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRl
ZmF1bHQ6ICJ0YWJzLWRpc2FibGVkIiwgc2VlIG9wdGlvbiA9DQpkaXNhYmxl
ZENsYXNzKSB0byB0aGUgbGkNCiAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbGVtZW50IHJlcHJlc2VudGluZyB0aGF0IHBhcnRpY3VsYXIg
PQ0KdGFiLg0KICogQG9wdGlvbiBCb29sZWFuIGJvb2ttYXJrYWJsZSBCb29s
ZWFuIGZsYWcgaW5kaWNhdGluZyBpZiBzdXBwb3J0IGZvciA9DQpib29rbWFy
a2luZyBhbmQgaGlzdG9yeSAodmlhDQogKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYW5naW5nIGhhc2ggaW4gdGhlIFVSTCBvZiB0aGUgYnJv
d3NlcikgPQ0KaXMgZW5hYmxlZC4gRGVmYXVsdCB2YWx1ZToNCiAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHVubGVzcyB0aGUgSGlz
dG9yeS9SZW1vdGUgcGx1Z2luID0NCmlzIGluY2x1ZGVkLiBJbiB0aGF0IGNh
c2UgdGhlDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQgdmFsdWUgYmVjb21lcyB0cnVlLiBAc2VlID0NCiQuYWpheEhpc3Rvcnku
aW5pdGlhbGl6ZQ0KICogQG9wdGlvbiBCb29sZWFuIHJlbW90ZSBCb29sZWFu
IGZsYWcgaW5kaWNhdGluZyB0aGF0IHRhYiBjb250ZW50IGhhcyA9DQp0byBi
ZSBsb2FkZWQgcmVtb3RlbHkgZnJvbQ0KICogICAgICAgICAgICAgICAgICAg
ICAgICB0aGUgdXJsIGdpdmVuIGluIHRoZSBocmVmIGF0dHJpYnV0ZSBvZiB0
aGUgdGFiID0NCm1lbnUgYW5jaG9yIGVsZW1lbnRzLg0KICogQG9wdGlvbiBT
dHJpbmcgc3Bpbm5lciBUaGUgY29udGVudCBvZiB0aGlzIHN0cmluZyBpcyBz
aG93biBpbiBhIHRhYiA9DQp3aGlsZSByZW1vdGUgY29udGVudCBpcyBsb2Fk
aW5nLg0KICogICAgICAgICAgICAgICAgICAgICAgICBJbnNlcnQgcGxhaW4g
dGV4dCBhcyB3ZWxsIGFzIGFuIGltZyBoZXJlLiBUbyA9DQp0dXJuIG9mZiB0
aGlzIG5vdGlmaWNhdGlvbg0KICogICAgICAgICAgICAgICAgICAgICAgICBw
YXNzIGFuIGVtcHR5IHN0cmluZyBvciBudWxsLiBEZWZhdWx0OiA9DQoiTG9h
ZGluZyYjODIzMDsiLg0KICogQG9wdGlvbiBTdHJpbmcgaGFzaFByZWZpeCBB
IFN0cmluZyB0aGF0IGlzIHVzZWQgZm9yIGNvbnN0cnVjdGluZyB0aGUgPQ0K
aGFzaCB0aGUgbGluaydzIGhyZWYgYXR0cmlidXRlDQogKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9mIGEgcmVtb3RlIHRhYiBnZXRzIGFsdGVyZWQg
dG8sIHN1Y2ggYXMgPQ0KIiNyZW1vdGUtMSIuDQogKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERlZmF1bHQgdmFsdWU6ICJyZW1vdGUtdGFiLSIuDQog
KiBAb3B0aW9uIEJvb2xlYW4gZnhGYWRlIEJvb2xlYW4gZmxhZyBpbmRpY2F0
aW5nIHdoZXRoZXIgZmFkZSBpbi9vdXQgPQ0KYW5pbWF0aW9ucyBhcmUgdXNl
ZCBmb3IgdGFiDQogKiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaGlu
Zy4gQ2FuIGJlIGNvbWJpbmVkIHdpdGggZnhTbGlkZS4gV2lsbCA9DQpvdmVy
cnVsZSBmeFNob3cvZnhIaWRlLg0KICogICAgICAgICAgICAgICAgICAgICAg
ICBEZWZhdWx0IHZhbHVlOiBmYWxzZS4NCiAqIEBvcHRpb24gQm9vbGVhbiBm
eFNsaWRlIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgc2xpZGUg
ZG93bi91cCA9DQphbmltYXRpb25zIGFyZSB1c2VkIGZvciB0YWINCiAqICAg
ICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaGluZy4gQ2FuIGJlIGNvbWJp
bmVkIHdpdGggZnhGYWRlLiBXaWxsID0NCm92ZXJydWxlIGZ4U2hvdy9meEhp
ZGUuDQogKiAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IHZhbHVl
OiBmYWxzZS4NCiAqIEBvcHRpb24gU3RyaW5nfE51bWJlciBmeFNwZWVkIEEg
c3RyaW5nIHJlcHJlc2VudGluZyBvbmUgb2YgdGhlIHRocmVlID0NCnByZWRl
ZmluZWQgc3BlZWRzICgic2xvdyIsDQogKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibm9ybWFsIiwgb3IgImZhc3QiKSBvciB0aGUgbnVtYmVy
IG9mID0NCm1pbGxpc2Vjb25kcyAoZS5nLiAxMDAwKSB0bw0KICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuIGFuIGFuaW1hdGlvbi4gRGVm
YXVsdCB2YWx1ZTogPQ0KIm5vcm1hbCIuDQogKiBAb3B0aW9uIE9iamVjdCBm
eFNob3cgQW4gb2JqZWN0IGxpdGVyYWwgb2YgdGhlIGZvcm0galF1ZXJ5J3Mg
YW5pbWF0ZSA9DQpmdW5jdGlvbiBleHBlY3RzIGZvciBtYWtpbmcNCiAqICAg
ICAgICAgICAgICAgICAgICAgICB5b3VyIG93biwgY3VzdG9tIGFuaW1hdGlv
biB0byByZXZlYWwgYSB0YWIgdXBvbiA9DQp0YWIgc3dpdGNoLiBVbmxpa2Ug
ZnhGYWRlDQogKiAgICAgICAgICAgICAgICAgICAgICAgb3IgZnhTbGlkZSB0
aGlzIGFuaW1hdGlvbiBpcyBpbmRlcGVuZGVudCBmcm9tID0NCmFuIG9wdGlv
bmFsIGhpZGUgYW5pbWF0aW9uLg0KICogICAgICAgICAgICAgICAgICAgICAg
IERlZmF1bHQgdmFsdWU6IG51bGwuIEBzZWUgYW5pbWF0ZQ0KICogQG9wdGlv
biBPYmplY3QgZnhIaWRlIEFuIG9iamVjdCBsaXRlcmFsIG9mIHRoZSBmb3Jt
IGpRdWVyeSdzIGFuaW1hdGUgPQ0KZnVuY3Rpb24gZXhwZWN0cyBmb3IgbWFr
aW5nDQogKiAgICAgICAgICAgICAgICAgICAgICAgeW91ciBvd24sIGN1c3Rv
bSBhbmltYXRpb24gdG8gaGlkZSBhIHRhYiB1cG9uID0NCnRhYiBzd2l0Y2gu
IFVubGlrZSBmeEZhZGUNCiAqICAgICAgICAgICAgICAgICAgICAgICBvciBm
eFNsaWRlIHRoaXMgYW5pbWF0aW9uIGlzIGluZGVwZW5kZW50IGZyb20gPQ0K
YW4gb3B0aW9uYWwgc2hvdyBhbmltYXRpb24uDQogKiAgICAgICAgICAgICAg
ICAgICAgICAgRGVmYXVsdCB2YWx1ZTogbnVsbC4gQHNlZSBhbmltYXRlDQog
KiBAb3B0aW9uIFN0cmluZ3xOdW1iZXIgZnhTaG93U3BlZWQgQSBzdHJpbmcg
cmVwcmVzZW50aW5nIG9uZSBvZiB0aGUgPQ0KdGhyZWUgcHJlZGVmaW5lZCBz
cGVlZHMNCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
InNsb3ciLCAibm9ybWFsIiwgb3IgImZhc3QiKSBvciA9DQp0aGUgbnVtYmVy
IG9mIG1pbGxpc2Vjb25kcw0KICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChlLmcuIDEwMDApIHRvIHJ1biB0aGUgYW5pbWF0aW9uID0N
CnNwZWNpZmllZCBpbiBmeFNob3cuDQogKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZTogZnhTcGVlZC4NCiAqIEBv
cHRpb24gU3RyaW5nfE51bWJlciBmeEhpZGVTcGVlZCBBIHN0cmluZyByZXBy
ZXNlbnRpbmcgb25lIG9mIHRoZSA9DQp0aHJlZSBwcmVkZWZpbmVkIHNwZWVk
cw0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgic2xv
dyIsICJub3JtYWwiLCBvciAiZmFzdCIpIG9yID0NCnRoZSBudW1iZXIgb2Yg
bWlsbGlzZWNvbmRzDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGUuZy4gMTAwMCkgdG8gcnVuIHRoZSBhbmltYXRpb24gPQ0Kc3Bl
Y2lmaWVkIGluIGZ4SGlkZS4NCiAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEZWZhdWx0IHZhbHVlOiBmeFNwZWVkLg0KICogQG9wdGlv
biBCb29sZWFuIGZ4QXV0b0hlaWdodCBCb29sZWFuIGZsYWcgdGhhdCBpZiBz
ZXQgdG8gdHJ1ZSBjYXVzZXMgPQ0KYWxsIHRhYiBoZWlnaHRzDQogKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGJlIGNvbnN0YW50IChiZWlu
ZyB0aGUgaGVpZ2h0IG9mIHRoZSA9DQp0YWxsZXN0IHRhYikuDQogKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgdmFsdWU6IGZhbHNl
Lg0KICogQG9wdGlvbiBGdW5jdGlvbiBvbkNsaWNrIEEgZnVuY3Rpb24gdG8g
YmUgaW52b2tlZCB1cG9uIHRhYiBzd2l0Y2gsID0NCmltbWVkaWF0bHkgYWZ0
ZXIgYSB0YWIgaGFzDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmVl
biBjbGlja2VkLCBlLmcuIGJlZm9yZSB0aGUgb3RoZXIncyB0YWIgPQ0KY29u
dGVudCBnZXRzIGhpZGRlbi4gVGhlDQogKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gZ2V0cyBwYXNzZWQgdGhyZWUgYXJndW1lbnRzOiB0
aGUgPQ0KZmlyc3Qgb25lIGlzIHRoZSBjbGlja2VkDQogKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGFiIChlLmcuIGFuIGFuY2hvciBlbGVtZW50KSwg
dGhlIHNlY29uZCBvbmUgPQ0KaXMgdGhlIERPTSBlbGVtZW50DQogKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGFpbmluZyB0aGUgY29udGVudCBv
ZiB0aGUgY2xpY2tlZCB0YWIgPQ0KKGUuZy4gdGhlIGRpdiksIHRoZSB0aGly
ZA0KICogICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50IGlzIHRo
ZSBvbmUgb2YgdGhlIHRhYiB0aGF0IGdldHMgPQ0KaGlkZGVuLiBJZiB0aGlz
IGNhbGxiYWNrDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
cyBmYWxzZSwgdGhlIHRhYiBzd2l0Y2ggaXMgY2FuY2VsZWQgPQ0KKHVzZSB0
byBkaXNhbGxvdyB0YWINCiAqICAgICAgICAgICAgICAgICAgICAgICAgICBz
d2l0Y2hpbmcgZm9yIHRoZSByZWFzb24gb2YgYSBmYWlsZWQgZm9ybSA9DQp2
YWxpZGF0aW9uIGZvciBleGFtcGxlKS4NCiAqICAgICAgICAgICAgICAgICAg
ICAgICAgICBEZWZhdWx0IHZhbHVlOiBudWxsLg0KICogQG9wdGlvbiBGdW5j
dGlvbiBvbkhpZGUgQSBmdW5jdGlvbiB0byBiZSBpbnZva2VkIHVwb24gdGFi
IHN3aXRjaCwgPQ0KaW1tZWRpYXRseSBhZnRlciBvbmUgdGFiJ3MNCiAqICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgZ290IGhpZGRlbiAod2l0
aCBvciB3aXRob3V0IGFuID0NCmFuaW1hdGlvbikgYW5kIHJpZ2h0IGJlZm9y
ZSB0aGUNCiAqICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgdGFiIGlz
IHJldmVhbGVkLiBUaGUgZnVuY3Rpb24gZ2V0cyA9DQpwYXNzZWQgdGhyZWUg
YXJndW1lbnRzOiB0aGUNCiAqICAgICAgICAgICAgICAgICAgICAgICAgIGZp
cnN0IG9uZSBpcyB0aGUgY2xpY2tlZCB0YWIgKGUuZy4gYW4gYW5jaG9yID0N
CmVsZW1lbnQpLCB0aGUgc2Vjb25kIG9uZQ0KICogICAgICAgICAgICAgICAg
ICAgICAgICAgaXMgdGhlIERPTSBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIGNv
bnRlbnQgb2YgPQ0KdGhlIGNsaWNrZWQgdGFiLCAoZS5nLiB0aGUNCiAqICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpdiksIHRoZSB0aGlyZCBhcmd1bWVu
dCBpcyB0aGUgb25lIG9mIHRoZSA9DQp0YWIgdGhhdCBnZXRzIGhpZGRlbi4N
CiAqICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgdmFsdWU6IG51
bGwuDQogKiBAb3B0aW9uIEZ1bmN0aW9uIG9uU2hvdyBBIGZ1bmN0aW9uIHRv
IGJlIGludm9rZWQgdXBvbiB0YWIgc3dpdGNoLiA9DQpUaGlzIGZ1bmN0aW9u
IGlzIGludm9rZWQNCiAqICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVy
IHRoZSBuZXcgdGFiIGhhcyBiZWVuIHJldmVhbGVkLCBlLmcuID0NCmFmdGVy
IHRoZSBzd2l0Y2ggaXMgY29tcGxldGVkLg0KICogICAgICAgICAgICAgICAg
ICAgICAgICAgVGhlIGZ1bmN0aW9uIGdldHMgcGFzc2VkIHRocmVlIGFyZ3Vt
ZW50czogdGhlID0NCmZpcnN0IG9uZSBpcyB0aGUgY2xpY2tlZA0KICogICAg
ICAgICAgICAgICAgICAgICAgICAgdGFiIChlLmcuIGFuIGFuY2hvciBlbGVt
ZW50KSwgdGhlIHNlY29uZCBvbmUgPQ0KaXMgdGhlIERPTSBlbGVtZW50DQog
KiAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluaW5nIHRoZSBjb250
ZW50IG9mIHRoZSBjbGlja2VkIHRhYiwgPQ0KKGUuZy4gdGhlIGRpdiksIHRo
ZSB0aGlyZA0KICogICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQg
aXMgdGhlIG9uZSBvZiB0aGUgdGFiIHRoYXQgZ2V0cyA9DQpoaWRkZW4uIERl
ZmF1bHQgdmFsdWU6IG51bGwuDQogKiBAb3B0aW9uIFN0cmluZyBuYXZDbGFz
cyBBIENTUyBjbGFzcyB0aGF0IGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHRh
YnMgPQ0KdW5vcmRlcmVkIGxpc3QgYnkgY2xhc3MgaWYNCiAqICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoZSByZXF1aXJlZCBIVE1MIHN0cnVjdHVyZSBk
aWZmZXJzIGZyb20gdGhlID0NCmRlZmF1bHQgb25lLg0KICogICAgICAgICAg
ICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZTogInRhYnMtbmF2Ii4NCiAq
IEBvcHRpb24gU3RyaW5nIHNlbGVjdGVkQ2xhc3MgVGhlIENTUyBjbGFzcyBh
dHRhY2hlZCB0byB0aGUgbGkgZWxlbWVudCA9DQpyZXByZXNlbnRpbmcgdGhl
DQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseSBz
ZWxlY3RlZCAoYWN0aXZlKSB0YWIuIERlZmF1bHQgPQ0KdmFsdWU6ICJ0YWJz
LXNlbGVjdGVkIi4NCiAqIEBvcHRpb24gU3RyaW5nIGRpc2FibGVkQ2xhc3Mg
VGhlIENTUyBjbGFzcyBhdHRhY2hlZCB0byB0aGUgbGkgZWxlbWVudCA9DQpy
ZXByZXNlbnRpbmcgYSBkaXNhYmxlZA0KICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0YWIuIERlZmF1bHQgdmFsdWU6ICJ0YWJzLWRpc2FibGVk
Ii4NCiAqIEBvcHRpb24gU3RyaW5nIGNvbnRhaW5lckNsYXNzIEEgQ1NTIGNs
YXNzIHRoYXQgaXMgdXNlZCB0byBpZGVudGlmeSA9DQp0YWIgY29udGFpbmVy
cyBieSBjbGFzcyBpZg0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhlIHJlcXVpcmVkIEhUTUwgc3RydWN0dXJlIGRpZmZlcnMgPQ0KZnJv
bSB0aGUgZGVmYXVsdCBvbmUuDQogKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBEZWZhdWx0IHZhbHVlOiAidGFicy1jb250YWluZXIiLg0KICog
QG9wdGlvbiBTdHJpbmcgaGlkZUNsYXNzIFRoZSBDU1MgY2xhc3MgdXNlZCBm
b3IgaGlkaW5nIGluYWN0aXZlIHRhYnMuID0NCkEgY2xhc3MgaXMgdXNlZCBp
bnN0ZWFkDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgImRpc3Bs
YXk6IG5vbmUiIGluIHRoZSBzdHlsZSBhdHRyaWJ1dGUgdG8gPQ0KbWFpbnRh
aW4gY29udHJvbCBvdmVyDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAg
dmlzaWJpbGl0eSBpbiBvdGhlciBtZWRpYSB0eXBlcyB0aGFuIHNjcmVlbiwg
PQ0KbW9zdCBub3RhYmx5IHByaW50Lg0KICogICAgICAgICAgICAgICAgICAg
ICAgICAgIERlZmF1bHQgdmFsdWU6ICJ0YWJzLWhpZGUiLg0KICogQG9wdGlv
biBTdHJpbmcgbG9hZGluZ0NsYXNzIFRoZSBDU1MgY2xhc3MgdXNlZCBmb3Ig
aW5kaWNhdGluZyB0aGF0IGFuID0NCkFqYXggdGFiIGlzIGN1cnJlbnRseQ0K
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmcsIGZvciBl
eGFtcGxlIGJ5IHNob3dpbmcgYSA9DQpzcGlubmVyLg0KICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERlZmF1bHQgdmFsdWU6ICJ0YWJzLWxvYWRp
bmciLg0KICogQG9wdGlvbiBTdHJpbmcgdGFiU3RydWN0IEBkZXByZWNhdGVk
IEEgQ1NTIHNlbGVjdG9yIG9yIGJhc2ljIFhQYXRoID0NCmV4cHJlc3Npb24g
cmVmbGVjdGluZyBhDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgbmVz
dGVkIEhUTUwgc3RydWN0dXJlIHRoYXQgaXMgZGlmZmVyZW50IGZyb20gPQ0K
dGhlIGRlZmF1bHQgc2luZ2xlIGRpdg0KICogICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdHVyZSAob25lIGRpdiB3aXRoIGFuIGlkIGluc2lkZSB0
aGUgPQ0Kb3ZlcmFsbCBjb250YWluZXIgaG9sZHMgb25lDQogKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGFiJ3MgY29udGVudCkuIElmIGZvciBpbnN0
YW5jZSBhbiA9DQphZGRpdGlvbmFsIGRpdiBpcyByZXF1aXJlZCB0byB3cmFw
DQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgdXAgdGhlIHNldmVyYWwg
dGFiIGNvbnRhaW5lcnMgc3VjaCBhID0NCnN0cnVjdHVyZSBpcyBleHByZXNz
ZWQgYnkgImRpdj5kaXYiLg0KICogICAgICAgICAgICAgICAgICAgICAgICAg
IERlZmF1bHQgdmFsdWU6ICJkaXYiLg0KICogQHR5cGUgalF1ZXJ5DQogKg0K
ICogQG5hbWUgdGFicw0KICogQGNhdCBQbHVnaW5zL1RhYnMNCiAqIEBhdXRo
b3IgS2xhdXMgSGFydGwva2xhdXMuaGFydGxAc3RpbGJ1ZXJvLmRlDQogKi8N
CiQuZm4udGFicyA9M0QgZnVuY3Rpb24oaW5pdGlhbCwgc2V0dGluZ3MpIHsN
Cg0KICAgIC8vIHNldHRpbmdzDQogICAgaWYgKHR5cGVvZiBpbml0aWFsID0z
RD0zRCAnb2JqZWN0Jykgc2V0dGluZ3MgPTNEIGluaXRpYWw7IC8vIG5vID0N
CmluaXRpYWwgdGFiIGdpdmVuIGJ1dCBhIHNldHRpbmdzIG9iamVjdA0KICAg
IHNldHRpbmdzID0zRCAkLmV4dGVuZCh7DQogICAgICAgIGluaXRpYWw6IChp
bml0aWFsICYmIHR5cGVvZiBpbml0aWFsID0zRD0zRCAnbnVtYmVyJyAmJiBp
bml0aWFsID4gPQ0KMCkgPyAtLWluaXRpYWwgOiAwLA0KICAgICAgICBkaXNh
YmxlZDogbnVsbCwNCiAgICAgICAgYm9va21hcmthYmxlOiAkLmFqYXhIaXN0
b3J5ID8gdHJ1ZSA6IGZhbHNlLA0KICAgICAgICByZW1vdGU6IGZhbHNlLA0K
ICAgICAgICBzcGlubmVyOiAnTG9hZGluZyYjODIzMDsnLA0KICAgICAgICBo
YXNoUHJlZml4OiAncmVtb3RlLXRhYi0nLA0KICAgICAgICBmeEZhZGU6IG51
bGwsDQogICAgICAgIGZ4U2xpZGU6IG51bGwsDQogICAgICAgIGZ4U2hvdzog
bnVsbCwNCiAgICAgICAgZnhIaWRlOiBudWxsLA0KICAgICAgICBmeFNwZWVk
OiAnbm9ybWFsJywNCiAgICAgICAgZnhTaG93U3BlZWQ6IG51bGwsDQogICAg
ICAgIGZ4SGlkZVNwZWVkOiBudWxsLA0KICAgICAgICBmeEF1dG9IZWlnaHQ6
IGZhbHNlLA0KICAgICAgICBvbkNsaWNrOiBudWxsLA0KICAgICAgICBvbkhp
ZGU6IG51bGwsDQogICAgICAgIG9uU2hvdzogbnVsbCwNCiAgICAgICAgbmF2
Q2xhc3M6ICd0YWJzLW5hdicsDQogICAgICAgIHNlbGVjdGVkQ2xhc3M6ICd0
YWJzLXNlbGVjdGVkJywNCiAgICAgICAgZGlzYWJsZWRDbGFzczogJ3RhYnMt
ZGlzYWJsZWQnLA0KICAgICAgICBjb250YWluZXJDbGFzczogJ3RhYnMtY29u
dGFpbmVyJywNCiAgICAgICAgaGlkZUNsYXNzOiAndGFicy1oaWRlJywNCiAg
ICAgICAgbG9hZGluZ0NsYXNzOiAndGFicy1sb2FkaW5nJywNCiAgICAgICAg
dGFiU3RydWN0OiAnZGl2Jw0KICAgIH0sIHNldHRpbmdzIHx8IHt9KTsNCg0K
ICAgICQuYnJvd3Nlci5tc2llNiA9M0QgJC5icm93c2VyLm1zaWUgJiYgKCQu
YnJvd3Nlci52ZXJzaW9uICYmID0NCiQuYnJvd3Nlci52ZXJzaW9uIDwgNyB8
fCAvTVNJRSA2LjAvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpOyAvLyBk
byA9DQpub3QgY2hlY2sgZm9yIDYuMCBhbG9uZSwgdXNlckFnZW50IGluIFdp
bmRvd3MgVmlzdGEgaGFzICJXaW5kb3dzIE5UIDYuMCINCg0KICAgIC8vIGhl
bHBlciB0byBwcmV2ZW50IHNjcm9sbCB0byBmcmFnbWVudA0KICAgIGZ1bmN0
aW9uIHVuRm9jdXMoKSB7DQogICAgICAgIHNjcm9sbFRvKDAsIDApOw0KICAg
IH0NCg0KICAgIC8vIGluaXRpYWxpemUgdGFicw0KICAgIHJldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgLy8gcmVtZW1iZXIgd3Jh
cHBlciBmb3IgbGF0ZXINCiAgICAgICAgdmFyIGNvbnRhaW5lciA9M0QgdGhp
czsNCg0KICAgICAgICAvLyBzZXR1cCBuYXYNCiAgICAgICAgdmFyIG5hdiA9
M0QgJCgndWwuJyArIHNldHRpbmdzLm5hdkNsYXNzLCBjb250YWluZXIpOw0K
ICAgICAgICBuYXYgPTNEIG5hdi5zaXplKCkgJiYgbmF2IHx8ICQoJz51bDpl
cSgwKScsIGNvbnRhaW5lcik7IC8vID0NCmZhbGxiYWNrIHRvIGRlZmF1bHQg
c3RydWN0dXJlDQogICAgICAgIHZhciB0YWJzID0zRCAkKCdhJywgbmF2KTsN
Cg0KICAgICAgICAvLyBwcmVwYXJlIHJlbW90ZSB0YWJzDQogICAgICAgIGlm
IChzZXR0aW5ncy5yZW1vdGUpIHsNCiAgICAgICAgICAgIHRhYnMuZWFjaChm
dW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB2YXIgaWQgPTNEIHNldHRp
bmdzLmhhc2hQcmVmaXggKyAoKyskLnRhYnMucmVtb3RlQ291bnQpLCA9DQpo
YXNoID0zRCAnIycgKyBpZCwgdXJsID0zRCB0aGlzLmhyZWY7DQogICAgICAg
ICAgICAgICAgdGhpcy5ocmVmID0zRCBoYXNoOw0KICAgICAgICAgICAgICAg
ICQoJzxkaXYgaWQ9M0QiJyArIGlkICsgJyIgY2xhc3M9M0QiJyArID0NCnNl
dHRpbmdzLmNvbnRhaW5lckNsYXNzICsgJyI+PC9kaXY+JykuYXBwZW5kVG8o
Y29udGFpbmVyKTsNCg0KICAgICAgICAgICAgICAgICQodGhpcykuYmluZCgn
bG9hZFJlbW90ZVRhYicsIGZ1bmN0aW9uKGUsIGNhbGxiYWNrKSB7DQogICAg
ICAgICAgICAgICAgICAgIHZhciAkJCA9M0QgJCh0aGlzKS5hZGRDbGFzcyhz
ZXR0aW5ncy5sb2FkaW5nQ2xhc3MpLCA9DQpzcGFuID0zRCAkKCdzcGFuJywg
dGhpcylbMF0sIHRhYlRpdGxlID0zRCBzcGFuLmlubmVySFRNTDsNCiAgICAg
ICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLnNwaW5uZXIpIHsNCiAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gaWYgc3Bpbm5lciBpcyBpbWFn
ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPTNE
ICc8ZW0+JyArIHNldHRpbmdzLnNwaW5uZXIgKyA9DQonPC9lbT4nOyAvLyBX
QVJOSU5HOiBodG1sKC4uLikgY3Jhc2hlcyBTYWZhcmkgd2l0aCBqUXVlcnkg
MS4xLjINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAvLyBUaW1lb3V0IGlzIGFn
YWluIHJlcXVpcmVkID0NCmluIElFLCAid2FpdCIgZm9yIGlkIGJlaW5nIHJl
c3RvcmVkDQogICAgICAgICAgICAgICAgICAgICAgICAkKGhhc2gpLmxvYWQo
dXJsLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoc2V0dGluZ3Muc3Bpbm5lcikgew0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzcGFuLmlubmVySFRNTCA9M0QgdGFiVGl0bGU7IC8v
IFdBUk5JTkc6ID0NCmh0bWwoLi4uKSBjcmFzaGVzIFNhZmFyaSB3aXRoIGpR
dWVyeSAxLjEuMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5yZW1vdmVDbGFzcyhzZXR0
aW5ncy5sb2FkaW5nQ2xhc3MpOw0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7DQogICAgICAgICAgICAgICAg
ICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgfSwgMCk7DQogICAg
ICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9
DQoNCiAgICAgICAgLy8gc2V0IHVwIGNvbnRhaW5lcnMNCiAgICAgICAgdmFy
IGNvbnRhaW5lcnMgPTNEICQoJ2Rpdi4nICsgc2V0dGluZ3MuY29udGFpbmVy
Q2xhc3MsID0NCmNvbnRhaW5lcik7DQogICAgICAgIGNvbnRhaW5lcnMgPTNE
IGNvbnRhaW5lcnMuc2l6ZSgpICYmIGNvbnRhaW5lcnMgfHwgJCgnPicgKyA9
DQpzZXR0aW5ncy50YWJTdHJ1Y3QsIGNvbnRhaW5lcik7IC8vIGZhbGxiYWNr
IHRvIGRlZmF1bHQgc3RydWN0dXJlDQoNCiAgICAgICAgLy8gYXR0YWNoIGNs
YXNzZXMgZm9yIHN0eWxpbmcgaWYgbm90IHByZXNlbnQNCiAgICAgICAgbmF2
LmlzKCcuJyArIHNldHRpbmdzLm5hdkNsYXNzKSB8fCA9DQpuYXYuYWRkQ2xh
c3Moc2V0dGluZ3MubmF2Q2xhc3MpOw0KICAgICAgICBjb250YWluZXJzLmVh
Y2goZnVuY3Rpb24oKSB7DQogICAgICAgICAgICB2YXIgJCQgPTNEICQodGhp
cyk7DQogICAgICAgICAgICAkJC5pcygnLicgKyBzZXR0aW5ncy5jb250YWlu
ZXJDbGFzcykgfHwgPQ0KJCQuYWRkQ2xhc3Moc2V0dGluZ3MuY29udGFpbmVy
Q2xhc3MpOw0KICAgICAgICB9KTsNCg0KICAgICAgICAvLyB0cnkgdG8gcmV0
cmlldmUgYWN0aXZlIHRhYiBmcm9tIGNsYXNzIGluIEhUTUwNCiAgICAgICAg
dmFyIGhhc1NlbGVjdGVkQ2xhc3MgPTNEICQoJ2xpJywgbmF2KS5pbmRleCgg
JCgnbGkuJyArID0NCnNldHRpbmdzLnNlbGVjdGVkQ2xhc3MsIG5hdilbMF0g
KTsNCiAgICAgICAgaWYgKGhhc1NlbGVjdGVkQ2xhc3MgPj0zRCAwKSB7DQog
ICAgICAgICAgIHNldHRpbmdzLmluaXRpYWwgPTNEIGhhc1NlbGVjdGVkQ2xh
c3M7DQogICAgICAgIH0NCg0KICAgICAgICAvLyB0cnkgdG8gcmV0cmlldmUg
YWN0aXZlIHRhYiBmcm9tIGhhc2ggaW4gdXJsLCB3aWxsIG92ZXJyaWRlID0N
CmNsYXNzIGluIEhUTUwNCiAgICAgICAgaWYgKGxvY2F0aW9uLmhhc2gpIHsN
CiAgICAgICAgICAgIHRhYnMuZWFjaChmdW5jdGlvbihpKSB7DQogICAgICAg
ICAgICAgICAgaWYgKHRoaXMuaGFzaCA9M0Q9M0QgbG9jYXRpb24uaGFzaCkg
ew0KICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5pbml0aWFsID0zRCBp
Ow0KICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IHBhZ2Ugc2Nyb2xs
IHRvIGZyYWdtZW50DQogICAgICAgICAgICAgICAgICAgIGlmICgoJC5icm93
c2VyLm1zaWUgfHwgJC5icm93c2VyLm9wZXJhKSAmJiA9DQohc2V0dGluZ3Mu
cmVtb3RlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9TaG93
ID0zRCAkKGxvY2F0aW9uLmhhc2gpOw0KICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHRvU2hvd0lkID0zRCB0b1Nob3cuYXR0cignaWQnKTsNCiAgICAg
ICAgICAgICAgICAgICAgICAgIHRvU2hvdy5hdHRyKCdpZCcsICcnKTsNCiAg
ICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9TaG93LmF0dHIoJ2lk
JywgdG9TaG93SWQpOyAvLyByZXN0b3JlIGlkDQogICAgICAgICAgICAgICAg
ICAgICAgICB9LCA1MDApOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgICAgIHVuRm9jdXMoKTsNCiAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOyAvLyBicmVhaw0KICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGlmICgkLmJy
b3dzZXIubXNpZSkgew0KICAgICAgICAgICAgdW5Gb2N1cygpOyAvLyBmaXgg
SUUgZm9jdXNzaW5nIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3Igc29tZSA9DQp1
bmtub3duIHJlYXNvbg0KICAgICAgICB9DQoNCiAgICAgICAgLy8gaGlnaGxp
Z2h0IHRhYiBhY2NvcmRpbmdseQ0KICAgICAgICBjb250YWluZXJzLmZpbHRl
cignOmVxKCcgKyBzZXR0aW5ncy5pbml0aWFsICsgPQ0KJyknKS5zaG93KCku
ZW5kKCkubm90KCc6ZXEoJyArIHNldHRpbmdzLmluaXRpYWwgKyA9DQonKScp
LmFkZENsYXNzKHNldHRpbmdzLmhpZGVDbGFzcyk7DQogICAgICAgICQoJ2xp
JywgPQ0KbmF2KS5yZW1vdmVDbGFzcyhzZXR0aW5ncy5zZWxlY3RlZENsYXNz
KS5lcShzZXR0aW5ncy5pbml0aWFsKS5hZGRDbGFzcyhzZT0NCnR0aW5ncy5z
ZWxlY3RlZENsYXNzKTsgLy8gd2UgbmVlZCB0byByZW1vdmUgY2xhc3NlcyBl
dmVudHVhbGx5IGlmIGhhc2ggPQ0KdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGNs
YXNzDQogICAgICAgIC8vIHRyaWdnZXIgbG9hZCBvZiBpbml0aWFsIHRhYg0K
ICAgICAgICB0YWJzLmVxKHNldHRpbmdzLmluaXRpYWwpLnRyaWdnZXIoJ2xv
YWRSZW1vdGVUYWInKS5lbmQoKTsNCg0KICAgICAgICAvLyBzZXR1cCBhdXRv
IGhlaWdodA0KICAgICAgICBpZiAoc2V0dGluZ3MuZnhBdXRvSGVpZ2h0KSB7
DQogICAgICAgICAgICAvLyBoZWxwZXINCiAgICAgICAgICAgIHZhciBfc2V0
QXV0b0hlaWdodCA9M0QgZnVuY3Rpb24ocmVzZXQpIHsNCiAgICAgICAgICAg
ICAgICAvLyBnZXQgdGFiIGhlaWdodHMgaW4gdG9wIHRvIGJvdHRvbSBvcmRl
cmVkIGFycmF5DQogICAgICAgICAgICAgICAgdmFyIGhlaWdodHMgPTNEICQu
bWFwKGNvbnRhaW5lcnMuZ2V0KCksIGZ1bmN0aW9uKGVsKSB7DQogICAgICAg
ICAgICAgICAgICAgIHZhciBoLCBqcSA9M0QgJChlbCk7DQogICAgICAgICAg
ICAgICAgICAgIGlmIChyZXNldCkgew0KICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCQuYnJvd3Nlci5tc2llNikgew0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVsLnN0eWxlLnJlbW92ZUV4cHJlc3Npb24oJ2JlaGF2aW91
cicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLnN0eWxlLmhl
aWdodCA9M0QgJyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWwu
bWluSGVpZ2h0ID0zRCBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgICAgICAgICAgaCA9M0QganEuY3NzKHsnbWlu
LWhlaWdodCc6ICcnfSkuaGVpZ2h0KCk7IC8vID0NCnVzZSBqUXVlcnkncyBo
ZWlnaHQoKSB0byBnZXQgaGlkZGVuIGVsZW1lbnQgdmFsdWVzDQogICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAg
ICBoID0zRCBqcS5oZWlnaHQoKTsgLy8gdXNlIGpRdWVyeSdzIGhlaWdodCgp
IHRvID0NCmdldCBoaWRkZW4gZWxlbWVudCB2YWx1ZXMNCiAgICAgICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gaDsNCiAg
ICAgICAgICAgICAgICB9KS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsNCiAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGIgLSBhOw0KICAgICAgICAgICAgICAg
IH0pOw0KICAgICAgICAgICAgICAgIGlmICgkLmJyb3dzZXIubXNpZTYpIHsN
CiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVycy5lYWNoKGZ1bmN0aW9u
KCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5IZWlnaHQg
PTNEIGhlaWdodHNbMF0gKyAncHgnOw0KICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5zdHlsZS5zZXRFeHByZXNzaW9uKCdiZWhhdmlvdXInLCA9DQon
dGhpcy5zdHlsZS5oZWlnaHQgPTNEIHRoaXMubWluSGVpZ2h0ID8gdGhpcy5t
aW5IZWlnaHQgOiAiMXB4IicpOyAvLyA9DQp1c2luZyBhbiBleHByZXNzaW9u
IHRvIG5vdCBtYWtlIHByaW50IHN0eWxlcyB1c2VsZXNzDQogICAgICAgICAg
ICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAg
ICAgICAgICAgICAgICAgIGNvbnRhaW5lcnMuY3NzKHsnbWluLWhlaWdodCc6
IGhlaWdodHNbMF0gKyAncHgnfSk7DQogICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgfTsNCiAgICAgICAgICAgIC8vIGNhbGwgb25jZSBmb3IgaW5p
dGlhbGl6YXRpb24NCiAgICAgICAgICAgIF9zZXRBdXRvSGVpZ2h0KCk7DQog
ICAgICAgICAgICAvLyB0cmlnZ2VyIGF1dG8gaGVpZ2h0IGFkanVzdG1lbnQg
aWYgbmVlZGVkDQogICAgICAgICAgICB2YXIgY2FjaGVkV2lkdGggPTNEIGNv
bnRhaW5lci5vZmZzZXRXaWR0aDsNCiAgICAgICAgICAgIHZhciBjYWNoZWRI
ZWlnaHQgPTNEIGNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7DQogICAgICAgICAg
ICB2YXIgd2F0Y2hGb250U2l6ZSA9M0QgJCgnI3RhYnMtd2F0Y2gtZm9udC1z
aXplJykuZ2V0KDApIHx8ID0NCiQoJzxzcGFuIGlkPTNEInRhYnMtd2F0Y2gt
Zm9udC1zaXplIj5NPC9zcGFuPicpLmNzcyh7ZGlzcGxheTogJ2Jsb2NrJywg
PQ0KcG9zaXRpb246ICdhYnNvbHV0ZScsIHZpc2liaWxpdHk6ID0NCidoaWRk
ZW4nfSkuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSkuZ2V0KDApOw0KICAgICAg
ICAgICAgdmFyIGNhY2hlZEZvbnRTaXplID0zRCB3YXRjaEZvbnRTaXplLm9m
ZnNldEhlaWdodDsNCiAgICAgICAgICAgIHNldEludGVydmFsKGZ1bmN0aW9u
KCkgew0KICAgICAgICAgICAgICAgIHZhciBjdXJyZW50V2lkdGggPTNEIGNv
bnRhaW5lci5vZmZzZXRXaWR0aDsNCiAgICAgICAgICAgICAgICB2YXIgY3Vy
cmVudEhlaWdodCA9M0QgY29udGFpbmVyLm9mZnNldEhlaWdodDsNCiAgICAg
ICAgICAgICAgICB2YXIgY3VycmVudEZvbnRTaXplID0zRCB3YXRjaEZvbnRT
aXplLm9mZnNldEhlaWdodDsNCiAgICAgICAgICAgICAgICBpZiAoY3VycmVu
dEhlaWdodCA+IGNhY2hlZEhlaWdodCB8fCBjdXJyZW50V2lkdGggIT0zRCA9
DQpjYWNoZWRXaWR0aCB8fCBjdXJyZW50Rm9udFNpemUgIT0zRCBjYWNoZWRG
b250U2l6ZSkgew0KICAgICAgICAgICAgICAgICAgICBfc2V0QXV0b0hlaWdo
dCgoY3VycmVudFdpZHRoID4gY2FjaGVkV2lkdGggfHwgPQ0KY3VycmVudEZv
bnRTaXplIDwgY2FjaGVkRm9udFNpemUpKTsgLy8gaWYgaGVpZ2h0cyBnZXRz
IHNtYWxsZXIgcmVzZXQgPQ0KbWluLWhlaWdodA0KICAgICAgICAgICAgICAg
ICAgICBjYWNoZWRXaWR0aCA9M0QgY3VycmVudFdpZHRoOw0KICAgICAgICAg
ICAgICAgICAgICBjYWNoZWRIZWlnaHQgPTNEIGN1cnJlbnRIZWlnaHQ7DQog
ICAgICAgICAgICAgICAgICAgIGNhY2hlZEZvbnRTaXplID0zRCBjdXJyZW50
Rm9udFNpemU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwg
NTApOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gc2V0dXAgYW5pbWF0aW9u
cw0KICAgICAgICB2YXIgc2hvd0FuaW0gPTNEIHt9LCBoaWRlQW5pbSA9M0Qg
e30sIHNob3dTcGVlZCA9M0QgPQ0Kc2V0dGluZ3MuZnhTaG93U3BlZWQgfHwg
c2V0dGluZ3MuZnhTcGVlZCwgaGlkZVNwZWVkID0zRCA9DQpzZXR0aW5ncy5m
eEhpZGVTcGVlZCB8fCBzZXR0aW5ncy5meFNwZWVkOw0KICAgICAgICBpZiAo
c2V0dGluZ3MuZnhTbGlkZSB8fCBzZXR0aW5ncy5meEZhZGUpIHsNCiAgICAg
ICAgICAgIGlmIChzZXR0aW5ncy5meFNsaWRlKSB7DQogICAgICAgICAgICAg
ICAgc2hvd0FuaW1bJ2hlaWdodCddID0zRCAnc2hvdyc7DQogICAgICAgICAg
ICAgICAgaGlkZUFuaW1bJ2hlaWdodCddID0zRCAnaGlkZSc7DQogICAgICAg
ICAgICB9DQogICAgICAgICAgICBpZiAoc2V0dGluZ3MuZnhGYWRlKSB7DQog
ICAgICAgICAgICAgICAgc2hvd0FuaW1bJ29wYWNpdHknXSA9M0QgJ3Nob3cn
Ow0KICAgICAgICAgICAgICAgIGhpZGVBbmltWydvcGFjaXR5J10gPTNEICdo
aWRlJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAg
ICAgICAgIGlmIChzZXR0aW5ncy5meFNob3cpIHsNCiAgICAgICAgICAgICAg
ICBzaG93QW5pbSA9M0Qgc2V0dGluZ3MuZnhTaG93Ow0KICAgICAgICAgICAg
fSBlbHNlIHsgLy8gdXNlIHNvbWUga2luZCBvZiBhbmltYXRpb24gdG8gcHJl
dmVudCBicm93c2VyID0NCnNjcm9sbGluZyB0byB0aGUgdGFiDQogICAgICAg
ICAgICAgICAgc2hvd0FuaW1bJ21pbi13aWR0aCddID0zRCAwOyAvLyBhdm9p
ZCBvcGFjaXR5LCBjYXVzZXMgPQ0KZmxpY2tlciBpbiBGaXJlZm94DQogICAg
ICAgICAgICAgICAgc2hvd1NwZWVkID0zRCAxOyAvLyBhcyBsaXR0bGUgYXMg
MSBpcyBzdWZmaWNpZW50DQogICAgICAgICAgICB9DQogICAgICAgICAgICBp
ZiAoc2V0dGluZ3MuZnhIaWRlKSB7DQogICAgICAgICAgICAgICAgaGlkZUFu
aW0gPTNEIHNldHRpbmdzLmZ4SGlkZTsNCiAgICAgICAgICAgIH0gZWxzZSB7
IC8vIHVzZSBzb21lIGtpbmQgb2YgYW5pbWF0aW9uIHRvIHByZXZlbnQgYnJv
d3NlciA9DQpzY3JvbGxpbmcgdG8gdGhlIHRhYg0KICAgICAgICAgICAgICAg
IGhpZGVBbmltWydtaW4td2lkdGgnXSA9M0QgMDsgLy8gYXZvaWQgb3BhY2l0
eSwgY2F1c2VzID0NCmZsaWNrZXIgaW4gRmlyZWZveA0KICAgICAgICAgICAg
ICAgIGhpZGVTcGVlZCA9M0QgMTsgLy8gYXMgbGl0dGxlIGFzIDEgaXMgc3Vm
ZmljaWVudA0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAg
Ly8gY2FsbGJhY2tzDQogICAgICAgIHZhciBvbkNsaWNrID0zRCBzZXR0aW5n
cy5vbkNsaWNrLCBvbkhpZGUgPTNEIHNldHRpbmdzLm9uSGlkZSwgPQ0Kb25T
aG93ID0zRCBzZXR0aW5ncy5vblNob3c7DQoNCiAgICAgICAgLy8gYXR0YWNo
IGFjdGl2YXRlVGFiIGV2ZW50LCByZXF1aXJlZCBmb3IgYWN0aXZhdGluZyBh
IHRhYiA9DQpwcm9ncmFtbWF0aWNhbGx5DQogICAgICAgIHRhYnMuYmluZCgn
dHJpZ2dlclRhYicsIGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAvLyBp
ZiB0aGUgdGFiIGlzIGFscmVhZHkgc2VsZWN0ZWQgb3IgZGlzYWJsZWQgb3Ig
YW5pbWF0aW9uID0NCmlzIHN0aWxsIHJ1bm5pbmcgc3RvcCBoZXJlDQogICAg
ICAgICAgICB2YXIgbGkgPTNEICQodGhpcykucGFyZW50cygnbGk6ZXEoMCkn
KTsNCiAgICAgICAgICAgIGlmIChjb250YWluZXIubG9ja2VkIHx8IGxpLmlz
KCcuJyArIHNldHRpbmdzLnNlbGVjdGVkQ2xhc3MpID0NCnx8IGxpLmlzKCcu
JyArIHNldHRpbmdzLmRpc2FibGVkQ2xhc3MpKSB7DQogICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAg
ICB2YXIgaGFzaCA9M0QgdGhpcy5oYXNoOw0KDQogICAgICAgICAgICBpZiAo
JC5icm93c2VyLm1zaWUpIHsNCg0KICAgICAgICAgICAgICAgICQodGhpcyku
dHJpZ2dlcignY2xpY2snKTsNCiAgICAgICAgICAgICAgICBpZiAoc2V0dGlu
Z3MuYm9va21hcmthYmxlKSB7DQogICAgICAgICAgICAgICAgICAgICQuYWph
eEhpc3RvcnkudXBkYXRlKGhhc2gpOw0KICAgICAgICAgICAgICAgICAgICBs
b2NhdGlvbi5oYXNoID0zRCBoYXNoLnJlcGxhY2UoJyMnLCAnJyk7DQogICAg
ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB9IGVsc2UgaWYgKCQuYnJv
d3Nlci5zYWZhcmkpIHsNCg0KICAgICAgICAgICAgICAgIC8vIFNpbXBseSBz
ZXR0aW5nIGxvY2F0aW9uLmhhc2ggcHV0cyBTYWZhcmkgaW50byB0aGUgPQ0K
ZXRlcm5hbCBsb2FkIHN0YXRlLi4uIHVnaCEgU3VibWl0IGEgZm9ybSBpbnN0
ZWFkLg0KICAgICAgICAgICAgICAgIHZhciB0ZW1wRm9ybSA9M0QgJCgnPGZv
cm0gYWN0aW9uPTNEIicgKyBoYXNoICsgPQ0KJyI+PGRpdj48aW5wdXQgdHlw
ZT0zRCJzdWJtaXQiIHZhbHVlPTNEImgiIC8+PC9kaXY+PC9mb3JtPicpLmdl
dCgwKTsgLy8gPQ0Kbm8gbmVlZCB0byBhcHBlbmQgaXQgdG8gdGhlIGJvZHkN
CiAgICAgICAgICAgICAgICB0ZW1wRm9ybS5zdWJtaXQoKTsgLy8gZG9lcyBu
b3QgdHJpZ2dlciB0aGUgZm9ybSdzIHN1Ym1pdCA9DQpldmVudC4uLg0KICAg
ICAgICAgICAgICAgICQodGhpcykudHJpZ2dlcignY2xpY2snKTsgLy8gLi4u
dGh1cyBkbyBzdHVmZiBoZXJlDQogICAgICAgICAgICAgICAgaWYgKHNldHRp
bmdzLmJvb2ttYXJrYWJsZSkgew0KICAgICAgICAgICAgICAgICAgICAkLmFq
YXhIaXN0b3J5LnVwZGF0ZShoYXNoKTsNCiAgICAgICAgICAgICAgICB9DQoN
CiAgICAgICAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgICAgICAgICBpZiAo
c2V0dGluZ3MuYm9va21hcmthYmxlKSB7DQogICAgICAgICAgICAgICAgICAg
IGxvY2F0aW9uLmhhc2ggPTNEIGhhc2gucmVwbGFjZSgnIycsICcnKTsNCiAg
ICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAk
KHRoaXMpLnRyaWdnZXIoJ2NsaWNrJyk7DQogICAgICAgICAgICAgICAgfQ0K
DQogICAgICAgICAgICB9DQoNCiAgICAgICAgfSk7DQoNCiAgICAgICAgLy8g
YXR0YWNoIGRpc2FibGUgZXZlbnQsIHJlcXVpcmVkIGZvciBkaXNhYmxpbmcg
YSB0YWINCiAgICAgICAgdGFicy5iaW5kKCdkaXNhYmxlVGFiJywgZnVuY3Rp
b24oKSB7DQogICAgICAgICAgICB2YXIgbGkgPTNEICQodGhpcykucGFyZW50
cygnbGk6ZXEoMCknKTsNCiAgICAgICAgICAgIGlmICgkLmJyb3dzZXIuc2Fm
YXJpKSB7IC8qIGZpeCBvcGFjaXR5IG9mIHRhYiBhZnRlciA9DQpkaXNhYmxp
bmcgaW4gU2FmYXJpLi4uICovDQogICAgICAgICAgICAgICAgbGkuYW5pbWF0
ZSh7IG9wYWNpdHk6IDAgfSwgMSwgZnVuY3Rpb24oKSB7DQogICAgICAgICAg
ICAgICAgICAgbGkuY3NzKHtvcGFjaXR5OiAnJ30pOw0KICAgICAgICAgICAg
ICAgIH0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbGkuYWRkQ2xh
c3Moc2V0dGluZ3MuZGlzYWJsZWRDbGFzcyk7DQoNCiAgICAgICAgfSk7DQoN
CiAgICAgICAgLy8gZGlzYWJsZWQgZnJvbSBzZXR0aW5ncw0KICAgICAgICBp
ZiAoc2V0dGluZ3MuZGlzYWJsZWQgJiYgc2V0dGluZ3MuZGlzYWJsZWQubGVu
Z3RoKSB7DQogICAgICAgICAgICBmb3IgKHZhciBpID0zRCAwLCBrID0zRCBz
ZXR0aW5ncy5kaXNhYmxlZC5sZW5ndGg7IGkgPCBrOyA9DQppKyspIHsNCiAg
ICAgICAgICAgICAgICA9DQp0YWJzLmVxKC0tc2V0dGluZ3MuZGlzYWJsZWRb
aV0pLnRyaWdnZXIoJ2Rpc2FibGVUYWInKS5lbmQoKTsNCiAgICAgICAgICAg
IH0NCiAgICAgICAgfTsNCg0KICAgICAgICAvLyBhdHRhY2ggZW5hYmxlIGV2
ZW50LCByZXF1aXJlZCBmb3IgcmVlbmFibGluZyBhIHRhYg0KICAgICAgICB0
YWJzLmJpbmQoJ2VuYWJsZVRhYicsIGZ1bmN0aW9uKCkgew0KICAgICAgICAg
ICAgdmFyIGxpID0zRCAkKHRoaXMpLnBhcmVudHMoJ2xpOmVxKDApJyk7DQog
ICAgICAgICAgICBsaS5yZW1vdmVDbGFzcyhzZXR0aW5ncy5kaXNhYmxlZENs
YXNzKTsNCiAgICAgICAgICAgIGlmICgkLmJyb3dzZXIuc2FmYXJpKSB7IC8q
IGZpeCBkaXNhcHBlYXJpbmcgdGFiIGFmdGVyID0NCmVuYWJsaW5nIGluIFNh
ZmFyaS4uLiAqLw0KICAgICAgICAgICAgICAgIGxpLmFuaW1hdGUoeyBvcGFj
aXR5OiAxIH0sIDEsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAg
ICBsaS5jc3Moe29wYWNpdHk6ICcnfSk7DQogICAgICAgICAgICAgICAgfSk7
DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KDQogICAgICAgIC8vIGF0
dGFjaCBjbGljayBldmVudA0KICAgICAgICB0YWJzLmJpbmQoJ2NsaWNrJywg
ZnVuY3Rpb24oZSkgew0KDQogICAgICAgICAgICB2YXIgdHJ1ZUNsaWNrID0z
RCBlLmNsaWVudFg7IC8vIGFkZCB0byBoaXN0b3J5IG9ubHkgaWYgdHJ1ZSA9
DQpjbGljayBvY2N1cmVkLCBub3QgYSB0cmlnZ2VyZWQgY2xpY2sNCiAgICAg
ICAgICAgIHZhciBjbGlja2VkID0zRCB0aGlzLCBsaSA9M0QgJCh0aGlzKS5w
YXJlbnRzKCdsaTplcSgwKScpLCA9DQp0b1Nob3cgPTNEICQodGhpcy5oYXNo
KSwgdG9IaWRlID0zRCBjb250YWluZXJzLmZpbHRlcignOnZpc2libGUnKTsN
Cg0KICAgICAgICAgICAgLy8gaWYgYW5pbWF0aW9uIGlzIHN0aWxsIHJ1bm5p
bmcsIHRhYiBpcyBzZWxlY3RlZCBvciA9DQpkaXNhYmxlZCBvciBvbkNsaWNr
IGNhbGxiYWNrIHJldHVybnMgZmFsc2Ugc3RvcCBoZXJlDQogICAgICAgICAg
ICAvLyBjaGVjayBpZiBvbkNsaWNrIHJldHVybnMgZmFsc2UgbGFzdCBzbyB0
aGF0IGl0IGlzIG5vdCA9DQpleGVjdXRlZCBmb3IgYSBkaXNhYmxlZCB0YWIN
CiAgICAgICAgICAgIGlmIChjb250YWluZXJbJ2xvY2tlZCddIHx8IGxpLmlz
KCcuJyArID0NCnNldHRpbmdzLnNlbGVjdGVkQ2xhc3MpIHx8IGxpLmlzKCcu
JyArIHNldHRpbmdzLmRpc2FibGVkQ2xhc3MpIHx8IHR5cGVvZiA9DQpvbkNs
aWNrID0zRD0zRCAnZnVuY3Rpb24nICYmIG9uQ2xpY2sodGhpcywgdG9TaG93
WzBdLCB0b0hpZGVbMF0pID0NCj0zRD0zRD0zRCBmYWxzZSkgew0KICAgICAg
ICAgICAgICAgIHRoaXMuYmx1cigpOw0KICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgY29udGFp
bmVyWydsb2NrZWQnXSA9M0QgdHJ1ZTsNCg0KICAgICAgICAgICAgLy8gc2hv
dyBuZXcgdGFiDQogICAgICAgICAgICBpZiAodG9TaG93LnNpemUoKSkgew0K
DQogICAgICAgICAgICAgICAgLy8gcHJldmVudCBzY3JvbGxiYXIgc2Nyb2xs
aW5nIHRvIDAgYW5kIHRoYW4gYmFjayBpbiA9DQpJRTcsIGhhcHBlbnMgb25s
eSBpZiBib29rbWFya2luZy9oaXN0b3J5IGlzIGVuYWJsZWQNCiAgICAgICAg
ICAgICAgICBpZiAoJC5icm93c2VyLm1zaWUgJiYgc2V0dGluZ3MuYm9va21h
cmthYmxlKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0b1Nob3dJZCA9
M0QgdGhpcy5oYXNoLnJlcGxhY2UoJyMnLCAnJyk7DQogICAgICAgICAgICAg
ICAgICAgIHRvU2hvdy5hdHRyKCdpZCcsICcnKTsNCiAgICAgICAgICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAg
ICAgICAgICAgIHRvU2hvdy5hdHRyKCdpZCcsIHRvU2hvd0lkKTsgLy8gcmVz
dG9yZSBpZA0KICAgICAgICAgICAgICAgICAgICB9LCAwKTsNCiAgICAgICAg
ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB2YXIgcmVzZXRDU1MgPTNE
IHsgZGlzcGxheTogJycsIG92ZXJmbG93OiAnJywgaGVpZ2h0OiAnJyA9DQp9
Ow0KICAgICAgICAgICAgICAgIGlmICghJC5icm93c2VyLm1zaWUpIHsgLy8g
bm90IGluIElFIHRvIHByZXZlbnQgQ2xlYXJUeXBlID0NCmZvbnQgaXNzdWUN
CiAgICAgICAgICAgICAgICAgICAgcmVzZXRDU1NbJ29wYWNpdHknXSA9M0Qg
Jyc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgPTIwDQog
ICAgICAgICAgICAgICAgLy8gc3dpdGNoIHRhYiwgYW5pbWF0aW9uIHByZXZl
bnRzIGJyb3dzZXIgc2Nyb2xsaW5nIHRvID0NCnRoZSBmcmFnbWVudA0KICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIHN3aXRjaFRhYigpIHsNCiAgICAgICAg
ICAgICAgICAgICAgaWYgKHNldHRpbmdzLmJvb2ttYXJrYWJsZSAmJiB0cnVl
Q2xpY2spIHsgLy8gYWRkIHRvID0NCmhpc3Rvcnkgb25seSBpZiB0cnVlIGNs
aWNrIG9jY3VyZWQsIG5vdCBhIHRyaWdnZXJlZCBjbGljaw0KICAgICAgICAg
ICAgICAgICAgICAgICAgJC5hamF4SGlzdG9yeS51cGRhdGUoY2xpY2tlZC5o
YXNoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
ICAgICB0b0hpZGUuYW5pbWF0ZShoaWRlQW5pbSwgaGlkZVNwZWVkLCBmdW5j
dGlvbigpIHsgLy8NCiAgICAgICAgICAgICAgICAgICAgICAgID0NCiQoY2xp
Y2tlZCkucGFyZW50cygnbGk6ZXEoMCknKS5hZGRDbGFzcyhzZXR0aW5ncy5z
ZWxlY3RlZENsYXNzKS5zaWJsaW5ncyg9DQopLnJlbW92ZUNsYXNzKHNldHRp
bmdzLnNlbGVjdGVkQ2xhc3MpOw0KICAgICAgICAgICAgICAgICAgICAgICAg
PQ0KdG9IaWRlLmFkZENsYXNzKHNldHRpbmdzLmhpZGVDbGFzcykuY3NzKHJl
c2V0Q1NTKTsgLy8gbWFpbnRhaW4gZmxleGlibGUgPQ0KaGVpZ2h0IGFuZCBh
Y2Nlc3NpYmlsaXR5IGluIHByaW50IGV0Yy4gICAgICAgICAgICAgICAgICAg
ICAgID0yMA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBv
bkhpZGUgPTNEPTNEICdmdW5jdGlvbicpIHsNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvbkhpZGUoY2xpY2tlZCwgdG9TaG93WzBdLCB0b0hpZGVb
MF0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCEoc2V0dGluZ3MuZnhTbGlkZSB8fCBzZXR0aW5n
cy5meEZhZGUgfHwgPQ0Kc2V0dGluZ3MuZnhTaG93KSkgew0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRvU2hvdy5jc3MoJ2Rpc3BsYXknLCAnYmxv
Y2snKTsgLy8gcHJldmVudCA9DQpvY2Nhc2lvbmFsbHkgb2NjdXJpbmcgZmxp
Y2tlciBpbiBGaXJlZm94IGNhdXNlIGJ5IGdhcCBiZXR3ZWVuIHNob3dpbmcg
PQ0KYW5kIGhpZGluZyB0aGUgdGFiIGNvbnRhaW5lcnMNCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRvU2hv
dy5hbmltYXRlKHNob3dBbmltLCBzaG93U3BlZWQsIGZ1bmN0aW9uKCkgew0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0NCnRvU2hvdy5yZW1vdmVD
bGFzcyhzZXR0aW5ncy5oaWRlQ2xhc3MpLmNzcyhyZXNldENTUyk7IC8vIG1h
aW50YWluID0NCmZsZXhpYmxlIGhlaWdodCBhbmQgYWNjZXNzaWJpbGl0eSBp
biBwcmludCBldGMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCQuYnJvd3Nlci5tc2llKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvSGlkZVswXS5zdHlsZS5maWx0ZXIgPTNEICcnOw0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0b1Nob3dbMF0uc3R5bGUuZmls
dGVyID0zRCAnJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvblNob3cg
PTNEPTNEICdmdW5jdGlvbicpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb25TaG93KGNsaWNrZWQsIHRvU2hvd1swXSwgdG9IaWRlWzBd
KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGFpbmVyWydsb2NrZWQnXSA9M0QgbnVs
bDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAg
ICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg
ICAgICBpZiAoIXNldHRpbmdzLnJlbW90ZSkgew0KICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2hUYWIoKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0K
ICAgICAgICAgICAgICAgICAgICAkKGNsaWNrZWQpLnRyaWdnZXIoJ2xvYWRS
ZW1vdGVUYWInLCBbc3dpdGNoVGFiXSk7DQogICAgICAgICAgICAgICAgfQ0K
DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0
KCdUaGVyZSBpcyBubyBzdWNoIGNvbnRhaW5lci4nKTsNCiAgICAgICAgICAg
IH0NCg0KICAgICAgICAgICAgLy8gU2V0IHNjcm9sbGJhciB0byBzYXZlZCBw
b3NpdGlvbiAtIG5lZWQgdG8gdXNlIHRpbWVvdXQgPQ0Kd2l0aCAwIHRvIHBy
ZXZlbnQgYnJvd3NlciBzY3JvbGwgdG8gdGFyZ2V0IG9mIGhhc2gNCiAgICAg
ICAgICAgIHZhciBzY3JvbGxYID0zRCB3aW5kb3cucGFnZVhPZmZzZXQgfHwg
PQ0KZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5zY3JvbGxMZWZ0IHx8ID0NCmRvY3VtZW50LmJvZHkuc2Ny
b2xsTGVmdCB8fCAwOw0KICAgICAgICAgICAgdmFyIHNjcm9sbFkgPTNEIHdp
bmRvdy5wYWdlWU9mZnNldCB8fCA9DQpkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCA9
DQpkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCB8fCAwOw0KICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB3aW5k
b3cuc2Nyb2xsVG8oc2Nyb2xsWCwgc2Nyb2xsWSk7DQogICAgICAgICAgICB9
LCAwKTsNCg0KICAgICAgICAgICAgdGhpcy5ibHVyKCk7IC8vIHByZXZlbnQg
SUUgZnJvbSBrZWVwaW5nIG90aGVyIGxpbmsgZm9jdXNzZWQgPQ0Kd2hlbiB1
c2luZyB0aGUgYmFjayBidXR0b24NCg0KICAgICAgICAgICAgcmV0dXJuIHNl
dHRpbmdzLmJvb2ttYXJrYWJsZSAmJiAhIXRydWVDbGljazsgLy8gY29udmVy
dCA9DQp1bmRlZmluZWQgdG8gQm9vbGVhbiBmb3IgSUUNCg0KICAgICAgICB9
KTsNCg0KICAgICAgICAvLyBlbmFibGUgaGlzdG9yeSBzdXBwb3J0IGlmIGJv
b2ttYXJraW5nIGFuZCBoaXN0b3J5IGlzIHR1cm5lZCA9DQpvbg0KICAgICAg
ICBpZiAoc2V0dGluZ3MuYm9va21hcmthYmxlKSB7DQogICAgICAgICAgICAk
LmFqYXhIaXN0b3J5LmluaXRpYWxpemUoZnVuY3Rpb24oKSB7DQogICAgICAg
ICAgICAgICAgdGFicy5lcShzZXR0aW5ncy5pbml0aWFsKS50cmlnZ2VyKCdj
bGljaycpLmVuZCgpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCg0K
ICAgIH0pOw0KDQp9Ow0KDQovKioNCiAqIEFjdGl2YXRlIGEgdGFiIHByb2dy
YW1tYXRpY2FsbHkgd2l0aCB0aGUgZ2l2ZW4gcG9zaXRpb24gKG5vID0NCnpl
cm8tYmFzZWQgaW5kZXgpDQogKiBvciBpdHMgaWQsIGUuZy4gdGhlIFVSTCdz
IGZyYWdtZW50IGlkZW50aWZpZXIvaGFzaCByZXByZXNlbnRpbmcgYSA9DQp0
YWIsIGFzIGlmIHRoZSB0YWINCiAqIGl0c2VsZiB3ZXJlIGNsaWNrZWQuDQog
Kg0KICogQGV4YW1wbGUgJCgnI2NvbnRhaW5lcicpLnRyaWdnZXJUYWIoMik7
DQogKiBAZGVzYyBBY3RpdmF0ZSB0aGUgc2Vjb25kIHRhYiBvZiB0aGUgdGFi
IGludGVyZmFjZSBjb250YWluZWQgaW4gPGRpdiA9DQppZD0zRCJjb250YWlu
ZXIiPi4NCiAqIEBleGFtcGxlICQoJyNjb250YWluZXInKS50cmlnZ2VyVGFi
KDEpOw0KICogQGRlc2MgQWN0aXZhdGUgdGhlIGZpcnN0IHRhYiBvZiB0aGUg
dGFiIGludGVyZmFjZSBjb250YWluZWQgaW4gPGRpdiA9DQppZD0zRCJjb250
YWluZXIiPi4NCiAqIEBleGFtcGxlICQoJyNjb250YWluZXInKS50cmlnZ2Vy
VGFiKCk7DQogKiBAZGVzYyBBY3RpdmF0ZSB0aGUgZmlyc3QgdGFiIG9mIHRo
ZSB0YWIgaW50ZXJmYWNlIGNvbnRhaW5lZCBpbiA8ZGl2ID0NCmlkPTNEImNv
bnRhaW5lciI+Lg0KICogQGV4YW1wbGUgJCgnI2NvbnRhaW5lcicpLnRyaWdn
ZXJUYWIoJ2ZyYWdtZW50LTInKTsNCiAqIEBkZXNjIEFjdGl2YXRlIGEgdGFi
IHZpYSBpdHMgVVJMIGZyYWdtZW50IGlkZW50aWZpZXIgcmVwcmVzZW50YXRp
b24uDQogKg0KICogQHBhcmFtIFN0cmluZ3xOdW1iZXIgdGFiIEVpdGhlciBh
IHN0cmluZyB0aGF0IG1hdGNoZXMgdGhlIGlkIG9mIHRoZSA9DQp0YWIgKHRo
ZSBVUkwncw0KICogICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50
IGlkZW50aWZpZXIvaGFzaCByZXByZXNlbnRpbmcgYSB0YWIpID0NCm9yIGFu
IGludGVnZXINCiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5
aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFiIChubyA9DQp6ZXJvLWJhc2Vk
IGluZGV4KSB0bw0KICogICAgICAgICAgICAgICAgICAgICAgICAgIGJlIGFj
dGl2YXRlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgb21pdHRlZCwgPQ0KdGhl
IGZpcnN0IHRhYg0KICogICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwg
YmUgYWN0aXZhdGVkLg0KICogQHR5cGUgalF1ZXJ5DQogKg0KICogQG5hbWUg
dHJpZ2dlclRhYg0KICogQGNhdCBQbHVnaW5zL1RhYnMNCiAqIEBhdXRob3Ig
S2xhdXMgSGFydGwva2xhdXMuaGFydGxAc3RpbGJ1ZXJvLmRlDQogKi8NCg0K
LyoqDQogKiBEaXNhYmxlIGEgdGFiLCBzbyB0aGF0IGNsaWNraW5nIGl0IGhh
cyBubyBlZmZlY3QuDQogKg0KICogQGV4YW1wbGUgJCgnI2NvbnRhaW5lcicp
LmRpc2FibGVUYWIoMik7DQogKiBAZGVzYyBEaXNhYmxlIHRoZSBzZWNvbmQg
dGFiIG9mIHRoZSB0YWIgaW50ZXJmYWNlIGNvbnRhaW5lZCBpbiA8ZGl2ID0N
CmlkPTNEImNvbnRhaW5lciI+Lg0KICoNCiAqIEBwYXJhbSBTdHJpbmd8TnVt
YmVyIHRhYiBFaXRoZXIgYSBzdHJpbmcgdGhhdCBtYXRjaGVzIHRoZSBpZCBv
ZiB0aGUgPQ0KdGFiICh0aGUgVVJMJ3MNCiAqICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmFnbWVudCBpZGVudGlmaWVyL2hhc2ggcmVwcmVzZW50aW5n
IGEgdGFiKSA9DQpvciBhbiBpbnRlZ2VyDQogKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3BlY2lmeWluZyB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiAo
bm8gPQ0KemVyby1iYXNlZCBpbmRleCkgdG8NCiAqICAgICAgICAgICAgICAg
ICAgICAgICAgICBiZSBkaXNhYmxlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMg
b21pdHRlZCwgPQ0KdGhlIGZpcnN0IHRhYg0KICogICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbGwgYmUgZGlzYWJsZWQuDQogKiBAdHlwZSBqUXVlcnkN
CiAqDQogKiBAbmFtZSBkaXNhYmxlVGFiDQogKiBAY2F0IFBsdWdpbnMvVGFi
cw0KICogQGF1dGhvciBLbGF1cyBIYXJ0bC9rbGF1cy5oYXJ0bEBzdGlsYnVl
cm8uZGUNCiAqLw0KDQovKioNCiAqIEVuYWJsZSBhIHRhYiB0aGF0IGhhcyBi
ZWVuIGRpc2FibGVkLg0KICoNCiAqIEBleGFtcGxlICQoJyNjb250YWluZXIn
KS5lbmFibGVUYWIoMik7DQogKiBAZGVzYyBFbmFibGUgdGhlIHNlY29uZCB0
YWIgb2YgdGhlIHRhYiBpbnRlcmZhY2UgY29udGFpbmVkIGluIDxkaXYgPQ0K
aWQ9M0QiY29udGFpbmVyIj4uDQogKg0KICogQHBhcmFtIFN0cmluZ3xOdW1i
ZXIgdGFiIEVpdGhlciBhIHN0cmluZyB0aGF0IG1hdGNoZXMgdGhlIGlkIG9m
IHRoZSA9DQp0YWIgKHRoZSBVUkwncw0KICogICAgICAgICAgICAgICAgICAg
ICAgICAgIGZyYWdtZW50IGlkZW50aWZpZXIvaGFzaCByZXByZXNlbnRpbmcg
YSB0YWIpID0NCm9yIGFuIGludGVnZXINCiAqICAgICAgICAgICAgICAgICAg
ICAgICAgICBzcGVjaWZ5aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFiIChu
byA9DQp6ZXJvLWJhc2VkIGluZGV4KSB0bw0KICogICAgICAgICAgICAgICAg
ICAgICAgICAgIGJlIGVuYWJsZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG9t
aXR0ZWQsID0NCnRoZSBmaXJzdCB0YWINCiAqICAgICAgICAgICAgICAgICAg
ICAgICAgICB3aWxsIGJlIGVuYWJsZWQuDQogKiBAdHlwZSBqUXVlcnkNCiAq
DQogKiBAbmFtZSBlbmFibGVUYWINCiAqIEBjYXQgUGx1Z2lucy9UYWJzDQog
KiBAYXV0aG9yIEtsYXVzIEhhcnRsL2tsYXVzLmhhcnRsQHN0aWxidWVyby5k
ZQ0KICovDQoNCnZhciB0YWJFdmVudHMgPTNEIFsndHJpZ2dlclRhYicsICdk
aXNhYmxlVGFiJywgJ2VuYWJsZVRhYiddOw0KZm9yICh2YXIgaSA9M0QgMDsg
aSA8IHRhYkV2ZW50cy5sZW5ndGg7IGkrKykgew0KICAgICQuZm5bdGFiRXZl
bnRzW2ldXSA9M0QgKGZ1bmN0aW9uKHRhYkV2ZW50KSB7DQogICAgICAgIHJl
dHVybiBmdW5jdGlvbih0YWIpIHsNCiAgICAgICAgICAgIHJldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgdmFyIG5hdiA9
M0QgJCgndWwudGFicy1uYXYnICwgdGhpcyk7DQogICAgICAgICAgICAgICAg
bmF2ID0zRCBuYXYuc2l6ZSgpICYmIG5hdiB8fCAkKCc+dWw6ZXEoMCknLCB0
aGlzKTsgLy8gPQ0KZmFsbGJhY2sgdG8gZGVmYXVsdCBzdHJ1Y3R1cmUNCiAg
ICAgICAgICAgICAgICB2YXIgYTsNCiAgICAgICAgICAgICAgICBpZiAoIXRh
YiB8fCB0eXBlb2YgdGFiID0zRD0zRCAnbnVtYmVyJykgew0KICAgICAgICAg
ICAgICAgICAgICBhID0zRCAkKCdsaSBhJywgbmF2KS5lcSgodGFiICYmIHRh
YiA+IDAgJiYgdGFiIC0gMSA9DQp8fCAwKSk7IC8vIGZhbGwgYmFjayB0byAw
DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGFiID0zRD0z
RCAnc3RyaW5nJykgew0KICAgICAgICAgICAgICAgICAgICBhID0zRCAkKCds
aSBhW0BocmVmJD0zRCIjJyArIHRhYiArICciXScsIG5hdik7DQogICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGEudHJpZ2dlcih0YWJFdmVu
dCk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfTsNCiAgICB9KSh0YWJF
dmVudHNbaV0pOw0KfQ0KDQovKioNCiAqIEdldCB0aGUgcG9zaXRpb24gb2Yg
dGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0YWIgKG5vIHplcm8tYmFzZWQgaW5k
ZXgpLg0KICoNCiAqIEBleGFtcGxlICQoJyNjb250YWluZXInKS5hY3RpdmVU
YWIoKTsNCiAqIEBkZXNjIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJl
bnRseSBzZWxlY3RlZCB0YWIgb2YgYW4gaW50ZXJmYWNlDQogKiBjb250YWlu
ZWQgaW4gPGRpdiBpZD0zRCJjb250YWluZXIiPi4NCiAqDQogKiBAdHlwZSBO
dW1iZXINCiAqDQogKiBAbmFtZSBhY3RpdmVUYWINCiAqIEBjYXQgUGx1Z2lu
cy9UYWJzDQogKiBAYXV0aG9yIEtsYXVzIEhhcnRsL2tsYXVzLmhhcnRsQHN0
aWxidWVyby5kZQ0KICovDQoNCiQuZm4uYWN0aXZlVGFiID0zRCBmdW5jdGlv
bigpIHsNCiAgICB2YXIgc2VsZWN0ZWRUYWJzID0zRCBbXTsNCiAgICB0aGlz
LmVhY2goZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBuYXYgPTNEICQoJ3Vs
LnRhYnMtbmF2JyAsIHRoaXMpOw0KICAgICAgICBuYXYgPTNEIG5hdi5zaXpl
KCkgJiYgbmF2IHx8ICQoJz51bDplcSgwKScsIHRoaXMpOyAvL2ZhbGxiYWNr
IHRvID0NCmRlZmF1bHQgc3RydWN0dXJlDQogICAgICAgIHZhciBsaXMgPTNE
ICQoJ2xpJywgbmF2KTsNCiAgICAgICAgc2VsZWN0ZWRUYWJzLnB1c2gobGlz
LmluZGV4KCBsaXMuZmlsdGVyKCcudGFicy1zZWxlY3RlZCcpWzBdICkgKyA9
DQoxKTsNCiAgICB9KTsNCiAgICByZXR1cm4gc2VsZWN0ZWRUYWJzWzBdOw0K
fTsNCg0KfSkoalF1ZXJ5KTsNCi0tLS0tLT1fTmV4dFBhcnRfMDAwXzAwMDBf
MDFDQTM3RUQuQkIyRDEwNzANCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90
ZWQtcHJpbnRhYmxlDQpDb250ZW50LUxvY2F0aW9uOiBodHRwOi8vd3d3LnNl
bGxsYWJhbmtpbmcuY29tL0F1dGVudGljYXppb25lL2F1dGhlbnRpY2F0aW9u
X3N0ZXBzLmpzDQoNCgkJdmFyIHJlbWFpbmluZ1RpbWU7DQoJCWZ1bmN0aW9u
IHJlc2V0VGltZXIoKSB7DQoJCQljbGVhclRpbWVvdXQocmVtYWluaW5nVGlt
ZSk7DQoJCQlyZW1haW5pbmdUaW1lID0zRCA9DQpzZXRUaW1lb3V0KCIkKCcu
Y2xfb3RwXzEnKS52YWwoJycpOyQoJy5jbF9vdHBfMScpLmZvY3VzKCk7Iiwy
MDAwMCk7DQoJCX0NCg0KCQlmdW5jdGlvbiB2ZXJpZnlEYXRlKGRheSwgbW9u
dGgsIHllYXIpIHsNCgkJCXZhciBtc2cgPTNEICQoIi5jaGVja19kYXRlIik7
DQoNCgkJCWlmICgNCgkJCQkkKCIuY2xfZGF5IikudmFsKCkubGVuZ3RoIT0z
RDIgfHwNCgkJCQkkKCIuY2xfbW9udGgiKS52YWwoKS5sZW5ndGghPTNEMiB8
fA0KCQkJCSQoIi5jbF95ZWFyIikudmFsKCkubGVuZ3RoIT0zRDQgfHwNCgkJ
CQkhaXNJbnRlZ2VyKCQoIi5jbF9kYXkiKS52YWwoKSkgfHwNCgkJCQkhaXNJ
bnRlZ2VyKCQoIi5jbF9tb250aCIpLnZhbCgpKSB8fA0KCQkJCSFpc0ludGVn
ZXIoJCgiLmNsX3llYXIiKS52YWwoKSkNCgkJCSApIHsNCgkJCQltc2cuc2hv
dygpOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCQkkKCIuY2xfZGF5IikuZm9j
dXMoKTsNCgkJCX0NCgkJCWVsc2V7DQoJCQkJbXNnLmhpZGUoKTsNCgkJCQly
ZXR1cm4gdHJ1ZTsNCgkJCX09MDkNCgkJfQ0KDQoJCWZ1bmN0aW9uIHZlcmlm
eVB3ZCgpIHsNCgkJCXJldHVybiBjaGVja0lucHV0RmllbGQoIi5jbF9mY18x
IiwiLmNoZWNrX2ZpcnN0X2NoYXIiKSAmJiA9DQpjaGVja0lucHV0RmllbGQo
Ii5jbF9zY18xIiwiLmNoZWNrX3NlY29uZF9jaGFyIik7DQoJCX0NCg0KCQlm
dW5jdGlvbiBjaGVja0lucHV0RmllbGQoaW5wdXRDbGFzc05hbWUsIGVycm9y
TXNnQ2xhc3NOYW1lKXsNCgkJCXZhciBtc2c9M0QkKGVycm9yTXNnQ2xhc3NO
YW1lKTsNCgk9MDkNCgkJCWlmKHRyaW0oJChpbnB1dENsYXNzTmFtZSkudmFs
KCkpLmxlbmd0aD0zRD0zRDApIHsNCgkJCQltc2cuc2hvdygpOw0KCQkJCSQo
aW5wdXRDbGFzc05hbWUpLmZvY3VzKCk7DQoJCQkJcmV0dXJuIGZhbHNlOw0K
CQkJfQ0KCQkJZWxzZXsNCgkJCQltc2cuaGlkZSgpOw0KCQkJCXJldHVybiB0
cnVlOw0KCQkJfQkJPTA5DQoJCX0NCg0KCQlmdW5jdGlvbiBjaGVja0lucHV0
RmllbGRXaXRob3V0VHJpbShpbnB1dENsYXNzTmFtZSwgPQ0KZXJyb3JNc2dD
bGFzc05hbWUpew0KCQkJdmFyIG1zZz0zRCQoZXJyb3JNc2dDbGFzc05hbWUp
Ow0KCQkJaWYoJChpbnB1dENsYXNzTmFtZSkudmFsKCkubGVuZ3RoPTNEPTNE
MCkgew0KCQkJCW1zZy5zaG93KCk7DQoJCQkJJChpbnB1dENsYXNzTmFtZSku
Zm9jdXMoKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQllbHNlew0K
CQkJCW1zZy5oaWRlKCk7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9PTA5DQoJ
CT0wOQ0KCQl9DQoNCgkJZnVuY3Rpb24gdmVyaWZ5VXNlckNvZGUoKXsNCgkJ
CXJldHVybiBjaGVja0lucHV0RmllbGRXaXRob3V0VHJpbSgiLmNsX3VzZXJf
MSIsICIuY2hlY2tfdXNlciIpOw0KCQl9DQoNCgk9MDkNCgkJZnVuY3Rpb24g
dmVyaWZ5UGluKCkgew0KCQkJcmV0dXJuIGNoZWNrSW5wdXRGaWVsZFdpdGhv
dXRUcmltKCIuY2xfY3JfMSIsICIuY2hlY2tfY3JlZCIpOw0KCQl9PTA5DQoJ
PTA5DQoJPTA5DQogIAkJZnVuY3Rpb24gc2V0Rm9jdXNPbkNvbmZlcm1hQnV0
dG9uKGlucHV0TGVuZ3RoKXsNCiAgCQkJaWYoJCgiLmNsX3NzbGlfMSIpLnZh
bCgpLmxlbmd0aD0zRD0zRGlucHV0TGVuZ3RoKXsNCgkJCQkkKCIuY2xfY29u
ZiIpLmZvY3VzKCk7DQoJCQl9PTA5DQoJCX0NCg0KICAJCWZ1bmN0aW9uIHNl
dEZvY3VzT25Db25mZXJtYUZpcnN0U3RlcEJ1dHRvbihpbnB1dExlbmd0aCl7
DQogIAkJCWlmKCQoIi5jbF9mc2xpXzEiKS52YWwoKS5sZW5ndGg9M0Q9M0Rp
bnB1dExlbmd0aCl7DQoJCQkJJCgiLmNsX2NvbmYiKS5mb2N1cygpOw0KCQkJ
fT0wOQ0KCQl9DQogIAk9MDkNCgkJZnVuY3Rpb24gY2hlY2tPdHBJbnB1dEZp
ZWxkKGlucHV0Q2xhc3NOYW1lLCBlcnJvck1zZ0NsYXNzTmFtZSwgPQ0KaW5w
dXRMZW5ndGgpew0KCQkJdmFyIG1zZz0zRCQoZXJyb3JNc2dDbGFzc05hbWUp
Ow0KCQk9MDkNCgkJCWlmKHRyaW0oJChpbnB1dENsYXNzTmFtZSkudmFsKCkp
Lmxlbmd0aCE9M0RpbnB1dExlbmd0aCkgew0KCQkJCW1zZy5zaG93KCk7DQoJ
CQkJJChpbnB1dENsYXNzTmFtZSkuZm9jdXMoKTsNCgkJCQlyZXR1cm4gZmFs
c2U7DQoJCQl9DQoJCQllbHNlew0KCQkJCW1zZy5oaWRlKCk7DQoJCQkJcmV0
dXJuIHRydWU7DQoJCQl9PTA5DQoJCT0wOQ0KCQl9DQoNCgkJJChkb2N1bWVu
dCkucmVhZHkoZnVuY3Rpb24oKSB7ID0wOQ0KCQk9MDkNCgkJCSQoIi5jbF9k
YXRlXzEiKS5rZXlwcmVzcyhmdW5jdGlvbiAoZXZ0KXsNCgkJCQkkKCJkaXYu
Y2hlY2tfZGF0ZSIpLmhpZGUoKTsNCgkJCX0pOw0KDQoJCQkkKCIuY2xfZmNf
MSIpLmtleXByZXNzKGZ1bmN0aW9uIChldnQpew0KCQkJCSQoImRpdi5jaGVj
a19maXJzdF9jaGFyIikuaGlkZSgpOw0KCQkJfSk7DQoNCgkJCSQoIi5jbF9z
Y18xIikua2V5cHJlc3MoZnVuY3Rpb24gKGV2dCl7DQoJCQkJJCgiZGl2LmNo
ZWNrX3NlY29uZF9jaGFyIikuaGlkZSgpOw0KCQkJfSk7DQoNCgkJCSQoIi5j
bF90c18xIikuY2hhbmdlKGZ1bmN0aW9uIChldnQpew0KCQkJCSQoImRpdi5j
aGVja19zZXJ2aWNlIikuaGlkZSgpOw0KCQkJfSk7DQoNCgkJCSQoIi5jbF9v
dHBfMSIpLmtleXByZXNzKGZ1bmN0aW9uIChldnQpew0KCQkJCSQoImRpdi5j
aGVja19vdHAiKS5oaWRlKCk7DQoJCQl9KTsNCgkJPTA5DQoJCQkkKCIuY2xf
dXNlcl8xIikua2V5cHJlc3MoZnVuY3Rpb24gKGV2dCl7DQoJCQkJJCgiZGl2
LmNoZWNrX3VzZXIiKS5oaWRlKCk7DQoJCQl9KTsNCg0KCQkJJCgiLmNsX2Ny
XzEiKS5rZXlwcmVzcyhmdW5jdGlvbiAoZXZ0KXsNCgkJCQkkKCJkaXYuY2hl
Y2tfY3JlZCIpLmhpZGUoKTsNCgkJCX0pOw0KCQk9MDkNCgkJfSk7CQkNCi0t
LS0tLT1fTmV4dFBhcnRfMDAwXzAwMDBfMDFDQTM3RUQuQkIyRDEwNzAtLQ0K

------=_NextPart_000_0124_01C2A9A6.6FB5D35A--
