ArticleCopyMoveDelete
10.0.1
Perl-Services.de, c.a.p.e. IT GmbH
http://www.cape-it.de/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Changes for OTRS Framework 5.0.x.
CR: T2015031190000358 (added spanish translation file. Thanks to Eladio Galvez from JoopBox.com), T2015031190000358 (changes for OTRS-Framework 4.0.x).
Allows to copy, move or delete articles.
Lehetővé teszi a bejegyzések másolását, áthelyezését vagy törlését.
6.0.x
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to install the OTRS module ArticleCopyMoveDelete.
<br/>
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
Due to the lack of configurable article actions in basic OTRS this package uses an output filter, which hooks on ArticlePrint. So be aware, that if you disable ArticlePrint you will also disable ArticleCopyMoveDelete.
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to UNINSTALL the ArticleCopyMoveDelete extensions package for OTRS.<br/>
<br/>
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to upgrade the ArticleCopyMoveDelete extensions package for OTRS.<br/>
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
<br/>
<strong>ÜDVÖZÖLJÜK</strong>
<br/>
<br/>
Ön az ArticleCopyMoveDelete OTRS csomag telepítésére készül.
<br/>
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
<br/>
<strong>ÜDVÖZÖLJÜK</strong>
<br/>
<br/>
Az alap OTRS-ben a beállítható bejegyzésműveletek hiánya miatt ez a csomag egy
kimenetszűrőt használ, amely a bejegyzésnyomtatásra kapcsolódik. Ezért legyen
tudatában annak, hogy ha letiltja a bejegyzésnyomtatást, akkor le fogja tiltani
a bejegyzés másolását, áthelyezését és törlését is.
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
<br/>
<strong>ÜDVÖZÖLJÜK</strong>
<br/>
<br/>
Ön az ArticleCopyMoveDelete OTRS kiegészítő csomag ELTÁVOLÍTÁSÁRA készül.<br/>
<br/>
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
<br/>
<strong>ÜDVÖZÖLJÜK</strong>
<br/>
<br/>
Ön az ArticleCopyMoveDelete OTRS kiegészítő csomag frissítésére készül.<br/>
<br/>
<br/>
c.a.p.e. IT ...easy.<br/>
<br/>
IyBDaGFuZ2UgbG9nIG9mIEFydGljbGVDb3B5TW92ZURlbGV0ZQojIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE1IGMuYS5wLmUuIElUIEdtYkgsIGh0dHA6Ly93d3cuY2FwZS1pdC5kZS8KIyBDaGFuZ2Vz
IENvcHlyaWdodCAoQykgMjAxNiBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vcGVybC1zZXJ2aWNl
cy5kZQoqICRJZDogQ0hBTkdFU19BcnRpY2xlQ29weU1vdmVEZWxldGUubWQsdiAxLjMgMjAxNS8w
My8xMyAwODoyNDo1MCBtaWxsaW5nZXIgRXhwICQKCiMgUk9BRE1BUCBUQVNLUwoKIzUuMC4yICgy
MDE2LzEyLzAyKQoqICgyMDE2LzEyLzAyKSAtIEFkZGVkIEh1bmdhcmlhbiB0cmFuc2xhdGlvbiAo
dXJiYWxhenMpCgojNS4wLjEgKDIwMTYvMDYvMDYpCiogKDIwMTYvMDYvMDYpIC0gQ2hhbmdlcyBm
b3IgT1RSUyBmcmFtZXdvcmsgNS4wLnggKHJlbmVlYikKCiM0LjAuMCAoMjAxNS8wMy8xMykKKiAo
MjAxNS8wMy8xMykgLSBDUjogVDIwMTUwMzExOTAwMDAzNTggKGFkZGVkIHNwYW5pc2ggdHJhbnNs
YXRpb24gZmlsZS4gVGhhbmtzIHRvIEVsYWRpbyBHYWx2ZXogZnJvbSBKb29wQm94LmNvbSkgKG1p
bGxpbmdlcikKKiAoMjAxNS8wMy8xMykgLSBDUjogVDIwMTUwMzExOTAwMDAzNTggKGNoYW5nZXMg
Zm9yIE9UUlMtRnJhbWV3b3JrIDQuMC54KSAobWlsbGluZ2VyKQoKIzEuMy4xICgyMDEzLzEyLzE3
KQoqICgyMDEzLzEyLzE3KSAtIEJ1Z2ZpeDogKGZpeGVkIENIQU5HRVMtZmlsZSkgICh0dG8pCgoj
MS4zLjAgKDIwMTMvMTIvMDkpCiogKDIwMTMvMTIvMDkpIC0gQ1I6IFQyMDEzMTAxNDkwMDAwODk3
IChjaGFuZ2VzIGZvciBPVFJTLUZyYW1ld29yayAzLjMueCkgICh0dG8pCgojMS4yLjAgKDIwMTMv
MDQvMDkpCiogKDIwMTMvMDQvMDkpIC0gQ1I6IFQyMDEzMDQwOTkwMDAwMjg0IChjaGFuZ2VzIGZv
ciBPVFJTLUZyYW1ld29yayAzLjIueCkgICh0dG8pCgojMS4xLjEgKDIwMTIvPz8vPz8pCiogKDIw
MTIvMDgvMTUpIC0gQnVnZml4OiBUMjAxMjA4MTQ5MDAwMDUyNyAoQ29weU1vdmVEZWxldGUgYnV0
dG9uIG5vdCBkaXNwbGF5ZWQpIChkZG9lcmZmZWwpCgojMS4xLjAgKDIwMTIvMDYvMjkpCiogKDIw
MTIvMDYvMjkpIC0gQ1I6IFQyMDEyMDYyMTkwMDAwMTMzIChjaGFuZ2VzIGZvciBPVFJTLUZyYW1l
d29yayAzLjEueCkgIChhbGl0dmlub3ZhKQoKIzEuMC4wICgyMDExLzEyLzI4KQoqICgyMDExLzEy
LzI4KSAtIENSOiBleHRyYWN0ZWQgZnVuY3Rpb25hbGl0eSBmcm9tIEtJWDRPVFJTIC0gc2VlIFsx
XSAodHRvKQoK
PWVuY29kaW5nIHV0Zi04Cgo9aGVhZDEgR2VuZXJhbAoKVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGFu
IGFkZGl0aW9uYWwgYXJ0aWNsZSBhY3Rpb24gd2hpY2ggYWxsb3dzIHRvIGNvcHksIG1vdmUgZnJv
bSBvbmUgdGlja2V0IHRvIGFub3RoZXIuIEl0IGFsc28gYWxsb3dzIHRvIGRlbGV0ZSBhcnRpY2xl
cyAtIHNlZSBodHRwczovL290cnN0ZWFtLmlkZWFzY2FsZS5jb20vYS9kdGQvQ29weS1PUi1NZXJn
ZS1TaW5nbGUtQXJ0aWNsZS1Uby1PdGhlci1UaWNrZXQvMzIxNDQ5LTEwMzY5LgoKVGhpcyBmdW5j
dGlvbmFsaXR5IGhhcyBiZWVuIGV4dHJhY3RlZCBmcm9tIE9UUlMgZXh0ZW5zaW9uIHBhY2thZ2Ug
S0lYNE9UUlMuIAoKU2luY2UgdmVyc2lvbiA1LjAuMSBQZXJsLVNlcnZpY2VzLmRlIHB1Ymxpc2hl
cyBvbmx5IHBvcnRzIGZvciBPVFJTIHZlcnNpb25zID49IDUuMC4xLiBObyBuZXcgZmVhdHVyZXMg
d2lsbCBiZSBhZGRlZC4gVGhlIG9yaWdpbmFsIHBhY2thZ2Ugd2FzIG1lcmdlZCBiYWNrIHRvIEtJ
WDRPVFJTIQoKPWhlYWQxIFVzYWdlIFJlbWFya3MKCj1vdmVyIDQgCgo9aXRlbSAqIFRoZSBmdW5j
dGlvbiBpcyByZXN0cmljdGVkIHRvIHRoZSBvd25lciBvZiB0aGUgdGlja2V0LgoKPWl0ZW0gKiBG
b3IgdGhlIGZpcnN0IGFydGljbGUgaW4gdGhlIHRpY2tldCwgb3B0aW9ucyBmb3IgbW92aW5nIGFu
ZCBkZWxldGluZyBhcmUgbm90IGF2YWlsYWJsZS4KCj1pdGVtICogSWYgdGhlcmUgaXMgdGltZSBh
Y2NvdW50ZWQgaW4gYW4gYXJ0aWNsZSB3aGljaCB3aWxsIGJlIGNvcGllZCwgeW91IG1heSBkZWZp
bmUgaWYgYW5kIGhvdyB0aGlzIGFjY291bnRlZCB0aW1lIGlzIGNvcGllZCB0byB0aGUgZGVzdGlu
YXRpb24gdGlja2V0LiAKCj1pdGVtICogRHVlIHRvIHRoZSBsYWNrIG9mIGV4dGVuc2lvbiBtZXRo
b2RzIGZvciBmcm9udGVuZCBtb2R1bGVzIG9mIG90aGVyIGV4dGVuc2lvbnMgKGkuZS4gT1RSUzo6
SVRTTSkgaW4gT1RSUyBhbmQgbWlzc2luZyBjb25maWd1cmFiaWxpdHkgb2YgYXJ0aWNsZSBhY3Rp
b25zLCB0aGUgYXJ0aWNsZSBjb3B5LSwgbW92ZS0sIGRlbGV0ZS0gZnVuY3Rpb24gaXMgaW50ZWdy
YXRlZCBpbnRvIHRoZSBmcm9udGVuZCBieSBPdXRwdXRGaWx0ZXJzLiBEaXNhYmxpbmcgQXJ0aWNs
ZVByaW50IHdpbGwgYWxzbyBkaXNhYmxlIHRoaXMgZnVuY3Rpb24uCgo9YmFjawoKPWhlYWQxIFRv
IERvCgo9b3ZlciA0IAoKPWl0ZW0gKiBvdXRwdXQgZmlsdGVyIGNyZWF0ZXMgdHdvIGFjdGlvbiBs
aW5rcyBhZnRlciByZWxvYWQgb2YgQWdlbnRUaWNrZXRab29tIGFmdGVyIGFydGljbGUgY3JlYXRp
b24KCj1pdGVtICogbWFrZSByZXN0cmljdGlvbiB0byBvd25lciBjb25maWd1cmFibGUKCgo9YmFj
awoKCj1oZWFkMSBDb3B5cmlnaHQKCkNvcHlyaWdodCAoQykgMjAwNi0yMDE1IGMuYS5wLmUuIElU
IEdtYkgsIGh0dHA6Ly93d3cuY2FwZS1pdC5kZQpDaGFuZ2VzIENvcHlyaWdodCAoQykgMjAxNiBQ
ZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vcGVybC1zZXJ2aWNlcy5kZQoKQXJ0aWNsZUNvcHlNb3Zl
RGVsZXRlIHdyaXR0ZW4vZWRpdGVkIGJ5OgoKPW92ZXIgNCAKCj1pdGVtICogQW5uYShkb3QpTGl0
dmlub3ZhKGF0KWNhcGUoZGFzaClpdChkb3QpZGUKCj1pdGVtICogUmVuZShkb3QpQm9laG0oYXQp
Y2FwZShkYXNoKWl0KGRvdClkZQoKPWl0ZW0gKiBSZW7DqWUgQsOkY2tlcgoKPWl0ZW0gKiBUb3Jz
dGVuKGRvdClUaGF1KGF0KWNhcGUoZGFzaClpdChkb3QpZGUKCj1pdGVtICogTWFydGluKGRvdClC
YWx6YXJlayhhdCljYXBlKGRhc2gpaXQoZG90KWRlCgo9aXRlbSAqIE1hcmlvKGRvdClJbGxpbmdl
cihhdCljYXBlKGRhc2gpaXQoZG90KWRlCgo9aXRlbSAqIEJhbMOhenMgw5pyCgo9YmFjawoKVGhp
cyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxz
LCBzZWUgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAo
QUdQTCkuIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5n
bnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgoKPWN1dAo=
PWVuY29kaW5nIHV0Zi04Cgo9aGVhZDEgw4FsdGFsw6Fub3MKCkV6IGEgY3NvbWFnIHRvdsOhYmJp
IGJlamVneXrDqXNtxbF2ZWxldGVrZXQgYml6dG9zw610LCBhbWVseSBsZWhldMWRdsOpIHRlc3pp
IGEgCm3DoXNvbMOhc3QsIHZhbGFtaW50IGVneWlrIGplZ3lixZFsIGEgbcOhc2lrYmEgdMO2cnTD
qW7FkSDDoXRoZWx5ZXrDqXN0LiBMZWhldMWRdsOpIHRlc3ppIAphIGJlamVneXrDqXNlayB0w7Zy
bMOpc8OpdCBpcyAtIGzDoXNkOiAKaHR0cHM6Ly9vdHJzdGVhbS5pZGVhc2NhbGUuY29tL2EvZHRk
L0NvcHktT1ItTWVyZ2UtU2luZ2xlLUFydGljbGUtVG8tT3RoZXItVGlja2V0LzMyMTQ0OS0xMDM2
OQoKRXogYSBmdW5rY2lvbmFsaXTDoXMgYSBLSVg0T1RSUyBraWVnw6lzesOtdMWRIGNzb21hZ2LD
s2wgbGV0dCBraXN6ZWR2ZS4KCkF6IDUuMC4xLWVzIHZlcnppw7Mgw7N0YSBhIFBlcmwtU2Vydmlj
ZXMuZGUgY3NhayBheiA1LjAuMSB2YWd5IMO6amFiYiB2ZXJ6acOza2hveiAKdGVzemkga8O2enrD
qS4gTmVtIGxlc3puZWsgw7pqIGZ1bmtjacOzayBob3p6w6FhZHZhLiBBeiBlcmVkZXRpIGNzb21h
ZyBiZSBsZXR0IApvbHZhc3p0dmEgYSBLSVg0T1RSUyBjc29tYWdiYSEKCj1oZWFkMSBIYXN6bsOh
bGF0aSBtZWdqZWd5esOpc2VrCgo9b3ZlciA0IAoKPWl0ZW0gKiBBIGZ1bmtjacOzIGEgamVneSB0
dWxhamRvbm9zw6FyYSB2YW4ga29ybMOhdG96dmEuCgo9aXRlbSAqIEEgamVneWJlbiBheiBlbHPF
kSBiZWplZ3l6w6lzbsOpbCBheiDDoXRoZWx5ZXrDqXMgw6lzIGEgdMO2cmzDqXMgZnVua2Npw7Mg
bmVtIArDqXJoZXTFkSBlbC4KCj1pdGVtICogSGEgZWxzesOhbW9sdCBpZMWRIHZhbiBlZ3kgYmVq
ZWd5esOpc2JlbiwgYW1lbHkgbcOhc29sw6FzcmEga2Vyw7xsLCBha2tvciAKbWVnaGF0w6Fyb3po
YXRqYSwgaG9neSBleiBheiBlbHN6w6Ftb2x0IGlkxZEgw6F0IGxlZ3llbi1lIG3DoXNvbHZhIGEg
Y8OpbGplZ3liZSDDqXMgCmhvZ3lhbiBsZWd5ZW4gbcOhc29sdmEuCgo9aXRlbSAqIEF6IE9UUlMt
YmVuIG3DoXMga2l0ZXJqZXN6dMOpc2VrIChhemF6IE9UUlM6OklUU00pIGVsxZF0w6l0cHJvZ3Jh
bSAKbW9kdWxqYWkga2l0ZXJqZXN6dMOpcy1tw7Nkc3plcmVpbmVrIGhpw6FueWEsIHZhbGFtaW50
IGEgYmVqZWd5esOpc23FsXZlbGV0ZWsgCmhpw6FueXrDsyBiZcOhbGzDrXRoYXTDs3PDoWdhIG1p
YXR0IGEgYmVqZWd5esOpcyBtw6Fzb2zDoXNpLCDDoXRoZWx5ZXrDqXNpIMOpcyB0w7ZybMOpc2kg
CmZ1bmtjacOzaSBraW1lbmV0c3rFsXLFkWtrZWwgdmFubmFrIGludGVncsOhbHZhIGF6IGVsxZF0
w6l0cHJvZ3JhbWJhLgoKPWJhY2sKCj1oZWFkMSBUZWVuZMWRawoKPW92ZXIgNCAKCj1pdGVtICog
QSBiZWplZ3l6w6lzbMOpdHJlaG96w6FzIHV0w6FuIGEga2ltZW5ldHN6xbFyxZEga8OpdCBtxbF2
ZWxldGhpdmF0a296w6FzdCBob3ogCmzDqXRyZSBheiDDvGd5aW50w6l6xZFpIGplZ3luYWd5w610
w6FzIMO6anJhdMO2bHTDqXNlIHV0w6FuLgoKPWl0ZW0gKiBCZcOhbGzDrXRoYXTDs3bDoSBrZWxs
ZW5lIHRlbm5pIGEgdHVsYWpkb25vc3JhIHTDtnJ0w6luxZEga29ybMOhdG96w6FzdC4KCj1iYWNr
CgoKPWhlYWQxIFN6ZXJ6xZFpIGpvZwoKQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgYy5hLnAuZS4g
SVQgR21iSCwgaHR0cDovL3d3dy5jYXBlLWl0LmRlClbDoWx0b3p0YXTDoXNvazogQ29weXJpZ2h0
IChDKSAyMDE2IFBlcmwtU2VydmljZXMuZGUsIGh0dHA6Ly9wZXJsLXNlcnZpY2VzLmRlCgpBeiBB
cnRpY2xlQ29weU1vdmVEZWxldGUgbW9kdWx0IGEga8O2dmV0a2V6xZFrIMOtcnTDoWsgdmFneSBz
emVya2VzenRldHTDqWs6Cgo9b3ZlciA0IAoKPWl0ZW0gKiBBbm5hKGRvdClMaXR2aW5vdmEoYXQp
Y2FwZShkYXNoKWl0KGRvdClkZQoKPWl0ZW0gKiBSZW5lKGRvdClCb2VobShhdCljYXBlKGRhc2gp
aXQoZG90KWRlCgo9aXRlbSAqIFJlbsOpZSBCw6Rja2VyCgo9aXRlbSAqIFRvcnN0ZW4oZG90KVRo
YXUoYXQpY2FwZShkYXNoKWl0KGRvdClkZQoKPWl0ZW0gKiBNYXJ0aW4oZG90KUJhbHphcmVrKGF0
KWNhcGUoZGFzaClpdChkb3QpZGUKCj1pdGVtICogTWFyaW8oZG90KUlsbGluZ2VyKGF0KWNhcGUo
ZGFzaClpdChkb3QpZGUKCj1pdGVtICogw5pyIEJhbMOhenMsIGh0dHA6Ly93d3cub3Rycy1tZWdv
bGRhc29rLmh1Cgo9YmFjawoKRXogYSBzem9mdHZlciBNSU5ERU5Gw4lMRSBHQVJBTkNJQSBOw4lM
S8OcTCBrZXLDvGwga8O2enrDqXTDqXRlbHJlLiBBIHLDqXN6bGV0ZXMgCmxpY2VuY2luZm9ybcOh
Y2nDs2vDqXJ0IChBR1BMKSBuw6l6emUgbWVnIGEgbWVsbMOpa2VsdCBDT1BZSU5HIGbDoWpsdC4g
SGEgbmVtIGthcHRhIAptZWcgZXp0IGEgZsOhamx0LCBha2tvciBuw6l6emUgbWVnIGEgaHR0cDov
L3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0IGPDrW1lbi4KCj1oZWFkMSBNYWd5YXIgZm9y
ZMOtdMOhcwoKQSBtYWd5YXIgZm9yZMOtdMOhc3QgYXogT1RSUy1tZWdvbGTDoXNvayBjc2FwYXRh
IGvDqXN6w610ZXR0ZS4KQ29weXJpZ2h0IChDKSAyMDE2IMOaciBCYWzDoXpzLCBMPGh0dHA6Ly9v
dHJzLW1lZ29sZGFzb2suaHU+Cgo9Y3V0Cg==
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90b2JvX2NvbmZpZyB2ZXJz
aW9uPSIyLjAiIGluaXQ9IkZyYW1ld29yayI+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6
T3V0cHV0OjpGaWx0ZXJFbGVtZW50UG9zdCMjI0FydGljbGVDb3B5TW92ZURlbGV0ZSIgUmVxdWly
ZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5B
Y3RpdmF0ZXMgdGhlICdBcnRpY2xlQ29weU1vdmVEZWxldGUnIGxpbmsuPC9EZXNjcmlwdGlvbj4K
ICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QmFzZTwvTmF2aWdhdGlvbj4KICAgICAgICA8
VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1
bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGaWx0ZXJFbGVtZW50UG9zdDo6QXJ0aWNsZUNvcHlN
b3ZlRGVsZXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUZW1wbGF0ZXMiPgog
ICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9IkFnZW50VGlja2V0Wm9vbSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+
CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1Zh
bHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMj
I0FnZW50QXJ0aWNsZUNvcHlNb3ZlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxE
ZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24g
Zm9yIEFnZW50QXJ0aWNsZUNvcHlNb3ZlRGVsZXRlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5h
dmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+
CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVn
aXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJ
dGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAg
ICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPnVzZXJzPC9JdGVt
PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwv
SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xh
dGFibGU9IjEiPkNvcHksIG1vdmUgb3IgZGVsZXRlIHNlbGVjdGVkIGFydGljbGUuPC9JdGVtPgog
ICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+Q29w
eSwgTW92ZSBvciBEZWxldGUgQXJ0aWNsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8TmF2
QmFyTmFtZT4KICAgICAgICAgICAgICAgICAgICA8L05hdkJhck5hbWU+CiAgICAgICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hh
c2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgog
ICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50QXJ0aWNsZUNvcHlNb3ZlIyMj
MDAxLUFnZW50QXJ0aWNsZUNvcHlNb3ZlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAg
IDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9u
IGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRp
b24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlv
bj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0
ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQWdlbnQuVGlja2V0QWN0aW9uLmpzPC9JdGVtPgog
ICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAg
ICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudEFydGljbGVDb3B5TW92ZSMjIzAw
MS1BZ2VudEFydGljbGVDb3B5TW92ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8
RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24u
PC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVs
ZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAg
ICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJG
cm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAg
ICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAg
ICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgICA8U2V0dGlu
ZyBOYW1lPSJUaWNrZXQ6OkN1c3RvbU1vZHVsZSMjIzAxMC1UaWNrZXRFeHRlbnNpb25zQXJ0aWNs
ZUNvcHlNb3ZlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBU
cmFuc2xhdGFibGU9IjEiPk92ZXJsb2FkcyAocmVkZWZpbmVzKSBleGlzdGluZyBmdW5jdGlvbnMg
aW4gS2VybmVsOjpTeXN0ZW06OlRpY2tldC4gVXNlZCB0byBlYXNpbHkgYWRkIGN1c3RvbWl6YXRp
b25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGlja2V0PC9OYXZp
Z2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJp
bmciIFZhbHVlUmVnZXg9IiI+S2VybmVsOjpTeXN0ZW06OlRpY2tldDo6VGlja2V0RXh0ZW5zaW9u
c0FydGljbGVDb3B5TW92ZTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgoK
PC9vdG9ib19jb25maWc+Cg==
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9kZV9BcnRpY2xlQ29weU1vdmVEZWxldGUucG0gLSB0aGUg
R2VybWFuIHRyYW5zbGF0aW9uIGZvciBBcnRpY2xlQ29weU1vdmVEZWxldGUKIyBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAxNiBjLmEucC5lLiBJVCBHbWJILCBodHRwOi8vd3d3LmNhcGUtaXQuZGUKIwoj
IHdyaXR0ZW4vZWRpdGVkIGJ5OgojICogTWFydGluKGRvdClCYWx6YXJlayhhdCljYXBlKGRhc2gp
aXQoZG90KWRlCiMgKiBGcmFuayhkb3QpT2JlcmVuZGVyKGF0KWNhcGUoZGFzaClpdChkb3QpZGUK
IyAqIFRvcnN0ZW4oZG90KVRoYXUoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojICogU3RlZmFuKGRv
dClNZWhsaWcoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojICogUmVuZShkb3QpQm9laG0oYXQpY2Fw
ZShkYXNoKWl0KGRvdClkZQojICogQW5uYShkb3QpTGl0dmlub3ZhKGF0KWNhcGUoZGFzaClpdChk
b3QpZGUKIyAqIE1hcmlvKGRvdClJbGxpbmdlcihhdCljYXBlKGRhc2gpaXQoZG90KWRlCiMKIyAt
LQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3Ig
ZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZv
cm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBo
dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVs
OjpMYW5ndWFnZTo6ZGVfQXJ0aWNsZUNvcHlNb3ZlRGVsZXRlOwoKdXNlIHN0cmljdDsKdXNlIHdh
cm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAg
bXkgJExhbmcgPSAkU2VsZi0+e1RyYW5zbGF0aW9ufTsKCiAgICAjIEtlcm5lbC9Db25maWcvRmls
ZXMvQWdlbnRBcnRpY2xlQ29weU1vdmUueG1sCiAgICAkTGFuZy0+eydBY3RpdmF0ZXMgdGhlIFwn
QXJ0aWNsZUNvcHlNb3ZlRGVsZXRlXCcgbGluay4nfSA9ICcnOwogICAgJExhbmctPnsnRnJvbnRl
bmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgQWdlbnRBcnRpY2xlQ29weU1vdmVEZWxldGUuJ30g
PSAnJzsKICAgICRMYW5nLT57J0NvcHksIG1vdmUgb3IgZGVsZXRlIHNlbGVjdGVkIGFydGljbGUu
J30gPSAnS29waWVyZW4sIFZlcnNjaGllYmVuIG9kZXIgTMO2c2NoZW4gZGVzIGF1c2dld8OkaGx0
ZW4gQXJ0aWtlbHMuJzsKICAgICRMYW5nLT57J0NvcHksIE1vdmUgb3IgRGVsZXRlIEFydGljbGUn
fSA9ICdLb3BpZXJlbiwgVmVyc2NoaWViZW4gb2RlciBMw7ZzY2hlbiBlaW5lcyBBcnRpa2Vscyc7
CiAgICAkTGFuZy0+eydPdmVybG9hZHMgKHJlZGVmaW5lcykgZXhpc3RpbmcgZnVuY3Rpb25zIGlu
IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQuIFVzZWQgdG8gZWFzaWx5IGFkZCBjdXN0b21pemF0aW9u
cy4nfSA9ICcnOwoKICAgICMgS2VybmVsL01vZHVsZXMvQWdlbnRBcnRpY2xlQ29weU1vdmUucG0K
ICAgICRMYW5nLT57J1NvcnJ5LCB5b3UgYXJlIG5vdCBhIG1lbWJlciBvZiBhbGxvd2VkIGdyb3Vw
cyEnfSA9CiAgICAgICAgJ0JpdHRlIGVudHNjaHVsZGlnZW4gU2llLCBhYmVyIFNpZSBuaWNodCBN
aXRnbGllZCBkZXIgYmVyZWNodGlndGVuIEdydXBwZW4hJzsKICAgICRMYW5nLT57J1BsZWFzZSBj
b250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLid9ID0gJ0JpdHRlIGtvbnRha3RpZXJlbiBTaWUgSWhy
ZW4gQWRtaW5pc3RyYXRvci4nOwogICAgJExhbmctPnsnQWdlbnRBcnRpY2xlQ29weU1vdmVEZWxl
dGU6IE5lZWQgJXMhJ30gPSAnJzsKICAgICRMYW5nLT57J1NvcnJ5LCB5b3UgbmVlZCB0byBiZSBv
d25lciBvZiB0aGUgc2VsZWN0ZWQgdGlja2V0IHRvIGRvIHRoaXMgYWN0aW9uISd9ID0KICAgICAg
ICAnU2llIG3DvHNzZW4gZGVyIEJlc2l0emVyIGRlcyBhdXNnZXfDpGhsdGVuIFRpY2tldHMgc2Vp
biwgdW0gZGllc2UgQWt0aW9uIGF1c3p1ZsO8aHJlbiEnOwogICAgJExhbmctPnsnUGxlYXNlIGNo
YW5nZSB0aGUgb3duZXIgZmlyc3QuJ30gPSAnQml0dGUgw6RuZGVybiBTaWUgenVuw6RjaHN0IGRl
biBCZXNpdHplci4nOwogICAgJExhbmctPnsnQ2FuXCd0IGRlbGV0ZSBhcnRpY2xlICVzIGZyb20g
dGlja2V0ICVzISd9ID0gJyc7CiAgICAkTGFuZy0+eydQZXJoYXBzLCB5b3UgZm9yZ290IHRvIGVu
dGVyIGEgdGlja2V0IG51bWJlciEnfSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZSBUaWNrZXQtTnVt
bWVyIGVpbiEnOwogICAgJExhbmctPnsnU29ycnksIG5vIHRpY2tldCBmb3VuZCBmb3IgdGlja2V0
IG51bWJlcjogJXMhJ30gPQogICAgICAgICdFcyBrb25udGUga2VpbiBUaWNrZXQgZ2VmdW5kZW4g
d2VyZGVuIGbDvHIgVGlja2V0LU51bW1lcjogJXMhJzsKICAgICRMYW5nLT57J1NvcnJ5LCB5b3Ug
bmVlZCB0byBiZSBvd25lciBvZiB0aGUgbmV3IHRpY2tldCB0byBkbyB0aGlzIGFjdGlvbiEnfSA9
CiAgICAgICAgJ1NpZSBtw7xzc2VuIGRlciBCZXNpdHplciBkZXMgbmV1ZW4gVGlja2V0cyBzZWlu
LCB1bSBkaWVzZSBBa3Rpb24gYXVzenVmw7xocmVuISc7CiAgICAkTGFuZy0+eydDYW5cJ3QgY29w
eSBhcnRpY2xlICVzIHRvIHRpY2tldCAlcyEnfSA9ICcnOwogICAgJExhbmctPnsnQ2FuXCd0IHVw
ZGF0ZSB0aW1lcyBmb3IgYXJ0aWNsZSAlcyEnfSA9ICcnOwogICAgJExhbmctPnsnQ2FuXCd0IG1v
dmUgYXJ0aWNsZSAlcyB0byB0aWNrZXQgJXMhJ30gPSAnJzsKICAgICRMYW5nLT57J0NhblwndCB1
cGRhdGUgdGlja2V0IElEIGluIHRpbWUgYWNjb3VudGluZyBkYXRhIGZvciBhcnRpY2xlICVzISd9
ID0gJyc7CgogICAgIyBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50
QXJ0aWNsZUNvcHlNb3ZlLnR0CiAgICAkTGFuZy0+eydDb3B5L01vdmUvRGVsZXRlJ30gPSAnS29w
aWVyZW4vVmVyc2NoaWViZW4vTMO2c2NoZW4nOwogICAgJExhbmctPnsnQ2FuY2VsICYgY2xvc2Ug
d2luZG93J30gPSAnJzsKICAgICRMYW5nLT57J0FydGljbGUgc3ViamVjdCd9ID0gJyc7CiAgICAk
TGFuZy0+eydBY3Rpb24gdG8gYmUgcGVyZm9ybWVkJ30gPSAnQXVzenVmw7xocmVuZGUgQWt0aW9u
JzsKICAgICRMYW5nLT57J0NvcHknfSA9ICdLb3BpZXJlbic7CiAgICAkTGFuZy0+eydNb3ZlJ30g
PSAnJzsKICAgICRMYW5nLT57J0RlbGV0ZSd9ID0gJyc7CiAgICAkTGFuZy0+eydPcHRpb25zIGZv
ciBEZWxldGUnfSA9ICdMw7ZzY2hvcHRpb25lbic7CiAgICAkTGFuZy0+eydSZWFsbHkgZGVsZXRl
IHRoaXMgYXJ0aWNsZT8nfSA9ICdEaWVzZW4gQXJ0aWtlbCB3aXJrbGljaCBsw7ZzY2hlbj8nOwog
ICAgJExhbmctPnsnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJExhbmctPnsn
T3B0aW9ucyBmb3IgQ29weSd9ID0gJ0tvcGllcm9wdGlvbmVuJzsKICAgICRMYW5nLT57JyVzIG9m
IGRlc3RpbmF0aW9uIHRpY2tldCd9ID0gJyVzIGRlcyBaaWVsdGlja2V0cyc7CiAgICAkTGFuZy0+
eydJbnZhbGlkIHRpY2tldCBpZGVudGlmaWVyISd9ID0gJyc7CiAgICAkTGFuZy0+eydDb3BpZWQg
dGltZSB1bml0cyBvZiB0aGUgc291cmNlIGFydGljbGUnfSA9ICdadSBrb3BpZXJlbmRlIFplaXRl
aW5oZWl0ZW4gZGVzIFF1ZWxsYXJ0aWNlbHMnOwogICAgJExhbmctPnsnSW52YWxpZCB0aW1lISd9
ID0gJyc7CiAgICAkTGFuZy0+eydZb3UgY2Fubm90IGFzc2lnbiBtb3JlIHRpbWUgdW5pdHMgYXMg
aW4gdGhlIHNvdXJjZSBhcnRpY2xlISd9ID0KICAgICAgICAnU2llIGvDtm5uZW4gbmljaHQgbWVo
ciBaZWl0ZWluaGVpdGVuIHp1d2Vpc2VuLCBhbHMgaW0gT3JpZ2luYWwtQXJ0aWtlbCEnOwogICAg
JExhbmctPnsnSGFuZGxpbmcgb2YgYWNjb3VudGVkIHRpbWUgZnJvbSBzb3VyY2UgYXJ0aWNsZT8n
fSA9ICdVbWdhbmcgbWl0IFplaXRidWNodW5nIGFtIE9yaWdpbmFsLUFydGlrZWw/JzsKICAgICRM
YW5nLT57J0xlYXZlIHVuY2hhbmdlZCd9ID0gJ1VudmVyw6RuZGVydCBsYXNzZW4nOwogICAgJExh
bmctPnsnQ2hhbmdlIHRvIHJlc2lkdWUnfSA9ICdBdWYgUmVzdCB2ZXJyaW5nZXJuJzsKICAgICRM
YW5nLT57J1N1Ym1pdCd9ID0gJyc7CiAgICAkTGFuZy0+eydPcHRpb25zIGZvciBNb3ZlJ30gPSAn
VmVyc2NoaWViZW9wdGlvbmVuJzsKfQoKMTsK
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9lc19BcnRpY2xlQ29weU1vdmVEZWxldGUucG0gLSB0aGUg
U3BhbmlzaCB0cmFuc2xhdGlvbiBmb3IgQXJ0aWNsZUNvcHlNb3ZlRGVsZXRlCiMgVGhhbmtzIHRv
IEVsYWRpbyBHYWx2ZXogZnJvbSBKb29wQm94LmNvbSBmb3IgcHJvdmlkaW5nIHRoZSB0cmFuc2xh
dGlvbgojIENvcHlyaWdodCAoQykgMjAwNi0yMDE2IGMuYS5wLmUuIElUIEdtYkgsIGh0dHA6Ly93
d3cuY2FwZS1pdC5kZQojCiMgd3JpdHRlbi9lZGl0ZWQgYnk6CiMgKiBNYXJpbyhkb3QpSWxsaW5n
ZXIoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdp
dGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3Nl
ZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBk
aWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz
L2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX0FydGljbGVDb3B5
TW92ZURlbGV0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0
YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15ICRMYW5nID0gJFNlbGYtPntUcmFuc2xh
dGlvbn07CgogICAgIyBLZXJuZWwvQ29uZmlnL0ZpbGVzL0FnZW50QXJ0aWNsZUNvcHlNb3ZlLnht
bAogICAgJExhbmctPnsnQWN0aXZhdGVzIHRoZSBcJ0FydGljbGVDb3B5TW92ZURlbGV0ZVwnIGxp
bmsuJ30gPSAnJzsKICAgICRMYW5nLT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9y
IEFnZW50QXJ0aWNsZUNvcHlNb3ZlRGVsZXRlLid9ID0gJyc7CiAgICAkTGFuZy0+eydDb3B5LCBt
b3ZlIG9yIGRlbGV0ZSBzZWxlY3RlZCBhcnRpY2xlLid9ID0gJ0NvcGlhciwgbW92ZXIgbyBlbGlt
aW5hciBhcnTDrWN1bG9zIHNlbGVjY2lvbmFkb3MuJzsKICAgICRMYW5nLT57J0NvcHksIE1vdmUg
b3IgRGVsZXRlIEFydGljbGUnfSA9ICdDb3BpYXIsIE1vdmVyIG8gRWxpbWluYXIgQXJ0w61jdWxv
JzsKICAgICRMYW5nLT57J092ZXJsb2FkcyAocmVkZWZpbmVzKSBleGlzdGluZyBmdW5jdGlvbnMg
aW4gS2VybmVsOjpTeXN0ZW06OlRpY2tldC4gVXNlZCB0byBlYXNpbHkgYWRkIGN1c3RvbWl6YXRp
b25zLid9ID0gJyc7CgogICAgIyBLZXJuZWwvTW9kdWxlcy9BZ2VudEFydGljbGVDb3B5TW92ZS5w
bQogICAgJExhbmctPnsnU29ycnksIHlvdSBhcmUgbm90IGEgbWVtYmVyIG9mIGFsbG93ZWQgZ3Jv
dXBzISd9ID0gJ0xvIHNlbnRpbW9zLCBubyBlcmVzIG1pZW1icm8gZGUgdW4gZ3J1cG8gcGVybWl0
aWRvISc7CiAgICAkTGFuZy0+eydQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nfSA9
ICdQb3IgZmF2b3IsIGNvbnRhY3QgY29uIHN1IGFkbWluaXN0cmFkb3IuJzsKICAgICRMYW5nLT57
J0FnZW50QXJ0aWNsZUNvcHlNb3ZlRGVsZXRlOiBOZWVkICVzISd9ID0gJyc7CiAgICAkTGFuZy0+
eydTb3JyeSwgeW91IG5lZWQgdG8gYmUgb3duZXIgb2YgdGhlIHNlbGVjdGVkIHRpY2tldCB0byBk
byB0aGlzIGFjdGlvbiEnfSA9CiAgICAgICAgJ0xvIHNlbnRpbW9zLCBkZWJlcyBkZSBzZXIgZWwg
cHJvcGlldGFyaW8gZGVsIHRpY2tldCBzZWxlY2Npb25hZG8gcGFyYSByZWFsaXphciBlc3RhIGFj
Y2nDs24hJzsKICAgICRMYW5nLT57J1BsZWFzZSBjaGFuZ2UgdGhlIG93bmVyIGZpcnN0Lid9ID0g
J1BvciBmYXZvciwgbW9kaWZpcXVlIGVsIHByb3BpZXRhcmlvIHByaW1lcm8uJzsKICAgICRMYW5n
LT57J0NhblwndCBkZWxldGUgYXJ0aWNsZSAlcyBmcm9tIHRpY2tldCAlcyEnfSA9ICcnOwogICAg
JExhbmctPnsnUGVyaGFwcywgeW91IGZvcmdvdCB0byBlbnRlciBhIHRpY2tldCBudW1iZXIhJ30g
PQogICAgICAgICdQb3NpYmxlbWVudGUgaGFzIG9sdmlkYWRvIGludHJvZHVjaXIgdW4gbsO6bWVy
byBkZSBUaWNrZXQhJzsKICAgICRMYW5nLT57J1NvcnJ5LCBubyB0aWNrZXQgZm91bmQgZm9yIHRp
Y2tldCBudW1iZXI6ICVzISd9ID0KICAgICAgICAnTG8gc2VudGltb3MsIG5vIHNlIGhhIGVuY29u
dHJhZG8gdW4gdGlja2V0IGNvbiBlc2UgbsO6bWVybzogJXMhJzsKICAgICRMYW5nLT57J1NvcnJ5
LCB5b3UgbmVlZCB0byBiZSBvd25lciBvZiB0aGUgbmV3IHRpY2tldCB0byBkbyB0aGlzIGFjdGlv
biEnfSA9CiAgICAgICAgJ0xvIHNlbnRpbW9zLCBkZWJlcyBkZSBzZXIgZWwgcHJvcGlldGFyaW8g
ZGVsIG51ZXZvIHRpY2tldCBwYXJhIHJlYWxpemFyIGVzdGEgYWNjacOzbiEnOwogICAgJExhbmct
PnsnQ2FuXCd0IGNvcHkgYXJ0aWNsZSAlcyB0byB0aWNrZXQgJXMhJ30gPSAnJzsKICAgICRMYW5n
LT57J0NhblwndCB1cGRhdGUgdGltZXMgZm9yIGFydGljbGUgJXMhJ30gPSAnJzsKICAgICRMYW5n
LT57J0NhblwndCBtb3ZlIGFydGljbGUgJXMgdG8gdGlja2V0ICVzISd9ID0gJyc7CiAgICAkTGFu
Zy0+eydDYW5cJ3QgdXBkYXRlIHRpY2tldCBJRCBpbiB0aW1lIGFjY291bnRpbmcgZGF0YSBmb3Ig
YXJ0aWNsZSAlcyEnfSA9ICcnOwoKICAgICMgS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9T
dGFuZGFyZC9BZ2VudEFydGljbGVDb3B5TW92ZS50dAogICAgJExhbmctPnsnQ29weS9Nb3ZlL0Rl
bGV0ZSd9ID0gJ0NvcGlhci9Nb3Zlci9FbGltaW5hcic7CiAgICAkTGFuZy0+eydDYW5jZWwgJiBj
bG9zZSB3aW5kb3cnfSA9ICcnOwogICAgJExhbmctPnsnQXJ0aWNsZSBzdWJqZWN0J30gPSAnJzsK
ICAgICRMYW5nLT57J0FjdGlvbiB0byBiZSBwZXJmb3JtZWQnfSA9ICdBY2Npw7NuIGEgYXBsaWNh
cic7CiAgICAkTGFuZy0+eydDb3B5J30gPSAnQ29waWFyJzsKICAgICRMYW5nLT57J01vdmUnfSA9
ICcnOwogICAgJExhbmctPnsnRGVsZXRlJ30gPSAnJzsKICAgICRMYW5nLT57J09wdGlvbnMgZm9y
IERlbGV0ZSd9ID0gJ09wY2lvbmVzIGRlIGJvcnJhcic7CiAgICAkTGFuZy0+eydSZWFsbHkgZGVs
ZXRlIHRoaXMgYXJ0aWNsZT8nfSA9ICdSZWFsbWVudGUgcXVpZXJlIGVsaW1pbmFyIGVzdGUgYXJ0
w61jdWxvPyc7CiAgICAkTGFuZy0+eydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLid9ID0gJyc7CiAg
ICAkTGFuZy0+eydPcHRpb25zIGZvciBDb3B5J30gPSAnT3BjaW9uZXMgZGUgY29waWFyJzsKICAg
ICRMYW5nLT57JyVzIG9mIGRlc3RpbmF0aW9uIHRpY2tldCd9ID0gJyVzIFRpY2tldCBEZXN0aW5v
JzsKICAgICRMYW5nLT57J0ludmFsaWQgdGlja2V0IGlkZW50aWZpZXIhJ30gPSAnJzsKICAgICRM
YW5nLT57J0NvcGllZCB0aW1lIHVuaXRzIG9mIHRoZSBzb3VyY2UgYXJ0aWNsZSd9ID0gJ0NvcGlh
ciBsYXMgdW5pZGFkZXMgZGUgdGllbXBvIGRlbCBhcnTDrWN1bG8gb3JpZ2VuJzsKICAgICRMYW5n
LT57J0ludmFsaWQgdGltZSEnfSA9ICcnOwogICAgJExhbmctPnsnWW91IGNhbm5vdCBhc3NpZ24g
bW9yZSB0aW1lIHVuaXRzIGFzIGluIHRoZSBzb3VyY2UgYXJ0aWNsZSEnfSA9CiAgICAgICAgJ05v
IHB1ZWRlcyBhcGxpY2FyIG3DoXMgdW5pZGFkZXMgZGUgdGllbXBvIHF1ZSBlbiBsYXMgZGVsIGFy
dGljdWxvIG9yaWdlbiEnOwogICAgJExhbmctPnsnSGFuZGxpbmcgb2YgYWNjb3VudGVkIHRpbWUg
ZnJvbSBzb3VyY2UgYXJ0aWNsZT8nfSA9CiAgICAgICAgJ1VzbyBkZWwgbWlzbW8gdGllbXBvIGNv
bnRhYmlsaXphZG8gZW4gZWwgYXJ0w61jdWxvIG9yaWdlbj8nOwogICAgJExhbmctPnsnTGVhdmUg
dW5jaGFuZ2VkJ30gPSAnTWFudGVuZXIgc2luIG1vZGlmaWNhcic7CiAgICAkTGFuZy0+eydDaGFu
Z2UgdG8gcmVzaWR1ZSd9ID0gJ0NhbWJpYXIgYSByZXNpZHVvJzsKICAgICRMYW5nLT57J1N1Ym1p
dCd9ID0gJyc7CiAgICAkTGFuZy0+eydPcHRpb25zIGZvciBNb3ZlJ30gPSAnT3BjaW9uZXMgZGUg
bW92ZXInOwp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9odV9BcnRpY2xlQ29weU1vdmVEZWxldGUucG0gLSB0aGUg
SHVuZ2FyaWFuIHRyYW5zbGF0aW9uIGZvciBBcnRpY2xlQ29weU1vdmVEZWxldGUKIyBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxNiBjLmEucC5lLiBJVCBHbWJILCBodHRwOi8vd3d3LmNhcGUtaXQuZGUK
IyBDb3B5cmlnaHQgKEMpIDIwMTYgQmFsw6F6cyDDmnIsIGh0dHA6Ly93d3cub3Rycy1tZWdvbGRh
c29rLmh1CiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJS
QU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxp
Y2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBm
aWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNr
YWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omh1X0FydGljbGVDb3B5TW92ZURlbGV0ZTsKCnVzZSBzdHJp
Y3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNo
aWZ0OwoKICAgIG15ICRMYW5nID0gJFNlbGYtPntUcmFuc2xhdGlvbn07CgogICAgIyBLZXJuZWwv
Q29uZmlnL0ZpbGVzL0FnZW50QXJ0aWNsZUNvcHlNb3ZlLnhtbAogICAgJExhbmctPnsnQWN0aXZh
dGVzIHRoZSBcJ0FydGljbGVDb3B5TW92ZURlbGV0ZVwnIGxpbmsuJ30gPQogICAgICAgICdCZWth
cGNzb2xqYSBhIGJlamVneXrDqXMgbcOhc29sw6FzYSwgw6F0aGVseWV6w6lzZSwgdMO2cmzDqXNl
IGhpdmF0a296w6FzdC4nOwogICAgJExhbmctPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlv
biBmb3IgQWdlbnRBcnRpY2xlQ29weU1vdmVEZWxldGUuJ30gPQogICAgICAgICdFbMWRdMOpdHBy
b2dyYW0tbW9kdWwgcmVnaXN6dHLDoWNpw7MgYXogw7xneWludMOpesWRaSBiZWplZ3l6w6lzIG3D
oXNvbMOhc2hveiwgw6F0aGVseWV6w6lzaGV6LCB0w7ZybMOpc2hlei4nOwogICAgJExhbmctPnsn
Q29weSwgbW92ZSBvciBkZWxldGUgc2VsZWN0ZWQgYXJ0aWNsZS4nfSA9ICdBIGtpamVsw7ZsdCBi
ZWplZ3l6w6lzIG3DoXNvbMOhc2EsIMOhdGhlbHllesOpc2UgdmFneSB0w7ZybMOpc2UuJzsKICAg
ICRMYW5nLT57J0NvcHksIE1vdmUgb3IgRGVsZXRlIEFydGljbGUnfSA9ICdCZWplZ3l6w6lzIG3D
oXNvbMOhc2EsIMOhdGhlbHllesOpc2UgdmFneSB0w7ZybMOpc2UnOwogICAgJExhbmctPnsnT3Zl
cmxvYWRzIChyZWRlZmluZXMpIGV4aXN0aW5nIGZ1bmN0aW9ucyBpbiBLZXJuZWw6OlN5c3RlbTo6
VGlja2V0LiBVc2VkIHRvIGVhc2lseSBhZGQgY3VzdG9taXphdGlvbnMuJ30gPQogICAgICAgICdU
w7psdGVyaGVsaSAow7pqcmEgbWVnaGF0w6Fyb3p6YSkgYSBtZWdsw6l2xZEgZsO8Z2d2w6lueWVr
ZXQgYSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0IGhlbHllbi4gQXJyYSBoYXN6bsOhbGrDoWssIGhv
Z3kgZWd5c3plcsWxZW4gaG96esOhYWRoYXTDs2sgbGVneWVuZWsgYSBzemVtw6lseXJlIHN6YWLD
oXNvay4nOwoKICAgICMgS2VybmVsL01vZHVsZXMvQWdlbnRBcnRpY2xlQ29weU1vdmUucG0KICAg
ICRMYW5nLT57J1NvcnJ5LCB5b3UgYXJlIG5vdCBhIG1lbWJlciBvZiBhbGxvd2VkIGdyb3VwcyEn
fSA9CiAgICAgICAgJ1Nham7DoWxqdWssIGRlIMOWbiBuZW0gdGFnamEgYXogZW5nZWTDqWx5ZXpl
dHQgY3NvcG9ydG9rbmFrISc7CiAgICAkTGFuZy0+eydQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5p
c3RyYXRvci4nfSA9ICdWZWd5ZSBmZWwgYSBrYXBjc29sYXRvdCBhIHJlbmRzemVyZ2F6ZMOhdmFs
Lic7CiAgICAkTGFuZy0+eydBZ2VudEFydGljbGVDb3B5TW92ZURlbGV0ZTogTmVlZCAlcyEnfSA9
CiAgICAgICAgJ8OcZ3lpbnTDqXrFkWkgYmVqZWd5esOpcyBtw6Fzb2zDoXMsIMOhdGhlbHllesOp
cywgdMO2cmzDqXM6ICVzIHN6w7xrc8OpZ2VzISc7CiAgICAkTGFuZy0+eydTb3JyeSwgeW91IG5l
ZWQgdG8gYmUgb3duZXIgb2YgdGhlIHNlbGVjdGVkIHRpY2tldCB0byBkbyB0aGlzIGFjdGlvbiEn
fSA9CiAgICAgICAgJ1Nham7DoWxqdWssIGRlIGEga2lqZWzDtmx0IGplZ3kgdHVsYWpkb25vc8Oh
bmFrIGtlbGwgbGVubmllIGEgbcWxdmVsZXQgdsOpZ3JlaGFqdMOhc8OhaG96ISc7CiAgICAkTGFu
Zy0+eydQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4nfSA9ICdFbMWRc3rDtnIgdsOhbHRv
enRhc3NhIG1lZyBhIHR1bGFqZG9ub3N0Lic7CiAgICAkTGFuZy0+eydDYW5cJ3QgZGVsZXRlIGFy
dGljbGUgJXMgZnJvbSB0aWNrZXQgJXMhJ30gPSAnTmVtIGxlaGV0IHTDtnLDtmxuaSBhKHopICVz
IGJlamVneXrDqXN0IGViYsWRbCBhIGplZ3lixZFsOiAlcyEnOwogICAgJExhbmctPnsnUGVyaGFw
cywgeW91IGZvcmdvdCB0byBlbnRlciBhIHRpY2tldCBudW1iZXIhJ30gPSAnVmFsw7NzesOtbsWx
bGVnIGVsZmVsZWp0ZXR0IGplZ3lzesOhbW90IGJlw61ybmkhJzsKICAgICRMYW5nLT57J1NvcnJ5
LCBubyB0aWNrZXQgZm91bmQgZm9yIHRpY2tldCBudW1iZXI6ICVzISd9ID0KICAgICAgICAnU2Fq
bsOhbGp1aywgZGUgbmVtIHRhbMOhbGhhdMOzIGplZ3kgZWhoZXogYSBqZWd5c3rDoW1ob3o6ICVz
ISc7CiAgICAkTGFuZy0+eydTb3JyeSwgeW91IG5lZWQgdG8gYmUgb3duZXIgb2YgdGhlIG5ldyB0
aWNrZXQgdG8gZG8gdGhpcyBhY3Rpb24hJ30gPQogICAgICAgICdTYWpuw6FsanVrLCBkZSBheiDD
umogamVneSB0dWxhamRvbm9zw6FuYWsga2VsbCBsZW5uaWUgYSBtxbF2ZWxldCB2w6lncmVoYWp0
w6Fzw6Fob3ohJzsKICAgICRMYW5nLT57J0NhblwndCBjb3B5IGFydGljbGUgJXMgdG8gdGlja2V0
ICVzISd9ID0gJ05lbSBsZWhldCDDoXRtw6Fzb2xuaSBhKHopICVzIGJlamVneXrDqXN0IGViYmUg
YSBqZWd5YmU6ICVzISc7CiAgICAkTGFuZy0+eydDYW5cJ3QgdXBkYXRlIHRpbWVzIGZvciBhcnRp
Y2xlICVzISd9ID0gJ05lbSBsZWhldCBmcmlzc8OtdGVuaSBheiBpZMWRa2V0IGVubsOpbCBhIGJl
amVneXrDqXNuw6lsOiAlcyEnOwogICAgJExhbmctPnsnQ2FuXCd0IG1vdmUgYXJ0aWNsZSAlcyB0
byB0aWNrZXQgJXMhJ30gPSAnTmVtIGxlaGV0IMOhdGhlbHllem5pIGEoeikgJXMgYmVqZWd5esOp
c3QgZWJiZSBhIGplZ3liZTogJXMhJzsKICAgICRMYW5nLT57J0NhblwndCB1cGRhdGUgdGlja2V0
IElEIGluIHRpbWUgYWNjb3VudGluZyBkYXRhIGZvciBhcnRpY2xlICVzISd9ID0KICAgICAgICAn
TmVtIGxlaGV0IGZyaXNzw610ZW5pIGEgamVneWF6b25vc8OtdMOzdCBheiBpZMWRZWxzesOhbW9s
w6FzaSBhZGF0b2tiYW4gZW5uw6lsIGEgYmVqZWd5esOpc27DqWw6ICVzISc7CgogICAgIyBLZXJu
ZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5kYXJkL0FnZW50QXJ0aWNsZUNvcHlNb3ZlLnR0
CiAgICAkTGFuZy0+eydDb3B5L01vdmUvRGVsZXRlJ30gPSAnTcOhc29sw6FzLCDDoXRoZWx5ZXrD
qXMsIHTDtnJsw6lzJzsKICAgICRMYW5nLT57J0NhbmNlbCAmIGNsb3NlIHdpbmRvdyd9ID0gJ01l
Z3N6YWvDrXTDoXMgw6lzIGF6IGFibGFrIGJlesOhcsOhc2EnOwogICAgJExhbmctPnsnQXJ0aWNs
ZSBzdWJqZWN0J30gPSAnQmVqZWd5esOpcyB0w6FyZ3lhJzsKICAgICRMYW5nLT57J0FjdGlvbiB0
byBiZSBwZXJmb3JtZWQnfSA9ICdWw6lncmVoYWp0YW5kw7MgbcWxdmVsZXQnOwogICAgJExhbmct
PnsnQ29weSd9ID0gJ03DoXNvbMOhcyc7CiAgICAkTGFuZy0+eydNb3ZlJ30gPSAnw4F0aGVseWV6
w6lzJzsKICAgICRMYW5nLT57J0RlbGV0ZSd9ID0gJ1TDtnJsw6lzJzsKICAgICRMYW5nLT57J09w
dGlvbnMgZm9yIERlbGV0ZSd9ID0gJ1TDtnJsw6lzaSBiZcOhbGzDrXTDoXNvayc7CiAgICAkTGFu
Zy0+eydSZWFsbHkgZGVsZXRlIHRoaXMgYXJ0aWNsZT8nfSA9ICdWYWzDs2JhbiB0w7ZybGkgZXp0
IGEgYmVqZWd5esOpc3Q/JzsKICAgICRMYW5nLT57J1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJ30g
PSAnRXogYSBtZXrFkSBrw7Z0ZWxlesWRLic7CiAgICAkTGFuZy0+eydPcHRpb25zIGZvciBDb3B5
J30gPSAnTcOhc29sw6FzaSBiZcOhbGzDrXTDoXNvayc7CiAgICAkTGFuZy0+eyclcyBvZiBkZXN0
aW5hdGlvbiB0aWNrZXQnfSA9ICdBIGPDqWxqZWd5ICVzIMOpcnTDqWtlJzsKICAgICRMYW5nLT57
J0ludmFsaWQgdGlja2V0IGlkZW50aWZpZXIhJ30gPSAnw4lydsOpbnl0ZWxlbiBqZWd5YXpvbm9z
w610w7MhJzsKICAgICRMYW5nLT57J0NvcGllZCB0aW1lIHVuaXRzIG9mIHRoZSBzb3VyY2UgYXJ0
aWNsZSd9ID0gJ0EgZm9ycsOhc2JlamVneXrDqXMgw6F0bcOhc29sdCBpZMWRZWd5c8OpZ2VpJzsK
ICAgICRMYW5nLT57J0ludmFsaWQgdGltZSEnfSA9ICfDiXJ2w6lueXRlbGVuIGlkxZEhJzsKICAg
ICRMYW5nLT57J1lvdSBjYW5ub3QgYXNzaWduIG1vcmUgdGltZSB1bml0cyBhcyBpbiB0aGUgc291
cmNlIGFydGljbGUhJ30gPQogICAgICAgICdOZW0gcmVuZGVsaGV0IGhvenrDoSB0w7ZiYiBpZMWR
ZWd5c8OpZ2V0IGFubsOhbCwgbWludCBhbWkgYSBmb3Jyw6FzYmVqZWd5esOpc2JlbiB2b2x0ISc7
CiAgICAkTGFuZy0+eydIYW5kbGluZyBvZiBhY2NvdW50ZWQgdGltZSBmcm9tIHNvdXJjZSBhcnRp
Y2xlPyd9ID0KICAgICAgICAnSG9neWFuIGtlemVsaSBheiBlbHN6w6Ftb2x0IGlkxZF0IGEgZm9y
csOhc2JlamVneXrDqXNixZFsPyc7CiAgICAkTGFuZy0+eydMZWF2ZSB1bmNoYW5nZWQnfSA9ICdW
w6FsdG96YXRsYW51bCBoYWd5w6FzJzsKICAgICRMYW5nLT57J0NoYW5nZSB0byByZXNpZHVlJ30g
PSAnVsOhbHRvenRhdMOhcyBhIG1hcmFkw6lrcmEnOwogICAgJExhbmctPnsnU3VibWl0J30gPSAn
RWxrw7xsZMOpcyc7CiAgICAkTGFuZy0+eydPcHRpb25zIGZvciBNb3ZlJ30gPSAnw4F0aGVseWV6
w6lzaSBiZcOhbGzDrXTDoXNvayc7Cn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0FnZW50QXJ0aWNsZUNvcHlNb3ZlLnBtIC0gdG8gY29weSBv
ciBtb3ZlIGFydGljbGVzCiMgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgYy5hLnAuZS4gSVQgR21i
SCwgaHR0cDovL3d3dy5jYXBlLWl0LmRlCiMgQ2hhbmdlcyBDb3B5cmlnaHQgKEMpIDIwMTYgLSAy
MDE4IFBlcmwtU2VydmljZXMuZGUsIGh0dHA6Ly9wZXJsLXNlcnZpY2VzLmRlCiMKIyB3cml0dGVu
L2VkaXRlZCBieToKIyAqIFN0ZWZhbihkb3QpTWVobGlnKGF0KWNhcGUoZGFzaClpdChkb3QpZGUK
IyAqIFJlbmUoZG90KUJvZWhtKGF0KWNhcGUoZGFzaClpdChkb3QpZGUKIyAqIE1hcnRpbihkb3Qp
QmFsemFyZWsoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojICogRG9yb3RoZWEoZG90KURvZXJmZmVs
KGF0KWNhcGUoZGFzaClpdChkb3QpZGUKIyAqIGluZm8oYXQpcGVybChkYXNoKXNlcnZpY2VzKGRv
dClkZQojCiMgLS0KIyAkSWQ6IEFnZW50QXJ0aWNsZUNvcHlNb3ZlLnBtLHYgMS40IDIwMTUvMDMv
MTMgMDg6MjQ6NTAgbWlsbGluZ2VyIEV4cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdp
dGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3Nl
ZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBk
aWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz
L2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRBcnRpY2xlQ29w
eU1vdmU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBx
dyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFs
bCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9IHF3KAogICAgS2VybmVsOjpDb25maWcKICAg
IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQKICAgIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQK
ICAgIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QKKTsKCnN1YiBuZXcgewogICAgbXkgKCAk
VHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QK
ICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAg
cmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87
CgogICAgbXkgJExheW91dE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1
dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkUGFyYW1PYmplY3QgICA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUaWNrZXRPYmpl
Y3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkg
JEFydGljbGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0
OjpBcnRpY2xlJyk7CiAgICBteSAkR3JvdXBPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5I
ZWFkZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15
ICRBY2Nlc3MgPSAwOwogICAgbXkgJEdyb3VwcyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRl
bmQ6Ok1vZHVsZScpLT57QWdlbnRBcnRpY2xlQ29weU1vdmV9LT57R3JvdXB9CiAgICAgICAgfHwg
Jyc7CgogICAgaWYgKCAkR3JvdXBzICYmIHJlZigkR3JvdXBzKSBlcSAnQVJSQVknICkgewoKICAg
ICAgICBteSAlVXNlckdyb3VwcyA9ICRHcm91cE9iamVjdC0+UGVybWlzc2lvblVzZXJHZXQoCiAg
ICAgICAgICAgIFVzZXJJRCA9PiAkTGF5b3V0T2JqZWN0LT57VXNlcklEfSwKICAgICAgICAgICAg
VHlwZSAgID0+ICdydycsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJUdyb3VwTmFtZUlEcyA9IHJl
dmVyc2UgJVVzZXJHcm91cHM7CgogICAgICAgIGZvciBteSAkR3JvdXAgKCBAeyRHcm91cHN9ICkg
ewogICAgICAgICAgICBuZXh0IGlmICEkR3JvdXBOYW1lSURzeyRHcm91cH07CgogICAgICAgICAg
ICAkQWNjZXNzID0gMTsKICAgICAgICAgICAgbGFzdDsKICAgICAgICB9CiAgICB9CiAgICBlbHNl
IHsKICAgICAgICAkQWNjZXNzID0gMTsKICAgIH0KCiAgICBpZiAoICEkQWNjZXNzICkgewogICAg
ICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+V2FybmluZygKICAgICAgICAgICAgTWVzc2Fn
ZSA9PiBUcmFuc2xhdGFibGUoJ1NvcnJ5LCB5b3UgYXJlIG5vdCBhIG1lbWJlciBvZiBhbGxvd2Vk
IGdyb3VwcyEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBj
b250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAu
PSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwogICAgICAgIHJldHVy
biAkT3V0cHV0OwogICAgfQoKICAgICMgZ2V0IHBhcmFtcwogICAgbXkgJUdldFBhcmFtOwogICAg
Zm9yIChxdyhBcnRpY2xlSUQgVGlja2V0SUQgQXJ0aWNsZUFjdGlvbiBOZXdUaWNrZXROdW1iZXIg
VGltZVVuaXRzIFRpbWVVbml0c09yaWdpbmFsKSkgewogICAgICAgICRHZXRQYXJhbXskX30gPSAk
UGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkXyApIHx8ICcnOwogICAgfQoKICAgICMg
Y2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KEFydGljbGVJRCBUaWNrZXRJRCkpIHsKICAg
ICAgICBpZiAoICEkR2V0UGFyYW17JF99ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9i
amVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmpl
Y3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0FnZW50QXJ0aWNsZUNvcHlNb3ZlRGVs
ZXRlOiBOZWVkICVzIScsICRfICksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0
YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7
CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgICRBY2Nlc3MgPSAk
VGlja2V0T2JqZWN0LT5Pd25lckNoZWNrKAogICAgICAgIFRpY2tldElEID0+ICRHZXRQYXJhbXtU
aWNrZXRJRH0sCiAgICAgICAgT3duZXJJRCAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAg
ICAjIGVycm9yIHNjcmVlbiwgZG9uJ3Qgc2hvdyB0aWNrZXQKICAgIGlmICggISRBY2Nlc3MgKSB7
CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5XYXJuaW5nKAogICAgICAgICAgICBN
ZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnU29ycnksIHlvdSBuZWVkIHRvIGJlIG93bmVyIG9mIHRo
ZSBzZWxlY3RlZCB0aWNrZXQgdG8gZG8gdGhpcyBhY3Rpb24hJyksCiAgICAgICAgICAgIENvbW1l
bnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4nKSwKICAg
ICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCBUeXBlID0+
ICdTbWFsbCcgKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICBteSAoJEZpcnN0
QXJ0aWNsZSkgPSAkQXJ0aWNsZU9iamVjdC0+QXJ0aWNsZUxpc3QoCiAgICAgICAgVGlja2V0SUQg
ID0+ICRHZXRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgT25seUZpcnN0ID0+IDEsCiAgICApOwoK
ICAgICMgY2hlY2sgY29weSBvciBtb3ZlIGZpcnN0IGFydGljbGUKICAgIGlmICggJEdldFBhcmFt
e0FydGljbGVJRH0gIT0gJEZpcnN0QXJ0aWNsZS0+e0FydGljbGVJRH0gKSB7CiAgICAgICAgJEdl
dFBhcmFte0Z1cnRoZXJBY3Rpb25PcHRpb25zfSA9IDE7CiAgICB9CgogICAgbXkgJEJhY2tlbmRP
YmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckFydGljbGUoCiAgICAgICAgVGlja2V0
SUQgID0+ICRHZXRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgQXJ0aWNsZUlEID0+ICRHZXRQYXJh
bXtBcnRpY2xlSUR9LAogICAgKTsKCiAgICAjIGdldCBhcnRpY2xlIGNvbnRlbnQKICAgIG15ICVB
cnRpY2xlID0gJEJhY2tlbmRPYmplY3QtPkFydGljbGVHZXQoCiAgICAgICAgQXJ0aWNsZUlEID0+
ICRHZXRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgIFRpY2tldElEICA9PiAkR2V0UGFyYW17VGlj
a2V0SUR9LAogICAgKTsKCiAgICAjIGdldCBhY2NvdW50aW5nIHRpbWUKICAgICRQYXJhbXtBY2Nv
dW50ZWRUaW1lfSA9ICRBcnRpY2xlT2JqZWN0LT5BcnRpY2xlQWNjb3VudGVkVGltZUdldCgKICAg
ICAgICBBcnRpY2xlSUQgPT4gJEdldFBhcmFte0FydGljbGVJRH0sCiAgICApOwoKICAgIGlmICgg
JENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScp
ICkgewogICAgICAgICRQYXJhbXtOZWVkQWNjb3VudGVkVGltZX0gPSAnVmFsaWRhdGVfUmVxdWly
ZWQnOwogICAgfQoKICAgIGlmICggJFBhcmFte0FjY291bnRlZFRpbWV9ICkgewogICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUaW1lVW5pdHNKcycsCiAg
ICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAg
ICAgVGltZVVuaXRzT3JpZ2luYWwgPT4gJEdldFBhcmFte1RpbWVVbml0c09yaWdpbmFsfSB8fCAn
RGlmZmVyZW5jZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2Jq
ZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVGltZVVuaXRzJywKICAgICAgICAgICAg
RGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e1N1YmFj
dGlvbn0gZXEgJ1VwZGF0ZScgKSB7CiAgICAgICAgbXkgJE5ld1RpY2tldElEID0gJEdldFBhcmFt
e1RpY2tldElEfTsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFj
dGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAg
ICAgIyBkZWxldGUgYXJ0aWNsZQogICAgICAgIGlmICggJEdldFBhcmFte0FydGljbGVBY3Rpb259
IGVxICdEZWxldGUnICkgewogICAgICAgICAgICBteSAkRGVsZXRlUmVzdWx0ID0gJFRpY2tldE9i
amVjdC0+QXJ0aWNsZUZ1bGxEZWxldGUoCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEdl
dFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJEdldFBhcmFt
e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0s
CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISREZWxldGVSZXN1bHQgKSB7CiAgICAg
ICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAg
ICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFu
c2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICdDYW5cJ3QgZGVsZXRlIGFydGljbGUgJXMg
ZnJvbSB0aWNrZXQgJXMhJywKICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFte0FydGlj
bGVJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtUaWNrZXRJRH0sCiAgICAg
ICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0
YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAg
ICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBoaXN0b3J5IHRvIG9yaWdpbmFs
IHRpY2tldAogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAg
ICAgICAgTmFtZSA9PiAiRGVsZXRlZCBhcnRpY2xlICRHZXRQYXJhbXtBcnRpY2xlSUR9IGZyb20g
dGlja2V0ICRBcnRpY2xle1RpY2tldE51bWJlcn0iLAogICAgICAgICAgICAgICAgSGlzdG9yeVR5
cGUgID0+ICdNaXNjJywKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkR2V0UGFyYW17
VGlja2V0SUR9LAogICAgICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRTZWxmLT57VXNlcklE
fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcHJlcGFyYXRpb25zIGZvciBt
b3ZlIGFuZCBjb3B5CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIG5lZWRlZCBz
dHVmZgogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17TmV3VGlja2V0TnVtYmVyfSApIHsKICAg
ICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAg
ICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdQZXJoYXBzLCB5b3UgZm9yZ290IHRvIGVu
dGVyIGEgdGlja2V0IG51bWJlciEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAg
ICAkT3V0cHV0IC49ICRTZWxmLT5Gb3JtKAogICAgICAgICAgICAgICAgICAgICVBcnRpY2xlLAog
ICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICBOZXdUaWNr
ZXROdW1iZXJJbnZhbGlkID0+ICdTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICApOwogICAg
ICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMg
Z2V0IG5ldyB0aWNrZXQgaWQKICAgICAgICAgICAgJE5ld1RpY2tldElEID0gJFRpY2tldE9iamVj
dC0+VGlja2V0Q2hlY2tOdW1iZXIoCiAgICAgICAgICAgICAgICBUbiA9PiAkR2V0UGFyYW17TmV3
VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJE5ld1RpY2tl
dElEICkgewogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnko
CiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmpl
Y3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICdTb3JyeSwgbm8gdGlja2V0
IGZvdW5kIGZvciB0aWNrZXQgbnVtYmVyOiAlcyEnLAogICAgICAgICAgICAgICAgICAgICAgICAk
R2V0UGFyYW17TmV3VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAg
ICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPkZvcm0oCiAgICAg
ICAgICAgICAgICAgICAgJUFydGljbGUsCiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAog
ICAgICAgICAgICAgICAgICAgIE5ld1RpY2tldE51bWJlckludmFsaWQgPT4gJ1NlcnZlckVycm9y
JywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBvd25lciBvZiBuZXcgdGlja2V0CiAgICAg
ICAgICAgIG15ICROZXdBY2Nlc3NPayA9ICRUaWNrZXRPYmplY3QtPk93bmVyQ2hlY2soCiAgICAg
ICAgICAgICAgICBUaWNrZXRJRCA9PiAkTmV3VGlja2V0SUQsCiAgICAgICAgICAgICAgICBPd25l
cklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgg
ISROZXdBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVj
dC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdTb3Jy
eSwgeW91IG5lZWQgdG8gYmUgb3duZXIgb2YgdGhlIG5ldyB0aWNrZXQgdG8gZG8gdGhpcyBhY3Rp
b24hJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkU2Vs
Zi0+Rm9ybSgKICAgICAgICAgICAgICAgICAgICAlQXJ0aWNsZSwKICAgICAgICAgICAgICAgICAg
ICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAu
PSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwogICAgICAgICAgICAg
ICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY29w
eSBhcnRpY2xlCiAgICAgICAgaWYgKCAkR2V0UGFyYW17QXJ0aWNsZUFjdGlvbn0gZXEgJ0NvcHkn
ICkgewogICAgICAgICAgICBteSAkQ29weVJlc3VsdCA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVD
b3B5KAogICAgICAgICAgICAgICAgTmV3VGlja2V0SUQgPT4gJE5ld1RpY2tldElELAogICAgICAg
ICAgICAgICAgVGlja2V0SUQgICAgPT4gJEdldFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAg
ICAgIEFydGljbGVJRCAgID0+ICRHZXRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICAgICAg
VXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAg
ICBpZiAoICRDb3B5UmVzdWx0IGVxICdDb3B5RmFpbGVkJyApIHsKICAgICAgICAgICAgICAgIHJl
dHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNz
YWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAg
ICAgICAgICAgICAgICAgICAgJ0NhblwndCBjb3B5IGFydGljbGUgJXMgdG8gdGlja2V0ICVzIScs
CiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAg
ICAgICAgICAgICAgICAkR2V0UGFyYW17TmV3VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgICAg
ICAgICApLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVh
c2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQ29weVJlc3VsdCBlcSAnVXBkYXRlRmFpbGVk
JyApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigK
ICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9i
amVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ0NhblwndCB1cGRhdGUg
dGltZXMgZm9yIGFydGljbGUgJXMhJywKICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFt
e0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBD
b21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3Iu
JyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBh
Y2NvdW50ZWQgdGltZSB0byBuZXcgYXJ0aWNsZQogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtU
aW1lVW5pdHN9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0QWNjb3Vu
dFRpbWUoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICROZXdUaWNrZXRJRCwKICAg
ICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJENvcHlSZXN1bHQsCiAgICAgICAgICAgICAg
ICAgICAgVGltZVVuaXQgID0+ICRHZXRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICAgICAg
ICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAg
ICAgICAgICB9CgogICAgICAgICAgICAjIGRlbGV0ZSBhY2NvdW50ZWQgdGltZSBmcm9tIG9sZCBh
cnRpY2xlCiAgICAgICAgICAgIGlmICggJEdldFBhcmFte1RpbWVVbml0c09yaWdpbmFsfSBuZSAn
S2VlcCcgKSB7CiAgICAgICAgICAgICAgICBteSAkQXJ0aWNsZU9iamVjdCA9ICRLZXJuZWw6Ok9N
LT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkFydGljbGUnKTsKICAgICAgICAgICAgICAg
ICRBcnRpY2xlT2JqZWN0LT5BcnRpY2xlQWNjb3VudGVkVGltZURlbGV0ZSgKICAgICAgICAgICAg
ICAgICAgICBBcnRpY2xlSUQgPT4gJEdldFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgICAg
ICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNhdmUgcmVzaWR1YWwgaWYgY2hvc2Vu
IHRvIG9sZCBhcnRpY2xlCiAgICAgICAgICAgIGlmICggJEdldFBhcmFte1RpbWVVbml0c09yaWdp
bmFsfSBlcSAnRGlmZmVyZW5jZScgKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5U
aWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJEdldFBh
cmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEdldFBhcmFt
e0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICAgICAgVGltZVVuaXQgID0+ICggJFBhcmFte0Fj
Y291bnRlZFRpbWV9IC0gJEdldFBhcmFte1RpbWVVbml0c30gKSwKICAgICAgICAgICAgICAgICAg
ICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgaGlzdG9yeSB0byBvcmlnaW5hbCB0aWNrZXQKICAg
ICAgICAgICAgJFRpY2tldE9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgICAgIE5hbWUg
PT4gIkNvcGllZCBhcnRpY2xlICRHZXRQYXJhbXtBcnRpY2xlSUR9IGZyb20gIgogICAgICAgICAg
ICAgICAgICAgIC4gInRpY2tldCAkQXJ0aWNsZXtUaWNrZXROdW1iZXJ9IHRvIHRpY2tldCAkR2V0
UGFyYW17TmV3VGlja2V0TnVtYmVyfSAiCiAgICAgICAgICAgICAgICAgICAgLiAiYXMgYXJ0aWNs
ZSAkQ29weVJlc3VsdCIsCiAgICAgICAgICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAog
ICAgICAgICAgICAgICAgVGlja2V0SUQgICAgID0+ICRHZXRQYXJhbXtUaWNrZXRJRH0sCiAgICAg
ICAgICAgICAgICBBcnRpY2xlSUQgICAgPT4gJEdldFBhcmFte0FydGljbGVJRH0sCiAgICAgICAg
ICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwog
ICAgICAgIH0KCiAgICAgICAgIyBtb3ZlIGFydGljbGUKICAgICAgICBlbHNpZiAoICRHZXRQYXJh
bXtBcnRpY2xlQWN0aW9ufSBlcSAnTW92ZScgKSB7CiAgICAgICAgICAgIG15ICRNb3ZlUmVzdWx0
ID0gJFRpY2tldE9iamVjdC0+QXJ0aWNsZU1vdmUoCiAgICAgICAgICAgICAgICBPbGRUaWNrZXRJ
RCA9PiAkR2V0UGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgPT4g
JE5ld1RpY2tldElELAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEICAgPT4gJEdldFBhcmFte0Fy
dGljbGVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0s
CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICRNb3ZlUmVzdWx0IGVxICdNb3ZlRmFp
bGVkJyApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVl
bigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFn
ZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ0NhblwndCBtb3Zl
IGFydGljbGUgJXMgdG8gdGlja2V0ICVzIScsCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQ
YXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17TmV3VGlj
a2V0TnVtYmVyfSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIENv
bW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4n
KSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkTW92
ZVJlc3VsdCBlcSAnQWNjb3VudEZhaWxlZCcgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExh
eW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAk
TGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAg
ICAgICAgICAgICdDYW5cJ3QgdXBkYXRlIHRpY2tldCBJRCBpbiB0aW1lIGFjY291bnRpbmcgZGF0
YSBmb3IgYXJ0aWNsZSAlcyEnLAogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17QXJ0
aWNsZUlEfSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIENvbW1l
bnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwK
ICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIGhpc3Rv
cnkgdG8gbmV3IHRpY2tldAogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAog
ICAgICAgICAgICAgICAgTmFtZSA9PiAiTW92ZWQgYXJ0aWNsZSAkR2V0UGFyYW17QXJ0aWNsZUlE
fSBmcm9tIHRpY2tldCIKICAgICAgICAgICAgICAgICAgICAuICIgJEFydGljbGV7VGlja2V0TnVt
YmVyfSB0byB0aWNrZXQgJEdldFBhcmFte05ld1RpY2tldE51bWJlcn0gIiwKICAgICAgICAgICAg
ICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAg
PT4gJE5ld1RpY2tldElELAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEICAgID0+ICRHZXRQYXJh
bXtBcnRpY2xlSUR9LAogICAgICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRTZWxmLT57VXNl
cklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgYWRkIGhpc3RvcnkgdG8gb2xkIHRp
Y2tldAogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICAg
ICAgTmFtZSA9PiAiTW92ZWQgYXJ0aWNsZSAkR2V0UGFyYW17QXJ0aWNsZUlEfSBmcm9tIHRpY2tl
dCIKICAgICAgICAgICAgICAgICAgICAuICIgJEFydGljbGV7VGlja2V0TnVtYmVyfSB0byB0aWNr
ZXQgJEdldFBhcmFte05ld1RpY2tldE51bWJlcn0gIiwKICAgICAgICAgICAgICAgIEhpc3RvcnlU
eXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJEdldFBhcmFt
e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIEFydGljbGVJRCAgICA9PiAkR2V0UGFyYW17QXJ0
aWNsZUlEfSwKICAgICAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0s
CiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHJlZGlyZWN0CiAgICAgICAgcmV0
dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgIFVSTCA9PiAiQWN0aW9u
PUFnZW50VGlja2V0Wm9vbSZUaWNrZXRJRD0kTmV3VGlja2V0SUQiCiAgICAgICAgKTsKICAgIH0K
CiAgICAjIHNob3cgZm9ybQogICAgJEdldFBhcmFte0NvcHlUeXBlQ2hlY2tlZH0gPSAnY2hlY2tl
ZD0iY2hlY2tlZCInOwogICAgJE91dHB1dCAuPSAkU2VsZi0+Rm9ybSgKICAgICAgICAlQXJ0aWNs
ZSwKICAgICAgICAlR2V0UGFyYW0sCiAgICApOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBG
b3JtIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVj
dCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAg
ICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBcnRpY2xlQWN0aW9uT3B0
aW9ucycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICBpZiAoICRQYXJhbXtG
dXJ0aGVyQWN0aW9uT3B0aW9uc30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAg
ICAgICAgICAgIE5hbWUgPT4gJ0Z1cnRoZXJBY3Rpb25PcHRpb25zJywKICAgICAgICAgICAgRGF0
YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBzdGFydCBvdXRwdXQKICAgIG15
ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+
ICdBZ2VudEFydGljbGVDb3B5TW92ZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAg
ICAgICAgJVBhcmFtLAogICAgICAgICAgICBBcnRpY2xlQWN0aW9uID0+ICRQYXJhbXtBcnRpY2xl
QWN0aW9ufSB8fCAnQ29weScsCiAgICAgICAgfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlv
dXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CiAgICByZXR1cm4gJE91dHB1dDsK
fQoKMTsK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GaWx0ZXJFbGVtZW50UG9zdC9BcnRpY2xlQ29weU1v
dmVEZWxldGUucG0gLSBPdXRwdXQgZmlsdGVyIHRvIHByb3ZpZGUgYSBsaW5rCiMgdG8gc3dpdGNo
IGZyb20gY3VzdG9tZXJzIHRvIGFnZW50cyBmcm9udGVuZCBhbmQgdmljZSB2ZXJzYQojIENvcHly
aWdodCAoQykgMjAwNi0yMDE1IGMuYS5wLmUuIElUIEdtYkgsIGh0dHA6Ly93d3cuY2FwZS1pdC5k
ZQojIENoYW5nZXMgQ29weXJpZ2h0IChDKSAyMDE2IC0gMjAxOCBQZXJsLVNlcnZpY2VzLmRlCiMK
IyB3cml0dGVuL2VkaXRlZCBieToKIyAqIFRvcnN0ZW4oZG90KVRoYXUoYXQpY2FwZShkYXNoKWl0
KGRvdClkZQojICogQW5uYShkb3QpTGl0dmlub3ZhKGF0KWNhcGUoZGFzaClpdChkb3QpZGUKIyAq
IERvcm90aGVhKGRvdClEb2VyZmZlbChhdCljYXBlKGRhc2gpaXQoZG90KWRlCiMgKiBNYXJpbyhk
b3QpSWxsaW5nZXIoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojICogaW5mbyhhdClwZXJsKGRhc2gp
c2VydmljZXMoZG90KWRlCiMKIyAtLQojICRJZDogT3V0cHV0RmlsdGVyQXJ0aWNsZUNvcHlNb3Zl
RGVsZXRlLnBtLHYgMS43IDIwMTUvMDMvMTMgMDg6MjQ6NTAgbWlsbGluZ2VyIEV4cCAkCiMgLS0K
IyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRl
dGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3Jt
YXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0
cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6
T3V0cHV0OjpIVE1MOjpGaWx0ZXJFbGVtZW50UG9zdDo6QXJ0aWNsZUNvcHlNb3ZlRGVsZXRlOwoK
dXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAg
ICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6TGFuZ3VhZ2UnLAogICAgJ0tlcm5lbDo6
T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnCik7Cgp1
c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFy
YW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNl
bGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBpZiAoICEkUGFyYW17VXNl
clR5cGV9IHx8ICggJFBhcmFte1VzZXJUeXBlfSBuZSAnVXNlcicgJiYgJFBhcmFte1VzZXJUeXBl
fSBuZSAnQ3VzdG9tZXInICkgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmOwogICAgfQoKICAgICMg
Z2V0IHVzZXIgaW5mb3MKICAgICRTZWxmLT57VXNlcklEfSAgICA9ICRQYXJhbXtVc2VySUR9ICAg
IHx8ICcnOwogICAgJFNlbGYtPntVc2VyTG9naW59ID0gJFBhcmFte1VzZXJMb2dpbn0gfHwgJyc7
CiAgICAkU2VsZi0+e1VzZXJUeXBlfSAgPSAkUGFyYW17VXNlclR5cGV9ICB8fCAnJzsKICAgIHJl
dHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoK
ICAgIG15ICRDb25maWdPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmln
Jyk7CiAgICBteSAkTGFuZ3VhZ2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxh
bmd1YWdlJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkVGlja2V0T2JqZWN0ICAgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBteSAkR3JvdXBPYmpl
Y3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICBp
ZiAoICEkU2VsZi0+e1VzZXJUeXBlfSB8fCAoICRTZWxmLT57VXNlclR5cGV9IG5lICdVc2VyJyAp
ICkgewogICAgICAgIHJldHVybiAkU2VsZjsKICAgIH0KCiAgICAjIGNoZWNrIGRhdGEKICAgIHJl
dHVybiBpZiAhJFBhcmFte0RhdGF9OwogICAgcmV0dXJuIGlmIHJlZiAkUGFyYW17RGF0YX0gbmUg
J1NDQUxBUic7CiAgICByZXR1cm4gaWYgISR7ICRQYXJhbXtEYXRhfSB9OwoKICAgICMgZ2V0IGNv
bmZpZ3VyYXRpb24gZm9yIEFydGljbGVDb3B5TW92ZURlbGV0ZSBidXR0b24uLi4KICAgIG15ICRB
cnRpY2xlQ29weU1vdmVEZWxldGVSZWcgPSAiIjsKICAgIGlmICggJFNlbGYtPntVc2VyVHlwZX0g
JiYgJFNlbGYtPntVc2VyVHlwZX0gZXEgJ1VzZXInICkgewogICAgICAgICRBcnRpY2xlQ29weU1v
dmVEZWxldGVSZWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+e0Fn
ZW50QXJ0aWNsZUNvcHlNb3ZlfSB8fCAnJzsKICAgIH0KCiAgICBteSAkU2Vzc2lvbklEUGFyYW1O
YW1lID0gJENvbmZpZ09iamVjdC0+R2V0KCdTZXNzaW9uTmFtZScpIHx8ICdTZXNzaW9uJzsKCiAg
ICByZXR1cm4gaWYgISRBcnRpY2xlQ29weU1vdmVEZWxldGVSZWc7CgogICAgbXkgJEFydGljbGVB
Y3Rpb25MaW5rID0KICAgICAgICAnPGxpPjxhIGhyZWY9ImluZGV4LnBsP0FjdGlvbj1BZ2VudEFy
dGljbGVDb3B5TW92ZTtUaWNrZXRJRD0nCiAgICAgICAgLiAnT1RSU19USUNLRVRfSUQnCiAgICAg
ICAgLiAnO0FydGljbGVJRD0nCiAgICAgICAgLiAnT1RSU19BUlRJQ0xFX0lEOycKICAgICAgICAu
ICRTZXNzaW9uSURQYXJhbU5hbWUKICAgICAgICAuICc9T1RSU19TRVNTSU9OIiBjbGFzcz0iQXNQ
b3B1cCBQb3B1cFR5cGVfVGlja2V0QWN0aW9uIiAnCiAgICAgICAgLiAnIHRpdGxlPSInCiAgICAg
ICAgLiAkTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggJEFydGljbGVDb3B5TW92ZURlbGV0ZVJl
Zy0+e0Rlc2NyaXB0aW9ufSApCiAgICAgICAgLiAnIj4nCiAgICAgICAgLiAkTGFuZ3VhZ2VPYmpl
Y3QtPlRyYW5zbGF0ZSgnQ29weS9Nb3ZlL0RlbGV0ZScpCiAgICAgICAgLiAnPC9hPjwvbGk+JzsK
CiAgICBteSAkQWdlbnRQYXR0ZXJuU2hvcnQgPSAnPGxpPlxzKzxhIFxzKyBocmVmPSJbXiJdKz9B
Z2VudFRpY2tldFByaW50O1RpY2tldElEPShcZCspO0FydGljbGVJRD0oXGQrKVteIl0rIi4rPzwv
bGk+JzsKICAgIG15ICRBZ2VudFBhdHRlcm5Mb25nICA9ICc8bGk+XHMrPGEgXHMrIGhyZWY9Ilte
Il0rP0FnZW50VGlja2V0UHJpbnQ7VGlja2V0SUQ9KFxkKyk7QXJ0aWNsZUlEPShcZCspOycKICAg
ICAgICAuICRTZXNzaW9uSURQYXJhbU5hbWUgLiAnPShcdyspW14iXSsiLis/PC9saT4nOwoKICAg
IGlmICgKICAgICAgICAoCiAgICAgICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IG17ICRBZ2Vu
dFBhdHRlcm5Mb25nIH1peG1zCiAgICAgICAgICAgIHx8ICR7ICRQYXJhbXtEYXRhfSB9ID1+IG17
ICRBZ2VudFBhdHRlcm5TaG9ydCB9aXhtcwogICAgICAgICkKICAgICAgICAmJiAkeyAkUGFyYW17
RGF0YX0gfSAhfiAvQWN0aW9uPUFnZW50QXJ0aWNsZUNvcHlNb3ZlOy8KICAgICAgICApCiAgICB7
CiAgICAgICAgbXkgJEFjY2VzcyAgICA9IDA7CiAgICAgICAgbXkgJFRpY2tldElEICA9ICQxOwog
ICAgICAgIG15ICRBcnRpY2xlSUQgPSAkMjsKICAgICAgICBteSAkU2Vzc2lvbklEID0gJDMgfHwg
Jyc7CgogICAgICAgICMgY2hlY2sgZ3JvdXAgcGVybWlzc2lvbnMuLi4KICAgICAgICBteSAkR3Jv
dXBzID0gJEFydGljbGVDb3B5TW92ZURlbGV0ZVJlZy0+e0dyb3VwfSB8fCAnJzsKICAgICAgICBp
ZiAoICRHcm91cHMgJiYgcmVmKCRHcm91cHMpIGVxICdBUlJBWScgKSB7CgogICAgICAgICAgICBt
eSAlVXNlckdyb3VwcyA9ICRHcm91cE9iamVjdC0+UGVybWlzc2lvblVzZXJHZXQoCiAgICAgICAg
ICAgICAgICBVc2VySUQgPT4gJExheW91dE9iamVjdC0+e1VzZXJJRH0sCiAgICAgICAgICAgICAg
ICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICVHcm91cE5h
bWVJRHMgPSByZXZlcnNlICVVc2VyR3JvdXBzOwoKICAgICAgICAgICAgZm9yIG15ICRHcm91cCAo
IEB7JEdyb3Vwc30gKSB7CiAgICAgICAgICAgICAgICBuZXh0IGlmICEkR3JvdXBOYW1lSURzeyRH
cm91cH07CgogICAgICAgICAgICAgICAgJEFjY2VzcyA9IDE7CiAgICAgICAgICAgICAgICBsYXN0
OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gaWYgKCAhJEFjY2VzcyAp
OwoKICAgICAgICAjIGNoZWNrIG93bmVyLi4uCiAgICAgICAgJEFjY2VzcyA9ICRUaWNrZXRPYmpl
Y3QtPk93bmVyQ2hlY2soCiAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAg
ICAgICAgT3duZXJJRCAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJl
dHVybiBpZiAoICEkQWNjZXNzICk7CgogICAgICAgICRBcnRpY2xlQWN0aW9uTGluayA9fiBzL09U
UlNfVElDS0VUX0lELyRUaWNrZXRJRC9nOwogICAgICAgICRBcnRpY2xlQWN0aW9uTGluayA9fiBz
L09UUlNfQVJUSUNMRV9JRC8kQXJ0aWNsZUlEL2c7CgogICAgICAgIGlmICgkU2Vzc2lvbklEKSB7
CiAgICAgICAgICAgICRBcnRpY2xlQWN0aW9uTGluayA9fiBzL09UUlNfU0VTU0lPTi8kU2Vzc2lv
bklEL2c7CiAgICAgICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ICA9fiBzeyAoJEFnZW50UGF0dGVy
bkxvbmcpIH17JDEkQXJ0aWNsZUFjdGlvbkxpbmt9aXhtczsKICAgICAgICB9CiAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICRBcnRpY2xlQWN0aW9uTGluayA9fiBzLyRTZXNzaW9uSURQYXJhbU5h
bWU9T1RSU19TRVNTSU9OLy9nOwogICAgICAgICAgICAkeyAkUGFyYW17RGF0YX0gfSAgPX4gc3sg
KCRBZ2VudFBhdHRlcm5TaG9ydCkgfXskMSRBcnRpY2xlQWN0aW9uTGlua31peG1zOwogICAgICAg
IH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIEFnZW50QXJ0aWNsZUNvcHlNb3ZlLnR0IC0gcHJvdmlkZXMgSFRNTCBmb3JtIGZvciBB
Z2VudEFydGljbGVDb3B5TW92ZQojIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IGMuYS5wLmUuIElU
IEdtYkgsIGh0dHA6Ly93d3cuY2FwZS1pdC5kZQojCiMgd3JpdHRlbi9lZGl0ZWQgYnk6CiMgKiBN
YXJ0aW4oZG90KUJhbHphcmVrKGF0KWNhcGUoZGFzaClpdChkb3QpZGUKIyAqIFN0ZWZhbihkb3Qp
TWVobGlnKGF0KWNhcGUoZGFzaClpdChkb3QpZGUKIyAqIFJhbGYoZG90KUJvZWhtKGF0KWNhcGUo
ZGFzaClpdChkb3QpZGUKIyAqIERvcm90aGVhKGRvdClEb2VyZmZlbChhdCljYXBlKGRhc2gpaXQo
ZG90KWRlCiMKIyAtLQojICRJZDogQWdlbnRBcnRpY2xlQ29weU1vdmUudHQsdiAxLjIgMjAxNS8w
My8xMyAwOTo0NTo1MCBtaWxsaW5nZXIgRXhwICQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMg
d2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xv
c2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQoj
IGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z
ZXMvYWdwbC50eHQuCiMgLS0KCjxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIg
bWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJjb21wb3Nl
IiBpZD0iQ29tcG9zZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgog
ICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rp
b24iKSAlXSIvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1
ZT0iVXBkYXRlIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUaWNrZXRJRCIgdmFs
dWU9IlslIERhdGEuVGlja2V0SUQgfCBodG1sICVdIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVu
IiBuYW1lPSJBcnRpY2xlSUQiIHZhbHVlPSJbJSBEYXRhLkFydGljbGVJRCB8IGh0bWwgJV0iLz4K
CiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgogICAgICAgIDxkaXYg
Y2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIkNvcHkvTW92ZS9E
ZWxldGUiKSB8IGh0bWwgJV0gWyUgQ29uZmlnKCJUaWNrZXQ6Okhvb2siKSAlXVslIERhdGEuVGlj
a2V0TnVtYmVyIHwgaHRtbCAlXSAtIFslIERhdGEuVGl0bGUgfCB0cnVuY2F0ZSg1MCkgfCBodG1s
ICVdPC9oMT4KICAgICAgICAgICAgPHA+PGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9
IiMiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsICYgY2xvc2Ugd2luZG93IikgfCBodG1sICVdPC9hPjwv
cD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAg
ICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAg
ICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNs
YXRlKCJBcnRpY2xlIHN1YmplY3QiKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICA8L2xhYmVs
PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAg
IFslIERhdGEuU3ViamVjdCB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJl
bCBjbGFzcz0iTWFuZGF0b3J5Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFy
a2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWN0aW9uIHRv
IGJlIHBlcmZvcm1lZCIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgIDwvbGFiZWw+ClslIFJl
bmRlckJsb2NrU3RhcnQoIkFydGljbGVBY3Rpb25PcHRpb25zIikgJV0KICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFk
aW8iIG5hbWU9IkFydGljbGVBY3Rpb24iIGlkPSJDb3B5Q2hlY2tib3giIGNsYXNzPSJBcnRpY2xl
QWN0aW9uUmFkaW8iIHZhbHVlPSJDb3B5Ii8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZv
cj0iQ29weUNoZWNrYm94Ij5bJSBUcmFuc2xhdGUoIkNvcHkiKSB8IGh0bWwgJV08L2xhYmVsPgog
ICAgICAgICAgICAgICAgICAgIDxici8+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGdXJ0aGVyQWN0
aW9uT3B0aW9ucyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBu
YW1lPSJBcnRpY2xlQWN0aW9uIiBpZD0iTW92ZUNoZWNrYm94IiBjbGFzcz0iQXJ0aWNsZUFjdGlv
blJhZGlvIiB2YWx1ZT0iTW92ZSIvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik1v
dmVDaGVja2JveCI+WyUgVHJhbnNsYXRlKCJNb3ZlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAg
ICAgICAgICAgICAgICA8YnIvPgoKICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFk
aW8iIG5hbWU9IkFydGljbGVBY3Rpb24iIGlkPSJEZWxldGVDaGVja2JveCIgY2xhc3M9IkFydGlj
bGVBY3Rpb25SYWRpbyIgdmFsdWU9IkRlbGV0ZSIvPgogICAgICAgICAgICAgICAgICAgIDxsYWJl
bCBmb3I9IkRlbGV0ZUNoZWNrYm94Ij5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwv
bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGJyLz4KWyUgUmVuZGVyQmxvY2tFbmQoIkZ1cnRo
ZXJBY3Rpb25PcHRpb25zIikgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCBDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5k
KCJBcnRpY2xlQWN0aW9uT3B0aW9ucyIpICVdCiAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAg
ICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIEhpZGRlbiBEZWxl
dGVPcHRpb25zIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5Ij4KICAg
ICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk9wdGlvbnMgZm9yIERlbGV0ZSIpIHwgaHRt
bCAlXQogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkRlbGV0ZWRDb25maXJt
IiBjbGFzcz0iTWFuZGF0b3J5Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTWFy
a2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVhbGx5IGRl
bGV0ZSB0aGlzIGFydGljbGU/IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2xhYmVsPgog
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxp
bnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iRGVsZXRlZENvbmZpcm0iIGlkPSJEZWxldGVkQ29u
ZmlybSIgdmFsdWU9IkRlbGV0ZSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIi8+CiAgICAgICAg
ICAgICAgICAgICAgPGRpdiBpZD0iRGVsZXRlZENvbmZpcm1FcnJvciIgY2xhc3M9IlRvb2x0aXBF
cnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8
IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGVsZXRlZENv
bmZpcm1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5z
bGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rp
dj4KICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0i
VGFibGVMaWtlIEZpeGVkTGFiZWwgSGlkZGVuIE1vdmVPcHRpb25zIENvcHlPcHRpb25zIj4KICAg
ICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBpZD0iTW92ZUNvcHlUaXRsZSI+
CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJPcHRpb25zIGZvciBDb3B5IikgfCBo
dG1sICVdCiAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnki
IGZvcj0iTmV3VGlja2V0TnVtYmVyIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i
TWFya2VyIj4qPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiJXMgb2Yg
ZGVzdGluYXRpb24gdGlja2V0IiwgQ29uZmlnKCJUaWNrZXQ6Okhvb2siKSkgfCBodG1sICVdOgog
ICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVl
Ij4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3VGlja2V0
TnVtYmVyIiBpZD0iTmV3VGlja2V0TnVtYmVyIiB2YWx1ZT0iWyUgRGF0YS5OZXdUaWNrZXROdW1i
ZXIgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5OZXdU
aWNrZXROdW1iZXJJbnZhbGlkIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxkaXYg
aWQ9Ik5ld1RpY2tldE51bWJlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+
WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rp
dj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXdUaWNrZXROdW1iZXJTZXJ2ZXJFcnJv
ciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB0
aWNrZXQgaWRlbnRpZmllciEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAg
ICAgPC9maWVsZHNldD4KClslIFJlbmRlckJsb2NrU3RhcnQoIlRpbWVVbml0cyIpICVdCiAgICAg
ICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwgSGlkZGVuIENvcHlP
cHRpb25zIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlRpbWVVbml0cyI+CiAgICAgICAg
ICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDb3BpZWQgdGltZSB1bml0cyBvZiB0aGUgc291cmNl
IGFydGljbGUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9
InRleHQiIG5hbWU9IlRpbWVVbml0cyIgaWQ9IlRpbWVVbml0cyIgdmFsdWU9IlslIERhdGEuQWNj
b3VudGVkVGltZSB8IGh0bWwgJV0iIGNsYXNzPSJXMTBwYyBWYWxpZGF0ZV9UaW1lVW5pdHMgVmFs
aWRhdGVfTG93ZXIgVmFsaWRhdGVfTG93ZXJfWyUgRGF0YS5BY2NvdW50ZWRUaW1lIHwgaHRtbCAl
XSBbJSBEYXRhLk5lZWRBY2NvdW50ZWRUaW1lIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAg
ICAgIFslIFRyYW5zbGF0ZShDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OlRpbWVVbml0cyIpKSB8
IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lVW5pdHNFcnJvciIgY2xh
c3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB0aW1lISIp
IHwgaHRtbCAlXTxici8+WyUgVHJhbnNsYXRlKCJZb3UgY2Fubm90IGFzc2lnbiBtb3JlIHRpbWUg
dW5pdHMgYXMgaW4gdGhlIHNvdXJjZSBhcnRpY2xlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAg
ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwv
ZGl2PgoKICAgICAgICAgICAgICAgIDxsYWJlbD4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFu
c2xhdGUoIkhhbmRsaW5nIG9mIGFjY291bnRlZCB0aW1lIGZyb20gc291cmNlIGFydGljbGU/Iikg
fCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFt
ZT0iVGltZVVuaXRzT3JpZ2luYWwiIGlkPSJUaW1lVW5pdHNPcmlnaW5hbEtlZXAiIGNsYXNzPSJU
aW1lVW5pdHNPcmlnaW5hbCIgdmFsdWU9IktlZXAiLz4KICAgICAgICAgICAgICAgICAgICA8bGFi
ZWwgZm9yPSJUaW1lVW5pdHNPcmlnaW5hbEtlZXAiPlslIFRyYW5zbGF0ZSgiTGVhdmUgdW5jaGFu
Z2VkIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8YnIvPgoKICAgICAg
ICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IlRpbWVVbml0c09yaWdpbmFs
IiBpZD0iVGltZVVuaXRzT3JpZ2luYWxEaWZmZXJlbmNlIiBjbGFzcz0iVGltZVVuaXRzT3JpZ2lu
YWwiIHZhbHVlPSJEaWZmZXJlbmNlIi8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0i
VGltZVVuaXRzT3JpZ2luYWxEaWZmZXJlbmNlIj5bJSBUcmFuc2xhdGUoIkNoYW5nZSB0byByZXNp
ZHVlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8YnIvPgoKICAgICAg
ICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IlRpbWVVbml0c09yaWdpbmFs
IiBpZD0iVGltZVVuaXRzT3JpZ2luYWxEZWxldGUiIGNsYXNzPSJUaW1lVW5pdHNPcmlnaW5hbCIg
dmFsdWU9IkRlbGV0ZSIvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlRpbWVVbml0
c09yaWdpbmFsRGVsZXRlIj5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvbGFiZWw+
CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFy
Ij48L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KWyUgUmVuZGVyQmxvY2tFbmQoIlRpbWVV
bml0cyIpICVdCgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAg
ICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9InN1Ym1p
dFJpY2hUZXh0IiBhY2Nlc3NrZXk9ImciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwg
aHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0Iikg
fCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUg
VHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgPC9k
aXY+CiAgICA8L2Rpdj4KPC9mb3JtPgoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAl
XQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKdmFyIEluaXRWYWwg
PSAkKCcuQXJ0aWNsZUFjdGlvblJhZGlvOmNoZWNrZWQnKS52YWwoKSwKICAgICRDb3B5T3B0aW9u
cyA9ICQoJy5Db3B5T3B0aW9ucycpLAogICAgJERlbGV0ZU9wdGlvbnMgPSAkKCcuRGVsZXRlT3B0
aW9ucycpLAogICAgJE1vdmVPcHRpb25zID0gJCgnLk1vdmVPcHRpb25zJyksCiAgICAkRGVsZXRl
Q29uZmlybSA9ICQoJyNEZWxldGVkQ29uZmlybScpLAogICAgJE5ld1RpY2tldE51bWJlciA9ICQo
JyNOZXdUaWNrZXROdW1iZXInKSwKICAgICRNb3ZlQ29weVRpdGxlID0gJCgnI01vdmVDb3B5VGl0
bGUnKTsKCi8vIHNob3cgb25seSBvcHRpb25zLCB3aGljaCBiZWxvbmcgdG8gc2VsZWN0ZWQgYXJ0
aWNsZQokKCcuJyArIEluaXRWYWwgKyAnT3B0aW9ucycpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsK
Ci8vIHNob3cgb3B0aW9ucyBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgYXJ0aWNsZSBhY3Rpb24KJCgn
LkFydGljbGVBY3Rpb25SYWRpbycpLmJpbmQoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsKICAgIHZh
ciBDdXJyVmFsID0gJCh0aGlzKS52YWwoKTsKCiAgICAvLyBjaGFuZ2UgcmVxdWlyZWQgZmllbGRz
IGFuZCBsYWJlbHMgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIGFydGljbGUgYWN0aW9uCiAgICBpZiAo
Q3VyclZhbCA9PSAnRGVsZXRlJykgewogICAgICAgICREZWxldGVDb25maXJtLmFkZENsYXNzKCdW
YWxpZGF0ZV9SZXF1aXJlZCcpOwogICAgICAgICROZXdUaWNrZXROdW1iZXIucmVtb3ZlQ2xhc3Mo
J1ZhbGlkYXRlX1JlcXVpcmVkJyk7CgogICAgICAgICRDb3B5T3B0aW9ucy5hZGRDbGFzcygnSGlk
ZGVuJyk7CiAgICAgICAgJE1vdmVPcHRpb25zLmFkZENsYXNzKCdIaWRkZW4nKTsKICAgICAgICAk
RGVsZXRlT3B0aW9ucy5yZW1vdmVDbGFzcygnSGlkZGVuJyk7CiAgICB9CiAgICBlbHNlIHsKICAg
ICAgICAkRGVsZXRlQ29uZmlybS5yZW1vdmVDbGFzcygnVmFsaWRhdGVfUmVxdWlyZWQnKTsKICAg
ICAgICAkTmV3VGlja2V0TnVtYmVyLmFkZENsYXNzKCdWYWxpZGF0ZV9SZXF1aXJlZCcpOwoKICAg
ICAgICBpZiAoQ3VyclZhbCA9PSAnQ29weScpIHsKICAgICAgICAgICAgJERlbGV0ZU9wdGlvbnMu
YWRkQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICAkTW92ZU9wdGlvbnMuYWRkQ2xhc3MoJ0hp
ZGRlbicpOwogICAgICAgICAgICAkQ29weU9wdGlvbnMucmVtb3ZlQ2xhc3MoJ0hpZGRlbicpOwog
ICAgICAgICAgICAkTW92ZUNvcHlUaXRsZS5odG1sKCdbJSBUcmFuc2xhdGUoIk9wdGlvbnMgZm9y
IENvcHkiKSB8IGh0bWwgJV0nKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoQ3VyclZhbCA9
PSAnTW92ZScpIHsKICAgICAgICAgICAgJENvcHlPcHRpb25zLmFkZENsYXNzKCdIaWRkZW4nKTsK
ICAgICAgICAgICAgJERlbGV0ZU9wdGlvbnMuYWRkQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAg
ICAkTW92ZU9wdGlvbnMucmVtb3ZlQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICAkTW92ZUNv
cHlUaXRsZS5odG1sKCdbJSBUcmFuc2xhdGUoIk9wdGlvbnMgZm9yIE1vdmUiKSB8IGh0bWwgJV0n
KTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuOwp9KTsKJCgnLkFydGljbGVBY3Rpb25SYWRp
bycpLmZpbHRlcignW3ZhbHVlPVslIERhdGEuQXJ0aWNsZUFjdGlvbiB8IGh0bWwgJV1dJykucHJv
cCgnY2hlY2tlZCcsIHRydWUpLnRyaWdnZXIoJ2NoYW5nZScpOwoKWyUgUmVuZGVyQmxvY2tTdGFy
dCgiVGltZVVuaXRzSnMiKSAlXQovLyBhZGQgdmFsaWRhdGlvbiBmb3IgbWF4aW11bSB0aW1lIHVu
aXRzCiQudmFsaWRhdG9yLmFkZE1ldGhvZCgiVmFsaWRhdGVfTG93ZXIiLCBmdW5jdGlvbiAoVmFs
dWUsIEVsZW1lbnQpIHsKICAgIHZhciBDbGFzc2VzID0gJChFbGVtZW50KS5hdHRyKCdjbGFzcycp
LAogICAgICAgIE1heFZhbHVlID0gMCwKICAgICAgICBMb3dlckNsYXNzUHJlZml4ID0gJ1ZhbGlk
YXRlX0xvd2VyXycsCiAgICAgICAgUmVnRXhMb3dlciA9IG5ldyBSZWdFeHAoTG93ZXJDbGFzc1By
ZWZpeCk7CgogICAgJC5lYWNoKENsYXNzZXMuc3BsaXQoJyAnKSwgZnVuY3Rpb24gKEluZGV4LCBW
YWx1ZSkgewogICAgICAgIGlmIChSZWdFeExvd2VyLnRlc3QoVmFsdWUpKSB7CiAgICAgICAgICAg
IE1heFZhbHVlID0gVmFsdWUucmVwbGFjZShMb3dlckNsYXNzUHJlZml4LCAnJyk7CiAgICAgICAg
fQogICAgfSk7CgogICAgcmV0dXJuIChwYXJzZUludChWYWx1ZSwgMTApIDw9IE1heFZhbHVlKTsK
fSk7CgokLnZhbGlkYXRvci5hZGRDbGFzc1J1bGVzKCJWYWxpZGF0ZV9Mb3dlciIsIHsKICAgIFZh
bGlkYXRlX0xvd2VyOiB0cnVlCn0pOwoKLy8gZGlzYWJsZSB2YWxpZGF0aW9uIG9mIHRpbWUgdW5p
dHMsIGlmIGl0IGlzIG5vdCBhIGNvcHkgYWN0aW9uCiQoJy5BcnRpY2xlQWN0aW9uUmFkaW8nKS5i
aW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7CiAgICB2YXIgJFRpbWVVbml0cyA9ICQoJyNUaW1l
VW5pdHMnKTsKICAgIGlmICgkKHRoaXMpLnZhbCgpID09ICdDb3B5JykgJFRpbWVVbml0cy5hZGRD
bGFzcygnVmFsaWRhdGVfTG93ZXIgWyUgRGF0YS5OZWVkQWNjb3VudGVkVGltZSB8IGh0bWwgJV0n
KTsKICAgIGVsc2UgJFRpbWVVbml0cy5yZW1vdmVDbGFzcygnVmFsaWRhdGVfTG93ZXIgWyUgRGF0
YS5OZWVkQWNjb3VudGVkVGltZSB8IGh0bWwgJV0nKTsKICAgIHJldHVybjsKfSk7CgokKCcuVGlt
ZVVuaXRzT3JpZ2luYWwnKS5maWx0ZXIoJ1t2YWx1ZT1bJSBEYXRhLlRpbWVVbml0c09yaWdpbmFs
IHwgaHRtbCAlXV0nKS5wcm9wKCdjaGVja2VkJywgdHJ1ZSkudHJpZ2dlcignY2hhbmdlJyk7Cgpb
JSBSZW5kZXJCbG9ja0VuZCgiVGltZVVuaXRzSnMiKSAlXQovL11dPjwvc2NyaXB0PgpbJSBFTkQg
JV0K
IyAtLQojIEtlcm5lbC9TeXN0ZW0vVGlja2V0L1RpY2tldEV4dGVuc2lvbnNBcnRpY2xlQ29weU1v
dmUucG0gLSBBcnRpY2xlQ29weU1vdmVEZWxldGUgdGlja2V0IGNoYW5nZXMKIyBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAxNSBjLmEucC5lLiBJVCBHbWJILCBodHRwOi8vd3d3LmNhcGUtaXQuZGUKIwoj
IHdyaXR0ZW4vZWRpdGVkIGJ5OgojICogVG9yc3Rlbihkb3QpVGhhdShhdCljYXBlKGRhc2gpaXQo
ZG90KWRlCiMgKiBSZW5lKGRvdClCb2VobShhdCljYXBlKGRhc2gpaXQoZG90KWRlCiMgKiBNYXJ0
aW4oZG90KUJhbHphcmVrKGF0KWNhcGUoZGFzaClpdChkb3QpZGUKIyAqIFN0ZWZhbihkb3QpTWVo
bGlnKGF0KWNhcGUoZGFzaClpdChkb3QpZGUKIyAqIEFubmEoZG90KUxpdHZpbm92YShhdCljYXBl
KGRhc2gpaXQoZG90KWRlCiMgKiBGcmFuayhkb3QpT2JlcmVuZGVyKGF0KWNhcGUoZGFzaClpdChk
b3QpZGUKIyAqIERvcm90aGVhKGRvdClEb2VyZmZlbChhdCljYXBlKGRhc2gpaXQoZG90KWRlCiMg
KiBSYWxmKGRvdClCb2VobShhdCljYXBlKGRhc2gpaXQoZG90KWRlCiMgKiBNYXJpbyhkb3QpSWxs
aW5nZXIoYXQpY2FwZShkYXNoKWl0KGRvdClkZQojIC0tCiMgJElkOiBUaWNrZXRFeHRlbnNpb25z
QXJ0aWNsZUNvcHlNb3ZlLnBtLHYgMS40IDIwMTUvMDMvMTMgMDg6MjQ6NTAgbWlsbGluZ2VyIEV4
cCAkCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5U
WS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vu
c2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxl
LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdl
IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OlRpY2tldEV4dGVuc2lvbnNBcnRpY2xlQ29weU1vdmU7
Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgo9aXRlbSBBcnRpY2xlTW92ZSgpCgpNb3ZlcyBh
biBhcnRpY2xlIHRvIGFub3RoZXIgdGlja2V0CgogICAgbXkgJFJlc3VsdCA9ICRUaWNrZXRPYmpl
Y3QtPkFydGljbGVNb3ZlKAogICAgICAgIFRpY2tldElEICA9PiAxMjMsCiAgICAgICAgQXJ0aWNs
ZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICAgPT4gMTIzLAogICAgKTsKClJlc3VsdDoKICAg
IDEKICAgIE1vdmVGYWlsZWQKICAgIEFjY291bnRGYWlsZWQKCkV2ZW50czoKICAgIEFydGljbGVN
b3ZlCgo9Y3V0CgpzdWIgQXJ0aWNsZU1vdmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBA
XzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KEFydGlj
bGVJRCBUaWNrZXRJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkg
ewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxv
ZyggUHJpb3JpdHkgPT4gJ2Vycm9yJywgTWVzc2FnZSA9PiAiQXJ0aWNsZU1vdmU6IE5lZWQgJE5l
ZWRlZCEiICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyB1cGRh
dGUgYXJ0aWNsZSBkYXRhCiAgICByZXR1cm4gJ01vdmVGYWlsZWQnIGlmICEkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgYXJ0
aWNsZSBTRVQgdGlja2V0X2lkID0gPywgIgogICAgICAgICAgICAuICJjaGFuZ2VfdGltZSA9IGN1
cnJlbnRfdGltZXN0YW1wLCBjaGFuZ2VfYnkgPSA/IFdIRVJFIGlkID0gPyIsCiAgICAgICAgQmlu
ZCA9PiBbIFwkUGFyYW17VGlja2V0SUR9LCBcJFBhcmFte1VzZXJJRH0sIFwkUGFyYW17QXJ0aWNs
ZUlEfSBdLAogICAgKTsKCiAgICAjIHVwZGF0ZSB0aW1lIGFjY291bnRpbmcgZGF0YQogICAgcmV0
dXJuICdBY2NvdW50RmFpbGVkJyBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnVVBEQVRFIHRpbWVfYWNjb3VudGluZyBTRVQgdGlj
a2V0X2lkID0gPywgJwogICAgICAgICAgICAuICJjaGFuZ2VfdGltZSA9IGN1cnJlbnRfdGltZXN0
YW1wLCBjaGFuZ2VfYnkgPSA/IFdIRVJFIGFydGljbGVfaWQgPSA/IiwKICAgICAgICBCaW5kID0+
IFsgXCRQYXJhbXtUaWNrZXRJRH0sIFwkUGFyYW17VXNlcklEfSwgXCRQYXJhbXtBcnRpY2xlSUR9
IF0sCiAgICApOwoKICAgICMgY2xlYXIgdGlja2V0IGNhY2hlCiAgICBkZWxldGUgJFNlbGYtPnsg
J0NhY2hlOjpHZXRUaWNrZXQnIC4gJFBhcmFte1RpY2tldElEfSB9OwogICAgZGVsZXRlICRTZWxm
LT57ICdDYWNoZTo6R2V0VGlja2V0JyAuICRQYXJhbXtPbGRUaWNrZXRJRH0gfTsKCiAgICBmb3Ig
bXkgJEtleSAoIHF3L1RpY2tldElEIE9sZFRpY2tldElELyApIHsKICAgICAgICAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgICAgICBUeXBl
ID0+ICdBcnRpY2xlJywKICAgICAgICAgICAgS2V5ICA9PiAnX01ldGFBcnRpY2xlTGlzdDo6JyAu
ICRQYXJhbXskS2V5fSwKICAgICAgICApOwogICAgfQoKICAgICMgZXZlbnQKICAgICRTZWxmLT5F
dmVudEhhbmRsZXIoCiAgICAgICAgRXZlbnQgPT4gJ0FydGljbGVNb3ZlJywKICAgICAgICBEYXRh
ICA9PiB7CiAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAg
ICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgfSwKICAgICAgICBV
c2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBB
cnRpY2xlQ29weSgpCgpDb3BpZXMgYW4gYXJ0aWNsZSB0byBhbm90aGVyIHRpY2tldCBpbmNsdWRp
bmcgYWxsIGF0dGFjaG1lbnRzCgogICAgbXkgJFJlc3VsdCA9ICRUaWNrZXRPYmplY3QtPkFydGlj
bGVDb3B5KAogICAgICAgIFRpY2tldElEICA9PiAxMjMsCiAgICAgICAgQXJ0aWNsZUlEID0+IDEy
MywKICAgICAgICBVc2VySUQgICAgPT4gMTIzLAogICAgKTsKClJlc3VsdDoKICAgIE5ld0FydGlj
bGVJRAogICAgJ05vT3JpZ2luYWwnCiAgICAnQ29weUZhaWxlZCcKICAgICdVcGRhdGVGYWlsZWQn
CgpFdmVudHM6CiAgICBBcnRpY2xlQ29weQoKPWN1dAoKc3ViIEFydGljbGVDb3B5IHsKICAgIG15
ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZv
ciBteSAkTmVlZGVkIChxdyhBcnRpY2xlSUQgTmV3VGlja2V0SUQgVGlja2V0SUQgVXNlcklEKSkg
ewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coIFByaW9yaXR5ID0+ICdlcnJvcics
IE1lc3NhZ2UgPT4gIkFydGljbGVDb3B5OiBOZWVkICROZWVkZWQhIiApOwogICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRBcnRpY2xlT2JqZWN0ID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0aWNsZScpOwogICAgbXkgJEJhY2tl
bmRPYmplY3QgPSAkQXJ0aWNsZU9iamVjdC0+QmFja2VuZEZvckFydGljbGUoCiAgICAgICAgQXJ0
aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17
VGlja2V0SUR9LAogICAgKTsKICAgIG15ICgkQXJ0aWNsZSkgPSAkQXJ0aWNsZU9iamVjdC0+QXJ0
aWNsZUxpc3QoCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBB
cnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICApOwoKICAgICMgZ2V0IG9yaWdpbmFs
IGFydGljbGUgY29udGVudAogICAgbXkgJUFydGljbGUgPSAkQmFja2VuZE9iamVjdC0+QXJ0aWNs
ZUdldCgKICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgVGlj
a2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICApOwoKICAgIHJldHVybiAnTm9PcmlnaW5h
bCcgaWYgISVBcnRpY2xlOwoKICAgICMgY29weSBvcmlnaW5hbCBhcnRpY2xlCiAgICBteSAkQ29w
eUFydGljbGVJRCA9ICRCYWNrZW5kT2JqZWN0LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgICVBcnRp
Y2xlLAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtOZXdUaWNrZXRJRH0sCiAgICAg
ICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgSGlzdG9yeVR5cGUg
ICAgPT4gJ01pc2MnLAogICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICJDb3BpZWQgYXJ0aWNsZSAk
UGFyYW17QXJ0aWNsZUlEfSBmcm9tICIKICAgICAgICAgICAgLiAidGlja2V0ICRBcnRpY2xle1Rp
Y2tldElEfSB0byB0aWNrZXQgJFBhcmFte1RpY2tldElEfSIsCiAgICApOwoKICAgIHJldHVybiAn
Q29weUZhaWxlZCcgaWYgISRDb3B5QXJ0aWNsZUlEOwoKICAgICMgc2V0IGFydGljbGUgdGltZXMg
ZnJvbSBvcmlnaW5hbCBhcnRpY2xlCiAgICByZXR1cm4gJ1VwZGF0ZUZhaWxlZCcgaWYgISRLZXJu
ZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4KICAg
ICAgICAgICAgJ1VQREFURSBhcnRpY2xlX2RhdGFfbWltZSBTRVQgaW5jb21pbmdfdGltZSA9ID8g
V0hFUkUgYXJ0aWNsZV9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJEFy
dGljbGV7SW5jb21pbmdUaW1lfSwgXCRDb3B5QXJ0aWNsZUlECiAgICAgICAgXSwKICAgICk7Cgog
ICAgIyBjb3B5IGF0dGFjaG1lbnRzIGZyb20gb3JpZ2luYWwgYXJ0aWNsZQogICAgbXkgJUFydGlj
bGVJbmRleCA9ICRCYWNrZW5kT2JqZWN0LT5BcnRpY2xlQXR0YWNobWVudEluZGV4KAogICAgICAg
IEFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICBVc2VySUQgICAgPT4gJFBh
cmFte1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkSW5kZXggKCBrZXlzICVBcnRpY2xlSW5k
ZXggKSB7CiAgICAgICAgbXkgJUF0dGFjaG1lbnQgPSAkQmFja2VuZE9iamVjdC0+QXJ0aWNsZUF0
dGFjaG1lbnQoCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAg
ICAgICAgICAgRmlsZUlEICAgID0+ICRJbmRleCwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQ
YXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJEJhY2tlbmRPYmplY3QtPkFydGljbGVX
cml0ZUF0dGFjaG1lbnQoCiAgICAgICAgICAgICVBdHRhY2htZW50LAogICAgICAgICAgICBBcnRp
Y2xlSUQgPT4gJENvcHlBcnRpY2xlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17
VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2xlYXIgdGlja2V0IGNhY2hlCiAgICBk
ZWxldGUgJFNlbGYtPnsgJ0NhY2hlOjpHZXRUaWNrZXQnIC4gJFBhcmFte1RpY2tldElEfSB9OwoK
ICAgICMgY29weSBwbGFpbiBhcnRpY2xlIGlmIGV4aXN0cwogICAgaWYgKCAkQmFja2VuZE9iamVj
dC0+Q2hhbm5lbE5hbWVHZXQoKSBlcSAnRW1haWwnICkgewogICAgICAgIG15ICREYXRhID0gJEJh
Y2tlbmRPYmplY3QtPkFydGljbGVQbGFpbigKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRQYXJh
bXtBcnRpY2xlSUR9LAogICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwK
ICAgICAgICApOwogICAgICAgIGlmICgkRGF0YSkgewogICAgICAgICAgICAkQmFja2VuZE9iamVj
dC0+QXJ0aWNsZVdyaXRlUGxhaW4oCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJENvcHlB
cnRpY2xlSUQsCiAgICAgICAgICAgICAgICBFbWFpbCAgICAgPT4gJERhdGEsCiAgICAgICAgICAg
ICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAg
fQogICAgfQoKICAgICMgZXZlbnQKICAgICRTZWxmLT5FdmVudEhhbmRsZXIoCiAgICAgICAgRXZl
bnQgPT4gJ0FydGljbGVDb3B5JywKICAgICAgICBEYXRhICA9PiB7CiAgICAgICAgICAgIFRpY2tl
dElEICAgICA9PiAkUGFyYW17TmV3VGlja2V0SUR9LAogICAgICAgICAgICBBcnRpY2xlSUQgICAg
PT4gJENvcHlBcnRpY2xlSUQsCiAgICAgICAgICAgIE9sZEFydGljbGVJRCA9PiAkUGFyYW17QXJ0
aWNsZUlEfSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAg
ICk7CgogICAgcmV0dXJuICRDb3B5QXJ0aWNsZUlEOwp9Cgo9aXRlbSBBcnRpY2xlRnVsbERlbGV0
ZSgpCgpEZWxldGUgYW4gYXJ0aWNsZSwgaXRzIGhpc3RvcnksIGl0cyBwbGFpbiBtZXNzYWdlLCBh
bmQgYWxsIGF0dGFjaG1lbnRzCgogICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5BcnRp
Y2xlRnVsbERlbGV0ZSgKICAgICAgICBBcnRpY2xlSUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAg
ICA9PiAxMjMsCiAgICApOwoKQVRURU5USU9OOgogICAgc3ViIEFydGljbGVEZWxldGUgaXMgdXNl
ZCBpbiB0aGlzIHN1YiwgYnV0IHRoaXMgc3ViIGRvZXMgbm90IGRlbGV0ZQogICAgYXJ0aWNsZSBo
aXN0b3J5CgpFdmVudHM6CiAgICBBcnRpY2xlRnVsbERlbGV0ZQoKPWN1dAoKc3ViIEFydGljbGVG
dWxsRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBu
ZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhUaWNrZXRJRCBBcnRpY2xlSUQgVXNl
cklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtl
cm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpCiAgICAgICAgICAgICAgICAtPkxv
ZyggUHJpb3JpdHkgPT4gJ2Vycm9yJywgTWVzc2FnZSA9PiAiQXJ0aWNsZUZ1bGxEZWxldGU6IE5l
ZWQgJE5lZWRlZCEiICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAg
bXkgJEFydGljbGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlj
a2V0OjpBcnRpY2xlJyk7CiAgICBteSAkQmFja2VuZE9iamVjdCA9ICRBcnRpY2xlT2JqZWN0LT5C
YWNrZW5kRm9yQXJ0aWNsZSgKICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0s
CiAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICApOwoKICAgICMgZ2V0
IGFydGljbGUgY29udGVudAogICAgCiAgICBteSAlQXJ0aWNsZSA9ICRCYWNrZW5kT2JqZWN0LT5B
cnRpY2xlR2V0KAogICAgICAgIEFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAg
ICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEl
QXJ0aWNsZTsKCiAgICAjIGNsZWFyIHRpY2tldCBjYWNoZQogICAgZGVsZXRlICRTZWxmLT57ICdD
YWNoZTo6R2V0VGlja2V0JyAuICRBcnRpY2xle1RpY2tldElEfSB9OwoKICAgICMgZGVsZXRlIGFy
dGljbGUgaGlzdG9yeQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5
c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAnREVMRVRFIEZST00gdGlja2V0X2hpc3Rv
cnkgV0hFUkUgYXJ0aWNsZV9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0FydGlj
bGVJRH0gXSwKICAgICk7CgogICAgIyBkZWxldGUgYXJ0aWNsZSwgYXR0YWNobWVudHMgYW5kIHBs
YWluIGVtYWlscwogICAgcmV0dXJuIGlmICEkQmFja2VuZE9iamVjdC0+QXJ0aWNsZURlbGV0ZSgK
ICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgVGlja2V0SUQg
ID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9
LAogICAgKTsKCiAgICAjIGV2ZW50CiAgICAkU2VsZi0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2
ZW50ID0+ICdBcnRpY2xlRnVsbERlbGV0ZScsCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAg
ICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZUlEID0+
ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtV
c2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQXJ0aWNsZUNyZWF0ZURhdGVV
cGRhdGUoKQoKTWFuaXB1bGF0ZXMgdGhlIGFydGljbGUgY3JlYXRlIGRhdGUKCiAgICBteSAkUmVz
dWx0ID0gJFRpY2tldE9iamVjdC0+QXJ0aWNsZUNyZWF0ZURhdGVVcGRhdGUoCiAgICAgICAgQXJ0
aWNsZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICAgPT4gMTIzLAogICAgKTsKCkV2ZW50czoK
ICAgIEFydGljbGVVcGRhdGUKCj1jdXQKCnN1YiBBcnRpY2xlQ3JlYXRlRGF0ZVVwZGF0ZSB7CiAg
ICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAg
ICBmb3IgbXkgJE5lZWRlZCAocXcoVGlja2V0SUQgQXJ0aWNsZUlEIFVzZXJJRCBDcmVhdGVkIElu
Y29taW5nVGltZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAg
ICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKQogICAgICAgICAgICAg
ICAgLT5Mb2coIFByaW9yaXR5ID0+ICdlcnJvcicsIE1lc3NhZ2UgPT4gIkFydGljbGVDcmVhdGVE
YXRlVXBkYXRlOiBOZWVkICROZWVkZWQhIiApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAg
fQogICAgfQoKICAgICMgZGIgdXBkYXRlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQo
J0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBhcnRpY2xl
IFNFVCBpbmNvbWluZ190aW1lID0gPywgIgogICAgICAgICAgICAuICJjaGFuZ2VfdGltZSA9IGN1
cnJlbnRfdGltZXN0YW1wLCBjaGFuZ2VfYnkgPSA/IFdIRVJFIGlkID0gPyIsCiAgICAgICAgQmlu
ZCA9PiBbIFwkUGFyYW17SW5jb21pbmdUaW1lfSwgXCRQYXJhbXtVc2VySUR9LCBcJFBhcmFte0Fy
dGljbGVJRH0gXSwKICAgICk7CgogICAgIyBldmVudAogICAgJFNlbGYtPkV2ZW50SGFuZGxlcigK
ICAgICAgICBFdmVudCA9PiAnQXJ0aWNsZVVwZGF0ZScsCiAgICAgICAgRGF0YSAgPT4gewogICAg
ICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNs
ZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQ
YXJhbXtVc2VySUR9LAogICAgKTsKICAgIHJldHVybiAxOwp9CgoxOwo=
2020-12-10 12:32:44otobo-1