TimeAccounting
5.0.8
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
- Added Bulgarian language.
- Added Norwegian language.
- Updated translations, thanks to all translators.
-Removed unnecessary escape character from regex list.
-Replaced UserFistname, UserLastname in favor of a more flexible UserFullname, thanks to Dian Tong Software.
-Added workaround for issues with empty values in project and task dropdown fields.
Build for TimeAccounting 5 patch level 6.
Build for TimeAccounting 5 patch level 5.
Build for TimeAccounting 5 patch level 4.
Build for TimeAccounting 5 patch level 3.
Build for TimeAccounting 5 patch level 2.
Build for TimeAccounting 5.
Build for TimeAccounting 5 beta1.
A Time Registration Module.
Ein Zeiterfassungsmodul.
Egy munkaidő nyilvántartás modul.
5.0.x
<br>
<b>WELCOME</b>
<br>
<br>
You are about to install the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu installieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de instalar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag telepítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTICE</b>
<br>
<br>
In order to grant users access to the time accounting module, you need to add them as member to the group 'time_accounting'.
<br>
<br>
The menu items that were added by this package will be visible after you log-in to the system again.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>HINWEIS</b>
<br>
<br>
Um Benutzern Zugriff auf die Zeiterfassung zu gewähren, müssen diese Mitglied der neuen Gruppe 'time_accounting' sein.
<br>
<br>
Die von diesem Paket hinzugefügten Menü-Punkte sind erst nach einem erneuten Anmeldevorgang im System sichtbar.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTA</b>
<br>
<br>
Para permitirles a los usuarios el acceso al módulo de contabilidad de tiempo, es necesario añadirlos como miembros del grupo 'time_accounting'.
<br>
<br>
Los elementos del menú agregados por este paquete, serán visibles luego de reiniciar sesión en el sistema.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELMEZTETÉS</b>
<br>
<br>
Annak érdekében, hogy hozzáférést adjon a felhasználók számára az időelszámolás modulhoz, hozzá kell adnia őket a „time_accounting” csoporthoz tagként.
<br>
<br>
Azok a menüpontok, amelyeket ez a csomag adott hozzá, azután lesznek láthatóak, miután ismét bejelentkezik a rendszerbe.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
If you uninstall this package, all database tables that were created during installation will be deleted.
All data from these tables will be irrevocably lost!
<br>
<br>
The group 'time_accounting' that was created during package installation will be deactivated.
You can activate this group again in the admin area.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ACHTUNG</b>
<br>
<br>
Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
Alle darin enthaltenen Daten gehen unwiderruflich verloren!
<br>
<br>
Die von diesem Paket angelegte Gruppe 'time_accounting' wird deaktiviert.
Sie kann jederzeit im Admin-Bereich wieder aktiviert werden.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
Si usted desinstala este paquete, todas las tablas de la base de datos que se crearon durante la instalación del mismo, se eliminarán y
el contenido de dichas tablas se perderá irrevocablemente.
<br>
<br>
El grupo 'time_accounting' que se dió de alta durante la instalación del paquete, se desactivará.
Es posible reactivar dicho grupo en el área de administración.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELEM</b>
<br>
<br>
Ha eltávolítja ezt a csomagot, akkor a telepítés során létrehozott összes adatbázistábla törlésre kerül.
Az ezekben a táblákban lévő összes adat visszavonhatatlanul el fog veszni!
<br>
<br>
A csomagtelepítés során létrehozott „time_accounting” csoport ki lesz kapcsolva.
Ezt a csoportot az adminisztrációs területen tudja ismét bekapcsolni.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WELCOME</b>
<br>
<br>
You are about to upgrade the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu aktualisieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de actualizar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag frissítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeInstall();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_91();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUninstall();
2017-10-10 08:41:06
opms.otrs.com
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AMYD+T0j0EiL5EHpBgAARgX5PWDccMMUAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgo3QAAAAAMBko3AAAAAIOB0g0AAADAYKB0AwAAADAYKN0AAAAADAZKNwAAAACDgdINAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgmjxxx80apDtYBAAAAAI/EUSqV+l4DAAAAAAwIbpgCAAAAGAyUbgAAAAAGA6UbAAAAgMFA6QYAAABgMFC6AQAAABgMlG4AAAAABgOlGwAAAIDBQOkGAAAAYDD+H3KsT6dETQQmAAAAAElFTkSuQmCC
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBlZGl0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaW1lQWNjb3VudGluZzwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZSBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZSBUcmFuc2xhdGFibGU9IjEiPlRpbWUgQWNjb3VudGluZzwvTmFtZT4KICAgICAgICAgICAgICAgICAgICA8TGluaz5BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPE5hdkJhcj5UaW1lQWNjb3VudGluZzwvTmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxUeXBlPk1lbnU8L1R5cGU+CiAgICAgICAgICAgICAgICAgICAgPFByaW8+NjAwMDwvUHJpbz4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz5JdGVtQXJlYTwvQmxvY2s+CiAgICAgICAgICAgICAgICA8L05hdkJhcj4KICAgICAgICAgICAgICAgIDxOYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEdyb3VwUm8+dGltZV9hY2NvdW50aW5nPC9Hcm91cFJvPgogICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVkaXQgdGltZSByZWNvcmQuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZSBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L05hbWU+CiAgICAgICAgICAgICAgICAgICAgPExpbms+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0PC9MaW5rPgogICAgICAgICAgICAgICAgICAgIDxUeXBlPjwvVHlwZT4KICAgICAgICAgICAgICAgICAgICA8QmxvY2s+PC9CbG9jaz4KICAgICAgICAgICAgICAgICAgICA8TmF2QmFyPlRpbWVBY2NvdW50aW5nPC9OYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc0tleT48L0FjY2Vzc0tleT4KICAgICAgICAgICAgICAgICAgICA8UHJpbz4yMDA8L1ByaW8+CiAgICAgICAgICAgICAgICA8L05hdkJhcj4KICAgICAgICAgICAgICAgIDxMb2FkZXI+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0NTUz4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxKYXZhU2NyaXB0PlRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5qczwvSmF2YVNjcmlwdD4KICAgICAgICAgICAgICAgICAgICA8SmF2YVNjcmlwdD5UaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuanM8L0phdmFTY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgPEphdmFTY3JpcHQ+VGltZUFjY291bnRpbmcuQWdlbnQuRGF0ZXBpY2tlci5qczwvSmF2YVNjcmlwdD4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlRpbWVBY2NvdW50aW5nPC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPFRpdGxlIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXc8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZSBUcmFuc2xhdGFibGU9IjEiPk92ZXJ2aWV3PC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjEwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLkRlZmF1bHRzLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuVGFibGUuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlRpbWVBY2NvdW50aW5nPC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPFRpdGxlIFRyYW5zbGF0YWJsZT0iMSI+U2V0dGluZ3M8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgIDxOYW1lIFRyYW5zbGF0YWJsZT0iMSI+U2V0dGluZ3M8L05hbWU+CiAgICAgICAgICAgICAgICAgICAgPExpbms+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nPC9MaW5rPgogICAgICAgICAgICAgICAgICAgIDxUeXBlPjwvVHlwZT4KICAgICAgICAgICAgICAgICAgICA8QmxvY2s+PC9CbG9jaz4KICAgICAgICAgICAgICAgICAgICA8TmF2QmFyPlRpbWVBY2NvdW50aW5nPC9OYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc0tleT48L0FjY2Vzc0tleT4KICAgICAgICAgICAgICAgICAgICA8UHJpbz45MDA8L1ByaW8+CiAgICAgICAgICAgICAgICA8L05hdkJhcj4KICAgICAgICAgICAgICAgIDxMb2FkZXI+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0NTUz4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxKYXZhU2NyaXB0PlRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIuanM8L0phdmFTY3JpcHQ+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlRpbWVBY2NvdW50aW5nPC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPFRpdGxlIFRyYW5zbGF0YWJsZT0iMSI+UmVwb3J0aW5nPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UHJvamVjdCB0aW1lIHJlcG9ydGluZy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgIDxOYW1lIFRyYW5zbGF0YWJsZT0iMSI+UmVwb3J0aW5nPC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nPC9MaW5rPgogICAgICAgICAgICAgICAgICAgIDxUeXBlPjwvVHlwZT4KICAgICAgICAgICAgICAgICAgICA8QmxvY2s+PC9CbG9jaz4KICAgICAgICAgICAgICAgICAgICA8TmF2QmFyPlRpbWVBY2NvdW50aW5nPC9OYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc0tleT48L0FjY2Vzc0tleT4KICAgICAgICAgICAgICAgICAgICA8UHJpbz41MDA8L1ByaW8+CiAgICAgICAgICAgICAgICA8L05hdkJhcj4KICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLkRlZmF1bHRzLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuVGFibGUuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgdmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+VGltZUFjY291bnRpbmc8L05hdkJhck5hbWU+CiAgICAgICAgICAgICAgICA8VGl0bGUgVHJhbnNsYXRhYmxlPSIxIj5WaWV3PC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPEdyb3VwUm8+dGltZV9hY2NvdW50aW5nPC9Hcm91cFJvPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0NTUz4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRQcm9qZWN0TmFtZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3RTdGF0dXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5pbnZhbGlkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIiBUcmFuc2xhdGFibGU9IjEiPnZhbGlkPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyV2Vla2x5SG91cnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjQwPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyTGVhdmVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4yMzwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlck92ZXJ0aW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVTdGFydCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MjAxNS0wMS0wMTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVFbmQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4yMDE1LTEyLTMxPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5QdXQgeW91ciBkZXNjcmlwdGlvbiBoZXJlLjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlclN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIiBUcmFuc2xhdGFibGU9IjEiPmludmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiIFRyYW5zbGF0YWJsZT0iMSI+dmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjQ8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4yPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlTm90aWZ5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Rm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjEwPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OlJlZHVjZVRpbWUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9Jmd0OyB0cmF2ZWxpbmc7IENvbnRlbnQgPSZndDsgNTApLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0idHJhdmVsaW5nIj41MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpJbnB1dEhvdXJzV2l0aG91dFN0YXJ0RW5kVGltZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIiBUcmFuc2xhdGFibGU9IjEiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIiBUcmFuc2xhdGFibGU9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iUHJlQXBwbGljYXRpb25Nb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5LZXJuZWw6Ok1vZHVsZXM6OkFnZW50VGltZUFjY291bnRpbmdFZGl0PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OlByb2plY3QyUmVtYXJrUmVnRXhwIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdFZGl0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5eKD86IFBST0pFQ1RcIyB8IElORlJBOiB8IFBST0RVQ1Q6ICk8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6UHJvamVjdExpc3RDb25zdHJhaW50cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkFjdGlvbkxpc3RDb25zdHJhaW50cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIiBUcmFuc2xhdGFibGU9IjEiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIiBUcmFuc2xhdGFibGU9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiIFRyYW5zbGF0YWJsZT0iMSI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiIFRyYW5zbGF0YWJsZT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWN0aXZlRmlsdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiIFRyYW5zbGF0YWJsZT0iMSI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiIFRyYW5zbGF0YWJsZT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWxsb3dNYXNzRW50cnlGb3JVc2VyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiIFRyYW5zbGF0YWJsZT0iMSI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiIFRyYW5zbGF0YWJsZT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VG9vbEJhck1vZHVsZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNzc0NsYXNzIj5JbmNvbXBsZXRlV29ya2luZ0RheXM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb24iPmZhIGZhLWNsb2NrLW88L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI1RpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdGF0czwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RnJvbnRlbmQ6OlJlcG9ydGluZ1Byb2plY3QjIyNTaG93T25seUFjdGl2ZVVzZXJzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291dG5pbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KPC9vdHJzX2NvbmZpZz4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6YmdfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQndCw0LjRgdGC0LjQvdCwINC70Lgg0LjRgdC60LDRgtC1INC00LAg0LjQt9GC0YDQuNC10YLQtSDRgdGH0LXRgtC+0LLQvtC00YHRgtCy0L7RgtC+INC30LAg0LLRgNC10LzQtSDQsiDRgtC+0LfQuCDQtNC10L0/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQstGA0LXQvNC10LLQuNGPINC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQntGC0LjQtNC10YLQtSDQsiDQvdCw0YHRgtGA0L7QudC60LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ9CU0LDRgtCwINC30LAg0L3QsNCy0LjQs9Cw0YbQuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9CS0YfQtdGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQo9GC0YDQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICfQntGC0LjQtNC10YLQtSDQvdCwINGC0LDQt9C4INC00LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAn0JTQvdC4INCx0LXQtyDQt9Cw0L/QuNGB0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn0JjQt9Cx0L7RgCDQvdCwINCy0YHQuNGH0LrQuCDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQviDQstGK0LLQtdC20LTQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfQnNC+0LvRjywg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsNGC0LAg0LfQsCDQktCw0YjQtdGC0L4g0L7RgtGB0YrRgdGC0LLQuNC1INC30LAg0LjQt9Cx0YDQsNC90LjRgtC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ9CS0LDQutCw0L3RhtC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9CSINC+0YLQv9GD0YHQuiDQv9C+INCx0L7Qu9C10YHRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9Cf0YDQuCDQuNC30LLRitC90YDQtdC00LXQvSDQvtGC0L/Rg9GB0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ9Cc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC/0L7QvdC1INC10LTQuNC9INC00LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQnNC+0LvRjywg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsCDQt9CwINC+0YLRgdGK0YHRgtCy0LjQtSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQviDQstC/0LjRgdCy0LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0JfQsNC00YrQu9C20LjRgtC10LvQvdC40YLQtSDQv9C+0LvQtdGC0LAg0YHQsCDQvNCw0YDQutC40YDQsNC90Lgg0YEgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Ci0YDRj9Cx0LLQsCDQtNCwINCy0YrQstC10LTQtdGC0LUg0L3QsNGH0LDQu9C90L4g0Lgg0LrRgNCw0LnQvdC+INCy0YDQtdC80LUg0LjQu9C4INC/0LXRgNC40L7QtCDQvtGCINCy0YDQtdC80LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ9CX0LDQtNCw0YfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQl9Cw0LHQtdC70LXQttC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAn0JzQvtC70Y8sINC00L7QsdCw0LLQtdGC0LUg0LfQsNCx0LXQu9C10LbQutCwINGBINC/0L7QstC10YfQtSDQvtGCIDgg0LfQvdCw0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ9Cd0LDRh9Cw0LvQvdC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Ce0YLRgNC40YbQsNGC0LXQu9C90LjRgtC1INCy0YDQtdC80LXQvdCwINC90LUg0YHQtSDQtNC+0L/Rg9GB0LrQsNGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDRgdC1INC00L7Qv9GD0YHQutCw0YIg0L/QvtCy0YLQvtGA0L3QuCDRh9Cw0YHQvtCy0LUuINCd0LDRh9Cw0LvQvdC+0YLQviDQstGA0LXQvNC1INGB0YrQstC/0LDQtNCwINGBINC00YDRg9CzINC40L3RgtC10YDQstCw0LsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0YTQvtGA0LzQsNGCISDQnNC+0LvRjywg0LLRitCy0LXQtNC10YLQtSDRh9Cw0YEg0YEg0YTQvtGA0LzQsNGCINCn0Kc6INCc0JwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwINC1INGA0LDQt9GA0LXRiNC10L3QviDRgdCw0LzQviDQutCw0YLQviDQutGA0LDQudC90L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC90L4g0LLRgNC10LzQtSEg0JXQtNC40L0g0LTQtdC9INC40LzQsCAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICfQmtGA0LDQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn0JrRgNCw0LnQvdC+0YLQviDQstGA0LXQvNC1INGC0YDRj9Cx0LLQsCDQtNCwINC1INGB0LvQtdC0INC90LDRh9Cw0LvQvdC+0YLQviDQstGA0LXQvNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cd0LUg0YHQtSDQtNC+0L/Rg9GB0LrQsNGCINC/0L7QstGC0L7RgNC90Lgg0YfQsNGB0L7QstC1LiDQmtGA0LDQudC90L7RgtC+INCy0YDQtdC80LUg0YHRitCy0L/QsNC00LAg0YEg0LTRgNGD0LMg0LjQvdGC0LXRgNCy0LDQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDQv9C10YDQuNC+0LQhINCV0LTQuNC9INC00LXQvSDQuNC80LAgMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0JLQsNC70LjQtNC90LjRj9GCINC/0LXRgNC40L7QtCDRgtGA0Y/QsdCy0LAg0LTQsCDQtSDQv9C+LdCz0L7Qu9GP0Lwg0L7RgiDQvdGD0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDQv9C10YDQuNC+0LQhINCe0YLRgNC40YbQsNGC0LXQu9C90LjRgtC1INC/0LXRgNC40L7QtNC4INC90LUg0YHQsCDRgNCw0LfRgNC10YjQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtCx0LDQstC4INC10LTQuNC9INGA0LXQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ9Ce0LHRidC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0JzQvtC20LXRgtC1INC00LAg0LjQt9Cx0LXRgNC10YLQtSDRgdCw0LzQviDQtdC00LjQvSDQtdC70LXQvNC10L3RgiDQvtGCINC60LLQsNC00YDQsNGC0YfQtdGC0L4g0LfQsCDQvtGC0LzQtdGC0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICfQn9C+0LrQsNC30LLQsNC90LUg0L3QsCDQstGB0LjRh9C60Lgg0LXQu9C10LzQtdC90YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0JjQt9GC0YDQuNCy0LDQvdC1INC90LAg0LLRgNC10LzQtdGC0L4g0LfQsCDQstC/0LjRgdCy0LDQvdC1INCyINGB0YfQtdGC0L7QstC+0LTRgdGC0LLQvtGC0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfQn9C+0YLQstGK0YDQtNC10YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0YDQsNCx0L7RgtC40YLQtSwg0LTQvtC60LDRgtC+INGB0YLQtSDQsiDQvtGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0YDQsNCx0L7RgtC40YLQtSwg0LTQvtC60LDRgtC+INCx0Y/RhdGC0LUg0L3QsCDQv9C+0YfQuNCy0LrQsD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9Ch0LjQs9GD0YDQvdC4INC70Lgg0YHRgtC1LCDRh9C1INGB0YLQtSDRgNCw0LHQvtGC0LjQu9C4LCDQtNC+0LrQsNGC0L4g0LHRj9GF0YLQtSDQvdCwINC40LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQodC40LPRg9GA0L3QuCDQu9C4INGB0YLQtSwg0YfQtSDRgdGC0LUg0YDQsNCx0L7RgtC40LvQuCDQv9C+0LLQtdGH0LUg0L7RgiAxNiDRh9Cw0YHQsD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9Cc0LXRgdC10YfQtdC9INC/0YDQtdCz0LvQtdC0INC90LAg0LLRgNC10LzQtdGC0L4g0LfQsCDQvtGC0YfQuNGC0LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQmNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCAo0YfQsNGB0L7QstC1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQmNC30LLRitC90YDQtdC20LjQvCAo0YLQvtC30Lgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ9CY0LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0ICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgdGC0LDQstCw0Ykg0L7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ9Ce0YLQv9GD0YHQutCwICjQtNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CS0LfQtdGC0LAg0L7RgtC/0YPRgdC60LAgKNGC0L7Qt9C4INC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQktC30LXRgtCwINC+0YLQv9GD0YHQutCwICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn0J7RgdGC0LDQstCw0YnQsCDQvtGC0L/Rg9C60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQntGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YIgKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICfQntGC0L/Rg9GB0L3QsNGCINC1INCx0L7Qu9C90LjRh9C10L0gKNGC0L7Qt9C4INC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9Ce0YLQv9GD0YHQvdCw0YIg0LHQvtC70LXQvdC40YfQtdC9ICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXQtNC90LjRjyDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfQodC70LXQtNCy0LDRidC40Y8g0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0JTQtdC70L3QuNGH0LXQvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAn0KDQsNCx0L7RgtC90Lgg0YfQsNGB0L7QstC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ9Ce0LHRidC+INGA0LDQsdC+0YLQvdC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0L3QsCDQv9GA0L7QtdC60YLQsCDQvdCwINC/0L7RgtGA0LXQsdC40YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KfQsNGB0L7QstC1ICjQvNC10YHQtdGH0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ9Cn0LDRgdC+0LLQtSAo0YbRj9C7INC20LjQstC+0YIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn0J7QsdGJ0L4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn0J7RgtGH0LjRgtCw0L3QtSDQvdCwINCy0YDQtdC80LXRgtC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQnNC10YHQtdGH0L3QsCDQvdCw0LLQuNCz0LDRhtC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ9Ce0YLQuNC00LXRgtC1INC90LAg0LTQsNGC0LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ9Cf0L7RgtGA0LXQsdC40YLQtdC70YHQutC4INC+0YLRh9C10YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0J7QsdGJ0L4g0LfQsCDQvNC10YHQtdGG0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQntCx0YnQviDQt9CwINGG0LXQu9C40Y8g0L/QtdGA0LjQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgtC/0YPRgdC6INC30LAg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0YLRgNGD0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfQntGC0L/Rg9GB0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0J7RgtC/0YPRgdC6INC/0L4g0LHQvtC70LXRgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ9Ce0YHRgtCw0LLQsNGJ0LAg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0JTQvtC60LvQsNC00Lgg0LfQsCDQv9GA0L7QtdC60YLQsCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0JTQvtC60LvQsNC0INC30LAg0L/RgNC+0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn0J7RgtCy0L7RgNC10YLQtSDQvtGC0YfQtdGC0L3QuNGPINC/0YDQtdCz0LvQtdC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0JIg0LzQvtC80LXQvdGC0LAg0YHQtSDQv9C+0LrQsNC30LLQsNGCINGB0LDQvNC+INCw0LrRgtC40LLQvdC4INC/0L7RgtGA0LXQsdC40YLQtdC70Lgg0LIg0YLQvtC30Lgg0L/RgNC+0LXQutGCLiDQl9CwINC00LAg0L/RgNC+0LzQtdC90LjRgtC1INGC0L7QstCwINC/0L7QstC10LTQtdC90LjQtSwg0LzQvtC70Y8sINCw0LrRgtGD0LDQu9C40LfQuNGA0LDQudGC0LUg0L3QsNGB0YLRgNC+0LnQutCw0YLQsDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0J/QvtC90LDRgdGC0L7Rj9GJ0LXQvCDRgdC1INC/0L7QutCw0LfQstCw0YIg0LLRgdC40YfQutC4INC/0L7RgtGA0LXQsdC40YLQtdC70LgsINC+0YLRh9C40YLQsNGJ0Lgg0LLRgNC10LzQtdGC0L4uINCX0LAg0LTQsCDQv9GA0L7QvNC10L3QuNGC0LUg0YLQvtCy0LAg0L/QvtCy0LXQtNC10L3QuNC1LCDQvNC+0LvRjywg0LDQutGC0YPQsNC70LjQt9C40YDQsNC50YLQtSDQvdCw0YHRgtGA0L7QudC60LDRgtCwOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtSDQvdCwINC/0YDQvtC10LrRgiDQt9CwINGB0YfQtdGC0L7QstC+0LTQvdC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICfQlNC+0LHQsNCy0Y/QvdC1INC90LAg0L/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0J7RgtC40LTQtdGC0LUg0LIg0L7QsdGJINC/0YDQtdCz0LvQtdC0INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQv9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNCw0L3QtSDQvdCwINC90LDRgdGC0YDQvtC50LrQuNGC0LUg0L3QsCDQv9GA0L7QtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGH0LUg0LjQvNCwINC/0YDQvtC10LrRgiDRgSDRgtC+0LLQsCDQuNC80LUuINCc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9CzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC30LAg0YHRh9C10YLQvtCy0L7QtNC90L4g0LLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQt9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICfQndC+0LIg0L/QvtGC0YDQtdCx0LjRgtC10LsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ9Ck0LjQu9GC0YrRgCDQvdCwINC/0YDQvtC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICfQpNC40LvRgtGK0YAg0LfQsCDQt9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ9Ck0LjQu9GC0YrRgCDQvdCwINC/0L7RgtGA0LXQsdC40YLQtdC70LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICfQn9C10YDQuNC+0LTQuNGC0LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQuNC30YLRgNC40YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHRitC6INC90LAg0L/RgNC+0LXQutGC0LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDQvdCwINC30LDQtNCw0YfQuNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC90LAg0LfQsNC00LDRh9C40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGH0LUg0LjQvNCwINC30LDQtNCw0YfQsCDRgSDRgtC+0LLQsCDQuNC80LUuINCc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDRgSDQv9C+0YLRgNC10LHQuNGC0LXQu9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC90LAg0L3QvtCyINC/0L7RgtGA0LXQsdC40YLQtdC7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQv9C+0YLRgNC10LHQuNGC0LXQu9GB0LrQuNGC0LUg0L3QsNGB0YLRgNC+0LnQutC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAn0JrQvtC80LXQvdGC0LDRgNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfQn9C+0LrQsNC30LLQsNC90LUg0L3QsCDQuNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn0KDQsNC30YDQtdGI0LDQstCw0L3QtSDQt9CwINGB0YrQt9C00LDQstCw0L3QtdGC0L4g0L3QsCDQv9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J3QsNGH0LDQu9C+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtGA0LDQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQvdC4INC+0YIg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQp9Cw0YHQvtCy0LUg0L/RgNC10Lcg0YHQtdC00LzQuNGG0LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICfQntGC0L7RgNC40LfQuNGA0LDQvSDQuNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0LAg0LfQsCDQvdCw0YfQsNC70L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JzQvtC70Y8g0LLRitCy0LXQtNC10YLQtSDQstCw0LvQuNC00L3QsCDQtNCw0YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ9CU0LDRgtCwINC30LAg0LrRgNCw0LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICfQmtGA0LDQudC90LjRj9GCINC/0LXRgNC40L7QtCDRgtGA0Y/QsdCy0LAg0LTQsCDQsdGK0LTQtSDRgdC70LXQtCDQvdCw0YfQsNC70L7RgtC+INC90LAg0L/QtdGA0LjQvtC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQntGB0YLQsNCy0LDRidC4INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfQodC10LTQvNC40YfQvdC4INGH0LDRgdC+0LLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ9CY0LfQstGK0L3RgNC10LTQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndGP0LzQsCDQvdCw0LzQtdGA0LXQvdC4INCy0YDQtdC80LXQstC4INC/0LXRgNC40L7QtNC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQlNC+0LHQsNCy0LXRgtC1INC/0LXRgNC40L7QtCDQvtGCINCy0YDQtdC80LUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/RgNC10LPQu9C10LQg0L3QsCDQstGA0LXQvNC10LLQuNGPINC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ9Cd0Y/QvNCwINC00LDQvdC90Lgg0LfQsCDRgtC+0LfQuCDQtNC10L0uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn0J7RgtGH0LXRgtC90L7RgdGCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdNw7ZjaHRlbiBTaWUgd2lya2xpY2ggZGllIFplaXRlcmZhc3N1bmcgZsO8ciBkZW4gYWt0dWVsbGVuIFRhZyBsw7ZzY2hlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnWmVpdGFicmVjaG51bmcgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0dlaGUgenUgRWluc3RlbGx1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNuYXZpZ2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ZvcmhlcmlnZXIgVGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTsOkY2hzdGVyIFRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdHZWhlIHp1IGRpZXNlbSBEYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ05pY2h0IGF1c2dlZsO8bGx0ZSBUYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0FsbGUgVGFnZSBhdXN3w6RobGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnQml0dGUgd8OkaGxlbiBTaWUgZGVuIEdydW5kIGbDvHIgSWhyZSBBYndlc2VuaGVpdCBmw7xyIGRpZSBhdXNnZXfDpGhsdGVuIFRhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdpbSBVcmxhdWInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Vya3Jhbmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdCaXR0ZSB3w6RobGVuIFNpZSBtaW5kZXN0ZW5zIGVpbmVuIFRhZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBHcnVuZCBmw7xyIGRpZSBBYndlc2VuaGVpdCBhdXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRmVsZGVyLCBkaWUgYXVzZ2Vmw7xsbHQgd2VyZGVuIG3DvHNzZW4sIHNpbmQgbWl0IGVpbmVtIFN0ZXJuICIqIiBnZWtlbm56ZWljaG5ldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdTaWUgbcO8c3NlbiBlaW5lIFN0YXJ0LSB1bmQgRW5kemVpdCBvZGVyIGVpbmUgWmVpdHNwYW5uZSBhbmdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVMOkdGlna2VpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdBbm1lcmt1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmUgQW5tZXJrdW5nIHZvbiBtZWhyIGFscyA4IFplaWNoZW4gTMOkbmdlIGVpbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ1N0YXJ0emVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdmUgQW5nYWJlbiBzaW5kIG5pY2h0IGVybGF1YnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBTdGFydHplaXQgd3VyZGUgYmVyZWl0cyBpbiBlaW5lbSBhbmRlcmVuIEVpbnRyYWcgYW5nZWdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnVW5nw7xsdGlnZXMgRm9ybWF0ISBCaXR0ZSBnZWJlbiBTaWUgZWluZSBaZWl0IGltIEZvcm1hdCBISDpNTSBlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ051ciAyNDowMCBpc3QgYWxzIEVuZHplaXQgZXJsYXVidC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdVbmfDvGx0aWdlIFplaXQhIEVpbiBUYWcgaGF0IG51ciAyNCBTdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnRW5kemVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnRGllIEVuZHplaXQgbXVzcyBuYWNoIGRlciBTdGFydHplaXQgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBFbmR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VuZ8O8bHRpZ2UgQW5nYWJlLiBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFaW5lIGfDvGx0aWdlIFplaXRkYXVlciBtdXNzIGdyw7bDn2VyIGFscyBOdWxsIHNlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gTmVnYXRpdmUgWmVpdHNwYW5uZW4gc2luZCBuaWNodCBtw7ZnbGljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdFaW5lIFplaWxlIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnU3VtbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdTaWUga8O2bm5lbiBudXIgZWluZSBDaGVja2JveCBtYXJraWVyZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnQWxsZSBFaW50csOkZ2UgYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VpbnRyYWcgbMO2c2NoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdFaW5nYWJlIGJlc3TDpHRpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgZXJrcmFua3Qgc2luZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgaW0gVXJsYXViIHNpbmQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgw5xiZXJzdHVuZGVuIGdlbm9tbWVuIGhhYmVuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIG1laHIgYWxzIDE2IFN0dW5kZW4gZ2VhcmJlaXRldCBoYWJlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01vbmF0c8O8YmVyc2ljaHQgWmVpdGJlcmljaHRlcnN0YXR0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfDnGJlcnN0dW5kZW4gKGluIFN0dW5kZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ8OcYmVyc3R1bmRlbiAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnw5xiZXJzdHVuZGVuIChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuICh2ZXJibGVpYmVuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVXJsYXViIChpbiBUYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnVXJsYXVic3RhZ2UgKGRpZXNlciBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1VybGF1YnN0YWdlIChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnVXJsYXVic3RhZ2UgKHZlcmJsZWliZW5kKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0Vya3Jhbmt0IChpbiBUYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdFcmtyYW5rdCAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdFcmtyYW5rdCAoU3VtbWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnVm9yaGVyaWdlciBNb25hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTsOkY2hzdGVyIE1vbmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdXb2NoZW50YWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0FyYmVpdHNzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0FyYmVpdHNzdHVuZGVuIChnZXNhbXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Byb2pla3TDvGJlcnNpY2h0IGRlcyBCZW51dHplcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnU3R1bmRlbiAoaW0gTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdTdHVuZGVuIChnZXNhbXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnU3VtbWUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnWmVpdGJlcmljaHRlcnN0YXR0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNhdXN3YWhsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdHZWhlIHp1IERhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ051dHplcmJlcmljaHRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdwcm8gTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdW1tZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1VybGF1Yic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnRXJrcmFua3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnVmVyYmxlaWJlbmRlIFVybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RiZXJpY2h0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvamVrdMO8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnWnVyIEJlcmljaHRlcnN0YXR0dW5nc8O8YmVyc2ljaHQgZ2VoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdEZXJ6ZWl0IHdlcmRlbiBpbiBkaWVzZW0gUHJvamVrdCBudXIgYWt0aXZlIEJlbnV0emVyIGFuZ2V6ZWlndC4gVW0gZGllc2UgRWluc3RlbGx1bmcgenUgw6RuZGVybiwgYmVhcmJlaXRlbiBTaWUgYml0dGU6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0RlcnplaXQgd2VyZGVuIGFsbGUgemVpdGVyZmFzc2VuZGVuIEJlbnV0emVyIGFuZ2V6ZWlndC4gVW0gZGllc2UgRWluc3RlbGx1bmcgenUgw6RuZGVybiwgYmVhcmJlaXRlbiBTaWUgYml0dGU6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1plaXRhYnJlY2hudW5nLVByb2pla3RlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdQcm9qZWt0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnWnVyIEVpbnN0ZWxsdW5nc8O8YmVyc2ljaHQgZ2VoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdQcm9qZWt0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1Byb2pla3RlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VpbiBQcm9qZWt0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdaZWl0YWJyZWNobnVuZ3NlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdUw6R0aWdrZWl0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTmV1ZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRlciBmw7xyIFByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0ZXIgZsO8ciBUw6R0aWdrZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRlciBmw7xyIEJlbnV0emVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnWmVpdGZlbnN0ZXIga8O2bm5lbiBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnVMOkdGlna2VpdHNsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1TDpHRpZ2tlaXQgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnVMOkdGlna2VpdHNlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VpbmUgVMOkdGlna2VpdCBtaXQgZ2xlaWNoZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuIEJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIGFuZGVyZW4gTmFtZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JlbnV0emVybGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdFaW5zdGVsbHVuZ2VuIGbDvHIgbmV1ZW4gQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdLb21tZW50YXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4gYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Byb2pla3QgZXJzdGVsbGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0RhdHVtIEJlZ2lubic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnRGF0dW0gRW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnVXJsYXVic3RhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdXb2NoZW5zdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdBdXRvcmlzaWVydGUgw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdTdGFydGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW4gZ8O8bHRpZ2VzIERhdHVtIGVpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdFbmRkYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0RhcyBFbmRlIGRlciBaZWl0c3Bhbm5lIG11c3MgbmFjaCBkZW0gQW5mYW5nIHNlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdVcmxhdWJzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdXw7ZjaGVudGxpY2hlIFN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0tlaW5lIFplaXRzcGFubmUgZ2VmdW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1plaXRzcGFubmUgaGluenVmw7xnZW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnRGF0ZW5zYXR6IGFuemVpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnQW5zaWNodCB2b24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnS2VpbiBFaW50cmFnIGbDvHIgZGllc2VuIFRhZyBnZWZ1bmRlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnS2FubiBBcmJlaXRzZWluaGVpdGVuIG5pY2h0IGVpbmbDvGdlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ0xldHp0ZSBQcm9qZWt0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gRWluIFRhZyBoYXQgbnVyIDI0IFN0dW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICdLYW5uIEFyYmVpdHNlaW5oZWl0ZW4gbmljaHQgbMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRGllc2VzIERhdHVtIGlzdCBhdcOfZXJoYWxiIGRlcyBHcmVuendlcnRlcywgYWJlciBTaWUgaGFiZW4gZGllc2VuIFRhZyBiaXMgamV0enQgbm9jaCBuaWNodCBlaW5nZWbDvGd0LCBhbHNvIGJla29tbWVuIFNpZSBkYWbDvHIgZWluZSghKSBDaGFuY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnVW52b2xsc3TDpG5kaWdlIEFyYmVpdHN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0JpdHRlIGRpZSBBcmJlaXRzc3R1bmRlbiBlaW50cmFnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0VpbmdhYmVuIGdlc3BlaWNoZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRmVobGVyIGJlaSBkZXIgRWluZ2FiZSBmw7xyIG1laHJlcmUgVGFnZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnRGF0ZW4gZsO8ciBtZWhyZXJlIFRhZ2UgZXJmb2xncmVpY2ggZXJmYXNzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0VpbmdlZ2ViZW5lcyBEYXR1bSB1bmfDvGx0aWchIERhdHVtIHd1cmRlIGF1ZiBcJ2hldXRlXCcgZ2XDpG5kZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnWnVsZXR6dCBhdXNnZXfDpGhsdGUgUHJvamVrdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnQWxsZSBQcm9qZWt0ZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdCZXJpY2h0c3Byb2pla3Q6IEJlbsO2dGlnZSBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdCZXJpY2h0c3Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnQmVyaWNodGVyc3RhdHR1bmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuIGvDtm5uZW4gbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWt0IGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3QgYWt0dWFsaXNpZXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXVmZ2FiZSBoaW56dWdlZsO8Z3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBdWZnYWJlIGFrdHVhbGlzaWVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnRGllIFVzZXJJRCBpc3QgdW5nw7xsdGlnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLYW5uIEJlbnV0emVyZGF0ZW4gbmljaHQgZWluZsO8Z2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ0thbm4gWmVpdHBlcmlvZGUgbmljaHQgaGluenVmw7xnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdCZW51dHplciBha3R1YWxpc2llcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnQmVudXR6ZXIgaGluenVnZWbDvGd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ05ldWVyIEJlbnV0emVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgZGVzIFplaXRyYXVtcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnQW5zaWNodDogQmVuw7Z0aWdlICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ1Vudm9sbHN0w6RuZGlnZSBBcmJlaXRzdGFnZSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBBbnplaWdlbiBkZXIgQW56YWhsIGRlciB1bnZvbGxzdMOkbmRpZ2VuIEFyYmVpdHN0YWdlIGRlcyBCZW51dHplcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRuYW1lIGbDvHIgbmV1ZSBUw6R0aWdrZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gUHJvamVrdHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEVuZGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFN0YXJ0ZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEJlc2NocmVpYnVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFVybGF1YnN0YWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0V2ZW50dWVsbCB2b3JoYW5kZW5lciDDnGJlcnN0dW5kZW7DvGJlcnRyYWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdTdGFuZGFyZCBXb2NoZW5hcmJlaXRzemVpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXIgbmV1ZW4gVMOkdGlna2VpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbmZhbmdzc3RhdHVzIGVpbmVzIG5ldWVuIFByb2pla3RzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gQmVudXR6ZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdJbm5lcmhhbGIgZGllc2VyIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGthbm4gZWluZSBSZWdFeHAgZGVmaW5pZXJ0IHdlcmRlbiwgZGllIGZlc3RsZWd0LCBiZWkgd2VsY2hlbiBQcm9qZWt0ZW4gZWluZSBCZW1lcmt1bmcgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MgKGRpZSBSZWdFeHAgYXJiZWl0ZXQgbWl0IHNteC1QYXJhbWV0ZXJuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0Jlc3RpbW10LCBvYiBkYXMgU3RhdGlzdGlrLU1vZHVsIEluZm9ybWF0aW9uZW4genVyIFplaXRhYnJlY2hudW5nIGdlbmVyaWVyZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnWmVpdGVyZmFzc3VuZ3MtRWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ1plaXQtRGF0ZW5zYXR6IGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0xlZ3QgZmVzdCwgYmlzIHdhbm4gbWFuIGluIMOkbHRlcmUgWmVpdGVpbnRyw6RnZSBiZWFyYmVpdGVuIGthbm4gKHouIEIuIDEwIFRhZ2UgenVyw7xja2xpZWdlbmQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgd2VyZGVuIG51ciBVc2VyIGFuZ2V6ZWlndCBkaWUgQXJiZWl0c3plaXRlbiB6dSBkZW0gZ2V3w6RobHRlbiBQcm9qZWt0IGhpbnp1Z2Vmw7xndCBoYWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0IHdlcmRlbiBkaWUgRHJvcGRvd24tRmVsZGVyIGltIGRlciBFZGl0aWVyLU9iZXJmbMOkY2hlIGluIGRlciBuZXVlbiBGb3JtIGFscyBGZWxkIG1pdCBBdXRvLVZlcnZvbGxzdMOkbmRpZ2VuIGFuZ2V6ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnRGVyIEZpbHRlciBiZWkgdm9yaGVyaWdlbiBQcm9qZWt0ZW4ga2FubiBiZWkgQWt0aXZpZXJ1bmcgZ2VudXR6dCB3ZXJkZW4sIGFuc3RlbGxlIGRhcyB6d2VpIFByb2pla3QgTGlzdGVuIChsZXR6dGUgdW5kIGFsbGUpIGdlbnV0enQgd2VyZGVuLiBFcyBrYW5uIGFsbGVyZGluZ3MgbnVyIGdlbnV0enQgd2VyZGVuIHdlbm4gVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aWVydCBpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdCZWkgQWt0aXZpZXJ1bmcgaXN0IGRlciBGaWx0ZXIgZGVyIHZvcmhlcmlnZW4gUHJvamVrdGUgc3RhbmRhcmRtw6Rzc2lnIGFrdGl2IGZhbGxzIHZvcmhlcmlnZSBQcm9qZWt0ZSB2b3JoYW5kZW4gc2luZC4gRXIga2FubiBudXIgZ2VudXR6dCB3ZXJkZW4gd2VubiBFbmFibGVBdXRvQ29tcGxldGlvbiB1bmQgIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpZXJ0IHNpbmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgIGvDtm5uZW4gQmVudXR6ZXIgImltIFVybGF1YiIsICJFcmtyYW5rdCIgdW5kICLDnGJlcnN0dW5kZW4iIGFuIG1laHJlcmVuIFRhZ2VuIGF1ZiBlaW5tYWwgc2V0emVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gQXJiZWl0c3RhZ2VuLCBuYWNoIGRlciBkaWUgQXJiZWl0c3plaXQgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEFyYmVpdHN0YWdlbiBvaG5lIEFyYmVpdHN6ZWl0ZWludHLDpGdlIG5hY2ggZGVuZW4gZWluZSBXYXJudW5nIGFuZ2V6ZWlndCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfDnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1Byb2pla3QtWmVpdC1SZXBvcnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOkcmVyIEF1c2RydWNrLCB1bSBkaWUgTGlzdGUgZGVyIFTDpHRpZ2tlaXRlbiBiZXrDvGdsaWNoIGRlcyBhdXNnZXfDpGhsdGVuIFByb2pla3RzIGVpbnp1c2NocsOkbmtlbi4gRGVyIFNjaGzDvHNzZWwgZW50aMOkbHQgZWluZW4gUmVndWzDpHJlbiBBdXNkcnVjayBmw7xyIFByb2pla3RlLCBkZXIgV2VydCBlaW5lbiBSZWd1bMOkcmVuIEF1c2RydWNrIGbDvHIgZGllIFTDpHRpZ2tlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpHJlciBBdXNkcnVjaywgdW0gZGllIExpc3RlIGRlciBQcm9qZWt0ZSBiZXrDvGdsaWNoIGRlcyBha3RpdmVuIEJlbnV0emVycyBlaW56dXNjaHLDpG5rZW4uIERlciBTY2hsw7xzc2VsIGVudGjDpGx0IGVpbmVuIFJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgZsO8ciBQcm9qZWt0ZSwgZGVyIFdlcnQgZW50aMOkbHQgZWluZSBrb21tYS1zZXBhcmllcnRlIExpc3RlIHZvbiBCZW51dHplcmdydXBwZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdHaWJ0IGFuLCBvYiBBcmJlaXRzc3R1bmRlbiBvaG5lIFN0YXJ0LSB1bmQgRW5kemVpdCBlaW5nZWdlYmVuIHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEaWVzZXMgTW9kdWwgendpbmd0IHp1ciBFaW5nYWJlIHZvbiBTdHVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ01vZHVsLCBkYXNzIGRlbiBBZ2VudCBpbSBOb3RpZmljYXRpb24tQmVyZWljaCBkZXMgQWdlbnQtSW50ZXJmYWNlcyBkYXLDvGJlciBpbmZvcm1pZXJ0LCB3ZW5uIHNjaG9uIHp1IGxhbmdlIGtlaW5lIFN0dW5kZW4gbWVociBlaW5nZXRyYWdlbiB3dXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdaZWl0YWJyZWNobnVuZyBCZWFyYmVpdHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1plaXRhYnJlY2hudW5nc8O8YmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnWmVpdGFicmVjaG51bmcgQmVyaWNodGVyc3RhdHR1bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdaZWl0YWJyZWNobnVuZyBFaW5zdGVsbHVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdaZWl0YWJyZWNobnVuZyBBbnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnWmVpdGFicmVjaG51bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0hpZXIga2FubiBtYW4gZWluZ2ViZW4sIG9iIGbDvHIgZWluZSBiZXN0aW1tdGUgVMOkdGlna2VpdCwgZGllIHp1IHZlcnJlY2huZW5kZW4gU3R1bmRlbiBnZWvDvHJ6dCB3ZXJkZW4uIFouIEIgd2VubiBSZWlzZXplaXRlbiBudXIgenVyIEjDpGxmdGUgdmVyZ8O8dGV0IHdlcmRlbiAoS2V5ID0mZ3Q7IGpvdXJuZXk7IENvbnRlbnQgPSZndDsgNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWaWwgZHUgdmlya2VsaWcgc2xldHRlIHRpZHNyZWduc2thYmV0IGZvciBkZW5uZSBkYWc/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ1JlZGlnZXIgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdEYXRvbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpnN0ZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRGFnZSB1ZGVuIG9wdGVnbmVsc2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnUMOlIGZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTeWdlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0Fmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdEZSBww6VrcsOmdmVkZSBmZWx0ZXIgZXIgbWFya2VyZXQgbWVkICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdEdSBza2FsIGluZHRhc3RlIGVuIHN0YXJ0LSBvZyBzbHV0ZGF0byBlbGxlciBlbiB0aWRzcGVyaW9kZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ09wZ2F2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdCZW3DpnJrbmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdiB0aWQgZXIgaWtrZSB0aWxsYWR0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnR2VudGFnbmUgdGltZXIgZXIgaWtrZSB0aWxsYWR0LiBTdGFydHRpZGVuIHN2YXJlciB0aWwgZXQgYW5kZXQgaW50ZXJ2YWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdTbHV0dGlkZW4gc2thbCB2w6ZyZSBzZW5lcmUgZW5kIHN0YXJ0dGlkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnR2VudGFnbmUgdGltZXIgZXIgaWtrZSB0aWxsYWR0LiBTbHV0dGlkZW4gc3ZhcmVyIHRpbCBldCBhbmRldCBpbnRlcnZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VneWxkaWcgcGVyaW9kZSEgRW4gZGFnIGhhciBrdW4gMjQgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRW4gZ3lsZGlnIHBlcmlvZGUgc2thbCB2w6ZyZSBzdMO4cnJlIGVuZCAwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdVZ3lsZGlnIHBlcmlvZGUhIE5lZ2F0aXZlIHBlcmlvZGVyIGVyIGlra2UgdGlsbGFkdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUaWxmw7hqIGVuIHLDpmtrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ0kgYWx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnRHUga2FuIGt1biB2w6ZsZ2UgZXQgYWZrcnlkc25pbmdzZmVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdWaXMgYWxsZSBwdW5rdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdTbGV0IHRpZHNyZWduc2thYnNpbmR0YXN0bmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3LDpmZ0IGluZHPDpnR0ZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlIHVuZGVyIGRpdCBzeWdlZnJhdsOmcj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdFciBkdSBzaWtrZXIgcMOlLCBhdCBkdSBhcmJlamRlZGUsIG1lbnMgZHUgdmFyIHDDpSBmZXJpZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0VyIGR1IHNpa2tlciBww6EsIGF0IGR1IGFyYmVqZGVkZSwgbWVucyBkdSB2YXIgcMOlIGFmc3BhZHNlcmluZz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlIG1lcmUgZW5kIDE2IHRpbWVyPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTcOlbmVkbGlnIG92ZXJzaWd0IG92ZXIgdGlkc3JhcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdPdmVydGlkICh0aW1lciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnT3ZlcnRpZCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnT3ZlcnRpZCAoaSBhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Jlc3RlcmVuZGUgYWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0ZlcmllIChkYWdlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZWRhZ2UgYnJ1Z3QgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0ZlcmllZGFnZSBicnVndCAoaSBhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1Jlc3RlcmVuZGUgZmVyaWVkYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnU3lnZWZyYXbDpnIgKGRhZ2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnU3lnZWZyYXbDpnIgYnJ1Z3QgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnU3lnZWZyYXbDpnIgYnJ1Z3QgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0ZvcnJpZ2UgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOw6ZzdGUgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdVZ2VkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0FyYmVqZHN0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdBcmJlamRzdGltZXIgaSBhbHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnQnJ1Z2VycyBwcm9qZWt0b3ZlcmJsaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnVGltZXIgKG3DpW5lZGxpZyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1NhbWxldCBhbnRhbCB0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ0FsdCBpIGFsdCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdUaWRzcmFwb3J0ZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ03DpW5lZHNuYXZpZ2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnQnJ1Z2VycmFwcG9ydGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdJIGFsdCBmb3IgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnU2FtbGV0IHRvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1N5Z2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1Jlc3RlcmVuZGUgZnJhdsOmcnNkYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RyYXBwb3J0ZXInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1Byb2pla3RyYXBwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUmVkaWdlciBpbmRzdGlsbGluZ2VyIGZvciB0aWRzcmVnbnNrYWJzcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1RpbGbDuGogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ1RpbGbDuGogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdSZWRpZ2VyIHByb2pla3RpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXIgZXIgYWxsZXJlZGUgZXQgcHJvamVrdCBtZWQgZGV0dGUgbmF2bi4gVsOmbGcgdmVubGlnc3QgZXQgYW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnUmVkaWdlciB0aWRzcmVnbnNrYWJzaW5kc3RpbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGlsZsO4aiBvcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdOeSBicnVnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRyw6lyIHByb2pla3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFRhc2tzJ30gPSAnRmlsdHLDqXIgb3BnYXZlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHLDqXIgYnJ1Z2VyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnT3BnYXZlbGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdUaWxmw7hqIG9wZ2F2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdSZWRpZ2VyIG9wZ2F2ZWluZHN0aWxsaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0RlciBlciBhbGxlcmVkZSBlbiBvcGdhdmUgbWVkIGRldHRlIG5hdm4uIFbDpmxnIHZlbmxpZ3N0IGV0IGFuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdCcnVnZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ055ZSBicnVnZXJpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgYnJ1Z2VyaW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ0tvbW1lbnRhcmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdWaXMgb3ZlcnRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnVGlsbGFkIG9wcmV0dGVsc2UgYWYgcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWd5bmQgcGVyaW9kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnQWZzbHV0IHBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0ZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHByLiB1Z2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0dvZGtlbmR0IG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2RlbnMgYWZzbHV0bmluZyBza2FsIHbDpnJlIGVmdGVyIHBlcmlvZGVucyBzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RpbGbDuGogdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1NlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdEZXIgZXIgaWtrZSBmdW5kZXQgZGF0YSBmb3IgZGVubmUgZGFnLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZS1ub3RpZmljYXRpb25zbW9kdWxldCBza2FsIHNlIGFudGFsbGV0IGFmIHVhZnNsdXR0ZWRlIGFyYmVqZHNkYWdlIGZvciBicnVnZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBoYW5kbGluZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBwcm9qZWt0ZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igc2x1dGRhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBiZWd5bmRlbHNlc2RhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBmcmF2w6Zyc2RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igb3ZlcnRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIG5vcm1hbGUgdWdlbnRsaWdlIHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIGhhbmRsaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIHByb2pla3Rlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgYnJ1Z2VyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lcmVyIGRlIHByb2pla3RlciwgZm9yIGh2aWxrZSBlbiBiZW3DpnJrbmluZyBlciBww6VrcsOmdmV0LiBIdmlzIFJlZ0V4cCBtYXRjaGVyIHDDpSBwcm9qZWt0ZXQsIHNrYWwgZHUgb2dzw6UgaW5kZsO4amUgZW4gYmVtw6Zya25pbmcuIFJlZ0V4cCBicnVnZXIgc214IHBhcmFtZXRlcmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdBbmdpdmVyIGZvciBodm9yIG1hbmdlIGRhZ2UsIGR1IGthbiBpbmRzw6Z0dGUgYXJiZWpkc2VuaGVkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzaW1hbHQgYW50YWwgYWYgYXJiZWpkc2RhZ2UgZWZ0ZXIgaHZpbGtldCBhcmJlamRzZW5oZWRlcm5lIHNrYWwgaW5kc8OmdHRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1JlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGJlZ3LDpm5zbmluZyBhZiBoYW5kbGluZ3NsaXN0ZSBpZsO4bGdlIGRldCB2YWxndGUgcHJvamVrdC4gTsO4Z2xlbiBpbmRlaG9sZGVyIGV0IHJlZ3Vsw6ZydCB1ZHRyeWsgZm9yIHByb2pla3QoZXIpLCBpbmRob2xkZXQgcnVtbWVyIHJlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGhhbmRsaW5nKGVyKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpnJlIHVkdHJ5ayBmb3IgYmVncsOmbnNuaW5nIGFmIHByb2pla3RsaXN0ZSBpZsO4bGdlIGJydWdlcmdydXBwZXIuIE7DuGdsZW4gaW5kZWhvbGRlciBldCByZWd1bMOmcnQgdWR0cnlrIGZvciBwcm9qZWt0KGVyKSwgaW5kaG9sZGV0IHJ1bW1lciBrb21tYXNlcGFyZXJldCBsaXN0ZSBvdmVyIGdydXBwZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdBbmdpdmVyLCBvbSBhcmJlamRzdGltZXIga2FuIGluZHPDpnR0ZXMgdWRlbiBzdGFydC0gb2cgc2x1dHRpZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEZXR0ZSBtb2R1bCBnZW5uZW10dmluZ2VyIGluZHPDpnR0ZWxzZXIgaSB0aWRzcmVnbnNrYWIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRGV0dGUgYWR2aXNlcmluZ3Ntb2R1bCBnaXZlciBlbiBhZHZhcnNlbCwgaHZpcyBkZXIgZXIgZm9yIG1hbmdlIHVmdWxkc3TDpm5kaWdlIGFyYmVqZHNkYWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1RpZHNyZWduc2thYic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdCcnVnZXMsIGh2aXMgbm9nbGUgaGFuZGxpbmdlciBoYXIgcmVkdWNlcmV0IGFyYmVqZHN0aW1lcm5lIChmLmVrcy4gaHZpcyBrdW4gaGFsdmRlbGVuIGFmIHJlanNldGlkZW4gZXIgYmV0YWx0IEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfTVhfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvIGRlIGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnTW9kaWZpY2FyIFJlZ2lzdHJvIGRlIEhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgYSBjb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIEZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNpZ3VpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdJciBhIGVzdGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEw61hcyBzaW4gcmVnaXN0cm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNjaW9uYXIgdG9kb3MgbG9zIGTDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdSZWdpc3RybyBtYXNpdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQb3IgZmF2b3IgZXNjb2phIHVuYSByYXrDs24gcGFyYSBzdSBhdXNlbmNpYSBwYXJhIGxvcyBkw61hcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRGUgdmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0F1c2VudGUgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciBzZWxlY2Npb25lIGFsIG1lbm9zIHVuIGTDrWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBvciBhdXNlbmNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnSG9yYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdIb3JhIGludsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ0hvcmEgZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgTm8gc2UgcGVybWl0ZW4gcGVyaW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0HDsWFkaXIgdW5hIGZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICdUb3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ8KhU8OzbG8gc2UgcGVybWl0ZSBlbGVnaXIgdW4gZWxlbWVudG8gY2hlY2tib3ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnTW9zdHJhciB0b2RvcyBsb3MgZWxlbWVudG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5hciBSZWdpc3RybyBkZSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2VyY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1IGF1c2VuY2lhIHBvciBlbmZlcm1lZGFkPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1cyB2YWNhY2lvbmVzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBtw6FzIGRlIDE2IGhvcmFzPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnVmlzdGEgbWVuc3VhbCBkZSB0aWVtcG9zIHJlcG9ydGFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ07Dum1lcm8gZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0hvcmFzIGV4dHJhcyB0cmFiYWphZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1RvdGFsIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdIb3JhcyByZXN0YW50ZXMgcGFyYSBhdXNlbnRhcnNlIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1ZhY2FjaW9uZXMgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdWYWNhY2lvbmVzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1ZhY2FjaW9uZXMgdG9tYWRhcyAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0TDrWFzIGRlIHZhY2FjaW9uZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQXVzZW5jaWEgcG9yIGVuZmVybWVkYWQgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXMgc2lndWllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdEw61hIGRlIGxhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yYXMgdHJhYmFqYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbCBkZSBob3JhcyB0cmFiYWphZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3RhIGRlIHByb3llY3RvIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSG9yYXMgKG1lbnN1YWxlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICh0aWVtcG8gZGUgdmlkYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBuZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgZGUgaG9yYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBtZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0ZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc3VhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RpZW1wbyB0b3RhbCBkZSB2aWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdBdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdEw61hcyBsaWJyZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JlcG9ydGVzIGRlIHByb3llY3RvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZXBvcnRlIGRlIHByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgcmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzb2xvIHNlIG11ZXN0cmFuIGxvcyB1c3VhcmlvcyBhY3Rpdm9zIGVuIGVzdGUgcHJveWVjdG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzZSBtdWVzdHJhbiB0b2RvcyBsb3MgdXN1YXJpb3MgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtaWVudG8sIHBvciBmYXZvciBhY3R1YWxpemUgbGEgY29uZmlndXJhY2nDs246JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBjb25maWd1cmFjacOzbiBkZWwgcHJveWVjdG8gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0FncmVnYXIgcHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdJciBhbCByZXN1bWVuIGRlIGNvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnQWdyZWdhciBQcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGVsIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdZYSBleGlzdGUgdW4gcHJveWVjdG8gY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlIGxhIENvbnRhYmlsaWRhZCBkZSBUaWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdBZ3JlZ2FyIHRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnVXN1YXJpbyBudWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnRmlsdHJvIHBhcmEgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0cm8gcGFyYSBUYXJlYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRybyBwYXJhIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnTG9zIHBlcsOtb2RvcyBkZSB0aWVtcG8gbm8gcHVlZGVuIHNlciBlbGltaW5hZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdyZWdhciBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1bmEgdGFyZWEgY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhY2nDs24gZGUgVXN1YXJpbyBOdWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGVsIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdDb21lbnRhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIGRlIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBkYXRvcyBkZSBlc3RlIGTDrWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnRMOtYXMgTGFib3JhbGVzIEluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1BvciBmYXZvciBpbnNlcnRlIHN1cyBob3JhcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdFcnJvciBhbCBpbnNlcnRhciBtw7psdGlwbGVzIGZlY2hhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnU2UgaW5zZXJ0YXJvbiBzYXRpc2ZhY3RvcmlhbWVudGUgbGFzIGVudHJhZGFzIGRlIHZhcmlhcyBmZWNoYXMhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnTGEgZmVjaGEgZW50cmFkYSBlcyBpbmNvcnJlY3RhISBMYSBmZWNoYSBkZSBoYSBjYW1iaWFkbyBhIGhveS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xvcyDDmmx0aW1vcyBQcm95ZWN0b3MgU2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBsb3MgUHJveWVjdG9zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZXBvcnRlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfCoU5vIHNlIHB1ZWRlIGluc2VydGFyIGRhdG9zIGRlbCB1c3VhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnVXN1YXJpbyBOdWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnRXN0YWRvIGRlbCBQZXJpb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdEw61hcyBsYWJvcmFsZXMgaW5jb21wbGV0b3MnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZSwgbmVjZXNhcmlvIHBhcmEgdmlzdWFsaXphciBlbCBuw7ptZXJvIGRlIGTDrWFzIGluY29tcGxldG9zIGRlIHVuIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgZmluYWxpemFjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZGVzY3JpcGNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgZmFsdGFzIChkw61hcyBkZSBhdXNlbmNpYSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgc2VtYW5hbGVzIGVzdMOhbmRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHVzdWFyaW9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIHBhcmEgY3XDoWxlcyBwcm95ZWN0b3MgZXMgb2JsaWdhdG9yaWEgbGEgaW5zZXJjacOzbiBkZSBjb21lbnRhcmlvcy4gU2kgbGEgZXhwcmVzacOzbiByZWd1bGFyIGNvaW5jaWRlIGNvbiBlbCBwcm95ZWN0bywgc2UgdGllbmUgcXVlIGVzY3JpYmlyIHVuIGNvbWVudGFyaW8uIExhIGV4cHJlc2nDs24gcmVndWxhciB1c2EgZWwgcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2kgZWwgbcOzZHVsbyBkZSBlc3RhZMOtc3RpY2FzIGRlYmUgZ2VuZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0VzcGVjaWZpY2EgZWwgbsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIHBhcmEgcmVnaXN0cmFyIGhvcmFzIGRlIHRyYWJham8gYXRyYXNhZGFzIChwb3IgZWplbXBsbzogMTAgZMOtYXMgZGUgYW50aWfDvGVkYWQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc29sYW1lbnRlIGxvcyB1c3VhcmlvcyBxdWUgaGFuIHJlZ2lzdHJhZG8gc3VzIHRpZW1wb3MgZW4gZWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvIHNlcsOhbiBtb3N0cmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NpIGVzdMOhbiBoYWJpbGl0YWRvcywgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gaGFuIHNpZG8gbW9kaWZpY2Fkb3MgcG9yIGNhbXBvcyBkZSBhdXRvLWNvbXBsZXRhZG8sIGVzdG8gcGFyYSBzZXIgbWFzIG1vZGVybm9zICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTaSBlc3TDoSBoYWJpbGl0YWRvLCBlbCBmaWx0cm8gcGFyYSBlbCBwcm95ZWN0byBhbnRlcmlvciBwdWVkZSBzZXIgdXNhZG8gZW4gdmV6IGRlIGRvcyBsaXN0YXMgZGUgcHJveWVjdG9zIChsYXMgYW50ZXJpb3IgeSB0b2RhcyBsYXMgZGVtw6FzKS4gRXN0byBzZSBwb2Ryw6EgdXNhciBzaSwgeSBzb2xvIHNpIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgZWwgcHJveWVjdG8gYW50ZXJpb3IgZXN0w6EgYWN0aXZhZG8gcG9yIG9taXNpw7NuIHNpIGhheSBwcm95ZWN0b3MgcHJldmlvcy4gRXN0byBwdWVkZSBzZXIgdXRpbGl6YWRvIHNpLCB5IHNvbG8gc2ksIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0V4cHJlc2lvbmVzIHJlZ3VsYXJlcyBwYXJhIHJlc3RyaW5naXIgbGEgbGlzdGEgZGUgYWNjaW9uZXMsIGRlIGFjdWVyZG8gYWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvLiBLZXkgY29udGllbmUgbGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgbG9zIHByb3llY3RvcyB5IENvbnRlbnQsIGxhcyBleHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSBsYXMgYWNjaW9uZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ0V4cHJlc2lvbmVzIHJlZ3VsYXJlcyBwYXJhIHJlc3RyaW5naXIgbGEgbGlzdGEgZGUgcHJveWVjdG9zLCBkZSBhY3VlcmRvIGEgbG9zIGdydXBvcyBkZSB1c3Vhcmlvcy4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCB1bmEgbGlzdGEgZGUgZ3J1cG9zLCBzZXBhcmFkb3MgcG9yIGNvbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnRXNwZWNpZmljYSBzaSBlcyBwb3NpYmxlIGluc2VydGFyIGxhcyBob3JhcyB0cmFiYWphZGFzIHNpbiBkZWZpbmlyIGxvcyB0aWVtcG9zIGRlIGluaWNpbyB5IGZpbmFsaXphY2nDs24gZGUgbGFzIHRhcmVhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXN0ZSBtw7NkdWxvIGhhY2Ugb2JsaWdhdG9yaWEgbGEgaW5zZXJjacOzbiBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBxdWUgbXVlc3RyYSB1bmEgYWR2ZXJ0ZW5jaWEgc2kgaGF5IGRlbWFzaWFkb3MgZMOtYXMgc2luIHJlZ2lzdHJvIGRlIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFZGl0YXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnUmVzdW1lbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnUmVwb3J0ZSBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdBanVzdGVzIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmVyIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1NlIHVzYSBzaSBhbGd1bmFzIGFjY2lvbmVzIHJlZHVjZW4gZWwgbsO6bWVybyBkZSBob3JhcyB0cmFiYWphZGFzIChwb3IgZWplbXBsbzogc2kgc8OzbG8gc2UgcGFnYSBsYSBtaXRhZCBkZWwgdGllbXBvIGRlIHZpYWplIHB1ZWRlIGVzcGVjaWZpY2Fyc2UgS2V5ID0+IFZpYWplOyBDb250ZW50ID0+IDUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvIGRlIGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnTW9kaWZpY2FyIHJlZ2lzdHJvIGRlIGhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgYSBjb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIGZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNpZ3VpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdJciBhIGVzdGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEw61hcyBzaW4gcmVnaXN0cm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNjaW9uYXIgdG9kb3MgbG9zIGTDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdSZWdpc3RybyBtYXNpdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQb3IgZmF2b3IgZXNjb2phIHVuYSByYXrDs24gcGFyYSBzdSBhdXNlbmNpYSBwYXJhIGxvcyBkw61hcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRGUgdmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0F1c2VudGUgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ8KhUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfCoVBvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwb3IgYXVzZW5jaWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdSZWdpc3RybyBNYXNpdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdMb3MgY2FtcG9zIHJlcXVlcmlkb3MgZXN0w6FuIG1hcmNhZG9zIGNvbiB1biAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRXMgbmVjZXNhcmlvIHF1ZSBwcm9wb3JjaW9uZSB1bmEgaG9yYSBkZSBpbmljaW8geSB1bmEgZGUgZmluYWxpemFjacOzbiBvIHVuIHBlcmlvZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQ29tZW50YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICfCoVBvciBmYXZvciwgYcOxYWRlIHVuIGNvbWVudGFyaW8gY29uIG1hcyBkZSA4IGNhcmFjdGVyZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdIb3JhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm8gc2UgcGVybWl0ZSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIG5lZ2F0aXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgaW5pY2lvIGVzdMOhIGluY2x1w61kYSBlbiBvdHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ8KhRm9ybWF0byBubyB2w6FsaWRvISBQb3IgZmF2b3IgaW50cm9kdXpjYSBsYXMgaG9yYXMgY29uIGVsIGZvcm1hdG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGVzIHNvbG8gcGVybWl0aWRvIGNvbW8gdGllbXBvIGZpbmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ8KhSG9yYSBubyB2w6FsaWRhISBVbiBkw61hIHNvbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnSG9yYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZGViZSBzZXIgcG9zdGVyaW9yIGEgbGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyByZXBldGlkYXMuIExhIGhvcmEgZGUgZmluYWxpemFjacOzbiBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfCoVBlcmlvZG8gbm8gdsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIG5vIHbDoWxpZG8hIE5vIHNlIHBlcm1pdGVuIHBlcmlvZG9zIG5lZ2F0aXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdBw7FhZGlyIHVuYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnVG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfCoVPDs2xvIHNlIHBlcm1pdGUgZWxlZ2lyIHVuIGVsZW1lbnRvIGRlIGxhIGNhc2lsbGEgZGUgdmVyaWZpY2FjacOzbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdNb3N0cmFyIHRvZG9zIGxvcyBlbGVtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VsaW1pbmFyIFJlZ2lzdHJvIGRlIENvbnRhYmlsaWRhZCBkZSBUaWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdDb25maXJtYXIgaW5zZXJjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGVuZmVybWVkYWQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3VzIHZhY2FjaW9uZXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIG3DoXMgZGUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSBtZW5zdWFsIGRlIHRpZW1wb3MgcmVwb3J0YWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTsO6bWVybyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIHRyYWJhamFkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVG90YWwgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0hvcmFzIHJlc3RhbnRlcyBwYXJhIGF1c2VudGFyc2UgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpb25lcyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjaW9uZXMgdG9tYWRhcyAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdWYWNhY2lvbmVzIHRvbWFkYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdEw61hcyBkZSB2YWNhY2lvbmVzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0F1c2VuY2lhIHBvciBlbmZlcm1lZGFkIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdBdXNlbmNpYXMgcG9yIGVuZmVybWVkYWQgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdBdXNlbmNpYXMgcG9yIGVuZmVybWVkYWQgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ01lcyBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTWVzIHNpZ3VpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRMOtYSBkZSBsYSBzZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0hvcmFzIHRyYWJhamFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgZGUgaG9yYXMgdHJhYmFqYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN0YSBkZSBwcm95ZWN0byBkZSB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzIChtZW5zdWFsZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdIb3JhcyAodGllbXBvIGRlIHZpZGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWwgbmV0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZXBvcnRlIGRlIGhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBwb3IgbWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdJciBhIGZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlcG9ydGVzIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnN1YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUaWVtcG8gdG90YWwgZGUgdmlkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0F1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnVmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnQXVzZW5jaWEgcG9yIGVuZmVybWVkYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnRMOtYXMgbGlicmVzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSZXBvcnRlcyBkZSBwcm95ZWN0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmVwb3J0ZSBkZSBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJciBhbCByZXN1bWVuIGRlIHJlcG9ydGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc29sbyBzZSBtdWVzdHJhbiBsb3MgdXN1YXJpb3MgYWN0aXZvcyBlbiBlc3RlIHByb3llY3RvLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1pZW50bywgcG9yIGZhdm9yIGFjdHVhbGl6ZSBsYSBjb25maWd1cmFjacOzbjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc2UgbXVlc3RyYW4gdG9kb3MgbG9zIHVzdWFyaW9zIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgY29uZmlndXJhY2nDs24gZGVsIHByb3llY3RvIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdyZWdhciBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgY29uZmlndXJhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ3JlZ2FyIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZWwgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1biBwcm95ZWN0byBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdVc3VhcmlvIG51ZXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cm8gcGFyYSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRybyBwYXJhIFRhcmVhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHJvIHBhcmEgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdMb3MgcGVyw61vZG9zIGRlIHRpZW1wbyBubyBzZSBwdWVkZW4gYm9ycmFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdyZWdhciBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1bmEgdGFyZWEgY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhY2nDs24gZGUgVXN1YXJpbyBOdWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGVsIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdDb21lbnRhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIGRlIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBkYXRvcyBkZSBlc3RlIGTDrWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ8KhTm8gc2UgcHVlZGVuIGluc2VydGFyIHVuaWRhZGVzIGRlIHRyYWJham8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfDmmx0aW1vcyBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnwqFObyBzZSBwdWVkZSBndWFyZGFyIGxhIGNvbmZpZ3VyYWNpw7NuLCBwb3JxdWUgdW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3JhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ8KhTm8gc2UgcHVlZGVuIGJvcnJhciB1bmlkYWRlcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0VzdGEgZmVjaGEgZXN0w6EgZnVlcmEgZGVsIGzDrW1pdGUsIHBlcm8gbm8gaGEgaW5zZXJ0YWRvIHRvZGF2w61hIGVzdGUgZMOtYSwgcG9yIGxvIHF1ZSBvYnRpZW5lIHVuYSAoIMKhc29sbyB1bmEhKSBvcG9ydHVuaWRhZCBkZSBpbnNlcnRhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0TDrWFzIExhYm9yYWxlcyBJbmNvbXBsZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICfCoVBvciBmYXZvciBpbnNlcnRlIHN1cyBob3JhcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfCoUluc2VyY2nDs24gZXhpdG9zYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ8KhRXJyb3IgYWwgaW5zZXJ0YXIgbcO6bHRpcGxlcyBmZWNoYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ8KhU2UgaGFuIGluc2VydGFkbyBzYXRpc2ZhY3RvcmlhbWVudGUgZW50cmFkYXMgcGFyYSB2YXJpYXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnwqFMYSBmZWNoYSBpbnRyb2R1Y2lkYSBubyBlcmEgdsOhbGlkYSEgTGEgZmVjaGEgc2UgY2FtYmnDsyBhIGhveS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIFByb3llY3RvcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIGxvcyBQcm95ZWN0b3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJveWVjdG8gZGUgUmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0ZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnwqFObyBzZSBwdWVkZSBhY3R1YWxpemFyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlbCB1c3VhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ8KhUHJveWVjdG8gYcOxYWRpZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfCoVByb3llY3RvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ8KhVGFyZWEgYcOxYWRpZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfCoVRhcmVhIGFjdHVhbGl6YWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfCoUxhIElEIGRlIHVzdWFyaW8gbm8gZXMgdmFsaWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfCoU5vIHB1ZWRlIGluc2VydGFyIGRhdG9zIGRlIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnwqFObyBzZSBwdWVkZSBhw7FhZGlyIHVuIHBlcsOtb2RvIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ8KhVXN1YXJpbyBhY3R1YWxpemFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfCoVVzdWFyaW8gYcOxYWRpZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTnVldm8gVXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnRXN0YWRvIGRlbCBwZXLDrW9kbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmVyOiDCoU5lY2VzaXRhICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0TDrWFzIGxhYm9yYWxlcyBpbmNvbXBsZXRvcyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLCBuZWNlc2FyaW8gcGFyYSB2aXN1YWxpemFyIGVsIG7Dum1lcm8gZGUgZMOtYXMgaW5jb21wbGV0b3MgZGUgdW4gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBkZXNjcmlwY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBmYWx0YXMgKGTDrWFzIGRlIGF1c2VuY2lhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBzZW1hbmFsZXMgZXN0w6FuZGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgdXN1YXJpb3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgcGFyYSBjdcOhbGVzIHByb3llY3RvcyBlcyBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGNvbWVudGFyaW9zLiBTaSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgY29pbmNpZGUgY29uIGVsIHByb3llY3RvLCBzZSB0aWVuZSBxdWUgZXNjcmliaXIgdW4gY29tZW50YXJpby4gTGEgZXhwcmVzacOzbiByZWd1bGFyIHVzYSBlbCBwYXLDoW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGluZm9ybWFjacOzbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFZGl0YXIgbGEgY29uZmlndXJhY2nDs24gZGUgQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFZGl0YXIgcmVnaXN0cm8gZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdFc3BlY2lmaWNhIGVsIG7Dum1lcm8gbcOheGltbyBkZSBkw61hcyBwYXJhIHJlZ2lzdHJhciBob3JhcyBkZSB0cmFiYWpvIGF0cmFzYWRhcyAocG9yIGVqZW1wbG86IDEwIGTDrWFzIGRlIGFudGlnw7xlZGFkKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnU2kgc2UgaGFiaWxpdGEsIHNvbGFtZW50ZSBsb3MgdXN1YXJpb3MgcXVlIGhhbiByZWdpc3RyYWRvIHN1cyB0aWVtcG9zIGVuIGVsIHByb3llY3RvIHNlbGVjY2lvbmFkbyBzZXLDoW4gbW9zdHJhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gc2UgY2FtYmlhcmFuIGEgbW9yZGVybm9zIGNhbXBvcyBkZSBhdXRvY29tcGxldGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBnZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGVsIHRpZW1wbyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Jlc3VtZW4gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQWp1c3RlcyBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ZlciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdDb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdTZSB1c2Egc2kgYWxndW5hcyBhY2Npb25lcyByZWR1Y2VuIGVsIG7Dum1lcm8gZGUgaG9yYXMgdHJhYmFqYWRhcyAocG9yIGVqZW1wbG86IHNpIHPDs2xvIHNlIHBhZ2EgbGEgbWl0YWQgZGVsIHRpZW1wbyBkZSB2aWFqZSBwdWVkZSBlc3BlY2lmaWNhcnNlIEtleSA9PiBWaWFqZTsgQ29udGVudCA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Z2xfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdRdWVyZSByZWFsbWVudGUgYm9ycmFyIG8gVGVtcG8gQ29udGFiaWxpemFkbyBkZXN0ZSBkw61hPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdFZGl0ZSBSZXhpc3RybyBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIMOhIGNvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIGVudHJlIGRhdGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNlZ3VpbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ0lyIGEgZXN0YSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRMOtYXMgc2VuIGVudHJhZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjY2lvbmFyIHRvZG9zIG9zIGTDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdJbnRyb2R1Y2nDs24gZW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ0VzY29sbGEgbyBtb3Rpdm8gZGEgc8O6YSBhdXNlbmNpYSBub3MgZMOtYXMgc2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1ZhY2FjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnRW4gcGVybWlzbyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0VzY29sbGEgYW8gbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdFc2NvbGxhIG8gbW90aXZvIGRhIGF1c2VuY2lhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW50cm9kdWNpw7NuIGVuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdPcyBjYW1wb3Mgb2JyaWdhdG9yaW9zIGVzdMOhbiBtYXJjYWRvcyBjdW4gwqsqwrsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnSGFpIHF1ZSBkYXIgdW5oYSBob3JhIGRlIGluaWNpbyBlIGRlIHJlbWF0ZSBvdSB1biBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3hlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnSG9yYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vbiBzZSBwZXJtaXRlbiBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgaW5pY2lvIGNvaW5jaWRlIGNvbiBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPIGZvcm1hdG8gw6kgaW5jb3JyZWN0byEgSW50cm9kdXphIHVuaGEgaG9yYSBubyBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBzw7MgZXN0w6EgcGVybWl0aWRvIGNvbW8gaG9yYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0EgaG9yYSDDqSBpbmNvcnJlY3RhISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnSG9yYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdBIGhvcmEgZGUgZmluYWxpemFjacOzbiBoYSBkZSBzZXIgcG9zdGVyaW9yIMOhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgZmluYWxpemFjacOzbiBjb2luY2lkZSBjb24gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTyBwZXLDrW9kbyDDqSBpbmNvcnJlY3RvISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyw61vZG8gY29ycmVjdG8gaGEgZGUgc2VyIG1haW9yIGRlIGNlcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdPIHBlcsOtb2RvIMOpIGluY29ycmVjdG8hIE5vbiBzZSBwZXJtaXRlbiBwZXLDrW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0VuZ2FkaXIgdW5oYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnVG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdTw7Mgw6kgcG9zw61iZWwgc2VsZWNjaW9uYXIgdW4gZWxlbWVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnTW9zdHJhciB0b2RvcyBvcyBlbGVtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VsaW1pbmUgRW50cmFkYSBUZW1wbyBDb250YWJpbGl6YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWUgYSBpbnNlcmNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdDb25maXJtYSBxdWUgdHJhYmFsbG91IG1lbnRyZXMgdGnDsWEgbGljZW56YSBwb3IgZW5mZXJtaWRhZGU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIGVzdGFiYSBkZSB2YWNhY2nDs25zPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIHRpw7FhIHBlcm1pc28gcG9yIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtw6FpcyBkZSBkZXphc2VpcyBob3Jhcz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1Zpc3RhIHhlcmFsIG1lbnN1YWwgZGUgcmVwb3J0ZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnSG9yYXMgZXh0cmEgKGhvcmFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdIb3JhcyBleHRyYSAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdIb3JhcyBleHRyYSAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Blcm1pc28gcG9yIGhvcmFzIGV4dHJhcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpw7NucyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjacOzbnMgY29sbGlkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVmFjYWNpw7NucyBjb2xsaWRhcyAodG90YWlzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdWYWNhY2nDs25zIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWNlbnphcyBwb3IgZW5mZXJtaWRhZGUgY29sbGlkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdMaWNlbnphcyBwb3IgZW5mZXJtaWRhZGUgY29sbGlkYXMgKHRvdGFpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNZXMgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ01lcyBzZWd1aW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRMOtYSBkYSBzZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0hvcmFzIGxhYm9yYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0hvcmFzIHRyYWJhbGxhZGFzIHRvdGFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN0YSB4ZXJhbCBkbyBwcm94ZWN0byBkbyB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzIChwb3IgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKHZpZGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWwgYWN1bXVsYWRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBtZXNlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgYSB1bmhhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnSW5mb3JtZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc3VhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RvdGFsIGRhIHZpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1ZhY2FjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1ZhY2FjacOzbnMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ0luZm9ybWVzIGRlIHByb3hlY3Rvcyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnSW5mb3JtZSBkZSBwcm94ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgw6EgdmlzdGEgeGVyYWwgZGUgaW5mb3JtZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzw7MgdXN1YXJpb3MgYWN0aXZvcyBuZXN0ZSBwcm94ZWN0byBzb24gbW9zdHJhZG9zLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1lbnRvLCBwb3IgZmF2b3IgYWN0dWFsaWNlIG8gYXh1c3RlOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdUb2RvIG8gdGVtcG8gY29udGFiaWxpemFkbyBwb2xvcyB1c3VhcmlvcyDDqSBtb3N0cmFkby4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGFjdHVsaWNlIG8gYXh1c3RlOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0ZSBDb250YWJpbGl6YWNpw7NuIGRvIFRlbXBvIGVuIEF4dXN0ZXMgZGUgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdFbmdhZGlyIHVuIHByb3hlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVmFpYSDDoSB2aXN0YSB4ZXJhbCBkZSBheHVzdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnRW5nYWRpciB1biBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgYSBjb25maWd1cmFjacOzbiBkbyBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWGEgaGFpIHVuIHByb3hlY3RvIGNvbiBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xsYSB1biBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRWRpdGUgQ29udGFiaWxpemFjacOzbiBkbyBUZW1wbyBlbiBBeHVzdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRW5nYWRpciB1bmhhIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ05vdm8gdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnRmlsdHJhciBwb3IgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0cmFyIHBvciB0YXJlZmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVXNlcnMnfSA9ICdGaWx0cmFyIHBvciB1c3Vhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBwcm94ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgdGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0VuZ2FkaXIgdW5oYSB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRWRpdGFyIGEgY29uZmlndXJhY2nDs24gZGEgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdYYSBoYWkgdW5oYSB0YXJlZmEgY29uIGVzdGUgbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGxhIHVuIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgdXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdBeHVzdGVzIE5vdm8gVXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdBeHVzdGVzIEVkaXRhciBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnQ29tZW50YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgVGVtcG8gRXhjZXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQZXJtaXRpciBjcmVhY2nDs24gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnQ29taWVuem8gUGVyaW9kbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnRmluIFBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0TDrWFzIGRlIFZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdFeGNlc28gVGVtcG8gQXV0b3JpemFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkZSBjb21lem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yIGludHJvZHV6Y2EgdW5oYSBkYXRhIHbDoWxpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXRhIGRlIGZpbmFsaXphY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdGaW4gZG8gcGVyaW9kbyBkZWJlIHNlciBkZXNwb2lzIGRlIHF1ZSBjb21pZW5jZSBvIHBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0TDrWFzIGRlIHBlcm1pc28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm9uIHNlIGF0b3Bhcm9uIHBlcsOtb2RvcyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnRW5nYWRpciBwZXJpb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1Zpc3RhIFJleGlzdHJvIGRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzdGEgZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm9uIHNlIGF0b3Bhcm9uIGRhdG9zIHBhcmEgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnRyb2R1emEgYXMgc8O6YXMgaG9yYXMgZGUgdHJhYmFsbG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyY2nDs24gc2F0aXNmYWN0b3JpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm8gbWVudHJlcyBpbnRyb2R1Y8OtYW5zZSBkYXRhcyBtw7psdGlwbGVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdFbnRyYWRhcyBzYXRpc2ZhY3RvcmlhbWVudGUgaW50cm9kdWNpZGFzIHBhcmEgdmFyaWFzIGRhdGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnRGF0YSBpbnRyb2R1Y2lkYSBmb2kgaW52YWxpZGEhIEEgZGF0YSBmb2kgY2FtYmlhZGEgYSBob3hlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnSW5mb3JtZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBub3RpZmljYWNpw7NuIGludGVyZmFjZSBkZSBheGVudGUgcGFyYSB2ZXIgbyBuw7ptZXJvIGRlIGTDrWFzIGRlIHRyYWJhbGxvIGluY29tcGxldG9zIHBhcmEgbyB1c3VhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWUgcHJlZGV0ZXJtaW5hZG8gcGFyYSBhcyBhY2Npw7NucyBub3Zhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tZSBwcmVkZXRlcm1pbmFkbyBwYXJhIG9zIHByb3hlY3RvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdBeHVzdGUgcG9yIGRlZmVjdG8gcGFyYSBmaW4gZGEgZGF0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0F4dXN0ZSBwb3IgZGVmZWN0byBwYXJhIGluaWNpbyBkYSBkYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHByZWRlZmluaWRhIGRhIGRlc2NyaWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmFjacOzbiBwcmVkZWZpbmlkYSBkb3MgZMOtYXMgZGUgcGVybWlzby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmFjacOzbiBwcmVkZWZpbmlkYSBkYXMgaG9yYXMgZXh0cmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdBeHVzdGUgcG9yIGRlZmVjdG8gcGFyYSBhcyBob3JhcyBlc3RhbmRhcmQgc2VtYW7DoWlzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHByZWRldGVybWluYWRvIHBhcmEgYXMgYWNjacOzbnMgbm92YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHByZWRldGVybWluYWRvIHBhcmEgb3MgcHJveGVjdG9zIG5vdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIG9zIHVzdWFyaW9zIG5vdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgb3MgcHJveGVjdG9zIHBhcmEgb3MgY2FsZXMgdW4gY29tZW50YXJpbyDDqSByZXF1aXJpZG8uIFNlIGEgRXhwUmVnIGNvaW5jaWRlIG5vIHByb3hlY3RvLCB0ZW4gcXVlIGluc2VydGFyIHVuIGNvbWVudGFyaW8gdGFtw6luLiBBIEV4cFJlZyB1c2EgbyBwYXLDoW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBwb2RlIHhlcmFyIGluZm9ybWFjacOzbiBkZSBjb250YWJpbGl6YWNpw7NuIGRlIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnUG9yIGNhbnRvcyBkw61hcyBhdHLDoXMgcG9kZSBpbnNlcnRhciB1bmlkYWRlcyBkZSB0cmFiYWxsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgc8OzIHVzdWFyaW9zIHF1ZSBlbmdhZGlyb24gdGVtcG8gZGUgdHJhYmFsbG8gYW8gcHJveGVjdG8gc2VsZWNjaW9uYWRvIHNvbiBtb3N0cmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIGFvIHVzdWFyaW8gcGVybWl0ZXNlbGxlIGludHJvZHVjaXIgInBlcm1pc28gZGUgdmFjYWNpw7NucyIgLCAicGVybWlzbyBwb3IgZW5mZXJtaWRhZGUiIGUgInBlcm1pc28gcG9yIGV4Y2VzbyBkZSB0ZW1wbyIgcGFyYSBtdWx0aXBsZXMgZGF0YXMgZHVuaGEgdmV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBkw61hcyBkZSB0cmFiYWxsbyBkZXNwb2lzIGRvcyBjYWxlcyBhcyB1bmlkYWRlcyBkZSB0cmFiYWxsbyBkZWJlbiBzZXIgaW5zZXJ0YWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBkw61hcyBkZSB0cmFiYWxsbyBzZW4gZW50cmFkYXMgZGUgdW5pZGFkZXMgZGUgdHJhYmFsbG8gZGVzcG9pcyBkb3MgY2FsZXMgdW5oYSBhbGVydGEgc2Vyw6EgbW9zdHJhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnRXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYSBsaXN0YSBxdWUgY29udHJpbnhlIGEgYWNjacOzbiBzZWd1bmRvIG8gcHJveGVjdG8gc2VsZWNjaW9uYWRvLiBDaGF2ZSBjb250w6luIGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgcHJveGVjdG8ocyksIGNvbnRpZG8gY29udMOpbiBleHByZXNpw7NucyByZWd1bGFyZXMgcGFyYSBhY2Npw7NuKHMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpw7NucyByZWd1bGFyZXMgcGFyYSBhIGxpc3RhIHF1ZSBjb250cmlueGUgbyBwcm94ZWN0byBzZWd1bmRvIG9zIGdydXBvcyBzZWxlY2Npb25hZG9zLiBDaGF2ZSBjb250w6luIGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgcHJveGVjdG8ocyksIGNvbnRpZG8gY29udMOpbiBsaXN0YSBzZXBhcmFkYSBwb3IgY29tYXMgZGUgZ3J1cG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnRXNwZWNpZmljYSBzZSBhcyBob3JhcyBkZSB0cmFiYWxsbyBwb2RlbiBzZXIgaW5zZXJ0YWRhcyBzZW4gdGVtcG9zIGRlIGluaWNpbyBlIGZpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXN0ZSBtw7NkdWxvIGZvcnphIGFzIGluc2VyY2nDs25zIGVuIENvbnRhYmlsaXphY2nDs25UZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdFc3RlIG3Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkYSB1bmhhIGFsZXJ0YSBzZSBoYWkgbW9pdG9zIGTDrWFzIGRlIHRyYWJhbGxvIGluY29tcGxldG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGUgY29udGFiaWxpemFjacOzbiBkbyB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Zpc3RhIFhlcmFsIGNvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSW5mb3JtZSBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQXh1c3RlcyBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWaXN0YSBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnUGFyYSB1c2FyIHNlIGFsZ3VuaGFzIGFjY2nDs25zIHJlZHVjaXJvbiBhcyBob3JhcyBkZSB0cmFiYWxsbyAocG9yIGV4ZW1wbG8sIHNlIHPDsyBhIG1pdGFkZSBkbyB0ZW1wbyBkZSB2aWF4ZSDDqSBwYWdhZG8gQ2hhdmUgPT4gdmlheGU7IENvbnRpZG8gPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWYWzDs2JhbiB0w7Zyw7Zsbmkgc3plcmV0bsOpIGVubmVrIGEgbmFwbmFrIGF6IGlkxZFlbHN6w6Ftb2zDoXPDoXQ/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0lkxZFmZWxqZWd5esOpcyBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnVWdyw6FzIGEgYmXDoWxsw610w6Fzb2tob3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRMOhdHVtIG5hdmlnw6FjacOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0VsxZF6xZEgbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnS8O2dmV0a2V6xZEgbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ1VncsOhcyBlcnJlIGEgZMOhdHVtcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdCZWplZ3l6w6lzZWsgbsOpbGvDvGxpIG5hcG9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ01pbmRlbiBuYXAga2lqZWzDtmzDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdUw7ZtZWdlcyBiZWplZ3l6w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVsOhbGFzc3phIGtpIGEgdMOhdm9sbMOpdGUgb2vDoXQgYSBraWplbMO2bHQgbmFwb2tyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1N6YWJhZHPDoWdvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQmV0ZWdzemFiYWRzw6Fnb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdDc8O6c3p0YXTDoXNvbiB0w7psw7NyYSBtaWF0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnTGVnYWzDoWJiIGVneSBuYXBvdCB2w6FsYXNzem9uIGtpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1bDoWxhc3N6YSBraSBhIHTDoXZvbGzDqXQgb2vDoXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdUw7ZtZWdlcyBiZWplZ3l6w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnQSBrw7Z0ZWxlesWRIG1lesWRayDigJ4q4oCdIGplbGxlbCB2YW5uYWsgbWVnamVsw7ZsdmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnS2kga2VsbCB0w7ZsdGVuaWUgYSBrZXpkxZEgw6lzIGJlZmVqZXrFkSBpZMWRdCB2YWd5IGVneSBpZMWRc3pha290Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnRmVsYWRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfDiXN6cmV2w6l0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQWRqb24gaG96esOhIGVneSA4IGthcmFrdGVybsOpbCBob3NzemFiYiDDqXN6cmV2w6l0ZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnS2V6ZMOpc2kgaWTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXTDrXYgaWTFkXBvbnRvayBuZW0gZW5nZWTDqWx5ZXpldHRlay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0F6IGlzbcOpdGzFkWTFkSDDs3LDoWsgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuIEEga2V6ZMOpc2kgaWTFkSBlZ3kgbcOhc2lrIGlkxZFrw7Z6cmUgaWxsZXN6a2VkaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfDiXJ2w6lueXRlbGVuIGZvcm3DoXR1bSEgw5PDkzpQUCBmb3Jtw6F0dW3DuiBpZMWRdCBhZGpvbiBtZWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ0EgMjQ6MDAgY3NhayBiZWZlamV6w6lzaSBpZMWRa8OpbnQgZW5nZWTDqWx5ZXpldHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRcG9udCEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ0JlZmVqZXrDqXNpIGlkxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0EgYmVmZWplesOpc2kgaWTFkW5layBhIGtlemTDqXNpIGlkxZEgdXTDoW4ga2VsbCBsZW5uaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnQXogaXNtw6l0bMWRZMWRIMOzcsOhayBuZW0gZW5nZWTDqWx5ZXpldHRlay4gQSBiZWZlamV6w6lzaSBpZMWRIGVneSBtw6FzaWsgaWTFkWvDtnpyZSBpbGxlc3prZWRpay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ8OJcnbDqW55dGVsZW4gaWTFkXN6YWshIEVneSBuYXBuYWsgY3NhayAyNCDDs3LDoWphIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFZ3kgw6lydsOpbnllcyBpZMWRc3pha25hayBuYWd5b2JibmFrIGtlbGwgbGVubmllIG51bGzDoW7DoWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfDiXJ2w6lueXRlbGVuIGlkxZFzemFrISBOZWdhdMOtdiBpZMWRc3pha29rIG5lbSBlbmdlZMOpbHllemV0dGVrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0VneSBzb3IgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnw5Zzc3plc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnQ3NhayBlZ3kgamVsw7ZsxZFuw6lneXpldCBlbGVtZXQgdsOhbGFzenRoYXQga2khJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnTWluZGVuIGVsZW0gbWVnamVsZW7DrXTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdJZMWRZWxzesOhbW9sw6FzIGJlamVneXrDqXMgdMO2cmzDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQmVpbGxlc3p0w6lzIG1lZ2VyxZFzw610w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQml6dG9zIGJlbm5lLCBob2d5IGRvbGdvem90dCwgbWlhbGF0dCBiZXRlZ3N6YWJhZHPDoWdvbiB2b2x0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSBkb2xnb3pvdHQsIG1pYWxhdHQgc3phYmFkc8OhZ29uIHZvbHQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdCaXp0b3MgYmVubmUsIGhvZ3kgZG9sZ296b3R0LCBtaWFsYXR0IGNzw7pzenRhdG90dD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnQml6dG9zIGJlbm5lLCBob2d5IHTDtmJiIG1pbnQgMTYgw7Nyw6F0IGRvbGdvem90dD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ0lkxZFqZWxlbnTDqXMgaGF2aSDDoXR0ZWtpbnTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdUw7psw7NyYSAow7NyYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnVMO6bMOzcmEgKGV6IGEgaMOzbmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVMO6bMOzcmEgKMO2c3N6ZXNlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnTWVnbWFyYWR0IGNzw7pzenRhdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdTemFiYWRzw6FnIChuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0tpdmV0dCBzemFiYWRzw6FnIChleiBhIGjDs25hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0tpdmV0dCBzemFiYWRzw6FnICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ01lZ21hcmFkdCBzemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQmV0ZWdzemFiYWRzw6FnIChuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnS2l2ZXR0IGJldGVnc3phYmFkc8OhZyAoZXogYSBow7NuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0tpdmV0dCBiZXRlZ3N6YWJhZHPDoWcgKMO2c3N6ZXNlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdFbMWResWRIGjDs25hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnS8O2dmV0a2V6xZEgaMOzbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdIw6l0a8O2em5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnTXVua2FpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0xlZG9sZ296b3R0IMOzcsOhayDDtnNzemVzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnQSBmZWxoYXN6bsOhbMOzIHByb2pla3Rqw6luZWsgw6F0dGVraW50xZFqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfDk3LDoWsgKGhhdm9udGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfDk3LDoWsgKMOpbGV0dGFydGFtKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ01pbmTDtnNzemVzZW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnSWTFkWplbGVudMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnSMOzbmFwIG5hdmlnw6FjacOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdVZ3LDoXMgZMOhdHVtcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnRmVsaGFzem7DoWzDs2kgamVsZW50w6lzZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0hhdmkgw7Zzc3plc8OtdMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnw4lsZXR0YXJ0YW0gw7Zzc3plc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQ3PDunN6dGF0w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnU3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnQmV0ZWdzemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0jDoXRyYWzDqXbFkSBzemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3QgamVsZW50w6lzZWsnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1Byb2pla3QgamVsZW50w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ1VncsOhcyBhIGplbGVudMOpcyDDoXR0ZWtpbnTFkWjDtnonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdKZWxlbmxlZyBjc2FrIGF6IGFrdMOtdiBmZWxoYXN6bsOhbMOzayB2YW5uYWsgbWVnamVsZW7DrXR2ZSBlYmJlbiBhIHByb2pla3RiZW4uIEEgbcWxa8O2ZMOpcyBtw7Nkb3PDrXTDoXPDoWhveiBmcmlzc8OtdHNlIGEgYmXDoWxsw610w6FzdDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnSmVsZW5sZWcgbWluZGVuIGlkxZFlbHN6w6Ftb2zDsyBmZWxoYXN6bsOhbMOzIG1lZyB2YW4gamVsZW7DrXR2ZS4gQSBtxbFrw7Zkw6lzIG3Ds2Rvc8OtdMOhc8OhaG96IGZyaXNzw610c2UgYSBiZcOhbGzDrXTDoXN0Oic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdJZMWRZWxzesOhbW9sw6FzIHByb2pla3RiZcOhbGzDrXTDoXNvayBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnUHJvamVrdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdVZ3LDoXMgYSBiZcOhbGzDrXTDoXNvayDDoXR0ZWtpbnTFkWjDtnonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdQcm9qZWt0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdQcm9qZWt0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnTcOhciBsw6l0ZXppayBlZ3kgaWx5ZW4gbmV2xbEgcHJvamVrdC4gVsOhbGFzc3pvbiBlZ3kgbcOhc2lrIG5ldmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0lkxZFlbHN6w6Ftb2zDoXNpIGJlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdGZWxhZGF0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ8OaaiBmZWxoYXN6bsOhbMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdQcm9qZWt0ZWsgc3rFsXLDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGZWxhZGF0b2sgc3rFsXLDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVXNlcnMnfSA9ICdGZWxoYXN6bsOhbMOzayBzesWxcsOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdBeiBpZMWRc3pha29rIG5lbSB0w7Zyw7ZsaGV0xZFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0bGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnRmVsYWRhdGxpc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnRmVsYWRhdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRmVsYWRhdGJlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ03DoXIgbMOpdGV6aWsgZWd5IGlseWVuIG5ldsWxIGZlbGFkYXQuIFbDoWxhc3N6b24gZWd5IG3DoXNpayBuZXZldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnRmVsaGFzem7DoWzDs2xpc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnw5pqIGZlbGhhc3puw6Fsw7MgYmXDoWxsw610w6FzYWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnRmVsaGFzem7DoWzDs2Jlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdNZWdqZWd5esOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdUw7psw7NyYSBtZWdqZWxlbsOtdMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Byb2pla3Rsw6l0cmVob3rDoXMgZW5nZWTDqWx5ZXrDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0lkxZFzemFrIGtlemRldGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0lkxZFzemFrIHbDqWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdTemFiYWRzw6FnIG5hcGphaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ8OTcsOhayBoZXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdKb2dvc3VsdCB0w7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnS2V6ZMOpc2kgZMOhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ8OJcnbDqW55ZXMgZMOhdHVtb3QgaWxsZXNzemVuIGJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0JlZmVqZXrDqXNpIGTDoXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0F6IGlkxZFzemFrIHbDqWfDqW5layBheiBpZMWRc3phayBrZXpkZXRlIHV0w6FuIGtlbGwgbGVubmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnU3phYmFkc8OhZyBuYXBqYWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSGV0aSDDs3LDoWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdUw7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmVtIHRhbMOhbGhhdMOzayBpZMWRc3pha29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdJZMWRc3phayBob3p6w6FhZMOhc2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnSWTFkWZlbGplZ3l6w6lzIG1lZ3Rla2ludMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBIGvDtnZldGtlesWRIG1lZ3Rla2ludMOpc2U6ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOZW0gdGFsw6FsaGF0w7MgYWRhdCBlcnJlIGEgbmFwcmEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ05lbSBsZWhldCBiZWlsbGVzenRlbmkgYSBtdW5rYWVneXPDqWdla2V0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGVndXTDs2JiaSBwcm9qZWt0ZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmVtIGxlaGV0IGVsbWVudGVuaSBhIGJlw6FsbMOtdMOhc29rYXQsIG1lcnQgZWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmVtIGxlaGV0IHTDtnLDtmxuaSBhIG11bmthZWd5c8OpZ2VrZXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXogYSBkw6F0dW0gYSBoYXTDoXJvbiBrw612w7xsIHZhbiwgZGUgbcOpZyBuZW0gaWxsZXN6dGV0dGUgYmUgZXogYSBuYXBvdCwgw61neSBrYXAgbcOpZyBlZ3koISkgZXPDqWx5dCBhIGJlaWxsZXN6dMOpc3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnQmVmZWplemV0bGVuIG11bmthbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnSWxsZXNzemUgYmUgYSBtdW5rYWlkZWrDqXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ1Npa2VyZXMgYmVpbGxlc3p0w6lzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnSGliYSB0w7ZydMOpbnQgdMO2YmIgZMOhdHVtIGJlaWxsZXN6dMOpc2Uga8O2emJlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnQSBiZWplZ3l6w6lzZWsgc2lrZXJlc2VuIGJlaWxsZXN6dHZlIGEga8O8bMO2bmLDtnrFkSBkw6F0dW1va2hveiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0EgbWVnYWRvdHQgZMOhdHVtIMOpcnbDqW55dGVsZW4gdm9sdCEgQSBkw6F0dW0gYSBtYWkgbmFwcmEgbGV0dCBtw7Nkb3PDrXR2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xlZ3V0w7NiYiBraXbDoWxhc3p0b3R0IHByb2pla3Rlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdNaW5kZW4gcHJvamVrdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdKZWxlbnTDqXMgcHJvamVrdDogcHJvamVrdGF6b25vc8OtdMOzIHN6w7xrc8OpZ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnSmVsZW50w6lzIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnSmVsZW50w6lzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ05lbSBsZWhldCBmcmlzc8OtdGVuaSBhIGZlbGhhc3puw6Fsw7NpIGJlw6FsbMOtdMOhc29rYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrdCBob3p6w6FhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrdCBmcmlzc8OtdHZlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0ZlbGFkYXQgaG96esOhYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0ZlbGFkYXQgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnQSBmZWxoYXN6bsOhbMOzLWF6b25vc8OtdMOzIG5lbSDDqXJ2w6lueWVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdOZW0gbGVoZXQgYmVpbGxlc3p0ZW5pIGEgZmVsaGFzem7DoWzDs2FkYXRva2F0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05lbSBsZWhldCBob3p6w6FhZG5pIGlkxZFzemFrb3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdGZWxoYXN6bsOhbMOzIGZyaXNzw610dmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnRmVsaGFzem7DoWzDsyBob3p6w6FhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ8OaaiBmZWxoYXN6bsOhbMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdJZMWRc3phayDDoWxsYXBvdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnTsOpemV0OiAlcyBzesO8a3PDqWdlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdCZWZlamV6ZXRsZW4gbXVua2FuYXBvayc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ8OcZ3lpbnTDqXrFkWkgZmVsw7xsZXQgw6lydGVzw610w6lzaSBtb2R1bCBhIGZlbGhhc3puw6Fsw7MgYmVmZWplemV0bGVuIG11bmthbmFwamFpIHN6w6Ftw6FuYWsgbWVndGVraW50w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBuw6l2IGF6IMO6aiBtxbF2ZWxldGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IG7DqXYgYXogw7pqIHByb2pla3Rla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIGJlZmVqZXrDqXNpIGTDoXR1bWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEga2V6ZMOpc2kgZMOhdHVtaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgbGXDrXLDoXNob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIHN6YWJhZHPDoWcgbmFwamFpaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgdMO6bMOzcsOhaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBzemFidsOhbnlvcyBoZXRpIG11bmthw7Nyw6FraG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCDDoWxsYXBvdCBheiDDumogbcWxdmVsZXRla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBwcm9qZWt0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCDDoWxsYXBvdCBheiDDumogZmVsaGFzem7DoWzDs2tob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXpva2F0IGEgcHJvamVrdGVrZXQsIGFtZWx5ZWtoZXogw6lzenJldsOpdGVsIHN6w7xrc8OpZ2VzLiBIYSBhIHJlZ3Vsw6FyaXMga2lmZWplesOpcyBpbGxlc3prZWRpayBhIHByb2pla3RyZSwgYWtrb3IgYmUga2VsbCBpbGxlc3p0ZW5pZSBlZ3kgw6lzenJldsOpdGVsdCBpcy4gQSByZWd1bMOhcmlzIGtpZmVqZXrDqXMgYXogc214IHBhcmFtw6l0ZXJ0IGhhc3puw6FsamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBob2d5IGEgc3RhdGlzenRpa2EgbW9kdWwgZWzFkcOhbGzDrXRoYXQtZSBpZMWRZWxzesOhbW9sw6FzaSBpbmZvcm3DoWNpw7NrYXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgYmXDoWxsw610w6FzYWluYWsgc3plcmtlc3p0w6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdJZMWRZmVsamVneXrDqXMgc3plcmtlc3p0w6lzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnSMOhbnkgbmFwcGFsIGV6ZWzFkXR0aMO2eiBpbGxlc3p0aGV0IGJlIG11bmthZWd5c8OpZ2VrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBjc2FrIGF6b2sgYSBmZWxoYXN6bsOhbMOzayBsZXN6bmVrIG1lZ2plbGVuw610dmUsIGFraWsgbXVua2FpZMWRdCBhZHRhayBob3p6w6EgYSBraWplbMO2bHQgcHJvamVrdGhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBhIHN6ZXJrZXN6dMOpc2kga8OpcGVybnnFkW4gbMOpdsWRIGxlbnnDrWzDsyBlbGVtZWsga29yc3plcsWxc8OtdGV0dCBhdXRvbWF0aWt1c2FuIGtpZWfDqXN6w610ZXR0IG1lesWRa3JlIGxlc3puZWsgbWVndsOhbHRvenRhdHZhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYXogZWzFkXrFkSBwcm9qZWt0ZWsgc3rFsXLFkWplIGhhc3puw6FsaGF0w7MgYSBwcm9qZWt0ZWsga8OpdCBsaXN0w6FqYSBoZWx5ZXR0IChsZWd1dMOzYmJpIMOpcyDDtnNzemVzKS4gQ3NhayBha2tvciBoYXN6bsOhbGhhdMOzLCBoYSBhIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlbmdlZMOpbHllenZlIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBheiBlbMWResWRIHByb2pla3RlayBzesWxcsWRamUgYWxhcMOpcnRlbG1lemV0dGVuIGJlIHZhbiBrYXBjc29sdmEsIGhhIHZhbm5hayBlbMWResWRIHByb2pla3Rlay4gQ3NhayBha2tvciBoYXN6bsOhbGhhdMOzLCBoYSBheiBFbmFibGVBdXRvQ29tcGxldGlvbiDDqXMgYSBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGVuZ2Vkw6lseWV6dmUgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGEgZmVsaGFzem7DoWzDs25hayBtZWdlbmdlZGV0dCBlZ3lzemVycmUgdMO2YmIgZMOhdHVtaG96IOKAnnN6YWJhZHPDoWdvbuKAnSwg4oCeYmV0ZWdzemFiYWRzw6Fnb27igJ0gw6lzIOKAnmNzw7pzenRhdMOhc29u4oCdIMOpcnTDqWsgbWVnYWTDoXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0EgbXVua2FuYXBvayBsZWduYWd5b2JiIHN6w6FtYSwgYW1lbHllayB1dMOhbiBhIG11bmthZWd5c8OpZ2VrZXQgYmUga2VsbCBzesO6cm5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnQSBtdW5rYWVneXPDqWdlayBiZWplZ3l6w6lzIG7DqWxrw7xsaSBtdW5rYW5hcG9rIGxlZ25hZ3lvYmIgc3rDoW1hLCBhbWVseWVrIHV0w6FuIGVneSBmaWd5ZWxtZXp0ZXTDqXMgbGVzeiBtZWdqZWxlbsOtdHZlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfDgXR0ZWtpbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUHJvamVrdGlkxZEgamVsZW50w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWzDoXJpcyBraWZlamV6w6lzZWsgYSBraWplbMO2bHQgcHJvamVrdCBzemVyaW50aSBrb3Jsw6F0b3rDsyBtxbF2ZWxldCBsaXN0w6Fqw6Fob3ouIEEga3VsY3MgYSBwcm9qZWt0ZWtoZXogdGFydGFsbWF6IHJlZ3Vsw6FyaXMga2lmZWplesOpc3QsIGEgdGFydGFsb20gcGVkaWcgYSBtxbF2ZWxldGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bMOhcmlzIGtpZmVqZXrDqXNlayBhIGZlbGhhc3puw6Fsw7Njc29wb3J0b2sgc3plcmludGkga29ybMOhdG96w7MgcHJvamVrdCBsaXN0w6Fqw6Fob3ouIEEga3VsY3MgYSBwcm9qZWt0ZWtoZXogdGFydGFsbWF6IHJlZ3Vsw6FyaXMga2lmZWplesOpc3QsIGEgdGFydGFsb20gcGVkaWcgY3NvcG9ydG9rIHZlc3N6xZF2ZWwgZWx2w6FsYXN6dG90dCBsaXN0w6Fqw6F0IHRhcnRhbG1henphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnTWVnYWRqYSwgaG9neSBhIG11bmthaWTFkSBiZXN6w7pyaGF0w7MtZSBrZXpkw6lzaSDDqXMgYmVmZWplesOpc2kgaWTFkWsgbsOpbGvDvGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0V6IGEgbW9kdWwga2lrw6lueXN6ZXLDrXRpIGEgYmVzesO6csOhc29rYXQgYXogaWTFkWVsc3rDoW1vbMOhc2Jhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdFeiBheiDDqXJ0ZXPDrXTDqXNpIG1vZHVsIGVneSBmaWd5ZWxtZXp0ZXTDqXN0IGFkLCBoYSB0w7psIHNvayBiZWZlamV6ZXRsZW4gbXVua2FuYXAgdGFsw6FsaGF0w7MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIHN6ZXJrZXN6dMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgw6F0dGVraW50xZEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBqZWxlbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIGJlw6FsbMOtdMOhc29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIG7DqXpldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0Fra29yIGtlbGwgaGFzem7DoWxuaSwgaGEgbsOpaMOhbnkgbcWxdmVsZXQgY3PDtmtrZW50ZXR0ZSBhIG11bmthaWTFkXQgKHDDqWxkw6F1bCBoYSBjc2FrIGF6IHV0YXrDoXNpIGlkxZEgZmVsZSB2YW4ga2lmaXpldHZlOiBLdWxjcyA9PiB1dGF6w6FzOyBUYXJ0YWxvbSA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aXRfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWdW9pIHZlcmFtZW50ZSBjYW5jZWxsYXJlIGxhIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUgZGkgb2dnaSA/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhIGxhIHJlbmRpY29udGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1ZhaSBhbGxlIGltcG9zdGF6aW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2F6aW9uZSBwZXIgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdHaW9ybm8gcHJlY2VkZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0dpb3JubyBzdWNjZXNzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ1ZhIGEgcXVlc3RhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdHaW9ybmkgc2VuemEgaW5mb3JtYXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGV6aW9uYSB0dXR0aSBpIGdpb3JuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BlciBmYXZvcmUgc2VsZXppb25hIGlsIG1vdGl2byBkZWxsYSB0dWEgYXNzZW56YSBwZXIgaSBnaW9ybmkgc2VsZXppb25hdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Fzc2VudGUgcGVyIG1hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXNzZW50ZSBwZXIgcmVjdXBlcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1NwZWNpZmljYXJlIGFsbWVubyB1biBnaW9ybm8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnU2VsZXppb25hcmUgdW4gbW90aXZvIHBlciBsXCdhc3NlbnphISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0kgY2FtcGkgb2JibGlnYXRvcmkgc29ubyBpbmRpY2F0aSBjb24gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0VcJyBvYmJsaWdhdG9yaW8gaW5zZXJpcmUgaW5pemlvIGUgZmluZSBvcHB1cmUgdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdDb21waXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0NvbW1lbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ0FnZ2l1bmdlcmUgdW4gY29tbWVudG8gY29uIHBpw7kgZGkgOCBjYXJhdHRlcmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdJc3RhbnRlIGRpIEluaXppbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm9uIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRpIHZhbG9yaSBuZWdhdGl2aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBpbml6aW8gY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIG5vbiB2YWxpZG8uIEluc2VyaXJlIHVuIG9yYXJpbyBuZWwgZm9ybWF0byBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnTFwnb3JhIDI0OjAwIMOoIGNvbnNlbnRpdGEgc29sbyBjb21lIG9yYSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09yYXJpbyBub24gdmFsaWRvISBJbiB1biBnaW9ybm8gY2kgc29ubyBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICdPcmFyaW8gZGkgdGVybWluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTFwnb3JhcmlvIGRpIGZpbmUgw6ggcG9zdGVyaW9yZSBhbGxcJ29yYXJpbyBkaSBpbml6aW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTm9uIMOoIHBlcm1lc3NvIGluc2VyaXJlIG9yZSByaXBldHV0ZS4gTFwnb3JhcmlvIGRpIGZpbmUgY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdQZXJpb2RvIG5vbiB2YWxpZG8uIFVuYSBnaW9ybmF0YSBoYSBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHZhbGlkbyBkZXZlIGVzc2VyZSBtYWdnaW9yZSBkaSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyaW9kbyBub24gdmFsaWRvLiBWYWxvcmkgbmVnYXRpdmkgbm9uIGFtbWVzc2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWdnaXVuZ2VyZSB1bmEgcmlnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1RvdGFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1B1b2kgc2VsZXppb25hcmUgc29sbyB1biBlbGVtZW50byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdNb3N0cmEgdHV0dGkgZ2xpIGVsZW1lbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdDYW5jZWxsYXJlIHZvY2UgZGkgcmVuZGljb250YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmVybWFyZSBpbnNlcmltZW50byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIG1lbnRyZSBlcmkgYXNzZW50ZSBwZXIgbWFsYXR0aWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIG1lbnRyZSBlcmkgaW4gZmVyaWU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBhc3NlbnRlIHBlciByZWN1cGVybyA/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBwacO5IGRpIDE2IG9yZT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ0NydXNjb3R0byBtZW5zaWxlIGRpIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ1N0cmFvcmRpbmFyaW8gKG9yZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnU3RyYW9yZGluYXJpbyAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdTdHJhb3JkaW5hcmlvICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1RvdGFsZSBvcmUgZGkgcmVjdXBlcm8gZGlzcG9uaWJpbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnRmVyaWUgKGdpb3JuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWUgdXRpbGl6emF0ZSAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGZXJpZSB1dGlsaXp6YXRlICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0ZlcmllIHJlc2lkdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdBc3NlbnplIHBlciBtYWxhdHRpYSAoZ2lvcm5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhIHV0aWxpenphdGUgKHF1ZXN0byBtZXNlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdBc3NlbnplIHBlciBtYWxhdHRpYSAodG90YWxlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ01lc2UgcHJlY2VkZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTWVzZSBzZWd1ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnR2lvcm5vIGRlbGxhIHNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnT3JlIGxhdm9yYXRpdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWxlIG9yZSBsYXZvcmF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN1YWxpenphemlvbmUgZGVsIHByb2dldHRvIC0gVXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ09yZSAobWVuc2lsaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ09yZSAoZ2xvYmFsaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbGUgb21uaWNvbXByZW5zaXZvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydCBkZWwgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmlnYXppb25lIHBlciBtZXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdWYWkgYWxsYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlcG9ydCB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsZSBtZW5zaWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnVG90YWxlIGdMb2JhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdBc3NlbnplIHBlciByZWN1cGVybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdNYWxhdHRpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdHaW9ybmkgcmltYW5lbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JpYXNzdW50aSBwcm9nZXR0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmlhc3N1bnRvIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ1ZhaSBhbCByaWVwaWxvZ28gZGkgcmVwb3J0aXN0aWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVmVuZ29ubyBtb3N0cmF0aSBzb2xvIGdsaSB1dGVudGkgYXR0aXZpIGRpIHF1ZXN0byBwcm9nZXR0by4gUGVyIGNhbWJpYXJlIHF1ZXN0byBjb21wb3J0YWVudG8gYWdnaW9ybmFyZSBpbCBwYXJhbWV0cm86ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdWZW5nb25vIG1vc3RyYXRpIHR1dHRpIGdsaSB1dGVudGkgcGVyIGxhIHJlbmRpY29udGF6aW9uZSB0ZW1wby4gUGVyIGNhbWJpYXJlIHF1ZXN0byBjb21wb3J0YW1lbnRvIGFnZ2lvcm5hcmUgaWwgcGFyYW1ldHJvOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXJlIGxlIGNvbmZpZ3VyYXppb25pIGRpIGdlc3Rpb25lIGRlbCB0ZW1wbyBkZWwgcHJvZ2V0dG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdnaXVuZ2VyZSBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1ZhaSBhbCByaWVwaWxvZ28gaW1wb3N0YXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnQWdnaXVuZ2VyZSBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXJlIGxhIGNvbmZpZ3VyYXppb25lIGRlbCBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRXNpc3RlIGdpw6AgdW4gcHJvZ2V0dG8gY29uIHF1ZXN0byBub21lLiBTY2VnbGVpcmUgdW4gbm9tZSBkaXZlcnNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGUgY29uZmlndXJhemlvbmkgZGVsbGEgcmVuZGljb250YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWdnaXVuZ2VyZSBjb21waXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTnVvdm8gdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cm8gcGVyIHByb2dldHRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0cm8gcGVyIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRybyBwZXIgdXRlbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnSSBwZXJpb2RpIGRpIHRlbXBvIG5vbiBwb3Nzb25vIGVzc2VyZSBlbGltaW5hdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0VsZW5jbyBkZWkgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnRWxlbmNvIGRlaSBjb21waXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdnaXVuZ2VyZSBjb21waXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGEgY29uZmlndXJhemlvbmUgZGVpIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VzaXN0ZSBnacOgIHVuIGNvbXBpdG8gY29uIHF1ZXN0byBub21lLiBTY2VnbGllcmUgdW4gbm9tZSBkaXZlcnNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdFbGVuY28gdXRlbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhemlvbmkgbnVvdm8gdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgY29uZmlndXJhemlvbmUgdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnQ29tbWVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXJlIHN0cmFvcmRpbmFyaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnQ29zZW50aXJlIGxhIGNyZWF6aW9uZSBkZWwgcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGkgdGVybWluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnR2lvcm5pIGRpIEFzc2VuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdPcmUgYWxsYSBzZXR0aW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaSBhdXRvcml6emF0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnSW5zZXJpcmUgdW5hIGRhdGEgdmFsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgRmluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0lsIHBlcmlvZG8gZmluYWxlIGRldmUgZXNzZXJlIHBvc3RlcmlvcmUgYWwgcGVyaW9kbyBpbml6aWFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0dpb3JuaSBkaSBhc3NlbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ09yYXJpIGRlbGxhIFNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBjaSBzb25vIHBlcmlvZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0FnZ2l1bmdpIHBlcmlvZG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmlzdWFsaXp6YXJlIHJlZ2lzdHJvIG9yYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkaSAgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05lc3N1biBkYXRvIHRyb3ZhdG8gcGVyIHF1ZXN0byBnaW9ybm8uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnVWx0aW1pIHByb2dldHRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnR2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnNlcmlyZSBsXCdvcmFyaW8gbGF2b3JhdGl2byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJpbWVudG8gYXZ2ZW51dG8gY29uIHN1Y2Nlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnU2kgw6ggdmVyaWZpY2F0byB1biBlcnJvcmUgbmVsbFwnaW5zZXJpbWVudG8gZGkgZGF0ZSBtdWx0aXBsZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnSW5zZXJpbWVudG8gZGkgZGF0ZSBtdWx0aXBsZSBhdnZlbnV0byBjb24gc3VjY2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdMYSBkYXRhIGluc2VyaXRhIG5vbiDDqCB2YWxpZGEhIEVcJyBzdGF0YSBpbXBvc3RhdGEgbGEgZGF0YSBkaSBvZ2dpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnVWx0aW1pIHByb2dldHRpIHNlbGV6aW9uYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1R1dHRpIGkgcHJvZ2V0dGknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGlzdGljYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdJbXBvc3NpYmlsZSBhZ2dpb3JuYXJlIGxlIGltcG9zdGF6aW9uaSB1dGVudGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvZ2V0dG8gYWdnaXVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdQcm9nZXR0byBhZ2dpb3JuYXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0xvIFVzZXJJRCBub24gw6ggdmFsaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1V0ZW50ZSBhZ2dpb3JuYXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1V0ZW50ZSBpbnNlcml0byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOdW92byB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ1N0YXRvIGRpIHBlcmlvZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0dpb3JuaSBsYXZvcmF0aXZpIGluY29tcGxldGknOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bG8gZGkgbm90aWZpY2EgZGVsbFwnaW50ZXJmYWNjaWEgYWdlbnRlIHBlciB2ZWRlcmUgaWwgbnVtZXJvIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGluY29tcGxldGkgcGVyIGxcJ3V0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWUgcHJlZGVmaW5pdG8gcGVyIGxlIG51b3ZlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSBwcm9nZXR0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxhIGRhdGEgZGkgZmluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGEgZGF0YSBkaSBpbml6aW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsYSBkZXNjcml6aW9uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBnaW9ybmkgZGkgYXNzZW56YS92YWNhbnphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbG8gc3RyYW9yZGluYXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbFwnb3JhcmlvIHNldHRpbWFuYWxlIHN0YW5kYXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsZSBudW92ZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHByb2dldHRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSB1dGVudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBpIHByb2dldHRpIHBlciBpIHF1YWxpIHVuYSBhbm5vdGF6aW9uZSDDqCBvYmJsaWdhdG9yaWEuIFNlIGxhIFJlZ0V4cCBjb2luY2lkZSBpbCBwcm9nZXR0byBzaSDDqCBvYmJsaWdhdGkgYWQgaW5zZXJpcmUgdW5hIGFubm90YXppb25lLiBMYSBSZWdFeHAgdXRpbGl6emEgaWwgcGFyYW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBpbCBtb2R1bG8gc3RhdGlzdGljaGUgcHXDsiBnZW5lcmFyZSBpbmZvcm1hemlvbmkgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ051bWVybyBtYXNzaW1vIGRpIGdpb3JuaSBuZWwgcGFzc2F0byBpbiBjdWkgw6ggcG9zc2liaWxlIGluc2VyaXJlIGxlIHVuaXTDoCBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0bywgbW9zdHJhIHNvbG8gZ2xpIHV0ZW50aSBjaGUgaGFubm8gYWdnaXVudG8gdm9jaSBkaSB0ZW1wbyBsYXZvcm8gYWwgcHJvZ2V0dG8gc2VsZXppb25hdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdGEsIGdsaSBlbGVtZW50aSBhIHRlbmRpbmEgbmVsbGEgc2NoZXJtYXRhIGRpIG1vZGlmaWNhIHNvbm8gc29zdGl0dWl0aSBkYSBwacO5IG1vZGVybmkgY2FtcGkgY29uIGNvbXBsZXRhbWVudG8gYXV0b21hdGljby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRhLCBpbCBmaWx0cm8gcGVyIGkgcHJvZ2V0dGkgcHJlY2VkZW50aSBwdcOyIGVzc2VyZSB1dGlsaXp6YXRvIGFsIHBvc3RvIGRpIGR1ZSBlbGVuY2hpIGRpIHByb2dldHRpICh1bHRpbW8gZSB0dXR0aSkuIFB1w7IgZXNzZXJlIHV0aWxpenphdG8gc29sbyBzZSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gw6ggYWJpbGl0YXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRhLCBpbCBmaWx0cm8gcGVyIGkgcHJvZ2V0dGkgcHJlY2VkZW50aSDDqCBhdHRpdm8gaW4gbW9kbyBwcmVkZWZpbml0byBzZSBjaSBzb25vIHByb2dldHRpIHByZWNlZGVudGkuIFB1w7IgZXNzZXJlIHV0aWxpenphdG8gc29sbyBzZSBFbmFibGVBdXRvQ29tcGxldGlvbiBlIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgc29ubyBhYmlsaXRhdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdG8sIMOoIHBvc3NpYmlsZSBwZXIgZ2xpIHV0ZW50aSBpbnNlcmlyZSBpIGNhbXBpICJwZXJpb2RvIGRpIHZhY2FuemEiLCAicGVyaW9kbyBkaSBtYWxhdHRpYSIgZSAic3RyYW9yZGluYXJpbyIgY29uIGRhdGUgbXVsdGlwbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIGxhdm9yYXRpdmkgaW4gY3VpIMOoIHBvc3NpYmlsZSBpbnNlcmlyZSBsZSB2b2NpIGRpIHVuaXTDoCBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOdW1lcm8gbWFzc2ltbyBkaSBnaW9ybmkgbGF2b3JhdGl2aSBjaGUgbm9uIGhhbm5vIHZvY2kgZGkgdW5pdMOgIGRpIGxhdm9ybyBvbHRyZSBpbCBxdWFsZSB2ZXJyw6AgbW9zdHJhdG8gdW4gYXZ2aXNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0VzcHJlc3Npb25pIHJlZ29sYXJpIHBlciB2aW5jb2xhcmUgbGlzdGEgZGkgYXppb25pIGluIGJhc2UgYWwgcHJvZ2V0dG8gc2VsZXppb25hdG8uIExhIGNoaWF2ZSBjb250aWVuZSB1blwnZXNwcmVzc2lvbmUgcmVnb2xhcmUgcGVyIGlsL2kgcHJvZ2V0dG8vaSwgaWwgY29udGVudXRvIGNvbnRpZW5lIGVzcHJlc3Npb25pIHJlZ29sYXJpIHBlciBsZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ0VzcHJlc3Npb25pIHJlZ29sYXJpIHBlciB2aW5jb2xhcmUgbGlzdGEgZGkgcHJvZ2V0dGkgaW4gYmFzZSBhaSBncnVwcGkgdXRlbnRlLiBMYSBjaGlhdmUgY29udGllbmUgdW5cJ2VzcHJlc3Npb25lIHJlZ29sYXJlIHBlciBpbC9pIHByb2dldHRvL2ksIGlsIGNvbnRlbnV0byBjb250aWVuZSBlc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgbGUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnU3BlY2lmaWNhIHNlIGxlIG9yZSBsYXZvcmF0aXZlIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRlIHNlbnphIG9yYXJpIGRpIGluaXppbyBlIGRpIGZpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1F1ZXN0byBtb2R1bG8gZm9yemEgZ2xpIGluc2VyaW1lbnRpIGluIFRpbWVBY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ1F1ZXN0byBtb2R1bG8gZGkgbm90aWZpY2EgZ2VuZXJhIHVuIGF2dmlzbyBzZSBjaSBzb25vIHRyb3BwaSBnaW9ybmkgbGF2b3JhdGl2aSBub24gY29tcGxldGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdNb2RpZmljYSByZW5kaWNvbnRhemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQYW5vcmFtaWNhIHN1bGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGlzdGljYSBzdWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0ltcG9zdGF6aW9uaSBwZXIgbGEgY29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1Zpc3RhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0RhIHV0aWxpenphcmUgc2UgYWxjdW5lIGF6aW9uaSBoYW5ubyByaWRvdHRvIGxlIG9yZSBsYXZvcmF0aXZlIChwZXIgZXNlbXBpbzogc2Ugc29sbyBsYSBtZXTDoCBkZWwgdGVtcG8gZGkgdmlhZ2dpbyDDqCBwYWdhdG86IENoaWF2ZSA9PiBWaWFnZ2lvOyBDb250ZW51dG8gPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6amFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfmnKzlvZPjgavoqbLlvZPml6Xjga7mg4XloLHjgpLliYrpmaTjgZfjgb7jgZnjgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn44K/44Kk44Og44Os44Kz44O844OJ44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn6Kit5a6a44G4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ+aXpeWIpeODiuODk+OCsuODvOOCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3jga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfmrKHjga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAn44GT44GuIOaXpSDjgavnp7vli5XjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfjgqjjg7Pjg4jjg6rjg7zjga7jgarjgYTml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn5YWo44Gm44Gu5pel44KS6YG45oqeJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfoqbLlvZPjga7ml6Xjga7mrKDli6TnkIbnlLHjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHmmoflj5blvpfkuK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheasoOS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+S7o+S8keS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn5bCR44Gq44GP44Go44KC5LiA5pel44Gv6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn5qyg5Yuk55CG55Sx44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcqIOOBrumgheebruOBr+WFpeWKm+W/hemgiOOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ+mWi+Wni+aZgumWk+OBqOe1guS6huaZgumWk+OAgeOBvuOBn+OBr+acn+mWk+OCkuaMh+WumuOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfjgr/jgrnjgq8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5rOo6YeIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJzjmloflrZfku6XkuIrjga7ms6jph4jjgpLov73liqDjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ+OCueOCv+ODvOODiOaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn77yN77yI44Oe44Kk44OK44K577yJ44Gu5pmC6ZaT44Gv5YWl5Yqb44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfnubDjgorov5TjgZXjgozjgZ/mmYLplpPjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPjgILplovlp4vmmYLliLvjga/liKXjga7plpPpmpTjgajkuIDoh7TjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ+S4jeato+OBquODleOCqeODvOODnuODg+ODiOOBp+OBmSEg5pmC6ZaT44Gu5YWl5Yqb44GvSEg6TU3jga7jg5Xjgqnjg7zjg57jg4Pjg4jjgavlvpPjgaPjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDDjga/ntYLkuobmmYLplpPjgajjgZfjgabjga7jgb/lhaXlipvlj6/og73jgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfkuI3mraPjgarmmYLplpPjgafjgZkhIDHml6Xjga8yNOaZgumWk+OBp+OBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ+e1guS6huaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn57WC5LqG5pmC6ZaT44Gu5YmN44Gr6ZaL5aeL5pmC6ZaT44KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgRW5kemVpdCB3dXJkZSBiZXJlaXRzIGluIGVpbmVtIGFuZGVyZW4gRWludHJhZyBhbmdlZ2ViZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfjgIzmnJ/plpPjgI3jga7oqK3lrprjgYzkuI3mraPjgafjgZnjgILvvIgyNOaZgumWk+S7peS4iuOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iDDjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iO+8je+8iOODnuOCpOODiuOCue+8ieOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ+ihjOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ+ioiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJzHpoIXnm67jga7jgb/pgbjmip7jgafjgY3jgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICfjgZnjgbnjgabjga7jgqLjgqTjg4bjg6DjgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ+OCqOODs+ODiOODquODvOOCkuWJiumZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ+aMv+WFpeOBrueiuuiqjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn55eF5qyg44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn5LyR5pqH44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfku6PkvJHjgavoqK3lrprjgZXjgozjgZ/mnJ/plpPkuK3jgavnqLzlg43jgZfjgb7jgZfjgZ/jgYvvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnMTbmmYLplpPku6XkuIrnqLzlg43jgZfjgb7jgZfjgZ/jgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ+aciOWIpeS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn6LaF6YGO5Yuk5YuZ77yI77ya5pmC6ZaT77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ+i2hemBjuWLpOWLme+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn6LaF6YGO5Yuk5YuZ77yI57Sv6KiI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ+i2hemBjuWLpOWLmeWPr+iDveaui++8iOaZgumWk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfkvJHmmofvvIjml6XmlbDvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn5LyR5pqH5Y+W5b6X5pel5pWw77yI5LuK5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfkvJHmmoflj5blvpfml6XmlbDvvIjntK/oqIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn5LyR5pqH5Y+W5b6X5q6L5pel5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn55eF5qyg77yI5pel5pWw77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn55eF5qyg5pel5pWw77yI5LuK5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ+eXheasoOaXpeaVsO+8iOe0r+ioiO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ+WJjeaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn5qyh5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfmm5zml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ+eovOWDjeaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfnt4/nqLzlg43mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn44Om44O844K244Gu44OX44Ot44K444Kn44Kv44OI5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ+aZgumWk++8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn5pmC6ZaT77yI6YCa566X77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn5ZCI6KiIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ+aZgumWk+S8muioiOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn5pyI5Yil44OK44OT44Ky44O844K344On44OzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfml6Xku5jjgavnp7vli5XjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn44Om44O844K244O744Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfmnIjlkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfpgJrnrpflkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfku6PkvJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfkvJHmmocnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ+eXheasoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfkvJHml6Xmrovml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn44OX44Ot44K444Kn44Kv44OI44O744Os44Od44O844OIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjg7vjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn5aCx5ZGK44Gu5qaC6KaB44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn5pys44OX44Ot44K444Kn44Kv44OI44Gu44Ki44Kv44OG44Kj44OW44Om44O844K244O844Gu44G/6KGo56S644GX44Gm44GE44G+44GZ44CB5aSJ5pu044GZ44KL44Gr44Gv6Kit5a6a44KS5pu05paw44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ+OBmeOBueOBpuOBruOCv+OCpOODoOOCouOCq+OCpuODs+ODiOODpuODvOOCtuODvOOCkuihqOekuuOBl+OBpuOBhOOBvuOBmeOAgeWkieabtOOBmeOCi+OBq+OBr+ioreWumuOCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfmmYLplpPkvJroqIgg44OX44Ot44K444Kn44Kv44OI6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn6Kit5a6a44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5ZCM5ZCN44Gu44OX44Ot44K444Kn44Kv44OI44GM5a2Y5Zyo44GX44G+44GZ44CC5ZCN56ew44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn5paw6KaP44K/44K544Kv44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAn5paw6KaP44Om44O844K2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7ntZ7jgorovrzjgb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ+OCv+OCueOCr+OBrue1nuOCiui+vOOBvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAn44Om44O844K244Gu57We44KK6L6844G/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAn5pmC6ZaT44Gv5YmK6Zmk44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfjgr/jgrnjgq/kuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfmlrDopo/jgr/jgrnjgq/jga7ov73liqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn44K/44K544Kv6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICflkIzlkI3jga7jgr/jgrnjgq/jgYzlrZjlnKjjgZfjgb7jgZnjgILlkI3np7DjgpLlpInmm7TjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn44Om44O844K25LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAn5paw6KaP44Om44O844K26Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ+ODpuODvOOCtuioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ+OCs+ODoeODs+ODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAn6LaF6YGO5Yuk5YuZ44KS6KGo56S6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7mlrDopo/ov73liqDjgpLoqLHlj6/jgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn6ZaL5aeL54K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfntYLkuobngrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keaahyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+aZgumWkyAvIOmAsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om/6KqN5riI44Gu6LaF6YGO5Yuk5YuZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfjgrnjgr/jg7zjg4jml6Xku5gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn5q2j44GX44GE5pel5LuY44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57WC5LqG5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn57WC5LqG54K544Gu5YmN44Gr6ZaL5aeL54K544KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfkvJHmmofml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn6YCx44GC44Gf44KK44Gu5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5q6L5qWt5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmnJ/plpPjgYzmnKroqK3lrprjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5pyf6ZaT44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODu+ODrOOCs+ODvOODieOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+S4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfoqbLlvZPjgZnjgovjg4fjg7zjgr/jgYzjgYLjgorjgb7jgZvjgpPjgIInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn5bel5pWw44KS5oy/5YWl44Gn44GN44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfliY3jg5fjg63jgrjjgqfjgq/jg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn5LiN5q2j44Gq5pmC6ZaT44Gn44GZISAx5pel44GvMjTmmYLplpPjgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ+W3peaVsOOCkuWJiumZpOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+acn+mWk+WkluOBp+OBmeOBruOBp+OAgeaMv+WFpeOBmeOCi+S6i+OBr+OBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn+OAguOCguOBhuS4gOW6pighKeaXpeS7mOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ+acquWujOS6huOBruWPr+WLleaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICfli6Tli5nlrp/nuL7jgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44KS5YWl5Yqb5Lit44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44Gr44KP44Gf44KL56i85YON5a6f57i+44Gu5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+S4jeato+OBp+OBmSAhIOaXpeS7mOOBr+acrOaXpeOBq+WkieabtOOBleOCjOOBvuOBl+OBnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAn5YmN5Zue6YG45oqe44GV44KM44Gf44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ+WFqOODl+ODreOCuOOCp+OCr+ODiCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSZXBvcnRpbmdQcm9qZWN0OiDjg5fjg63jgrjjgqfjgq/jg4hJROOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOCkuWgseWRiuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfloLHlkYrjgZnjgosnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn44Om44O844K244O86Kit5a6a44KS5pu05paw44Gn44GN44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAn44OX44Ot44K444Kn44Kv44OI44KS6L+95Yqg44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICfjgr/jgrnjgq/jgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ+OCv+OCueOCr+OCkuabtOaWsOOBl+OBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdVc2VySUQg44GM54Sh5Yq544Gn44GZ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+ODpuODvOOCtuODvOODh+ODvOOCv+OBjOaMv+WFpeOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+acn+mWk+OCkui/veWKoOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAn44Om44O844K244O844KS5pu05paw44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAn44Om44O844K244O844KS6L+95Yqg44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAn5paw6KaP44Om44O844K244O8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICfmnJ/plpPjga7nirbmhYsnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ+azqOebru+8ge+8miAlcyDjga7lhaXlipvjgYzlv4XopoHjgafjgZnjgIInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICfmnKrlrozkuobjga7lj6/li5Xml6UnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfjg6bjg7zjgrbjga7kuI3lrozlhajjgarnqLzlg43ml6XmlbDjgpLjgqvjgqbjg7Pjg4jjgZfpgJrnn6XjgZnjgovjgqjjg7zjgrjjgqfjg7Pjg4jjg7vjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfmlrDopo/mk43kvZzjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7lkI3np7AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu5ZCN56ewJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn44CM57WC5LqG5pel44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICfjgIzplovlp4vml6XjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfjgIzoqqzmmI7mlofjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ+OAjOS8keaah+OAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ+OAjOi2hemBjuWLpOWLmeOAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn6YCx44GC44Gf44KK5Z+65pys56i85YON5pmC6ZaT44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfmlrDopo/mk43kvZzjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfmlrDopo/jg5fjg63jgrjjgqfjgq/jg4jjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfmlrDopo/jg6bjg7zjgrbjgavlr77jgZnjgovjg4fjg5Xjgqnjg6vjg4jjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAn44CM5rOo6YeI44CN44Ko44Oz44OI44Oq44O844KS5b+F6KaB44Go44GZ44KL6aCF55uu44KS5a6a576p44GX44G+44GZ44CCIOOCguOBl+ODl+ODreOCuOOCp+OCr+ODiOWQjeOBjOOBk+OBk+OBp+ioreWumuOBl+OBn+ato+imj+ihqOePvuOBq+ODnuODg+ODgeOBmeOCi+WgtOWQiOOAgeOAjOazqOmHiO+9neOBr+W/hemgiOmgheebruOBqOOBquOCiuOBvuOBmeOAguKAu+ato+imj+ihqOePvuOBq+OBr1NNWOODkeODqeODoeODvOOCv+OCkuS9v+OBhOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAn57Wx6KiI44Oi44K444Ol44O844Or44GM44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw5oOF5aCx44KS55Sf5oiQ44GZ44KL44GL6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ+aZgumWk+S8muioiOOBruioreWumuOCkue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ+OCv+OCpOODoOODrOOCs+ODvOODieOCkue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICfkvZXml6XliY3jgYvjgonjg6/jg7zjgq3jg7PjgrDjg7vjg6bjg4vjg4Pjg4jjga7mlrDopo/nmbvpjLLjgYzlj6/og73jgafjgYLjgovjgYvjga7oqK3lrprjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAn5pyJ5Yq55pmC44Gr44Gv44CB6Kmy5b2T44Gu44OX44Ot44K444Kn44Kv44OI44Gr56i85YON5pmC6ZaT44KS5oqV5YWl44GX44Gm44GE44KL44Om44O844K244O844Gu44G/6KGo56S644GV44KM44G+44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICfmnInlirnmmYLjgavjga/jgIHnt6jpm4bnlLvpnaLjga7jg4njg63jg4Pjg5fjg4Djgqbjg7Pjgqjjg6zjg6Hjg7Pjg4jjga/oh6rli5Xjg5XjgqPjg7zjg6vjg4njgavnva7jgY3mj5vjgYjjgonjgozjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn5pyJ5Yq55pmC44Gr44Gv5Lul5YmN44Gu44OX44Ot44K444Kn44Kv44OI44OV44Kj44Or44K/44O844KS6YG45oqe44GZ44KL44GT44Go44GM5Y+v6IO944Gn44GZKOmAmuW4uOOBr+WJjeWbnuOBiuOCiOOBs+OBmeOBueOBpinjgILjgZPjga7poIXnm67jga8gVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIOOBjOacieWKueOBq+OBquOBo+OBpuOBhOOCi+aZguOBruOBv+WIqeeUqOWPr+iDvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAn5pyJ5Yq55pmC44Gr44Gv44CM5Lul5YmN44Gu44OX44Ot44K444Kn44Kv44OI44CN44GM5a2Y5Zyo44GZ44KL5pmC44Gv44CB5Lul5YmN44Gu44OX44Ot44K444Kn44Kv44OI44OV44Kj44Or44K/44O844GM44OH44OV44Kp44Or44OI5YCk44Gr44Gq44KK44G+44GZ44CC44GT44Gu6aCF55uu44GvIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIg44GM5pyJ5Yq544Gr44Gq44Gj44Gm44GE44KL5pmC44Gu44G/5Yip55So5Y+v6IO9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICfmnInlirnjgavjgZnjgozjgbDkuIDlm57jga7nt6jpm4bjgafjgIHopIfmlbDjga7ml6XjgavmuKHjgorjgIzkvJHmmofjgI3jgIznl4XmrKDjgI3jgIzku6PkvJHjgI3jgYzpgbjmip7jgafjgY3jgb7jgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcx44Gk5Lul5LiK44Gu44Ov44O844Kt44Oz44Kw44O744Om44OL44OD44OI44KS6Kit5a6a44GZ44G544GN5pyA5aSn44Gu56i85YON5pel5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICforablkYrjgYzooajnpLrjgZXjgozjgovjgZPjgajjgarjgY/jgqjjg7Pjg4jjg6rlh7rmnaXjgovjgIHllrbmpa3ml6Xjga7mnIDlpKfml6XmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn5qaC6KaBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAn44OX44Ot44K444Kn44Kv44OI5Yil5pmC6ZaT5Lya6KiI44Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICfjg5fjg63jgrjjgqfjgq/jg4jjgavjgojjgaPjgabooYzli5Xjg6rjgrnjg4jjgpLntZ7jgorovrzjgoDjgZ/jgoHjga7mraPopo/ooajnj77jgILjgIzpjbXjgI3jgafjga/jg5fjg63jgrjjgqfjgq/jg4jjgavlr77jgZnjgovmraPopo/ooajnj77jgpLjgIHjgIzlhoXlrrnjgI3jgafjga9g6KGM5YuVYOOBq+WvvuOBmeOCi+ato+imj+ihqOePvuOCkuaMh+WumuOBmeOCi+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICfjg6bjg7zjgrbjgrDjg6vjg7zjg5fjgavjgojjgaPjgabjg5fjg63jgrjjgqfjgq/jg4jjg6rjgrnjg4jjgpLntZ7jgorovrzjgoDjgZ/jgoHjga7mraPopo/ooajnj77jgILjgIzpjbXjgI3jgafjga/jg5fjg63jgrjjgqfjgq/jg4jjgavlr77jgZnjgovmraPopo/ooajnj77jgpLjgIHjgIzlhoXlrrnjgI3jgafjga/jgqvjg7Pjg57ljLrliIfjgorjga7jg6bjg7zjgrbjg6rjgrnjg4jjgpLmjIflrprjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ+alreWLmeaZgumWk+OCkuOAjOmWi+Wni+aZgumWk+OAjeOBqOOAjOe1guS6huaZgumWk+OAjeOBruaMh+WumuODiuOCt+OBp+aWsOimj+eZu+mMsuOBp+OBjeOCi+OBi+OBqeOBhuOBi+aMh+WumuOBmeOCi+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdUaW1lQWNjb3VudGluZ+ODouOCuOODpeODvOODq+OBqOWQjOetieOBrumgheebruOBjOioreWumuW/hemgiOOBqOOBquOCiuOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ+OBguOBvuOCiuOBq+OCguWkmuOBj+OBruS4jeWujOWFqOOBqueovOWDjeaXpeOBjOOBguOCi+WgtOWQiOOAgeOBk+OBrumAmuefpeODouOCuOODpeODvOODq+OBr+itpuWRiuOCkuS4juOBiOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44KS57eo6ZuG44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7mpoLopoEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7loLHlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOBruioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrAg44OT44Ol44O8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICfmmYLplpPkvJroqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAn5qWt5YuZ5LiK44Gu6KGM5YuV44Gr44GK44GE44Gm44CB56i85YON5pmC6ZaT44Go44GX44Gm6KiI5LiK44GZ44KL5pmC6ZaT44KS6Kq/5pW044GZ44KL5b+F6KaB44GM44GC44KL5aC05ZCI44Gr44CB44GT44Gu6Kit5a6a44KS5L2/55So44GX44G+44GZ44CC77yI5L6L77ya44CM56e75YuV5pmC6ZaT44CN44GuNTAl44Gu44G/5Yuk5YuZ5pmC6ZaT55u45b2T44Go44GZ44KL5aC05ZCI44CM6Y2144CN44GrYGpvdXJuZXlg44CB44CM5YaF5a6544CN44GrYDUwYOOBqOioreWumiknOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bXNfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdBZGFrYWggYW5kYSBwYXN0aSBpbmdpbiBtZW5naGFwdXNrYW4gUGVyYWthdW5hbiBNYXNhIGhhcmkgaW5pPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdTdW50aW5nIFJla29kIE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdQZXJnaSBrZSB0ZXRhcGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmlnYXNpIFRhcmlraCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdIYXJpIHNlYmVsdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdIYXJpIHNldGVydXNueWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnUGVyZ2kga2UgdGFyaWtoIGluaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0hhcmkgdGFucGEgcGVueWVydGFhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdQaWxpaCBrZXNlbXVhIGhhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ0tlbWFzdWthbiBiZXNhci1iZXNhcmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUGlsaWggc2ViYWIga2V0aWRha2hhZGlyYW4gYW5kYSB1bnR1ayBoYXJpLWhhcmkgeWFuZyBkaXBpbGloJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnQmVyY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQ3V0aSBzYWtpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0JlcmN1dGkgbGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU2lsYSBwaWxpaCBzZWt1cmFuZy1rdXJhbmdueWEgc2VoYXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1NpbGEgcGlsaWggc2ViYWIga2V0aWRha2hhZGlyYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdLZW1hc3VrYW4gYmVzYXItYmVzYXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ01lZGFuIHlhbmcgZGlwZXJsdWthbiBkaXRhbmRhaSBkZW5nYW4gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0FuZGEgcGVybHUgbWVuZ2lzaSBwZXJtdWxhYW4gZGFuIGFraGlyIG1hc2EgYXRhdSB0ZW1wb2ggbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnS29tZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnU2lsYSB0YW1iYWgga29tZW4gZGVuZ2FuIGxlYmloIGRhcmlwYWRhIDgga2FyYWt0ZXIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdXYWt0dSBNdWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdXYWt0dSBuZWdhdGlmIHRpZGFrIGRpYmVuYXJrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQZW5ndWxhbmdhbiBqYW0gYWRhbGFoIHRpZGFrIGRpYmVuYXJrYW4uIE1hc2EgbXVsYSBwYWRhbiBkZW5nYW4gc2VsYW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXQgdGlkYWsgc2FoISBTaWxhIG1hc3Vra2FuIG1hc2EgZGVuZ2FuIGZvcm1hdCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgaGFueWEgZGliZW5hcmthbiBzZWJhZ2FpIG1hc2EgYWtoaXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTWFzYSB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ01hc2EgQWtoaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ01hc2EgdGFtYXQgbWVzdGkgc2VsZXBhcyBtYXNhIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIGFraGlyIHBhZGFuIGRlbmdhbiBzZWxhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBvaCB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1RlbXBvaCBzYWggbWVzdGkgbGViaWggYmVzYXIgZGFyaXBhZGEgc2lmYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdUZW1wb2ggdGlkYWsgc2FoISBUZW1wb2ggbmVnYXRpZiBhZGFsYWggdGlkYWsgZGliZW5hcmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUYW1iYWggc2F0dSBiYXJpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ0p1bWxhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0FuZGEgaGFueWEgYm9sZWggcGlsaWggc2F0dSBlbGVtZW4ga290YWsgc2VtYWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnVHVuanVrIHNlbXVhIGJ1dGlyYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1BhZGFtIEtlbWFzdWthbiBNYXNhIFBlcmFrYXVuYW4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnU2Foa2FuIGtlbWFzdWthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpIHNha2l0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgc2VtYXNhIGFuZGEgYmVyY3V0aT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgc2VtYXNhIGFuZGEgYmVyY3V0aSBsZWJpaCBtYXNhPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdBZGFrYWggYW5kYSBwYXN0aSBiYWhhd2EgYW5kYSBiZWtlcmphIGxlYmloIGRhcmlwYWRhIDE2IGphbT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ0dhbWJhcmFuIGJ1bGFuYW4gbWFzYSBtZWxhcG9ya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdMZWJpaCBtYXNhIChKYW0pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0tlcmphIGxlYmloIG1hc2EgKGJ1bGFuIGluaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ0tlcmphIGxlYmloIG1hc2EgKGp1bWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQmFraSBjdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnQmVyY3V0aSAoSGFyaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQ3V0aSBkaWFtYmlsIChidWxhbiBpbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdDdXRpIGRpYW1iaWwgKGp1bWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnQmFraSBjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQ3V0aSBTYWtpdCAoSGFyaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdDdXRpIHNha2l0IGRpYW1iaWwgKGJ1bGFuIGluaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQ3V0aSBzYWtpdCBkaWFtYmlsIChqdW1sYWgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnQnVsYW4gc2ViZWx1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnQnVsYW4gYmVyaWt1dG55YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnSGFyaSBtaW5nZ3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0phbSBiZWtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0p1bWxhaCBqYW0gYmVrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdHYW1iYXJhbiBwcm9qZWsgcGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSmFtIChidWxhbmFuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSmFtIChIYXlhdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdKdW1sYWgga2VzZWx1cnVoYW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnTWFzYSBtZWxhcG9ya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2FzaSBidWxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnUGVyZ2kga2UgdGFyaWtoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0xhcG9yYW4gcGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0p1bWxhaCBidWxhbmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnSnVtbGFoIGhheWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQ3V0aSBsZWJpaCBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnQmVyY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnQ3V0aSBzYWtpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdCYWtpIGN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnTGFwb3JhbiBwcm9qZWsnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ0xhcG9yYW4gcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ1BlcmdpIGtlIHRpbmphdWFuIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdQYWRhIG1hc2EgaW5pIGhhbnlhIHBlbmdndW5hIGFrdGlmIGRhbGFtIHByb2playBpbmkgYWthbiBkaXR1bmp1a2thbi4gVW50dWsgbWVuZ3ViYWggc2lmYXQgaW5pLCBzaWxhIGtlbWFzIGtpbmkgdGV0YXBhbjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnUGFkYSBtYXNhIGluaSBrZXNlbXVhIHBlbmdndW5hIHBlcmFrYXVuYW4gbWFzYSBkaXR1bmp1a2thbi4gVW50dWsgbWVuZ3ViYWggdGluZ2thaCBsYWt1IGluaSwgc2lsYSBrZW1hcyBraW5pIHRldGFwYW46JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgVGV0YXBhbiBQcm9qZWsgUGVyYWthdW5hbiBNYXNhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1RhbWJhaCBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdQZXJnaSBrZSBnYW1iYXJhbiBrZXNlbHVydWhhbiB0ZXRhcGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnVGFtYmFoIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdTdW50aW5nIHRldGFwYW4gcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdTdWRhaCBhZGEgcHJvamVrIGRlbmdhbiBuYW1hIGluaS4gU2lsYSBwaWxpaCB5YW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnU3VudGluZyBUZXRhcGFuIFBlcmFrYXVuYW4gTWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ1RhbWJhaCB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ1BlbmdndW5hIGJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnVGFwaXMgYmFnaSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ1RhcGlzIGJhZ2kgdHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ1RhcGlzIGJhZ2kgcGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdUZW1wb2ggbWFzYSB0aWRhayBib2xlaCBkaWhhcHVza2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdTZW5hcmFpIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdTZW5hcmFpIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVGFtYmFoIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgdGV0YXBhbiB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnU3VkYWggYWRhIHR1Z2FzIGRlbmdhbiBuYW1hIGluaS4gU2lsYSBwaWxpaCB5YW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ1NlbmFyYWkgUGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdUZXRhcGFuIFBlbmdndW5hIEJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdTdW50aW5nIFRldGFwYW4gUGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdLb21lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVHVuanVrIGxlYmloYW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnQmVuYXJrYW4gY2lwdGFhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnVGVtcG9oIE11bGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1RlbXBvaCB0YW1hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnSGFyaSBCZXJjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSmFtIFNlbWluZ2d1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdMZWJpaGFuIG1hc2EgZGliZW5hcmthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnVGFyaWtoIE11bGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnU2lsYSBtYXN1a2thbiB0YXJpa2ggeWFuZyBzYWguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnVGFyaWtoIFRhbWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnVGVtcG9oIHRhbWF0IG1lc3RpbGFoIHNlbGVwYXMgdGVtcG9oIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdIYXJpIGN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSmFtIG1pbmdndWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnTGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnVGlhZGEgdGVtcG9oIG1hc2EgZGlqdW1wYWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RhbWJhaCB0ZW1wb2ggbWFzYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdMaWhhdCBSZWtvZCBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUGFuZGFuZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ1RpYWRhIGRhdGEgZGlqdW1wYWkgcGFkYSBoYXJpIGluaS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnVGlkYWsgYm9sZWggbWVtYXN1a2thbiBVbml0IEtlcmphISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnUHJvamVrIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbnlpbXBhbiB0ZXRhcGFuLXRldGFwYW4sIGtlcmFuYSBzZWhhcmkgaGFueWEgYWRhIDI0IGphbSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWJ1YW5nIFVuaXQgS2VyamEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnVGFyaWtoIGluaSB0ZWxhaCB0ZXJsZWJpaCBoYWQsIHRldGFwaSBhbmRhIG1hc2loIGJlbHVtIG1lbWFzdWtrYW4gaGFyaSBpbmkgbGFnaSwgamFkaSBhbmRhIG1lbmRhcGF0IHNhdHUoISkgcGVsdWFuZyB1bnR1ayBtYXN1a2thbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0hhcmkgQmVrZXJqYSBUaWRhayBMZW5na2FwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1NpbGEgbWFzdWtrYW4gd2FrdHUga2VyamEgYW5kYSEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0JlcmpheWEgZGltYXN1a2thbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1JhbGF0IHNlbWFzYSBtZW1hc3Vra2FuIGJlYmVyYXBhIHRhcmlraCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnQmVyamF5YSBkaW1hc3Vra2FuIHBlbnllcnRhYW4gdW50dWsgYmViZXJhcGEgdGFyaWtoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnVGFyaWtoIHlhbmcgZGltYXN1a2thbiB0aWRhayBzYWghIFRhcmlraCB0ZWxhaCBkaXR1a2FyIGtlcGFkYSBoYXJpIGluaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Byb2playBEaXBpbGloIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1NlbXVhIFByb2playc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdNZWxhcG9ya2FuUHJvamVrOiBQZXJsdWthbiBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdNZWxhcG9ya2FuIFByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdNZWxhcG9ya2FuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ1RpZGFrIGJvbGVoIHVudHVrIGtlbWFza2luaSB0ZXRhcGFuLXRldGFwYW4gcGVuZ2d1bmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ1R1Z2FzYW4gdGVsYWggZGl0YW1iYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdUdWdhc2FuIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdJRCBQZW5nZ3VuYSB0aWRhayBzYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWFzdWtrYW4gZGF0YSBwZW5nZ3VuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdUaWRhayBib2xlaCBtZW5hbWJhaCB0ZW1wb2ggbWFzYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1BlbmdndW5hIEJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIFRlbXBvaCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnUGFuZGFuZ2FuOiBQZXJsdSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdIYXJpIGJla2VyamEgdGlkYWsgbGVuZ2thcCc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHBlbWJlcml0YWh1YW4gYW50YXJhIG11a2EgZWplbiB1bnR1ayBtZWxpaGF0IGJpbGFuZ2FuIGhhcmkgYmVrZXJqYSB5YW5nIHRpZGFrIGxlbmdrYXAgdW50dWsgcGVuZ2d1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTmFtYSBsYWxhaSB1bnR1ayB0aW5kYWthbiBiYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOYW1hIGxhbGFpIHVudHVrIHByb2playBiYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgdGFyaWtoIGFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayB0YXJpa2ggbXVsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdUZXRhcGFuIGxhbGFpIHVudHVrIGdhbWJhcmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBoYXJpIGN1dGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBsZWJpaCBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBqYW0gbWluZ2d1YW4gcGlhd2FpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayB0aW5kYWthbiBiYWhhcnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBwcm9qZWsgYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgcGVuZ2d1bmEgYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcHJvamVrLXByb2playB5YW5nIG1hbmEga29tZW4gZGlwZXJsdWthbi4gSmlrYSBVbmdrYXBhbkJpYXNhIHBhZGFuIGRhbGFtIHByb2playBpbmksIGFuZGEgcGVybHUgbWVtYXN1a2thbiBrb21lbiBqdWdhLiBVbmdrYXBhbkJpYXNhIG1lbmdndW5ha2FuIHBhcmFtZXRlciBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGppa2EgbW9kdWwgc3RhdGlzdGlrIGJvbGVoIG1lbmphbmEgbWFzYSBtYWtsdW1hdCBwZXJha2F1bmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdTdW50aW5nIHRldGFwYW4tdGV0YXBhbiBwZXJha2F1bmFuIG1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnU3VudGluZyByZWtvZCBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdVbnR1ayBiZXJhcGEgaGFyaSB5YW5nIGxhbHUsIGFuZGEgYm9sZWggbWVtYXN1a2thbiB1bml0IGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIGhhbnlhIHBlbmdndW5hIHlhbmcgdGVsYWggZGl0YW1iYWggbWFzYSBrZXJqYSB1bnR1ayBwcm9qZWsgeWFuZyBkaXBpbGloIGFrYW4gZGl0dW5qdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIHVuc3VyLXVuc3VyIGtvdGFrIHBpbGloYW4gZGFsYW0gc2tyaW4gc3VudGluZyBkaXR1a2FyIGtlcGFkYSBiaWRhbmcgcGVueWlhcGFuIHNlY2FyYSBhdXRvbWF0aWsgbW9kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0ppa2EgZGlha3RpZmthbiwgcGVuYXBpcyBiYWdpIHByb2play1wcm9qZWsgc2ViZWx1bSBib2xlaCBkaWd1bmFrYW4gc2VsYWluIGR1YSBzZW5hcmFpIHByb2play1wcm9qZWsgKHRlcmFraGlyIGRhbiBzZW11YW55YSkuIElhIGJvbGVoIGRpZ3VuYWthbiBoYW55YSBqaWthIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBkaWRheWFrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdKaWthIGRpYWt0aWZrYW4sIHBlbmFwaXMgYmFnaSBwcm9qZWstcHJvamVrIHNlYmVsdW0gYWRhbGFoIGFrdGlmIHNlY2FyYSBsYWxhaSBzZWtpcmFueWEgdGVyZGFwYXQgcHJvamVrIGxlcGFzLiBJYSBib2xlaCBkaWd1bmFrYW4gaGFueWEgamlrYSBFbmFibGVBdXRvQ29tcGxldGlvbiBkYW4gVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBkaWRheWFrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIHBlbmdndW5hIGRpYmVuYXJrYW4gdW50dWsgbWVtYXN1a2kgInNlZGFuZyBjdXRpIHJlaGF0ICIsICJzZWRhbmcgY3V0aSBzYWtpdCAiIGRhbiAic2VkYW5nIGN1dGkgbGViaWggbWFzYSIgcGFkYSBiZWJlcmFwYSB0YXJpa2ggc2VrYWxpZ3VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIGhhcmkgYmVrZXJqYSBzZWxlcGFzIHVuaXQga2VyamEgcGVybHUgZGltYXN1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIGhhcmkgYmVrZXJqYSB0YW5wYSBrZW1hc3VrYW4gdW5pdCBiZWtlcmphIHNlbGVwYXMgZGkgbWFuYSBhbWFyYW4gYWthbiBkaXR1bmp1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnUGFuZGFuZ2FuIGtlc2VsdXJ1aGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ21lbGFwb3JrYW4gbWFzYSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1VuZ2thcGFuIGJpYXNhIHVudHVrIG1lbmdla2FuZyBzZW5hcmFpIHRpbmRha2FuIG1lbmdpa3V0IHByb2playB5YW5nIGRpcGlsaWguIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSB1bmdrYXBhbiBiaWFzYSB1bnR1ayB0aW5kYWthbiAodGluZGFrYW4tdGluZGFrYW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdVbmdrYXBhbiBiaWFzYSB1bnR1ayBtZW5nZWthbmcgc2VuYXJhaSBwcm9qZWsgbWVuZ2lrdXQga3VtcHVsYW4gcGVuZ2d1bmEuIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSBrb21hIHNlbmFyYWkga3VtcHVsYW4gZGlwaXNhaGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSB3YWt0dSBiZWtlcmphIGJvbGVoIGRpbWFzdWtrYW4gdGFucGEgcGVybXVsYWFuIGRhbiBha2hpciBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdNb2R1bCBpbmkgbWVtYWtzYSBrZW1hc3VrYW4gZGFsYW0gUGVyYWthdW5hblNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNb2R1bCBwZW1iZXJpdGFodWFuIGluaSBtZW1iZXJpIGFtYXJhbiBqaWthIHRlcmRhcGF0IHRlcmxhbHUgYmFueWFrIGhhcmkgYmVrZXJqYSB0aWRhayBsZW5na2FwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnU3VudGluZyBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0dhbWJhcmFuIGtlc2VsdXJ1aGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ01lbGFwb3IgcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdUZXRhcGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQYXBhcmFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnUGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1VudHVrIGRpZ3VuYWthbiBqaWthIGJlYmVyYXBhIHRpbmRha2FuIG1lbmd1cmFuZ2thbiB3YWt0dSBrZXJqYSAoY29udG9obnlhLCBqaWthIGhhbnlhIHNlcGFydWggZGFyaXBhZGEgbWFzYSBwZXJqYWxhbmFuIGRpYmF5YXIgS3VuY2kgPT4gcGVyamFsYW5hbjsgS2FuZHVuZ2FuID0gPiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bmJfTk9fVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWaWwgZHUgdmlya2VsaWcgZmplcm5lIHRpZHNyZWdpc3RyZXJpbmdlbiBmb3IgZGVubmUgZGFnZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJbm5zdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmlnZXJpbmcgbWVsbG9tIGRhdG9lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ05lc3RlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdHw6UgdGlsIGRlbm5lIGRhdG9lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RhZ2VyIHV0ZW4gdGlkcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1ZlbGcgYWxsZSBkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzc2VyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdWZW5ubGlnc3QgdmVsZyDDpXJzYWtlbiB0aWwgZGl0dCBmcmF2w6ZyIHDDpSBkZSB2YWxndGUgZGFnZW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1N5a2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXZzcGFzc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdWZW5ubGlnc3QgdmVsZyBtaW5zdCBlbiBkYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnVmVubmxpZ3N0IHZlbGcgZnJhdsOmcnPDpXJzYWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdNYXNzZXJlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ09ibGlnYXRvcmlza2UgZmVsdCBlciBtYXJrZXJ0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgbcOlIGZ5bGxlIHV0IHN0YXJ0LSBvZyBzbHV0dGlkc3B1bmt0LCBlbGxlciBwZXJpb2RlbGVuZ2Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdBa3Rpdml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTWVya25hZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIG1lcmtuYWQgcMOlIG1pbnN0IDggdGVnbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ1N0YXJ0dGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdGl2IHRpZCBnb2R0YXMgaWtrZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ092ZXJsYXBwZW5kZSBwZXJpb2RlciBpa2tlIHRpbGxhdHQuIFN0YXJ0dGlkZW4gZXIgaSBlbiBhbm5lbiBwZXJpb2RlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnRmVpbCBmb3JtYXQhIFZlbm5saWdzdCBvcHBnaSBldHQgdGlkc3B1bmt0IGkgZm9ybWF0ZXQgVFQ6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGdvZHRhcyBiYXJlIHNvbSBzbHV0dGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0ZlaWxha3RpZyB0aWQhIEV0IGTDuGduIGhhciBrdW4gMjQgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnU2x1dHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnU2x1dHRpZCBtw6UgdsOmcmUgc2VuZXJlIGVubiBzdGFydHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdPdmVybGFwcGVuZGUgcGVyaW9kZXIgaWtrZSB0aWxsYXR0LiBTbHV0dGlkZW4gZXIgaSBlbiBhbm5lbiBwZXJpb2RlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnRmVpbGFrdGlnIHRpZCEgRXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFbiB0aWRzcGVyaW9kZSBtw6UgdsOmcmUgc3TDuHJyZSBlbm4gbnVsbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ0ZlaWxha3RpZCB0aWQuICBOZWdhdGl2IHRpZCBnb2R0YXMgaWtrZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdMZWdnIHRpbCBlbiByYWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnVG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdEdSBrYW4gYmFyZSBnasO4cmUgZW4gYXZrcnlzbmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdWaXMgYWxsZSByZWdpc3RyZXJpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnU2xldHQgZW4gdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3JlZnQgaW5uc2V0dGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IHZhciBzeWtlbWVsZHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IGhhZGRlIGZlcmllPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IGF2c3Bhc3NlcnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IGFyYmVpZGV0IGkgZmxlcmUgZW5uIDE2IHRpbWVyPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTcOlbmVkc292ZXJzaWt0IHJlZ2lzdHJlcnQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdPdmVydGlkICh0aW1lciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnT3ZlcnRpZCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnT3ZlcnRpZCAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdHamVuc3TDpWVuZGUgYXZzcGFzc2VyaW5nc3RpbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0ZlcmllIChkYWdlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWUgdGF0dCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRmVyaWUgdGF0dCAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdHamVuc3TDpWVuZGUgZmVyaWVkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1N5a2VmcmF2w6ZyIChkYWdlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdTeWtlZnJhdsOmciAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdTeWtlZnJhdsOmciAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0ZvcnJpZ2UgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOZXN0ZSBtw6VuZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1VrZWRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnQXJiZWlkZXQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1RvdGFsIGFyYmVpZGV0IHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdCcnVrZXJzIHByb3NqZWt0b3ZlcnNpa3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnVGltZXIgKG3DpW5lZGxpZyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1RpbWVyICh0b3RhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnU2x1dHRzdW0nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVGlkcmFwcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2VyaW5nIG1lbGxvbSBtw6VuZWRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnR8OlIHRpbCBkYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0JydWtlcnJhcHBvcnRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnTcOlbmVkc3N1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RvdGFsc3VtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXZzcGFzc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1N5a2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0dqZW5zdMOlZW5kZSBmZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9zamVrdHJhcHBvcnRlcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvc2pla3RyYXBwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0fDpSB0aWwgcmFwcG9ydGVyaW5nc292ZXJzaWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnRm9yIHRpZGVuIHZpc2VzIGJhcmUgZGUgYWt0aXZlIGJydWtlcm5lIGkgZGV0dGUgcHJvc2pla3RldC4gRm9yIMOlIGVuZHJlIGRldHRlIG3DpSBmw7hsZ2VuZGUgaW5uc3RpbGxpbmcgZW5kcmVzOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdGb3IgdGlkZW4gdmlzZXMgYWxsZSB0aWRzcmVnaXN0cmVyaW5nc2JydWtlcmUuIEZvciDDpSBlbmRyZSBkZXR0ZSBtw6UgZsO4bGdlbmRlIGlubnN0aWxsaW5nIGVuZHJlczonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nc3Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdHw6UgdGlsIG92ZXJzaWt0ZW4gb3ZlciBpbm5zdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciBwcm9zamVrdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXQgZmlubmVzIGFsbGVyZWRlIGV0IHByb3NqZWt0IG1lZCBkZXR0ZSBuYXZuZXQuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnTGVnZyB0aWwgZW4gYWt0aXZpdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTnkgYnJ1a2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0ZXIgZm9yIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRlciBmb3IgYWt0aXZpdGV0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRlciBmb3IgYnJ1a2VyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ1RpZHNwZXJpb2RlciBrYW4gaWtrZSBzbGV0dGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9zamVrdGxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0FrdGl2aXRldHNsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0xlZ2cgdGlsIGVuIGFrdGl2aXRldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdFbmRyZSBpbnN0aWxsaW5nZXIgZm9yIGFrdGl2aXRldGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXQgZmlubmVzIGFsbGVyZWRlIGVuIGFrdGl2aXRldCBtZWQgZGV0dGUgbmF2bmV0LiBWZW5ubGlnc3QgdmVsZyBldCBhbm5ldCBuYXZuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdCcnVrZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ055ZSBpbm5zdGlsbGluZ2VyIGZvciBicnVrZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciBicnVrZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdNZXJrbmFkZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ZpcyBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdUaWxsYXR0IGJydWtlciDDpSBvcHByZXR0ZSBwcm9zamVrdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BlcmlvZGVzdGFydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kZXNsdXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdGZXJpZWRhZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnVGltZXIgcGVyIHVrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnUMOlbGFndCBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdTdGFydGRhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnVmVubmxpZ3N0IHNldHQgaW5uIGVuIGd5bGRpZyBkYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ1NsdXR0ZGF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ1BlcmlvZGVzbHV0dCBtw6UgdsOmcmUgZXR0ZXIgcGVyaW9kZXN0YXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRGFnZXIgbWVkIGd5bGRpZyBmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1VrZW50bGlnZSB0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ092ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5uZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnTGVnZyB0aWwgZW4gdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgcMOlIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdWaXNuaW5nIGF2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0luZ2VuIGRhdGEgZnVubmV0IGZvciBkZW5uZSBkYWdlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdTZW5lc3RlIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnS2FuIGlra2UgbGFncmUgaW5zdGlsbGluZ2VuZSBmb3JkaSBldCBkw7hnbiBoYXIga3VuIDI0IHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRGVubmUgZGF0b2VuIGVyIHV0ZW5mb3IgdGlsbGF0dCBvbXLDpWRlLiBNZW4sIGR1IGhhciBpa2tlIHNhdHQgaW5uIGRlbm5lIGRhZ2VuIGVubsOlLCBzw6UgZHUgZsOlciBlbighKSBzamFuc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdVZnVsbHN0ZW5kaWdlIGFyYmVpZHNkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdWZW5ubGlnc3Qgc2V0dCBpbm4gZGluZSBhcmJlaWRzdGltZXIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ1ZlbGx5a2tldCBpbm5zZXR0aW5nISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRmVpbCB1bmRlciBpbm5zZXR0aW5nIGF2IGZsZXJlIGRhdG9lciEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnSW5uc2V0dGluZyBhdiByZWdpc3RyZXJpbmdlciBmb3IgZmxlcmUgZGF0b2VyIHZhciB2ZWxseWtrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdPcHBnaXR0IGRhdG8gdmFyIHVneWxkaWchIERhdG8gZW5kcmV0IHRpbCBkYWdlbnMgZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1NlbmVzdGUgdmFsZ3RlIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnQWxsZSBwcm9zamVrdGVyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1Byb3NqZWt0IHNvbSByYXBwb3J0ZXJlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBwb3J0ZXJpbmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnS2FuIGlra2UgZW5kcmUgYnJ1a2VyaW5uc3RpbGxpbmdlciEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9zamVrdCBsYWd0IHRpbCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb3NqZWt0IG9wcGRhdGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdBa3Rpdml0ZXQgbGFndCB0aWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBa3Rpdml0ZXQgb3BwZGF0ZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdCcnVrZXJJRCBlciBpa2tlIGd5bGRpZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnS2FuIGlra2UgbGVnZ2UgdGlsIGJydWtlcmRhdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnS2FuIGlra2UgbGVnZ2UgdGlsIHRpZHNwZXJpb2RlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQnJ1a2VyIG9wcGRhdGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdCcnVrZXIgbGFndCB0aWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTnkgYnJ1a2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdQZXJpb2Rlc3RhdHVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXNuaW5nOiBUcmVuZ2VyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ1VmdWxsc3RlbmRpZ2UgYXJiZWlkc2RhZ2VyJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VuZHJlIGlubnN0aWxsaW5nZXIgZm9yIHRpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRW5kcmUgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdIdm9yIG1hbmdlciBkYWdlciB0aWxiYWtlIGkgdGlkIGRldCBlciBhbmxlZG5pbmcgdGlsIMOlIGxlZ2dlIHRpbCBlbiB0aWRzYm9say4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ092ZXJzaWt0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1RpZHJhcHBvcnRlcmluZyBmb3IgcHJvc2pla3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFbmRyZSB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnT3ZlcnNpa3Qgb3ZlciByZWdpc3RyZXJ0IHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSYXBwb3J0ZXJpbmcgYXYgcmVnaXN0cmVydCB0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJbm5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdTZSBww6UgdGlkc3JlZ2lzdHJlcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1RpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cGxfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdDenkgbmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHJvemxpY3plbmllIGN6YXN1IHByYWN5IHRlZ28gZG5pYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWR5Y2phIGV3aWRlbmNqaSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1ByemVqZMW6IGRvIHVzdGF3aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXdpZ2FjamEgcG8gZGFjaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnUG9wcnplZG5pIGR6aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0tvbGVqbnkgZHppZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ1ByemVqZMW6IGRvIHRlZ28gZG5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RuaSBiZXogd3Bpc8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdaYXpuYWN6IHdzenlzdGtpZSBkbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ01hc293ZSB3cGlzeXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUHJvc3rEmSB3eWJyYcSHIHByenljenluxJkgbmllb2JlY25vxZtjaSBkbGEgd3licmFueWNoIGRuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1VybG9wJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdad29sbmllbmllIGxla2Fyc2tpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ1dvbG5lIHphIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1Byb3N6xJkgd3licmHEhyBjbyBuYWptbmllaiBqZWRlbiBkemllxYQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIHByenljenluxJkgbmllb2JlY25vxZtjaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc293ZSB3cGlzeXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnUG9sYSB3eW1hZ2FuZSBvem5hY3pvbmUgc8SFICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdNdXNpc3ogd3Byb3dhZHppxIcgY3phcyBwb2N6xIV0a3UgaSB6YWtvxYRjemVuaWEgbHViIG9rcmXFm2wgY3phcyB0cndhbmlhIGN5bGt1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnWmFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdVd2FnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdQcm9zesSZIGRvZGHEhyB1d2FnxJkgemF3aWVyYWrEhWPEhSB3acSZY2VqIG5pxbwgOCB6bmFrw7N3ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnQ3phcyByb3pwb2N6xJljaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VqZW1uZSBjemFzeSBzxIUgbmllZG96d29sb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9rcnl3YWrEhWNlIHNpxJkgZ29kemlueSBuaWUgc8SFIGRvendvbG9uZS4gQ3phcyByb3pwb2N6xJljaWEgcGFzdWplIGRvIGlubmVnbyBwcnplZHppYcWCdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ05pZXByYXdpZMWCb3d5IGZvcm1hdCEgUHJvc3rEmSBwb2RhxIcgY3phcyB3IGZvcm1hY2llIEdHOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBqZXN0IGRvendvbG9uYSBqZWR5bmllIGpha28gY3phcyB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnQ3phcyB6YWtvxYRjemVuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0N6YXMgemFrb8WEY3plbmlhIG11c2kgYnnEhyBwbyBjemFzaWUgcm96cG9jesSZY2lhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ1Bva3J5d2FqxIVjZSBzacSZIGdvZHppbnkgbmllIHPEhSBkb3p3b2xvbmUuIEN6YXMgemFrb8WEY3plbmlhIHBhc3VqZSBkbyBpbm5lZ28gcHJ6ZWR6aWHFgnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdOaWVwcmF3aWTFgm93eSBjemFzIGN5a2x1ISBEemllxYQgbWEgdHlsa28gMjQgZ29kemlueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdQcmF3aWTFgm93eSBjemFzIGN5a2x1IG11c2kgYnnEhyB3acSZa3N6eSBvZCB6ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3lrbCEgVWplbW55IGN6YXMgY3lrbHUgbmllIGplc3QgZG96d29sb255Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0RvZGFqIHdpZXJzeic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1N1bWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdNb8W8ZXN6IHphem5hY3p5xIcgdHlsa28gamVkZW4gZWxlbWVudCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdQb2thxbwgY2HFgsSFIHphd2FydG/Fm8SHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdVc3XFhCByb3psaWN6ZW5pZSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ1BvdHdpZXJkxbogd3Bpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQ3p5IGplc3RlxZsgcGV3aWVuLCDFvGUgcHJhY293YcWCZcWbIHcgdHJha2NpZSB6d29sbmllbmlhIGxla2Fyc2tpZWdvPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgdXJsb3B1Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQ3p5IGplc3RlxZsgcGV3aWVuLCDFvGUgcHJhY293YcWCZcWbIHcgdHJha2NpZSB3b2xuZWdvIHphIG5hZGdvZHppbnk/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3acSZY2VqIG5pxbwgMTYgZ29kemluPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTWllc2nEmWN6bnkgcmFwb3J0IGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0dvZHppbnkgbmFkbGljemJvd2UgKGJpZcW8xIVjeSBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ0dvZHppbnkgbmFkbGljemJvd2UgKMWCxIVjem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnUG96b3N0YcWCZSBnb2R6aW55IG5hZGxpY3pib3dlIGRvIHd5YnJhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1VybG9wIChkbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1d5a29yenlzdGFueSB1cmxvcCAoYmllxbzEhWN5IG1pZXNpxIVjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnV3lrb3J6eXN0YW55IHVybG9wICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1VybG9wIHBvem9zdGHFgnkgZG8gd3lrb3J6eXN0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llIChkbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRG5pIHp3b2xuaWVuaWEgbGVrYXJza2llZ28gKGJpZcW8xIVjeSBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnRG5pIHp3b2xuaWVuaWEgbGVrYXJza2llZ28gKMWCxIVjem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdQb3ByemVkbmkgbWllc2nEhWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ05hc3TEmXBueSBtaWVzacSFYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRHppZcWEIHJvYm9jenknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0dvZHppbnkgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnxYHEhWN6bmEgaWxvxZvEhyBwcnplcHJhY293YW55Y2ggZ29kemluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ09waXMgcHJvamVrdHUgdcW8eXRrb3duaWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0dvZHppbnkgKG1pZXNpxJljem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0dvZHppbnkgKMWCxIVjem5pZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdPZ8OzxYJlbSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSYW9ydG93YW5pZSBjemFzdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF3aWdhY2phIG1pZXNpxJljem5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdQcnplamTFuiBkbyBkYXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JhcG9ydHkgdcW8eXRrb3duaWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfFgcSFY3puaWUgLSBtaWVzacSZY3puaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfFgcSFY3puaWUgLSBvZ8OzxYJlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ1dvbG5lIHphIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdVcmxvcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnWndvbG5pZW5pZSBsZWthcnNraWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnVXJsb3AgcG96b3N0YcWCeSBkbyB3eWtvcnp5c3RhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JhcG9ydHkgcHJvamVrdHUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JhcG9ydCBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdQcnplamTFuiBkbyBwcnplZ2zEhWR1IHJhcG9ydG93YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FrdHVhbG5pZSB3aWRvY3puaSBzxIUgamVkeW5pZSB1xbx5dGtvd25pY3kgeiB0ZWdvIHByb2pla3R1LiBUdXRhaiBtb8W8bmEgdG8gem1pZW5pxIc6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FrdHVhbG5pZSB3aWRvY3puaSBzxIUgd3N6eXNjeSB1xbx5dGtvd25pY3kgcm96bGljemFqxIVjeSBjemFzIHByYWN5LiBUdXRhaiBtb8W8bmEgdG8gem1pZW5pxIc6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHJvemxpY3phbmlhIGN6YXN1IHByYWN5IHcgcHJvamVrY2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRG9kYWogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1ByemVqZMW6IGRvIG9waXN1IHVzdGF3aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0RvZGFqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0lubnkgcHJvamVrdCB1xbx5d2EganXFvCB0ZWogbmF6d3kuIFXFvHlqIGlubmVqIG5hend5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHJvemxpY3phbmlhIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRG9kYWogemFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ05vd3kgdcW8eXRrb3duaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRydWogcHJvamVrdHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZpbHRydWogemFkYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHJ1aiBVxbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0N5a2xlIGN6YXN1IG5pZSBtb2fEhSB6b3N0YcSHIHVzdW5pxJl0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgcHJvamVrdMOzdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSB6YWRhxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdEb2RhaiB6YWRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0lubmUgemFkYW5pZSB1xbx5d2EganXFvCB0ZWogbmF6d3kuIFXFvHlqIGlubmVqIG5hend5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBVxbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ1VzdGF3aWVuaWEgTm93ZWdvIFXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdFZHl0dWogVXN0YXdpZW5pYSBVxbx5dGtvd25pa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdLb21lbnRhcnplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdQb2thxbwgZ29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnWmV6d2FsYWogbmEgdHdvcnplbmllIHByb2pla3TDs3cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUG9jesSFdGVrIGN5a2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLb25pZWMgY3lrbHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RuaSB1cmxvcHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdJbG/Fm8SHIGdvZHppbiB3IHR5Z29kbml1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdaZXp3w7NsIG5hIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgcm96cG9jesSZY2lhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Byb3N6xJkgd3Byb3dhZHppxIcgcHJhd2lkxYJvd8SFIGRhdMSZLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgemFrb8WEY3plbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS29uaWVjIG9rcmVzdSBtdXNpIGJ5xIcgcG8gamVnbyBwb2N6xIV0a3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEbmkgb3B1Y3pvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnVHlnb2RuaW93eSBjemFzIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmllIHpuYWxlemlvbm8gxbxhZG5lZ28gY3lrbHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0RvZGFqIGN5a2wnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUG9rYcW8IGV3aWRlbmNqxJkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdXaWRvayAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnQnJhayBkYW55Y2ggZG90eWN6xIVjeWNoIHd5YnJhbmVnbyBkbmlhLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICdOaWUgdWRhxYJvIHNpxJkgd3N0YXdpxIcgamVkbm9zdGVrIHByYWN5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnT3N0YXRuaWUgcHJvamVrdHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmllIG1vxbxuYSB6YXBpc2HEhyB1c3Rhd2llxYQsIHBvbmlld2HFvCBkb2JhIG1hIHR5bGtvIDI0IGdvZHppbnkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICdOaWUgdWRhxYJvIHNpxJkgdXN1bsSFxIcgamVkbm9zdGVrIHByYWN5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ1dwcm93YWR6b25hIGRhdGEgamVzdCBwb3phIHpha3Jlc2VtLCBhbGUgbmllIHdwcm93YWR6acWCZcWbIGplc3pjemUgdGVnbyBkbmlhLCBtYXN6IHdpxJljIGplZHluxIUoISkgb2themrEmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ05pZXBlxYJuZSBkbmkgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUHJvc3rEmSB3cHJvd2FkemnEhyBzd8OzaiBjemFzIHByYWN5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdXcHJvd2FkYW5pZSBwb3dpb2TFgm8gc2nEmSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1d5c3TEhXBpxYIgYsWCxIVkIHBvZGN6YXMgd3Byb3dhZHphbmlhIHdpZWx1IGRhdCBqZWRub2N6ZcWbbmllISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdQb215xZtsbmllIHdwcm93YWR6b25vIHdpZWxlIGRhdCBqZWRub2N6ZcWbbmllISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnV3Byb3dhZHpvbm8gbmllcHJhd2lkxYJvd8SFIGRhdMSZISBab3N0YcWCYSBvbmEgem1pZW5pb25hIG5hIGJpZcW8xIVjxIUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdPc3RhdG5pbyB3eWJyYW5lIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1dzenlzdGtpZSBwcm9qZWt0eSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSYXBvcnRvd2FuaWUgcHJvamVrdHU6IFd5bWFnYW55IFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1JhcG9ydG93YW5pZSBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBvcnRvd2FuaWUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnTmllIG1vxbxuYSB6bWllbmnEhyB1c3Rhd2llxYQgdcW8eXRrb3duaWthISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb2pla3QgZG9kYW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrdCB6bWllbmlvbnkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnWmFkYW5pZSBkb2RhbmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdaYWRhbmllIHptaWVuaW9uZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnSWRlbnR5ZmlrYXRvciBVc2VySUQgamVzdCBuaWVwcmF3aWTFgm93eSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTmllIHVkYcWCbyBzacSZIHdzdGF3acSHIGRhbnljaCB1xbx5dGtvd25pa2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnTmllIG1vxbxuYSBkb2RhxIcgY3lrbHUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdVxbx5dGtvd25payB6bWllbmlvbnkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVcW8eXRrb3duaWsgZG9kYW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ05vd3kgVcW8eXRrb3duaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ1N0YW4gY3lrbHUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1dpZG9rOiBQb3RyemVibnkgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnTmllcGXFgm5lIGRuaSBwcmFjeSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHXFgiBwb3dpYWRhbWlhbmlhIEFnZW50YSBvIGxpY3piaWUgZG5pIHogbmlla29tcGxldG55bSByYXBvcnRvd2FuaWVtIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xuYSBuYXp3YSBub3d5Y2ggY3p5bm5vxZtjaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRG9tecWbbG5hIG5hendhIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0RvbXnFm2xuYSBkYXRhIHpha2/FhGN6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0RvbXnFm2xuYSBkYXRhIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdEb215xZtsbmUgdXN0YXdpZW5pZSBvcGlzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgdXJsb3B1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgZ29kemluIG5hZGxpY3pib3d5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdEb215xZtsbmEga29uZmlndXJhY2phIHR5Z29kbmlvd2VnbyBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBjenlubm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCB1xbx5dGtvd25pa8Ozdy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnT2tyZcWbbGEgcHJvamVrdHksIGt0w7NyZSB3eW1hZ2FqxIUgZG9kYXdhbmlhIGtvbWVudGFyenkuIEplxbxlbGkgd3lyYcW8ZW5pZSByZWd1bGFybmUgcGFzdWplIGRvIHByb2pla3R1LCB0cnplYmEgZG9kYcSHIGtvbWVudGFyei4gV3lyYcW8ZW5pYSByZWd1bGFybmUga29yenlzdGFqxIUgeiBwYXJhbWV0csOzdyBzZXJ3ZXJhIG1ha3IgKFNNWCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdPa3JlxZtsYSwgY3p5IG1vZHXFgiBzdGF0eXN0eWN6bnkgbW/FvGUgZ2VuZXJvd2HEhyBpbmZvcm1hY2plIG8gcm96bGljemVuaWFjaCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgcm96bGljemFuaWEgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWR5Y2phIGV3aWRlbmNqaSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTGljemJhIGRuaSB3c3RlY3osIGRsYSBrdMOzcnljaCBtb8W8bmEgcm96bGljemHEhyBjemFzIHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdKZcWbbGkgYWt0eXduZSwgd2lkb2N6bmkgc8SFIHR5bGtvIHXFvHl0a293bmljeSwga3TDs3J6eSByb3psaWN6eWxpIGN6YXMgcHJhY3kgdyB3eWJyYW55bSBwcm9qZWtjaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdQcnp5IHfFgsSFY3pvbmVqIG9wY2ppLCBlbGVtZW50eSByb3p3aWphbmUgdyBva25pZSBlZHljamkgYsSZZMSFIHphc3TEhXBpb25lIHBvbGFtaSB6IGF1dG9tYXR5Y3pueW0gdXp1cGXFgm5pYW5pZW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1Byenkgd8WCxIVjem9uZWogb3BjamksIG1vxbxuYSB1xbx5xIcgZmlsdHLDs3csIHXFvHl0eWNoIHcgcG9wcnplZG5pY2ggcHJvamVrdGFjaCwgemFtaWFzdCBzdG9zb3dhxIcgZHdpZSBsaXN0eSBwcm9qZWt0w7N3IChvc3RhdG5pZWdvIGkgd3N6eXN0a2ljaCkuIE5pZXpixJlkbmUgamVzdCB1cnVjaG9taWVuaWUgb3BjamkgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSmXFm2xpIGFrdHl3bmUsIGZpbHRyeSB1xbx5dGUgdyBwb3ByemVkbmljaCBwcm9qZWt0YWNoIHPEhSBkb215xZtsbmllIGFrdHl3bmUgKGplxZtsaSB0YWtpZSBwcm9qZWt0eSBpc3RuaWVqxIUpLiBOaWV6YsSZZG5lIGplc3QgdXJ1Y2hvbWllbmllIG9wY2ppIEVuYWJsZUF1dG9Db21wbGV0aW9uIG9yYXogVGltZUFjY291bnRpbmc6OlVzZUZpbHRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0plxZtsaSBha3R5d25lLCB1xbx5dGtvd25payBtb8W8ZSB1c3Rhd2nEhyAidXJsb3AiLCAiendvbG5pZW5pZSBsZWthcnNraWUiIG9yYXogIndvbG5lIHphIG5hZGdvZHppbnkiIGRsYSB3aWVsdSBkbmkgamVkbm9jemXFm25pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCB3IGNpxIVndSBrdMOzcnljaCBuYWxlxbx5IHV6dXBlxYJuacSHIGN6YXMgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCBiZXogdXp1cGXFgm5pYW5pYSBjemFzdSBwcmFjeSwgcG8ga3TDs3J5Y2ggcG9rYXphbmUgem9zdGFuaWUgb3N0cnplxbxlbmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcnplZ2zEhWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmFwb3J0b3dhbmllIGN6YXN1IHByb2pla3R1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnV3lyYcW8ZW5pYSByZWd1bGFybmUgZG8gb2dyYW5pY3plbmlhIGxpc3R5IHphZGHFhCB3eWJyYW55Y2ggcHJvamVrdMOzdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgb2tyZcWbbGEgd3lyYcW8ZW5pZSByZWd1bGFybmUgZGxhIGFrY2ppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdXeXJhxbxlbmlhIHJlZ3VsYXJuZSBkbyBvZ3JhbmljemVuaWEgbGlzdHkgcHJvamVrdMOzdyB3eWJyYW55Y2ggZ3J1cCB1xbx5dGtvd25pa8Ozdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgemF3aWVyYSBsaXN0xJkgZ3J1cCByb3pkemllbG9ueWNoIHByemVjaW5rYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnT2tyZcWbbGEsIGN6eSBjemFzIHByYWN5IG1vxbxlIHpvc3RhxIcgd3Byb3dhZHpvbnkgYmV6IHBvZGF3YW5pYSBjemFzdSByb3pwb2N6xJljaWEgb3JheiB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1RlbiBtb2R1xYIgd3ltdXN6YSB1enVwZcWCbmlhbmllIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTW9kdcWCIHRlbiBvc3RyemVnYSBvIHpieXQgZHXFvGVqIGxpY3piaWUgbmllcm96bGljem9ueWNoIGRuaSByb2JvY3p5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFZHljamEgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ09waXMgcm96bGljemFuaWEgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnUmFwb3J0b3dhbmllIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdLb25maWd1cmFjamEgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnUHJ6ZWdsxIVkIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdSb3psaWN6YW5pZSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnV3lrb3J6eXN0eXdhbmUgamXFvGVsaSBrdMOzcmXFmyB6YWRhbmlhIHJlZHVrdWrEhSBnb2R6aW55IHByYWN5IChucC4gamXFm2xpIHphIGN6YXN1IGRvamF6ZHUgbGljem9uYSBqZXN0IHR5bGtvIHBvxYJvd2EgY3phc3k7IEtsdWN6ID0+IGRvamF6ZDsgV2FydG/Fm8SHID0+IDUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWb2PDqiByZWFsbWVudGUgcXVlciByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIGVzc2UgcmVnaXN0cm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJciBwYXJhIGNvbmZpZ3VyYcOnw7Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2HDp8OjbyBkZSBkYXRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEaWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdQcsOzeGltbyBkaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnSXIgcGFyYSBlc3RhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEaWFzIHNlbSBhcG9udGFtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNpb25hciB0b2RvcyBvcyBkaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdFbnRyYWRhIGVtIG1hc3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yLCBlc2NvbGhhIG8gbW90aXZvIGRlIHN1YSBhdXPDqm5jaWEgcGFyYSBvcyBkaWFzIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0VtIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciwgZXNjb2xoYSBwZWxvIG1lbm9zIHVtIGRpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdQb3IgZmF2b3IgZXNjb2xoYSB1bSBtb3Rpdm8gcGFyYSBhIGF1c8OqbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnRW50cmFkYSBlbSBtYXNzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0NhbXBvcyBvYnJpZ2F0w7NyaW9zIGVzdMOjbyBtYXJjYWRvcyBjb20gIioiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVm9jw6ogdMOqbSBxdWUgcHJlZW5jaGVyIGluw61jaW8gZSBmaW0sIG91IHVtIHBlcsOtb2RvIGRlIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdPYnNlcnZhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnUG9yIGZhdm9yLCBhZGljaW9uZSB1bSBjb21lbnTDoXJpbyBjb20gbWFpcyBkZSA4IGNhcmFjdGVyZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdUZW1wbyBpbmljaWFsICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnRGF0YXMgbmVnYXRpdmFzIG7Do28gc8OjbyBsaWJlcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yLCBlbnRyZSBjb20gdW0gdGVtcG8gbm8gZm9ybWF0byBISDpNTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdBcGVuYXMgMjQ6MDAgc8OjbyBwZXJtaXRpZGFzIGNvbW8gdGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdUZW1wbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ1RlbXBvIGZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdUZW1wbyBmaW5hbCBkZXZlIHNlciBkZXBvaXMgZG8gdGVtcG8gaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdIb3JhcyByZXBldGlkYXMgbsOjbyBzw6NvIGxpYmVyYWRhcy4gSW5pY2llIG8gYXBvbnRhbWVudG8gZW0gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBVbSBkaWEgdGVtIGFwZW5hcyAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbSBwZXLDrW9kbyB2w6FsaWRvIGRldmUgc2VyIG1haW9yIHF1ZSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBQZXLDrW9kb3MgbmVnYXRpdm9zIG7Do28gc8OjbyBsaWJlcmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWRpY2lvbmFyIHVtYSBsaW5oYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1RvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnVm9jw6ogcG9kZSBzZWxlY2lvbmFyIGFwZW5hcyB1bSBlbGVtZW50byBubyBjaGVja2JveCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdNb3N0cmFyIHRvZG9zIG9zIGl0ZW5zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdEZWxldGFyIGVudHJhZGEgbmEgQ29udGFiaWxpZGFkZSBkZSBUZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdDb25maXJtYXIgaW5zZXLDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnVGVtIGNlcnRlemEgZGUgcXVlIHZvY8OqIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZW0gbGljZW7Dp2EgbcOpZGljYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBkZSBmw6lyaWFzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnVm9jw6ogdGVtIGNlcnRlemEgcXVlIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZGUgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdWb2PDqiB0ZW0gY2VydGV6YSBxdWUgdHJhYmFsaG91IG1haXMgcXVlIDE2IGhvcmFzPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnUmVsYXTDs3JpbyBkZSBhcG9udGFtZW50byBkZSB0ZW1wbyBtZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0hvcmFzIGV4dHJhcyAoaG9yYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0hvcmFzIGV4dHJhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnSG9yYXMgZXh0cmFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnUmVzdGFudGUgZGEgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0bDqXJpYXMgKERpYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0bDqXJpYXMgdGlyYWRhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRsOpcmlhcyB0aXJhZGFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRsOpcmlhcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWNlbsOnYSBNw6lkaWNhIChEaWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2FzIHRpcmFkYXMgICggZXN0ZSBtw6pzICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGljZW7Dp2EgbcOpZGljYXMgdGlyYWRhcyAgKCB0b3RhbCApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTcOqcyBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnUHLDs3hpbW8gbcOqcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRGlhIGRhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yw6FyaW8gZGUgdHJhYmFsaG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgZGUgaG9yYXMgdHJhYmFsaGFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzw6NvIGRlIHByb2pldG8gZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzICggbWVuc2FsICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICggRHVyYcOnw6NvICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBnZXJhbCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2HDp8OjbyBNZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIHBhcmEgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ0R1cmHDp8OjbyB0b3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0bDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnRsOpcmlhcyByZXN0YW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSBwcm9qZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZWxhdMOzcmlvIGRlIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgcGFyYSB2aXPDo28gZ2VyYWwgZGUgcmVsYXTDs3Jpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHNvbWVudGUgdXN1w6FyaW9zIGF0aXZvcyBuZXN0ZSBwcm9qZXRvIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHRvZG9zIG9zIGFwb250YW1lbnRvIGRlIHRlbXBvcyBkb3MgdXN1w6FyaW9zIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRvIFByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZGljaW9uYXIgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIHBhcmEgY29uZmlndXJhw6fDtWVzIGdlcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FkaWNpb25hciBwcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkaXRhciBDb25maWd1cmHDp8O1ZXMgZG8gUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bSBwcm9qZXRvIGNvbSBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRWRpdGFyIENvbmZpZ3VyYcOnw7VlcyBkYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdOb3ZvIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cmFyIHBvciBQcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFRhc2tzJ30gPSAnRmlsdHJhciBmb3IgVGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHJhciBwb3IgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnUGVyw61vZG9zIGRlIHRlbXBvIG7Do28gcG9kZW0gc2VyIGV4Y2x1w61kb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIGRlIHRhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZGljaW9uYXIgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZGEgVGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdKw6EgZXhpc3RlIHVtYSB0YXJlZmEgY29tIGVzc2Ugbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGhhIHVtIG5vbWUgZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgbm92byB1c3XDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ0NvbWVudMOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0xpYmVyYXIgY3JpYcOnw6NvIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BlcsOtb2RvIEluaWNpYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcsOtb2RvIEZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEaWFzIGRlIEbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMgYXV0b3JpemFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBpbmljaWFsICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IsIGluc2lyYSB1bWEgZGF0YSB2w6FsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXLDrW9kbyBmaW5hbCBkZXZlIHNlciBtYWlvciBxdWUgIHBlcsOtb2RvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEaWFzIGRlIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ1BlcsOtb2RvIGRlIHRlbXBvIG7Do28gZW5jb250cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc8OjbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZG9zIGRhZG9zIHBhcmEgZXN0ZSBkaWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBpbnNlcmlyIFVuaWRhZGVzIGRlIFRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnQ29uZmlndXJhw6fDtWVzIG7Do28gc2FsdmFzLCBwb2lzIHVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGRlbGV0YXIgVW5pZGFkZXMgZGUgVHJhYmFsaG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXN0YSBEYXRhIGVzdMOhIGZvcmEgZG8gbGltaXRlLCBtYXMgdm9jw6ogbsOjbyBpbnNlcml1IGVzdGUgZGlhIGFpbmRhLCBlbnTDo28gdm9jw6ogcG9zc3VpIFVNQSghKSBjaGFuY2UgZGUgaW5zZXJpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0RpYXMgZGUgdHJhYmFsaG9zIGluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1BvciBmYXZvciBpbnNpcmEgc3VhcyBob3JhcyBkZSB0cmFiYWxobyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJpZG8gY29tIHN1Y2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdFcnJvIGFvIGluc2VyaXIgbcO6bHRpcGxhcyBkYXRhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnRW50cmFkYSBkZSB2w6FyaWFzIGRhdGFzIGluc2VyaWRhIGNvbSBzdWNlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnRGF0YSBpbnNlcmlkYSDDqSBpbnbDoWxpZGEhIERhdGEgZm9pIGFsdGVyYWRhIHBhcmEgaG9qZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBvcyBwcm9qZXRvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdQcm9qZXRvIGRlIFJlbGF0w7NyaW86IE5lY2Vzc8OhcmlvIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1Byb2pldG8gZGUgUmVsYXTDs3Jpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdJbXBvc3PDrXZlbCBhdHVhbGl6YXIgY29uZmlndXJhw6fDtWVzIGRlIHVzdcOhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb2pldG8gYWRpY2lvbmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pldG8gYXR1YWxpemFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdBdGl2aWRhZGUgYWRpY2lvbmFkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0F0aXZpZGFkZSBhdHVhbGl6YWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdPIFVzZXJJRCBuw6NvIMOpIHbDoWxpZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBpbnNlcmlyIGRhZG9zIGRlIHVzdcOhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ0ltcG9zc8OtdmVsIGFkaWNpb25hciBwZXLDrW9kbyBkZSB0ZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1VzdcOhcmlvIGF0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVXN1w6FyaW8gYWRpY2lvbmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3ZvIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdFc3RhZG8gZG8gcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1Zpc8OjbzogTmVjZXNzw6FyaW8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnRGlhcyBkZSB0cmFiYWxob3MgaW5jb21wbGV0b3MnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZG8gQWdlbnRlIHBhcmEgdmVyIG8gbnVtZXJvIGRlIGRpYXMgaW5jb21wbGV0b3MgZG8gdXN1w6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTyBub21lIHBhZHLDo28gcGFyYSBub3ZhcyBhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdPIG5vbWUgcGFkcsOjbyBwYXJhIG5vdm9zIHByb2pldG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkYXRhIGZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGF0YSBpbmljaWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkZXNjcmnDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkaWFzIGRlIGbDqXJpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGhvcmFzIGV4dHJhcywnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBob3JhcyBzZW1hbmFpcyBwYWRyw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcGFkcsOjbyBwYXJhIG5vdmFzIGHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBhZHLDo28gcGFyYSBub3ZvcyBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwYXJhIHBhcmEgbm92b3MgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBwcm9qZXRvcyBwYXJhIG9zIHF1YWlzIMOpIG5lY2Vzc8OhcmlhIHVtYSBvYnNlcnZhw6fDo28uIFNlIG8gUmVnRXhwIMOpIGVuY29udHJhZG8gbm8gcHJvamV0bywgdm9jw6ogdGVtIHF1ZSBpbnNlcmlyIHVtYSBvYnNlcnZhw6fDo28uIE8gUmVnRXhwIHVzYSBvIHBhcsOibWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIG8gbcOzZHVsbyBkZSBlc3RhdMOtc3RpY2FzIHBvZGUgZ2VyYXIgaW5mb3JtYcOnw7VlcyBkbyB0aW1lIGFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFZGl0YXIgcmVnaXN0cm8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BhcmEgcXVhbnRvcyBkaWFzIGF0csOhcyB2b2PDqiBwb2RlIGluc2VyaXIgdW5pZGFkZXMgZGUgdHJhYmFsaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIHNvbWVudGUgb3MgdXN1w6FyaW9zIHF1ZSBhZGljaW9ub3UgdGVtcG8gZGUgdHJhYmFsaG8gYW8gbyBwcm9qZXRvIHNlbGVjaW9uYWRvIHNlcsOjbyBleGliaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG9zIGVsZW1lbnRvcyBzdXNwZW5zb3MgbmEgdGVsYSBkZSBlZGnDp8OjbyBzw6NvIG1vZGlmaWNhZGFzIHBhcmEgY2FtcG9zIGRlIGF1dG9jb21wbGV0YXIgbW9kZXJuaXphZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBvIGZpbHRybyBwYXJhIG9zIHByb2pldG9zIGFudGVyaW9yZXMgcG9kZSBzZXIgdXNhZG8gZW0gdmV6IGRlIGR1YXMgbGlzdGFzIGRlIHByb2pldG9zICjDumx0aW1vIGUgdG9kb3MpLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBwcm9qZXRvcyBhbnRlcmlvcmVzIMOpIGF0aXZhZG8gcG9yIHBhZHLDo28gc2UgaMOhIHByb2pldG9zIGFudGVyaW9yZXMuIEVsZSBwb2RlIHNlciB1c2FkbyBhcGVuYXMgc2UgRW5hYmxlQXV0b0NvbXBsZXRpb24gZSBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGVzdMOjbyBoYWJpbGl0YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG8gdXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gcGFyYSBlbnRyYXIgImVtIGxpY2Vuw6dhIGRlIGbDqXJpYXMiLCAiZW0gbGljZW7Dp2EgbcOpZGljYSIgZSAiZW0gbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzIiBkZSB1bWEgc8OzIHZleiBwYXJhIHbDoXJpYXMgZGF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBhcMOzcyBvIHF1YWwgYXMgInVuaWRhZGVzIGRlIHRyYWJhbGhvIiBkZXZlbSBzZXIgaW5zZXJpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBkaWFzIGRlIHRyYWJhbGhvIHNlbSAidW5pZGFkZXMgZGUgdHJhYmFsaG8iICBhcMOzcyBvIHF1YWwgdW0gYXZpc28gc2Vyw6EgbW9zdHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBHZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvcyBkZSBwcm9qZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0FzIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIHJlc3RyaW5naXIgbGlzdGEgZGUgYcOnw7VlcyBkZSBhY29yZG8gY29tIG8gcHJvamV0byBzZWxlY2lvbmFkby4gQ2hhdmUgY29udMOpbSBleHByZXNzw6NvIHJlZ3VsYXIgcGFyYSBvIHByb2pldG8ocyksIENvbnRlw7pkbyBjb250w6ltIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIGEgYcOnw6NvKHMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGEgbGlzdGEgZGUgcHJvamV0byBkZSBhY29yZG8gY29tIGdydXBvcyBkZSB1c3XDoXJpb3MuIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvIChzKSwgY29udGXDumRvIGNvbnTDqW0gbGlzdGEgIHNlcGFyYWRhIHBvciB2w61yZ3VsYXMgZGUgZ3J1cG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnRXNwZWNpZmlxdWUgc2UgbyBob3LDoXJpbyBkZSB0cmFiYWxobyBwb2RlIHNlciBpbnNlcmlkbyBzZW0gaG9yw6FyaW9zIGRlIGluw61jaW8gZSB0w6lybWluby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXNzZSBtw7NkdWxvIGZvcsOnYSBwcmVlbmNoZXIgbyBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdFc3RlIG3Ds2R1bG8gZGUgbm90aWZpY2HDp8OjbyBkw6EgdW0gYXZpc28gc2UgaG91dmVyIG11aXRvcyBkaWFzIGRlIHRyYWJhbGhvIG7Do28gcmVnaXN0cmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFZGl0YXIgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnVmlzw6NvIGdlcmFsIGRlIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZWxhdMOzcmlvIGRlIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0NvbmZpZ3VyYcOnw7VlcyBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ZlciBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdDb250YWJpbGlkYWRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1VzYXIgcGFyYSAgYWxndW1hcyBhw6fDtWVzIGRlIHJlZHV6aXIgYXMgaG9yYXMgZGUgdHJhYmFsaG8gKHBvciBleGVtcGxvLCBzZSBhcGVuYXMgbWV0YWRlIGRvIHRlbXBvIGRlIHZpYWdlbSDDqSBwYWdvIEtleSA9PiB2aWFqYXI7IENvbnRlbnQgPT4gNTApJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INC20LXQu9Cw0LXRgtC1INGD0LTQsNC70LjRgtGMINGD0YfRgtC10L3QvdGL0LUg0LfQsNGC0YDQsNGC0Ysg0LLRgNC10LzQtdC90Lgg0LTQu9GPINGN0YLQvtCz0L4g0LTQvdGPPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQt9Cw0L/QuNGB0Ywg0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvdCw0YHRgtGA0L7QudC60LDQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40Y8g0L/QviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfQn9GA0LXQtNGL0LTRg9GJ0LjQuSDQtNC10L3RjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ9Ch0LvQtdC00YPRjtGJ0LjQuSDQtNC10L3RjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDRjdGC0L7QuSDQtNCw0YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0L3QuCDQsdC10Lcg0LfQsNC/0LjRgdC10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn0JLRi9Cx0YDQsNGC0Ywg0LLRgdC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ9CS0YvQsdC10YDQuNGC0LUg0L/RgNC40YfQuNC90YMg0LLQsNGI0LXQs9C+INC+0YLRgdGD0YLRgdGC0LLQuNGPINCyINCy0YvQsdGA0LDQvdC90YvQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQkiDQvtGC0L/Rg9GB0LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAn0J/QviDQsdC+0LvQtdC30L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9CSINC+0YLQs9GD0LvQtSDQt9CwINC/0LXRgNC10YDQsNCx0L7RgtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0YXQvtGC0Y8g0LHRiyDQvtC00LjQvSDQtNC10L3RjCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQktGL0LHQtdGA0LjRgtC1INC/0YDQuNGH0LjQvdGDINC+0YLRgdGD0YLRgdGC0LLQuNGPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQtSDQv9C+0LvRjyDQv9C+0LzQtdGH0LXQvdGLICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICfQndC10L7QsdGF0L7QtNC40LzQviDQt9Cw0L/QvtC70L3QuNGC0Ywg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAg0Lgg0L7QutC+0L3Rh9Cw0L3QuNGPINC40LvQuCDQv9C10YDQuNC+0LQg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9C70LDQvdC40YDQvtCy0LDQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ9CX0LDQtNCw0YfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQn9GA0LjQvNC10YfQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICfQn9GA0LjQvNC10YfQsNC90LjQtSDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L3QtSDQvNC10L3QtdC1IDgg0YHQuNC80LLQvtC70L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ9CS0YDQtdC80Y8g0L3QsNGH0LDQu9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC90LXQtNC+0L/Rg9GB0YLQuNC80L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8g0L/QvtCy0YLQvtGA0LXQvdC40LUuINCS0YDQtdC80Y8g0L3QsNGH0LDQu9CwINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPQtdGCINC00YDRg9Cz0L7QvNGDINC40L3RgtC10YDQstCw0LvRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0YTQvtGA0LzQsNGCISDQktCy0LXQtNC40YLQtSDQstGA0LXQvNGPINCyINGE0L7RgNC80LDRgtC1IEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICfQotC+0LvRjNC60L4gMjQ6MDAg0YDQsNC30YDQtdGI0LXQvdC+INCyINC60LDRh9C10YHRgtCy0LUg0LLRgNC10LzQtdC90Lgg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstC10YDQvdC+0LUg0LLRgNC10LzRjyEg0JIg0YHRg9GC0LrQsNGFINGC0L7Qu9GM0LrQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICfQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0L7Qt9C20LUg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cd0LUg0LTQvtC/0YPRgdC60LDQtdGC0YHRjyDQv9C+0LLRgtC+0YDQtdC90LjQtS4g0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0YHQvtC+0YLQstC10YLRgdGC0LLRg9C10YIg0LTRgNGD0LPQvtC80YMg0LjQvdGC0LXRgNCy0LDQu9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdCy0LXRgNC90YvQuSDQv9C10YDQuNC+0LQhINCSINGB0YPRgtC60LDRhSDRgtC+0LvRjNC60L4gMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0J/RgNCw0LLQuNC70YzQvdGL0Lkg0L/QtdGA0LjQvtC0INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQsdC+0LvRjNGI0LUg0L3Rg9C70Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INC/0LXRgNC40L7QtCEg0J7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtCx0LDQstC40YLRjCDQvtC00L3RgyDRgdGC0YDQvtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICfQmNGC0L7Qs9C+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0KMg0LLQsNGBINC10YHRgtGMINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LLRi9Cx0YDQsNGC0Ywg0YLQvtC70YzQutC+INC+0LTQuNC9INGN0LvQtdC80LXQvdGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0LLRgdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQo9C00LDQu9C40YLRjCDQt9Cw0L/QuNGB0Ywg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn0J/QvtC00YLQstC10YDQtNC40YLQtSDQstGB0YLQsNCy0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQsdC+0LvQtdC30L3QuD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGA0LDQsdC+0YLQsNC70Lgg0LIg0L/QtdGA0LjQvtC0INC+0YLQv9GD0YHQutCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQvtGC0LPRg9C70L7Qsj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCx0L7Qu9C10LUgMTYg0YfQsNGB0L7Qsj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9Cc0LXRgdGP0YfQvdGL0Lkg0L7RgtGH0LXRgiDQviDQt9Cw0YLRgNCw0YfQtdC90L3QvtC8INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9C10YDQtdGA0LDQsdC+0YLQutCwICjRh9Cw0YHRiyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0Y3RgtC+0LPQviDQvNC10YHRj9GG0LApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9C10YDQtdGA0LDQsdC+0YLQutCwICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGB0YLQsNCy0YjQtdC10YHRjyDQstGA0LXQvNGPINC+0YLQs9GD0LvQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfQntGC0L/Rg9GB0LogKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC90YvQtSDQtNC90Lgg0L7RgtC/0YPRgdC60LAgKNCyINGN0YLQvtC8INC80LXRgdGP0YbQtSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0L3QvdGL0LUg0LTQvdC4INC+0YLQv9GD0YHQutCwICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICfQntGB0YLQsNCy0YjQuNC10YHRjyDQtNC90Lgg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQkdC+0LvQtdC30L3RjCAo0LTQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9Ce0YLRgdGD0YLRgdGC0LLQvtCy0LDQuyDQv9C+INCx0L7Qu9C10LfQvdC4ICjQsiDRjdGC0L7QvCDQvNC10YHRj9GG0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9Ce0YLRgdGD0YLRgdGC0LLQvtCy0LDQuyDQv9C+INCx0L7Qu9C10LfQvdC4ICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ9Cf0YDQtdC00YvQtNGD0YnQuNC5INC80LXRgdGP0YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ9Ch0LvQtdC00YPRjtGJ0LjQuSDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfQndC10LTQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQsdC+0YfQuNC1INGH0LDRgdGLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ9CS0YHQtdCz0L4g0L7RgtGA0LDQsdC+0YLQsNC90L3Ri9GFINGH0LDRgdC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn0J7QsdC30L7RgCDQtNCw0L3QvdGL0YUg0L/QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40Y4g0LTQu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfQp9Cw0YHRiyAo0LXQttC10LzQtdGB0Y/Rh9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfQp9Cw0YHRiyAo0LfQsCDQstC10YHRjCDRgdGA0L7QuiDQvdCw0LHQu9GO0LTQtdC90LjRjyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQktGB0LXQs9C+JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ9Ce0YLRh9C10YIg0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ9Cd0LDQstC40LPQsNGG0LjRjyDQv9C+INC80LXRgdGP0YbQsNC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQtNCw0YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfQntGC0YfQtdGCINC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0JjRgtC+0LPQviDQt9CwINC80LXRgdGP0YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQmNGC0L7Qs9C+INC30LAg0LLRgdC1INCy0YDQtdC80Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGC0LPRg9C70Ysg0LfQsCDQv9C10YDQtdGA0LDQsdC+0YLQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn0J7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfQntGC0YHRg9GC0YHRgtCy0LjQtSDQv9C+INCx0L7Qu9C10LfQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ9Ce0YHRgtCw0LvQvtGB0Ywg0LTQvdC10Lkg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0J7RgtGH0LXRgtGLINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfQntGC0YfQtdGCINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ9Cf0LXRgNC10LnRgtC4INC6INC+0LHQt9C+0YDRgyDQvtGC0YfQtdGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9CSINC90LDRgdGC0L7Rj9GJ0LXQtSDQstGA0LXQvNGPINC/0L7QutCw0LfQsNC90Ysg0YLQvtC70YzQutC+INCw0LrRgtC40LLQvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4INCyINGN0YLQvtC8INC/0YDQvtC10LrRgtC1LiDQp9GC0L7QsdGLINC40LfQvNC10L3QuNGC0Ywg0Y3RgtC+LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L7QsdC90L7QstC40YLQtSDQvdCw0YHRgtGA0L7QudC60Lg6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9CSINC90LDRgdGC0L7Rj9GJ0LXQtSDQstGA0LXQvNGPINC/0L7QutCw0LfQsNC90Ysg0LLRgdC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDQsiDRjdGC0L7QvCDQv9GA0L7QtdC60YLQtS4g0KfRgtC+0LHRiyDQuNC30LzQtdC90LjRgtGMLCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L7QsdC90L7QstC40YLQtSDQvdCw0YHRgtGA0L7QudC60Lg6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCDQv9C+INC/0YDQvtC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvtCx0LfQvtGA0YMg0L3QsNGB0YLRgNC+0LXQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDQv9C70LDQvdC40YDQvtCy0LDQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9Cj0LbQtSDQtdGB0YLRjCDQv9GA0L7QtdC60YIg0YEg0YLQsNC60LjQvCDQvdCw0LjQvNC10L3QvtCy0LDQvdC40LXQvC4g0JLRi9Cx0LXRgNC40YLQtSDQtNGA0YPQs9C+0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAn0KTQuNC70YzRgtGAINC00LvRjyDQn9GA0L7QtdC60YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICfQpNC40LvRjNGC0YAg0LTQu9GPINC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ9Ck0LjQu9GM0YLRgCDQtNC70Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICfQn9C10YDQuNC+0LTRiyDQstGA0LXQvNC10L3QuCDQvdC1INC80L7Qs9GD0YIg0LHRi9GC0Ywg0YPQtNCw0LvQtdC90YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ9Ch0L/QuNGB0L7QuiDQv9GA0L7QtdC60YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Ch0L/QuNGB0L7QuiDQt9Cw0LTQsNGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INC30LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0KPQttC1INC10YHRgtGMINC30LDQtNCw0YfQsCDRgSDRgtCw0LrQuNC8INC40LzQtdC90LXQvCwg0JLRi9Cx0LXRgNC40YLQtSDQtNGA0YPQs9C+0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Ch0L/QuNGB0L7QuiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDQvdC+0LLQvtCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICfQmtC+0LzQvNC10L3RgtCw0YDQuNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfQn9C+0LrQsNC30LDRgtGMINC/0LXRgNC10YDQsNCx0L7RgtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDRgdC+0LfQtNCw0L3QuNC1INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J3QsNGH0LDQu9C+INC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtC+0L3QtdGGINC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNC90Lgg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQp9Cw0YHQvtCyINCyINC90LXQtNC10LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0KDQsNC30YDQtdGI0LXQvdC90LDRjyDQv9C10YDQtdGA0LDQsdC+0YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfQlNCw0YLQsCDQvdCw0YfQsNC70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JLQstC10LTQuNGC0LUg0L/RgNCw0LLQuNC70YzQvdGD0Y4g0LTQsNGC0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L/QtdGA0LjQvtC00LAg0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0L7Qt9C20LUg0LLRgNC10LzQtdC90Lgg0LXQs9C+INC90LDRh9Cw0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ9Ce0YHRgtCw0LvQvtGB0YwsINC00L3QtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Cn0LDRgdC+0LIg0LIg0L3QtdC00LXQu9GOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsC/QodCy0LXRgNGF0YPRgNC+0YfQvdGL0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0LUg0LfQsNC00LDQvdGLINC/0LXRgNC40L7QtNGLINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LgnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/QvtGB0LzQvtGC0YDQtdGC0Ywg0LfQsNC/0LjRgdGMINCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn0J/RgNC+0YHQvNC+0YLRgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfQlNC70Y8g0Y3RgtC+0LPQviDQtNC90Y8g0LTQsNC90L3Ri9C1INC90LUg0L3QsNC50LTQtdC90YsuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LTQvtCx0LDQstC40YLRjCDRgNCw0LHQvtGH0LjQtSDQtdC00LjQvdC40YbRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNC90LjQtSDQv9GA0L7QtdC60YLRiy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDRgdC+0YXRgNCw0L3QuNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4LCDRgtCw0Log0LrQsNC6INCyINGB0YPRgtC60LDRhSAyNCDRh9Cw0YHQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YPQtNCw0LvQuNGC0Ywg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0YshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAn0K3RgtCwINC00LDRgtCwINCy0L3QtSDQtNC40LDQv9Cw0LfQvtC90LAsINC90L4g0LLRiyDQtdGJ0LUg0L3QtSDRg9GB0YLQsNC90L7QstC40LvQuCDRjdGC0L7RgiDQtNC10L3RjCwg0YLQsNC6INGH0YLQviDQstCw0Lwg0LTQsNC10YLRgdGPINC+0LTQuNC9KCEpINGI0LDQvdGBINC00LvRjyDQtdC1INGD0YHRgtCw0L3QvtCy0LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ9Cd0LXQv9C+0LvQvdGL0LUg0YDQsNCx0L7Rh9C40LUg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ9CS0LLQtdC00LjRgtC1INCS0LDRiNC4INGA0LDQsdC+0YfQuNC1INGH0LDRgdGLISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfQlNCw0L3QvdGL0LUg0LfQsNC90LXRgdC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LLQstC+0LTQtSDQvdC10YHQutC+0LvRjNC60LjRhSDQtNCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9CU0LDQvdC90YvQtSDQtNC70Y8g0YDQsNC30L3Ri9GFINC00LDRgiDQstCy0LXQtNC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ9CS0LLQtdC00LXQvdC90LDRjyDQtNCw0YLQsCDQvdC10LLQtdGA0L3QsCEg0JfQsNC80LXQvdC10L3QsCDQvdCwINGC0LXQutGD0YnRg9GOISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00L3QuNC1INCy0YvQsdGA0LDQvdC90YvQtSDQv9GA0L7QtdC60YLRiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfQktGB0LUg0L/RgNC+0LXQutGC0YsnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmVwb3J0aW5nUHJvamVjdDog0KLRgNC10LHRg9C10YLRgdGPIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ9Cf0YDQvtC10LrRgiDRgdC+0YHRgtCw0LLQu9C10L3QuNGPINC+0YLRh9C10YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9Ce0YLRh9C10YLQvdC+0YHRgtGMJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ9CU0L7QsdCw0LLQu9C10L3QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQn9C70LDQvdC40YDQvtCy0LDQvdC40LUg0L7QsdC90L7QstC70LXQvdC+ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ9CX0LDQtNCw0YfQsCDQtNC+0LHQsNCy0LvQtdC90LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfQl9Cw0LTQsNGH0LAg0L7QsdC90L7QstC70LXQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfQndC10LLQtdGA0L3Ri9C5IFVzZXJJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQstGB0YLQsNCy0LjRgtGMINC00LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L7QsdC90L7QstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LTQvtCx0LDQstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn0KHRgtCw0YLRg9GBINC/0LXRgNC40L7QtNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaWV3OiDQotGA0LXQsdGD0LXRgtGB0Y8gICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ9Cd0LXQv9C+0LvQvdGL0LUg0YDQsNCx0L7Rh9C40LUg0LTQvdC4JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0JzQvtC00YPQu9GMINGD0LLQtdC00L7QvNC70LXQvdC40LksINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINC90LXQt9Cw0LLQtdGA0YjQtdC90L3Ri9GFINGA0LDQsdC+0YfQuNGFINC00L3QtdC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQmNC80LXQvdCwINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQvdC+0LLRi9GFINC00LXQudGB0YLQstC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9Cd0LDQt9Cy0LDQvdC40LUg0L3QvtCy0L7Qs9C+INC/0YDQvtC10LrRgtCwINC/0L4t0YPQvNC+0LvRh9Cw0L3QuNGOLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC00LDRgtGLINC+0LrQvtC90YfQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC00LDRgtGLINC90LDRh9Cw0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQvtC/0LjRgdCw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L7RgdGC0LDQstGI0LjRhdGB0Y8g0LTQvdC10LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L/QtdGA0LXRgNCw0LHQvtGC0LrQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGB0YLQsNC90LTQsNGA0YLQvdGL0YUg0YDQsNCx0L7Rh9C40YUg0YfQsNGB0L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0YHRgtCw0YLRg9GB0LAg0L3QvtCy0YvRhSDQtNC10LnRgdGC0LLQuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGB0YLQsNGC0YPRgdCwINC90L7QstGL0YUg0L/RgNC+0LXQutGC0L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDRgdGC0LDRgtGD0YHQsCDQvdC+0LLRi9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0L/RgNC+0LXQutGC0Ysg0LTQu9GPINC60L7RgtC+0YDRi9GFINGC0YDQtdCx0YPQtdGC0YHRjyDQt9Cw0L3QtdGB0LXQvdC40LUg0LfQsNC80LXRh9Cw0L3QuNC5LiDQldGB0LvQuCBSZWdFeHAg0LLQtdGA0L3QviDQtNC70Y8g0L/RgNC+0LXQutGC0LAsINCy0Ysg0LTQvtC70LbQvdGLINC00L7QsdCw0LLQuNGC0Ywg0LfQsNC80LXRh9Cw0L3QuNGPINGC0L7QttC1LiDQlNC70Y8gUmVnRXhwINC40YHQv9C+0LvRjNC30YPQudGC0LUg0L/QsNGA0LDQvNC10YLRgCBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIsINC80L7QttC10YIg0LvQuCDQvNC+0LTRg9C70Ywg0L7RgtGH0LXRgtC+0LIg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINC40L3RhNC+0YDQvNCw0YbQuNGOINC/0L4g0YPRh9C10YLRgyDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQt9Cw0L/QuNGB0Ywg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ9CU0LvRjyDQutCw0LrQvtCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0L/RgNC+0YjQtdC00YjQuNGFINC00L3QtdC5INCy0Ysg0LzQvtC20LXRgtC1INCy0L3QtdGB0YLQuCDQtNCw0L3QvdGL0LUg0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINC+0YLQvtCx0YDQsNC20LDRjtGC0YHRjyDRgtC+0LvRjNC60L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4LCDQutC+0YLQvtGA0YvQtSDQt9Cw0L3QvtGB0LjQu9C4INC30LDRgtGA0LDRgtGLINCy0YDQtdC80LXQvdC4INCyINCy0YvQsdGA0LDQvdC90YvQuSDQv9GA0L7QtdC60YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDQstGL0L/QsNC00LDRjtGJ0LjQtSDQv9C+0LvRjyDRgdC/0LjRgdC60LAg0L3QsCDRjdC60YDQsNC90LUg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQv9GA0LXQvtCx0YDQsNC30YPRjtGC0YHRjyDQsiDQvNC+0LTQtdGA0L3QuNC30LjRgNC+0LLQsNC90L3Ri9C1INC/0L7Qu9GPINCw0LLRgtC+0LfQsNCy0LXRgNGI0LXQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINGC0L4g0YTQuNC70YzRgtGAINC00LvRjyDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyINC80L7QttC10YIg0LHRi9GC0Ywg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvSDQstC80LXRgdGC0L4g0LTQstGD0YUg0YHQv9C40YHQutC+0LIgKNC/0L7RgdC70LXQtNC90LjRhSDQuCDQstGB0LXRhSDQv9GA0L7QtdC60YLQvtCyKS4g0K3RgtC+INC00L7RgdGC0YPQv9C90L4g0YLQvtC70YzQutC+INC10YHQu9C4INC/0LDRgNCw0LzQtdGC0YAgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uINCw0LrRgtC40LLQuNGA0L7QstCw0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDRgtC+INGE0LjQu9GM0YLRgCDQtNC70Y8g0L/RgNC10LTRi9C00YPRidC40YUg0L/RgNC+0LXQutGC0L7QsiDQstC60LvRjtGH0LXQvSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQv9GA0Lgg0L3QsNC70LjRh9C40LUg0L/RgNC10LTRi9C00YPRidC40YUg0L/RgNC+0LXQutGC0L7Qsi4g0K3RgtC+INC00L7RgdGC0YPQv9C90L4g0YLQvtC70YzQutC+INC10YHQu9C4INC/0LDRgNCw0LzQtdGC0YDRiyBFbmFibGVBdXRvQ29tcGxldGlvbiDQuCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyINCw0LrRgtC40LLQuNGA0L7QstCw0L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjiDRgNCw0LfRgNC10YjQtdC90L4g0LLQstC+0LTQuNGC0Ywg0LfQvdCw0YfQtdC90LjRjyAi0J7RgdGC0LDQu9C+0YHRjCDQsiDQvtGC0L/RgdC60LUiLCAi0J7RgdGC0LDQu9C+0YHRjCDQtNC90LXQuSDQv9C+INCx0L7Qu9C10LfQvdC4IiDQuCAi0J7RgdGC0LDQu9C+0YHRjCDQv9C10YDQtdGA0LDQsdC+0YLQutC4IiDQv9C+INC90LXRgdC60L7Qu9GM0LrQviDQtNCw0YIg0YHRgNCw0LfRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICfQnNCw0LrRgS4g0LrQvtC70LjRh9C10YHRgtCy0L4g0YDQsNCx0L7Rh9C40YUg0LTQvdC10LksINC/0L7RgdC70LUg0LrQvtGC0L7RgNGL0YUg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0Ysg0LTQvtC70LbQvdGLINCx0YvRgtGMINC30LDQvdC10YHQtdC90YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70YzQvdC+INC60L7Qu9C40YfQtdGB0YLQstC+INGA0LDQsdC+0YfQuNGFINC00L3QtdC5LCDQv9C+0YHQu9C1INC60L7RgtC+0YDQvtCz0L4g0LLRi9C00LDQtdGC0YHRjyDQv9GA0LXQtNGD0L/RgNC10LbQtNC10L3QuNC1INC+INGC0L7QvCwg0YfRgtC+INC00LDQvdC90YvQtSDQvdC1INCy0LLQvtC00LjQu9C40YHRjC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn0J7QsdC30L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ9Ce0YLRh9C10YIg0L4g0LLRgNC10LzQtdC90Lgg0L/QviDQv9GA0L7QtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDRgdC+0YHRgtCw0LLQu9C10L3QuNGPINGB0L/QuNGB0LrQsCDQtNC10LnRgdGC0LLQuNC5INCyINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjQuCDRgSDQstGL0LHRgNCw0L3QvdGL0Lwg0L/RgNC+0LXQutGC0L7QvC4g0JrQu9GO0Ycg0LTQvtC70LbQtdC9INGB0L7QtNC10YDQttCw0YLRjCDRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LTQu9GPINC/0YDQvtC10LrRgtCwKNC+0LIpLCDQodC+0LTQtdGA0LbQsNC90LjQtSAtINGA0LXQs9GD0LvRj9GA0L3Ri9C1INCy0YvRgNCw0LbQtdC90LjRjyDQtNC70Y8g0LTQtdC50YHRgtCy0LjRjyjQuSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ9Cg0LXQs9GD0LvRj9GA0L3Ri9C1INCy0YvRgNCw0LbQtdC90LjRjyDQtNC70Y8g0YHQvtGB0YLQsNCy0LvQtdC90LjRjyDRgdC/0LjRgdC60LAg0LTQtdC50YHRgtCy0LjQuSDQsiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0LPRgNGD0L/QvyDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS4g0JrQu9GO0Ycg0LTQvtC70LbQtdC9INGB0L7QtNC10YDQttCw0YLRjCDRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LTQu9GPINC/0YDQvtC10LrRgtCwKNC+0LIpLCDQodC+0LTQtdGA0LbQsNC90LjQtSAtINGB0L/QuNGB0L7QuiDQs9GA0YPQv9C/LCDRgNCw0LfQtNC10LvQtdC90L3Ri9GFINC30LDQv9GP0YLQvtC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCLCDQvNC+0LbQvdC+INC70Lgg0LfQsNC90L7RgdC40YLRjCDRgNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyDQsdC10Lcg0YPQutCw0LfQsNC90LjRjyDQstGA0LXQvNC10L3QuCDQvdCw0YfQsNC70LAg0Lgg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICfQrdGC0L7RgiDQvNC+0LTRg9C70Ywg0YPRgdC60L7RgNGP0LXRgiDQstCy0L7QtCDQtNCw0L3QvdGL0YUg0LIgVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn0JzQvtC00YPQu9GMINGD0LLQtdC00L7QvNC70LXQvdC40LksINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINC90LXQt9Cw0LLQtdGA0YjQtdC90L3Ri9GFINGA0LDQsdC+0YfQuNGFINC00L3QtdC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUg0LfQsNGC0YDQsNGCINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn0J7QsdC30L7RgCDQt9Cw0YLRgNCw0YIg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAn0J7RgtGH0LXRgtGLINC+INC30LDRgtGA0YLQsNGFINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0J3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfQn9GA0L7RgdC80L7RgtGAINC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ9Cj0YfQtdGCINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICfQlNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8sINC10YHQu9C4INC90LXQutC+0YLQvtGA0YvQtSDQtNC10LnRgdGC0LLQuNGPINGD0LzQtdC90YzRiNCw0Y7RgiDRgNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyAo0L3QsNC/0YDQuNC80LXRgCwg0LXRgdC70Lgg0YLQvtC70YzQutC+INC/0L7Qu9C+0LLQuNC90LAg0LLRgNC10LzQtdC90Lgg0LIg0L/Rg9GC0Lgg0L7Qv9C70LDRh9C40LLQsNC10YLRgdGPIC0gS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfQ3lybF9UaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDQt9Cw0LjRgdGC0LAg0LbQtdC70LjRgtC1INC00LAg0L7QsdGA0LjRiNC10YLQtSDQvtCx0YDQsNGH0YPQvSDQstGA0LXQvNC10L3QsCDQt9CwINC+0LLQsNGYINC00LDQvT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0KPRgNC10LTQuCDQstGA0LXQvNC10L3RgdC60Lgg0LfQsNC/0LjRgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ9CY0LTQuCDRgyDQv9C+0LTQtdGI0LDQstCw0ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQlNCw0YLRg9C80YHQutCwINC90LDQstC40LPQsNGG0LjRmNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNC10ZvQuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAn0JjQtNC4INC90LAg0L7QstCw0Zgg0LTQsNC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAn0JTQsNC90Lgg0LHQtdC3INGD0L3QvtGB0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn0KHQtdC70LXQutGC0YPRmCDRgdCy0LUg0LTQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQvdC4INGD0L3QvtGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JzQvtC70LjQvNC+INCS0LDRgSDQuNC30LDQsdC10YDQuNGC0LUg0YDQsNC30LvQvtCzINCy0LDRiNC10LMg0L7QtNGB0YPRgdGC0LLQsCDQt9CwINC40LfQsNCx0YDQsNC90LUg0LTQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQndCwINC+0LTQvNC+0YDRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAn0J3QsCDQsdC+0LvQvtCy0LDRmtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICfQnNC+0LvQuNC80L4g0JLQsNGBINC40LfQsNCx0LXRgNC40YLQtSDQsdCw0YAg0ZjQtdC00LDQvSDQtNCw0L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn0JzQvtC70LjQvNC+INCS0LDRgSDQuNC30LDQsdC10YDQuNGC0LUg0YDQsNC30LvQvtCzINCy0LDRiNC10LMg0L7QtNGB0YPRgdGC0LLQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQvdC4INGD0L3QvtGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0J7QsdCw0LLQtdC30L3QsCDQv9C+0ZnQsCDRgdGDINC+0LfQvdCw0YfQtdC90LAg0YHQsCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn0JzQvtGA0LDRgtC1INGD0L3QtdGC0Lgg0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDQuCDQt9Cw0LLRgNGI0LXRgtC60LAg0LjQu9C4INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfQl9Cw0LTQsNGC0LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQndCw0L/QvtC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ9Cc0L7Qu9C40LzQviDQtNCwINC00L7QtNCw0YLQtSDQvdCw0L/QvtC80LXQvdGDINC00YPQttGDINC+0LQgOCDQutCw0YDQsNC60YLQtdGA0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICfQktGA0LXQvNC1INC/0L7Rh9C10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LPQsNGC0LjQstC90LAg0LLRgNC10LzQtdC90LAg0L3QuNGB0YMg0LTQvtC30LLQvtGZ0LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J/QvtC90LDQstGZ0LDRmtC1INGB0LDRgtC4INC90LjRmNC1INC00L7Qt9Cy0L7RmdC10L3Qvi4g0JLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDRgdC1INC/0L7QutC70LDQv9CwINGB0LAg0LTRgNGD0LPQuNC8INC40L3RgtC10YDQstCw0LvQvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAn0J3QtdC40YHQv9GA0LDQstCw0L0g0YTQvtGA0LzQsNGCISDQnNC+0LvQuNC80L4g0LTQsCDRg9C90LXRgdC10YLQtSDQstGA0LXQvNC1INGDINGE0L7RgNC80LDRgtGDIOKAnkhIOk1N4oCdLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCDRmNC1INC00L7Qt9Cy0L7RmdC10L3QviDRgdCw0LzQviDQutCw0L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdC40YHQv9GA0LDQstC90L4g0LLRgNC10LzQtSEg0JTQsNC9INC40LzQsCDRgdCw0LzQviAyNCDRgdCw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICfQktGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn0JLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAg0LzQvtGA0LAg0LHQuNGC0Lgg0L3QsNC60L7QvSDQv9C+0YfQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQn9C+0L3QsNCy0ZnQsNGa0LUg0YHQsNGC0Lgg0L3QuNGY0LUg0LTQvtC30LLQvtGZ0LXQvdC+LiDQktGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsCDRgdC1INC/0L7QutC70LDQv9CwINGB0LAg0LTRgNGD0LPQuNC8INC40L3RgtC10YDQstCw0LvQvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdC40YHQv9GA0LDQstCw0L0g0L/QtdGA0LjQvtC0ISDQlNCw0L0g0LjQvNCwINGB0LDQvNC+IDI0INGB0LDRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9CY0YHQv9GA0LDQstCw0L0g0L/QtdGA0LjQvtC0INC80L7RgNCwINCx0LjRgtC4INCy0LXRm9C4INC+0LQg0L3Rg9C70LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQhINCd0LXQs9Cw0YLQuNCy0L3QuCDQv9C10YDQuNC+0LTQuCDQvdC40YHRgyDQtNC+0LfQstC+0ZnQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtC00LDRmCDRmNC10LTQsNC9INGA0LXQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ9Cj0LrRg9C/0L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9Cc0L7QttC10YLQtSDQuNC30LDQsdGA0LDRgtC4INGB0LDQvNC+INGY0LXQtNC90L4g0L/QvtGZ0LUg0LfQsCDQv9C+0YLQstGA0LTRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICfQn9GA0LjQutCw0LbQuCDRgdCy0LUg0YHRgtCw0LLQutC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQntCx0YDQuNGI0Lgg0YHRgtCw0LLQutGDINC+0LHRgNCw0YfRg9C90LAg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfQn9C+0YLQstGA0LTQuCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINCx0L7Qu9C+0LLQsNGa0YM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINC+0LTQvNC+0YDRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDRgdGC0LUg0YHQuNCz0YPRgNC90Lgg0LTQsCDRgdGC0LUg0YDQsNC00LjQu9C4INC00L7QuiDRgdGC0LUg0LHQuNC70Lgg0L3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQlNCwINC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LAg0YHRgtC1INGA0LDQtNC40LvQuCDQstC40YjQtSDQvtC0IDE2INGB0LDRgtC4Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0LzQtdGB0LXRh9C90L7QsyDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNCh0LDRgtC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10L7RgdGC0LDQu9C4INGB0LvQvtCx0L7QtNC90Lgg0LTQsNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7QtNC80L7RgCAo0JTQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQutC+0YDQuNGI0ZvQtdC9INC+0LTQvNC+0YAgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0LrQvtGA0LjRiNGb0LXQvSDQvtC00LzQvtGAICjRg9C60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ9Cf0YDQtdC+0YHRgtCw0L4g0L7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNCU0LDQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXRgtGF0L7QtNC90Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn0KHQu9C10LTQtdGb0Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0KDQsNC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQtNC90Lgg0KHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn0KPQutGD0L/QvdC+INGA0LDQtNC90LjRhSDRgdCw0YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfQn9GA0LXQs9C70LXQtCDQutC+0YDQuNGB0L3QuNGH0LrQvtCzINC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KHQsNGC0LggKNC80LXRgdC10YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KHQsNGC0LggKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQo9C60YPQv9Cw0L0g0LfQsdC40YAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQstGA0LXQvNC10L3Rgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn0J3QsNCy0LjQs9Cw0YbQuNGY0LAg0L/QviDQvNC10YHQtdGG0LjQvNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfQmNC00Lgg0L3QsCDQtNCw0YLRg9C8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC40LfQstC10YjRgtCw0ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0JzQtdGB0LXRh9C90Lgg0LfQsdC40YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQodCy0LXQs9CwINC00L4g0YHQsNC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQodC70L7QsdC+0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn0J7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0JHQvtC70L7QstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQn9GA0LXQvtGB0YLQsNC+INC+0LTQvNC+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0JjQt9Cy0LXRiNGC0LDRmNC4INC+INC/0YDQvtGY0LXQutGC0YMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ9CY0LfQstC10YjRgtCw0Zgg0L4g0L/RgNC+0ZjQtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQmNC00Lgg0L3QsCDQv9GA0LXQs9C70LXQtCDQuNC30LLQtdGI0YLQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0KLRgNC10L3Rg9GC0L3QviDRgdGDINC/0YDQuNC60LDQt9Cw0L3QuCDRgdCw0LzQviDQsNC60YLQuNCy0L3QuCDQutC+0YDQuNGB0L3QuNGG0Lgg0YMg0L7QstC+0Lwg0L/RgNC+0ZjQtdC60YLRgy4g0JfQsCDQv9GA0L7QvNC10L3RgyDQvtCy0LDQutCy0L7QsyDQv9C+0L3QsNGI0LDRmtCwLCDQvNC+0LvQuNC80L4g0JLQsNGBINCw0LbRg9GA0LjRgNCw0ZjRgtC1INC/0L7QtNC10YjQsNCy0LDRmtCwOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQotGA0LXQvdGD0YLQvdC+INGB0YMg0L/RgNC40LrQsNC30LDQvdC4INGB0LLQuCDQutC+0YDQuNGB0L3QuNGG0Lgg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsC4g0JfQsCDQv9GA0L7QvNC10L3RgyDQvtCy0LDQutCy0L7QsyDQv9C+0L3QsNGI0LDRmtCwLCDQvNC+0LvQuNC80L4g0LDQttGD0YDQuNGA0LDRmNGC0LUg0L/QvtC00LXRiNCw0LLQsNGa0LA6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAg0J/RgNC+0ZjQtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QtNCw0Zgg0L/RgNC+0ZjQtdC60LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ9CY0LTQuCDQvdCwINC/0YDQtdCz0LvQtdC0INC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn0JTQvtC00LDRmCDQn9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQn9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0L/RgNC+0ZjQtdC60LDRgiDRgdCwINGC0LjQvCDQuNC80LXQvdC+0LwuINCc0L7Qu9C40LzQviDQstCw0YEsINC40LfQsNCx0LXRgNC40YLQtSDQvdC10LrQviDQtNGA0YPQs9C+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICfQlNC+0LTQsNGYINC30LDQtNCw0YLQsNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAn0J3QvtCy0Lgg0LrQvtGA0LjRgdC90LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAn0KTQuNC70YLQtdGAINC30LAg0L/RgNC+0ZjQtdC60YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFRhc2tzJ30gPSAn0KTQuNC70YLQtdGAINC30LAg0LfQsNC00LDRgtC60LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ9Ck0LjQu9GC0LXRgCDQt9CwINC60L7RgNC40YHQvdC40LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9CS0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LTQuCDRgdC1INC90LUg0LzQvtCz0YMg0L7QsdGA0LjRgdCw0YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0JvQuNGB0YLQsCDQn9GA0L7RmNC10LrQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0JvQuNGB0YLQsCDQl9Cw0LTQsNGC0LDQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn0JTQvtC00LDRmCDQl9Cw0LTQsNGC0LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQo9GA0LXQtNC4INC/0L7QtNC10YjQsNCy0LDRmtCwINC30LDQtNCw0YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0LfQsNC00LDRgtCw0Log0YHQsCDRgtC40Lwg0LjQvNC10L3QvtC8LiDQnNC+0LvQuNC80L4g0LLQsNGBLCDQuNC30LDQsdC10YDQuNGC0LUg0L3QtdC60L4g0LTRgNGD0LPQvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0JvQuNGB0YLQsCDQmtC+0YDQuNGB0L3QuNC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICfQndC+0LLQsCDQutC+0YDQuNGB0L3QuNGH0LrQsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICfQo9GA0LXQtNC4INC60L7RgNC40YHQvdC40YfQutCwINC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAn0JrQvtC80LXQvdGC0LDRgNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfQn9GA0LjQutCw0LbQuCDQn9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9CU0L7Qt9Cy0L7Qu9C4INC60YDQtdC40YDQsNGa0LUg0L/RgNC+0ZjQtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICfQn9C+0YfQtdGC0LDQuiDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAn0JrRgNCw0Zgg0L/QtdGA0LjQvtC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ9CU0LDQvdC4INC+0LTQvNC+0YDQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ9Ch0LDRgtC4INC/0L4g0L3QtdC00LXRmdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICfQlNC+0LfQstC+0ZnQtdC90L4g0L/RgNC10LrQvtCy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfQlNCw0YLRg9C8INC/0L7Rh9C10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ9Cc0L7Qu9C40LzQviDQtNCwINGD0L3QtdGB0LXRgtC1INCy0LDQttC10ZvQuCDQtNCw0YLRg9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ9CU0LDRgtGD0Lwg0LfQsNCy0YDRiNC10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn0JrRgNCw0Zgg0L/QtdGA0LjQvtC00LAg0LzQvtGA0LAg0LHQuNGC0Lgg0L/QvtGB0LvQtSDQv9C+0YfQtdGC0LrQsCDQv9C10YDQuNC+0LTQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ9CU0LDQvdC4INC+0LTRgdGD0YHRgtCy0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn0KHQtdC00LzQuNGH0L3QuCDRgdCw0YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ9Cf0YDQtdC60L7QstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAn0J3QuNGB0YMg0L/RgNC+0L3QsNGS0LXQvdC4INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LTQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn0JTQvtC00LDRmCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ9Cf0YDQuNC60LDQtyDQstGA0LXQvNC10L3RgdC60L7QsyDQt9Cw0L/QuNGB0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0LjQutCw0LcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0J3QtdC80LAg0L/QvtC00LDRgtCw0LrQsCDQt9CwINC+0LLQsNGYINC00LDQvS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn0KDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1INGB0LUg0L3QtSDQvNC+0LPRgyDRg9C90LXRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00ZrQuCDQn9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0LzQvtCz0YMg0LTQsCDRgdCw0YfRg9Cy0LDQvCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDRmNC10YAg0LTQsNC9INC40LzQsCDRgdCw0LzQviAyNCDRgdCw0YLQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ9Cg0LDQtNC90LUg0ZjQtdC00LjQvdC40YbQtSDRgdC1INC90LUg0LzQvtCz0YMg0L7QsdGA0LjRgdCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICfQntCy0LDRmCDQtNCw0YLRg9C8INGY0LUg0LjQt9Cy0LDQvSDQs9GA0LDQvdC40YbQsCDQsNC70Lgg0LPQsCDQvdC40YHRgtC1INGY0L7RiCDRg9Cy0LXQuiDRg9C90LXQu9C4LCDQv9CwINC40LzQsNGC0LUg0ZjQvtGIINGY0LXQtNC90YMoISkg0YjQsNC90YHRgyDQt9CwINGD0L3QvtGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAn0J3QtdC/0L7RgtC/0YPQvdC4INGA0LDQtNC90Lgg0LTQsNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JzQvtC70LjQvNC+INCS0LDRgSDRg9C90LXRgdC40YLQtSDQstCw0YjQtSDRgNCw0LTQvdC+INCy0YDQtdC80LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ9Cj0YHQv9C10YjQvdC+INC00L7QtNCw0LLQsNGa0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfQk9GA0LXRiNC60LAg0L/RgNC4INGD0L3QvtGB0YMg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfQo9GB0L/QtdGI0L3QviDRg9Cx0LDRh9C10L3QuCDRg9C90L7RgdC4INC30LAg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn0KPQvdC10YLQuCDQtNCw0YLRg9C8INGY0LUg0L3QtdCy0LDQttC10ZvQuCEg0JTQsNGC0YPQvCDRmNC1INC/0YDQvtC80LXRmtC10L0g0L3QsCDQtNCw0L3QsNGI0ZrQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNGa0Lgg0LjQt9Cw0LHRgNCw0L3QuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ9Ch0LLQuCDQv9GA0L7RmNC10LrRgtC4JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUg0L4g0L/RgNC+0ZjQtdC60YLRgzog0J3QtdC+0L/RhdC+0LTQsNC9INGY0LUg0JjQlCDQv9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQv9GA0L7RmNC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn0JrQvtGA0LjRgdC90LjRh9C60LAg0L/QvtC00LXRiNCw0LLQsNGa0LAg0YHQtSDQvdC1INC80L7Qs9GDINCw0LbRg9GA0LjRgNCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICfQlNC+0LTQsNGCINC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQkNC20YPRgNC40YDQsNC9INC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn0JTQvtC00LDRgiDQt9Cw0LTQsNGC0LDQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ9CQ0LbRg9GA0LjRgNCw0L0g0LfQsNC00LDRgtCw0LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ9CY0JQg0LrQvtGA0LjRgdC90LjQutCwINC90LjRmNC1INCy0LDQttC10ZvQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAn0JrQvtGA0LjRgdC90LjRh9C60Lgg0L/QvtC00LDRhtC4INGB0LUg0L3QtSDQvNC+0LPRgyDRg9C90LXRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ9CS0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQg0YHQtSDQvdC1INC80L7QttC1INC00L7QtNCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ9CQ0LbRg9GA0LjRgNCw0L0g0LrQvtGA0LjRgdC90LjQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfQlNC+0LTQsNGCINC60L7RgNC40YHQvdC40LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAn0J3QvtCy0Lgg0LrQvtGA0LjRgdC90LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn0KHRgtCw0YLRg9GBINC/0LXRgNC40L7QtNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICfQn9GA0LjQutCw0Lc6INCf0L7RgtGA0LXQsdC90L4gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn0J3QtdC/0L7RgtC/0YPQvdC4INGA0LDQtNC90Lgg0LTQsNC90LgnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfQnNC+0LTRg9C7INC30LAg0L7QsdCw0LLQtdGI0YLQsNCy0LDRmtC1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsCDQutC+0ZjQuCDQv9GA0LjQutCw0LfRg9GY0LUg0LHRgNC+0Zgg0L3QtdC60L7QvNC/0LvQtdGC0L3QuNGFINGA0LDQtNC90LjRhSDQtNCw0L3QsCDQt9CwINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQuNC80LUg0L3QvtCy0LjRhSDQsNC60YbQuNGY0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC40LzQtSDQvdC+0LLQuNGFINC/0YDQvtGY0LXQutCw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC00LDRgtGD0Lwg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0YLRg9C8INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0L7Qv9C40YEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC00LDQvdC1INC+0LTRgdGD0YHRgtCy0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQv9GA0LXQutC+0LLRgNC10LzQtdC90Lgg0YDQsNC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDRgdGC0LDQvdC00LDRgNC00L3RgyDRgNCw0LTQvdGDINC90LXQtNC10ZnRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGB0YLQsNGC0YPRgSDQt9CwINC90L7QstC1INCw0LrRhtC40ZjQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQtSDQv9GA0L7RmNC10LrRgtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGB0YLQsNGC0YPRgSDQvdC+0LLQuNGFINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9GA0L7RmNC10LrRgtC1INC30LAg0LrQvtGY0LUg0ZjQtSDQvdCw0L/QvtC80LXQvdCwINC+0LHQsNCy0LXQt9C90LAuINCQ0LrQviDRgdC1IOKAnlJlZ0V4cOKAnSDQv9C+0LrQu9C+0L/QuCDQvdCwINC/0YDQvtGY0LXQutGC0YMsINC80L7RgNCw0YLQtSDRgtC10LrQvtGS0LUg0YPQvdC10YLQuCDQvdCw0L/QvtC80LXQvdGDLiDigJ5SZWdFeHDigJ0g0LrQvtGA0LjRgdGC0Lgg4oCec2144oCdINC/0LDRgNCw0LzQtdGC0LDRgC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGB0YLQsNGC0LjRgdGC0LjRh9C60Lgg0LzQvtC00YPQuyDQvNC+0LbQtSDQs9C10L3QtdGA0LjRgdCw0YLQuCDQuNC90YTQvtGA0LzQsNGG0LjRmNC1INC+INC+0LHRgNCw0YfRg9C90YMg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAn0JjQt9C80LXQvdC4INCy0YDQtdC80LXQvdGB0LrQuCDQt9Cw0L/QuNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICfQl9CwINC60L7Qu9C40LrQviDQtNCw0L3QsCDRg9C90LDQt9Cw0LQg0LzQvtC20LXRgtC1INGD0L3QtdGC0Lgg0YDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0L/RgNC40LrQsNC30LDQvdC4INGB0YMg0YHQsNC80L4g0LrQvtGA0LjRgdC90LjRhtC4INC60L7RmNC4INGB0YMg0LTQvtC00LDQu9C4INGA0LDQtNC90L4g0LLRgNC10LzQtSDRgyDQuNC30LDQsdGA0LDQvdC4INC/0YDQvtGY0LXQutCw0YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0L/QsNC00LDRmNGD0ZvQuCDQtdC70LXQvNC10L3RgtC4INC90LAg0LXQutGA0LDQvdGDINC30LAg0LjQt9C80LXQvdGDINGB0LUg0LzQtdGa0LDRmNGDINGDINC80L7QtNC10YDQvdC40LfQvtCy0LDQvdCwINGB0LDQvNC+0LTQvtCy0YDRiNCw0LLQsNGY0YPRm9CwINC/0L7RmdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0YTQuNC70YLQtdGAINC/0YDQtdGC0YXQvtC00L3QuNGFINC/0YDQvtGY0LXQutCw0YLQsCDRgdC1INC80L7QttC1INC60L7RgNC40YHRgtC40YLQuCDRg9C80LXRgdGC0L4g0LTQstC1INC70LjRgdGC0LUg0L/RgNC+0ZjQtdC60LDRgtCwICjQv9C+0YHQu9C10LTRmtC4INC4INGB0LLQuCkuINCc0L7QttC1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INGB0LDQvNC+INCw0LrQviDRmNC1IOKAnlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbuKAnSDQsNC60YLQuNCy0LjRgNCw0L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CQ0LrQviDRmNC1INCw0LrRgtC40LLQuNGA0LDQvdC+LCDRhNC40LvRgtC10YAg0L/RgNC10YLRhdC+0LTQvdC40YUg0L/RgNC+0ZjQtdC60LDRgtCwINGY0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LDQutGC0LjQstCw0L0g0LDQutC+INC40LzQsCDQv9GA0L7RmNC10LrQsNGC0LAg0L7QtCDQv9GA0LUuINCc0L7QttC1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INGB0LDQvNC+INCw0LrQviDRmNC1IOKAnkVuYWJsZUF1dG9Db21wbGV0aW9u4oCdINC4IOKAnlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXLigJ0g0LDQutGC0LjQstC40YDQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0LrQvtGA0LjRgdC90LjQutGDINGY0LUg0LTQvtC30LLQvtGZ0LXQvdC+INC00LAg0YPQvdC10YHQtSDigJ7QvdCwINC+0LTQvNC+0YDRg+KAnSwg4oCe0L3QsCDQsdC+0LvQvtCy0LDRmtGD4oCdINC4IOKAntC90LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsOKAnSDQvdCwINCy0LjRiNC1INC00LDRgtGD0LzQsCDQvtC00ZjQtdC00L3QvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdC4INCx0YDQvtGYINGA0LDQtNC90LjRhSDQtNCw0L3QsCDQv9C+0YHQu9C1INC60L7QsyDRgtGA0LXQsdCwINC00L7QtNCw0YLQuCDRgNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCDRgNCw0LTQvdC40YUg0LTQsNC90LAg0LHQtdC3INGD0L3QvtGB0LAg0YDQsNC00L3QuNGFINGY0LXQtNC40L3QuNGG0LAg0L/QvtGB0LvQtSDQutC+0LMg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90L4g0YPQv9C+0LfQvtGA0LXRmtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfQn9GA0LXQs9C70LXQtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICfQmNC30LLQtdGI0YLQsNCy0LDRmtC1INC+INCy0YDQtdC80LXQvdGDINC/0YDQvtGY0LXQutGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICfQoNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L7Qs9GA0LDQvdC40YfQsNCy0LDRmtC1INC70LjRgdGC0LUg0LDQutGG0LjRmNCwINC/0YDQtdC80LAg0LjQt9Cw0LHRgNCw0L3QuNC8INC/0YDQvtGY0LXQutGC0LjQvNCwLiDQmtGZ0YPRhyDRgdCw0LTRgNC20Lgg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQv9GA0L7RmNC10LrRgijQtSksINGDINGB0LDQtNGA0LbQsNGY0YMg0ZjQtSDRgNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQtyDQt9CwINCw0LrRhtC40ZjRgyjQtSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ9Cg0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC30Lgg0LfQsCDQvtCz0YDQsNC90LjRh9Cw0LLQsNGa0LUg0LvQuNGB0YLQtSDQsNC60YbQuNGY0LAg0L/RgNC10LzQsCDQuNC30LDQsdGA0LDQvdC40Lwg0LrQvtGA0LjRgdC90LjRh9C60LjQvCDQs9GA0YPQv9Cw0LzQsC4g0JrRmdGD0Ycg0YHQsNC00YDQttC4INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0L/RgNC+0ZjQtdC60YIo0LUpLCDRgyDRgdCw0LTRgNC20LDRmNGDINGY0LUg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQs9GA0YPQv9C1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQtNCwINC70Lgg0YDQsNC00L3QuCDRgdCw0YLQuCDQvNC+0LPRgyDQtNCwINGB0LUg0YPQvdC10YHRgyDQsdC10Lcg0LLRgNC10LzQtdC90LAg0L/QvtGH0LXRgtC60LAg0Lgg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICfQntCy0LDRmCDQvNC+0LTRg9C7INC90LDQvNC10ZvQtSDRg9C90L7RgSDRgyDQvtCx0YDQsNGH0YPQvSDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQntCy0LDRmCDQvNC+0LTRg9C7INC30LAg0L7QsdCw0LLQtdGI0YLQsNCy0LDRmtC1INC00LDRmNC1INGD0L/QvtC30L7RgNC10ZrQtSDQsNC60L4g0LjQvNCwINC/0YDQtdCy0LjRiNC1INC90LXQutC+0LzQv9C70LXRgtC90LjRhSDRgNCw0LTQvdC40YUg0LTQsNC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICfQo9GA0LXRktC40LLQsNGa0LUg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn0J/RgNC10LPQu9C10LQg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ9CY0LfQstC10YjRgtCw0ZjQuCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQn9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ9Ce0LHRgNCw0YfRg9C90LDQstCw0ZrQtSDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAn0JfQsCDRg9C/0L7RgtGA0LXQsdGDINCw0LrQviDQvdC10LrQtSDQsNC60YbQuNGY0LUg0YHQvNCw0ZrRg9GY0YMg0YDQsNC00L3QtSDRgdCw0YLQtSAo0L3QsCDQv9GA0LjQvNC10YAsINCw0LrQviDRgdC1INC/0LvQsNGb0LAg0YHQsNC80L4g0L/QvtC70LAg0LLRgNC10LzQtdC90LAg0L/Rg9GC0L7QstCw0ZrQsCDQmtGZ0YPRhyA9PiDQv9GD0YLQvtCy0LDRmtC1OyDQodCw0LTRgNC20LDRmCA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfTGF0bl9UaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ0RhIGxpIHphaXN0YSDFvmVsaXRlIGRhIG9icmnFoWV0ZSBvYnJhxI11biB2cmVtZW5hIHphIG92YWogZGFuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdVcmVkaSB2cmVtZW5za2kgemFwaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJZGkgdSBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW1za2EgbmF2aWdhY2lqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdQcmV0aG9kbmkgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnU2xlZGXEh2kgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ0lkaSBuYSBvdmFqIGRhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RhbmkgYmV6IHVub3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVrdHVqIHN2ZSBkYW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNvdm5pIHVub3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdNb2xpbW8gVmFzIGl6YWJlcml0ZSByYXpsb2cgdmHFoWVnIG9kc3VzdHZhIHphIGl6YWJyYW5lIGRhbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdOYSBvZG1vcnUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ05hIGJvbG92YW5qdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ05hIHNsb2JvZG5pbSBkYW5pbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ01vbGltbyBWYXMgaXphYmVyaXRlIGJhciBqZWRhbiBkYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnTW9saW1vIFZhcyBpemFiZXJpdGUgcmF6bG9nIHZhxaFlZyBvZHN1c3R2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc292bmkgdW5vcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ09iYXZlem5hIHBvbGphIHN1IG96bmHEjWVuYSBzYSAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnTW9yYXRlIHVuZXRpIHZyZW1lIHBvxI1ldGthIGkgemF2csWhZXRrYSBpbGkgdnJlbWVuc2tpIHBlcmlvZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla2F0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdaYWRhdGFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ05hcG9tZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ01vbGltbyBkYSBkb2RhdGUgbmFwb21lbnUgZHXFvnUgb2QgOCBrYXJha3RlcmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdWcmVtZSBwb8SNZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdm5hIHZyZW1lbmEgbmlzdSBkb3p2b2xqZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9uYXZsamFuamUgc2F0aSBuaWplIGRvenZvbGplbm8uIFZyZW1lIHBvxI1ldGthIHNlIHBva2xhcGEgc2EgZHJ1Z2ltIGludGVydmFsb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdOZWlzcHJhdmFuIGZvcm1hdCEgTW9saW1vIGRhIHVuZXNldGUgdnJlbWUgdSBmb3JtYXR1IOKAnkhIOk1N4oCdLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBqZSBkb3p2b2xqZW5vIHNhbW8ga2FvIHZyZW1lIHphdnLFoWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmVpc3ByYXZubyB2cmVtZSEgRGFuIGltYSBzYW1vIDI0IHNhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnVnJlbWUgemF2csWhZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVnJlbWUgemF2csWhZXRrYSBtb3JhIGJpdGkgbmFrb24gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9uYXZsamFuamUgc2F0aSBuaWplIGRvenZvbGplbm8uIFZyZW1lIHphdnLFoWV0a2Egc2UgcG9rbGFwYSBzYSBkcnVnaW0gaW50ZXJ2YWxvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05laXNwcmF2YW4gcGVyaW9kISBEYW4gaW1hIHNhbW8gMjQgc2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdJc3ByYXZhbiBwZXJpb2QgbW9yYSBiaXRpIHZlxIdpIG9kIG51bGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWlzcHJhdmFuIHBlcmlvZCEgTmVnYXRpdm5pIHBlcmlvZGkgbmlzdSBkb3p2b2xqZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0RvZGFqIGplZGFuIHJlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1VrdXBubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ01vxb5ldGUgaXphYnJhdGkgc2FtbyBqZWRubyBwb2xqZSB6YSBwb3R2cmR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ1ByaWthxb5pIHN2ZSBzdGF2a2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ09icmnFoWkgc3Rhdmt1IG9icmHEjXVuYSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnUG90dnJkaSB1bm9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdEYSBsaSBzdGUgc2lndXJuaSBkYSBzdGUgcmFkaWxpIGRvayBzdGUgYmlsaSBuYSBib2xvdmFuanU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSBkb2sgc3RlIGJpbGkgbmEgb2Rtb3J1Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSBkb2sgc3RlIGJpbGkgbmEgc2xvYm9kbmltIGRhbmltYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSB2acWhZSBvZCAxNiBzYXRpPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnUHJlZ2xlZCBtZXNlxI1ub2cgb2JyYcSNdW5hIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ1ByZWtvdnJlbWVubyAoU2F0aSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnUHJla292cmVtZW5vIChvdmFqIG1lc2VjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnUHJla292cmVtZW5vICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1ByZW9zdGFsaSBzbG9ib2RuaSBkYW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ09kbW9yIChEYW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdJc2tvcmnFocSHZW4gb2Rtb3IgKG92YWogbWVzZWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdJc2tvcmnFocSHZW4gb2Rtb3IgKHVrdXBubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnUHJlb3N0YW8gb2Rtb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdCb2xvdmFuamUgKERhbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQm9sb3ZhbmplIChvdmFqIG1lc2VjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdCb2xvdmFuamUgKHVrdXBubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdQcmV0aG9kbmkgbWVzZWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ1NsZWRlxIdpIG1lc2VjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdSYWRuaSBkYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ1JhZG5pIFNhdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVWt1cG5vIHJhZG5paCBzYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1ByZWdsZWQga29yaXNuacSNa29nIHByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ1NhdGkgKG1lc2XEjW5vKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnU2F0aSAodWt1cG5vKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1VrdXBhbiB6YmlyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ0l6dmXFoXRhdmFuamUgbyB2cmVtZW51JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2FjaWphIHBvIG1lc2VjaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdJZGkgbmEgZGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnS29yaXNuacSNa2kgaXp2ZcWhdGFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnTWVzZcSNbmkgemJpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1N2ZWdhIGRvIHNhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdTbG9ib2RuaSBkYW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnT2Rtb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0JvbG92YW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdQcmVvc3RhbyBvZG1vcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdJenZlxaF0YWppIG8gcHJvamVrdHUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ0l6dmXFoXRhaiBvIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lkaSBuYSBwcmVnbGVkIGl6dmXFoXRhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdUcmVudXRubyBzdSBwcmlrYXphbmkgc2FtbyBha3Rpdm5pIGtvcmlzbmljaSB1IG92b20gcHJvamVrdHUuIFphIHByb21lbnUgb3Zha3ZvZyBwb25hxaFhbmphLCBtb2xpbW8gVmFzIGHFvnVyaXJhanRlIHBvZGXFoWF2YW5qYTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVHJlbnV0bm8gc3UgcHJpa2F6YW5pIHN2aSBrb3Jpc25pY2kgb2JyYcSNdW5hIHZyZW1lbmEuIFphIHByb21lbnUgb3Zha3ZvZyBwb25hxaFhbmphLCBtb2xpbW8gYcW+dXJpcmFqdGUgcG9kZcWhYXZhbmphOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEgUHJvamVrdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdEb2RhaiBwcm9qZWthdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lkaSBuYSBwcmVnbGVkIHBvZGXFoWF2YW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0RvZGFqIFByb2pla2F0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0l6bWVuaSBwb2RlxaFhdmFuamEgUHJvamVrdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1ZlxIcgcG9zdG9qaSBwcm9qZWthdCBzYSB0aW0gaW1lbm9tLiBNb2xpbW8gdmFzLCBpemFiZXJpdGUgbmVrbyBkcnVnby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdEb2RhaiB6YWRhdGFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTm92aSBrb3Jpc25payc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnRmlsdGVyIHphIHByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0ZXIgemEgemFkYXRrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdGVyIHphIGtvcmlzbmlrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ1ZyZW1lbnNraSBwZXJpb2RpIHNlIG5lIG1vZ3Ugb2JyaXNhdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIFByb2pla2F0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBaYWRhdGFrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0RvZGFqIFphZGF0YWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnVXJlZGkgcG9kZcWhYXZhbmphIHphZGF0a2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1ZlxIcgcG9zdG9qaSB6YWRhdGFrIHNhIHRpbSBpbWVub20uIE1vbGltbyB2YXMsIGl6YWJlcml0ZSBuZWtvIGRydWdvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBLb3Jpc25pa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdOb3ZhIGtvcmlzbmnEjWthIHBvZGXFoWF2YW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdVcmVkaSBrb3Jpc25pxI1rYSBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdLb21lbnRhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ByaWthxb5pIFByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnRG96dm9saSBrcmVpcmFuamUgcHJvamVrdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUG/EjWV0YWsgcGVyaW9kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnS3JhaiBwZXJpb2RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEYW5pIG9kbW9yYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1NhdGkgcG8gbmVkZWxqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnRG96dm9samVubyBwcmVrb3ZyZW1lbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdHVtIHBvxI1ldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ01vbGltbyBkYSB1bmVzZXRlIHZhxb5lxIdpIGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdHVtIHphdnLFoWV0a2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdLcmFqIHBlcmlvZGEgbW9yYSBiaXRpIHBvc2xlIHBvxI1ldGthIHBlcmlvZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEYW5pIG9kc3VzdHZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1NlZG1pxI1uaSBzYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnUHJla292cmVtZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdOaXN1IHByb25hxJFlbmkgdnJlbWVuc2tpIHBlcmlvZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0RvZGFqIHZyZW1lbnNraSBwZXJpb2QnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUHJpa2F6IHZyZW1lbnNrb2cgemFwaXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUHJpa2F6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05lbWEgcG9kYXRha2EgemEgb3ZhaiBkYW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ1JhZG5lIGplZGluaWNlIHNlIG5lIG1vZ3UgdW5ldGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdQb3NsZWRuamkgUHJvamVrdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmUgbW9ndSBkYSBzYcSNdXZhbSBwb2RlxaFhdmFuamEgamVyIGRhbiBpbWEgc2FtbyAyNCBzYXRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnUmFkbmUgamVkaW5pY2Ugc2UgbmUgbW9ndSBvYnJpc2F0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdPdmFqIGRhdHVtIGplIGl6dmFuIGdyYW5pY2EgYWxpIGdhIG5pc3RlIGpvxaEgdXZlayB1bmVsaSwgcGEgaW1hdGUgam/FoSBqZWRudSghKSDFoWFuc3UgemEgdW5vcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ05lcG90cHVuaSByYWRuaSBkYW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ01vbGltbyBWYXMgdW5lc2l0ZSB2YcWhZSByYWRubyB2cmVtZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnVXNwZcWhbm8gZG9kYXZhbmplISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnR3JlxaFrYSBwcmkgdW5vc3UgdmnFoWUgZGF0dW1hISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdVc3BlxaFubyB1YmHEjWVuaSB1bm9zaSB6YSB2acWhZSBkYXR1bWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdVbmV0aSBkYXR1bSBqZSBuZXZhxb5lxIdpISBEYXR1bSBqZSBwcm9tZW5qZW4gbmEgZGFuYcWhbmppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnUG9zbGVkbmppIGl6YWJyYW5pIHByb2pla3RpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1N2aSBwcm9qZWt0aSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdJenZlxaF0YXZhbmplIG8gcHJvamVrdHU6IE5lb3Bob2RhbiBqZSBJRCBwcm9qZWt0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ0l6dmXFoXRhdmFuamUgbyBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdJenZlxaF0YXZhbmplJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0tvcmlzbmnEjWthIHBvZGXFoWF2YW5qYSBzZSBuZSBtb2d1IGHFvnVyaXJhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnRG9kYXQgcHJvamVrYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdBxb51cmlyYW4gcHJvamVrYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnRG9kYXQgemFkYXRhayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0HFvnVyaXJhbiB6YWRhdGFrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdJRCBrb3Jpc25pa2EgbmlqZSB2YcW+ZcSHaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnS29yaXNuacSNa2kgcG9kYWNpIHNlIG5lIG1vZ3UgdW5ldGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnVnJlbWVuc2tpIHBlcmlvZCBzZSBuZSBtb8W+ZSBkb2RhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdBxb51cmlyYW4ga29yaXNuaWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnRG9kYXQga29yaXNuaWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTm92aSBrb3Jpc25payc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIHBlcmlvZGEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1ByaWthejogUG90cmVibm8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnTmVwb3RwdW5pIHJhZG5pIGRhbmknOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bCB6YSBvYmF2ZcWhdGF2YW5qZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhIGtvamkgcHJpa2F6dWplIGJyb2ogbmVrb21wbGV0bmloIHJhZG5paCBkYW5hIHphIGtvcmlzbmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdQb2RyYXp1bWV2YW5vIGltZSBub3ZpaCBha2NpamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbm8gaW1lIG5vdmloIHByb2pla2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdQb2RyYXp1bWV2YW5vIHBvZGXFoWF2YW5qZSB6YSBkYXR1bSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgZGF0dW0gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgb3Bpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIGRhbmUgb2RzdXN0dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgcHJla292cmVtZW5pIHJhZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIHN0YW5kYXJkbnUgcmFkbnUgbmVkZWxqdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgYWtjaWplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgcHJvamVrdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnUG9kcmF6dW1ldmFuaSBzdGF0dXMgbm92aWgga29yaXNuaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdPZHJlxJF1amUgcHJvamVrdGUgemEga29qZSBqZSBuYXBvbWVuYSBvYmF2ZXpuYS4gQWtvIHNlIOKAnlJlZ0V4cOKAnSBwb2tsb3BpIG5hIHByb2pla3R1LCBtb3JhdGUgdGVrb8SRZSB1bmV0aSBuYXBvbWVudS4g4oCeUmVnRXhw4oCdIGtvcmlzdGkg4oCec2144oCdIHBhcmFtZXRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBkYSBsaSBzdGF0aXN0acSNa2kgbW9kdWwgbW/FvmUgZ2VuZXJpc2F0aSBpbmZvcm1hY2lqZSBvIG9icmHEjXVudSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnSXptZW5pIHZyZW1lbnNraSB6YXBpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnWmEga29saWtvIGRhbmEgdW5hemFkIG1vxb5ldGUgdW5ldGkgcmFkbmUgamVkaW5pY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwcmlrYXphbmkgc3Ugc2FtbyBrb3Jpc25pY2kga29qaSBzdSBkb2RhbGkgcmFkbm8gdnJlbWUgdSBpemFicmFuaSBwcm9qZWthdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwYWRhanXEh2kgZWxlbWVudGkgbmEgZWtyYW51IHphIGl6bWVudSBzZSBtZW5qYWp1IHUgbW9kZXJuaXpvdmFuYSBzYW1vZG92csWhYXZhanXEh2EgcG9samEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBmaWx0ZXIgcHJldGhvZG5paCBwcm9qZWthdGEgc2UgbW/FvmUga29yaXN0aXRpIHVtZXN0byBkdmUgbGlzdGUgcHJvamVrYXRhIChwb3NsZWRuamkgaSBzdmkpLiBNb8W+ZSBzZSBrb3Jpc3RpdGkgc2FtbyBha28gamUg4oCeVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9u4oCdIGFrdGl2aXJhbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdBa28gamUgYWt0aXZpcmFubywgZmlsdGVyIHByZXRob2RuaWggcHJvamVrYXRhIGplIHBvZHJhenVtZXZhbm8gYWt0aXZhbiBha28gaW1hIHByb2pla2F0YSBvZCBwcmUuIE1vxb5lIHNlIGtvcmlzdGl0aSBzYW1vIGFrbyBqZSDigJ5FbmFibGVBdXRvQ29tcGxldGlvbuKAnSBpIOKAnlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXLigJ0gYWt0aXZpcmFuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBrb3Jpc25pa3UgamUgZG96dm9samVubyBkYSB1bmVzZSDigJ5uYSBvZG1vcnXigJ0sIOKAnm5hIGJvbG92YW5qdeKAnSBpIOKAnm5hIHNsb2JvZG5pbSBkYW5pbWHigJ0gbmEgdmnFoWUgZGF0dW1hIG9kamVkbm9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmkgYnJvaiByYWRuaWggZGFuYSBwb3NsZSBrb2cgdHJlYmEgZG9kYXRpIHJhZG5lIGplZGluaWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIHJhZG5paCBkYW5hIGJleiB1bm9zYSByYWRuaWggamVkaW5pY2EgcG9zbGUga29nIMSHZSBiaXRpIHByaWthemFubyB1cG96b3JlbmplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcmVnbGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ0l6dmXFoXRhdmFuamUgbyB2cmVtZW51IHByb2pla3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWxhcm5pIGl6cmF6aSB6YSBvZ3JhbmnEjWF2YW5qZSBsaXN0ZSBha2NpamEgcHJlbWEgaXphYnJhbmltIHByb2pla3RpbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgYWtjaWp1KGUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bGFybmkgaXpyYXppIHphIG9ncmFuacSNYXZhbmplIGxpc3RlIGFrY2lqYSBwcmVtYSBpemFicmFuaW0ga29yaXNuacSNa2ltIGdydXBhbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgZ3J1cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdPZHJlxJF1amUgZGEgbGkgcmFkbmkgc2F0aSBtb2d1IGRhIHNlIHVuZXN1IGJleiB2cmVtZW5hIHBvxI1ldGthIGkgemF2csWhZXRrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnT3ZhaiBtb2R1bCBuYW1lxIdlIHVub3MgdSBvYnJhxI11biB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ092YWogbW9kdWwgemEgb2JhdmXFoXRhdmFuamUgZGFqZSB1cG96b3JlbmplIGFrbyBpbWEgcHJldmnFoWUgbmVrb21wbGV0bmloIHJhZG5paCBkYW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnVXJlxJFpdmFuamUgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1ByZWdsZWQgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdJenZlxaF0YWppIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdQb2RlxaFhdmFuamEgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnUHJlZ2xlZCBvYnJhxI11bmF2YW5qYSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnT2JyYcSNdW5hdmFuamUgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnWmEgdXBvdHJlYnUgYWtvIG5la2UgYWtjaWplIHNtYW5qdWp1IHJhZG5lIHNhdGUgKG5hIHByaW1lciwgYWtvIHNlIHBsYcSHYSBzYW1vIHBvbGEgdnJlbWVuYSBwdXRvdmFuamEgS2xqdcSNID0+IHB1dG92YW5qZTsgU2FkcsW+YWogPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3ZfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnR8OlIHRpbGwgaW5zdMOkbGxuaW5nYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW0tbmF2aWdlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGw7ZyZWfDpWVuZGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTsOkc3Rrb21tYW5kZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnR8OlIHRpbGwgZGV0IGjDpHIgZGF0dW1ldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdWw6RsaiBhbGxhIGRhZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdQw6Ugc2VtZXN0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1NqdWtsZWRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVsOkbmxpZ2VuIHbDpGxqIMOldG1pbnN0b25lIGVuIGRhZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6RubGlnZW4gdsOkbGogZW4gYW5sZWRuaW5nIGbDtnIgZnLDpW52YXJvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdVcHBkcmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0FubcOkcmsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdTdGFydHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdmEgdGlkZXIgw6RyIGludGUgdGlsbMOldG5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPZ2lsdGlndCBmb3JtYXQhIFbDpG5saWdlbiBmeWxsIGkgZW4gdGlkIG1lZCBmb3JtYXRldCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnT2dpbHRpZyB0aWQhIEV0dCBkeWduIGhhciBiYXJhIDI0IHRpbW1hci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ8OWdmVydGlkIChUaW1tYXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdTZW1lc3RlciAoRGFnYXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVmFyIHbDpG5saWcgZnlsbCBpIGRpbmEgYXJiZXRzdGltbWFyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3dfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdKZSB1bmF0YWthIGt1ZnV0YSBVaGFzaWJ1IHdhIE11ZGEga3dhIHNpa3UgeWEgbGVvPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdIYXJpcmkgcmVrb2RpIHlhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdOZW5kYSBrd2VueWUgbXBhbmdpbGlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ1VhYmlyaSB3YSB0YXJlaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnU2lrdSBpbGl5b3BpdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdTaWt1IGluYXlvZndhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnTmVuZGEga3dlbnllIGhpaSB0YXJlaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdTaWt1IHppc2l6b2t1d2EgbmEgbWFpbmdpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnQ2hhZ3VhIHNpa3Ugem90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5naXpvIGxhIHBhbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1RhZmFkaGFsaSBjaGFndWEgc2FiYWJ1IHlhIGt1dG9rdXdlcG8ga3dhIHNpa3UgemlsaXpvIGNoYWd1bGl3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0thdGlrYSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0thdGlrYSBydWh1c2EgeWEgd2Fnb25qd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdLYXRpa2EgcnVodXNhIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgamFwbyBzaWt1IG1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdUYWZhZGhhbGkgY2hhZ3VhIHNhYmFidSB5YSBrdXRvIGt1d2VwbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0luZ2l6byBsYSBwYW1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdTZWhlbXUgemluYXpvdGFraXdhIHppbmEgYWxhbWEgIioiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVW5hdGFraXdhIGt1amF6YSBtdWRhIHdhIGt1YW56YSBuYSBrdW1hbGl6YSBhdSBtdWRhIHVsaW90dW1pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdNcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnS2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdNYW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ011ZGEgd2EgS3VhbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdNdWRhIGhhc2kgaGF1cnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNdWRhIHVsaW9qaXJ1ZGlhIGhhdXJ1aHVzaXdpLiBNdWRhIHdhIGt1YW56YSB1bmFmYW5hbmEgbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ011dW5kbyBiYXRpbGkhIFRhZmFkaGFsaSBpbmdpemEgbXVkYSBuYSBtdXVuZG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGluYXJ1aHVzaXdhIGthdGlrYSBtdWRhIHdhIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICdNdWRhIHdhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdNdWRhIHdhIGt1bWFsaXphIGxhemltYSB1d2UgYmFhZGEgeWEgbXVkYSB3YSBrdWFuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTWFzYWEgeWFsaXlvamlydWRpYSBoYXlhcnVodXNpd2kuIE11ZGEgd2Ega3VtYWxpemEgdW5hZmFuYW5hIG11ZGEgbXdpbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdNdWRhIGJhdGlsaSEgU2lrdSBpbmEgbWFzYWEgMjQgdHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnTXVkYSBoYWxhbGkgdW5hIG1hc2FhIHphaWRpIHlhIHNpZnVyaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ0tpcGluZGkgYmF0aWxpISBWaXBpbmRpIGhhc2kgaGF2aXJ1aHVzaXdpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ09uZ2V6YSBzYWZ1IG1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICdKdW1sYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1VuYXdlemEga3VjaGFndWEgZWxlbWVudGkgbW9qYSBrYXRpa2EgY2hla2kgYm9rc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdPbnllc2hhIHZpcGVuZ2VsZSB2eW90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRnV0YSBpbmdpem8gbGEgVWhhc2lidSB3YSBNdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnSGFraWtpIGluZ2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6byB5YSB3YWdvbmp3YT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdVbmEgdWhha2lrYSB1bGlmYW55YSBrYXppIHdha2F0aSB1cG8gbGlraXpvPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6byB5YSBtdWRhIHdhIG55b25nZXphPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdVbmEgdWhha2lrYSB1bGlmYW55YSBrYXppIHphaWRpIHlhIG1hc2FhIDE2Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTWFwaXRpbyB5YSBtd2V6aSB5YSB1YXJpZnUgd2EgbXVkYSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ011ZGEgd2EgbnlvZ25lemEgKE1hc2FhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdNdWRhIHdhIG55b25nZXphIChtd2V6aSBodXUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdNdWRhIHdhIG55b25nZXphIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnTXVkYSB1bGlvYmFraSB3YSBsaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdMaWtpem8gKHNpa3UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0xpa2l6byBpbGl5b2NodWt1bGl3YSAobXdlemkgaHV1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnTGlraXpvIGlsaXlvY2h1a3VsaXdhIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnTGlraXpvIGlsaXlvYmFraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSAoc2lrdSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWtpem8geWEgd2Fnb25qd2EgaWxpeW9jaHVrdWxpd2EgKG13ZXppIGh1dSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGlraXpvIHlhIHdhZ29uandhIGlsaXlvY2h1a3VsaXdhIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNd2V6aSB1bGlvcGl0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTXdlemkgdWphbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnU2lrdSB6YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdNYXNhYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0p1bWxhIHlhIG1hc2FhIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnTWFwaXRpbyB5YSBtcmFkaSB3YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdNYXNhYSAoa3dhIG13ZXppKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnTWFzYWEgKG11ZGEgd290ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdKdW1sYSBrdXUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVWFyaWZ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ1VhYmlyaSB3YSBtd2V6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnTmVuZGEgdGFyZWhlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JpcG90aSB6YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSnVtbGEgeWEgbXdlemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdKdW1sYSB5YSBtdWRhIHdvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdMaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0xpa2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnTGlraXpvIHlhIHdhZ29uandhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0xpa2l6byBpbGl5b2Jha2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmlwb3RpIHphIG1yYWRpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSaXBvdGkgeWEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnTmVuZGEga3dlbnllIG1hcGl0aW8geWEgdWFyaWZ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnS3dhIHNhc2Egd2F0dW1pYWppIGFtaWxpZnUgdHUga2F0aWthIG1yYWRpIGh1dSB3YXRhb255ZXNod2EuIEt1YmFkaWxpc2hhIHRhYmlhIGhpaSwgdGFmYWRoYWxpIHNhc2lzaGEgbXBhbmdhbGlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdLd2Egc2FzYSB3YXR1bWlhamkgd290ZSB3YSBtdWRhIHVsaW9oZXNhYmlrYSB3YXRhb255ZXNod2EuIEt1YmFkaWxpc2hhIHRhYmlhIGhpaSwgdGFmYWRoYWxpIHNhc2lzaGEgbXBhbmdhbGlvLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdIYXJpcmkgVWhhc2lidSB3YSBNdWRhIGt3ZW55ZSBtaXBhbmdpbGlvIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnT25nZXphIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnTmVuZGEga3dlbnllIG1hcGl0aW8geWEgbXBhbmdpaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdPbmdlemEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1RheWFyaSBrdW5hIG1yYWRpIHdlbnllIGhpbGkgamluYS4gVGFmYWRoYWxpLCBjaGFndWEgamVuZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdIYXJpcmkgbWlwYW5naWxpbyB5YSBVaGFzdWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdPbmdlemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ010dW1pYWppIG1weWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0tpY2h1amlvIGNoYSBNaXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0tpY2h1amlvIGNoYSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVXNlcnMnfSA9ICdLaWNodWppbyBjaGEgV2F0dW1pYWppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ09yb2RoYSB5YSBtaXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnT3JvZGhhIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdPbmdlemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdIYXJpcmkgbWlwYW5naWxpbyB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdUYXlhcmkga3VuYSBrYXppIHllbnllIGhpbGkgamluYS4gVGFmYWRoYWxpIGNoYWd1YSBqZW5naW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdPcm9kaGEgeWEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdNaXBhbmdpbGlvIHlhIG10dW1pYWppIG1weWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdNYW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnT255ZXNoYSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdSdWh1c3UgdXRlbmdlbmV6YWppIHdhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0t1YW56YSBrd2Ega2lwZW5nZWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLdWlzaGEga3dhIGtpcGVuZ2VsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnU2lrdSB6YSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdNYXNhYSBrd2Egd2lraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSB1bGlvcnVodXNpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1RhcmVoZSB5YSBrdWFuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSB0YXJlaGUgaGFsYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnVGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnTXdpc2hvIHdhIGtpcGVuZ2VsZSBsYXppbWEgdXdlIGJhYWRhIHlhIG13YW56byB3YSBraXBlbmdlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1Npa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ01hc2FhIHlhIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdNdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdIYWt1bmEgdmlwZW5nZWxlIHZ5YSBtdWRhIHZpbGl2eW9wYXRpa2FuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdPbmdlemEga2lwZW5nZWxlIGNoYSBtdWRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ09ueWVzaGEga2lwZW5nZWxlIGNoYSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnTXVvbmVrYW5vIHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0hha3VuYSBkYXRhIHppbGl6b3BhdGlrYW5hIGt3YSBzaWt1IGhpaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdUYWZhZGhhbGkgaW5naXphIG1hc3NhYSB5YSBrYXppISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbmdpem8gbGltZWZhbmlraXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdLb3NhIGthdGlrYSBrdWluZ2l6YSB0YXJlaGUgemFpZGkgeWEgbW9qYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnTWFpbmdpem8geWFsaXlvZmFuaWtpd2Ega3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnSW5naXpvIGxhIHRhcmVoZSBuaSBiYXRpbGkhIFRhcmVoZSBpbWViYWRpbGlzaHdhIGxlby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1VhcmlmdSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bGkgeWEgdGFhcmlmYSBrd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEga3VvbmEgaWRhZGkgeWEgc2lrdSB6YSBrYXppIHphIG10dW1pYWppIHppc2l6byBrYW1pbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnSmluYSBsYSBjaGFndW8tbXNpbmdpIGt3YSB2aXRlbmRvIHZpcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdKaW5hIGxhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NoYWd1by1tc2luZ2kga3dhIG1pcGFuZ2lsaW8geWEgdGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDaGFndW8tbXNpbmdpIGt3YSBtaXBhbmdpbGlvIHlhIHRhcmVoZSB5YSBrdWFuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ2hhZ3VvLW1zaW5naSBrd2EgbWlwYW5naWxpbyB5YSBtYWVsZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIHNpa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ2hhZ3VvLW1zaW5naSBsYSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIG1pcGFuZ2lsaW8geWEgc2lrdSB6YSBrYXdhaWRhIHphIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0hhbGkgeWEgY2hhZ3VvLW1zaW5naSBrd2Egdml0ZW5kbyB2aXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIHdhdHVtaWFqaSB3YXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBtaXJhZGkgYW1iYXlvIG1hb25pIHlhbmFoaXRhamlrYS4gS2FtYSBSZWdFeHAgaW5hZmFuYW5hIGthdGlrYSBtcmFkaSwgdW5hdGFraXdhIGt1d2VrYSBtYW9uaSBwaWEuIFJlZ0V4cCBpbmF0dW1pYSBwYXJhbWV0YSB5YSBzbXgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0luYWhha2lraSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IGluYXdlemEga3V0ZW5nZW5lemEgdGFhcmlmYSB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdLd2Egc2lrdSBuZ2FwaSB6aWxpem9waXRhIHVuYXdlemEga3VpbmdpemEgdml0ZW5nbyB2eWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgd2F0dW1pYWppIHdhbGlvd2VrYSBtdWRhIHdhIGthemkga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EgbmRpbyB3YXRhb255ZXNod2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgbXR1bWlhamkgYW5hcnVodXNpd2Ega3VpbmdpemEgImt3ZW55ZSBsaWtpem8iLCAia3dlbnllIGxpa2l6byB5YSB3YWdvbmp3YSIsICJrd2VueWUgbGlraXpvIHlhIHNpa3UgemEgbnlvbmdlemEiIGt3YSB0YXJlaGUgemFpZGkgeWEgbW9qYSBrd2EgbWt1cHVvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0tpbWEgY2hhIGp1dSBjaGEgc2lrdSB6YSBrYXppIGJhYWRhIHlhIHZpdGVuZ28gdnlhIGthemkga3VpbmdpendhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnS2ltYSBjaGEganV1IGNoYSBzaWt1IHphIGthemkgYmlsYSB5YSB2aXRlbmdvIHZ5YSBrYXppIGt1aW5naXp3YSBhbWJhdnlvICBvbnlvIGxpdGFvbnllc2h3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YW5heW8ga3dhbWlzaGEgb3JvZGhhIHlhIHZpdGVuZG8ga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EuIFVmdW5ndW8gdW5hIG1hbmVubyB5YSBrYXdhaWRhIHlhIG1yYWRpIChtaXJhZGkpLCBtYXVkaHVpIHlhbmEgbWFuZW5vIHlhIGthd2FpZGEgeWEga2l0ZW5kbyAodml0ZW5kbykuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YSBrdXp1aWEgb3JvZGhhIHlhIG1yYWRpIGt1ZW5kYW5hIG5hIG1ha3VuZGkgeWEgd2F0dW1pYWppLiBVZnVuZ3VvIHVuYSBtYW5lbm8geWEga2F3YWlkYSB5YSBtcmFkaSAobWlyYWRpKSwgbWF1ZGh1aSB5YW5hIG1ha3VuZGkgeWFsaXlvZ2F3YW55d2Ega3dhIGFsYW1hIHlhIG1rYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnSW5hYmFpbmlzaGEga2FtYSBtYXNhYSB5YSBrYXppIHlhbmF3ZXphIGt1aW5naXp3YSBiaWxhIHlhIG11ZGEgd2Ega3VhbnphIG5hIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdIaWkgbW9kdWxpIGluYWluZ2l6YSBVaGFzaWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdIaWkgbW9kdWxpIHlhIHRhYXJpZmEgaW5hdG9hIG9ueW8gZW5kYXBvIGt1bmEgc2lrdSBueWluZ2kgemEga2F6aSBhbWJhem8gaGF6aWpha2FtaWxpa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdIYXJpcmkgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnTWFwaXRpbyB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnVWFyaWZ1IHdhIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ01wYW5naWxpbyB3YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ011b25la2FubyB3YSB1aGFzaWJ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdVaGFzaWJ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnSXRhdHVtaWthIGthbWEgYmFhZGhpIHlhIHZpdGVuZG8gdml0YXB1bmd1emEgbXVkYSB3YSBrYXppIChtZmFubywga2FtYSBudXN1IHlhIG11ZGEgd2Ega3VzYWZpcmkgdW1lbGlwd2EgVWZvbmd1bz0+IGt1c2FmaXJpOyBtYXVkaHVpPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6emhfQ05fVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfor7fnoa7orqTkvaDnnJ/nmoTluIzmnJvliKDpmaTov5nkuIDlpKnnmoTlt6Xml7bnrqHnkIborrDlvZXvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn57yW6L6R5pe26Ze06K6w5b2VJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn6L+b5YWl6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ+aXpeacn+a1j+iniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICflkI7kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAn6Lez6L2s6L+Z5LiA5aSpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAn5rKh5pyJ6K6w5b2V55qE5bel5pelJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ+mAieaLqeaJgOacieW3peaXpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAn5aSn6YeP6K6w5b2VJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn6K+35Li65omA6YCJ5pe26Ze06YCJ5oup57y65Yuk5Y6f5Zug44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn5LyR5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfnl4XlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfliqDnj63osIPkvJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ+ivt+iHs+WwkemAieaLqeS4gOWkqe+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ+ivt+mAieaLqee8uuW4reWOn+WboO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn5aSn6YeP6K6w5b2VJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn5qCH6K6wIioi55qE5a2X5q615Li65b+F5aGr44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn5L2g6ZyA6KaB5aGr5YaZ5byA5aeL5ZKM57uT5p2f5pe26Ze05oiW6ICF5pe26Ze05q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfpobnnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ+S7u+WKoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICflpIfms6gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAn6K+35re75Yqg5LiA5Liq6LaF6L+HOOS4quWtl+espueahOWkh+azqO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAn5byA5aeL5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfml7bpl7TkuI3lhYHorrjkuLrotJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ+S4jeWFgeiuuOmHjeWkjeeahOW3peS9nOaXtumXtOOAguW8gOWni+aXtumXtOW3suWMuemFjeWFtuS7luWtmOWcqOeahOaXtuauteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAn5qC85byP5peg5pWI77yB6K+35oyJSEg6TU3moLzlvI/ovpPlhaXml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDDlj6rlhYHorrjorr7nva7kuLrnu5PmnZ/ml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfml7bpl7Tml6DmlYjvvIHkuIDlpKnlj6rmnIkyNOWwj+aXtuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ+e7k+adn+aXtumXtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn57uT5p2f5pe26Ze05bqU5aSn5LqO5byA5aeL5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn5LiN5YWB6K646YeN5aSN55qE5bel5L2c5pe26Ze044CC57uT5p2f5pe26Ze05bey5Yy56YWN5YW25LuW5a2Y5Zyo55qE5pe25q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfml6DmlYjnmoTml7bmrrXvvIHkuIDlpKnlj6rmnIkyNOWwj+aXtuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ+acieaViOaXtuauteaXtumVv+W6lOWkp+S6jjDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+aXoOaViOaXtuaute+8geaXtuauteaXtumVv+S4jeWFgeiuuOS4uui0n+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ+WinuWKoOS4gOihjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ+WQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ+WPquiDvemAieaLqeS4gOS4quWkjemAieahhuWFg+e0oOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ+aYvuekuuaJgOacieadoeebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn5Yig6Zmk5bel5pe2566h55CG6K6w5b2VJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn56Gu6K6k5o+S5YWlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfkvaDnoa7lrprkvaDlnKjnl4XlgYfmnJ/pl7Tku43lnKjlt6XkvZzlkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfkvaDnoa7lrprkvaDlnKjkvJHlgYfmnJ/pl7Tku43lnKjlt6XkvZzlkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ+S9oOehruWumuS9oOWcqOWKoOePreiwg+S8keacn+mXtOS7jeWcqOW3peS9nOWQl++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfkvaDnoa7lrprkvaDlt6XkvZzotoXov4cxNuWwj+aXtuS6huWQl++8nyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn5bel5pe25oql5ZGK5pyI5bqm5qaC6KeIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfliqDnj63vvIjlsI/ml7bvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn5Yqg54+t77yI5pys5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfliqDnj63vvIjlkIjorqHvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn5Ymp5L2Z55qE5Yqg54+t6LCD5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ+S8keWBh++8iOWkqe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICflt7LkvJHlgYfvvIjmnKzmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ+W3suS8keWBh++8iOWQiOiuoe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICfliankvZnnmoTlgYfmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfnl4XlgYfvvIjlpKnvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICflt7LkvJHnl4XlgYfvvIjmnKzmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAn5bey5LyR55eF5YGH77yI5ZCI6K6h77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAn5LiK5LiA5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfkuIvkuIDmnIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ+W3peS9nOaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAn5bel5L2c5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ+W3peS9nOaXtumXtOWQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfnlKjmiLfnmoTpobnnm67mpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn5bCP5pe277yI5oyJ5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICflsI/ml7bvvIjoh6rlhaXogYzorqHnrpfvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfmgLvorqEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn5pe26Ze05oql5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfmjInmnIjmtY/op4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ+i3s+i9rOWIsOaXpeacnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfnlKjmiLfmiqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ+aMieaciOWQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ+iHquWFpeiBjOiuoeeul+WQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ+WKoOePreiwg+S8kSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ+S8keWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn55eF5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ+WJqeS9meWBh+acnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICfpobnnm67miqXlkYonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ+mhueebruaKpeWRiic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfov5vlhaXmiqXlkYrmpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICflvZPliY3ku4XmmL7npLrpobnnm67kuK3nmoTmv4DmtLvnlKjmiLfjgILlpoLopoHosIPmlbTmmL7npLrlsZ7mgKfvvIzor7fmm7TmlrDorr7nva7vvJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn5b2T5YmN5pi+56S65omA5pyJ55qE5bel5pe2566h55CG55So5oi344CC5aaC6KaB6LCD5pW05pi+56S65bGe5oCn77yM6K+35pu05paw6K6+572u77yaJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+e8lui+keW3peaXtueuoeeQhumhueebruiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ+aWsOW7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ+i/m+WFpeiuvue9ruamguiniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ+aWsOW7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfnvJbovpHpobnnm67orr7nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ+W3suWtmOWcqOWQjOWQjeeahOmhueebru+8jOivt+mAieaLqeS4jeWQjOeahOWQjeWtl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ+e8lui+keW3peaXtueuoeeQhuiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ+a3u+WKoOS7u+WKoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ+a3u+WKoOeUqOaItyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAn6aG555uu6L+H5rukJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICfku7vliqHov4fmu6QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ+eUqOaIt+i/h+a7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ+aXoOazleWIoOmZpOW3peaXtuWRqOacn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfpobnnm67liJfooagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn5Lu75Yqh5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn5re75Yqg5Lu75YqhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ+e8lui+keS7u+WKoeiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5bey5a2Y5Zyo5ZCM5ZCN55qE5Lu75Yqh77yM6K+36YCJ5oup5LiN5ZCM55qE5ZCN5a2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ+eUqOaIt+WIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ+aWsOW7uueUqOaIt+iuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICfnvJbovpHnlKjmiLforr7nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICfms6jph4onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ+aYvuekuuWKoOePrSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn5YWB6K645Yib5bu66aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ+aXtuauteW8gOWniyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAn5pe25q6157uT5p2fJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfkvJHlgYflpKnmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfmr4/lkajlsI/ml7bmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ+aJueWHhueahOWKoOePrSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn5byA5aeL5pel5pyfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ+ivt+aPkuWFpeacieaViOaXpeacn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ+e7k+adn+aXpeacnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ+aXtuautee7k+adn+aXtumXtOW6lOWkp+S6juaXtuauteW8gOWni+aXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAn57y65Yuk5aSp5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ+avj+WRqOW3peS9nOWwj+aXtuaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ+WKoOePrSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAn5rKh5pyJ5om+5Yiw5pe25q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ+WinuWKoOaXtuautSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICfmn6XnnIvlt6Xml7borrDlvZUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICflsZXnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn5rKh5pyJ5om+5Yiw6L+Z5LiA5aSp55qE5pWw5o2u44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ+aXoOazleaPkuWFpeW3peS9nOWNleS9je+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn5pyA6L+R55qE6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ+aXoOazleS/neWtmOiuvue9ru+8jOWboOS4uuS4gOWkqeWPquaciTI05bCP5pe277yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfml6Dms5XliKDpmaTlt6XkvZzljZXkvY3vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICfov5nkuKrml6XmnJ/kuI3lj5fpmZDliLbvvIzkvYbmmK/kvaDov5jmsqHmnInmj5LlhaXov5nkuIDlpKnvvIzmiYDku6XkvaDojrflvpfkuobkuIDkuKrvvIjvvIHvvInmnLrkvJrmnaXmj5LlhaUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfkuI3lrozmlbTnmoTlt6XkvZzml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn6K+35o+S5YWl5bel5L2c5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ+aPkuWFpeaIkOWKn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn5o+S5YWl5aSa5Liq5pe26Ze05pe25Ye6546w6ZSZ6K+v77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ+aIkOWKn+aPkuWFpeiusOW9leOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn6L6T5YWl5pe26Ze05peg5pWI77yB5pel5pyf5pS55Li65b2T5YmN5pel5pyf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICfmnIDlkI7ooqvpgInkuK3nmoTpobnnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAn5omA5pyJ6aG555uuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ+mhueebruaKpeWRiu+8mumcgOimgemhueebrklEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAn6aG555uu5oql5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ+aKpeWRiic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICfml6Dms5Xmm7TmlrDnlKjmiLforr7nva7vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICfpobnnm67lt7Lmt7vliqDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ+mhueebruW3suabtOaWsO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ+S7u+WKoeW3sua3u+WKoO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAn5Lu75Yqh5bey5pu05paw77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ1VzZXJJROaXoOaViO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfml6Dms5Xmj5LlhaXnlKjmiLfmlbDmja7vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfml6Dms5Xmt7vliqDml7bpl7TmrrXvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ+eUqOaIt+W3suabtOaWsO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ+eUqOaIt+W3sua3u+WKoO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ+a3u+WKoOeUqOaItyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn5pe25q6154q25oCBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICfop4blm77vvJrpnIDopoElc++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ+S4jeWujOaVtOeahOW3peS9nOaXpSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ+acjeWKoeS6uuWRmOeVjOmdoumAmuefpeaooeWdl++8jOaYvuekuueUqOaIt+S4jeWujOaVtOeahOW3peS9nOaXpeaVsOaNruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOa0u+WKqOeahOm7mOiupOWQjeensOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfmlrDpobnnm67nmoTpu5jorqTlkI3np7DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfnu5PmnZ/ml6XmnJ/nmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ+W8gOWni+aXpeacn+eahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ+aPj+i/sOeahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn5LyR5YGH5pel55qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn5Yqg54+t55qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICflkajmoIflh4blt6XkvZzml7bpl7TnmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOa0u+WKqOeahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ+aWsOmhueebrueahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ+aWsOeUqOaIt+eahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICfmjIflrprlpIfms6jlv4XloavnmoTpobnnm67jgILlpoLmnpxSZWdFeHDljLnphY3pobnnm67vvIzkvaDkuZ/pnIDopoHmt7vliqDlpIfms6jjgIJSZWdFeHDkvb/nlKhzbXjlj4LmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ+ehruWumue7n+iuoeaooeWdl+aYr+WQpuimgeeUn+aIkOW3peaXtueuoeeQhuS/oeaBr+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfnvJbovpHlt6Xml7bnrqHnkIborr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfnvJbovpHlt6Xml7borrDlvZXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn5L2g5Y+v5Lul5o+S5YWl5aSa5LmF5Lul5YmN55qE5bel5L2c5pWw5o2u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImeS7heaYvuekuuWcqOmAieWumumhueebruS4reacieW3peaXtuaVsOaNrueahOeUqOaIt+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn5aaC5p6c5ZCv55So77yM5YiZ57yW6L6R6KeG5Zu+5Lit55qE5LiL5ouJ5YiX6KGo5YWD57Sg5bCG5Lya5L+u5pS55Li66Ieq5Yqo5a6M5oiQ5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImeWPr+S7peS9v+eUqOS5i+WJjemhueebrueahOi/h+a7pOWZqO+8iOeUqOS6juabv+S7o+acgOWQjuWSjOWFqOmDqOmhueebruWIl+ihqO+8ieOAguS7heWcqFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbuWQr+eUqOaXtu+8jOWPr+S7peWQr+eUqOivpeWPguaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAn5aaC5p6c5ZCv55So77yM5YiZ5aaC5p6c5a2Y5Zyo5LmL5YmN55qE6aG555uu77yM5YiZ5LmL5YmN6aG555uu6L+H5ruk5Zmo5bCG6KKr6buY6K6k5r+A5rS744CC5LuF5ZyoRW5hYmxlQXV0b0NvbXBsZXRpb27lkoxUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVy5ZCv55So5pe277yM5Y+v5Lul5ZCv55So6K+l5Y+C5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICflpoLmnpzlkK/nlKjvvIzliJnnlKjmiLflj6/ku6XkuIDmrKHlnKjlpJrkuKrml6XmnJ/kuK3ovpPlhaXigJzkvJHlgYfigJ3vvIzigJznl4XlgYfigJ3vvIwi5Yqg54+t6LCD5LyRIuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ+W3peS9nOaVsOaNrua3u+WKoOWQjuWFgeiuuOeahOacgOWkp+W3peaXpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn5rKh5pyJ5bel5L2c5pWw5o2u6K6w5b2V55qE5bel5L2c5pel55qE5pyA5aSn5pWw6YeP77yI5aaC5p6c6LaF6L+H77yM5YiZ5Lya5pi+56S66K2m5ZGK77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ+amguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ+mhueebruW3peaXtuaKpeWRiuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn6YCJ5a6a6aG555uu55qE6ZmQ5Yi25rS75Yqo5riF5Y2V5L2/55So55qE5q2j5YiZ6KGo6L6+5byP44CC6ZSu5YyF5ZCr5LqG6aG555uu77yIUHJvamVjdHPvvInnmoTmraPliJnooajovr7lvI/vvIzlgLzljIXlkKvkuobmtLvliqjvvIhBY3Rpb27vvInnmoTmraPliJnooajovr7lvI/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn55So5oi357uE55qE6ZmQ5Yi26aG555uu5riF5Y2V5L2/55So55qE5q2j5YiZ6KGo6L6+5byP44CCS2V55YyF5ZCr5LqG6aG555uu77yIUHJvamVjdHPvvInnmoTmraPliJnooajovr7lvI/vvIxDb250ZW505YyF5ZCr5LqG6YCX5Y+35YiG6ZqU55qE57uE5riF5Y2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfmjIflrprlnKjmsqHmnInlvIDlp4vlkoznu5PmnZ/ml7bpl7TnmoTmg4XlhrXkuIvmmK/lkKblj6/ku6Xmj5LlhaXlt6Xml7bmlbDmja7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAn5pys5qih5Z2X5Yqf6IO95o+S5YWl5Yiw5bel5pe2566h55CG5Lit44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn5aaC5pyJ5pyJ5aSq5aSa5LiN5a6M5pW055qE5bel5pel77yM6K+l6YCa55+l5qih5Z2X5Lya5Y+R5Ye65ZGK6K2m44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICflt6Xml7bnrqHnkIbnvJbovpHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuamguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ+W3peaXtueuoeeQhuaKpeWRiuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn5bel5pe2566h55CG6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuafpeeci+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn5bel5pe2566h55CG44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ+WcqOS4gOS6m+a0u+WKqOWHj+WwkeW3peS9nOWwj+aXtuaVsOeahOaXtuWAmeS9v+eUqO+8iOWmgu+8muWPquiKsei0ueS6huS4gOWNiueahOW3ruaXheaXtumXtO+8jOWImUtleT0+5beu5peF77ybQ29udGVudD0+NTDvvInjgIInOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nRWRpdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyhUb2RheSBEYXlzX2luX01vbnRoIERheV9vZl9XZWVrIEFkZF9EZWx0YV9ZTUQgY2hlY2tfZGF0ZSk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICByZXR1cm4gMSBpZiAhJFNlbGYtPntBY2Nlc3NSb307CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICBpZiAoCiAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tFbmZvcmNlSW5zZXJ0fQogICAgICAgICYmICRTZWxmLT57QWN0aW9ufSBuZSAnQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnCiAgICAgICAgJiYgJFNlbGYtPntBY3Rpb259IG5lICdBZ2VudENhbGVuZGFyU21hbGwnCiAgICAgICAgKQogICAgewoKICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gZGVsZXRlIHRoZSBlbnRyeSBvZiB0aGlzIGRheQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0RlbGV0ZURpYWxvZycgKSApIHsKCiAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgRGF0ZQogICAgICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSB8fCAhJFBhcmFte0RheX0gKSB7CiAgICAgICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgICAgICAgICAgJFBhcmFte0RheX0gICA9ICREYXk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUGFyYW17WWVhcn0gID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17WWVhcn0gKTsKICAgICAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgICAgICAgICAkUGFyYW17RGF5fSAgID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17RGF5fSApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdEZWxldGUnLAogICAgICAgICk7CgogICAgICAgICMgYnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlCiAgICAgICAgbXkgJURhdGEgPSAoCiAgICAgICAgICAgIEhUTUwgICAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgRGlhbG9nVHlwZSA9PiAnQ29uZmlybWF0aW9uJywKICAgICAgICApOwoKICAgICAgICAjIHJldHVybiBKU09OLVN0cmluZyBiZWNhdXNlIG9mIEFKQVgtTW9kZQogICAgICAgIG15ICRPdXRwdXRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiBcJURhdGEsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXRKU09OLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGRlbGV0ZSBvYmplY3QgZnJvbSBkYXRhYmFzZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICkgewogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXkgTW9udGggWWVhcikpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKAogICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH07RGF5PSRQYXJhbXtEYXl9IiwKICAgICAgICApOwogICAgfQoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgbWFzcyBlbnRyeQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdNYXNzRW50cnknICkgewoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZXMgTGVhdmVEYXkgU2ljayBPdmVydGltZSkpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBzcGxpdCB1cCBkYXRlcwogICAgICAgIG15IEBEYXRlcyA9IHNwbGl0IC9bfF0vLCAkUGFyYW17RGF0ZXN9OwogICAgICAgIG15ICRJbnNlcnRFcnJvciA9IDA7CgogICAgICAgICMgc2F2ZSBlbnRyaWVzIGluIHRoZSBkYgogICAgICAgIGZvciBteSAkRGF0ZSAoQERhdGVzKSB7CgogICAgICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0IC9bLV0vLCAkRGF0ZTsKCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkUGFyYW17TGVhdmVEYXl9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJFBhcmFte1NpY2t9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJFBhcmFte092ZXJ0aW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEluc2VydEVycm9yID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgICMgcmVkaXJlY3QgdG8gZWRpdCBzY3JlZW4gd2l0aCBsb2cgbWVzc2FnZQogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtOb3RpZmljYXRpb249JwogICAgICAgICAgICAgICAgLiAoICRJbnNlcnRFcnJvciA/ICdFcnJvcicgOiAnU3VjY2Vzc2Z1bCcgKSwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHRoZSB0aW1lIGFjY291bnRpbmcgZWxlbWVudHMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcGFyYW1zCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIFllYXIgTW9udGggRGF5IE5vdGlmaWNhdGlvbikpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICB9CiAgICAkUGFyYW17UmVjb3Jkc051bWJlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUmVjb3Jkc051bWJlcicgKSB8fCA4OwogICAgJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSW5zZXJ0V29ya2luZ1VuaXRzJyApOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSB8fCAhJFBhcmFte0RheX0gKSB7CiAgICAgICAgJFBhcmFte1llYXJ9ICA9ICRZZWFyOwogICAgICAgICRQYXJhbXtNb250aH0gPSAkTW9udGg7CiAgICAgICAgJFBhcmFte0RheX0gICA9ICREYXk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17WWVhcn0gKTsKICAgICAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAgICAgJFBhcmFte0RheX0gICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte0RheX0gKTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGEgdmFsaWQgZGF0ZQogICAgIyBpZiBub3QgdmFsaWQsIHNldCB0aGUgZGF0ZSB0byB0b2RheQogICAgaWYgKCAhY2hlY2tfZGF0ZSggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgICAgICAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ICAgICAgID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgICAgICAgPSAkRGF5OwogICAgICAgICRQYXJhbXsnV3JvbmdEYXRlJ30gPSAxOwogICAgfQoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgIyBmb3IgaW5pdGlhbCB1c2UsIHRoZSBmaXJzdCBhZ2VudCB3aXRoIHJ3LXJpZ2h0IHdpbGwgYmUgcmVkaXJlY3RlZAogICAgIyB0byAnU2V0dGluZycsIHNvIGhlIGNhbiBkbyB0aGUgaW5pdGlhbCBzZXR0aW5ncwogICAgaWYgKCAhJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9ICkgewoKICAgICAgICByZXR1cm4gJFNlbGYtPl9GaXJzdFVzZXJSZWRpcmVjdCgpOwogICAgfQoKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE1heEFsbG93ZWRJbnNlcnREYXlzID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMnKSB8fCAnMTAnOwogICAgKCAkUGFyYW17WWVhckFsbG93ZWR9LCAkUGFyYW17TW9udGhBbGxvd2VkfSwgJFBhcmFte0RheUFsbG93ZWR9ICkKICAgICAgICA9IEFkZF9EZWx0YV9ZTUQoICRZZWFyLCAkTW9udGgsICREYXksIDAsIDAsIC0kTWF4QWxsb3dlZEluc2VydERheXMgKTsKICAgIGlmICgKICAgICAgICB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApIDwgdGltZWxvY2FsKAogICAgICAgICAgICAxLCAwLCAwLCAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgICRQYXJhbXtNb250aEFsbG93ZWR9IC0gMSwKICAgICAgICAgICAgJFBhcmFte1llYXJBbGxvd2VkfSAtIDE5MDAKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgIGlmICgKICAgICAgICAgICAgISRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17ICRQYXJhbXtZZWFyfSB9eyAkUGFyYW17TW9udGh9IH0KICAgICAgICAgICAgeyAkUGFyYW17RGF5fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICApOwoKICAgICRQYXJhbXtNb250aF90b19UZXh0fSA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgKCAkUGFyYW17WWVhckJhY2t9LCAkUGFyYW17TW9udGhCYWNrfSwgJFBhcmFte0RheUJhY2t9ICkKICAgICAgICA9IEFkZF9EZWx0YV9ZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIC0xICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgMSApOwoKICAgIG15ICRSZWR1Y2VUaW1lUmVmID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UmVkdWNlVGltZScpOwoKICAgICMgaGFzaGVzIHRvIHN0b3JlIHNlcnZlciBzaWRlIGVycm9ycwogICAgbXkgJUVycm9ycyAgICAgICAgICA9ICgpOwogICAgbXkgJVNlcnZlckVycm9yRGF0YSA9ICgpOwogICAgbXkgJEVycm9ySW5kZXggICAgICA9IDE7CgogICAgbXkgJURhdGE7CiAgICBteSAlQWN0aW9uTGlzdCA9ICRTZWxmLT5fQWN0aW9uTGlzdCgpOwoKICAgICMgRWRpdCBXb3JraW5nIFVuaXRzCiAgICBpZiAoICRQYXJhbXtTdGF0dXN9ICkgewoKICAgICAgICAjIGFycmF5cyB0byBzYXZlIGFsbCBzdGFydCBhbmQgZW5kIHRpbWVzIGZvciBzb21lIGNoZWNrcwogICAgICAgIG15ICggQFN0YXJ0VGltZXMsIEBFbmRUaW1lcyApOwoKICAgICAgICAjIGRlbGV0ZSBwcmV2aW91cyBlbnRyaWVzIGZvciB0aGlzIGRheSBhbmQgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICVDaGVja2JveENoZWNrID0gKCk7CiAgICAgICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewogICAgICAgICAgICBteSAkVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRWxlbWVudCApOwogICAgICAgICAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgICAgICAgICAkQ2hlY2tib3hDaGVja3skRWxlbWVudH0gPSAxOwogICAgICAgICAgICAgICAgJFBhcmFteyRFbGVtZW50fSAgICAgICAgID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQYXJhbXskRWxlbWVudH0gPSAnJwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG1vcmUgdGhhbiBvbmUgY2hlY2sgYm94IHdhcyBjaGVja2VkIGl0IGlzIGEgc2VydmVyIGVycm9yCiAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlQ2hlY2tib3hDaGVjayA+IDEgKSB7CiAgICAgICAgICAgIGZvciBteSAkQ2hlY2tib3ggKCBzb3J0IGtleXMgJUNoZWNrYm94Q2hlY2sgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkQ2hlY2tib3ggLiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGluc2VydCB2YWx1ZXMgKGlmIGFueSkKICAgICAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlQ2hlY2tib3hDaGVjayA+IDAgKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkQ2hlY2tib3hDaGVja3tMZWF2ZURheX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJENoZWNrYm94Q2hlY2t7U2lja30gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJENoZWNrYm94Q2hlY2t7T3ZlcnRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgY2hlY2sgaXRlbSBvYmplY3QKICAgICAgICBteSAkQ2hlY2tJdGVtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbScpOwoKICAgICAgICBJRDoKICAgICAgICBmb3IgbXkgJElEICggMSAuLiAkUGFyYW17UmVjb3Jkc051bWJlcn0gKSB7CgogICAgICAgICAgICAjIGFycmF5cyB0byBzYXZlIHRoZSBzZXJ2ZXIgZXJyb3JzIGJsb2NrIHRvIHNob3cgdGhlIGVycm9yIG1lc3NhZ2VzCiAgICAgICAgICAgIG15ICggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgQFBlcmlvZFNlcnZlckVycm9yQmxvY2sgKSA9ICgpOwoKICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFByb2plY3RJRCBBY3Rpb25JRCBSZW1hcmsgU3RhcnRUaW1lIEVuZFRpbWUgUGVyaW9kKSkgewogICAgICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICdbJyAuICRJRCAuICddJyApOwogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFBhcmFtUmVmID0gXCRQYXJhbXskUGFyYW1ldGVyfTsKCiAgICAgICAgICAgICAgICAgICAgIyBkZWxldGUgbGVhZGluZyBhbmQgdGFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkUGFyYW1SZWYgPSAkQ2hlY2tJdGVtT2JqZWN0LT5TdHJpbmdDbGVhbigKICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUmVmID0+ICRQYXJhbVJlZiwKICAgICAgICAgICAgICAgICAgICAgICAgVHJpbUxlZnQgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyaW1SaWdodCA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG5leHQgSUQgaWYgISRQYXJhbXtQcm9qZWN0SUR9ICYmICEkUGFyYW17QWN0aW9uSUR9OwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgbWlzc2luZyB2YWx1ZXMKICAgICAgICAgICAgaWYgKCAkUGFyYW17UHJvamVjdElEfSAmJiAhJFBhcmFte0FjdGlvbklEfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0FjdGlvbklESW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICYmICRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQcm9qZWN0SURJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY3JlYXRlIGEgdmFsaWQgcGVyaW9kCiAgICAgICAgICAgIG15ICRQZXJpb2QgPSAkUGFyYW17UGVyaW9kfTsKICAgICAgICAgICAgaWYgKCAkUGVyaW9kID1+IC9eKFxkKyksKFxkKykvICkgewogICAgICAgICAgICAgICAgJFBlcmlvZCA9ICQxIC4gIi4iIC4gJDI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICNhbGxvdyBmb3JtYXQgaGg6bW0KICAgICAgICAgICAgZWxzaWYgKCAkUGFyYW17UGVyaW9kfSA9fiAvXihcZCspOihcZCspLyApIHsKICAgICAgICAgICAgICAgICRQZXJpb2QgPSAkMSArICQyIC8gNjA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgc3RhcnQgb3IgZW5kIHRpbWVzIGFyZSBtaXNzaW5nLCBkZWxldGUgdGhlIG90aGVyIGVudHJ5CiAgICAgICAgICAgIGlmICggISRQYXJhbXtTdGFydFRpbWV9IHx8ICEkUGFyYW17RW5kVGltZX0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSA9ICcnOwogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ICAgPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgJzowMCcgdG8gdGhlIHRpbWUsIGlmIGl0IGRvZXNuJ3QgaGF2ZSBpdCB5ZXQKICAgICAgICAgICAgaWYgKCAkUGFyYW17U3RhcnRUaW1lfSAmJiAkUGFyYW17U3RhcnRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSAuPSAnOjAwJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQYXJhbXtFbmRUaW1lfSAmJiAkUGFyYW17RW5kVGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9IC49ICc6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICggJFBhcmFte1N0YXJ0VGltZX0gPX4gL14oXGQrKTooXGQrKSQvICkKICAgICAgICAgICAgICAgICYmICggJFBhcmFte0VuZFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLyApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLzsKICAgICAgICAgICAgICAgIG15ICRTdGFydFRpbWUgPSAkMSAqIDYwICsgJDI7CiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gPX4gL14oXGQrKTooXGQrKSQvOwogICAgICAgICAgICAgICAgbXkgJEVuZFRpbWUgPSAkMSAqIDYwICsgJDI7CiAgICAgICAgICAgICAgICBpZiAoICRSZWR1Y2VUaW1lUmVmLT57ICRBY3Rpb25MaXN0eyAkUGFyYW17QWN0aW9uSUR9IH0gfSApIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kID0gKCAkRW5kVGltZSAtICRTdGFydFRpbWUgKSAvIDYwCiAgICAgICAgICAgICAgICAgICAgICAgICogJFJlZHVjZVRpbWVSZWYtPnsgJEFjdGlvbkxpc3R7ICRQYXJhbXtBY3Rpb25JRH0gfSB9IC8gMTAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZCA9ICggJEVuZFRpbWUgLSAkU3RhcnRUaW1lICkgLyA2MDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGVuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZQogICAgICAgICAgICAgICAgaWYgKCAkRW5kVGltZSA8PSAkU3RhcnRUaW1lICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lQmVmb3JlU3RhcnRUaW1lU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRTdGFydFRpbWVzWyRJRF0gPSAkU3RhcnRUaW1lOwogICAgICAgICAgICAgICAgJEVuZFRpbWVzWyRJRF0gICA9ICRFbmRUaW1lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17U3RhcnRUaW1lfSAmJiAkUGFyYW17U3RhcnRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gJiYgJFBhcmFte0VuZFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkCiAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gPX4gL14tKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQYXJhbXtFbmRUaW1lfSA9fiAvXi0oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZAogICAgICAgICAgICBQT1NJVElPTjoKICAgICAgICAgICAgZm9yICggbXkgJFBvc2l0aW9uID0gJElEIC0gMTsgJFBvc2l0aW9uID49IDE7ICRQb3NpdGlvbi0tICkgewogICAgICAgICAgICAgICAgbmV4dCBQT1NJVElPTiBpZiAhZGVmaW5lZCAkU3RhcnRUaW1lc1skUG9zaXRpb25dOwogICAgICAgICAgICAgICAgbmV4dCBQT1NJVElPTiBpZiAhZGVmaW5lZCAkU3RhcnRUaW1lc1skSURdOwoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkU3RhcnRUaW1lc1skUG9zaXRpb25dID4gJFN0YXJ0VGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICYmICRTdGFydFRpbWVzWyRQb3NpdGlvbl0gPCAkRW5kVGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRW5kVGltZXNbJFBvc2l0aW9uXSA+ICRTdGFydFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICAmJiAkRW5kVGltZXNbJFBvc2l0aW9uXSA8ICRFbmRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmICggJEVuZFRpbWVzWyRJRF0gPiAkRW5kVGltZXNbJFBvc2l0aW9uXSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhZ3JlcCB7L15TdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJFBvc2l0aW9uXSA9PSAkU3RhcnRUaW1lc1skSURdICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRFbmRUaW1lc1skUG9zaXRpb25dID09ICRFbmRUaW1lc1skSURdICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkU3RhcnRUaW1lc1skSURdID4gJFN0YXJ0VGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICYmICRTdGFydFRpbWVzWyRJRF0gPCAkRW5kVGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15TdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRFbmRUaW1lc1skSURdID4gJFN0YXJ0VGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICYmICRFbmRUaW1lc1skSURdIDwgJEVuZFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgJzI0OjAwJyBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZQogICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRJRF0gJiYgJFN0YXJ0VGltZXNbJElEXSA9PSAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZTI0SG91cnMnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHRpbWVzIHN1cGVyaW9yIHRvIDI0OjAwIGFyZSBub3QgYWxsb3dlZAogICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRJRF0gJiYgJFN0YXJ0VGltZXNbJElEXSA+IDE0NDAgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lSW52YWxpZCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkRW5kVGltZXNbJElEXSAmJiAkRW5kVGltZXNbJElEXSA+IDE0NDAgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lSW52YWxpZCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIHJlZmVyZW5jZSB0byB0aGUgc2VydmVyIGVycm9yIG1lc3NhZ2VzIHRvIGJlIHNob3duCiAgICAgICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSA9IFxAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSA9IFxARW5kVGltZVNlcnZlckVycm9yQmxvY2s7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3ZlcndyaXRlIHBlcmlvZCBpZiB0aGVyZSBhcmUgc3RhcnQgYW5kIGVuZCB0aW1lcwogICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRJRF0gJiYgJEVuZFRpbWVzWyRJRF0gKSB7CiAgICAgICAgICAgICAgICAkUGVyaW9kID0gJEVuZFRpbWVzWyRJRF0gLSAkU3RhcnRUaW1lc1skSURdOwoKICAgICAgICAgICAgICAgICMgY29udmVydCBwZXJpb2QgZnJvbSBtaW51dGVzIHRvIGhvdXJzCiAgICAgICAgICAgICAgICAkUGVyaW9kIC89IDYwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciBlcnJvcnMgaW4gdGhlIHBlcmlvZAogICAgICAgICAgICBpZiAoICRQZXJpb2QgPT0gMCApIHsKICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdaZXJvSG91cnNQZXJpb2RTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6SW5wdXRIb3Vyc1dpdGhvdXRTdGFydEVuZFRpbWUnKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCAkUGVyaW9kIDwgMCApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jaywgJ05lZ2F0aXZlUGVyaW9kU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBlcmlvZCA+IDI0ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jaywgJ0ludmFsaWRIb3Vyc1BlcmlvZFNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9ID0gXEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHRoZXJlIHdhcyBhbiBlcnJvciBvbiB0aGlzIHJvdywgc2F2ZSBhbGwgZGF0YSBpbiB0aGUgc2VydmVyIGVycm9yIGhhc2gKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRFcnJvcnN7JEVycm9ySW5kZXh9ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFByb2plY3RJRCBBY3Rpb25JRCBSZW1hcmsgU3RhcnRUaW1lIEVuZFRpbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17JFBhcmFtZXRlcn0gPSAkUGFyYW17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQZXJpb2R9ID0gJFBlcmlvZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdGhlcndpc2UsIHNhdmUgcm93IG9uIHRoZSBEQgogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGluaXRpYWxpemUgdGhlIGFycmF5IG9mIHdvcmtpbmcgdW5pdHMKICAgICAgICAgICAgICAgIEB7ICREYXRhe1dvcmtpbmdVbml0c30gfSA9ICgpOwoKICAgICAgICAgICAgICAgICMgcmVwbGFjZSAyNDowMCBmb3IgMjM6NTk6NTkgdG8gYmUgYSB2YWxpZCBlbnRyeSBpbiB0aGUgREIKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSA9ICRQYXJhbXtFbmRUaW1lfSBlcSAnMjQ6MDAnID8gJzIzOjU5OjU5JyA6ICRQYXJhbXtFbmRUaW1lfTsKCiAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAoCiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQYXJhbXtQcm9qZWN0SUR9LAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkUGFyYW17QWN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUGFyYW17UmVtYXJrfSwKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJFBhcmFte1N0YXJ0VGltZX0sCiAgICAgICAgICAgICAgICAgICAgRW5kVGltZSAgID0+ICRQYXJhbXtFbmRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBwdXNoIEB7ICREYXRhe1dvcmtpbmdVbml0c30gfSwgXCVXb3JraW5nVW5pdDsKCiAgICAgICAgICAgICAgICAkRGF0YXtZZWFyfSAgID0gJFBhcmFte1llYXJ9OwogICAgICAgICAgICAgICAgJERhdGF7TW9udGh9ICA9ICRQYXJhbXtNb250aH07CiAgICAgICAgICAgICAgICAkRGF0YXtEYXl9ICAgID0gJFBhcmFte0RheX07CiAgICAgICAgICAgICAgICAkRGF0YXtVc2VySUR9ID0gJFNlbGYtPntVc2VySUR9OwoKICAgICAgICAgICAgICAgIGlmICggISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KCVEYXRhKSApIHsKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzIScpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGluY3JlbWVudCB0aGUgZXJyb3IgaW5kZXggaWYgdGhlcmUgd2FzIGFuIGVycm9yIG9uIHRoaXMgcm93CiAgICAgICAgICAgICRFcnJvckluZGV4KysgaWYgKCBkZWZpbmVkICRFcnJvcnN7JEVycm9ySW5kZXh9ICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJVNlcnZlckVycm9yRGF0YSkgewogICAgICAgICAgICAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gPSB1bmRlZjsKICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IFdvcmtpbmcgVW5pdHMKICAgICMgZ2V0IGV4aXN0aW5nIHdvcmtpbmcgdW5pdHMKICAgICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbnVtYmVyIG9mIHdvcmtpbmcgdW5pdHMgKD1yZWNvcmRzKQogICAgIyAgICBpZiBiaWdnZXIgdGhhbiBSZWNvcmRzTnVtYmVyLCBtb3JlIHRoYW4gdGhlIG51bWJlciBvZiBkZWZhdWx0IHJlY29yZHMgd2VyZSBzYXZlZCBmb3IKICAgICMgICAgdGhpcyBkYXRlCiAgICBpZiAoICREYXRhe1dvcmtpbmdVbml0c30gKSB7CiAgICAgICAgbXkgJFdvcmtpbmdVbml0c0NvdW50ID0gQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9OwogICAgICAgIGlmICggJFdvcmtpbmdVbml0c0NvdW50ID4gJFBhcmFte1JlY29yZHNOdW1iZXJ9ICkgewogICAgICAgICAgICAkUGFyYW17UmVjb3Jkc051bWJlcn0gPSAkV29ya2luZ1VuaXRzQ291bnQ7CiAgICAgICAgfQogICAgfQoKICAgIG15ICVGcm9udGVuZDsKCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lJykgKSB7CiAgICAgICAgJFBhcmFte1BlcmlvZEJsb2NrfSAgID0gJ1VuaXRJbnB1dFBlcmlvZCc7CiAgICAgICAgJEZyb250ZW5ke1BlcmlvZE5vdGV9ID0gJyonOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte1BlcmlvZEJsb2NrfSAgID0gJ1VuaXRQZXJpb2RXaXRob3V0SW5wdXQnOwogICAgICAgICRGcm9udGVuZHtQZXJpb2ROb3RlfSA9ICcnOwogICAgfQoKICAgIGlmICgKICAgICAgICAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpCiAgICAgICAgPiB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApCiAgICAgICAgKQogICAgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVbml0QmxvY2snLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHNpY2ssIGxlYXZlIGRheSBhbmQgb3ZlcnRpbWUKICAgICRQYXJhbXtTaWNrfSAgICAgPSAkRGF0YXtTaWNrfSAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAkUGFyYW17TGVhdmVEYXl9ID0gJERhdGF7TGVhdmVEYXl9ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKCiAgICAkUGFyYW17VG90YWx9ID0gJERhdGF7VG90YWx9OwoKICAgICMgc2V0IGFjdGlvbiBsaXN0IGFuZCByZWxhdGVkIGNvbnN0cmFpbnRzCiAgICAjIGdlbmVyYXRlIGEgSmF2YVNjcmlwdCBBcnJheSB3aGljaCB3aWxsIGJlIG91dHB1dCB0byB0aGUgdGVtcGxhdGUKICAgIG15IEBBY3Rpb25JRHMgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwogICAgbXkgQEpTQWN0aW9uczsKICAgIGZvciBteSAkQWN0aW9uSUQgKEBBY3Rpb25JRHMpIHsKICAgICAgICBwdXNoIEBKU0FjdGlvbnMsICJbJyRBY3Rpb25JRCcsICckQWN0aW9uTGlzdHskQWN0aW9uSUR9J10iOwogICAgfQogICAgJFBhcmFte0pTQWN0aW9uTGlzdH0gPSAnWycgLiAoIGpvaW4gJywgJywgQEpTQWN0aW9ucyApIC4gJ10nOwoKICAgIG15ICRBY3Rpb25MaXN0Q29uc3RyYWludHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpBY3Rpb25MaXN0Q29uc3RyYWludHMnKTsKICAgIG15IEBKU0FjdGlvbkxpc3RDb25zdHJhaW50czsKICAgIGZvciBteSAkUHJvamVjdE5hbWVSZWdFeHAgKCBzb3J0IGtleXMgJXskQWN0aW9uTGlzdENvbnN0cmFpbnRzfSApIHsKICAgICAgICBteSAkQWN0aW9uTmFtZVJlZ0V4cCA9ICRBY3Rpb25MaXN0Q29uc3RyYWludHMtPnskUHJvamVjdE5hbWVSZWdFeHB9OwogICAgICAgIHN7KFsnIlxcXSl9e1xcJDF9c214ZyBmb3IgKCAkUHJvamVjdE5hbWVSZWdFeHAsICRBY3Rpb25OYW1lUmVnRXhwICk7CiAgICAgICAgcHVzaCBASlNBY3Rpb25MaXN0Q29uc3RyYWludHMsICJbJyRQcm9qZWN0TmFtZVJlZ0V4cCcsICckQWN0aW9uTmFtZVJlZ0V4cCddIjsKICAgIH0KICAgICRQYXJhbXtKU0FjdGlvbkxpc3RDb25zdHJhaW50c30gPSAnWycgLiAoIGpvaW4gJywgJywgQEpTQWN0aW9uTGlzdENvbnN0cmFpbnRzICkgLiAnXSc7CgogICAgIyBidWlsZCBhIHdvcmtpbmcgdW5pdCBhcnJheQogICAgbXkgQFVuaXRzID0gKHVuZGVmKTsKICAgIGlmICggJERhdGF7V29ya2luZ1VuaXRzfSApIHsKICAgICAgICBwdXNoIEBVbml0cywgQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9CiAgICB9CgogICAgJEVycm9ySW5kZXggPSAwOwoKICAgICMgYnVpbGQgdW5pdHMKICAgIGZvciBteSAkSUQgKCAxIC4uICRQYXJhbXtSZWNvcmRzTnVtYmVyfSApIHsKICAgICAgICAkUGFyYW17SUR9ID0gJElEOwogICAgICAgIG15ICRVbml0UmVmICAgPSAkVW5pdHNbJElEXTsKICAgICAgICBteSAkU2hvd0Vycm9yID0gMDsKCiAgICAgICAgaWYgKCAhJFVuaXRSZWYgKSB7CiAgICAgICAgICAgICRFcnJvckluZGV4Kys7CiAgICAgICAgICAgICRTaG93RXJyb3IgPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZGF0YSBvZiBwcm9qZWN0cwogICAgICAgIG15ICRQcm9qZWN0TGlzdCA9ICRTZWxmLT5fUHJvamVjdExpc3QoCiAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgICAgICB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQcm9qZWN0SUR9CiAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICApOwoKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQcm9qZWN0SUR9CiAgICAgICAgICAgIHx8ICcnOwogICAgICAgICRQYXJhbXtQcm9qZWN0TmFtZX0gPSAnJzsKCiAgICAgICAgIyBzZXQgY29tbW9uIHBhcmFtcyBmb3IgcHJvamVjdCBzZWxlY3Rpb24KICAgICAgICBteSAlUHJvamVjdE9wdGlvblBhcmFtcyA9ICgKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gIlByb2plY3RJRFskSURdIiwKICAgICAgICAgICAgSUQgICAgICAgICAgPT4gIlByb2plY3RJRCRJRCIsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0IFByb2plY3RTZWxlY3Rpb24gJwogICAgICAgICAgICAgICAgLiAoICRFcnJvcnN7JEVycm9ySW5kZXh9e1Byb2plY3RJREludmFsaWR9IHx8ICcnICksCiAgICAgICAgICAgIE9uQ2hhbmdlID0+ICJUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuRmlsbEFjdGlvbkxpc3QoJElEKTsiLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlByb2plY3QiKSwKICAgICAgICApOwoKICAgICAgICBteSAkRW5hYmxlQXV0b0NvbXBsZXRpb24gPSAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIpIHx8IDA7CiAgICAgICAgbXkgJENsYXNzID0gJEVuYWJsZUF1dG9Db21wbGV0aW9uID8gJyBNb2Rlcm5pemUnIDogJyc7CgogICAgICAgICMgc2V0IHBhcmFtcyBmb3IgbW9kZXJuIGlucHV0cwogICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0NsYXNzfSAuPSAkQ2xhc3M7CgogICAgICAgIGlmICggJEVuYWJsZUF1dG9Db21wbGV0aW9uICYmICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciIpICkgewoKICAgICAgICAgICAgIyBhZGQgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RGF0YX0gICAgPSAkUHJvamVjdExpc3QtPntBbGxQcm9qZWN0c307CiAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0ZpbHRlcnN9ID0gewogICAgICAgICAgICAgICAgTGFzdFByb2plY3RzID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYXN0IFByb2plY3RzJyksCiAgICAgICAgICAgICAgICAgICAgVmFsdWVzID0+ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgIyBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLCBleHBhbmQgZmlsdGVyIGRpYWxvZwogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkUHJvamVjdExpc3QtPntMYXN0UHJvamVjdHN9IH0gPiAxICkgewogICAgICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RXhwYW5kRmlsdGVyc30gPSAxOwoKICAgICAgICAgICAgICAgICMgbWFrZSB0aGUgZmlsdGVyIGFjdGl2ZSBieSBkZWZhdWx0IGlmICdBY3RpdmVGaWx0ZXInIGlzIGVuYWJsZWQKICAgICAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6QWN0aXZlRmlsdGVyIikgKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RmlsdGVyc30tPntMYXN0UHJvamVjdHN9LT57QWN0aXZlfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICMgc2V0IHBhcmFtcyBmb3IgdHJhZGl0aW9uYWwgc2VsZWN0cyAoYW5kIG1vZGVybiBpbnB1dCBmaWVsZHMgaWYgZmlsdGVyIGlzIG5vdCB1c2VkKQogICAgICAgICAgICBteSBAUHJvamVjdHMgPSAoIEB7ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30gfSwgQHsgJFByb2plY3RMaXN0LT57QWxsUHJvamVjdHN9IH0gKTsKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RGF0YX0gPSBcQFByb2plY3RzOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBwcm9qZWN0cyBzZWxlY3QKICAgICAgICAkRnJvbnRlbmR7UHJvamVjdE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgJVByb2plY3RPcHRpb25QYXJhbXMsCiAgICAgICAgKTsKCiAgICAgICAgIyBhY3Rpb24gbGlzdCBpbml0aWFsbHkgb25seSBjb250YWlucyBlbXB0eSBhbmQgc2VsZWN0ZWQgZWxlbWVudCBhcyB3ZWxsIGFzIGVsZW1lbnRzCiAgICAgICAgIyBjb25maWd1cmVkIGZvciBzZWxlY3RlZCBwcm9qZWN0CiAgICAgICAgIyBpZiBubyBjb25zdHJhaW50cyBhcmUgY29uZmlndXJlZCwgYWxsIGFjdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQKICAgICAgICBteSAkQWN0aW9uRGF0YSA9ICRTZWxmLT5fQWN0aW9uTGlzdENvbnN0cmFpbnRzKAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFVuaXRSZWYtPntQcm9qZWN0SUR9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9LT57UHJvamVjdElEfSwKICAgICAgICAgICAgUHJvamVjdExpc3QgICAgICAgICAgID0+ICRQcm9qZWN0TGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdCAgICAgICAgICAgID0+IFwlQWN0aW9uTGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0+ICRBY3Rpb25MaXN0Q29uc3RyYWludHMsCiAgICAgICAgKTsKICAgICAgICAkQWN0aW9uRGF0YS0+eycnfSA9ICctJzsKCiAgICAgICAgaWYgKCAkVW5pdFJlZiAmJiAkVW5pdFJlZi0+e0FjdGlvbklEfSAmJiAkQWN0aW9uTGlzdHsgJFVuaXRSZWYtPntBY3Rpb25JRH0gfSApIHsKICAgICAgICAgICAgJEFjdGlvbkRhdGEtPnsgJFVuaXRSZWYtPntBY3Rpb25JRH0gfSA9ICRBY3Rpb25MaXN0eyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9OwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9CiAgICAgICAgICAgICYmICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfQogICAgICAgICAgICAmJiAkQWN0aW9uTGlzdHsgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9IH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEFjdGlvbkRhdGEtPnsgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9IH0KICAgICAgICAgICAgICAgID0gJEFjdGlvbkxpc3R7ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB9OwogICAgICAgIH0KCiAgICAgICAgJEZyb250ZW5ke0FjdGlvbk9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKCiAgICAgICAgICAgIERhdGEgICAgICAgID0+ICRBY3Rpb25EYXRhLAogICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkVW5pdFJlZi0+e0FjdGlvbklEfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfHwgJycsCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICJBY3Rpb25JRFskSURdIiwKICAgICAgICAgICAgSUQgICAgICAgICAgPT4gIkFjdGlvbklEJElEIiwKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJ1ZhbGlkYXRlX0RlcGVuZGluZ1JlcXVpcmVkQU5EIFZhbGlkYXRlX0RlcGVuZGluZ19Qcm9qZWN0SUQnCiAgICAgICAgICAgICAgICAuICRJRAogICAgICAgICAgICAgICAgLiAnIEFjdGlvblNlbGVjdGlvbiAnCiAgICAgICAgICAgICAgICAuICggJEVycm9yc3skRXJyb3JJbmRleH17QWN0aW9uSURJbnZhbGlkfSB8fCAnJyApCiAgICAgICAgICAgICAgICAuICRDbGFzcywKICAgICAgICAgICAgVGl0bGUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJUYXNrIiksCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1JlbWFya30gPSAkVW5pdFJlZi0+e1JlbWFya30gfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UmVtYXJrfSB8fCAnJzsKCiAgICAgICAgbXkgJFBlcmlvZDsKICAgICAgICBpZiAoCiAgICAgICAgICAgICggJFVuaXRSZWYtPntQZXJpb2R9ICYmICRVbml0UmVmLT57UGVyaW9kfSA9PSAwICkKICAgICAgICAgICAgfHwgKAogICAgICAgICAgICAgICAgZGVmaW5lZCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQZXJpb2R9CiAgICAgICAgICAgICAgICAmJiAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQZXJpb2R9ID09IDAKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGVyaW9kID0gMDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQZXJpb2QgPSAkVW5pdFJlZi0+e1BlcmlvZH0gfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfSB8fCAnJzsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkVGltZVBlcmlvZCAocXcoU3RhcnRUaW1lIEVuZFRpbWUpKSB7CiAgICAgICAgICAgIGlmICgkU2hvd0Vycm9yKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFRpbWVQZXJpb2R9ID0gJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17JFRpbWVQZXJpb2R9IC8vICcnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFBhcmFteyRUaW1lUGVyaW9kfSA9ICRVbml0UmVmLT57JFRpbWVQZXJpb2R9IC8vICcnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRQZXJpb2QKICAgICAgICAgICAgJiYgJFBhcmFte1N0YXJ0VGltZX0gZXEgJzAwOjAwJwogICAgICAgICAgICAmJiAkUGFyYW17RW5kVGltZX0gZXEgJzAwOjAwJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSA9ICcnOwogICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gICA9ICcnOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VuaXQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICVGcm9udGVuZCwKICAgICAgICAgICAgICAgICV7ICRFcnJvcnN7JEVycm9ySW5kZXh9IH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgcHJvcGVyIHNlcnZlciBlcnJvciBtZXNzYWdlIGZvciB0aGUgc3RhcnQgYW5kIGVuZCB0aW1lcwogICAgICAgIG15ICRTZXJ2ZXJFcnJvckJsb2NrTmFtZTsKICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ICkgewogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ID4gMCApIHsKICAgICAgICAgICAgICAgIHdoaWxlICggQHsgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gfSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3JCbG9ja05hbWUgPSBzaGlmdCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9OwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhcnRUaW1lR2VuZXJpY1NlcnZlckVycm9yJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSApIHsKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQHsgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZVNlcnZlckVycm9yQmxvY2t9IH0gPiAwICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gfSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3JCbG9ja05hbWUgPSBzaGlmdCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkU2VydmVyRXJyb3JCbG9ja05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRW5kVGltZUdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRQYXJhbXtQZXJpb2RCbG9ja30sCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgUGVyaW9kID0+ICRQZXJpb2QsCiAgICAgICAgICAgICAgICBJRCAgICAgPT4gJElELAogICAgICAgICAgICAgICAgJXsgJEVycm9yc3skRXJyb3JJbmRleH0gfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBwcm9wZXIgc2VydmVyIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBwZXJpb2QKICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ICkgewogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSB9ID4gMCApIHsKICAgICAgICAgICAgICAgIHdoaWxlICggQHsgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kU2VydmVyRXJyb3JCbG9ja30gfSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3JCbG9ja05hbWUgPSBzaGlmdCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSB9OwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgdmFsaWRpdHkgY2hlY2sKICAgICAgICBpZiAoCiAgICAgICAgICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e0FjdGlvbklEfQogICAgICAgICAgICAmJiAkUGFyYW17U2lja30KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte0Jsb2NrTmFtZX0gPSAnU2lja0xlYXZlTWVzc2FnZSc7CiAgICAgICAgfQogICAgICAgIGVsc2lmICgKICAgICAgICAgICAgJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57QWN0aW9uSUR9CiAgICAgICAgICAgICYmICRQYXJhbXtMZWF2ZURheX0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte0Jsb2NrTmFtZX0gPSAnVmFjYXRpb25NZXNzYWdlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte092ZXJ0aW1lfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdPdmVydGltZU1lc3NhZ2UnOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoCiAgICAgICAgJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKQogICAgICAgID4gdGltZWxvY2FsKCAxLCAwLCAwLCAkUGFyYW17RGF5fSwgJFBhcmFte01vbnRofSAtIDEsICRQYXJhbXtZZWFyfSAtIDE5MDAgKQogICAgICAgICkKICAgIHsKICAgICAgICAkUGFyYW17VG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRQYXJhbXtUb3RhbH0gfHwgMCApICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHZhbGlkaXR5IGNoZWNrcyBzdGFydAogICAgbXkgJEVycm9yTm90ZTsKICAgIGlmICggJFBhcmFte1RvdGFsfSAmJiAkUGFyYW17VG90YWx9ID4gMjQgKSB7CiAgICAgICAgJEVycm9yTm90ZSA9IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJyk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ICYmICRQYXJhbXtUb3RhbH0gJiYgJFBhcmFte1RvdGFsfSA+IDE2ICkgewogICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJ01vcmUxNkhvdXJzTWVzc2FnZSc7CiAgICB9CiAgICBpZiAoJEVycm9yTm90ZSkgewogICAgICAgIGlmICgKICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRQYXJhbXtCbG9ja05hbWV9ICYmICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2hvd0NvbmZpcm1hdGlvbicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQmxvY2tOYW1lID0+ICRQYXJhbXtCbG9ja05hbWV9LAogICAgICAgICAgICAgICAgWWVhciAgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgICAgIE1vbnRoICAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgRGF5ICAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte0RhdGV9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgIFByZWZpeCAgID0+ICcnLAogICAgICAgIEZvcm1hdCAgID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICBpZiAoCiAgICAgICAgdGltZWxvY2FsKCAxLCAwLCAwLCAkUGFyYW17RGF5fSwgJFBhcmFte01vbnRofSAtIDEsICRQYXJhbXtZZWFyfSAtIDE5MDAgKSA8IHRpbWVsb2NhbCgKICAgICAgICAgICAgMSwgMCwgMCwgJFBhcmFte0RheUFsbG93ZWR9LAogICAgICAgICAgICAkUGFyYW17TW9udGhBbGxvd2VkfSAtIDEsCiAgICAgICAgICAgICRQYXJhbXtZZWFyQWxsb3dlZH0gLSAxOTAwCiAgICAgICAgKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17ICRQYXJhbXtZZWFyfSB9eyAkUGFyYW17TW9udGh9IH17ICRQYXJhbXtEYXl9IH0KICAgICAgICAgICAgJiYgISRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlYWRvbmx5JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCcKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGluY29tcGxldGUgd29ya2luZyBkYXlzCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdDsKICAgICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgZm9yIG15ICRZZWFySUQgKCBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfSB9ICkgewogICAgICAgIGZvciBteSAkTW9udGhJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9IH0gKSB7CiAgICAgICAgICAgIGZvciBteSAkRGF5SUQgKAogICAgICAgICAgICAgICAgc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH17JE1vbnRoSUR9IH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c0xpc3R7IiRZZWFySUQtJE1vbnRoSUQtJERheUlEIn0gPSAiJFllYXJJRC0kTW9udGhJRC0kRGF5SUQiOwogICAgICAgICAgICAgICAgJFBhcmFte0luY29tcGxldGV9ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFNob3cgdGV4dCwgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXJlIGF2YWlsYWJsZQogICAgaWYgKCAkUGFyYW17SW5jb21wbGV0ZX0gKSB7CgogICAgICAgICMgaWYgbWFzcyBlbnRyeSBvcHRpb24gaXMgZW5hYmxlZCwgc2hvdyBsaXN0IG9mIHdvcmtpbmcgZGF5cwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6QWxsb3dNYXNzRW50cnlGb3JVc2VyIikgKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFdvcmtpbmdEYXlzICggc29ydCBrZXlzICVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0ICkgewogICAgICAgICAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggLy0vLCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHskV29ya2luZ0RheXN9ICk7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICA9PiAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHskV29ya2luZ0RheXN9LAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgIyBvdGhlcndpc2Ugc2hvdyBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBhcyBhIGRyb3AtZG93bgogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBjdXJyZW50IGRheSBpcyBpbmNvbXBsZXRlCiAgICAgICAgICAgICMgaWYgeWVzLCBzZWxlY3QgdGhlIGN1cnJlbnQgZGF5IGluIHRoZSBkcm9wLWRvd24KICAgICAgICAgICAgIyBvdGhlcndpc2Ugc2VsZWN0IHRoZSBlbXB0eSBlbGVtZW50CiAgICAgICAgICAgIG15ICRTZWxlY3RlZElEOwoKICAgICAgICAgICAgaWYgKCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHsiJFBhcmFte1llYXJ9LSRQYXJhbXtNb250aH0tJFBhcmFte0RheX0ifSApIHsKICAgICAgICAgICAgICAgICRTZWxlY3RlZElEID0gIiRQYXJhbXtZZWFyfS0kUGFyYW17TW9udGh9LSRQYXJhbXtEYXl9IjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJEluY29tcGxlV29ya2luZ0RheXNTZWxlY3QgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJUluY29tcGxldGVXb3JraW5nRGF5c0xpc3QsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJFNlbGVjdGVkSUQsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIkluY29tcGxldGVXb3JraW5nRGF5c0xpc3QiLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICBUaXRsZSA9PgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiSW5jb21wbGV0ZSBXb3JraW5nIERheXMiKSwKICAgICAgICAgICAgICAgIENsYXNzID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXMnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgSW5jb21wbGV0ZVdvcmtpbmdEYXlzU2VsZWN0ID0+ICRJbmNvbXBsZVdvcmtpbmdEYXlzU2VsZWN0LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICk7CgogICAgJFBhcmFte1dlZWtkYXl9ID0gRGF5X29mX1dlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKCiAgICAjIGdldCB3b3JraW5nIGRheXMgb2YgdGhlIHVzZXIncyBjYWxlbmRhcgogICAgbXkgJENhbGVuZGFyTmFtZSA9ICdUaW1lV29ya2luZ0hvdXJzJzsKICAgICRDYWxlbmRhck5hbWUgLj0gJFVzZXJEYXRhe0NhbGVuZGFyfSA/ICI6OkNhbGVuZGFyJFVzZXJEYXRhe0NhbGVuZGFyfSIgOiAnJzsKICAgIG15ICRDYWxlbmRhcldvcmtpbmdIb3VycyA9ICRDb25maWdPYmplY3QtPkdldCgkQ2FsZW5kYXJOYW1lKTsKCiAgICAjIHNob3cgIm90aGVyIHRpbWVzIiBibG9jaywgaWYgbmVjZXNzYXJ5CiAgICBpZiAoCiAgICAgICAgQHsgJENhbGVuZGFyV29ya2luZ0hvdXJzLT57ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXSB9IH0KICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICApCiAgICB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ090aGVyVGltZXMnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICVGcm9udGVuZCwKICAgICAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXTsKCiAgICAjIGludGVncmF0ZSB0aGUgaGFuZGxpbmcgZm9yIHJlcXVpcmVkIHJlbWFya3MgaW4gcmVsYXRpb24gdG8gcHJvamVjdHMKICAgICRQYXJhbXtSZW1hcmtSZWdFeHB9ID0gJFNlbGYtPl9Qcm9qZWN0MlJlbWFya1JlZ0V4cCgpOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdFZGl0JywKICAgICk7CgogICAgaWYgKCAhJEluY29tcGxldGVXb3JraW5nRGF5c3tFbmZvcmNlSW5zZXJ0fSApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGNyZWF0ZSBwcm9qZWN0IGxpbmssIGlmIGFsbG93ZWQKICAgICAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRVc2VyRGF0YXtDcmVhdGVQcm9qZWN0fSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDcmVhdGVQcm9qZWN0JywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRJbmNvbXBsZXRlV29ya2luZ0RheXN7V2FybmluZ30gKSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnKSwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICgkRXJyb3JOb3RlKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gICAgID0+ICRFcnJvck5vdGUsCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggZGVmaW5lZCAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gKQogICAgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnU3VjY2Vzc2Z1bCBpbnNlcnQhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgbWFzcyBlbnRyeSBub3RpZmljYXRpb24KICAgIGlmICggJFBhcmFte05vdGlmaWNhdGlvbn0gZXEgJ0Vycm9yJyApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJyksCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte05vdGlmaWNhdGlvbn0gZXEgJ1N1Y2Nlc3NmdWwnICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgbm90aWZpY2F0aW9uIGlmIHdyb25nIGRhdGUgd2FzIHNlbGVjdGVkCiAgICBpZiAoICRQYXJhbXtXcm9uZ0RhdGV9ICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nKSwKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICApOwogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgIH0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0OwoKfQoKc3ViIF9GaXJzdFVzZXJSZWRpcmVjdCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgZm9yIGluaXRpYWwgdXNpbmcsIHRoZSBmaXJzdCBhZ2VudCB3aXRoIHJ3LXJpZ2h0IHdpbGwgYmUgcmVkaXJlY3RlZAogICAgIyB0byAnU2V0dGluZycuIFRoZW4gaGUgY2FuIGRvIHRoZSBpbml0aWFsIHNldHRpbmdzCgogICAgbXkgJUdyb3VwTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIGZvciBteSAkR3JvdXBLZXkgKCBzb3J0IGtleXMgJUdyb3VwTGlzdCApIHsKICAgICAgICBpZiAoICRHcm91cExpc3R7JEdyb3VwS2V5fSBlcSAndGltZV9hY2NvdW50aW5nJyApIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICBUcmFuc2xhdGFibGUoJ05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nKSwKICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnKSwKICAgICk7Cn0KCnN1YiBfQWN0aW9uTGlzdCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15ICVBY3Rpb25MaXN0OwogICAgbXkgJUFjdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpLT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICMgZ2V0IGFjdGlvbiBzZXR0aW5ncwogICAgQUNUSU9OSUQ6CiAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICVBY3Rpb24gKSB7CiAgICAgICAgbmV4dCBBQ1RJT05JRCBpZiAhJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvblN0YXR1c307CiAgICAgICAgbmV4dCBBQ1RJT05JRCBpZiAhJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICAgICAgJEFjdGlvbkxpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb259OwogICAgfQogICAgJEFjdGlvbkxpc3R7Jyd9ID0gJyc7CgogICAgcmV0dXJuICVBY3Rpb25MaXN0Owp9CgpzdWIgX0FjdGlvbkxpc3RDb25zdHJhaW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVMaXN0OwogICAgaWYgKCAkUGFyYW17UHJvamVjdElEfSAmJiBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0Q29uc3RyYWludHN9IH0gKSB7CiAgICAgICAgbXkgJFByb2plY3ROYW1lOwoKICAgICAgICBQUk9KRUNUOgogICAgICAgIGZvciBteSAkUHJvamVjdCAoIEB7ICRQYXJhbXtQcm9qZWN0TGlzdH0tPntBbGxQcm9qZWN0c30gfSApIHsKICAgICAgICAgICAgaWYgKCAkUHJvamVjdC0+e0tleX0gZXEgJFBhcmFte1Byb2plY3RJRH0gKSB7CiAgICAgICAgICAgICAgICAkUHJvamVjdE5hbWUgPSAkUHJvamVjdC0+e1ZhbHVlfTsKICAgICAgICAgICAgICAgIGxhc3QgUFJPSkVDVDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCBkZWZpbmVkKCRQcm9qZWN0TmFtZSkgKSB7CgogICAgICAgICAgICAjIGxvb3Agb3ZlciBhY3Rpb25zIHRvIGZpbmQgbWF0Y2hlcyBmb3IgY29uZmlndXJlZCBwcm9qZWN0CiAgICAgICAgICAgICMgYW5kIGFjdGlvbiByZWctZXhwIHBhaXJzCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3R9IH0gKSB7CgogICAgICAgICAgICAgICAgbXkgJEFjdGlvbk5hbWUgPSAkUGFyYW17QWN0aW9uTGlzdH0tPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgIFBST0pFQ1ROQU1FUkVHRVhQOgogICAgICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0TmFtZVJlZ0V4cCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdENvbnN0cmFpbnRzfSB9ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lUmVnRXhwID0gJFBhcmFte0FjdGlvbkxpc3RDb25zdHJhaW50c30tPnskUHJvamVjdE5hbWVSZWdFeHB9OwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFByb2plY3ROYW1lID1+IG17JFByb2plY3ROYW1lUmVnRXhwfXNteAogICAgICAgICAgICAgICAgICAgICAgICAmJiAkQWN0aW9uTmFtZSA9fiBteyRBY3Rpb25OYW1lUmVnRXhwfXNteAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkTGlzdHskQWN0aW9uSUR9ID0gJEFjdGlvbk5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgUFJPSkVDVE5BTUVSRUdFWFA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgYWxsIGF2YWlsYWJsZSBhY3Rpb25zIHdpbGwgYmUgYWRkZWQgaWYgbm8gYWN0aW9uIHdhcyBhZGRlZCBhYm92ZSAocG9zc2libGUgbWlzY29uZmlndXJhdGlvbikKICAgIGlmICggIWtleXMgJUxpc3QgKSB7CiAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdH0gfSApIHsKICAgICAgICAgICAgbXkgJEFjdGlvbk5hbWUgPSAkUGFyYW17QWN0aW9uTGlzdH0tPnskQWN0aW9uSUR9OwogICAgICAgICAgICAkTGlzdHskQWN0aW9uSUR9ID0gJEFjdGlvbk5hbWU7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcJUxpc3Q7Cn0KCnN1YiBfUHJvamVjdExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBwcm9qZWN0IHNldHRpbmdzCiAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICBpZiAoICEkU2VsZi0+e0xhc3RQcm9qZWN0c1JlZn0gKSB7CgogICAgICAgICMgZ2V0IHRoZSBsYXN0IHByb2plY3RzCiAgICAgICAgbXkgQExhc3RQcm9qZWN0cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+TGFzdFByb2plY3RzT2ZVc2VyKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHRoZSBmYXZvcml0ZXMKICAgICAgICAleyAkU2VsZi0+e0xhc3RQcm9qZWN0c1JlZn0gfSA9IG1hcCB7ICRfID0+IDEgfSBATGFzdFByb2plY3RzOwogICAgfQoKICAgIG15IEBMYXN0UHJvamVjdHMgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnJywKICAgICAgICAgICAgVmFsdWUgPT4gJy0nLAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIHRoZSBzZXBhcmF0b3IKICAgIFBST0pFQ1RJRDoKICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICBzb3J0IHsgJFByb2plY3R7UHJvamVjdH17JGF9IGNtcCAkUHJvamVjdHtQcm9qZWN0fXskYn0gfQogICAgICAgIGtleXMgJXsgJFByb2plY3R7UHJvamVjdH0gfQogICAgICAgICkKICAgIHsKICAgICAgICBuZXh0IFBST0pFQ1RJRCBpZiAhJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9LT57JFByb2plY3RJRH07CiAgICAgICAgbXkgJUhhc2ggPSAoCiAgICAgICAgICAgIEtleSAgID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgIFZhbHVlID0+ICRQcm9qZWN0e1Byb2plY3R9eyRQcm9qZWN0SUR9LAogICAgICAgICk7CiAgICAgICAgcHVzaCBATGFzdFByb2plY3RzLCBcJUhhc2g7CiAgICB9CgogICAgQExhc3RQcm9qZWN0cyA9ICRTZWxmLT5fUHJvamVjdExpc3RDb25zdHJhaW50cygKICAgICAgICBMaXN0ICAgICAgID0+IFxATGFzdFByb2plY3RzLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1NlbGVjdGVkSUR9IHx8ICcnLAogICAgKTsKCiAgICBteSBAQWxsUHJvamVjdHM7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGNoZWNrIGlmIEF1dG9Db21wbGV0aW9uIGlzIGRpc2FibGVkCiAgICAjIGluIHRoaXMgY2FzZSBhIHNlcGFyYXRvciBpcyBuZWVkZWQgYmV0d2VlbiB0d28gbGlzdHMgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCkKICAgIGlmICgKICAgICAgICAhJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24iKQogICAgICAgIHx8ICEkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIiKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoIHNjYWxhciBATGFzdFByb2plY3RzID4gMSApIHsKCiAgICAgICAgICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgICAgICAgICAjIGFkZCBsYXN0IHByb2plY3RzIHNlcGFyYXRvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0CiAgICAgICAgICAgIG15ICRMYXN0UHJvamVjdHNTdHIgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnKTsKCiAgICAgICAgICAgIHVuc2hpZnQgQExhc3RQcm9qZWN0cywgewogICAgICAgICAgICAgICAgS2V5ICAgICAgPT4gJzAnLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gIi0tLSRMYXN0UHJvamVjdHNTdHItLS0iLAogICAgICAgICAgICAgICAgRGlzYWJsZWQgPT4gMSwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICMgYWRkIGFsbCBwcm9qZWN0cyBzZXBhcmF0b3IgcmlnaHQgYWZ0ZXIgdGhlIGxhc3Qgc2VsZWN0ZWQgcHJvamVjdHMgbGlzdAogICAgICAgICAgICBteSAkQWxsUHJvamVjdHNTdHIgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0FsbCBQcm9qZWN0cycpOwoKICAgICAgICAgICAgcHVzaCBATGFzdFByb2plY3RzLCB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnMCcsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAiLS0tJEFsbFByb2plY3RzU3RyLS0tIiwKICAgICAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgQEFsbFByb2plY3RzID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAnJywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICctJywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgYWRkIGFsbCBhbGxvd2VkIHByb2plY3RzIHRvIHRoZSBsaXN0CiAgICBQUk9KRUNUSUQ6CiAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICBrZXlzICV7ICRQcm9qZWN0e1Byb2plY3R9IH0KICAgICAgICApCiAgICB7CiAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgISRQcm9qZWN0e1Byb2plY3R9eyRQcm9qZWN0SUR9OwogICAgICAgIG15ICVIYXNoID0gKAogICAgICAgICAgICBLZXkgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICBWYWx1ZSA9PiAkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfSwKICAgICAgICApOwogICAgICAgIGlmICggJFBhcmFte1NlbGVjdGVkSUR9ICYmICRQYXJhbXtTZWxlY3RlZElEfSBlcSAkUHJvamVjdElEICkgewogICAgICAgICAgICAkSGFzaHtTZWxlY3RlZH0gPSAxOwogICAgICAgIH0KCiAgICAgICAgcHVzaCBAQWxsUHJvamVjdHMsIFwlSGFzaDsKICAgIH0KCiAgICBAQWxsUHJvamVjdHMgPSAkU2VsZi0+X1Byb2plY3RMaXN0Q29uc3RyYWludHMoCiAgICAgICAgTGlzdCAgICAgICA9PiBcQEFsbFByb2plY3RzLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1NlbGVjdGVkSUR9IHx8ICcnLAogICAgKTsKCiAgICBteSAlUHJvamVjdHMgPSAoCiAgICAgICAgTGFzdFByb2plY3RzID0+IFxATGFzdFByb2plY3RzLAogICAgICAgIEFsbFByb2plY3RzICA9PiBcQEFsbFByb2plY3RzLAogICAgKTsKCiAgICByZXR1cm4gXCVQcm9qZWN0czsKfQoKc3ViIF9Qcm9qZWN0TGlzdENvbnN0cmFpbnRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQExpc3Q7CiAgICBteSAkUHJvamVjdENvdW50ICAgICAgICAgICA9IDA7CiAgICBteSAkUHJvamVjdExpc3RDb25zdHJhaW50cyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVGltZUFjY291bnRpbmc6OlByb2plY3RMaXN0Q29uc3RyYWludHMnKTsKCiAgICBpZiAoIGtleXMgJXskUHJvamVjdExpc3RDb25zdHJhaW50c30gKSB7CgogICAgICAgICMgZ2V0IGdyb3VwcyBvZiBjdXJyZW50IHVzZXIKICAgICAgICBteSAlR3JvdXBzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgKTsKICAgICAgICAlR3JvdXBzID0gbWFwIHsgJEdyb3Vwc3skX30gPT4gMSB9IGtleXMgJUdyb3VwczsKCiAgICAgICAgIyBnZXQgcHJvamVjdCBsaXN0IGNvbnN0cmFpbnRzCiAgICAgICAgbXkgJVByb2plY3RSZWdleDsKICAgICAgICBmb3IgbXkgJFByb2plY3RSZWdleCAoIHNvcnQga2V5cyAleyRQcm9qZWN0TGlzdENvbnN0cmFpbnRzfSApIHsKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0R3JvdXAgKCBzcGxpdCAvLFxzKi8sICRQcm9qZWN0TGlzdENvbnN0cmFpbnRzLT57JFByb2plY3RSZWdleH0gKSB7CiAgICAgICAgICAgICAgICBpZiAoICRHcm91cHN7JFByb2plY3RHcm91cH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RSZWdleHskUHJvamVjdFJlZ2V4fSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbXkgQFByb2plY3RSZWdleCA9IGtleXMgJVByb2plY3RSZWdleDsKCiAgICAgICAgIyByZWR1Y2UgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byBjb25maWd1cmF0aW9uCiAgICAgICAgaWYgKCByZWYoICRQYXJhbXtMaXN0fSApICYmIEBQcm9qZWN0UmVnZXggKSB7CgogICAgICAgICAgICBteSAkRWxlbWVudENvdW50ID0gMDsKCiAgICAgICAgICAgIGZvciBteSAkUHJvamVjdCAoIEB7ICRQYXJhbXtMaXN0fSB9ICkgewogICAgICAgICAgICAgICAgbXkgJFByb2plY3ROYW1lID0gJFByb2plY3QtPntWYWx1ZX07CgogICAgICAgICAgICAgICAgIyBlbXB0eSBmaXJzdCBlbGVtZW50LCBsYXN0IHByb2plY3RzIHNlcGFyYXRvciBhbmQgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QKICAgICAgICAgICAgICAgIGlmICggISRFbGVtZW50Q291bnQgfHwgISRQcm9qZWN0LT57S2V5fSB8fCAkUHJvamVjdC0+e0tleX0gZXEgJFBhcmFte1NlbGVjdGVkSUR9ICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsICRQcm9qZWN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgUFJPSkVDVFJFR0VYUDoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFByb2plY3RSZWdleCAoQFByb2plY3RSZWdleCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRQcm9qZWN0TmFtZSA9fiBteyRQcm9qZWN0UmVnZXh9c214ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBATGlzdCwgJFByb2plY3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUHJvamVjdENvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0IFBST0pFQ1RSRUdFWFA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkRWxlbWVudENvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgZnVsbCBwcm9qZWN0IGxpc3QgaWYgY29uc3RyYWludHMgcmVzdWx0ZWQgaW4gZW1wdHkgcHJvamVjdCBsaXN0IG9yIGlmIGNvbnN0cmFpbnRzIGFyZW4ndAogICAgIyBjb25maWd1cmVkIChwb3NzaWJsZSBtaXNjb25maWd1cmF0aW9uKQogICAgaWYgKCAhJFByb2plY3RDb3VudCApIHsKICAgICAgICBATGlzdCA9IEB7ICRQYXJhbXtMaXN0fSB9OwogICAgfQoKICAgIHJldHVybiBATGlzdDsKfQoKIyBpbnRlZ3JhdGUgdGhlIGhhbmRsaW5nIGZvciByZXF1aXJlZCByZW1hcmtzIGluIHJlbGF0aW9uIHRvIHByb2plY3RzCgpzdWIgX1Byb2plY3QyUmVtYXJrUmVnRXhwIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgbXkgQFByb2plY3RzMlJlbWFyayA9ICgpOwogICAgbXkgJVByb2plY3REYXRhICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpLT5Qcm9qZWN0U2V0dGluZ3NHZXQoCiAgICAgICAgU3RhdHVzID0+ICd2YWxpZCcsCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIHJldHVybiAnJyBpZiAhJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAnKTsKCiAgICBteSAkUHJvamVjdDJSZW1hcmtSZWdFeHAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpQcm9qZWN0MlJlbWFya1JlZ0V4cCcpOwoKICAgIGZvciBteSAkUHJvamVjdElEICggc29ydCBrZXlzICV7ICRQcm9qZWN0RGF0YXtQcm9qZWN0fSB9ICkgewogICAgICAgIGlmICggJFByb2plY3REYXRhe1Byb2plY3R9eyRQcm9qZWN0SUR9ID1+IG17JFByb2plY3QyUmVtYXJrUmVnRXhwfXNteCApIHsKICAgICAgICAgICAgcHVzaCBAUHJvamVjdHMyUmVtYXJrLCAkUHJvamVjdElEOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gam9pbiAnfCcsIEBQcm9qZWN0czJSZW1hcms7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRGF0ZTo6UGNhbGMgcXcoVG9kYXkgRGF5c19pbl9Nb250aCBEYXlfb2ZfV2VlayBBZGRfRGVsdGFfWU1EIGNoZWNrX2RhdGUpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgVGltZTo6TG9jYWw7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcgYWJvdXQgdGhlIHVzZXJzIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIERheSBNb250aCBZZWFyIFVzZXJJRCBQcm9qZWN0U3RhdHVzU2hvdykpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CiAgICAkUGFyYW17QWN0aW9ufSA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFBhcmFte0FjdGlvbn0gPSAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnOwogICAgfQogICAgaWYgKCAkUGFyYW17VXNlcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VXNlcn0gPSAkU2hvd25Vc2Vyc3sgJFBhcmFte1VzZXJJRH0gfTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAxLCAwLCAtMSwgMCApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIDEsIDAgKTsKCiAgICAjIE92ZXJ2aWV3IHBlciBkYXkKICAgIG15ICREYXlzT2ZNb250aCA9IERheXNfaW5fTW9udGgoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkRGF5ICggMSAuLiAkRGF5c09mTW9udGggKSB7CiAgICAgICAgJFBhcmFte0RheX0gPSBzcHJpbnRmKCAiJTAyZCIsICREYXkgKTsKICAgICAgICAkUGFyYW17V2Vla2RheX0gPSBEYXlfb2ZfV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkRGF5ICkgLSAxOwogICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJERheSApOwogICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnLAogICAgICAgICk7CiAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JywKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aW1lIHpvbmUgdG8gY2FsY3VsYXRpb24KICAgICAgICBteSAkVXNlckNhbGVuZGFyID0gJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAnJzsKICAgICAgICBteSAkWm9uZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkVXNlckNhbGVuZGFyICk7CiAgICAgICAgaWYgKCRab25lKSB7CiAgICAgICAgICAgIG15ICRab25lU2Vjb25kcyA9ICRab25lICogNjAgKiA2MDsKICAgICAgICAgICAgJERheVN0YXJ0VGltZSA9ICREYXlTdGFydFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgICAgICREYXlTdG9wVGltZSAgPSAkRGF5U3RvcFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgfQoKICAgICAgICBteSAkVGhpc0RheVdvcmtpbmdUaW1lID0gJFRpbWVPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgU3RvcFRpbWUgID0+ICREYXlTdG9wVGltZSwKICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRVc2VyQ2FsZW5kYXIsCiAgICAgICAgKSB8fCAnMCc7CgogICAgICAgIGlmICggJFBhcmFte1llYXJ9IGVxICRZZWFyICYmICRQYXJhbXtNb250aH0gZXEgJE1vbnRoICYmICRDdXJyZW50RGF5IGVxICREYXkgKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gPSAnQWN0aXZlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCRWYWNhdGlvbkNoZWNrKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gICA9ICdWYWNhdGlvbic7CiAgICAgICAgICAgICRQYXJhbXtDb21tZW50fSA9ICRWYWNhdGlvbkNoZWNrOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJFRoaXNEYXlXb3JraW5nVGltZSkgewogICAgICAgICAgICAkUGFyYW17Q2xhc3N9ID0gJ1dvcmtpbmdEYXknOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSA9ICdOb25Xb3JraW5nRGF5JzsKICAgICAgICB9CgogICAgICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17Q29tbWVudH0gPSAkRGF0YXtTaWNrfQogICAgICAgICAgICA/IFRyYW5zbGF0YWJsZSgnU2ljayBsZWF2ZScpCiAgICAgICAgICAgIDogJERhdGF7TGVhdmVEYXl9ID8gVHJhbnNsYXRhYmxlKCdPbiB2YWNhdGlvbicpCiAgICAgICAgICAgIDogJERhdGF7T3ZlcnRpbWV9ID8gVHJhbnNsYXRhYmxlKCdPbiBvdmVydGltZSBsZWF2ZScpCiAgICAgICAgICAgIDogICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICRQYXJhbXtXb3JraW5nSG91cnN9ID0gJERhdGF7VG90YWx9ID8gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSA6ICcnOwoKICAgICAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSBdOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICAgICAgJFBhcmFte0NvbW1lbnR9ID0gJyc7CiAgICB9CgogICAgbXkgJVVzZXJSZXBvcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICApOwogICAgZm9yIG15ICRSZXBvcnRFbGVtZW50ICgKICAgICAgICBxdyhUYXJnZXRTdGF0ZSBUYXJnZXRTdGF0ZVRvdGFsIFdvcmtpbmdIb3Vyc1RvdGFsIFdvcmtpbmdIb3VycwogICAgICAgIE92ZXJ0aW1lIE92ZXJ0aW1lVG90YWwgT3ZlcnRpbWVVbnRpbCBMZWF2ZURheSBMZWF2ZURheVRvdGFsCiAgICAgICAgTGVhdmVEYXlSZW1haW5pbmcgU2ljayBTaWNrVG90YWwgU2lja1JlbWFpbmluZykKICAgICAgICApCiAgICB7CiAgICAgICAgJFVzZXJSZXBvcnR7ICRQYXJhbXtVc2VySUR9IH17JFJlcG9ydEVsZW1lbnR9IHx8PSAwOwogICAgICAgICRQYXJhbXskUmVwb3J0RWxlbWVudH0gPSBzcHJpbnRmKCAiJS4yZiIsICRVc2VyUmVwb3J0eyAkUGFyYW17VXNlcklEfSB9eyRSZXBvcnRFbGVtZW50fSApOwogICAgfQoKICAgIGlmICggJFVzZXJEYXRhe1Nob3dPdmVydGltZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ0aW1lJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoIFwlUHJvamVjdERhdGEgKSApIHsKCiAgICAgICAgIyBzaG93IHRoZSByZXBvcnQgc29ydCBieSBwcm9qZWN0cwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gfHwgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAndmFsaWQnICkgewogICAgICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ2FsbCc7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyApIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICd2YWxpZCc7CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17U2hvd1Byb2plY3RzfSA9ICdTaG93ICcgLiAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IC4gJyBwcm9qZWN0cyc7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgIFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdERhdGF7JGF9e05hbWV9IGNtcCAkUHJvamVjdERhdGF7JGJ9e05hbWV9IH0ga2V5cyAlUHJvamVjdERhdGEKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFByb2plY3RSZWYgPSAkUHJvamVjdERhdGF7JFByb2plY3RJRH07CiAgICAgICAgICAgIG15ICRBY3Rpb25zUmVmID0gJFByb2plY3RSZWYtPntBY3Rpb25zfTsKCiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICcnOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSA9ICRQcm9qZWN0UmVmLT57U3RhdHVzfSA/ICcnIDogJ3Bhc3Npdic7CgogICAgICAgICAgICBteSAkVG90YWwgICAgICA9IDA7CiAgICAgICAgICAgIG15ICRUb3RhbFRvdGFsID0gMDsKCiAgICAgICAgICAgIG5leHQgUFJPSkVDVElEIGlmICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgJiYgJFBhcmFte1N0YXR1c307CgogICAgICAgICAgICBpZiAoJEFjdGlvbnNSZWYpIHsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKAogICAgICAgICAgICAgICAgICAgIHNvcnQgeyAkQWN0aW9uc1JlZi0+eyRhfXtOYW1lfSBjbXAgJEFjdGlvbnNSZWYtPnskYn17TmFtZX0gfQogICAgICAgICAgICAgICAgICAgIGtleXMgJXskQWN0aW9uc1JlZn0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGlvblJlZiA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfTsKCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbn0gICAgID0gJEFjdGlvblJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJEFjdGlvblJlZi0+e1Blck1vbnRofSB8fCAwICk7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57VG90YWx9IHx8IDAgKTsKICAgICAgICAgICAgICAgICAgICAkVG90YWwgICAgICArPSAkUGFyYW17SG91cnN9OwogICAgICAgICAgICAgICAgICAgICRUb3RhbFRvdGFsICs9ICRQYXJhbXtIb3Vyc1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJFByb2plY3RSZWYtPntOYW1lfTsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXdMaW5lICAgICAgICA9PiA1MCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3dTcGFuID0+ICggMSArIHNjYWxhciBrZXlzICV7JEFjdGlvbnNSZWZ9ICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICA9PiAkUGFyYW17U3RhdHVzfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFByb2plY3REZXNjcmlwdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdERlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICRQcm9qZWN0RGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGVyc29ucyB3aG8gYXJlIGFsbG93ZWQgdG8gc2VlIHRoZSBjcmVhdGUgb2JqZWN0IGxpbmsgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFsbG93ZWQgdG8gc2VlIHRoZSBwcm9qZWN0IHJlcG9ydGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdExpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgPT4gJFByb2plY3RSZWYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0Tm9MaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgUHJvamVjdCA9PiAkUHJvamVjdFJlZi0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgTm93IHNob3cgcm93IHdpdGggdG90YWwgcmVzdWx0IG9mIGFsbCBhY3Rpb25zIG9mIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWwgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsVG90YWwgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgICs9ICRUb3RhbDsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICs9ICRUb3RhbFRvdGFsOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uVG90YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggZGVmaW5lZCggJFBhcmFte1RvdGFsSG91cnN9ICkgKSB7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnN9ICk7CiAgICAgICAgfQogICAgICAgIGlmICggZGVmaW5lZCggJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKSApIHsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICk7CiAgICAgICAgfQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnT3ZlcnZpZXcnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3JwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUVycm9ycyA9ICgpOwogICAgbXkgJUdldFBhcmFtOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZH07ICRQZXJpb2QrKyApIHsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0KICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICk7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnTWlzc2luZ1ZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlU3RhcnR9ICk7CiAgICAgICAgbXkgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlRW5kfSApOwogICAgICAgIG15ICRFbmREYXRlID0gJFRpbWVPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgIGlmICggISRTdGFydERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggISRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggJFN0YXJ0RGF0ZSAmJiAkRW5kRGF0ZSAmJiAkU3RhcnREYXRlID49ICRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnQmVmb3JlRGF0ZVN0YXJ0JzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGU6OlBjYWxjIHF3KFRvZGF5IERheXNfaW5fTW9udGggRGF5X29mX1dlZWsgQWRkX0RlbHRhX1lNRCBjaGVja19kYXRlKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIFRpbWU6OkxvY2FsOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkVGltZU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB0aW1lIGFjY291bnRpbmcgcHJvamVjdCByZXBvcnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUmVwb3J0aW5nUHJvamVjdCcgKSB7CgogICAgICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6JFNlbGYtPntTdWJhY3Rpb259Iik7CgogICAgICAgIG15ICVGcm9udGVuZCA9ICgpOwoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0SUQnICk7CgogICAgICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJykKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICVBY3Rpb24gID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdHtQcm9qZWN0fS0+eyAkUGFyYW17UHJvamVjdElEfSB9OwoKICAgICAgICAjIGdldCBzeXN0ZW0gdXNlcnMKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAwCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ID0gJENvbmZpZy0+e1Nob3dPbmx5QWN0aXZlVXNlcnN9OwoKICAgICAgICBpZiAoICRQYXJhbXtTaG93T25seUFjdGl2ZVVzZXJzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHJlZ2lzdGVyZWQgdXNlcnMKICAgICAgICAgICAgbXkgJVJlZ2lzdGVyZWRVc2VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgICAgICMgcmVkdWNlIHNob3duIHVzZXJzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgcmVnaXN0ZXJlZCBpbiB0aW1lIGFjY291bnRpbmcKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBrZXlzICVSZWdpc3RlcmVkVXNlcnM7CiAgICAgICAgfQoKICAgICAgICAjIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nIGlzIG5vdCByZXdvcmtlZAogICAgICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgKTsKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAoKTsKICAgICAgICBteSAlUHJvamVjdFRpbWUgPSAoKTsKCiAgICAgICAgbXkgQFVzZXJXaGl0ZUxpc3Q7CgogICAgICAgICMgT25seSBvbmUgZnVuY3Rpb24gc2hvdWxkIGJlIGVub3VnaAogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVTaG93blVzZXJzICkgewoKICAgICAgICAgICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICAgICAgICAgICMgUkVNQVJLOiBUaGlzIGlzIHRoZSB3cm9uZyBmdW5jdGlvbiB0byBnZXQgdGhpcyBpbmZvcm1hdGlvbgogICAgICAgICAgICAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJFByb2plY3REYXRheyAkUGFyYW17UHJvamVjdElEfSB9ICkgewogICAgICAgICAgICAgICAgbXkgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0OwogICAgICAgICAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkUHJvamVjdERhdGF7ICRQYXJhbXtQcm9qZWN0SUR9IH0tPntBY3Rpb25zfTsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXskQWN0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RUaW1leyRBY3Rpb25JRH0tPnskVXNlcklEfS0+e0hvdXJzfSA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfS0+e1RvdGFsfTsKCiAgICAgICAgICAgICAgICAgICAgIyByZW1lbWJlciB0aGUgc3VtIG9mIGFsbCBob3VycyBvZiBhbGwgdGFza3MKICAgICAgICAgICAgICAgICAgICAkVXNlclRvdGFsSG91cnNJblByb2plY3QgKz0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9LT57VG90YWx9IHx8IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciBvbmx5IHRoZSB1c2VycyB0aGF0IGhhcyBiZWVuIGFkZGVkIGhvdXJzIHRvIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdCAmJiAkVXNlclRvdGFsSG91cnNJblByb2plY3QgPiAwICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFVzZXJXaGl0ZUxpc3QsICRVc2VySUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ICkgewoKICAgICAgICAgICAgIyByZWR1Y2Ugc2hvd24gdXNlcnMgdG8gb25seSB0aGUgb25lcyB0aGF0IGFyZSBhY3RpdmUgaW4gdGhlIHByb2plY3QgKGJ5IGFkZGluZyBob3VycykKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBAVXNlcldoaXRlTGlzdDsKICAgICAgICB9CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGhlIGhlYWRlciBsaW5lCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJOYW1lJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgVXNlciA9PiAkU2hvd25Vc2Vyc3skVXNlcklEfSB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBiZXR0ZXIgc29sdXRpb24gZm9yIHNvcnQgYWN0aW9ucyBuZWNlc3NhcnkKICAgICAgICAgICAgbXkgJU5ld0FjdGlvbiA9ICgpOwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICVQcm9qZWN0VGltZSApIHsKICAgICAgICAgICAgICAgICROZXdBY3Rpb257JEFjdGlvbklEfSA9ICRBY3Rpb257JEFjdGlvbklEfS0+e0FjdGlvbn07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJUFjdGlvbiA9ICVOZXdBY3Rpb247CgogICAgICAgICAgICAjIHNob3cgdGhlIHJlc3VsdHMKICAgICAgICAgICAgbXkgJVRvdGFsID0gKCk7CiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IHsgJEFjdGlvbnskYX0gY21wICRBY3Rpb257JGJ9IH0ga2V5cyAlQWN0aW9uICkgewogICAgICAgICAgICAgICAgbXkgJFRvdGFsSG91cnMgPSAwOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb257JEFjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICAgICAkVG90YWxIb3VycyArPSAkUHJvamVjdFRpbWV7JEFjdGlvbklEfXskVXNlcklEfXtIb3Vyc30gfHwgMDsKICAgICAgICAgICAgICAgICAgICAkVG90YWx7JFVzZXJJRH0gKz0gJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDA7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvdXJzID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggIiUuMmYiLCAkUHJvamVjdFRpbWV7JEFjdGlvbklEfXskVXNlcklEfXtIb3Vyc30gfHwgMCApLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBUb3RhbAogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhvdXJzID0+IHNwcmludGYoICIlLjJmIiwgJFRvdGFsSG91cnMgKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkUGFyYW17VG90YWxBbGx9ID0gMDsKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICAgICAgJFBhcmFte1RvdGFsQWxsfSArPSAkVG90YWx7JFVzZXJJRH07CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyVG90YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBUb3RhbCA9PiBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbHskVXNlcklEfSApLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUb3RhbEFsbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBUb3RhbEFsbCA9PiBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEFsbH0gKSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIG15IEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0SGlzdG9yeSgKICAgICAgICAgICAgUHJvamVjdElEID0+ICRQYXJhbXtQcm9qZWN0SUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggXEBQcm9qZWN0SGlzdG9yeUFycmF5ICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJUZyb250ZW5kCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBQcm9qZWN0SGlzdG9yeUFycmF5KSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBVc2VyICAgPT4gJFJvdy0+e1VzZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJFJvdy0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbWFyayA9PiAkUm93LT57UmVtYXJrfSB8fCAnLS0nLAogICAgICAgICAgICAgICAgICAgICAgICBQZXJpb2QgPT4gc3ByaW50ZiggIiUuMmYiLCAkUm93LT57UGVyaW9kfSApLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICAgPT4gJFJvdy0+e0RhdGV9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNob3cgdGhlIHRvdGFsIHN1bSBvZiBob3VycyBhdCB0aGUgZW5kIG9mIHRoZSBoaXN0b3J5IGxpc3QKICAgICAgICAgICAgIyBJIGFsc28gY2FuIHVzZSAkUGFyYW17VG90YWxBbGx9CiAgICAgICAgICAgIG15ICRQcm9qZWN0VG90YWxIb3VycyA9IHNwcmludGYoCiAgICAgICAgICAgICAgICAiJS4yZiIsCiAgICAgICAgICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RUb3RhbEhvdXJzKAogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hpc3RvcnlUb3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VG90YWwgPT4gJFByb2plY3RUb3RhbEhvdXJzIHx8IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBvdXRwdXQKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZyBQcm9qZWN0JyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdGltZSBhY2NvdW50aW5nIHJlcG9ydGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICVGcm9udGVuZCAgID0gKCk7CiAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMAogICAgKTsKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBNb250aCBZZWFyIFByb2plY3RTdGF0dXNTaG93KSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICBteSAlTW9udGggPSAoKTsKICAgIGZvciBteSAkSUQgKCAxIC4uIDEyICkgewogICAgICAgICRNb250aHsgc3ByaW50ZiggIiUwMmQiLCAkSUQgKSB9ID0gJE1vbnRoQXJyYXlbJElEXTsKICAgIH0KCiAgICAkRnJvbnRlbmR7TW9udGhPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVNb250aCwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17TW9udGh9IHx8ICcnLAogICAgICAgIE5hbWUgICAgICAgID0+ICdNb250aCcsCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJNb250aCIpLAogICAgKTsKCiAgICBteSBAWWVhciA9ICggJFllYXIgLSA0IC4uICRZZWFyICsgMSApOwoKICAgICRGcm9udGVuZHtZZWFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFxAWWVhciwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17WWVhcn0gfHwgJycsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1llYXInLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJZZWFyIiksCiAgICApOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIC0xLCAwICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKSA9IEFkZF9EZWx0YV9ZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgMSwgMCwgMSwgMCApOwoKICAgIG15ICVVc2VyUmVwb3J0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyUmVwb3J0aW5nKAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAlVXNlckJhc2ljcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggXCVTaG93blVzZXJzICkgfHwgIUlzSGFzaFJlZldpdGhEYXRhKCBcJVVzZXJSZXBvcnQgKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9Vc2VyRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyVGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwoKICAgICAgICBVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICBuZXh0IFVTRVJJRCBpZiAhJFVzZXJSZXBvcnR7JFVzZXJJRH07CgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAoCiAgICAgICAgICAgICAgICBxdyhMZWF2ZURheSBPdmVydGltZSBXb3JraW5nSG91cnMgU2ljayBMZWF2ZURheVJlbWFpbmluZyBPdmVydGltZVRvdGFsKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSBzcHJpbnRmKCAiJS4yZiIsICggJFVzZXJSZXBvcnR7JFVzZXJJRH17JFBhcmFtZXRlcn0gfHwgMCApICk7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUb3RhbCcgLiAkUGFyYW1ldGVyIH0gKz0gJFBhcmFteyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIFNob3cgT3ZlcnRpbWUgaWYgYWxsb3dlZAogICAgICAgICAgICBpZiAoICEkVXNlckJhc2ljc3skVXNlcklEfXtTaG93T3ZlcnRpbWV9ICkgewogICAgICAgICAgICAgICAgJFBhcmFte092ZXJ0aW1lfSAgICAgID0gJyc7CiAgICAgICAgICAgICAgICAkUGFyYW17T3ZlcnRpbWVUb3RhbH0gPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFBhcmFte1VzZXJ9ICAgPSAkU2hvd25Vc2Vyc3skVXNlcklEfTsKICAgICAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkVXNlcklEOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAoCiAgICAgICAgICAgIHF3KFRvdGFsTGVhdmVEYXkgVG90YWxPdmVydGltZSBUb3RhbFdvcmtpbmdIb3VycwogICAgICAgICAgICBUb3RhbFNpY2sgVG90YWxMZWF2ZURheVJlbWFpbmluZyBUb3RhbE92ZXJ0aW1lVG90YWwpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9IHNwcmludGYoICIlLjJmIiwgKCAkUGFyYW17JFBhcmFtZXRlcn0gKSB8fCAwICk7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlckdyYW5kVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHRoZSByZXBvcnQgc29ydCBieSBwcm9qZWN0cwogICAgaWYgKCAhJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSB8fCAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IGVxICd2YWxpZCcgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICdhbGwnOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IGVxICdhbGwnICkgewogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gPSAndmFsaWQnOwogICAgfQoKICAgICRQYXJhbXtTaG93UHJvamVjdHN9ID0gJ1Nob3cgJyAuICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gLiAnIHByb2plY3RzJzsKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICApOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVByb2plY3REYXRhICkgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vUHJvamVjdERhdGFGb3VuZE1zZycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c0xpbmtDbGFzc30gPSAnSGlkZGVuJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwoKICAgICAgICAjIFJFTUFSSzogbWVyZ2UgdGhpcyBwcm9qZWN0IHJlcG9ydGluZyBsaXN0IHdpdGggdGhlIGxpc3QgaW4gb3ZlcnZpZXcKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgICAgICBzb3J0IHsgJFByb2plY3REYXRheyRhfS0+e05hbWV9IGNtcCAkUHJvamVjdERhdGF7JGJ9LT57TmFtZX0gfQogICAgICAgICAgICBrZXlzICVQcm9qZWN0RGF0YQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkUHJvamVjdFJlZiA9ICRQcm9qZWN0RGF0YXskUHJvamVjdElEfTsKICAgICAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkUHJvamVjdFJlZi0+e0FjdGlvbnN9OwoKICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJyc7CiAgICAgICAgICAgICRQYXJhbXtTdGF0dXN9ID0gJFByb2plY3RSZWYtPntTdGF0dXN9ID8gJycgOiAncGFzc2l2JzsKCiAgICAgICAgICAgIG15ICRUb3RhbCAgICAgID0gMDsKICAgICAgICAgICAgbXkgJFRvdGFsVG90YWwgPSAwOwoKICAgICAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyAmJiAkUGFyYW17U3RhdHVzfTsKCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKAogICAgICAgICAgICAgICAgc29ydCB7ICRBY3Rpb25zUmVmLT57JGF9LT57TmFtZX0gY21wICRBY3Rpb25zUmVmLT57JGJ9LT57TmFtZX0gfQogICAgICAgICAgICAgICAga2V5cyAleyRBY3Rpb25zUmVmfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkQWN0aW9uUmVmID0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ICA9ICRQcm9qZWN0SUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgICAgPSAkQWN0aW9uUmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntQZXJNb250aH0gfHwgMCApOwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57VG90YWx9IHx8IDAgKTsKICAgICAgICAgICAgICAgICRUb3RhbCAgICAgICs9ICRQYXJhbXtIb3Vyc307CiAgICAgICAgICAgICAgICAkVG90YWxUb3RhbCArPSAkUGFyYW17SG91cnNUb3RhbH07CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb24nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdFJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0RGVzY3JpcHRpb24gPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgTmV3TGluZSAgICAgICAgPT4gNTAsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd1NwYW4gICAgICAgICAgICA9PiAoIDEgKyBzY2FsYXIga2V5cyAleyRBY3Rpb25zUmVmfSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICAgICAgICAgICAgID0+ICRQYXJhbXtTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICRQcm9qZWN0RGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RSZWYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCAgICAgICAgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgICAgICAgID0+ICdNYXN0ZXJBY3Rpb25MaW5rJyAuICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWwgKTsKICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWxUb3RhbCApOwogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICArPSAkVG90YWw7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICs9ICRUb3RhbFRvdGFsOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvblRvdGFsJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgfHw9IDA7CiAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gfHw9IDA7CgogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxIb3Vyc30gKTsKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIG91dHB1dAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZycpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nJwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGV4cHJlc3Npb24gYWRkIHRpbWUgcGVyaW9kIHdhcyBwcmVzc2VkCiAgICBpZiAoCiAgICAgICAgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKQogICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJtaXRVc2VyRGF0YScgKQogICAgICAgICkKICAgIHsKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1VzZXJJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApOwogICAgICAgIG15ICRQZXJpb2RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgIG15ICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgUGVyaW9kID0+ICRQZXJpb2RzLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIHBlcmlvZCBkYXRhIGlzIE9LCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZ2V0IGFsbCBwYXJhbWV0ZXJzCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdWJhY3Rpb24gRGVzY3JpcHRpb24gQ2FsZW5kYXIpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0KSkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRQZXJpb2QgPSAxOwogICAgICAgICAgICBteSAlUGVyaW9kRGF0YTsKCiAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U2luZ2xlVXNlclNldHRpbmdzR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBwYXJhbWV0ZXJzIGZvciBhbGwgcmVnaXN0ZXJlZCBwZXJpb2RzCiAgICAgICAgICAgIHdoaWxlICggJFVzZXJEYXRheyRQZXJpb2R9ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFdlZWtseUhvdXJzIE92ZXJ0aW1lIERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kRGF0YXskUGVyaW9kfXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApCiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRVc2VyRGF0YXskUGVyaW9kfXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQZXJpb2REYXRheyRQZXJpb2R9e1VzZXJTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIlBlcmlvZFN0YXR1c1skUGVyaW9kXSIgKSB8fCAwOwogICAgICAgICAgICAgICAgJFBlcmlvZCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZXRQYXJhbXtQZXJpb2R9ID0gXCVQZXJpb2REYXRhOwoKICAgICAgICAgICAgIyB1cGRhdGUgcGVyaW9kcwogICAgICAgICAgICBpZiAoICEkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSglR2V0UGFyYW0pICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzIScpLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkUGVyaW9kJyApICkgewoKICAgICAgICAgICAgICAgICMgc2hvdyB0aGUgZWRpdCB0aW1lIHNldHRpbmdzIGFnYWluLCBidXQgbm93IHdpdGggYSBuZXcgZW1wdHkgdGltZSBwZXJpb2QgbGluZQogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7U3ViYWN0aW9uPSRHZXRQYXJhbXtTdWJhY3Rpb259O1VzZXJJRD0kR2V0UGFyYW17VXNlcklEfTsiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIk5ld1RpbWVQZXJpb2Q9MSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgc2hvdyB0aGUgb3ZlcnZpZXcgb2YgdGFza3MgYW5kIHVzZXJzCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZztVc2VyPSRTZWxmLT57U3ViYWN0aW9ufSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCBwcm9qZWN0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFByb2plY3QnICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1Byb2plY3RTZXR0aW5nc0VkaXQoIEFjdGlvbiA9PiAnQWRkUHJvamVjdCcgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgcHJvamVjdCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkUHJvamVjdEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICROb3RlID0gJyc7CiAgICAgICAgbXkgJFByb2plY3RJRDsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFByb2plY3QgUHJvamVjdERlc2NyaXB0aW9uKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQogICAgICAgICRHZXRQYXJhbXtQcm9qZWN0U3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0U3RhdHVzJyApCiAgICAgICAgICAgIHx8ICcwJzsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RFcnJvclR5cGV9ID0gJ1Byb2plY3RNaXNzaW5nVmFsdWUnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgIFByb2plY3QgPT4gJEdldFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJUV4aXN0aW5nUHJvamVjdCkgewogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RFcnJvclR5cGV9ID0gJ1Byb2plY3REdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBhZGQgcHJvamVjdAogICAgICAgICAgICAkUHJvamVjdElEID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJFByb2plY3RJRCkgewoKICAgICAgICAgICAgICAgICMgYnVpbGQgdGhlIG91dHB1dAogICAgICAgICAgICAgICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1Byb2plY3QgYWRkZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslR2V0UGFyYW19LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTm90ZSA9ICRMb2dPYmplY3QtPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIHdlbnQgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZQogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X1Byb2plY3RTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQWRkUHJvamVjdCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHByb2plY3QKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFByb2plY3QnICkgewogICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKTsKCiAgICAgICAgIyBnZXQgcHJvamVjdCBkYXRhCiAgICAgICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgIElEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0VkaXRQcm9qZWN0JywKICAgICAgICAgICAgJVByb2plY3QsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCBwcm9qZWN0IGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0UHJvamVjdEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICROb3RlID0gJyc7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICkgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2plY3RTdGF0dXMnICkKICAgICAgICAgICAgfHwgJzAnOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Byb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgdGhlIHByb2plY3QgbmFtZSBpcyBmb3VuZCwgY2hlY2sgdGhhdCB0aGUgSUQgaXMgZGlmZmVyZW50CiAgICAgICAgICAgIGlmICggJUV4aXN0aW5nUHJvamVjdCAmJiAkRXhpc3RpbmdQcm9qZWN0e0lEfSBuZSAkR2V0UGFyYW17SUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RFcnJvclR5cGV9ID0gJ1Byb2plY3REdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBlZGl0IHByb2plY3QKICAgICAgICAgICAgaWYgKCAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSglR2V0UGFyYW0pICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0IHVwZGF0ZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0UHJvamVjdCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB0YXNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRhc2snICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1Rhc2tTZXR0aW5nc0VkaXQoIEFjdGlvbiA9PiAnQWRkVGFzaycgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHRhc2sgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRhc2tBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICRUYXNrSUQ7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtUYXNrfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrJyApIHx8ICcnOwogICAgICAgICRHZXRQYXJhbXtUYXNrU3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrU3RhdHVzJyApCiAgICAgICAgICAgIHx8ICcwJzsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17VGFza30gKSB7CiAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze1Rhc2tFcnJvclR5cGV9ID0gJ1Rhc2tNaXNzaW5nVmFsdWUnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCVFeGlzdGluZ1Rhc2spIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrRXJyb3JUeXBlfSA9ICdUYXNrRHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIHRhc2sKICAgICAgICAgICAgJFRhc2tJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEdldFBhcmFte1Rhc2t9LAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICRHZXRQYXJhbXtUYXNrU3RhdHVzfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkVGFza0lEKSB7CgogICAgICAgICAgICAgICAgIyBidWlsZCB0aGUgb3V0cHV0CiAgICAgICAgICAgICAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVGFzayBhZGRlZCEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGRUYXNrJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdGFzawogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0VGFzaycgKSB7CiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FjdGlvbklEJyApIHx8ICcnOwoKICAgICAgICAjIGdldCBwcm9qZWN0IGRhdGEKICAgICAgICBteSAlVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJVRhc2tEYXRhID0gKAogICAgICAgICAgICBUYXNrICAgICAgID0+ICRUYXNre0FjdGlvbn0sCiAgICAgICAgICAgIFRhc2tTdGF0dXMgPT4gJFRhc2t7QWN0aW9uU3RhdHVzfSwKICAgICAgICApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICA9PiAnRWRpdFRhc2snLAogICAgICAgICAgICBBY3Rpb25JRCA9PiAkSUQsCiAgICAgICAgICAgICVUYXNrRGF0YSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHByb2plY3QgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRUYXNrQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgJEdldFBhcmFte0FjdGlvbklEfSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FjdGlvbklEJyApICAgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Rhc2tTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rhc2tTdGF0dXMnICkgfHwgJzAnOwogICAgICAgICRHZXRQYXJhbXtUYXNrfSAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrJyApICAgICAgIHx8ICcnOwoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtUYXNrfSApIHsKICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgdGhlIHRhc2sgbmFtZSBpcyBmb3VuZCwgY2hlY2sgdGhhdCB0aGUgSUQgaXMgZGlmZmVyZW50CiAgICAgICAgICAgIGlmICggJUV4aXN0aW5nVGFzayAmJiAkRXhpc3RpbmdUYXNre0lEfSBuZSAkR2V0UGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tFcnJvclR5cGV9ID0gJ1Rhc2tEdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBlZGl0IGFjdGlvbiAodGFzaykKICAgICAgICAgICAgbXkgJEFjdGlvblVwZGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgICAgICBBY3Rpb25JRCAgICAgPT4gJEdldFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkR2V0UGFyYW17VGFza30sCiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gJEdldFBhcmFte1Rhc2tTdGF0dXN9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRBY3Rpb25VcGRhdGUpIHsKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdUYXNrIHVwZGF0ZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0VGFzaycsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB1c2VyCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFVzZXInICkgewoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJE5ld1VzZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdVc2VySUQnICkKICAgICAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJJRCcgKQogICAgICAgICAgICB8fCAnJzsKICAgICAgICBpZiAoICEkTmV3VXNlcklEICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZSBVc2VySUQgaXMgbm90IHZhbGlkIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE5ld1RpbWVQZXJpb2QgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmV3VGltZVBlcmlvZCcgKTsKCiAgICAgICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICApOwoKICAgICAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyICsgMSwKICAgICAgICApOwoKICAgICAgICAjIGlmIGl0IGlzIG5vdCBhbiBhY3Rpb24gYWJvdXQgYWRkaW5nIGEgbmV3IHRpbWUgcGVyaW9kCiAgICAgICAgaWYgKCAhJE5ld1RpbWVQZXJpb2QgKSB7CiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCBncm91cCBvYmplY3QKICAgICAgICAgICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgICAgICAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cExpc3QoIFZhbGlkID0+IDEgKTsKICAgICAgICAgICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkR3JvdXBLZXkgKCBzb3J0IGtleXMgJUdyb3VwcyApIHsKICAgICAgICAgICAgICAgIGlmICggJEdyb3Vwc3skR3JvdXBLZXl9IGVxICd0aW1lX2FjY291bnRpbmcnICYmICEkR3JvdXBEYXRheyRHcm91cEtleX0gKSB7CgogICAgICAgICAgICAgICAgICAgICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJBZGQoCiAgICAgICAgICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBVSUQgICAgICAgID0+ICROZXdVc2VySUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm8gICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlX2ludG8gPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZSAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXIgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ3ICAgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICApOwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1VzZXJTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnQWRkVXNlcicsCiAgICAgICAgICAgIFN1YmFjdGlvbiA9PiAnQWRkVXNlcicsCiAgICAgICAgICAgICVVc2VyLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdXNlciBzZXR0aW5ncwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0VXNlcicgKSB7CiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJJRCcgKSB8fCAnJzsKICAgICAgICBpZiAoICEkSUQgKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkTmV3VGltZVBlcmlvZCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdUaW1lUGVyaW9kJyApOwogICAgICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICAjIGlmIGl0IGlzIGFuIGFjdGlvbiBhYm91dCBhZGRpbmcgYSBuZXcgdGltZSBwZXJpb2QsIGluc2VydCBpdAogICAgICAgIGlmICgkTmV3VGltZVBlcmlvZCkgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlRXJyb3JzID0gKCk7CgogICAgICAgIGlmICgKICAgICAgICAgICAgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKQogICAgICAgICAgICB8fCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3VibWl0VXNlckRhdGEnICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgICAgICAlRXJyb3JzID0gJFNlbGYtPl9DaGVja1ZhbGlkaXR5VXNlclBlcmlvZHMoCiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCB1c2VyIGRhdGEKICAgICAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Vc2VyU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ0VkaXRVc2VyJywKICAgICAgICAgICAgU3ViYWN0aW9uID0+ICdFZGl0VXNlcicsCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkSUQsCiAgICAgICAgICAgIEVycm9ycyAgICA9PiBcJUVycm9ycywKICAgICAgICAgICAgUGVyaW9kcyAgID0+ICRMYXN0UGVyaW9kTnVtYmVyLAogICAgICAgICAgICAlVXNlciwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzZXR0aW5ncyBmb3IgaGFuZGxpbmcgdGltZSBhY2NvdW50aW5nCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgZ2V0IHVzZXIgZGF0YQogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICYmICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKCiAgICAgICAgIyByZXR1cm4gbm8gcGVybWlzc2lvbiBzY3JlZW4KICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgdGhlIHVzZXIgYWN0aW9uIHRvIHNob3cgYSBtZXNzYWdlIGlmIGFuIHVzZXIgd2FzIHVwZGF0ZWQgb3IgYWRkZWQKICAgIG15ICROb3RlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXInICk7CgogICAgIyBidWlsZCBvdXRwdXQKICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnU2V0dGluZycpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgc2hvdyBhIG5vdGlmaWNhdGlvbiBtZXNzYWdlIGlmIHByb3BlcgogICAgaWYgKCROb3RlKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZSBlcSAnRWRpdFVzZXInCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVXNlciB1cGRhdGVkIScpLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVXNlciBhZGRlZCEnKSwKICAgICAgICAgICAgKTsKICAgIH0KCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVFcnJvcnMgPSAoKTsKICAgIG15ICVHZXRQYXJhbTsKCiAgICAjIGdldCB0aW1lIG9iamVjdAogICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgIGZvciAoIG15ICRQZXJpb2QgPSAxOyAkUGVyaW9kIDw9ICRQYXJhbXtQZXJpb2R9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9CiAgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApOwogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3sgJFBhcmFtZXRlciAuICctJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ01pc3NpbmdWYWx1ZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZVN0YXJ0fSApOwogICAgICAgIG15ICRTdGFydERhdGUgPSAkVGltZU9iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZUVuZH0gKTsKICAgICAgICBteSAkRW5kRGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU3RhcnREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICEkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0ludmFsaWQnOwogICAgICAgIH0KICAgICAgICBpZiAoICRTdGFydERhdGUgJiYgJEVuZERhdGUgJiYgJFN0YXJ0RGF0ZSA+PSAkRW5kRGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ0JlZm9yZURhdGVTdGFydCc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRXJyb3JzOwp9CgpzdWIgX1Byb2plY3RTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25TZXR0aW5nT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHN0YXR1cyBsaXN0CiAgICBteSAlU3RhdHVzTGlzdCA9ICgKICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgndmFsaWQnKSwKICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnaW52YWxpZCcpLAogICAgKTsKCiAgICBteSAkUHJvamVjdFN0YXR1cyA9IDE7CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1Byb2plY3RTdGF0dXN9ICkgewogICAgICAgICRQcm9qZWN0U3RhdHVzID0gJFBhcmFte1Byb2plY3RTdGF0dXN9CiAgICB9CgogICAgJFBhcmFte1N0YXR1c09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICBTZWxlY3RlZElEID0+ICRQcm9qZWN0U3RhdHVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1Byb2plY3RTdGF0dXMnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlUHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIHNob3dzIGhlYWRlcgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnRWRpdFByb2plY3QnICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJFZGl0UHJvamVjdCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJBZGRQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSAoaWYgYW55KSBmb3IgdGhlIHByb2plY3QgbmFtZQogICAgaWYgKCAkUGFyYW17UHJvamVjdEVycm9yVHlwZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte1Byb2plY3RFcnJvclR5cGV9LAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfU2V0dGluZ092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVByb2plY3QgPSAoKTsKICAgIG15ICVEYXRhICAgID0gKCk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGJ1aWxkIG91dHB1dAogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25BZGRQcm9qZWN0JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGhhc2ggdG8gc2F2ZSByZWdpc3RlcmVkIHVzZXJzCiAgICBteSAlVXNlcjsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgIGlmICggJFNlbGYtPntBY2Nlc3NSd30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICVTaG93blVzZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzIChpZiBhbnkpCiAgICAgICAgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgogICAgICAgIFVTRVJJTkZPOgogICAgICAgIGZvciBteSAkVXNlckluZm8gKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICBuZXh0IFVTRVJJTkZPIGlmICEkVXNlcnskVXNlckluZm99OwoKICAgICAgICAgICAgIyBkZWxldGUgYWxyZWFkeSByZWdpc3RlcmVkIHVzZXIgZnJvbSB0aGUgJ25ldycgbGlzdAogICAgICAgICAgICBkZWxldGUgJFNob3duVXNlcnN7JFVzZXJJbmZvfTsKICAgICAgICB9CgogICAgICAgIGlmICglU2hvd25Vc2VycykgewogICAgICAgICAgICBteSAkTmV3VXNlck9wdGlvbiA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAnJywKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnTmV3VXNlcklEJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJOZXcgVXNlciIpLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFVzZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmV3VXNlck9wdGlvbiA9PiAkTmV3VXNlck9wdGlvbiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1Byb2plY3RGaWx0ZXInLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgIGlmICggJFNlbGYtPntBY2Nlc3NSd30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Rhc2tGaWx0ZXInLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJGaWx0ZXInLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBTaG93IHByb2plY3QgZGF0YQogICAgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgIyBzaG93IGxpc3Qgb2YgYXZhaWxhYmxlIHByb2plY3RzIChpZiBhbnkpCiAgICBpZiAoICRQcm9qZWN0e1Byb2plY3R9ICkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSAgICAgICAgICAgID0gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH07CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259ID0gJFByb2plY3R7UHJvamVjdERlc2NyaXB0aW9ufXskUHJvamVjdElEfTsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RJRH0gICAgICAgICAgPSAkUHJvamVjdElEOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSAgICAgICAgICAgICA9ICRTdGF0dXNMaXN0eyAkUHJvamVjdHtQcm9qZWN0U3RhdHVzfXskUHJvamVjdElEfSB9OwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3RSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UsIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1Byb2plY3REYXRhRm91bmRNc2cnLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKCiAgICAgICAgIyBTaG93IGFjdGlvbiBkYXRhCiAgICAgICAgbXkgJUFjdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZycsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiBhdmFpbGFibGUgdGFza3MvYWN0aW9ucyAoaWYgYW55KQogICAgICAgIGlmICglQWN0aW9uKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCB7ICRBY3Rpb257JGF9e0FjdGlvbn0gY21wICRBY3Rpb257JGJ9e0FjdGlvbn0gfSBrZXlzICVBY3Rpb24gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgID0gJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9uSUR9ID0gJEFjdGlvbklEOwogICAgICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gICA9ICRTdGF0dXNMaXN0eyAkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9uU3RhdHVzfSB9OwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9TZXR0aW5nRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgdXNlciBkYXRhCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzIChpZiBhbnkpCiAgICAgICAgaWYgKCVVc2VyKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkVXNlcnskYX0gY21wICRVc2VyeyRifSB9IGtleXMgJVVzZXIgKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgbWlzc2luZyB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSAlVXNlckdlbmVyYWxEYXRhID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkUGFyYW17VXNlcn0gICAgICAgPSAiJFVzZXJHZW5lcmFsRGF0YXtVc2VyRnVsbG5hbWV9ICgkVXNlckdlbmVyYWxEYXRhe1VzZXJMb2dpbn0pIjsKICAgICAgICAgICAgICAgICRQYXJhbXtVc2VySUR9ICAgICA9ICRVc2VySUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17Q29tbWVudH0gICAgPSAkVXNlckRhdGF7RGVzY3JpcHRpb259OwogICAgICAgICAgICAgICAgJFBhcmFte0NhbGVuZGFyTm99ID0gJFVzZXJEYXRhe0NhbGVuZGFyfTsKICAgICAgICAgICAgICAgICRQYXJhbXtDYWxlbmRhcn0gICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgKICAgICAgICAgICAgICAgICAgICAiVGltZVpvbmU6OkNhbGVuZGFyIgogICAgICAgICAgICAgICAgICAgICAgICAuICggJFBhcmFte0NhbGVuZGFyTm99IHx8ICcnICkgLiAiTmFtZSIKICAgICAgICAgICAgICAgICkgfHwgJ0RlZmF1bHQnOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Vc2VyRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1Rhc2tTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFNldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgbXkgJFRhc2tTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtUYXNrU3RhdHVzfSApIHsKICAgICAgICAkVGFza1N0YXR1cyA9ICRQYXJhbXtUYXNrU3RhdHVzfQogICAgfQoKICAgICRQYXJhbXtTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkVGFza1N0YXR1cywKICAgICAgICBOYW1lICAgICAgID0+ICdUYXNrU3RhdHVzJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZVRhc2snLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBzaG93cyBoZWFkZXIKICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0VkaXRUYXNrJyApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRWRpdFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyQWRkVGFzaycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgc2VydmVyIGVycm9yIG1lc3NhZ2UgKGlmIGFueSkgZm9yIHRoZSB0YXNrIG5hbWUKICAgIGlmICggJFBhcmFte1Rhc2tFcnJvclR5cGV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRQYXJhbXtUYXNrRXJyb3JUeXBlfSwKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1VzZXJTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEZXNjcmlwdGlvbiBTaG93T3ZlcnRpbWUgQ3JlYXRlUHJvamVjdCBDYWxlbmRhcikpIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHRoZSBkYXRlLXBpY2tlciB1c2VkIGluIHRoaXMgc2NyZWVuIGlzIG5vbi1zdGFuZGFyZAogICAgIyBUaGVyZWZvciB3ZSBoYXZlIHRvIGRlZmluZSB0aGlzIHZhciBpbiB0aGUgTGF5b3V0T2JqZWN0IGZvciBhdXRvbWF0aWMgY29uZmlnIGdlbmVyYXRpb24gaW4gdGhlIEpTIGZvb3RlcgogICAgJExheW91dE9iamVjdC0+e0hhc0RhdGVwaWNrZXJ9ID0gMTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdSZWZlcmVuY2UnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHN0YXR1cyBsaXN0CiAgICBteSAlU3RhdHVzTGlzdCA9ICgKICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgndmFsaWQnKSwKICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnaW52YWxpZCcpLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGZpbGwgdXAgdGhlIGNhbGVuZGFyIGxpc3QKICAgIG15ICRDYWxlbmRhckxpc3RSZWYgPSB7IDAgPT4gJ0RlZmF1bHQnIH07CiAgICBteSAkQ2FsZW5kYXJJbmRleCA9IDE7CiAgICB3aGlsZSAoICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkQ2FsZW5kYXJJbmRleCAuICJOYW1lIiApICkgewogICAgICAgICRDYWxlbmRhckxpc3RSZWYtPnskQ2FsZW5kYXJJbmRleH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gJENhbGVuZGFySW5kZXggLiAiTmFtZSIgKTsKICAgICAgICAkQ2FsZW5kYXJJbmRleCsrOwogICAgfQoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgZ2V0IHVzZXIgZGF0YQogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgJFBhcmFte0NhbGVuZGFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+ICRDYWxlbmRhckxpc3RSZWYsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0NhbGVuZGFyJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRHZXRQYXJhbXtDYWxlbmRhcn0gfHwgJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17RGVzY3JpcHRpb259ID0gJEdldFBhcmFte0Rlc2NyaXB0aW9ufSB8fCAkVXNlckRhdGF7RGVzY3JpcHRpb259IHx8ICcnOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlVXNlcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lID0+ICggJEdldFBhcmFte1Nob3dPdmVydGltZX0gfHwgJFVzZXJEYXRhe1Nob3dPdmVydGltZX0gKQogICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAoICRHZXRQYXJhbXtDcmVhdGVQcm9qZWN0fSB8fCAkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gKQogICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgfQogICAgKTsKCiAgICAjIHNob3dzIGhlYWRlcgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnRWRpdFVzZXInICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJFZGl0VXNlcicsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJBZGRVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBpZiB0aGVyZSBhcmUgZXJyb3JzIHRvIHNob3cKICAgIGlmICggJFBhcmFte0Vycm9yc30gJiYgJXsgJFBhcmFte0Vycm9yc30gfSApIHsKCiAgICAgICAgIyBzaG93IGFsbCBleGlzdGluZyBwZXJpb2RzCiAgICAgICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZHN9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzIFdlZWtseUhvdXJzIE92ZXJ0aW1lIFBlcmlvZFN0YXR1cyApKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiJFBhcmFtZXRlclxbJFBlcmlvZFxdIiApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17JFBlcmlvZH17UGVyaW9kU3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtQZXJpb2RTdGF0dXN9IHx8ICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXN9LAogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiUGVyaW9kU3RhdHVzWyRQZXJpb2RdIiwKICAgICAgICAgICAgICAgIElEICAgICAgICAgPT4gIlBlcmlvZFN0YXR1cy0kUGVyaW9kIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQZXJpb2QgU3RhdHVzIiksCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgICAgICAgID0+ICRQZXJpb2QsCiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0SW52YWxpZCA9PiAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZEludmFsaWQgPT4gJFBhcmFte0Vycm9yc30tPnsgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXNJbnZhbGlkID0+ICRQYXJhbXtFcnJvcnN9LT57ICdMZWF2ZURheXMtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICAgICAgICAgPT4gJEdldFBhcmFte0RhdGVTdGFydH0sCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgICAgICAgID0+ICRHZXRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICAgICAgICAgPT4gJEdldFBhcmFte0xlYXZlRGF5c30sCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgICAgICAgID0+ICRHZXRQYXJhbXtXZWVrbHlIb3Vyc30sCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgICAgICAgID0+ICRHZXRQYXJhbXtPdmVydGltZX0sCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kU3RhdHVzT3B0aW9uID0+ICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXNPcHRpb259LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGF0ZVN0YXJ0JwogICAgICAgICAgICAgICAgICAgIC4gKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICdNaXNzaW5nVmFsdWUnCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIERhdGEgPT4geyBQZXJpb2QgPT4gJFBlcmlvZCB9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RhdGVFbmQnCiAgICAgICAgICAgICAgICAgICAgLiAoICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSB8fCAnTWlzc2luZ1ZhbHVlJyApLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7IFBlcmlvZCA9PiAkUGVyaW9kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyB1c2VyIGRhdGEKICAgICAgICBpZiAoJVVzZXIpIHsKICAgICAgICAgICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkTGFzdFBlcmlvZE51bWJlcjsgJFBlcmlvZCsrICkgewogICAgICAgICAgICAgICAgbXkgJVBlcmlvZFBhcmFtID0gKCk7CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIG5lZWRlZCBkYXRhIHRvIGRpc3BsYXkKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMgV2Vla2x5SG91cnMgT3ZlcnRpbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFVzZXJ7JFBlcmlvZH17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGVyaW9kUGFyYW17UGVyaW9kfSA9ICRQZXJpb2Q7CgogICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFte1BlcmlvZFN0YXR1c09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRVc2VyeyRQZXJpb2R9e1VzZXJTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gIlBlcmlvZFN0YXR1c1skUGVyaW9kXSIsCiAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAiUGVyaW9kU3RhdHVzLSRQZXJpb2QiLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQZXJpb2QgU3RhdHVzIiksCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kT3ZlcnZpZXdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVQZXJpb2RQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93Tm9EYXRhJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nVmlldzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyhUb2RheSBEYXlzX2luX01vbnRoIERheV9vZl9XZWVrIEFkZF9EZWx0YV9ZTUQgY2hlY2tfZGF0ZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQE1vbnRoQXJyYXkgPSAoCiAgICAgICAgJycsICAgICAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICAgICAnQXByaWwnLCAgICdNYXknLAogICAgICAgICdKdW5lJywgJ0p1bHknLCAgICAnQXVndXN0JywgICAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLAogICAgICAgICdEZWNlbWJlcicsCiAgICApOwogICAgbXkgQFdlZWtkYXlBcnJheSA9ICggJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1bicsICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdmlldyBvbGRlciBkYXkgaW5zZXJ0cwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtcwogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERheSBNb250aCBZZWFyIFVzZXJJRCkpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRGF5IE1vbnRoIFllYXIpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdWaWV3OiBOZWVkICVzIScsICROZWVkZWQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBmb3JtYXQgdGhlIGRhdGUgcGFydHMKICAgICRQYXJhbXtZZWFyfSAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtZZWFyfSApOwogICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgJFBhcmFte0RheX0gICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte0RheX0gKTsKCiAgICAjIGlmIG5vIFVzZXJJRCBwb3N0ZWQgdXNlIHRoZSBjdXJyZW50IHVzZXIKICAgICRQYXJhbXtVc2VySUR9IHx8PSAkU2VsZi0+e1VzZXJJRH07CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAjIGdldCBjdXJyZW50IGRhdGUgYW5kIHRpbWUKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgICMgcmVkaXJlY3QgdG8gdGhlIGVkaXQgc2NyZWVuLCBpZiBuZWNlc3NhcnkKICAgIGlmICgKICAgICAgICB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApID4gdGltZWxvY2FsKAogICAgICAgICAgICAxLCAwLCAwLCAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgICRQYXJhbXtNb250aEFsbG93ZWR9IC0gMSwKICAgICAgICAgICAgJFBhcmFte1llYXJBbGxvd2VkfSAtIDE5MDAKICAgICAgICApICYmICRQYXJhbXtVc2VySUR9ID09ICRTZWxmLT57VXNlcklEfQogICAgICAgICkKICAgIHsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIG5hbWluZyBvZiB0aGUgYWdlbnQgd2hpY2ggdGltZSBhY2NvdW50aW5nIGlzIHZpc2l0ZWQKICAgIGlmICggJFBhcmFte1VzZXJJRH0gIT0gJFNlbGYtPntVc2VySUR9ICkgewogICAgICAgIG15ICVTaG93blVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMQogICAgICAgICk7CiAgICAgICAgJFBhcmFte1VzZXJ9ID0gJFNob3duVXNlcnN7ICRQYXJhbXtVc2VySUR9IH07CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte1dlZWtkYXl9ICAgICAgICAgPSBEYXlfb2ZfV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApOwogICAgJFBhcmFte1dlZWtkYXlfdG9fVGV4dH0gPSAkV2Vla2RheUFycmF5WyAkUGFyYW17V2Vla2RheX0gLSAxIF07CiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gICA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgIyBWYWx1ZXMgZm9yIHRoZSBsaW5rIGljb25zIDw+CiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgLTEgKTsKICAgICggJFBhcmFte1llYXJOZXh0fSwgJFBhcmFte01vbnRoTmV4dH0sICRQYXJhbXtEYXlOZXh0fSApCiAgICAgICAgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAxICk7CgogICAgJFBhcmFte0RhdGVTZWxlY3Rpb259ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnJywKICAgICAgICBGb3JtYXQgICA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgIENsYXNzICAgID0+ICRQYXJhbXtFcnJvcnN9LT57RGF0ZUludmFsaWR9LAogICAgKTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIFNob3cgV29ya2luZyBVbml0cwogICAgIyBnZXQgZXhpc3Rpbmcgd29ya2luZyB1bml0cwogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtEYXRlfSA9ICREYXRhe0RhdGV9OwoKICAgICMgZ2V0IHByb2plY3QgYW5kIGFjdGlvbiBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgc2ljaywgbGVhdmUgZGF5IGFuZCBvdmVydGltZQogICAgJFBhcmFte1NpY2t9ICAgICA9ICREYXRhe1NpY2t9ICAgICA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte0xlYXZlRGF5fSA9ICREYXRhe0xlYXZlRGF5fSA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkJyA6ICcnOwoKICAgICMgb25seSBzaG93IHRoZSB1bml0IGJsb2NrIGlmIHRoZXJlIGlzIHNvbWUgZGF0YQogICAgbXkgJFVuaXRzUmVmID0gJERhdGF7V29ya2luZ1VuaXRzfTsKICAgIGlmICggJFVuaXRzUmVmLT5bMF0gKSB7CgogICAgICAgIGZvciBteSAkVW5pdFJlZiAoIEB7JFVuaXRzUmVmfSApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVW5pdCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgPT4gJFByb2plY3R7UHJvamVjdH17ICRVbml0UmVmLT57UHJvamVjdElEfSB9LAogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkQWN0aW9ueyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICRVbml0UmVmLT57UmVtYXJrfSwKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJFVuaXRSZWYtPntTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkVW5pdFJlZi0+e0VuZFRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAkVW5pdFJlZi0+e1BlcmlvZH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUb3RhbCA9PiBzcHJpbnRmKCAiJS4yZiIsICREYXRhe1RvdGFsfSApLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2lja30gfHwgJFBhcmFte0xlYXZlRGF5fSB8fCAkUGFyYW17T3ZlcnRpbWV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdGhlclRpbWVzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkUGFyYW17U2lja30sCiAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkUGFyYW17TGVhdmVEYXl9LAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJFBhcmFte092ZXJ0aW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRWYWNhdGlvbiA9ICRUaW1lT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIENhbGVuZGFyID0+ICRVc2VyRGF0YXtDYWxlbmRhcn0sCiAgICApOwoKICAgIGlmICgkVmFjYXRpb24pIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVmFjYXRpb24nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFZhY2F0aW9uID0+ICRWYWNhdGlvbiwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgcHJlc2VudGF0aW9uCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdWaWV3JywKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFczMDBweCI+CiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJZZWFyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJNb250aCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aCkgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiRGF5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuRGF5IHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8cCBjbGFzcz0iU3BhY2luZ1RvcCBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/IikgfCBodG1sICVdCjwvcD4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldztZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWdlYXIiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXRlIE5hdmlnYXRpb24iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNb250aFNlbGVjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBkYXkiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyQmFjayB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoQmFjayB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXlCYWNrIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXS1bJSBEYXRhLk1vbnRoIHwgaHRtbCAlXS1bJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5leHQgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5TmV4dCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkVkaXQiIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gU3BhY2luZ1RvcFNtYWxsIEZ1bGxzaXplIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byB0aGlzIGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2E+ClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiQoJyNOYXZpZ2F0aW9uU2VsZWN0JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpewogICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7Cn0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXMiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXlzIHdpdGhvdXQgZW50cmllcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIFslIERhdGEuSW5jb21wbGV0ZVdvcmtpbmdEYXlzU2VsZWN0ICVdClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAkKCcjSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCcpLnVuYmluZCgnY2hhbmdlLkluY29tcGxldGVXb3JraW5nRGF5cycpLmJpbmQoJ2NoYW5nZS5JbmNvbXBsZXRlV29ya2luZ0RheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIERhdGUgPSAkKHRoaXMpLnZhbCgpLnNwbGl0KCctJyk7CiAgICAgICAgaWYgKERhdGVbMF0gJiYgRGF0ZVsxXSAmJiBEYXRlWzJdKSB7CiAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSAiWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj0iICsgRGF0ZVswXSArICI7TW9udGg9IiArIERhdGVbMV0gKyAiO0RheT0iICsgRGF0ZVsyXTsKICAgICAgICB9CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRheXMgd2l0aG91dCBlbnRyaWVzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJJbmNvbXBsZXRlV29ya2luZ0RheXMiPgogICAgICAgICAgICAgICAgICAgIDxsaSBpZD0iU2VsZWN0QWxsRGF5cyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsIiBuYW1lPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiIC8+PGxhYmVsIGZvcj0iSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsIj48ZW0+WyUgVHJhbnNsYXRlKCJTZWxlY3QgYWxsIGRheXMiKSB8IGh0bWwgJV08L2VtPjwvbGFiZWw+PC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5U2luZ2xlRGF5IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSIgbmFtZT0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSIgLz48bGFiZWwgZm9yPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIj5bJSBEYXRhLkRhdGUgfCBodG1sICVdPC9sYWJlbD4gLSA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdO0RheT1bJSBEYXRhLkRheSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJFZGl0IikgfCBodG1sICVdPC9hPjwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXkiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBpZD0iTWFzc0VudHJ5IiBuYW1lPSJNYXNzRW50cnkiIGNsYXNzPSJTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ik1hc3NFbnRyeSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXRlcyIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMZWF2ZURheSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTaWNrIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ0aW1lIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJNYXNzRW50cnlTdWJtaXQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiA8L2k+WyUgVHJhbnNsYXRlKCJNYXNzIGVudHJ5IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1hc3NFbnRyeUNvbmZpcm1EaWFsb2ciIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlBsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyIpIHwgaHRtbCAlXS48L2gyPgogICAgICAgICAgICAgICAgICAgIDx1bCBpZD0iTWFzc0VudHJ5Q29uZmlybVJhZGlvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJMZWF2ZURheSIgbmFtZT0iQWJzZW5jZVtdIiBpZD0iQ29uZmlybUxlYXZlRGF5IiAvPjxsYWJlbCBmb3I9IkNvbmZpcm1MZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJTaWNrIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtU2ljayIgLz48bGFiZWwgZm9yPSJDb25maXJtU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9Ik92ZXJ0aW1lIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtT3ZlcnRpbWUiIC8+PGxhYmVsIGZvcj0iQ29uZmlybU92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKLypnbG9iYWwgVGltZUFjY291bnRpbmc6IHRydWUgKi8KICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5NYXNzRW50cnlJbml0KHsKICAgICAgICBNc2dDaG9vc2VPbmVEYXk6ICAgIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISIpIHwgSlNPTiAlXSwKICAgICAgICBNc2dBYnNlbmNlUmVhc29uOiAgIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEiKSB8IEpTT04gJV0sCiAgICAgICAgTWFzc0VudHJ5OiAgICAgICAgICBbJSBUcmFuc2xhdGUoIk1hc3MgRW50cnkiKSB8IEpTT04gJV0sCiAgICAgICAgU3VibWl0OiAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgSlNPTiAlXSwKICAgICAgICBDYW5jZWw6ICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBKU09OICVdCiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5IikgJV0KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVmZXJlbmNlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhIFwiKlwiLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXRlIikgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5XZWVrZGF5X3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgfCBodG1sICVdLVslIERhdGEuTW9udGggfCBodG1sICVdLVslIERhdGEuRGF5IHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IEhvcml6b250YWxTY3JvbGwiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IldvcmtpbmdVbml0cyIgaWQ9IldvcmtpbmdVbml0cyIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iRWRpdCIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJSZWNvcmRzTnVtYmVyIiBpZD0iUmVjb3Jkc051bWJlciIgdmFsdWU9IlslIERhdGEuUmVjb3Jkc051bWJlciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3RhdHVzIiB2YWx1ZT0iQWN0aW9uIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlllYXIiIHZhbHVlPSJbJSBEYXRhLlllYXIgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1vbnRoIiB2YWx1ZT0iWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGF5IiB2YWx1ZT0iWyUgRGF0YS5EYXkgfCBodG1sICVdIiAvPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0QmxvY2siKSAlXQogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIgSGlnaENlbGxzIiBpZD0iSW5zZXJ0V29ya2luZ0hvdXJzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhcnQiKSB8IGh0bWwgJV0gKEhIOk1NKTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRW5kIikgfCBodG1sICVdIChISDpNTSk8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj5bJSBEYXRhLlBlcmlvZE5vdGUgfCBodG1sICVdPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJXb3JraW5nSG91cnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0T3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX1Byb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkFjdGlvbk9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19BY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19BY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUmVtYXJrW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IlJlbWFya1slIERhdGEuSUQgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrIFslIERhdGEuUmVtYXJrSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlJlbWFyayB8IGh0bWwgJV0iIHNpemU9IjM1IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJlbWFya1slIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJTdGFydFRpbWVbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iU3RhcnRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJTdGFydFRpbWUgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lIFslIERhdGEuU3RhcnRUaW1lUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuU3RhcnRUaW1lSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlN0YXJ0VGltZSB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN0YXJ0IFRpbWUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIk5lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZTI0SG91cnMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCIyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWUyNEhvdXJzIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iRW5kVGltZVtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJFbmRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJFbmRUaW1lIFZhbGlkYXRlX0RlcGVuZGluZ1JlcXVpcmVkQU5EIFZhbGlkYXRlX0RlcGVuZGluZ19TdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSBbJSBEYXRhLkVuZFRpbWVSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5FbmRUaW1lSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLkVuZFRpbWUgfCBodG1sICVdIiBzaXplPSI3IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJFbmQgVGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRW5kVGltZVslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJFbmRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVCZWZvcmVTdGFydFRpbWVTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZUludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdElucHV0UGVyaW9kIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQZXJpb2RbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iUGVyaW9kWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJQZXJpb2QgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kIFZhbGlkYXRlX1RpbWVVbml0cyBbJSBEYXRhLlBlcmlvZFJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLlBlcmlvZEludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBzaXplPSI3IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBlcmlvZFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQZXJpb2RbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlBlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW52YWxpZEhvdXJzUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiSW52YWxpZEhvdXJzUGVyaW9kU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJaZXJvSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkEgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiWmVyb0hvdXJzUGVyaW9kU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOZWdhdGl2ZVBlcmlvZFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIk5lZ2F0aXZlUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXRJbnB1dFBlcmlvZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXRQZXJpb2RXaXRob3V0SW5wdXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV08L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiIGNsYXNzPSJSaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUGx1cyIgdHlwZT0iYnV0dG9uIiBpZD0iTW9yZUlucHV0RmllbGRzIiBuYW1lPSJNb3JlSW5wdXRGaWVsZHMiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIG9uZSByb3ciKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0QmxvY2siKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij48L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV06PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9IlRvdGFsSG91cnMiPlslIERhdGEuVG90YWwgfCBodG1sICVdPC9zcGFuPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWFkb25seSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5EZXNjcmlwdGlvbikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWFkb25seSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3RoZXJUaW1lcyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCBBYnNlbmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgaWQ9IkxlYXZlRGF5IiBuYW1lPSJMZWF2ZURheSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gdmFjYXRpb24iKSB8IGh0bWwgJV0iIGNsYXNzPSJbJSBEYXRhLkxlYXZlRGF5SW52YWxpZCAlXSIgWyUgRGF0YS5MZWF2ZURheSAlXSAvPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJMZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBpZD0iU2ljayIgbmFtZT0iU2ljayIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXSIgY2xhc3M9IlslIERhdGEuU2lja0ludmFsaWQgJV0iIFslIERhdGEuU2ljayAlXSAvPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTaWNrIj5bJSBUcmFuc2xhdGUoIk9uIHNpY2sgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTaWNrU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBpZD0iT3ZlcnRpbWUiIG5hbWU9Ik92ZXJ0aW1lIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXSIgY2xhc3M9IlslIERhdGEuT3ZlcnRpbWVJbnZhbGlkICVdIiBbJSBEYXRhLk92ZXJ0aW1lICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iT3ZlcnRpbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDZW50ZXIgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiBuYW1lPSJJbnNlcnRXb3JraW5nVW5pdHMiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeSIgaHJlZj0iIyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07Ij5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCi8qZ2xvYmFsIFRpbWVBY2NvdW50aW5nOiB0cnVlICovCiAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuQWN0aW9uTGlzdCA9IFslIERhdGEuSlNBY3Rpb25MaXN0IHwgaHRtbCAlXTsKICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5BY3Rpb25MaXN0Q29uc3RyYWludHMgPSBbJSBEYXRhLkpTQWN0aW9uTGlzdENvbnN0cmFpbnRzIHwgaHRtbCAlXTsKICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Jbml0KHsKICAgICAgICBSZW1hcmtSZWdFeHBDb250ZW50OiAiWyUgRGF0YS5SZW1hcmtSZWdFeHAgfCBodG1sICVdIiwKICAgICAgICBMYW5ndWFnZTogewogICAgICAgICAgICBTaG93QWxsSXRlbXM6IFslIFRyYW5zbGF0ZSgiU2hvdyBhbGwgaXRlbXMiKSB8IEpTT04gJV0sCiAgICAgICAgICAgIFByb2plY3RUaXRsZTogWyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBKU09OICVdLAogICAgICAgICAgICBUYXNrVGl0bGU6IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgSlNPTiAlXQogICAgICAgIH0KICAgIH0pOwogICAgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLkJpbmRDb25maXJtYXRpb25EaWFsb2coewogICAgICAgIEVsZW1lbnRJRDogICAgICAgICAgICAgICAgICAnRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeScsCiAgICAgICAgRWxlbWVudFNlbGVjdG9yOiAgICAgICAgICAgICcjRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeScsCiAgICAgICAgRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nOiAgICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7RGVsZXRlRGlhbG9nPTE7WWVhcj1bJSBEYXRhLlllYXIgfCBodG1sICVdO01vbnRoPVslIERhdGEuTW9udGggfCBodG1sICVdO0RheT1bJSBEYXRhLkRheSB8IGh0bWwgJV0nLAogICAgICAgIENvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nOiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O1N1YmFjdGlvbj1EZWxldGU7WWVhcj1bJSBEYXRhLlllYXIgfCBodG1sICVdO01vbnRoPVslIERhdGEuTW9udGggfCBodG1sICVdO0RheT1bJSBEYXRhLkRheSB8IGh0bWwgJV0nLAogICAgICAgIERpYWxvZ1RpdGxlOiAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkRlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnkiKSB8IEpTT04gJV0sCiAgICAgICAgVHJhbnNsYXRlZFRleHQ6ICAgICAgICAgICAgIHsKICAgICAgICAgICAgWWVzOiBbJSBUcmFuc2xhdGUoIlllcyIpIHwgSlNPTiAlXSwKICAgICAgICAgICAgTm86ICBbJSBUcmFuc2xhdGUoIk5vIikgfCBKU09OICVdCiAgICAgICAgfQogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2hvd0NvbmZpcm1hdGlvbiIpICVdClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAvLyBkZWZpbmUgeWVzIGFuZCBubyBidXR0b25zCiAgICB2YXIgQnV0dG9ucyA9IFt7CiAgICAgICAgTGFiZWw6IFslIFRyYW5zbGF0ZSgiWWVzIikgfCBKU09OICVdLAogICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCiAgICAgICAgVHlwZTogIkNsb3NlIiwKICAgICAgICB9LCB7CiAgICAgICAgTGFiZWw6IFslIFRyYW5zbGF0ZSgiTm8iKSB8IEpTT04gJV0sCgogICAgICAgIC8vIGRlZmluZSB0aGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgJ05vJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbigpewoKICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIHNhdmVkIGVudHJ5IGFmdGVyIHByZXNzaW5nIHRoZSBObyBidXR0b24KICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7U3ViYWN0aW9uPURlbGV0ZTtZZWFyPVslIERhdGEuWWVhciB8IGh0bWwgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IGh0bWwgJV07RGF5PVslIERhdGEuRGF5IHwgaHRtbCAlXSc7CiAgICAgICAgfQogICAgfV07CiAgICAvLyBzaG93IHRoZSBjb25maXJtYXRpb24gZGlhbG9nIHRvIGNvbmZpcm0gdGhlIGFjdGlvbgogICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coJCgnI1slIERhdGEuQmxvY2tOYW1lIHwgaHRtbCAlXScpLCBbJSBUcmFuc2xhdGUoIkNvbmZpcm0gaW5zZXJ0IikgfCBKU09OICVdLCAnMjAlJywgJ0NlbnRlcicsIHRydWUsIEJ1dHRvbnMpOwoKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJTaG93Q29uZmlybWF0aW9uIikgJV0KCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKPHAgaWQ9IlNpY2tMZWF2ZU1lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyIpIHwgaHRtbCAlXQo8L3A+Cgo8cCBpZD0iVmFjYXRpb25NZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/IikgfCBodG1sICVdCjwvcD4KCjxwIGlkPSJPdmVydGltZU1lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8iKSB8IGh0bWwgJV0KPC9wPgoKPHAgaWQ9Ik1vcmUxNkhvdXJzTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8iKSB8IGh0bWwgJV0KPC9wPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIj4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXciKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyTGFzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ0aW1lIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKEhvdXJzKSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJPdmVydGltZSAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKHRvdGFsKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuT3ZlcnRpbWVVbnRpbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlbWFpbmluZyBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuT3ZlcnRpbWVUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnRpbWUiKSAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24gKERheXMpIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiB0YWtlbiAodG90YWwpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5MZWF2ZURheVRvdGFsIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUmVtYWluaW5nIHZhY2F0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5MZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiU2ljayBMZWF2ZSAoRGF5cykiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlNpY2sgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJTaWNrIGxlYXZlIHRha2VuICh0b3RhbCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlNpY2tUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3ZlcnZpZXciKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIC0gWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBZGRpdGlvbmFsSW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByZXZpb3VzIG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhckJhY2sgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aEJhY2sgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJOZXh0IG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLk1vbnRoX3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRheSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV2Vla2RheSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya2luZyBIb3VycyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IlslIERhdGEuQ2xhc3MgfCBodG1sICVdIE1hc3RlckFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGaXhlZCBEYXkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRGF0YS5BY3Rpb24gfCB1cmkgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXkgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGaXhlZCBXZWVrZGF5Ij5bJSBUcmFuc2xhdGUoRGF0YS5XZWVrZGF5X3RvX1RleHQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLkNvbW1lbnQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Xb3JraW5nSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCBSaWdodCI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIHdvcmtlZCBob3VycyIpIHwgaHRtbCAlXTo8L3N0cm9uZz4gWyUgRGF0YS5Xb3JraW5nSG91cnMgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVXNlcidzIHByb2plY3Qgb3ZlcnZpZXciKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtQcm9qZWN0U3RhdHVzU2hvdz1bJSBEYXRhLlByb2plY3RTdGF0dXNTaG93IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWyUgVHJhbnNsYXRlKERhdGEuU2hvd1Byb2plY3RzKSB8IGh0bWwgJV0pCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBOb0hvdmVyIEhpZ2hDZWxscyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAobW9udGhseSkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChMaWZldGltZSkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgcm93c3Bhbj0iWyUgRGF0YS5Sb3dTcGFuICVdIiBjbGFzcz0iUm93U3BhbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3ROb0xpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3QgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3ROb0xpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0TGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nO1N1YmFjdGlvbj1SZXBvcnRpbmdQcm9qZWN0O1Byb2plY3RJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3QgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdExpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N0cm9uZz4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uVG90YWwiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48c3Ryb25nPlslIFRyYW5zbGF0ZSgiR3JhbmQgdG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcuTWFzdGVyQWN0aW9uJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgIHZhciAkTWFzdGVyQWN0aW9uTGluayA9ICQodGhpcykuZmluZCgnLk1hc3RlckFjdGlvbkxpbmsnKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVGltZSByZXBvcnRpbmciKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLk1vbnRoX3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJNb250aCBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyBMZWZ0IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJOZXh0IG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5bJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyICVdPC9zdHJvbmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJjb21wb3NlIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iUmVwb3J0aW5nIiAvPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTW9udGhPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlllYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCIgYWNjZXNza2V5PSJnIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtYXJyb3ctY2lyY2xlLW8tcmlnaHQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcjTmF2aWdhdGlvblNlbGVjdCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwp9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIHJlcG9ydHMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBIb3Jpem9udGFsU2Nyb2xsIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZCBjbGFzcz0iVHdvUm93cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiIGNvbHNwYW49IjQiPlslIFRyYW5zbGF0ZSgiTW9udGhseSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNlbnRlciIgY29sc3Bhbj0iMiI+WyUgVHJhbnNsYXRlKCJMaWZldGltZSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya2luZyBIb3VycyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTaWNrIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIHJlbWFpbmluZyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFjdGlvblVzZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLldvcmtpbmdIb3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5MZWF2ZURheSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbFdvcmtpbmdIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsT3ZlcnRpbWUgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbExlYXZlRGF5IHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxTaWNrIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxPdmVydGltZVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxMZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlckdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0cyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLlByb2plY3RTdGF0dXNMaW5rQ2xhc3MgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIChbJSBUcmFuc2xhdGUoRGF0YS5TaG93UHJvamVjdHMpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChtb250aGx5KSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iIGRhdGEtcHJvamVjdC1pZD0iWyUgRGF0YS5Qcm9qZWN0SUQgfCBodG1sJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSJbJSBEYXRhLlJvd1NwYW4gJV0iIGNsYXNzPSJSb3dTcGFuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1SZXBvcnRpbmdQcm9qZWN0O1Byb2plY3RJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSIgY2xhc3M9IlslIERhdGEuQ2xhc3MgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvamVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjwvc3Ryb25nPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0RGVzY3JpcHRpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25Ub3RhbCIpICVdClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb24iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0R3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJHcmFuZCB0b3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdEdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3RUYWJsZSIpICVdCgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKJCgnLk1hc3RlckFjdGlvbicpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICB2YXIgJE1hc3RlckFjdGlvbkxpbmsgPSAkKHRoaXMpLnBhcmVudHMoKS5maW5kKCcuTWFzdGVyQWN0aW9uTGluaycgKyAkKHRoaXMpLmF0dHIoJ2RhdGEtcHJvamVjdC1pZCcpKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7CiQoJy5NYXN0ZXJBY3Rpb25Vc2VyJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgIHZhciAkTWFzdGVyQWN0aW9uTGluayA9ICQodGhpcykuZmluZCgnLk1hc3RlckFjdGlvbkxpbmsnKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7CgovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnQiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiSGludCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KWyUgSUYgRGF0YS5TaG93T25seUFjdGl2ZVVzZXJzID09ICcxJyAlXQogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ0dyb3VwPVRpbWVBY2NvdW50aW5nO1N5c0NvbmZpZ1N1Ykdyb3VwPUZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291dG5pbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0Ij5TaG93T25seUFjdGl2ZVVzZXJzPC9hPgogICAgICAgICAgICAgICAgPC9wPgpbJSBFTFNFICVdCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ0dyb3VwPVRpbWVBY2NvdW50aW5nO1N5c0NvbmZpZ1N1Ykdyb3VwPUZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291dG5pbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0Ij5TaG93T25seUFjdGl2ZVVzZXJzPC9hPgogICAgICAgICAgICAgICAgPC9wPgpbJSBFTkQgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnQiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV08L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyVG90YWwiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVG90YWxBbGwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsQWxsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyVG90YWxBbGwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpc3RvcnkiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVXNlciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5EYXRlIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJlbWFyayB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5QZXJpb2QgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhpc3RvcnlUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5IaXN0b3J5VG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkhpc3RvcnlUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkxpc3RQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQWRkUHJvamVjdCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBwcm9qZWN0IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkUHJvamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25TZXR0aW5nT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uU2V0dGluZ092ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uTGlzdFByb2plY3QiKSAlXQogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVByb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZFByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWRkIFByb2plY3QiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyQWRkUHJvamVjdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckVkaXRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkVkaXQgUHJvamVjdCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJFZGl0UHJvamVjdCIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBuYW1lPSJQcm9qZWN0VXBkYXRlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb24gfCBodG1sICVdQWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJRCIgdmFsdWU9IlslIERhdGEuSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJvamVjdCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQcm9qZWN0IiBpZD0iUHJvamVjdCIgdmFsdWU9IlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLlByb2plY3RJbnZhbGlkIHwgaHRtbCAlXSIgbWF4bGVuZ3RoPSI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0TWlzc2luZ1ZhbHVlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REdXBsaWNhdGVOYW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REdXBsaWNhdGVOYW1lIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQcm9qZWN0RGVzY3JpcHRpb24iPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb2plY3REZXNjcmlwdGlvbiIgaWQ9IlByb2plY3REZXNjcmlwdGlvbiIgdmFsdWU9IlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjE1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJvamVjdFN0YXR1cyI+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJTdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVQcm9qZWN0IikgJV0KICAgIDwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXR0aW5nIikgJV0KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0U2V0dGluZyIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFByb2plY3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgcHJvamVjdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRUYXNrIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFRhc2siLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCB0YXNrIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCB0YXNrIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkVGFzayIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFVzZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3VXNlck9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiTmV3IHVzZXIiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS11c2VyIj48L2k+WyUgVHJhbnNsYXRlKCJOZXcgdXNlciIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlld1NldHRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXdTZXR0aW5nIikgJV0KCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3RTZXR0aW5nIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RGaWx0ZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyUHJvamVjdHMiPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBQcm9qZWN0cyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJGaWx0ZXJQcm9qZWN0cyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9Ikp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIgbmFtZT0iRmlsdGVyUHJvamVjdHMiIHZhbHVlPSIiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgUHJvamVjdHMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdEZpbHRlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrRmlsdGVyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxsYWJlbCBmb3I9IkZpbHRlclRhc2tzIj5bJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgVGFza3MiKSB8IGh0bWwgJV08L2xhYmVsPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRmlsdGVyVGFza3MiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJKdXN0IHN0YXJ0IHR5cGluZyB0byBmaWx0ZXIuLi4iIG5hbWU9IkZpbHRlclRhc2tzIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFRhc2tzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRhc2tGaWx0ZXIiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlckZpbHRlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48bGFiZWwgZm9yPSJGaWx0ZXJVc2VycyI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFVzZXJzIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlclVzZXJzIiBjbGFzcz0iRmlsdGVyQm94IiBwbGFjZWhvbGRlcj0iSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIiBuYW1lPSJGaWx0ZXJVc2VycyIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBVc2VycyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyRmlsdGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlZmVyZW5jZSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVmZXJlbmNlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhIFwiKlwiLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSZWZlcmVuY2UiKSAlXQoKICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iUHJvamVjdHMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlN0YXR1cyA9PSAnaW52YWxpZCclXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRQcm9qZWN0O0lEPVslIERhdGEuUHJvamVjdElEIHwgdXJpICVdIj5bJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgdGl0bGU9IlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uIHwgaHRtbCAlXSI+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gfCB0cnVuY2F0ZSg0MCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5TdGF0dXMpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFByb2plY3RSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdCIpICVdCgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgQ29yZS5VSS5UYWJsZS5Jbml0VGFibGVGaWx0ZXIoJCgnI0ZpbHRlclByb2plY3RzJyksICQoJyNQcm9qZWN0cycpKTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFNldHRpbmciKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVGFzayBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9TZXR0aW5nRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9TZXR0aW5nRGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iVGFza3MiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuU3RhdHVzID09ICdpbnZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFRhc2s7QWN0aW9uSUQ9WyUgRGF0YS5BY3Rpb25JRCB8IHVyaSAlXSI+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuU3RhdHVzKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFNldHRpbmciKSAlXQoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQoJyNGaWx0ZXJUYXNrcycpLCAkKCcjVGFza3MnKSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVUYXNrIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZGRUYXNrIikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBUYXNrIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFRhc2siKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0VGFzayIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFRhc2sgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFRhc2siKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iVGFza1VwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uSUQiIHZhbHVlPSJbJSBEYXRhLkFjdGlvbklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRhc2siPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVGFzayIgaWQ9IlRhc2siIHZhbHVlPSJbJSBEYXRhLlRhc2sgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UYXNrSW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRhc2tFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlRhc2tNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGFza1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGFza01pc3NpbmdWYWx1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUYXNrU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUYXNrU3RhdHVzIj5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXR1c09wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IlN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1VwZGF0ZVRhc2siKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlVzZXIgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlVzZXJzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDYWxlbmRhciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFVzZXJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0VXNlcjtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPlslIERhdGEuVXNlciB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkNvbW1lbnQgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLkNhbGVuZGFyKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRVc2VyUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0VXNlclRhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFVzZXIiKSAlXQoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQoJyNGaWx0ZXJVc2VycycpLCAkKCcjVXNlcnMnKSk7CiAgICBDb3JlLlVJLkluaXRXaWRnZXRBY3Rpb25Ub2dnbGUoKTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVVzZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZFVzZXIiKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTmV3IFVzZXIgU2V0dGluZ3MiKSB8IGh0bWwgJV06IFslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSAoWyUgRGF0YS5Vc2VyTG9naW4gfCBodG1sICVdKTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZGRVc2VyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRWRpdFVzZXIiKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBVc2VyIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckVkaXRVc2VyIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9IlVzZXJVcGRhdGUiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuU3ViYWN0aW9uIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VySUQiIHZhbHVlPSJbJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIC8+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmFtZSI+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlVzZXJGdWxsbmFtZSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmFtZSI+WyUgVHJhbnNsYXRlKCJVc2VybmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5Vc2VyTG9naW4gfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkRlc2NyaXB0aW9uIj5bJSBUcmFuc2xhdGUoIkNvbW1lbnRzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSByb3dzPSIxIiBuYW1lPSJEZXNjcmlwdGlvbiIgaWQ9IkRlc2NyaXB0aW9uIiBjb2xzPSI0MCI+WyUgRGF0YS5EZXNjcmlwdGlvbiAlXTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNob3dPdmVydGltZSIgaWQ9IlNob3dPdmVydGltZSIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgT3ZlcnRpbWUiKSB8IGh0bWwgJV0iIFslIERhdGEuU2hvd092ZXJ0aW1lICVdIC8+WyUgVHJhbnNsYXRlKCJTaG93IE92ZXJ0aW1lIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IkNyZWF0ZVByb2plY3QiIGlkPSJDcmVhdGVQcm9qZWN0IiB2YWx1ZT0iMSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQWxsb3cgcHJvamVjdCBjcmVhdGlvbiIpIHwgaHRtbCAlXSIgWyUgRGF0YS5DcmVhdGVQcm9qZWN0ICVdIC8+WyUgVHJhbnNsYXRlKCJBbGxvdyBwcm9qZWN0IGNyZWF0aW9uIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDYWxlbmRhciI+WyUgVHJhbnNsYXRlKCJDYWxlbmRhciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNhbGVuZGFyT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQZXJpb2QgQmVnaW4iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCBFbmQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkRheXMgb2YgVmFjYXRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIHBlciBXZWVrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJBdXRob3JpemVkIE92ZXJ0aW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkRhdGVTdGFydC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVTdGFydFtbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5EYXRlU3RhcnQgfCBodG1sICVdIiBjbGFzcz0iRGF0ZXBpY2tlckVsZW1lbnQgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5EYXRlU3RhcnRJbnZhbGlkIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3RhcnQgRGF0ZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIlBsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZVN0YXJ0SW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVTdGFydC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVTdGFydEludmFsaWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlU3RhcnRNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGF0ZVN0YXJ0TWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgbmFtZT0iRGF0ZUVuZFtbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5EYXRlRW5kIHwgaHRtbCAlXSIgY2xhc3M9IkRhdGVwaWNrZXJFbGVtZW50IFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRGF0ZUVuZEludmFsaWQgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJFbmQgRGF0ZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVFbmRJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZUVuZE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGF0ZUVuZE1pc3NpbmdWYWx1ZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVFbmRCZWZvcmVEYXRlU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRCZWZvcmVEYXRlU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkxlYXZlRGF5c1tbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5MZWF2ZURheXMgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5MZWF2ZURheXNJbnZhbGlkIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTGVhdmUgRGF5cyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlzLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlzLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJXZWVrbHlIb3Vycy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IldlZWtseUhvdXJzW1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLldlZWtseUhvdXJzIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiV2Vla2x5IEhvdXJzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Ik92ZXJ0aW1lLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgbmFtZT0iT3ZlcnRpbWVbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuT3ZlcnRpbWUgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPdmVydGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5QZXJpb2RTdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBlcmlvZE92ZXJ2aWV3Um93IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlBlcmlvZE92ZXJ2aWV3Um93Tm9EYXRhIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gdGltZSBwZXJpb2RzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUGVyaW9kT3ZlcnZpZXdSb3dOb0RhdGEiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlcxMDBwYyBSaWdodCBTcGFjaW5nVG9wU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQgdGltZSBwZXJpb2QiKSB8IGh0bWwgJV0iIG5hbWU9IkFkZFBlcmlvZCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gUGx1cyI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+IFslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSIgbmFtZT0iU3VibWl0VXNlckRhdGEiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCi8qZ2xvYmFsIFRpbWVBY2NvdW50aW5nOiB0cnVlICovCiAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyLkluaXQoJCgnLkRhdGVwaWNrZXJFbGVtZW50JyksIHsKICAgICAgICBEYXRlSW5GdXR1cmU6IGZhbHNlLAogICAgICAgIFdlZWtEYXlTdGFydDogMQogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVVc2VyIikgJV0KICAgIDwvZGl2Pgo8L2Rpdj4KClslIFJlbmRlckJsb2NrRW5kKCJTZXR0aW5nIikgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVmlldyBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAtIFslIFRyYW5zbGF0ZSgiVmlldyBvZiAiKSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdCiAgICA8L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUHJldmlvdXMgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhckJhY2sgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aEJhY2sgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5QmFjayB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBkYXkiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyTmV4dCB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoTmV4dCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXlOZXh0IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0tWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0tWyUgRGF0YS5EYXkgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJEYXRlU2VsZWN0aW9uIiBjbGFzcz0iVmFsaWRhdGUiIGlkPSJEYXRlU2VsZWN0aW9uRm9ybSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJWaWV3IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVzZXJJRCIgICAgdmFsdWU9IlslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRhdGVTZWxlY3Rpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAkKCcjRGF0ZVNlbGVjdGlvbkZvcm0nKS5zdWJtaXQoKTsKfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSIpIHwgaHRtbCAlXTogWyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheV90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5EYXRlIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhcnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Qcm9qZWN0IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJlbWFyayB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TdGFydFRpbWUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuRW5kVGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5QZXJpb2QgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV06PC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRvdGFsIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiPlslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kIikgJV0KCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iLTIiIGlkPSJMZWF2ZURheSIgbmFtZT0iTGVhdmVEYXkiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdIiBbJSBEYXRhLkxlYXZlRGF5ICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGVhdmVEYXkiPlslIFRyYW5zbGF0ZSgiT24gdmFjYXRpb24iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ii0xIiBpZD0iU2ljayIgbmFtZT0iU2ljayIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXSIgWyUgRGF0YS5TaWNrICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSItMyIgaWQ9Ik92ZXJ0aW1lIiBuYW1lPSJPdmVydGltZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV0iIFslIERhdGEuT3ZlcnRpbWUgJV0gZGlzYWJsZWQgLz4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJPdmVydGltZSI+WyUgVHJhbnNsYXRlKCJPbiBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk90aGVyVGltZXMiKSAlXQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVmFjYXRpb24iKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWNhdGlvbiB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlZhY2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKQogICAgKTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICBteSAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwogICAgaWYgKCAkVXNlcnsgJFNlbGYtPntVc2VySUR9IH0gKSB7CiAgICAgICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHJlZGlyZWN0IGlmIGluY29tcGxldGUgd29ya2luZyBkYXkgYXJlIG91dCBvZiByYW5nZQogICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c3tXYXJuaW5nfSApIHsKCiAgICAgICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk5vdGlmeSgKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJyc7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGFjdGlvbiwgZ3JvdXAsIGxhYmVsLCBpbWFnZSBhbmQgcHJpbwogICAgbXkgJEFjdGlvbiA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CiAgICBteSAkR3JvdXAgID0gJ3RpbWVfYWNjb3VudGluZyc7CgogICAgIyBkbyBub3Qgc2hvdyBpY29uIGlmIGZyb250ZW5kIG1vZHVsZSBpcyBub3QgcmVnaXN0ZXJlZAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgIyBnZXQgdGhlIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJEdyb3VwLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgIHJldHVybiBpZiAhJEdyb3VwSUQ7CgogICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcHJpdmlsZWdlCiAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzIGlmIHRoZSBhZ2VudCBkb2Vzbid0IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHR5cGUgaW4gdGhlIGFwcHJvcHJpYXRlIGdyb3VwCiAgICByZXR1cm4gaWYgISRHcm91cHN7JEdyb3VwSUR9OwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgICMgZGVueSBhY2Nlc3MsIGlmIHVzZXIgaGFzIG5vIHZhbGlkIHBlcmlvZAogICAgcmV0dXJuIGlmICEkVXNlckN1cnJlbnRQZXJpb2R7ICRTZWxmLT57VXNlcklEfSB9OwoKICAgICMgZ2V0IHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMKICAgIG15ICRDb3VudCAgICAgICAgICAgICAgICAgPSAwOwogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBZRUFSSUQ6CiAgICBmb3IgbXkgJFllYXJJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9IH0gKSB7CgogICAgICAgIG5leHQgWUVBUklEIGlmICEkWWVhcklEOwogICAgICAgIG5leHQgWUVBUklEIGlmICEkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9OwogICAgICAgIG5leHQgWUVBUklEIGlmIHJlZiAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9IG5lICdIQVNIJzsKCiAgICAgICAgIyBleHRyYWN0IHllYXIKICAgICAgICBteSAlWWVhciA9ICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfTsKCiAgICAgICAgTU9OVEg6CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICVZZWFyICkgewoKICAgICAgICAgICAgbmV4dCBNT05USCBpZiAhJE1vbnRoSUQ7CiAgICAgICAgICAgIG5leHQgTU9OVEggaWYgISRZZWFyeyRNb250aElEfTsKICAgICAgICAgICAgbmV4dCBNT05USCBpZiByZWYgJFllYXJ7JE1vbnRoSUR9IG5lICdIQVNIJzsKCiAgICAgICAgICAgICMgZXh0cmFjdCBtb250aAogICAgICAgICAgICBteSAlTW9udGggPSAleyAkWWVhcnskTW9udGhJRH0gfTsKCiAgICAgICAgICAgICRDb3VudCArPSBzY2FsYXIga2V5cyAlTW9udGg7CiAgICAgICAgfQogICAgfQoKICAgICMgcmVtb3ZlIGN1cnJlbnQgZGF5IGJlY2F1c2UgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gc2hvdyB0aGUgY3VycmVudCBkYXkgYXMgaW5jb21wbGV0ZQogICAgaWYgKCAkQ291bnQgPiAwICkgewogICAgICAgICRDb3VudC0tOwogICAgfQoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgVG9vbEJhciBvYmplY3QgcGFyYW1ldGVycwogICAgbXkgJENsYXNzID0gJFBhcmFte0NvbmZpZ30tPntDc3NDbGFzc307CiAgICBteSAkVGV4dCAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0luY29tcGxldGUgd29ya2luZyBkYXlzJyk7CiAgICBteSAkVVJMICAgPSAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9OwogICAgbXkgJEljb24gID0gJFBhcmFte0NvbmZpZ30tPntJY29ufTsKCiAgICByZXR1cm4gKCkgaWYgISRDb3VudDsKCiAgICBteSAlUmV0dXJuID0gKAogICAgICAgIDEwMDA4MTAgPT4gewogICAgICAgICAgICBCbG9jayAgICAgICA9PiAnVG9vbEJhckl0ZW0nLAogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAkVGV4dCwKICAgICAgICAgICAgQ291bnQgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgICAgIEljb24gICAgICAgID0+ICRJY29uLAogICAgICAgICAgICBMaW5rICAgICAgICA9PiAkVVJMIC4gJ0FjdGlvbj0nIC4gJEFjdGlvbiwKICAgICAgICAgICAgQWNjZXNzS2V5ICAgPT4gJycsCiAgICAgICAgICAgIH0KICAgICk7CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGU6OlBjYWxjIHF3KFRvZGF5IERheXNfaW5fTW9udGggRGF5X29mX1dlZWsgY2hlY2tfZGF0ZSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZyAtIHRpbWUgYWNjb3VudGluZyBsaWIKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIHRpbWUgYWNjb3VudGluZyBmdW5jdGlvbnMKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIFVzZXJDdXJyZW50UGVyaW9kR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGN1cnJlbnQgcGVyaW9kIGRhdGEgb2YgdGhlIHNwZWNpZmllZCB1c2VyCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggPT4gJzEyJywKICAgICAgICBEYXkgICA9PiAnMjQnLAogICAgKTsKClRoZSByZXR1cm5lZCBoYXNoIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgZWxlbWVudHM6CgogICAgJVVzZXJEYXRhID0gKAogICAgICAgIDEgPT4gewogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICA9PiAxMjMsCiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDA1LTEyLTI0JywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMDUtMTItMjQnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiA0MC40LAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAxMiwKICAgICAgICAgICAgT3ZlclRpbWUgICAgPT4gMzQsCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgVXNlckN1cnJlbnRQZXJpb2RHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbXMKICAgIGZvciBteSAkTmVlZGVkUGFyYW0gKHF3KFllYXIgTW9udGggRGF5KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkUGFyYW19ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVXNlckN1cnJlbnRQZXJpb2RHZXQ6IE5lZWQgJE5lZWRlZFBhcmFtISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgYnVpbGQgZGF0ZSBzdHJpbmcgZm9yIGdpdmVuIHBhcmFtcwogICAgbXkgJERhdGUgPSBzcHJpbnRmKCAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9ICkgLiAnIDAwOjAwOjAwJzsKCiAgICAjIGNoZWNrIGNhY2hlCiAgICBpZiAoICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSApIHsKCiAgICAgICAgcmV0dXJuICV7ICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSB9OwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBwcmVmZXJlbmNlX3BlcmlvZCwgZGF0ZV9zdGFydCwgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywKICAgICAgICAgICAgICAgIG92ZXJ0aW1lCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kCiAgICAgICAgICAgIFdIRVJFIGRhdGVfc3RhcnQgPD0gPwogICAgICAgICAgICAgICAgQU5EIGRhdGVfZW5kICA+PSA/CiAgICAgICAgICAgICAgICBBTkQgc3RhdHVzID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkRGF0ZSwgXCREYXRlLCBcMSwgXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBteSAkVXNlclJlZiA9IHsKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gc3Vic3RyKCAkUm93WzJdLCAwLCAxMCApLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiBzdWJzdHIoICRSb3dbM10sIDAsIDEwICksCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICRSb3dbNF0sCiAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICRSb3dbNl0sCiAgICAgICAgfTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9ID0gJFVzZXJSZWY7CiAgICB9CgogICAgIyBjaGVjayBmb3IgdmFsaWQgdXNlciBkYXRhCiAgICByZXR1cm4gaWYgISVEYXRhOwoKICAgICMgc3RvcmUgdXNlciBkYXRhIGluIGNhY2hlCiAgICAkU2VsZi0+eydDYWNoZTo6VXNlckN1cnJlbnRQZXJpb2RHZXQnfXskRGF0ZX0gPSBcJURhdGE7CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBVc2VyUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgbGVhdmUgZGF5cywgb3ZlcnRpbWVzLAp3b3JraW5nIGhvdXJzIGV0Yy4gb2YgYWxsIHVzZXJzCgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzEyJywgICAgICAjIE9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJSZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWRQYXJhbSAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWRQYXJhbX0gJiYgJE5lZWRlZFBhcmFtIG5lICdEYXknICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJSZXBvcnRpbmc6IE5lZWQgJE5lZWRlZFBhcmFtISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB2YWxpZCBkYXRlIHZhbHVlcwogICAgcmV0dXJuIGlmICFjaGVja19kYXRlKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9IHx8IDEgKTsKCiAgICAjIGdldCBkYXlzIG9mIG1vbnRoIGlmIG5vdCBwcm92aWRlZAogICAgJFBhcmFte0RheX0gfHw9IERheXNfaW5fTW9udGgoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSApOwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRTZWxmLT5Vc2VyQ3VycmVudFBlcmlvZEdldCglUGFyYW0pOwogICAgbXkgJFllYXJTdGFydCAgICAgICAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICAgICAgICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgICAgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgICAgICAgID0gJFBhcmFte1llYXJ9OwogICAgbXkgJE1vbnRoRW5kICAgICAgICAgID0gJFBhcmFte01vbnRofTsKICAgIG15ICREYXlFbmQgICAgICAgICAgICA9ICRQYXJhbXtEYXl9OwoKICAgIG15ICVEYXRhOwoKICAgIFVTRVJJRDoKICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVVc2VyQ3VycmVudFBlcmlvZCApIHsKCiAgICAgICAgaWYgKCAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17RGF0ZVN0YXJ0fSA9fiBteyBcQSAoXGR7NH0pLShcZHsyfSktKFxkezJ9KSB9eG1zICkgewogICAgICAgICAgICAkWWVhclN0YXJ0ICA9ICQxOwogICAgICAgICAgICAkTW9udGhTdGFydCA9ICQyOwogICAgICAgICAgICAkRGF5U3RhcnQgICA9ICQzOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhY2hlY2tfZGF0ZSggJFllYXJTdGFydCwgJE1vbnRoU3RhcnQsICREYXlTdGFydCApICkgewoKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnVXNlclJlcG9ydGluZzogSW52YWxpZCBzdGFydCBkYXRlIGZvciB1c2VyICcKICAgICAgICAgICAgICAgICAgICAuICIkVXNlcklEOiAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17RGF0ZVN0YXJ0fSIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFVTRVJJRDsKICAgICAgICB9CgogICAgICAgIG15ICVDdXJyZW50VXNlckRhdGEgPSAoCiAgICAgICAgICAgIExlYXZlRGF0ZSAgICAgICAgPT4gMCwKICAgICAgICAgICAgU2ljayAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBPdmVydGltZSAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFRhcmdldFN0YXRlICAgICAgPT4gMCwKICAgICAgICAgICAgTGVhdmVEYXlUb3RhbCAgICA9PiAwLAogICAgICAgICAgICBTaWNrVG90YWwgICAgICAgID0+IDAsCiAgICAgICAgICAgIFNpY2tUb3RhbCAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGFyZ2V0U3RhdGVUb3RhbCA9PiAwLAogICAgICAgICk7CgogICAgICAgIG15ICRDYWxlbmRhciA9IHsgJFNlbGYtPlVzZXJHZXQoIFVzZXJJRCA9PiAkVXNlcklEICkgfS0+e0NhbGVuZGFyfTsKCiAgICAgICAgWUVBUjoKICAgICAgICBmb3IgbXkgJFllYXIgKCAkWWVhclN0YXJ0IC4uICRZZWFyRW5kICkgewoKICAgICAgICAgICAgbXkgJE1vbnRoU3RhcnRQb2ludCA9ICRZZWFyID09ICRZZWFyU3RhcnQgPyAkTW9udGhTdGFydCA6IDE7CiAgICAgICAgICAgIG15ICRNb250aEVuZFBvaW50ICAgPSAkWWVhciA9PSAkWWVhckVuZCAgID8gJE1vbnRoRW5kICAgOiAxMjsKCiAgICAgICAgICAgIE1PTlRIOgogICAgICAgICAgICBmb3IgbXkgJE1vbnRoICggJE1vbnRoU3RhcnRQb2ludCAuLiAkTW9udGhFbmRQb2ludCApIHsKCiAgICAgICAgICAgICAgICBteSAkRGF5U3RhcnRQb2ludCA9CiAgICAgICAgICAgICAgICAgICAgJFllYXIgPT0gJFllYXJTdGFydCAmJiAkTW9udGggPT0gJE1vbnRoU3RhcnQKICAgICAgICAgICAgICAgICAgICA/ICREYXlTdGFydAogICAgICAgICAgICAgICAgICAgIDogMQogICAgICAgICAgICAgICAgICAgIDsKCiAgICAgICAgICAgICAgICBteSAkRGF5RW5kUG9pbnQgPQogICAgICAgICAgICAgICAgICAgICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQKICAgICAgICAgICAgICAgICAgICA/ICREYXlFbmQKICAgICAgICAgICAgICAgICAgICA6IERheXNfaW5fTW9udGgoICRZZWFyLCAkTW9udGggKQogICAgICAgICAgICAgICAgICAgIDsKCiAgICAgICAgICAgICAgICBEQVk6CiAgICAgICAgICAgICAgICBmb3IgbXkgJERheSAoICREYXlTdGFydFBvaW50IC4uICREYXlFbmRQb2ludCApIHsKCiAgICAgICAgICAgICAgICAgICAgbXkgJVdvcmtpbmdVbml0ID0gJFNlbGYtPldvcmtpbmdVbml0c0dldCgKICAgICAgICAgICAgICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgbXkgJExlYXZlRGF5ICAgID0gMDsKICAgICAgICAgICAgICAgICAgICBteSAkU2ljayAgICAgICAgPSAwOwogICAgICAgICAgICAgICAgICAgIG15ICRPdmVydGltZSAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJFRhcmdldFN0YXRlID0gMDsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkV29ya2luZ1VuaXR7TGVhdmVEYXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5VG90YWx9Kys7CiAgICAgICAgICAgICAgICAgICAgICAgICRMZWF2ZURheSA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFdvcmtpbmdVbml0e1NpY2t9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1NpY2tUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJFNpY2sgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRXb3JraW5nVW5pdHtPdmVydGltZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJE92ZXJ0aW1lID0gMTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzVG90YWx9ICs9ICRXb3JraW5nVW5pdHtUb3RhbH07CiAgICAgICAgICAgICAgICAgICAgbXkgJFZhY2F0aW9uQ2hlY2sgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBteSAkV2Vla2RheSA9IERheV9vZl9XZWVrKCAkWWVhciwgJE1vbnRoLCAkRGF5ICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkV2Vla2RheSAhPSA2CiAgICAgICAgICAgICAgICAgICAgICAgICYmICRXZWVrZGF5ICE9IDcKICAgICAgICAgICAgICAgICAgICAgICAgJiYgISRWYWNhdGlvbkNoZWNrCiAgICAgICAgICAgICAgICAgICAgICAgICYmICEkU2ljawogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJExlYXZlRGF5CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7VGFyZ2V0U3RhdGVUb3RhbH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICs9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtXZWVrbHlIb3Vyc30gLyA1OwogICAgICAgICAgICAgICAgICAgICAgICAkVGFyZ2V0U3RhdGUgPSAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17V2Vla2x5SG91cnN9IC8gNTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICggJE1vbnRoID09ICRNb250aEVuZCAmJiAkWWVhciA9PSAkWWVhckVuZCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZX0gICs9ICRUYXJnZXRTdGF0ZTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnN9ICs9ICRXb3JraW5nVW5pdHtUb3RhbH07CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXl9ICAgICArPSAkTGVhdmVEYXk7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7U2lja30gICAgICAgICArPSAkU2ljazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWV9ICAgICAgPSAkQ3VycmVudFVzZXJEYXRhe1dvcmtpbmdIb3Vyc30gLSAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlfTsKICAgICAgICAkQ3VycmVudFVzZXJEYXRhe092ZXJ0aW1lVG90YWx9ID0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e092ZXJ0aW1lfQogICAgICAgICAgICArICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzVG90YWx9CiAgICAgICAgICAgIC0gJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZVRvdGFsfTsKICAgICAgICAkQ3VycmVudFVzZXJEYXRhe092ZXJ0aW1lVW50aWx9ICAgICA9ICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0gLSAkQ3VycmVudFVzZXJEYXRhe092ZXJ0aW1lfTsKICAgICAgICAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5UmVtYWluaW5nfSA9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtMZWF2ZURheXN9IC0gJEN1cnJlbnRVc2VyRGF0YXtMZWF2ZURheVRvdGFsfTsKCiAgICAgICAgJERhdGF7JFVzZXJJRH0gPSBcJUN1cnJlbnRVc2VyRGF0YTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFByb2plY3RTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIGFsbCB0aGUgcHJvamVjdHMnIGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJyB8fCAnaW52YWxpZCcsIG9wdGlvbmFsIGRlZmF1bHQgdmFsaWQgJiYgaW52YWxpZAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkV2hlcmUgPSAnJzsKICAgIGlmICggJFBhcmFte1N0YXR1c30gKSB7CiAgICAgICAgJFdoZXJlID0gJyBXSEVSRSBzdGF0dXMgPSAnOwogICAgICAgICRXaGVyZSAuPSAkUGFyYW17U3RhdHVzfSBlcSAnaW52YWxpZCcgPyAiJzAnIiA6ICInMSciOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIgogICAgICAgICAgICBTRUxFQ1QgaWQsIHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAkV2hlcmUiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRJRCA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7UHJvamVjdH17JElEfSAgICAgICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtQcm9qZWN0RGVzY3JpcHRpb259eyRJRH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe1Byb2plY3RTdGF0dXN9eyRJRH0gICAgICA9ICRSb3dbM107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBQcm9qZWN0R2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCBwcm9qZWN0IGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoIElEID0+IDIgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAoCiAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICdpbnRlcm5hbCcsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsCiAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICApOwoKICAgIG9yCgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KCBQcm9qZWN0ID0+ICdpbnRlcm5hbCcgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAoCiAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsCiAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0lEfSAmJiAhJFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBJRCBvciBwcm9qZWN0IG5hbWUhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlUHJvamVjdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgbG9vayBmb3IgdGhlIHRhc2sgZGF0YSB3aXRoIHRoZSBJRAogICAgaWYgKCAkUGFyYW17SUR9ICkgewoKICAgICAgICAjIFNRTAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0lEfSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlUHJvamVjdCA9ICgKICAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAgICA9PiAkUGFyYW17SUR9LAogICAgICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICREYXRhWzFdLAogICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+ICREYXRhWzJdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgdGFzayBuYW1lCiAgICBlbHNlIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBpZCwgZGVzY3JpcHRpb24sIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAgICAgV0hFUkUgcHJvamVjdCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtQcm9qZWN0fSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlUHJvamVjdCA9ICgKICAgICAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUGFyYW17UHJvamVjdH0sCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gJERhdGFbMF0sCiAgICAgICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJERhdGFbMV0sCiAgICAgICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gJERhdGFbMl0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlUHJvamVjdDsKfQoKPWl0ZW0gUHJvamVjdFNldHRpbmdzSW5zZXJ0KCkKCmluc2VydHMgYSBuZXcgcHJvamVjdCBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJ2ludGVybmFsJywgICAgIyBvcHRpb25hbAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLCAjIG9wdGlvbmFsCiAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEgfHwgMCwgICAgICAgICMgb3B0aW9uYWwKICAgICk7CgogICAgcmV0dXJucyBJRCBvZiBjcmVhdGVkIHByb2plY3QKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAkUGFyYW17UHJvamVjdH0gfHw9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRQcm9qZWN0TmFtZScpOwogICAgJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0gfHw9ICcnOwoKICAgIGlmICggJFBhcmFte1Byb2plY3RTdGF0dXN9IG5lICcwJyAmJiAkUGFyYW17UHJvamVjdFN0YXR1c30gbmUgJzEnICkgewogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzfSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRQcm9qZWN0U3RhdHVzJyk7CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGluc2VydCBwcm9qZWN0IHJlY29yZAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIElOU0VSVCBJTlRPIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0IChwcm9qZWN0LCBkZXNjcmlwdGlvbiwgc3RhdHVzKQogICAgICAgICAgICBWQUxVRVMgKD8sID8sID8pJywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtQcm9qZWN0fSwgXCRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259LCBcJFBhcmFte1Byb2plY3RTdGF0dXN9IF0sCiAgICApOwoKICAgICMgZ2V0IGlkIG9mIG5ld2x5IGNyZWF0ZWQgcHJvamVjdCByZWNvcmQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgIFdIRVJFIHByb2plY3QgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17UHJvamVjdH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAkUHJvamVjdElEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFByb2plY3RJRCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRQcm9qZWN0SUQ7Cn0KCj1pdGVtIFByb2plY3RTZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIGEgcHJvamVjdAoKICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+IDEyMywKICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJ2ludGVybmFsJywKICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdFNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBQcm9qZWN0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgU0VUIHByb2plY3QgPSA/LCBkZXNjcmlwdGlvbiA9ID8sIHN0YXR1cyA9ID8KICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtQcm9qZWN0fSwgXCRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259LCBcJFBhcmFte1Byb2plY3RTdGF0dXN9LCBcJFBhcmFte0lEfSwKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQWN0aW9uU2V0dGluZ3NHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCBhbGwgdGhlIGFjdGlvbnMgc2V0dGluZ3MKCiAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc0dldCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZCwgYWN0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0FjdGlvbn0gICAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17QWN0aW9uU3RhdHVzfSA9ICRSb3dbMl07CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBBY3Rpb25HZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgcmVxdWVzdGVkIGFjdGlvbiAodGFzaykgZGF0YQoKICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIElEID0+IDIgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAoCiAgICAgICAgQWN0aW9uICAgICAgID0+ICdNeSB0YXNrJywKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KCBBY3Rpb24gPT4gJ015IHRhc2snICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIElEICAgICAgICAgICA9PiAyLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25HZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0lEfSAmJiAhJFBhcmFte0FjdGlvbn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIElEIG9yIEFjdGlvbiEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVUYXNrOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIElECiAgICBpZiAoICRQYXJhbXtJRH0gKSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgYWN0aW9uLCBzdGF0dXMKICAgICAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX2FjdGlvbgogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SUR9IF0sCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICVUYXNrID0gKAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgID0+ICRQYXJhbXtJRH0sCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJERhdGFbMF0sCiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gJERhdGFbMV0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgbG9vayBmb3IgdGhlIHRhc2sgZGF0YSB3aXRoIHRoZSB0YXNrIG5hbWUKICAgIGVsc2UgewoKICAgICAgICAjIFNRTAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIGlkLCBzdGF0dXMKICAgICAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX2FjdGlvbgogICAgICAgICAgICAgICAgV0hFUkUgYWN0aW9uID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0FjdGlvbn0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVRhc2sgPSAoCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgPT4gJERhdGFbMF0sCiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gJERhdGFbMV0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlVGFzazsKfQoKPWl0ZW0gQWN0aW9uU2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBhY3Rpb24gaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ21lZXRpbmcnLCAgICMgb3B0aW9uYWwKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSB8fCAwLCAgICAgICMgb3B0aW9uYWwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uU2V0dGluZ3NJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAkUGFyYW17QWN0aW9ufSB8fD0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUnKSB8fCAnJzsKICAgIGlmICggJFBhcmFte0FjdGlvblN0YXR1c30gbmUgJzAnICYmICRQYXJhbXtBY3Rpb25TdGF0dXN9IG5lICcxJyApIHsKICAgICAgICAkUGFyYW17QWN0aW9uU3RhdHVzfSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRBY3Rpb25TdGF0dXMnKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX2FjdGlvbiAoYWN0aW9uLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0FjdGlvbn0sIFwkUGFyYW17QWN0aW9uU3RhdHVzfSwgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEFjdGlvblNldHRpbmdzVXBkYXRlKCkKCnVwZGF0ZXMgYW4gYWN0aW9uICh0YXNrKQoKICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgICAgICBBY3Rpb25JRCAgICAgPT4gMTIzLAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQWN0aW9uSUQgQWN0aW9uKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX2FjdGlvbgogICAgICAgICAgICBTRVQgYWN0aW9uID0gPywgc3RhdHVzID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0FjdGlvbn0sIFwkUGFyYW17QWN0aW9uU3RhdHVzfSwgXCRQYXJhbXtBY3Rpb25JRH0KICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gVXNlckxpc3QoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgdXNlciBkYXRhIG9mIGFsbCB1c2VycwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCj1jdXQKCnN1YiBVc2VyTGlzdCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZCwgZGVzY3JpcHRpb24sIHNob3dfb3ZlcnRpbWUsIGNyZWF0ZV9wcm9qZWN0LCBjYWxlbmRhcgogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyJywKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e1VzZXJJRH0gICAgICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0Rlc2NyaXB0aW9ufSAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e1Nob3dPdmVydGltZX0gID0gJFJvd1syXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0NyZWF0ZVByb2plY3R9ID0gJFJvd1szXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0NhbGVuZGFyfSAgICAgID0gJFJvd1s0XTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFVzZXJHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgdXNlciBkYXRhIG9mIG9uZSB1c2VyCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAxNSwKICAgICk7Cgo9Y3V0CgpzdWIgVXNlckdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIGRhdGEKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnVXNlckdldDogTmVlZCBVc2VySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBkZXNjcmlwdGlvbiwgc2hvd19vdmVydGltZSwgY3JlYXRlX3Byb2plY3QsIGNhbGVuZGFyCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXtVc2VySUR9ICAgICAgICA9ICRQYXJhbXtVc2VySUR9OwogICAgICAgICREYXRhe0Rlc2NyaXB0aW9ufSAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTaG93T3ZlcnRpbWV9ICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7Q3JlYXRlUHJvamVjdH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe0NhbGVuZGFyfSAgICAgID0gJFJvd1szXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFVzZXJTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBjb21wbGV0ZSB1c2VyIHBlcmlvZCBkYXRhIGZvciBhbGwgdXNlcnMKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0dldCgpOwoKcmV0dXJuczoKICAgICVVc2VyRGF0YSA9ICgKICAgICAgICAzID0+IHsKICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiMjAxNS0xMi0zMSIsCiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiMjAxNS0wMS0wMSIsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAiMjMuMDAiLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gIjAuMDAiLAogICAgICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDMsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gIjQwLjAwIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgMiA9PiB7CiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiMjAxNS0xMi0zMSIsCiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiMjAxNS0wMS0wMSIsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAiMjMuMDAiLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gIjAuMDAiLAogICAgICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMiwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDMsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gIjMyLjAwIiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIDQgPT4gewogICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIyMDE1LTEyLTMxIiwKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIyMDE1LTAxLTAxIiwKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICIyMy4wMCIsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAiMC4wMCIsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gNCwKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAiNDAuMDAiLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9OwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc0dldCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZCwgcHJlZmVyZW5jZV9wZXJpb2QsIGRhdGVfc3RhcnQsIGRhdGVfZW5kLCB3ZWVrbHlfaG91cnMsIGxlYXZlX2RheXMsCiAgICAgICAgICAgICAgICBvdmVydGltZSwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJwogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtVc2VySUR9ICAgICAgPSAkUm93WzBdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtQZXJpb2R9ICAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtEYXRlU3RhcnR9ICAgPSBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICk7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e0RhdGVFbmR9ICAgICA9IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17V2Vla2x5SG91cnN9ID0gJFJvd1s0XTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17TGVhdmVEYXlzfSAgID0gJFJvd1s1XTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17T3ZlcnRpbWV9ICAgID0gJFJvd1s2XTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17VXNlclN0YXR1c30gID0gJFJvd1s3XTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFNpbmdsZVVzZXJTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgdXNlcidzIHBlcmlvZCBkYXRhCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoIFVzZXJJRCA9PiAxICk7Cgo9Y3V0CgpzdWIgU2luZ2xlVXNlclNldHRpbmdzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUsIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlVXNlckRhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtVc2VySUR9ICAgICAgPSAkUm93WzBdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1BlcmlvZH0gICAgICA9ICRSb3dbMV07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17RGF0ZVN0YXJ0fSAgID0gc3Vic3RyKCAkUm93WzJdLCAwLCAxMCApOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e0RhdGVFbmR9ICAgICA9IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtXZWVrbHlIb3Vyc30gPSAkUm93WzRdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e0xlYXZlRGF5c30gICA9ICRSb3dbNV07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17T3ZlcnRpbWV9ICAgID0gJFJvd1s2XTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtVc2VyU3RhdHVzfSAgPSAkUm93WzddOwogICAgfQoKICAgIHJldHVybiAlVXNlckRhdGE7Cn0KCj1pdGVtIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCkKCnJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbGFzdCByZWdpc3RlcmVkIHBlcmlvZCBmb3IgdGhlIHNwZWNpZmllZCB1c2VyCgogICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCBVc2VySUQgPT4gMSApOwoKPWN1dAoKc3ViIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIG1heChwcmVmZXJlbmNlX3BlcmlvZCkKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpOwogICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkUm93WzBdIHx8IDA7CgogICAgcmV0dXJuICRMYXN0UGVyaW9kTnVtYmVyOwp9Cgo9aXRlbSBVc2VyU2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0IG5ldyB1c2VyIGRhdGEgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgVXNlcklEICAgICAgID0+ICcyJywKICAgICAgICBQZXJpb2QgICAgICAgPT4gJzInLAogICAgKTsKCj1jdXQKCnN1YiBVc2VyU2V0dGluZ3NJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3IChVc2VySUQgUGVyaW9kKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiB1c2VyIGV4aXN0cwogICAgaWYgKCAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJVc2VySUQgJFBhcmFte1VzZXJJRH0gZG9lcyBub3QgZXhpc3QhIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAkUGFyYW17V2Vla2x5SG91cnN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJXZWVrbHlIb3VycycpCiAgICAgICAgfHwgJzQwJzsKICAgICRQYXJhbXtMZWF2ZURheXN9ICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyTGVhdmVEYXlzJykgfHwgJzI1JzsKICAgICRQYXJhbXtVc2VyU3RhdHVzfSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyU3RhdHVzJykgICAgfHwgJzEnOwogICAgJFBhcmFte092ZXJ0aW1lfSAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJPdmVydGltZScpICB8fCAnMCc7CiAgICAkUGFyYW17RGF0ZUVuZH0gICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVFbmQnKQogICAgICAgIHx8ICcyMDE1LTEyLTMxJzsKICAgICRQYXJhbXtEYXRlU3RhcnR9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlU3RhcnQnKQogICAgICAgIHx8ICcyMDE1LTAxLTAxJzsKICAgICRQYXJhbXtEZXNjcmlwdGlvbn0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRlc2NyaXB0aW9uJykKICAgICAgICB8fCAnUHV0IHlvdXIgZGVzY3JpcHRpb24gaGVyZS4nOwoKICAgICRQYXJhbXtEYXRlU3RhcnR9IC49ICcgMDA6MDA6MDAnOwogICAgJFBhcmFte0RhdGVFbmR9ICAgLj0gJyAwMDowMDowMCc7CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGRlbGV0ZSAkU2VsZi0+eydDYWNoZTo6VXNlckN1cnJlbnRQZXJpb2RHZXQnfTsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kICh1c2VyX2lkLCBwcmVmZXJlbmNlX3BlcmlvZCwgZGF0ZV9zdGFydCwKICAgICAgICAgICAgICAgIGRhdGVfZW5kLCB3ZWVrbHlfaG91cnMsIGxlYXZlX2RheXMsIG92ZXJ0aW1lLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPyknLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0sICAgICAgXCRQYXJhbXtQZXJpb2R9LCAgICBcJFBhcmFte0RhdGVTdGFydH0sIFwkUGFyYW17RGF0ZUVuZH0sCiAgICAgICAgICAgIFwkUGFyYW17V2Vla2x5SG91cnN9LCBcJFBhcmFte0xlYXZlRGF5c30sIFwkUGFyYW17T3ZlcnRpbWV9LCAgXCRQYXJhbXtVc2VyU3RhdHVzfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIHNlbGVjdCBVc2VySUQKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyCiAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17VXNlcklEfSwgXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAkVXNlcklEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFVzZXJJRCA9ICRSb3dbMF07CiAgICB9CgogICAgaWYgKCAhZGVmaW5lZCAkVXNlcklEICkgewoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIElOU0VSVCBJTlRPIHRpbWVfYWNjb3VudGluZ191c2VyICh1c2VyX2lkLCBkZXNjcmlwdGlvbikKICAgICAgICAgICAgICAgIFZBTFVFUyAoPywgPyknLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtVc2VySUR9LCBcJFBhcmFte0Rlc2NyaXB0aW9ufSwgXSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBVc2VyU2V0dGluZ3NVcGRhdGUoKQoKdXBkYXRlcyB1c2VyIGRhdGEgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NvbWUgVGV4dCcsCiAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxIHx8IDAsCiAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxIHx8IDAsCiAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgID0+ICcyMDE1LTEyLTEyJywKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICA9PiAnMjAxNS0xMi0zMScsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgPT4gJzM4JywKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICAgPT4gMSB8fCAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICAyID0+IHsKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgICA9PiAnMjAxNS0xMi0xMicsCiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICAgPT4gJzIwMTUtMTItMzEnLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgID0+ICczOCcsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICAgPT4gJzI1JywKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgID0+IDEgfHwgMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgMyA9PiAuLi4uLi4KICAgICAgICB9CiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBkZWxldGUgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J307CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1BlcmlvZH0tPnsxfXtEYXRlU3RhcnR9ICYmICFkZWZpbmVkICRQYXJhbXtQZXJpb2R9LT57MX17RGF0ZUVuZH0gKSB7CgogICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJTZXR0aW5nVXBkYXRlOiBObyBkYXRhIGZvciB1c2VyIGlkICRVc2VySUQhIgogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMKICAgICRQYXJhbXtTaG93T3ZlcnRpbWV9ICB8fD0gMDsKICAgICRQYXJhbXtDcmVhdGVQcm9qZWN0fSB8fD0gMDsKICAgICRQYXJhbXtDYWxlbmRhcn0gICAgICB8fD0gMDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgVVBEQVRFIHRpbWVfYWNjb3VudGluZ191c2VyCiAgICAgICAgICAgIFNFVCBkZXNjcmlwdGlvbiA9ID8sIHNob3dfb3ZlcnRpbWUgPSA/LCBjcmVhdGVfcHJvamVjdCA9ID8sIGNhbGVuZGFyID0gPwogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17RGVzY3JpcHRpb259LCBcJFBhcmFte1Nob3dPdmVydGltZX0sCiAgICAgICAgICAgIFwkUGFyYW17Q3JlYXRlUHJvamVjdH0sIFwkUGFyYW17Q2FsZW5kYXJ9LCBcJFBhcmFte1VzZXJJRH0KICAgICAgICBdLAogICAgKTsKCiAgICAjIHVwZGF0ZSBhbGwgcGVyaW9kcwogICAgZm9yIG15ICRQZXJpb2QgKCBzb3J0IGtleXMgJXsgJFBhcmFte1BlcmlvZH0gfSApIHsKCiAgICAgICAgIyBkYiBpbnNlcnQKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kCiAgICAgICAgICAgICAgICBTRVQgbGVhdmVfZGF5cyA9ID8sIGRhdGVfc3RhcnQgPSA/LCBkYXRlX2VuZCA9ID8sIG92ZXJ0aW1lID0gPywgd2Vla2x5X2hvdXJzID0gPywKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPwogICAgICAgICAgICAgICAgICAgIEFORCBwcmVmZXJlbmNlX3BlcmlvZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0xlYXZlRGF5c30sICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17RGF0ZVN0YXJ0fSwKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0RhdGVFbmR9LCAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17T3ZlcnRpbWV9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17V2Vla2x5SG91cnN9LCBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtVc2VyU3RhdHVzfSwKICAgICAgICAgICAgICAgIFwkVXNlcklELCBcJFBlcmlvZCwKICAgICAgICAgICAgICAgIF0KICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBXb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFuZAp0aGUgaW5mb3JtYXRpb24gaWYgdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFyZSBpbiB0aGUgYWxsb3dlZApyYW5nZS4KCiAgICBteSAlV29ya2luZ1VuaXRzQ2hlY2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVEYXRhICAgICAgICAgICAgICAgID0gKCk7CiAgICBteSAkV29ya2luZ1VuaXRJRCAgICAgICA9IDA7CiAgICBteSAlQ29tcGxldGVXb3JraW5nRGF5cyA9ICgpOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICAjIFRPRE86IFNlYXJjaCBvbmx5IGluIHRoZSBDdXJyZW50VXNlclBlcmlvZAogICAgIyBUT0RPOiBTZWFyY2ggb25seSB3b3JraW5nIHVuaXRzIHdoZXJlIGFjdGlvbl9pZCBhbmQgcHJvamVjdF9pZCBpcyB0cnVlCgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIERJU1RJTkNUIHRpbWVfc3RhcnQKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFVzZXJJRCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBpZiAoICRSb3dbMF0gPX4gL14oXGQrKS0oXGQrKS0oXGQrKS8gKSB7CiAgICAgICAgICAgICRDb21wbGV0ZVdvcmtpbmdEYXlzeyQxfXskMn17JDN9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFNlbGYtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICBteSAkV29ya2luZ0RheXMgPSAwOwogICAgbXkgJFllYXJTdGFydCAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgID0gJFllYXI7CiAgICBteSAkTW9udGhFbmQgICAgPSAkTW9udGg7CiAgICBteSAkRGF5RW5kICAgICAgPSAkRGF5OwoKICAgIGlmICgKICAgICAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9CiAgICAgICAgJiYgJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9LT57RGF0ZVN0YXJ0fSA9fiAvXihcZCspLShcZCspLShcZCspLwogICAgICAgICkKICAgIHsKICAgICAgICAkWWVhclN0YXJ0ICA9ICQxOwogICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgJERheVN0YXJ0ICAgPSAkMzsKICAgIH0KCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkQ2FsZW5kYXIgPSB7ICRTZWxmLT5Vc2VyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApIH0tPntDYWxlbmRhcn07CgogICAgZm9yIG15ICRZZWFyICggJFllYXJTdGFydCAuLiAkWWVhckVuZCApIHsKCiAgICAgICAgbXkgJE1vbnRoU3RhcnRQb2ludCA9ICRZZWFyID09ICRZZWFyU3RhcnQgPyAkTW9udGhTdGFydCA6IDE7CiAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICBmb3IgbXkgJE1vbnRoICggJE1vbnRoU3RhcnRQb2ludCAuLiAkTW9udGhFbmRQb2ludCApIHsKCiAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCAmJiAkTW9udGggPT0gJE1vbnRoU3RhcnQgPyAkRGF5U3RhcnQgOiAxOwogICAgICAgICAgICBteSAkRGF5RW5kUG9pbnQgPSAkWWVhciA9PSAkWWVhckVuZAogICAgICAgICAgICAgICAgJiYgJE1vbnRoID09ICRNb250aEVuZCA/ICREYXlFbmQgOiBEYXlzX2luX01vbnRoKCAkWWVhciwgJE1vbnRoICk7CiAgICAgICAgICAgIG15ICRNb250aFN0cmluZyA9IHNwcmludGYoICIlMDJkIiwgJE1vbnRoICk7CgogICAgICAgICAgICBmb3IgbXkgJERheSAoICREYXlTdGFydFBvaW50IC4uICREYXlFbmRQb2ludCApIHsKCiAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRUaW1lT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJERhdGUgPSBzcHJpbnRmKCAiJTA0ZC0lMDJkLSUwMmQiLCAkWWVhciwgJE1vbnRoLCAkRGF5ICk7CiAgICAgICAgICAgICAgICBteSAkRGF5U3RhcnRUaW1lID0gJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJERhdGUgLiAnIDAwOjAwOjAwJyApOwogICAgICAgICAgICAgICAgbXkgJERheVN0b3BUaW1lICA9ICRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICREYXRlIC4gJyAyMzo1OTo1OScgKTsKCiAgICAgICAgICAgICAgICAjIGFkZCB0aW1lIHpvbmUgdG8gY2FsY3VsYXRpb24KICAgICAgICAgICAgICAgIG15ICRab25lID0gJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICggJENhbGVuZGFyIHx8ICcnICkgKTsKICAgICAgICAgICAgICAgIGlmICgkWm9uZSkgewogICAgICAgICAgICAgICAgICAgIG15ICRab25lU2Vjb25kcyA9ICRab25lICogNjAgKiA2MDsKICAgICAgICAgICAgICAgICAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgICAgICAgICAkRGF5U3RvcFRpbWUgID0gJERheVN0b3BUaW1lIC0gJFpvbmVTZWNvbmRzOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRUaGlzRGF5V29ya2luZ1RpbWUgPSAkVGltZU9iamVjdC0+V29ya2luZ1RpbWUoCiAgICAgICAgICAgICAgICAgICAgU3RhcnRUaW1lID0+ICREYXlTdGFydFRpbWUsCiAgICAgICAgICAgICAgICAgICAgU3RvcFRpbWUgID0+ICREYXlTdG9wVGltZSwKICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciAgPT4gJENhbGVuZGFyIHx8ICcnLAogICAgICAgICAgICAgICAgKSB8fCAnMCc7CgogICAgICAgICAgICAgICAgbXkgJERheVN0cmluZyA9IHNwcmludGYoICIlMDJkIiwgJERheSApOwoKICAgICAgICAgICAgICAgIGlmICggJFRoaXNEYXlXb3JraW5nVGltZSAmJiAhJFZhY2F0aW9uQ2hlY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgJFdvcmtpbmdEYXlzKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFRoaXNEYXlXb3JraW5nVGltZQogICAgICAgICAgICAgICAgICAgICYmICEkVmFjYXRpb25DaGVjawogICAgICAgICAgICAgICAgICAgICYmICEkQ29tcGxldGVXb3JraW5nRGF5c3skWWVhcn17JE1vbnRoU3RyaW5nfXskRGF5U3RyaW5nfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRoU3RyaW5nfXskRGF5U3RyaW5nfSA9ICRXb3JraW5nRGF5czsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIG15ICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzJykgfHwgJzUnOwogICAgbXkgJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nCiAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nJykKICAgICAgICB8fCAnMyc7CiAgICBmb3IgbXkgJFllYXIgKCBzb3J0IGtleXMgJXsgJERhdGF7SW5jb21wbGV0ZX0gfSApIHsKCiAgICAgICAgZm9yIG15ICRNb250aCAoIHNvcnQga2V5cyAleyAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn0gfSApIHsKCiAgICAgICAgICAgIGZvciBteSAkRGF5ICggc29ydCBrZXlzICV7ICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGh9IH0gKSB7CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGh9eyREYXl9CiAgICAgICAgICAgICAgICAgICAgPCAkV29ya2luZ0RheXMgLSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5cwogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtFbmZvcmNlSW5zZXJ0fSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICAgICAgICAgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aH17JERheX0KICAgICAgICAgICAgICAgICAgICA8ICRXb3JraW5nRGF5cyAtICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZwogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtXYXJuaW5nfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBXb3JraW5nVW5pdHNHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgd29ya2luZyB1bml0cyBkYXRhCgogICAgbXkgJVdvcmtpbmdVbml0c0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoICA9PiAnNycsCiAgICAgICAgRGF5ICAgID0+ICcxMycsCiAgICAgICAgVXNlcklEID0+ICcxMjMnLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkRGF0ZSAgICAgID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwogICAgbXkgJERhdGVTdGFydCA9ICREYXRlIC4gIiAwMDowMDowMCI7CiAgICBteSAkRGF0ZVN0b3AgID0gJERhdGUgLiAiIDIzOjU5OjU5IjsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgYXNrIHRoZSBkYXRhYmFzZQogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBwcm9qZWN0X2lkLCBhY3Rpb25faWQsIHJlbWFyaywgdGltZV9zdGFydCwgdGltZV9lbmQsIHBlcmlvZAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8KICAgICAgICAgICAgICAgIEFORCB1c2VyX2lkID0gPwogICAgICAgICAgICBPUkRFUiBieSBpZCcsCiAgICAgICAgQmluZCA9PiBbIFwkRGF0ZVN0YXJ0LCBcJERhdGVTdG9wLCBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgbXkgJURhdGEgPSAoCiAgICAgICAgVG90YWwgPT4gMCwKICAgICAgICBEYXRlICA9PiAkRGF0ZSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgJFJvd1s0XSAhfiBte14gKC4rPykgXHMgKFxkKzpcZCspIDogKFxkKykgfXhtczsKCiAgICAgICAgIyBjaGVjayBpZiBpdCBpcyBhIHNwZWNpYWwgd29ya2luZyB1bml0CiAgICAgICAgaWYgKCAkUm93WzFdID09IC0xICkgewogICAgICAgICAgICBteSAkQWN0aW9uSUQgPSAkUm93WzJdOwoKICAgICAgICAgICAgJERhdGF7U2lja30gICAgID0gJEFjdGlvbklEID09IC0xID8gMSA6IDA7CiAgICAgICAgICAgICREYXRhe0xlYXZlRGF5fSA9ICRBY3Rpb25JRCA9PSAtMiA/IDEgOiAwOwogICAgICAgICAgICAkRGF0YXtPdmVydGltZX0gPSAkQWN0aW9uSUQgPT0gLTMgPyAxIDogMDsKCiAgICAgICAgICAgIG5leHQgUk9XOwogICAgICAgIH0KCiAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICQyOwogICAgICAgIG15ICRFbmRUaW1lICAgPSAnJzsKICAgICAgICBpZiAoICRSb3dbNV0gPX4gbXteKC4rPylccyhcZCs6XGQrKTooXGQrKX14bXMgKSB7CiAgICAgICAgICAgICRFbmRUaW1lID0gJDI7CgogICAgICAgICAgICAjIHJlcGxhY2UgMjM6NTk6NTkgd2l0aCAyNDowMAogICAgICAgICAgICBpZiAoICRFbmRUaW1lIGVxICcyMzo1OScgJiYgJDMgZXEgJzU5JyApIHsKICAgICAgICAgICAgICAgICRFbmRUaW1lID0gJzI0OjAwJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJVdvcmtpbmdVbml0ID0gKAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgUHJvamVjdElEID0+ICRSb3dbMV0sCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkUm93WzJdLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJFJvd1szXSwKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICRTdGFydFRpbWUsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkRW5kVGltZSwKICAgICAgICAgICAgUGVyaW9kICAgID0+IGRlZmluZWQoICRSb3dbNl0gKSA/IHNwcmludGYoICIlLjJmIiwgJFJvd1s2XSApIDogMCwKICAgICAgICApOwoKICAgICAgICAjIG9ubHkgY291bnQgY29tcGxldGUgd29ya2luZyB1bml0cwogICAgICAgIGlmICggJFJvd1sxXSAmJiAkUm93WzJdICkgewogICAgICAgICAgICAkRGF0YXtUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1BlcmlvZH07CiAgICAgICAgfQoKICAgICAgICBwdXNoIEB7ICREYXRhe1dvcmtpbmdVbml0c30gfSwgXCVXb3JraW5nVW5pdDsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFdvcmtpbmdVbml0c0luc2VydCgpCgppbnNlcnQgd29ya2luZyB1bml0cyBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICBZZWFyICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggPT4gJzA3JywKICAgICAgICBEYXkgICA9PiAnMDInLAogICAgICAgIExlYXZlRGF5ID0+IDEsIHx8IDAKICAgICAgICBTaWNrICAgICA9PiAxLCB8fCAwCiAgICAgICAgT3ZlcnRpbWUgPT4gMSwgfHwgMAogICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+IDIzLAogICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTb21lVGV4dCcsCiAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJzc6MzAnLAogICAgICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxMTowMCcsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzguNScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsgLi4uLi4uIH0sCiAgICAgICAgXSwKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoWWVhciBNb250aCBEYXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIldvcmtpbmdVbml0c0luc2VydDogTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CgogICAgIyBhZGQgc3BlY2lhbCB0aW1lIHdvcmtpbmcgdW5pdHMKICAgIG15ICVTcGVjaWFsQWN0aW9uID0gKAogICAgICAgICdTaWNrJyAgICAgPT4gJy0xJywKICAgICAgICAnTGVhdmVEYXknID0+ICctMicsCiAgICAgICAgJ092ZXJ0aW1lJyA9PiAnLTMnLAogICAgKTsKCiAgICBFTEVNRU5UOgogICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewoKICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRQYXJhbXskRWxlbWVudH07CgogICAgICAgIG15ICVVbml0ID0gKAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gLTEsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkU3BlY2lhbEFjdGlvbnskRWxlbWVudH0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAnJywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICcnLAogICAgICAgICAgICBFbmRUaW1lICAgPT4gJycsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAwLAogICAgICAgICk7CgogICAgICAgIHB1c2ggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSwgXCVVbml0OwogICAgfQoKICAgICMgaW5zZXJ0IG5ldyB3b3JraW5nIHVuaXRzCiAgICBVTklUUkVGOgogICAgZm9yIG15ICRVbml0UmVmICggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSApIHsKCiAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e1N0YXJ0VGltZX0gfHwgJzAwOjAwJyApIC4gJzowMCc7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e0VuZFRpbWV9ICAgfHwgJzAwOjAwJyApIC4gJzowMCc7CgogICAgICAgICMgJycgZG9lcyBub3Qgd29yayBpbiBpbnRlZ2VyIGZpZWxkIG9mIFBvc3RncmVTUUwKICAgICAgICAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfHw9IDA7CiAgICAgICAgJFVuaXRSZWYtPntBY3Rpb25JRH0gIHx8PSAwOwogICAgICAgICRVbml0UmVmLT57UGVyaW9kfSAgICB8fD0gMDsKCiAgICAgICAgIyBidWlsZCBEUUwKICAgICAgICBteSAkU1FMID0gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdGFibGUgKHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LAogICAgICAgICAgICAgICAgdGltZV9lbmQsIHBlcmlvZCwgY3JlYXRlZCApCiAgICAgICAgICAgIFZBTFVFUyAgKCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCknOwogICAgICAgIG15ICRCaW5kID0gWwogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0sIFwkVW5pdFJlZi0+e1Byb2plY3RJRH0sIFwkVW5pdFJlZi0+e0FjdGlvbklEfSwKICAgICAgICAgICAgXCRVbml0UmVmLT57UmVtYXJrfSwgXCRTdGFydFRpbWUsIFwkRW5kVGltZSwgXCRVbml0UmVmLT57UGVyaW9kfSwKICAgICAgICBdOwoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgPT4gJEJpbmQKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBXb3JraW5nVW5pdHNEZWxldGUoKQoKZGVsZXRlcyB3b3JraW5nIHVuaXRzIGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgIFllYXIgICA9PiAnMjAxNScsCiAgICAgICAgTW9udGggID0+ICc3JywKICAgICAgICBEYXkgICAgPT4gJzEzJywKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNEZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoWWVhciBNb250aCBEYXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIldvcmtpbmdVbml0c0luc2VydDogTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGUgICAgICA9IHNwcmludGYgIiUwNGQtJTAyZC0lMDJkIiwgJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fTsKICAgIG15ICRTdGFydFRpbWUgPSAkRGF0ZSAuICcgMDA6MDA6MDAnOwogICAgbXkgJEVuZFRpbWUgICA9ICREYXRlIC4gJyAyMzo1OTo1OSc7CgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgREVMRVRFIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPwogICAgICAgICAgICAgICAgQU5EIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRTdGFydFRpbWUsIFwkRW5kVGltZSwgXCRQYXJhbXtVc2VySUR9LCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gUHJvamVjdEFjdGlvblJlcG9ydGluZygpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBob3VycyBkZXBlbmRlbnQgcHJvamVjdCBhbmQgYWN0aW9uIGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gMjAwNSwKICAgICAgICBNb250aCA9PiA3LAogICAgICAgIFVzZXJJRCA9PiAxMjMsICMgb3B0aW9uYWw7IG5vIFVzZXJJRCBtZWFucyAnb2YgYWxsIHVzZXJzJwogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoWWVhciBNb250aCkpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkREJPYmplY3QtPlF1b3RlKCAkUGFyYW17JFBhcmFtZXRlcn0gKSB8fCAnJzsKICAgICAgICBpZiAoICEkUGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJQcm9qZWN0QWN0aW9uUmVwb3J0aW5nOiBOZWVkICRQYXJhbWV0ZXIhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGhvdXJzIHBlciBtb250aAogICAgbXkgJERheXNJbk1vbnRoID0gRGF5c19pbl9Nb250aCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9ICk7CiAgICBteSAkRGF0ZVN0cmluZyA9ICRQYXJhbXtZZWFyfSAuICItIiAuIHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgbXkgJFNRTERhdGUgPSAiJERhdGVTdHJpbmctJERheXNJbk1vbnRoIDIzOjU5OjU5IjsKCiAgICBteSAkU1FMID0gJwogICAgICAgIFNFTEVDVCBwcm9qZWN0X2lkLCBhY3Rpb25faWQsIHBlcmlvZAogICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgV0hFUkUgcHJvamVjdF9pZCAhPSAtMQogICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/JzsKICAgIG15IEBCaW5kID0gKCBcJFNRTERhdGUgKTsKCiAgICBpZiAoICRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRTUUwgLj0gJyBBTkQgdXNlcl9pZCA9ID8nOwogICAgICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17VXNlcklEfTsKICAgIH0KCiAgICAjIHRvdGFsIGhvdXJzCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAhJFJvd1syXTsKCiAgICAgICAgJERhdGF7ICRSb3dbMF0gfS0+e0FjdGlvbnN9LT57ICRSb3dbMV0gfS0+e1RvdGFsfSArPSAkUm93WzJdOwogICAgfQoKICAgIG15ICRTUUxEYXRlU3RhcnQgPSAiJERhdGVTdHJpbmctMDEgMDA6MDA6MDAiOwoKICAgICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcGVyaW9kCiAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICBXSEVSRSBwcm9qZWN0X2lkICE9IC0xCiAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPyc7CiAgICBAQmluZCA9ICggXCRTUUxEYXRlU3RhcnQsIFwkU1FMRGF0ZSApOwoKICAgIGlmICggJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFNRTCAuPSAnIEFORCB1c2VyX2lkID0gPyc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtVc2VySUR9OwogICAgfQoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAhJFJvd1syXTsKCiAgICAgICAgJERhdGF7ICRSb3dbMF0gfS0+e0FjdGlvbnN9LT57ICRSb3dbMV0gfS0+e1Blck1vbnRofSArPSAkUm93WzJdOwogICAgfQoKICAgICMgYWRkIHJlYWRhYmxlIGNvbXBvbmVudHMKICAgIG15ICVQcm9qZWN0ID0gJFNlbGYtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkU2VsZi0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAlRGF0YSApIHsKCiAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntOYW1lfSAgICAgICAgPSAkUHJvamVjdHtQcm9qZWN0fS0+eyRQcm9qZWN0SUR9IHx8ICcnOwogICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57U3RhdHVzfSAgICAgID0gJFByb2plY3R7UHJvamVjdFN0YXR1c30tPnskUHJvamVjdElEfTsKICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0Rlc2NyaXB0aW9ufSA9ICRQcm9qZWN0e1Byb2plY3REZXNjcmlwdGlvbn0tPnskUHJvamVjdElEfTsKCiAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9OwoKICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7JEFjdGlvbnNSZWZ9ICkgewogICAgICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9LT57JEFjdGlvbklEfS0+e05hbWV9ID0gJEFjdGlvbnskQWN0aW9uSUR9LT57QWN0aW9ufSB8fCAnJzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBQcm9qZWN0VG90YWxIb3VycygpCgpyZXR1cm5zIHRoZSBzdW0gb2YgYWxsIGhvdXJzIHJlbGF0ZWQgdG8gYSBwcm9qZWN0CgogICAgbXkgJFByb2plY3RUb3RhbEhvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgICAgICBQcm9qZWN0SUQgID0+IDE1LAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0VG90YWxIb3VycyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtCiAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1Byb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgUHJvamVjdElEIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGFzayB0aGUgZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBTVU0ocGVyaW9kKQogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSBwcm9qZWN0X2lkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1Byb2plY3RJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRUb3RhbCA9IDA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVG90YWwgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkVG90YWw7Cn0KCj1pdGVtIFByb2plY3RIaXN0b3J5KCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCBhbGwgV29ya2luZ1VuaXRzIHJlbGF0ZWQgdG8gYSBwcm9qZWN0CgogICAgbXkgQFByb2plY3RIaXN0b3J5QXJyYXkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RIaXN0b3J5KAogICAgICAgIFByb2plY3RJRCAgPT4gMTUsCiAgICApOwoKVGhpcyB3b3VsZCByZXR1cm4KCiAgICBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICgKICAgICAgICB7CiAgICAgICAgICAgIElEICAgICAgICA9PiA5OTksCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAxNSwKICAgICAgICAgICAgVXNlciAgICAgID0+ICdUb20nLAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gNiwKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdtaXNjJywKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdyZW1hcmsnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJzc6MDAnLAogICAgICAgICAgICBUaW1lRW5kICAgPT4gJzE4OjAwJywKICAgICAgICAgICAgRGF0ZSAgICAgID0+ICcyMDA4LTEwLTMxJywgIyB0aGUgZGF0ZSBvZiB0aGUgd29ya2luZyB1bml0CiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAxMSwKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICcyMDA4LTExLTAxJywgIyB0aGUgaW5zZXJ0IHRpbWUgb2YgdGhlIHdvcmtpbmcgdW5pdAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBJRCAgICAgICAgPT4gOTk5LAogICAgICAgICAgICBVc2VySUQgICAgPT4gMTYsCiAgICAgICAgICAgIFVzZXIgICAgICA9PiAnTWFuZScsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiA3LAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ2RldmVsb3BtZW50JywKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdyZW1hcmsnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJzc6MDAnLAogICAgICAgICAgICBUaW1lRW5kICAgPT4gJzE4OjAwJywKICAgICAgICAgICAgUGVyaW9kICAgID0+IDExLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJzIwMDgtMTEtMDMnLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJzIwMDgtMTEtMDMnLAogICAgICAgIH0KICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdEhpc3RvcnkgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbQogICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdQcm9qZWN0QWN0aW9uUmVwb3J0aW5nOiBOZWVkIFByb2plY3RJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2FsbCBhY3Rpb24gZGF0YSB0byBnZXQgdGhlIHJlYWRhYmxlIG5hbWUgb2YgdGhlIGFjdGlvbgogICAgbXkgJUFjdGlvbkRhdGEgPSAkU2VsZi0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAjIGdldCB1c2VyIGxpc3QKICAgIG15ICVTaG93blVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkLCB1c2VyX2lkLCBhY3Rpb25faWQsIHJlbWFyaywgdGltZV9zdGFydCwgdGltZV9lbmQsIHBlcmlvZCwgY3JlYXRlZAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSBwcm9qZWN0X2lkID0gPwogICAgICAgICAgICBPUkRFUiBCWSB0aW1lX3N0YXJ0JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtQcm9qZWN0SUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQERhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbXkgJFVzZXJSZWYgPSB7CiAgICAgICAgICAgIElEICAgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgVXNlciAgICAgID0+ICRTaG93blVzZXJzeyAkUm93WzFdIH0sCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkUm93WzJdLAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJEFjdGlvbkRhdGF7ICRSb3dbMl0gfXtBY3Rpb259LAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJFJvd1szXSB8fCAnJywKICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICRSb3dbNF0sCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAkUm93WzVdLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJFJvd1s0XSwKICAgICAgICAgICAgUGVyaW9kICAgID0+ICRSb3dbNl0sCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAkUm93WzddLAogICAgICAgIH07CiAgICAgICAgJFVzZXJSZWYtPntEYXRlfSA9fiBzeyhcZFxkXGRcZC1cZFxkLVxkXGQpIFxzIC4rIH17JDF9eG1zOwoKICAgICAgICBwdXNoIEBEYXRhLCAkVXNlclJlZjsKICAgIH0KCiAgICByZXR1cm4gQERhdGE7Cn0KCj1pdGVtIExhc3RQcm9qZWN0c09mVXNlcigpCgpyZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGxhc3QgcHJvamVjdHMgb2YgdGhlIGN1cnJlbnQgdXNlcgoKICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBMYXN0UHJvamVjdHNPZlVzZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAjIEkgZG9uJ3QgdXNlIGRpc3RpbmN0IGJlY2F1c2Ugb2YgT1JERVIgQlkgcHJvYmxlbXMgb2YgUG9zdGdyZVNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHByb2plY3RfaWQgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8KICAgICAgICAgICAgICAgIEFORCBwcm9qZWN0X2lkIDw+IC0xCiAgICAgICAgICAgIE9SREVSIEJZIHRpbWVfc3RhcnQgREVTQycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICBMaW1pdCA9PiA0MCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlUHJvamVjdHM7CiAgICBteSAkQ291bnRlciA9IDA7CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgJENvdW50ZXIgPiA3OwogICAgICAgIG5leHQgUk9XIGlmICRQcm9qZWN0c3sgJFJvd1swXSB9OwoKICAgICAgICAkUHJvamVjdHN7ICRSb3dbMF0gfSA9IDE7CiAgICAgICAgJENvdW50ZXIrKzsKICAgIH0KCiAgICByZXR1cm4ga2V5cyAlUHJvamVjdHM7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlN0YXRzOjpEeW5hbWljOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyggQWRkX0RlbHRhX0RheXMgQWRkX0RlbHRhX1lNRCApOwp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgR2V0T2JqZWN0TmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAnVGltZUFjY291bnRpbmcnOwp9CgpzdWIgR2V0T2JqZWN0QXR0cmlidXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgc2V0IHByZWRlZmluZWQgc3RhcnQgdGltZQogICAgbXkgJFRpbWVTdGFtcCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPkN1cnJlbnRUaW1lc3RhbXAoKTsKICAgIG15ICgkRGF0ZSkgPSBzcGxpdCAvXHMrLywgJFRpbWVTdGFtcDsKICAgIG15ICRUb2RheSA9IHNwcmludGYgIiVzIDIzOjU5OjU5IiwgJERhdGU7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgcHJvamVjdCBsaXN0CiAgICBteSAlUHJvamVjdExpc3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgIyBnZXQgYWN0aW9uIGxpc3QKICAgIG15ICVBY3Rpb25MaXN0U291cmNlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbkxpc3Q7CgogICAgZm9yIG15ICRBY3Rpb24gKCBzb3J0IGtleXMgJUFjdGlvbkxpc3RTb3VyY2UgKSB7CiAgICAgICAgJEFjdGlvbkxpc3R7JEFjdGlvbn0gPSAkQWN0aW9uTGlzdFNvdXJjZXskQWN0aW9ufS0+e0FjdGlvbn07CiAgICB9CgogICAgIyBnZXQgdXNlciBsaXN0CiAgICBteSAlVXNlckxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgbXkgQEF0dHJpYnV0ZXMgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnUHJvamVjdCcpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiAkUHJvamVjdExpc3R7UHJvamVjdH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdVc2VyJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1VzZXInLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAwLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IFwlVXNlckxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdTb3J0IHNlcXVlbmNlJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAxLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDAsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1NvcnRTZXF1ZW5jZScsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ1NlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIFVwICAgPT4gJ2FzY2VuZGluZycsCiAgICAgICAgICAgICAgICBEb3duID0+ICdkZXNjZW5kaW5nJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1Rhc2snKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUHJvamVjdEFjdGlvbicsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVBY3Rpb25MaXN0LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnUGVyaW9kJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1BlcmlvZCcsCiAgICAgICAgICAgIFRpbWVQZXJpb2RGb3JtYXQgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsICAgICAgICAjICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnVGltZScsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICdUaW1lQWNjb3VudGluZ1BlcmlvZFN0YXJ0JywKICAgICAgICAgICAgICAgIFRpbWVTdG9wICA9PiAnVGltZUFjY291bnRpbmdQZXJpb2RTdG9wJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQEF0dHJpYnV0ZXM7Cn0KCnN1YiBHZXRIZWFkZXJMaW5lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSBASGVhZGVyTGluZSA9ICgiIik7CgogICAgIyBVc2VycyBhcyBYLXZhbHVlCiAgICBpZiAoICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gJiYgJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSBlcSAnVXNlcicgKSB7CgogICAgICAgICMgdXNlciBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBVc2VySURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgVVNFUklEOgogICAgICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewogICAgICAgICAgICBteSAkVXNlck5hbWUgPSAkVXNlck9iamVjdC0+VXNlck5hbWUoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQEhlYWRlckxpbmUsICRVc2VyTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgIyBQcm9qZWN0cyBhcyBYLXZhbHVlCiAgICBlbHNlIHsKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgUFJPSkVDVElEOgogICAgICAgIGZvciBteSAkUHJvamVjdElEIChAUHJvamVjdElEcykgewogICAgICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcHVzaCBASGVhZGVyTGluZSwgJFByb2plY3REYXRhe1Byb2plY3R9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBIZWFkZXJMaW5lOwp9CgpzdWIgR2V0U3RhdFRhYmxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSBAU3RhdEFycmF5OwogICAgbXkgQFVzZXJJRHM7CgogICAgIyBVc2VycyBhcyBYLXZhbHVlCiAgICBpZiAoICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gJiYgJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSBlcSAnVXNlcicgKSB7CgogICAgICAgICMgdXNlciBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIEBVc2VySURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgc3RhdCBkYXRhCiAgICAgICAgbXkgJFN0YXREYXRhID0gJFNlbGYtPl9HZXRTdGF0RGF0YSgKICAgICAgICAgICAgUGFyYW0gICA9PiBcJVBhcmFtLAogICAgICAgICAgICBVc2VySURzID0+IFxAVXNlcklEcywKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHN0YXQgZGF0YQogICAgICAgIHJldHVybiBpZiAhJFN0YXREYXRhOwogICAgICAgIHJldHVybiBpZiByZWYgJFN0YXREYXRhIG5lICdBUlJBWSc7CgogICAgICAgIG15IEBSYXdTdGF0QXJyYXkgPSBAeyRTdGF0RGF0YX07CiAgICAgICAgcmV0dXJuIGlmICFAUmF3U3RhdEFycmF5OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0TGlzdCA9ICV7ICRQcm9qZWN0RGF0YXtQcm9qZWN0fSB8fCB7fSB9OwoKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlQWN0aW9uTGlzdCA9IG1hcCB7ICggJF8gPT4gJEFjdGlvbkRhdGF7JF99LT57QWN0aW9ufSApIH0ga2V5cyAlQWN0aW9uRGF0YTsKCiAgICAgICAgbXkgQFNvcnRlZFByb2plY3RJRHMgPSBzb3J0IHsgJFByb2plY3RMaXN0eyRhfSBjbXAgJFByb2plY3RMaXN0eyRifSB9IGtleXMgJVByb2plY3RMaXN0OwogICAgICAgIG15IEBTb3J0ZWRBY3Rpb25JRHMgID0gc29ydCB7ICRBY3Rpb25MaXN0eyRhfSBjbXAgJEFjdGlvbkxpc3R7JGJ9IH0ga2V5cyAlQWN0aW9uTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHByb2plY3RzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRQcm9qZWN0SURzID0gcmV2ZXJzZSBAU29ydGVkUHJvamVjdElEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBwcm9qZWN0IGxpc3QKICAgICAgICBTT1JURURQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRQcm9qZWN0SUQgKEBTb3J0ZWRQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFByb2plY3RJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFBST0pFQ1RJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgcHJvamVjdCBkYXRhIG9mIGN1cnJlbnQgcHJvamVjdAogICAgICAgICAgICBteSBAUHJvamVjdFN0YXREYXRhID0gZ3JlcCB7ICRfLT57UHJvamVjdElEfSA9PSAkU29ydGVkUHJvamVjdElEIH0gQFJhd1N0YXRBcnJheTsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBhY3Rpb24gbGlzdAogICAgICAgICAgICBTT1JURURBQ1RJT05JRDoKICAgICAgICAgICAgZm9yIG15ICRTb3J0ZWRBY3Rpb25JRCAoQFNvcnRlZEFjdGlvbklEcykgewoKICAgICAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRBY3Rpb25JRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0gfHwgW10gfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IFNPUlRFREFDVElPTklEOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IGFjdGlvbiBvdXQgb2YgdGhlIGN1cnJlbnQgcHJvamVjdAogICAgICAgICAgICAgICAgbXkgQEFjdGlvblN0YXREYXRhID0gZ3JlcCB7ICRfLT57QWN0aW9uSUR9ID09ICRTb3J0ZWRBY3Rpb25JRCB9IEBQcm9qZWN0U3RhdERhdGE7CgogICAgICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgICAgICBteSAkUm93TGFiZWwgPSAiJFByb2plY3RMaXN0eyRTb3J0ZWRQcm9qZWN0SUR9OjokQWN0aW9uTGlzdHskU29ydGVkQWN0aW9uSUR9IjsKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCB1c2VycwogICAgICAgICAgICAgICAgVVNFUklEOgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgICAgICAgICAgICAgICMgYXQgbGVhc3QgZ2V0ICcwJyBmb3IgdXNlciBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJFVzZXJQZXJpb2RTdW0gPSAwOwoKICAgICAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBwZXJpb2QgZGF0YSBvZiB1c2VyCiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQZXJpb2REYXRhICggZ3JlcCB7ICRfLT57VXNlcklEfSA9PSAkVXNlcklEIH0gQEFjdGlvblN0YXREYXRhICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVXNlclBlcmlvZFN1bSArPSAkUGVyaW9kRGF0YS0+e1BlcmlvZH07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFVzZXJQZXJpb2RTdW07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBQcm9qZWN0cyBhcyBYLXZhbHVlCiAgICBlbHNlIHsKCiAgICAgICAgIyBwcm9qZWN0cyBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBQcm9qZWN0SURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgd2UgbmVlZCB0byBnZXQgYWxsIHVzZXJzCiAgICAgICAgbXkgJVVzZXJJRHMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdTaG9ydCcsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgQFVzZXJJRHMgPSBrZXlzICVVc2VySURzOwoKICAgICAgICAjIGdldCBjYWxjdWxhdGVkIHN0YXRzIGRhdGEKICAgICAgICBteSAkU3RhdERhdGEgPSAkU2VsZi0+X0dldFN0YXREYXRhKAogICAgICAgICAgICBQYXJhbSAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRHMgPT4gXEBVc2VySURzLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc3RhdCBkYXRhCiAgICAgICAgcmV0dXJuIGlmICEkU3RhdERhdGE7CiAgICAgICAgcmV0dXJuIGlmIHJlZiAkU3RhdERhdGEgbmUgJ0FSUkFZJzsKCiAgICAgICAgbXkgQFJhd1N0YXRBcnJheSA9IEB7JFN0YXREYXRhfTsKICAgICAgICByZXR1cm4gaWYgIUBSYXdTdGF0QXJyYXk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSBAU29ydGVkVXNlcklEcyA9IHNvcnQgeyAkVXNlckxpc3R7JGF9IGNtcCAkVXNlckxpc3R7JGJ9IH0ga2V5cyAlVXNlckxpc3Q7CgogICAgICAgICMgcmUtc29ydCB1c2VycyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkVXNlcklEcyA9IHJldmVyc2UgQFNvcnRlZFVzZXJJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgdXNlciBsaXN0CiAgICAgICAgU09SVEVEVVNFUklEOgogICAgICAgIGZvciBteSAkU29ydGVkVXNlcklEIChAU29ydGVkVXNlcklEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCB1c2VycwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRVc2VySUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURVU0VSSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IHVzZXIgZGF0YSBvZiBjdXJyZW50IHVzZXIKICAgICAgICAgICAgbXkgQFVzZXJTdGF0RGF0YSA9IGdyZXAgeyAkXy0+e1VzZXJJRH0gPT0gJFNvcnRlZFVzZXJJRCB9IEBSYXdTdGF0QXJyYXk7CgogICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICBteSAkUm93TGFiZWwgPSAkVXNlckxpc3R7JFNvcnRlZFVzZXJJRH07CiAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIFBST0pFQ1RJRDoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBnZXQgJzAnIGZvciB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0UGVyaW9kU3VtID0gMDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBwZXJpb2QgZGF0YSBvZiB1c2VyCiAgICAgICAgICAgICAgICBmb3IgbXkgJFBlcmlvZERhdGEgKCBncmVwIHsgJF8tPntQcm9qZWN0SUR9ID09ICRQcm9qZWN0SUQgfSBAVXNlclN0YXREYXRhICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0UGVyaW9kU3VtICs9ICRQZXJpb2REYXRhLT57UGVyaW9kfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkUHJvamVjdFBlcmlvZFN1bTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICB9CgogICAgfQoKICAgIHJldHVybiBAU3RhdEFycmF5Owp9CgpzdWIgR2V0U3RhdFRhYmxlUHJldmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBTdGF0QXJyYXk7CiAgICBteSBAVXNlcklEczsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0TGlzdCA9ICV7ICRQcm9qZWN0RGF0YXtQcm9qZWN0fSB8fCB7fSB9OwoKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlQWN0aW9uTGlzdCA9IG1hcCB7ICggJF8gPT4gJEFjdGlvbkRhdGF7JF99LT57QWN0aW9ufSApIH0ga2V5cyAlQWN0aW9uRGF0YTsKCiAgICAgICAgbXkgQFNvcnRlZFByb2plY3RJRHMgPSBzb3J0IHsgJFByb2plY3RMaXN0eyRhfSBjbXAgJFByb2plY3RMaXN0eyRifSB9IGtleXMgJVByb2plY3RMaXN0OwogICAgICAgIG15IEBTb3J0ZWRBY3Rpb25JRHMgID0gc29ydCB7ICRBY3Rpb25MaXN0eyRhfSBjbXAgJEFjdGlvbkxpc3R7JGJ9IH0ga2V5cyAlQWN0aW9uTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHByb2plY3RzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRQcm9qZWN0SURzID0gcmV2ZXJzZSBAU29ydGVkUHJvamVjdElEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBwcm9qZWN0IGxpc3QKICAgICAgICBTT1JURURQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRQcm9qZWN0SUQgKEBTb3J0ZWRQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFByb2plY3RJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFBST0pFQ1RJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIGFjdGlvbiBsaXN0CiAgICAgICAgICAgIFNPUlRFREFDVElPTklEOgogICAgICAgICAgICBmb3IgbXkgJFNvcnRlZEFjdGlvbklEIChAU29ydGVkQWN0aW9uSURzKSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufQogICAgICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZEFjdGlvbklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB8fCBbXSB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5leHQgU09SVEVEQUNUSU9OSUQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgICAgICBteSAkUm93TGFiZWwgPSAiJFByb2plY3RMaXN0eyRTb3J0ZWRQcm9qZWN0SUR9OjokQWN0aW9uTGlzdHskU29ydGVkQWN0aW9uSUR9IjsKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCB1c2VycwogICAgICAgICAgICAgICAgVVNFUklEOgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCBpbnQgcmFuZCA1MDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewoKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfXtTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgd2UgbmVlZCB0byBnZXQgYWxsIHVzZXJzCiAgICAgICAgbXkgJVVzZXJJRHMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdTaG9ydCcsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgQFVzZXJJRHMgPSBrZXlzICVVc2VySURzOwoKICAgICAgICAjIGdldCBsaXN0IG9mIG5lZWRlZCBkYXRhCiAgICAgICAgbXkgJVVzZXJMaXN0ID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgQFNvcnRlZFVzZXJJRHMgPSBzb3J0IHsgJFVzZXJMaXN0eyRhfSBjbXAgJFVzZXJMaXN0eyRifSB9IGtleXMgJVVzZXJMaXN0OwoKICAgICAgICAjIHJlLXNvcnQgdXNlcnMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFVzZXJJRHMgPSByZXZlcnNlIEBTb3J0ZWRVc2VySURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHVzZXIgbGlzdAogICAgICAgIFNPUlRFRFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFVzZXJJRCAoQFNvcnRlZFVzZXJJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgdXNlcnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkVXNlcklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEVVNFUklEOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICBteSAkUm93TGFiZWwgPSAkVXNlckxpc3R7JFNvcnRlZFVzZXJJRH07CiAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIFBST0pFQ1RJRDoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgaW50IHJhbmQgNTA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBAU3RhdEFycmF5Owp9CgpzdWIgRXhwb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyB3cmFwIGlkcyB0byB1c2VkIHNwZWxsaW5nCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewoKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnVXNlcicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQtPntDb250ZW50fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3QnICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlVG1wUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIElEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRUbXBQcm9qZWN0RGF0YXtQcm9qZWN0fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdEFjdGlvbicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVUbXBBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIElEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRUbXBBY3Rpb25EYXRhe0FjdGlvbn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIEltcG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKICAgIG15ICRMb2dPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgd3JhcCB1c2VkIHNwZWxsaW5nIHRvIGlkcwogICAgZm9yIG15ICRVc2UgKHF3KFVzZUFzVmFsdWVTZXJpZXMgVXNlQXNSZXN0cmljdGlvbiBVc2VBc1h2YWx1ZSkpIHsKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnVXNlcicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRJRC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkVXNlcklEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFVzZXJJRDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4nIGZpbmQgdGhlIHVzZXIgJElELT57Q29udGVudH0hIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3QnICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggJFByb2plY3R7SUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRQcm9qZWN0e0lEfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4nIGZpbmQgcHJvamVjdCAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdEFjdGlvbicgKSB7CiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJUFjdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoICRBY3Rpb257SUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRBY3Rpb257SUR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCBhY3Rpb24gJElELT57Q29udGVudH0hIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIF9HZXRTdGF0RGF0YSB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAUmV0dXJuOwogICAgbXkgQFVzZXJJRHMgPSBAeyAkUGFyYW17VXNlcklEc30gfHwgW10gfTsKCiAgICBteSAlRGF0ZUluZGV4VG9OYW1lID0gKAogICAgICAgICdTZWNvbmQnID0+IDAsCiAgICAgICAgJ01pbnV0ZScgPT4gMSwKICAgICAgICAnSG91cicgICA9PiAyLAogICAgICAgICdEYXknICAgID0+IDMsCiAgICAgICAgJ01vbnRoJyAgPT4gNCwKICAgICAgICAnWWVhcicgICA9PiA1LAogICAgKTsKCiAgICAjIGxvb3Bpbmcgb3ZlciBhbGwgb3Igc2VsZWN0ZWQgdXNlcnMKICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewoKICAgICAgICBteSAkU3RhcnREYXRlOwogICAgICAgIG15ICRTdG9wRGF0ZTsKCiAgICAgICAgIyBnZXQgdGltZSBvYmplY3QKICAgICAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgICAgICMgY2hlY2sgaWYgdGltZSBwZXJpb2QgaGFzIGJlZW4gc2VsZWN0ZWQKICAgICAgICBpZiAoICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0gKSB7CgogICAgICAgICAgICAjIGdldCBVTklYIHRpbWUtc3RhbXAgb2Ygc3RhcnQgYW5kIGVuZCB2YWx1ZXMKICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkU3RvcERhdGUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3B9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgSU1QT1JUQU5UOgogICAgICAgICAgICAjIElmIG5vIHRpbWUgcGVyaW9kIGhhZCBiZWVuIHNlbGVjdGVkIHByZXZpb3VzIG1vbnRoIHdpbGwgYmUgdXNlZCBhcyBwZXJpb2QhCgogICAgICAgICAgICAjIGdldCBjdXJyZW50IGRhdGUgdmFsdWVzCiAgICAgICAgICAgIG15IEBDdXJyZW50RGF0ZSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBmaXJzdCBkYXkgb2YgcHJldmlvdXMgbW9udGgKICAgICAgICAgICAgbXkgQE5ld1N0YXJ0RGF0ZSA9IEFkZF9EZWx0YV9ZTUQoCiAgICAgICAgICAgICAgICAkQ3VycmVudERhdGVbICREYXRlSW5kZXhUb05hbWV7J1llYXInfSBdLAogICAgICAgICAgICAgICAgJEN1cnJlbnREYXRlWyAkRGF0ZUluZGV4VG9OYW1leydNb250aCd9IF0sCiAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIC0xLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IGZpcnN0IGRheSBvZiBuZXh0IG1vbnRoIHJlbGF0aXZlIHRvIHByZXZpb3VzIG1vbnRoCiAgICAgICAgICAgIG15IEBOZXdTdG9wRGF0ZSA9IEFkZF9EZWx0YV9ZTUQoCiAgICAgICAgICAgICAgICAkTmV3U3RhcnREYXRlWzBdLAogICAgICAgICAgICAgICAgJE5ld1N0YXJ0RGF0ZVsxXSwKICAgICAgICAgICAgICAgICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgKzEsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgbGFzdCBvZiBkYXkgcHJldmlvdXMgbW9udGgKICAgICAgICAgICAgQE5ld1N0b3BEYXRlID0gQWRkX0RlbHRhX1lNRCgKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVswXSwKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVsyXSwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgLTEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNhbGN1bGF0ZSBVTklYIHRpbWVzdGFtcHMgZm9yIHN0YXJ0IGFuZCBzdG9wIGRhdGUKICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJE5ld1N0YXJ0RGF0ZVswXSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTmV3U3RhcnREYXRlWzFdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTdG9wRGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJE5ld1N0b3BEYXRlWzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkTmV3U3RvcERhdGVbMl0sCiAgICAgICAgICAgICAgICBIb3VyICAgPT4gMjMsCiAgICAgICAgICAgICAgICBNaW51dGUgPT4gNTksCiAgICAgICAgICAgICAgICBTZWNvbmQgPT4gNTksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNhbGN1bGF0ZSBudW1iZXIgb2YgZGF5cyB3aXRoaW4gdGhlIGdpdmVuIHJhbmdlCiAgICAgICAgbXkgJERheXMgPSBpbnQoICggJFN0b3BEYXRlIC0gJFN0YXJ0RGF0ZSApIC8gODY0MDAgKSArIDE7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgREFZOgogICAgICAgIGZvciBteSAkRGF5ICggMCAuLiAkRGF5cyApIHsKCiAgICAgICAgICAgICMgZ2V0IGRheSByZWxhdGl2ZSB0byBzdGFydCBkYXRlCiAgICAgICAgICAgIG15ICREYXRlT2ZQZXJpb2QgPSAkU3RhcnREYXRlICsgJERheSAqIDg2NDAwOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIGRhdGUgdmFsdWVzIG91dCBvZiB0aW1lLXN0YW1wCiAgICAgICAgICAgIG15IEBEYXRlVmFsdWVzID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVPZlBlcmlvZCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHdvcmtpbmcgdW5pdCBmb3IgdXNlciBhbmQgZGF5CiAgICAgICAgICAgIG15ICVXb3JraW5nVW5pdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgWWVhciAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydZZWFyJ30gXSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnTW9udGgnfSBdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydEYXknfSBdLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGV4dHJhY3QgZGV0YWlsZWQgaW5mb3JtYXRpb24KICAgICAgICAgICAgbXkgQERheVdvcmtpbmdVbml0cyA9IEB7ICRXb3JraW5nVW5pdHtXb3JraW5nVW5pdHN9IHx8IFtdIH07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBwcm9qZWN0IHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWRQcm9qZWN0SURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICAgICAgbXkgQEZpbHRlcmVkUHJvamVjdFdVcyA9IGdyZXAgewogICAgICAgICAgICAgICAgICAgICRTZWxlY3RlZFByb2plY3RJRHN7ICRfLT57UHJvamVjdElEfSB9CiAgICAgICAgICAgICAgICB9IEBEYXlXb3JraW5nVW5pdHM7CgogICAgICAgICAgICAgICAgQERheVdvcmtpbmdVbml0cyA9IEBGaWx0ZXJlZFByb2plY3RXVXM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRhc2sgcmVzdHJpY3Rpb25zCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICYmIHJlZiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IGVxICdBUlJBWScKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgYnVpbGQgbWF0Y2hpbmcgaGFzaCBmb3Igc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgbXkgJVNlbGVjdGVkQWN0aW9uSURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSBARmlsdGVyZWRBY3Rpb25XVXMgPSBncmVwIHsgJFNlbGVjdGVkQWN0aW9uSURzeyAkXy0+e0FjdGlvbklEfSB9IH0gQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICAgICBARGF5V29ya2luZ1VuaXRzID0gQEZpbHRlcmVkQWN0aW9uV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1c2VyIHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntVc2VyfSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZFVzZXJJRHMgPSBtYXAgeyAoICRfID0+IDEgKSB9IEB7ICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VXNlcn0gfTsKCiAgICAgICAgICAgICAgICAjIGZpbHRlciBvbmx5IHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15IEBGaWx0ZXJlZFVzZXJXVXMgPSBncmVwIHsgJFNlbGVjdGVkVXNlcklEc3sgJF8tPntVc2VySUR9IH0gfSBARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgICAgIEBEYXlXb3JraW5nVW5pdHMgPSBARmlsdGVyZWRVc2VyV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGRvIG5vdCBzdG9yZSBkYXRhIGlmIG5vIGRhdGEgaXMgYXZhaWxhYmxlCiAgICAgICAgICAgIG5leHQgREFZIGlmICFARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgIyBhZGQgZGF0YSB0byBnbG9iYWwgcmVzdWx0IHNldAogICAgICAgICAgICBwdXNoIEBSZXR1cm4sIEBEYXlXb3JraW5nVW5pdHM7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcQFJldHVybjsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBkZWNsYXJlIGV4dGVybmFsbHkgZGVmaW5lZCB2YXJpYWJsZXMgdG8gYXZvaWQgZXJyb3JzIHVuZGVyICd1c2Ugc3RyaWN0Jwp1c2UgdmFycyBxdygkU2VsZik7CgojIGdldCBoZWxwZXIgb2JqZWN0CiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgpteSAkUmFuZG9tTnVtYmVyID0gaW50IHN1YnN0ciAkSGVscGVyLT5HZXRSYW5kb21OdW1iZXIoKSwgLTUsIDU7CgojIGRhdGEgZm9yIHRoZSBuZXcgYWN0aW9uICh0YXNrKQpteSAlTmV3QWN0aW9uRGF0YSA9ICgKICAgIEFjdGlvbiAgICAgICA9PiAnVGVzdEFjdGlvbicgLiAkUmFuZG9tTnVtYmVyLAogICAgQWN0aW9uU3RhdHVzID0+IDEsCik7CgojIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0Cm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKIyBjcmVhdGUgYSBuZXcgYWN0aW9uICh0YXNrKQpteSAkSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCglTmV3QWN0aW9uRGF0YSk7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRJbnNlcnQsCiAgICAnSW5zZXJ0IHRlc3QgYWN0aW9uIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgdGhlIGFjdGlvbiBkYXRhIHRoYXQgd2FzIGluc2VydGVkIGFib3ZlCm15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIEFjdGlvbiA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259ICk7CgojIHZlcmlmeSB0aGF0IHRoZSBkYXRhIHNhdmVkIGluIHRoZSBEQiBpcyB0aGUgc2FtZSB0aGF0IHdhcyBpbnNlcnRlZAokU2VsZi0+SXMoCiAgICAkQWN0aW9uRGF0YXtBY3Rpb25TdGF0dXN9LAogICAgJE5ld0FjdGlvbkRhdGF7QWN0aW9uU3RhdHVzfSwKICAgICdDb21wYXJlIGFjdGlvbiBzdGF0dXMgc2F2ZWQgaW4gREIgd2l0aCB0aGUgaW5zZXJ0ZWQgb25lJywKKTsKCiMgbW9kaWZ5IHRoZSBhY3Rpb24gbmFtZQpteSAkVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgIEFjdGlvbklEICAgICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICBBY3Rpb24gICAgICAgPT4gJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSAuICdtb2RpZmllZCcsCiAgICBBY3Rpb25TdGF0dXMgPT4gMSwKKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgdXBkYXRlZAokU2VsZi0+VHJ1ZSgKICAgICRVcGRhdGUsCiAgICAnVXBkYXRlIHRlc3QgYWN0aW9uIHNldHRpbmdzJywKKTsKCiMgZ2V0IGFsbCBhY3Rpb25zIGRhdGEKbXkgJUFsbEFjdGlvbnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgJEFsbEFjdGlvbnN7ICRBY3Rpb25EYXRhe0lEfSB9e0FjdGlvbn0sCiAgICAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgICdDb21wYXJlIGFjdGlvbiBuYW1lIHNhdmVkIGluIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgdXBkYXRlJywKKTsKCiMgZGF0YSBmb3IgdGhlIG5ldyBwcm9qZWN0Cm15ICVOZXdQcm9qZWN0RGF0YSA9ICgKICAgIFByb2plY3QgICAgICAgICAgICA9PiAnVGVzdFByb2plY3QnIC4gJFJhbmRvbU51bWJlciwKICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnVGVzdCcsCiAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKKTsKCiMgY3JlYXRlIGEgbmV3IHByb2plY3QKbXkgJFByb2plY3RJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KCVOZXdQcm9qZWN0RGF0YSk7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRQcm9qZWN0SUQsCiAgICAnSW5zZXJ0IHRlc3QgcHJvamVjdCBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiMgZ2V0IHRoZSBhY3Rpb24gZGF0YSB0aGF0IHdhcyBpbnNlcnRlZCBhYm92ZQpteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoIElEID0+ICRQcm9qZWN0SUQgKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGRhdGEgc2F2ZWQgaW4gdGhlIERCIGlzIHRoZSBzYW1lIHRoYXQgd2FzIGluc2VydGVkCiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0fSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSwKICAgICdDb21wYXJlIHByb2plY3QgbmFtZSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwokU2VsZi0+SXMoCiAgICAkUHJvamVjdERhdGF7UHJvamVjdERlc2NyaXB0aW9ufSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0RGVzY3JpcHRpb259LAogICAgJ0NvbXBhcmUgcHJvamVjdCBkZXNjcmlwdGlvbiBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwokU2VsZi0+SXMoCiAgICAkUHJvamVjdERhdGF7UHJvamVjdFN0YXR1c30sCiAgICAkTmV3UHJvamVjdERhdGF7UHJvamVjdFN0YXR1c30sCiAgICAnQ29tcGFyZSBwcm9qZWN0IHN0YXR1cyBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwoKIyBtb2RpZnkgdGhlIHByb2plY3QgbmFtZQokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgIFByb2plY3QgICAgICAgICAgICA9PiAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0gLiAnbW9kaWZpZWQnLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCBwcm9qZWN0IHNldHRpbmdzJywKKTsKCiMgZ2V0IGFsbCBwcm9qZWN0cyBkYXRhCm15ICVBbGxQcm9qZWN0cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCBTdGF0dXMgPT4gJ3ZhbGlkJyApOwoKIyB2ZXJpZnkgdGhlIGxhc3QgbW9kaWZpY2F0aW9uCiRTZWxmLT5JcygKICAgICRBbGxQcm9qZWN0c3tQcm9qZWN0fXskUHJvamVjdElEfSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSAuICdtb2RpZmllZCcsCiAgICAnQ29tcGFyZSBwcm9qZWN0IG5hbWUgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBjcmVhdGUgbmV3IHVzZXIKbXkgJFVzZXJMb2dpbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyktPlRlc3RVc2VyQ3JlYXRlKCk7Cm15ICRVc2VySUQgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCik7CgojIG9idGFpbiB0aGUgbGFzdCByZWdpc3RlcmVkIHBlcmlvZCBvZiB0aGUgdGVzdCB1c2VyCm15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCggVXNlcklEID0+ICRVc2VySUQgKSArIDE7CgojIGNyZWF0ZSByZWdpc3RyeSBmb3IgdGhlIG5ldyB1c2VyIGluIFRBCiRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdXNlciB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGVzdCB1c2VyIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBpbnNlcnQgYW5vdGhlciBwZXJpb2QgZW50cnkgZm9yIHRoZSBzYW1lIHVzZXIKJEluc2VydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgVXNlcklEID0+ICRVc2VySUQsCiAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIgKyAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdXNlciB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGltZSBwZXJpb2QgZm9yIHRlc3QgdXNlciBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiRSYW5kb21OdW1iZXIgPSBpbnQgc3Vic3RyICRIZWxwZXItPkdldFJhbmRvbU51bWJlcigpLCAtMywgMzsKCiMgdXBkYXRlIHVzZXIgZGF0YQokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICBVc2VySUQgICAgICAgID0+ICRVc2VySUQsCiAgICBEZXNjcmlwdGlvbiAgID0+ICdUZXN0IHVzZXInIC4gJFJhbmRvbU51bWJlciwKICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgIDEgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMS0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAxLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJhbmRvbU51bWJlciwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzEwJywKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzIwJywKICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMi0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTEyLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJhbmRvbU51bWJlciArIDEwLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnNScsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcxMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHVzZXIgc2V0dGluZ3MnLAopOwoKIyBnZXQgdXNlciBzZXR0aW5ncwpteSAlU2luZ2xlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+ICRVc2VySUQgKTsKCiMgdmVyaWZ5IHRoZSBsYXN0IG1vZGlmaWNhdGlvbgokU2VsZi0+SXMoCiAgICBpbnQgJFNpbmdsZVVzZXJEYXRhezF9e1dlZWtseUhvdXJzfSwKICAgICRSYW5kb21OdW1iZXIsCiAgICAnQ29tcGFyZSB3ZWVrbHkgaG91cnMgZm9yIHBlcmlvZCAxIHNhdmVkIGluIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgdXBkYXRlJywKKTsKCiRTZWxmLT5JcygKICAgIGludCAkU2luZ2xlVXNlckRhdGF7Mn17V2Vla2x5SG91cnN9LAogICAgJFJhbmRvbU51bWJlciArIDEwLAogICAgJ0NvbXBhcmUgd2Vla2x5IGhvdXJzIGZvciBwZXJpb2QgMiBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgojIGdldCB1c2VyIGRhdGEKJVNpbmdsZVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApOwoKIyBjb21wYXJlIGRhdGEgc2F2ZWQgb24gdGhlIERCIHdpdGggdGhlIGluc2VydGVkIG9uZQokU2VsZi0+SXMoCiAgICAkU2luZ2xlVXNlckRhdGF7RGVzY3JpcHRpb259LAogICAgJ1Rlc3QgdXNlcicgLiAkUmFuZG9tTnVtYmVyLAogICAgJ0NvbXBhcmUgZGVzY3JpcHRpb24gc2F2ZWQgb24gdGhlIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgaW5zZXJ0aW9uJywKKTsKCiMgZ2V0IGFsbCB1c2VycyBkYXRhCm15ICVBbGxVc2Vyc0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgojIHZlcmlmeSB0aGF0IHRoZSB0ZXN0IHVzZXIgaXMgaW4gdGhlIGxpc3QKJFNlbGYtPlRydWUoCiAgICAkQWxsVXNlcnNEYXRheyRVc2VySUR9e0Rlc2NyaXB0aW9ufSwKICAgICdWZXJpZnkgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCB1c2VyIGluIHRoZSBsaXN0JwopOwoKIyBnZXQgYWxsIHBlcmlvZHMgb2YgZGF0YSBvZiBhbGwgdXNlcnMKbXkgJUFsbFVzZXJzUGVyaW9kRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzR2V0KCk7CgojIHZlcmlmeSB0aGUgcGVyaW9kIGRhdGEgb2YgdGhlIHRlc3QgdXNlcgpteSAkQ29ycmVjdFVzZXJEYXRhID0KICAgICgKICAgICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17MX17V2Vla2x5SG91cnN9ID09ICRSYW5kb21OdW1iZXIKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e0xlYXZlRGF5c30gPT0gMTAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e092ZXJ0aW1lfSA9PSAyMAogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17MX17VXNlclN0YXR1c30KICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e1dlZWtseUhvdXJzfSA9PSAkUmFuZG9tTnVtYmVyICsgMTAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e0xlYXZlRGF5c30gPT0gNQogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17Mn17T3ZlcnRpbWV9ID09IDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtVc2VyU3RhdHVzfQogICAgKSA/IDEgOiAwOwoKJFNlbGYtPlRydWUoCiAgICAkQ29ycmVjdFVzZXJEYXRhLAogICAgJ1ZlcmlmeSB0aGUgcGVyaW9kIGRhdGEgb2YgdGhlIHRlc3QgdXNlciBpbiB0aGUgbGlzdCcKKTsKCiMgZ2V0IGN1cnJlbnQgcGVyaW9kIG9mIHVzZXIKbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgIFllYXIgID0+ICcyMDExJywKICAgIE1vbnRoID0+ICcwMScsCiAgICBEYXkgICA9PiAnMTUnLAopOwoKIyBjaGVjayB0aGUgcGVyaW9kCiRTZWxmLT5JcygKICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e1BlcmlvZH0sCiAgICAxLAogICAgJ1ZlcmlmeSBjdXJyZW50IHBlcmlvZCcsCik7CgokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9LAogICAgJzIwMTEtMDEtMDEnLAogICAgJ1ZlcmlmeSBzdGFydCBkYXRlIG9mIGN1cnJlbnQgcGVyaW9kJywKKTsKCiRTZWxmLT5JcygKICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e0RhdGVFbmR9LAogICAgJzIwMTEtMDEtMzEnLAogICAgJ1ZlcmlmeSBlbmQgZGF0ZSBvZiBjdXJyZW50IHBlcmlvZCcsCik7CgojIGhhc2ggd2l0aCB0aGUgd29ya2luZyB1bml0cyBmb3IgSmFuLiAxNXRoLCAyMDExCm15ICVXb3JraW5nVW5pdHMgPSAoCiAgICBZZWFyICAgICAgICAgPT4gJzIwMTEnLAogICAgTW9udGggICAgICAgID0+ICcwMScsCiAgICBEYXkgICAgICAgICAgPT4gJzE1JywKICAgIExlYXZlRGF5ICAgICA9PiAwLAogICAgU2ljayAgICAgICAgID0+IDAsCiAgICBPdmVydGltZSAgICAgPT4gMCwKICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgewogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdNeSBjb21tZW50JywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICc3OjAwJywKICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxMDowMCcsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAzLjAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbkRhdGF7SUR9LAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ015IGNvbW1lbnQnLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJzEzOjAwJywKICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxNTowMCcsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAyLjAsCiAgICAgICAgfSwKICAgIF0sCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCiMgaW5zZXJ0IHdvcmtpbmcgdW5pdHMgaW4gdGhlIERCCiRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCglV29ya2luZ1VuaXRzKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIHdvcmtpbmcgdW5pdHMgd2VyZSBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIgaW50byBkYXRhYmFzZScsCik7CgojIGdldCBhbGwgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkKbXkgJVdvcmtpbmdVbml0c0NoZWNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0aGF0IEphbiAxNXRoLCAyMDExIGlzIG5vdCBpbiB0aGUgbGlzdCBvZiBkYXlzIHdpdGhvdXQgZW50cnkKJFNlbGYtPkZhbHNlKAogICAgZGVmaW5lZCAkV29ya2luZ1VuaXRzQ2hlY2t7J0luY29tcGxldGUnfXsnMjAxMSd9eycwMSd9eycxNSd9LAogICAgJ1ZlcmlmeSBjb21wbGV0aW9uIG9mIHdvcmtpbmcgdW5pdHMnCik7CgojIGdldCB3b3JraW5nIHVuaXRzIG9mIGFsbCB1c2VycwpteSAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZygKICAgIFllYXIgID0+ICcyMDExJywKICAgIE1vbnRoID0+ICcwMScsCiAgICBEYXkgICA9PiAnMTUnLAopOwoKIyB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB3b3JraW5nIHVuaXRzIGZvciB0aGUgdGVzdCB1c2VyCiRTZWxmLT5JcygKICAgICREYXRheyRVc2VySUR9e1dvcmtpbmdIb3Vyc1RvdGFsfSwKICAgIDUsCiAgICAnVmVyaWZ5IG51bWJlciBvZiB3b3JraW5nIGhvdXJzIG9mIHRoZSB0ZXN0IHVzZXInLAopOwoKIyBnZXQgcHJvamVjdHMgaW4gd2hpY2ggdGhlIHRlc3QgdXNlciBoYXMgd29ya2VkIG9uCm15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKbXkgJFRlc3RQcm9qZWN0RXhpc3RlbmNlOwoKSUQ6CmZvciBteSAkSUQgKEBMYXN0UHJvamVjdHMpIHsKICAgIG5leHQgSUQgaWYgJElEICE9ICRQcm9qZWN0SUQ7CiAgICAkVGVzdFByb2plY3RFeGlzdGVuY2UgPSAxOwp9CgojIHZlcmlmeSB0aGF0IGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCBwcm9qZWN0IGludG8gdGhlIHVzZXIncyBsaXN0CiRTZWxmLT5UcnVlKAogICAgJFRlc3RQcm9qZWN0RXhpc3RlbmNlLAogICAgJ1ZlcmlmeSB0aGF0IGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCBwcm9qZWN0IGludG8gdGhlIHVzZXJcJ3MgbGlzdCcsCik7CgojIGdldCBwcm9qZWN0IC0gYWN0aW9uIHdvcmtpbmcgaG91cnMKbXkgJVByb2plY3RBY3Rpb25Xb3JraW5nSG91cnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICBZZWFyICAgPT4gMjAxMSwKICAgIE1vbnRoICA9PiAxLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0b3RhbCByZXBvcnRlZCBob3VycyBmb3IgdGhlIHRlc3QgYWN0aW9uICh0YXNrKSBhbmQgdGVzdCBwcm9qZWN0CiRTZWxmLT5JcygKICAgICRQcm9qZWN0QWN0aW9uV29ya2luZ0hvdXJzeyRQcm9qZWN0SUR9e0FjdGlvbnN9eyAkQWN0aW9uRGF0YXtJRH0gfXtUb3RhbH0sCiAgICAnNScsCiAgICAnVmVyaWZ5IHRvdGFsIHJlcG9ydGVkIGhvdXJzIGZvciB0aGUgdGVzdCBhY3Rpb24gKHRhc2spIGFuZCB0ZXN0IHByb2plY3QnLAopOwoKIyBnZXQgcHJvamVjdCB3b3JraW5nIHVuaXRzCm15IEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0SGlzdG9yeSggUHJvamVjdElEID0+ICRQcm9qZWN0SUQgKTsKCm15ICRUb3RhbEhvdXJzOwoKIyBnZXQgc3VtIG9mIGFsbCB3b3JraW5nIHVuaXQgZm9yIHRoZSB0ZXN0IHByb2plY3QKZm9yIG15ICRQcm9qZWN0IChAUHJvamVjdEhpc3RvcnlBcnJheSkgewogICAgJFRvdGFsSG91cnMgKz0gJFByb2plY3QtPntQZXJpb2R9Owp9CgpteSAkVGVzdFByb2plY3RUb3RhbEhvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAopOwoKIyB2ZXJpZnkgdG90YWwgd29ya2luZyB1bml0cyBmb3IgdGhlIHRlc3QgcHJvamVjdAokU2VsZi0+SXMoCiAgICBpbnQgJFRvdGFsSG91cnMsCiAgICBpbnQgJFRlc3RQcm9qZWN0VG90YWxIb3VycywKICAgICdWZXJpZnkgdG90YWwgaG91cnMgb2YgdGVzdCBwcm9qZWN0JywKKTsKCiMgZGVsZXRlIHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTV0aCwgMjAxMQpteSAkRGVsZXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICBZZWFyICAgPT4gJzIwMTEnLAogICAgTW9udGggID0+ICcxJywKICAgIERheSAgICA9PiAnMTUnLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB3b3JraW5nIHVuaXRzIHdlcmUgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQKJFNlbGYtPlRydWUoCiAgICAkRGVsZXRlLAogICAgJ0RlbGV0ZSB3b3JraW5nIHVuaXRzIGZvciB0ZXN0JywKKTsKCiMgZ2V0IHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTV0aCwgMjAxMQpteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgWWVhciAgID0+ICcyMDExJywKICAgIE1vbnRoICA9PiAnMScsCiAgICBEYXkgICAgPT4gJzE1JywKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgbm9uZXhpc3RlbmNlIG9mIHRoZSBkZWxldGVkIHdvcmtpbmcgdW5pdHMKJFNlbGYtPklzKAogICAgJFdvcmtpbmdVbml0c0RhdGF7VG90YWx9LAogICAgJzAnLAogICAgJ1ZlcmlmeSBub25leGlzdGVuY2Ugb2YgdGhlIGRlbGV0ZWQgd29ya2luZyB1bml0cycsCik7CgojIHNldCB0byBpbnZhbGlkIGFsbCByZWdpc3RyaWVzIHVzZWQgZm9yIHRoZSB0ZXN0cwokVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgQWN0aW9uSUQgICAgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgIEFjdGlvbiAgICAgICA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgIEFjdGlvblN0YXR1cyA9PiAwLAopOwoKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgIFByb2plY3QgICAgICAgICAgICA9PiAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0gLiAnbW9kaWZpZWQnLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAwLAopOwoKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICBVc2VySUQgICAgICAgID0+ICRVc2VySUQsCiAgICBEZXNjcmlwdGlvbiAgID0+ICdUZXN0IHVzZXInLAogICAgQ3JlYXRlUHJvamVjdCA9PiAwLAogICAgU2hvd092ZXJ0aW1lICA9PiAwLAogICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDExLTAxLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTEtMDEtMzEnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnNTAnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMTAnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMjAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgMiA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDExLTAyLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTEtMDItMjgnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzAnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnNScsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcxMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDAsCiAgICAgICAgfSwKICAgIH0sCik7CgojIGNsZWFudXAgaXMgZG9uZSBieSBSZXN0b3JlRGF0YWJhc2UuCgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgZGlzYWJsZSBNYXNzRW50cnkgZmVhdHVyZXMKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlcicsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIG9iamVjdAogICAgICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBzeXN0ZW0gdGVzdCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyQ3VycmVudC0kTW9udGhDdXJyZW50LSREYXlDdXJyZW50IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIpOwoKICAgICAgICAjIGFkZCBhZGRpdGlvbmFsIHJvdwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQGlkPSdNb3JlSW5wdXRGaWVsZHMnXVtcQHR5cGU9J2J1dHRvbiddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayB0aW1lIGFjY291bnRpbmcgZWRpdCBmaWVsZCBJRHMsIGZpcnN0IGFuZCBhZGRlZCByb3cKICAgICAgICBmb3IgbXkgJFJvdyAoIDEsIDkgKSB7CiAgICAgICAgICAgIGZvciBteSAkRWRpdEZpZWxkSUQgKAogICAgICAgICAgICAgICAgcXcoUHJvamVjdElEIEFjdGlvbklEIFJlbWFyayBTdGFydFRpbWUgRW5kVGltZSBQZXJpb2QpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJEVkaXRGaWVsZElEJFJvdyIsICdjc3MnICk7CiAgICAgICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciBteSAkRWRpdFJlc3RJRCAoCiAgICAgICAgICAgIHF3KE1vbnRoIERheSBZZWFyIERheURhdGVwaWNrZXJJY29uIE5hdmlnYXRpb25TZWxlY3QgSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRFZGl0UmVzdElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBlZGl0IHRpbWUgYWNjb3VudGluZyBmb3IgdGVzdCBjcmVhdGVkIHVzZXIKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNQcm9qZWN0SUQxJykudmFsKCckUHJvamVjdElEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0FjdGlvbklEMScpLnZhbCgnJEFjdGlvbklEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSZW1hcmsxIiwgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSB0ZXN0IHJlbWFyaycpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N0YXJ0VGltZTEiLCAnY3NzJyApLT5zZW5kX2tleXMoJzEwOjAwJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRW5kVGltZTEiLCAgICdjc3MnICktPnNlbmRfa2V5cyggJzE2OjAwJywgIlx0IiApOwoKICAgICAgICAjIHN1Ym1pdCB3b3JrIGFjY291bnRpbmcgZWRpdCB0aW1lIHJlY29yZAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCBwZXJpb2QgY2FsY3VsYXRlIGNvcnJlY3QgdGltZQogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUGVyaW9kMSIsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAnNi4wMCcsCiAgICAgICAgICAgICJQZXJpb2QgdGltZSBjb3JyZWN0bHkgY2FsY3VsYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgc3VibWl0IG1lc3NhZ2UKICAgICAgICBteSAkU3VibWl0TWVzc2FnZSA9ICdTdWNjZXNzZnVsIGluc2VydCEnOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFN1Ym1pdE1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJFN1Ym1pdE1lc3NhZ2UgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0ZXN0IHRpbWUKICAgICAgICBteSAoICRTZWNDdXJyZW50LCAkTWluQ3VycmVudCwgJEhvdXJDdXJyZW50LCAkRGF5Q3VycmVudCwgJE1vbnRoQ3VycmVudCwgJFllYXJDdXJyZW50ICkKICAgICAgICAgICAgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgZW5kIHRpbWUgKyAxIGRheSBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNFbmQsICRNaW5FbmQsICRIb3VyRW5kLCAkRGF5RW5kLCAkTW9udGhFbmQsICRZZWFyRW5kICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7Iik7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB2ZXJpZnkgQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IHZhbHVlcwogICAgICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwogICAgICAgIG15IEBUZXN0ID0gKAogICAgICAgICAgICAkUHJvamVjdFRpdGxlLCAkQWN0aW9uVGl0bGUsICdUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3JywgJ09uIG92ZXJ0aW1lIGxlYXZlJywgJ092ZXJ0aW1lIChIb3VycyknLAogICAgICAgICAgICAnVmFjYXRpb24gKERheXMpJywgJ1NpY2sgTGVhdmUgKERheXMpJywgQFdlZWtkYXlBcnJheQogICAgICAgICk7CgogICAgICAgIGZvciBteSAkQ2hlY2sgKEBUZXN0KSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGVjayApID4gLTEsCiAgICAgICAgICAgICAgICAiJENoZWNrIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBzZXQgTWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIFN5c0NvbmZpZyBvbiA1MCBkYXlzIGZvciB0ZXN0IHB1cnBvc2UKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IDUwLAogICAgICAgICk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIG9iamVjdAogICAgICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAgICAgIyBnZXQgdGVzdCBzdGFydCB0aW1lIC0gNDAgZGF5cyBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNTdGFydCwgJE1pblN0YXJ0LCAkSG91clN0YXJ0LCAkRGF5U3RhcnQsICRNb250aFN0YXJ0LCAkWWVhclN0YXJ0ICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgLSA2MCAqIDYwICogMjQgKiA0MCwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIHRlc3QgdGltZSArIDEgc2Vjb25kIHRoZW4gc3RhcnQgdGltZQogICAgICAgIG15ICggJFNlY0N1cnJlbnQsICRNaW5DdXJyZW50LCAkSG91ckN1cnJlbnQsICREYXlDdXJyZW50LCAkTW9udGhDdXJyZW50LCAkWWVhckN1cnJlbnQgKQogICAgICAgICAgICA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwICsgMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGVzdCBlbmQgdGltZSArIDEgZGF5IG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY0VuZCwgJE1pbkVuZCwgJEhvdXJFbmQsICREYXlFbmQsICRNb250aEVuZCwgJFllYXJFbmQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSArIDYwICogNjAgKiAyNCwKICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIik7CgogICAgICAgICMgc2VsZWN0IG1vbnRoIGFuZCB5ZWFyIHRoYXQgYXJlIHVzZWQgZm9yIHRlc3RpbmcKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNNb250aCBvcHRpb25bdmFsdWU9JyRNb250aFN0YXJ0J10iLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjWWVhciBvcHRpb25bdmFsdWU9JyRZZWFyU3RhcnQnXSIsICAgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hdmlnYXRpb25TZWxlY3QiLCAgICAgICAgICAgICAgICAgICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBwYWdlIGxheW91dAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyBsaW5rIHRvIHRlc3QgdXNlciByZXBvcnRzCiAgICAgICAgbXkgJFVzZXJSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkVGVzdFVzZXJMb2dpbiAkVGVzdFVzZXJMb2dpbiIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgbGluayB0byB0ZXN0IHVzZXIgcHJvamVjdCByZXBvcnRzCiAgICAgICAgbXkgJFByb2plY3RSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkUHJvamVjdFRpdGxlIiwgJ2xpbmtfdGV4dCcgKTsKICAgICAgICAkUHJvamVjdFJlcG9ydEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkUHJvamVjdFJlcG9ydEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwoKICAgICAgICAjIHNlbGVjdCB0ZXN0IGNyZWF0ZWQgcHJvamVjdAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAkUHJvamVjdFRpdGxlLCAnbGlua190ZXh0JyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgdGVzdCBjcmVhdGVkIGFjdGlvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEFjdGlvblRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRBY3Rpb25UaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbm90aGVyIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlciA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKCk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlciwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZyIpOwoKICAgICAgICAjIGNoZWNrIHRpbWUgYWNjb3VudCBzZXR0aW5nIHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRTZXR0aW5nUGFnZUlEICgKICAgICAgICAgICAgcXcoTmV3VXNlcklEIEZpbHRlclByb2plY3RzIEZpbHRlclRhc2tzIEZpbHRlclVzZXJzIENvcmVfVUlfQXV0b2dlbmVyYXRlZElEXzAKICAgICAgICAgICAgQ29yZV9VSV9BdXRvZ2VuZXJhdGVkSURfMSBDb3JlX1VJX0F1dG9nZW5lcmF0ZWRJRF8yKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRTZXR0aW5nUGFnZUlEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBidXR0b25zCiAgICAgICAgZm9yIG15ICRTZXR0aW5nQnV0dG9uICggJ0FkZCcsICdBZGQgdGFzaycsICdOZXcgdXNlcicgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nJFNldHRpbmdCdXR0b24nXVtcQHR5cGU9J3N1Ym1pdCddIik7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY2xpY2sgb24gJ0FkZCBwcm9qZWN0JwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBwcm9qZWN0IHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRQcm9qZWN0UGFnZUlEIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbiBQcm9qZWN0U3RhdHVzKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJFByb2plY3RQYWdlSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlICAgICAgID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3QiLCAgICAgICAgICAgICdjc3MnICktPnNlbmRfa2V5cygkUHJvamVjdFRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNQcm9qZWN0RGVzY3JpcHRpb24iLCAnY3NzJyApLT5zZW5kX2tleXMoJFByb2plY3REZXNjcmlwdGlvbik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIHZlcmlmeSBjcmVhdGVkIHRlc3QgcHJvamVjdAogICAgICAgIGZvciBteSAkUHJvamVjdFZlcmlmeSAoICRQcm9qZWN0VGl0bGUsICRQcm9qZWN0RGVzY3JpcHRpb24gKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRQcm9qZWN0VmVyaWZ5ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkUHJvamVjdFZlcmlmeSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNsaWNrIG9uICdBZGQgdGFzaycKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkIHRhc2snXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayB0YXNrIHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRUYXNrUGFnZUlEIChxdyhUYXNrIFRhc2tTdGF0dXMpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkVGFza1BhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHRlc3QgdGFzawogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdUYXNrICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Rhc2siLCAnY3NzJyApLT5zZW5kX2tleXMoJEFjdGlvblRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgdmVyaWZ5IGNyZWF0ZWQgdGVzdCB0YXNrCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQWN0aW9uVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEFjdGlvblRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0ZXN0IHVzZXIgdG8gdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNOZXdVc2VySUQnKS52YWwoJyRUZXN0VXNlcklEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nTmV3IHVzZXInXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBlZGl0IHVzZXIgcGFnZQogICAgICAgIGZvciBteSAkRWRpdFVzZXJQYWdlSUQgKAogICAgICAgICAgICBxdyhEZXNjcmlwdGlvbiBTaG93T3ZlcnRpbWUgQ3JlYXRlUHJvamVjdCBDYWxlbmRhciBEYXRlU3RhcnQtMSBEYXRlRW5kLTEgTGVhdmVEYXlzLTEKICAgICAgICAgICAgV2Vla2x5SG91cnMtMSBPdmVydGltZS0xIFBlcmlvZFN0YXR1cy0xKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRFZGl0VXNlclBhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY2xpY2sgJ0FkZCB0aW1lIHBlcmlvZCcKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkIHRpbWUgcGVyaW9kJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgZm9yIG5ldyBhZGRlZCB0aW1lIHBlcmlvZCBmaWVsZHMKICAgICAgICBmb3IgbXkgJE5ld1RpbWVQZXJpb2RJRCAocXcoRGF0ZVN0YXJ0LTIgRGF0ZUVuZC0yIExlYXZlRGF5cy0yIFdlZWtseUhvdXJzLTIgT3ZlcnRpbWUtMiBQZXJpb2RTdGF0dXMtMikpCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyROZXdUaW1lUGVyaW9kSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGVkaXQgdXNlciBzZXR0aW5nCiAgICAgICAgbXkgJFVzZXJEZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHVzZXIgc2V0dGluZyc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAgICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAgICdjc3MnICktPnNlbmRfa2V5cygkVXNlckRlc2NyaXB0aW9uKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTaG93T3ZlcnRpbWUiLCAgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NyZWF0ZVByb2plY3QiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIHZlcmlmeSB0ZXN0IHVzZXIgc2V0dGluZwogICAgICAgIG15ICRTZXR0aW5nVXNlciA9ICIkVGVzdFVzZXIgJFRlc3RVc2VyICgkVGVzdFVzZXIpIjsKICAgICAgICBmb3IgbXkgJFNldHRpbmdVc2VyVmVyaWZ5ICggJFNldHRpbmdVc2VyLCAkVXNlckRlc2NyaXB0aW9uICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkU2V0dGluZ1VzZXJWZXJpZnkgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRTZXR0aW5nVXNlclZlcmlmeSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBnZXQgbmVlZGVkIG9iamVjdAogICAgICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICAgICAjIHNldCBNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMgU3lzQ29uZmlnIG9uIDUwIGRheXMgZm9yIHRlc3QgcHVycG9zZQogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gNTAsCiAgICAgICAgKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCB0ZXN0IHN0YXJ0IHRpbWUgLSA0MCBkYXlzIG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY1N0YXJ0LCAkTWluU3RhcnQsICRIb3VyU3RhcnQsICREYXlTdGFydCwgJE1vbnRoU3RhcnQsICRZZWFyU3RhcnQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgdGVzdCB0aW1lICsgMSBzZWNvbmQgdGhlbiBzdGFydCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAgKyAxLAogICAgICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZXN0IGVuZCB0aW1lICsgMSBkYXkgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjRW5kLCAkTWluRW5kLCAkSG91ckVuZCwgJERheUVuZCwgJE1vbnRoRW5kLCAkWWVhckVuZCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcgb2YgdGVzdCBjcmVhdGVkIHdvcmsgdW5pdCBkYXkKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7WWVhcj0kWWVhckN1cnJlbnQ7TW9udGg9JE1vbnRoQ3VycmVudDtEYXk9JERheUN1cnJlbnQ7VXNlcklEPSRUZXN0VXNlcklEIgogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyBjaGVjayB0aW1lIGFjY291bnRpbmcgdmlldyBwYWdlIElEcwogICAgICAgIGZvciBteSAkSUQgKHF3KE1vbnRoIERheSBZZWFyIERheURhdGVwaWNrZXJJY29uIE5hdmlnYXRpb25TZWxlY3QgTGVhdmVEYXkgU2ljayBPdmVydGltZSkpCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9yIHRlc3QgcHJvamVjdCBhbmQgYWN0aW9uCiAgICAgICAgZm9yIG15ICRDaGVjayAoICRQcm9qZWN0VGl0bGUsICRBY3Rpb25UaXRsZSApIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENoZWNrICkgPiAtMSwKICAgICAgICAgICAgICAgICIkQ2hlY2sgaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCB0ZXN0IHN0YXJ0IHRpbWUgLSA0MCBkYXlzIG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY1N0YXJ0LCAkTWluU3RhcnQsICRIb3VyU3RhcnQsICREYXlTdGFydCwgJE1vbnRoU3RhcnQsICRZZWFyU3RhcnQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgdGVzdCB0aW1lICsgMSBzZWNvbmQgdGhlbiBzdGFydCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAgKyAxLAogICAgICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZXN0IGVuZCB0aW1lICsgMSBkYXkgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjRW5kLCAkTWluRW5kLCAkSG91ckVuZCwgJERheUVuZCwgJE1vbnRoRW5kLCAkWWVhckVuZCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyBub3RpZmljYXRpb24gbWVzc2FnZQogICAgICAgIG15ICROb3RpZmljYXRpb25NZXNzYWdlID0gJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISc7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkTm90aWZpY2F0aW9uTWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkTm90aWZpY2F0aW9uTWVzc2FnZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyB1c2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCB0ZXN0IHN0YXJ0IHRpbWUgLSA0MCBkYXlzIG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY1N0YXJ0LCAkTWluU3RhcnQsICRIb3VyU3RhcnQsICREYXlTdGFydCwgJE1vbnRoU3RhcnQsICRZZWFyU3RhcnQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgdGVzdCB0aW1lICsgMSBzZWNvbmQgdGhlbiBzdGFydCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAgKyAxLAogICAgICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZXN0IGVuZCB0aW1lICsgMSBkYXkgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjRW5kLCAkTWluRW5kLCAkSG91ckVuZCwgJERheUVuZCwgJE1vbnRoRW5kLCAkWWVhckVuZCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyB0b29sIGJhciBmb3IgaW5jb21wbGV0ZSBkYXlzCiAgICAgICAgbXkgJFRvb2xCYXJJbmNvbXBsZXRlRGF5cyA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEB0aXRsZSwgXCdJbmNvbXBsZXRlIHdvcmtpbmcgZGF5czonKV0iKTsKICAgICAgICAkVG9vbEJhckluY29tcGxldGVEYXlzLT5pc19lbmFibGVkKCk7CiAgICAgICAgJFRvb2xCYXJJbmNvbXBsZXRlRGF5cy0+aXNfZGlzcGxheWVkKCk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBDb25maXJtYXRpb25EaWFsb2cuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICogQG5hbWUgRGlhbG9nRGF0YQogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQG1lbWJlciB7QXJyYXl9CiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyB2YXJpYWJsZSBzdG9yZXMgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgcGFzc2VkIGZyb20gdGhlIERUTCBhbmQgY29udGFpbiBhbGwgdGhlIGRhdGEgdGhhdCB0aGUgZGlhbG9nIG5lZWRzLgogICAgICovCiAgICB2YXIgRGlhbG9nRGF0YSA9IFtdOwoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIFNob3dXYWl0aW5nRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBQb3NpdGlvblRvcCAtIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBkaWFsb2cuCiAgICAgKiBAZGVzY3JpcHRpb24gU2hvd3Mgd2FpdGluZyBkaWFsb2cgdW50aWwgc2VhcmNoIHNjcmVlbiBpcyByZWFkeS4KICAgICAqLwogICAgZnVuY3Rpb24gU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApewogICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCc8ZGl2IGNsYXNzPSJTcGFjaW5nIENlbnRlciI+PHNwYW4gY2xhc3M9IkFKQVhMb2FkZXIiIHRpdGxlPSInICsgQ29yZS5Db25maWcuR2V0KCdMb2FkaW5nTXNnJykgKyAnIj48L3NwYW4+PC9kaXY+JywgJycsIFBvc2l0aW9uVG9wLCAnQ2VudGVyJywgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBTaG93Q29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBmYWxzZS4KICAgICAqIEBwYXJhbSB7RXZlbnRPYmplY3R9IEV2ZW50IC0gZXZlbnQgb2JqZWN0IG9mIHRoZSBjbGlja2VkIGVsZW1lbnQuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBzaG93cyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8gb3IgYSBtZXNzYWdlIGRpYWxvZyB3aXRoIG9uZSBidXR0b246IE9rLgogICAgICovCiAgICBUYXJnZXROUy5TaG93Q29uZmlybWF0aW9uRGlhbG9nID0gZnVuY3Rpb24gKEV2ZW50KSB7CgogICAgICAgIHZhciBMb2NhbERpYWxvZ0RhdGEsCiAgICAgICAgICAgIFBvc2l0aW9uVG9wLAogICAgICAgICAgICBEYXRhLAogICAgICAgICAgICBCdXR0b25zOwoKICAgICAgICAvLyBnZXQgZ2xvYmFsIHNhdmVkIERpYWxvZ0RhdGEgZm9yIHRoaXMgZnVuY3Rpb24KICAgICAgICBMb2NhbERpYWxvZ0RhdGEgPSBEaWFsb2dEYXRhWyQoRXZlbnQudGFyZ2V0KS5hdHRyKCdpZCcpXTsKCiAgICAgICAgLy8gZGVmaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nCiAgICAgICAgUG9zaXRpb25Ub3AgPSAkKHdpbmRvdykuaGVpZ2h0KCkgKiAwLjM7CgogICAgICAgIC8vIHNob3cgd2FpdGluZyBkaWFsb2cKICAgICAgICBTaG93V2FpdGluZ0RpYWxvZyhQb3NpdGlvblRvcCk7CgogICAgICAgIC8vIGFqYXggY2FsbCB0byB0aGUgbW9kdWxlIHRoYXQgZXhlY3V0ZXMgdGhlIGFjdGlvbiB3aGVuIHByZXNzaW5nIHRoZSBjb25maXJtYXRpb24gYnV0dG9uCiAgICAgICAgRGF0YSA9IExvY2FsRGlhbG9nRGF0YS5EaWFsb2dDb250ZW50UXVlcnlTdHJpbmc7CiAgICAgICAgQ29yZS5BSkFYLkZ1bmN0aW9uQ2FsbChDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJyksIERhdGEsIGZ1bmN0aW9uIChSZXNwb25zZSkgewoKICAgICAgICAgICAgLy8gJ0NvbmZpcm1hdGlvbicgb3BlbnMgYSBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8KICAgICAgICAgICAgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdDb25maXJtYXRpb24nKSB7CgogICAgICAgICAgICAgICAgLy8gZGVmaW5lIHllcyBhbmQgbm8gYnV0dG9ucwogICAgICAgICAgICAgICAgQnV0dG9ucyA9IFt7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ZZXMsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKCiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSAnWWVzJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbigpewoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG1vZHVsZSB0aGF0IGRvZXMgdGhlIGNvbmZpcm1lZCBhY3Rpb24gYWZ0ZXIgcHJlc3NpbmcgdGhlIFllcyBidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArIExvY2FsRGlhbG9nRGF0YS5Db25maXJtZWRBY3Rpb25RdWVyeVN0cmluZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ObywKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gJ01lc3NhZ2UnIG9wZW5zIGEgZGlhbG9nIHdpdGggMSBidXR0b246IE9rCiAgICAgICAgICAgIGVsc2UgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdNZXNzYWdlJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBPayBidXR0b24KICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuT2ssCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gc2hvdyB0aGUgY29uZmlybWF0aW9uIGRpYWxvZyB0byBjb25maXJtIHRoZSBhY3Rpb24KICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coUmVzcG9uc2UuSFRNTCwgTG9jYWxEaWFsb2dEYXRhLkRpYWxvZ1RpdGxlLCBQb3NpdGlvblRvcCwgIkNlbnRlciIsIHRydWUsIEJ1dHRvbnMpOwogICAgICAgIH0sICdqc29uJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIEJpbmRDb25maXJtYXRpb25EaWFsb2cKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IERhdGEgLSBEaWFsb2dEYXRhLgogICAgICogQGRlc2NyaXB0aW9uICBCaW5kcyBjb25mb3JtYXRpb24gZGlhbG9nIHRvIGFuIGVsZW1lbnQKICAgICAqLwogICAgVGFyZ2V0TlMuQmluZENvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uIChEYXRhKSB7CiAgICAgICAgRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0gPSBEYXRhOwoKICAgICAgICAvLyBiaW5kaW5nIGEgY2xpY2sgZXZlbnQgdG8gdGhlIGRlZmluZWQgZWxlbWVudAogICAgICAgICQoRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0uRWxlbWVudFNlbGVjdG9yKS5iaW5kKCdjbGljaycsIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5TaG93Q29uZmlybWF0aW9uRGlhbG9nKTsKICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBkYXRlcGlja2VyIGZ1bmN0aW9uIGZvciBUQS4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgdmFyIFZhY2F0aW9uRGF5cywKICAgICAgICBWYWNhdGlvbkRheXNPbmVUaW1lLAogICAgICAgIExvY2FsaXphdGlvbkRhdGEsCiAgICAgICAgRGF0ZXBpY2tlckNvdW50ID0gMDsKCiAgICBpZiAoIUNvcmUuRGVidWcuQ2hlY2tEZXBlbmRlbmN5KCdDb3JlLlVJLkRhdGVwaWNrZXInLCAnJChbXSkuZGF0ZXBpY2tlcicsICdqUXVlcnkgVUkgZGF0ZXBpY2tlcicpKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIENoZWNrRGF0ZQogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHJldHVybnMge09iamVjdH0gLSBhcnJheSB3aXRoIGRhdGUgZGF0YQogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9IERhdGVPYmplY3QgLSBvYmplY3QgdGhhdCB3aWxsIGJlIGNoZWNrZWQKICAgICAqIEBkZXNjcmlwdGlvbiBSZXZpZXcgaWYgYSBkYXRlIG9iamVjdCBoYXZlIGNvcnJlY3QgdmFsdWVzCiAgICAgKiAgICAgIElmIG5vIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgY2xvc2UgaXMgZ2l2ZW4gKHZpYSB0aGUgQnV0dG9uIGRlZmluaXRpb24pLAogICAgICogICAgICB0aGUgZGlhbG9nIGlzIGp1c3QgY2xvc2VkLiBPdGhlcndpc2UgdGhlIGRlZmluZWQgQ2xvc2UgYnV0dG9uIGlzIHRyaWdnZXJlZCwKICAgICAqICAgICAgd2hpY2ggaW52b2tlcyB0aGUgY2FsbGJhY2sgYW5kIHRoZSBjbG9zaW5nIG9mIHRoZSBkaWFsb2cuCiAgICAgKi8KICAgIGZ1bmN0aW9uIENoZWNrRGF0ZShEYXRlT2JqZWN0KSB7CiAgICAgICAgdmFyIERheURlc2NyaXB0aW9uID0gJycsCiAgICAgICAgICAgIERheUNsYXNzID0gJyc7CgogICAgICAgIC8vIEdldCBkZWZpbmVkIGRheXMgZnJvbSBDb25maWcsIGlmIG5vdCBkb25lIGFscmVhZHkKICAgICAgICBpZiAodHlwZW9mIFZhY2F0aW9uRGF5cyA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgVmFjYXRpb25EYXlzID0gQ29yZS5Db25maWcuR2V0KCdEYXRlcGlja2VyLlZhY2F0aW9uRGF5cycpLlRpbWVWYWNhdGlvbkRheXM7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgVmFjYXRpb25EYXlzT25lVGltZSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgVmFjYXRpb25EYXlzT25lVGltZSA9IENvcmUuQ29uZmlnLkdldCgnRGF0ZXBpY2tlci5WYWNhdGlvbkRheXMnKS5UaW1lVmFjYXRpb25EYXlzT25lVGltZTsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGlmIGRhdGUgaXMgb25lIG9mIHRoZSB2YWNhdGlvbiBkYXlzCiAgICAgICAgaWYgKHR5cGVvZiBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBEYXlEZXNjcmlwdGlvbiArPSBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldOwogICAgICAgICAgICBEYXlDbGFzcyA9ICdIaWdobGlnaHQgJzsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGlmIGRhdGUgaXMgb25lIG9mIHRoZSBvbmUgdGltZSB2YWNhdGlvbiBkYXlzCiAgICAgICAgaWYgKHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBEYXlEZXNjcmlwdGlvbiArPSBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldOwogICAgICAgICAgICBEYXlDbGFzcyA9ICdIaWdobGlnaHQgJzsKICAgICAgICB9CgogICAgICAgIGlmIChEYXlDbGFzcy5sZW5ndGgpIHsKICAgICAgICAgICAgcmV0dXJuIFt0cnVlLCBEYXlDbGFzcywgRGF5RGVzY3JpcHRpb25dOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIFt0cnVlLCAnJ107CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9ICRFbGVtZW50IFRoZSBqUXVlcnkgb2JqZWN0KHMpIG9mIGEgdGV4dCBpbnB1dCBmaWVsZCB3aGljaCBzaG91bGQgZ2V0IGEgZGF0ZXBpY2tlci4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBEYXRlcGlja2VyT3B0aW9ucyBPYmplY3Qgd2l0aCB0d28gcG9zc2libGUga2V5czoKICAgICAqICAgICAgICAgICAgICAgICAgICAgIERhdGVJbkZ1dHVyZTogdHJ1ZXxmYWxzZSwKICAgICAqICAgICAgICAgICAgICAgICAgICAgIFdlZWtEYXlTdGFydDogMC03IChzdW5kYXkgLSBzYXR1cmRheSkKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBkYXRlcGlja2VyIG9uIHNpbmdsZSBlbGVtZW50cyBmb3IgVEEuCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IHlldCBhdmFpbGFibGUgaW4gdGhlIE9UUlMgQ29yZS4KICAgICAqICAgICAgSWYgaXQgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBPVFJTIENvcmUgd2UgY291bGQgcmVtb3ZlIHRoaXMgZmlsZSBoZXJlLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCRFbGVtZW50LCBEYXRlcGlja2VyT3B0aW9ucykgewogICAgICAgIHZhciAkRGF0ZXBpY2tlckVsZW1lbnQsCiAgICAgICAgICAgIE9wdGlvbnM7CgogICAgICAgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgbmVlZGVkCiAgICAgICAgLy8gZnVuY3Rpb24gTGVhZGluZ1plcm8oTnVtYmVyKSB7CiAgICAgICAgLy8gICAgIGlmIChOdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IDEpIHsKICAgICAgICAvLyAgICAgICAgIHJldHVybiAnMCcgKyBOdW1iZXI7CiAgICAgICAgLy8gICAgIH0KICAgICAgICAvLyAgICAgZWxzZSB7CiAgICAgICAgLy8gICAgICAgICByZXR1cm4gTnVtYmVyOwogICAgICAgIC8vICAgICB9CiAgICAgICAgLy8gfQoKICAgICAgICBpZiAodHlwZW9mIExvY2FsaXphdGlvbkRhdGEgPT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIExvY2FsaXphdGlvbkRhdGEgPSBDb3JlLkNvbmZpZy5HZXQoJ0RhdGVwaWNrZXIuTG9jYWxpemF0aW9uJyk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgTG9jYWxpemF0aW9uRGF0YSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb3JlLkV4Y2VwdGlvbi5BcHBsaWNhdGlvbkVycm9yKCdEYXRlcGlja2VyIGxvY2FsaXphdGlvbiBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZCEnLCAnSW50ZXJuYWxFcnJvcicpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBEZWZpbmUgb3B0aW9ucyBoYXNoCiAgICAgICAgT3B0aW9ucyA9IHsKICAgICAgICAgICAgICAgIGJlZm9yZVNob3dEYXk6IGZ1bmN0aW9uIChEYXRlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENoZWNrRGF0ZShEYXRlT2JqZWN0KTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBzaG93T246ICdmb2N1cycsCiAgICAgICAgICAgICAgICBwcmV2VGV4dDogTG9jYWxpemF0aW9uRGF0YS5QcmV2VGV4dCwKICAgICAgICAgICAgICAgIG5leHRUZXh0OiBMb2NhbGl6YXRpb25EYXRhLk5leHRUZXh0LAogICAgICAgICAgICAgICAgc2hvd01vbnRoQWZ0ZXJZZWFyOiAwLAogICAgICAgICAgICAgICAgZGF0ZUZvcm1hdDogJ3l5LW1tLWRkJywKICAgICAgICAgICAgICAgIG1vbnRoTmFtZXM6IExvY2FsaXphdGlvbkRhdGEuTW9udGhOYW1lcywKICAgICAgICAgICAgICAgIG1vbnRoTmFtZXNTaG9ydDogTG9jYWxpemF0aW9uRGF0YS5Nb250aE5hbWVzU2hvcnQsCiAgICAgICAgICAgICAgICBkYXlOYW1lczogTG9jYWxpemF0aW9uRGF0YS5EYXlOYW1lcywKICAgICAgICAgICAgICAgIGRheU5hbWVzU2hvcnQ6IExvY2FsaXphdGlvbkRhdGEuRGF5TmFtZXNTaG9ydCwKICAgICAgICAgICAgICAgIGRheU5hbWVzTWluOiBMb2NhbGl6YXRpb25EYXRhLkRheU5hbWVzTWluLAogICAgICAgICAgICAgICAgaXNSVEw6IExvY2FsaXphdGlvbkRhdGEuSXNSVEwKICAgICAgICB9OwoKICAgICAgICBPcHRpb25zLmJlZm9yZVNob3cgPSBmdW5jdGlvbiAoSW5wdXQpIHsKICAgICAgICAgICAgdmFyIFZhbHVlID0gJChJbnB1dCkucHJldkFsbCgnaW5wdXQ6dGV4dCcpLnZhbCgpOwogICAgICAgICAgICAkKElucHV0KS52YWwoJycpOwogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZGVmYXVsdERhdGU6IG5ldyBEYXRlKFZhbHVlKQogICAgICAgICAgICB9OwogICAgICAgIH07CgogICAgICAgIE9wdGlvbnMub25TZWxlY3QgPSBmdW5jdGlvbiAoRGF0ZVRleHQpIHsKICAgICAgICAgICAgJCh0aGlzKS5wcmV2QWxsKCdpbnB1dDp0ZXh0JykudmFsKERhdGVUZXh0KTsKICAgICAgICB9OwoKICAgICAgICBpZiAoaXNKUXVlcnlPYmplY3QoJEVsZW1lbnQpKSB7CiAgICAgICAgICAgICRFbGVtZW50LmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyICRTaW5nbGVFbGVtZW50ID0gJCh0aGlzKTsKICAgICAgICAgICAgICAgIGlmICgkU2luZ2xlRWxlbWVudC5pcygnaW5wdXQ6dGV4dCcpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gSW5jcmVtZW50IG51bWJlciBvZiBpbml0aWFsaXplZCBkYXRlcGlja2VycyBvbiB0aGlzIHNpdGUKICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyQ291bnQrKzsKCiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50ID0gJCgnPGlucHV0PicpLmF0dHIoJ3R5cGUnLCAnaGlkZGVuJykuYXR0cignaWQnLCAnRGF0ZXBpY2tlcicgKyBEYXRlcGlja2VyQ291bnQpOwogICAgICAgICAgICAgICAgICAgICRTaW5nbGVFbGVtZW50LmFmdGVyKCREYXRlcGlja2VyRWxlbWVudCk7CgogICAgICAgICAgICAgICAgICAgIE9wdGlvbnMuZmlyc3REYXkgPSBEYXRlcGlja2VyT3B0aW9ucy5XZWVrRGF5U3RhcnQ7CiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50LmRhdGVwaWNrZXIoT3B0aW9ucyk7CgogICAgICAgICAgICAgICAgICAgIC8vIGFkZCBkYXRlcGlja2VyIGljb24gYW5kIGNsaWNrIGV2ZW50CiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50LmFmdGVyKCc8YSBocmVmPSIjIiBjbGFzcz0iRGF0ZXBpY2tlckljb24gRGF0ZXBpY2tlck51bWJlcicgKyBEYXRlcGlja2VyQ291bnQgKyAnIiB0aXRsZT0iJyArIExvY2FsaXphdGlvbkRhdGEuSWNvblRleHQgKyAnIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FsZW5kYXIiPjwvaT48L3NwYW4+PC9hPicpOwogICAgICAgICAgICAgICAgICAgICREYXRlcGlja2VyRWxlbWVudC5uZXh0KCdhLkRhdGVwaWNrZXJJY29uJykuY2xpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQ2xhc3NlcyA9ICQodGhpcykuYXR0cignY2xhc3MnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVwaWNrZXJOdW1iZXIgPSBDbGFzc2VzLnJlcGxhY2UoL14uKkRhdGVwaWNrZXJOdW1iZXIoWzAtOV0rKS4qL2csICIkMSIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0RhdGVwaWNrZXInICsgRGF0ZXBpY2tlck51bWJlcikuZGF0ZXBpY2tlcignc2hvdycpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBzaG93IHRoZSBkYXRlcGlja2VyIGNvbnRhaW5lciBkaXYuCiAgICAgICAgICAgICAgICAgICAgJCgnI3VpLWRhdGVwaWNrZXItZGl2JykuaGlkZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKfShUaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBlZGl0IHNjcmVlbi4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5BY3Rpb25MaXN0ID0gIiI7CiAgICBUYXJnZXROUy5BY3Rpb25MaXN0Q29uc3RyYWludHMgPSAiIjsKICAgIC8vIEFkZHMgb3B0aW9uIHRvIGEgc2VsZWN0aW9uCgogICAgZnVuY3Rpb24gQWRkU2VsZWN0aW9uT3B0aW9uKCRTZWxlY3Rpb25FbGVtZW50LCBPcHRpb25UZXh0LCBPcHRpb25WYWx1ZSwgU2VsZWN0ZWRPcHRpb24pIHsKICAgICAgICB2YXIgJE9wdGlvbiA9ICQoJzxvcHRpb24gdmFsdWU9IicgKyBPcHRpb25WYWx1ZSArICciPicgKyBPcHRpb25UZXh0ICsgJzwvb3B0aW9uPicpOwoKICAgICAgICBpZiAoT3B0aW9uVmFsdWUgPT09IFNlbGVjdGVkT3B0aW9uKSB7CiAgICAgICAgICAgICRPcHRpb24ucHJvcCgnc2VsZWN0ZWQnLCB0cnVlKTsKICAgICAgICB9CgogICAgICAgICRTZWxlY3Rpb25FbGVtZW50LmFwcGVuZCgkT3B0aW9uKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtTdHJpbmd9IFdvcmtpbmdVbml0SUQgLSBUaGUgSUQgb2YgdGhlIHdvcmtpbmcgdW5pdCB3ZSBhcmUgaW4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBGaWxscyBvcHRpb25zIG9mIGFjdGlvbiBzZWxlY3Rpb24gYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QKICAgICAqLwogICAgVGFyZ2V0TlMuRmlsbEFjdGlvbkxpc3QgPSBmdW5jdGlvbiAoV29ya2luZ1VuaXRJRCkgewogICAgICAgIHZhciBQcm9qZWN0TmFtZSA9ICQoJyNQcm9qZWN0SUQnICsgV29ya2luZ1VuaXRJRCArICcgb3B0aW9uOnNlbGVjdGVkJykudGV4dCgpLAogICAgICAgICAgICBBY3Rpb25MaXN0ID0gVGFyZ2V0TlMuQWN0aW9uTGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0gVGFyZ2V0TlMuQWN0aW9uTGlzdENvbnN0cmFpbnRzLAogICAgICAgICAgICAkQWN0aW9uU2VsZWN0aW9uID0gJCgiI0FjdGlvbklEIiArIFdvcmtpbmdVbml0SUQpLAogICAgICAgICAgICBTZWxlY3RlZEFjdGlvbklEID0gJEFjdGlvblNlbGVjdGlvbi52YWwoKSwKICAgICAgICAgICAgT3B0aW9uQ291bnQgPSAwOwoKICAgICAgICAvLyByZW1vdmUgcHJldmlvdXMgYWN0aW9ucywgbGVhdmUgZmlyc3QgZWxlbWVudCAoZW1wdHkgZWxlbWVudCkKICAgICAgICAkQWN0aW9uU2VsZWN0aW9uLmZpbmQoJ29wdGlvbicpLmZpbHRlcignOm5vdCg6Zmlyc3QpJykucmVtb3ZlKCk7CgogICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICBBY3Rpb25OYW1lID0gdGhpc1sxXTsKCiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0Q29uc3RyYWludHMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBQcm9qZWN0TmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1swXSksCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1sxXSk7CgogICAgICAgICAgICAgICAgLy8gYWRkIGFjdGlvbiB0byBzZWxlY3Rpb24KICAgICAgICAgICAgICAgIGlmIChQcm9qZWN0TmFtZVJlZ0V4cC50ZXN0KFByb2plY3ROYW1lKSAmJiBBY3Rpb25OYW1lUmVnRXhwLnRlc3QoQWN0aW9uTmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICBBZGRTZWxlY3Rpb25PcHRpb24oJEFjdGlvblNlbGVjdGlvbiwgQWN0aW9uTmFtZSwgQWN0aW9uSUQsIFNlbGVjdGVkQWN0aW9uSUQpOwogICAgICAgICAgICAgICAgICAgIE9wdGlvbkNvdW50Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBhbGwgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICAgICAgaWYgKCFPcHRpb25Db3VudCkgewogICAgICAgICAgICAvLyBpZ25vcmUgZmlyc3QgZWxlbWVudCBiZWNhdXNlIGl0J3MgdGhlIGVtcHR5IGVsZW1lbnQgd2hpY2ggaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBsaXN0CiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoSW5kZXgpIHsKICAgICAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZSA9IHRoaXNbMV07CiAgICAgICAgICAgICAgICBpZiAoSW5kZXggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgQWRkU2VsZWN0aW9uT3B0aW9uKCRBY3Rpb25TZWxlY3Rpb24sIEFjdGlvbk5hbWUsIEFjdGlvbklELCBTZWxlY3RlZEFjdGlvbklEKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfTsKCgogICAgZnVuY3Rpb24gSW5pdEFkZFJvdygpIHsKICAgICAgICAkKCcjTW9yZUlucHV0RmllbGRzJykudW5iaW5kKCdjbGljay5Nb3JlSW5wdXRGaWVsZHMnKS5iaW5kKCdjbGljay5Nb3JlSW5wdXRGaWVsZHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkTGFzdFJvdyA9ICQoJyNJbnNlcnRXb3JraW5nSG91cnMgdGJvZHkgdHIuV29ya2luZ0hvdXJzOmxhc3QnKSwKICAgICAgICAgICAgICAgICROZXdSb3csIE5ld1Jvd0hUTUwsCiAgICAgICAgICAgICAgICBSZWNvcmROdW1iZXIgPSBwYXJzZUludCgkKCcjUmVjb3Jkc051bWJlcicpLnZhbCgpLCAxMCkgKyAxOwoKICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5EZWFjdGl2YXRlKCQoJy5Xb3JraW5nSG91cnMnKSk7CiAgICAgICAgICAgICROZXdSb3cgPSAkTGFzdFJvdy5jbG9uZSgpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gJE5ld1Jvdy5odG1sKCk7CgogICAgICAgICAgICAvLyBOb3cgdGFrZSB0aGUgbGFzdCByb3cgYW5kIHJlcGxhY2UgYWxsIG51bWJlcnMgd2l0aCB0aGUgbmV3IHJlY29yZCBudW1iZXIKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUHJvamVjdElEWzAtOV0rL2csICdQcm9qZWN0SUQnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUHJvamVjdElEXFtbMC05XSsvZywgJ1Byb2plY3RJRFsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvRmlsbEFjdGlvbkxpc3RcKFswLTldKy9nLCAnRmlsbEFjdGlvbkxpc3QoJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0FjdGlvbklEWzAtOV0rL2csICdBY3Rpb25JRCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9BY3Rpb25JRFxbWzAtOV0rL2csICdBY3Rpb25JRFsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUmVtYXJrWzAtOV0rL2csICdSZW1hcmsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUmVtYXJrXFtbMC05XSsvZywgJ1JlbWFya1snICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvU3RhcnRUaW1lWzAtOV0rL2csICdTdGFydFRpbWUnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvU3RhcnRUaW1lXFtbMC05XSsvZywgJ1N0YXJ0VGltZVsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvRW5kVGltZVswLTldKy9nLCAnRW5kVGltZScgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9FbmRUaW1lXFtbMC05XSsvZywgJ0VuZFRpbWVbJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1BlcmlvZFswLTldKy9nLCAnUGVyaW9kJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1BlcmlvZFxbWzAtOV0rL2csICdQZXJpb2RbJyArIFJlY29yZE51bWJlcik7CgogICAgICAgICAgICAvLyBOb3cgd3JpdGUgdGhpcyBIVE1MIGJhY2sgdG8gdGhlIGpxdWVyeSBvYmplY3QKICAgICAgICAgICAgJE5ld1Jvdy5odG1sKE5ld1Jvd0hUTUwpOwoKICAgICAgICAgICAgLy8gSWYgbGFzdCByb3cgY29udGFpbmVkIHZhbHVlcywgdGhlc2UgbXVzdCBiZSByZW1vdmVkCiAgICAgICAgICAgICROZXdSb3cKICAgICAgICAgICAgICAgIC5maW5kKCdpbnB1dDp0ZXh0JykudmFsKCcnKS5lbmQoKQogICAgICAgICAgICAgICAgLmZpbmQoJ3NlbGVjdCBvcHRpb24nKS5wcm9wKCdzZWxlY3RlZCcsIGZhbHNlKTsKCiAgICAgICAgICAgIC8vIE5vdyBhZGQgdGhpcyByb3cgdG8gdGhlIHRhYmxlCiAgICAgICAgICAgICRMYXN0Um93LmFmdGVyKCROZXdSb3cpOwoKICAgICAgICAgICAgLy8gU2F2ZSBuZXcgUmVjb3JkTnVtYmVyCiAgICAgICAgICAgICQoJyNSZWNvcmRzTnVtYmVyJykudmFsKFJlY29yZE51bWJlcik7CgogICAgICAgICAgICAvLyBSZS1pbml0aWF0ZSB0aGUgJ29kZC9ldmVuJyBjb2xvdXJzIG9mIHRoZSB0YWJsZQogICAgICAgICAgICAkKCcjSW5zZXJ0V29ya2luZ0hvdXJzIHRib2R5IHRyJykKICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnRXZlbicpCiAgICAgICAgICAgICAgICAuZmlsdGVyKCc6b2RkJykuYWRkQ2xhc3MoJ0V2ZW4nKTsKCiAgICAgICAgICAgIC8vIE1vZGVybml6ZSBmaWVsZHMKICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5BY3RpdmF0ZSgkKCcuV29ya2luZ0hvdXJzJykpOwogICAgICAgIH0pOwogICAgfQoKICAgIGZ1bmN0aW9uIFJlY2FsY3VsYXRlVG90YWxIb3VycygpIHsKICAgICAgICB2YXIgVG90YWwgPSAwOwogICAgICAgICQoJy5QZXJpb2QnKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIFZhbHVlID0gcGFyc2VGbG9hdCgkKHRoaXMpLnZhbCgpKTsKICAgICAgICAgICAgaWYgKCFpc05hTihWYWx1ZSkpIHsKICAgICAgICAgICAgICAgIFRvdGFsICs9IFZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgJCgnLlRvdGFsSG91cnMnKS50ZXh0KFRvdGFsLnRvRml4ZWQoMikpOwogICAgfQoKICAgIGZ1bmN0aW9uIEluaXRQZXJpb2RDYWxjdWxhdGlvbigpIHsKICAgICAgICAvLyBpbml0IGNhbGN1bGF0aW9uIG9mIHBlcmlvZCBmaWVsZCBhZnRlciB3b3JraW5nIGhvdXJzIHdoZXJlIGFkZGVkL3N1YnN0cmFjdGVkL3doYXRldmVyLi4uCiAgICAgICAgJCgnLlBlcmlvZCcpLnVuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJykuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgIHZhciBGaWVsZFZhbHVlID0gJCh0aGlzKS52YWwoKTsKCiAgICAgICAgICAgLy8gcmVwbGFjZSAsIHdpdGggLgogICAgICAgICAgIEZpZWxkVmFsdWUgPSBGaWVsZFZhbHVlLnJlcGxhY2UoLywvZywgIi4iKTsKCiAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGVudGVyZWQgdmFsdWUgb25seSBjb25zaXN0cyBvZiBhbGxvd2VkIHZhbHVlcwogICAgICAgICAgIC8vIGlmIG5vdCwgd2UgZG8gbm90IGV2YWwgZm9yIHNlY3VyaXR5IHJlYXNvbnMKICAgICAgICAgICBpZiAoRmllbGRWYWx1ZS5tYXRjaCgvXlswLTkuK1wtIF0rJC8pKSB7CiAgICAgICAgICAgICAgIC8vIENhbGN1bGF0aW9uCiAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSBldmFsKEZpZWxkVmFsdWUpOwogICAgICAgICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBjYXRjaCAoQ2FsY0Vycm9yKSB7CiAgICAgICAgICAgICAgICAgICBGaWVsZFZhbHVlID0gMDsKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgLy8gc2V0IG5ldyB2YWx1ZQogICAgICAgICAgICAgICAkKHRoaXMpLnZhbChGaWVsZFZhbHVlLnRvRml4ZWQoMikpOwoKICAgICAgICAgICAgICAgLy8gbm93IFN0YXJ0VGltZSBhbmQgRW5kVGltZSB3aWxsIG5vdCBtYXRjaCB0aGUgcGVyaW9kIGFueW1vcmUKICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZXNlIGVudHJpZXMKICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykudmFsKCcnKTsKCiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICAgICAgICAgfQoKICAgICAgICAgICAvLyBub3cgcmUtY2FsY3VsYXRlIHRoZSB0b3RhbCBob3VycyBzdW0KICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gaW5pdCBwZXJpb2QgY2FsY3VsYXRpb24gb24gc3RhcnR0aW1lIGFuZCBlbmR0aW1lIGZpZWxkcwogICAgICAgICQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykudW5iaW5kKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nKS5iaW5kKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkU3RhcnRUaW1lLCAkRW5kVGltZSwKICAgICAgICAgICAgICAgIFN0YXJ0VGltZUhvdXIsIFN0YXJ0VGltZU1pbnV0ZSwgRW5kVGltZUhvdXIsIEVuZFRpbWVNaW51dGUsCiAgICAgICAgICAgICAgICBTdGFydERhdGUsIEVuZERhdGUsIFRvZGF5LAogICAgICAgICAgICAgICAgUGVyaW9kOwoKICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ1N0YXJ0VGltZScpKSB7CiAgICAgICAgICAgICAgICAkU3RhcnRUaW1lID0gJCh0aGlzKTsKICAgICAgICAgICAgICAgICRFbmRUaW1lID0gJFN0YXJ0VGltZS5jbG9zZXN0KCd0cicpLmZpbmQoJy5FbmRUaW1lJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU3RhcnRUaW1lID0gJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5TdGFydFRpbWUnKTsKICAgICAgICAgICAgICAgICRFbmRUaW1lID0gJCh0aGlzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gb25seSBjYWxjdWxhdGUgaWYgYm90aCBmaWVsZHMgYXJlIGZpbGxlZAogICAgICAgICAgICBpZiAoJFN0YXJ0VGltZS52YWwoKSAmJiAkRW5kVGltZS52YWwoKSkgewogICAgICAgICAgICAgICAgLy8gZXh0cmFjdCBob3VycyBhbmQgbWludXRlcwogICAgICAgICAgICAgICAgU3RhcnRUaW1lSG91ciA9ICRTdGFydFRpbWUudmFsKCkuc3BsaXQoLzovKVswXSB8fCAwOwogICAgICAgICAgICAgICAgU3RhcnRUaW1lTWludXRlID0gJFN0YXJ0VGltZS52YWwoKS5zcGxpdCgvOi8pWzFdIHx8IDA7CiAgICAgICAgICAgICAgICBFbmRUaW1lSG91ciA9ICRFbmRUaW1lLnZhbCgpLnNwbGl0KC86LylbMF0gfHwgMDsKICAgICAgICAgICAgICAgIEVuZFRpbWVNaW51dGUgPSAkRW5kVGltZS52YWwoKS5zcGxpdCgvOi8pWzFdIHx8IDA7CgogICAgICAgICAgICAgICAgLy8gZGVmaW5lIGRhdGUgb2JqZWN0cwogICAgICAgICAgICAgICAgVG9kYXkgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgU3RhcnREYXRlID0gbmV3IERhdGUoVG9kYXkuZ2V0WWVhcigpLCBUb2RheS5nZXRNb250aCgpLCBUb2RheS5nZXREYXRlKCksIFN0YXJ0VGltZUhvdXIsIFN0YXJ0VGltZU1pbnV0ZSwgMCk7CiAgICAgICAgICAgICAgICBFbmREYXRlID0gbmV3IERhdGUoVG9kYXkuZ2V0WWVhcigpLCBUb2RheS5nZXRNb250aCgpLCBUb2RheS5nZXREYXRlKCksIEVuZFRpbWVIb3VyLCBFbmRUaW1lTWludXRlLCAwKTsKCiAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgZGlmZmVyZW5jZXMKICAgICAgICAgICAgICAgIFBlcmlvZCA9IEVuZERhdGUuZ2V0VGltZSgpIC0gU3RhcnREYXRlLmdldFRpbWUoKTsKICAgICAgICAgICAgICAgIFBlcmlvZCA9IFBlcmlvZCAvICgxMDAwICogNjAgKiA2MCk7CgogICAgICAgICAgICAgICAgLy8gc2V0IG5ldyB2YWx1ZQogICAgICAgICAgICAgICAgaWYgKCFpc05hTihQZXJpb2QpKSB7CiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZS5jbG9zZXN0KCd0cicpLmZpbmQoJy5QZXJpb2QnKS52YWwoUGVyaW9kLnRvRml4ZWQoMikpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZS5jbG9zZXN0KCd0cicpLmZpbmQoJy5QZXJpb2QnKS52YWwoJycpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJlY2FsY3VsYXRlVG90YWxIb3VycygpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBPcHRpb25zIHRoZSBkaWZmZXJlbnQgcG9zc2libGUgb3B0aW9uczoKICAgICAqICAgICAgICAgICAgICAgICAgUmVtYXJrUmVnRXhwQ29udGVudCAtIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHRoZSByZW1hcmsgdmFsaWRhdGlvbiBjaGVjawogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYWxsIG5lZWRlZCBKUyBmb3IgdGhlIEVkaXQgc2NyZWVuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoT3B0aW9ucykgewogICAgICAgIHZhciBMb2NhbE9wdGlvbnMgPSBPcHRpb25zIHx8IHt9LAogICAgICAgICAgICBSZW1hcmtSZWdFeHBDb250ZW50ID0gTG9jYWxPcHRpb25zLlJlbWFya1JlZ0V4cENvbnRlbnQsCiAgICAgICAgICAgIC8vIEFkZCBzb21lIHNwZWNpYWwgdmFsaWRhdGlvbiBtZXRob2RzIGZvciB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAgICAgLy8gRGVmaW5lIGFsbCBhdmFpbGFibGUgZWxlbWVudHMgKG9ubHkgdGhlIHByZWZpeGVzKSBpbiBhIHJvdwogICAgICAgICAgICBFbGVtZW50UHJlZml4ZXMgPSBbJ1Byb2plY3RJRCcsICdBY3Rpb25JRCcsICdSZW1hcmsnLCAnU3RhcnRUaW1lJywgJ0VuZFRpbWUnLCAnUGVyaW9kJ107CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgcHJvamVjdDogaWYgc29tZSBvdGhlciBmaWVsZCBpbiB0aGlzIHJvdyBpcyBmaWxsZWQsIHRoZSBwcm9qZWN0IHNlbGVjdCBtdXN0IGJlIGZpbGxlZCwgdG9vCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdCcsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQsCiAgICAgICAgICAgICAgICBSZXN1bHQgPSB0cnVlOwoKICAgICAgICAgICAgLy8gR2V0IElECiAgICAgICAgICAgIC8vIE91ciBFbGVtZW50IGNhbiBiZSB0aGUgc2VsZWN0IGVsZW1lbnQgb3IgdGhlIGF1dG9jb21wbGV0aW9uIGlucHV0IGZpZWxkCiAgICAgICAgICAgIGlmICgkKEVsZW1lbnQpLmlzKCdzZWxlY3QnKSkgewogICAgICAgICAgICAgICAgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnUHJvamVjdElEJywgJycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgSUQgPSAkKEVsZW1lbnQpLnByZXZBbGwoJ3NlbGVjdCcpLmF0dHIoJ2lkJykucmVwbGFjZSgnUHJvamVjdElEJywgJycpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIVZhbHVlKSB7CiAgICAgICAgICAgICAgICAkLmVhY2goRWxlbWVudFByZWZpeGVzLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFSZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMgIT09ICdQcm9qZWN0SUQnICYmICQoJyMnICsgdGhpcyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1Byb2plY3QnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1Byb2plY3Q6IHRydWUKICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIGNhbWVsY2FzZSAqLwogICAgICAgIH0pOwoKICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIHJlbWFya3M6IGRlcGVuZGluZyBvbiB0aGUgcHJvamVjdCwgcmVtYXJrcyBtdXN0IGJlIGVudGVyZWQgb3Igbm90CiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrJywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdSZW1hcmsnLCAnJyksCiAgICAgICAgICAgICAgICBSZW1hcmtSZWdFeHAgPSBuZXcgUmVnRXhwKCJeKCIgKyBSZW1hcmtSZWdFeHBDb250ZW50ICsgIikkIiksCiAgICAgICAgICAgICAgICBSZW1hcmtDaGVjayA9IFJlbWFya1JlZ0V4cC50ZXN0KCQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpKTsKCiAgICAgICAgICAgIGlmICgkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICEoUmVtYXJrQ2hlY2sgJiYgVmFsdWUubGVuZ3RoIDwgOCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0pOwoKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkUnVsZSgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrJywgewogICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqLwogICAgICAgICAgICBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcms6IHRydWUKICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIGNhbWVsY2FzZSAqLwogICAgICAgIH0pOwoKICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIHN0YXJ0IHRpbWU6IGlmIGEgcHJvamVjdCBpcyBnaXZlbiBhbmQgbm8gdGltZSBwZXJpb2QgaXMgZ2l2ZW4sIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWUnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1N0YXJ0VGltZScsICcnKTsKCiAgICAgICAgICAgIGlmICghVmFsdWUgJiYgJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkgJiYgISQoJyNQZXJpb2QnICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0pOwoKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkUnVsZSgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lJywgewogICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqLwogICAgICAgICAgICBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWU6IHRydWUKICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIGNhbWVsY2FzZSAqLwogICAgICAgIH0pOwoKICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIHRpbWUgcGVyaW9kOiBpZiBhIHByb2plY3QgaXMgZ2l2ZW4gYW5kIG5vIHN0YXJ0IHRpbWUgaXMgZ2l2ZW4sIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2QnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1BlcmlvZCcsICcnKTsKCiAgICAgICAgICAgIGlmICghVmFsdWUgJiYgJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkgJiYgISQoJyNTdGFydFRpbWUnICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0pOwoKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkUnVsZSgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kJywgewogICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqLwogICAgICAgICAgICBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2Q6IHRydWUKICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIGNhbWVsY2FzZSAqLwogICAgICAgIH0pOwoKICAgICAgICAvLyBpbml0aWF0ZSAibW9yZSBpbnB1dCBmaWVsZHMiIGZ1bmN0aW9uYWxpdHkKICAgICAgICBJbml0QWRkUm93KCk7CgogICAgICAgIC8vIGluaXRpYXRlIHBlcmlvZCBjYWxjdWxhdGlvbgogICAgICAgIEluaXRQZXJpb2RDYWxjdWxhdGlvbigpOwoKICAgICAgICAvLyBTZWxlY3Qgb25seSBvbmUgY2hlY2tib3ggaW4gdGhlIGdyb3VwICdBYnNlbmNlJwogICAgICAgICQoIi5BYnNlbmNlIGlucHV0OmNoZWNrYm94IikuY2xpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgICAkKCIuQWJzZW5jZSBpbnB1dDpjaGVja2JveCIpLnByb3AoImNoZWNrZWQiLCBmYWxzZSk7CiAgICAgICAgICAgICQodGhpcykucHJvcCgiY2hlY2tlZCIsIHRydWUpOwogICAgICAgIH0pOwogICAgfTsKCgogICAgLyoqCiAgICAgKiBAbmFtZSBNYXNzRW50cnlJbml0CiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBMYW5ndWFnZSBvYmplY3Qgd2l0aCB0ZXh0IHRyYW5zbGF0aW9ucwogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIGphdmFzY3JpcHQgZm9yIHRoZSBtYXNzIGVudHJ5IGZ1bmN0aW9uYWxpdHkKICAgICAqLwogICAgVGFyZ2V0TlMuTWFzc0VudHJ5SW5pdCA9IGZ1bmN0aW9uKExhbmd1YWdlKSB7CiAgICAgICAgJCgnI0luY29tcGxldGVXb3JraW5nRGF5LUFsbCcpLnVuYmluZCgnY2xpY2suU2VsZWN0QWxsRGF5cycpLmJpbmQoJ2NsaWNrLlNlbGVjdEFsbERheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBTdGF0ZSA9ICQodGhpcykucHJvcCgnY2hlY2tlZCcpOwogICAgICAgICAgICAkKCd1bC5JbmNvbXBsZXRlV29ya2luZ0RheXMgbGkgaW5wdXQ6Y2hlY2tib3gnKS5wcm9wKCdjaGVja2VkJywgU3RhdGUpOwogICAgICAgIH0pOwogICAgICAgICQoJyNNYXNzRW50cnlTdWJtaXQnKS51bmJpbmQoJ2NsaWNrLk1hc3NFbnRyeVN1Ym1pdCcpLmJpbmQoJ2NsaWNrLk1hc3NFbnRyeVN1Ym1pdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyICRXb3JraW5nRGF5Q2hlY2tib3hlcyA9ICQoJ3VsLkluY29tcGxldGVXb3JraW5nRGF5cyBsaSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZmlsdGVyKCdbbmFtZSE9SW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsXScpOwoKICAgICAgICAgICAgaWYgKCEkV29ya2luZ0RheUNoZWNrYm94ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBhbGVydChMYW5ndWFnZS5Nc2dDaG9vc2VPbmVEYXkpOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTaG93IG92ZXJsYXkKICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coJCgnI01hc3NFbnRyeUNvbmZpcm1EaWFsb2cnKSwgTGFuZ3VhZ2UuTWFzc0VudHJ5LCAnMTUwcHgnLCAnQ2VudGVyJywgdHJ1ZSwgWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMYW5ndWFnZS5TdWJtaXQsCiAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRTZWxlY3RlZFJhZGlvID0gJCgnI01hc3NFbnRyeUNvbmZpcm1SYWRpbyBsaSBpbnB1dDpyYWRpbzpjaGVja2VkJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYnNlbmNlUmVhc29uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkRGF0ZXMgPSAnJzsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJFNlbGVjdGVkUmFkaW8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydChMYW5ndWFnZS5Nc2dBYnNlbmNlUmVhc29uKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGFic2VuY2UgcmVhc29uCiAgICAgICAgICAgICAgICAgICAgICAgIEFic2VuY2VSZWFzb24gPSAkU2VsZWN0ZWRSYWRpby5kYXRhKCdhYnNlbmNlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBYnNlbmNlUmVhc29uID09PSAnTGVhdmVEYXknKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9TGVhdmVEYXldJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdTaWNrJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPVNpY2tdJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdPdmVydGltZScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1PdmVydGltZV0nKS52YWwoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbGxlY3QgZGF0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgJCgndWwuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIGxpIGlucHV0OmNoZWNrYm94OmNoZWNrZWQnKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBEYXRlSXRlbSA9ICQodGhpcykuYXR0cignbmFtZScpLnJlcGxhY2UoL0luY29tcGxldGVXb3JraW5nRGF5LS8sICIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChEYXRlSXRlbSAhPT0gJ0FsbCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0ZWREYXRlcyArPSBEYXRlSXRlbSArICd8JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1EYXRlc10nKS52YWwoQ29sbGVjdGVkRGF0ZXMpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2hvdyB3YWl0aW5nIGljb24KICAgICAgICAgICAgICAgICAgICAgICAgJCgnLkRpYWxvZzp2aXNpYmxlJykKICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5Db250ZW50Rm9vdGVyJykKICAgICAgICAgICAgICAgICAgICAgICAgLmVtcHR5KCkKICAgICAgICAgICAgICAgICAgICAgICAgLmVuZCgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuSW5uZXJDb250ZW50JykKICAgICAgICAgICAgICAgICAgICAgICAgLndpZHRoKCQoJy5EaWFsb2c6dmlzaWJsZScpLmZpbmQoJy5Jbm5lckNvbnRlbnQnKS53aWR0aCgpKQogICAgICAgICAgICAgICAgICAgICAgICAuZW1wdHkoKQogICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCc8c3BhbiBjbGFzcz0iQUpBWExvYWRlciI+PC9zcGFuPicpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3VibWl0IGZvcm0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeScpLnN1Ym1pdCgpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICdQcmltYXJ5JwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMYWJlbDogTGFuZ3VhZ2UuQ2FuY2VsLAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLkNsb3NlRGlhbG9nKCQoJy5EaWFsb2c6dmlzaWJsZScpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0pOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKfShUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgfHwge30pKTsK
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMS4xOS4wL3F1bml0LmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KCiAgICA8dGl0bGU+VGltZUFjY291bnRpbmcgZm9yIE9UUlMgJm5kYXNoOyBVbml0VGVzdCBSZXN1bHRzPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxoMSBpZD0icXVuaXQtaGVhZGVyIj5UaW1lQWNjb3VudGluZyBmb3IgT1RSUyAmbmRhc2g7IFVuaXRUZXN0IFJlc3VsdHM8L2gxPgogICAgPGgyIGlkPSJxdW5pdC1iYW5uZXIiPjwvaDI+CiAgICA8aDIgaWQ9InF1bml0LXVzZXJBZ2VudCI+PC9oMj4KICAgIDxvbCBpZD0icXVuaXQtdGVzdHMiPjwvb2w+CgoKICAgIDwhLS0gVW5pdFRlc3QgY29kZSBnb2VzIGhlcmUgLS0+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L3F1bml0LTEuMTkuMC9xdW5pdC5qcyI+PC9zY3JpcHQ+CiAgICA8IS0tCiAgICAgICAgTm93IGFsd2F5cyBsb2FkIGxpYnJhcnkgZmlyc3QgYW5kIHRoZW4gdGhlIFVuaXRUZXN0IGZpbGUgZm9yIGl0LgogICAgICAgIFRoZSBVbml0VGVzdCBmaWxlIGlzIHJlc3BvbnNpYmxlIGZvciBydW5uaW50IHRoZSB0ZXN0cy4KICAgIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktMi4xLjQvanF1ZXJ5LmpzIj48L3NjcmlwdD4KICAgIDwhLS08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1taWdyYXRlLTEuMi4xL2pxdWVyeS1taWdyYXRlLmpzIj48L3NjcmlwdD4tLT4KCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1wdWJzdWIvcHVic3ViLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvanF1ZXJ5LXZhbGlkYXRlLTEuMTQuMC9qcXVlcnkudmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktdWktMS4xMS40L2pxdWVyeS11aS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1qc3RyZWUtMy4xLjEvanF1ZXJ5LmpzdHJlZS5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5EZWJ1Zy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkRhdGEuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuSlNPTi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkNvbmZpZy5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5BcHAuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5BY2Nlc3NpYmlsaXR5LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuVUkuUmljaFRleHRFZGl0b3IuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5UcmVlU2VsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuVUkuSW5wdXRGaWVsZHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5EaWFsb2cuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Gb3JtLkVycm9yVG9vbHRpcHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Gb3JtLlZhbGlkYXRlLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL1RpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDb3JlLlVuaXRUZXN0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Vbml0VGVzdC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLlJ1blVuaXRUZXN0cygpOwogICAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4K
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoTmFtZXNwYWNlKSB7CiAgICBOYW1lc3BhY2UuUnVuVW5pdFRlc3RzID0gZnVuY3Rpb24oKXsKCiAgICAgICAgLyoKICAgICAgICAgKiBDcmVhdGUgYSBmb3JtIGNvbnRhaW5lciBmb3IgdGhlIHRlc3RzCiAgICAgICAgICovCiAgICAgICAgdmFyICRUZXN0Rm9ybSA9ICQoJzxmb3JtIGlkPSJUZXN0Rm9ybSI+PC9mb3JtPicpLAogICAgICAgICAgICAkVGFibGU7CgogICAgICAgIG1vZHVsZSgnVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzJyk7CiAgICAgICAgdGVzdCgnY2xpZW50LXNpZGUgdGltZSBwZXJpb2QgY2FsY3VsYXRpb25zJywgZnVuY3Rpb24oKXsKCiAgICAgICAgICAgIGV4cGVjdCgyMCk7CgogICAgICAgICAgICAkVGVzdEZvcm0uYXBwZW5kKCc8dGFibGU+PHRyPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjwvdHI+PC90YWJsZT4nKTsKICAgICAgICAgICAgJFRhYmxlID0gJFRlc3RGb3JtLmZpbmQoJ3RyOmVxKDApIHRkJyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iU3RhcnRUaW1lMSIgbmFtZT0iU3RhcnRUaW1lMSIgY2xhc3M9IlN0YXJ0VGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJFbmRUaW1lMSIgbmFtZT0iRW5kVGltZTEiIGNsYXNzPSJFbmRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlBlcmlvZDEiIG5hbWU9IlBlcmlvZDEiIGNsYXNzPSJQZXJpb2QiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZSA9ICRUZXN0Rm9ybS5maW5kKCd0cjplcSgxKSB0ZCcpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlN0YXJ0VGltZTIiIG5hbWU9IlN0YXJ0VGltZTIiIGNsYXNzPSJTdGFydFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iRW5kVGltZTIiIG5hbWU9IkVuZFRpbWUyIiBjbGFzcz0iRW5kVGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJQZXJpb2QyIiBuYW1lPSJQZXJpb2QyIiBjbGFzcz0iUGVyaW9kIiAvPicpOwogICAgICAgICAgICAkVGFibGUgPSAkVGVzdEZvcm0uZmluZCgndHI6ZXEoMikgdGQnKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJTdGFydFRpbWUzIiBuYW1lPSJTdGFydFRpbWUzIiBjbGFzcz0iU3RhcnRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IkVuZFRpbWUzIiBuYW1lPSJFbmRUaW1lMyIgY2xhc3M9IkVuZFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iUGVyaW9kMyIgbmFtZT0iUGVyaW9kMyIgY2xhc3M9IlBlcmlvZCIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPHNwYW4gaWQ9IlRvdGFsSG91cnMiIG5hbWU9IlRvdGFsSG91cnMiIGNsYXNzPSJUb3RhbEhvdXJzIj48L3NwYW4+Jyk7CiAgICAgICAgICAgICQoJ2JvZHknKS5hcHBlbmQoJFRlc3RGb3JtKTsKCiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFJ1biB0aGUgdGVzdHMKICAgICAgICAgICAgICovCgogICAgICAgICAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuSW5pdCgpOwoKICAgICAgICAgICAgLy8gVGVzdDogdGltZSBjYWxjdWxhdGlvbiBvbiB0aW1lIHBlcmlvZCBmaWVsZAogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMi4wMCcsICdOb3JtYWwgbnVtYmVyIGVudHJ5Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnZm9vYmFyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnTm90IGEgbnVtYmVyICg9ImZvb2JhciIpJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMiArIDMnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzUuMDAnLCAnRWFzeSBjYWxjdWxhdGlvbicpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJ2FsZXJ0KCJodWh1Iik7Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnRXZpbCBqYXZhc2NyaXB0IGNvZGUnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjIzICsgMS4wOScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMy4zMicsICdDYWxjdWxhdGlvbiB3aXRoIG5vbi1pbnRlZ2VycycpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIuMDAwMSArIDEuNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMy41MCcsICdDYWxjdWxhdGlvbiB3aXRoIGEgbnVtYmVyIHdpdGggbW9yZSB0aGFuIDIgZGVjaW1hbHMnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcxLDIgKyAxLDMnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzIuNTAnLCAnTnVtYmVycyB3aXRoICwgaW5zdGVhZCBvZiAuJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnNS44IC0gMS4yJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICc0LjYwJywgJ1N1YnN0cmFjdGlvbicpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJycpOwoKICAgICAgICAgICAgLy8gVGVzdDogY2FsY3VsYXRlIHBlcmlvZCBmcm9tIGVudGVyZWQgc3RhcnQgYW5kIGVuZCB0aW1lCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ09ubHkgc3RhcnQgdGltZSBlbnRlcmVkJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdPbmx5IGVuZCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzEuMDAnLCAnQm90aCB0aW1lcyBlbnRlcmVkJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTowNicpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwOjAwJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMC45MCcsICdFYXN5IGNhbGN1bGF0aW9uIHdpdGggdHdvIHRpbWVzIG9mIHRoZSBmb3JtYXQgSEg6TU0nKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjAwJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTE6MzAnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcyLjUwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzksNScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwLDUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnU3RhcnRUaW1lIGFuZCBFbmRUaW1lIGZvcm1hdCBhcmUgd3JvbmcnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjUnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDo1Jyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMS4wMCcsICdTdGFydFRpbWUgYW5kIEVuZFRpbWUgZm9ybWF0IGFyZSBzbGlnaHRseSB3cm9uZycpOwoKICAgICAgICAgICAgLy8gVGVzdDogQ2FsY3VsYXRpb24gb2YgdG90YWwgaG91cnMKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6NScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwOjUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMS4wMCcsICdFYXN5IHN0YXJ0Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMi41Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMy41MCcsICdTZWNvbmQgcGVyaW9kIGZpZWxkJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMS41ICsgOSw1Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTIuMDAnLCAnU2Vjb25kIHBlcmlvZCBmaWVsZCBnZXRzIGFuIGFkZGl0aW9uYWwgY2FsY3VsYXRpb24gd2l0aCBvbmUgd3JvbmcgY29tbWEnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QzJykudmFsKCc0LjM1Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QzJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTYuMzUnLCAnVGhpcmQgZmllbGQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxNDowMCcpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJ29wZW5lbmQnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTUuMzUnLCAnRmlyc3Qgcm93OiBzdGFydHRpbWUgYW5kIGVuZHRpbWUgZmllbGRzIGhhdmUgd3JvbmcgaW5wdXQnKTsKCgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBDbGVhbnVwIGRpdiBjb250YWluZXIgYW5kIGNvbnRlbnRzCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkKCcjVGVzdEZvcm0nKS5yZW1vdmUoKTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIHJldHVybiBOYW1lc3BhY2U7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzIHx8IHt9KSk7Cg==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIERlZmF1bHQgQ1NTCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgbGVmdCBhbmQgcmlnaHQgYXJyb3dzCiAqLwoKLkFycm93IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEwcHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi10b3A6IC0ycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDRweDsKfQoKLkFycm93IGkgewogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICM1NTU7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgc3BlY2lhbCBzZXR0aW5nczogcmVwb3J0aW5nCiAqLwoKZGl2Lk1vbnRoU2VsZWN0aW9uIHsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKLk1vbnRoU2VsZWN0aW9uIC5BcnJvdyB7CiAgICBtYXJnaW4tdG9wOiAxcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgSW5jb21wbGV0ZVdvcmtpbmdEYXlzIHNlbGVjdAogKi8KI0luY29tcGxldGVXb3JraW5nRGF5c0xpc3Qgb3B0aW9uW3NlbGVjdGVkPXNlbGVjdGVkXSB7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBwcm9qZWN0IGFuZCBhY3Rpb24gZHJvcGRvd25zCiAqLwouUHJvamVjdFNlbGVjdGlvbiB7CiAgICB3aWR0aDogMzAwcHg7Cn0KCi5BY3Rpb25TZWxlY3Rpb24gewogICAgd2lkdGg6IDMwMHB4Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8=
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIEFkZGl0aW9uYWwgVGFibGUgU2V0dGluZ3MKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKLyoqCiAqIEBzdWJzZWN0aW9uICBkYXRhIHRhYmxlIGVsZW1lbnRzIHdpdGhvdXQgaG92ZXIKICovCgouTm9Ib3ZlciB0Ym9keSB0cjpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCi5Ob0hvdmVyIHRyLkV2ZW46aG92ZXIgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTsKfQoKLk5vSG92ZXIgdHIuR3JhbmRUb3RhbDpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0ZDRkNGOwp9CgovKioKICogQHN1YnNlY3Rpb24gIHNwZWNpYWwgdGFibGUgaGVpZ2h0CiAqLwoKLkhpZ2hDZWxscyB0Ym9keSB0ZCB7CiAgICBoZWlnaHQ6IDMwcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZml4ZWQgZGF0YSB0YWJsZSB3aWR0aHMKICovCgouRGF0YVRhYmxlIHRkLkZpeGVkLkRheSB7CiAgICB3aWR0aDogNTBweDsKfQoKLkRhdGFUYWJsZSB0ZC5GaXhlZC5XZWVrZGF5IHsKICAgIHdpZHRoOiA4MHB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHRhYmxlIGNvbG91cnMgZm9yIG92ZXJ2aWV3CiAqLwoKLkRhdGFUYWJsZSB0ci5WYWNhdGlvbiB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJDQ0NDOwp9CgouRGF0YVRhYmxlIHRyLk5vbldvcmtpbmdEYXkgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRTBFMDsKfQoKLkRhdGFUYWJsZSB0ci5BY3RpdmUgdGQgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDAwMDsKICAgIGNvbG9yOiAjMUExQTFBOwp9CgouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZDpmaXJzdC1jaGlsZCB7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDAwMDA7Cn0KCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkOmxhc3QtY2hpbGQsCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkLkxhc3QgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDAwMDsKfQoKLkRhdGFUYWJsZSB0ci5HcmFuZFRvdGFsIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNDRkNGQ0Y7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZGF0YSB0YWJsZSB3aXRoIHR3byBoZWFkZXIgcm93cwogKi8KCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB7CiAgICBiYWNrZ3JvdW5kOiBub25lOwp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHIgewogICAgYmFja2dyb3VuZDogI2VlZWVlZTsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyOmZpcnN0LWNoaWxkIHRoIHsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4Owp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHI6bGFzdC1jaGlsZCB0aCwKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyLkxhc3QgdGggewogICAgYm9yZGVyLXRvcDogbm9uZTsKICAgIHBhZGRpbmctdG9wOiAzcHg7Cn0KCnRyLk1hc3RlckFjdGlvbiB0ZC5Sb3dTcGFuIHsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCnRkLlJvd1NwYW57CiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9CgouRGF0YVRhYmxlIGEuRGF0ZXBpY2tlckljb24gaSB7CiAgICBjb2xvcjogIzAwMDsKICAgIG1hcmdpbi1sZWZ0OiAycHg7Cn0KCi5EYXRhVGFibGUgYS5EYXRlcGlja2VySWNvbjpob3ZlciBpIHsKICAgIGNvbG9yOiAjZjcyOwp9CgojVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCB7CiAgICBib3JkZXItY29sb3I6ICNkZGQ7CiAgICBib3JkZXItaW1hZ2U6IG5vbmU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICBwYWRkaW5nOiA3cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKfQovKiBlbmQgQG1lZGlhICov
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycsCiAgICAnS2VybmVsOjpDb25maWcnLAopOwoKPWhlYWQxIE5BTUUKClRpbWVBY2NvdW50aW5nLnBtIC0gY29kZSB0byBleGVjdXRlIGR1cmluZyBwYWNrYWdlIGluc3RhbGxhdGlvbgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgZnVuY3Rpb25zCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgndmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgcmVidWlsZCBaWloqIGZpbGVzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPldyaXRlRGVmYXVsdCgpOwoKICAgICMgZGVmaW5lIHRoZSBaWlogZmlsZXMKICAgIG15IEBaWlpGaWxlcyA9ICgKICAgICAgICAnWlpaQUF1dG8ucG0nLAogICAgICAgICdaWlpBdXRvLnBtJywKICAgICk7CgogICAgIyByZWxvYWQgdGhlIFpaWiBmaWxlcyAobW9kX3Blcmwgd29ya2Fyb3VuZCkKICAgIGZvciBteSAkWlpaRmlsZSAoQFpaWkZpbGVzKSB7CgogICAgICAgIFBSRUZJWDoKICAgICAgICBmb3IgbXkgJFByZWZpeCAoQElOQykgewogICAgICAgICAgICBteSAkRmlsZSA9ICRQcmVmaXggLiAnL0tlcm5lbC9Db25maWcvRmlsZXMvJyAuICRaWlpGaWxlOwogICAgICAgICAgICBuZXh0IFBSRUZJWCBpZiAhLWYgJEZpbGU7CiAgICAgICAgICAgIGRvICRGaWxlOwogICAgICAgICAgICBsYXN0IFBSRUZJWDsKICAgICAgICB9CiAgICB9CgogICAgIyBhbHdheXMgZGlzY2FyZCB0aGUgY29uZmlnIG9iamVjdCBiZWZvcmUgcGFja2FnZSBjb2RlIGlzIGV4ZWN1dGVkLAogICAgIyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY29uZmlnIG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQgbmV3bHksIHNvIHRoYXQgaXQKICAgICMgd2lsbCB1c2UgdGhlIHJlY2VudGx5IHdyaXR0ZW4gbmV3IGNvbmZpZyBmcm9tIHRoZSBwYWNrYWdlCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoCiAgICAgICAgT2JqZWN0cyA9PiBbJ0tlcm5lbDo6Q29uZmlnJ10sCiAgICApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWRkIHRoZSBncm91cCB0aW1lX2FjY291bnRpbmcKICAgICRTZWxmLT5fR3JvdXBBZGQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0dyb3VwIGZvciBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXIuJywKICAgICk7CgogICAgIyBkZWxldGUgdGhlIGdyb3VwIGNhY2hlIHRvIGF2b2lkIHBlcm1pc3Npb24gcHJvYmxlbXMKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdHcm91cCcgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVuaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgdW5pbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVbmluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlVW5pbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWFjdGl2YXRlIHRoZSBncm91cCB0aW1lX2FjY291bnRpbmcKICAgICRTZWxmLT5fR3JvdXBEZWFjdGl2YXRlKAogICAgICAgIE5hbWUgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiA0LjAuOTEuCgpteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxIHsgICAgIyMgbm8gY3JpdGljCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlncygpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfR3JvdXBBZGQoKQoKYWRkIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cEFkZCgKICAgICAgICBOYW1lICAgICAgICA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICdUaGUgZ3JvdXAgZGVzY3JpcHRpb24uJywKICAgICk7Cgo9Y3V0CgpzdWIgX0dyb3VwQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE5hbWUgRGVzY3JpcHRpb24pKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgIEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGdldCBsaXN0IG9mIGFsbCBncm91cHMKICAgIG15ICVHcm91cExpc3QgPSAkR3JvdXBPYmplY3QtPkdyb3VwTGlzdCgpOwoKICAgICMgcmV2ZXJzZSB0aGUgZ3JvdXAgbGlzdCBmb3IgZWFzaWVyIGxvb2t1cAogICAgbXkgJUdyb3VwTGlzdFJldmVyc2UgPSByZXZlcnNlICVHcm91cExpc3Q7CgogICAgIyBjaGVjayBpZiBncm91cCBhbHJlYWR5IGV4aXN0cwogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBMaXN0UmV2ZXJzZXsgJFBhcmFte05hbWV9IH07CgogICAgIyByZWFjdGl2YXRlIHRoZSBncm91cAogICAgaWYgKCRHcm91cElEKSB7CgogICAgICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgICAgICBJRCAgICAgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgcmVhY3RpdmF0ZSBncm91cAogICAgICAgICRHcm91cE9iamVjdC0+R3JvdXBVcGRhdGUoCiAgICAgICAgICAgICVHcm91cERhdGEsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBhZGQgdGhlIGdyb3VwCiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gaWYgISRHcm91cE9iamVjdC0+R3JvdXBBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFBhcmFte05hbWV9LAogICAgICAgICAgICBDb21tZW50ID0+ICRQYXJhbXtEZXNjcmlwdGlvbn0sCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGxvb2t1cCB0aGUgbmV3IGdyb3VwIGlkCiAgICBteSAkTmV3R3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgID0+ICRQYXJhbXtOYW1lfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBhZGQgdXNlciByb290IHRvIHRoZSBncm91cAogICAgJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckFkZCgKICAgICAgICBHSUQgICAgICAgID0+ICROZXdHcm91cElELAogICAgICAgIFVJRCAgICAgICAgPT4gMSwKICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgcm8gICAgICAgID0+IDEsCiAgICAgICAgICAgIG1vdmVfaW50byA9PiAxLAogICAgICAgICAgICBjcmVhdGUgICAgPT4gMSwKICAgICAgICAgICAgb3duZXIgICAgID0+IDEsCiAgICAgICAgICAgIHByaW9yaXR5ICA9PiAxLAogICAgICAgICAgICBydyAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX0dyb3VwRGVhY3RpdmF0ZSgpCgpkZWFjdGl2YXRlIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgKTsKCj1jdXQKCnN1YiBfR3JvdXBEZWFjdGl2YXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtOYW1lfSApIHsKICAgICAgICBLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBOYW1lIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGxvb2t1cCBncm91cCBpZAogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgIEdyb3VwID0+ICRQYXJhbXtOYW1lfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKCiAgICAjIGdldCBjdXJyZW50IGdyb3VwIGRhdGEKICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgIElEICAgICA9PiAkR3JvdXBJRCwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBkZWFjdGl2YXRlIGdyb3VwCiAgICAkR3JvdXBPYmplY3QtPkdyb3VwVXBkYXRlKAogICAgICAgICVHcm91cERhdGEsCiAgICAgICAgVmFsaWRJRCA9PiAkVmFsaWRMaXN0UmV2ZXJzZXtpbnZhbGlkfSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfTWlncmF0ZUNvbmZpZ3MoKQoKY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVDb25maWdzKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWdzIHsKCiAgICAjIGNyZWF0ZSBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgbWlncmF0ZSB0aW1lIGFjY291bnRpbmcgbm90aWZpY2F0aW9uIFN5c0NvbmZpZwogICAgIyBnZXQgc2V0dGluZyBjb250ZW50IGZvciB0aW1lIGFjY291bnRpbmcgU3lzQ29uZmlnCiAgICBteSAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVOb3RpZnknKTsKCiAgICBpZiAoICRTZXR0aW5nLT57J1RpbWVBY2NvdW50aW5nJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eydUaW1lQWNjb3VudGluZyd9LT57TW9kdWxlfSA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6Tm90aWZpY2F0aW9uOjpUaW1lQWNjb3VudGluZyI7CgogICAgICAgICMgc2V0IG5ldyBzZXR0aW5nCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZycsCiAgICAgICAgICAgIFZhbHVlID0+ICRTZXR0aW5nLT57J1RpbWVBY2NvdW50aW5nJ30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1pZ3JhdGUgdGltZSBhY2NvdW50aW5nIHRvb2wgYmFyIFN5c0NvbmZpZwogICAgIyBnZXQgc2V0dGluZyBjb250ZW50IGZvciB0aW1lIGFjY291bnRpbmcgU3lzQ29uZmlnCiAgICAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUnKTsKCiAgICBpZiAoICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eycyMDEtVGltZUFjY291bnRpbmc6OkluY29tcGxldGVXb3JraW5nRGF5cyd9LT57TW9kdWxlfQogICAgICAgICAgICA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzIjsKCiAgICAgICAgIyBzZXQgbmV3IHNldHRpbmcKICAgICAgICBteSAkU3VjY2VzcyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
JVBERi0xLjQKJaqrrK0KMSAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDIuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMi4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTcxMDEwMDg0MTA1KzAyJzAwJykKPj4KZW5kb2JqCjIgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAzIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nO2ZZ1BUWRaA73uvc6Chu2kyNDlJlNCA5JwkSBYV6G4yLTQ5mJDBERhBRCQpgogCDjg6BBlFRRQDoqCAeRoZBJRxcBRRUVnAH7NVu7VbW7W1f7bPj/e+OufWO+e+ulXvq3oAyJDi2QnJsD4ACbwUvq+zHTMoOISJvQ9wgAxIgAow4ezkRFtvbw+wHCtrwT/E+1EArdzv6fzz+r8MEieBxwEAoi9zLIebzF7mncsczUngrOSnVzg9JTEFANh7men85QGXmbPCEd84Y4WjvnHR6ho/X/tlPgoAjhS1yoRTKxyxytSuFWZH8xMAkO5bXq/CTuQvP196pZfitxlWQ3RlP8woLo/LD0/hcpj/4db+ffxdL3Ty8sv/rzf4H/dZOTvf6K3l6pmAGBV/5baWAcB6DQBS8ldO5TAAlN0AdPT8lYs4DkBnCQCSz9ip/LRvOdTq7IAAKIAOpIA8UAYaQAcYAlNgAWyAI3ADXsAPBIPNgA2iQQLgg3SQA3aBfFAISsBBUAVqQQNoAq3gDOgE58FlcA3cAnfBCHgMBGASvAJz4D1YhCAIC5EhGiQFKUCqkDZkCLEgK8gR8oB8oWAoDIqCeFAqlAPthgqhUqgKqoOaoJ+gc9Bl6AY0BD2ExqEZ6E/oE4zAJJgOy8FqsB7Mgm1hd9gP3gRHwUlwFpwH74Mr4Hr4FNwBX4ZvwSOwAH4FzyMAISIMRBHRQViIPeKFhCCRCB/ZjhQg5Ug90op0I/3IPUSAzCIfURgUDcVE6aAsUC4ofxQblYTajipCVaFOojpQfah7qHHUHOormoyWRWujzdGu6CB0FDodnY8uRzei29FX0SPoSfR7DAbDwKhjTDEumGBMLCYbU4Q5jGnDXMIMYSYw81gsVgqrjbXEemHDsSnYfGwl9hT2InYYO4n9gCPi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YmoKNCAwIG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDE3LTEwLTEwVDA4OjQxOjA1KzAyOjAwPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQcm9kdWNlcj5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC9wZGY6UHJvZHVjZXI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHJkZjphYm91dD0iIj4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTctMTAtMTBUMDg6NDE6MDUrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTEwLTEwVDA4OjQxOjA1KzAyOjAwPC94bXA6Q3JlYXRlRGF0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agoxNTc3CmVuZG9iago0OSAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Db250ZW50cyA0NyAwIFIKPj4KZW5kb2JqCjUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI1IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjc5LjYyOSAxMTcuMTkgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMDkgNjc5LjYyOSA1NDAuMCA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjY3LjYyOSAxNTMuODU4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NjcuNjI5IDUzOS45OTggNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MyAwIFIKL0ggL0kKCj4+CmVuZG9iago1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NTUuNjI5IDI1My41MDcgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY1NS42MjkgNTM5Ljk5OCA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNjM0LjQgbnVsbF0KPj4KZW5kb2JqCjYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0My42MjkgMjI2LjEzMiA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjQzLjYyOSA1MzkuOTk4IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA1NDYuMCBudWxsXQo+PgplbmRvYmoKNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjMxLjYyOSAyNTUuMDE5IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MzEuNjI5IDUzOS45OTggNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MiAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDQ3OS42IG51bGxdCj4+CmVuZG9iago2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTkuNjI5IDI0Ny41MDggNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYxOS42MjkgNTM5Ljk5OCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDAxLjIgbnVsbF0KPj4KZW5kb2JqCjY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwNy42MjkgMjUyLjEzMyA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjA3LjYyOSA1MzkuOTk4IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAzNTguOCBudWxsXQo+PgplbmRvYmoKNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTk1LjYyOSAyNjMuNjU2IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1OTUuNjI5IDUzOS45OTggNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MSAwIFIKL0ggL0kKCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDMwNC40IG51bGxdCj4+CmVuZG9iago3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODMuNjI5IDQwNy40NDkgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU4My42MjkgNTM5Ljk5OCA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMjI2LjAgbnVsbF0KPj4KZW5kb2JqCjc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU3MS42MjkgMzMzLjYxOSA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTcxLjYyOSA1MzkuOTk4IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKODAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAxNTkuNiBudWxsXQo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTU5LjYyOSAxODIuNDg3IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NTkuNjI5IDUzOS45OTggNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDU0Ny42MjkgMjA0Ljk3NiA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTQ3LjYyOSA1MzkuOTk4IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTM1LjYyOSAxNzMuNDA4IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1MzUuNjI5IDUzOS45OTggNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NiAwIFIKL0ggL0kKCj4+CmVuZG9iago4OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDYyNi40IG51bGxdCj4+CmVuZG9iago5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjMuNjI5IDE2NC45MTMgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuODA3IDUyMy42MjkgNTQwLjE2NyA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNTU4LjAgbnVsbF0KPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxMS42MjkgMjA5LjU1MiA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTExLjYyOSA1MzkuOTk4IDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA0ODkuNiBudWxsXQo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDk5LjYyOSAyMjEuNzk0IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0OTkuNjI5IDUzOS45OTggNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NSAwIFIKL0ggL0kKCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4Ny42MjkgMTQ5LjM5IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDg3LjYyOSA1MzkuOTk4IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNjQ0LjggbnVsbF0KPj4KZW5kb2JqCjEwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NzUuNjI5IDE5OS4wMDYgNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDc1LjYyOSA1MzkuOTk4IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDU2OC40IG51bGxdCj4+CmVuZG9iagoxMDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDYzLjYyOSAxOTQuNjQxIDQ3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQ2My42MjkgNTM5Ljk5OCA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTA4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDUxLjYyOSAxNjEuNzg0IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQ1MS42MjkgNTM5Ljk5OCA0NjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA2NjYuMzM5IG51bGxdCj4+CmVuZG9iagoxMTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDM5LjYyOSAzNjEuOTIxIDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQzOS42MjkgNTM5Ljk5OCA0NDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA2MDAuNzQxIG51bGxdCj4+CmVuZG9iagoxMTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDI3LjYyOSAzODguNjA2IDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDQyNy42MjkgNTM5Ljk5NyA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA1MzUuMTQzIG51bGxdCj4+CmVuZG9iagoxMTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDE1LjYyOSAzOTEuMDM2IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDQxNS42MjkgNTM5Ljk5NyA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA0NjkuNTQ1IG51bGxdCj4+CmVuZG9iagoxMjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAzNzguMjg3IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDQwMy42MjkgNTM5Ljk5NyA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA0MDMuOTQ3IG51bGxdCj4+CmVuZG9iagoxMjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzkxLjYyOSAzNjUuMzc4IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDM5MS42MjkgNTM5Ljk5NyA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAzMzguMzQ5IG51bGxdCj4+CmVuZG9iagoxMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzc5LjYyOSAzNjQuMzAyIDM4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDM3OS42MjkgNTM5Ljk5NyAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAyNzIuNzUxIG51bGxdCj4+CmVuZG9iagoxMjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzY3LjYyOSA0OTkuMDU1IDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjMyIDM2Ny42MjkgNTM5Ljk5MiAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAxODAuNzUzIG51bGxdCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzU1LjYyOSAzNjMuNDU1IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM1NS42MjkgNTM5Ljk5OCAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAxMTUuMTU1IG51bGxdCj4+CmVuZG9iagoxMzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQzLjYyOSAzOTQuNzgxIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDM0My42MjkgNTM5Ljk5NyAzNTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKMTM4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMzMS42MjkgMzE5LjcyOSAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAzMzEuNjI5IDUzOS45OTcgMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNjMwLjY2OSBudWxsXQo+PgplbmRvYmoKMTQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMxOS42MjkgMjY4Ljk0IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDMxOS42MjkgNTM5Ljk5NyAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA1NDEuMzM4IG51bGxdCj4+CmVuZG9iagoxNDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzA3LjYyOSAzMjkuODA5IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDMwNy42MjkgNTM5Ljk5NyAzMTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA0NjQuMDA3IG51bGxdCj4+CmVuZG9iagoxNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjk1LjYyOSAzMTEuMzEyIDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDI5NS42MjkgNTM5Ljk5NyAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzOTguNjc2IG51bGxdCj4+CmVuZG9iagoxNTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjgzLjYyOSAzMTMuNjQzIDI5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDI4My42MjkgNTM5Ljk5NyAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzMzMuMzQ1IG51bGxdCj4+CmVuZG9iagoxNTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjcxLjYyOSAzMTQuMjEgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjcxLjYyOSA1MzkuOTk4IDI4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDI2OC4wMTQgbnVsbF0KPj4KZW5kb2JqCjE1NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNTkuNjI5IDMxNi41NDEgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjU5LjYyOSA1MzkuOTk4IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDIwMi42ODMgbnVsbF0KPj4KZW5kb2JqCjE1OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDcuNjI5IDMxNi4xNTMgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMjQ3LjYyOSA1MzkuOTk3IDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDEzNy4zNTIgbnVsbF0KPj4KZW5kb2JqCjE2MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI5IDMyMS41NjEgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjM1LjYyOSA1MzkuOTk4IDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjIzLjYyOSAzMzAuMTE3IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDIyMy42MjkgNTM5Ljk5OCAyMzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA2NjEuMTQyIG51bGxdCj4+CmVuZG9iagoxNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjExLjYyOSAzMjcuODk2IDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDIxMS42MjkgNTM5Ljk5OCAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA1OTYuMTQ3IG51bGxdCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTk5LjYyOSAzMTkuODg4IDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE5OS42MjkgNTM5Ljk5NyAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA1MzEuMTUyIG51bGxdCj4+CmVuZG9iagoxNzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTg3LjYyOSAzMDUuMTU2IDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTczIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDE4Ny42MjkgNTM5Ljk5OCAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA0NjYuMTU3IG51bGxdCj4+CmVuZG9iagoxNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTc1LjYyOSAzMzguNTI0IDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE3NS42MjkgNTM5Ljk5NyAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA0MDEuMTYyIG51bGxdCj4+CmVuZG9iagoxODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTYzLjYyOSAzMjguMzk0IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDE2My42MjkgNTM5Ljk5OCAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCAzMjQuMTY3IG51bGxdCj4+CmVuZG9iagoxODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTUxLjYyOSA0ODAuNzcgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMTUxLjYyOSA1MzkuOTk4IDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDI0NC43NzIgbnVsbF0KPj4KZW5kb2JqCjE4NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5IDM3NS43ODYgMTQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMTM5LjYyOSA1MzkuOTk4IDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDE3OS43NzcgbnVsbF0KPj4KZW5kb2JqCjE4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMjcuNjI5IDMyNy4zMzggMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMTI3LjYyOSA1MzkuOTk4IDEzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDExNC43ODIgbnVsbF0KPj4KZW5kb2JqCjE5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMTUuNjI5IDM2NC45NjkgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMTE1LjYyOSA1MzkuOTk4IDEyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoxOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTAzLjYyOSA0MzguNDQ4IDExMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDEwMy42MjkgNTM5Ljk5NyAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA2MzEuNiBudWxsXQo+PgplbmRvYmoKMTk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDkxLjYyOSAzMzAuNDY2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FL7957EgXD/876//9sP/+SF8/ecf/uVf7U//h/15/fq/Pxyv8e3X/Fd7+/sFHH8tvtvooa7v/xm2H5V3uMHx7sLX//rht7//4Z9/sc80hq/f/8/tJr16d0uc8RXhnoljZOr3sRanw/B4m1KJkGz/2DcF//v/AdNrFg0KZW5kc3RyZWFtCmVuZG9iagoyMDQgMCBvYmoKMjU1OTQKZW5kb2JqCjIwNSAwIG9iagpbCjUxIDAgUgo1MiAwIFIKNTQgMCBSCjU1IDAgUgo1NyAwIFIKNTggMCBSCjYwIDAgUgo2MSAwIFIKNjMgMCBSCjY0IDAgUgo2NiAwIFIKNjcgMCBSCjY5IDAgUgo3MCAwIFIKNzIgMCBSCjczIDAgUgo3NSAwIFIKNzYgMCBSCjc4IDAgUgo3OSAwIFIKODEgMCBSCjgyIDAgUgo4NCAwIFIKODUgMCBSCjg3IDAgUgo4OCAwIFIKOTAgMCBSCjkxIDAgUgo5MyAwIFIKOTQgMCBSCjk2IDAgUgo5NyAwIFIKOTkgMCBSCjEwMCAwIFIKMTAyIDAgUgoxMDMgMCBSCjEwNSAwIFIKMTA2IDAgUgoxMDggMCBSCjEwOSAwIFIKMTExIDAgUgoxMTIgMCBSCjExNCAwIFIKMTE1IDAgUgoxMTcgMCBSCjExOCAwIFIKMTIwIDAgUgoxMjEgMCBSCjEyMyAwIFIKMTI0IDAgUgoxMjYgMCBSCjEyNyAwIFIKMTI5IDAgUgoxMzAgMCBSCjEzMiAwIFIKMTMzIDAgUgoxMzUgMCBSCjEzNiAwIFIKMTM4IDAgUgoxMzkgMCBSCjE0MSAwIFIKMTQyIDAgUgoxNDQgMCBSCjE0NSAwIFIKMTQ3IDAgUgoxNDggMCBSCjE1MCAwIFIKMTUxIDAgUgoxNTMgMCBSCjE1NCAwIFIKMTU2IDAgUgoxNTcgMCBSCjE1OSAwIFIKMTYwIDAgUgoxNjIgMCBSCjE2MyAwIFIKMTY1IDAgUgoxNjYgMCBSCjE2OCAwIFIKMTY5IDAgUgoxNzEgMCBSCjE3MiAwIFIKMTc0IDAgUgoxNzUgMCBSCjE3NyAwIFIKMTc4IDAgUgoxODAgMCBSCjE4MSAwIFIKMTgzIDAgUgoxODQgMCBSCjE4NiAwIFIKMTg3IDAgUgoxODkgMCBSCjE5MCAwIFIKMTkyIDAg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b2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDIzMiAwIFIKPj4KZW5kb2JqCjIzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDQ3OC44IG51bGxdCj4+CmVuZG9iagoyMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzA5LjAwNSAyNzUuNTg0IDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDcwOS4wMDUgNTM5Ljk5NyA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA0MDIuNCBudWxsXQo+PgplbmRvYmoKMjM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMjU2LjczOCA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA2OTcuMDA1IDUzOS45OTcgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwOSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2ODUuMDA1IDEyNS4zIDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY4NS4wMDUgNTM5Ljk5OCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNjMwLjMxNCBudWxsXQo+PgplbmRvYmoKMjQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMjI2Ljk0IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY3My4wMDUgNTM5Ljk5OCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgMzM5LjE2MyBudWxsXQo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY2MS4wMDUgMjE0LjQ5NyA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NjEuMDA1IDUzOS45OTggNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQ5LjAwNSAxNzUuMzk1IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY0OS4wMDUgNTM5Ljk5OCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEyIDAgUiAvWFlaIDcyLjAgNDI0LjMgbnVsbF0KPj4KZW5kb2JqCjI1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDI2Mi43OTIgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjM3LjAwNSA1MzkuOTk4IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjI1LjAwNSAxMzIuOTA4IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDYyNS4wMDUgNTM5Ljk5OCA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDYxMy4wMDUgMTE5LjA2IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDYxMy4wMDUgNTM5Ljk5OCA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjI2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDE3MS45MiA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA2MDEuMDA1IDUzOS45OTggNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDYyNC40IG51bGxdCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTg5LjAwNSAxNjcuODMzIDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDU4OS4wMDUgNTM5Ljk5OCA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjM0IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDU3Ny4wMDUgMTUwLjMzMyA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjQ0OCA1NzcuMDA1IDU0MC4xNjggNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQov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b2RlID4+CnN0cmVhbQp4nJvE8P8P/83vL/j///+hAAA5GAh6CmVuZHN0cmVhbQplbmRvYmoKMjc5IDAgb2JqCjIyCmVuZG9iagoyODAgMCBvYmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMAogIC9CYXNlRm9udCAvRUFBQUFBK0RlamFWdVNhbnMtQm9sZAogIC9FbmNvZGluZyAvSWRlbnRpdHktSAogIC9Ub1VuaWNvZGUgMjgxIDAgUgogIC9EZXNjZW5kYW50Rm9udHMgWzI4MiAwIFJdCj4+CmVuZG9iagoyODIgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUErRGVqYVZ1U2Fucy1Cb2xkIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciAyNzUgMCBSCi9EVyAwCi9XIFsgMCBbNjAwIDM0OCA0MTUgODMwIDY4NyA1OTIgNzExIDEwNDEgNjc4IDcxMSA0NzggNjc0IDM0MiA2ODIgNzczIDcxNSA3NzAgNTk1IDQ5MyA5OTUgNzE1IDM0MiAzNzkgNzczIDY5NSA2OTUgNjk1IDY4MyA3NjIgMzk5IDY5NSA2OTUgNjk1IDcxNSA0MzUgNzMzIDYzNyA2NDUgNzE1IDczMiA3MTEgMzQ4IDY4MyA4NTAgNjUxIDkyMyA2OTUgNjk1IDcyMCA2OTUgODM2IDY1MSAxMTAzIDY5NSA3MTUgNjY1IDM3MiA4MzcgMzQyIDgxMiA4MzYgNzI0IDM2NSBdIF0KPj4KZW5kb2JqCjI4MSAwIG9iago8PCAvTGVuZ3RoIDI4MyAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZTbitswEIbv9yl0ub1YbGl82MASKCmFXPRA0z6AI8mpobGN41zk7Wvrm3Whhhx+z4z0f5JG2eH46dh3s8m+T4M/xdm0XR+meBvuk4/mHC9d/2SdCZ2fVaVvf23Gp2wpPj1uc7we+3YwQla4j5ppTPZj+XOb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CjAwMDAwMDAxNDUgMDAwMDAgbiAKMDAwMDAwMjY4MyAwMDAwMCBuIAowMDAwMDAyNzAzIDAwMDAwIG4gCjAwMDAwMDI3MzYgMDAwMDAgbiAKMDAwMDAwMzY4MyAwMDAwMCBuIAowMDAwMDAzNzAyIDAwMDAwIG4gCjAwMDAwNTIyMjcgMDAwMDAgbiAKMDAwMDA1MjI0OCAwMDAwMCBuIAowMDAwMTA1NTA4IDAwMDAwIG4gCjAwMDAxMDU1MzAgMDAwMDAgbiAKMDAwMDEwNjAzMSAwMDAwMCBuIAowMDAwMTA2MDUxIDAwMDAwIG4gCjAwMDAyNTQyMzggMDAwMDAgbiAKMDAwMDI1MzkzMiAwMDAwMCBuIAowMDAwMTA2MjQ1IDAwMDAwIG4gCjAwMDAxMTI0MTYgMDAwMDAgbiAKMDAwMDExMjQzNyAwMDAwMCBuIAowMDAwMTE5NjE3IDAwMDAwIG4gCjAwMDAxMTk2MzggMDAwMDAgbiAKMDAwMDExOTcyMyAwMDAwMCBuIAowMDAwMTE5ODYxIDAwMDAwIG4gCjAwMDAxMjA3OTMgMDAwMDAgbiAKMDAwMDEyMDgxMyAwMDAwMCBuIAowMDAwMTIwODQwIDAwMDAwIG4gCjAwMDAxMjEwNTEgMDAwMDAgbiAKMDAwMDEyMzc3OSAwMDAwMCBuIAowMDAwMTIzODAwIDAwMDAwIG4gCjAwMDAxMjM5OTQgMDAwMDAgbiAKMDAwMDEyNDg0NCAwMDAwMCBuIAowMDAwMTI0ODY0IDAwMDAwIG4gCjAwMDAxMjUwNTggMDAwMDAgbiAKMDAwMDEyNTE1MyAwMDAwMCBuIAowMDAwMTI1Mjg5IDAwMDAwIG4gCjAwMDAxMjY2OTIgMDAwMDAgbiAKMDAwMDEyNjcxMyAwMDAwMCBuIAowMDAwMTI2NzQwIDAwMDAwIG4gCjAwMDAxMjY5NTEgMDAwMDAgbiAKMDAwMDEyODUzMSAwMDAwMCBuIAowMDAwMTI4NTUyIDAwMDAwIG4gCjAwMDAxMjg3NDYgMDAwMDAgbiAKMDAwMDEzMDM5MCAwMDAwMCBuIAowMDAwMTMwNDExIDAwMDAwIG4gCjAwMDAxMzA2MDUgMDAwMDAgbiAKMDAwMDEzMjIyNSAwMDAwMCBuIAowMDAwMTMyMjQ2IDAwMDAwIG4gCjAwMDAxMzI0NDAgMDAwMDAgbiAKMDAwMDEzNDA5MyAwMDAwMCBuIAowMDAwMTM0MTE0IDAwMDAwIG4gCjAwMDAxMzQzMDggMDAwMDAgbiAKMDAwMDEzNDM4NiAwMDAwMCBuIAowMDAwMTM0NTIyIDAwMDAwIG4gCjAwMDAxMzQ2NTkgMDAwMDAgbiAKMDAwMDEzNDczNyAwMDAwMCBuIAowMDAwMTM0ODc0IDAwMDAwIG4gCjAwMDAxMzUwMTQgMDAwMDAgbiAKMDAwMDEzNTA5MiAwMDAwMCBuIAowMDAwMTM1MjMwIDAwMDAwIG4gCjAwMDAxMzUzNzAgMDAwMDAgbiAKMDAwMDEzNTQ0OCAwMDAwMCBuIAowMDAwMTM1NTg2IDAwMDAwIG4gCjAwMDAxMzU3MjYgMDAwMDAgbiAKMDAwMDEzNTgwNCAwMDAwMCBuIAowMDAwMTM1OTQyIDAwMDAwIG4gCjAwMDAxMzYwODIgMDAwMDAgbiAKMDAwMDEzNjE2MCAwMDAwMCBuIAowMDAwMTM2Mjk4IDAwMDAwIG4gCjAwMDAxMzY0MzggMDAwMDAgbiAKMDAwMDEzNjUxNiAwMDAwMCBuIAowMDAwMTM2NjU0IDAwMDAwIG4gCjAwMDAxMzY3OTQgMDAwMDAgbiAKMDAwMDEzNjg3MiAwMDAwMCBuIAowMDAwMTM3MDEwIDAwMDAwIG4gCjAwMDAxMzcxNTAgMDAwMDAgbiAKMDAwMDEzNzIyOCAwMDAwMCBuIAowMDAwMTM3MzY2IDAwMDAwIG4gCjAwMDAxMzc1MDYgMDAwMDAgbiAKMDAwMDEzNzU4NCAwMDAwMCBuIAowMDAwMTM3NzIyIDAwMDAwIG4gCjAwMDAxMzc4NjIgMDAwMDAgbiAKMDAwMDEzNzk0MCAwMDAwMCBuIAowMDAwMTM4MDc4IDAwMDAwIG4gCjAwMDAxMzgyMTggMDAwMDAgbiAKMDAwMDEzODI5NiAwMDAwMCBuIAowMDAwMTM4NDMzIDAwMDAwIG4gCjAwMDAxMzg1NzMgMDAwMDAgbiAKMDAwMDEzODY1MSAwMDAwMCBuIAowMDAwMTM4Nzg5IDAwMDAwIG4gCjAwMDAxMzg5MjkgMDAwMDAgbiAKMDAwMDEzOTAwNyAwMDAwMCBuIAowMDAwMTM5MTQ1IDAwMDAwIG4gCjAwMDAxMzkyODUgMDAwMDAgbiAKMDAwMDEzOTM2MyAwMDAwMCBuIAowMDAwMTM5NTAxIDAwMDAwIG4gCjAwMDAxMzk2NDEgMDAwMDAgbiAKMDAwMDEzOTcxOSAwMDAwMCBuIAowMDAwMTM5ODU3IDAwMDAwIG4gCjAwMDAxMzk5OTcgMDAwMDAgbiAKMDAwMDE0MDA3NSAwMDAwMCBuIAowMDAwMTQwMjExIDAwMDAwIG4gCjAwMDAxNDAzNTIgMDAwMDAgbiAKMDAwMDE0MDQzMSAwMDAwMCBuIAowMDAwMTQwNTcxIDAwMDAwIG4gCjAwMDAxNDA3MTMgMDAwMDAgbiAKMDAwMDE0MDc5MiAwMDAwMCBuIAowMDAwMTQwOTMyIDAwMDAwIG4gCjAwMDAxNDEwNzQgMDAwMDAgbiAKMDAwMDE0MTE1MyAwMDAwMCBuIAowMDAwMTQxMjkyIDAwMDAwIG4gCjAwMDAxNDE0MzQgMDAwMDAgbiAKMDAwMDE0MTUxNSAwMDAwMCBuIAowMDAwMTQxNjU1IDAwMDAwIG4gCjAwMDAxNDE3OTcgMDAwMDAgbiAKMDAwMDE0MTg3OCAwMDAwMCBuIAowMDAwMTQyMDE4IDAwMDAwIG4gCjAwMDAxNDIxNjAgMDAwMDAgbiAKMDAwMDE0MjI0MSAwMDAwMCBuIAowMDAwMTQyMzgxIDAwMDAwIG4gCjAwMDAxNDI1MjMgMDAwMDAgbiAKMDAwMDE0MjYwNCAwMDAwMCBuIAowMDAwMTQyNzQ0IDAwMDAwIG4gCjAwMDAxNDI4ODYgMDAwMDAgbiAKMDAwMDE0Mjk2NyAwMDAwMCBuIAowMDAwMTQzMTA3IDAwMDAwIG4gCjAwMDAxNDMyNDkgMDAwMDAgbiAKMDAwMDE0MzMzMCAwMDAwMCBuIAowMDAwMTQzNDcwIDAwMDAwIG4gCjAwMDAxNDM2MTIgMDAwMDAgbiAKMDAwMDE0MzY5MyAwMDAwMCBuIAowMDAwMTQzODMzIDAwMDAwIG4gCjAwMDAxNDM5NzUgMDAwMDAgbiAKMDAwMDE0NDA1NiAwMDAwMCBuIAowMDAwMTQ0MTk2IDAwMDAwIG4gCjAwMDAxNDQzMzggMDAwMDAgbiAKMDAwMDE0NDQxOSAwMDAwMCBuIAowMDAwMTQ0NTU5IDAwMDAwIG4gCjAwMDAxNDQ3MDEgMDAwMDAgbiAKMDAwMDE0NDc4MCAwMDAwMCBuIAowMDAwMTQ0OTIwIDAwMDAwIG4gCjAwMDAxNDUwNjIgMDAwMDAgbiAKMDAwMDE0NTE0MyAwMDAwMCBuIAowMDAwMTQ1MjgyIDAwMDAwIG4gCjAwMDAxNDU0MjQgMDAwMDAgbiAKMDAwMDE0NTUwNSAwMDAwMCBuIAowMDAwMTQ1NjQ1IDAwMDAwIG4gCjAwMDAxNDU3ODcgMDAwMDAgbiAKMDAwMDE0NTg2OCAwMDAwMCBuIAowMDAwMTQ2MDA4IDAwMDAwIG4gCjAwMDAxNDYxNTAgMDAwMDAgbiAKMDAwMDE0NjIzMSAwMDAwMCBuIAowMDAwMTQ2MzcxIDAwMDAwIG4gCjAwMDAxNDY1MTMgMDAwMDAgbiAKMDAwMDE0NjU5NCAwMDAwMCBuIAowMDAwMTQ2NzMzIDAwMDAwIG4gCjAwMDAxNDY4NzUgMDAwMDAgbiAKMDAwMDE0Njk1NiAwMDAwMCBuIAowMDAwMTQ3MDk2IDAwMDAwIG4gCjAwMDAxNDcyMzggMDAwMDAgbiAKMDAwMDE0NzMxOSAwMDAwMCBuIAowMDAwMTQ3NDU5IDAwMDAwIG4gCjAwMDAxNDc2MDEgMDAwMDAgbiAKMDAwMDE0NzY4MiAwMDAwMCBuIAowMDAwMTQ3ODIyIDAwMDAwIG4gCjAwMDAxNDc5NjQgMDAwMDAgbiAKMDAwMDE0ODA0MyAwMDAwMCBuIAowMDAwMTQ4MTgzIDAwMDAwIG4gCjAwMDAxNDgzMjUgMDAwMDAgbiAKMDAwMDE0ODQwNiAwMDAwMCBuIAowMDAwMTQ4NTQ2IDAwMDAwIG4gCjAwMDAxNDg2ODggMDAwMDAgbiAKMDAwMDE0ODc2OSAwMDAwMCBuIAowMDAwMTQ4OTA5IDAwMDAwIG4gCjAwMDAxNDkwNTEgMDAwMDAgbiAKMDAwMDE0OTEzMiAwMDAwMCBuIAowMDAwMTQ5MjcyIDAwMDAwIG4gCjAwMDAxNDk0MTQgMDAwMDAgbiAKMDAwMDE0OTQ5NSAwMDAwMCBuIAowMDAwMTQ5NjM1IDAwMDAwIG4gCjAwMDAxNDk3NzcgMDAwMDAgbiAKMDAwMDE0OTg1OCAwMDAwMCBuIAowMDAwMTQ5OTk4IDAwMDAwIG4gCjAwMDAxNTAxNDAgMDAwMDAgbiAKMDAwMDE1MDIyMSAwMDAwMCBuIAowMDAwMTUwMzYwIDAwMDAwIG4gCjAwMDAxNTA1MDIgMDAwMDAgbiAKMDAwMDE1MDU4MyAwMDAwMCBuIAowMDAwMTUwNzIzIDAwMDAwIG4gCjAwMDAxNTA4NjUgMDAwMDAgbiAKMDAwMDE1MDk0NiAwMDAwMCBuIAowMDAwMTUxMDg2IDAwMDAwIG4gCjAwMDAxNTEyMjggMDAwMDAgbiAKMDAwMDE1MTMwOSAwMDAwMCBuIAowMDAwMTUxNDQ5IDAwMDAwIG4gCjAwMDAxNTE1OTEgMDAwMDAgbiAKMDAwMDE1MTY3MCAwMDAwMCBuIAowMDAwMTUxODEwIDAwMDAwIG4gCjAwMDAxNTE5NTIgMDAwMDAgbiAKMDAwMDE1MjAzMSAwMDAwMCBuIAowMDAwMTUyMTcwIDAwMDAwIG4gCjAwMDAxNTIzMTEgMDAwMDAgbiAKMDAwMDE1MjM5MCAwMDAwMCBuIAowMDAwMTUyNTI4IDAwMDAwIG4gCjAwMDAxNTI2NjggMDAwMDAgbiAKMDAwMDE3ODM0MCAwMDAwMCBuIAowMDAwMTc4MzYzIDAwMDAwIG4gCjAwMDAxNzkxNjcgMDAwMDAgbiAKMDAwMDE3OTM4MSAwMDAwMCBuIAowMDAwMTgxNDExIDAwMDAwIG4gCjAwMDAxODE0MzMgMDAwMDAgbiAKMDAwMDE4MTYyOSAwMDAwMCBuIAowMDAwMTg0MTgzIDAwMDAwIG4gCjAwMDAxODQyMDUgMDAwMDAgbiAKMDAwMDE4NDQwMSAwMDAwMCBuIAowMDAwMTg0NDgxIDAwMDAwIG4gCjAwMDAxODQ2MjAgMDAwMDAgbiAKMDAwMDE4NDc2MiAwMDAwMCBuIAowMDAwMTg1NzEwIDAwMDAwIG4gCjAwMDAxODU3MzEgMDAwMDAgbiAKMDAwMDE4NTc2OCAwMDAwMCBuIAowMDAwMTg1OTgyIDAwMDAwIG4gCjAwMDAxODY2NjkgMDAwMDAgbiAKMDAwMDE4NjY5MCAwMDAwMCBuIAowMDAwMTg2ODg2IDAwMDAwIG4gCjAwMDAxODgxODAgMDAwMDAgbiAKMDAwMDE4ODIwMiAwMDAwMCBuIAowMDAwMTg4Mzk4IDAwMDAwIG4gCjAwMDAxODk1NzMgMDAwMDAgbiAKMDAwMDE4OTU5NSAwMDAwMCBuIAowMDAwMTg5NzkxIDAwMDAwIG4gCjAwMDAxOTE5MDIgMDAwMDAgbiAKMDAwMDE5MTkyNCAwMDAwMCBuIAowMDAwMTkyMTIwIDAwMDAwIG4gCjAwMDAxOTM0NzIgMDAwMDAgbiAKMDAwMDE5MzQ5NCAwMDAwMCBuIAowMDAwMTkzNjkwIDAwMDAwIG4gCjAwMDAxOTM3NjkgMDAwMDAgbiAKMDAwMDE5MzkwOSAwMDAwMCBuIAowMDAwMTk0MDUxIDAwMDAwIG4gCjAwMDAxOTQxMzAgMDAwMDAgbiAKMDAwMDE5NDI3MCAwMDAwMCBuIAowMDAwMTk0NDEyIDAwMDAwIG4gCjAwMDAxOTQ0OTIgMDAwMDAgbiAKMDAwMDE5NDYyOSAwMDAwMCBuIAowMDAwMTk0NzcxIDAwMDAwIG4gCjAwMDAxOTQ4NTMgMDAwMDAgbiAKMDAwMDE5NDk5MiAwMDAwMCBuIAowMDAwMTk1MTM0IDAwMDAwIG4gCjAwMDAxOTUyMTYgMDAwMDAgbiAKMDAwMDE5NTM1NiAwMDAwMCBuIAowMDAwMTk1NDk4IDAwMDAwIG4gCjAwMDAxOTU1NzggMDAwMDAgbiAKMDAwMDE5NTcxOCAwMDAwMCBuIAowMDAwMTk1ODYwIDAwMDAwIG4gCjAwMDAxOTU5NDAgMDAwMDAgbiAKMDAwMDE5NjA4MCAwMDAwMCBuIAowMDAwMTk2MjIyIDAwMDAwIG4gCjAwMDAxOTYzMDIgMDAwMDAgbiAKMDAwMDE5NjQ0MSAwMDAwMCBuIAowMDAwMTk2NTgzIDAwMDAwIG4gCjAwMDAxOTY2NjMgMDAwMDAgbiAKMDAwMDE5NjgwMSAwMDAwMCBuIAowMDAwMTk2OTQzIDAwMDAwIG4gCjAwMDAxOTcwMjMgMDAwMDAgbiAKMDAwMDE5NzE2MiAwMDAwMCBuIAowMDAwMTk3MzA0IDAwMDAwIG4gCjAwMDAxOTczODQgMDAwMDAgbiAKMDAwMDE5NzUyNCAwMDAwMCBuIAowMDAwMTk3NjY2IDAwMDAwIG4gCjAwMDAxOTc3NDYgMDAwMDAgbiAKMDAwMDE5Nzg4NSAwMDAwMCBuIAowMDAwMTk4MDI3IDAwMDAwIG4gCjAwMDAyMDY5OTQgMDAwMDAgbiAKMDAwMDIwNzAxNiAwMDAwMCBuIAowMDAwMjA3MjI5IDAwMDAwIG4gCjAwMDAyMDc0NDMgMDAwMDAgbiAKMDAwMDIwNzcwOCAwMDAwMCBuIAowMDAwMjIyMjU0IDAwMDAwIG4gCjAwMDAyMjIyMzEgMDAwMDAgbiAKMDAwMDIyMjM1NCAwMDAwMCBuIAowMDAwMjIyMzc0IDAwMDAwIG4gCjAwMDAyMjMwMjEgMDAwMDAgbiAKMDAwMDIyMjUzOSAwMDAwMCBuIAowMDAwMjIzNjAyIDAwMDAwIG4gCjAwMDAyMjM2MjMgMDAwMDAgbiAKMDAwMDIyMzg4MyAwMDAwMCBuIAowMDAwMjM5ODQ0IDAwMDAwIG4gCjAwMDAyMzk4MjEgMDAwMDAgbiAKMDAwMDIzOTk0OSAwMDAwMCBuIAowMDAwMjM5OTY5IDAwMDAwIG4gCjAwMDAyNDA2NTYgMDAwMDAgbiAKMDAwMDI0MDEyOSAwMDAwMCBuIAowMDAwMjQxMjkxIDAwMDAwIG4gCjAwMDAyNDEzMTIgMDAwMDAgbiAKMDAwMDI0MTU3NCAwMDAwMCBuIAowMDAwMjUyNjk4IDAwMDAwIG4gCjAwMDAyNTI2NzUgMDAwMDAgbiAKMDAwMDI1Mjc5NyAwMDAwMCBuIAowMDAwMjUyODE3IDAwMDAwIG4gCjAwMDAyNTM0MDAgMDAwMDAgbiAKMDAwMDI1Mjk4MSAwMDAwMCBuIAowMDAwMjUzOTExIDAwMDAwIG4gCjAwMDAyNTQxMjkgMDAwMDAgbiAKMDAwMDI1NDQ2OCAwMDAwMCBuIAp0cmFpbGVyCjw8CiAgL1Jvb3QgMzAyIDAgUgogIC9JbmZvIDEgMCBSCiAgL0lEIFs8OUY4QjRGQkUxOTQ3RUJFNkY3MDBGNzQ5Rjc4QTc5NEI+IDw5RjhCNEZCRTE5NDdFQkU2RjcwMEY3NDlGNzhBNzk0Qj5dCiAgL1NpemUgMzA0Cj4+CnN0YXJ0eHJlZgoyNTQ2NTAKJSVFT0YK