DashboardMyTickets
6.0.4
6.0.x
Perl-Services.de
http://www.perl-services.de
Ein Dashboardwidget, das alle Tickets eines Agenten anzeigt
A dashboard widget that shows all tickets of an agent.
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90cnNfY29uZmlnIHZlcnNp
b249IjIuMCIgaW5pdD0iQXBwbGljYXRpb24iPgogICAgPFNldHRpbmcgTmFtZT0iRGFzaGJvYXJk
QmFja2VuZCMjIzAwOTAtRGFzaGJvYXJkTXlUaWNrZXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEi
PgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRo
ZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgIk15IG9wZW4gVGlja2V0IiBvdmVydmlldyBvZiB0
aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93
biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0
aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIg
ZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUg
dXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUg
Y2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLjwvRGVzY3JpcHRpb24+CiAgICAg
ICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRp
b24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJ
dGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpNeVRpY2tl
dHM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj5NeSBUaWNrZXRzPC9J
dGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+QWxsIG15IHRpY2tl
dHM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkF0dHJpYnV0ZXMiPjwvSXRlbT4K
ICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRmlsdGVyIj5PcGVuPC9JdGVtPgogICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJUaW1lIj5BZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBL
ZXk9IkxpbWl0Ij4yNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVybWlzc2lv
biI+cnc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db250ZW50TGFy
Z2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj48L0l0ZW0+CiAgICAg
ICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8
SXRlbSBLZXk9IkNhY2hlVFRMTG9jYWwiPjAuNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVt
IEtleT0iRGVmYXVsdENvbHVtbnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgoJCQk8RGVm
YXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBE
aXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlw
ZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gQXZhaWxhYmxlPC9JdGVt
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZh
bHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGJ5IGRlZmF1bHQ8L0l0ZW0+CiAg
ICAgICAgICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxJdGVtIEtleT0iQWdlIj4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRl
bSBLZXk9IkNoYW5nZWQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtl
eT0iQ3VzdG9tZXJJRCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5
PSJDdXN0b21lck5hbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtl
eT0iQ3VzdG9tZXJVc2VySUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVt
IEtleT0iRXNjYWxhdGlvblJlc3BvbnNlVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAg
ICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uU29sdXRpb25UaW1lIj4xPC9JdGVtPgogICAgICAg
ICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25UaW1lIj4xPC9JdGVtPgogICAg
ICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25VcGRhdGVUaW1lIj4xPC9J
dGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpY2tldE51bWJlciI+Mjwv
SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMb2NrIj4xPC9JdGVtPgog
ICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik93bmVyIj4xPC9JdGVtPgogICAgICAg
ICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBlbmRpbmdUaW1lIj4xPC9JdGVtPgogICAgICAg
ICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlF1ZXVlIj4yPC9JdGVtPgogICAgICAgICAgICAg
ICAgICAgICAgICA8SXRlbSBLZXk9IlJlc3BvbnNpYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAg
ICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAg
ICAgICAgICA8SXRlbSBLZXk9IlNlcnZpY2UiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxJdGVtIEtleT0iU3RhdGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJ
dGVtIEtleT0iU0xBIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9
IlRpdGxlIj4yPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUi
PjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9J
dGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNYW5kYXRvcnkiPjA8L0l0ZW0+CiAgICAg
ICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRp
bmcgTmFtZT0iRGFzaGJvYXJkTXlUaWNrZXRzOjpTaG93Q2xvc2VkVGlja2V0cyIgUmVxdWlyZWQ9
IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93
IHRhYiB3aXRoIGNsb3NlZCB0aWNrZXRzIGluIERhc2hib2FyZCB3aWRnZXQuPC9EZXNjcmlwdGlv
bj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4K
ICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8
L1ZhbHVlPgogICAgPC9TZXR0aW5nPgo8L290cnNfY29uZmlnPgo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9kZV9EYXNoYm9hcmRNeVRpY2tldHMucG0gLSB0cmFuc2xh
dGlvbiBmaWxlCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBX
QVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9y
IGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhp
cyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpw
YWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX0Rhc2hib2FyZE15VGlja2V0czsKCnVzZSBzdHJp
Y3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAg
IyBUZW1wbGF0ZTogQUFBSVRTTUNvbmZpZ0l0ZW0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57
J015IFRpY2tldHMnfSA9ICdNZWluZSBUaWNrZXRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259
LT57J09wZW4gdGlja2V0cyd9ID0gJ29mZmVuZW4gVGlja2V0cyc7CiAgICAkU2VsZi0+e1RyYW5z
bGF0aW9ufS0+eydSZW1pbmRlciB0aWNrZXRzJ30gPSAnRXJpbm5lcnVuZ3N0aWNrZXRzJzsKICAg
ICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlbmRpbmcgdGlja2V0cyd9ID0gJ1dhcnRlbnRpY2tl
dHMnOwoKfQoKMTsKCg==
IyAtLQojIENvcHlyaWdodCAoYykgMjAxOC0gUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDovL3Blcmwt
c2VydmljZXMuZGUKIyBCYXNlZCBvbiBLZXJuZWwvT3V0cHV0L0hUTUwvRGFzaGJvYXJkL1RpY2tl
dERhc2hib2FyZE15VGlja2V0cy5wbSBjb3B5cmlnaHQgKGMpIDIwMTQtMjAxOCBNYXdvaCBHbWJI
CiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4g
Rm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2Ug
aW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBz
ZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtl
cm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6Ok15VGlja2V0czsKCnVzZSBzdHJpY3Q7CnVz
ZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsK
dXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdl
ckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsK
CiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJh
bX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgbmVlZGVkIHBhcmFtZXRl
cnMKICAgIGZvciBteSAkTmVlZGVkIChxdyhDb25maWcgTmFtZSBVc2VySUQpKSB7CiAgICAgICAg
ZGllICJHb3Qgbm8gJE5lZWRlZCEiIGlmICggISRTZWxmLT57JE5lZWRlZH0gKTsKICAgIH0KCiAg
ICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBteSAkUmVtb3ZlRmlsdGVy
cyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdSZW1vdmVGaWx0ZXJzJyApIHx8
ICRQYXJhbXtSZW1vdmVGaWx0ZXJzfSB8fCAwOwoKICAgICMgZ2V0IHNvcnRpbmcgcGFyYW1zCiAg
ICBmb3IgbXkgJEl0ZW0gKHF3KFNvcnRCeSBPcmRlckJ5KSkgewogICAgICAgICRTZWxmLT57JEl0
ZW19ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEl0ZW0gKSB8fCAkUGFyYW17
JEl0ZW19OwogICAgfQoKICAgICMgR2V0IGFkZCBmaWx0ZXJzIHBhcmFtLgogICAgJFNlbGYtPntB
ZGRGaWx0ZXJzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBZGRGaWx0ZXJz
JyApIHx8ICRQYXJhbXtBZGRGaWx0ZXJzfSB8fCAwOwogICAgJFNlbGYtPntUYWJBY3Rpb259ICA9
ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYWJBY3Rpb24nICkgIHx8ICRQYXJh
bXtUYWJBY3Rpb259ICB8fCAwOwoKICAgICMgR2V0IHByZXZpb3VzIHNvcnRpbmcgY29sdW1uLgog
ICAgJFNlbGYtPntTb3J0aW5nQ29sdW1ufSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFt
ID0+ICdTb3J0aW5nQ29sdW1uJyApIHx8ICRQYXJhbXtTb3J0aW5nQ29sdW1ufTsKCiAgICAjIHNl
dCBmaWx0ZXIgc2V0dGluZ3MKICAgIGZvciBteSAkSXRlbSAocXcoQ29sdW1uRmlsdGVyIEdldENv
bHVtbkZpbHRlciBHZXRDb2x1bW5GaWx0ZXJTZWxlY3QpKSB7CiAgICAgICAgJFNlbGYtPnskSXRl
bX0gPSAkUGFyYW17JEl0ZW19OwogICAgfQoKICAgICMgc2F2ZSBjb2x1bW4gZmlsdGVycwogICAg
JFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc30gICAgICAgICA9ICdVc2VyRGFzaGJvYXJkVGlj
a2V0TXlUaWNrZXRzQ29sdW1uRmlsdGVycycgLiAkU2VsZi0+e05hbWV9OwogICAgJFNlbGYtPntQ
cmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSA9ICdVc2VyRGFzaGJvYXJkVGlja2V0TXlUaWNr
ZXRzQ29sdW1uRmlsdGVyc1JlYWxLZXlzJyAuICRTZWxmLT57TmFtZX07CgogICAgIyBnZXQgbmVl
ZGVkIG9iamVjdHMKICAgIG15ICRKU09OT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6SlNPTicpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkVXNlck9iamVjdCAgID0gJEtlcm5lbDo6T00t
PkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICBpZiAoJFJlbW92ZUZpbHRlcnMpIHsK
ICAgICAgICAkVXNlck9iamVjdC0+U2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgIFVzZXJJRCA9
PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIEtleSAgICA9PiAkU2VsZi0+e1ByZWZLZXlD
b2x1bW5GaWx0ZXJzfSwKICAgICAgICAgICAgVmFsdWUgID0+ICcnLAogICAgICAgICk7CiAgICAg
ICAgJFVzZXJPYmplY3QtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNl
bGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5Q29sdW1u
RmlsdGVyc1JlYWxLZXlzfSwKICAgICAgICAgICAgVmFsdWUgID0+ICcnLAogICAgICAgICk7CiAg
ICB9CgogICAgIyBqdXN0IGluIGNhc2UgbmV3IGZpbHRlciB2YWx1ZXMgYXJyaXZlCiAgICBlbHNp
ZiAoCiAgICAgICAgSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyfSAp
CiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2Vs
ZWN0fSApCiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57Q29sdW1uRmlsdGVy
fSApCiAgICAgICAgKQogICAgewoKICAgICAgICBpZiAoICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0Rl
bW9TeXN0ZW0nKSApIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgdGhlIHVzZXIgaGFzIGZpbHRl
ciBwcmVmZXJlbmNlcyBmb3IgdGhpcyB3aWRnZXQKICAgICAgICAgICAgbXkgJVByZWZlcmVuY2Vz
ID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgICAgICAgICAgVXNlcklEID0+
ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJENvbHVtblBy
ZWZWYWx1ZXM7CiAgICAgICAgICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlD
b2x1bW5GaWx0ZXJzfSB9ICkgewogICAgICAgICAgICAgICAgJENvbHVtblByZWZWYWx1ZXMgPSAk
SlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJFByZWZlcmVu
Y2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSB9LAogICAgICAgICAgICAgICAgKTsK
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgUFJFRlZBTFVFUzoKICAgICAgICAgICAgZm9yIG15
ICRDb2x1bW4gKCBzb3J0IGtleXMgJXsgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9IH0g
KSB7CiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fS0+
eyRDb2x1bW59IGVxICdEZWxldGVGaWx0ZXInICkgewogICAgICAgICAgICAgICAgICAgIGRlbGV0
ZSAkQ29sdW1uUHJlZlZhbHVlcy0+eyRDb2x1bW59OwogICAgICAgICAgICAgICAgICAgIG5leHQg
UFJFRlZBTFVFUzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRDb2x1bW5QcmVm
VmFsdWVzLT57JENvbHVtbn0gPSAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPnskQ29s
dW1ufTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFVzZXJPYmplY3QtPlNldFByZWZlcmVu
Y2VzKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAg
ICAgICAgIEtleSAgICA9PiAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSwKICAgICAgICAg
ICAgICAgIFZhbHVlICA9PiAkSlNPTk9iamVjdC0+RW5jb2RlKCBEYXRhID0+ICRDb2x1bW5QcmVm
VmFsdWVzICksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNhdmUgcmVhbCBrZXkncyBu
YW1lCiAgICAgICAgICAgIG15ICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXM7CiAgICAgICAgICAg
IGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzUmVhbEtleXN9
IH0gKSB7CiAgICAgICAgICAgICAgICAkQ29sdW1uUHJlZlJlYWxLZXlzVmFsdWVzID0gJEpTT05P
YmplY3QtPkRlY29kZSgKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRQcmVmZXJlbmNlc3sg
JFNlbGYtPntQcmVmS2V5Q29sdW1uRmlsdGVyc1JlYWxLZXlzfSB9LAogICAgICAgICAgICAgICAg
KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBSRUFMS0VZVkFMVUVTOgogICAgICAgICAgICBm
b3IgbXkgJENvbHVtbiAoIHNvcnQga2V5cyAleyAkU2VsZi0+e0NvbHVtbkZpbHRlcn0gfSApIHsK
ICAgICAgICAgICAgICAgIG5leHQgUkVBTEtFWVZBTFVFUyBpZiAhJENvbHVtbjsKCiAgICAgICAg
ICAgICAgICBteSAkRGVsZXRlRmlsdGVyID0gMDsKICAgICAgICAgICAgICAgIGlmICggSXNBcnJh
eVJlZldpdGhEYXRhKCAkU2VsZi0+e0NvbHVtbkZpbHRlcn0tPnskQ29sdW1ufSApICkgewogICAg
ICAgICAgICAgICAgICAgIGlmICggZ3JlcCB7ICRfIGVxICdEZWxldGVGaWx0ZXInIH0gQHsgJFNl
bGYtPntDb2x1bW5GaWx0ZXJ9LT57JENvbHVtbn0gfSApIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgJERlbGV0ZUZpbHRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntD
b2x1bW5GaWx0ZXJ9LT57JENvbHVtbn0gKSApIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKAog
ICAgICAgICAgICAgICAgICAgICAgICBncmVwIHsgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9LT57JENv
bHVtbn0tPnskX30gZXEgJ0RlbGV0ZUZpbHRlcicgfQogICAgICAgICAgICAgICAgICAgICAgICBr
ZXlzICV7ICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyRDb2x1bW59IH0KICAgICAgICAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
JERlbGV0ZUZpbHRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIGlmICgkRGVsZXRlRmlsdGVyKSB7CiAgICAgICAgICAgICAgICAg
ICAgZGVsZXRlICRDb2x1bW5QcmVmUmVhbEtleXNWYWx1ZXMtPnskQ29sdW1ufTsKICAgICAgICAg
ICAgICAgICAgICBkZWxldGUgJFNlbGYtPntDb2x1bW5GaWx0ZXJ9LT57JENvbHVtbn07CiAgICAg
ICAgICAgICAgICAgICAgbmV4dCBSRUFMS0VZVkFMVUVTOwogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgJENvbHVtblByZWZSZWFsS2V5c1ZhbHVlcy0+eyRDb2x1bW59ID0gJFNlbGYt
PntDb2x1bW5GaWx0ZXJ9LT57JENvbHVtbn07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFVz
ZXJPYmplY3QtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxm
LT57VXNlcklEfSwKICAgICAgICAgICAgICAgIEtleSAgICA9PiAkU2VsZi0+e1ByZWZLZXlDb2x1
bW5GaWx0ZXJzUmVhbEtleXN9LAogICAgICAgICAgICAgICAgVmFsdWUgID0+ICRKU09OT2JqZWN0
LT5FbmNvZGUoIERhdGEgPT4gJENvbHVtblByZWZSZWFsS2V5c1ZhbHVlcyApLAogICAgICAgICAg
ICApOwoKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiB0aGUgdXNlciBoYXMgZmlsdGVy
IHByZWZlcmVuY2VzIGZvciB0aGlzIHdpZGdldAogICAgbXkgJVByZWZlcmVuY2VzID0gJFVzZXJP
YmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0s
CiAgICApOwoKICAgICMgZ2V0IGNvbHVtbiBuYW1lcyBmcm9tIFByZWZlcmVuY2VzCiAgICBteSAk
UHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzOwogICAgaWYgKCAkUHJlZmVyZW5jZXN7ICRTZWxmLT57
UHJlZktleUNvbHVtbkZpbHRlcnN9IH0gKSB7CiAgICAgICAgJFByZWZlcmVuY2VzQ29sdW1uRmls
dGVycyA9ICRKU09OT2JqZWN0LT5EZWNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gJFByZWZlcmVu
Y2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzfSB9LAogICAgICAgICk7CiAgICB9Cgog
ICAgaWYgKCRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnMpIHsKICAgICAgICAkU2VsZi0+e0dldENv
bHVtbkZpbHRlclNlbGVjdH0gPSAkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzOwogICAgICAgIG15
IEBDb2x1bW5GaWx0ZXJzID0ga2V5cyAleyRQcmVmZXJlbmNlc0NvbHVtbkZpbHRlcnN9OyAgICAj
IyBubyBjcml0aWMKICAgICAgICBmb3IgbXkgJEZpZWxkIChAQ29sdW1uRmlsdGVycykgewogICAg
ICAgICAgICAkU2VsZi0+e0dldENvbHVtbkZpbHRlcn0tPnsgJEZpZWxkIC4gJFNlbGYtPntOYW1l
fSB9ID0gJFByZWZlcmVuY2VzQ29sdW1uRmlsdGVycy0+eyRGaWVsZH07CiAgICAgICAgfQogICAg
fQoKICAgICMgZ2V0IGNvbHVtbiByZWFsIG5hbWVzIGZyb20gUHJlZmVyZW5jZXMKICAgIG15ICRQ
cmVmZXJlbmNlc0NvbHVtbkZpbHRlcnNSZWFsS2V5czsKICAgIGlmICggJFByZWZlcmVuY2VzeyAk
U2VsZi0+e1ByZWZLZXlDb2x1bW5GaWx0ZXJzUmVhbEtleXN9IH0gKSB7CiAgICAgICAgJFByZWZl
cmVuY2VzQ29sdW1uRmlsdGVyc1JlYWxLZXlzID0gJEpTT05PYmplY3QtPkRlY29kZSgKICAgICAg
ICAgICAgRGF0YSA9PiAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZktleUNvbHVtbkZpbHRlcnNS
ZWFsS2V5c30gfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkUHJlZmVyZW5jZXNDb2x1bW5G
aWx0ZXJzUmVhbEtleXMpIHsKICAgICAgICBteSBAQ29sdW1uRmlsdGVyc1JlYWwgPSBrZXlzICV7
JFByZWZlcmVuY2VzQ29sdW1uRmlsdGVyc1JlYWxLZXlzfTsgICAgIyMgbm8gY3JpdGljCiAgICAg
ICAgZm9yIG15ICRGaWVsZCAoQENvbHVtbkZpbHRlcnNSZWFsKSB7CiAgICAgICAgICAgICRTZWxm
LT57Q29sdW1uRmlsdGVyfS0+eyRGaWVsZH0gPSAkUHJlZmVyZW5jZXNDb2x1bW5GaWx0ZXJzUmVh
bEtleXMtPnskRmllbGR9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjdXJyZW50IGZpbHRl
cgogICAgbXkgJE5hbWUgICAgICAgICAgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFy
YW0oIFBhcmFtID0+ICdOYW1lJyApIHx8ICcnOwogICAgbXkgJFByZWZlcmVuY2VzS2V5ICAgICAg
ICAgICA9ICdVc2VyRGFzaGJvYXJkVGlja2V0TXlUaWNrZXRzRmlsdGVyJyAuICRTZWxmLT57TmFt
ZX07CiAgICBteSAkQWRkaXRpb25hbFByZWZlcmVuY2VzS2V5ID0gJ1VzZXJEYXNoYm9hcmRUaWNr
ZXRNeVRpY2tldHNBZGRpdGlvbmFsRmlsdGVyJyAuICRTZWxmLT57TmFtZX07CiAgICBpZiAoICRT
ZWxmLT57TmFtZX0gZXEgJE5hbWUgKSB7CiAgICAgICAgJFNlbGYtPntGaWx0ZXJ9ICAgICAgICAg
ICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgICAgICAgICAg
IHx8ICcnOwogICAgICAgICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0gPSAkUGFyYW1PYmplY3Qt
PkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkaXRpb25hbEZpbHRlcicgKSB8fCAnJzsKICAgIH0KCiAg
ICAjIFJlbWVtYmVyIHRoZSBzZWxlY3RlZCBmaWx0ZXIgaW4gdGhlIHNlc3Npb24uCiAgICBpZiAo
ICRTZWxmLT57RmlsdGVyfSApIHsKCiAgICAgICAgIyB1cGRhdGUgc2Vzc2lvbgogICAgICAgICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNz
aW9uSUQoCiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAg
ICAgICAgIEtleSAgICAgICA9PiAkUHJlZmVyZW5jZXNLZXksCiAgICAgICAgICAgIFZhbHVlICAg
ICA9PiAkU2VsZi0+e0ZpbHRlcn0sCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgcHJlZmVy
ZW5jZXMKICAgICAgICBpZiAoICEkQ29uZmlnT2JqZWN0LT5HZXQoJ0RlbW9TeXN0ZW0nKSApIHsK
ICAgICAgICAgICAgJFVzZXJPYmplY3QtPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICAgICAg
VXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIEtleSAgICA9PiAkUHJl
ZmVyZW5jZXNLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSAgPT4gJFNlbGYtPntGaWx0ZXJ9LAog
ICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57
RmlsdGVyfSA9ICRTZWxmLT57JFByZWZlcmVuY2VzS2V5fSB8fCAkU2VsZi0+e0NvbmZpZ30tPntG
aWx0ZXJ9IHx8ICdBbGwnOwogICAgfQoKICAgICMgVGhlIGFkZGl0aW9uYWwgZmlsdGVyIGFyZSBh
dCB0aGUgbW9tZW50IG9ubHkgcmVsZXZhbnQgZm9yIHRoZSBjdXN0b21lciB1c2VyIGluZm9ybWF0
aW9uIGNlbnRlci4KICAgIGlmICggJFNlbGYtPntBY3Rpb259IGVxICdBZ2VudEN1c3RvbWVyVXNl
ckluZm9ybWF0aW9uQ2VudGVyJyApIHsKCiAgICAgICAgIyBSZW1lbWJlciB0aGUgc2VsZWN0ZWQg
ZmlsdGVyIGluIHRoZSBzZXNzaW9uLgogICAgICAgIGlmICggJFNlbGYtPntBZGRpdGlvbmFsRmls
dGVyfSApIHsKCiAgICAgICAgICAgICMgdXBkYXRlIHNlc3Npb24KICAgICAgICAgICAgJEtlcm5l
bDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25J
RCgKICAgICAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAg
ICAgICAgICAgICBLZXkgICAgICAgPT4gJEFkZGl0aW9uYWxQcmVmZXJlbmNlc0tleSwKICAgICAg
ICAgICAgICAgIFZhbHVlICAgICA9PiAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0ZXJ9LAogICAgICAg
ICAgICApOwoKICAgICAgICAgICAgIyB1cGRhdGUgcHJlZmVyZW5jZXMKICAgICAgICAgICAgaWYg
KCAhJENvbmZpZ09iamVjdC0+R2V0KCdEZW1vU3lzdGVtJykgKSB7CiAgICAgICAgICAgICAgICAk
VXNlck9iamVjdC0+U2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+
ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBLZXkgICAgPT4gJEFkZGl0aW9u
YWxQcmVmZXJlbmNlc0tleSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgPT4gJFNlbGYtPntB
ZGRpdGlvbmFsRmlsdGVyfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0K
ICAgICAgICAgICAgICAgID0gJFNlbGYtPnskQWRkaXRpb25hbFByZWZlcmVuY2VzS2V5fSB8fCAk
U2VsZi0+e0NvbmZpZ30tPntBZGRpdGlvbmFsRmlsdGVyfSB8fCAnQXNzaWduZWRUb0N1c3RvbWVy
VXNlcic7CiAgICAgICAgfQogICAgfQoKICAgICRTZWxmLT57UHJlZktleVNob3dufSAgID0gJ1Vz
ZXJEYXNoYm9hcmRQcmVmJyAuICRTZWxmLT57TmFtZX0gLiAnLVNob3duJzsKICAgICRTZWxmLT57
UHJlZktleUNvbHVtbnN9ID0gJ1VzZXJEYXNoYm9hcmRQcmVmJyAuICRTZWxmLT57TmFtZX0gLiAn
LUNvbHVtbnMnOwogICAgJFNlbGYtPntQYWdlU2hvd259ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPnsgJFNlbGYtPntQcmVmS2V5U2hvd259
IH0KICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ30tPntMaW1pdH07CiAgICAkU2VsZi0+e1N0YXJ0
SGl0fSA9IGludCggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyAp
IHx8IDEgKTsKCiAgICAjIGRlZmluZSBmaWx0ZXJhYmxlIGNvbHVtbnMKICAgICRTZWxmLT57VmFs
aWRGaWx0ZXJhYmxlQ29sdW1uc30gPSB7CiAgICAgICAgJ093bmVyJyAgICAgICAgICA9PiAxLAog
ICAgICAgICdSZXNwb25zaWJsZScgICAgPT4gMSwKICAgICAgICAnQ3VzdG9tZXJJRCcgICAgID0+
IDEsCiAgICAgICAgJ0N1c3RvbWVyVXNlcklEJyA9PiAxLAogICAgICAgICdTdGF0ZScgICAgICAg
ICAgPT4gMSwKICAgICAgICAnUXVldWUnICAgICAgICAgID0+IDEsCiAgICAgICAgJ1ByaW9yaXR5
JyAgICAgICA9PiAxLAogICAgICAgICdUeXBlJyAgICAgICAgICAgPT4gMSwKICAgICAgICAnTG9j
aycgICAgICAgICAgID0+IDEsCiAgICAgICAgJ1NlcnZpY2UnICAgICAgICA9PiAxLAogICAgICAg
ICdTTEEnICAgICAgICAgICAgPT4gMSwKICAgIH07CgogICAgIyBoYXNoIHdpdGggYWxsIHZhbGlk
IHNvcnRhYmxlIGNvbHVtbnMgKHRha2VuIGZyb20gVGlja2V0U2VhcmNoKQogICAgIyBTb3J0Qnkg
ID0+ICdBZ2UnLCAgICMgQ3JlYXRlZHxPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRl
fFRpY2tldE51bWJlcnxRdWV1ZQogICAgIyB8UHJpb3JpdHl8VHlwZXxMb2NrfFRpdGxlfFNlcnZp
Y2V8U0xBfENoYW5nZWR8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICMgfCBFc2NhbGF0
aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRp
bWUKICAgICRTZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9ID0gewogICAgICAgICdBZ2UnICAg
ICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdDcmVhdGVkJyAgICAgICAgICAgICAgICA9
PiAxLAogICAgICAgICdPd25lcicgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdSZXNw
b25zaWJsZScgICAgICAgICAgICA9PiAxLAogICAgICAgICdDdXN0b21lcklEJyAgICAgICAgICAg
ICA9PiAxLAogICAgICAgICdTdGF0ZScgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdU
aWNrZXROdW1iZXInICAgICAgICAgICA9PiAxLAogICAgICAgICdRdWV1ZScgICAgICAgICAgICAg
ICAgICA9PiAxLAogICAgICAgICdQcmlvcml0eScgICAgICAgICAgICAgICA9PiAxLAogICAgICAg
ICdUeXBlJyAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdMb2NrJyAgICAgICAgICAg
ICAgICAgICA9PiAxLAogICAgICAgICdUaXRsZScgICAgICAgICAgICAgICAgICA9PiAxLAogICAg
ICAgICdTZXJ2aWNlJyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICdDaGFuZ2VkJyAgICAg
ICAgICAgICAgICA9PiAxLAogICAgICAgICdTTEEnICAgICAgICAgICAgICAgICAgICA9PiAxLAog
ICAgICAgICdQZW5kaW5nVGltZScgICAgICAgICAgICA9PiAxLAogICAgICAgICdFc2NhbGF0aW9u
VGltZScgICAgICAgICA9PiAxLAogICAgICAgICdFc2NhbGF0aW9uVXBkYXRlVGltZScgICA9PiAx
LAogICAgICAgICdFc2NhbGF0aW9uUmVzcG9uc2VUaW1lJyA9PiAxLAogICAgICAgICdFc2NhbGF0
aW9uU29sdXRpb25UaW1lJyA9PiAxLAogICAgfTsKCiAgICAjIHJlbW92ZSBDdXN0b21lcklEIGlm
IEN1c3RvbWVyIEluZm9ybWF0aW9uIENlbnRlcgogICAgaWYgKCAkU2VsZi0+e0FjdGlvbn0gZXEg
J0FnZW50Q3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlcicgKSB7CiAgICAgICAgZGVsZXRlICRTZWxm
LT57Q29sdW1uRmlsdGVyfS0+e0N1c3RvbWVySUR9OwogICAgICAgIGRlbGV0ZSAkU2VsZi0+e0dl
dENvbHVtbkZpbHRlcn0tPntDdXN0b21lcklEfTsKICAgICAgICBkZWxldGUgJFNlbGYtPntHZXRD
b2x1bW5GaWx0ZXJTZWxlY3R9LT57Q3VzdG9tZXJJRH07CiAgICAgICAgZGVsZXRlICRTZWxmLT57
VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPntDdXN0b21lcklEfTsKICAgICAgICBkZWxldGUgJFNl
bGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPntDdXN0b21lcklEfTsKICAgIH0KICAgIGVsc2lm
ICgKICAgICAgICAkU2VsZi0+e0FjdGlvbn0gZXEgJ0FnZW50Q3VzdG9tZXJVc2VySW5mb3JtYXRp
b25DZW50ZXInCiAgICAgICAgJiYgJFNlbGYtPntBZGRpdGlvbmFsRmlsdGVyfSBlcSAnQXNzaWdu
ZWRUb0N1c3RvbWVyVXNlcicKICAgICAgICApCiAgICB7CgogICAgICAgIGZvciBteSAkRGVsZXRl
Q29sdW1uRmlsdGVyIChxdyhDdXN0b21lclVzZXJMb2dpbiBDdXN0b21lclVzZXJMb2dpblJhdykp
IHsKICAgICAgICAgICAgZGVsZXRlICRTZWxmLT57Q29sdW1uRmlsdGVyfS0+eyREZWxldGVDb2x1
bW5GaWx0ZXJ9OwogICAgICAgICAgICBkZWxldGUgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJ9LT57
JERlbGV0ZUNvbHVtbkZpbHRlcn07CiAgICAgICAgfQogICAgICAgIGRlbGV0ZSAkU2VsZi0+e0dl
dENvbHVtbkZpbHRlcn0tPntDdXN0b21lclVzZXJJRH07CiAgICAgICAgZGVsZXRlICRTZWxmLT57
R2V0Q29sdW1uRmlsdGVyU2VsZWN0fS0+e0N1c3RvbWVyVXNlcklEfTsKICAgICAgICBkZWxldGUg
JFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+e0N1c3RvbWVyVXNlcklEfTsKICAgIH0K
CiAgICAkU2VsZi0+e1VzZVRpY2tldFNlcnZpY2V9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNr
ZXQ6OlNlcnZpY2UnKSB8fCAwOwoKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNz
V2lkZ2V0fSApIHsKCiAgICAgICAgIyBnZXQgcHJvY2VzcyBtYW5hZ2VtZW50IGNvbmZpZ3VyYXRp
b24KICAgICAgICAkU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50UHJvY2Vzc0lEfQogICAgICAgICAg
ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnUHJvY2Vzczo6RHlu
YW1pY0ZpZWxkUHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNzSUQnKTsKICAgICAgICAkU2VsZi0+e1By
b2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0KICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0
KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1Byb2Nlc3M6OkR5bmFtaWNGaWVsZFByb2Nlc3NNYW5h
Z2VtZW50QWN0aXZpdHlJRCcpOwoKICAgICAgICAjIGdldCB0aGUgbGlzdCBvZiBwcm9jZXNzZXMg
aW4gdGhlIHN5c3RlbQogICAgICAgIG15ICRQcm9jZXNzTGlzdEhhc2ggPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6OlN5c3RlbTo6UHJvY2Vzc01hbmFnZW1lbnQ6OlByb2Nlc3MnKS0+UHJvY2Vz
c0xpc3QoCiAgICAgICAgICAgIFByb2Nlc3NTdGF0ZSA9PiBbICdBY3RpdmUnLCAnRmFkZUF3YXkn
LCAnSW5hY3RpdmUnIF0sCiAgICAgICAgICAgIEludGVyZmFjZSAgICA9PiAnYWxsJywKICAgICAg
ICAgICAgU2lsZW50ICAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyB1c2Ugb25seSB0
aGUgcHJvY2VzcyBFbnRpdHlJRHMKICAgICAgICBAeyAkU2VsZi0+e1Byb2Nlc3NMaXN0fSB9ID0g
c29ydCBrZXlzICV7JFByb2Nlc3NMaXN0SGFzaH07CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9
CgpzdWIgUHJlZmVyZW5jZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAj
IGNvbmZpZ3VyZSBjb2x1bW5zCiAgICBteSBAQ29sdW1uc0VuYWJsZWQ7CiAgICBteSBAQ29sdW1u
c0F2YWlsYWJsZTsKICAgIG15IEBDb2x1bW5zQXZhaWxhYmxlTm90RW5hYmxlZDsKCiAgICAjIGNo
ZWNrIGZvciBkZWZhdWx0IHNldHRpbmdzCiAgICBpZiAoCiAgICAgICAgJFNlbGYtPntDb25maWd9
LT57RGVmYXVsdENvbHVtbnN9CiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRTZWxmLT57
Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfSApCiAgICAgICAgKQogICAgewogICAgICAgIEBDb2x1
bW5zQXZhaWxhYmxlID0gZ3JlcCB7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfS0+
eyRffSB9CiAgICAgICAgICAgIGtleXMgJXsgJFNlbGYtPntDb25maWd9LT57RGVmYXVsdENvbHVt
bnN9IH07CiAgICAgICAgQENvbHVtbnNFbmFibGVkID0gZ3JlcCB7ICRTZWxmLT57Q29uZmlnfS0+
e0RlZmF1bHRDb2x1bW5zfS0+eyRffSBlcSAnMicgfQogICAgICAgICAgICBzb3J0IHsgJFNlbGYt
Pl9EZWZhdWx0Q29sdW1uU29ydCgpIH0ga2V5cyAleyAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0
Q29sdW1uc30gfTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyBmaWx0ZXIgcHJl
ZmVyZW5jZXMgZm9yIHRoaXMgd2lkZ2V0CiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpP
TS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBV
c2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBKU09OIG9iamVjdAog
ICAgbXkgJEpTT05PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNP
TicpOwoKICAgICMgaWYgcHJlZmVyZW5jZSBzZXR0aW5ncyBhcmUgYXZhaWxhYmxlLCB0YWtlIHRo
ZW0KICAgIGlmICggJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9ICkgewoK
ICAgICAgICBteSAkQ29sdW1uc0VuYWJsZWQgPSAkSlNPTk9iamVjdC0+RGVjb2RlKAogICAgICAg
ICAgICBEYXRhID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlv
dXQnKS0+eyAkU2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9LAogICAgICAgICk7CgogICAgICAgIEBD
b2x1bW5zRW5hYmxlZCA9IGdyZXAgeyAkQ29sdW1uc0VuYWJsZWQtPntDb2x1bW5zfS0+eyRffSA9
PSAxIH0KICAgICAgICAgICAga2V5cyAleyAkQ29sdW1uc0VuYWJsZWQtPntDb2x1bW5zfSB9OwoK
ICAgICAgICBpZiAoICRDb2x1bW5zRW5hYmxlZC0+e09yZGVyfSAmJiBAeyAkQ29sdW1uc0VuYWJs
ZWQtPntPcmRlcn0gfSApIHsKICAgICAgICAgICAgQENvbHVtbnNFbmFibGVkID0gQHsgJENvbHVt
bnNFbmFibGVkLT57T3JkZXJ9IH07CiAgICAgICAgfQoKICAgICAgICAjIHJlbW92ZSBkdXBsaWNh
dGUgY29sdW1ucwogICAgICAgIG15ICVVbmlxdWVDb2x1bW5zOwogICAgICAgIG15IEBDb2x1bW5z
RW5hYmxlZEF1eDsKCiAgICAgICAgZm9yIG15ICRDb2x1bW4gKEBDb2x1bW5zRW5hYmxlZCkgewog
ICAgICAgICAgICBpZiAoICEkVW5pcXVlQ29sdW1uc3skQ29sdW1ufSApIHsKICAgICAgICAgICAg
ICAgIHB1c2ggQENvbHVtbnNFbmFibGVkQXV4LCAkQ29sdW1uOwogICAgICAgICAgICB9CiAgICAg
ICAgICAgICRVbmlxdWVDb2x1bW5zeyRDb2x1bW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMg
c2V0IGZpbHRlcmVkIGNvbHVtbiBsaXN0CiAgICAgICAgQENvbHVtbnNFbmFibGVkID0gQENvbHVt
bnNFbmFibGVkQXV4OwogICAgfQoKICAgIG15ICVDb2x1bW5zOwogICAgZm9yIG15ICRDb2x1bW5O
YW1lICggc29ydCB7ICRhIGNtcCAkYiB9IEBDb2x1bW5zQXZhaWxhYmxlICkgewogICAgICAgICRD
b2x1bW5ze0NvbHVtbnN9LT57JENvbHVtbk5hbWV9ID0gKCBncmVwIHsgJENvbHVtbk5hbWUgZXEg
JF8gfSBAQ29sdW1uc0VuYWJsZWQgKSA/IDEgOiAwOwogICAgICAgIGlmICggIWdyZXAgeyAkXyBl
cSAkQ29sdW1uTmFtZSB9IEBDb2x1bW5zRW5hYmxlZCApIHsKICAgICAgICAgICAgcHVzaCBAQ29s
dW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQsICRDb2x1bW5OYW1lOwogICAgICAgIH0KICAgIH0KCiAg
ICAjIHJlbW92ZSBDdXN0b21lcklEIGlmIEN1c3RvbWVyIEluZm9ybWF0aW9uIENlbnRlcgogICAg
aWYgKCAkU2VsZi0+e0FjdGlvbn0gZXEgJ0FnZW50Q3VzdG9tZXJJbmZvcm1hdGlvbkNlbnRlcicg
KSB7CiAgICAgICAgZGVsZXRlICRDb2x1bW5ze0NvbHVtbnN9LT57Q3VzdG9tZXJJRH07CiAgICAg
ICAgQENvbHVtbnNFbmFibGVkICAgICAgICAgICAgID0gZ3JlcCB7ICRfIG5lICdDdXN0b21lcklE
JyB9IEBDb2x1bW5zRW5hYmxlZDsKICAgICAgICBAQ29sdW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQg
PSBncmVwIHsgJF8gbmUgJ0N1c3RvbWVySUQnIH0gQENvbHVtbnNBdmFpbGFibGVOb3RFbmFibGVk
OwogICAgfQoKICAgIG15IEBQYXJhbXMgPSAoCiAgICAgICAgewogICAgICAgICAgICBEZXNjICA9
PiBUcmFuc2xhdGFibGUoJ1Nob3duIFRpY2tldHMnKSwKICAgICAgICAgICAgTmFtZSAgPT4gJFNl
bGYtPntQcmVmS2V5U2hvd259LAogICAgICAgICAgICBCbG9jayA9PiAnT3B0aW9uJywKICAgICAg
ICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICAgICAgNSAgPT4gJyA1JywKICAgICAgICAgICAg
ICAgIDEwID0+ICcxMCcsCiAgICAgICAgICAgICAgICAxNSA9PiAnMTUnLAogICAgICAgICAgICAg
ICAgMjAgPT4gJzIwJywKICAgICAgICAgICAgICAgIDI1ID0+ICcyNScsCiAgICAgICAgICAgICAg
ICA1MCA9PiAnNTAnLAogICAgICAgICAgICAgICAgNzUgPT4gJzc1JywKICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFNlbGYtPntQYWdlU2hvd259LAogICAgICAgICAg
ICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBEZXNj
ICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnU2hvd24gQ29sdW1ucycpLAogICAgICAgICAg
ICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57UHJlZktleUNvbHVtbnN9LAogICAgICAgICAg
ICBCbG9jayAgICAgICAgICAgID0+ICdBbGxvY2F0aW9uTGlzdCcsCiAgICAgICAgICAgIENvbHVt
bnMgICAgICAgICAgPT4gJEpTT05PYmplY3QtPkVuY29kZSggRGF0YSA9PiBcJUNvbHVtbnMgKSwK
ICAgICAgICAgICAgQ29sdW1uc0VuYWJsZWQgICA9PiAkSlNPTk9iamVjdC0+RW5jb2RlKCBEYXRh
ID0+IFxAQ29sdW1uc0VuYWJsZWQgKSwKICAgICAgICAgICAgQ29sdW1uc0F2YWlsYWJsZSA9PiAk
SlNPTk9iamVjdC0+RW5jb2RlKCBEYXRhID0+IFxAQ29sdW1uc0F2YWlsYWJsZU5vdEVuYWJsZWQg
KSwKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAxLAogICAgICAgIH0sCiAgICApOwoK
ICAgIHJldHVybiBAUGFyYW1zOwp9CgpzdWIgQ29uZmlnIHsKICAgIG15ICggJFNlbGYsICVQYXJh
bSApID0gQF87CgogICAgIyBjaGVjayBpZiBmcm9udGVuZCBtb2R1bGUgb2YgbGluayBpcyB1c2Vk
CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0xpbmt9ICYmICRTZWxmLT57Q29uZmlnfS0+e0xp
bmt9ID1+IC9BY3Rpb249KC4rPykoWyY7XS4rP3wpJC8gKSB7CiAgICAgICAgbXkgJEFjdGlvbiA9
ICQxOwogICAgICAgIGlmICggISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdl
dCgnRnJvbnRlbmQ6Ok1vZHVsZScpLT57JEFjdGlvbn0gKSB7CiAgICAgICAgICAgICRTZWxmLT57
Q29uZmlnfS0+e0xpbmt9ID0gJyc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAoCiAgICAg
ICAgJXsgJFNlbGYtPntDb25maWd9IH0sCgogICAgICAgICMgRG9uJ3QgY2FjaGUgdGhpcyBnbG9i
YWxseSBhcyBpdCBjb250YWlucyBKUyB0aGF0IGlzIG5vdCBpbnNpZGUgb2YgdGhlIEhUTUwuCiAg
ICAgICAgQ2FjaGVUVEwgPT4gdW5kZWYsCiAgICAgICAgQ2FjaGVLZXkgPT4gdW5kZWYsCiAgICAp
Owp9CgpzdWIgRmlsdGVyQ29udGVudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoK
ICAgIHJldHVybiBpZiAhJFBhcmFte0ZpbHRlckNvbHVtbn07CgogICAgbXkgJFRpY2tldElEczsK
ICAgIG15ICRIZWFkZXJDb2x1bW4gPSAkUGFyYW17RmlsdGVyQ29sdW1ufTsKICAgIG15IEBPcmln
aW5hbFZpZXdhYmxlVGlja2V0czsKCiAgICBpZiAoCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgn
S2VybmVsOjpDb25maWcnKS0+R2V0KCdPbmx5VmFsdWVzT25UaWNrZXQnKQogICAgICAgIHx8ICRI
ZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVySUQnCiAgICAgICAgfHwgJEhlYWRlckNvbHVtbiBlcSAn
Q3VzdG9tZXJVc2VySUQnCiAgICAgICAgKQogICAgewogICAgICAgIG15ICVTZWFyY2hQYXJhbXMg
ICAgICAgID0gJFNlbGYtPl9TZWFyY2hQYXJhbXNHZXQoJVBhcmFtKTsKICAgICAgICBteSAlVGlj
a2V0U2VhcmNoICAgICAgICA9ICV7ICRTZWFyY2hQYXJhbXN7VGlja2V0U2VhcmNofSB9OwogICAg
ICAgIG15ICVUaWNrZXRTZWFyY2hTdW1tYXJ5ID0gJXsgJFNlYXJjaFBhcmFtc3tUaWNrZXRTZWFy
Y2hTdW1tYXJ5fSB9OwoKICAgICAgICAjIGFkZCBwcm9jZXNzIG1hbmFnZW1lbnQgc2VhcmNoIHRl
cm1zCiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewog
ICAgICAgICAgICAkVGlja2V0U2VhcmNoeyAnRHluYW1pY0ZpZWxkXycgLiAkU2VsZi0+e1Byb2Nl
c3NNYW5hZ2VtZW50UHJvY2Vzc0lEfSB9ID0gewogICAgICAgICAgICAgICAgTGlrZSA9PiAkU2Vs
Zi0+e1Byb2Nlc3NMaXN0fSwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICMgQWRk
IHRoZSBhZGRpdGlvbmFsIGZpbHRlciB0byB0aGUgdGlja2V0IHNlYXJjaCBwYXJhbS4KICAgICAg
ICBpZiAoICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0gKSB7CiAgICAgICAgICAgICVUaWNrZXRT
ZWFyY2ggPSAoCiAgICAgICAgICAgICAgICAlVGlja2V0U2VhcmNoLAogICAgICAgICAgICAgICAg
JXsgJFRpY2tldFNlYXJjaFN1bW1hcnl7ICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0gfSB9LAog
ICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPntDb25maWd9LT57
SXNQcm9jZXNzV2lkZ2V0fSB8fCBJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57UHJvY2Vzc0xp
c3R9ICkgKSB7CiAgICAgICAgICAgIEBPcmlnaW5hbFZpZXdhYmxlVGlja2V0cyA9ICRLZXJuZWw6
Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0U2VhcmNoKAogICAgICAg
ICAgICAgICAgJVRpY2tldFNlYXJjaCwKICAgICAgICAgICAgICAgICV7ICRUaWNrZXRTZWFyY2hT
dW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdB
UlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJEhlYWRlckNv
bHVtbiA9fiBtL15EeW5hbWljRmllbGRfLyAmJiAhZGVmaW5lZCAkU2VsZi0+e0R5bmFtaWNGaWVs
ZH0gKSB7CgogICAgICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4K
ICAgICAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6
OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAg
IFZhbGlkICAgICAgPT4gMCwKICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ1RpY2tldCddLAog
ICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY29sdW1uIHZhbHVlcyBmb3IgdG8gYnVpbGQgdGhl
IGZpbHRlcnMgbGF0ZXIKICAgIG15ICRDb2x1bW5WYWx1ZXMgPSAkU2VsZi0+X0dldENvbHVtblZh
bHVlcygKICAgICAgICBPcmlnaW5hbFRpY2tldElEcyA9PiBcQE9yaWdpbmFsVmlld2FibGVUaWNr
ZXRzLAogICAgICAgIEhlYWRlckNvbHVtbiAgICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICApOwoK
ICAgICMgbWFrZSBzdXJlIHRoYXQgZXZlbiBhIHZhbHVlIG9mIDAgaXMgcGFzc2VkIGFzIGEgU2Vs
ZWN0ZWQgdmFsdWUsIGUuZy4gVW5jaGVja2VkIHZhbHVlIG9mIGEKICAgICMgY2hlY2stYm94IGR5
bmFtaWMgZmllbGQuCiAgICBteSAkU2VsZWN0ZWRWYWx1ZSA9IGRlZmluZWQgJFNlbGYtPntHZXRD
b2x1bW5GaWx0ZXJ9LT57ICRIZWFkZXJDb2x1bW4gLiAkU2VsZi0+e05hbWV9IH0KICAgICAgICA/
ICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyfS0+eyAkSGVhZGVyQ29sdW1uIC4gJFNlbGYtPntOYW1l
fSB9CiAgICAgICAgOiAnJzsKCiAgICBteSAkTGFiZWxDb2x1bW4gPSAkSGVhZGVyQ29sdW1uOwog
ICAgaWYgKCAkTGFiZWxDb2x1bW4gPX4gbXsgXEEgRHluYW1pY0ZpZWxkXyB9eG1zICkgewoKICAg
ICAgICBteSAkRHluYW1pY0ZpZWxkQ29uZmlnOwogICAgICAgICRMYWJlbENvbHVtbiA9fiBze1xB
IER5bmFtaWNGaWVsZF8gfXt9eG1zOwoKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9y
IG15ICRERkNvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAg
ICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJERGQ29uZmlnKTsKICAg
ICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJERGQ29uZmlnLT57TmFtZX0gbmUgJExhYmVs
Q29sdW1uOwoKICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRERkNvbmZpZzsKICAg
ICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgfQogICAgICAgIGlmICggSXNIYXNo
UmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZykgKSB7CiAgICAgICAgICAgICRMYWJlbENv
bHVtbiA9ICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgfQogICAgfQoKICAg
ICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICBteSAkQ29sdW1u
RmlsdGVySlNPTiA9ICRTZWxmLT5fQ29sdW1uRmlsdGVySlNPTigKICAgICAgICBDb2x1bW5OYW1l
ICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAkTGFiZWxDb2x1
bW4sCiAgICAgICAgQ29sdW1uVmFsdWVzICA9PiAkQ29sdW1uVmFsdWVzLT57JEhlYWRlckNvbHVt
bn0sCiAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkU2VsZWN0ZWRWYWx1ZSwKICAgICAgICBEYXNo
Ym9hcmROYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICApOwoKICAgIHJldHVybiAkQ29sdW1uRmls
dGVySlNPTjsKCn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAg
ICBteSAlU2VhcmNoUGFyYW1zICAgICAgICA9ICRTZWxmLT5fU2VhcmNoUGFyYW1zR2V0KCVQYXJh
bSk7CiAgICBteSBAQ29sdW1ucyAgICAgICAgICAgICA9IEB7ICRTZWFyY2hQYXJhbXN7Q29sdW1u
c30gfTsKICAgIG15ICVUaWNrZXRTZWFyY2ggICAgICAgID0gJXsgJFNlYXJjaFBhcmFtc3tUaWNr
ZXRTZWFyY2h9IH07CiAgICBteSAlVGlja2V0U2VhcmNoU3VtbWFyeSA9ICV7ICRTZWFyY2hQYXJh
bXN7VGlja2V0U2VhcmNoU3VtbWFyeX0gfTsKCiAgICAjIEFkZCB0aGUgYWRkaXRpb25hbCBmaWx0
ZXIgdG8gdGhlIHRpY2tldCBzZWFyY2ggcGFyYW0uCiAgICBpZiAoICRTZWxmLT57QWRkaXRpb25h
bEZpbHRlcn0gKSB7CiAgICAgICAgJVRpY2tldFNlYXJjaCA9ICgKICAgICAgICAgICAgJVRpY2tl
dFNlYXJjaCwKICAgICAgICAgICAgJXsgJFRpY2tldFNlYXJjaFN1bW1hcnl7ICRTZWxmLT57QWRk
aXRpb25hbEZpbHRlcn0gfSB9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENhY2hlS2V5ID0g
am9pbiAnLScsICRTZWxmLT57TmFtZX0sICRTZWxmLT57QWN0aW9ufSwgJFNlbGYtPntQYWdlU2hv
d259LCAkU2VsZi0+e1N0YXJ0SGl0fSwgJFNlbGYtPntVc2VySUR9OwogICAgbXkgJENhY2hlQ29s
dW1ucyA9IGpvaW4oCiAgICAgICAgJywnLAogICAgICAgIG1hcCB7ICRfIC4gJz0+JyAuICRTZWxm
LT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fS0+eyRffSB9IHNvcnQga2V5cyAleyAkU2VsZi0+e0dl
dENvbHVtbkZpbHRlclNlbGVjdH0gfQogICAgKTsKICAgICRDYWNoZUtleSAuPSAnLScgLiAkQ2Fj
aGVDb2x1bW5zIGlmICRDYWNoZUNvbHVtbnM7CgogICAgIyBJZiBTb3J0QnkgcGFyYW1ldGVyIGlz
IG5vdCBkZWZpbmVkLCBzZXQgdG8gdmFsdWUgZnJvbSAlVGlja2V0U2VhcmNoLCBvdGhlcndpc2Ug
c2V0IHRvIGRlZmF1bHQgdmFsdWUgJ0FnZScuCiAgICBpZiAoICFkZWZpbmVkICRTZWxmLT57U29y
dEJ5fSApIHsKICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldFNlYXJjaHtTb3J0Qnl9ICYmICRT
ZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9LT57ICRUaWNrZXRTZWFyY2h7U29ydEJ5fSB9ICkg
ewogICAgICAgICAgICAkU2VsZi0+e1NvcnRCeX0gPSAkVGlja2V0U2VhcmNoe1NvcnRCeX07CiAg
ICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e1NvcnRCeX0gPSAnQWdl
JzsKICAgICAgICB9CiAgICB9CgogICAgJENhY2hlS2V5IC49ICctJyAuICRTZWxmLT57U29ydEJ5
fSBpZiBkZWZpbmVkICRTZWxmLT57U29ydEJ5fTsKCiAgICAjIFNldCBPcmRlckJ5IHBhcmFtZXRl
ciB0byB0aGUgc2VhcmNoLgogICAgbXkgJElzQ2FjaGVGb3JVc2UgPSAwOwogICAgaWYgKCAkU2Vs
Zi0+e09yZGVyQnl9ICkgewogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntBZGRGaWx0
ZXJzfQogICAgICAgICAgICB8fCAkU2VsZi0+e1RhYkFjdGlvbn0KICAgICAgICAgICAgfHwgIWRl
ZmluZWQgJFNlbGYtPntTb3J0aW5nQ29sdW1ufQogICAgICAgICAgICB8fCAkU2VsZi0+e1NvcnRp
bmdDb2x1bW59IG5lICRTZWxmLT57U29ydEJ5fQogICAgICAgICAgICApCiAgICAgICAgewogICAg
ICAgICAgICAkVGlja2V0U2VhcmNoe09yZGVyQnl9ID0gJFNlbGYtPntPcmRlckJ5fTsKICAgICAg
ICAgICAgJElzQ2FjaGVGb3JVc2UgPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgJFRpY2tldFNlYXJjaHtPcmRlckJ5fSA9ICRTZWxmLT57T3JkZXJCeX0gZXEgJ1VwJyA/
ICdEb3duJyA6ICdVcCc7CiAgICAgICAgfQogICAgfQoKICAgICMgU2V0IG9yZGVyIGZvciBibG9j
a3MuCiAgICAkVGlja2V0U2VhcmNoe09yZGVyQnl9ID0gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSB8
fCAnRG93bic7CgogICAgIyBTZXQgcHJldmlvdXMgc29ydGluZyBjb2x1bW4gcGFyYW1ldGVyIGZv
ciBhbGwgY29sdW1ucy4KICAgICRQYXJhbXtTb3J0aW5nQ29sdW1ufSA9ICRTZWxmLT57U29ydEJ5
fTsKCiAgICAkQ2FjaGVLZXkgLj0gJy0nIC4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSBpZiBkZWZp
bmVkICRUaWNrZXRTZWFyY2h7T3JkZXJCeX07CgogICAgIyBDdXN0b21lckluZm9ybWF0aW9uQ2Vu
dGVyIHNob3dzIGRhdGEgcGVyIEN1c3RvbWVySUQKICAgIGlmICggJFBhcmFte0N1c3RvbWVySUR9
ICkgewogICAgICAgICRDYWNoZUtleSAuPSAnLScgLiAkUGFyYW17Q3VzdG9tZXJJRH07CiAgICB9
CgogICAgIyBDdXN0b21lclVzZXJJbmZvcm1hdGlvbkNlbnRlciBzaG93cyBkYXRhIHBlciBDdXN0
b21lclVzZXJJRAogICAgaWYgKCAkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICRD
YWNoZUtleSAuPSAnLScgLiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9OwogICAgfQoKICAgICMgQWRk
IHRoZSBhZGRpdGlvbmFsIGZpbHRlciBhbHdheXMgdG8gdGhlIGNhY2hlIGtleSwgaWYgYSBhZGRp
dGlvbmFsIGZpbHRlciBleGlzdHMuCiAgICBpZiAoICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0g
KSB7CiAgICAgICAgJENhY2hlS2V5IC49ICctJyAuICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn07
CiAgICB9CgogICAgIyBnZXQgY2FjaGUgb2JqZWN0CiAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2Vy
bmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICAjIGNoZWNrIGNhY2hl
CiAgICBteSAkVGlja2V0SURzID0gJENhY2hlT2JqZWN0LT5HZXQoCiAgICAgICAgVHlwZSA9PiAn
RGFzaGJvYXJkJywKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSAuICctJyAuICRTZWxmLT57Rmls
dGVyfSAuICctTGlzdCcsCiAgICApOwoKICAgICMgZmluZCBhbmQgc2hvdyB0aWNrZXQgbGlzdAog
ICAgbXkgJENhY2hlVXNlZCA9IDE7CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRp
Y2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsK
CiAgICBpZiAoICEkVGlja2V0SURzICkgewoKICAgICAgICAjIHF1b3RlIGFsbCBDdXN0b21lcklE
cwogICAgICAgIGlmICggJFRpY2tldFNlYXJjaHtDdXN0b21lcklEfSApIHsKICAgICAgICAgICAg
JFRpY2tldFNlYXJjaHtDdXN0b21lcklEfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpEQicpLT5RdWVyeVN0cmluZ0VzY2FwZSgKICAgICAgICAgICAgICAgIFF1ZXJ5U3RyaW5n
ID0+ICRUaWNrZXRTZWFyY2h7Q3VzdG9tZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoK
ICAgICAgICAjIGFkZCBzb3J0IGJ5IHBhcmFtZXRlciB0byB0aGUgc2VhcmNoCiAgICAgICAgaWYg
KCAhZGVmaW5lZCAkVGlja2V0U2VhcmNoe1NvcnRCeX0gfHwgISRTZWxmLT57VmFsaWRTb3J0YWJs
ZUNvbHVtbnN9LT57ICRUaWNrZXRTZWFyY2h7U29ydEJ5fSB9ICkgewogICAgICAgICAgICBpZiAo
ICRTZWxmLT57U29ydEJ5fSAmJiAkU2VsZi0+e1ZhbGlkU29ydGFibGVDb2x1bW5zfS0+eyAkU2Vs
Zi0+e1NvcnRCeX0gfSApIHsKICAgICAgICAgICAgICAgICRUaWNrZXRTZWFyY2h7U29ydEJ5fSA9
ICRTZWxmLT57U29ydEJ5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgICAgICRUaWNrZXRTZWFyY2h7U29ydEJ5fSA9ICdBZ2UnOwogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICAkQ2FjaGVVc2VkID0gJElzQ2FjaGVGb3JVc2UgPyAxIDogMDsKCiAg
ICAgICAgIyBhZGQgcHJvY2VzcyBtYW5hZ2VtZW50IHNlYXJjaCB0ZXJtcwogICAgICAgIGlmICgg
JFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKICAgICAgICAgICAgJFRpY2tl
dFNlYXJjaHsgJ0R5bmFtaWNGaWVsZF8nIC4gJFNlbGYtPntQcm9jZXNzTWFuYWdlbWVudFByb2Nl
c3NJRH0gfSA9IHsKICAgICAgICAgICAgICAgIExpa2UgPT4gJFNlbGYtPntQcm9jZXNzTGlzdH0s
CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBteSBAVGlja2V0SURzQXJyYXk7CiAg
ICAgICAgaWYgKCAhJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSB8fCBJc0FycmF5
UmVmV2l0aERhdGEoICRTZWxmLT57UHJvY2Vzc0xpc3R9ICkgKSB7CgogICAgICAgICAgICAjIENv
cHkgb3JpZ2luYWwgY29sdW1uIGZpbHRlci4KICAgICAgICAgICAgbXkgJUNvbHVtbkZpbHRlciA9
ICV7ICRTZWxmLT57Q29sdW1uRmlsdGVyfSB8fCB7fSB9OwoKICAgICAgICAgICAgIyBDaGFuZ2Ug
ZmlsdGVyIG5hbWUgYWNjb3JkaW5nbHkuCiAgICAgICAgICAgIG15ICRGaWx0ZXI7CiAgICAgICAg
ICAgIGlmICggJFNlbGYtPntGaWx0ZXJ9IGVxICdNeVF1ZXVlcycgKSB7CiAgICAgICAgICAgICAg
ICAkRmlsdGVyID0gJ1F1ZXVlSURzJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAo
ICRTZWxmLT57RmlsdGVyfSBlcSAnTXlTZXJ2aWNlcycgKSB7CiAgICAgICAgICAgICAgICAkRmls
dGVyID0gJ1NlcnZpY2VJRHMnOwoKICAgICAgICAgICAgICAgIGlmICggJENvbHVtbkZpbHRlcntR
dWV1ZUlEc30gKSB7CiAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaFN1bW1hcnl7ICRT
ZWxmLT57RmlsdGVyfSB9LT57UXVldWVJRHN9ID0gJENvbHVtbkZpbHRlcntRdWV1ZUlEc307CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkU2VsZi0+
e0ZpbHRlcn0gZXEgJ1Jlc3BvbnNpYmxlJyApIHsKICAgICAgICAgICAgICAgICRGaWx0ZXIgPSAn
UmVzcG9uc2libGVJRHMnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFNlbGYt
PntGaWx0ZXJ9IGVxICdMb2NrZWQnICkgewogICAgICAgICAgICAgICAgJEZpbHRlciA9ICdMb2Nr
SURzJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBIYW5kbGUgY2FzZXMgZm9yIGZpbHRl
ciBjb2x1bW5zIHRvIHByZXNlcnZlIGZpbHRlciB2YWx1ZSBpbiBvdGhlciB0YWIgYWN0aW9ucy4K
ICAgICAgICAgICAgaWYgKCAkQ29sdW1uRmlsdGVye0xvY2tJRHN9ICkgewogICAgICAgICAgICAg
ICAgJFRpY2tldFNlYXJjaFN1bW1hcnl7ICRTZWxmLT57RmlsdGVyfSB9LT57TG9ja0lEc30gPSAk
Q29sdW1uRmlsdGVye0xvY2tJRHN9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICgg
JENvbHVtbkZpbHRlcntPd25lcklEc30gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0U2VhcmNo
U3VtbWFyeXsgJFNlbGYtPntGaWx0ZXJ9IH0tPntPd25lcklEc30gPSAkQ29sdW1uRmlsdGVye093
bmVySURzfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBGaWx0ZXIgaXMgdXNlZCBhbmQg
aXMgbm90IGluIHVzZXIgcHJlZmVyZWQgdmFsdWVzLCBzaG93IG5vIHJlc3VsdHMuCiAgICAgICAg
ICAgICMgU2VlIGJ1ZyMxMjgwOCAoIGh0dHBzOi8vYnVncy5vdHJzLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI4MDggKS4KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJEZpbHRlcgogICAg
ICAgICAgICAgICAgJiYgSXNBcnJheVJlZldpdGhEYXRhKCAkVGlja2V0U2VhcmNoU3VtbWFyeXsg
JFNlbGYtPntGaWx0ZXJ9IH0tPnskRmlsdGVyfSApCiAgICAgICAgICAgICAgICAmJiBJc0FycmF5
UmVmV2l0aERhdGEoICRDb2x1bW5GaWx0ZXJ7JEZpbHRlcn0gKQogICAgICAgICAgICAgICAgJiYg
IWdyZXAgeyAkQ29sdW1uRmlsdGVyeyRGaWx0ZXJ9LT5bMF0gPT0gJF8gfSBAeyAkVGlja2V0U2Vh
cmNoU3VtbWFyeXsgJFNlbGYtPntGaWx0ZXJ9IH0tPnskRmlsdGVyfSB9CiAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEBUaWNrZXRJRHNBcnJheSA9ICgpOwog
ICAgICAgICAgICB9CgogICAgICAgICAgICAjIEV4ZWN1dGUgc2VhcmNoLgogICAgICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgICAgIEBUaWNrZXRJRHNBcnJheSA9ICRUaWNrZXRPYmplY3QtPlRp
Y2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAg
ICAgICAgICAgICAgICAlVGlja2V0U2VhcmNoLAogICAgICAgICAgICAgICAgICAgICV7ICRUaWNr
ZXRTZWFyY2hTdW1tYXJ5eyAkU2VsZi0+e0ZpbHRlcn0gfSB9LAogICAgICAgICAgICAgICAgICAg
ICVDb2x1bW5GaWx0ZXIsCiAgICAgICAgICAgICAgICAgICAgTGltaXQgPT4gJFNlbGYtPntQYWdl
U2hvd259ICsgJFNlbGYtPntTdGFydEhpdH0gLSAxLAogICAgICAgICAgICAgICAgKTsKICAgICAg
ICAgICAgfQogICAgICAgIH0KICAgICAgICAkVGlja2V0SURzID0gXEBUaWNrZXRJRHNBcnJheTsK
ICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkU3VtbWFyeSA9ICRDYWNoZU9iamVjdC0+
R2V0KAogICAgICAgIFR5cGUgPT4gJ0Rhc2hib2FyZCcsCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVL
ZXkgLiAnLVN1bW1hcnknLAogICAgKTsKCiAgICAjIElmIG5vIGNhY2hlIG9yIG5ldyBsaXN0IHJl
c3VsdCwgZG8gY291bnQgbG9va3VwLgogICAgaWYgKCAhJFN1bW1hcnkgfHwgISRDYWNoZVVzZWQg
KSB7CgogICAgICAgICMgRGVmaW5lIHRoZSBzdW1tYXJ5IHR5cGVzIGZvciB3aGljaCBubyBjb3Vu
dCBpcyBuZWVkZWQsIGJlY2F1c2Ugd2UgaGF2ZSBubyBvdXRwdXQuCiAgICAgICAgbXkgJUxvb2t1
cE5vQ291bnRTdW1tYXJ5VHlwZSA9ICgKICAgICAgICAgICAgQXNzaWduZWRUb0N1c3RvbWVyVXNl
ciAgICA9PiAxLAogICAgICAgICAgICBBY2Nlc3NpYmxlRm9yQ3VzdG9tZXJVc2VyID0+IDEsCiAg
ICAgICAgKTsKCiAgICAgICAgVFlQRToKICAgICAgICBmb3IgbXkgJFR5cGUgKCBzb3J0IGtleXMg
JVRpY2tldFNlYXJjaFN1bW1hcnkgKSB7CiAgICAgICAgICAgIG5leHQgVFlQRSBpZiAkTG9va3Vw
Tm9Db3VudFN1bW1hcnlUeXBleyRUeXBlfTsKICAgICAgICAgICAgbmV4dCBUWVBFIGlmICEkVGlj
a2V0U2VhcmNoU3VtbWFyeXskVHlwZX07CgogICAgICAgICAgICAjIENvcHkgb3JpZ2luYWwgY29s
dW1uIGZpbHRlci4KICAgICAgICAgICAgbXkgJUNvbHVtbkZpbHRlciA9ICV7ICRTZWxmLT57Q29s
dW1uRmlsdGVyfSB8fCB7fSB9OwoKICAgICAgICAgICAgIyBMb29wIHRocm91Z2ggYWxsIGNvbHVt
biBmaWx0ZXIgZWxlbWVudHMuCiAgICAgICAgICAgIGZvciBteSAkRWxlbWVudCAoIHNvcnQga2V5
cyAlQ29sdW1uRmlsdGVyICkgewoKICAgICAgICAgICAgICAgICMgVmVyaWZ5IGlmIGN1cnJlbnQg
Y29sdW1uIGZpbHRlciBlbGVtZW50IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgdGlja2V0IHNl
YXJjaAogICAgICAgICAgICAgICAgIyAgIHN1bW1hcnksIHRvIGRlbGV0ZSBpdCBmcm9tIHRoZSBj
b2x1bW4gZmlsdGVyIGhhc2guCiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57QWRkaXRpb25h
bEZpbHRlcn0gJiYgJFRpY2tldFNlYXJjaFN1bW1hcnl7ICRTZWxmLT57QWRkaXRpb25hbEZpbHRl
cn0gfS0+eyRFbGVtZW50fSApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJENvbHVtbkZp
bHRlcnskRWxlbWVudH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICMgYWRkIHByb2Nlc3MgbWFuYWdlbWVudCBzZWFyY2ggdGVybXMKICAgICAgICAgICAgaWYg
KCAkU2VsZi0+e0NvbmZpZ30tPntJc1Byb2Nlc3NXaWRnZXR9ICkgewogICAgICAgICAgICAgICAg
JFRpY2tldFNlYXJjaHsgJ0R5bmFtaWNGaWVsZF8nIC4gJFNlbGYtPntQcm9jZXNzTWFuYWdlbWVu
dFByb2Nlc3NJRH0gfSA9IHsKICAgICAgICAgICAgICAgICAgICBMaWtlID0+ICRTZWxmLT57UHJv
Y2Vzc0xpc3R9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAg
JFN1bW1hcnktPnskVHlwZX0gPSAwOwoKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDb25maWd9
LT57SXNQcm9jZXNzV2lkZ2V0fSB8fCBJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57UHJvY2Vz
c0xpc3R9ICkgKSB7CgogICAgICAgICAgICAgICAgIyBDaGFuZ2UgZmlsdGVyIG5hbWUgYWNjb3Jk
aW5nbHkuCiAgICAgICAgICAgICAgICBteSAkRmlsdGVyOwogICAgICAgICAgICAgICAgaWYgKCAk
VHlwZSBlcSAnTXlRdWV1ZXMnICkgewogICAgICAgICAgICAgICAgICAgICRGaWx0ZXIgPSAnUXVl
dWVJRHMnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkVHlwZSBl
cSAnTXlTZXJ2aWNlcycgKSB7CiAgICAgICAgICAgICAgICAgICAgJEZpbHRlciA9ICdTZXJ2aWNl
SURzJzsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uRmlsdGVye1F1ZXVlSURzfSAp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpY2tldFNlYXJjaFN1bW1hcnl7JFR5cGV9LT57
UXVldWVJRHN9ID0gJENvbHVtbkZpbHRlcntRdWV1ZUlEc307CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkVHlwZSBlcSAnUmVz
cG9uc2libGUnICkgewogICAgICAgICAgICAgICAgICAgICRGaWx0ZXIgPSAnUmVzcG9uc2libGVJ
RHMnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkVHlwZSBlcSAn
TXlMb2NrcycgKSB7CiAgICAgICAgICAgICAgICAgICAgJEZpbHRlciA9ICdMb2NrSURzJzsKICAg
ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIEhhbmRsZSBjYXNlcyBmb3IgZmlsdGVy
IGNvbHVtbnMgdG8gcHJlc2VydmUgZmlsdGVyIHZhbHVlIGluIG90aGVyIHRhYiBhY3Rpb25zLgog
ICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uRmlsdGVye0xvY2tJRHN9ICkgewogICAgICAgICAg
ICAgICAgICAgICRUaWNrZXRTZWFyY2hTdW1tYXJ5eyRUeXBlfS0+e0xvY2tJRHN9ID0gJENvbHVt
bkZpbHRlcntMb2NrSURzfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lm
ICggJENvbHVtbkZpbHRlcntPd25lcklEc30gKSB7CiAgICAgICAgICAgICAgICAgICAgJFRpY2tl
dFNlYXJjaFN1bW1hcnl7ICRTZWxmLT57RmlsdGVyfSB9LT57T3duZXJJRHN9ID0gJENvbHVtbkZp
bHRlcntPd25lcklEc307CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBGaWx0
ZXIgaXMgdXNlZCBhbmQgaXMgbm90IGluIHVzZXIgcHJlZmVyZWQgdmFsdWVzLCBzaG93IG5vIHJl
c3VsdHMuCiAgICAgICAgICAgICAgICAjIFNlZSBidWcjMTI4MDggKCBodHRwczovL2J1Z3Mub3Ry
cy5vcmcvc2hvd19idWcuY2dpP2lkPTEyODA4ICkuCiAgICAgICAgICAgICAgICBpZiAoCiAgICAg
ICAgICAgICAgICAgICAgJEZpbHRlcgogICAgICAgICAgICAgICAgICAgICYmIElzQXJyYXlSZWZX
aXRoRGF0YSggJFRpY2tldFNlYXJjaFN1bW1hcnl7JFR5cGV9LT57JEZpbHRlcn0gKQogICAgICAg
ICAgICAgICAgICAgICYmIElzQXJyYXlSZWZXaXRoRGF0YSggJENvbHVtbkZpbHRlcnskRmlsdGVy
fSApCiAgICAgICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkQ29sdW1uRmlsdGVyeyRGaWx0ZXJ9
LT5bMF0gPT0gJF8gfSBAeyAkVGlja2V0U2VhcmNoU3VtbWFyeXskVHlwZX0tPnskRmlsdGVyfSB9
CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICRTdW1tYXJ5LT57JFR5cGV9ID0gMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAjIEV4ZWN1dGUgc2VhcmNoLgogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgJFN1bW1hcnktPnskVHlwZX0gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2go
CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICAgICAg
ICAgICAgICAgICAlVGlja2V0U2VhcmNoLAogICAgICAgICAgICAgICAgICAgICAgICAleyAkVGlj
a2V0U2VhcmNoU3VtbWFyeXskVHlwZX0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgJUNvbHVt
bkZpbHRlciwKICAgICAgICAgICAgICAgICAgICApIHx8IDA7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgIGlmICggISRD
YWNoZVVzZWQgJiYgJFNlbGYtPntDb25maWd9LT57Q2FjaGVUVExMb2NhbH0gKSB7CiAgICAgICAg
JENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICdEYXNoYm9hcmQnLAogICAg
ICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXkgLiAnLVN1bW1hcnknLAogICAgICAgICAgICBWYWx1
ZSA9PiAkU3VtbWFyeSwKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDb25maWd9LT57Q2Fj
aGVUVExMb2NhbH0gKiA2MCwKICAgICAgICApOwogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAog
ICAgICAgICAgICBUeXBlICA9PiAnRGFzaGJvYXJkJywKICAgICAgICAgICAgS2V5ICAgPT4gJENh
Y2hlS2V5IC4gJy0nIC4gJFNlbGYtPntGaWx0ZXJ9IC4gJy1MaXN0JywKICAgICAgICAgICAgVmFs
dWUgPT4gJFRpY2tldElEcywKICAgICAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDb25maWd9LT57
Q2FjaGVUVExMb2NhbH0gKiA2MCwKICAgICAgICApOwogICAgfQoKICAgICMgU2V0IHRoZSBjc3Mg
Y2xhc3MgZm9yIHRoZSBzZWxlY3RlZCBmaWx0ZXIgYW5kIGFkZGl0aW9uYWwgZmlsdGVyLgogICAg
JFN1bW1hcnktPnsgJFNlbGYtPntGaWx0ZXJ9IC4gJzo6U2VsZWN0ZWQnIH0gPSAnU2VsZWN0ZWQn
OwogICAgaWYgKCAkU2VsZi0+e0FkZGl0aW9uYWxGaWx0ZXJ9ICkgewogICAgICAgICRTdW1tYXJ5
LT57ICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0gLiAnOjpTZWxlY3RlZCcgfSA9ICdTZWxlY3Rl
ZCc7CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5l
bDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGdldCBmaWx0ZXIgdGlja2V0IGNvdW50
cwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdl
VGlja2V0R2VuZXJpY0ZpbHRlcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJh
bSwKICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAgICAgIE5hbWUgPT4g
JFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAgICAgfSwKICAgICk7
CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmln
Jyk7CgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Rhc2hib2FyZE15VGlja2V0czo6U2hv
d0Nsb3NlZFRpY2tldHMnKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAg
ICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlckNsb3NlZCcsCiAg
ICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAg
ICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57
TmFtZX0sCiAgICAgICAgICAgICAgICAleyRTdW1tYXJ5fSwKICAgICAgICAgICAgfSwKICAgICAg
ICApOwogICAgfQoKICAgICMgc2hvdyBvbmx5IEFzc2lnbmVkVG9DdXN0b21lclVzZXIgaWYgd2Ug
aGF2ZSB0aGUgZmlsdGVyCiAgICBpZiAoICRUaWNrZXRTZWFyY2hTdW1tYXJ5e0Fzc2lnbmVkVG9D
dXN0b21lclVzZXJ9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAg
ICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyQXNzaWduZWRUb0N1c3Rv
bWVyVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAog
ICAgICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAgICAgICAgICBOYW1l
ID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAleyRTdW1tYXJ5fSwKICAgICAgICAg
ICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBvbmx5IGxvY2tlZCBpZiB3ZSBoYXZl
IHRoZSBmaWx0ZXIKICAgIGlmICggJFRpY2tldFNlYXJjaFN1bW1hcnl7QWNjZXNzaWJsZUZvckN1
c3RvbWVyVXNlcn0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAg
IE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXJBY2Nlc3NpYmxlRm9yQ3Vz
dG9tZXJVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0s
CiAgICAgICAgICAgICAgICAleyAkU2VsZi0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIE5h
bWUgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICV7JFN1bW1hcnl9LAogICAgICAg
ICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IGFsc28gd2F0Y2hlciBpZiBmZWF0
dXJlIGlzIGVuYWJsZWQgYW5kIHRoZXJlIGlzIGEgd2F0Y2hlciBmaWx0ZXIKICAgIGlmICggJENv
bmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OldhdGNoZXInKSAmJiAkVGlja2V0U2VhcmNoU3VtbWFy
eXtXYXRjaGVyfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAg
TmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlcldhdGNoZXInLAogICAgICAg
ICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICV7
ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAgICAgICAgTmFtZSA9PiAkU2VsZi0+e05hbWV9
LAogICAgICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsK
ICAgIH0KCiAgICAjIHNob3cgYWxzbyByZXNwb25zaWJsZSBpZiBmZWF0dXJlIGlzIGVuYWJsZWQg
YW5kIHRoZXJlIGlzIGEgcmVzcG9uc2libGUgZmlsdGVyCiAgICBpZiAoICRDb25maWdPYmplY3Qt
PkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICYmICRUaWNrZXRTZWFyY2hTdW1tYXJ5e1Jlc3Bv
bnNpYmxlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFt
ZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlclJlc3BvbnNpYmxlJywKICAgICAg
ICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAl
eyAkU2VsZi0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntOYW1l
fSwKICAgICAgICAgICAgICAgICV7JFN1bW1hcnl9LAogICAgICAgICAgICB9LAogICAgICAgICk7
CiAgICB9CgogICAgIyBzaG93IG9ubHkgbXkgcXVldWVzIGlmIHdlIGhhdmUgdGhlIGZpbHRlcgog
ICAgaWYgKCAkVGlja2V0U2VhcmNoU3VtbWFyeXtNeVF1ZXVlc30gKSB7CiAgICAgICAgJExheW91
dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdl
bmVyaWNGaWx0ZXJNeVF1ZXVlcycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAg
ICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAg
ICAgICAgICBOYW1lID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAleyRTdW1tYXJ5
fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBvbmx5IG15IHNl
cnZpY2VzIGlmIHdlIGhhdmUgdGhlIGZpbHRlcgogICAgaWYgKCAkVGlja2V0U2VhcmNoU3VtbWFy
eXtNeVNlcnZpY2VzfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAg
ICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlck15U2VydmljZXMnLAog
ICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAg
ICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAgICAgICAgTmFtZSA9PiAkU2VsZi0+
e05hbWV9LAogICAgICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAgICAgICAgIH0sCiAgICAg
ICAgKTsKICAgIH0KCiAgICAjIHNob3cgb25seSBsb2NrZWQgaWYgd2UgaGF2ZSB0aGUgZmlsdGVy
CiAgICBpZiAoICRUaWNrZXRTZWFyY2hTdW1tYXJ5e0xvY2tlZH0gKSB7CiAgICAgICAgJExheW91
dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdl
bmVyaWNGaWx0ZXJMb2NrZWQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAg
ICVQYXJhbSwKICAgICAgICAgICAgICAgICV7ICRTZWxmLT57Q29uZmlnfSB9LAogICAgICAgICAg
ICAgICAgTmFtZSA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgJXskU3VtbWFyeX0s
CiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFkZCBwYWdlIG5hdiBiYXIK
ICAgIG15ICRUb3RhbCA9ICRTdW1tYXJ5LT57ICRTZWxmLT57RmlsdGVyfSB9IHx8IDA7CgogICAg
bXkgJUdldENvbHVtbkZpbHRlciA9ICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyfSA/ICV7ICRTZWxm
LT57R2V0Q29sdW1uRmlsdGVyfSB9IDogKCk7CgogICAgbXkgJENvbHVtbkZpbHRlckxpbmsgPSAn
JzsKICAgIENPTFVNTk5BTUU6CiAgICBmb3IgbXkgJENvbHVtbk5hbWUgKCBzb3J0IGtleXMgJUdl
dENvbHVtbkZpbHRlciApIHsKICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRDb2x1bW5OYW1l
OwogICAgICAgIG5leHQgQ09MVU1OTkFNRSBpZiAhJEdldENvbHVtbkZpbHRlcnskQ29sdW1uTmFt
ZX07CiAgICAgICAgJENvbHVtbkZpbHRlckxpbmsKICAgICAgICAgICAgLj0gJzsnIC4gJExheW91
dE9iamVjdC0+QXNjaWkySHRtbCggVGV4dCA9PiAnQ29sdW1uRmlsdGVyJyAuICRDb2x1bW5OYW1l
ICkKICAgICAgICAgICAgLiAnPScgLiAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKCBUZXh0ID0+
ICRHZXRDb2x1bW5GaWx0ZXJ7JENvbHVtbk5hbWV9ICkKICAgIH0KCiAgICBteSAkTGlua1BhZ2Ug
PQogICAgICAgICdTdWJhY3Rpb249RWxlbWVudDtOYW1lPScgLiAkU2VsZi0+e05hbWV9CiAgICAg
ICAgLiAnO0ZpbHRlcj0nIC4gJFNlbGYtPntGaWx0ZXJ9CiAgICAgICAgLiAnO0FkZGl0aW9uYWxG
aWx0ZXI9JyAuICggJFNlbGYtPntBZGRpdGlvbmFsRmlsdGVyfSB8fCAnJyApCiAgICAgICAgLiAn
O1NvcnRCeT0nIC4gICAgICAgICAgICggJFNlbGYtPntTb3J0Qnl9ICAgICAgICAgICB8fCAnJyAp
CiAgICAgICAgLiAnO09yZGVyQnk9JyAuICAgICAgICAgICggJFRpY2tldFNlYXJjaHtPcmRlckJ5
fSAgICB8fCAnJyApCiAgICAgICAgLiAkQ29sdW1uRmlsdGVyTGluawogICAgICAgIC4gJzsnOwoK
ICAgIGlmICggJFBhcmFte0N1c3RvbWVySUR9ICkgewogICAgICAgICRMaW5rUGFnZSAuPSAiQ3Vz
dG9tZXJJRD0kUGFyYW17Q3VzdG9tZXJJRH07IjsKICAgIH0KICAgIGlmICggJFBhcmFte0N1c3Rv
bWVyVXNlcklEfSApIHsKICAgICAgICAkTGlua1BhZ2UgLj0gIkN1c3RvbWVyVXNlcklEPSRQYXJh
bXtDdXN0b21lclVzZXJJRH07IjsKICAgIH0KCiAgICBteSAlUGFnZU5hdiA9ICRMYXlvdXRPYmpl
Y3QtPlBhZ2VOYXZCYXIoCiAgICAgICAgU3RhcnRIaXQgICAgPT4gJFNlbGYtPntTdGFydEhpdH0s
CiAgICAgICAgUGFnZVNob3duICAgPT4gJFNlbGYtPntQYWdlU2hvd259LAogICAgICAgIEFsbEhp
dHMgICAgID0+ICRUb3RhbCB8fCAxLAogICAgICAgIEFjdGlvbiAgICAgID0+ICdBY3Rpb249JyAu
ICRMYXlvdXRPYmplY3QtPntBY3Rpb259LAogICAgICAgIExpbmsgICAgICAgID0+ICRMaW5rUGFn
ZSwKICAgICAgICBBSkFYUmVwbGFjZSA9PiAnRGFzaGJvYXJkJyAuICRTZWxmLT57TmFtZX0sCiAg
ICAgICAgSURQcmVmaXggICAgPT4gJ0Rhc2hib2FyZCcgLiAkU2VsZi0+e05hbWV9LAogICAgICAg
IEFKQVggICAgICAgID0+ICRQYXJhbXtBSkFYfSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5C
bG9jaygKICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyTmF2
QmFyJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0s
CiAgICAgICAgICAgIE5hbWUgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgJVBhZ2VOYXYs
CiAgICAgICAgfSwKICAgICk7CgogICAgIyBzaG93IHRhYmxlIGhlYWRlcgogICAgJExheW91dE9i
amVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hl
YWRlcicsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgd2hpY2ggbWV0
YSBpdGVtcyB3aWxsIGJlIHNob3duCiAgICBteSBATWV0YUl0ZW1zID0gJExheW91dE9iamVjdC0+
VGlja2V0TWV0YUl0ZW1zQ291bnQoKTsKCiAgICAjIHJlbW92ZSAoLSkgZnJvbSBuYW1lIGZvciBK
UyBjb25maWcKICAgIG15ICRXaWRnZXROYW1lID0gJFNlbGYtPntOYW1lfTsKICAgICRXaWRnZXRO
YW1lID1+IHN7LX17fWc7CgogICAgIyBzaG93IG5vbi1sYWJlbGVkIHRhYmxlIGhlYWRlcnMKICAg
IG15ICRDU1MgPSAnJzsKCiAgICAjIFNlbmQgZGF0YSB0byBKUyBmb3IgaW5pdCBjb250YWluZXIu
CiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0luaXRDb250
YWluZXJEYXNoYm9hcmQnIC4gJFNlbGYtPntOYW1lfSwKICAgICAgICBWYWx1ZSA9PiB7CiAgICAg
ICAgICAgIFNvcnRCeSA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAgICAgIE9y
ZGVyQnkgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICB9LAogICAgKTsKCiAgICBm
b3IgbXkgJEl0ZW0gKEBNZXRhSXRlbXMpIHsKICAgICAgICAkQ1NTID0gJyc7CiAgICAgICAgbXkg
JFRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRJdGVt
KTsKCiAgICAgICAgIyBzZXQgdGl0bGUgZGVzY3JpcHRpb24KICAgICAgICBpZiAoICRTZWxmLT57
U29ydEJ5fSAmJiAkU2VsZi0+e1NvcnRCeX0gZXEgJEl0ZW0gKSB7CiAgICAgICAgICAgIG15ICRU
aXRsZURlc2MgPSAnJzsKICAgICAgICAgICAgaWYgKCAkVGlja2V0U2VhcmNoe09yZGVyQnl9IGVx
ICdEb3duJyApIHsKICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0RGVzY2VuZGluZ0xhcmdl
JzsKICAgICAgICAgICAgICAgICRUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ3NvcnRlZCBkZXNj
ZW5kaW5nJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAg
ICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICRUaXRsZURl
c2MgPSBUcmFuc2xhdGFibGUoJ3NvcnRlZCBhc2NlbmRpbmcnKTsKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgJFRpdGxlRGVzYyA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRy
YW5zbGF0ZSgkVGl0bGVEZXNjKTsKICAgICAgICAgICAgJFRpdGxlIC49ICcsICcgLiAkVGl0bGVE
ZXNjOwogICAgICAgIH0KCiAgICAgICAgIyBhZGQgc3Vycm91bmRpbmcgY29udGFpbmVyCiAgICAg
ICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVy
dmlld0hlYWRlcicsCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAg
ICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGEnLAog
ICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgPT4g
JENTUywKICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJEl0ZW0sCiAgICAgICAg
ICAgICAgICBUaXRsZSAgICAgICAgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgfSwKICAgICAg
ICApOwoKICAgICAgICBpZiAoICRJdGVtIGVxICdOZXcgQXJ0aWNsZScgKSB7CgogICAgICAgICAg
ICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRhRW1wdHknLAogICAgICAgICAgICAgICAgRGF0YSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkSXRlbSwKICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAg
ICAgICAgICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRk
SlNEYXRhKAogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0hlYWRlck1ldGEnIC4gJFdpZGdldE5h
bWUsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAg
ICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgIE9yZGVyQnkg
ICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICBI
ZWFkZXJDb2x1bW5OYW1lID0+ICRJdGVtLAogICAgICAgICAgICAgICAgICAgIFNvcnRpbmdDb2x1
bW4gICAgPT4gJFBhcmFte1NvcnRpbmdDb2x1bW59LAogICAgICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAg
ICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlck1ldGFMaW5rJywKICAg
ICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAg
ICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAg
ICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAog
ICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJEl0ZW0sCiAgICAgICAgICAg
ICAgICAgICAgVGl0bGUgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNlbmQgZGF0YSB0byBKUwogICAg
JExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdIZWFkZXJDb2x1bW4n
IC4gJFdpZGdldE5hbWUsCiAgICAgICAgVmFsdWUgPT4gXEBDb2x1bW5zCiAgICApOwoKICAgICMg
c2hvdyBhbGwgbmVlZGVkIGhlYWRlcnMKICAgIEhFQURFUkNPTFVNTjoKICAgIGZvciBteSAkSGVh
ZGVyQ29sdW1uIChAQ29sdW1ucykgewoKICAgICAgICAjIHNraXAgQ3VzdG9tZXJJRCBpZiBDdXN0
b21lciBJbmZvcm1hdGlvbiBDZW50ZXIKICAgICAgICBpZiAoICRTZWxmLT57QWN0aW9ufSBlcSAn
QWdlbnRDdXN0b21lckluZm9ybWF0aW9uQ2VudGVyJyAmJiAkSGVhZGVyQ29sdW1uIGVxICdDdXN0
b21lcklEJyApIHsKICAgICAgICAgICAgbmV4dCBIRUFERVJDT0xVTU47CiAgICAgICAgfQoKICAg
ICAgICBpZiAoICRIZWFkZXJDb2x1bW4gIX4gbXtcQSBEeW5hbWljRmllbGRffXhtcyApIHsKCiAg
ICAgICAgICAgICRDU1MgPSAnJzsKICAgICAgICAgICAgbXkgJFRpdGxlID0gJExheW91dE9iamVj
dC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRIZWFkZXJDb2x1bW4pOwoKICAgICAgICAg
ICAgIyBTZXQgdGl0bGUgZGVzY3JpcHRpb24uCiAgICAgICAgICAgIGlmICggJFNlbGYtPntTb3J0
Qnl9ICYmICRTZWxmLT57U29ydEJ5fSBlcSAkSGVhZGVyQ29sdW1uICkgewogICAgICAgICAgICAg
ICAgbXkgJFRpdGxlRGVzYyA9ICcnOwogICAgICAgICAgICAgICAgaWYgKCAkVGlja2V0U2VhcmNo
e09yZGVyQnl9IGVxICdEb3duJyApIHsKICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29y
dERlc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAgICAgJFRpdGxlRGVzYyA9IFRyYW5z
bGF0YWJsZSgnc29ydGVkIGRlc2NlbmRpbmcnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0QXNjZW5kaW5n
TGFyZ2UnOwogICAgICAgICAgICAgICAgICAgICRUaXRsZURlc2MgPSBUcmFuc2xhdGFibGUoJ3Nv
cnRlZCBhc2NlbmRpbmcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkVGl0
bGVEZXNjID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRUaXRs
ZURlc2MpOwogICAgICAgICAgICAgICAgJFRpdGxlIC49ICcsICcgLiAkVGl0bGVEZXNjOwogICAg
ICAgICAgICB9CgogICAgICAgICAgICAjIHRyYW5zbGF0ZSB0aGUgY29sdW1uIG5hbWUgdG8gd3Jp
dGUgaXQgaW4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UKICAgICAgICAgICAgbXkgJFRyYW5zbGF0ZWRX
b3JkOwogICAgICAgICAgICBpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0VzY2FsYXRpb25UaW1lJyAp
IHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntMYW5n
dWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnU2VydmljZSBUaW1lJyk7CiAgICAgICAgICAgIH0KICAg
ICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdFc2NhbGF0aW9uUmVzcG9uc2VUaW1l
JyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntM
YW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRmlyc3QgUmVzcG9uc2UgVGltZScpOwogICAgICAg
ICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnRXNjYWxhdGlvblNv
bHV0aW9uVGltZScgKSB7CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0
T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1NvbHV0aW9uIFRpbWUnKTsKICAg
ICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0VzY2FsYXRp
b25VcGRhdGVUaW1lJyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlv
dXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnVXBkYXRlIFRpbWUnKTsKICAg
ICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ1BlbmRpbmdU
aW1lJyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3Qt
PntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUGVuZGluZyB0aWxsJyk7CiAgICAgICAgICAg
IH0KICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lckNvbXBhbnlO
YW1lJyApIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3Qt
PntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ3VzdG9tZXIgTmFtZScpOwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIGVsc2lmICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJJRCcgKSB7
CiAgICAgICAgICAgICAgICAkVHJhbnNsYXRlZFdvcmQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3Vh
Z2VPYmplY3R9LT5UcmFuc2xhdGUoJ0N1c3RvbWVyIElEJyk7CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgZWxzaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lck5hbWUnICkgewogICAgICAg
ICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0
fS0+VHJhbnNsYXRlKCdDdXN0b21lciBVc2VyIE5hbWUnKTsKICAgICAgICAgICAgfQogICAgICAg
ICAgICBlbHNpZiAoICRIZWFkZXJDb2x1bW4gZXEgJ0N1c3RvbWVyVXNlcklEJyApIHsKICAgICAg
ICAgICAgICAgICRUcmFuc2xhdGVkV29yZCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVj
dH0tPlRyYW5zbGF0ZSgnQ3VzdG9tZXIgVXNlciBJRCcpOwogICAgICAgICAgICB9CiAgICAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRXb3JkID0gJExheW91dE9iamVj
dC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRIZWFkZXJDb2x1bW4pOwogICAgICAgICAg
ICB9CgogICAgICAgICAgICAjIGFkZCBzdXJyb3VuZGluZyBjb250YWluZXIKICAgICAgICAgICAg
JExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdHZW5lcmFsT3Zl
cnZpZXdIZWFkZXInLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5C
bG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNI
ZWFkZXJUaWNrZXRIZWFkZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAg
ICAgKTsKCiAgICAgICAgICAgIGlmICggJEhlYWRlckNvbHVtbiBlcSAnVGlja2V0TnVtYmVyJyAp
IHsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExh
eW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdUaWNr
ZXROdW1iZXJDb2x1bW4nIC4gJFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUg
PT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICRTZWxmLT57TmFt
ZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgPT4gJFRpY2tldFNlYXJj
aHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydGluZ0NvbHVtbiA9PiAkUGFy
YW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAg
ICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldE51bWJl
ckNvbHVtbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgQ1NTID0+ICRDU1MgfHwgJycs
CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAg
ICAgICAgICAgICAgICAgIFRpdGxlID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG5leHQgSEVBREVSQ09MVU1OOwogICAg
ICAgICAgICB9CgogICAgICAgICAgICBteSAkRmlsdGVyVGl0bGUgICAgID0gJFRyYW5zbGF0ZWRX
b3JkOwogICAgICAgICAgICBteSAkRmlsdGVyVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdmaWx0
ZXIgbm90IGFjdGl2ZScpOwogICAgICAgICAgICBpZiAoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVy
U2VsZWN0fSAmJiAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0tPnskSGVhZGVyQ29sdW1u
fSApIHsKICAgICAgICAgICAgICAgICRDU1MgLj0gJyBGaWx0ZXJBY3RpdmUnOwogICAgICAgICAg
ICAgICAgJEZpbHRlclRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnZmlsdGVyIGFjdGl2ZScpOwog
ICAgICAgICAgICB9CiAgICAgICAgICAgICRGaWx0ZXJUaXRsZURlc2MgPSAkTGF5b3V0T2JqZWN0
LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEZpbHRlclRpdGxlRGVzYyk7CiAgICAgICAg
ICAgICRGaWx0ZXJUaXRsZSAuPSAnLCAnIC4gJEZpbHRlclRpdGxlRGVzYzsKCiAgICAgICAgICAg
ICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExh
cmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsK
ICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkSGVhZGVyQ29sdW1u
ICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRy
YW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgQ1NTICAg
ICAgICAgICAgICAgICAgPT4gJENTUyAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgdmVyaWZ5IGlmIGNvbHVtbiBpcyBmaWx0
ZXJhYmxlIGFuZCBzb3J0YWJsZQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkU2Vs
Zi0+e1ZhbGlkU29ydGFibGVDb2x1bW5zfS0+eyRIZWFkZXJDb2x1bW59CiAgICAgICAgICAgICAg
ICAmJiAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57JEhlYWRlckNvbHVtbn0KICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgIG15ICRDc3M7CiAg
ICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEhlYWRlckNvbHVtbiBlcSAn
Q3VzdG9tZXJJRCcKICAgICAgICAgICAgICAgICAgICB8fCAkSGVhZGVyQ29sdW1uIGVxICdSZXNw
b25zaWJsZScKICAgICAgICAgICAgICAgICAgICB8fCAkSGVhZGVyQ29sdW1uIGVxICdPd25lcicK
ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgJENzcyA9ICdIaWRkZW4nOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMg
dmFyaWFibGUgdG8gc2F2ZSB0aGUgZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICAgICAgICAgICAgICBt
eSAkQ29sdW1uRmlsdGVySFRNTCA9ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAg
ICAgICAgICAgICAgICBDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAgICAg
ICAgICAgQ3NzICAgICAgICA9PiAkQ3NzLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAg
ICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRk
SlNEYXRhKAogICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5GaWx0ZXJTb3J0JyAu
ICRIZWFkZXJDb2x1bW4gLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJEhlYWRlckNv
bHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2VsZi0+
e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgID0+ICRTZWxm
LT57U29ydEJ5fSB8fCAnQWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAg
ICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICBT
b3J0aW5nQ29sdW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0
LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRH
ZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGluaycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAg
ICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgQ1NTICAgICAgICAgICAgICAgICAgPT4gJENTUywKICAgICAgICAgICAgICAgICAg
ICAgICAgSGVhZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJD
b2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbkZpbHRlclN0cmcgICAgID0+ICRD
b2x1bW5GaWx0ZXJIVE1MLAogICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAg
ICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICBT
b3J0QnkgICAgICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0FnZScsCiAgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAg
ICAgICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgID0+ICRUaXRsZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgRmlsdGVyVGl0bGUgICAgICAgICAgPT4gJEZpbHRlclRpdGxl
LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAg
ICAgIGlmICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJJRCcgKSB7CgogICAgICAgICAgICAg
ICAgICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVj
dC0+QWRkSlNEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAnQ3VzdG9tZXJJ
REF1dG9jb21wbGV0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5RGVsYXkgICAgICAgICAgPT4gMTAwLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTWF4UmVzdWx0c0Rpc3BsYXllZCA9PiAyMCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1pblF1ZXJ5TGVuZ3RoICAgICAgPT4gMiwKICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAg
ICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdD
b250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGlua0N1c3RvbWVySURT
ZWFyY2gnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAg
ICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgZWxzaWYgKCAkSGVh
ZGVyQ29sdW1uIGVxICdSZXNwb25zaWJsZScgfHwgJEhlYWRlckNvbHVtbiBlcSAnT3duZXInICkg
ewoKICAgICAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAg
ICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5
ICAgPT4gJ1VzZXJBdXRvY29tcGxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDEw
MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDIsCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAg
ICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAg
TmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtV
c2VyU2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAg
ICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg
ICAjIHZlcmlmeSBpZiBjb2x1bW4gaXMganVzdCBmaWx0ZXJhYmxlCiAgICAgICAgICAgIGVsc2lm
ICggJFNlbGYtPntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyRIZWFkZXJDb2x1bW59ICkgewoK
ICAgICAgICAgICAgICAgIG15ICRDc3M7CiAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXJDb2x1
bW4gZXEgJ0N1c3RvbWVyVXNlcklEJyApIHsKICAgICAgICAgICAgICAgICAgICAkQ3NzID0gJ0hp
ZGRlbic7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyB2YXJpYWJsZSB0byBz
YXZlIHRoZSBmaWx0ZXIncyBIVE1MIGNvZGUKICAgICAgICAgICAgICAgIG15ICRDb2x1bW5GaWx0
ZXJIVE1MID0gJFNlbGYtPl9Jbml0aWFsQ29sdW1uRmlsdGVyKAogICAgICAgICAgICAgICAgICAg
IENvbHVtbk5hbWUgPT4gJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICBDc3MgICAg
ICAgID0+ICRDc3MsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2VuZCBk
YXRhIHRvIEpTCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAg
ICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0NvbHVtbkZpbHRlcicgLiAkSGVhZGVyQ29sdW1uIC4g
JFdpZGdldE5hbWUsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAg
ICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lID0+ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJ0Fn
ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFRpY2tldFNl
YXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsK
CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAg
ICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyJywK
ICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBh
cmFtLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkSGVh
ZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9
PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAk
VHJhbnNsYXRlZFdvcmQgfHwgJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAg
Q29sdW1uRmlsdGVyU3RyZyAgICAgPT4gJENvbHVtbkZpbHRlckhUTUwsCiAgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAg
ICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgID0+ICRUaXRsZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgRmlsdGVyVGl0bGUgICAgICAgICAgPT4gJEZpbHRlclRpdGxlLAogICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlm
ICggJEhlYWRlckNvbHVtbiBlcSAnQ3VzdG9tZXJVc2VySUQnICkgewoKICAgICAgICAgICAgICAg
ICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3Qt
PkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0N1c3RvbWVyVXNl
ckF1dG9jb21wbGV0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+IHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFF1ZXJ5RGVsYXkgICAgICAgICAgPT4gMTAwLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTWF4UmVzdWx0c0Rpc3BsYXllZCA9PiAyMCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1pblF1ZXJ5TGVuZ3RoICAgICAgPT4gMiwKICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAg
ICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdD
b250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGlua0N1c3RvbWVyVXNl
clNlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAg
ICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg
IyB2ZXJpZnkgaWYgY29sdW1uIGlzIGp1c3Qgc29ydGFibGUKICAgICAgICAgICAgZWxzaWYgKCAk
U2VsZi0+e1ZhbGlkU29ydGFibGVDb2x1bW5zfS0+eyRIZWFkZXJDb2x1bW59ICkgewoKICAgICAg
ICAgICAgICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0
LT5BZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gJ0NvbHVtblNvcnRhYmxl
JyAuICRIZWFkZXJDb2x1bW4gLiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICBWYWx1
ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJEhlYWRl
ckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiAkU2Vs
Zi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgID0+ICRT
ZWxmLT57U29ydEJ5fSB8fCAkSGVhZGVyQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICBP
cmRlckJ5ICAgICAgICAgID0+ICRUaWNrZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAg
ICAgICAgICAgIFNvcnRpbmdDb2x1bW4gICAgPT4gJFBhcmFte1NvcnRpbmdDb2x1bW59LAogICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRM
YXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rJywKICAgICAgICAgICAgICAgICAgICBE
YXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAg
ICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkSGVhZGVyQ29sdW1uLAogICAgICAgICAg
ICAgICAgICAgICAgICBDU1MgICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAg
ICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZFdvcmQgfHwgJEhl
YWRlckNvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAg
PT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgU29ydEJ5
ICAgICAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICRIZWFkZXJDb2x1bW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0s
CiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgID0+ICRUaXRsZSwK
ICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQog
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAog
ICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFk
ZXJDb2x1bW5FbXB0eScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyTmFtZVRy
YW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRXb3JkIHx8ICRIZWFkZXJDb2x1bW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgICAgID0+ICRIZWFkZXJDb2x1bW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MsCiAgICAgICAg
ICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgID0+ICRUaXRsZSwKICAgICAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0K
CiAgICAgICAgIyBEeW5hbWljIGZpZWxkcwogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAk
RHluYW1pY0ZpZWxkQ29uZmlnOwogICAgICAgICAgICBteSAkREZDb2x1bW4gPSAkSGVhZGVyQ29s
dW1uOwogICAgICAgICAgICAkREZDb2x1bW4gPX4gcy9EeW5hbWljRmllbGRfLy9nOwogICAgICAg
ICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgICAgIGZvciBteSAkREZDb25maWcgKCBAeyAkU2Vs
Zi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxE
IGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkREZDb25maWcpOwogICAgICAgICAgICAgICAgbmV4dCBE
WU5BTUlDRklFTEQgaWYgJERGQ29uZmlnLT57TmFtZX0gbmUgJERGQ29sdW1uOwoKICAgICAgICAg
ICAgICAgICREeW5hbWljRmllbGRDb25maWcgPSAkREZDb25maWc7CiAgICAgICAgICAgICAgICBs
YXN0IERZTkFNSUNGSUVMRDsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXh0IEhFQURFUkNP
TFVNTiBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAg
ICAgICBteSAkTGFiZWwgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9OwoKICAgICAgICAg
ICAgbXkgJFRyYW5zbGF0ZWRMYWJlbCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0t
PlRyYW5zbGF0ZSgkTGFiZWwpOwoKICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZE5hbWUgPSAn
RHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICAg
ICBteSAkQ1NTICAgICAgICAgICAgID0gJyc7CiAgICAgICAgICAgIG15ICRGaWx0ZXJUaXRsZSAg
ICAgPSAkTGFiZWw7CiAgICAgICAgICAgIG15ICRGaWx0ZXJUaXRsZURlc2MgPSBUcmFuc2xhdGFi
bGUoJ2ZpbHRlciBub3QgYWN0aXZlJyk7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntHZXRDb2x1
bW5GaWx0ZXJTZWxlY3R9ICYmIGRlZmluZWQgJFNlbGYtPntHZXRDb2x1bW5GaWx0ZXJTZWxlY3R9
LT57JER5bmFtaWNGaWVsZE5hbWV9ICkgewogICAgICAgICAgICAgICAgJENTUyAuPSAnRmlsdGVy
QWN0aXZlICc7CiAgICAgICAgICAgICAgICAkRmlsdGVyVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxl
KCdmaWx0ZXIgYWN0aXZlJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJEZpbHRlclRpdGxl
RGVzYyA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkRmlsdGVy
VGl0bGVEZXNjKTsKICAgICAgICAgICAgJEZpbHRlclRpdGxlIC49ICcsICcgLiAkRmlsdGVyVGl0
bGVEZXNjOwoKICAgICAgICAgICAgIyBnZXQgZmllbGQgc29ydGFibGUgY29uZGl0aW9uCiAgICAg
ICAgICAgIG15ICRJc1NvcnRhYmxlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpLT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgIER5
bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAg
QmVoYXZpb3IgICAgICAgICAgID0+ICdJc1NvcnRhYmxlJywKICAgICAgICAgICAgKTsKCiAgICAg
ICAgICAgICMgc2V0IHRpdGxlCiAgICAgICAgICAgIG15ICRUaXRsZSA9ICRMYWJlbDsKCiAgICAg
ICAgICAgICMgYWRkIHN1cnJvdW5kaW5nIGNvbnRhaW5lcgogICAgICAgICAgICAkTGF5b3V0T2Jq
ZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0dlbmVyYWxPdmVydmlld0hlYWRl
cicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAg
ICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tl
dEhlYWRlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwoKICAg
ICAgICAgICAgaWYgKCRJc1NvcnRhYmxlKSB7CiAgICAgICAgICAgICAgICBteSAkVGl0bGVEZXNj
ID0gJyc7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntT
b3J0Qnl9CiAgICAgICAgICAgICAgICAgICAgJiYgKCAkU2VsZi0+e1NvcnRCeX0gZXEgKCAnRHlu
YW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gKSApCiAgICAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmICggJFRp
Y2tldFNlYXJjaHtPcmRlckJ5fSBlcSAnRG93bicgKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICRDU1MgLj0gJyBTb3J0RGVzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICAgICAg
JFRpdGxlRGVzYyA9IFRyYW5zbGF0YWJsZSgnc29ydGVkIGRlc2NlbmRpbmcnKTsKICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICRDU1MgLj0gJyBTb3J0QXNjZW5kaW5nTGFyZ2UnOwogICAgICAgICAgICAgICAgICAg
ICAgICAkVGl0bGVEZXNjID0gVHJhbnNsYXRhYmxlKCdzb3J0ZWQgYXNjZW5kaW5nJyk7CiAgICAg
ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkVGl0bGVEZXNjID0gJExheW91
dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRUaXRsZURlc2MpOwogICAgICAg
ICAgICAgICAgICAgICRUaXRsZSAuPSAnLCAnIC4gJFRpdGxlRGVzYzsKICAgICAgICAgICAgICAg
IH0KCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAg
ICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uJywKICAg
ICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVy
Q29sdW1uTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSB8fCAnJywKICAgICAgICAgICAgICAgICAg
ICAgICAgQ1NTID0+ICRDU1MgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgZHluYW1pYyBmaWVsZCBp
cyBzb3J0YWJsZSBhbmQgZmlsdGVyYWJsZSAoc29ydGFibGUgY2hlY2sgd2FzIG1hZGUgYmVmb3Jl
KQogICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57
JER5bmFtaWNGaWVsZE5hbWV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIHZhcmlhYmxlIHRv
IHNhdmUgdGhlIGZpbHRlcidzIEhUTUwgY29kZQogICAgICAgICAgICAgICAgICAgIG15ICRDb2x1
bW5GaWx0ZXJIVE1MID0gJFNlbGYtPl9Jbml0aWFsQ29sdW1uRmlsdGVyKAogICAgICAgICAgICAg
ICAgICAgICAgICBDb2x1bW5OYW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAg
ICAgICAgICAgICBMYWJlbCAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICApOwoK
ICAgICAgICAgICAgICAgICAgICAjIHNlbmQgZGF0YSB0byBKUwogICAgICAgICAgICAgICAgICAg
ICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAg
PT4gJ0NvbHVtbkZpbHRlclNvcnQnIC4gJER5bmFtaWNGaWVsZE5hbWUgLiAkV2lkZ2V0TmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSGVhZGVyQ29sdW1uTmFtZSA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9
IHx8ICdBZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9
PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29y
dGluZ0NvbHVtbiAgICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBv
dXRwdXQgc29ydGFibGUgYW5kIGZpbHRlcmFibGUgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAg
ICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1l
ID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRmlsdGVyTGluaycsCiAg
ICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAg
ICAgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1Mg
ICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVh
ZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRMYWJlbCB8fCAkRHluYW1pY0ZpZWxkTmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbHVtbkZpbHRlclN0cmcgICAgID0+ICRD
b2x1bW5GaWx0ZXJIVE1MLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXJCeSAgICAg
ICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29ydEJ5fSB8fCAnQWdlJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICRTZWxm
LT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAg
ICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAg
ICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIG90aGVy
d2lzZSB0aGUgZHluYW1pYyBmaWVsZCBpcyBvbmx5IHNvcnRhYmxlIChzb3J0YWJsZSBjaGVjayB3
YXMgbWFkZSBiZWZvcmUpCiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAg
ICAgIyBzZW5kIGRhdGEgdG8gSlMKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5B
ZGRKU0RhdGEoCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5Tb3J0YWJs
ZScgLiAkRHluYW1pY0ZpZWxkTmFtZSAuICRXaWRnZXROYW1lLAogICAgICAgICAgICAgICAgICAg
ICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5O
YW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFt
ZSAgICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0gfHwgJER5bmFtaWNGaWVsZE5h
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRUaWNr
ZXRTZWFyY2h7T3JkZXJCeX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0aW5nQ29s
dW1uICAgID0+ICRQYXJhbXtTb3J0aW5nQ29sdW1ufSwKICAgICAgICAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIG91dHB1dCBz
b3J0YWJsZSBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+
QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tl
dEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1lICAgICA9PiAkRHluYW1pY0ZpZWxkTmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAgID0+ICRDU1MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJOYW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNs
YXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgT3JkZXJCeSAgICAgICAgICAgICAgPT4gJFRpY2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgID0+ICRTZWxmLT57U29y
dEJ5fSB8fCAkRHluYW1pY0ZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWUgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAgICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGUgZHluYW1pYyBmaWVsZCB3YXMg
bm90IHNvcnRhYmxlIChjaGVjayB3YXMgbWFkZSBhbmQgZmFpbCBiZWZvcmUpCiAgICAgICAgICAg
ICMgaXQgbWlnaHQgYmUgZmlsdGVyYWJsZQogICAgICAgICAgICBlbHNpZiAoICRTZWxmLT57VmFs
aWRGaWx0ZXJhYmxlQ29sdW1uc30tPnskRHluYW1pY0ZpZWxkTmFtZX0gKSB7CgogICAgICAgICAg
ICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAn
Q29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbicsCiAgICAgICAgICAgICAgICAg
ICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4g
JER5bmFtaWNGaWVsZE5hbWUgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAg
ICAgICAgICAgPT4gJENTUyAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAg
ICAgIFRpdGxlICAgICAgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgdmFyaWFibGUgdG8gc2F2ZSB0aGUg
ZmlsdGVyJ3MgSFRNTCBjb2RlCiAgICAgICAgICAgICAgICBteSAkQ29sdW1uRmlsdGVySFRNTCA9
ICRTZWxmLT5fSW5pdGlhbENvbHVtbkZpbHRlcigKICAgICAgICAgICAgICAgICAgICBDb2x1bW5O
YW1lID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgIExhYmVsICAgICAg
PT4gJExhYmVsLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNlbmQgZGF0
YSB0byBKUwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAg
ICAgICAgICAgICAgIEtleSAgID0+ICdDb2x1bW5GaWx0ZXInIC4gJER5bmFtaWNGaWVsZE5hbWUg
LiAkV2lkZ2V0TmFtZSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5hbWUgPT4gJER5bmFtaWNGaWVsZE5hbWUsCiAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gJFNlbGYtPntOYW1lfSwKICAg
ICAgICAgICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkU2VsZi0+e1NvcnRCeX0g
fHwgJ0FnZScsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFRp
Y2tldFNlYXJjaHtPcmRlckJ5fSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ICAgKTsKCiAgICAgICAgICAgICAgICAjIG91dHB1dCBmaWx0ZXJhYmxlIChub3Qgc29ydGFibGUp
IGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAg
ICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJD
b2x1bW5GaWx0ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAg
ICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckNvbHVtbk5h
bWUgICAgID0+ICREeW5hbWljRmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBDU1Mg
ICAgICAgICAgICAgICAgICA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJO
YW1lVHJhbnNsYXRlZCA9PiAkVHJhbnNsYXRlZExhYmVsIHx8ICREeW5hbWljRmllbGROYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICBDb2x1bW5GaWx0ZXJTdHJnICAgICA9PiAkQ29sdW1uRmls
dGVySFRNTCwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgPT4g
JFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAg
ICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJUaXRsZSAgICAgICAg
ICA9PiAkRmlsdGVyVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHRoZSBmaWVsZCBpcyBu
b3QgZmlsdGVyYWJsZSBhbmQgbm90IHNvcnRhYmxlCiAgICAgICAgICAgIGVsc2UgewoKICAgICAg
ICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUg
PT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4nLAogICAgICAgICAgICAg
ICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJDb2x1bW5OYW1l
ID0+ICREeW5hbWljRmllbGROYW1lIHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDU1Mg
PT4gJENTUyB8fCAnJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsK
CiAgICAgICAgICAgICAgICAjIG91dHB1dCBwbGFpbiBkeW5hbWljIGZpZWxkIGhlYWRlciAobm90
IGZpbHRlcmFibGUsIG5vdCBzb3J0YWJsZSkKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3Qt
PkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdl
bmVyaWNIZWFkZXJDb2x1bW5FbXB0eScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVh
ZGVyTmFtZVRyYW5zbGF0ZWQgPT4gJFRyYW5zbGF0ZWRMYWJlbCB8fCAkRHluYW1pY0ZpZWxkTmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyQ29sdW1uTmFtZSAgICAgPT4gJER5bmFt
aWNGaWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIENTUyAgICAgICAgICAgICAgICAg
ID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgID0+
ICRUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAg
ICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgdGlja2V0cwogICAgbXkgJENvdW50
ID0gMDsKICAgIFRJQ0tFVElEOgogICAgZm9yIG15ICRUaWNrZXRJRCAoIEB7JFRpY2tldElEc30g
KSB7CiAgICAgICAgJENvdW50Kys7CiAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAkQ291bnQgPCAk
U2VsZi0+e1N0YXJ0SGl0fTsKICAgICAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlj
a2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAg
ICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIER5bmFtaWNG
aWVsZHMgPT4gMCwKICAgICAgICAgICAgU2lsZW50ICAgICAgICA9PiAxCiAgICAgICAgKTsKCiAg
ICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJVRpY2tldDsKCiAgICAgICAgIyBzZXQgYSBkZWZhdWx0
IHRpdGxlIGlmIHRpY2tldCBoYXMgbm8gdGl0bGUKICAgICAgICBpZiAoICEkVGlja2V0e1RpdGxl
fSApIHsKICAgICAgICAgICAgJFRpY2tldHtUaXRsZX0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3Vh
Z2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnVGhpcyB0aWNrZXQgaGFzIG5v
IHRpdGxlIG9yIHN1YmplY3QnCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAk
V2hvbGVUaXRsZSA9ICRUaWNrZXR7VGl0bGV9IHx8ICcnOwogICAgICAgICRUaWNrZXR7VGl0bGV9
ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U3ViamVjdENsZWFuKAogICAgICAgICAgICBUaWNrZXRO
dW1iZXIgPT4gJFRpY2tldHtUaWNrZXROdW1iZXJ9LAogICAgICAgICAgICBTdWJqZWN0ICAgICAg
PT4gJFRpY2tldHtUaXRsZX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgaHVtYW4gYWdl
CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntUaW1lfSBuZSAnQWdlJyApIHsKICAgICAg
ICAgICAgJFRpY2tldHtUaW1lfSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAg
ICAgICAgICAgQWdlICAgICAgICAgICAgICAgID0+ICRUaWNrZXR7ICRTZWxmLT57Q29uZmlnfS0+
e1RpbWV9IH0sCiAgICAgICAgICAgICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAg
ICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICk7CiAgICAg
ICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGlja2V0e1RpbWV9ID0gJExheW91dE9i
amVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAgICBBZ2UgICA9PiAkVGlja2V0eyAkU2Vs
Zi0+e0NvbmZpZ30tPntUaW1lfSB9LAogICAgICAgICAgICAgICAgU3BhY2UgPT4gJyAnLAogICAg
ICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzaG93IHRpY2tldAogICAgICAgICRMYXlv
dXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRH
ZW5lcmljUm93JywKICAgICAgICAgICAgRGF0YSA9PiBcJVRpY2tldCwKICAgICAgICApOwoKICAg
ICAgICAjIHNob3cgdGlja2V0IGZsYWdzCiAgICAgICAgbXkgQFRpY2tldE1ldGFJdGVtcyA9ICRM
YXlvdXRPYmplY3QtPlRpY2tldE1ldGFJdGVtcygKICAgICAgICAgICAgVGlja2V0ID0+IFwlVGlj
a2V0LAogICAgICAgICk7CiAgICAgICAgZm9yIG15ICRJdGVtIChAVGlja2V0TWV0YUl0ZW1zKSB7
CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUg
PT4gJ0dlbmVyYWxPdmVydmlld1JvdycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlv
dXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVudExhcmdlVGlj
a2V0R2VuZXJpY1Jvd01ldGEnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAg
ICAgKTsKICAgICAgICAgICAgaWYgKCRJdGVtKSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2Jq
ZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNr
ZXRHZW5lcmljUm93TWV0YUltYWdlJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRJdGVt
LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBz
YXZlIGNvbHVtbiBjb250ZW50CiAgICAgICAgbXkgJERhdGFWYWx1ZTsKCiAgICAgICAgIyBnZXQg
bmVlZGVkIG9iamVjdHMKICAgICAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKICAgICAgICBteSAk
VXNlck9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7
CiAgICAgICAgCiAgICAgICAgbXkgJUN1c3RvbWVySW5mbzsKCiAgICAgICAgIyBzaG93IGFsbCBu
ZWVkZWQgY29sdW1ucwogICAgICAgIENPTFVNTjoKICAgICAgICBmb3IgbXkgJENvbHVtbiAoQENv
bHVtbnMpIHsKCiAgICAgICAgICAgICMgc2tpcCBDdXN0b21lcklEIGlmIEN1c3RvbWVyIEluZm9y
bWF0aW9uIENlbnRlcgogICAgICAgICAgICBpZiAoICRTZWxmLT57QWN0aW9ufSBlcSAnQWdlbnRD
dXN0b21lckluZm9ybWF0aW9uQ2VudGVyJyAmJiAkQ29sdW1uIGVxICdDdXN0b21lcklEJyApIHsK
ICAgICAgICAgICAgICAgIG5leHQgQ09MVU1OOwogICAgICAgICAgICB9CgogICAgICAgICAgICBp
ZiAoICRDb2x1bW4gIX4gbXtcQSBEeW5hbWljRmllbGRffXhtcyApIHsKCiAgICAgICAgICAgICAg
ICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdHZW5l
cmFsT3ZlcnZpZXdSb3cnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRMYXlv
dXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJn
ZVRpY2tldEdlbmVyaWNUaWNrZXRDb2x1bW4nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4g
e30sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICRCbG9ja1R5cGUgPSAn
JzsKICAgICAgICAgICAgICAgIG15ICRDU1NDbGFzcyAgPSAnJzsKCiAgICAgICAgICAgICAgICBp
ZiAoICRDb2x1bW4gZXEgJ1RpY2tldE51bWJlcicgKSB7CiAgICAgICAgICAgICAgICAgICAgJExh
eW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRl
bnRMYXJnZVRpY2tldEdlbmVyaWNUaWNrZXROdW1iZXInLAogICAgICAgICAgICAgICAgICAgICAg
ICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVUaWNrZXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVGlja2V0e1RpdGxlfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAg
IG5leHQgQ09MVU1OOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAk
Q29sdW1uIGVxICdFc2NhbGF0aW9uVGltZScgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJUVz
Y2FsYXRpb25EYXRhOwogICAgICAgICAgICAgICAgICAgICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0
aW9uVGltZX0gICAgICAgICAgICA9ICRUaWNrZXR7RXNjYWxhdGlvblRpbWV9OwogICAgICAgICAg
ICAgICAgICAgICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uRGVzdGluYXRpb25EYXRlfSA9ICRU
aWNrZXR7RXNjYWxhdGlvbkRlc3RpbmF0aW9uRGF0ZX07CgogICAgICAgICAgICAgICAgICAgICRF
c2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uVGltZUh1bWFufSA9ICRMYXlvdXRPYmplY3QtPkN1c3Rv
bWVyQWdlKAogICAgICAgICAgICAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgPT4gJEVz
Y2FsYXRpb25EYXRhe0VzY2FsYXRpb25UaW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgVGlt
ZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIFNwYWNlICAgICAg
ICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgKSB8fCAnLSc7CiAgICAgICAgICAg
ICAgICAgICAgJEVzY2FsYXRpb25EYXRhe0VzY2FsYXRpb25UaW1lV29ya2luZ1RpbWV9ID0gJExh
eW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgIEFnZSAgICAg
ICAgICAgICAgICA9PiAkRXNjYWxhdGlvbkRhdGF7RXNjYWxhdGlvblRpbWVXb3JraW5nVGltZX0s
CiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTaG93QWx3YXlzTG9uZyA9PiAxLAogICAgICAg
ICAgICAgICAgICAgICAgICBTcGFjZSAgICAgICAgICAgICAgPT4gJyAnLAogICAgICAgICAgICAg
ICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXR7RXNjYWxh
dGlvblRpbWV9ICYmICRUaWNrZXR7RXNjYWxhdGlvblRpbWV9IDwgNjAgKiA2MCAqIDEgKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICRFc2NhbGF0aW9uRGF0YXtFc2NhbGF0aW9uQ2xhc3N9ID0g
J1dhcm5pbmcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkTGF5
b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGVu
dExhcmdlVGlja2V0R2VuZXJpY0VzY2FsYXRpb25UaW1lJywKICAgICAgICAgICAgICAgICAgICAg
ICAgRGF0YSA9PiB7JUVzY2FsYXRpb25EYXRhfSwKICAgICAgICAgICAgICAgICAgICApOwogICAg
ICAgICAgICAgICAgICAgIG5leHQgQ09MVU1OOwogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdBZ2UnICkgewogICAgICAgICAgICAgICAgICAgICRE
YXRhVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAg
ICAgICAgQWdlICAgPT4gJFRpY2tldHtBZ2V9LAogICAgICAgICAgICAgICAgICAgICAgICBTcGFj
ZSA9PiAnICcsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnRXNjYWxhdGlvblNvbHV0aW9uVGltZScgKSB7
CiAgICAgICAgICAgICAgICAgICAgJEJsb2NrVHlwZSA9ICdFc2NhbGF0aW9uJzsKICAgICAgICAg
ICAgICAgICAgICAkRGF0YVZhbHVlID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJBZ2UoCiAgICAg
ICAgICAgICAgICAgICAgICAgIEFnZSA9PiAkVGlja2V0e1NvbHV0aW9uVGltZX0gfHwgMCwKICAg
ICAgICAgICAgICAgICAgICAgICAgVGltZVNob3dBbHdheXNMb25nID0+IDEsCiAgICAgICAgICAg
ICAgICAgICAgICAgIFNwYWNlICAgICAgICAgICAgICA9PiAnICcsCiAgICAgICAgICAgICAgICAg
ICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFRpY2tldHtTb2x1dGlvblRp
bWV9ICYmICRUaWNrZXR7U29sdXRpb25UaW1lfSA8IDYwICogNjAgKiAxICkgewogICAgICAgICAg
ICAgICAgICAgICAgICAkQ1NTQ2xhc3MgPSAnV2FybmluZyc7CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkQ29sdW1uIGVxICdF
c2NhbGF0aW9uUmVzcG9uc2VUaW1lJyApIHsKICAgICAgICAgICAgICAgICAgICAkQmxvY2tUeXBl
ID0gJ0VzY2FsYXRpb24nOwogICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkTGF5b3V0
T2JqZWN0LT5DdXN0b21lckFnZSgKICAgICAgICAgICAgICAgICAgICAgICAgQWdlID0+ICRUaWNr
ZXR7Rmlyc3RSZXNwb25zZVRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVT
aG93QWx3YXlzTG9uZyA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBTcGFjZSAgICAgICAg
ICAgICAgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAg
aWYgKAogICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRUaWNrZXR7Rmlyc3RSZXNwb25z
ZVRpbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICYmICRUaWNrZXR7Rmlyc3RSZXNwb25zZVRp
bWV9IDwgNjAgKiA2MCAqIDEKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJENTU0NsYXNzID0gJ1dhcm5pbmcnOwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVs
c2lmICggJENvbHVtbiBlcSAnRXNjYWxhdGlvblVwZGF0ZVRpbWUnICkgewogICAgICAgICAgICAg
ICAgICAgICRCbG9ja1R5cGUgPSAnRXNjYWxhdGlvbic7CiAgICAgICAgICAgICAgICAgICAgJERh
dGFWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgICAg
ICAgICBBZ2UgPT4gJFRpY2tldHtVcGRhdGVUaW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAg
ICAgICBUaW1lU2hvd0Fsd2F5c0xvbmcgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgU3Bh
Y2UgICAgICAgICAgICAgID0+ICcgJywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAg
ICAgICAgICAgIGlmICggZGVmaW5lZCAkVGlja2V0e1VwZGF0ZVRpbWV9ICYmICRUaWNrZXR7VXBk
YXRlVGltZX0gPCA2MCAqIDYwICogMSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJENTU0Ns
YXNzID0gJ1dhcm5pbmcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnUGVuZGluZ1RpbWUnICkgewogICAg
ICAgICAgICAgICAgICAgICRCbG9ja1R5cGUgPSAnRXNjYWxhdGlvbic7CiAgICAgICAgICAgICAg
ICAgICAgJERhdGFWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAg
ICAgICAgICAgICAgICBBZ2UgICA9PiAkVGlja2V0eydVbnRpbFRpbWUnfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgU3BhY2UgPT4gJyAnLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXR7VW50aWxUaW1lfSAmJiAkVGlja2V0e1Vu
dGlsVGltZX0gPCAtMSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJENTU0NsYXNzID0gJ1dh
cm5pbmcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnT3duZXInICkgewoKICAgICAgICAgICAgICAgICAg
ICAjIGdldCBvd25lciBpbmZvCiAgICAgICAgICAgICAgICAgICAgbXkgJU93bmVySW5mbyA9ICRV
c2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+
ICRUaWNrZXR7T3duZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAg
ICAgICAkRGF0YVZhbHVlID0gJE93bmVySW5mb3snVXNlckZ1bGxuYW1lJ307CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ1Jlc3BvbnNpYmxlJyAp
IHsKCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgcmVzcG9uc2libGUgaW5mbwogICAgICAgICAg
ICAgICAgICAgIG15ICVSZXNwb25zaWJsZUluZm8gPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEo
CiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVGlja2V0e1Jlc3BvbnNpYmxlSUR9
LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJERhdGFWYWx1ZSA9
ICRSZXNwb25zaWJsZUluZm97J1VzZXJGdWxsbmFtZSd9OwogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAgICAgICAgICRDb2x1bW4gZXEgJ1N0YXRl
JwogICAgICAgICAgICAgICAgICAgIHx8ICRDb2x1bW4gZXEgJ0xvY2snCiAgICAgICAgICAgICAg
ICAgICAgfHwgJENvbHVtbiBlcSAnUHJpb3JpdHknCiAgICAgICAgICAgICAgICAgICAgKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRCbG9ja1R5cGUgPSAnVHJhbnNsYXRh
YmxlJzsKICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJFRpY2tldHskQ29sdW1ufTsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJENvbHVtbiBlcSAnQ3Jl
YXRlZCcgfHwgJENvbHVtbiBlcSAnQ2hhbmdlZCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJEJs
b2NrVHlwZSA9ICdUaW1lJzsKICAgICAgICAgICAgICAgICAgICAkRGF0YVZhbHVlID0gJFRpY2tl
dHskQ29sdW1ufTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJENv
bHVtbiBlcSAnQ3VzdG9tZXJOYW1lJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgY3Vz
dG9tZXIgbmFtZQogICAgICAgICAgICAgICAgICAgIG15ICRDdXN0b21lck5hbWU7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKCAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgJEN1c3RvbWVyTmFtZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpDdXN0b21lclVzZXInKS0+Q3VzdG9tZXJOYW1lKAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVXNlckxvZ2luID0+ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICAg
ICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAk
RGF0YVZhbHVlID0gJEN1c3RvbWVyTmFtZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIGVsc2lmICggJENvbHVtbiBlcSAnQ3VzdG9tZXJDb21wYW55TmFtZScgKSB7CiAgICAgICAg
ICAgICAgICAgICAgbXkgJUN1c3RvbWVyQ29tcGFueURhdGE7CiAgICAgICAgICAgICAgICAgICAg
aWYgKCAkVGlja2V0e0N1c3RvbWVySUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAlQ3Vz
dG9tZXJDb21wYW55RGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0
b21lckNvbXBhbnknKS0+Q3VzdG9tZXJDb21wYW55R2V0KAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ3VzdG9tZXJJRCA9PiAkVGlja2V0e0N1c3RvbWVySUR9LAogICAgICAgICAgICAgICAg
ICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkRGF0
YVZhbHVlID0gJEN1c3RvbWVyQ29tcGFueURhdGF7Q3VzdG9tZXJDb21wYW55TmFtZX07CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoIHN1YnN0ciggJENvbHVtbiwgMCwg
OCApIGVxICdDdXN0b21lcicgKSB7CgogICAgICAgICAgICAgICAgICAgIGlmICggJFRpY2tldHtD
dXN0b21lclVzZXJJRH0gJiYgISVDdXN0b21lckluZm8gKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICVDdXN0b21lckluZm8gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3Vz
dG9tZXJVc2VyJyktPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVc2VyID0+ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICAgICAgICAg
ICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkRGF0YVZh
bHVlID0gJEN1c3RvbWVySW5mb3skQ29sdW1ufTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICREYXRhVmFsdWUgPSAkVGlja2V0eyRD
b2x1bW59OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJENvbHVtbiBl
cSAnVGl0bGUnICkgewogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAog
ICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICJDb250ZW50TGFyZ2VUaWNrZXRUaXRsZSIs
CiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVGl0bGUgPT4gIiREYXRhVmFsdWUgIiB8fCAnJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdob2xlVGl0bGUgPT4gJFdob2xlVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDbGFzcyAgICAgID0+ICRDU1NDbGFzcyB8fCAnJywKICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAog
ICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmlj
Q29sdW1uJEJsb2NrVHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJpY1ZhbHVlID0+ICREYXRhVmFsdWUgfHwgJy0n
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICRDU1NDbGFzcyAg
fHwgJycsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsK
ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgRHluYW1pYyBm
aWVsZHMKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxk
Q29uZmlnOwogICAgICAgICAgICAgICAgbXkgJERGQ29sdW1uID0gJENvbHVtbjsKICAgICAgICAg
ICAgICAgICRERkNvbHVtbiA9fiBzL0R5bmFtaWNGaWVsZF8vL2c7CiAgICAgICAgICAgICAgICBE
WU5BTUlDRklFTEQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJERGQ29uZmlnICggQHsgJFNlbGYt
PntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklF
TEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRERkNvbmZpZyk7CiAgICAgICAgICAgICAgICAgICAg
bmV4dCBEWU5BTUlDRklFTEQgaWYgJERGQ29uZmlnLT57TmFtZX0gbmUgJERGQ29sdW1uOwoKICAg
ICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJERGQ29uZmlnOwogICAgICAg
ICAgICAgICAgICAgIGxhc3QgRFlOQU1JQ0ZJRUxEOwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgbmV4dCBDT0xVTU4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRD
b25maWcpOwoKICAgICAgICAgICAgICAgICMgZ2V0IGZpZWxkIHZhbHVlCiAgICAgICAgICAgICAg
ICBteSAkVmFsdWUgPSAkQmFja2VuZE9iamVjdC0+VmFsdWVHZXQoCiAgICAgICAgICAgICAgICAg
ICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAg
ICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAg
ICk7CgogICAgICAgICAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICRCYWNrZW5kT2JqZWN0LT5EaXNw
bGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+
ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAg
ICAgID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgICAgICBWYWx1ZU1heENoYXJzICAgICAgPT4g
MjAsCiAgICAgICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmpl
Y3QsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJs
b2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVy
aWNEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAg
ICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAg
ICAgICAgICAgICBUaXRsZSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggJFZhbHVlU3Ry
Zy0+e0xpbmt9ICkgewogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAog
ICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmlj
RHluYW1pY0ZpZWxkTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgID0+ICRW
YWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAg
ICAgICAgICAgICAgICAgICAgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57
TGlua30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnLT57
TmFtZX0gPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNEeW5hbWlj
RmllbGRQbGFpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgfQoKICAgICMgc2hvdyAibm9uZSIgaWYg
bm8gdGlja2V0IGlzIGF2YWlsYWJsZQogICAgaWYgKCAhJFRpY2tldElEcyB8fCAhQHskVGlja2V0
SURzfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9
PiAnQ29udGVudExhcmdlVGlja2V0R2VuZXJpY05vbmUnLAogICAgICAgICAgICBEYXRhID0+IHt9
LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBmb3IgcmVmcmVzaCB0aW1lCiAgICBteSAk
UmVmcmVzaCA9ICcnOwogICAgaWYgKCAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gKSB7CiAgICAg
ICAgJFJlZnJlc2ggPSA2MCAqICRTZWxmLT57VXNlclJlZnJlc2hUaW1lfTsKCiAgICAgICAgIyBz
ZW5kIGRhdGEgdG8gSlMKICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAg
ICAgIEtleSAgID0+ICdXaWRnZXRSZWZyZXNoJyAuICRXaWRnZXROYW1lLAogICAgICAgICAgICBW
YWx1ZSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAkU2VsZi0+e05hbWV9
LAogICAgICAgICAgICAgICAgTmFtZUhUTUwgICAgICAgPT4gJFdpZGdldE5hbWUsCiAgICAgICAg
ICAgICAgICBSZWZyZXNoVGltZSAgICA9PiAkUmVmcmVzaCwKICAgICAgICAgICAgICAgIEN1c3Rv
bWVySUQgICAgID0+ICRQYXJhbXtDdXN0b21lcklEfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVy
VXNlcklEID0+ICRQYXJhbXtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgIH0sCiAgICAgICAg
KTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBhY3RpdmUgZmlsdGVycyBhbmQgYWRkIGEgJ3JlbW92
ZSBmaWx0ZXJzJyBidXR0b24gdG8gdGhlIHdpZGdldCBoZWFkZXIKICAgIG15ICRGaWx0ZXJBY3Rp
dmUgPSAwOwogICAgaWYgKCAkU2VsZi0+e0dldENvbHVtbkZpbHRlclNlbGVjdH0gJiYgSXNIYXNo
UmVmV2l0aERhdGEoICRTZWxmLT57R2V0Q29sdW1uRmlsdGVyU2VsZWN0fSApICkgewogICAgICAg
ICRGaWx0ZXJBY3RpdmUgPSAxOwogICAgfQoKICAgICMgc2VuZCBkYXRhIHRvIEpTCiAgICAkTGF5
b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ1dpZGdldENvbnRhaW5lcicg
LiAkV2lkZ2V0TmFtZSwKICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICAg
ICAgID0+ICRTZWxmLT57TmFtZX0sCiAgICAgICAgICAgIEN1c3RvbWVySUQgICAgID0+ICRQYXJh
bXtDdXN0b21lcklEfSwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFBhcmFte0N1c3Rv
bWVyVXNlcklEfSwKICAgICAgICAgICAgRmlsdGVyQWN0aXZlICAgPT4gJEZpbHRlckFjdGl2ZSwK
ICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgPT4gJFNlbGYtPntTb3J0Qnl9IHx8ICdBZ2UnLAog
ICAgICAgICAgICBPcmRlckJ5ICAgICAgICA9PiAkVGlja2V0U2VhcmNoe09yZGVyQnl9LAogICAg
ICAgICAgICBTb3J0aW5nQ29sdW1uICA9PiAkUGFyYW17U29ydGluZ0NvbHVtbn0sCiAgICAgICAg
fSwKICAgICk7CgogICAgbXkgJENvbnRlbnQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAg
ICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudERhc2hib2FyZE15VGlja2V0cycsCiAgICAgICAgRGF0
YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICAgICAg
ICAgIE5hbWUgPT4gJFNlbGYtPntOYW1lfSwKICAgICAgICAgICAgJXskU3VtbWFyeX0sCiAgICAg
ICAgICAgIEZpbHRlclZhbHVlICAgICAgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgICAgICBB
ZGRpdGlvbmFsRmlsdGVyID0+ICRTZWxmLT57QWRkaXRpb25hbEZpbHRlcn0sCiAgICAgICAgICAg
IEN1c3RvbWVySUQgICAgICAgPT4gJFNlbGYtPntDdXN0b21lcklEfSwKICAgICAgICAgICAgQ3Vz
dG9tZXJVc2VySUQgICA9PiAkU2VsZi0+e0N1c3RvbWVyVXNlcklEfSwKICAgICAgICB9LAogICAg
ICAgIEFKQVggPT4gJFBhcmFte0FKQVh9LAogICAgKTsKCiAgICByZXR1cm4gJENvbnRlbnQ7Cn0K
CnN1YiBfSW5pdGlhbENvbHVtbkZpbHRlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBf
OwoKICAgIHJldHVybiBpZiAhJFBhcmFte0NvbHVtbk5hbWV9OwogICAgcmV0dXJuIGlmICEkU2Vs
Zi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57ICRQYXJhbXtDb2x1bW5OYW1lfSB9OwoKICAg
ICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+
R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJExhYmVsID0gJFBh
cmFte0xhYmVsfSB8fCAkUGFyYW17Q29sdW1uTmFtZX07CiAgICAkTGFiZWwgPSAkTGF5b3V0T2Jq
ZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJExhYmVsKTsKCiAgICAjIHNldCBmaXhl
ZCB2YWx1ZXMKICAgIG15ICREYXRhID0gWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4g
JycsCiAgICAgICAgICAgIFZhbHVlID0+IHVjICRMYWJlbCwKICAgICAgICB9LAogICAgXTsKCiAg
ICAjIGRlZmluZSBpZiBjb2x1bW4gZmlsdGVyIHZhbHVlcyBzaG91bGQgYmUgdHJhbnNsYXRhYmxl
CiAgICBteSAkVHJhbnNsYXRpb25PcHRpb24gPSAwOwoKICAgIGlmICgKICAgICAgICAkUGFyYW17
Q29sdW1uTmFtZX0gZXEgJ1N0YXRlJwogICAgICAgIHx8ICRQYXJhbXtDb2x1bW5OYW1lfSBlcSAn
TG9jaycKICAgICAgICB8fCAkUGFyYW17Q29sdW1uTmFtZX0gZXEgJ1ByaW9yaXR5JwogICAgICAg
ICkKICAgIHsKICAgICAgICAkVHJhbnNsYXRpb25PcHRpb24gPSAxOwogICAgfQoKICAgIG15ICRD
bGFzcyA9ICdDb2x1bW5GaWx0ZXInOwogICAgaWYgKCAkUGFyYW17Q3NzfSApIHsKICAgICAgICAk
Q2xhc3MgLj0gJyAnIC4gJFBhcmFte0Nzc307CiAgICB9CgogICAgIyBidWlsZCBzZWxlY3QgSFRN
TAogICAgbXkgJENvbHVtbkZpbHRlckhUTUwgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlv
bigKICAgICAgICBOYW1lICAgICAgICA9PiAnQ29sdW1uRmlsdGVyJyAuICRQYXJhbXtDb2x1bW5O
YW1lfSAuICRTZWxmLT57TmFtZX0sCiAgICAgICAgRGF0YSAgICAgICAgPT4gJERhdGEsCiAgICAg
ICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgIFRyYW5zbGF0aW9uID0+ICRUcmFuc2xh
dGlvbk9wdGlvbiwKICAgICAgICBTZWxlY3RlZElEICA9PiAnJywKICAgICk7CiAgICByZXR1cm4g
JENvbHVtbkZpbHRlckhUTUw7Cn0KCnN1YiBfR2V0Q29sdW1uVmFsdWVzIHsKICAgIG15ICggJFNl
bGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICFJc1N0cmluZ1dpdGhEYXRhKCAkUGFy
YW17SGVhZGVyQ29sdW1ufSApOwoKICAgIG15ICRIZWFkZXJDb2x1bW4gPSAkUGFyYW17SGVhZGVy
Q29sdW1ufTsKICAgIG15ICVDb2x1bW5GaWx0ZXJWYWx1ZXM7CiAgICBteSAkVGlja2V0SURzOwoK
ICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17T3JpZ2luYWxUaWNrZXRJRHN9ICkg
KSB7CiAgICAgICAgJFRpY2tldElEcyA9ICRQYXJhbXtPcmlnaW5hbFRpY2tldElEc307CiAgICB9
CgogICAgaWYgKCAkSGVhZGVyQ29sdW1uICF+IG0vXkR5bmFtaWNGaWVsZF8vICkgewogICAgICAg
IG15ICRGdW5jdGlvbk5hbWUgPSAkSGVhZGVyQ29sdW1uIC4gJ0ZpbHRlclZhbHVlc0dldCc7CiAg
ICAgICAgaWYgKCAkSGVhZGVyQ29sdW1uIGVxICdDdXN0b21lcklEJyApIHsKICAgICAgICAgICAg
JEZ1bmN0aW9uTmFtZSA9ICdDdXN0b21lckZpbHRlclZhbHVlc0dldCc7CiAgICAgICAgfQoKICAg
ICAgICAkQ29sdW1uRmlsdGVyVmFsdWVzeyRIZWFkZXJDb2x1bW59ID0gJEtlcm5lbDo6T00tPkdl
dCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6Q29sdW1uRmlsdGVyJyktPiRGdW5jdGlvbk5hbWUo
CiAgICAgICAgICAgIFRpY2tldElEcyAgICA9PiAkVGlja2V0SURzLAogICAgICAgICAgICBIZWFk
ZXJDb2x1bW4gPT4gJEhlYWRlckNvbHVtbiwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRT
ZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgRFlOQU1J
Q0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntE
eW5hbWljRmllbGR9IH0gKSB7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNI
YXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICBteSAkRmll
bGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoK
ICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJEZpZWxkTmFtZSBuZSAkSGVhZGVyQ29s
dW1uOwoKICAgICAgICAgICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAg
ICAgICAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lz
dGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAgICAgICAgIG15ICRJc0ZpbHRyYWJs
ZSA9ICRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgIER5bmFtaWNG
aWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgQmVoYXZp
b3IgICAgICAgICAgID0+ICdJc0ZpbHRyYWJsZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAg
ICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzRmlsdHJhYmxlOwoKICAgICAgICAgICAgJFNlbGYt
PntWYWxpZEZpbHRlcmFibGVDb2x1bW5zfS0+eyRIZWFkZXJDb2x1bW59ID0gJElzRmlsdHJhYmxl
OwogICAgICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkVGlja2V0SURzKSApIHsKCiAg
ICAgICAgICAgICAgICAjIGdldCB0aGUgaGlzdG9yaWNhbCB2YWx1ZXMgZm9yIHRoZSBmaWVsZAog
ICAgICAgICAgICAgICAgJENvbHVtbkZpbHRlclZhbHVlc3skSGVhZGVyQ29sdW1ufSA9ICRCYWNr
ZW5kT2JqZWN0LT5Db2x1bW5GaWx0ZXJWYWx1ZXNHZXQoCiAgICAgICAgICAgICAgICAgICAgRHlu
YW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAg
ICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0
OjpIVE1MOjpMYXlvdXQnKSwKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRHMgICAgICAgICAg
PT4gJFRpY2tldElEcywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAg
ICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBnZXQgUG9zc2libGVWYWx1ZXMKICAgICAgICAg
ICAgICAgICRDb2x1bW5GaWx0ZXJWYWx1ZXN7JEhlYWRlckNvbHVtbn0gPSAkQmFja2VuZE9iamVj
dC0+UG9zc2libGVWYWx1ZXNHZXQoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29u
ZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIGxhc3QgRFlOQU1JQ0ZJRUxEOwogICAgICAgIH0KICAgIH0KCiAgICBy
ZXR1cm4gXCVDb2x1bW5GaWx0ZXJWYWx1ZXM7Cn0KCiMgPW92ZXIKCiMgPWhlYWQyIF9Db2x1bW5G
aWx0ZXJKU09OKCkKCiMgICAgIGNyZWF0ZXMgYSBKU09OIHNlbGVjdCBmaWx0ZXIgZm9yIGNvbHVt
biBoZWFkZXIKCiMgICAgIG15ICRDb2x1bW5GaWx0ZXJKU09OID0gJFRpY2tldE92ZXJ2aWV3U21h
bGxPYmplY3QtPl9Db2x1bW5GaWx0ZXJKU09OKAojICAgICAgICAgQ29sdW1uTmFtZSA9PiAnUXVl
dWUnLAojICAgICAgICAgTGFiZWwgICAgICA9PiAnUXVldWUnLAojICAgICAgICAgQ29sdW1uVmFs
dWVzID0+IHsKIyAgICAgICAgICAgICAxID0+ICdQb3N0TWFzdGVyJywKIyAgICAgICAgICAgICAy
ID0+ICdKdW5rJywKIyAgICAgICAgIH0sCiMgICAgICAgICBTZWxlY3RlZFZhbHVlICcxJywKIyAg
ICAgKTsKCiMgPWN1dAoKc3ViIF9Db2x1bW5GaWx0ZXJKU09OIHsKICAgIG15ICggJFNlbGYsICVQ
YXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICEkUGFyYW17Q29sdW1uTmFtZX07CiAgICByZXR1
cm4gaWYgISRTZWxmLT57VmFsaWRGaWx0ZXJhYmxlQ29sdW1uc30tPnsgJFBhcmFte0NvbHVtbk5h
bWV9IH07CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRL
ZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAk
TGFiZWwgPSAkUGFyYW17TGFiZWx9OwogICAgJExhYmVsID1+IHN7IFxBIER5bmFtaWNGaWVsZF8g
fXt9Z3htczsKICAgICRMYWJlbCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRy
YW5zbGF0ZSgkTGFiZWwpOwoKICAgICMgc2V0IGZpeGVkIHZhbHVlcwogICAgbXkgJERhdGEgPSBb
CiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnRGVsZXRlRmlsdGVyJywKICAgICAgICAg
ICAgVmFsdWUgPT4gdWMgJExhYmVsLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBL
ZXkgICAgICA9PiAnLScsCiAgICAgICAgICAgIFZhbHVlICAgID0+ICctJywKICAgICAgICAgICAg
RGlzYWJsZWQgPT4gMSwKICAgICAgICB9LAogICAgXTsKCiAgICBpZiAoICRQYXJhbXtDb2x1bW5W
YWx1ZXN9ICYmIHJlZiAkUGFyYW17Q29sdW1uVmFsdWVzfSBlcSAnSEFTSCcgKSB7CgogICAgICAg
IG15ICVWYWx1ZXMgPSAleyAkUGFyYW17Q29sdW1uVmFsdWVzfSB9OwoKICAgICAgICAjIHNldCBw
b3NzaWJsZSB2YWx1ZXMKICAgICAgICBmb3IgbXkgJFZhbHVlS2V5ICggc29ydCB7IGxjICRWYWx1
ZXN7JGF9IGNtcCBsYyAkVmFsdWVzeyRifSB9IGtleXMgJVZhbHVlcyApIHsKICAgICAgICAgICAg
cHVzaCBAeyREYXRhfSwgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFZhbHVlS2V5LAogICAg
ICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlc3skVmFsdWVLZXl9CiAgICAgICAgICAgIH07CiAg
ICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIGlmIGNvbHVtbiBmaWx0ZXIgdmFsdWVzIHNob3Vs
ZCBiZSB0cmFuc2xhdGFibGUKICAgIG15ICRUcmFuc2xhdGlvbk9wdGlvbiA9IDA7CgogICAgaWYg
KAogICAgICAgICRQYXJhbXtDb2x1bW5OYW1lfSBlcSAnU3RhdGUnCiAgICAgICAgfHwgJFBhcmFt
e0NvbHVtbk5hbWV9IGVxICdMb2NrJwogICAgICAgIHx8ICRQYXJhbXtDb2x1bW5OYW1lfSBlcSAn
UHJpb3JpdHknCiAgICAgICAgKQogICAgewogICAgICAgICRUcmFuc2xhdGlvbk9wdGlvbiA9IDE7
CiAgICB9CgogICAgIyBidWlsZCBzZWxlY3QgSFRNTAogICAgbXkgJEpTT04gPSAkTGF5b3V0T2Jq
ZWN0LT5CdWlsZFNlbGVjdGlvbkpTT04oCiAgICAgICAgWwogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBOYW1lICAgICAgICAgPT4gJ0NvbHVtbkZpbHRlcicgLiAkUGFyYW17Q29sdW1uTmFt
ZX0gLiAkUGFyYW17RGFzaGJvYXJkTmFtZX0sCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAg
PT4gJERhdGEsCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ0NvbHVtbkZpbHRlcics
CiAgICAgICAgICAgICAgICBTb3J0ICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY0tleScsCiAgICAg
ICAgICAgICAgICBUcmVlVmlldyAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQg
ICA9PiAkUGFyYW17U2VsZWN0ZWRWYWx1ZX0sCiAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAg
PT4gJFRyYW5zbGF0aW9uT3B0aW9uLAogICAgICAgICAgICAgICAgQXV0b0NvbXBsZXRlID0+ICdv
ZmYnLAogICAgICAgICAgICB9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAkSlNPTjsK
fQoKc3ViIF9TZWFyY2hQYXJhbXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsK
CiAgICAjIGdldCBhbGwgc2VhcmNoIGJhc2UgYXR0cmlidXRlcwogICAgbXkgJVRpY2tldFNlYXJj
aDsKICAgIG15ICVEeW5hbWljRmllbGRzUGFyYW1ldGVyczsKICAgIG15IEBQYXJhbXMgPSBzcGxp
dCAvOy8sICRTZWxmLT57Q29uZmlnfS0+e0F0dHJpYnV0ZXN9OwoKICAgICMgcmVhZCB1c2VyIHBy
ZWZlcmVuY2VzIGFuZCBjb25maWcgdG8gZ2V0IGNvbHVtbnMgdGhhdAogICAgIyBzaG91bGQgYmUg
c2hvd24gaW4gdGhlIGRhc2hib2FyZCB3aWRnZXQgKHRoZSBwcmVmZXJlbmNlcwogICAgIyBoYXZl
IHByZWNlZGVuY2UpCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNl
bGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjb2x1bW4gbmFtZXMgZnJvbSBQcmVmZXJl
bmNlcwogICAgbXkgJFByZWZlcmVuY2VzQ29sdW1uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVs
OjpTeXN0ZW06OkpTT04nKS0+RGVjb2RlKAogICAgICAgIERhdGEgPT4gJFByZWZlcmVuY2VzeyAk
U2VsZi0+e1ByZWZLZXlDb2x1bW5zfSB9LAogICAgKTsKCiAgICAjIGNoZWNrIGZvciBkZWZhdWx0
IHNldHRpbmdzCiAgICBteSBAQ29sdW1uczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57RGVm
YXVsdENvbHVtbnN9ICYmIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0NvbmZpZ30tPntEZWZh
dWx0Q29sdW1uc30gKSApIHsKICAgICAgICBAQ29sdW1ucyA9IGdyZXAgeyAkU2VsZi0+e0NvbmZp
Z30tPntEZWZhdWx0Q29sdW1uc30tPnskX30gZXEgJzInIH0KICAgICAgICAgICAgc29ydCB7ICRT
ZWxmLT5fRGVmYXVsdENvbHVtblNvcnQoKSB9IGtleXMgJXsgJFNlbGYtPntDb25maWd9LT57RGVm
YXVsdENvbHVtbnN9IH07CiAgICB9CiAgICBpZiAoJFByZWZlcmVuY2VzQ29sdW1uKSB7CiAgICAg
ICAgaWYgKCAkUHJlZmVyZW5jZXNDb2x1bW4tPntDb2x1bW5zfSAmJiAleyAkUHJlZmVyZW5jZXND
b2x1bW4tPntDb2x1bW5zfSB9ICkgewogICAgICAgICAgICBAQ29sdW1ucyA9IGdyZXAgewogICAg
ICAgICAgICAgICAgZGVmaW5lZCAkUHJlZmVyZW5jZXNDb2x1bW4tPntDb2x1bW5zfS0+eyRffQog
ICAgICAgICAgICAgICAgICAgICYmICRQcmVmZXJlbmNlc0NvbHVtbi0+e0NvbHVtbnN9LT57JF99
IGVxICcxJwogICAgICAgICAgICB9IHNvcnQgeyAkU2VsZi0+X0RlZmF1bHRDb2x1bW5Tb3J0KCkg
fSBrZXlzICV7ICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRDb2x1bW5zfSB9OwogICAgICAgIH0K
ICAgICAgICBpZiAoICRQcmVmZXJlbmNlc0NvbHVtbi0+e09yZGVyfSAmJiBAeyAkUHJlZmVyZW5j
ZXNDb2x1bW4tPntPcmRlcn0gfSApIHsKICAgICAgICAgICAgQENvbHVtbnMgPSBAeyAkUHJlZmVy
ZW5jZXNDb2x1bW4tPntPcmRlcn0gfTsKICAgICAgICB9CgogICAgICAgICMgcmVtb3ZlIGR1cGxp
Y2F0ZSBjb2x1bW5zCiAgICAgICAgbXkgJVVuaXF1ZUNvbHVtbnM7CiAgICAgICAgbXkgQENvbHVt
bnNFbmFibGVkQXV4OwoKICAgICAgICBmb3IgbXkgJENvbHVtbiAoQENvbHVtbnMpIHsKICAgICAg
ICAgICAgaWYgKCAhJFVuaXF1ZUNvbHVtbnN7JENvbHVtbn0gKSB7CiAgICAgICAgICAgICAgICBw
dXNoIEBDb2x1bW5zRW5hYmxlZEF1eCwgJENvbHVtbjsKICAgICAgICAgICAgfQogICAgICAgICAg
ICAkVW5pcXVlQ29sdW1uc3skQ29sdW1ufSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBm
aWx0ZXJlZCBjb2x1bW4gbGlzdAogICAgICAgIEBDb2x1bW5zID0gQENvbHVtbnNFbmFibGVkQXV4
OwogICAgfQoKICAgICMgYWx3YXlzIHNldCBUaWNrZXROdW1iZXIKICAgIGlmICggIWdyZXAgeyAk
XyBlcSAnVGlja2V0TnVtYmVyJyB9IEBDb2x1bW5zICkgewogICAgICAgIHVuc2hpZnQgQENvbHVt
bnMsICdUaWNrZXROdW1iZXInOwogICAgfQoKICAgICMgYWxzbyBhbHdheXMgc2V0IFByb2Nlc3NJ
RCBhbmQgQWN0aXZpdHlJRCAoZm9yIHByb2Nlc3Mgd2lkZ2V0cykKICAgIGlmICggJFNlbGYtPntD
b25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKCiAgICAgICAgbXkgQEFsd2F5c0NvbHVtbnMg
PSAoCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRTZWxmLT57UHJvY2Vzc01hbmFnZW1l
bnRQcm9jZXNzSUR9LAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkU2VsZi0+e1Byb2Nl
c3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0sCiAgICAgICAgKTsKICAgICAgICBteSAkUmVzb3J0Owog
ICAgICAgIGZvciBteSAkQWx3YXlzQ29sdW1uIChAQWx3YXlzQ29sdW1ucykgewogICAgICAgICAg
ICBpZiAoICFncmVwIHsgJF8gZXEgJEFsd2F5c0NvbHVtbiB9IEBDb2x1bW5zICkgewogICAgICAg
ICAgICAgICAgcHVzaCBAQ29sdW1ucywgJEFsd2F5c0NvbHVtbjsKICAgICAgICAgICAgICAgICRS
ZXNvcnQgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgkUmVzb3J0KSB7
CiAgICAgICAgICAgIEBDb2x1bW5zID0gc29ydCB7ICRTZWxmLT5fRGVmYXVsdENvbHVtblNvcnQo
KSB9IEBDb2x1bW5zOwogICAgICAgIH0KICAgIH0KCiAgICB7CgogICAgICAgICMgbG9vcCB0aHJv
dWdoIGFsbCB0aGUgZHluYW1pYyBmaWVsZHMgdG8gZ2V0IHRoZSBvbmVzIHRoYXQgc2hvdWxkIGJl
IHNob3duCiAgICAgICAgRFlOQU1JQ0ZJRUxETkFNRToKICAgICAgICBmb3IgbXkgJER5bmFtaWNG
aWVsZE5hbWUgKEBDb2x1bW5zKSB7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRE5BTUUg
aWYgJER5bmFtaWNGaWVsZE5hbWUgIX4gbXsgRHluYW1pY0ZpZWxkXyB9eG1zOwoKICAgICAgICAg
ICAgIyByZW1vdmUgZHluYW1pYyBmaWVsZCBwcmVmaXgKICAgICAgICAgICAgbXkgJEZpZWxkTmFt
ZSA9ICREeW5hbWljRmllbGROYW1lOwogICAgICAgICAgICAkRmllbGROYW1lID1+IHMvRHluYW1p
Y0ZpZWxkXy8vZ2k7CiAgICAgICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfS0+eyRG
aWVsZE5hbWV9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmll
bGRzIGZvciB0aGlzIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJEtlcm5lbDo6
T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0
R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWydU
aWNrZXQnXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRl
cn0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QK
ICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06
OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICMgZ2V0IGZpbHRlcmFibGUgRHluYW1pYyBm
aWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9y
IHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENv
bmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1J
Q0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAg
ICAgbXkgJElzRmlsdHJhYmxlID0gJEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAg
ICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAg
ICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0ZpbHRyYWJsZScsCiAgICAgICAgKTsKCiAgICAg
ICAgIyBpZiB0aGUgZHluYW1pYyBmaWVsZCBpcyBmaWx0ZXJhYmxlIGFkZCBpdCB0byB0aGUgVmFs
aWRGaWx0ZXJhYmxlQ29sdW1ucyBoYXNoCiAgICAgICAgaWYgKCRJc0ZpbHRyYWJsZSkgewogICAg
ICAgICAgICAkU2VsZi0+e1ZhbGlkRmlsdGVyYWJsZUNvbHVtbnN9LT57ICdEeW5hbWljRmllbGRf
JyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gMTsKICAgICAgICB9CiAgICB9Cgog
ICAgIyBnZXQgc29ydGFibGUgRHluYW1pYyBmaWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBh
Y3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6
CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxk
fSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgk
RHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgbXkgJElzU29ydGFibGUgPSAkQmFja2VuZE9i
amVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHlu
YW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzU29y
dGFibGUnLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIGR5bmFtaWMgZmllbGQgaXMgc29y
dGFibGUgYWRkIGl0IHRvIHRoZSBWYWxpZFNvcnRhYmxlQ29sdW1ucyBoYXNoCiAgICAgICAgaWYg
KCRJc1NvcnRhYmxlKSB7CiAgICAgICAgICAgICRTZWxmLT57VmFsaWRTb3J0YWJsZUNvbHVtbnN9
LT57ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gMTsK
ICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgcXVldWUgb2JqZWN0CiAgICBteSAkUXVldWVPYmpl
Y3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKCiAgICBTVFJJ
Tkc6CiAgICBmb3IgbXkgJFN0cmluZyAoQFBhcmFtcykgewogICAgICAgIG5leHQgU1RSSU5HIGlm
ICEkU3RyaW5nOwogICAgICAgIG15ICggJEtleSwgJFZhbHVlICkgPSBzcGxpdCAvPS8sICRTdHJp
bmc7CgogICAgICAgIGlmICggJEtleSBlcSAnQ3VzdG9tZXJJRCcgKSB7CiAgICAgICAgICAgICRL
ZXkgPSAiQ3VzdG9tZXJJRFJhdyI7CiAgICAgICAgfQoKICAgICAgICAjIHB1c2ggQVJSQVlSRUYg
YXR0cmlidXRlcyBkaXJlY3RseSBpbiBhbiBBUlJBWVJFRgogICAgICAgIGlmICgKICAgICAgICAg
ICAgJEtleQogICAgICAgICAgICA9fiAvXihTdGF0ZVR5cGV8U3RhdGVUeXBlSURzfFF1ZXVlc3xR
dWV1ZUlEc3xUeXBlc3xUeXBlSURzfFN0YXRlc3xTdGF0ZUlEc3xQcmlvcml0aWVzfFByaW9yaXR5
SURzfFNlcnZpY2VzfFNlcnZpY2VJRHN8U0xBc3xTTEFJRHN8TG9ja3N8TG9ja0lEc3xPd25lcklE
c3xSZXNwb25zaWJsZUlEc3xXYXRjaFVzZXJJRHN8QXJjaGl2ZUZsYWdzfENyZWF0ZWRVc2VySURz
fENyZWF0ZWRUeXBlc3xDcmVhdGVkVHlwZUlEc3xDcmVhdGVkUHJpb3JpdGllc3xDcmVhdGVkUHJp
b3JpdHlJRHN8Q3JlYXRlZFN0YXRlc3xDcmVhdGVkU3RhdGVJRHN8Q3JlYXRlZFF1ZXVlc3xDcmVh
dGVkUXVldWVJRHMpJC8KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCAk
VmFsdWUgPX4gbXssfXNteCApIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJFRpY2tldFNlYXJj
aHskS2V5fSB9LCBzcGxpdCggLywvLCAkVmFsdWUgKTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJFRpY2tldFNlYXJjaHskS2V5fSB9LCAk
VmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgcGFyYW1l
dGVyIGlzIGEgZHluYW1pYyBmaWVsZCBhbmQgY2FwdHVyZSBkeW5hbWljIGZpZWxkIG5hbWUgKHdp
dGggRHluYW1pY0ZpZWxkXykKICAgICAgICAjIGluICQxIGFuZCB0aGUgT3BlcmF0b3IgaW4gJDIK
ICAgICAgICAjIHBvc3NpYmxlIER5bmFtaWMgRmllbGRzIG9wdGlvbnMgaW5jbHVkZToKICAgICAg
ICAjICAgRHluYW1pY0ZpZWxkX05hbWVYX0VxdWFscz0xMjM7CiAgICAgICAgIyAgIER5bmFtaWNG
aWVsZF9OYW1lWF9MaWtlPXZhbHVlKjsKICAgICAgICAjICAgRHluYW1pY0ZpZWxkX05hbWVYX0dy
ZWF0ZXJUaGFuPTIwMDEtMDEtMDEgMDE6MDE6MDE7CiAgICAgICAgIyAgIER5bmFtaWNGaWVsZF9O
YW1lWF9HcmVhdGVyVGhhbkVxdWFscz0yMDAxLTAxLTAxIDAxOjAxOjAxOwogICAgICAgICMgICBE
eW5hbWljRmllbGRfTmFtZVhfU21hbGxlclRoYW49MjAwMi0wMi0wMiAwMjowMjowMjsKICAgICAg
ICAjICAgRHluYW1pY0ZpZWxkX05hbWVYX1NtYWxsZXJUaGFuRXF1YWxzPTIwMDItMDItMDIgMDI6
MDI6MDI7CiAgICAgICAgZWxzaWYgKCAkS2V5ID1+IG17XEEgKER5bmFtaWNGaWVsZF8uKz8pIF8g
KC4rPykgXHp9c3htICkgewoKICAgICAgICAgICAgIyBwcmV2ZW50IGFkZGluZyBQcm9jZXNzTWFu
YWdlbWVudCBzZWFyY2ggcGFyYW1ldGVycyAoZm9yIFByb2Nlc3NXaWRnZXQpCiAgICAgICAgICAg
IGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKICAgICAgICAgICAg
ICAgIG5leHQgU1RSSU5HIGlmICQyIGVxICRTZWxmLT57UHJvY2Vzc01hbmFnZW1lbnRQcm9jZXNz
SUR9OwogICAgICAgICAgICAgICAgbmV4dCBTVFJJTkcgaWYgJDIgZXEgJFNlbGYtPntQcm9jZXNz
TWFuYWdlbWVudEFjdGl2aXR5SUR9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBwdXNoIEB7
ICREeW5hbWljRmllbGRzUGFyYW1ldGVyc3skMX0tPnskMn0gfSwgJFZhbHVlOwogICAgICAgIH0K
CiAgICAgICAgZWxzaWYgKCAhZGVmaW5lZCAkVGlja2V0U2VhcmNoeyRLZXl9ICkgewoKICAgICAg
ICAgICAgIyBjaGFuZ2Ugc29ydCBieSwgaWYgbmVlZGVkCiAgICAgICAgICAgIGlmICgKICAgICAg
ICAgICAgICAgICRLZXkgZXEgJ1NvcnRCeScKICAgICAgICAgICAgICAgICYmICRTZWxmLT57U29y
dEJ5fQogICAgICAgICAgICAgICAgJiYgJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29sdW1uc30tPnsg
JFNlbGYtPntTb3J0Qnl9IH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgJFZhbHVlID0gJFNlbGYtPntTb3J0Qnl9OwogICAgICAgICAgICB9CiAgICAgICAg
ICAgIGVsc2lmICggJEtleSBlcSAnU29ydEJ5JyAmJiAhJFNlbGYtPntWYWxpZFNvcnRhYmxlQ29s
dW1uc30tPnskVmFsdWV9ICkgewogICAgICAgICAgICAgICAgJFZhbHVlID0gJ0FnZSc7CiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgJFRpY2tldFNlYXJjaHskS2V5fSA9ICRWYWx1ZTsKICAgICAg
ICB9CiAgICAgICAgZWxzaWYgKCAhcmVmICRUaWNrZXRTZWFyY2h7JEtleX0gKSB7CiAgICAgICAg
ICAgIG15ICRWYWx1ZVRtcCA9ICRUaWNrZXRTZWFyY2h7JEtleX07CiAgICAgICAgICAgICRUaWNr
ZXRTZWFyY2h7JEtleX0gPSBbJFZhbHVlVG1wXTsKICAgICAgICAgICAgcHVzaCBAeyAkVGlja2V0
U2VhcmNoeyRLZXl9IH0sICRWYWx1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgIHB1c2ggQHsgJFRpY2tldFNlYXJjaHskS2V5fSB9LCAkVmFsdWU7CiAgICAgICAgfQogICAg
fQogICAgJVRpY2tldFNlYXJjaCA9ICgKICAgICAgICAlVGlja2V0U2VhcmNoLAogICAgICAgICVE
eW5hbWljRmllbGRzUGFyYW1ldGVycywKICAgICAgICBQZXJtaXNzaW9uID0+ICRTZWxmLT57Q29u
ZmlnfS0+e1Blcm1pc3Npb259IHx8ICdybycsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNl
cklEfSwKICAgICk7CgogICAgIyBDdXN0b21lckluZm9ybWF0aW9uQ2VudGVyIHNob3dzIGRhdGEg
cGVyIEN1c3RvbWVySUQKICAgIGlmICggJFBhcmFte0N1c3RvbWVySUR9ICkgewogICAgICAgICRU
aWNrZXRTZWFyY2h7Q3VzdG9tZXJJRFJhd30gPSAkUGFyYW17Q3VzdG9tZXJJRH07CiAgICB9Cgog
ICAgIyBkZWZpbmUgZmlsdGVyIGF0dHJpYnV0ZXMKICAgIG15IEBNeVF1ZXVlcyA9ICRRdWV1ZU9i
amVjdC0+R2V0QWxsQ3VzdG9tUXVldWVzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJ
RH0sCiAgICApOwogICAgaWYgKCAhQE15UXVldWVzICkgewogICAgICAgIEBNeVF1ZXVlcyA9ICg5
OTlfOTk5KTsKICAgIH0KCiAgICAjIGdldCBhbGwgcXVldWVzIHRoZSBhZ2VudCBpcyBhbGxvd2Vk
IHRvIHNlZSAoZm9yIG15IHNlcnZpY2VzKQogICAgbXkgJVZpZXdhYmxlUXVldWVzID0gJFF1ZXVl
T2JqZWN0LT5HZXRBbGxRdWV1ZXMoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwK
ICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICk7CiAgICBteSBAVmlld2FibGVRdWV1ZUlEcyA9
IHNvcnQga2V5cyAlVmlld2FibGVRdWV1ZXM7CiAgICBpZiAoICFAVmlld2FibGVRdWV1ZUlEcyAp
IHsKICAgICAgICBAVmlld2FibGVRdWV1ZUlEcyA9ICg5OTlfOTk5KTsKICAgIH0KCiAgICAjIGdl
dCB0aGUgY3VzdG9tIHNlcnZpY2VzIGZyb20gYWdlbnQgcHJlZmVyZW5jZXMKICAgICMgc2V0IHRo
ZSBzZXJ2aWNlIGlkcyB0byBhbiBhcnJheSBvZiBub24gZXhpc3Rpbmcgc2VydmljZSBpZHMgKDAp
CiAgICBteSBATXlTZXJ2aWNlSURzID0gKDApOwogICAgaWYgKCAkU2VsZi0+e1VzZVRpY2tldFNl
cnZpY2V9ICkgewogICAgICAgIEBNeVNlcnZpY2VJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJu
ZWw6OlN5c3RlbTo6U2VydmljZScpLT5HZXRBbGxDdXN0b21TZXJ2aWNlcygKICAgICAgICAgICAg
VXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFkZWZp
bmVkICRNeVNlcnZpY2VJRHNbMF0gKSB7CiAgICAgICAgICAgIEBNeVNlcnZpY2VJRHMgPSAoMCk7
CiAgICAgICAgfQogICAgfQoKICAgIG15ICVMb2NrTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tl
cm5lbDo6U3lzdGVtOjpMb2NrJyktPkxvY2tMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+
e1VzZXJJRH0sCiAgICApOwogICAgbXkgJUxvY2tOYW1lMklEID0gcmV2ZXJzZSAlTG9ja0xpc3Q7
CgogICAgbXkgJVRpY2tldFNlYXJjaFN1bW1hcnkgPSAoCiAgICAgICAgT3BlbiA9PiB7CiAgICAg
ICAgICAgIE93bmVySURzICA9PiBbICRTZWxmLT57VXNlcklEfSwgXSwKICAgICAgICAgICAgU3Rh
dGVUeXBlID0+IFsgJ29wZW4nLCBdLAogICAgICAgICAgICBMb2NrSURzICAgPT4gJFRpY2tldFNl
YXJjaHtMb2NrSURzfSAvLyB1bmRlZiwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyID0+IHsK
ICAgICAgICAgICAgT3duZXJJRHMgID0+IFsgJFNlbGYtPntVc2VySUR9LCBdLAogICAgICAgICAg
ICBTdGF0ZVR5cGUgPT4gWyAncGVuZGluZyByZW1pbmRlcicsIF0sCiAgICAgICAgICAgIExvY2tJ
RHMgICA9PiAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IC8vIHVuZGVmLAogICAgICAgIH0sCiAgICAg
ICAgUGVuZGluZyA9PiB7CiAgICAgICAgICAgIE93bmVySURzICA9PiBbICRTZWxmLT57VXNlcklE
fSwgXSwKICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ3BlbmRpbmcgYXV0bycsIF0sCiAgICAg
ICAgICAgIExvY2tJRHMgICA9PiAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IC8vIHVuZGVmLAogICAg
ICAgIH0sCiAgICApOwoKICAgIG15ICRDb25maWdPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5H
ZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkU2hvd0Nsb3NlZFRpY2tldHMgPSAkQ29uZmln
T2JqZWN0LT5HZXQoJ0Rhc2hib2FyZE15VGlja2V0czo6U2hvd0Nsb3NlZFRpY2tldHMnKTsKICAg
IGlmICggJFNob3dDbG9zZWRUaWNrZXRzICkgewogICAgICAgICRUaWNrZXRTZWFyY2hTdW1tYXJ5
e0Nsb3NlZH0gPSB7CiAgICAgICAgICAgIE93bmVySURzICA9PiBbICRTZWxmLT57VXNlcklEfSwg
XSwKICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ2Nsb3NlZCcsIF0sCiAgICAgICAgICAgIExv
Y2tJRHMgICA9PiAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IC8vIHVuZGVmLAogICAgICAgIH07CiAg
ICB9CgogICAgaWYgKCAkU2VsZi0+e0FjdGlvbn0gZXEgJ0FnZW50Q3VzdG9tZXJVc2VySW5mb3Jt
YXRpb25DZW50ZXInICkgewoKICAgICAgICAjIEFkZCBmaWx0ZXJzIGZvciBhc3NpZ2VuZCBhbmQg
YWNjZXNzaWJsZSB0aWNrZXRzIGZvciB0aGUgY3VzdG9tZXIgdXNlciBpbmZvcm1hdGlvbiBjZW50
ZXIgYXMgYQogICAgICAgICMgICBhZGRpdGlvbmFsIGZpbHRlciB0b2dldGhlciB3aXRoIHRoZSBv
dGhlciBmaWx0ZXJzLiBPbmUgb2YgdGhlbSBtdXN0IGJlIGFsd2F5cyBhY3RpdmUuCiAgICAgICAg
JVRpY2tldFNlYXJjaFN1bW1hcnkgPSAoCiAgICAgICAgICAgIEFzc2lnbmVkVG9DdXN0b21lclVz
ZXIgPT4gewogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW5SYXcgPT4gJFBhcmFte0N1
c3RvbWVyVXNlcklEfSAvLyB1bmRlZiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQWNjZXNz
aWJsZUZvckN1c3RvbWVyVXNlciA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9
PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9IC8vIHVuZGVmLAogICAgICAgICAgICB9LAogICAgICAg
ICAgICAlVGlja2V0U2VhcmNoU3VtbWFyeSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggZGVm
aW5lZCAkVGlja2V0U2VhcmNoe0xvY2tJRHN9IHx8IGRlZmluZWQgJFRpY2tldFNlYXJjaHtMb2Nr
c30gKSB7CiAgICAgICAgZGVsZXRlICRUaWNrZXRTZWFyY2hTdW1tYXJ5e0xvY2tlZH07CiAgICB9
CgogICAgaWYgKCBkZWZpbmVkICRUaWNrZXRTZWFyY2h7V2F0Y2hVc2VySURzfSApIHsKICAgICAg
ICBkZWxldGUgJFRpY2tldFNlYXJjaFN1bW1hcnl7V2F0Y2hlcn07CiAgICB9CgogICAgaWYgKCBk
ZWZpbmVkICRUaWNrZXRTZWFyY2h7UmVzcG9uc2libGVJRHN9ICkgewogICAgICAgIGRlbGV0ZSAk
VGlja2V0U2VhcmNoU3VtbWFyeXtSZXNwb25zaWJsZX07CiAgICB9CgogICAgaWYgKCBkZWZpbmVk
ICRUaWNrZXRTZWFyY2h7UXVldWVJRHN9IHx8IGRlZmluZWQgJFRpY2tldFNlYXJjaHtRdWV1ZXN9
ICkgewogICAgICAgIGRlbGV0ZSAkVGlja2V0U2VhcmNoU3VtbWFyeXtNeVF1ZXVlc307CiAgICAg
ICAgZGVsZXRlICRUaWNrZXRTZWFyY2hTdW1tYXJ5e015U2VydmljZXN9LT57UXVldWVJRHN9Owog
ICAgfQoKICAgIGlmICggISRTZWxmLT57VXNlVGlja2V0U2VydmljZX0gKSB7CiAgICAgICAgZGVs
ZXRlICRUaWNrZXRTZWFyY2hTdW1tYXJ5e015U2VydmljZXN9OwogICAgfQoKICAgIHJldHVybiAo
CiAgICAgICAgQ29sdW1ucyAgICAgICAgICAgICA9PiBcQENvbHVtbnMsCiAgICAgICAgVGlja2V0
U2VhcmNoICAgICAgICA9PiBcJVRpY2tldFNlYXJjaCwKICAgICAgICBUaWNrZXRTZWFyY2hTdW1t
YXJ5ID0+IFwlVGlja2V0U2VhcmNoU3VtbWFyeSwKICAgICk7Cn0KCnN1YiBfRGVmYXVsdENvbHVt
blNvcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRGVmYXVsdENv
bHVtbnMgPSAoCiAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICA9PiAxMDAsCiAgICAgICAg
QWdlICAgICAgICAgICAgICAgICAgICA9PiAxMTAsCiAgICAgICAgQ2hhbmdlZCAgICAgICAgICAg
ICAgICA9PiAxMTEsCiAgICAgICAgUGVuZGluZ1RpbWUgICAgICAgICAgICA9PiAxMTIsCiAgICAg
ICAgRXNjYWxhdGlvblRpbWUgICAgICAgICA9PiAxMTMsCiAgICAgICAgRXNjYWxhdGlvblNvbHV0
aW9uVGltZSA9PiAxMTQsCiAgICAgICAgRXNjYWxhdGlvblJlc3BvbnNlVGltZSA9PiAxMTUsCiAg
ICAgICAgRXNjYWxhdGlvblVwZGF0ZVRpbWUgICA9PiAxMTYsCiAgICAgICAgVGl0bGUgICAgICAg
ICAgICAgICAgICA9PiAxMjAsCiAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICA9PiAxMzAs
CiAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICA9PiAxNDAsCiAgICAgICAgUXVldWUgICAg
ICAgICAgICAgICAgICA9PiAxNTAsCiAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICA9PiAx
NjAsCiAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICA9PiAxNjEsCiAgICAgICAgQ3VzdG9t
ZXJJRCAgICAgICAgICAgICA9PiAxNzAsCiAgICAgICAgQ3VzdG9tZXJOYW1lICAgICAgICAgICA9
PiAxNzEsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgICAgICAgICA9PiAxNzIsCiAgICAgICAgVHlw
ZSAgICAgICAgICAgICAgICAgICA9PiAxODAsCiAgICAgICAgU2VydmljZSAgICAgICAgICAgICAg
ICA9PiAxOTEsCiAgICAgICAgU0xBICAgICAgICAgICAgICAgICAgICA9PiAxOTIsCiAgICAgICAg
UHJpb3JpdHkgICAgICAgICAgICAgICA9PiAxOTMsCiAgICApOwoKICAgICMgc2V0IGRlZmF1bHQg
b3JkZXIgb2YgUHJvY2Vzc01hbmFnZW1lbnQgY29sdW1ucyAoZm9yIHByb2Nlc3Mgd2lkZ2V0cykK
ICAgIGlmICggJFNlbGYtPntDb25maWd9LT57SXNQcm9jZXNzV2lkZ2V0fSApIHsKICAgICAgICAk
RGVmYXVsdENvbHVtbnN7IkR5bmFtaWNGaWVsZF8kU2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50UHJv
Y2Vzc0lEfSJ9ICA9IDEwMTsKICAgICAgICAkRGVmYXVsdENvbHVtbnN7IkR5bmFtaWNGaWVsZF8k
U2VsZi0+e1Byb2Nlc3NNYW5hZ2VtZW50QWN0aXZpdHlJRH0ifSA9IDEwMjsKICAgIH0KCiAgICAj
IGR5bmFtaWMgZmllbGRzIGNhbiBub3QgYmUgb24gdGhlIERlZmF1bHRDb2x1bW5zIHNvcnRpbmcg
aGFzaAogICAgIyB3aGVuIGNvbXBhcmluZyAyIGR5bmFtaWMgZmllbGRzIHNvcnRpbmcgbXVzdCBi
ZSBhbHBoYWJldGljYWwKICAgIGlmICggISREZWZhdWx0Q29sdW1uc3skYX0gJiYgISREZWZhdWx0
Q29sdW1uc3skYn0gKSB7CiAgICAgICAgcmV0dXJuICRhIGNtcCAkYjsKICAgIH0KCiAgICAjIHdo
ZW4gYSBkeW5hbWljIGZpZWxkIGlzIGNvbXBhcmVkIHRvIGEgdGlja2V0IGF0dHJpYnV0ZSBpdCBt
dXN0IGJlIGhpZ2hlcgogICAgZWxzaWYgKCAhJERlZmF1bHRDb2x1bW5zeyRhfSApIHsKICAgICAg
ICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHdoZW4gYSB0aWNrZXQgYXR0cmlidXRlIGlzIGNvbXBh
cmVkIHRvIGEgZHluYW1pYyBmaWVsZCBpdCBtdXN0IGJlIGxvd2VyCiAgICBlbHNpZiAoICEkRGVm
YXVsdENvbHVtbnN7JGJ9ICkgewogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIG90aGVy
d2lzZSBkbyBhIG51bWVyaWNhbCBjb21wYXJpc29uIHdpdGggdGhlIHRpY2tldCBhdHRyaWJ1dGVz
CiAgICByZXR1cm4gJERlZmF1bHRDb2x1bW5zeyRhfSA8PT4gJERlZmF1bHRDb2x1bW5zeyRifTsK
fQoKMTsK
IyAtLQojIENvcHlyaWdodCAoYykgMjAxOC0gUGVybC1TZXJ2aWNlcy5kZSwgaHR0cDovL3Blcmwt
c2VydmljZXMuZGUKIyBCYXNlZCBvbiBLZXJuZWwvT3V0cHV0L0hUTUwvVGVtcGxhdGVzL1N0YW5k
YXJkL0FnZW50RGFzaGJvYXJkVGlja2V0TXlUaWNrZXRzRGFzaGxldC50dCBjb3B5cmlnaHQgKGMp
IDIwMTQtMjAxOCBNYXdvaCBHbWJICiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJT
T0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxl
IENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90
IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwu
dHh0LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmlj
RmlsdGVyIikgJV0KPHVsIGNsYXNzPSJUYWIgQWN0aW9ucyI+CiAgICA8bGkgY2xhc3M9IlslIERh
dGEuaXRlbSgiT3Blbjo6U2VsZWN0ZWQiKSB8IGh0bWwgJV0iPjxhIGhyZWY9IiMiIGlkPSJEYXNo
Ym9hcmRbJSBEYXRhLk5hbWUgfCBodG1sICVdT3BlbiIgZGF0YS1maWx0ZXI9Ik9wZW4iPlslIFRy
YW5zbGF0ZSgiT3BlbiB0aWNrZXRzIikgfCBodG1sICVdIChbJSBEYXRhLk9wZW4gfCBodG1sICVd
KTwvYT48L2xpPgogICAgPGxpIGNsYXNzPSJbJSBEYXRhLml0ZW0oIlJlbWluZGVyOjpTZWxlY3Rl
ZCIpIHwgaHRtbCAlXSI+PGEgaHJlZj0iIyIgaWQ9IkRhc2hib2FyZFslIERhdGEuTmFtZSB8IGh0
bWwgJV1SZW1pbmRlciIgZGF0YS1maWx0ZXI9IlJlbWluZGVyIj5bJSBUcmFuc2xhdGUoIlJlbWlu
ZGVyIHRpY2tldHMiKSB8IGh0bWwgJV0gKFslIERhdGEuUmVtaW5kZXIgfCBodG1sICVdKTwvYT48
L2xpPgogICAgPGxpIGNsYXNzPSJbJSBEYXRhLml0ZW0oIlBlbmRpbmc6OlNlbGVjdGVkIikgfCBo
dG1sICVdIj48YSBocmVmPSIjIiBpZD0iRGFzaGJvYXJkWyUgRGF0YS5OYW1lIHwgaHRtbCAlXVBl
bmRpbmciIGRhdGEtZmlsdGVyPSJQZW5kaW5nIj5bJSBUcmFuc2xhdGUoIlBlbmRpbmcgdGlja2V0
cyIpIHwgaHRtbCAlXSAoWyUgRGF0YS5QZW5kaW5nIHwgaHRtbCAlXSk8L2E+PC9saT4KWyUgUmVu
ZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0ZpbHRlckNsb3NlZCIpICVd
CiAgICA8bGkgY2xhc3M9IlslIERhdGEuaXRlbSgiQ2xvc2VkOjpTZWxlY3RlZCIpIHwgaHRtbCAl
XSI+PGEgaHJlZj0iIyIgaWQ9IkRhc2hib2FyZFslIERhdGEuTmFtZSB8IGh0bWwgJV1DbG9zZWQi
IGRhdGEtZmlsdGVyPSJDbG9zZWQiPlslIFRyYW5zbGF0ZSgiQ2xvc2VkIHRpY2tldHMiKSB8IGh0
bWwgJV0gKFslIERhdGEuQ2xvc2VkIHwgaHRtbCAlXSk8L2E+PC9saT4KWyUgUmVuZGVyQmxvY2tF
bmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXJDbG9zZWQiKSAlXQo8L3VsPgpbJSBS
ZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRmlsdGVyTmF2QmFyIikg
JV0KPHNwYW4gY2xhc3M9IlBhZ2luYXRpb24iPgogICAgWyUgRGF0YS5TaXRlTmF2QmFyICVdCjwv
c3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNGaWx0ZXJO
YXZCYXIiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0Zp
bHRlciIpICVdCgojPCEtLSBUaGlzIGZvcm0gd2lsbCBub3QgYmUgc3VibWl0dGVkLCB3ZSBuZWVk
IGl0IGZvciB0aGUgQUpBWCBjYWxscy4gLS0+Cjxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5k
bGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KICAg
IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkN1c3RvbWVySUQiIHZhbHVlPSJbJSBEYXRhLkN1
c3RvbWVySUQgfCBodG1sICVdIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJGaWx0
ZXJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBpZD0iRmlsdGVyWyUgRGF0YS5OYW1lIHwgaHRtbCAl
XSIgdmFsdWU9IlslIERhdGEuRmlsdGVyVmFsdWUgfCBodG1sICVdIiAvPgogICAgPHRhYmxlIGNs
YXNzPSJEYXRhVGFibGUiPgogICAgICAgIDx0aGVhZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29u
dGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlciIpICVdCiAgICAgICAgICAgIDx0cj4KClslIFJl
bmRlckJsb2NrU3RhcnQoIkdlbmVyYWxPdmVydmlld0hlYWRlciIpICVdCgpbJSBSZW5kZXJCbG9j
a1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YSIpICVdCiAgICAgICAg
ICAgICAgICA8dGggY2xhc3M9IkRhc2hib2FyZEhlYWRlciBbJSBEYXRhLkNTUyB8IGh0bWwgJV0i
PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0
YUxpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgIDxhIGlkPSJbJSBEYXRhLkhlYWRlckNvbHVt
bk5hbWUgfCBodG1sICVdT3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFt
ZT0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXU92ZXJ2aWV3Q29udHJvbFslIERh
dGEuTmFtZSB8IGh0bWwgJV0iIGhyZWY9IiMiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAl
XSIgPjwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFk
ZXJNZXRhTGluayIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdl
bmVyaWNIZWFkZXJNZXRhRW1wdHkiKSAlXQogICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxl
PSJbJSBUcmFuc2xhdGUoRGF0YS5IZWFkZXJDb2x1bW5OYW1lKSB8IGh0bWwgJV0iPjwvc3Bhbj4K
WyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJNZXRhRW1w
dHkiKSAlXQoKICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50
TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyTWV0YSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJD
b250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyVGlja2V0SGVhZGVyIikgJV0KWyUgUmVuZGVy
QmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRpY2tldE51bWJlckNv
bHVtbiIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkRhc2hib2FyZEhlYWRlciBUaWNr
ZXROdW1iZXIgWyUgRGF0YS5DU1MgfCBodG1sICVdIiBkYXRhLWNvbHVtbj0iVGlja2V0TnVtYmVy
Ij4KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iVGlja2V0TnVtYmVyT3ZlcnZpZXdDb250cm9s
WyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFtZT0iVGlja2V0TnVtYmVyT3ZlcnZpZXdDb250cm9s
WyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaHJlZj0iIyIgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBo
dG1sICVdIiA+WyUgQ29uZmlnKCJUaWNrZXQ6Okhvb2siKSAlXTwvYT4KICAgICAgICAgICAgICAg
IDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVy
VGlja2V0TnVtYmVyQ29sdW1uIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJn
ZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4iKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNz
PSJEYXNoYm9hcmRIZWFkZXIgWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwgaHRtbCAlXSBbJSBE
YXRhLkNTUyB8IGh0bWwgJV0iIGRhdGEtY29sdW1uPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUg
fCBodG1sICVdIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVy
aWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVm
PSIjIiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NUcmlnZ2VyIiB0aXRsZT0iWyUgRGF0YS5GaWx0ZXJU
aXRsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEt
ZmlsdGVyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9IkNvbHVtblNldHRpbmdzQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iQ29sdW1uU2V0dGluZ3NCb3giPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWyUgRGF0YS5Db2x1bW5GaWx0ZXJTdHJnICVdClslIFJlbmRlckJsb2NrU3RhcnQo
IkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rQ3VzdG9tZXJJ
RFNlYXJjaCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4
dCIgY2xhc3M9IkN1c3RvbWVySURBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpb
JSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZp
bHRlckxpbmtDdXN0b21lcklEU2VhcmNoIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRl
bnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rVXNlclNlYXJjaCIpICVd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IlVz
ZXJBdXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgi
Q29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtVc2VyU2VhcmNo
IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJEZWxl
dGVGaWx0ZXIgSGlkZGVuIj48aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+PC9pPjwvYT4KICAgICAg
ICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAg
ICAgICAgICAgICAgICAgIDxhIGlkPSJbJSBEYXRhLkhlYWRlckNvbHVtbk5hbWUgfCBodG1sICVd
T3ZlcnZpZXdDb250cm9sWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgbmFtZT0iWyUgRGF0YS5IZWFk
ZXJDb2x1bW5OYW1lIHwgaHRtbCAlXU92ZXJ2aWV3Q29udHJvbFslIERhdGEuTmFtZSB8IGh0bWwg
JV0iIGhyZWY9IiMiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgPlslIERhdGEuSGVh
ZGVyTmFtZVRyYW5zbGF0ZWQgfCBodG1sICVdPC9hPgoKWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRl
bnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXJMaW5rIikgJV0KClslIFJlbmRl
ckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rIikg
JV0KICAgICAgICAgICAgICAgICAgICA8YSBpZD0iWyUgRGF0YS5IZWFkZXJDb2x1bW5OYW1lIHwg
aHRtbCAlXU92ZXJ2aWV3Q29udHJvbFslIERhdGEuTmFtZSB8IGh0bWwgJV0iIG5hbWU9IlslIERh
dGEuSGVhZGVyQ29sdW1uTmFtZSB8IGh0bWwgJV1PdmVydmlld0NvbnRyb2xbJSBEYXRhLk5hbWUg
fCBodG1sICVdIiBocmVmPSIjIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iID5bJSBE
YXRhLkhlYWRlck5hbWVUcmFuc2xhdGVkIHwgaHRtbCAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQo
IkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5MaW5rIikgJV0KClslIFJlbmRl
ckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW5GaWx0ZXIi
KSAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDb2x1bW5TZXR0aW5n
c1RyaWdnZXIiIHRpdGxlPSJbJSBEYXRhLkZpbHRlclRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAg
ICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWx0ZXIiPjwvaT4KICAgICAgICAgICAg
ICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29sdW1uU2V0dGlu
Z3NDb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb2x1bW5T
ZXR0aW5nc0JveCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNvbHVtbkZp
bHRlclN0cmcgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJp
Y0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJTZWFyY2giKSAlXQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJDdXN0b21lclVzZXJB
dXRvQ29tcGxldGUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29u
dGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlckNvbHVtbkZpbHRlckxpbmtDdXN0b21lclVzZXJT
ZWFyY2giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9
IkRlbGV0ZUZpbHRlciBIaWRkZW4iPjxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+PC9hPgog
ICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K
ICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iR3JheSIgdGl0bGU9IlslIERhdGEuVGl0
bGUgfCBodG1sICVdIiA+WyUgRGF0YS5IZWFkZXJOYW1lVHJhbnNsYXRlZCB8IGh0bWwgJV08L3Nw
YW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljSGVhZGVyQ29s
dW1uRmlsdGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdl
bmVyaWNIZWFkZXJDb2x1bW5FbXB0eSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xh
c3M9IkdyYXkiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgPlslIERhdGEuSGVhZGVy
TmFtZVRyYW5zbGF0ZWQgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VU
aWNrZXRHZW5lcmljSGVhZGVyQ29sdW1uRW1wdHkiKSAlXQogICAgICAgICAgICAgICAgPC90aD4K
WyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNIZWFkZXJDb2x1bW4i
KSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0hlYWRlclRp
Y2tldEhlYWRlciIpICVdCgpbJSBSZW5kZXJCbG9ja0VuZCgiR2VuZXJhbE92ZXJ2aWV3SGVhZGVy
IikgJV0KCiAgICAgICAgICAgIDwvdHI+CgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdl
VGlja2V0R2VuZXJpY0hlYWRlciIpICVdCiAgICAgICAgPC90aGVhZD4KCiAgICAgICAgPHRib2R5
PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93IikgJV0K
ICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgoKWyUgUmVuZGVyQmxvY2tTdGFy
dCgiR2VuZXJhbE92ZXJ2aWV3Um93IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRM
YXJnZVRpY2tldEdlbmVyaWNSb3dNZXRhIikgJV0KICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0i
WyUgRGF0YS5DbGFzc1RhYmxlIHwgaHRtbCAlXSBGbGFncyIgdGl0bGU9IlslIFRyYW5zbGF0ZShE
YXRhLlRpdGxlKSB8IGh0bWwgJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VU
aWNrZXRHZW5lcmljUm93TWV0YUltYWdlIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSBTbWFsbCIgdGl0bGU9IlslIFRyYW5zbGF0ZShE
YXRhLlRpdGxlKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFz
cz0iWyUgRGF0YS5DbGFzc1NwYW4gfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxpIGNsYXNzPSJmYSBmYS1zdGFyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8aSBjbGFzcz0iZmEgZmEtc3RhciI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGVtPlslIFRyYW5zbGF0ZShEYXRhLlRpdGxlKSB8IGh0bWwgJV08L2VtPgogICAgICAgICAgICAg
ICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJs
b2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljUm93TWV0YUltYWdlIikgJV0KICAgICAg
ICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50TGFyZ2VUaWNrZXRHZW5l
cmljUm93TWV0YSIpICVdCgojICAgICAgICAgICAgPHRkIGNsYXNzPSJXMTBwYyI+CiMgICAgICAg
ICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0
Wm9vbTtUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8
IGh0bWwgJV0iIGNsYXNzPSJBc0Jsb2NrIE1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuVGlja2V0
TnVtYmVyICVdPC9hPgojICAgICAgICAgICAgPC90ZD4KIyAgICAgICAgICAgIDx0ZCBjbGFzcz0i
VzUwcGMiPgojICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1s
ICVdIj5bJSBEYXRhLlRpdGxlIHwgdHJ1bmNhdGUoNzApIHwgaHRtbCAlXTwvZGl2PgojICAgICAg
ICAgICAgPC90ZD4KIyAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlRpbWUgfCBodG1sICVdPC90ZD4K
ClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNUaWNrZXRDb2x1
bW4iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljVGlj
a2V0TnVtYmVyIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8
YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaWNrZXRab29tO1RpY2tl
dElEPVslIERhdGEuVGlja2V0SUQgJV0iIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIg
Y2xhc3M9IkFzQmxvY2sgTWFzdGVyQWN0aW9uTGluayI+WyUgRGF0YS5UaWNrZXROdW1iZXIgJV08
L2E+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdl
VGlja2V0R2VuZXJpY1RpY2tldE51bWJlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRl
bnRMYXJnZVRpY2tldEdlbmVyaWNFc2NhbGF0aW9uVGltZSIpICVdCiAgICAgICAgICAgICAgICA8
dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTZXJ2aWNl
IFRpbWUiKSB8IGh0bWwgJV06IFslIERhdGEuRXNjYWxhdGlvblRpbWVXb3JraW5nVGltZSB8IGh0
bWwgJV0gLSBbJSBEYXRhLkVzY2FsYXRpb25EZXN0aW5hdGlvbkRhdGUgfCBMb2NhbGl6ZSgiVGlt
ZVNob3J0IikgJV0iIGNsYXNzPSJbJSBEYXRhLkVzY2FsYXRpb25DbGFzcyB8IGh0bWwgJV0iPlsl
IERhdGEuRXNjYWxhdGlvblRpbWVIdW1hbiB8IGh0bWwgJV08YnIvPlslIERhdGEuVXBkYXRlVGlt
ZURlc3RpbmF0aW9uRGF0ZSB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXTwvZGl2PgogICAgICAg
ICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVy
aWNFc2NhbGF0aW9uVGltZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRp
Y2tldEdlbmVyaWNDb2x1bW4iKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAg
ICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuR2VuZXJpY1ZhbHVlIHwgaHRtbCAlXSI+WyUgRGF0
YS5HZW5lcmljVmFsdWUgfCB0cnVuY2F0ZSg3OCkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAg
ICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0Nv
bHVtbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNvbnRlbnRMYXJnZVRpY2tldFRpdGxlIikg
JV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJb
JSBEYXRhLldob2xlVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLlRpdGxlIHwgaHRtbCAlXTwvZGl2
PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRp
Y2tldFRpdGxlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVudExhcmdlVGlja2V0R2Vu
ZXJpY0NvbHVtblRyYW5zbGF0YWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAg
ICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuR2VuZXJpY1ZhbHVlKSB8
IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkdlbmVyaWNWYWx1ZSkgfCBodG1sICVdPC9kaXY+
CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlj
a2V0R2VuZXJpY0NvbHVtblRyYW5zbGF0YWJsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNv
bnRlbnRMYXJnZVRpY2tldEdlbmVyaWNDb2x1bW5UaW1lIikgJV0KICAgICAgICAgICAgICAgIDx0
ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLkdlbmVyaWNWYWx1ZSB8
IExvY2FsaXplKCJUaW1lU2hvcnQiKSB8IGh0bWwgJV0iPlslIERhdGEuR2VuZXJpY1ZhbHVlIHwg
TG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBS
ZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY0NvbHVtblRpbWUiKSAlXQpb
JSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljQ29sdW1uRXNjYWxh
dGlvbiIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0
aXRsZT0iWyUgRGF0YS5HZW5lcmljVmFsdWUgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5DbGFz
cyB8IGh0bWwgJV0iPlslIERhdGEuR2VuZXJpY1ZhbHVlIHwgaHRtbCAlXTwvZGl2PgogICAgICAg
ICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVy
aWNDb2x1bW5Fc2NhbGF0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRlbnRMYXJnZVRp
Y2tldEdlbmVyaWNUaWNrZXRDb2x1bW4iKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ29udGVu
dExhcmdlVGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICA8dGQ+
CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0i
PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0Zp
ZWxkTGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIERhdGEuTGlu
ayB8IEludGVycG9sYXRlICVdIiAgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJEeW5hbWljRmllbGRM
aW5rIj5bJSBEYXRhLlZhbHVlICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdl
VGlja2V0R2VuZXJpY0R5bmFtaWNGaWVsZExpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJD
b250ZW50TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAg
ICAgICAgICAgICAgICBbJSBEYXRhLlZhbHVlICVdClslIFJlbmRlckJsb2NrRW5kKCJDb250ZW50
TGFyZ2VUaWNrZXRHZW5lcmljRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRl
bnRMYXJnZVRpY2tldEdlbmVyaWNEeW5hbWljRmllbGQiKSAlXQoKWyUgUmVuZGVyQmxvY2tFbmQo
IkdlbmVyYWxPdmVydmlld1JvdyIpICVdCgogICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9j
a0VuZCgiQ29udGVudExhcmdlVGlja2V0R2VuZXJpY1JvdyIpICVdClslIFJlbmRlckJsb2NrU3Rh
cnQoIkNvbnRlbnRMYXJnZVRpY2tldEdlbmVyaWNOb25lIikgJV0KICAgICAgICAgICAgPHRyPgog
ICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJBdXRvQ29sc3BhbiI+CiAgICAgICAgICAgICAgICAg
ICAgWyUgVHJhbnNsYXRlKCJub25lIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3RkPgog
ICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ29udGVudExhcmdlVGlja2V0R2Vu
ZXJpY05vbmUiKSAlXQogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgo8L2Zvcm0+Cgo=
PXBvZAoKPWhlYWQxIE5hbWUKCkRhc2hib2FyZE15VGlja2V0cwoKPWhlYWQxIERlc2NyaXB0aW9u
CgpUaGlzIHBhY2thZ2VzIHByb3ZpZGVzIGRhc2hib2FyZCBtb2R1bGUgdGhhdCBzaG93cyBvbmx5
IG15IHRpY2tldHMuClRoaXMgaXMgYSBmb3JrIG9mIEw8TXlUaWNrZXRzRGFzaGxldHxodHRwczov
L2dpdGh1Yi5jb20vZnJlbmV0aWNmL015VGlja2V0c0Rhc2hsZXQ+CgoKPWhlYWQxIFByZXJlcXVp
c2l0ZXMKCj1vdmVyCgo9aXRlbSAqIE9UUlMgNi4wCgo9YmFjawoKPWhlYWQxIEluc3RhbGxhdGlv
bgoKRG93bmxvYWQgdGhlIHBhY2thZ2UgYW5kIGluc3RhbGwgaXQgdmlhIGFkbWluIGludGVyZmFj
ZSAtPiBwYWNrYWdlIG1hbmFnZXIuCgo9aGVhZDEgQ29uZmlndXJhdGlvbgoKPW92ZXIKCj1pdGVt
ICogQ29uZmlndXJlIGl0IHZpYSBhZG1pbiBpbnRlcmZhY2UgLT4gU3lzQ29uZmlnCgo9aXRlbSAq
IFRpY2tldCAtPiBGcm9udGVuZDo6QWdlbnQ6OkRhc2hib2FyZCAtPiBEYXNoYm9hcmRCYWNrZW5k
IyMjMDA5MC1EYXNoYm9hcmRNeVRpY2tldHMKCj1pdGVtICogQnkgZGVmYXVsdCB0aGUgbW9kdWxl
IGlzIGVuYWJsZWQuCgo9YmFjawoKPWhlYWQxIFNvdXJjZSBDb2RlCgpGb3JrIG1lIG9uIGdpdGh1
YiBMPGh0dHBzOi8vZ2l0aHViLmNvbS9yZW5lZWIvRGFzaGJvYXJkTXlUaWNrZXRzPgoKPWhlYWQx
IExpY2Vuc2UKClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZ
LiBGb3IgZGV0YWlscywgc2VlIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2Ug
aW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2Vl
IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KCj1jdXQKCg==
2018-12-19 11:10:55otrs6-neu