TimeAccounting
6.0.8
OTRS AG
https://otrs.com/
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
- Code cleanup.
- Updated translations, thanks to all translators.
- Code cleanup.
- Updated translations, thanks to all translators.
- Fixed: Time spans will be saved implicitly (bug#13466).
- Updated license information.
- Updated translations, thanks to all translators.
- Allow specific users to skip time accounting.
- Updated Hungarian package description.
- Fixed: Setting "Days of vacation" to value 0 not possible (bug#13467).
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Improved display of DefaultUserDateStart and DefaultUserDateEnd settings.
- Fixed bug13415 - Incomplete days widget has wrong day of week names.
- Updated documentation (Configuration chapter).
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Changed default group configuration and implemented migration path for existing systems. TimeAccounting specific user group will no longer be automatically created on new systems.
- Initial version for OTRS 6.
- Updated translations, thanks to all translators.
- Bug#12104 - TimeAccounting statistic silently returns only last full month unless Period filter is used.
A Time Registration Module.
Ein Zeiterfassungsmodul.
Egy munkaidő nyilvántartás modul.
6.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 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<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>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<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 a las functiones de contabilidad de tiempo 'ajustes' y 'reporteo', es necesario añadirlos como miembros del grupo 'admin'.
<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 „beállítási” és „jelentési” funkcióihoz, hozzá kell adnia őket az „admin” 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)->CodeUpgradeFromLowerThan_5_0_92();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUninstall();
2018-11-05 17:00:42
opms.otrs.com
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tjr5cPcCjBS2WrkBQjcAAABgxHomarpVTxdNrxnujoDhR8M1Vlrl1GkJw92RwQKhGwAAgFGPxXLW65FzdyNmGLNjLaA/MIPOWd2I9BQ7O8fh7svngQ7WAAAA8ElEQVRggdANAADAWDBjRkqPupujrLWGsbenFQ3XcLprH6hV0+OTh7svgwhCNwAAAGNEYuKfEK53UtY5q5uYuBIz6BAyDHenwGAzYAYdQ6dwUTc5d9chHT579oLh7tLgohgMlv5bV1RUDFlXAAAAgCenVqsbGxutrBk0mpUVRhnu7oBBh+sND3Q6rUbN4/EYDMZwd2dghIeH9/XVQ0I3AAAAAAAwcsADUwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUeP/ARFu+KcCRz2QAAAAAElFTkSuQmCC
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgZWRpdC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+VGltZSBBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj5NZW51PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5JdGVtQXJlYTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj42MDAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RWRpdCB0aW1lIHJlY29yZC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4yMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBvdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPk92ZXJ2aWV3PC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4xMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5TZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlNldHRpbmdzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj45MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LlJlcG9ydGluZy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyMjIzAwMi1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+UHJvamVjdCB0aW1lIHJlcG9ydGluZy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+NTAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyB2aWV3LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPlRpbWVBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VmlldzwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdFN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nU2V0dGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5pbnZhbGlkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPnZhbGlkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj40MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyTGVhdmVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4yMzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyT3ZlcnRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlU3RhcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkRhdGUiIFZhbHVlUmVnZXg9IiI+MjAxOC0wMS0wMTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkRhdGUiIFZhbHVlUmVnZXg9IiI+MjAxOC0xMi0zMTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+UHV0IHlvdXIgZGVzY3JpcHRpb24gaGVyZS48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlclN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGltZUFjY291bnRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6RnJvbnRlbmROb3RpZmljYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6Tm90aWZpY2F0aW9uOjpUaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Rm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpSZWR1Y2VUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPSZndDsgdHJhdmVsaW5nOyBDb250ZW50ID0mZ3Q7IDUwKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InRyYXZlbGluZyI+NTA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZUFwcGxpY2F0aW9uTW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpCYXNlOjpQcmVBcHBsaWNhdGlvbk1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPktlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpQcm9qZWN0MlJlbWFya1JlZ0V4cCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPl4oPzogUFJPSkVDVFwjIHwgSU5GUkE6IHwgUFJPRFVDVDogKTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OlByb2plY3RMaXN0Q29uc3RyYWludHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWN0aW9uTGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkFjdGl2ZUZpbHRlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWxsb3dNYXNzRW50cnlGb3JVc2VyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpUb29sQmFyTW9kdWxlIyMjMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpUb29sQmFyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3NzQ2xhc3MiPkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvbiI+ZmEgZmEtY2xvY2stbzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI1RpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpTdGF0czwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkZyb250ZW5kOjpSZXBvcnRpbmdQcm9qZWN0IyMjU2hvd09ubHlBY3RpdmVVc2VycyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzo6Vmlld1JlcG9ydGluZ1Byb2plY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmJnX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0J3QsNC40YHRgtC40L3QsCDQu9C4INC40YHQutCw0YLQtSDQtNCwINC40LfRgtGA0LjQtdGC0LUg0YHRh9C10YLQvtCy0L7QtNGB0YLQstC+0YLQviDQt9CwINCy0YDQtdC80LUg0LIg0YLQvtC30Lgg0LTQtdC9Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICfQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0LLRgNC10LzQtdCy0LjRjyDQt9Cw0L/QuNGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn0J7RgtC40LTQtdGC0LUg0LIg0L3QsNGB0YLRgNC+0LnQutC40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQlNCw0YLQsCDQt9CwINC90LDQstC40LPQsNGG0LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0L3QuCDQsdC10Lcg0LfQsNC/0LjRgdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9CY0LfQsdC+0YAg0L3QsCDQstGB0LjRh9C60Lgg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICfQnNCw0YHQvtCy0L4g0LLRitCy0LXQttC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L/RgNC40YfQuNC90LDRgtCwINC30LAg0JLQsNGI0LXRgtC+INC+0YLRgdGK0YHRgtCy0LjQtSDQt9CwINC40LfQsdGA0LDQvdC40YLQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQktCw0LrQsNC90YbQuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfQkiDQvtGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfQn9GA0Lgg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0L7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0JfQsNC00YrQu9C20LjRgtC10LvQvdC40YLQtSDQv9C+0LvQtdGC0LAg0YHQsCDQvNCw0YDQutC40YDQsNC90Lgg0YEgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Ci0YDRj9Cx0LLQsCDQtNCwINCy0YrQstC10LTQtdGC0LUg0L3QsNGH0LDQu9C90L4g0Lgg0LrRgNCw0LnQvdC+INCy0YDQtdC80LUg0LjQu9C4INC/0LXRgNC40L7QtCDQvtGCINCy0YDQtdC80LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ9CX0LDQtNCw0YfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQl9Cw0LHQtdC70LXQttC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAn0JzQvtC70Y8sINC00L7QsdCw0LLQtdGC0LUg0LfQsNCx0LXQu9C10LbQutCwINGBINC/0L7QstC10YfQtSDQvtGCIDgg0LfQvdCw0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Ce0YLRgNC40YbQsNGC0LXQu9C90LjRgtC1INCy0YDQtdC80LXQvdCwINC90LUg0YHQtSDQtNC+0L/Rg9GB0LrQsNGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDRgdC1INC00L7Qv9GD0YHQutCw0YIg0L/QvtCy0YLQvtGA0L3QuCDRh9Cw0YHQvtCy0LUuINCd0LDRh9Cw0LvQvdC+0YLQviDQstGA0LXQvNC1INGB0YrQstC/0LDQtNCwINGBINC00YDRg9CzINC40L3RgtC10YDQstCw0LsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0YTQvtGA0LzQsNGCISDQnNC+0LvRjywg0LLRitCy0LXQtNC10YLQtSDRh9Cw0YEg0YEg0YTQvtGA0LzQsNGCINCn0Kc6INCc0JwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwINC1INGA0LDQt9GA0LXRiNC10L3QviDRgdCw0LzQviDQutCw0YLQviDQutGA0LDQudC90L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC90L4g0LLRgNC10LzQtSEg0JXQtNC40L0g0LTQtdC9INC40LzQsCAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ9Ca0YDQsNC50L3QvtGC0L4g0LLRgNC10LzQtSDRgtGA0Y/QsdCy0LAg0LTQsCDQtSDRgdC70LXQtCDQvdCw0YfQsNC70L3QvtGC0L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INGB0LUg0LTQvtC/0YPRgdC60LDRgiDQv9C+0LLRgtC+0YDQvdC4INGH0LDRgdC+0LLQtS4g0JrRgNCw0LnQvdC+0YLQviDQstGA0LXQvNC1INGB0YrQstC/0LDQtNCwINGBINC00YDRg9CzINC40L3RgtC10YDQstCw0LsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0L/QtdGA0LjQvtC0ISDQldC00LjQvSDQtNC10L0g0LjQvNCwIDI0INGH0LDRgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9CS0LDQu9C40LTQvdC40Y/RgiDQv9C10YDQuNC+0LQg0YLRgNGP0LHQstCwINC00LAg0LUg0L/Qvi3Qs9C+0LvRj9C8INC+0YIg0L3Rg9C70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0L/QtdGA0LjQvtC0ISDQntGC0YDQuNGG0LDRgtC10LvQvdC40YLQtSDQv9C10YDQuNC+0LTQuCDQvdC1INGB0LAg0YDQsNC30YDQtdGI0LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ9CU0L7QsdCw0LLQuCDQtdC00LjQvSDRgNC10LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfQnNC+0LbQtdGC0LUg0LTQsCDQuNC30LHQtdGA0LXRgtC1INGB0LDQvNC+INC10LTQuNC9INC10LvQtdC80LXQvdGCINC+0YIg0LrQstCw0LTRgNCw0YLRh9C10YLQviDQt9CwINC+0YLQvNC10YLQutCwISc7CiAgICAkU2VsZi0+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+eydBZGQgdGFzayd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQt9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICfQn9C10YDQuNC+0LTQuNGC0LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQuNC30YLRgNC40YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHRitC6INC90LAg0L/RgNC+0LXQutGC0LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDQvdCwINC30LDQtNCw0YfQuNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC90LAg0LfQsNC00LDRh9C40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGH0LUg0LjQvNCwINC30LDQtNCw0YfQsCDRgSDRgtC+0LLQsCDQuNC80LUuINCc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDRgSDQv9C+0YLRgNC10LHQuNGC0LXQu9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0L7QutCw0LfQstCw0L3QtSDQvdCwINC40LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNCw0LLQsNC90LUg0LfQsCDRgdGK0LfQtNCw0LLQsNC90LXRgtC+INC90LAg0L/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J3QsNGH0LDQu9C+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/RgNC10LPQu9C10LQg0L3QsCDQstGA0LXQvNC10LLQuNGPINC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9CS0YfQtdGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQo9GC0YDQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfQndGP0LzQsCDQtNCw0L3QvdC4INC30LAg0YLQvtC30Lgg0LTQtdC9Lic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn0J7RgtGH0LXRgtC90L7RgdGCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn0J3QsNGB0YLRgNC+0LnQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L/QvtC90LUg0LXQtNC40L0g0LTQtdC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0L7QstC+INCy0L/QuNGB0LLQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQnNC+0LvRjywg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsCDQt9CwINC+0YLRgdGK0YHRgtCy0LjQtSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQmNC30YLRgNC40LLQsNC90LUg0L3QsCDQstGA0LXQvNC10YLQviDQt9CwINCy0L/QuNGB0LLQsNC90LUg0LIg0YHRh9C10YLQvtCy0L7QtNGB0YLQstC+0YLQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7RgtCy0YrRgNC00LXRgtC1JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnTcO2Y2h0ZW4gU2llIHdpcmtsaWNoIGRpZSBaZWl0ZXJmYXNzdW5nIGbDvHIgZGVuIGFrdHVlbGxlbiBUYWcgbMO2c2NoZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ1plaXRhYnJlY2hudW5nIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdHZWhlIHp1IEVpbnN0ZWxsdW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW1zbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ05pY2h0IGF1c2dlZsO8bGx0ZSBUYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0FsbGUgVGFnZSBhdXN3w6RobGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnQml0dGUgd8OkaGxlbiBTaWUgZGVuIEdydW5kIGbDvHIgSWhyZSBBYndlc2VuaGVpdCBmw7xyIGRpZSBhdXNnZXfDpGhsdGVuIFRhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdpbSBVcmxhdWInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Vya3Jhbmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRmVsZGVyLCBkaWUgYXVzZ2Vmw7xsbHQgd2VyZGVuIG3DvHNzZW4sIHNpbmQgbWl0IGVpbmVtIFN0ZXJuICIqIiBnZWtlbm56ZWljaG5ldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdTaWUgbcO8c3NlbiBlaW5lIFN0YXJ0LSB1bmQgRW5kemVpdCBvZGVyIGVpbmUgWmVpdHNwYW5uZSBhbmdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVMOkdGlna2VpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdBbm1lcmt1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmUgQW5tZXJrdW5nIHZvbiBtZWhyIGFscyA4IFplaWNoZW4gTMOkbmdlIGVpbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZlIEFuZ2FiZW4gc2luZCBuaWNodCBlcmxhdWJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgU3RhcnR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ1VuZ8O8bHRpZ2VzIEZvcm1hdCEgQml0dGUgZ2ViZW4gU2llIGVpbmUgWmVpdCBpbSBGb3JtYXQgSEg6TU0gZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdOdXIgMjQ6MDAgaXN0IGFscyBFbmR6ZWl0IGVybGF1YnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVW5nw7xsdGlnZSBaZWl0ISBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnRGllIEVuZHplaXQgbXVzcyBuYWNoIGRlciBTdGFydHplaXQgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBFbmR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VuZ8O8bHRpZ2UgQW5nYWJlLiBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFaW5lIGfDvGx0aWdlIFplaXRkYXVlciBtdXNzIGdyw7bDn2VyIGFscyBOdWxsIHNlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gTmVnYXRpdmUgWmVpdHNwYW5uZW4gc2luZCBuaWNodCBtw7ZnbGljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdFaW5lIFplaWxlIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnU2llIGvDtm5uZW4gbnVyIGVpbmUgQ2hlY2tib3ggbWFya2llcmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBnZWFyYmVpdGV0IGhhYmVuLCBvYndvaGwgU2llIGVya3Jhbmt0IHNpbmQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBnZWFyYmVpdGV0IGhhYmVuLCBvYndvaGwgU2llIGltIFVybGF1YiBzaW5kPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBnZWFyYmVpdGV0IGhhYmVuLCBvYndvaGwgU2llIMOcYmVyc3R1bmRlbiBnZW5vbW1lbiBoYWJlbj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBtZWhyIGFscyAxNiBTdHVuZGVuIGdlYXJiZWl0ZXQgaGFiZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdNb25hdHPDvGJlcnNpY2h0IFplaXRiZXJpY2h0ZXJzdGF0dHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnw5xiZXJzdHVuZGVuIChpbiBTdHVuZGVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfDnGJlcnN0dW5kZW4gKGRpZXNlciBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ8OcYmVyc3R1bmRlbiAoU3VtbWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbiAodmVyYmxlaWJlbmQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1VybGF1YiAoaW4gVGFnZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1VybGF1YnN0YWdlIChkaWVzZXIgTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdVcmxhdWJzdGFnZSAoU3VtbWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1VybGF1YnN0YWdlICh2ZXJibGVpYmVuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdFcmtyYW5rdCAoaW4gVGFnZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRXJrcmFua3QgKGRpZXNlciBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnRXJrcmFua3QgKFN1bW1lKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ1ZvcmhlcmlnZXIgTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ07DpGNoc3RlciBNb25hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnV29jaGVudGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdBcmJlaXRzc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdBcmJlaXRzc3R1bmRlbiAoZ2VzYW10KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdQcm9qZWt0w7xiZXJzaWNodCBkZXMgQmVudXR6ZXJzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ1N0dW5kZW4gKGltIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnU3R1bmRlbiAoZ2VzYW10KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1N1bW1lJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1plaXRiZXJpY2h0ZXJzdGF0dHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnRGF0dW1zYXVzd2FobCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnR2VoZSB6dSBEYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdOdXR6ZXJiZXJpY2h0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAncHJvIE1vbmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnU3VtbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdVcmxhdWInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0Vya3Jhbmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1ZlcmJsZWliZW5kZSBVcmxhdWJzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9qZWt0YmVyaWNodGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1Byb2pla3TDvGJlcnNpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ1p1ciBCZXJpY2h0ZXJzdGF0dHVuZ3PDvGJlcnNpY2h0IGdlaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnRGVyemVpdCB3ZXJkZW4gaW4gZGllc2VtIFByb2pla3QgbnVyIGFrdGl2ZSBCZW51dHplciBhbmdlemVpZ3QuIFVtIGRpZXNlIEVpbnN0ZWxsdW5nIHp1IMOkbmRlcm4sIGJlYXJiZWl0ZW4gU2llIGJpdHRlOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdEZXJ6ZWl0IHdlcmRlbiBhbGxlIHplaXRlcmZhc3NlbmRlbiBCZW51dHplciBhbmdlemVpZ3QuIFVtIGRpZXNlIEVpbnN0ZWxsdW5nIHp1IMOkbmRlcm4sIGJlYXJiZWl0ZW4gU2llIGJpdHRlOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdaZWl0YWJyZWNobnVuZy1Qcm9qZWt0ZWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnUHJvamVrdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1p1ciBFaW5zdGVsbHVuZ3PDvGJlcnNpY2h0IGdlaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnUHJvamVrdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdQcm9qZWt0ZWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdFaW4gUHJvamVrdCBtaXQgZ2xlaWNoZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuIEJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIGFuZGVyZW4gTmFtZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnWmVpdGFicmVjaG51bmdzZWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVMOkdGlna2VpdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRlciBmw7xyIFByb2pla3RlLCBBdWZnYWJlbiBvZGVyIEJlbnV0emVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnWmVpdGZlbnN0ZXIga8O2bm5lbiBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnVMOkdGlna2VpdHNsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1TDpHRpZ2tlaXQgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnVMOkdGlna2VpdHNlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VpbmUgVMOkdGlna2VpdCBtaXQgZ2xlaWNoZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuIEJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIGFuZGVyZW4gTmFtZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JlbnV0emVybGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0JlbnV0emVyZWluc3RlbGx1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJ0JlbnV0emVyIGlzdCBiZXJlY2h0aWd0IMOcYmVyc3R1bmRlbiB6dSBzZWhlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnw5xiZXJzdHVuZGVuIGFuemVpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdCZW51dHplciBpc3QgYmVyZWNodGlndCBQcm9qZWt0ZSB6dSBlcnN0ZWxsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Byb2pla3QgZXJzdGVsbGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdaZWl0c3Bhbm5lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdEYXR1bSBCZWdpbm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0RhdHVtIEVuZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ1VybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnV29jaGVuc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnQXV0b3Jpc2llcnRlIMOcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnU3RhcnRkYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluIGfDvGx0aWdlcyBEYXR1bSBlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRW5kZGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdEYXMgRW5kZSBkZXIgWmVpdHNwYW5uZSBtdXNzIG5hY2ggZGVtIEFuZmFuZyBzZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnVXJsYXVic3RhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnV8O2Y2hlbnRsaWNoZSBTdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdLZWluZSBaZWl0c3Bhbm5lIGdlZnVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdaZWl0c3Bhbm5lIGhpbnp1ZsO8Z2VuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ0RhdGVuc2F0eiBhbnplaWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ0Fuc2ljaHQgdm9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ZvcmhlcmlnZXIgVGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTsOkY2hzdGVyIFRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdLZWluIEVpbnRyYWcgZsO8ciBkaWVzZW4gVGFnIGdlZnVuZGVuLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICdLYW5uIEFyYmVpdHNlaW5oZWl0ZW4gbmljaHQgZWluZsO8Z2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGV0enRlIFByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ1VuZ8O8bHRpZ2UgQW5nYWJlLiBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ0thbm4gQXJiZWl0c2VpbmhlaXRlbiBuaWNodCBsw7ZzY2hlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdEaWVzZXMgRGF0dW0gaXN0IGF1w59lcmhhbGIgZGVzIEdyZW56d2VydGVzLCBhYmVyIFNpZSBoYWJlbiBkaWVzZW4gVGFnIGJpcyBqZXR6dCBub2NoIG5pY2h0IGVpbmdlZsO8Z3QsIGFsc28gYmVrb21tZW4gU2llIGRhZsO8ciBlaW5lKCEpIENoYW5jZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdVbnZvbGxzdMOkbmRpZ2UgQXJiZWl0c3RhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnRWluZ2FiZW4gZ2VzcGVpY2hlcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdGZWhsZXIgYmVpIGRlciBFaW5nYWJlIGbDvHIgbWVocmVyZSBUYWdlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdEYXRlbiBmw7xyIG1laHJlcmUgVGFnZSBlcmZvbGdyZWljaCBlcmZhc3N0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnRWluZ2VnZWJlbmVzIERhdHVtIHVuZ8O8bHRpZyEgRGF0dW0gd3VyZGUgYXVmIFwnaGV1dGVcJyBnZcOkbmRlcnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ0VzIGlzdCBrZWluZSBaZWl0cGVyaW9kZSBrb25maWd1cmllcnQsIG9kZXIgZGFzIGFuZ2VnZWJlbmUgRGF0dW0gbGllZ3QgYXXDn2VyaGFsYiBkZXIga29uZmlndXJpZXJ0ZW4gWmVpdHBlcmlvZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnQml0dGUga29udGFrdGllcmVuIFNpZSBpaHJlbiBaZWl0ZXJmYXNzdW5ncy1BZG1pbmlzdHJhdG9yLCB1bSBkaWUgWmVpdHBlcmlvZGVuIHp1IGFrdHVhbGlzaWVyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdadWxldHp0IGF1c2dld8OkaGx0ZSBQcm9qZWt0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdBbGxlIFByb2pla3RlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ0JlcmljaHRzcHJvamVrdDogQmVuw7Z0aWdlIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ0JlcmljaHRzcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdCZXJpY2h0ZXJzdGF0dHVuZyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdCZW51dHplcmVpbnN0ZWxsdW5nZW4ga8O2bm5lbiBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb2pla3QgaGluenVnZWbDvGd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrdCBha3R1YWxpc2llcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdBdWZnYWJlIGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0F1ZmdhYmUgYWt0dWFsaXNpZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdEaWUgVXNlcklEIGlzdCB1bmfDvGx0aWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ0thbm4gQmVudXR6ZXJkYXRlbiBuaWNodCBlaW5mw7xnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnS2FubiBaZWl0cGVyaW9kZSBuaWNodCBoaW56dWbDvGdlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0VpbnN0ZWxsdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdCZW51dHplciBha3R1YWxpc2llcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnQmVudXR6ZXIgaGluenVnZWbDvGd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0VpbmVuIEJlbnV0emVyIHp1ciBaZWl0YWJyZWNobnVuZyBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ05ldWVyIEJlbnV0emVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgZGVzIFplaXRyYXVtcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnQW5zaWNodDogQmVuw7Z0aWdlICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnQml0dGUgZGllIEFyYmVpdHNzdHVuZGVuIGVpbnRyYWdlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdVbnZvbGxzdMOkbmRpZ2UgQXJiZWl0c3RhZ2UnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnQml0dGUgd8OkaGxlbiBTaWUgbWluZGVzdGVucyBlaW5lbiBUYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gR3J1bmQgZsO8ciBkaWUgQWJ3ZXNlbmhlaXQgYXVzISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VpbnRyYWcgbMO2c2NoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdFaW5nYWJlIGJlc3TDpHRpZ2VuJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTW9kdWwgenVtIEFuemVpZ2VuIGRlciBBbnphaGwgZGVyIHVudm9sbHN0w6RuZGlnZW4gQXJiZWl0c3RhZ2UgZGVzIEJlbnV0emVycy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZG5hbWUgZsO8ciBuZXVlIFTDpHRpZ2tlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnQW5mYW5nc3N0YXR1cyBlaW5lcyBuZXVlbiBQcm9qZWt0cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdTdGFuZGFyZGVpbnN0ZWxsdW5nIGbDvHIgRW5kZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdTdGFuZGFyZGVpbnN0ZWxsdW5nIGbDvHIgU3RhcnRkYXR1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdTdGFuZGFyZGVpbnN0ZWxsdW5nIGbDvHIgQmVzY2hyZWlidW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdTdGFuZGFyZGVpbnN0ZWxsdW5nIGbDvHIgVXJsYXVic3RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnRXZlbnR1ZWxsIHZvcmhhbmRlbmVyIMOcYmVyc3R1bmRlbsO8YmVydHJhZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1N0YW5kYXJkIFdvY2hlbmFyYmVpdHN6ZWl0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnQW5mYW5nc3N0YXR1cyBlaW5lciBuZXVlbiBUw6R0aWdrZWl0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gUHJvamVrdHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnQW5mYW5nc3N0YXR1cyBlaW5lcyBuZXVlbiBCZW51dHplcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0lubmVyaGFsYiBkaWVzZXIgS29uZmlndXJhdGlvbnNvcHRpb24ga2FubiBlaW5lIFJlZ0V4cCBkZWZpbmllcnQgd2VyZGVuLCBkaWUgZmVzdGxlZ3QsIGJlaSB3ZWxjaGVuIFByb2pla3RlbiBlaW5lIEJlbWVya3VuZyBlaW5nZXRyYWdlbiB3ZXJkZW4gbXVzcyAoZGllIFJlZ0V4cCBhcmJlaXRldCBtaXQgc214LVBhcmFtZXRlcm4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnQmVzdGltbXQsIG9iIGRhcyBTdGF0aXN0aWstTW9kdWwgSW5mb3JtYXRpb25lbiB6dXIgWmVpdGFicmVjaG51bmcgZ2VuZXJpZXJlbiBrYW5uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdaZWl0ZXJmYXNzdW5ncy1FaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnWmVpdC1EYXRlbnNhdHogYmVhcmJlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTGVndCBmZXN0LCBiaXMgd2FubiBtYW4gaW4gw6RsdGVyZSBaZWl0ZWludHLDpGdlIGJlYXJiZWl0ZW4ga2FubiAoei4gQi4gMTAgVGFnZSB6dXLDvGNrbGllZ2VuZCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0LCB3ZXJkZW4gbnVyIFVzZXIgYW5nZXplaWd0IGRpZSBBcmJlaXRzemVpdGVuIHp1IGRlbSBnZXfDpGhsdGVuIFByb2pla3QgaGluenVnZWbDvGd0IGhhYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnV2VubiBha3RpdmllcnQgd2VyZGVuIGRpZSBEcm9wZG93bi1GZWxkZXIgaW0gZGVyIEVkaXRpZXItT2JlcmZsw6RjaGUgaW4gZGVyIG5ldWVuIEZvcm0gYWxzIEZlbGQgbWl0IEF1dG8tVmVydm9sbHN0w6RuZGlnZW4gYW5nZXplaWd0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdEZXIgRmlsdGVyIGJlaSB2b3JoZXJpZ2VuIFByb2pla3RlbiBrYW5uIGJlaSBBa3RpdmllcnVuZyBnZW51dHp0IHdlcmRlbiwgYW5zdGVsbGUgZGFzIHp3ZWkgUHJvamVrdCBMaXN0ZW4gKGxldHp0ZSB1bmQgYWxsZSkgZ2VudXR6dCB3ZXJkZW4uIEVzIGthbm4gYWxsZXJkaW5ncyBudXIgZ2VudXR6dCB3ZXJkZW4gd2VubiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gYWt0aXZpZXJ0IGlzdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0JlaSBBa3RpdmllcnVuZyBpc3QgZGVyIEZpbHRlciBkZXIgdm9yaGVyaWdlbiBQcm9qZWt0ZSBzdGFuZGFyZG3DpHNzaWcgYWt0aXYgZmFsbHMgdm9yaGVyaWdlIFByb2pla3RlIHZvcmhhbmRlbiBzaW5kLiBFciBrYW5uIG51ciBnZW51dHp0IHdlcmRlbiB3ZW5uIEVuYWJsZUF1dG9Db21wbGV0aW9uIHVuZCAgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBha3RpdmllcnQgc2luZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0LCAga8O2bm5lbiBCZW51dHplciAiaW0gVXJsYXViIiwgIkVya3Jhbmt0IiB1bmQgIsOcYmVyc3R1bmRlbiIgYW4gbWVocmVyZW4gVGFnZW4gYXVmIGVpbm1hbCBzZXR6ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTWF4aW1hbGUgQW56YWhsIHZvbiBBcmJlaXRzdGFnZW4sIG5hY2ggZGVyIGRpZSBBcmJlaXRzemVpdCBlaW5nZXRyYWdlbiB3ZXJkZW4gbXVzcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gQXJiZWl0c3RhZ2VuIG9obmUgQXJiZWl0c3plaXRlaW50csOkZ2UgbmFjaCBkZW5lbiBlaW5lIFdhcm51bmcgYW5nZXplaWd0IHdpcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ8OcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUHJvamVrdC1aZWl0LVJlcG9ydGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1JlZ3Vsw6RyZXIgQXVzZHJ1Y2ssIHVtIGRpZSBMaXN0ZSBkZXIgVMOkdGlna2VpdGVuIGJlesO8Z2xpY2ggZGVzIGF1c2dld8OkaGx0ZW4gUHJvamVrdHMgZWluenVzY2hyw6Rua2VuLiBEZXIgU2NobMO8c3NlbCBlbnRow6RsdCBlaW5lbiBSZWd1bMOkcmVuIEF1c2RydWNrIGbDvHIgUHJvamVrdGUsIGRlciBXZXJ0IGVpbmVuIFJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgZsO8ciBkaWUgVMOkdGlna2VpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bMOkcmVyIEF1c2RydWNrLCB1bSBkaWUgTGlzdGUgZGVyIFByb2pla3RlIGJlesO8Z2xpY2ggZGVzIGFrdGl2ZW4gQmVudXR6ZXJzIGVpbnp1c2NocsOkbmtlbi4gRGVyIFNjaGzDvHNzZWwgZW50aMOkbHQgZWluZW4gUmVndWzDpHJlbiBBdXNkcnVjayBmw7xyIFByb2pla3RlLCBkZXIgV2VydCBlbnRow6RsdCBlaW5lIGtvbW1hLXNlcGFyaWVydGUgTGlzdGUgdm9uIEJlbnV0emVyZ3J1cHBlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0dpYnQgYW4sIG9iIEFyYmVpdHNzdHVuZGVuIG9obmUgU3RhcnQtIHVuZCBFbmR6ZWl0IGVpbmdlZ2ViZW4gd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0RpZXNlcyBNb2R1bCB6d2luZ3QgenVyIEVpbmdhYmUgdm9uIFN0dW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTW9kdWwsIGRhc3MgZGVuIEFnZW50IGltIE5vdGlmaWNhdGlvbi1CZXJlaWNoIGRlcyBBZ2VudC1JbnRlcmZhY2VzIGRhcsO8YmVyIGluZm9ybWllcnQsIHdlbm4gc2Nob24genUgbGFuZ2Uga2VpbmUgU3R1bmRlbiBtZWhyIGVpbmdldHJhZ2VuIHd1cmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnWmVpdGFicmVjaG51bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnWmVpdGFicmVjaG51bmcgQmVhcmJlaXR1bmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdaZWl0YWJyZWNobnVuZ3PDvGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1plaXRhYnJlY2hudW5nIEJlcmljaHRlcnN0YXR0dW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnWmVpdGFicmVjaG51bmcgRWluc3RlbGx1bmdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnWmVpdGFicmVjaG51bmcgQW5zaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1plaXRhYnJlY2hudW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0hpZXIga2FubiBtYW4gZWluZ2ViZW4sIG9iIGbDvHIgZWluZSBiZXN0aW1tdGUgVMOkdGlna2VpdCwgZGllIHp1IHZlcnJlY2huZW5kZW4gU3R1bmRlbiBnZWvDvHJ6dCB3ZXJkZW4uIFouIEIgd2VubiBSZWlzZXplaXRlbiBudXIgenVyIEjDpGxmdGUgdmVyZ8O8dGV0IHdlcmRlbiAoS2V5ID0mZ3Q7IGpvdXJuZXk7IENvbnRlbnQgPSZndDsgNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRhX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmlsIGR1IHZpcmtlbGlnIHNsZXR0ZSB0aWRzcmVnbnNrYWJldCBmb3IgZGVubmUgZGFnPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdSZWRpZ2VyIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0b25hdmlnYXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYWdlIHVkZW4gb3B0ZWduZWxzZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdQw6UgZmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1N5Z2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRGUgcMOla3LDpnZlZGUgZmVsdGVyIGVyIG1hcmtlcmV0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgc2thbCBpbmR0YXN0ZSBlbiBzdGFydC0gb2cgc2x1dGRhdG8gZWxsZXIgZW4gdGlkc3BlcmlvZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdPcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQmVtw6Zya25pbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdGl2IHRpZCBlciBpa2tlIHRpbGxhZHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdHZW50YWduZSB0aW1lciBlciBpa2tlIHRpbGxhZHQuIFN0YXJ0dGlkZW4gc3ZhcmVyIHRpbCBldCBhbmRldCBpbnRlcnZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ1NsdXR0aWRlbiBza2FsIHbDpnJlIHNlbmVyZSBlbmQgc3RhcnR0aWRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdHZW50YWduZSB0aW1lciBlciBpa2tlIHRpbGxhZHQuIFNsdXR0aWRlbiBzdmFyZXIgdGlsIGV0IGFuZGV0IGludGVydmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVWd5bGRpZyBwZXJpb2RlISBFbiBkYWcgaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFbiBneWxkaWcgcGVyaW9kZSBza2FsIHbDpnJlIHN0w7hycmUgZW5kIDAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VneWxkaWcgcGVyaW9kZSEgTmVnYXRpdmUgcGVyaW9kZXIgZXIgaWtrZSB0aWxsYWR0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ1RpbGbDuGogZW4gcsOma2tlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnRHUga2FuIGt1biB2w6ZsZ2UgZXQgYWZrcnlkc25pbmdzZmVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0VyIGR1IHNpa2tlciBww6UsIGF0IGR1IGFyYmVqZGVkZSB1bmRlciBkaXQgc3lnZWZyYXbDpnI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlLCBtZW5zIGR1IHZhciBww6UgZmVyaWU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdFciBkdSBzaWtrZXIgcMOhLCBhdCBkdSBhcmJlamRlZGUsIG1lbnMgZHUgdmFyIHDDpSBhZnNwYWRzZXJpbmc/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0VyIGR1IHNpa2tlciBww6UsIGF0IGR1IGFyYmVqZGVkZSBtZXJlIGVuZCAxNiB0aW1lcj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ03DpW5lZGxpZyBvdmVyc2lndCBvdmVyIHRpZHNyYXBvcnRlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnT3ZlcnRpZCAodGltZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ092ZXJ0aWQgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ092ZXJ0aWQgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdSZXN0ZXJlbmRlIGFmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdGZXJpZSAoZGFnZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWVkYWdlIGJydWd0IChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGZXJpZWRhZ2UgYnJ1Z3QgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdSZXN0ZXJlbmRlIGZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1N5Z2VmcmF2w6ZyIChkYWdlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1N5Z2VmcmF2w6ZyIGJydWd0IChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ1N5Z2VmcmF2w6ZyIGJydWd0IChpIGFsdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdGb3JyaWdlIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTsOmc3RlIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnVWdlZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdBcmJlamRzdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnQXJiZWpkc3RpbWVyIGkgYWx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0JydWdlcnMgcHJvamVrdG92ZXJibGlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ1RpbWVyIChtw6VuZWRsaWcpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdTYW1sZXQgYW50YWwgdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdBbHQgaSBhbHQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVGlkc3JhcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdNw6VuZWRzbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0JydWdlcnJhcHBvcnRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSSBhbHQgZm9yIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1NhbWxldCB0b3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Fmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdTeWdlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdSZXN0ZXJlbmRlIGZyYXbDpnJzZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9qZWt0cmFwcG9ydGVyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9qZWt0cmFwcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgaW5kc3RpbGxpbmdlciBmb3IgdGlkc3JlZ25za2Fic3Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdUaWxmw7hqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdUaWxmw7hqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUmVkaWdlciBwcm9qZWt0aW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRGVyIGVyIGFsbGVyZWRlIGV0IHByb2pla3QgbWVkIGRldHRlIG5hdm4uIFbDpmxnIHZlbmxpZ3N0IGV0IGFuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgdGlkc3JlZ25za2Fic2luZHN0aWxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ1RpbGbDuGogb3BnYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdPcGdhdmVsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1RpbGbDuGogb3BnYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgb3BnYXZlaW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRGVyIGVyIGFsbGVyZWRlIGVuIG9wZ2F2ZSBtZWQgZGV0dGUgbmF2bi4gVsOmbGcgdmVubGlnc3QgZXQgYW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JydWdlcmxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ZpcyBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1RpbGxhZCBvcHJldHRlbHNlIGFmIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWd5bmQgcGVyaW9kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnQWZzbHV0IHBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0ZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHByLiB1Z2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0dvZGtlbmR0IG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2RlbnMgYWZzbHV0bmluZyBza2FsIHbDpnJlIGVmdGVyIHBlcmlvZGVucyBzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RpbGbDuGogdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1NlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpnN0ZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnRGVyIGVyIGlra2UgZnVuZGV0IGRhdGEgZm9yIGRlbm5lIGRhZy4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5kc3RpbGxpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1NsZXQgdGlkc3JlZ25za2Fic2luZHRhc3RuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQmVrcsOmZnQgaW5kc8OmdHRlbHNlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnQWdlbnQgaW50ZXJmYWNlLW5vdGlmaWNhdGlvbnNtb2R1bGV0IHNrYWwgc2UgYW50YWxsZXQgYWYgdWFmc2x1dHRlZGUgYXJiZWpkc2RhZ2UgZm9yIGJydWdlcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1N0YW5kYXJkbmF2biBmb3IgbnllIGhhbmRsaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1N0YW5kYXJkbmF2biBmb3IgbnllIHByb2pla3Rlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBzbHV0ZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIGJlZ3luZGVsc2VzZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIGZyYXbDpnJzZGFnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBvdmVydGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igbm9ybWFsZSB1Z2VudGxpZ2UgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgaGFuZGxpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgcHJvamVrdGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIG55ZSBicnVnZXJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmVyZXIgZGUgcHJvamVrdGVyLCBmb3IgaHZpbGtlIGVuIGJlbcOmcmtuaW5nIGVyIHDDpWtyw6Z2ZXQuIEh2aXMgUmVnRXhwIG1hdGNoZXIgcMOlIHByb2pla3RldCwgc2thbCBkdSBvZ3PDpSBpbmRmw7hqZSBlbiBiZW3DpnJrbmluZy4gUmVnRXhwIGJydWdlciBzbXggcGFyYW1ldGVyZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0FuZ2l2ZXIgZm9yIGh2b3IgbWFuZ2UgZGFnZSwgZHUga2FuIGluZHPDpnR0ZSBhcmJlamRzZW5oZWRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3NpbWFsdCBhbnRhbCBhZiBhcmJlamRzZGFnZSBlZnRlciBodmlsa2V0IGFyYmVqZHNlbmhlZGVybmUgc2thbCBpbmRzw6Z0dGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWzDpnJlIHVkdHJ5ayBmb3IgYmVncsOmbnNuaW5nIGFmIGhhbmRsaW5nc2xpc3RlIGlmw7hsZ2UgZGV0IHZhbGd0ZSBwcm9qZWt0LiBOw7hnbGVuIGluZGVob2xkZXIgZXQgcmVndWzDpnJ0IHVkdHJ5ayBmb3IgcHJvamVrdChlciksIGluZGhvbGRldCBydW1tZXIgcmVndWzDpnJlIHVkdHJ5ayBmb3IgaGFuZGxpbmcoZXIpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bMOmcmUgdWR0cnlrIGZvciBiZWdyw6Zuc25pbmcgYWYgcHJvamVrdGxpc3RlIGlmw7hsZ2UgYnJ1Z2VyZ3J1cHBlci4gTsO4Z2xlbiBpbmRlaG9sZGVyIGV0IHJlZ3Vsw6ZydCB1ZHRyeWsgZm9yIHByb2pla3QoZXIpLCBpbmRob2xkZXQgcnVtbWVyIGtvbW1hc2VwYXJlcmV0IGxpc3RlIG92ZXIgZ3J1cHBlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0FuZ2l2ZXIsIG9tIGFyYmVqZHN0aW1lciBrYW4gaW5kc8OmdHRlcyB1ZGVuIHN0YXJ0LSBvZyBzbHV0dGlkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0RldHRlIG1vZHVsIGdlbm5lbXR2aW5nZXIgaW5kc8OmdHRlbHNlciBpIHRpZHNyZWduc2thYi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdEZXR0ZSBhZHZpc2VyaW5nc21vZHVsIGdpdmVyIGVuIGFkdmFyc2VsLCBodmlzIGRlciBlciBmb3IgbWFuZ2UgdWZ1bGRzdMOmbmRpZ2UgYXJiZWpkc2RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ25za2FiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0JydWdlcywgaHZpcyBub2dsZSBoYW5kbGluZ2VyIGhhciByZWR1Y2VyZXQgYXJiZWpkc3RpbWVybmUgKGYuZWtzLiBodmlzIGt1biBoYWx2ZGVsZW4gYWYgcmVqc2V0aWRlbiBlciBiZXRhbHQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX01YX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyBkZSBlc3RlIGTDrWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhciBSZWdpc3RybyBkZSBIb3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIGEgY29uZmlndXJhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBGZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNpbiByZWdpc3Rybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBsb3MgZMOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1JlZ2lzdHJvIG1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwYXJhIHN1IGF1c2VuY2lhIHBhcmEgbG9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdEZSB2YWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ8KhUG9yIGZhdm9yIGFncmVndWUgdW5hIG9ic2VydmFjacOzbiBkZSBtXCdzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdIb3JhIGludsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgTm8gc2UgcGVybWl0ZW4gcGVyaW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0HDsWFkaXIgdW5hIGZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfCoVPDs2xvIHNlIHBlcm1pdGUgZWxlZ2lyIHVuIGVsZW1lbnRvIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGVuZmVybWVkYWQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3VzIHZhY2FjaW9uZXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIG3DoXMgZGUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSBtZW5zdWFsIGRlIHRpZW1wb3MgcmVwb3J0YWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTsO6bWVybyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIHRyYWJhamFkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVG90YWwgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0hvcmFzIHJlc3RhbnRlcyBwYXJhIGF1c2VudGFyc2UgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpb25lcyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjaW9uZXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVmFjYWNpb25lcyB0b21hZGFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRMOtYXMgZGUgdmFjYWNpb25lcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdBdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQXVzZW5jaWFzIHBvciBlbmZlcm1lZGFkIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQXVzZW5jaWFzIHBvciBlbmZlcm1lZGFkICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNZXMgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ01lcyBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0TDrWEgZGUgbGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3JhcyB0cmFiYWphZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1RvdGFsIGRlIGhvcmFzIHRyYWJhamFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzdGEgZGUgcHJveWVjdG8gZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdIb3JhcyAobWVuc3VhbGVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKHRpZW1wbyBkZSB2aWRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIG5ldG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmVwb3J0ZSBkZSBob3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIG1lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgYSBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZXBvcnRlcyBkZSB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdUb3RhbCBtZW5zdWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnVGllbXBvIHRvdGFsIGRlIHZpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdBdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1ZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0F1c2VuY2lhIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0TDrWFzIGxpYnJlcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmVwb3J0ZXMgZGUgcHJveWVjdG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JlcG9ydGUgZGUgcHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgYWwgcmVzdW1lbiBkZSByZXBvcnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FjdHVhbG1lbnRlIHNvbG8gc2UgbXVlc3RyYW4gbG9zIHVzdWFyaW9zIGFjdGl2b3MgZW4gZXN0ZSBwcm95ZWN0by4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtaWVudG8sIHBvciBmYXZvciBhY3R1YWxpemUgbGEgY29uZmlndXJhY2nDs246JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FjdHVhbG1lbnRlIHNlIG11ZXN0cmFuIHRvZG9zIGxvcyB1c3VhcmlvcyBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1pZW50bywgcG9yIGZhdm9yIGFjdHVhbGl6ZSBsYSBjb25maWd1cmFjacOzbjonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlbCBwcm95ZWN0byBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdyZWdhciBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgY29uZmlndXJhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ3JlZ2FyIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZWwgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1biBwcm95ZWN0byBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGFyYSBwcm95ZWN0b3MsIHRhcmVhcyBvIHVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnTG9zIHBlcsOtb2RvcyBkZSB0aWVtcG8gbm8gcHVlZGVuIHNlciBlbGltaW5hZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdyZWdhciBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1bmEgdGFyZWEgY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICdBanVzdGVzIGRlbCBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnRWwgdXN1YXJpbyBwdWVkZSB2ZXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdNb3N0cmFyIGhvcmFzIGV4dHJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdFbCB1c3VhcmlvIHB1ZWRlIGNyZWFyIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIGRlIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdFbCB1c3VhcmlvIHRpZW5lIHB1ZWRlIG9taXRpciBsYSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIGxhIG9taXNpw7NuIGRlIGxhIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTaSBzZSBzZWxlY2Npb25hIGVzdGEgb3BjacOzbiwgbGEgY29udGFiaWxpZGFkIGRlIHRpZW1wbyBzZXLDoSBvcGNpb25hbCBwYXJhIGVsIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ05vIGhhYnLDoSBhZHZlcnRlbmNpYXMgc29icmUgZW50cmFkYXMgZmFsdGFudGVzIHkgbm8gc2UgZXhpZ2lyw6FuIGxhcyBlbnRyYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0VzcGFjaW9zIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEw61hIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnRMOtYSBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZGllcm9uIGludGVudGFyIGxhcyBVbmlkYWRlcyBkZSBUcmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ8KhTm8gc2UgcHVkaWVyb24gZ3VhcmRhciBsb3MgYWp1c3RlcywgcG9ycXVlIGVsIGTDrWEgc29sbyB0aWVuZSAyNCBob3JhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ8KhTm8gc2UgcHVkaWVyb24gZ3VhcmRhciBsYXMgVW5pZGFkZXMgZGUgVHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdFc3RhIEZlY2hhIGVzdGEgZnVlcmEgZGVsIGzDrW1pdGUsIHBlcm8gdG9kYXbDrWEgbm8gaGEgaW5zZXJ0YWRvIGVzdGUgZMOtYSwgZW50b25jZXMgdXN0ZWQgdGllbmUgc29sbyB1bmEgb3BvcnR1bmlkYWQgZGUgaW5zZXJ0YXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnRMOtYXMgTGFib3JhbGVzIEluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyY2nDs24gZXhpdG9zYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm9yIGFsIGluc2VydGFyIG3Dumx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdTZSBpbnNlcnRhcm9uIHNhdGlzZmFjdG9yaWFtZW50ZSBsYXMgZW50cmFkYXMgZGUgdmFyaWFzIGZlY2hhcyEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdMYSBmZWNoYSBlbnRyYWRhIGVzIGluY29ycmVjdGEhIExhIGZlY2hhIGRlIGhhIGNhbWJpYWRvIGEgaG95Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfCoU5vIGhheSB1biBwZXJpb2RvIGRlIHRpZW1wbyBjb25maWd1cmFkbywgb3IgbGEgZmVjaGEgZXNwZWNpZmljYWRhIGVzdMOhIGZ1ZXJhIGRlIGxvcyBwZXJpb2RvcyBkZSB0aWVtcG8gZGVmaW5pZG9zISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnwqFQb3IgZmF2b3IgY29udGFjdGUgYWwgYWRtaW5pc3RyYWRvciBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvcyBwYXJhIGFjdHVhbGl6YXIgc3VzIHBlcmlvZG9zIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xvcyDDmmx0aW1vcyBQcm95ZWN0b3MgU2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBsb3MgUHJveWVjdG9zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGVEZVByb3llY3RvczogTmVjZXNpdGEgIlByb2plY3RJRCInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdSZXBvcnRlIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZXBvcnRlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGFjdHVhbGl6YXIgbG9zIGFqdXN0ZXMgZGVsIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnwqFQcm95ZWN0byBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ8KhUHJveWVjdG8gYWN0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnwqFUYXJlYSBhw7FhZGlkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ8KhVGFyZWEgYWN0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ8KhRWwgIlVzZXJJRCIgbm8gZXMgdsOhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnwqFObyBzZSBwdWVkZSBpbnNlcnRhciBkYXRvcyBkZWwgdXN1YXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGHDsWFkaXIgZWwgcGVyaW9kbyBkZSB0aWVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdDb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnwqFVc3VhcmlvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ8KhVXN1YXJpbyBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBw7FhZGlyIHVzdWFyaW8gYSBjb250YWJpbGlkYWQgZGUgdGllbXBvcy4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1VzdWFyaW8gTnVldm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ0VzdGFkbyBkZWwgUGVyaW9kbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmlzdGE6IMKhTmVjZXNpdGEgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSBzdXMgaG9yYXMgZGUgdHJhYmFqbyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdEw61hcyBsYWJvcmFsZXMgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwb3IgYXVzZW5jaWEuJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRWxpbWluYXIgUmVnaXN0cm8gZGUgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcmNpw7NuJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUsIG5lY2VzYXJpbyBwYXJhIHZpc3VhbGl6YXIgZWwgbsO6bWVybyBkZSBkw61hcyBpbmNvbXBsZXRvcyBkZSB1biB1c3VhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGZpbmFsaXphY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGRlc2NyaXBjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGZhbHRhcyAoZMOtYXMgZGUgYXVzZW5jaWEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIGV4dHJhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIHNlbWFuYWxlcyBlc3TDoW5kYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSB1c3VhcmlvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBwYXJhIGN1w6FsZXMgcHJveWVjdG9zIGVzIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgY29tZW50YXJpb3MuIFNpIGxhIGV4cHJlc2nDs24gcmVndWxhciBjb2luY2lkZSBjb24gZWwgcHJveWVjdG8sIHNlIHRpZW5lIHF1ZSBlc2NyaWJpciB1biBjb21lbnRhcmlvLiBMYSBleHByZXNpw7NuIHJlZ3VsYXIgdXNhIGVsIHBhcsOhbWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNpIGVsIG3Ds2R1bG8gZGUgZXN0YWTDrXN0aWNhcyBkZWJlIGdlbmVyYXIgaW5mb3JtYWNpw7NuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBhanVzdGVzIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0VkaXRhciByZWdpc3RybyBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0VzcGVjaWZpY2EgZWwgbsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIHBhcmEgcmVnaXN0cmFyIGhvcmFzIGRlIHRyYWJham8gYXRyYXNhZGFzIChwb3IgZWplbXBsbzogMTAgZMOtYXMgZGUgYW50aWfDvGVkYWQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc29sYW1lbnRlIGxvcyB1c3VhcmlvcyBxdWUgaGFuIHJlZ2lzdHJhZG8gc3VzIHRpZW1wb3MgZW4gZWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvIHNlcsOhbiBtb3N0cmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NpIGVzdMOhbiBoYWJpbGl0YWRvcywgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gaGFuIHNpZG8gbW9kaWZpY2Fkb3MgcG9yIGNhbXBvcyBkZSBhdXRvLWNvbXBsZXRhZG8sIGVzdG8gcGFyYSBzZXIgbWFzIG1vZGVybm9zICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTaSBlc3TDoSBoYWJpbGl0YWRvLCBlbCBmaWx0cm8gcGFyYSBlbCBwcm95ZWN0byBhbnRlcmlvciBwdWVkZSBzZXIgdXNhZG8gZW4gdmV6IGRlIGRvcyBsaXN0YXMgZGUgcHJveWVjdG9zIChsYXMgYW50ZXJpb3IgeSB0b2RhcyBsYXMgZGVtw6FzKS4gRXN0byBzZSBwb2Ryw6EgdXNhciBzaSwgeSBzb2xvIHNpIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgZWwgcHJveWVjdG8gYW50ZXJpb3IgZXN0w6EgYWN0aXZhZG8gcG9yIG9taXNpw7NuIHNpIGhheSBwcm95ZWN0b3MgcHJldmlvcy4gRXN0byBwdWVkZSBzZXIgdXRpbGl6YWRvIHNpLCB5IHNvbG8gc2ksIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBHZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgdGllbXBvcyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyBkZSBlc3RlIGTDrWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhciByZWdpc3RybyBkZSBob3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIGEgY29uZmlndXJhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNpbiByZWdpc3Rybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBsb3MgZMOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1JlZ2lzdHJvIG1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwYXJhIHN1IGF1c2VuY2lhIHBhcmEgbG9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdEZSB2YWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ8KhUG9yIGZhdm9yLCBhw7FhZGUgdW4gY29tZW50YXJpbyBjb24gbWFzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfCoUZvcm1hdG8gbm8gdsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfCoUhvcmEgbm8gdsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIG5vIHbDoWxpZG8hIFVuIGTDrWEgc8OzbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyaW9kbyB2w6FsaWRvIGRlYmUgc2VyIG1heW9yIGEgY2Vyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8KhUGVyaW9kbyBubyB2w6FsaWRvISBObyBzZSBwZXJtaXRlbiBwZXJpb2RvcyBuZWdhdGl2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQcOxYWRpciB1bmEgZmlsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ8KhU8OzbG8gc2UgcGVybWl0ZSBlbGVnaXIgdW4gZWxlbWVudG8gZGUgbGEgY2FzaWxsYSBkZSB2ZXJpZmljYWNpw7NuISc7CiAgICAkU2VsZi0+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+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGFyYSBwcm95ZWN0b3MsIHRhcmVhcyBvIHVzdWFyaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0xvcyBwZXLDrW9kb3MgZGUgdGllbXBvIG5vIHNlIHB1ZWRlbiBib3JyYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSBUYXJlYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ3JlZ2FyIFRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuYSB0YXJlYSBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0FqdXN0ZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJ0VsIHVzdWFyaW8gcHVlZGUgdmVyIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnRWwgdXN1YXJpbyB0aWVuZSBwZXJtaXRpZG8gY3JlYXIgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQZXJtaXRpciBjcmVhY2nDs24gZGUgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ0VsIHVzdWFyaW8gZXN0w6EgYXV0b3JpemFkbyBhIGNvbnRhYmlsaXphciBlbCB0aWVtcG8gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIHNhbHRhciBsYSBjb250YWJpbGl6YWNpw7NuIGRlbCB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTaSBlc3RhIG9wY2nDs24gZXN0w6EgbWFyY2FkYSwgbGEgY29udGFiaWxpemFjacOzbiBkZWwgdGllbXBvIHNlIGNvbnZpZXJ0ZSBlbiBvcGNpb25hbCBwYXJhIGVsIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTm8gaGFicsOhIGFkdmVydGVuY2lhcyBhY2VyY2EgZGUgbGFzIGVudHJhZGFzIHF1ZSBmYWx0YW4geSBubyBoYWJyw6EgZW50cmFkYXMgZGUgYXBsaWNhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0xhcHNvIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEw61hIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnRMOtYSBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZWRlbiBpbnNlcnRhciB1bmlkYWRlcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ8KhTm8gc2UgcHVlZGUgZ3VhcmRhciBsYSBjb25maWd1cmFjacOzbiwgcG9ycXVlIHVuIGTDrWEgc8OzbG8gdGllbmUgMjQgaG9yYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZWRlbiBib3JyYXIgdW5pZGFkZXMgZGUgdHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdFc3RhIGZlY2hhIGVzdMOhIGZ1ZXJhIGRlbCBsw61taXRlLCBwZXJvIG5vIGhhIGluc2VydGFkbyB0b2RhdsOtYSBlc3RlIGTDrWEsIHBvciBsbyBxdWUgb2J0aWVuZSB1bmEgKCDCoXNvbG8gdW5hISkgb3BvcnR1bmlkYWQgZGUgaW5zZXJ0YXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdEw61hcyBMYWJvcmFsZXMgSW5jb21wbGV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnwqFJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfCoUVycm9yIGFsIGluc2VydGFyIG3Dumx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfCoVNlIGhhbiBpbnNlcnRhZG8gc2F0aXNmYWN0b3JpYW1lbnRlIGVudHJhZGFzIHBhcmEgdmFyaWFzIGZlY2hhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ8KhTGEgZmVjaGEgaW50cm9kdWNpZGEgbm8gZXJhIHbDoWxpZGEhIExhIGZlY2hhIHNlIGNhbWJpw7MgYSBob3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ1NpbiBwZXLDrW9kbyBkZSB0aWVtcG8gY29uZmlndXJhZG8sIG8gbGEgZmVjaGEgZXNwZWNpZmljYWRhIGVzdMOhIGZ1ZXJhIGRlIGxvcyBwZXLDrW9kb3MgZGUgdGllbXBvIGRlZmluaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ8KhUG9yIGZhdm9yLCBww7NuZ2FzZSBlbiBjb250YWN0byBjb24gZWwgYWRtaW5pc3RyYWRvciBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvIHBhcmEgYWN0dWFsaXphciBzdXMgcGVyw61vZG9zIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIFByb3llY3RvcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIGxvcyBQcm95ZWN0b3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmVwb3J0aW5nUHJvamVjdDogbmVjZXNpdGEgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJveWVjdG8gZGUgUmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0ZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnwqFObyBzZSBwdWVkZSBhY3R1YWxpemFyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlbCB1c3VhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ8KhUHJveWVjdG8gYcOxYWRpZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfCoVByb3llY3RvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ8KhVGFyZWEgYcOxYWRpZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfCoVRhcmVhIGFjdHVhbGl6YWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfCoUxhIElEIGRlIHVzdWFyaW8gbm8gZXMgdmFsaWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfCoU5vIHB1ZWRlIGluc2VydGFyIGRhdG9zIGRlIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnwqFObyBzZSBwdWVkZSBhw7FhZGlyIHVuIHBlcsOtb2RvIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0FqdXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnwqFVc3VhcmlvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ8KhVXN1YXJpbyBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBw7FhZGlyIHVuIHVzdWFyaW8gYSBsYSBjb250YWJpbGlkYWQgZGVsIHRpZW1wby4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ051ZXZvIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ0VzdGFkbyBkZWwgcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1ZlcjogwqFOZWNlc2l0YSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ8KhUG9yIGZhdm9yIGluc2VydGUgc3VzIGhvcmFzIGRlIHRyYWJham8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnRMOtYXMgbGFib3JhbGVzIGluY29tcGxldG9zJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ8KhUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ8KhUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBvciBhdXNlbmNpYSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5hciBSZWdpc3RybyBkZSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2VyY2nDs24nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZSwgbmVjZXNhcmlvIHBhcmEgdmlzdWFsaXphciBlbCBuw7ptZXJvIGRlIGTDrWFzIGluY29tcGxldG9zIGRlIHVuIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgZmluYWxpemFjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZGVzY3JpcGNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgZmFsdGFzIChkw61hcyBkZSBhdXNlbmNpYSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgc2VtYW5hbGVzIGVzdMOhbmRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHVzdWFyaW9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIHBhcmEgY3XDoWxlcyBwcm95ZWN0b3MgZXMgb2JsaWdhdG9yaWEgbGEgaW5zZXJjacOzbiBkZSBjb21lbnRhcmlvcy4gU2kgbGEgZXhwcmVzacOzbiByZWd1bGFyIGNvaW5jaWRlIGNvbiBlbCBwcm95ZWN0bywgc2UgdGllbmUgcXVlIGVzY3JpYmlyIHVuIGNvbWVudGFyaW8uIExhIGV4cHJlc2nDs24gcmVndWxhciB1c2EgZWwgcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2kgZWwgbcOzZHVsbyBkZSBlc3RhZMOtc3RpY2FzIGRlYmUgZ2VuZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRWRpdGFyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIENvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnRXNwZWNpZmljYSBlbCBuw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgcGFyYSByZWdpc3RyYXIgaG9yYXMgZGUgdHJhYmFqbyBhdHJhc2FkYXMgKHBvciBlamVtcGxvOiAxMCBkw61hcyBkZSBhbnRpZ8O8ZWRhZCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzb2xhbWVudGUgbG9zIHVzdWFyaW9zIHF1ZSBoYW4gcmVnaXN0cmFkbyBzdXMgdGllbXBvcyBlbiBlbCBwcm95ZWN0byBzZWxlY2Npb25hZG8gc2Vyw6FuIG1vc3RyYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnU2kgc2UgaGFiaWxpdGEsIGxvcyBlbGVtZW50b3MgZGVzcGxlZ2FibGVzIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIHNlIGNhbWJpYXJhbiBhIG1vcmRlcm5vcyBjYW1wb3MgZGUgYXV0b2NvbXBsZXRhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NpIGVzdMOhIGhhYmlsaXRhZG8sIGVsIGZpbHRybyBwYXJhIGxvcyBwcm95ZWN0b3MgYW50ZXJpb3JlcyBwdWVkZSB1c2Fyc2UgZW4gbHVnYXIgZGUgZG9zIGxpc3RhcyBkZSBwcm95ZWN0b3MgKMO6bHRpbW8geSB0b2RvcykuIFNlIHBvZHLDrWEgdXNhciBzb2xvIHNpICBpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgbG9zIHByb3llY3RvcyBwcmV2aW9zIGVzdMOhIGFjdGl2byBwb3IgZGVmZWN0byBzaSBleGlzdGVuIHByb3llY3RvcyBwcmV2aW9zLiBTZSBwb2Ryw61hIHVzYXIgc29sbyBzaSBFbmFibGVBdXRvQ29tcGxldGlvbiB5IFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBnZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGVsIHRpZW1wbyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmdsX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnUXVlcmUgcmVhbG1lbnRlIGJvcnJhciBvIFRlbXBvIENvbnRhYmlsaXphZG8gZGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGUgUmV4aXN0cm8gVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJciDDoSBjb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBlbnRyZSBkYXRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNlbiBlbnRyYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBvcyBkw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW50cm9kdWNpw7NuIGVuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdFc2NvbGxhIG8gbW90aXZvIGRhIHPDumEgYXVzZW5jaWEgbm9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdWYWNhY2nDs25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0VuIHBlcm1pc28gZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnT3MgY2FtcG9zIG9icmlnYXRvcmlvcyBlc3TDoW4gbWFyY2Fkb3MgY3VuIMKrKsK7Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0hhaSBxdWUgZGFyIHVuaGEgaG9yYSBkZSBpbmljaW8gZSBkZSByZW1hdGUgb3UgdW4gcGVyw61vZG8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ09ic2VydmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vbiBzZSBwZXJtaXRlbiBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgaW5pY2lvIGNvaW5jaWRlIGNvbiBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPIGZvcm1hdG8gw6kgaW5jb3JyZWN0byEgSW50cm9kdXphIHVuaGEgaG9yYSBubyBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBzw7MgZXN0w6EgcGVybWl0aWRvIGNvbW8gaG9yYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0EgaG9yYSDDqSBpbmNvcnJlY3RhISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdBIGhvcmEgZGUgZmluYWxpemFjacOzbiBoYSBkZSBzZXIgcG9zdGVyaW9yIMOhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgZmluYWxpemFjacOzbiBjb2luY2lkZSBjb24gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTyBwZXLDrW9kbyDDqSBpbmNvcnJlY3RvISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyw61vZG8gY29ycmVjdG8gaGEgZGUgc2VyIG1haW9yIGRlIGNlcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdPIHBlcsOtb2RvIMOpIGluY29ycmVjdG8hIE5vbiBzZSBwZXJtaXRlbiBwZXLDrW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0VuZ2FkaXIgdW5oYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnU8OzIMOpIHBvc8OtYmVsIHNlbGVjY2lvbmFyIHVuIGVsZW1lbnRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIHRpw7FhIGxpY2VuemEgcG9yIGVuZmVybWlkYWRlPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbWVudHJlcyBlc3RhYmEgZGUgdmFjYWNpw7Nucz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbWVudHJlcyB0acOxYSBwZXJtaXNvIHBvciBob3JhcyBleHRyYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbcOhaXMgZGUgZGV6YXNlaXMgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSB4ZXJhbCBtZW5zdWFsIGRlIHJlcG9ydGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0hvcmFzIGV4dHJhIChob3JhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmEgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnSG9yYXMgZXh0cmEgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdQZXJtaXNvIHBvciBob3JhcyBleHRyYXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1ZhY2FjacOzbnMgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdWYWNhY2nDs25zIGNvbGxpZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1ZhY2FjacOzbnMgY29sbGlkYXMgKHRvdGFpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnVmFjYWNpw7NucyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGljZW56YXMgcG9yIGVuZmVybWlkYWRlIGNvbGxpZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGljZW56YXMgcG9yIGVuZmVybWlkYWRlIGNvbGxpZGFzICh0b3RhaXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXMgc2VndWludGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0TDrWEgZGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3JhcyBsYWJvcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdIb3JhcyB0cmFiYWxsYWRhcyB0b3RhaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzdGEgeGVyYWwgZG8gcHJveGVjdG8gZG8gdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdIb3JhcyAocG9yIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICh2aWRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIGFjdW11bGFkbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZXBvcnRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBwb3IgbWVzZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIGEgdW5oYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0luZm9ybWVzIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnN1YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUb3RhbCBkYSB2aWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGljZW56YSBwb3IgaG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdWYWNhY2nDs25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdWYWNhY2nDs25zIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdJbmZvcm1lcyBkZSBwcm94ZWN0b3MnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ0luZm9ybWUgZGUgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lyIMOhIHZpc3RhIHhlcmFsIGRlIGluZm9ybWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc8OzIHVzdWFyaW9zIGFjdGl2b3MgbmVzdGUgcHJveGVjdG8gc29uIG1vc3RyYWRvcy4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGFjdHVhbGljZSBvIGF4dXN0ZTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVG9kbyBvIHRlbXBvIGNvbnRhYmlsaXphZG8gcG9sb3MgdXN1YXJpb3Mgw6kgbW9zdHJhZG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhY3R1bGljZSBvIGF4dXN0ZTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGUgQ29udGFiaWxpemFjacOzbiBkbyBUZW1wbyBlbiBBeHVzdGVzIGRlIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRW5nYWRpciB1biBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1ZhaWEgw6EgdmlzdGEgeGVyYWwgZGUgYXh1c3Rlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0VuZ2FkaXIgdW4gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGFyIGEgY29uZmlndXJhY2nDs24gZG8gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1hhIGhhaSB1biBwcm94ZWN0byBjb24gZXN0ZSBub21lLiBQb3IgZmF2b3IsIGVzY29sbGEgdW4gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0VkaXRlIENvbnRhYmlsaXphY2nDs24gZG8gVGVtcG8gZW4gQXh1c3Rlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0VuZ2FkaXIgdW5oYSB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIGRlIHRhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdFbmdhZGlyIHVuaGEgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkaXRhciBhIGNvbmZpZ3VyYWNpw7NuIGRhIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWGEgaGFpIHVuaGEgdGFyZWZhIGNvbiBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xsYSB1biBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIHVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgVGVtcG8gRXhjZXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Blcm1pdGlyIGNyZWFjacOzbiBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0NvbWllbnpvIFBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0ZpbiBQZXJpb2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnRXhjZXNvIFRlbXBvIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgZGUgY29tZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1BvciBmYXZvciBpbnRyb2R1emNhIHVuaGEgZGF0YSB2w6FsaWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRmluIGRvIHBlcmlvZG8gZGViZSBzZXIgZGVzcG9pcyBkZSBxdWUgY29taWVuY2UgbyBwZXJpb2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBwZXJtaXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ0hvcmFzIHNlbWFuYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBzZSBhdG9wYXJvbiBwZXLDrW9kb3MgZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0VuZ2FkaXIgcGVyaW9kbyBkZSB0ZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWaXN0YSBSZXhpc3RybyBkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3RhIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNlZ3VpbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05vbiBzZSBhdG9wYXJvbiBkYXRvcyBwYXJhIGVzdGUgZMOtYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJjacOzbiBzYXRpc2ZhY3RvcmlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJybyBtZW50cmVzIGludHJvZHVjw61hbnNlIGRhdGFzIG3Dumx0aXBsZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0VudHJhZGFzIHNhdGlzZmFjdG9yaWFtZW50ZSBpbnRyb2R1Y2lkYXMgcGFyYSB2YXJpYXMgZGF0YXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdEYXRhIGludHJvZHVjaWRhIGZvaSBpbnZhbGlkYSEgQSBkYXRhIGZvaSBjYW1iaWFkYSBhIGhveGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdJbmZvcm1lcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0NvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnRyb2R1emEgYXMgc8O6YXMgaG9yYXMgZGUgdHJhYmFsbG8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0VzY29sbGEgYW8gbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0ludHJvZHVjacOzbiBlbiBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnRXNjb2xsYSBvIG1vdGl2byBkYSBhdXNlbmNpYSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5lIEVudHJhZGEgVGVtcG8gQ29udGFiaWxpemFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1lIGEgaW5zZXJjacOzbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gbm90aWZpY2FjacOzbiBpbnRlcmZhY2UgZGUgYXhlbnRlIHBhcmEgdmVyIG8gbsO6bWVybyBkZSBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcyBwYXJhIG8gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21lIHByZWRldGVybWluYWRvIHBhcmEgYXMgYWNjacOzbnMgbm92YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWUgcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyBwcm94ZWN0b3Mgbm92b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgZmluIGRhIGRhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdBeHVzdGUgcG9yIGRlZmVjdG8gcGFyYSBpbmljaW8gZGEgZGF0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwcmVkZWZpbmlkYSBkYSBkZXNjcmljacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZG9zIGTDrWFzIGRlIHBlcm1pc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZGFzIGhvcmFzIGV4dHJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgYXMgaG9yYXMgZXN0YW5kYXJkIHNlbWFuw6Fpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIGFzIGFjY2nDs25zIG5vdmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIG9zIHByb3hlY3RvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyB1c3VhcmlvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIG9zIHByb3hlY3RvcyBwYXJhIG9zIGNhbGVzIHVuIGNvbWVudGFyaW8gw6kgcmVxdWlyaWRvLiBTZSBhIEV4cFJlZyBjb2luY2lkZSBubyBwcm94ZWN0bywgdGVuIHF1ZSBpbnNlcnRhciB1biBjb21lbnRhcmlvIHRhbcOpbi4gQSBFeHBSZWcgdXNhIG8gcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgcG9kZSB4ZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpemFjacOzbiBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BvciBjYW50b3MgZMOtYXMgYXRyw6FzIHBvZGUgaW5zZXJ0YXIgdW5pZGFkZXMgZGUgdHJhYmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIHPDsyB1c3VhcmlvcyBxdWUgZW5nYWRpcm9uIHRlbXBvIGRlIHRyYWJhbGxvIGFvIHByb3hlY3RvIHNlbGVjY2lvbmFkbyBzb24gbW9zdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBhbyB1c3VhcmlvIHBlcm1pdGVzZWxsZSBpbnRyb2R1Y2lyICJwZXJtaXNvIGRlIHZhY2FjacOzbnMiICwgInBlcm1pc28gcG9yIGVuZmVybWlkYWRlIiBlICJwZXJtaXNvIHBvciBleGNlc28gZGUgdGVtcG8iIHBhcmEgbXVsdGlwbGVzIGRhdGFzIGR1bmhhIHZlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gZGVzcG9pcyBkb3MgY2FsZXMgYXMgdW5pZGFkZXMgZGUgdHJhYmFsbG8gZGViZW4gc2VyIGluc2VydGFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gc2VuIGVudHJhZGFzIGRlIHVuaWRhZGVzIGRlIHRyYWJhbGxvIGRlc3BvaXMgZG9zIGNhbGVzIHVuaGEgYWxlcnRhIHNlcsOhIG1vc3RyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0V4cHJlc2nDs25zIHJlZ3VsYXJlcyBwYXJhIGEgbGlzdGEgcXVlIGNvbnRyaW54ZSBhIGFjY2nDs24gc2VndW5kbyBvIHByb3hlY3RvIHNlbGVjY2lvbmFkby4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gZXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYWNjacOzbihzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYSBsaXN0YSBxdWUgY29udHJpbnhlIG8gcHJveGVjdG8gc2VndW5kbyBvcyBncnVwb3Mgc2VsZWNjaW9uYWRvcy4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gbGlzdGEgc2VwYXJhZGEgcG9yIGNvbWFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2UgYXMgaG9yYXMgZGUgdHJhYmFsbG8gcG9kZW4gc2VyIGluc2VydGFkYXMgc2VuIHRlbXBvcyBkZSBpbmljaW8gZSBmaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBmb3J6YSBhcyBpbnNlcmNpw7NucyBlbiBDb250YWJpbGl6YWNpw7NuVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGEgdW5oYSBhbGVydGEgc2UgaGFpIG1vaXRvcyBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnQ29udGFiaWxpemFyIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRlIGNvbnRhYmlsaXphY2nDs24gZG8gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdWaXN0YSBYZXJhbCBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ0luZm9ybWUgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0F4dXN0ZXMgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmlzdGEgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1BhcmEgdXNhciBzZSBhbGd1bmhhcyBhY2Npw7NucyByZWR1Y2lyb24gYXMgaG9yYXMgZGUgdHJhYmFsbG8gKHBvciBleGVtcGxvLCBzZSBzw7MgYSBtaXRhZGUgZG8gdGVtcG8gZGUgdmlheGUgw6kgcGFnYWRvIENoYXZlID0+IHZpYXhlOyBDb250aWRvID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omh1X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmFsw7NiYW4gdMO2csO2bG5pIHN6ZXJldG7DqSBlbm5layBhIG5hcG5hayBheiBpZMWRZWxzesOhbW9sw6Fzw6F0Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdJZMWRZmVsamVneXrDqXMgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1VncsOhcyBhIGJlw6FsbMOtdMOhc29raG96JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0TDoXR1bSBuYXZpZ8OhY2nDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0JlamVneXrDqXNlayBuw6lsa8O8bGkgbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnTWluZGVuIG5hcCBraWplbMO2bMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1TDtm1lZ2VzIGJlamVneXrDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdWw6FsYXNzemEga2kgYSB0w6F2b2xsw6l0ZSBva8OhdCBhIGtpamVsw7ZsdCBuYXBva3JhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnU3phYmFkc8OhZ29uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdCZXRlZ3N6YWJhZHPDoWdvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0Nzw7pzenRhdMOhc29uIHTDumzDs3JhIG1pYXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnQSBrw7Z0ZWxlesWRIG1lesWRayDigJ4q4oCdIGplbGxlbCB2YW5uYWsgbWVnamVsw7ZsdmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnS2kga2VsbCB0w7ZsdGVuaWUgYSBrZXpkxZEgw6lzIGJlZmVqZXrFkSBpZMWRdCB2YWd5IGVneSBpZMWRc3pha290Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnRmVsYWRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfDiXN6cmV2w6l0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQWRqb24gaG96esOhIGVneSA4IGthcmFrdGVybsOpbCBob3NzemFiYiDDqXN6cmV2w6l0ZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXTDrXYgaWTFkXBvbnRvayBuZW0gZW5nZWTDqWx5ZXpldHRlay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0F6IGlzbcOpdGzFkWTFkSDDs3LDoWsgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuIEEga2V6ZMOpc2kgaWTFkSBlZ3kgbcOhc2lrIGlkxZFrw7Z6cmUgaWxsZXN6a2VkaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfDiXJ2w6lueXRlbGVuIGZvcm3DoXR1bSEgw5PDkzpQUCBmb3Jtw6F0dW3DuiBpZMWRdCBhZGpvbiBtZWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ0EgMjQ6MDAgY3NhayBiZWZlamV6w6lzaSBpZMWRa8OpbnQgZW5nZWTDqWx5ZXpldHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRcG9udCEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnQSBiZWZlamV6w6lzaSBpZMWRbmVrIGEga2V6ZMOpc2kgaWTFkSB1dMOhbiBrZWxsIGxlbm5pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdBeiBpc23DqXRsxZFkxZEgw7Nyw6FrIG5lbSBlbmdlZMOpbHllemV0dGVrLiBBIGJlZmVqZXrDqXNpIGlkxZEgZWd5IG3DoXNpayBpZMWRa8O2enJlIGlsbGVzemtlZGlrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRc3phayEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ0VneSDDqXJ2w6lueWVzIGlkxZFzemFrbmFrIG5hZ3lvYmJuYWsga2VsbCBsZW5uaWUgbnVsbMOhbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8OJcnbDqW55dGVsZW4gaWTFkXN6YWshIE5lZ2F0w612IGlkxZFzemFrb2sgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRWd5IHNvciBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdDc2FrIGVneSBqZWzDtmzFkW7DqWd5emV0IGVsZW1ldCB2w6FsYXN6dGhhdCBraSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSBkb2xnb3pvdHQsIG1pYWxhdHQgYmV0ZWdzemFiYWRzw6Fnb24gdm9sdD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdCaXp0b3MgYmVubmUsIGhvZ3kgZG9sZ296b3R0LCBtaWFsYXR0IHN6YWJhZHPDoWdvbiB2b2x0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQml6dG9zIGJlbm5lLCBob2d5IGRvbGdvem90dCwgbWlhbGF0dCBjc8O6c3p0YXRvdHQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSB0w7ZiYiBtaW50IDE2IMOzcsOhdCBkb2xnb3pvdHQ/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdJZMWRamVsZW50w6lzIGhhdmkgw6F0dGVraW50w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnVMO6bMOzcmEgKMOzcmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ1TDumzDs3JhIChleiBhIGjDs25hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1TDumzDs3JhICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ01lZ21hcmFkdCBjc8O6c3p0YXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnU3phYmFkc8OhZyAobmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdLaXZldHQgc3phYmFkc8OhZyAoZXogYSBow7NuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdLaXZldHQgc3phYmFkc8OhZyAow7Zzc3plc2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdNZWdtYXJhZHQgc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0JldGVnc3phYmFkc8OhZyAobmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0tpdmV0dCBiZXRlZ3N6YWJhZHPDoWcgKGV6IGEgaMOzbmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdLaXZldHQgYmV0ZWdzemFiYWRzw6FnICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnRWzFkXrFkSBow7NuYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ0vDtnZldGtlesWRIGjDs25hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnSMOpdGvDtnpuYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ011bmthaWTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdMZWRvbGdvem90dCDDs3LDoWsgw7Zzc3plc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0EgZmVsaGFzem7DoWzDsyBwcm9qZWt0asOpbmVrIMOhdHRla2ludMWRamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnw5Nyw6FrIChoYXZvbnRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnw5Nyw6FrICjDqWxldHRhcnRhbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdNaW5kw7Zzc3plc2VuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ0lkxZFqZWxlbnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ0jDs25hcCBuYXZpZ8OhY2nDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnVWdyw6FzIGTDoXR1bXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIGplbGVudMOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdIYXZpIMO2c3N6ZXPDrXTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ8OJbGV0dGFydGFtIMO2c3N6ZXNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Nzw7pzenRhdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1N6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0JldGVnc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdIw6F0cmFsw6l2xZEgc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9qZWt0IGplbGVudMOpc2VrJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9qZWt0IGplbGVudMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdVZ3LDoXMgYSBqZWxlbnTDqXMgw6F0dGVraW50xZFow7Z6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnSmVsZW5sZWcgY3NhayBheiBha3TDrXYgZmVsaGFzem7DoWzDs2sgdmFubmFrIG1lZ2plbGVuw610dmUgZWJiZW4gYSBwcm9qZWt0YmVuLiBBIG3FsWvDtmTDqXMgbcOzZG9zw610w6Fzw6Fob3ogZnJpc3PDrXRzZSBhIGJlw6FsbMOtdMOhc3Q6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0plbGVubGVnIG1pbmRlbiBpZMWRZWxzesOhbW9sw7MgZmVsaGFzem7DoWzDsyBtZWcgdmFuIGplbGVuw610dmUuIEEgbcWxa8O2ZMOpcyBtw7Nkb3PDrXTDoXPDoWhveiBmcmlzc8OtdHNlIGEgYmXDoWxsw610w6FzdDonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBwcm9qZWt0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1Byb2pla3QgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVWdyw6FzIGEgYmXDoWxsw610w6Fzb2sgw6F0dGVraW50xZFow7Z6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnUHJvamVrdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUHJvamVrdGJlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ03DoXIgbMOpdGV6aWsgZWd5IGlseWVuIG5ldsWxIHByb2pla3QuIFbDoWxhc3N6b24gZWd5IG3DoXNpayBuZXZldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdJZMWRZWxzesOhbW9sw6FzaSBiZcOhbGzDrXTDoXNvayBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRmVsYWRhdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdTesWxcsWRIGEgcHJvamVrdGtlaGV6LCBmZWxhZGF0b2tob3ogdmFneSBmZWxoYXN6bsOhbMOza2hveic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0F6IGlkxZFzemFrb2sgbmVtIHTDtnLDtmxoZXTFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdGZWxhZGF0bGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdGZWxhZGF0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdGZWxhZGF0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnTcOhciBsw6l0ZXppayBlZ3kgaWx5ZW4gbmV2xbEgZmVsYWRhdC4gVsOhbGFzc3pvbiBlZ3kgbcOhc2lrIG5ldmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdGZWxoYXN6bsOhbMOzbGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIGJlw6FsbMOtdMOhc29rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnQSBmZWxoYXN6bsOhbMOzIG1lZ3Rla2ludGhldGkgYSB0w7psw7Nyw6FrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1TDumzDs3JhIG1lZ2plbGVuw610w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnQSBmZWxoYXN6bsOhbMOzIGzDqXRyZWhvemhhdCBwcm9qZWt0ZWtldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdGzDqXRyZWhvesOhcyBlbmdlZMOpbHllesOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnQSBmZWxoYXN6bsOhbMOzbmFrIGxlaGV0xZFzw6lnZSB2YW4ga2loYWd5bmkgYXogaWTFkWVsc3rDoW1vbMOhc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBraWhhZ3nDoXPDoW5hayBsZWhldMWRdsOpIHTDqXRlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdIYSBleiBhIGxlaGV0xZFzw6lnIHZhbiBraXbDoWxhc3p0dmEsIGFra29yIGF6IGlkxZFlbHN6w6Ftb2zDoXMgdMOpbnlsZWdlc2VuIHbDoWxhc3p0aGF0w7MgYSBmZWxoYXN6bsOhbMOzbmFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICdOZW0gbGVzem5layBmaWd5ZWxtZXp0ZXTDqXNlayBhIGhpw6FueXrDsyBiZWplZ3l6w6lzZWtyxZFsIMOpcyBuZW0gbGVzeiBiZcOtcsOhc2kga8OpbnlzemVyw610w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnSWTFkXRhcnRhbW9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0lkxZFzemFrIGtlemRldGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0lkxZFzemFrIHbDqWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdTemFiYWRzw6FnIG5hcGphaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ8OTcsOhayBoZXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdKb2dvc3VsdCB0w7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnS2V6ZMOpc2kgZMOhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ8OJcnbDqW55ZXMgZMOhdHVtb3QgaWxsZXNzemVuIGJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0JlZmVqZXrDqXNpIGTDoXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0F6IGlkxZFzemFrIHbDqWfDqW5layBheiBpZMWRc3phayBrZXpkZXRlIHV0w6FuIGtlbGwgbGVubmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnU3phYmFkc8OhZyBuYXBqYWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSGV0aSDDs3LDoWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdUw7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmVtIHRhbMOhbGhhdMOzayBpZMWRc3pha29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdJZMWRc3phayBob3p6w6FhZMOhc2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnSWTFkWZlbGplZ3l6w6lzIG1lZ3Rla2ludMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBIGvDtnZldGtlesWRIG1lZ3Rla2ludMOpc2U6ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdFbMWResWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0vDtnZldGtlesWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOZW0gdGFsw6FsaGF0w7MgYWRhdCBlcnJlIGEgbmFwcmEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ05lbSBsZWhldCBiZWlsbGVzenRlbmkgYSBtdW5rYWVneXPDqWdla2V0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGVndXTDs2JiaSBwcm9qZWt0ZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmVtIGxlaGV0IGVsbWVudGVuaSBhIGJlw6FsbMOtdMOhc29rYXQsIG1lcnQgZWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmVtIGxlaGV0IHTDtnLDtmxuaSBhIG11bmthZWd5c8OpZ2VrZXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXogYSBkw6F0dW0gYSBoYXTDoXJvbiBrw612w7xsIHZhbiwgZGUgbcOpZyBuZW0gaWxsZXN6dGV0dGUgYmUgZXogYSBuYXBvdCwgw61neSBrYXAgbcOpZyBlZ3koISkgZXPDqWx5dCBhIGJlaWxsZXN6dMOpc3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnQmVmZWplemV0bGVuIG11bmthbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnU2lrZXJlcyBiZWlsbGVzenTDqXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdIaWJhIHTDtnJ0w6ludCB0w7ZiYiBkw6F0dW0gYmVpbGxlc3p0w6lzZSBrw7Z6YmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdBIGJlamVneXrDqXNlayBzaWtlcmVzZW4gYmVpbGxlc3p0dmUgYSBrw7xsw7ZuYsO2esWRIGTDoXR1bW9raG96ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnQSBtZWdhZG90dCBkw6F0dW0gw6lydsOpbnl0ZWxlbiB2b2x0ISBBIGTDoXR1bSBhIG1haSBuYXByYSBsZXR0IG3Ds2Rvc8OtdHZhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOaW5jcyBpZMWRc3phayBiZcOhbGzDrXR2YSwgdmFneSBhIG1lZ2Fkb3R0IGTDoXR1bSBhIG1lZ2hhdMOhcm96b3R0IGlkxZFzemFrb2tvbiBrw612w7xsIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ1ZlZ3llIGZlbCBhIGthcGNzb2xhdG90IGF6IGlkxZFlbHN6w6Ftb2zDoXMgYWRtaW5pc3p0csOhdG9yw6F2YWwsIGhvZ3kgZnJpc3PDrXRzZSBheiBpZMWRc3pha2FpdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xlZ3V0w7NiYiBraXbDoWxhc3p0b3R0IHByb2pla3Rlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdNaW5kZW4gcHJvamVrdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdKZWxlbnTDqXMgcHJvamVrdDogcHJvamVrdGF6b25vc8OtdMOzIHN6w7xrc8OpZ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnSmVsZW50w6lzIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnSmVsZW50w6lzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ05lbSBsZWhldCBmcmlzc8OtdGVuaSBhIGZlbGhhc3puw6Fsw7NpIGJlw6FsbMOtdMOhc29rYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrdCBob3p6w6FhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrdCBmcmlzc8OtdHZlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0ZlbGFkYXQgaG96esOhYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0ZlbGFkYXQgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnQSBmZWxoYXN6bsOhbMOzLWF6b25vc8OtdMOzIG5lbSDDqXJ2w6lueWVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdOZW0gbGVoZXQgYmVpbGxlc3p0ZW5pIGEgZmVsaGFzem7DoWzDs2FkYXRva2F0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05lbSBsZWhldCBob3p6w6FhZG5pIGlkxZFzemFrb3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdCZcOhbGzDrXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ0ZlbGhhc3puw6Fsw7MgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdGZWxoYXN6bsOhbMOzIGhvenrDoWFkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnRmVsaGFzem7DoWzDsyBob3p6w6FhZMOhc2EgYXogaWTFkWVsc3rDoW1vbMOhc2hveuKApic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ8OaaiBmZWxoYXN6bsOhbMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdJZMWRc3phayDDoWxsYXBvdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnTsOpemV0OiAlcyBzesO8a3PDqWdlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0lsbGVzc3plIGJlIGEgbXVua2FpZGVqw6l0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0JlZmVqZXpldGxlbiBtdW5rYW5hcG9rJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0xlZ2Fsw6FiYiBlZ3kgbmFwb3QgdsOhbGFzc3pvbiBraSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1TDtm1lZ2VzIGJlamVneXrDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6FsYXNzemEga2kgYSB0w6F2b2xsw6l0IG9rw6F0ISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgYmVqZWd5esOpcyB0w7ZybMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdCZWlsbGVzenTDqXMgbWVnZXLFkXPDrXTDqXNlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnw5xneWludMOpesWRaSBmZWzDvGxldCDDqXJ0ZXPDrXTDqXNpIG1vZHVsIGEgZmVsaGFzem7DoWzDsyBiZWZlamV6ZXRsZW4gbXVua2FuYXBqYWkgc3rDoW3DoW5hayBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IG7DqXYgYXogw7pqIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgbsOpdiBheiDDumogcHJvamVrdGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgYmVmZWplesOpc2kgZMOhdHVtaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBrZXpkw6lzaSBkw6F0dW1ob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBsZcOtcsOhc2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgc3phYmFkc8OhZyBuYXBqYWlob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSB0w7psw7Nyw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIHN6YWJ2w6FueW9zIGhldGkgbXVua2HDs3LDoWtob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBtxbF2ZWxldGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgw6FsbGFwb3QgYXogw7pqIHByb2pla3Rla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBmZWxoYXN6bsOhbMOza2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSBwcm9qZWt0ZWtldCwgYW1lbHlla2hleiDDqXN6cmV2w6l0ZWwgc3rDvGtzw6lnZXMuIEhhIGEgcmVndWzDoXJpcyBraWZlamV6w6lzIGlsbGVzemtlZGlrIGEgcHJvamVrdHJlLCBha2tvciBiZSBrZWxsIGlsbGVzenRlbmllIGVneSDDqXN6cmV2w6l0ZWx0IGlzLiBBIHJlZ3Vsw6FyaXMga2lmZWplesOpcyBheiBzbXggcGFyYW3DqXRlcnQgaGFzem7DoWxqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSBzdGF0aXN6dGlrYSBtb2R1bCBlbMWRw6FsbMOtdGhhdC1lIGlkxZFlbHN6w6Ftb2zDoXNpIGluZm9ybcOhY2nDs2thdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBiZcOhbGzDrXTDoXNhaW5hayBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0lkxZFmZWxqZWd5esOpcyBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdIw6FueSBuYXBwYWwgZXplbMWRdHRow7Z6IGlsbGVzenRoZXQgYmUgbXVua2FlZ3lzw6lnZWtldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGNzYWsgYXpvayBhIGZlbGhhc3puw6Fsw7NrIGxlc3puZWsgbWVnamVsZW7DrXR2ZSwgYWtpayBtdW5rYWlkxZF0IGFkdGFrIGhvenrDoSBhIGtpamVsw7ZsdCBwcm9qZWt0aGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGEgc3plcmtlc3p0w6lzaSBrw6lwZXJuecWRbiBsw6l2xZEgbGVuecOtbMOzIGVsZW1layBrb3JzemVyxbFzw610ZXR0IGF1dG9tYXRpa3VzYW4ga2llZ8Opc3rDrXRldHQgbWV6xZFrcmUgbGVzem5layBtZWd2w6FsdG96dGF0dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBheiBlbMWResWRIHByb2pla3RlayBzesWxcsWRamUgaGFzem7DoWxoYXTDsyBhIHByb2pla3RlayBrw6l0IGxpc3TDoWphIGhlbHlldHQgKGxlZ3V0w7NiYmkgw6lzIMO2c3N6ZXMpLiBDc2FrIGFra29yIGhhc3puw6FsaGF0w7MsIGhhIGEgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGVuZ2Vkw6lseWV6dmUgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGF6IGVsxZF6xZEgcHJvamVrdGVrIHN6xbFyxZFqZSBhbGFww6lydGVsbWV6ZXR0ZW4gYmUgdmFuIGthcGNzb2x2YSwgaGEgdmFubmFrIGVsxZF6xZEgcHJvamVrdGVrLiBDc2FrIGFra29yIGhhc3puw6FsaGF0w7MsIGhhIGF6IEVuYWJsZUF1dG9Db21wbGV0aW9uIMOpcyBhIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZW5nZWTDqWx5ZXp2ZSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYSBmZWxoYXN6bsOhbMOzbmFrIG1lZ2VuZ2VkZXR0IGVneXN6ZXJyZSB0w7ZiYiBkw6F0dW1ob3og4oCec3phYmFkc8OhZ29u4oCdLCDigJ5iZXRlZ3N6YWJhZHPDoWdvbuKAnSDDqXMg4oCeY3PDunN6dGF0w6Fzb27igJ0gw6lydMOpayBtZWdhZMOhc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnQSBtdW5rYW5hcG9rIGxlZ25hZ3lvYmIgc3rDoW1hLCBhbWVseWVrIHV0w6FuIGEgbXVua2FlZ3lzw6lnZWtldCBiZSBrZWxsIHN6w7pybmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdBIG11bmthZWd5c8OpZ2VrIGJlamVneXrDqXMgbsOpbGvDvGxpIG11bmthbmFwb2sgbGVnbmFneW9iYiBzesOhbWEsIGFtZWx5ZWsgdXTDoW4gZWd5IGZpZ3llbG1lenRldMOpcyBsZXN6IG1lZ2plbGVuw610dmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ8OBdHRla2ludMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdQcm9qZWt0aWTFkSBqZWxlbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOhcmlzIGtpZmVqZXrDqXNlayBhIGtpamVsw7ZsdCBwcm9qZWt0IHN6ZXJpbnRpIGtvcmzDoXRvesOzIG3FsXZlbGV0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBhIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ1JlZ3Vsw6FyaXMga2lmZWplesOpc2VrIGEgZmVsaGFzem7DoWzDs2Nzb3BvcnRvayBzemVyaW50aSBrb3Jsw6F0b3rDsyBwcm9qZWt0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBjc29wb3J0b2sgdmVzc3rFkXZlbCBlbHbDoWxhc3p0b3R0IGxpc3TDoWrDoXQgdGFydGFsbWF6emEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdNZWdhZGphLCBob2d5IGEgbXVua2FpZMWRIGJlc3rDunJoYXTDsy1lIGtlemTDqXNpIMOpcyBiZWZlamV6w6lzaSBpZMWRayBuw6lsa8O8bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXogYSBtb2R1bCBraWvDqW55c3plcsOtdGkgYSBiZXN6w7pyw6Fzb2thdCBheiBpZMWRZWxzesOhbW9sw6FzYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0V6IGF6IMOpcnRlc8OtdMOpc2kgbW9kdWwgZWd5IGZpZ3llbG1lenRldMOpc3QgYWQsIGhhIHTDumwgc29rIGJlZmVqZXpldGxlbiBtdW5rYW5hcCB0YWzDoWxoYXTDsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIHN6ZXJrZXN6dMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgw6F0dGVraW50xZEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBqZWxlbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIGJlw6FsbMOtdMOhc29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIG7DqXpldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0Fra29yIGtlbGwgaGFzem7DoWxuaSwgaGEgbsOpaMOhbnkgbcWxdmVsZXQgY3PDtmtrZW50ZXR0ZSBhIG11bmthaWTFkXQgKHDDqWxkw6F1bCBoYSBjc2FrIGF6IHV0YXrDoXNpIGlkxZEgZmVsZSB2YW4ga2lmaXpldHZlOiBLdWxjcyA9PiB1dGF6w6FzOyBUYXJ0YWxvbSA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Oml0X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVnVvaSB2ZXJhbWVudGUgY2FuY2VsbGFyZSBsYSByZW5kaWNvbnRhemlvbmUgdGVtcG9yYWxlIGRpIG9nZ2kgPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdNb2RpZmljYSBsYSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdWYWkgYWxsZSBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhemlvbmUgcGVyIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdHaW9ybmkgc2VuemEgaW5mb3JtYXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGV6aW9uYSB0dXR0aSBpIGdpb3JuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BlciBmYXZvcmUgc2VsZXppb25hIGlsIG1vdGl2byBkZWxsYSB0dWEgYXNzZW56YSBwZXIgaSBnaW9ybmkgc2VsZXppb25hdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Fzc2VudGUgcGVyIG1hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXNzZW50ZSBwZXIgcmVjdXBlcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdJIGNhbXBpIG9iYmxpZ2F0b3JpIHNvbm8gaW5kaWNhdGkgY29uICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFXCcgb2JibGlnYXRvcmlvIGluc2VyaXJlIGluaXppbyBlIGZpbmUgb3BwdXJlIHVuIHBlcmlvZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnQ29tcGl0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21tZW50byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdBZ2dpdW5nZXJlIHVuIGNvbW1lbnRvIGNvbiBwacO5IGRpIDggY2FyYXR0ZXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm9uIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRpIHZhbG9yaSBuZWdhdGl2aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBpbml6aW8gY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIG5vbiB2YWxpZG8uIEluc2VyaXJlIHVuIG9yYXJpbyBuZWwgZm9ybWF0byBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnTFwnb3JhIDI0OjAwIMOoIGNvbnNlbnRpdGEgc29sbyBjb21lIG9yYSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09yYXJpbyBub24gdmFsaWRvISBJbiB1biBnaW9ybm8gY2kgc29ubyBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0xcJ29yYXJpbyBkaSBmaW5lIMOoIHBvc3RlcmlvcmUgYWxsXCdvcmFyaW8gZGkgaW5pemlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBmaW5lIGNvaW5jaWRlIGNvbiB1biBhbHRybyBpbnRlcnZhbGxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnUGVyaW9kbyBub24gdmFsaWRvLiBVbmEgZ2lvcm5hdGEgaGEgc29sbyAyNCBvcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyaW9kbyB2YWxpZG8gZGV2ZSBlc3NlcmUgbWFnZ2lvcmUgZGkgemVyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1BlcmlvZG8gbm9uIHZhbGlkby4gVmFsb3JpIG5lZ2F0aXZpIG5vbiBhbW1lc3NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0FnZ2l1bmdlcmUgdW5hIHJpZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdQdW9pIHNlbGV6aW9uYXJlIHNvbG8gdW4gZWxlbWVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBhc3NlbnRlIHBlciBtYWxhdHRpYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBpbiBmZXJpZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBtZW50cmUgZXJpIGFzc2VudGUgcGVyIHJlY3VwZXJvID8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIHBpw7kgZGkgMTYgb3JlPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnQ3J1c2NvdHRvIG1lbnNpbGUgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnU3RyYW9yZGluYXJpbyAob3JlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdTdHJhb3JkaW5hcmlvIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1N0cmFvcmRpbmFyaW8gKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnVG90YWxlIG9yZSBkaSByZWN1cGVybyBkaXNwb25pYmlsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdGZXJpZSAoZ2lvcm5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZSB1dGlsaXp6YXRlIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0ZlcmllIHV0aWxpenphdGUgKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRmVyaWUgcmVzaWR1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhIChnaW9ybmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQXNzZW56ZSBwZXIgbWFsYXR0aWEgdXRpbGl6emF0ZSAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzZSBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXNlIHNlZ3VlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdHaW9ybm8gZGVsbGEgc2V0dGltYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdPcmUgbGF2b3JhdGl2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbGUgb3JlIGxhdm9yYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkZWwgcHJvZ2V0dG8gLSBVdGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnT3JlIChtZW5zaWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnT3JlIChnbG9iYWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsZSBvbW5pY29tcHJlbnNpdm8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmVwb3J0IGRlbCB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhemlvbmUgcGVyIG1lc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ1ZhaSBhbGxhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0IHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWxlIG1lbnNpbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUb3RhbGUgZ0xvYmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Fzc2VuemUgcGVyIHJlY3VwZXJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ01hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0dpb3JuaSByaW1hbmVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmlhc3N1bnRpIHByb2dldHRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSaWFzc3VudG8gcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBkaSByZXBvcnRpc3RpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdWZW5nb25vIG1vc3RyYXRpIHNvbG8gZ2xpIHV0ZW50aSBhdHRpdmkgZGkgcXVlc3RvIHByb2dldHRvLiBQZXIgY2FtYmlhcmUgcXVlc3RvIGNvbXBvcnRhZW50byBhZ2dpb3JuYXJlIGlsIHBhcmFtZXRybzogJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1Zlbmdvbm8gbW9zdHJhdGkgdHV0dGkgZ2xpIHV0ZW50aSBwZXIgbGEgcmVuZGljb250YXppb25lIHRlbXBvLiBQZXIgY2FtYmlhcmUgcXVlc3RvIGNvbXBvcnRhbWVudG8gYWdnaW9ybmFyZSBpbCBwYXJhbWV0cm86JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGUgY29uZmlndXJhemlvbmkgZGkgZ2VzdGlvbmUgZGVsIHRlbXBvIGRlbCBwcm9nZXR0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGEgY29uZmlndXJhemlvbmUgZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdFc2lzdGUgZ2nDoCB1biBwcm9nZXR0byBjb24gcXVlc3RvIG5vbWUuIFNjZWdsZWlyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsZSBjb25maWd1cmF6aW9uaSBkZWxsYSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGVyIHByb2dldHRpLCBhdHRpdml0w6AgbyB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdJIHBlcmlvZGkgZGkgdGVtcG8gbm9uIHBvc3Nvbm8gZXNzZXJlIGVsaW1pbmF0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnRWxlbmNvIGRlaSBwcm9nZXR0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdFbGVuY28gZGVpIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsYSBjb25maWd1cmF6aW9uZSBkZWkgY29tcGl0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRXNpc3RlIGdpw6AgdW4gdGFzayBjb24gcXVlc3RvIG5vbWUuIFNjZWdsaWVyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0VsZW5jbyB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0ltcG9zdGF6aW9uaSB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdMXCdVdGVudGUgcHXDsiB2ZWRlcmUgbG8gc3RyYW9yZGluYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhcmUgc3RyYW9yZGluYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdMXCdVdGVudGUgcHXDsiBjcmVhcmUgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0NvbnNlbnRpcmUgbGEgY3JlYXppb25lIGRlbCBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnSW50ZXJ2YWxsaSBkaSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRpIGluaXppbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkaSB0ZXJtaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdHaW9ybmkgZGkgQXNzZW56YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ09yZSBhbGxhIHNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnU3RyYW9yZGluYXJpIGF1dG9yaXp6YXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXRhIGRpIGluaXppbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdJbnNlcmlyZSB1bmEgZGF0YSB2YWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBGaW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnSWwgcGVyaW9kbyBmaW5hbGUgZGV2ZSBlc3NlcmUgcG9zdGVyaW9yZSBhbCBwZXJpb2RvIGluaXppYWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnR2lvcm5pIGRpIGFzc2VuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnT3JhcmkgZGVsbGEgU2V0dGltYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnU3RyYW9yZGluYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm9uIGNpIHNvbm8gcGVyaW9kaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWdnaXVuZ2kgcGVyaW9kbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWaXN1YWxpenphcmUgcmVnaXN0cm8gb3JhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzdWFsaXp6YXppb25lIGRpICAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnR2lvcm5vIHByZWNlZGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdHaW9ybm8gc3VjY2Vzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOZXNzdW4gZGF0byB0cm92YXRvIHBlciBxdWVzdG8gZ2lvcm5vLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICdOb24gcHVvaSBpbnNlcmlyZSBsZSB1bml0w6AgbGF2b3JhdGl2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ1VsdGltaSBwcm9nZXR0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICdOb24gcHVvaSBzYWx2YXJlIGxlIGltcG9zdGF6aW9uaSwgcGVyY2jDqCB1biBnaW9ybm8gaGEgc29sbyAyNCBvcmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICdOb24gcHVvaSBjYW5jZWxsYXJlIGxlIHVuaXTDoCBsYXZvcmF0aXZlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ1F1ZXN0YSBEYXRhIMOoIGZ1b3JpIGxpbWl0ZSBtYXNzaW1vLCBtYSBub24gaGFpIGFuY29yYSBhbmNvcmEgaW5zZXJpdG8gcXVlc3RvIGdpb3JubywgcXVpbmRpIGhhaSBhbmNvcmEgdW5hICghKSBwb3NzaWJpbGl0w6AgZGkgaW5zZXJpcm5lIHVuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdHaW9ybmkgbGF2b3JhdGl2aSBpbmNvbXBsZXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyaW1lbnRvIGF2dmVudXRvIGNvbiBzdWNjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1NpIMOoIHZlcmlmaWNhdG8gdW4gZXJyb3JlIG5lbGxcJ2luc2VyaW1lbnRvIGRpIGRhdGUgbXVsdGlwbGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0luc2VyaW1lbnRvIGRpIGRhdGUgbXVsdGlwbGUgYXZ2ZW51dG8gY29uIHN1Y2Nlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnTGEgZGF0YSBpbnNlcml0YSBub24gw6ggdmFsaWRhISBFXCcgc3RhdGEgaW1wb3N0YXRhIGxhIGRhdGEgZGkgb2dnaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnTmVzc3VuIHBlcmlvZG8gZGkgdGVtcG8gY29uZmlndXJhdG8sIG8gbGEgZGF0YSBzcGVjaWZpY2F0YSDDqCBmdW9yaSBkYWkgcGVyaW9kaSBkaSB0ZW1wbyBkZWZpbml0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ1BlciBmYXZvcmUsIGNvbnRhdHRhcmUgbFwnYW1taW5pc3RyYXppb25lIGRlbGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvcmFsZSBwZXIgYWdnaW9ybmFyZSBpIHR1b2kgaW50ZXJ2YWxsaSBkaSB0ZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1VsdGltaSBwcm9nZXR0aSBzZWxlemlvbmF0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUdXR0aSBpIHByb2dldHRpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JhcHBvcnRvUHJvZ2V0dG86IFByb2plY3RJRCBuZWNlc3NhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnQ29tcGlsYW5kbyBpbCByYXBwb3J0byBkZWwgcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0aXN0aWNhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0ltcG9zc2liaWxlIGFnZ2lvcm5hcmUgbGUgaW1wb3N0YXppb25pIHV0ZW50ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9nZXR0byBhZ2dpdW50byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2dldHRvIGFnZ2lvcm5hdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXR0aXZpdMOgIGFnZ2l1bnRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQXR0aXZpdMOgIGFnZ2lvcm5hdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0xvIFVzZXJJRCBub24gw6ggdmFsaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdOb24gcHVvaSBpbnNlcmlyZSBpIGRhdGkgZGVsbFwndXRlbnRlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05vbiBzZWkgYWJpbGl0YXRvIGFkIGluc2VyaXJlIGkgcGVyaW9kaSBkaSB0ZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0ltcG9zdGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnVXRlbnRlIGFnZ2lvcm5hdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVXRlbnRlIGluc2VyaXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0FnZ2l1bmdpIHVuIHV0ZW50ZSBwZXIgbGEgY29udGFiaWxpenphemlvbmUgdGVtcG9yYWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTnVvdm8gdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0byBkaSBwZXJpb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXN0YTogJXMgcmljaGllc3RvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnSW5zZXJpcmUgbFwnb3JhcmlvIGxhdm9yYXRpdm8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnR2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdTcGVjaWZpY2FyZSBhbG1lbm8gdW4gZ2lvcm5vISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1NlbGV6aW9uYXJlIHVuIG1vdGl2byBwZXIgbFwnYXNzZW56YSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdDYW5jZWxsYXJlIHZvY2UgZGkgcmVuZGljb250YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmVybWFyZSBpbnNlcmltZW50byc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsbyBkaSBub3RpZmljYSBkZWxsXCdpbnRlcmZhY2NpYSBhZ2VudGUgcGVyIHZlZGVyZSBpbCBudW1lcm8gZGkgZ2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSBwZXIgbFwndXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTm9tZSBwcmVkZWZpbml0byBwZXIgbGUgbnVvdmUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOb21lIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHByb2dldHRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGEgZGF0YSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsYSBkYXRhIGRpIGluaXppby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxhIGRlc2NyaXppb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIGdpb3JuaSBkaSBhc3NlbnphL3ZhY2FuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsbyBzdHJhb3JkaW5hcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsXCdvcmFyaW8gc2V0dGltYW5hbGUgc3RhbmRhcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxlIG51b3ZlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGkgbnVvdmkgcHJvZ2V0dGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHV0ZW50aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5pc2NlIGkgcHJvZ2V0dGkgcGVyIGkgcXVhbGkgdW5hIGFubm90YXppb25lIMOoIG9iYmxpZ2F0b3JpYS4gU2UgbGEgUmVnRXhwIGNvaW5jaWRlIGlsIHByb2dldHRvIHNpIMOoIG9iYmxpZ2F0aSBhZCBpbnNlcmlyZSB1bmEgYW5ub3RhemlvbmUuIExhIFJlZ0V4cCB1dGlsaXp6YSBpbCBwYXJhbWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIGlsIG1vZHVsbyBzdGF0aXN0aWNoZSBwdcOyIGdlbmVyYXJlIGluZm9ybWF6aW9uaSBkaSByZW5kaWNvbnRhemlvbmUgdGVtcG9yYWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdNb2RpZmljYSBsZSBpbXBvc3RhemlvbmkgZGVsbGEgcmVuZGljb250YXppb25lIHRlbXBvcmFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdNb2RpZmljYSByZWdpc3RybyBvcmFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIG5lbCBwYXNzYXRvIGluIGN1aSDDqCBwb3NzaWJpbGUgaW5zZXJpcmUgbGUgdW5pdMOgIGRpIGxhdm9yby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRvLCBtb3N0cmEgc29sbyBnbGkgdXRlbnRpIGNoZSBoYW5ubyBhZ2dpdW50byB2b2NpIGRpIHRlbXBvIGxhdm9ybyBhbCBwcm9nZXR0byBzZWxlemlvbmF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0YSwgZ2xpIGVsZW1lbnRpIGEgdGVuZGluYSBuZWxsYSBzY2hlcm1hdGEgZGkgbW9kaWZpY2Egc29ubyBzb3N0aXR1aXRpIGRhIHBpw7kgbW9kZXJuaSBjYW1waSBjb24gY29tcGxldGFtZW50byBhdXRvbWF0aWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdGEsIGlsIGZpbHRybyBwZXIgaSBwcm9nZXR0aSBwcmVjZWRlbnRpIHB1w7IgZXNzZXJlIHV0aWxpenphdG8gYWwgcG9zdG8gZGkgZHVlIGVsZW5jaGkgZGkgcHJvZ2V0dGkgKHVsdGltbyBlIHR1dHRpKS4gUHXDsiBlc3NlcmUgdXRpbGl6emF0byBzb2xvIHNlIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiDDqCBhYmlsaXRhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdGEsIGlsIGZpbHRybyBwZXIgaSBwcm9nZXR0aSBwcmVjZWRlbnRpIMOoIGF0dGl2byBpbiBtb2RvIHByZWRlZmluaXRvIHNlIGNpIHNvbm8gcHJvZ2V0dGkgcHJlY2VkZW50aS4gUHXDsiBlc3NlcmUgdXRpbGl6emF0byBzb2xvIHNlIEVuYWJsZUF1dG9Db21wbGV0aW9uIGUgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBzb25vIGFiaWxpdGF0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0bywgw6ggcG9zc2liaWxlIHBlciBnbGkgdXRlbnRpIGluc2VyaXJlIGkgY2FtcGkgInBlcmlvZG8gZGkgdmFjYW56YSIsICJwZXJpb2RvIGRpIG1hbGF0dGlhIiBlICJzdHJhb3JkaW5hcmlvIiBjb24gZGF0ZSBtdWx0aXBsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOdW1lcm8gbWFzc2ltbyBkaSBnaW9ybmkgbGF2b3JhdGl2aSBpbiBjdWkgw6ggcG9zc2liaWxlIGluc2VyaXJlIGxlIHZvY2kgZGkgdW5pdMOgIGRpIGxhdm9yby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ051bWVybyBtYXNzaW1vIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGNoZSBub24gaGFubm8gdm9jaSBkaSB1bml0w6AgZGkgbGF2b3JvIG9sdHJlIGlsIHF1YWxlIHZlcnLDoCBtb3N0cmF0byB1biBhdnZpc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1Zpc3RhIEdsb2JhbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmFwcG9ydG8gZGVsIHRlbXBvIGRpIHByb2dldHRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnRXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIHZpbmNvbGFyZSBsaXN0YSBkaSBhemlvbmkgaW4gYmFzZSBhbCBwcm9nZXR0byBzZWxlemlvbmF0by4gTGEgY2hpYXZlIGNvbnRpZW5lIHVuXCdlc3ByZXNzaW9uZSByZWdvbGFyZSBwZXIgaWwvaSBwcm9nZXR0by9pLCBpbCBjb250ZW51dG8gY29udGllbmUgZXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIGxlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIHZpbmNvbGFyZSBsaXN0YSBkaSBwcm9nZXR0aSBpbiBiYXNlIGFpIGdydXBwaSB1dGVudGUuIExhIGNoaWF2ZSBjb250aWVuZSB1blwnZXNwcmVzc2lvbmUgcmVnb2xhcmUgcGVyIGlsL2kgcHJvZ2V0dG8vaSwgaWwgY29udGVudXRvIGNvbnRpZW5lIGVzcHJlc3Npb25pIHJlZ29sYXJpIHBlciBsZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdTcGVjaWZpY2Egc2UgbGUgb3JlIGxhdm9yYXRpdmUgcG9zc29ubyBlc3NlcmUgaW5zZXJpdGUgc2VuemEgb3JhcmkgZGkgaW5pemlvIGUgZGkgZmluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnUXVlc3RvIG1vZHVsbyBmb3J6YSBnbGkgaW5zZXJpbWVudGkgaW4gVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnUXVlc3RvIG1vZHVsbyBkaSBub3RpZmljYSBnZW5lcmEgdW4gYXZ2aXNvIHNlIGNpIHNvbm8gdHJvcHBpIGdpb3JuaSBsYXZvcmF0aXZpIG5vbiBjb21wbGV0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnUmVuZGljb250YXppb25lIFRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdNb2RpZmljYSByZW5kaWNvbnRhemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQYW5vcmFtaWNhIHN1bGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGlzdGljYSBzdWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0ltcG9zdGF6aW9uaSBwZXIgbGEgY29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1Zpc3RhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0RhIHV0aWxpenphcmUgc2UgYWxjdW5lIGF6aW9uaSBoYW5ubyByaWRvdHRvIGxlIG9yZSBsYXZvcmF0aXZlIChwZXIgZXNlbXBpbzogc2Ugc29sbyBsYSBtZXTDoCBkZWwgdGVtcG8gZGkgdmlhZ2dpbyDDqCBwYWdhdG86IENoaWF2ZSA9PiBWaWFnZ2lvOyBDb250ZW51dG8gPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmphX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn5pys5b2T44Gr6Kmy5b2T5pel44Gu5oOF5aCx44KS5YmK6Zmk44GX44G+44GZ44GL77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODrOOCs+ODvOODieOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+ioreWumuOBuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfml6XliKXjg4rjg5PjgrLjg7zjgrfjg6fjg7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfjgqjjg7Pjg4jjg6rjg7zjga7jgarjgYTml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn5YWo44Gm44Gu5pel44KS6YG45oqeJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfoqbLlvZPjga7ml6Xjga7mrKDli6TnkIbnlLHjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHmmoflj5blvpfkuK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheasoOS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+S7o+S8keS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyog44Gu6aCF55uu44Gv5YWl5Yqb5b+F6aCI44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn6ZaL5aeL5pmC6ZaT44Go57WC5LqG5pmC6ZaT44CB44G+44Gf44Gv5pyf6ZaT44KS5oyH5a6a44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ+OCv+OCueOCryc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfms6jph4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnOOaWh+Wtl+S7peS4iuOBruazqOmHiOOCkui/veWKoOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn77yN77yI44Oe44Kk44OK44K577yJ44Gu5pmC6ZaT44Gv5YWl5Yqb44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfnubDjgorov5TjgZXjgozjgZ/mmYLplpPjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPjgILplovlp4vmmYLliLvjga/liKXjga7plpPpmpTjgajkuIDoh7TjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ+S4jeato+OBquODleOCqeODvOODnuODg+ODiOOBp+OBmSEg5pmC6ZaT44Gu5YWl5Yqb44GvSEg6TU3jga7jg5Xjgqnjg7zjg57jg4Pjg4jjgavlvpPjgaPjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDDjga/ntYLkuobmmYLplpPjgajjgZfjgabjga7jgb/lhaXlipvlj6/og73jgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfkuI3mraPjgarmmYLplpPjgafjgZkhIDHml6Xjga8yNOaZgumWk+OBp+OBmSc7CiAgICAkU2VsZi0+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+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJzHpoIXnm67jga7jgb/pgbjmip7jgafjgY3jgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ+eXheasoOOBq+ioreWumuOBleOCjOOBn+acn+mWk+S4reOBq+eovOWDjeOBl+OBvuOBl+OBn+OBi++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ+S8keaah+OBq+ioreWumuOBleOCjOOBn+acn+mWk+S4reOBq+eovOWDjeOBl+OBvuOBl+OBn+OBi++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn5Luj5LyR44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJzE25pmC6ZaT5Lul5LiK56i85YON44GX44G+44GX44Gf44GL77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICfmnIjliKXkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ+i2hemBjuWLpOWLme+8iO+8muaZgumWk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfotoXpgY7li6Tli5nvvIjku4rmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ+i2hemBjuWLpOWLme+8iOe0r+ioiO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfotoXpgY7li6Tli5nlj6/og73mrovvvIjmmYLplpPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn5LyR5pqH77yI5pel5pWw77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+S8keaah+WPluW+l+aXpeaVsO+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAn5LyR5pqH5Y+W5b6X5pel5pWw77yI57Sv6KiI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ+S8keaah+WPluW+l+aui+aXpeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ+eXheasoO+8iOaXpeaVsO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+eXheasoOaXpeaVsO+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICfnl4XmrKDml6XmlbDvvIjntK/oqIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfliY3mnIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ+asoeaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn5puc5pelJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICfnqLzlg43mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn57eP56i85YON5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ+ODpuODvOOCtuODvOOBruODl+ODreOCuOOCp+OCr+ODiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfmmYLplpPvvIjku4rmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ+aZgumWk++8iOmAmueul++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ+WQiOioiCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfmmYLplpPkvJroqIjjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ+aciOWIpeODiuODk+OCsuODvOOCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn5pel5LuY44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ+ODpuODvOOCtuODu+ODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn5pyI5ZCI6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn6YCa566X5ZCI6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn5Luj5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn5LyR5pqHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfnl4XmrKAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAn5LyR5pel5q6L5pel5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOODu+ODrOODneODvOODiCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn44OX44Ot44K444Kn44Kv44OI44O744Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ+WgseWRiuOBruamguimgeOBq+enu+WLleOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ+acrOODl+ODreOCuOOCp+OCr+ODiOOBruOCouOCr+ODhuOCo+ODluODpuODvOOCtuODvOOBruOBv+ihqOekuuOBl+OBpuOBhOOBvuOBmeOAgeWkieabtOOBmeOCi+OBq+OBr+ioreWumuOCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfjgZnjgbnjgabjga7jgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4jjg6bjg7zjgrbjg7zjgpLooajnpLrjgZfjgabjgYTjgb7jgZnjgIHlpInmm7TjgZnjgovjgavjga/oqK3lrprjgpLmm7TmlrDjgZfjgabjgY/jgaDjgZXjgYTjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAn5pmC6ZaT5Lya6KiIIOODl+ODreOCuOOCp+OCr+ODiOioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ+ioreWumuOBq+enu+WLleOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7nt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ+WQjOWQjeOBruODl+ODreOCuOOCp+OCr+ODiOOBjOWtmOWcqOOBl+OBvuOBmeOAguWQjeensOOCkuWkieabtOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ+ioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ+aWsOimj+OCv+OCueOCr+OBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOAgeOCv+OCueOCr+OAgeOBvuOBn+OBr+ODpuODvOOCtuODvOOBruODleOCo+ODq+OCv+ODquODs+OCsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ+aZgumWk+OBr+WJiumZpOOBp+OBjeOBvuOBm+OCkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn44K/44K544Kv5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn5paw6KaP44K/44K544Kv44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ+OCv+OCueOCr+ioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5ZCM5ZCN44Gu44K/44K544Kv44GM5a2Y5Zyo44GX44G+44GZ44CC5ZCN56ew44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ+ODpuODvOOCtuS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAn44Om44O844K244O86Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn44Om44O844K244O844Gv44Kq44O844OQ44O844K/44Kk44Og44KS6KaL44KL44GT44Go44GM44Gn44GN44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfotoXpgY7li6Tli5njgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ+ODpuODvOOCtuODvOOBr+ODl+ODreOCuOOCp+OCr+ODiOOCkuS9nOaIkOOBp+OBjeOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn44OX44Ot44K444Kn44Kv44OI44Gu5paw6KaP6L+95Yqg44KS6Kix5Y+v44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICfmnJ/plpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn6ZaL5aeL54K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfntYLkuobngrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keaahyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+aZgumWkyAvIOmAsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om/6KqN5riI44Gu6LaF6YGO5Yuk5YuZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfjgrnjgr/jg7zjg4jml6Xku5gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn5q2j44GX44GE5pel5LuY44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57WC5LqG5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn57WC5LqG54K544Gu5YmN44Gr6ZaL5aeL54K544KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfkvJHmmofml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn6YCx44GC44Gf44KK44Gu5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5q6L5qWt5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmnJ/plpPjgYzmnKroqK3lrprjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5pyf6ZaT44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODu+ODrOOCs+ODvOODieOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+S4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3jga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfmrKHjga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn6Kmy5b2T44GZ44KL44OH44O844K/44GM44GC44KK44G+44Gb44KT44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ+W3peaVsOOCkuaMv+WFpeOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn5YmN44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ+S4jeato+OBquaZgumWk+OBp+OBmSEgMeaXpeOBrzI05pmC6ZaT44Gn44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICflt6XmlbDjgpLliYrpmaTjgafjgY3jgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICflhaXlipvjgZXjgozjgZ/ml6Xku5jjga/mnJ/plpPlpJbjgafjgZnjga7jgafjgIHmjL/lhaXjgZnjgovkuovjga/jgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jgILjgoLjgYbkuIDluqYoISnml6Xku5jjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfmnKrlrozkuobjga7lj6/li5Xml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44KS5YWl5Yqb5Lit44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44Gr44KP44Gf44KL56i85YON5a6f57i+44Gu5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+S4jeato+OBp+OBmSAhIOaXpeS7mOOBr+acrOaXpeOBq+WkieabtOOBleOCjOOBvuOBl+OBnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfmjIflrprjgZXjgozjgZ/mnJ/plpPjgYzoqK3lrprjgZXjgozjgabjgYTjgarjgYTjgYvjgIHjgb7jgZ/jga/mjIflrprjgZXjgozjgZ/ml6Xku5jjgYzlrprnvqnjgZXjgozjgZ/mnJ/plpPlpJbjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ+WLpOaAoOeuoeeQhuaLheW9k+iAheOBq+mAo+e1oeOBl+OBpuacn+mWk+OCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhO+8gSc7CiAgICAkU2VsZi0+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+eydTZXR0aW5nJ30gPSAn6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjgavjg6bjg7zjgrbjg7zjgpLov73liqAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmlrDopo/jg6bjg7zjgrbjg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+acn+mWk+OBrueKtuaFiyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn5rOo55uu77yB77yaICVzIOOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn5Yuk5YuZ5a6f57i+44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn5pyq5a6M5LqG44Gu5Y+v5YuV5pelJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ+WwkeOBquOBj+OBqOOCguS4gOaXpeOBr+mBuOaKnuOBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn5YWo5L2T5YWl5YqbJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn5qyg5Yuk55CG55Sx44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn44Ko44Oz44OI44Oq44O844KS5YmK6ZmkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn5oy/5YWl44Gu56K66KqNJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn44Om44O844K244Gu5LiN5a6M5YWo44Gq56i85YON5pel5pWw44KS44Kr44Km44Oz44OI44GX6YCa55+l44GZ44KL44Ko44O844K444Kn44Oz44OI44O744Kk44Oz44K/44O844OV44Kn44Kk44K544Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn5paw6KaP5pON5L2c44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu5ZCN56ewJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ODh+ODleOCqeODq+ODiOOBruWQjeensCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ+OAjOe1guS6huaXpeOAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn44CM6ZaL5aeL5pel44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAn44CM6Kqs5piO5paH44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfjgIzkvJHmmofjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICfjgIzotoXpgY7li6Tli5njgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ+mAseOBguOBn+OCiuWfuuacrOeovOWDjeaZgumWk+OBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn5paw6KaP5pON5L2c44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAn5paw6KaP44Om44O844K244Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ+OAjOazqOmHiOOAjeOCqOODs+ODiOODquODvOOCkuW/heimgeOBqOOBmeOCi+mgheebruOCkuWumue+qeOBl+OBvuOBmeOAgiDjgoLjgZfjg5fjg63jgrjjgqfjgq/jg4jlkI3jgYzjgZPjgZPjgafoqK3lrprjgZfjgZ/mraPopo/ooajnj77jgavjg57jg4Pjg4HjgZnjgovloLTlkIjjgIHjgIzms6jph4jvvZ3jga/lv4XpoIjpoIXnm67jgajjgarjgorjgb7jgZnjgILigLvmraPopo/ooajnj77jgavjga9TTVjjg5Hjg6njg6Hjg7zjgr/jgpLkvb/jgYTjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ+e1seioiOODouOCuOODpeODvOODq+OBjOOCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOaDheWgseOCkueUn+aIkOOBmeOCi+OBi+mBuOaKnuOBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfmmYLplpPkvJroqIjjga7oqK3lrprjgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfjgr/jgqTjg6Djg6zjgrPjg7zjg4njgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn5L2V5pel5YmN44GL44KJ44Ov44O844Kt44Oz44Kw44O744Om44OL44OD44OI44Gu5paw6KaP55m76Yyy44GM5Y+v6IO944Gn44GC44KL44GL44Gu6Kit5a6a44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAgeipsuW9k+OBruODl+ODreOCuOOCp+OCr+ODiOOBq+eovOWDjeaZgumWk+OCkuaKleWFpeOBl+OBpuOBhOOCi+ODpuODvOOCtuODvOOBruOBv+ihqOekuuOBleOCjOOBvuOBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn5pyJ5Yq55pmC44Gr44Gv44CB57eo6ZuG55S76Z2i44Gu44OJ44Ot44OD44OX44OA44Km44Oz44Ko44Os44Oh44Oz44OI44Gv6Ieq5YuV44OV44Kj44O844Or44OJ44Gr572u44GN5o+b44GI44KJ44KM44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+S7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOODleOCo+ODq+OCv+ODvOOCkumBuOaKnuOBmeOCi+OBk+OBqOOBjOWPr+iDveOBp+OBmSjpgJrluLjjga/liY3lm57jgYrjgojjgbPjgZnjgbnjgaYp44CC44GT44Gu6aCF55uu44GvIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiDjgYzmnInlirnjgavjgarjgaPjgabjgYTjgovmmYLjga7jgb/liKnnlKjlj6/og70nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAjOS7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOOAjeOBjOWtmOWcqOOBmeOCi+aZguOBr+OAgeS7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOODleOCo+ODq+OCv+ODvOOBjOODh+ODleOCqeODq+ODiOWApOOBq+OBquOCiuOBvuOBmeOAguOBk+OBrumgheebruOBryBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIOOBjOacieWKueOBq+OBquOBo+OBpuOBhOOCi+aZguOBruOBv+WIqeeUqOWPr+iDvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn5pyJ5Yq544Gr44GZ44KM44Gw5LiA5Zue44Gu57eo6ZuG44Gn44CB6KSH5pWw44Gu5pel44Gr5rih44KK44CM5LyR5pqH44CN44CM55eF5qyg44CN44CM5Luj5LyR44CN44GM6YG45oqe44Gn44GN44G+44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnMeOBpOS7peS4iuOBruODr+ODvOOCreODs+OCsOODu+ODpuODi+ODg+ODiOOCkuioreWumuOBmeOBueOBjeacgOWkp+OBrueovOWDjeaXpeaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn6K2m5ZGK44GM6KGo56S644GV44KM44KL44GT44Go44Gq44GP44Ko44Oz44OI44Oq5Ye65p2l44KL44CB5Za25qWt5pel44Gu5pyA5aSn5pel5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ+amguimgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOWIpeaZgumWk+S8muioiOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn44OX44Ot44K444Kn44Kv44OI44Gr44KI44Gj44Gm6KGM5YuV44Oq44K544OI44KS57We44KK6L6844KA44Gf44KB44Gu5q2j6KaP6KGo54++44CC44CM6Y2144CN44Gn44Gv44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL5q2j6KaP6KGo54++44KS44CB44CM5YaF5a6544CN44Gn44GvYOihjOWLlWDjgavlr77jgZnjgovmraPopo/ooajnj77jgpLmjIflrprjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn44Om44O844K244Kw44Or44O844OX44Gr44KI44Gj44Gm44OX44Ot44K444Kn44Kv44OI44Oq44K544OI44KS57We44KK6L6844KA44Gf44KB44Gu5q2j6KaP6KGo54++44CC44CM6Y2144CN44Gn44Gv44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL5q2j6KaP6KGo54++44KS44CB44CM5YaF5a6544CN44Gn44Gv44Kr44Oz44Oe5Yy65YiH44KK44Gu44Om44O844K244Oq44K544OI44KS5oyH5a6a44GZ44KL44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfmpa3li5nmmYLplpPjgpLjgIzplovlp4vmmYLplpPjgI3jgajjgIzntYLkuobmmYLplpPjgI3jga7mjIflrprjg4rjgrfjgafmlrDopo/nmbvpjLLjgafjgY3jgovjgYvjganjgYbjgYvmjIflrprjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnVGltZUFjY291bnRpbmfjg6Ljgrjjg6Xjg7zjg6vjgajlkIznrYnjga7poIXnm67jgYzoqK3lrprlv4XpoIjjgajjgarjgorjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfjgYLjgb7jgorjgavjgoLlpJrjgY/jga7kuI3lrozlhajjgarnqLzlg43ml6XjgYzjgYLjgovloLTlkIjjgIHjgZPjga7pgJrnn6Xjg6Ljgrjjg6Xjg7zjg6vjga/orablkYrjgpLkuI7jgYjjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44KwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOCkue3qOmbhuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44Gu5qaC6KaBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44Gu5aCx5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7oqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44KwIOODk+ODpeODvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn5pmC6ZaT5Lya6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ+alreWLmeS4iuOBruihjOWLleOBq+OBiuOBhOOBpuOAgeeovOWDjeaZgumWk+OBqOOBl+OBpuioiOS4iuOBmeOCi+aZgumWk+OCkuiqv+aVtOOBmeOCi+W/heimgeOBjOOBguOCi+WgtOWQiOOBq+OAgeOBk+OBruioreWumuOCkuS9v+eUqOOBl+OBvuOBmeOAgu+8iOS+i++8muOAjOenu+WLleaZgumWk+OAjeOBrjUwJeOBruOBv+WLpOWLmeaZgumWk+ebuOW9k+OBqOOBmeOCi+WgtOWQiOOAjOmNteOAjeOBq2Bqb3VybmV5YOOAgeOAjOWGheWuueOAjeOBq2A1MGDjgajoqK3lrpopJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1zX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQWRha2FoIGFuZGEgcGFzdGkgaW5naW4gbWVuZ2hhcHVza2FuIFBlcmFrYXVuYW4gTWFzYSBoYXJpIGluaT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnU3VudGluZyBSZWtvZCBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnUGVyZ2kga2UgdGV0YXBhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2FzaSBUYXJpa2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdIYXJpIHRhbnBhIHBlbnllcnRhYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnUGlsaWgga2VzZW11YSBoYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdLZW1hc3VrYW4gYmVzYXItYmVzYXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BpbGloIHNlYmFiIGtldGlkYWtoYWRpcmFuIGFuZGEgdW50dWsgaGFyaS1oYXJpIHlhbmcgZGlwaWxpaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0JlcmN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0N1dGkgc2FraXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdCZXJjdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdNZWRhbiB5YW5nIGRpcGVybHVrYW4gZGl0YW5kYWkgZGVuZ2FuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdBbmRhIHBlcmx1IG1lbmdpc2kgcGVybXVsYWFuIGRhbiBha2hpciBtYXNhIGF0YXUgdGVtcG9oIG1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1R1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0tvbWVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1NpbGEgdGFtYmFoIGtvbWVuIGRlbmdhbiBsZWJpaCBkYXJpcGFkYSA4IGthcmFrdGVyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnV2FrdHUgbmVnYXRpZiB0aWRhayBkaWJlbmFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIG11bGEgcGFkYW4gZGVuZ2FuIHNlbGFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnRm9ybWF0IHRpZGFrIHNhaCEgU2lsYSBtYXN1a2thbiBtYXNhIGRlbmdhbiBmb3JtYXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGhhbnlhIGRpYmVuYXJrYW4gc2ViYWdhaSBtYXNhIGFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ01hc2EgdGlkYWsgc2FoISBTZWhhcmkgaGFueWEgbWVtcHVueWFpIDI0IGphbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ01hc2EgdGFtYXQgbWVzdGkgc2VsZXBhcyBtYXNhIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIGFraGlyIHBhZGFuIGRlbmdhbiBzZWxhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBvaCB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1RlbXBvaCBzYWggbWVzdGkgbGViaWggYmVzYXIgZGFyaXBhZGEgc2lmYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdUZW1wb2ggdGlkYWsgc2FoISBUZW1wb2ggbmVnYXRpZiBhZGFsYWggdGlkYWsgZGliZW5hcmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUYW1iYWggc2F0dSBiYXJpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0FuZGEgaGFueWEgYm9sZWggcGlsaWggc2F0dSBlbGVtZW4ga290YWsgc2VtYWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdBZGFrYWggYW5kYSBwYXN0aSBiYWhhd2EgYW5kYSBiZWtlcmphIHNlbWFzYSBhbmRhIGJlcmN1dGkgc2FraXQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpIGxlYmloIG1hc2E/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgbGViaWggZGFyaXBhZGEgMTYgamFtPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnR2FtYmFyYW4gYnVsYW5hbiBtYXNhIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0xlYmloIG1hc2EgKEphbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnS2VyamEgbGViaWggbWFzYSAoYnVsYW4gaW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnS2VyamEgbGViaWggbWFzYSAoanVtbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdCYWtpIGN1dGkgbGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdCZXJjdXRpIChIYXJpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdDdXRpIGRpYW1iaWwgKGJ1bGFuIGluaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0N1dGkgZGlhbWJpbCAoanVtbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdCYWtpIGN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdDdXRpIFNha2l0IChIYXJpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0N1dGkgc2FraXQgZGlhbWJpbCAoYnVsYW4gaW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdDdXRpIHNha2l0IGRpYW1iaWwgKGp1bWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdCdWxhbiBzZWJlbHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdCdWxhbiBiZXJpa3V0bnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdIYXJpIG1pbmdndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSmFtIGJla2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnSnVtbGFoIGphbSBiZWtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0dhbWJhcmFuIHByb2playBwZW5nZ3VuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdKYW0gKGJ1bGFuYW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdKYW0gKEhheWF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ0p1bWxhaCBrZXNlbHVydWhhbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdNYXNhIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmlnYXNpIGJ1bGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdQZXJnaSBrZSB0YXJpa2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnTGFwb3JhbiBwZW5nZ3VuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSnVtbGFoIGJ1bGFuYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdKdW1sYWggaGF5YXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdDdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdCZXJjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdDdXRpIHNha2l0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0Jha2kgY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdMYXBvcmFuIHByb2playc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnTGFwb3JhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnUGVyZ2kga2UgdGluamF1YW4gbWVsYXBvcmthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1BhZGEgbWFzYSBpbmkgaGFueWEgcGVuZ2d1bmEgYWt0aWYgZGFsYW0gcHJvamVrIGluaSBha2FuIGRpdHVuanVra2FuLiBVbnR1ayBtZW5ndWJhaCBzaWZhdCBpbmksIHNpbGEga2VtYXMga2luaSB0ZXRhcGFuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdQYWRhIG1hc2EgaW5pIGtlc2VtdWEgcGVuZ2d1bmEgcGVyYWthdW5hbiBtYXNhIGRpdHVuanVra2FuLiBVbnR1ayBtZW5ndWJhaCB0aW5na2FoIGxha3UgaW5pLCBzaWxhIGtlbWFzIGtpbmkgdGV0YXBhbjonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnU3VudGluZyBUZXRhcGFuIFByb2playBQZXJha2F1bmFuIE1hc2EgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnVGFtYmFoIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1BlcmdpIGtlIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIHRldGFwYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdUYW1iYWggcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgdGV0YXBhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1N1ZGFoIGFkYSBwcm9qZWsgZGVuZ2FuIG5hbWEgaW5pLiBTaWxhIHBpbGloIHlhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdTdW50aW5nIFRldGFwYW4gUGVyYWthdW5hbiBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGFtYmFoIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVGVtcG9oIG1hc2EgdGlkYWsgYm9sZWggZGloYXB1c2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnU2VuYXJhaSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnU2VuYXJhaSB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1RhbWJhaCB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdTdW50aW5nIHRldGFwYW4gdHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1N1ZGFoIGFkYSB0dWdhcyBkZW5nYW4gbmFtYSBpbmkuIFNpbGEgcGlsaWggeWFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdTZW5hcmFpIFBlbmdndW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1R1bmp1ayBsZWJpaGFuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnQmVuYXJrYW4gY2lwdGFhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdUZW1wb2ggTXVsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnVGVtcG9oIHRhbWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdIYXJpIEJlcmN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdKYW0gU2VtaW5nZ3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0xlYmloYW4gbWFzYSBkaWJlbmFya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdUYXJpa2ggTXVsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdTaWxhIG1hc3Vra2FuIHRhcmlraCB5YW5nIHNhaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdUYXJpa2ggVGFtYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdUZW1wb2ggdGFtYXQgbWVzdGlsYWggc2VsZXBhcyB0ZW1wb2ggbXVsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0hhcmkgY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdKYW0gbWluZ2d1YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdMZWJpaCBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdUaWFkYSB0ZW1wb2ggbWFzYSBkaWp1bXBhaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnVGFtYmFoIHRlbXBvaCBtYXNhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ0xpaGF0IFJla29kIE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdQYW5kYW5nYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnSGFyaSBzZWJlbHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnSGFyaSBzZXRlcnVzbnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ1RpYWRhIGRhdGEgZGlqdW1wYWkgcGFkYSBoYXJpIGluaS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnVGlkYWsgYm9sZWggbWVtYXN1a2thbiBVbml0IEtlcmphISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnUHJvamVrIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbnlpbXBhbiB0ZXRhcGFuLXRldGFwYW4sIGtlcmFuYSBzZWhhcmkgaGFueWEgYWRhIDI0IGphbSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWJ1YW5nIFVuaXQgS2VyamEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnVGFyaWtoIGluaSB0ZWxhaCB0ZXJsZWJpaCBoYWQsIHRldGFwaSBhbmRhIG1hc2loIGJlbHVtIG1lbWFzdWtrYW4gaGFyaSBpbmkgbGFnaSwgamFkaSBhbmRhIG1lbmRhcGF0IHNhdHUoISkgcGVsdWFuZyB1bnR1ayBtYXN1a2thbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0hhcmkgQmVrZXJqYSBUaWRhayBMZW5na2FwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0JlcmpheWEgZGltYXN1a2thbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1JhbGF0IHNlbWFzYSBtZW1hc3Vra2FuIGJlYmVyYXBhIHRhcmlraCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnQmVyamF5YSBkaW1hc3Vra2FuIHBlbnllcnRhYW4gdW50dWsgYmViZXJhcGEgdGFyaWtoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnVGFyaWtoIHlhbmcgZGltYXN1a2thbiB0aWRhayBzYWghIFRhcmlraCB0ZWxhaCBkaXR1a2FyIGtlcGFkYSBoYXJpIGluaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Byb2playBEaXBpbGloIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1NlbXVhIFByb2playc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdNZWxhcG9ya2FuUHJvamVrOiBQZXJsdWthbiBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdNZWxhcG9ya2FuIFByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdNZWxhcG9ya2FuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ1RpZGFrIGJvbGVoIHVudHVrIGtlbWFza2luaSB0ZXRhcGFuLXRldGFwYW4gcGVuZ2d1bmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ1R1Z2FzYW4gdGVsYWggZGl0YW1iYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdUdWdhc2FuIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdJRCBQZW5nZ3VuYSB0aWRhayBzYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWFzdWtrYW4gZGF0YSBwZW5nZ3VuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdUaWRhayBib2xlaCBtZW5hbWJhaCB0ZW1wb2ggbWFzYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1RldGFwYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1BlbmdndW5hIEJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIFRlbXBvaCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnUGFuZGFuZ2FuOiBQZXJsdSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1NpbGEgbWFzdWtrYW4gd2FrdHUga2VyamEgYW5kYSEgJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnSGFyaSBiZWtlcmphIHRpZGFrIGxlbmdrYXAnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU2lsYSBwaWxpaCBzZWt1cmFuZy1rdXJhbmdueWEgc2VoYXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnS2VtYXN1a2FuIGJlc2FyLWJlc2FyYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdTaWxhIHBpbGloIHNlYmFiIGtldGlkYWtoYWRpcmFuISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1BhZGFtIEtlbWFzdWthbiBNYXNhIFBlcmFrYXVuYW4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnU2Foa2FuIGtlbWFzdWthbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHBlbWJlcml0YWh1YW4gYW50YXJhIG11a2EgZWplbiB1bnR1ayBtZWxpaGF0IGJpbGFuZ2FuIGhhcmkgYmVrZXJqYSB5YW5nIHRpZGFrIGxlbmdrYXAgdW50dWsgcGVuZ2d1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTmFtYSBsYWxhaSB1bnR1ayB0aW5kYWthbiBiYXJ1Lic7CiAgICAkU2VsZi0+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+eydUaW1lIEFjY291bnRpbmcnfSA9ICdNYXNhIFBlcmFrYXVuYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnU3VudGluZyBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0dhbWJhcmFuIGtlc2VsdXJ1aGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ01lbGFwb3IgcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdUZXRhcGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQYXBhcmFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnUGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1VudHVrIGRpZ3VuYWthbiBqaWthIGJlYmVyYXBhIHRpbmRha2FuIG1lbmd1cmFuZ2thbiB3YWt0dSBrZXJqYSAoY29udG9obnlhLCBqaWthIGhhbnlhIHNlcGFydWggZGFyaXBhZGEgbWFzYSBwZXJqYWxhbmFuIGRpYmF5YXIgS3VuY2kgPT4gcGVyamFsYW5hbjsgS2FuZHVuZ2FuID0gPiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5iX05PX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmlsIGR1IHZpcmtlbGlnIGZqZXJuZSB0aWRzcmVnaXN0cmVyaW5nZW4gZm9yIGRlbm5lIGRhZ2VuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdFbmRyZSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSW5uc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2VyaW5nIG1lbGxvbSBkYXRvZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYWdlciB1dGVuIHRpZHJlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdWZWxnIGFsbGUgZGFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ01hc3NlcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVmVubmxpZ3N0IHZlbGcgw6Vyc2FrZW4gdGlsIGRpdHQgZnJhdsOmciBww6UgZGUgdmFsZ3RlIGRhZ2VuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTeWtlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0F2c3Bhc3NlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ09ibGlnYXRvcmlza2UgZmVsdCBlciBtYXJrZXJ0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgbcOlIGZ5bGxlIHV0IHN0YXJ0LSBvZyBzbHV0dGlkc3B1bmt0LCBlbGxlciBwZXJpb2RlbGVuZ2Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdBa3Rpdml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTWVya25hZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIG1lcmtuYWQgcMOlIG1pbnN0IDggdGVnbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXYgdGlkIGdvZHRhcyBpa2tlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnT3ZlcmxhcHBlbmRlIHBlcmlvZGVyIGlra2UgdGlsbGF0dC4gU3RhcnR0aWRlbiBlciBpIGVuIGFubmVuIHBlcmlvZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGZWlsIGZvcm1hdCEgVmVubmxpZ3N0IG9wcGdpIGV0dCB0aWRzcHVua3QgaSBmb3JtYXRldCBUVDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgZ29kdGFzIGJhcmUgc29tIHNsdXR0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnRmVpbGFrdGlnIHRpZCEgRXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ1NsdXR0aWQgbcOlIHbDpnJlIHNlbmVyZSBlbm4gc3RhcnR0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnT3ZlcmxhcHBlbmRlIHBlcmlvZGVyIGlra2UgdGlsbGF0dC4gU2x1dHRpZGVuIGVyIGkgZW4gYW5uZW4gcGVyaW9kZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0ZlaWxha3RpZyB0aWQhIEV0IGTDuGduIGhhciBrdW4gMjQgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRW4gdGlkc3BlcmlvZGUgbcOlIHbDpnJlIHN0w7hycmUgZW5uIG51bGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdGZWlsYWt0aWQgdGlkLiAgTmVnYXRpdiB0aWQgZ29kdGFzIGlra2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnTGVnZyB0aWwgZW4gcmFkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0R1IGthbiBiYXJlIGdqw7hyZSBlbiBhdmtyeXNuaW5nLic7CiAgICAkU2VsZi0+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+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nc3Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdHw6UgdGlsIG92ZXJzaWt0ZW4gb3ZlciBpbm5zdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciBwcm9zamVrdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXQgZmlubmVzIGFsbGVyZWRlIGV0IHByb3NqZWt0IG1lZCBkZXR0ZSBuYXZuZXQuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnTGVnZyB0aWwgZW4gYWt0aXZpdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVGlkc3BlcmlvZGVyIGthbiBpa2tlIHNsZXR0ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb3NqZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnQWt0aXZpdGV0c2xpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnTGVnZyB0aWwgZW4gYWt0aXZpdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VuZHJlIGluc3RpbGxpbmdlciBmb3IgYWt0aXZpdGV0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0RldCBmaW5uZXMgYWxsZXJlZGUgZW4gYWt0aXZpdGV0IG1lZCBkZXR0ZSBuYXZuZXQuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JydWtlcmxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ZpcyBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1RpbGxhdHQgYnJ1a2VyIMOlIG9wcHJldHRlIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2Rlc3RhcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZGVzbHV0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRmVyaWVkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHBlciB1a2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1DDpWxhZ3Qgb3ZlcnRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnU3RhcnRkYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Zlbm5saWdzdCBzZXR0IGlubiBlbiBneWxkaWcgZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdTbHV0dGRhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2Rlc2x1dHQgbcOlIHbDpnJlIGV0dGVyIHBlcmlvZGVzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0RhZ2VyIG1lZCBneWxkaWcgZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdVa2VudGxpZ2UgdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdPdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdJbmdlbiB0aWRzcGVyaW9kZXIgZnVubmV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0xlZ2cgdGlsIGVuIHRpZHNwZXJpb2RlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1NlIHDDpSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzbmluZyBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ05lc3RlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdJbmdlbiBkYXRhIGZ1bm5ldCBmb3IgZGVubmUgZGFnZW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnU2VuZXN0ZSBwcm9zamVrdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ0thbiBpa2tlIGxhZ3JlIGluc3RpbGxpbmdlbmUgZm9yZGkgZXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0Rlbm5lIGRhdG9lbiBlciB1dGVuZm9yIHRpbGxhdHQgb21yw6VkZS4gTWVuLCBkdSBoYXIgaWtrZSBzYXR0IGlubiBkZW5uZSBkYWdlbiBlbm7DpSwgc8OlIGR1IGbDpXIgZW4oISkgc2phbnNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnVWZ1bGxzdGVuZGlnZSBhcmJlaWRzZGFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnVmVsbHlra2V0IGlubnNldHRpbmchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdGZWlsIHVuZGVyIGlubnNldHRpbmcgYXYgZmxlcmUgZGF0b2VyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdJbm5zZXR0aW5nIGF2IHJlZ2lzdHJlcmluZ2VyIGZvciBmbGVyZSBkYXRvZXIgdmFyIHZlbGx5a2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ09wcGdpdHQgZGF0byB2YXIgdWd5bGRpZyEgRGF0byBlbmRyZXQgdGlsIGRhZ2VucyBkYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnU2VuZXN0ZSB2YWxndGUgcHJvc2pla3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdBbGxlIHByb3NqZWt0ZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJvc2pla3Qgc29tIHJhcHBvcnRlcmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JhcHBvcnRlcmluZyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdLYW4gaWtrZSBlbmRyZSBicnVrZXJpbm5zdGlsbGluZ2VyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb3NqZWt0IGxhZ3QgdGlsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvc2pla3Qgb3BwZGF0ZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0FrdGl2aXRldCBsYWd0IHRpbCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0FrdGl2aXRldCBvcHBkYXRlcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0JydWtlcklEIGVyIGlra2UgZ3lsZGlnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLYW4gaWtrZSBsZWdnZSB0aWwgYnJ1a2VyZGF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdLYW4gaWtrZSBsZWdnZSB0aWwgdGlkc3BlcmlvZGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdJbm5zdGlsbGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQnJ1a2VyIG9wcGRhdGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdCcnVrZXIgbGFndCB0aWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTnkgYnJ1a2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdQZXJpb2Rlc3RhdHVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXNuaW5nOiBUcmVuZ2VyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVmVubmxpZ3N0IHNldHQgaW5uIGRpbmUgYXJiZWlkc3RpbWVyISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ1VmdWxsc3RlbmRpZ2UgYXJiZWlkc2RhZ2VyJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1Zlbm5saWdzdCB2ZWxnIG1pbnN0IGVuIGRhZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc3NlcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnVmVubmxpZ3N0IHZlbGcgZnJhdsOmcnPDpXJzYWshJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnU2xldHQgZW4gdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3JlZnQgaW5uc2V0dGluZyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFbmRyZSBpbm5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnSHZvciBtYW5nZXIgZGFnZXIgdGlsYmFrZSBpIHRpZCBkZXQgZXIgYW5sZWRuaW5nIHRpbCDDpSBsZWdnZSB0aWwgZW4gdGlkc2JvbGsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdPdmVyc2lrdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdUaWRyYXBwb3J0ZXJpbmcgZm9yIHByb3NqZWt0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdUaWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdPdmVyc2lrdCBvdmVyIHJlZ2lzdHJlcnQgdGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JhcHBvcnRlcmluZyBhdiByZWdpc3RyZXJ0IHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0lubnN0aWxsaW5nZXIgZm9yIHRpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1NlIHDDpSB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ2lzdHJlcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnBsX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQ3p5IG5hIHBld25vIGNoY2VzeiB1c3VuxIXEhyByb3psaWN6ZW5pZSBjemFzdSBwcmFjeSB0ZWdvIGRuaWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0VkeWNqYSBld2lkZW5jamkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdQcnplamTFuiBkbyB1c3Rhd2llxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF3aWdhY2phIHBvIGRhY2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRG5pIGJleiB3cGlzw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1phem5hY3ogd3N6eXN0a2llIGRuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzb3dlIHdwaXN5d2FuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQcm9zesSZIHd5YnJhxIcgcHJ6eWN6eW7EmSBuaWVvYmVjbm/Fm2NpIGRsYSB3eWJyYW55Y2ggZG5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnVXJsb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnV29sbmUgemEgZ29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ1BvbGEgd3ltYWdhbmUgb3puYWN6b25lIHPEhSAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnTXVzaXN6IHdwcm93YWR6acSHIGN6YXMgcG9jesSFdGt1IGkgemFrb8WEY3plbmlhIGx1YiBva3JlxZtsIGN6YXMgdHJ3YW5pYSBjeWxrdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1phZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnVXdhZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnUHJvc3rEmSBkb2RhxIcgdXdhZ8SZIHphd2llcmFqxIVjxIUgd2nEmWNlaiBuacW8IDggem5ha8OzdyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VqZW1uZSBjemFzeSBzxIUgbmllZG96d29sb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9rcnl3YWrEhWNlIHNpxJkgZ29kemlueSBuaWUgc8SFIGRvendvbG9uZS4gQ3phcyByb3pwb2N6xJljaWEgcGFzdWplIGRvIGlubmVnbyBwcnplZHppYcWCdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ05pZXByYXdpZMWCb3d5IGZvcm1hdCEgUHJvc3rEmSBwb2RhxIcgY3phcyB3IGZvcm1hY2llIEdHOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBqZXN0IGRvendvbG9uYSBqZWR5bmllIGpha28gY3phcyB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdDemFzIHpha2/FhGN6ZW5pYSBtdXNpIGJ5xIcgcG8gY3phc2llIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQb2tyeXdhasSFY2Ugc2nEmSBnb2R6aW55IG5pZSBzxIUgZG96d29sb25lLiBDemFzIHpha2/FhGN6ZW5pYSBwYXN1amUgZG8gaW5uZWdvIHByemVkemlhxYJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyBjeWtsdSEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnUHJhd2lkxYJvd3kgY3phcyBjeWtsdSBtdXNpIGJ5xIcgd2nEmWtzenkgb2QgemVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05pZXByYXdpZMWCb3d5IGN5a2whIFVqZW1ueSBjemFzIGN5a2x1IG5pZSBqZXN0IGRvendvbG9ueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdEb2RhaiB3aWVyc3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdNb8W8ZXN6IHphem5hY3p5xIcgdHlsa28gamVkZW4gZWxlbWVudCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgendvbG5pZW5pYSBsZWthcnNraWVnbz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdDenkgamVzdGXFmyBwZXdpZW4sIMW8ZSBwcmFjb3dhxYJlxZsgdyB0cmFrY2llIHVybG9wdT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgd29sbmVnbyB6YSBuYWRnb2R6aW55Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdDenkgamVzdGXFmyBwZXdpZW4sIMW8ZSBwcmFjb3dhxYJlxZsgd2nEmWNlaiBuacW8IDE2IGdvZHppbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01pZXNpxJljem55IHJhcG9ydCBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlIChiaWXFvMSFY3kgbWllc2nEhWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Bvem9zdGHFgmUgZ29kemlueSBuYWRsaWN6Ym93ZSBkbyB3eWJyYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdVcmxvcCAoZG5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdXeWtvcnp5c3RhbnkgdXJsb3AgKGJpZcW8xIVjeSBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1d5a29yenlzdGFueSB1cmxvcCAoxYLEhWN6bmllKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdVcmxvcCBwb3pvc3RhxYJ5IGRvIHd5a29yenlzdGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdad29sbmllbmllIGxla2Fyc2tpZSAoZG5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0RuaSB6d29sbmllbmlhIGxla2Fyc2tpZWdvIChiaWXFvMSFY3kgbWllc2nEhWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0RuaSB6d29sbmllbmlhIGxla2Fyc2tpZWdvICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnUG9wcnplZG5pIG1pZXNpxIVjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOYXN0xJlwbnkgbWllc2nEhWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0R6aWXFhCByb2JvY3p5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdHb2R6aW55IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ8WBxIVjem5hIGlsb8WbxIcgcHJ6ZXByYWNvd2FueWNoIGdvZHppbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdPcGlzIHByb2pla3R1IHXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdHb2R6aW55IChtaWVzacSZY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdHb2R6aW55ICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnT2fDs8WCZW0nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmFvcnRvd2FuaWUgY3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hd2lnYWNqYSBtaWVzacSZY3puYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnUHJ6ZWpkxbogZG8gZGF0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSYXBvcnR5IHXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnxYHEhWN6bmllIC0gbWllc2nEmWN6bmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnxYHEhWN6bmllIC0gb2fDs8WCZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdXb2xuZSB6YSBnb2R6aW55IG5hZGxpY3pib3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnVXJsb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1VybG9wIHBvem9zdGHFgnkgZG8gd3lrb3J6eXN0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSYXBvcnR5IHByb2pla3R1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSYXBvcnQgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnUHJ6ZWpkxbogZG8gcHJ6ZWdsxIVkdSByYXBvcnRvd2FuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBa3R1YWxuaWUgd2lkb2N6bmkgc8SFIGplZHluaWUgdcW8eXRrb3duaWN5IHogdGVnbyBwcm9qZWt0dS4gVHV0YWogbW/FvG5hIHRvIHptaWVuacSHOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBa3R1YWxuaWUgd2lkb2N6bmkgc8SFIHdzenlzY3kgdcW8eXRrb3duaWN5IHJvemxpY3phasSFY3kgY3phcyBwcmFjeS4gVHV0YWogbW/FvG5hIHRvIHptaWVuacSHOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSByb3psaWN6YW5pYSBjemFzdSBwcmFjeSB3IHByb2pla2NpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0RvZGFqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdQcnplamTFuiBkbyBvcGlzdSB1c3Rhd2llxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdEb2RhaiBwcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdJbm55IHByb2pla3QgdcW8eXdhIGp1xbwgdGVqIG5hend5LiBVxbx5aiBpbm5laiBuYXp3eS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSByb3psaWN6YW5pYSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0RvZGFqIHphZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cnVqIHByb2pla3R5LCB6YWRhbmlhIGx1YiB1xbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0N5a2xlIGN6YXN1IG5pZSBtb2fEhSB6b3N0YcSHIHVzdW5pxJl0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgcHJvamVrdMOzdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSB6YWRhxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdEb2RhaiB6YWRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0lubmUgemFkYW5pZSB1xbx5d2EganXFvCB0ZWogbmF6d3kuIFXFvHlqIGlubmVqIG5hend5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBVxbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnVXN0YXdpZW5pYSBVxbx5dGtvd25pa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdVxbx5dGtvd25payBtb8W8ZSB6b2JhY3p5xIcgbmFkZ29kemlueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnUG9rYcW8IGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ1XFvHl0a293bmlrIG1vxbxlIHR3b3J6ecSHIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdaZXp3YWxhaiBuYSB0d29yemVuaWUgcHJvamVrdMOzdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdVxbx5dGtvd25payBtb8W8ZSBwb21pbsSFxIcgcm96bGljemFuaWUgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnUG96d8OzbCBuYSBvbWluacSZY2llIHJvemxpY3phbmlhIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnSmXFm2xpIHRhIG9wY2phIGplc3QgemF6bmFjem9uYSwgcm96bGljemFuaWUgY3phc3UgcHJhY3kgamVzdCBuaWVvYm93acSFemtvd2UgZGxhIHXFvHl0a293bmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTmllIGLEmWR6aWUgb3N0cnplxbxlxYQgbyBicmFrdWrEhWN5Y2ggamVkbm9zdGthY2ggY3phc3Ugb3JheiB3eW11c3phbmlhIHdwaXPDs3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdPa3Jlc3kgQ3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUG9jesSFdGVrIGN5a2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLb25pZWMgY3lrbHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RuaSB1cmxvcHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdJbG/Fm8SHIGdvZHppbiB3IHR5Z29kbml1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdaZXp3w7NsIG5hIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgcm96cG9jesSZY2lhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Byb3N6xJkgd3Byb3dhZHppxIcgcHJhd2lkxYJvd8SFIGRhdMSZLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgemFrb8WEY3plbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS29uaWVjIG9rcmVzdSBtdXNpIGJ5xIcgcG8gamVnbyBwb2N6xIV0a3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEbmkgb3B1Y3pvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnVHlnb2RuaW93eSBjemFzIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmllIHpuYWxlemlvbm8gxbxhZG5lZ28gY3lrbHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0RvZGFqIGN5a2wnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUG9rYcW8IGV3aWRlbmNqxJkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdXaWRvayAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnUG9wcnplZG5pIGR6aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0tvbGVqbnkgZHppZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0JyYWsgZGFueWNoIGRvdHljesSFY3ljaCB3eWJyYW5lZ28gZG5pYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHdzdGF3acSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ09zdGF0bmllIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ05pZSBtb8W8bmEgemFwaXNhxIcgdXN0YXdpZcWELCBwb25pZXdhxbwgZG9iYSBtYSB0eWxrbyAyNCBnb2R6aW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHVzdW7EhcSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdXcHJvd2Fkem9uYSBkYXRhIGplc3QgcG96YSB6YWtyZXNlbSwgYWxlIG5pZSB3cHJvd2FkemnFgmXFmyBqZXN6Y3plIHRlZ28gZG5pYSwgbWFzeiB3acSZYyBqZWR5bsSFKCEpIG9rYXpqxJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdOaWVwZcWCbmUgZG5pIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ1dwcm93YWRhbmllIHBvd2lvZMWCbyBzacSZISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnV3lzdMSFcGnFgiBixYLEhWQgcG9kY3phcyB3cHJvd2FkemFuaWEgd2llbHUgZGF0IGplZG5vY3plxZtuaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1BvbXnFm2xuaWUgd3Byb3dhZHpvbm8gd2llbGUgZGF0IGplZG5vY3plxZtuaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdXcHJvd2Fkem9ubyBuaWVwcmF3aWTFgm93xIUgZGF0xJkhIFpvc3RhxYJhIG9uYSB6bWllbmlvbmEgbmEgYmllxbzEhWPEhS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnTmllIHNrb25maWd1cm93YW5vIG9rcmVzw7N3IGN6YXN1IGx1YiBwb2RhbmEgZGF0YSBsZcW8eSBwb3phIHpkZWZpbmlvd2FueW1pIG9rcmVzYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnU2tvbnRha3R1aiBzacSZIHogYWRtaW5pc3RyYXRvcmVtIGN6YXN1IHByYWN5IHcgY2VsdSBha3R1YWxpemFjamkgdHdvaWNoIG9rcmVzw7N3IHByYWN5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnT3N0YXRuaW8gd3licmFuZSBwcm9qZWt0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdXc3p5c3RraWUgcHJvamVrdHknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmFwb3J0b3dhbmllIHByb2pla3R1OiBXeW1hZ2FueSBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdSYXBvcnRvd2FuaWUgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwb3J0b3dhbmllJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ05pZSBtb8W8bmEgem1pZW5pxIcgdXN0YXdpZcWEIHXFvHl0a293bmlrYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWt0IGRvZGFueSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3Qgem1pZW5pb255ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ1phZGFuaWUgZG9kYW5lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnWmFkYW5pZSB6bWllbmlvbmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0lkZW50eWZpa2F0b3IgVXNlcklEIGplc3QgbmllcHJhd2lkxYJvd3khJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ05pZSB1ZGHFgm8gc2nEmSB3c3Rhd2nEhyBkYW55Y2ggdcW8eXRrb3duaWthISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05pZSBtb8W8bmEgZG9kYcSHIGN5a2x1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnVXN0YXdpZW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnVcW8eXRrb3duaWsgem1pZW5pb255ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1XFvHl0a293bmlrIGRvZGFueSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdEb2RhaiB1xbx5dGtvd25pa2EgZG8gcm96bGljemFuaWEgY3phc3UgcHJhY3kuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3d5IFXFvHl0a293bmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGFuIGN5a2x1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdXaWRvazogUG90cnplYm55ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUHJvc3rEmSB3cHJvd2FkemnEhyBzd8OzaiBjemFzIHByYWN5ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ05pZXBlxYJuZSBkbmkgcHJhY3knOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIGNvIG5ham1uaWVqIGplZGVuIGR6aWXFhCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc293ZSB3cGlzeXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIHByenljenluxJkgbmllb2JlY25vxZtjaSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdVc3XFhCByb3psaWN6ZW5pZSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ1BvdHdpZXJkxbogd3Bpcyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHXFgiBwb3dpYWRhbWlhbmlhIEFnZW50YSBvIGxpY3piaWUgZG5pIHogbmlla29tcGxldG55bSByYXBvcnRvd2FuaWVtIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xuYSBuYXp3YSBub3d5Y2ggY3p5bm5vxZtjaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRG9tecWbbG5hIG5hendhIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0RvbXnFm2xuYSBkYXRhIHpha2/FhGN6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0RvbXnFm2xuYSBkYXRhIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdEb215xZtsbmUgdXN0YXdpZW5pZSBvcGlzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgdXJsb3B1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgZ29kemluIG5hZGxpY3pib3d5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdEb215xZtsbmEga29uZmlndXJhY2phIHR5Z29kbmlvd2VnbyBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBjenlubm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCB1xbx5dGtvd25pa8Ozdy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnT2tyZcWbbGEgcHJvamVrdHksIGt0w7NyZSB3eW1hZ2FqxIUgZG9kYXdhbmlhIGtvbWVudGFyenkuIEplxbxlbGkgd3lyYcW8ZW5pZSByZWd1bGFybmUgcGFzdWplIGRvIHByb2pla3R1LCB0cnplYmEgZG9kYcSHIGtvbWVudGFyei4gV3lyYcW8ZW5pYSByZWd1bGFybmUga29yenlzdGFqxIUgeiBwYXJhbWV0csOzdyBzZXJ3ZXJhIG1ha3IgKFNNWCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdPa3JlxZtsYSwgY3p5IG1vZHXFgiBzdGF0eXN0eWN6bnkgbW/FvGUgZ2VuZXJvd2HEhyBpbmZvcm1hY2plIG8gcm96bGljemVuaWFjaCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgcm96bGljemFuaWEgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWR5Y2phIGV3aWRlbmNqaSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTGljemJhIGRuaSB3c3RlY3osIGRsYSBrdMOzcnljaCBtb8W8bmEgcm96bGljemHEhyBjemFzIHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdKZcWbbGkgYWt0eXduZSwgd2lkb2N6bmkgc8SFIHR5bGtvIHXFvHl0a293bmljeSwga3TDs3J6eSByb3psaWN6eWxpIGN6YXMgcHJhY3kgdyB3eWJyYW55bSBwcm9qZWtjaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdQcnp5IHfFgsSFY3pvbmVqIG9wY2ppLCBlbGVtZW50eSByb3p3aWphbmUgdyBva25pZSBlZHljamkgYsSZZMSFIHphc3TEhXBpb25lIHBvbGFtaSB6IGF1dG9tYXR5Y3pueW0gdXp1cGXFgm5pYW5pZW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1Byenkgd8WCxIVjem9uZWogb3BjamksIG1vxbxuYSB1xbx5xIcgZmlsdHLDs3csIHXFvHl0eWNoIHcgcG9wcnplZG5pY2ggcHJvamVrdGFjaCwgemFtaWFzdCBzdG9zb3dhxIcgZHdpZSBsaXN0eSBwcm9qZWt0w7N3IChvc3RhdG5pZWdvIGkgd3N6eXN0a2ljaCkuIE5pZXpixJlkbmUgamVzdCB1cnVjaG9taWVuaWUgb3BjamkgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSmXFm2xpIGFrdHl3bmUsIGZpbHRyeSB1xbx5dGUgdyBwb3ByemVkbmljaCBwcm9qZWt0YWNoIHPEhSBkb215xZtsbmllIGFrdHl3bmUgKGplxZtsaSB0YWtpZSBwcm9qZWt0eSBpc3RuaWVqxIUpLiBOaWV6YsSZZG5lIGplc3QgdXJ1Y2hvbWllbmllIG9wY2ppIEVuYWJsZUF1dG9Db21wbGV0aW9uIG9yYXogVGltZUFjY291bnRpbmc6OlVzZUZpbHRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0plxZtsaSBha3R5d25lLCB1xbx5dGtvd25payBtb8W8ZSB1c3Rhd2nEhyAidXJsb3AiLCAiendvbG5pZW5pZSBsZWthcnNraWUiIG9yYXogIndvbG5lIHphIG5hZGdvZHppbnkiIGRsYSB3aWVsdSBkbmkgamVkbm9jemXFm25pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCB3IGNpxIVndSBrdMOzcnljaCBuYWxlxbx5IHV6dXBlxYJuacSHIGN6YXMgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCBiZXogdXp1cGXFgm5pYW5pYSBjemFzdSBwcmFjeSwgcG8ga3TDs3J5Y2ggcG9rYXphbmUgem9zdGFuaWUgb3N0cnplxbxlbmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcnplZ2zEhWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmFwb3J0b3dhbmllIGN6YXN1IHByb2pla3R1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnV3lyYcW8ZW5pYSByZWd1bGFybmUgZG8gb2dyYW5pY3plbmlhIGxpc3R5IHphZGHFhCB3eWJyYW55Y2ggcHJvamVrdMOzdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgb2tyZcWbbGEgd3lyYcW8ZW5pZSByZWd1bGFybmUgZGxhIGFrY2ppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdXeXJhxbxlbmlhIHJlZ3VsYXJuZSBkbyBvZ3JhbmljemVuaWEgbGlzdHkgcHJvamVrdMOzdyB3eWJyYW55Y2ggZ3J1cCB1xbx5dGtvd25pa8Ozdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgemF3aWVyYSBsaXN0xJkgZ3J1cCByb3pkemllbG9ueWNoIHByemVjaW5rYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnT2tyZcWbbGEsIGN6eSBjemFzIHByYWN5IG1vxbxlIHpvc3RhxIcgd3Byb3dhZHpvbnkgYmV6IHBvZGF3YW5pYSBjemFzdSByb3pwb2N6xJljaWEgb3JheiB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1RlbiBtb2R1xYIgd3ltdXN6YSB1enVwZcWCbmlhbmllIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTW9kdcWCIHRlbiBvc3RyemVnYSBvIHpieXQgZHXFvGVqIGxpY3piaWUgbmllcm96bGljem9ueWNoIGRuaSByb2JvY3p5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1JvemxpY3phbmllIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkeWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnT3BpcyByb3psaWN6YW5pYSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSYXBvcnRvd2FuaWUgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0tvbmZpZ3VyYWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQcnplZ2zEhWQgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1JvemxpY3phbmllIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdXeWtvcnp5c3R5d2FuZSBqZcW8ZWxpIGt0w7NyZcWbIHphZGFuaWEgcmVkdWt1asSFIGdvZHppbnkgcHJhY3kgKG5wLiBqZcWbbGkgemEgY3phc3UgZG9qYXpkdSBsaWN6b25hIGplc3QgdHlsa28gcG/Fgm93YSBjemFzeTsgS2x1Y3ogPT4gZG9qYXpkOyBXYXJ0b8WbxIcgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X0JSX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm9jw6ogcmVhbG1lbnRlIGRlc2VqYSByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhw6fDo28gZGUgZGF0YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEaWFzIHNlbSBhcG9udGFtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNpb25hciB0b2RvcyBvcyBkaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdFbnRyYWRhIGVtIG1hc3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yLCBlc2NvbGhhIG8gbW90aXZvIGRlIHN1YSBhdXPDqm5jaWEgcGFyYSBvcyBkaWFzIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0VtIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdDYW1wb3Mgb2JyaWdhdMOzcmlvcyBlc3TDo28gbWFyY2Fkb3MgY29tICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1ZvY8OqIHTDqm0gcXVlIHByZWVuY2hlciBpbsOtY2lvIGUgZmltLCBvdSB1bSBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1BvciBmYXZvciwgYWRpY2lvbmUgdW0gY29tZW50w6FyaW8gY29tIG1haXMgZGUgOCBjYXJhY3RlcmVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnRGF0YXMgbmVnYXRpdmFzIG7Do28gc8OjbyBsaWJlcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yLCBlbnRyZSBjb20gdW0gdGVtcG8gbm8gZm9ybWF0byBISDpNTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdBcGVuYXMgMjQ6MDAgc8OjbyBwZXJtaXRpZGFzIGNvbW8gdGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdUZW1wbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVGVtcG8gZmluYWwgZGV2ZSBzZXIgZGVwb2lzIGRvIHRlbXBvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSG9yYXMgcmVwZXRpZGFzIG7Do28gc8OjbyBsaWJlcmFkYXMuIEluaWNpZSBvIGFwb250YW1lbnRvIGVtIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1BlcsOtb2RvIGludsOhbGlkbyEgVW0gZGlhIHRlbSBhcGVuYXMgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW0gcGVyw61vZG8gdsOhbGlkbyBkZXZlIHNlciBtYWlvciBxdWUgemVyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1BlcsOtb2RvIGludsOhbGlkbyEgUGVyw61vZG9zIG5lZ2F0aXZvcyBuw6NvIHPDo28gbGliZXJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0FkaWNpb25hciB1bWEgbGluaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdWb2PDqiBwb2RlIHNlbGVjaW9uYXIgYXBlbmFzIHVtIGVsZW1lbnRvIG5vIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+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+eydBZGQgdGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cmFyIHBvciBwcm9qZXRvcywgdGFyZWZhcyBvdSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdQZXLDrW9kb3MgZGUgdGVtcG8gbsOjbyBwb2RlbSBzZXIgZXhjbHXDrWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgdGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRWRpdGFyIGNvbmZpZ3VyYcOnw7VlcyBkYSBUYXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0rDoSBleGlzdGUgdW1hIHRhcmVmYSBjb20gZXNzZSBub21lLiBQb3IgZmF2b3IsIGVzY29saGEgdW0gbm9tZSBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnTyB1c3XDoXJpbyB0ZW0gcGVybWlzc8OjbyBwYXJhIHZlciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdPIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgY3JpYXIgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0xpYmVyYXIgY3JpYcOnw6NvIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdJbnRlcnZhbG9zIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BlcsOtb2RvIEluaWNpYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcsOtb2RvIEZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEaWFzIGRlIEbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMgYXV0b3JpemFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBpbmljaWFsICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IsIGluc2lyYSB1bWEgZGF0YSB2w6FsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXLDrW9kbyBmaW5hbCBkZXZlIHNlciBtYWlvciBxdWUgIHBlcsOtb2RvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEaWFzIGRlIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ1BlcsOtb2RvIGRlIHRlbXBvIG7Do28gZW5jb250cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc8OjbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEaWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdQcsOzeGltbyBkaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRvcyBkYWRvcyBwYXJhIGVzdGUgZGlhLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgaW5zZXJpciBVbmlkYWRlcyBkZSBUcmFiYWxobyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ0NvbmZpZ3VyYcOnw7VlcyBuw6NvIHNhbHZhcywgcG9pcyB1bSBkaWEgdGVtIGFwZW5hcyAyNCBob3JhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBkZWxldGFyIFVuaWRhZGVzIGRlIFRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0VzdGEgRGF0YSBlc3TDoSBmb3JhIGRvIGxpbWl0ZSwgbWFzIHZvY8OqIG7Do28gaW5zZXJpdSBlc3RlIGRpYSBhaW5kYSwgZW50w6NvIHZvY8OqIHBvc3N1aSBVTUEoISkgY2hhbmNlIGRlIGluc2VyaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdEaWFzIGRlIHRyYWJhbGhvcyBpbmNvbXBsZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmlkbyBjb20gc3VjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm8gYW8gaW5zZXJpciBtw7psdGlwbGFzIGRhdGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdFbnRyYWRhIGRlIHbDoXJpYXMgZGF0YXMgaW5zZXJpZGEgY29tIHN1Y2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdEYXRhIGluc2VyaWRhIMOpIGludsOhbGlkYSEgRGF0YSBmb2kgYWx0ZXJhZGEgcGFyYSBob2plLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOZW5odW0gcGVyw61vZG8gZGUgdGVtcG8gY29uZmlndXJhZG8gb3UgYSBkYXRhIGVzcGVjaWZpY2FkYSBlc3TDoSBmb3JhIGRvcyBwZXLDrW9kb3MgZGUgdGVtcG8gZGVmaW5pZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnRW50cmUgZW0gY29udGF0byBjb20gbyBhZG1pbmlzdHJhZG9yIGNvbnTDoWJpbCBkbyB0ZW1wbyBwYXJhIGF0dWFsaXphciBzZXVzIHBlcsOtb2RvcyBkZSB0ZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBvcyBwcm9qZXRvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdQcm9qZXRvIGRlIFJlbGF0w7NyaW86IE5lY2Vzc8OhcmlvIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1Byb2pldG8gZGUgUmVsYXTDs3Jpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0ltcG9zc8OtdmVsIGF0dWFsaXphciBjb25maWd1cmHDp8O1ZXMgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamV0byBhZGljaW9uYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamV0byBhdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0F0aXZpZGFkZSBhZGljaW9uYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQXRpdmlkYWRlIGF0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ08gVXNlcklEIG7Do28gw6kgdsOhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGluc2VyaXIgZGFkb3MgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnSW1wb3Nzw612ZWwgYWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnQ29uZmlndXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1VzdcOhcmlvIGF0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVXN1w6FyaW8gYWRpY2lvbmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBZGljaW9uYXIgdW0gdXN1w6FyaW8gcGFyYSBhIGNvbnRhYmlsaWRhZGUgZG8gdGVtcG8uLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTm92byB1c3XDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnRXN0YWRvIGRvIHBlcsOtb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXPDo286IE5lY2Vzc8OhcmlvICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUG9yIGZhdm9yIGluc2lyYSBzdWFzIGhvcmFzIGRlIHRyYWJhbGhvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0RpYXMgZGUgdHJhYmFsaG9zIGluY29tcGxldG9zJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciwgZXNjb2xoYSBwZWxvIG1lbm9zIHVtIGRpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0VudHJhZGEgZW0gbWFzc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdQb3IgZmF2b3IgZXNjb2xoYSB1bSBtb3Rpdm8gcGFyYSBhIGF1c8OqbmNpYSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0RlbGV0YXIgZW50cmFkYSBuYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcsOnw6NvJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYcOnw6NvIGRvIEFnZW50ZSBwYXJhIHZlciBvIG51bWVybyBkZSBkaWFzIGluY29tcGxldG9zIGRvIHVzdcOhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ08gbm9tZSBwYWRyw6NvIHBhcmEgbm92YXMgYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTyBub21lIHBhZHLDo28gcGFyYSBub3ZvcyBwcm9qZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGF0YSBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRhdGEgaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGVzY3Jpw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGlhcyBkZSBmw6lyaWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBob3JhcyBleHRyYXMsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgaG9yYXMgc2VtYW5haXMgcGFkcsOjbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBhZHLDo28gcGFyYSBub3ZhcyBhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwYWRyw6NvIHBhcmEgbm92b3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcGFyYSBwYXJhIG5vdm9zIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgb3MgcHJvamV0b3MgcGFyYSBvcyBxdWFpcyDDqSBuZWNlc3PDoXJpYSB1bWEgb2JzZXJ2YcOnw6NvLiBTZSBvIFJlZ0V4cCDDqSBlbmNvbnRyYWRvIG5vIHByb2pldG8sIHZvY8OqIHRlbSBxdWUgaW5zZXJpciB1bWEgb2JzZXJ2YcOnw6NvLiBPIFJlZ0V4cCB1c2EgbyBwYXLDom1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBwb2RlIGdlcmFyIGluZm9ybWHDp8O1ZXMgZG8gdGltZSBhY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdQYXJhIHF1YW50b3MgZGlhcyBhdHLDoXMgdm9jw6ogcG9kZSBpbnNlcmlyIHVuaWRhZGVzIGRlIHRyYWJhbGhvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBzb21lbnRlIG9zIHVzdcOhcmlvcyBxdWUgYWRpY2lvbm91IHRlbXBvIGRlIHRyYWJhbGhvIGFvIG8gcHJvamV0byBzZWxlY2lvbmFkbyBzZXLDo28gZXhpYmlkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBvcyBlbGVtZW50b3Mgc3VzcGVuc29zIG5hIHRlbGEgZGUgZWRpw6fDo28gc8OjbyBtb2RpZmljYWRhcyBwYXJhIGNhbXBvcyBkZSBhdXRvY29tcGxldGFyIG1vZGVybml6YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBvcyBwcm9qZXRvcyBhbnRlcmlvcmVzIHBvZGUgc2VyIHVzYWRvIGVtIHZleiBkZSBkdWFzIGxpc3RhcyBkZSBwcm9qZXRvcyAow7psdGltbyBlIHRvZG9zKS4gRWxlIHBvZGUgc2VyIHVzYWRvIGFwZW5hcyBzZSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIG8gZmlsdHJvIHBhcmEgcHJvamV0b3MgYW50ZXJpb3JlcyDDqSBhdGl2YWRvIHBvciBwYWRyw6NvIHNlIGjDoSBwcm9qZXRvcyBhbnRlcmlvcmVzLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIEVuYWJsZUF1dG9Db21wbGV0aW9uIGUgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBlc3TDo28gaGFiaWxpdGFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBvIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgZW50cmFyICJlbSBsaWNlbsOnYSBkZSBmw6lyaWFzIiwgImVtIGxpY2Vuw6dhIG3DqWRpY2EiIGUgImVtIGxpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyIgZGUgdW1hIHPDsyB2ZXogcGFyYSB2w6FyaWFzIGRhdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGRpYXMgZGUgdHJhYmFsaG8gYXDDs3MgbyBxdWFsIGFzICJ1bmlkYWRlcyBkZSB0cmFiYWxobyIgZGV2ZW0gc2VyIGluc2VyaWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBzZW0gInVuaWRhZGVzIGRlIHRyYWJhbGhvIiAgYXDDs3MgbyBxdWFsIHVtIGF2aXNvIHNlcsOhIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXPDo28gR2VyYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmVsYXTDs3JpbyBkZSB0ZW1wb3MgZGUgcHJvamV0b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxpc3RhIGRlIGHDp8O1ZXMgZGUgYWNvcmRvIGNvbSBvIHByb2pldG8gc2VsZWNpb25hZG8uIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvKHMpLCBDb250ZcO6ZG8gY29udMOpbSBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSBhIGHDp8OjbyhzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnQXMgZXhwcmVzc8O1ZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBhIGxpc3RhIGRlIHByb2pldG8gZGUgYWNvcmRvIGNvbSBncnVwb3MgZGUgdXN1w6FyaW9zLiBDaGF2ZSBjb250w6ltIGV4cHJlc3PDo28gcmVndWxhciBwYXJhIG8gcHJvamV0byAocyksIGNvbnRlw7pkbyBjb250w6ltIGxpc3RhICBzZXBhcmFkYSBwb3IgdsOtcmd1bGFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpcXVlIHNlIG8gaG9yw6FyaW8gZGUgdHJhYmFsaG8gcG9kZSBzZXIgaW5zZXJpZG8gc2VtIGhvcsOhcmlvcyBkZSBpbsOtY2lvIGUgdMOpcm1pbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0Vzc2UgbcOzZHVsbyBmb3LDp2EgcHJlZW5jaGVyIG8gVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZMOhIHVtIGF2aXNvIHNlIGhvdXZlciBtdWl0b3MgZGlhcyBkZSB0cmFiYWxobyBuw6NvIHJlZ2lzdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdWaXPDo28gZ2VyYWwgZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlbGF0w7NyaW8gZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmVyIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaWRhZGUgVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnVXNhciBwYXJhICBhbGd1bWFzIGHDp8O1ZXMgZGUgcmVkdXppciBhcyBob3JhcyBkZSB0cmFiYWxobyAocG9yIGV4ZW1wbG8sIHNlIGFwZW5hcyBtZXRhZGUgZG8gdGVtcG8gZGUgdmlhZ2VtIMOpIHBhZ28gS2V5ID0+IHZpYWphcjsgQ29udGVudCA9PiA1MCknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJ1X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDQttC10LvQsNC10YLQtSDRg9C00LDQu9C40YLRjCDRg9GH0YLQtdC90L3Ri9C1INC30LDRgtGA0LDRgtGLINCy0YDQtdC80LXQvdC4INC00LvRjyDRjdGC0L7Qs9C+INC00L3Rjz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LfQsNC/0LjRgdGMINCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L3QsNGB0YLRgNC+0LnQutCw0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAn0J3QsNCy0LjQs9Cw0YbQuNGPINC/0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfQlNC90Lgg0LHQtdC3INC30LDQv9C40YHQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9CS0YvQsdGA0LDRgtGMINCy0YHQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdGB0L7QstGL0Lkg0LLQstC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfQktGL0LHQtdGA0LjRgtC1INC/0YDQuNGH0LjQvdGDINCy0LDRiNC10LPQviDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQsiDQstGL0LHRgNCw0L3QvdGL0LUg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0JIg0L7RgtC/0YPRgdC60LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9Cf0L4g0LHQvtC70LXQt9C90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfQkiDQvtGC0LPRg9C70LUg0LfQsCDQv9C10YDQtdGA0LDQsdC+0YLQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C1INC/0L7Qu9GPINC/0L7QvNC10YfQtdC90YsgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Cd0LXQvtCx0YXQvtC00LjQvNC+INC30LDQv9C+0LvQvdC40YLRjCDQstGA0LXQvNGPINC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8g0LjQu9C4INC/0LXRgNC40L7QtCDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ9Cf0LvQsNC90LjRgNC+0LLQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1INC00L7Qu9C20L3QviDQsdGL0YLRjCDQvdC1INC80LXQvdC10LUgOCDRgdC40LzQstC+0LvQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC10LTQvtC/0YPRgdGC0LjQvNC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDQtNC+0L/Rg9GB0LrQsNC10YLRgdGPINC/0L7QstGC0L7RgNC10L3QuNC1LiDQktGA0LXQvNGPINC90LDRh9Cw0LvQsCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDQtNGA0YPQs9C+0LzRgyDQuNC90YLQtdGA0LLQsNC70YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INGE0L7RgNC80LDRgiEg0JLQstC10LTQuNGC0LUg0LLRgNC10LzRjyDQsiDRhNC+0YDQvNCw0YLQtSBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAn0KLQvtC70YzQutC+IDI0OjAwINGA0LDQt9GA0LXRiNC10L3QviDQsiDQutCw0YfQtdGB0YLQstC1INCy0YDQtdC80LXQvdC4INC+0LrQvtC90YfQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQtdGA0L3QvtC1INCy0YDQtdC80Y8hINCSINGB0YPRgtC60LDRhSDRgtC+0LvRjNC60L4gMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L/QvtC30LbQtSDQstGA0LXQvNC10L3QuCDQvdCw0YfQsNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDQtNC+0L/Rg9GB0LrQsNC10YLRgdGPINC/0L7QstGC0L7RgNC10L3QuNC1LiDQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDQtNGA0YPQs9C+0LzRgyDQuNC90YLQtdGA0LLQsNC70YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INC/0LXRgNC40L7QtCEg0JIg0YHRg9GC0LrQsNGFINGC0L7Qu9GM0LrQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICfQn9GA0LDQstC40LvRjNC90YvQuSDQv9C10YDQuNC+0LQg0LTQvtC70LbQtdC9INCx0YvRgtGMINCx0L7Qu9GM0YjQtSDQvdGD0LvRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0L/QtdGA0LjQvtC0ISDQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC90LUg0LTQvtC/0YPRgdC60LDQtdGC0YHRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC+0LTQvdGDINGB0YLRgNC+0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9CjINCy0LDRgSDQtdGB0YLRjCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINCy0YvQsdGA0LDRgtGMINGC0L7Qu9GM0LrQviDQvtC00LjQvSDRjdC70LXQvNC10L3RgiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsiDQv9C10YDQuNC+0LQg0LHQvtC70LXQt9C90Lg/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQvtGC0L/Rg9GB0LrQsD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsiDQv9C10YDQuNC+0LQg0L7RgtCz0YPQu9C+0LI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsdC+0LvQtdC1IDE2INGH0LDRgdC+0LI/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICfQnNC10YHRj9GH0L3Ri9C5INC+0YLRh9C10YIg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0YfQsNGB0YspJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ9Cf0LXRgNC10YDQsNCx0L7RgtC60LAgKNGN0YLQvtCz0L4g0LzQtdGB0Y/RhtCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgdGC0LDQstGI0LXQtdGB0Y8g0LLRgNC10LzRjyDQvtGC0LPRg9C70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7RgtC/0YPRgdC6ICjQtNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0L3QvdGL0LUg0LTQvdC4INC+0YLQv9GD0YHQutCwICjQsiDRjdGC0L7QvCDQvNC10YHRj9GG0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNC90L3Ri9C1INC00L3QuCDQvtGC0L/Rg9GB0LrQsCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn0J7RgdGC0LDQstGI0LjQtdGB0Y8g0LTQvdC4INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn0JHQvtC70LXQt9C90YwgKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICfQntGC0YHRg9GC0YHRgtCy0L7QstCw0Lsg0L/QviDQsdC+0LvQtdC30L3QuCAo0LIg0Y3RgtC+0Lwg0LzQtdGB0Y/RhtC1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICfQntGC0YHRg9GC0YHRgtCy0L7QstCw0Lsg0L/QviDQsdC+0LvQtdC30L3QuCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXQtNGL0LTRg9GJ0LjQuSDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfQodC70LXQtNGD0Y7RidC40Lkg0LzQtdGB0Y/Rhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0J3QtdC00LXQu9GPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICfQoNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfQktGB0LXQs9C+INC+0YLRgNCw0LHQvtGC0LDQvdC90YvRhSDRh9Cw0YHQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ9Ce0LHQt9C+0YAg0LTQsNC90L3Ri9GFINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOINC00LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KfQsNGB0YsgKNC10LbQtdC80LXRgdGP0YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KfQsNGB0YsgKNC30LAg0LLQtdGB0Ywg0YHRgNC+0Log0L3QsNCx0LvRjtC00LXQvdC40Y8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn0JLRgdC10LPQvic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfQntGC0YfQtdGCINC+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40Y8g0L/QviDQvNC10YHRj9GG0LDQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0LTQsNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn0J7RgtGH0LXRgiDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ9CY0YLQvtCz0L4g0LfQsCDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn0JjRgtC+0LPQviDQt9CwINCy0YHQtSDQstGA0LXQvNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgtCz0YPQu9GLINC30LAg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ9Ce0YLQv9GD0YHQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0J7RgtGB0YPRgtGB0YLQstC40LUg0L/QviDQsdC+0LvQtdC30L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ9Ce0YLRh9C10YLRiyDQv9C+INC/0LvQsNC90LjRgNC+0LLQsNC90LjRjic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0J7RgtGH0LXRgiDQv9C+INC/0LvQsNC90LjRgNC+0LLQsNC90LjRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvtCx0LfQvtGA0YMg0L7RgtGH0LXRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQkiDQvdCw0YHRgtC+0Y/RidC10LUg0LLRgNC10LzRjyDQv9C+0LrQsNC30LDQvdGLINGC0L7Qu9GM0LrQviDQsNC60YLQuNCy0L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDQsiDRjdGC0L7QvCDQv9GA0L7QtdC60YLQtS4g0KfRgtC+0LHRiyDQuNC30LzQtdC90LjRgtGMINGN0YLQviwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC+0LHQvdC+0LLQuNGC0LUg0L3QsNGB0YLRgNC+0LnQutC4Oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQkiDQvdCw0YHRgtC+0Y/RidC10LUg0LLRgNC10LzRjyDQv9C+0LrQsNC30LDQvdGLINCy0YHQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0LIg0Y3RgtC+0Lwg0L/RgNC+0LXQutGC0LUuINCn0YLQvtCx0Ysg0LjQt9C80LXQvdC40YLRjCwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC+0LHQvdC+0LLQuNGC0LUg0L3QsNGB0YLRgNC+0LnQutC4Oic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90Lgg0L/QviDQv9GA0L7QtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L7QsdC30L7RgNGDINC90LDRgdGC0YDQvtC10LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0LvQsNC90LjRgNC+0LLQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQo9C20LUg0LXRgdGC0Ywg0L/RgNC+0LXQutGCINGBINGC0LDQutC40Lwg0L3QsNC40LzQtdC90L7QstCw0L3QuNC10LwuINCS0YvQsdC10YDQuNGC0LUg0LTRgNGD0LPQvtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn0KTQuNC70YzRgtGAINC00LvRjyDQv9GA0L7QtdC60YLQvtCyLCDQt9Cw0LTQsNGHINC40LvQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9Cf0LXRgNC40L7QtNGLINCy0YDQtdC80LXQvdC4INC90LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDRg9C00LDQu9C10L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC30LDQtNCw0YfRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0LfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQo9C20LUg0LXRgdGC0Ywg0LfQsNC00LDRh9CwINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8LCDQktGL0LHQtdGA0LjRgtC1INC00YDRg9Cz0L7QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQvdCw0YHRgtGA0L7QudC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0YDQsNC30YDQtdGI0LXQvdC+INC/0YDQvtGB0LzQsNGC0YDQuNCy0LDRgtGMINCy0YDQtdC80Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGA0LDQt9GA0LXRiNC10L3QviDRgdC+0LfQtNCw0LLQsNGC0Ywg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDRgdC+0LfQtNCw0L3QuNC1INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ9Cf0YDQvtC80LXQttGD0YLQutC4INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ9Cd0LDRh9Cw0LvQviDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAn0JrQvtC90LXRhiDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQvdC4INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAn0KfQsNGB0L7QsiDQsiDQvdC10LTQtdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ9Cg0LDQt9GA0LXRiNC10L3QvdCw0Y8g0L/QtdGA0LXRgNCw0LHQvtGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0LAg0L3QsNGH0LDQu9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ9CS0LLQtdC00LjRgtC1INC/0YDQsNCy0LjQu9GM0L3Rg9GOINC00LDRgtGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9CS0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPINC/0LXRgNC40L7QtNCwINC00L7Qu9C20L3QviDQsdGL0YLRjCDQv9C+0LfQttC1INCy0YDQtdC80LXQvdC4INC10LPQviDQvdCw0YfQsNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQntGB0YLQsNC70L7RgdGMLCDQtNC90LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfQp9Cw0YHQvtCyINCyINC90LXQtNC10LvRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ9Cf0LXRgNC10YDQsNCx0L7RgtC60LAv0KHQstC10YDRhdGD0YDQvtGH0L3Ri9C1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndC1INC30LDQtNCw0L3RiyDQv9C10YDQuNC+0LTRiyDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C10YDQuNC0INCy0YDQtdC80LXQvdC4JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ9Cf0L7RgdC80L7RgtGA0LXRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ9Cf0YDQvtGB0LzQvtGC0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAn0J/RgNC10LTRi9C00YPRidC40Lkg0LTQtdC90YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNGD0Y7RidC40Lkg0LTQtdC90YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0JTQu9GPINGN0YLQvtCz0L4g0LTQvdGPINC00LDQvdC90YvQtSDQvdC1INC90LDQudC00LXQvdGLLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0YshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfQn9C+0YHQu9C10LTQvdC40LUg0L/RgNC+0LXQutGC0YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtGF0YDQsNC90LjRgtGMINC90LDRgdGC0YDQvtC50LrQuCwg0YLQsNC6INC60LDQuiDQsiDRgdGD0YLQutCw0YUgMjQg0YfQsNGB0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMINGA0LDQsdC+0YfQuNC1INC10LTQuNC90LjRhtGLISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ9Ct0YLQsCDQtNCw0YLQsCDQstC90LUg0LTQuNCw0L/QsNC30L7QvdCwLCDQvdC+INCy0Ysg0LXRidC1INC90LUg0YPRgdGC0LDQvdC+0LLQuNC70Lgg0Y3RgtC+0YIg0LTQtdC90YwsINGC0LDQuiDRh9GC0L4g0LLQsNC8INC00LDQtdGC0YHRjyDQvtC00LjQvSghKSDRiNCw0L3RgSDQtNC70Y8g0LXQtSDRg9GB0YLQsNC90L7QstC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfQndC10L/QvtC70L3Ri9C1INGA0LDQsdC+0YfQuNC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfQlNCw0L3QvdGL0LUg0LfQsNC90LXRgdC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LLQstC+0LTQtSDQvdC10YHQutC+0LvRjNC60LjRhSDQtNCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9CU0LDQvdC90YvQtSDQtNC70Y8g0YDQsNC30L3Ri9GFINC00LDRgiDQstCy0LXQtNC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ9CS0LLQtdC00LXQvdC90LDRjyDQtNCw0YLQsCDQvdC10LLQtdGA0L3QsCEg0JfQsNC80LXQvdC10L3QsCDQvdCwINGC0LXQutGD0YnRg9GOISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfQndC1INC90LDRgdGC0YDQvtC10L0g0LLRgNC10LzQtdC90L3QvtC5INC/0LXRgNC40L7QtCwg0LjQu9C4INGD0LrQsNC30LDQvdC90LDRjyDQtNCw0YLQsCDQvdCw0YXQvtC00LjRgtGB0Y8g0LfQsCDQv9GA0LXQtNC10LvQsNC80Lgg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9GFINCy0YDQtdC80LXQvdC90YvRhSDQv9C10YDQuNC+0LTQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNC+0Lwg0LLRgNC10LzQtdC90L3QvtCz0L4g0YPRh9C10YLQsCwg0YfRgtC+0LHRiyDQvtCx0L3QvtCy0LjRgtGMINCy0LDRiNC4INCy0YDQtdC80LXQvdC90YvQtSDQv9C10YDQuNC+0LTRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNC90LjQtSDQstGL0LHRgNCw0L3QvdGL0LUg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAn0JLRgdC1INC/0YDQvtC10LrRgtGLJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGluZ1Byb2plY3Q6INCi0YDQtdCx0YPQtdGC0YHRjyBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfQn9GA0L7QtdC60YIg0YHQvtGB0YLQsNCy0LvQtdC90LjRjyDQvtGC0YfQtdGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfQodC+0YHRgtCw0LLQu9C10L3QuNC1INC+0YLRh9C10YLQvtCyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ9CU0L7QsdCw0LLQu9C10L3QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQn9C70LDQvdC40YDQvtCy0LDQvdC40LUg0L7QsdC90L7QstC70LXQvdC+ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ9CX0LDQtNCw0YfQsCDQtNC+0LHQsNCy0LvQtdC90LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfQl9Cw0LTQsNGH0LAg0L7QsdC90L7QstC70LXQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfQndC10LLQtdGA0L3Ri9C5IFVzZXJJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQstGB0YLQsNCy0LjRgtGMINC00LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9Cw0YDQsNC80LXRgtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L7QsdC90L7QstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LTQvtCx0LDQstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiDRg9GH0LXRgiDQstGA0LXQvNC10L3QuCAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn0KHRgtCw0YLRg9GBINC/0LXRgNC40L7QtNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaWV3OiDQotGA0LXQsdGD0LXRgtGB0Y8gICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JLQstC10LTQuNGC0LUg0JLQsNGI0Lgg0YDQsNCx0L7Rh9C40LUg0YfQsNGB0YshJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn0J3QtdC/0L7Qu9C90YvQtSDRgNCw0LHQvtGH0LjQtSDQtNC90LgnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JLRi9Cx0LXRgNC40YLQtSDRhdC+0YLRjyDQsdGLINC+0LTQuNC9INC00LXQvdGMISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0L/RgNC40YfQuNC90YMg0L7RgtGB0YPRgtGB0YLQstC40Y8hJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0KPQtNCw0LvQuNGC0Ywg0LfQsNC/0LjRgdGMINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7QtNGC0LLQtdGA0LTQuNGC0LUg0LLRgdGC0LDQstC60YMnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0YPQstC10LTQvtC80LvQtdC90LjQuSwg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0L3QtdC30LDQstC10YDRiNC10L3QvdGL0YUg0YDQsNCx0L7Rh9C40YUg0LTQvdC10Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9CY0LzQtdC90LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC90L7QstGL0YUg0LTQtdC50YHRgtCy0LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0J3QsNC30LLQsNC90LjQtSDQvdC+0LLQvtCz0L4g0L/RgNC+0LXQutGC0LAg0L/Qvi3Rg9C80L7Qu9GH0LDQvdC40Y4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTQsNGC0Ysg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTQsNGC0Ysg0L3QsNGH0LDQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC+0L/QuNGB0LDQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQvtGB0YLQsNCy0YjQuNGF0YHRjyDQtNC90LXQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQv9C10YDQtdGA0LDQsdC+0YLQutC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHRgtCw0L3QtNCw0YDRgtC90YvRhSDRgNCw0LHQvtGH0LjRhSDRh9Cw0YHQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDRgdGC0LDRgtGD0YHQsCDQvdC+0LLRi9GFINC00LXQudGB0YLQstC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHRgtCw0YLRg9GB0LAg0L3QvtCy0YvRhSDQv9GA0L7QtdC60YLQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGB0YLQsNGC0YPRgdCwINC90L7QstGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQv9GA0L7QtdC60YLRiyDQtNC70Y8g0LrQvtGC0L7RgNGL0YUg0YLRgNC10LHRg9C10YLRgdGPINC30LDQvdC10YHQtdC90LjQtSDQt9Cw0LzQtdGH0LDQvdC40LkuINCV0YHQu9C4IFJlZ0V4cCDQstC10YDQvdC+INC00LvRjyDQv9GA0L7QtdC60YLQsCwg0LLRiyDQtNC+0LvQttC90Ysg0LTQvtCx0LDQstC40YLRjCDQt9Cw0LzQtdGH0LDQvdC40Y8g0YLQvtC20LUuINCU0LvRjyBSZWdFeHAg0LjRgdC/0L7Qu9GM0LfRg9C50YLQtSDQv9Cw0YDQsNC80LXRgtGAIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiwg0LzQvtC20LXRgiDQu9C4INC80L7QtNGD0LvRjCDQvtGC0YfQtdGC0L7QsiDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L/QviDRg9GH0LXRgtGDINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JTQu9GPINC60LDQutC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQv9GA0L7RiNC10LTRiNC40YUg0LTQvdC10Lkg0LLRiyDQvNC+0LbQtdGC0LUg0LLQvdC10YHRgtC4INC00LDQvdC90YvQtSDQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0L7RgtC+0LHRgNCw0LbQsNGO0YLRgdGPINGC0L7Qu9GM0LrQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LgsINC60L7RgtC+0YDRi9C1INC30LDQvdC+0YHQuNC70Lgg0LfQsNGC0YDQsNGC0Ysg0LLRgNC10LzQtdC90Lgg0LIg0LLRi9Cx0YDQsNC90L3Ri9C5INC/0YDQvtC10LrRgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINCy0YvQv9Cw0LTQsNGO0YnQuNC1INC/0L7Qu9GPINGB0L/QuNGB0LrQsCDQvdCwINGN0LrRgNCw0L3QtSDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINC/0YDQtdC+0LHRgNCw0LfRg9GO0YLRgdGPINCyINC80L7QtNC10YDQvdC40LfQuNGA0L7QstCw0L3QvdGL0LUg0L/QvtC70Y8g0LDQstGC0L7Qt9Cw0LLQtdGA0YjQtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0YLQviDRhNC40LvRjNGC0YAg0LTQu9GPINC/0YDQtdC00YvQtNGD0YnQuNGFINC/0YDQvtC10LrRgtC+0LIg0LzQvtC20LXRgiDQsdGL0YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC9INCy0LzQtdGB0YLQviDQtNCy0YPRhSDRgdC/0LjRgdC60L7QsiAo0L/QvtGB0LvQtdC00L3QuNGFINC4INCy0YHQtdGFINC/0YDQvtC10LrRgtC+0LIpLiDQrdGC0L4g0LTQvtGB0YLRg9C/0L3QviDRgtC+0LvRjNC60L4g0LXRgdC70Lgg0L/QsNGA0LDQvNC10YLRgCBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24g0LDQutGC0LjQstC40YDQvtCy0LDQvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINGC0L4g0YTQuNC70YzRgtGAINC00LvRjyDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyINCy0LrQu9GO0YfQtdC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC/0YDQuCDQvdCw0LvQuNGH0LjQtSDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyLiDQrdGC0L4g0LTQvtGB0YLRg9C/0L3QviDRgtC+0LvRjNC60L4g0LXRgdC70Lgg0L/QsNGA0LDQvNC10YLRgNGLIEVuYWJsZUF1dG9Db21wbGV0aW9uINC4IFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIg0LDQutGC0LjQstC40YDQvtCy0LDQvdGLLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGA0LDQt9GA0LXRiNC10L3QviDQstCy0L7QtNC40YLRjCDQt9C90LDRh9C10L3QuNGPICLQntGB0YLQsNC70L7RgdGMINCyINC+0YLQv9GB0LrQtSIsICLQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC/0L4g0LHQvtC70LXQt9C90LgiINC4ICLQntGB0YLQsNC70L7RgdGMINC/0LXRgNC10YDQsNCx0L7RgtC60LgiINC/0L4g0L3QtdGB0LrQvtC70YzQutC+INC00LDRgiDRgdGA0LDQt9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ9Cc0LDQutGBLiDQutC+0LvQuNGH0LXRgdGC0LLQviDRgNCw0LHQvtGH0LjRhSDQtNC90LXQuSwg0L/QvtGB0LvQtSDQutC+0YLQvtGA0YvRhSDRgNCw0LHQvtGH0LjQtSDQtdC00LjQvdC40YbRiyDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0LfQsNC90LXRgdC10L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L4g0LrQvtC70LjRh9C10YHRgtCy0L4g0YDQsNCx0L7Rh9C40YUg0LTQvdC10LksINC/0L7RgdC70LUg0LrQvtGC0L7RgNC+0LPQviDQstGL0LTQsNC10YLRgdGPINC/0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUg0L4g0YLQvtC8LCDRh9GC0L4g0LTQsNC90L3Ri9C1INC90LUg0LLQstC+0LTQuNC70LjRgdGMLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfQntCx0LfQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAn0J7RgtGH0LXRgiDQviDQstGA0LXQvNC10L3QuCDQv9C+INC/0YDQvtC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICfQoNC10LPRg9C70Y/RgNC90YvQtSDQstGL0YDQsNC20LXQvdC40Y8g0LTQu9GPINGB0L7RgdGC0LDQstC70LXQvdC40Y8g0YHQv9C40YHQutCwINC00LXQudGB0YLQstC40Lkg0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBINCy0YvQsdGA0LDQvdC90YvQvCDQv9GA0L7QtdC60YLQvtC8LiDQmtC70Y7RhyDQtNC+0LvQttC10L0g0YHQvtC00LXRgNC20LDRgtGMINGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQtNC70Y8g0L/RgNC+0LXQutGC0LAo0L7QsiksINCh0L7QtNC10YDQttCw0L3QuNC1IC0g0YDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDQtNC10LnRgdGC0LLQuNGPKNC5KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDRgdC+0YHRgtCw0LLQu9C10L3QuNGPINGB0L/QuNGB0LrQsCDQtNC10LnRgdGC0LLQuNC5INCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQs9GA0YPQv9C/INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LiDQmtC70Y7RhyDQtNC+0LvQttC10L0g0YHQvtC00LXRgNC20LDRgtGMINGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQtNC70Y8g0L/RgNC+0LXQutGC0LAo0L7QsiksINCh0L7QtNC10YDQttCw0L3QuNC1IC0g0YHQv9C40YHQvtC6INCz0YDRg9C/0L8sINGA0LDQt9C00LXQu9C10L3QvdGL0YUg0LfQsNC/0Y/RgtC+0LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIsINC80L7QttC90L4g0LvQuCDQt9Cw0L3QvtGB0LjRgtGMINGA0LDQsdC+0YfQuNC1INGH0LDRgdGLINCx0LXQtyDRg9C60LDQt9Cw0L3QuNGPINCy0YDQtdC80LXQvdC4INC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ9Ct0YLQvtGCINC80L7QtNGD0LvRjCDRg9GB0LrQvtGA0Y/QtdGCINCy0LLQvtC0INC00LDQvdC90YvRhSDQsiBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0YPQstC10LTQvtC80LvQtdC90LjQuSwg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0L3QtdC30LDQstC10YDRiNC10L3QvdGL0YUg0YDQsNCx0L7Rh9C40YUg0LTQvdC10Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICfQo9GH0LXRgiDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSDQt9Cw0YLRgNCw0YIg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICfQntCx0LfQvtGAINC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfQntGC0YfQtdGC0Ysg0L4g0LfQsNGC0YDRgtCw0YUg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQndCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ9Cf0YDQvtGB0LzQvtGC0YAg0LfQsNGC0YDQsNGCINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn0KPRh9C10YIg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ9CU0LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjywg0LXRgdC70Lgg0L3QtdC60L7RgtC+0YDRi9C1INC00LXQudGB0YLQstC40Y8g0YPQvNC10L3RjNGI0LDRjtGCINGA0LDQsdC+0YfQuNC1INGH0LDRgdGLICjQvdCw0L/RgNC40LzQtdGALCDQtdGB0LvQuCDRgtC+0LvRjNC60L4g0L/QvtC70L7QstC40L3QsCDQstGA0LXQvNC10L3QuCDQsiDQv9GD0YLQuCDQvtC/0LvQsNGH0LjQstCw0LXRgtGB0Y8gLSBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0N5cmxfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQlNCwINC70Lgg0LfQsNC40YHRgtCwINC20LXQu9C40YLQtSDQtNCwINC+0LHRgNC40YjQtdGC0LUg0L7QsdGA0LDRh9GD0L0g0LLRgNC10LzQtdC90LAg0LfQsCDQvtCy0LDRmCDQtNCw0L0/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ9Cj0YDQtdC00Lgg0LLRgNC10LzQtdC90YHQutC4INC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQmNC00Lgg0YMg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAn0JTQsNGC0YPQvNGB0LrQsCDQvdCw0LLQuNCz0LDRhtC40ZjQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0LDQvdC4INCx0LXQtyDRg9C90L7RgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9Ch0LXQu9C10LrRgtGD0Zgg0YHQstC1INC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICfQnNCw0YHQvtCy0L3QuCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ9Cc0L7Qu9C40LzQviDQktCw0YEg0LjQt9Cw0LHQtdGA0LjRgtC1INGA0LDQt9C70L7QsyDQstCw0YjQtdCzINC+0LTRgdGD0YHRgtCy0LAg0LfQsCDQuNC30LDQsdGA0LDQvdC1INC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0J3QsCDQvtC00LzQvtGA0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9Cd0LAg0LHQvtC70L7QstCw0ZrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9Cd0LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ9Ce0LHQsNCy0LXQt9C90LAg0L/QvtGZ0LAg0YHRgyDQvtC30L3QsNGH0LXQvdCwINGB0LAgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Cc0L7RgNCw0YLQtSDRg9C90LXRgtC4INCy0YDQtdC80LUg0L/QvtGH0LXRgtC60LAg0Lgg0LfQsNCy0YDRiNC10YLQutCwINC40LvQuCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn0J/RgNC+0ZjQtdC60LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRgtCw0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn0J3QsNC/0L7QvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDQtNC+0LTQsNGC0LUg0L3QsNC/0L7QvNC10L3RgyDQtNGD0LbRgyDQvtC0IDgg0LrQsNGA0LDQutGC0LXRgNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J3QtdCz0LDRgtC40LLQvdCwINCy0YDQtdC80LXQvdCwINC90LjRgdGDINC00L7Qt9Cy0L7RmdC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cf0L7QvdCw0LLRmdCw0ZrQtSDRgdCw0YLQuCDQvdC40ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4uINCS0YDQtdC80LUg0L/QvtGH0LXRgtC60LAg0YHQtSDQv9C+0LrQu9Cw0L/QsCDRgdCwINC00YDRg9Cz0LjQvCDQuNC90YLQtdGA0LLQsNC70L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INGE0L7RgNC80LDRgiEg0JzQvtC70LjQvNC+INC00LAg0YPQvdC10YHQtdGC0LUg0LLRgNC10LzQtSDRgyDRhNC+0YDQvNCw0YLRgyBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAg0ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4g0YHQsNC80L4g0LrQsNC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQvdC+INCy0YDQtdC80LUhINCU0LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfQktGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsCDQvNC+0YDQsCDQsdC40YLQuCDQvdCw0LrQvtC9INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cf0L7QvdCw0LLRmdCw0ZrQtSDRgdCw0YLQuCDQvdC40ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4uINCS0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwINGB0LUg0L/QvtC60LvQsNC/0LAg0YHQsCDQtNGA0YPQs9C40Lwg0LjQvdGC0LXRgNCy0LDQu9C+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQhINCU0LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0JjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQg0LzQvtGA0LAg0LHQuNGC0Lgg0LLQtdGb0Lgg0L7QtCDQvdGD0LvQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INC/0LXRgNC40L7QtCEg0J3QtdCz0LDRgtC40LLQvdC4INC/0LXRgNC40L7QtNC4INC90LjRgdGDINC00L7Qt9Cy0L7RmdC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICfQlNC+0LTQsNGYINGY0LXQtNCw0L0g0YDQtdC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0JzQvtC20LXRgtC1INC40LfQsNCx0YDQsNGC0Lgg0YHQsNC80L4g0ZjQtdC00L3QviDQv9C+0ZnQtSDQt9CwINC/0L7RgtCy0YDQtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINCx0L7Qu9C+0LLQsNGa0YM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINC+0LTQvNC+0YDRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDRgdGC0LUg0YHQuNCz0YPRgNC90Lgg0LTQsCDRgdGC0LUg0YDQsNC00LjQu9C4INC00L7QuiDRgdGC0LUg0LHQuNC70Lgg0L3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQlNCwINC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LAg0YHRgtC1INGA0LDQtNC40LvQuCDQstC40YjQtSDQvtC0IDE2INGB0LDRgtC4Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0LzQtdGB0LXRh9C90L7QsyDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGB0LDRgtC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10L7RgdGC0LDQu9C4INGB0LvQvtCx0L7QtNC90Lgg0LTQsNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7QtNC80L7RgCAo0LTQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQutC+0YDQuNGI0ZvQtdC9INC+0LTQvNC+0YAgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0LrQvtGA0LjRiNGb0LXQvSDQvtC00LzQvtGAICjRg9C60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ9Cf0YDQtdC+0YHRgtCw0L4g0L7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC00LDQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXRgtGF0L7QtNC90Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn0KHQu9C10LTQtdGb0Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0KDQsNC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQtNC90Lgg0YHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn0KPQutGD0L/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/QvtC00LXRiNCw0LLQsNGa0LA6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAg0L/RgNC+0ZjQtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QtNCw0Zgg0L/RgNC+0ZjQtdC60LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ9CY0LTQuCDQvdCwINC/0YDQtdCz0LvQtdC0INC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn0JTQvtC00LDRmCDQn9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQn9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0L/RgNC+0ZjQtdC60LDRgiDRgdCwINGC0LjQvCDQuNC80LXQvdC+0LwuINCc0L7Qu9C40LzQviDQstCw0YEsINC40LfQsNCx0LXRgNC40YLQtSDQvdC10LrQviDQtNGA0YPQs9C+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICfQlNC+0LTQsNGYINC30LDQtNCw0YLQsNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn0KTQuNC70YLQtdGAINC30LAg0L/RgNC+0ZjQtdC60YLQtSwg0LfQsNC00LDRgtC60LUg0LjQu9C4INC60L7RgNC40YHQvdC40LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9CS0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LTQuCDRgdC1INC90LUg0LzQvtCz0YMg0L7QsdGA0LjRgdCw0YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0JvQuNGB0YLQsCDQv9GA0L7RmNC10LrQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0JvQuNGB0YLQsCDQt9Cw0LTQsNGC0LDQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn0JTQvtC00LDRmCDQt9Cw0LTQsNGC0LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQo9GA0LXQtNC4INC/0L7QtNC10YjQsNCy0LDRmtCwINC30LDQtNCw0YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0LfQsNC00LDRgtCw0Log0YHQsCDRgtC40Lwg0LjQvNC10L3QvtC8LiDQnNC+0LvQuNC80L4g0LLQsNGBLCDQuNC30LDQsdC10YDQuNGC0LUg0L3QtdC60L4g0LTRgNGD0LPQvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0JvQuNGB0YLQsCDQutC+0YDQuNGB0L3QuNC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutCwINC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn0JrQvtGA0LjRgdC90LjQutGDINGY0LUg0L7QvNC+0LPRg9Gb0LXQvdC+INC00LAg0LLQuNC00Lgg0L/RgNC10LrQvtCy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfQn9GA0LjQutCw0LbQuCDQv9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ9Ca0L7RgNC40YHQvdC40LrRgyDRmNC1INC+0LzQvtCz0YPRm9C10L3QviDQtNCwINC60YDQtdC40YDQsCDQv9GA0L7RmNC10LrRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICfQlNC+0LfQstC+0LvQuCDQutGA0LXQuNGA0LDRmtC1INC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAn0JrQvtGA0LjRgdC90LjQutGDINGY0LUg0L7QvNC+0LPRg9Gb0LXQvdC+INC00LAg0L/RgNC10YHQutC+0YfQuCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAn0JTQvtC30LLQvtC70Lgg0L/RgNC10YHQutCw0LrQsNGa0LUg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0KPQutC+0LvQuNC60L4g0ZjQtSDRg9C60ZnRg9GH0LXQvdC+LCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAg0ZvQtSDQsdC40YLQuCDQvtC/0YbQuNC+0L3QviDQt9CwINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn0KPQv9C+0LfQvtGA0LXRmtCwINC+INC90LXQtNC+0YHRgtCw0YLQutGDINC+0LHRgNCw0YfRg9C90LAg0LLRgNC10LzQtdC90LAg0Lgg0LrQvtC90YLRgNC+0LvQsCDQv9GA0LjRgdGC0YPQv9CwINGb0LUg0LHQuNGC0Lgg0YHRg9GB0L/QtdC90LTQvtCy0LDQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAn0KDQsNGB0L/QvtC90Lgg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J/QvtGH0LXRgtCw0Log0L/QtdGA0LjQvtC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNCw0L3QuCDQvtC00LzQvtGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQodCw0YLQuCDQv9C+INC90LXQtNC10ZnQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0JTQvtC30LLQvtGZ0LXQvdC+INC/0YDQtdC60L7QstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0YPQvCDQv9C+0YfQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDRg9C90LXRgdC10YLQtSDQstCw0LbQtdGb0Lgg0LTQsNGC0YPQvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfQlNCw0YLRg9C8INC30LDQstGA0YjQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwINC80L7RgNCwINCx0LjRgtC4INC/0L7RgdC70LUg0L/QvtGH0LXRgtC60LAg0L/QtdGA0LjQvtC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQlNCw0L3QuCDQvtC00YHRg9GB0YLQstCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Ch0LXQtNC80LjRh9C90Lgg0YHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0LjRgdGDINC/0YDQvtC90LDRktC10L3QuCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC00LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ9CU0L7QtNCw0Zgg0LLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICfQn9GA0LjQutCw0Lcg0LLRgNC10LzQtdC90YHQutC+0LMg0LfQsNC/0LjRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn0J/RgNC40LrQsNC3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNC10ZvQuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0J3QtdC80LAg0L/QvtC00LDRgtCw0LrQsCDQt9CwINC+0LLQsNGYINC00LDQvS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn0KDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1INGB0LUg0L3QtSDQvNC+0LPRgyDRg9C90LXRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00ZrQuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0LzQvtCz0YMg0LTQsCDRgdCw0YfRg9Cy0LDQvCDQv9C+0LTQtdGI0LDQstCw0ZrQsCwg0ZjQtdGAINC00LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfQoNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUg0YHQtSDQvdC1INC80L7Qs9GDINC+0LHRgNC40YHQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAn0J7QstCw0Zgg0LTQsNGC0YPQvCDRmNC1INC40LfQstCw0L0g0LPRgNCw0L3QuNGG0LAg0LDQu9C4INCz0LAg0L3QuNGB0YLQtSDRmNC+0Ygg0YPQstC10Log0YPQvdC10LvQuCwg0L/QsCDQuNC80LDRgtC1INGY0L7RiCDRmNC10LTQvdGDKCEpINGI0LDQvdGB0YMg0LfQsCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ9Cd0LXQv9C+0YLQv9GD0L3QuCDRgNCw0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ9Cj0YHQv9C10YjQvdC+INC00L7QtNCw0LLQsNGa0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfQk9GA0LXRiNC60LAg0L/RgNC4INGD0L3QvtGB0YMg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfQo9GB0L/QtdGI0L3QviDRg9Cx0LDRh9C10L3QuCDRg9C90L7RgdC4INC30LAg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn0KPQvdC10YLQuCDQtNCw0YLRg9C8INGY0LUg0L3QtdCy0LDQttC10ZvQuCEg0JTQsNGC0YPQvCDRmNC1INC/0YDQvtC80LXRmtC10L0g0L3QsCDQtNCw0L3QsNGI0ZrQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAn0J3QuNGY0LUg0LrQvtC90YTQuNCz0YPRgNC40YHQsNC9INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQg0LjQu9C4INGY0LUg0L3QsNCy0LXQtNC10L3QuCDQtNCw0YLRg9C8INCy0LDQvSDQtNC10YTQuNC90LjRgdCw0L3QuNGFINCy0YDQtdC80LXQvdGB0LrQuNGFINC/0LXRgNC40L7QtNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0JzQvtC70LjQvNC+INC00LAg0LrQvtC90YLQsNC60YLQuNGA0LDRgtC1INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0LAg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsCDQt9CwINCw0LbRg9GA0LjRgNCw0ZrQtSDQstGA0LXQvNC10L3RgdC60LjRhSDQv9C10YDQuNC+0LTQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNGa0Lgg0LjQt9Cw0LHRgNCw0L3QuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ9Ch0LLQuCDQv9GA0L7RmNC10LrRgtC4JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUg0L4g0L/RgNC+0ZjQtdC60YLRgzog0L3QtdC+0L/RhdC+0LTQsNC9INGY0LUgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQv9GA0L7RmNC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn0JrQvtGA0LjRgdC90LjRh9C60LAg0L/QvtC00LXRiNCw0LLQsNGa0LAg0YHQtSDQvdC1INC80L7Qs9GDINCw0LbRg9GA0LjRgNCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICfQlNC+0LTQsNGCINC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQkNC20YPRgNC40YDQsNC9INC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn0JTQvtC00LDRgiDQt9Cw0LTQsNGC0LDQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ9CQ0LbRg9GA0LjRgNCw0L0g0LfQsNC00LDRgtCw0LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ1VzZXJJRCDRmNC1INC90LXQstCw0LbQtdGb0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC/0L7QtNCw0YbQuCDRgdC1INC90LUg0LzQvtCz0YMg0YPQvdC10YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfQktGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0INGB0LUg0L3QtSDQvNC+0LbQtSDQtNC+0LTQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9C+0LTQtdGI0LDQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAn0JDQttGD0YDQuNGA0LDQvSDQutC+0YDQuNGB0L3QuNC6ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ9CU0L7QtNCw0YIg0LrQvtGA0LjRgdC90LjQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfQlNC+0LTQsNGYINC60L7RgNC40YHQvdC40LrQsCDRgyDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLQuCDQutC+0YDQuNGB0L3QuNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICfQodGC0LDRgtGD0YEg0L/QtdGA0LjQvtC00LAnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ9Cf0YDQuNC60LDQtzog0L3QtdC+0L/RhdC+0LTQsNC9ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JzQvtC70LjQvNC+INCy0LDRgSDRg9C90LXRgdC40YLQtSDQstCw0YjQtSDRgNCw0LTQvdC+INCy0YDQtdC80LUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn0J3QtdC/0L7RgtC/0YPQvdC4INGA0LDQtNC90Lgg0LTQsNC90LgnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JzQvtC70LjQvNC+INCy0LDRgSDQuNC30LDQsdC10YDQuNGC0LUg0LHQsNGAINGY0LXQtNCw0L0g0LTQsNC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0L7QstC90Lgg0YPQvdC+0YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQnNC+0LvQuNC80L4g0LLQsNGBINC40LfQsNCx0LXRgNC40YLQtSDRgNCw0LfQu9C+0LMg0LLQsNGI0LXQsyDQvtC00YHRg9GB0YLQstCwISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ9Ce0LHRgNC40YjQuCDRgdGC0LDQstC60YMg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7RgtCy0YDQtNC4INGD0L3QvtGBJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0JzQvtC00YPQuyDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAg0LrQvtGY0Lgg0L/RgNC40LrQsNC30YPRmNC1INCx0YDQvtGYINC90LXQutC+0LzQv9C70LXRgtC90LjRhSDRgNCw0LTQvdC40YUg0LTQsNC90LAg0LfQsCDQutC+0YDQuNGB0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LjQvNC1INC90L7QstC40YUg0LDQutGG0LjRmNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQuNC80LUg0L3QvtCy0LjRhSDQv9GA0L7RmNC10LrQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0YLRg9C8INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0LTQsNGC0YPQvCDQv9C+0YfQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC+0L/QuNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0L3QtSDQvtC00YHRg9GB0YLQstCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0L/RgNC10LrQvtCy0YDQtdC80LXQvdC4INGA0LDQtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0YHRgtCw0L3QtNCw0YDQtNC90YMg0YDQsNC00L3RgyDQvdC10LTQtdGZ0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQtSDQsNC60YbQuNGY0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YHRgtCw0YLRg9GBINC30LAg0L3QvtCy0LUg0L/RgNC+0ZjQtdC60YLQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0L3QvtCy0LjRhSDQutC+0YDQuNGB0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L/RgNC+0ZjQtdC60YLQtSDQt9CwINC60L7RmNC1INGY0LUg0L3QsNC/0L7QvNC10L3QsCDQvtCx0LDQstC10LfQvdCwLiDQkNC60L4g0YHQtSBSZWdFeHAg0L/QvtC60LvQvtC/0Lgg0L3QsCDQv9GA0L7RmNC10LrRgtGDLCDQvNC+0YDQsNGC0LUg0YLQtdC60L7RktC1INGD0L3QtdGC0Lgg0L3QsNC/0L7QvNC10L3Rgy4gUmVnRXhwINC60L7RgNC40YHRgtC4IHNteCDQv9Cw0YDQsNC80LXRgtCw0YAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC00LAg0LvQuCDRgdGC0LDRgtC40YHRgtC40YfQutC4INC80L7QtNGD0Lsg0LzQvtC20LUg0LPQtdC90LXRgNC40YHQsNGC0Lgg0LjQvdGE0L7RgNC80LDRhtC40ZjQtSDQviDQvtCx0YDQsNGH0YPQvdGDINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQmNC30LzQtdC90Lgg0L/QvtC00LXRiNCw0LLQsNGa0LAg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ9CY0LfQvNC10L3QuCDQstGA0LXQvNC10L3RgdC60Lgg0LfQsNC/0LjRgS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JfQsCDQutC+0LvQuNC60L4g0LTQsNC90LAg0YPQvdCw0LfQsNC0INC80L7QttC10YLQtSDRg9C90LXRgtC4INGA0LDQtNC90LUg0ZjQtdC00LjQvdC40YbQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC/0YDQuNC60LDQt9Cw0L3QuCDRgdGDINGB0LDQvNC+INC60L7RgNC40YHQvdC40YbQuCDQutC+0ZjQuCDRgdGDINC00L7QtNCw0LvQuCDRgNCw0LTQvdC+INCy0YDQtdC80LUg0YMg0LjQt9Cw0LHRgNCw0L3QuCDQv9GA0L7RmNC10LrQsNGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC/0LDQtNCw0ZjRg9Gb0Lgg0LXQu9C10LzQtdC90YLQuCDQvdCwINC10LrRgNCw0L3RgyDQt9CwINC40LfQvNC10L3RgyDRgdC1INC80LXRmtCw0ZjRgyDRgyDQvNC+0LTQtdGA0L3QuNC30L7QstCw0L3QsCDRgdCw0LzQvtC00L7QstGA0YjQsNCy0LDRmNGD0ZvQsCDQv9C+0ZnQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINGE0LjQu9GC0LXRgCDQv9GA0LXRgtGF0L7QtNC90LjRhSDQv9GA0L7RmNC10LrQsNGC0LAg0YHQtSDQvNC+0LbQtSDQutC+0YDQuNGB0YLQuNGC0Lgg0YPQvNC10YHRgtC+INC00LLQtSDQu9C40YHRgtC1INC/0YDQvtGY0LXQutCw0YLQsCAo0L/QvtGB0LvQtdC00ZrQuCDQuCDRgdCy0LgpLiDQnNC+0LbQtSDRgdC1INC60L7RgNC40YHRgtC40YLQuCDRgdCw0LzQviDQsNC60L4g0ZjQtSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24g0LDQutGC0LjQstC40YDQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0YTQuNC70YLQtdGAINC/0YDQtdGC0YXQvtC00L3QuNGFINC/0YDQvtGY0LXQutCw0YLQsCDRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INCw0LrRgtC40LLQsNC9INCw0LrQviDQuNC80LAg0L/RgNC+0ZjQtdC60LDRgtCwINC+0LQg0L/RgNC1LiDQnNC+0LbQtSDRgdC1INC60L7RgNC40YHRgtC40YLQuCDRgdCw0LzQviDQsNC60L4g0ZjQtSBFbmFibGVBdXRvQ29tcGxldGlvbiDQuCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyINCw0LrRgtC40LLQuNGA0LDQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC60L7RgNC40YHQvdC40LrRgyDRmNC1INC00L7Qt9Cy0L7RmdC10L3QviDQtNCwINGD0L3QtdGB0LUgItC90LAg0L7QtNC80L7RgNGDIiwgItC90LAg0LHQvtC70L7QstCw0ZrRgyIg0LggItC90LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsCIg0L3QsCDQstC40YjQtSDQtNCw0YLRg9C80LAg0L7QtNGY0LXQtNC90L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCDRgNCw0LTQvdC40YUg0LTQsNC90LAg0L/QvtGB0LvQtSDQutC+0LMg0YLRgNC10LHQsCDQtNC+0LTQsNGC0Lgg0YDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9C90Lgg0LHRgNC+0Zgg0YDQsNC00L3QuNGFINC00LDQvdCwINCx0LXQtyDRg9C90L7RgdCwINGA0LDQtNC90LjRhSDRmNC10LTQuNC90LjRhtCwINC/0L7RgdC70LUg0LrQvtCzINGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC+INGD0L/QvtC30L7RgNC10ZrQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn0J/RgNC10LPQu9C10LQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQstGA0LXQvNC10L3RgyDQv9GA0L7RmNC10LrRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0LfQuCDQt9CwINC+0LPRgNCw0L3QuNGH0LDQstCw0ZrQtSDQu9C40YHRgtC1INCw0LrRhtC40ZjQsCDQv9GA0LXQvNCwINC40LfQsNCx0YDQsNC90LjQvCDQv9GA0L7RmNC10LrRgtC40LzQsC4g0JrRmdGD0Ycg0YHQsNC00YDQttC4INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0L/RgNC+0ZjQtdC60YIo0LUpLCDRgyDRgdCw0LTRgNC20LDRmNGDINGY0LUg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQsNC60YbQuNGY0YMo0LUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICfQoNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L7Qs9GA0LDQvdC40YfQsNCy0LDRmtC1INC70LjRgdGC0LUg0LDQutGG0LjRmNCwINC/0YDQtdC80LAg0LjQt9Cw0LHRgNCw0L3QuNC8INC60L7RgNC40YHQvdC40YfQutC40Lwg0LPRgNGD0L/QsNC80LAuINCa0ZnRg9GHINGB0LDQtNGA0LbQuCDRgNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQtyDQt9CwINC/0YDQvtGY0LXQutGCKNC1KSwg0YMg0YHQsNC00YDQttCw0ZjRgyDRmNC1INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0LPRgNGD0L/QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGA0LDQtNC90Lgg0YHQsNGC0Lgg0LzQvtCz0YMg0LTQsCDRgdC1INGD0L3QtdGB0YMg0LHQtdC3INCy0YDQtdC80LXQvdCwINC/0L7Rh9C10YLQutCwINC4INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAn0J7QstCw0Zgg0LzQvtC00YPQuyDQvdCw0LzQtdGb0LUg0YPQvdC+0YEg0YMg0L7QsdGA0LDRh9GD0L0g0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn0J7QstCw0Zgg0LzQvtC00YPQuyDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSDQtNCw0ZjQtSDRg9C/0L7Qt9C+0YDQtdGa0LUg0LDQutC+INC40LzQsCDQv9GA0LXQstC40YjQtSDQvdC10LrQvtC80L/Qu9C10YLQvdC40YUg0YDQsNC00L3QuNGFINC00LDQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICfQntCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KPRgNC10ZLQuNCy0LDRmtC1INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfQmNC30LLQtdGI0YLQsNGY0Lgg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0J/QvtC00LXRiNCw0LLQsNGa0LAg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfQn9GA0LXQs9C70LXQtCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICfQntCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ9CX0LAg0YPQv9C+0YLRgNC10LHRgyDQsNC60L4g0L3QtdC60LUg0LDQutGG0LjRmNC1INGB0LzQsNGa0YPRmNGDINGA0LDQtNC90LUg0YHQsNGC0LUgKNC90LAg0L/RgNC40LzQtdGALCDQsNC60L4g0YHQtSDQv9C70LDRm9CwINGB0LDQvNC+INC/0L7Qu9CwINCy0YDQtdC80LXQvdCwINC/0YPRgtC+0LLQsNGa0LAg0JrRmdGD0YcgPT4g0L/Rg9GC0L7QstCw0ZrQtTsg0KHQsNC00YDQttCw0ZggPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0xhdG5fVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdEYSBsaSB6YWlzdGEgxb5lbGl0ZSBkYSBvYnJpxaFldGUgb2JyYcSNdW4gdnJlbWVuYSB6YSBvdmFqIGRhbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnVXJlZGkgdnJlbWVuc2tpIHphcGlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSWRpIHUgcG9kZcWhYXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtc2thIG5hdmlnYWNpamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYW5pIGJleiB1bm9zYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxla3R1aiBzdmUgZGFuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzb3ZuaSB1bm9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnTW9saW1vIFZhcyBpemFiZXJpdGUgcmF6bG9nIHZhxaFlZyBvZHN1c3R2YSB6YSBpemFicmFuZSBkYW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnTmEgb2Rtb3J1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdOYSBib2xvdmFuanUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdOYSBzbG9ib2RuaW0gZGFuaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnT2JhdmV6bmEgcG9samEgc3Ugb3puYcSNZW5hIHNhICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdNb3JhdGUgdW5ldGkgdnJlbWUgcG/EjWV0a2EgaSB6YXZyxaFldGthIGlsaSB2cmVtZW5za2kgcGVyaW9kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1phZGF0YWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTmFwb21lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnTW9saW1vIGRhIGRvZGF0ZSBuYXBvbWVudSBkdcW+dSBvZCA4IGthcmFrdGVyYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZuYSB2cmVtZW5hIG5pc3UgZG96dm9samVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ1BvbmF2bGphbmplIHNhdGkgbmlqZSBkb3p2b2xqZW5vLiBWcmVtZSBwb8SNZXRrYSBzZSBwb2tsYXBhIHNhIGRydWdpbSBpbnRlcnZhbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnTmVpc3ByYXZhbiBmb3JtYXQhIE1vbGltbyBkYSB1bmVzZXRlIHZyZW1lIHUgZm9ybWF0dSBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgamUgZG96dm9samVubyBzYW1vIGthbyB2cmVtZSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05laXNwcmF2bm8gdnJlbWUhIERhbiBpbWEgc2FtbyAyNCBzYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVnJlbWUgemF2csWhZXRrYSBtb3JhIGJpdGkgbmFrb24gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9uYXZsamFuamUgc2F0aSBuaWplIGRvenZvbGplbm8uIFZyZW1lIHphdnLFoWV0a2Egc2UgcG9rbGFwYSBzYSBkcnVnaW0gaW50ZXJ2YWxvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05laXNwcmF2YW4gcGVyaW9kISBEYW4gaW1hIHNhbW8gMjQgc2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdJc3ByYXZhbiBwZXJpb2QgbW9yYSBiaXRpIHZlxIdpIG9kIG51bGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWlzcHJhdmFuIHBlcmlvZCEgTmVnYXRpdm5pIHBlcmlvZGkgbmlzdSBkb3p2b2xqZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0RvZGFqIGplZGFuIHJlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ01vxb5ldGUgaXphYnJhdGkgc2FtbyBqZWRubyBwb2xqZSB6YSBwb3R2cmR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSBkb2sgc3RlIGJpbGkgbmEgYm9sb3Zhbmp1Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgZG9rIHN0ZSBiaWxpIG5hIG9kbW9ydT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgZG9rIHN0ZSBiaWxpIG5hIHNsb2JvZG5pbSBkYW5pbWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgdmnFoWUgb2QgMTYgc2F0aT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1ByZWdsZWQgbWVzZcSNbm9nIG9icmHEjXVuYSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdQcmVrb3ZyZW1lbm8gKHNhdGkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ1ByZWtvdnJlbWVubyAob3ZhaiBtZXNlYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1ByZWtvdnJlbWVubyAodWt1cG5vKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdQcmVvc3RhbGkgc2xvYm9kbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdPZG1vciAoZGFuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnSXNrb3JpxaHEh2VuIG9kbW9yIChvdmFqIG1lc2VjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnSXNrb3JpxaHEh2VuIG9kbW9yICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1ByZW9zdGFvIG9kbW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQm9sb3ZhbmplIChkYW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0JvbG92YW5qZSAob3ZhaiBtZXNlYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQm9sb3ZhbmplICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnUHJldGhvZG5pIG1lc2VjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdTbGVkZcSHaSBtZXNlYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnUmFkbmkgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdSYWRuaSBzYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1VrdXBubyByYWRuaWggc2F0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdQcmVnbGVkIGtvcmlzbmnEjWtvZyBwcm9qZWt0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdTYXRpIChtZXNlxI1ubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1NhdGkgKHVrdXBubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdVa3VwYW4gemJpcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdJenZlxaF0YXZhbmplIG8gdnJlbWVudSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhY2lqYSBwbyBtZXNlY2ltYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSWRpIG5hIGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0tvcmlzbmnEjWtpIGl6dmXFoXRhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ01lc2XEjW5pIHpiaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdmVnYSBkbyBzYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnU2xvYm9kbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ09kbW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdCb2xvdmFuamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnUHJlb3N0YW8gb2Rtb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnSXp2ZcWhdGFqaSBvIHByb2pla3R1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdJenZlxaF0YWogbyBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJZGkgbmEgcHJlZ2xlZCBpenZlxaF0YXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVHJlbnV0bm8gc3UgcHJpa2F6YW5pIHNhbW8gYWt0aXZuaSBrb3Jpc25pY2kgdSBvdm9tIHByb2pla3R1LiBaYSBwcm9tZW51IG92YWt2b2cgcG9uYcWhYW5qYSwgbW9saW1vIFZhcyBhxb51cmlyYWp0ZSBwb2RlxaFhdmFuamE6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1RyZW51dG5vIHN1IHByaWthemFuaSBzdmkga29yaXNuaWNpIG9icmHEjXVuYSB2cmVtZW5hLiBaYSBwcm9tZW51IG92YWt2b2cgcG9uYcWhYW5qYSwgbW9saW1vIGHFvnVyaXJhanRlIHBvZGXFoWF2YW5qYTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSXptZW5hIHBvZGXFoWF2YW5qYSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hIHByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRG9kYWogcHJvamVrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdJZGkgbmEgcHJlZ2xlZCBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdEb2RhaiBQcm9qZWthdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIFByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdWZcSHIHBvc3RvamkgcHJvamVrYXQgc2EgdGltIGltZW5vbS4gTW9saW1vIHZhcywgaXphYmVyaXRlIG5la28gZHJ1Z28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSXptZW5pIHBvZGXFoWF2YW5qYSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRG9kYWogemFkYXRhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRlciB6YSBwcm9qZWt0ZSwgemFkYXRrZSBpbGkga29yaXNuaWtlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVnJlbWVuc2tpIHBlcmlvZGkgc2UgbmUgbW9ndSBvYnJpc2F0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgcHJvamVrYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIHphZGF0YWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnRG9kYWogemFkYXRhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdVcmVkaSBwb2RlxaFhdmFuamEgemFkYXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnVmXEhyBwb3N0b2ppIHphZGF0YWsgc2EgdGltIGltZW5vbS4gTW9saW1vIHZhcywgaXphYmVyaXRlIG5la28gZHJ1Z28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGtvcmlzbmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnS29yaXNuacSNa2EgcG9kZcWhYXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnS29yaXNuaWt1IGplIG9tb2d1xIdlbm8gZGEgdmlkaSBwcmVrb3ZyZW1lbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ByaWthxb5pIHByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnS29yaXNuaWt1IGplIG9tb2d1xIdlbm8gZGEga3JlaXJhIHByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdEb3p2b2xpIGtyZWlyYW5qZSBwcm9qZWt0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdLb3Jpc25pa3UgamUgb21vZ3XEh2VubyBkYSBwcmVza2/EjWkgb2JyYcSNdW5hdmFuamUgdnJlbWVuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICdEb3p2b2xpIHByZXNrYWthbmplIG9icmHEjXVuYXZhbmphIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdVa29saWtvIGplIHVrbGp1xI1lbm8sIG9icmHEjXVuYXZhbmplIHZyZW1lbmEgxIdlIGJpdGkgb3BjaW9ubyB6YSBrb3Jpc25pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ1Vwb3pvcmVuamEgbyBuZWRvc3RhdGt1IG9icmHEjXVuYSB2cmVtZW5hIGkga29udHJvbGEgcHJpc3R1cGEgxIdlIGJpdGkgc3VzcGVuZG92YW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnUmFzcG9uaSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BvxI1ldGFrIHBlcmlvZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0tyYWogcGVyaW9kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRGFuaSBvZG1vcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdTYXRpIHBvIG5lZGVsamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0RvenZvbGplbm8gcHJla292cmVtZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXR1bSBwb8SNZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdNb2xpbW8gZGEgdW5lc2V0ZSB2YcW+ZcSHaSBkYXR1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXR1bSB6YXZyxaFldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS3JhaiBwZXJpb2RhIG1vcmEgYml0aSBwb3NsZSBwb8SNZXRrYSBwZXJpb2RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRGFuaSBvZHN1c3R2YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdTZWRtacSNbmkgc2F0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1ByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmlzdSBwcm9uYcSRZW5pIHZyZW1lbnNraSBwZXJpb2RpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdEb2RhaiB2cmVtZW5za2kgcGVyaW9kJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ByaWtheiB2cmVtZW5za29nIHphcGlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1ByaWtheic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdQcmV0aG9kbmkgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnU2xlZGXEh2kgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05lbWEgcG9kYXRha2EgemEgb3ZhaiBkYW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ1JhZG5lIGplZGluaWNlIHNlIG5lIG1vZ3UgdW5ldGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdQb3NsZWRuamkgcHJvamVrdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmUgbW9ndSBkYSBzYcSNdXZhbSBwb2RlxaFhdmFuamEsIGplciBkYW4gaW1hIHNhbW8gMjQgc2F0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ1JhZG5lIGplZGluaWNlIHNlIG5lIG1vZ3Ugb2JyaXNhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnT3ZhaiBkYXR1bSBqZSBpenZhbiBncmFuaWNhIGFsaSBnYSBuaXN0ZSBqb8WhIHV2ZWsgdW5lbGksIHBhIGltYXRlIGpvxaEgamVkbnUoISkgxaFhbnN1IHphIHVub3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdOZXBvdHB1bmkgcmFkbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdVc3BlxaFubyBkb2RhdmFuamUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdHcmXFoWthIHByaSB1bm9zdSB2acWhZSBkYXR1bWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1VzcGXFoW5vIHViYcSNZW5pIHVub3NpIHphIHZpxaFlIGRhdHVtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ1VuZXRpIGRhdHVtIGplIG5ldmHFvmXEh2khIERhdHVtIGplIHByb21lbmplbiBuYSBkYW5hxaFuamkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ05pamUga29uZmlndXJpc2FuIHZyZW1lbnNraSBwZXJpb2QgaWxpIGplIG5hdmVkZW5pIGRhdHVtIHZhbiBkZWZpbmlzYW5paCB2cmVtZW5za2loIHBlcmlvZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdNb2xpbW8gZGEga29udGFrdGlyYXRlIGFkbWluaXN0cmF0b3JhIG9icmHEjXVuYSB2cmVtZW5hIHphIGHFvnVyaXJhbmplIHZyZW1lbnNraWggcGVyaW9kYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Bvc2xlZG5qaSBpemFicmFuaSBwcm9qZWt0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdTdmkgcHJvamVrdGknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnSXp2ZcWhdGF2YW5qZSBvIHByb2pla3R1OiBuZW9waG9kYW4gamUgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnSXp2ZcWhdGF2YW5qZSBvIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0l6dmXFoXRhdmFuamUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnS29yaXNuacSNa2EgcG9kZcWhYXZhbmphIHNlIG5lIG1vZ3UgYcW+dXJpcmF0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdEb2RhdCBwcm9qZWthdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ0HFvnVyaXJhbiBwcm9qZWthdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdEb2RhdCB6YWRhdGFrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQcW+dXJpcmFuIHphZGF0YWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ1VzZXJJRCBqZSBuZXZhxb5lxIdpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLb3Jpc25pxI1raSBwb2RhY2kgc2UgbmUgbW9ndSB1bmV0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdWcmVtZW5za2kgcGVyaW9kIHNlIG5lIG1vxb5lIGRvZGF0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1BvZGXFoWF2YW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQcW+dXJpcmFuIGtvcmlzbmlrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ0RvZGF0IGtvcmlzbmlrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0RvZGFqIGtvcmlzbmlrYSB1IG9icmHEjXVuYXZhbmplIHZyZW1lbmEuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3ZpIGtvcmlzbmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgcGVyaW9kYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnUHJpa2F6OiBuZW9waG9kYW4gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdNb2xpbW8gdmFzIHVuZXNpdGUgdmHFoWUgcmFkbm8gdnJlbWUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnTmVwb3RwdW5pIHJhZG5pIGRhbmknOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnTW9saW1vIHZhcyBpemFiZXJpdGUgYmFyIGplZGFuIGRhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc292bmkgdW5vcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ01vbGltbyB2YXMgaXphYmVyaXRlIHJhemxvZyB2YcWhZWcgb2RzdXN0dmEhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnT2JyacWhaSBzdGF2a3Ugb2JyYcSNdW5hIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdQb3R2cmRpIHVub3MnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bCB6YSBvYmF2ZcWhdGF2YW5qZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhIGtvamkgcHJpa2F6dWplIGJyb2ogbmVrb21wbGV0bmloIHJhZG5paCBkYW5hIHphIGtvcmlzbmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdQb2RyYXp1bWV2YW5vIGltZSBub3ZpaCBha2NpamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbm8gaW1lIG5vdmloIHByb2pla2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdQb2RyYXp1bWV2YW5vIHBvZGXFoWF2YW5qZSB6YSBkYXR1bSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgZGF0dW0gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgb3Bpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIGRhbmUgb2RzdXN0dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgcHJla292cmVtZW5pIHJhZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIHN0YW5kYXJkbnUgcmFkbnUgbmVkZWxqdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgYWtjaWplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgcHJvamVrdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnUG9kcmF6dW1ldmFuaSBzdGF0dXMgbm92aWgga29yaXNuaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdPZHJlxJF1amUgcHJvamVrdGUgemEga29qZSBqZSBuYXBvbWVuYSBvYmF2ZXpuYS4gQWtvIHNlIFJlZ0V4cCBwb2tsb3BpIG5hIHByb2pla3R1LCBtb3JhdGUgdGVrb8SRZSB1bmV0aSBuYXBvbWVudS4gUmVnRXhwIGtvcmlzdGkgc214IHBhcmFtZXRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBkYSBsaSBzdGF0aXN0acSNa2kgbW9kdWwgbW/FvmUgZ2VuZXJpc2F0aSBpbmZvcm1hY2lqZSBvIG9icmHEjXVudSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnSXptZW5pIHZyZW1lbnNraSB6YXBpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnWmEga29saWtvIGRhbmEgdW5hemFkIG1vxb5ldGUgdW5ldGkgcmFkbmUgamVkaW5pY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwcmlrYXphbmkgc3Ugc2FtbyBrb3Jpc25pY2kga29qaSBzdSBkb2RhbGkgcmFkbm8gdnJlbWUgdSBpemFicmFuaSBwcm9qZWthdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwYWRhanXEh2kgZWxlbWVudGkgbmEgZWtyYW51IHphIGl6bWVudSBzZSBtZW5qYWp1IHUgbW9kZXJuaXpvdmFuYSBzYW1vZG92csWhYXZhanXEh2EgcG9samEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBmaWx0ZXIgcHJldGhvZG5paCBwcm9qZWthdGEgc2UgbW/FvmUga29yaXN0aXRpIHVtZXN0byBkdmUgbGlzdGUgcHJvamVrYXRhIChwb3NsZWRuamkgaSBzdmkpLiBNb8W+ZSBzZSBrb3Jpc3RpdGkgc2FtbyBha28gamUgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aXJhbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdBa28gamUgYWt0aXZpcmFubywgZmlsdGVyIHByZXRob2RuaWggcHJvamVrYXRhIGplIHBvZHJhenVtZXZhbm8gYWt0aXZhbiBha28gaW1hIHByb2pla2F0YSBvZCBwcmUuIE1vxb5lIHNlIGtvcmlzdGl0aSBzYW1vIGFrbyBqZSBFbmFibGVBdXRvQ29tcGxldGlvbiBpIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpcmFuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBrb3Jpc25pa3UgamUgZG96dm9samVubyBkYSB1bmVzZSAibmEgb2Rtb3J1IiwgIm5hIGJvbG92YW5qdSIgaSAibmEgc2xvYm9kbmltIGRhbmltYSIgbmEgdmnFoWUgZGF0dW1hIG9kamVkbm9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmkgYnJvaiByYWRuaWggZGFuYSBwb3NsZSBrb2cgdHJlYmEgZG9kYXRpIHJhZG5lIGplZGluaWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIHJhZG5paCBkYW5hIGJleiB1bm9zYSByYWRuaWggamVkaW5pY2EgcG9zbGUga29nIMSHZSBiaXRpIHByaWthemFubyB1cG96b3JlbmplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcmVnbGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ0l6dmXFoXRhdmFuamUgbyB2cmVtZW51IHByb2pla3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWxhcm5pIGl6cmF6aSB6YSBvZ3JhbmnEjWF2YW5qZSBsaXN0ZSBha2NpamEgcHJlbWEgaXphYnJhbmltIHByb2pla3RpbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgYWtjaWp1KGUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bGFybmkgaXpyYXppIHphIG9ncmFuacSNYXZhbmplIGxpc3RlIGFrY2lqYSBwcmVtYSBpemFicmFuaW0ga29yaXNuacSNa2ltIGdydXBhbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgZ3J1cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdPZHJlxJF1amUgZGEgbGkgcmFkbmkgc2F0aSBtb2d1IGRhIHNlIHVuZXN1IGJleiB2cmVtZW5hIHBvxI1ldGthIGkgemF2csWhZXRrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnT3ZhaiBtb2R1bCBuYW1lxIdlIHVub3MgdSBvYnJhxI11biB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ092YWogbW9kdWwgemEgb2JhdmXFoXRhdmFuamUgZGFqZSB1cG96b3JlbmplIGFrbyBpbWEgcHJldmnFoWUgbmVrb21wbGV0bmloIHJhZG5paCBkYW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdPYnJhxI11bmF2YW5qZSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1VyZcSRaXZhbmplIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQcmVnbGVkIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSXp2ZcWhdGFqaSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnUG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ByZWdsZWQgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ09icmHEjXVuYXZhbmplIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1phIHVwb3RyZWJ1IGFrbyBuZWtlIGFrY2lqZSBzbWFuanVqdSByYWRuZSBzYXRlIChuYSBwcmltZXIsIGFrbyBzZSBwbGHEh2Egc2FtbyBwb2xhIHZyZW1lbmEgcHV0b3ZhbmphIEtsanXEjSA9PiBwdXRvdmFuamU7IFNhZHLFvmFqID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN2X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0fDpSB0aWxsIGluc3TDpGxsbmluZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtLW5hdmlnZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnVsOkbGogYWxsYSBkYWdhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnUMOlIHNlbWVzdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTanVrbGVkaWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1VwcGRyYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQW5tw6Ryayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZhIHRpZGVyIMOkciBpbnRlIHRpbGzDpXRuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnT2dpbHRpZ3QgZm9ybWF0ISBWw6RubGlnZW4gZnlsbCBpIGVuIHRpZCBtZWQgZm9ybWF0ZXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09naWx0aWcgdGlkISBFdHQgZHlnbiBoYXIgYmFyYSAyNCB0aW1tYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnw5Z2ZXJ0aWQgKFRpbW1hciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1NlbWVzdGVyIChEYWdhciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRsO2cmVnw6VlbmRlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpHN0a29tbWFuZGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5zdMOkbGxuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdWYXIgdsOkbmxpZyBmeWxsIGkgZGluYSBhcmJldHN0aW1tYXIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1bDpG5saWdlbiB2w6RsaiDDpXRtaW5zdG9uZSBlbiBkYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6RubGlnZW4gdsOkbGogZW4gYW5sZWRuaW5nIGbDtnIgZnLDpW52YXJvISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+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+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN3X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnSmUgdW5hdGFrYSBrdWZ1dGEgVWhhc2lidSB3YSBNdWRhIGt3YSBzaWt1IHlhIGxlbz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnSGFyaXJpIHJla29kaSB5YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnTmVuZGEga3dlbnllIG1wYW5naWxpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdVYWJpcmkgd2EgdGFyZWhlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnU2lrdSB6aXNpem9rdXdhIG5hIG1haW5naXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0NoYWd1YSBzaWt1IHpvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ0luZ2l6byBsYSBwYW1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdUYWZhZGhhbGkgY2hhZ3VhIHNhYmFidSB5YSBrdXRva3V3ZXBvIGt3YSBzaWt1IHppbGl6byBjaGFndWxpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdLYXRpa2EgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdLYXRpa2EgcnVodXNhIHlhIHdhZ29uandhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnS2F0aWthIHJ1aHVzYSB5YSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnU2VoZW11IHppbmF6b3Rha2l3YSB6aW5hIGFsYW1hICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1VuYXRha2l3YSBrdWphemEgbXVkYSB3YSBrdWFuemEgbmEga3VtYWxpemEgYXUgbXVkYSB1bGlvdHVtaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnTXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ0themknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTWFvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdNdWRhIGhhc2kgaGF1cnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNdWRhIHVsaW9qaXJ1ZGlhIGhhdXJ1aHVzaXdpLiBNdWRhIHdhIGt1YW56YSB1bmFmYW5hbmEgbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ011dW5kbyBiYXRpbGkhIFRhZmFkaGFsaSBpbmdpemEgbXVkYSBuYSBtdXVuZG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGluYXJ1aHVzaXdhIGthdGlrYSBtdWRhIHdhIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ011ZGEgd2Ega3VtYWxpemEgbGF6aW1hIHV3ZSBiYWFkYSB5YSBtdWRhIHdhIGt1YW56YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNYXNhYSB5YWxpeW9qaXJ1ZGlhIGhheWFydWh1c2l3aS4gTXVkYSB3YSBrdW1hbGl6YSB1bmFmYW5hbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdNdWRhIGhhbGFsaSB1bmEgbWFzYWEgemFpZGkgeWEgc2lmdXJpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnS2lwaW5kaSBiYXRpbGkhIFZpcGluZGkgaGFzaSBoYXZpcnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnT25nZXphIHNhZnUgbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1VuYXdlemEga3VjaGFndWEgZWxlbWVudGkgbW9qYSBrYXRpa2EgY2hla2kgYm9rc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgd2Fnb25qd2E/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6bz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB6YWlkaSB5YSBtYXNhYSAxNj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXdlemkgeWEgdWFyaWZ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdNdWRhIHdhIG55b2duZXphIChNYXNhYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAobXdlemkgaHV1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ011ZGEgdWxpb2Jha2kgd2EgbGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnTGlraXpvIChzaWt1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWtpem8gaWxpeW9jaHVrdWxpd2EgKG13ZXppIGh1dSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0xpa2l6byBpbGl5b2Jha2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWtpem8geWEgd2Fnb25qd2EgKHNpa3UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGlraXpvIHlhIHdhZ29uandhIGlsaXlvY2h1a3VsaXdhIChtd2V6aSBodXUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTXdlemkgdWxpb3BpdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ013ZXppIHVqYW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1Npa3UgemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnTWFzYWEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdKdW1sYSB5YSBtYXNhYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXJhZGkgd2EgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnTWFzYWEgKGt3YSBtd2V6aSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ01hc2FhIChtdWRhIHdvdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnSnVtbGEga3V1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1VhcmlmdSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdVYWJpcmkgd2EgbXdlemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ05lbmRhIHRhcmVoZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSaXBvdGkgemEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0p1bWxhIHlhIG13ZXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnSnVtbGEgeWEgbXVkYSB3b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdMaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdMaWtpem8gaWxpeW9iYWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JpcG90aSB6YSBtcmFkaSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmlwb3RpIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIHVhcmlmdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0t3YSBzYXNhIHdhdHVtaWFqaSBhbWlsaWZ1IHR1IGthdGlrYSBtcmFkaSBodXUgd2F0YW9ueWVzaHdhLiBLdWJhZGlsaXNoYSB0YWJpYSBoaWksIHRhZmFkaGFsaSBzYXNpc2hhIG1wYW5nYWxpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnS3dhIHNhc2Egd2F0dW1pYWppIHdvdGUgd2EgbXVkYSB1bGlvaGVzYWJpa2Egd2F0YW9ueWVzaHdhLiBLdWJhZGlsaXNoYSB0YWJpYSBoaWksIHRhZmFkaGFsaSBzYXNpc2hhIG1wYW5nYWxpby4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSGFyaXJpIFVoYXNpYnUgd2EgTXVkYSBrd2VueWUgbWlwYW5naWxpbyB5YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ09uZ2V6YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIG1wYW5naWlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnT25nZXphIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdUYXlhcmkga3VuYSBtcmFkaSB3ZW55ZSBoaWxpIGppbmEuIFRhZmFkaGFsaSwgY2hhZ3VhIGplbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgVWhhc3VidSB3YSBNdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnT25nZXphIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnT3JvZGhhIHlhIG1pcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdPcm9kaGEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ09uZ2V6YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1RheWFyaSBrdW5hIGthemkgeWVueWUgaGlsaSBqaW5hLiBUYWZhZGhhbGkgY2hhZ3VhIGplbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ09yb2RoYSB5YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdPbnllc2hhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUnVodXN1IHV0ZW5nZW5lemFqaSB3YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0t1YW56YSBrd2Ega2lwZW5nZWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLdWlzaGEga3dhIGtpcGVuZ2VsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnU2lrdSB6YSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdNYXNhYSBrd2Egd2lraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSB1bGlvcnVodXNpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1RhcmVoZSB5YSBrdWFuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSB0YXJlaGUgaGFsYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnVGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnTXdpc2hvIHdhIGtpcGVuZ2VsZSBsYXppbWEgdXdlIGJhYWRhIHlhIG13YW56byB3YSBraXBlbmdlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1Npa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ01hc2FhIHlhIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdNdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdIYWt1bmEgdmlwZW5nZWxlIHZ5YSBtdWRhIHZpbGl2eW9wYXRpa2FuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdPbmdlemEga2lwZW5nZWxlIGNoYSBtdWRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ09ueWVzaGEga2lwZW5nZWxlIGNoYSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnTXVvbmVrYW5vIHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1Npa3UgaWxpeW9waXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnU2lrdSBpbmF5b2Z3YXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0hha3VuYSBkYXRhIHppbGl6b3BhdGlrYW5hIGt3YSBzaWt1IGhpaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbmdpem8gbGltZWZhbmlraXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdLb3NhIGthdGlrYSBrdWluZ2l6YSB0YXJlaGUgemFpZGkgeWEgbW9qYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnTWFpbmdpem8geWFsaXlvZmFuaWtpd2Ega3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnSW5naXpvIGxhIHRhcmVoZSBuaSBiYXRpbGkhIFRhcmVoZSBpbWViYWRpbGlzaHdhIGxlby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1VhcmlmdSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ01wYW5naWxpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSBtYXNzYWEgeWEga2F6aSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVGFmYWRoYWxpIGNoYWd1YSBqYXBvIHNpa3UgbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5naXpvIGxhIHBhbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgc2FiYWJ1IHlhIGt1dG8ga3V3ZXBvISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0Z1dGEgaW5naXpvIGxhIFVoYXNpYnUgd2EgTXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0hha2lraSBpbmdpem8nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bGkgeWEgdGFhcmlmYSBrd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEga3VvbmEgaWRhZGkgeWEgc2lrdSB6YSBrYXppIHphIG10dW1pYWppIHppc2l6byBrYW1pbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnSmluYSBsYSBjaGFndW8tbXNpbmdpIGt3YSB2aXRlbmRvIHZpcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdKaW5hIGxhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NoYWd1by1tc2luZ2kga3dhIG1pcGFuZ2lsaW8geWEgdGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDaGFndW8tbXNpbmdpIGt3YSBtaXBhbmdpbGlvIHlhIHRhcmVoZSB5YSBrdWFuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ2hhZ3VvLW1zaW5naSBrd2EgbWlwYW5naWxpbyB5YSBtYWVsZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIHNpa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ2hhZ3VvLW1zaW5naSBsYSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIG1pcGFuZ2lsaW8geWEgc2lrdSB6YSBrYXdhaWRhIHphIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0hhbGkgeWEgY2hhZ3VvLW1zaW5naSBrd2Egdml0ZW5kbyB2aXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIHdhdHVtaWFqaSB3YXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBtaXJhZGkgYW1iYXlvIG1hb25pIHlhbmFoaXRhamlrYS4gS2FtYSBSZWdFeHAgaW5hZmFuYW5hIGthdGlrYSBtcmFkaSwgdW5hdGFraXdhIGt1d2VrYSBtYW9uaSBwaWEuIFJlZ0V4cCBpbmF0dW1pYSBwYXJhbWV0YSB5YSBzbXgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0luYWhha2lraSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IGluYXdlemEga3V0ZW5nZW5lemEgdGFhcmlmYSB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdLd2Egc2lrdSBuZ2FwaSB6aWxpem9waXRhIHVuYXdlemEga3VpbmdpemEgdml0ZW5nbyB2eWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgd2F0dW1pYWppIHdhbGlvd2VrYSBtdWRhIHdhIGthemkga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EgbmRpbyB3YXRhb255ZXNod2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgbXR1bWlhamkgYW5hcnVodXNpd2Ega3VpbmdpemEgImt3ZW55ZSBsaWtpem8iLCAia3dlbnllIGxpa2l6byB5YSB3YWdvbmp3YSIsICJrd2VueWUgbGlraXpvIHlhIHNpa3UgemEgbnlvbmdlemEiIGt3YSB0YXJlaGUgemFpZGkgeWEgbW9qYSBrd2EgbWt1cHVvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0tpbWEgY2hhIGp1dSBjaGEgc2lrdSB6YSBrYXppIGJhYWRhIHlhIHZpdGVuZ28gdnlhIGthemkga3VpbmdpendhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnS2ltYSBjaGEganV1IGNoYSBzaWt1IHphIGthemkgYmlsYSB5YSB2aXRlbmdvIHZ5YSBrYXppIGt1aW5naXp3YSBhbWJhdnlvICBvbnlvIGxpdGFvbnllc2h3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YW5heW8ga3dhbWlzaGEgb3JvZGhhIHlhIHZpdGVuZG8ga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EuIFVmdW5ndW8gdW5hIG1hbmVubyB5YSBrYXdhaWRhIHlhIG1yYWRpIChtaXJhZGkpLCBtYXVkaHVpIHlhbmEgbWFuZW5vIHlhIGthd2FpZGEgeWEga2l0ZW5kbyAodml0ZW5kbykuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YSBrdXp1aWEgb3JvZGhhIHlhIG1yYWRpIGt1ZW5kYW5hIG5hIG1ha3VuZGkgeWEgd2F0dW1pYWppLiBVZnVuZ3VvIHVuYSBtYW5lbm8geWEga2F3YWlkYSB5YSBtcmFkaSAobWlyYWRpKSwgbWF1ZGh1aSB5YW5hIG1ha3VuZGkgeWFsaXlvZ2F3YW55d2Ega3dhIGFsYW1hIHlhIG1rYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnSW5hYmFpbmlzaGEga2FtYSBtYXNhYSB5YSBrYXppIHlhbmF3ZXphIGt1aW5naXp3YSBiaWxhIHlhIG11ZGEgd2Ega3VhbnphIG5hIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdIaWkgbW9kdWxpIGluYWluZ2l6YSBVaGFzaWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdIaWkgbW9kdWxpIHlhIHRhYXJpZmEgaW5hdG9hIG9ueW8gZW5kYXBvIGt1bmEgc2lrdSBueWluZ2kgemEga2F6aSBhbWJhem8gaGF6aWpha2FtaWxpa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1VoYXNpYnUgd2EgbXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdIYXJpcmkgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnTWFwaXRpbyB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnVWFyaWZ1IHdhIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ01wYW5naWxpbyB3YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ011b25la2FubyB3YSB1aGFzaWJ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdVaGFzaWJ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnSXRhdHVtaWthIGthbWEgYmFhZGhpIHlhIHZpdGVuZG8gdml0YXB1bmd1emEgbXVkYSB3YSBrYXppIChtZmFubywga2FtYSBudXN1IHlhIG11ZGEgd2Ega3VzYWZpcmkgdW1lbGlwd2EgVWZvbmd1bz0+IGt1c2FmaXJpOyBtYXVkaHVpPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX0NOX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn6K+356Gu6K6k5L2g55yf55qE5biM5pyb5Yig6Zmk6L+Z5LiA5aSp55qE5bel5pe2566h55CG6K6w5b2V77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ+e8lui+keaXtumXtOiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+i/m+WFpeiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfml6XmnJ/mtY/op4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfmsqHmnInorrDlvZXnmoTlt6Xml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn6YCJ5oup5omA5pyJ5bel5pel44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflpKfph4/orrDlvZUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfor7fkuLrmiYDpgInml7bpl7TpgInmi6nnvLrli6Tljp/lm6DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+WKoOePreiwg+S8kSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ+agh+iusCIqIueahOWtl+auteS4uuW/heWhq+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ+S9oOmcgOimgeWhq+WGmeW8gOWni+WSjOe7k+adn+aXtumXtOaIluiAheaXtumXtOauteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfku7vliqEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5aSH5rOoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ+ivt+a3u+WKoOS4gOS4qui2hei/hzjkuKrlrZfnrKbnmoTlpIfms6jvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+aXtumXtOS4jeWFgeiuuOS4uui0n+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn5LiN5YWB6K646YeN5aSN55qE5bel5L2c5pe26Ze044CC5byA5aeL5pe26Ze05bey5Yy56YWN5YW25LuW5a2Y5Zyo55qE5pe25q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfmoLzlvI/ml6DmlYjvvIHor7fmjIlISDpNTeagvOW8j+i+k+WFpeaXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMOWPquWFgeiuuOiuvue9ruS4uue7k+adn+aXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+aXtumXtOaXoOaViO+8geS4gOWkqeWPquaciTI05bCP5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfnu5PmnZ/ml7bpl7TlupTlpKfkuo7lvIDlp4vml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfkuI3lhYHorrjph43lpI3nmoTlt6XkvZzml7bpl7TjgILnu5PmnZ/ml7bpl7Tlt7LljLnphY3lhbbku5blrZjlnKjnmoTml7bmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+aXoOaViOeahOaXtuaute+8geS4gOWkqeWPquaciTI05bCP5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn5pyJ5pWI5pe25q615pe26ZW/5bqU5aSn5LqOMOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn5peg5pWI5pe25q6177yB5pe25q615pe26ZW/5LiN5YWB6K645Li66LSf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn5aKe5Yqg5LiA6KGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn5Y+q6IO96YCJ5oup5LiA5Liq5aSN6YCJ5qGG5YWD57Sg44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfkvaDnoa7lrprkvaDlnKjnl4XlgYfmnJ/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+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ+aMiemhueebruOAgeS7u+WKoeaIlueUqOaIt+i/h+a7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ+aXoOazleWIoOmZpOW3peaXtuWRqOacn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfpobnnm67liJfooagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn5Lu75Yqh5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn5re75Yqg5Lu75YqhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ+e8lui+keS7u+WKoeiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5bey5a2Y5Zyo5ZCM5ZCN55qE5Lu75Yqh77yM6K+36YCJ5oup5LiN5ZCM55qE5ZCN5a2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ+eUqOaIt+WIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAn55So5oi36K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn5YWB6K6455So5oi355yL5Yiw5Yqg54+t5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfmmL7npLrliqDnj60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ+WFgeiuuOeUqOaIt+WIm+W7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn5YWB6K645Yib5bu66aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ+WFgeiuuOeUqOaIt+i3s+i/h+W3peaXtueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICflhYHorrjot7Pov4flt6Xml7bnrqHnkIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICflpoLmnpzpgInmi6nmraTpgInpobnvvIzliJnlt6Xml7bnrqHnkIblr7nnlKjmiLfmnaXor7Tlrp7pmYXkuIrmmK/lj6/pgInnmoTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn5rKh5pyJ5YWz5LqO57y65bCR5p2h55uu55qE6K2m5ZGK77yM5Lmf5rKh5pyJ6L+b5YWl5by65Yi25omn6KGM55qE6K2m5ZGK44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICfml7bpl7Tot6jluqYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn5pe25q615byA5aeLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfml7bmrrXnu5PmnZ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keWBh+WkqeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+avj+WRqOWwj+aXtuaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om55YeG55qE5Yqg54+tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICflvIDlp4vml6XmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn6K+35o+S5YWl5pyJ5pWI5pel5pyf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57uT5p2f5pel5pyfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn5pe25q6157uT5p2f5pe26Ze05bqU5aSn5LqO5pe25q615byA5aeL5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfnvLrli6TlpKnmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn5q+P5ZGo5bel5L2c5bCP5pe25pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5Yqg54+tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmsqHmnInmib7liLDml7bmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5aKe5Yqg5pe25q61JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+afpeeci+W3peaXtuiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+Wxleekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICflkI7kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn5rKh5pyJ5om+5Yiw6L+Z5LiA5aSp55qE5pWw5o2u44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ+aXoOazleaPkuWFpeW3peS9nOWNleS9je+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn5pyA6L+R55qE6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ+aXoOazleS/neWtmOiuvue9ru+8jOWboOS4uuS4gOWkqeWPquaciTI05bCP5pe277yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfml6Dms5XliKDpmaTlt6XkvZzljZXkvY3vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICfov5nkuKrml6XmnJ/kuI3lj5fpmZDliLbvvIzkvYbmmK/kvaDov5jmsqHmnInmj5LlhaXov5nkuIDlpKnvvIzmiYDku6XkvaDojrflvpfkuobkuIDkuKrvvIjvvIHvvInmnLrkvJrmnaXmj5LlhaUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfkuI3lrozmlbTnmoTlt6XkvZzml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5o+S5YWl5oiQ5Yqf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfmj5LlhaXlpJrkuKrml7bpl7Tml7blh7rnjrDplJnor6/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn5oiQ5Yqf5o+S5YWl6K6w5b2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICfovpPlhaXml7bpl7Tml6DmlYjvvIHml6XmnJ/mlLnkuLrlvZPliY3ml6XmnJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAn5rKh5pyJ6YWN572u5pe26Ze05q6177yM5oiW5oyH5a6a55qE5pel5pyf5LiN5Zyo5a6a5LmJ55qE5pe26Ze05q615YaF44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICfor7fogZTns7vlt6Xml7bnrqHnkIblkZjmm7TmlrDmgqjnmoTml7bpl7TmrrXvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ+acgOWQjuiiq+mAieS4reeahOmhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfmiYDmnInpobnnm64nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAn6aG555uu5oql5ZGK77ya6ZyA6KaB6aG555uuSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfpobnnm67miqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn5oql5ZGKJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ+aXoOazleabtOaWsOeUqOaIt+iuvue9ru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ+mhueebruW3sua3u+WKoO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn6aG555uu5bey5pu05paw77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn5Lu75Yqh5bey5re75Yqg77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfku7vliqHlt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnVXNlcklE5peg5pWI77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+aXoOazleaPkuWFpeeUqOaIt+aVsOaNru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+aXoOazlea3u+WKoOaXtumXtOaute+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfnlKjmiLflt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfnlKjmiLflt7Lmt7vliqDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfmt7vliqDkuIDkuKrnlKjmiLfliLDlt6Xml7bnrqHnkIYuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmt7vliqDnlKjmiLcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+aXtuauteeKtuaAgSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn6KeG5Zu+77ya6ZyA6KaBJXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ+ivt+aPkuWFpeW3peS9nOaXtumXtCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ+S4jeWujOaVtOeahOW3peS9nOaXpSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICfor7foh7PlsJHpgInmi6nkuIDlpKnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ+Wkp+mHj+iusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ+ivt+mAieaLqee8uuW4reWOn+WboO+8gSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ+WIoOmZpOW3peaXtueuoeeQhuiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ+ehruiupOaPkuWFpSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ+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+R5Ye65ZGK6K2m44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ+W3peaXtueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICflt6Xml7bnrqHnkIbnvJbovpHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuamguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ+W3peaXtueuoeeQhuaKpeWRiuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn5bel5pe2566h55CG6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuafpeeci+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn5bel5pe2566h55CG44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ+WcqOS4gOS6m+a0u+WKqOWHj+WwkeW3peS9nOWwj+aXtuaVsOeahOaXtuWAmeS9v+eUqO+8iOWmgu+8muWPquiKsei0ueS6huS4gOWNiueahOW3ruaXheaXtumXtO+8jOWImUtleT0+5beu5peF77ybQ29udGVudD0+NTDvvInjgIInOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAkU2VsZi0+e1RpbWVab25lfSA9ICRQYXJhbXtUaW1lWm9uZX0KICAgICAgICB8fCAkUGFyYW17VXNlclRpbWVab25lfQogICAgICAgIHx8ICREYXRlVGltZU9iamVjdC0+T1RSU1RpbWVab25lR2V0KCk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICByZXR1cm4gMSBpZiAhJFNlbGYtPntBY2Nlc3NSb307CgogICAgbXkgJERhdGVUaW1lT2JqZWN0Q3VycmVudCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICBteSAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgIHJldHVybiBpZiAhJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9OwoKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyByZWRpcmVjdCBpZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5IGFyZSBvdXQgb2YgcmFuZ2UKICAgIGlmICgKICAgICAgICAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9CiAgICAgICAgJiYgJFNlbGYtPntBY3Rpb259IG5lICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcKICAgICAgICAmJiAkU2VsZi0+e0FjdGlvbn0gPX4gL0FnZW50VGltZUFjY291bnRpbmcvCiAgICAgICAgKQogICAgewoKICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2hvdyBjb25maXJtYXRpb24gZGlhbG9nIHRvIGRlbGV0ZSB0aGUgZW50cnkgb2YgdGhpcyBkYXkKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdEZWxldGVEaWFsb2cnICkgKSB7CgogICAgICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIFllYXIgTW9udGggRGF5KSkgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIERhdGUKICAgICAgICBpZiAoICEkUGFyYW17WWVhcn0gfHwgISRQYXJhbXtNb250aH0gfHwgISRQYXJhbXtEYXl9ICkgewogICAgICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgICAgICRQYXJhbXtNb250aH0gPSAkTW9udGg7CiAgICAgICAgICAgICRQYXJhbXtEYXl9ICAgPSAkRGF5OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte1llYXJ9ICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte1llYXJ9ICk7CiAgICAgICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgICAgICAgICAgJFBhcmFte0RheX0gICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte0RheX0gKTsKICAgICAgICB9CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlJywKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIHRoZSByZXR1cm5lZCBkYXRhIHN0cnVjdHVyZQogICAgICAgIG15ICVEYXRhID0gKAogICAgICAgICAgICBIVE1MICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIERpYWxvZ1R5cGUgPT4gJ0NvbmZpcm1hdGlvbicsCiAgICAgICAgKTsKCiAgICAgICAgIyByZXR1cm4gSlNPTi1TdHJpbmcgYmVjYXVzZSBvZiBBSkFYLU1vZGUKICAgICAgICBteSAkT3V0cHV0SlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gXCVEYXRhLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0SlNPTiwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBkZWxldGUgb2JqZWN0IGZyb20gZGF0YWJhc2UKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlJyApIHsKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF5IE1vbnRoIFllYXIpKSB7CiAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgICAgICB9CgogICAgICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIG1hc3MgZW50cnkKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnTWFzc0VudHJ5JyApIHsKCiAgICAgICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICAgICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgcGFyYW1zCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVzIExlYXZlRGF5IFNpY2sgT3ZlcnRpbWUpKSB7CiAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgc3BsaXQgdXAgZGF0ZXMKICAgICAgICBteSBARGF0ZXMgPSBzcGxpdCAvW3xdLywgJFBhcmFte0RhdGVzfTsKICAgICAgICBteSAkSW5zZXJ0RXJyb3IgPSAwOwoKICAgICAgICAjIHNhdmUgZW50cmllcyBpbiB0aGUgZGIKICAgICAgICBmb3IgbXkgJERhdGUgKEBEYXRlcykgewoKICAgICAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCAvWy1dLywgJERhdGU7CgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXkgPT4gJFBhcmFte0xlYXZlRGF5fSB8fCAwLAogICAgICAgICAgICAgICAgICAgIFNpY2sgICAgID0+ICRQYXJhbXtTaWNrfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lID0+ICRQYXJhbXtPdmVydGltZX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRJbnNlcnRFcnJvciA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICAjIHJlZGlyZWN0IHRvIGVkaXQgc2NyZWVuIHdpdGggbG9nIG1lc3NhZ2UKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7Tm90aWZpY2F0aW9uPScKICAgICAgICAgICAgICAgIC4gKCAkSW5zZXJ0RXJyb3IgPyAnRXJyb3InIDogJ1N1Y2Nlc3NmdWwnICksCiAgICAgICAgKTsKCiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCB0aGUgdGltZSBhY2NvdW50aW5nIGVsZW1lbnRzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtcwogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBZZWFyIE1vbnRoIERheSBOb3RpZmljYXRpb24pKSB7CiAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgfQogICAgJFBhcmFte1JlY29yZHNOdW1iZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JlY29yZHNOdW1iZXInICkgfHwgODsKICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0luc2VydFdvcmtpbmdVbml0cycgKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBDaGVjayBEYXRlCiAgICBpZiAoICEkUGFyYW17WWVhcn0gfHwgISRQYXJhbXtNb250aH0gfHwgISRQYXJhbXtEYXl9ICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgPSAkRGF5OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte1llYXJ9ICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte1llYXJ9ICk7CiAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgICAgICRQYXJhbXtEYXl9ICAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtEYXl9ICk7CiAgICB9CgogICAgIyBjaGVjayBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBhIHZhbGlkIGRhdGUKICAgICMgaWYgbm90IHZhbGlkLCBzZXQgdGhlIGRhdGUgdG8gdG9kYXkKICAgIG15ICREYXRlVGltZVZhbGlkID0gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VmFsaWRhdGUoCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgSG91ciAgICAgPT4gMCwKICAgICAgICBNaW51dGUgICA9PiAwLAogICAgICAgIFNlY29uZCAgID0+IDAsCiAgICAgICAgVGltZVpvbmUgPT4gJ1VUQycsCiAgICApOwoKICAgIGlmICggISREYXRlVGltZVZhbGlkICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgICAgICAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ICAgICAgID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgICAgICAgPSAkRGF5OwogICAgICAgICRQYXJhbXsnV3JvbmdEYXRlJ30gPSAxOwogICAgfQoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgIyBmb3IgaW5pdGlhbCB1c2UsIHRoZSBmaXJzdCBhZ2VudCB3aXRoIHJ3LXJpZ2h0IHdpbGwgYmUgcmVkaXJlY3RlZAogICAgIyB0byAnU2V0dGluZycsIHNvIGhlIGNhbiBkbyB0aGUgaW5pdGlhbCBzZXR0aW5ncwogICAgaWYgKCAhJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9ICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0ZpcnN0VXNlclJlZGlyZWN0KCk7CiAgICB9CgogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICB9CiAgICApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEFsbG93ZWQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyQWxsb3dlZH0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aEFsbG93ZWR9LAogICAgICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgIH0KICAgICk7CgogICAgaWYgKCAkRGF0ZVRpbWVPYmplY3RHaXZlbi0+Q29tcGFyZSggRGF0ZVRpbWVPYmplY3QgPT4gJERhdGVUaW1lT2JqZWN0QWxsb3dlZCApIDwgMCApIHsKICAgICAgICBpZiAoICEkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyAkUGFyYW17WWVhcn0gfXsgJFBhcmFte01vbnRofSB9eyAkUGFyYW17RGF5fSB9ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICApOwoKICAgICRQYXJhbXtNb250aF90b19UZXh0fSA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgKCAkUGFyYW17WWVhckJhY2t9LCAkUGFyYW17TW9udGhCYWNrfSwgJFBhcmFte0RheUJhY2t9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIC0xICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgMSApOwoKICAgIG15ICRSZWR1Y2VUaW1lUmVmID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UmVkdWNlVGltZScpOwoKICAgICMgaGFzaGVzIHRvIHN0b3JlIHNlcnZlciBzaWRlIGVycm9ycwogICAgbXkgJUVycm9ycyAgICAgICAgICA9ICgpOwogICAgbXkgJVNlcnZlckVycm9yRGF0YSA9ICgpOwogICAgbXkgJEVycm9ySW5kZXggICAgICA9IDE7CgogICAgbXkgJURhdGE7CiAgICBteSAlQWN0aW9uTGlzdCA9ICRTZWxmLT5fQWN0aW9uTGlzdCgpOwoKICAgICMgRWRpdCBXb3JraW5nIFVuaXRzCiAgICBpZiAoICRQYXJhbXtTdGF0dXN9ICkgewoKICAgICAgICAjIGFycmF5cyB0byBzYXZlIGFsbCBzdGFydCBhbmQgZW5kIHRpbWVzIGZvciBzb21lIGNoZWNrcwogICAgICAgIG15ICggQFN0YXJ0VGltZXMsIEBFbmRUaW1lcyApOwoKICAgICAgICAjIGRlbGV0ZSBwcmV2aW91cyBlbnRyaWVzIGZvciB0aGlzIGRheSBhbmQgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICVDaGVja2JveENoZWNrID0gKCk7CiAgICAgICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewogICAgICAgICAgICBteSAkVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRWxlbWVudCApOwogICAgICAgICAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgICAgICAgICAkQ2hlY2tib3hDaGVja3skRWxlbWVudH0gPSAxOwogICAgICAgICAgICAgICAgJFBhcmFteyRFbGVtZW50fSAgICAgICAgID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQYXJhbXskRWxlbWVudH0gPSAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBtb3JlIHRoYW4gb25lIGNoZWNrIGJveCB3YXMgY2hlY2tlZCBpdCBpcyBhIHNlcnZlciBlcnJvcgogICAgICAgIGlmICggc2NhbGFyIGtleXMgJUNoZWNrYm94Q2hlY2sgPiAxICkgewogICAgICAgICAgICBmb3IgbXkgJENoZWNrYm94ICggc29ydCBrZXlzICVDaGVja2JveENoZWNrICkgewogICAgICAgICAgICAgICAgJEVycm9yc3sgJENoZWNrYm94IC4gJ0ludmFsaWQnIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBpbnNlcnQgdmFsdWVzIChpZiBhbnkpCiAgICAgICAgICAgIGlmICggc2NhbGFyIGtleXMgJUNoZWNrYm94Q2hlY2sgPiAwICkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXkgPT4gJENoZWNrYm94Q2hlY2t7TGVhdmVEYXl9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFNpY2sgICAgID0+ICRDaGVja2JveENoZWNre1NpY2t9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lID0+ICRDaGVja2JveENoZWNre092ZXJ0aW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IGNoZWNrIGl0ZW0gb2JqZWN0CiAgICAgICAgbXkgJENoZWNrSXRlbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nKTsKCiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRJRCAoIDEgLi4gJFBhcmFte1JlY29yZHNOdW1iZXJ9ICkgewoKICAgICAgICAgICAgIyBhcnJheXMgdG8gc2F2ZSB0aGUgc2VydmVyIGVycm9ycyBibG9jayB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcwogICAgICAgICAgICBteSAoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrICkgPSAoKTsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lIFBlcmlvZCkpIHsKICAgICAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAnWycgLiAkSUQgLiAnXScgKTsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFteyRQYXJhbWV0ZXJ9ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRQYXJhbVJlZiA9IFwkUGFyYW17JFBhcmFtZXRlcn07CgogICAgICAgICAgICAgICAgICAgICMgZGVsZXRlIGxlYWRpbmcgYW5kIHRhaWxpbmcgc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgJFBhcmFtUmVmID0gJENoZWNrSXRlbU9iamVjdC0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1JlZiA9PiAkUGFyYW1SZWYsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyaW1MZWZ0ICA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBUcmltUmlnaHQgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBuZXh0IElEIGlmICEkUGFyYW17UHJvamVjdElEfSAmJiAhJFBhcmFte0FjdGlvbklEfTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIG1pc3NpbmcgdmFsdWVzCiAgICAgICAgICAgIGlmICggJFBhcmFte1Byb2plY3RJRH0gJiYgISRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtBY3Rpb25JREludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSAmJiAkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UHJvamVjdElESW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNyZWF0ZSBhIHZhbGlkIHBlcmlvZAogICAgICAgICAgICBteSAkUGVyaW9kID0gJFBhcmFte1BlcmlvZH07CiAgICAgICAgICAgIGlmICggJFBlcmlvZCA9fiAvXihcZCspLChcZCspLyApIHsKICAgICAgICAgICAgICAgICRQZXJpb2QgPSAkMSAuICIuIiAuICQyOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjYWxsb3cgZm9ybWF0IGhoOm1tCiAgICAgICAgICAgIGVsc2lmICggJFBhcmFte1BlcmlvZH0gPX4gL14oXGQrKTooXGQrKS8gKSB7CiAgICAgICAgICAgICAgICAkUGVyaW9kID0gJDEgKyAkMiAvIDYwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHN0YXJ0IG9yIGVuZCB0aW1lcyBhcmUgbWlzc2luZywgZGVsZXRlIHRoZSBvdGhlciBlbnRyeQogICAgICAgICAgICBpZiAoICEkUGFyYW17U3RhcnRUaW1lfSB8fCAhJFBhcmFte0VuZFRpbWV9ICkgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gPSAnJzsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAgID0gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkICc6MDAnIHRvIHRoZSB0aW1lLCBpZiBpdCBkb2Vzbid0IGhhdmUgaXQgeWV0CiAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gJiYgJFBhcmFte1N0YXJ0VGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gLj0gJzowMCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gJiYgJFBhcmFte0VuZFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAuPSAnOjAwJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLyApCiAgICAgICAgICAgICAgICAmJiAoICRQYXJhbXtFbmRUaW1lfSA9fiAvXihcZCspOihcZCspJC8gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSA9fiAvXihcZCspOihcZCspJC87CiAgICAgICAgICAgICAgICBteSAkU3RhcnRUaW1lID0gJDEgKiA2MCArICQyOwogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLzsKICAgICAgICAgICAgICAgIG15ICRFbmRUaW1lID0gJDEgKiA2MCArICQyOwogICAgICAgICAgICAgICAgaWYgKCAkUmVkdWNlVGltZVJlZi0+eyAkQWN0aW9uTGlzdHsgJFBhcmFte0FjdGlvbklEfSB9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZCA9ICggJEVuZFRpbWUgLSAkU3RhcnRUaW1lICkgLyA2MAogICAgICAgICAgICAgICAgICAgICAgICAqICRSZWR1Y2VUaW1lUmVmLT57ICRBY3Rpb25MaXN0eyAkUGFyYW17QWN0aW9uSUR9IH0gfSAvIDEwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2QgPSAoICRFbmRUaW1lIC0gJFN0YXJ0VGltZSApIC8gNjA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBlbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUKICAgICAgICAgICAgICAgIGlmICggJEVuZFRpbWUgPD0gJFN0YXJ0VGltZSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkU3RhcnRUaW1lc1skSURdID0gJFN0YXJ0VGltZTsKICAgICAgICAgICAgICAgICRFbmRUaW1lc1skSURdICAgPSAkRW5kVGltZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gJiYgJFBhcmFte1N0YXJ0VGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0VuZFRpbWV9ICYmICRQYXJhbXtFbmRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG5lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZAogICAgICAgICAgICBpZiAoICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eLShcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gPX4gL14tKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgUE9TSVRJT046CiAgICAgICAgICAgIGZvciAoIG15ICRQb3NpdGlvbiA9ICRJRCAtIDE7ICRQb3NpdGlvbiA+PSAxOyAkUG9zaXRpb24tLSApIHsKICAgICAgICAgICAgICAgIG5leHQgUE9TSVRJT04gaWYgIWRlZmluZWQgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXTsKICAgICAgICAgICAgICAgIG5leHQgUE9TSVRJT04gaWYgIWRlZmluZWQgJFN0YXJ0VGltZXNbJElEXTsKCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXSA+ICRTdGFydFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICAmJiAkU3RhcnRUaW1lc1skUG9zaXRpb25dIDwgJEVuZFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvci99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEVuZFRpbWVzWyRQb3NpdGlvbl0gPiAkU3RhcnRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgJiYgJEVuZFRpbWVzWyRQb3NpdGlvbl0gPCAkRW5kVGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRFbmRUaW1lc1skSURdID4gJEVuZFRpbWVzWyRQb3NpdGlvbl0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRQb3NpdGlvbl0gPT0gJFN0YXJ0VGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15TdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkRW5kVGltZXNbJFBvc2l0aW9uXSA9PSAkRW5kVGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJElEXSA+ICRTdGFydFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICAmJiAkU3RhcnRUaW1lc1skSURdIDwgJEVuZFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRW5kVGltZXNbJElEXSA+ICRTdGFydFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICAmJiAkRW5kVGltZXNbJElEXSA8ICRFbmRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjICcyNDowMCcgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRTdGFydFRpbWVzWyRJRF0gPT0gMTQ0MCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWUyNEhvdXJzJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyB0aW1lcyBzdXBlcmlvciB0byAyNDowMCBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRTdGFydFRpbWVzWyRJRF0gPiAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZUludmFsaWQnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEVuZFRpbWVzWyRJRF0gJiYgJEVuZFRpbWVzWyRJRF0gPiAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUludmFsaWQnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCByZWZlcmVuY2UgdG8gdGhlIHNlcnZlciBlcnJvciBtZXNzYWdlcyB0byBiZSBzaG93bgogICAgICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gPSBcQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2s7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gPSBcQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG92ZXJ3cml0ZSBwZXJpb2QgaWYgdGhlcmUgYXJlIHN0YXJ0IGFuZCBlbmQgdGltZXMKICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skSURdICYmICRFbmRUaW1lc1skSURdICkgewogICAgICAgICAgICAgICAgJFBlcmlvZCA9ICRFbmRUaW1lc1skSURdIC0gJFN0YXJ0VGltZXNbJElEXTsKCiAgICAgICAgICAgICAgICAjIGNvbnZlcnQgcGVyaW9kIGZyb20gbWludXRlcyB0byBob3VycwogICAgICAgICAgICAgICAgJFBlcmlvZCAvPSA2MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmb3IgZXJyb3JzIGluIHRoZSBwZXJpb2QKICAgICAgICAgICAgaWYgKCAkUGVyaW9kID09IDAgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrLCAnWmVyb0hvdXJzUGVyaW9kU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lJykKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICggJFBlcmlvZCA8IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdOZWdhdGl2ZVBlcmlvZFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQZXJpb2QgPiAyNCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSA9IFxAUGVyaW9kU2VydmVyRXJyb3JCbG9jazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igb24gdGhpcyByb3csIHNhdmUgYWxsIGRhdGEgaW4gdGhlIHNlcnZlciBlcnJvciBoYXNoCiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkRXJyb3JzeyRFcnJvckluZGV4fSApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lKSkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9eyRQYXJhbWV0ZXJ9ID0gJFBhcmFteyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfSA9ICRQZXJpb2Q7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlLCBzYXZlIHJvdyBvbiB0aGUgREIKICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBpbml0aWFsaXplIHRoZSBhcnJheSBvZiB3b3JraW5nIHVuaXRzCiAgICAgICAgICAgICAgICBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0gPSAoKTsKCiAgICAgICAgICAgICAgICAjIHJlcGxhY2UgMjQ6MDAgZm9yIDIzOjU5OjU5IHRvIGJlIGEgdmFsaWQgZW50cnkgaW4gdGhlIERCCiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gPSAkUGFyYW17RW5kVGltZX0gZXEgJzI0OjAwJyA/ICcyMzo1OTo1OScgOiAkUGFyYW17RW5kVGltZX07CgogICAgICAgICAgICAgICAgbXkgJVdvcmtpbmdVbml0ID0gKAogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJFBhcmFte1JlbWFya30sCiAgICAgICAgICAgICAgICAgICAgU3RhcnRUaW1lID0+ICRQYXJhbXtTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkUGFyYW17RW5kVGltZX0sCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICRQZXJpb2QsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcHVzaCBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH0sIFwlV29ya2luZ1VuaXQ7CgogICAgICAgICAgICAgICAgJERhdGF7WWVhcn0gICA9ICRQYXJhbXtZZWFyfTsKICAgICAgICAgICAgICAgICREYXRhe01vbnRofSAgPSAkUGFyYW17TW9udGh9OwogICAgICAgICAgICAgICAgJERhdGF7RGF5fSAgICA9ICRQYXJhbXtEYXl9OwogICAgICAgICAgICAgICAgJERhdGF7VXNlcklEfSA9ICRTZWxmLT57VXNlcklEfTsKCiAgICAgICAgICAgICAgICBpZiAoICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCglRGF0YSkgKSB7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpbmNyZW1lbnQgdGhlIGVycm9yIGluZGV4IGlmIHRoZXJlIHdhcyBhbiBlcnJvciBvbiB0aGlzIHJvdwogICAgICAgICAgICAkRXJyb3JJbmRleCsrIGlmICggZGVmaW5lZCAkRXJyb3JzeyRFcnJvckluZGV4fSApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCVTZXJ2ZXJFcnJvckRhdGEpIHsKICAgICAgICAgICAgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ID0gdW5kZWY7CiAgICAgICAgfQogICAgfQoKICAgICMgU2hvdyBXb3JraW5nIFVuaXRzCiAgICAjIGdldCBleGlzdGluZyB3b3JraW5nIHVuaXRzCiAgICAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IG51bWJlciBvZiB3b3JraW5nIHVuaXRzICg9cmVjb3JkcykKICAgICMgICAgaWYgYmlnZ2VyIHRoYW4gUmVjb3Jkc051bWJlciwgbW9yZSB0aGFuIHRoZSBudW1iZXIgb2YgZGVmYXVsdCByZWNvcmRzIHdlcmUgc2F2ZWQgZm9yCiAgICAjICAgIHRoaXMgZGF0ZQogICAgaWYgKCAkRGF0YXtXb3JraW5nVW5pdHN9ICkgewogICAgICAgIG15ICRXb3JraW5nVW5pdHNDb3VudCA9IEB7ICREYXRhe1dvcmtpbmdVbml0c30gfTsKICAgICAgICBpZiAoICRXb3JraW5nVW5pdHNDb3VudCA+ICRQYXJhbXtSZWNvcmRzTnVtYmVyfSApIHsKICAgICAgICAgICAgJFBhcmFte1JlY29yZHNOdW1iZXJ9ID0gJFdvcmtpbmdVbml0c0NvdW50OwogICAgICAgIH0KICAgIH0KCiAgICBteSAlRnJvbnRlbmQ7CgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpJbnB1dEhvdXJzV2l0aG91dFN0YXJ0RW5kVGltZScpICkgewogICAgICAgICRQYXJhbXtQZXJpb2RCbG9ja30gICA9ICdVbml0SW5wdXRQZXJpb2QnOwogICAgICAgICRGcm9udGVuZHtQZXJpb2ROb3RlfSA9ICcqJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtQZXJpb2RCbG9ja30gICA9ICdVbml0UGVyaW9kV2l0aG91dElucHV0JzsKICAgICAgICAkRnJvbnRlbmR7UGVyaW9kTm90ZX0gPSAnJzsKICAgIH0KCiAgICBpZiAoICREYXRlVGltZU9iamVjdEN1cnJlbnQtPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEdpdmVuICkgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VuaXRCbG9jaycsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgc2ljaywgbGVhdmUgZGF5IGFuZCBvdmVydGltZQogICAgJFBhcmFte1NpY2t9ICAgICA9ICREYXRhe1NpY2t9ICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKICAgICRQYXJhbXtMZWF2ZURheX0gPSAkRGF0YXtMZWF2ZURheX0gPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ID0gJERhdGF7T3ZlcnRpbWV9ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwoKICAgICRQYXJhbXtUb3RhbH0gPSAkRGF0YXtUb3RhbH07CgogICAgIyBzZXQgYWN0aW9uIGxpc3QgYW5kIHJlbGF0ZWQgY29uc3RyYWludHMKICAgICMgZ2VuZXJhdGUgYSBKYXZhU2NyaXB0IEFycmF5IHdoaWNoIHdpbGwgYmUgb3V0cHV0IHRvIHRoZSB0ZW1wbGF0ZQogICAgbXkgQEFjdGlvbklEcyA9IHNvcnQgeyAkQWN0aW9uTGlzdHskYX0gY21wICRBY3Rpb25MaXN0eyRifSB9IGtleXMgJUFjdGlvbkxpc3Q7CiAgICBteSBASlNBY3Rpb25zOwogICAgZm9yIG15ICRBY3Rpb25JRCAoQEFjdGlvbklEcykgewogICAgICAgIHB1c2ggQEpTQWN0aW9ucywgWwogICAgICAgICAgICAkQWN0aW9uSUQsCiAgICAgICAgICAgICRBY3Rpb25MaXN0eyRBY3Rpb25JRH0KICAgICAgICBdOwogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnQWN0aW9uTGlzdCcsCiAgICAgICAgVmFsdWUgPT4gXEBKU0FjdGlvbnMKICAgICk7CgogICAgbXkgJEFjdGlvbkxpc3RDb25zdHJhaW50cyA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkFjdGlvbkxpc3RDb25zdHJhaW50cycpOwogICAgbXkgQEpTQWN0aW9uTGlzdENvbnN0cmFpbnRzOwogICAgZm9yIG15ICRQcm9qZWN0TmFtZVJlZ0V4cCAoIHNvcnQga2V5cyAleyRBY3Rpb25MaXN0Q29uc3RyYWludHN9ICkgewogICAgICAgIG15ICRBY3Rpb25OYW1lUmVnRXhwID0gJEFjdGlvbkxpc3RDb25zdHJhaW50cy0+eyRQcm9qZWN0TmFtZVJlZ0V4cH07CiAgICAgICAgc3soWyciXFxdKX17XFwkMX1zbXhnIGZvciAoICRQcm9qZWN0TmFtZVJlZ0V4cCwgJEFjdGlvbk5hbWVSZWdFeHAgKTsKICAgICAgICBwdXNoIEBKU0FjdGlvbkxpc3RDb25zdHJhaW50cywgWwogICAgICAgICAgICAkUHJvamVjdE5hbWVSZWdFeHAsCiAgICAgICAgICAgICRBY3Rpb25OYW1lUmVnRXhwCiAgICAgICAgXTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0FjdGlvbkxpc3RDb25zdHJhaW50cycsCiAgICAgICAgVmFsdWUgPT4gXEBKU0FjdGlvbkxpc3RDb25zdHJhaW50cwogICAgKTsKCiAgICAjIGJ1aWxkIGEgd29ya2luZyB1bml0IGFycmF5CiAgICBteSBAVW5pdHMgPSAodW5kZWYpOwogICAgaWYgKCAkRGF0YXtXb3JraW5nVW5pdHN9ICkgewogICAgICAgIHB1c2ggQFVuaXRzLCBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH07CiAgICB9CgogICAgJEVycm9ySW5kZXggPSAwOwoKICAgICMgYnVpbGQgdW5pdHMKICAgIGZvciBteSAkSUQgKCAxIC4uICRQYXJhbXtSZWNvcmRzTnVtYmVyfSApIHsKICAgICAgICAkUGFyYW17SUR9ID0gJElEOwogICAgICAgIG15ICRVbml0UmVmICAgPSAkVW5pdHNbJElEXTsKICAgICAgICBteSAkU2hvd0Vycm9yID0gMDsKCiAgICAgICAgaWYgKCAhJFVuaXRSZWYgKSB7CiAgICAgICAgICAgICRFcnJvckluZGV4Kys7CiAgICAgICAgICAgICRTaG93RXJyb3IgPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZGF0YSBvZiBwcm9qZWN0cwogICAgICAgIG15ICRQcm9qZWN0TGlzdCA9ICRTZWxmLT5fUHJvamVjdExpc3QoCiAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgICAgICB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQcm9qZWN0SUR9CiAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICApOwoKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQcm9qZWN0SUR9CiAgICAgICAgICAgIHx8ICcnOwogICAgICAgICRQYXJhbXtQcm9qZWN0TmFtZX0gPSAnJzsKCiAgICAgICAgIyBzZXQgY29tbW9uIHBhcmFtcyBmb3IgcHJvamVjdCBzZWxlY3Rpb24KICAgICAgICBteSAlUHJvamVjdE9wdGlvblBhcmFtcyA9ICgKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gIlByb2plY3RJRFskSURdIiwKICAgICAgICAgICAgSUQgICAgICAgICAgPT4gIlByb2plY3RJRCRJRCIsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0IFByb2plY3RTZWxlY3Rpb24gJwogICAgICAgICAgICAgICAgLiAoICRFcnJvcnN7JEVycm9ySW5kZXh9e1Byb2plY3RJREludmFsaWR9IHx8ICcnICksCiAgICAgICAgICAgIE9uQ2hhbmdlID0+ICJUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuRmlsbEFjdGlvbkxpc3QoJElEKTsiLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlByb2plY3QiKSwKICAgICAgICApOwoKICAgICAgICBteSAkRW5hYmxlQXV0b0NvbXBsZXRpb24gPSAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIpIHx8IDA7CiAgICAgICAgbXkgJENsYXNzID0gJEVuYWJsZUF1dG9Db21wbGV0aW9uID8gJyBNb2Rlcm5pemUnIDogJyc7CgogICAgICAgICMgc2V0IHBhcmFtcyBmb3IgbW9kZXJuIGlucHV0cwogICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0NsYXNzfSAuPSAkQ2xhc3M7CgogICAgICAgIGlmICggJEVuYWJsZUF1dG9Db21wbGV0aW9uICYmICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciIpICkgewoKICAgICAgICAgICAgIyBhZGQgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RGF0YX0gICAgPSAkUHJvamVjdExpc3QtPntBbGxQcm9qZWN0c307CiAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0ZpbHRlcnN9ID0gewogICAgICAgICAgICAgICAgTGFzdFByb2plY3RzID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYXN0IFByb2plY3RzJyksCiAgICAgICAgICAgICAgICAgICAgVmFsdWVzID0+ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgIyBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLCBleHBhbmQgZmlsdGVyIGRpYWxvZwogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkUHJvamVjdExpc3QtPntMYXN0UHJvamVjdHN9IH0gPiAxICkgewogICAgICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RXhwYW5kRmlsdGVyc30gPSAxOwoKICAgICAgICAgICAgICAgICMgbWFrZSB0aGUgZmlsdGVyIGFjdGl2ZSBieSBkZWZhdWx0IGlmICdBY3RpdmVGaWx0ZXInIGlzIGVuYWJsZWQKICAgICAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6QWN0aXZlRmlsdGVyIikgKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RmlsdGVyc30tPntMYXN0UHJvamVjdHN9LT57QWN0aXZlfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICMgc2V0IHBhcmFtcyBmb3IgdHJhZGl0aW9uYWwgc2VsZWN0cyAoYW5kIG1vZGVybiBpbnB1dCBmaWVsZHMgaWYgZmlsdGVyIGlzIG5vdCB1c2VkKQogICAgICAgICAgICBteSBAUHJvamVjdHMgPSAoIEB7ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30gfSwgQHsgJFByb2plY3RMaXN0LT57QWxsUHJvamVjdHN9IH0gKTsKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RGF0YX0gPSBcQFByb2plY3RzOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBwcm9qZWN0cyBzZWxlY3QKICAgICAgICAkRnJvbnRlbmR7UHJvamVjdE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgJVByb2plY3RPcHRpb25QYXJhbXMsCiAgICAgICAgKTsKCiAgICAgICAgIyBhY3Rpb24gbGlzdCBpbml0aWFsbHkgb25seSBjb250YWlucyBlbXB0eSBhbmQgc2VsZWN0ZWQgZWxlbWVudCBhcyB3ZWxsIGFzIGVsZW1lbnRzCiAgICAgICAgIyBjb25maWd1cmVkIGZvciBzZWxlY3RlZCBwcm9qZWN0CiAgICAgICAgIyBpZiBubyBjb25zdHJhaW50cyBhcmUgY29uZmlndXJlZCwgYWxsIGFjdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQKICAgICAgICBteSAkQWN0aW9uRGF0YSA9ICRTZWxmLT5fQWN0aW9uTGlzdENvbnN0cmFpbnRzKAogICAgICAgICAgICBQcm9qZWN0SUQgICAgICAgICAgICAgPT4gJFVuaXRSZWYtPntQcm9qZWN0SUR9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9LT57UHJvamVjdElEfSwKICAgICAgICAgICAgUHJvamVjdExpc3QgICAgICAgICAgID0+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+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte092ZXJ0aW1lfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdPdmVydGltZU1lc3NhZ2UnOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICREYXRlVGltZU9iamVjdEN1cnJlbnQtPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEdpdmVuICkgKSB7CiAgICAgICAgJFBhcmFte1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgKCAkUGFyYW17VG90YWx9IHx8IDAgKSApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CiAgICB9CgogICAgIyB2YWxpZGl0eSBjaGVja3Mgc3RhcnQKICAgIG15ICRFcnJvck5vdGU7CiAgICBpZiAoICRQYXJhbXtUb3RhbH0gJiYgJFBhcmFte1RvdGFsfSA+IDI0ICkgewogICAgICAgICRFcnJvck5vdGUgPSBUcmFuc2xhdGFibGUoJ0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzIScpOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfSAmJiAkUGFyYW17VG90YWx9ICYmICRQYXJhbXtUb3RhbH0gPiAxNiApIHsKICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdNb3JlMTZIb3Vyc01lc3NhZ2UnOwogICAgfQogICAgaWYgKCRFcnJvck5vdGUpIHsKICAgICAgICBpZiAoCiAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkUGFyYW17QmxvY2tOYW1lfSAmJiAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgICAgICBLZXkgICA9PiAnQmxvY2tOYW1lJywKICAgICAgICAgICAgVmFsdWUgPT4gJFBhcmFte0Jsb2NrTmFtZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17RGF0ZX0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgJVBhcmFtLAogICAgICAgIFZhbGlkYXRlID0+IDEsCiAgICAgICAgUHJlZml4ICAgPT4gJycsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICApOwoKICAgIGlmICggJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEFsbG93ZWQgKSA8IDAgKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyAkUGFyYW17WWVhcn0gfXsgJFBhcmFte01vbnRofSB9eyAkUGFyYW17RGF5fSB9CiAgICAgICAgICAgICYmICEkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWFkb25seScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGUoCiAgICAgICAgICAgICAgICAgICAgICAgICdUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cwogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5c0xpc3Q7CiAgICAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkWWVhcklEICggc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX0gfSApIHsKICAgICAgICBmb3IgbXkgJE1vbnRoSUQgKCBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXskWWVhcklEfSB9ICkgewogICAgICAgICAgICBmb3IgbXkgJERheUlEICgKICAgICAgICAgICAgICAgIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9eyRNb250aElEfSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyIkWWVhcklELSRNb250aElELSREYXlJRCJ9ID0gIiRZZWFySUQtJE1vbnRoSUQtJERheUlEIjsKICAgICAgICAgICAgICAgICRQYXJhbXtJbmNvbXBsZXRlfSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IHRleHQsIGlmIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFyZSBhdmFpbGFibGUKICAgIGlmICggJFBhcmFte0luY29tcGxldGV9ICkgewoKICAgICAgICAjIGlmIG1hc3MgZW50cnkgb3B0aW9uIGlzIGVuYWJsZWQsIHNob3cgbGlzdCBvZiB3b3JraW5nIGRheXMKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlciIpICkgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnknLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRXb3JraW5nRGF5cyAoIHNvcnQga2V5cyAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCApIHsKCiAgICAgICAgICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAvLS8sICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30gKTsKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdFdvcmtpbmdEYXkgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5U2luZ2xlRGF5JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSAgICA9PiAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHskV29ya2luZ0RheXN9LAogICAgICAgICAgICAgICAgICAgICAgICBEYXRlSFIgID0+ICREYXRlVGltZU9iamVjdFdvcmtpbmdEYXktPlRvU3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgIFdlZWtkYXkgPT4gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXlPZldlZWtUb05hbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgPT4gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXlPZldlZWsoICRZZWFyLCAkTW9udGgsICREYXkgKQogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBzaG93IGluY29tcGxldGUgd29ya2luZyBkYXlzIGFzIGEgZHJvcC1kb3duCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIGN1cnJlbnQgZGF5IGlzIGluY29tcGxldGUKICAgICAgICAgICAgIyBpZiB5ZXMsIHNlbGVjdCB0aGUgY3VycmVudCBkYXkgaW4gdGhlIGRyb3AtZG93bgogICAgICAgICAgICAjIG90aGVyd2lzZSBzZWxlY3QgdGhlIGVtcHR5IGVsZW1lbnQKICAgICAgICAgICAgbXkgJFNlbGVjdGVkSUQ7CgogICAgICAgICAgICBpZiAoICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyIkUGFyYW17WWVhcn0tJFBhcmFte01vbnRofS0kUGFyYW17RGF5fSJ9ICkgewogICAgICAgICAgICAgICAgJFNlbGVjdGVkSUQgPSAiJFBhcmFte1llYXJ9LSRQYXJhbXtNb250aH0tJFBhcmFte0RheX0iOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkSW5jb21wbGVXb3JraW5nRGF5c1NlbGVjdCA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkU2VsZWN0ZWRJRCwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCIsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIFRpdGxlID0+CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyIpLAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luY29tcGxldGVXb3JraW5nRGF5cycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBJbmNvbXBsZXRlV29ya2luZ0RheXNTZWxlY3QgPT4gJEluY29tcGxlV29ya2luZ0RheXNTZWxlY3QsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgbXkgJFZhY2F0aW9uQ2hlY2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICk7CgogICAgJFBhcmFte1dlZWtkYXl9CiAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKS0+RGF5T2ZXZWVrKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9ICk7CgogICAgIyBnZXQgd29ya2luZyBkYXlzIG9mIHRoZSB1c2VyJ3MgY2FsZW5kYXIKICAgIG15ICRDYWxlbmRhck5hbWUgPSAnVGltZVdvcmtpbmdIb3Vycyc7CiAgICAkQ2FsZW5kYXJOYW1lIC49ICRVc2VyRGF0YXtDYWxlbmRhcn0gPyAiOjpDYWxlbmRhciRVc2VyRGF0YXtDYWxlbmRhcn0iIDogJyc7CiAgICBteSAkQ2FsZW5kYXJXb3JraW5nSG91cnMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJENhbGVuZGFyTmFtZSk7CgogICAgIyBzaG93ICJvdGhlciB0aW1lcyIgYmxvY2ssIGlmIG5lY2Vzc2FyeQogICAgaWYgKAogICAgICAgIEB7ICRDYWxlbmRhcldvcmtpbmdIb3Vycy0+eyAkV2Vla2RheUFycmF5WyAkUGFyYW17V2Vla2RheX0gLSAxIF0gfSB9CiAgICAgICAgJiYgISRWYWNhdGlvbkNoZWNrCiAgICAgICAgKQogICAgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdGhlclRpbWVzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte1dlZWtkYXlfdG9fVGV4dH0gPSAkV2Vla2RheUFycmF5WyAkUGFyYW17V2Vla2RheX0gLSAxIF07CgogICAgIyBpbnRlZ3JhdGUgdGhlIGhhbmRsaW5nIGZvciByZXF1aXJlZCByZW1hcmtzIGluIHJlbGF0aW9uIHRvIHByb2plY3RzCiAgICAkUGFyYW17UmVtYXJrUmVnRXhwfSA9ICRTZWxmLT5fUHJvamVjdDJSZW1hcmtSZWdFeHAoKTsKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnUmVtYXJrUmVnRXhwJywKICAgICAgICBWYWx1ZSA9PiAkUGFyYW17UmVtYXJrUmVnRXhwfSwKICAgICk7CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ0VkaXQnLAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICApOwoKICAgIGlmICggISRJbmNvbXBsZXRlV29ya2luZ0RheXN7RW5mb3JjZUluc2VydH0gKSB7CgogICAgICAgICMgc2hvdyBjcmVhdGUgcHJvamVjdCBsaW5rLCBpZiBhbGxvd2VkCiAgICAgICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ3JlYXRlUHJvamVjdCcsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICgkRXJyb3JOb3RlKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gICAgID0+ICRFcnJvck5vdGUsCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggZGVmaW5lZCAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gKQogICAgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnU3VjY2Vzc2Z1bCBpbnNlcnQhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgbWFzcyBlbnRyeSBub3RpZmljYXRpb24KICAgIGlmICggJFBhcmFte05vdGlmaWNhdGlvbn0gZXEgJ0Vycm9yJyApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJyksCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte05vdGlmaWNhdGlvbn0gZXEgJ1N1Y2Nlc3NmdWwnICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgbm90aWZpY2F0aW9uIGlmIHdyb25nIGRhdGUgd2FzIHNlbGVjdGVkCiAgICBpZiAoICRQYXJhbXtXcm9uZ0RhdGV9ICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nKSwKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICApOwogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnWWVhcicsCiAgICAgICAgVmFsdWUgPT4gJFBhcmFte1llYXJ9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnTW9udGgnLAogICAgICAgIFZhbHVlID0+ICRQYXJhbXtNb250aH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdEYXknLAogICAgICAgIFZhbHVlID0+ICRQYXJhbXtEYXl9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdFZGl0JywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVGcm9udGVuZCwKICAgICAgICB9LAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKCn0KCnN1YiBfRmlyc3RVc2VyUmVkaXJlY3QgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIEZvciBpbml0aWFsIHVzYWdlLCB0aGUgZmlyc3QgYWdlbnQgd2l0aCAncncnIHJpZ2h0cyB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gJ1NldHRpbmcnLiBUaGVuIHRoZXkgY2FuIGNvbmZpZ3VyZQogICAgIyAgIGluaXRpYWwgc2V0dGluZ3MgZm9yIHRoZSB0aW1lIGFjY291bnRpbmcgZmVhdHVyZS4KCiAgICAjIERlZmluZSBhY3Rpb24gYW5kIGdldCBpdHMgZnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbi4KICAgIG15ICRBY3Rpb24gPSAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnOwogICAgbXkgJENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRnJvbnRlbmQ6Ok1vZHVsZScpLT57JEFjdGlvbn07CgogICAgIyBHZXQgZ3JvdXAgbmFtZXMgZnJvbSBjb25maWcuCiAgICBteSBAR3JvdXBOYW1lcyA9IEB7ICRDb25maWctPntHcm91cH0gfHwgW10gfTsKCiAgICBteSAkUGVybWlzc2lvbiA9IDA7CgogICAgIyBJZiBhY2Nlc3MgaXMgcmVzdHJpY3RlZCwgYWxsb3cgYWNjZXNzIG9ubHkgaWYgdXNlciBoYXMgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMgaW4gY29uZmlndXJlZCBncm91cChzKS4KICAgIGlmIChAR3JvdXBOYW1lcykgewoKICAgICAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAgICAgIyBHZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgICAgICAgbXkgJUdyb3VwcyA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwoKICAgICAgICBHUk9VUDoKICAgICAgICBmb3IgbXkgJEdyb3VwTmFtZSAoQEdyb3VwTmFtZXMpIHsKICAgICAgICAgICAgbmV4dCBHUk9VUCBpZiAhJEdyb3VwTmFtZTsKCiAgICAgICAgICAgICMgR2V0IHRoZSBncm91cCBJRC4KICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgICAgICAgICAgR3JvdXAgPT4gJEdyb3VwTmFtZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBHUk9VUCBpZiAhJEdyb3VwSUQ7CgogICAgICAgICAgICAjIFN0b3AgY2hlY2tpbmcgaWYgbWVtYmVyc2hpcCBpbiBhdCBsZWFzdCBvbmUgZ3JvdXAgaXMgZm91bmQuCiAgICAgICAgICAgIGlmICggJEdyb3Vwc3skR3JvdXBJRH0gKSB7CiAgICAgICAgICAgICAgICAkUGVybWlzc2lvbiA9IDE7CiAgICAgICAgICAgICAgICBsYXN0IEdST1VQOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgT3RoZXJ3aXNlLCBhbHdheXMgYWxsb3cgYWNjZXNzLgogICAgZWxzZSB7CiAgICAgICAgJFBlcm1pc3Npb24gPSAxOwogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRBY3Rpb24iICkgaWYgJFBlcm1pc3Npb247CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgVHJhbnNsYXRhYmxlKCdObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJyksCiAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJyksCiAgICApOwp9CgpzdWIgX0FjdGlvbkxpc3QgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICBteSAlQWN0aW9uTGlzdDsKICAgIG15ICVBY3Rpb24gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKS0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAjIGdldCBhY3Rpb24gc2V0dGluZ3MKICAgIEFDVElPTklEOgogICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAlQWN0aW9uICkgewogICAgICAgIG5leHQgQUNUSU9OSUQgaWYgISRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb25TdGF0dXN9OwogICAgICAgIG5leHQgQUNUSU9OSUQgaWYgISRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb259OwogICAgICAgICRBY3Rpb25MaXN0eyRBY3Rpb25JRH0gPSAkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9ufTsKICAgIH0KICAgICRBY3Rpb25MaXN0eycnfSA9ICcnOwoKICAgIHJldHVybiAlQWN0aW9uTGlzdDsKfQoKc3ViIF9BY3Rpb25MaXN0Q29uc3RyYWludHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlTGlzdDsKICAgIGlmICggJFBhcmFte1Byb2plY3RJRH0gJiYga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdENvbnN0cmFpbnRzfSB9ICkgewogICAgICAgIG15ICRQcm9qZWN0TmFtZTsKCiAgICAgICAgUFJPSkVDVDoKICAgICAgICBmb3IgbXkgJFByb2plY3QgKCBAeyAkUGFyYW17UHJvamVjdExpc3R9LT57QWxsUHJvamVjdHN9IH0gKSB7CiAgICAgICAgICAgIGlmICggJFByb2plY3QtPntLZXl9IGVxICRQYXJhbXtQcm9qZWN0SUR9ICkgewogICAgICAgICAgICAgICAgJFByb2plY3ROYW1lID0gJFByb2plY3QtPntWYWx1ZX07CiAgICAgICAgICAgICAgICBsYXN0IFBST0pFQ1Q7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggZGVmaW5lZCgkUHJvamVjdE5hbWUpICkgewoKICAgICAgICAgICAgIyBsb29wIG92ZXIgYWN0aW9ucyB0byBmaW5kIG1hdGNoZXMgZm9yIGNvbmZpZ3VyZWQgcHJvamVjdAogICAgICAgICAgICAjIGFuZCBhY3Rpb24gcmVnLWV4cCBwYWlycwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0fSB9ICkgewoKICAgICAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lID0gJFBhcmFte0FjdGlvbkxpc3R9LT57JEFjdGlvbklEfTsKCiAgICAgICAgICAgICAgICBQUk9KRUNUTkFNRVJFR0VYUDoKICAgICAgICAgICAgICAgIGZvciBteSAkUHJvamVjdE5hbWVSZWdFeHAgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3RDb25zdHJhaW50c30gfSApIHsKICAgICAgICAgICAgICAgICAgICBteSAkQWN0aW9uTmFtZVJlZ0V4cCA9ICRQYXJhbXtBY3Rpb25MaXN0Q29uc3RyYWludHN9LT57JFByb2plY3ROYW1lUmVnRXhwfTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRQcm9qZWN0TmFtZSA9fiBteyRQcm9qZWN0TmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJEFjdGlvbk5hbWUgPX4gbXskQWN0aW9uTmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0IFBST0pFQ1ROQU1FUkVHRVhQOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFsbCBhdmFpbGFibGUgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICBpZiAoICFrZXlzICVMaXN0ICkgewogICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3R9IH0gKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lID0gJFBhcmFte0FjdGlvbkxpc3R9LT57JEFjdGlvbklEfTsKICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVMaXN0Owp9CgpzdWIgX1Byb2plY3RMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgcHJvamVjdCBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgaWYgKCAhJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9ICkgewoKICAgICAgICAjIGdldCB0aGUgbGFzdCBwcm9qZWN0cwogICAgICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgZmF2b3JpdGVzCiAgICAgICAgJXsgJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9IH0gPSBtYXAgeyAkXyA9PiAxIH0gQExhc3RQcm9qZWN0czsKICAgIH0KCiAgICBteSBATGFzdFByb2plY3RzID0gKAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJycsCiAgICAgICAgICAgIFZhbHVlID0+ICctJywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCB0aGUgc2VwYXJhdG9yCiAgICBQUk9KRUNUSUQ6CiAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICBrZXlzICV7ICRQcm9qZWN0e1Byb2plY3R9IH0KICAgICAgICApCiAgICB7CiAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgISRTZWxmLT57TGFzdFByb2plY3RzUmVmfS0+eyRQcm9qZWN0SUR9OwogICAgICAgIG15ICVIYXNoID0gKAogICAgICAgICAgICBLZXkgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICBWYWx1ZSA9PiAkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfSwKICAgICAgICApOwogICAgICAgIHB1c2ggQExhc3RQcm9qZWN0cywgXCVIYXNoOwogICAgfQoKICAgIEBMYXN0UHJvamVjdHMgPSAkU2VsZi0+X1Byb2plY3RMaXN0Q29uc3RyYWludHMoCiAgICAgICAgTGlzdCAgICAgICA9PiBcQExhc3RQcm9qZWN0cywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTZWxlY3RlZElEfSB8fCAnJywKICAgICk7CgogICAgbXkgQEFsbFByb2plY3RzOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBpZiBBdXRvQ29tcGxldGlvbiBpcyBkaXNhYmxlZAogICAgIyBpbiB0aGlzIGNhc2UgYSBzZXBhcmF0b3IgaXMgbmVlZGVkIGJldHdlZW4gdHdvIGxpc3RzIG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwpCiAgICBpZiAoCiAgICAgICAgISRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIikKICAgICAgICB8fCAhJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIikKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCBzY2FsYXIgQExhc3RQcm9qZWN0cyA+IDEgKSB7CgogICAgICAgICAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICAgICAgICAgIyBhZGQgbGFzdCBwcm9qZWN0cyBzZXBhcmF0b3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdAogICAgICAgICAgICBteSAkTGFzdFByb2plY3RzU3RyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYXN0IFNlbGVjdGVkIFByb2plY3RzJyk7CgogICAgICAgICAgICB1bnNoaWZ0IEBMYXN0UHJvamVjdHMsIHsKICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICcwJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICItLS0kTGFzdFByb2plY3RzU3RyLS0tIiwKICAgICAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAjIGFkZCBhbGwgcHJvamVjdHMgc2VwYXJhdG9yIHJpZ2h0IGFmdGVyIHRoZSBsYXN0IHNlbGVjdGVkIHByb2plY3RzIGxpc3QKICAgICAgICAgICAgbXkgJEFsbFByb2plY3RzU3RyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdBbGwgUHJvamVjdHMnKTsKCiAgICAgICAgICAgIHB1c2ggQExhc3RQcm9qZWN0cywgewogICAgICAgICAgICAgICAgS2V5ICAgICAgPT4gJzAnLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gIi0tLSRBbGxQcm9qZWN0c1N0ci0tLSIsCiAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIEBBbGxQcm9qZWN0cyA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJycsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAnLScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFkZCBhbGwgYWxsb3dlZCBwcm9qZWN0cyB0byB0aGUgbGlzdAogICAgUFJPSkVDVElEOgogICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgKQogICAgewogICAgICAgIG5leHQgUFJPSkVDVElEIGlmICEkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfTsKICAgICAgICBteSAlSGFzaCA9ICgKICAgICAgICAgICAgS2V5ICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgVmFsdWUgPT4gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRQYXJhbXtTZWxlY3RlZElEfSAmJiAkUGFyYW17U2VsZWN0ZWRJRH0gZXEgJFByb2plY3RJRCApIHsKICAgICAgICAgICAgJEhhc2h7U2VsZWN0ZWR9ID0gMTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQEFsbFByb2plY3RzLCBcJUhhc2g7CiAgICB9CgogICAgQEFsbFByb2plY3RzID0gJFNlbGYtPl9Qcm9qZWN0TGlzdENvbnN0cmFpbnRzKAogICAgICAgIExpc3QgICAgICAgPT4gXEBBbGxQcm9qZWN0cywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTZWxlY3RlZElEfSB8fCAnJywKICAgICk7CgogICAgbXkgJVByb2plY3RzID0gKAogICAgICAgIExhc3RQcm9qZWN0cyA9PiBcQExhc3RQcm9qZWN0cywKICAgICAgICBBbGxQcm9qZWN0cyAgPT4gXEBBbGxQcm9qZWN0cywKICAgICk7CgogICAgcmV0dXJuIFwlUHJvamVjdHM7Cn0KCnN1YiBfUHJvamVjdExpc3RDb25zdHJhaW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBMaXN0OwogICAgbXkgJFByb2plY3RDb3VudCAgICAgICAgICAgPSAwOwogICAgbXkgJFByb2plY3RMaXN0Q29uc3RyYWludHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpQcm9qZWN0TGlzdENvbnN0cmFpbnRzJyk7CgogICAgaWYgKCBrZXlzICV7JFByb2plY3RMaXN0Q29uc3RyYWludHN9ICkgewoKICAgICAgICAjIGdldCBncm91cHMgb2YgY3VycmVudCB1c2VyCiAgICAgICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICk7CiAgICAgICAgJUdyb3VwcyA9IG1hcCB7ICRHcm91cHN7JF99ID0+IDEgfSBrZXlzICVHcm91cHM7CgogICAgICAgICMgZ2V0IHByb2plY3QgbGlzdCBjb25zdHJhaW50cwogICAgICAgIG15ICVQcm9qZWN0UmVnZXg7CiAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKCBzb3J0IGtleXMgJXskUHJvamVjdExpc3RDb25zdHJhaW50c30gKSB7CiAgICAgICAgICAgIGZvciBteSAkUHJvamVjdEdyb3VwICggc3BsaXQgLyxccyovLCAkUHJvamVjdExpc3RDb25zdHJhaW50cy0+eyRQcm9qZWN0UmVnZXh9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkR3JvdXBzeyRQcm9qZWN0R3JvdXB9ICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0UmVnZXh7JFByb2plY3RSZWdleH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG15IEBQcm9qZWN0UmVnZXggPSBrZXlzICVQcm9qZWN0UmVnZXg7CgogICAgICAgICMgcmVkdWNlIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gY29uZmlndXJhdGlvbgogICAgICAgIGlmICggcmVmKCAkUGFyYW17TGlzdH0gKSAmJiBAUHJvamVjdFJlZ2V4ICkgewoKICAgICAgICAgICAgbXkgJEVsZW1lbnRDb3VudCA9IDA7CgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3QgKCBAeyAkUGFyYW17TGlzdH0gfSApIHsKICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0TmFtZSA9ICRQcm9qZWN0LT57VmFsdWV9OwoKICAgICAgICAgICAgICAgICMgZW1wdHkgZmlyc3QgZWxlbWVudCwgbGFzdCBwcm9qZWN0cyBzZXBhcmF0b3IgYW5kIGN1cnJlbnRseSBzZWxlY3RlZCBwcm9qZWN0CiAgICAgICAgICAgICAgICBpZiAoICEkRWxlbWVudENvdW50IHx8ICEkUHJvamVjdC0+e0tleX0gfHwgJFByb2plY3QtPntLZXl9IGVxICRQYXJhbXtTZWxlY3RlZElEfSApIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCAkUHJvamVjdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIFBST0pFQ1RSRUdFWFA6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKEBQcm9qZWN0UmVnZXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHJvamVjdE5hbWUgPX4gbXskUHJvamVjdFJlZ2V4fXNteCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsICRQcm9qZWN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFByb2plY3RDb3VudCsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUUkVHRVhQOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJEVsZW1lbnRDb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZ1bGwgcHJvamVjdCBsaXN0IGlmIGNvbnN0cmFpbnRzIHJlc3VsdGVkIGluIGVtcHR5IHByb2plY3QgbGlzdCBvciBpZiBjb25zdHJhaW50cyBhcmVuJ3QKICAgICMgY29uZmlndXJlZCAocG9zc2libGUgbWlzY29uZmlndXJhdGlvbikKICAgIGlmICggISRQcm9qZWN0Q291bnQgKSB7CiAgICAgICAgQExpc3QgPSBAeyAkUGFyYW17TGlzdH0gfTsKICAgIH0KCiAgICByZXR1cm4gQExpc3Q7Cn0KCiMgaW50ZWdyYXRlIHRoZSBoYW5kbGluZyBmb3IgcmVxdWlyZWQgcmVtYXJrcyBpbiByZWxhdGlvbiB0byBwcm9qZWN0cwoKc3ViIF9Qcm9qZWN0MlJlbWFya1JlZ0V4cCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15IEBQcm9qZWN0czJSZW1hcmsgPSAoKTsKICAgIG15ICVQcm9qZWN0RGF0YSAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKS0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICByZXR1cm4gJycgaWYgISRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlByb2plY3QyUmVtYXJrUmVnRXhwJyk7CgogICAgbXkgJFByb2plY3QyUmVtYXJrUmVnRXhwID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAnKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAleyAkUHJvamVjdERhdGF7UHJvamVjdH0gfSApIHsKICAgICAgICBpZiAoICRQcm9qZWN0RGF0YXtQcm9qZWN0fXskUHJvamVjdElEfSA9fiBteyRQcm9qZWN0MlJlbWFya1JlZ0V4cH1zbXggKSB7CiAgICAgICAgICAgIHB1c2ggQFByb2plY3RzMlJlbWFyaywgJFByb2plY3RJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGpvaW4gJ3wnLCBAUHJvamVjdHMyUmVtYXJrOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntUaW1lWm9uZX0gPSAkUGFyYW17VGltZVpvbmV9CiAgICAgICAgfHwgJFBhcmFte1VzZXJUaW1lWm9uZX0KICAgICAgICB8fCAkRGF0ZVRpbWVPYmplY3QtPk9UUlNUaW1lWm9uZUdldCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcgYWJvdXQgdGhlIHVzZXJzIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIERheSBNb250aCBZZWFyIFVzZXJJRCBQcm9qZWN0U3RhdHVzU2hvdykpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CiAgICAkUGFyYW17QWN0aW9ufSA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFBhcmFte0FjdGlvbn0gPSAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnOwogICAgfQogICAgaWYgKCAkUGFyYW17VXNlcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VXNlcn0gPSAkU2hvd25Vc2Vyc3sgJFBhcmFte1VzZXJJRH0gfTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICAjIGNyZWF0ZSBvbmUgYmFzZSBvYmplY3QKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0TmV4dCA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5DbG9uZSgpOwogICAgbXkgJERhdGVUaW1lT2JqZWN0UHJldiA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5DbG9uZSgpOwogICAgbXkgJERhdGVQYXJhbXNDdXJyZW50ICA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5HZXQoKTsKCiAgICAjIGNhbGN1bGF0ZSB0aGUgbmV4dCBtb250aAogICAgJERhdGVUaW1lT2JqZWN0TmV4dC0+QWRkKAogICAgICAgIE1vbnRocyA9PiAxLAogICAgKTsKCiAgICBteSAkRGF0ZVBhcmFtc05leHQgPSAkRGF0ZVRpbWVPYmplY3ROZXh0LT5HZXQoKTsKCiAgICAkUGFyYW17WWVhck5leHR9ICA9ICREYXRlUGFyYW1zTmV4dC0+e1llYXJ9OwogICAgJFBhcmFte01vbnRoTmV4dH0gPSAkRGF0ZVBhcmFtc05leHQtPntNb250aH07CiAgICAkUGFyYW17RGF5TmV4dH0gICA9ICREYXRlUGFyYW1zTmV4dC0+e0RheX07CgogICAgIyBjYWxjdWxhdGUgdGhlIG5leHQgbW9udGgKICAgICREYXRlVGltZU9iamVjdFByZXYtPlN1YnRyYWN0KAogICAgICAgIE1vbnRocyA9PiAxLAogICAgKTsKCiAgICBteSAkRGF0ZVBhcmFtc0JhY2sgPSAkRGF0ZVRpbWVPYmplY3RQcmV2LT5HZXQoKTsKICAgICRQYXJhbXtZZWFyQmFja30gID0gJERhdGVQYXJhbXNCYWNrLT57WWVhcn07CiAgICAkUGFyYW17TW9udGhCYWNrfSA9ICREYXRlUGFyYW1zQmFjay0+e01vbnRofTsKICAgICRQYXJhbXtEYXlCYWNrfSAgID0gJERhdGVQYXJhbXNCYWNrLT57RGF5fTsKCiAgICAjIE92ZXJ2aWV3IHBlciBkYXkKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5MYXN0RGF5T2ZNb250aEdldCgpOwogICAgbXkgJERheXNPZk1vbnRoICAgID0gJExhc3REYXlPZk1vbnRoLT57RGF5fTsKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJERheSAoIDEgLi4gJERheXNPZk1vbnRoICkgewogICAgICAgICRQYXJhbXtEYXl9ID0gc3ByaW50ZiggIiUwMmQiLCAkRGF5ICk7CgogICAgICAgICRQYXJhbXtXZWVrZGF5fSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF5T2ZXZWVrKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9ICk7CgogICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgIENhbGVuZGFyID0+ICRVc2VyRGF0YXtDYWxlbmRhcn0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERhdGUgPSBzcHJpbnRmKCAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICREYXkgKTsKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3RTdGFydCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgU3RyaW5nID0+ICREYXRlIC4gJyAwMDowMDowMCcsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBteSAkRGF5U3RhcnRUaW1lID0gJERhdGVUaW1lT2JqZWN0U3RhcnQtPlRvRXBvY2goKTsKCiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0U3RvcCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgU3RyaW5nID0+ICREYXRlIC4gJyAyMzo1OTo1OScsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBteSAkRGF5U3RvcFRpbWUgPSAkRGF0ZVRpbWVPYmplY3RTdG9wLT5Ub0Vwb2NoKCk7CgogICAgICAgICMgYWRkIHRpbWUgem9uZSB0byBjYWxjdWxhdGlvbgogICAgICAgIG15ICRVc2VyQ2FsZW5kYXIgPSAkVXNlckRhdGF7Q2FsZW5kYXJ9IHx8ICcnOwogICAgICAgIG15ICRab25lID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICRVc2VyQ2FsZW5kYXIgKTsKICAgICAgICBpZiAoJFpvbmUpIHsKICAgICAgICAgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgJERheVN0b3BUaW1lICA9ICREYXlTdG9wVGltZSAtICRab25lU2Vjb25kczsKICAgICAgICB9CgogICAgICAgIG15ICRUaGlzRGF5V29ya2luZ1RpbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgU3RvcFRpbWUgID0+ICREYXlTdG9wVGltZSwKICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRVc2VyQ2FsZW5kYXIsCiAgICAgICAgKSB8fCAnMCc7CgogICAgICAgIGlmICggJFBhcmFte1llYXJ9IGVxICRZZWFyICYmICRQYXJhbXtNb250aH0gZXEgJE1vbnRoICYmICRDdXJyZW50RGF5IGVxICREYXkgKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gPSAnQWN0aXZlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCRWYWNhdGlvbkNoZWNrKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gICA9ICdWYWNhdGlvbic7CiAgICAgICAgICAgICRQYXJhbXtDb21tZW50fSA9ICRWYWNhdGlvbkNoZWNrOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJFRoaXNEYXlXb3JraW5nVGltZSkgewogICAgICAgICAgICAkUGFyYW17Q2xhc3N9ID0gJ1dvcmtpbmdEYXknOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSA9ICdOb25Xb3JraW5nRGF5JzsKICAgICAgICB9CgogICAgICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17Q29tbWVudH0gPSAkRGF0YXtTaWNrfQogICAgICAgICAgICA/IFRyYW5zbGF0YWJsZSgnU2ljayBsZWF2ZScpCiAgICAgICAgICAgIDogJERhdGF7TGVhdmVEYXl9ID8gVHJhbnNsYXRhYmxlKCdPbiB2YWNhdGlvbicpCiAgICAgICAgICAgIDogJERhdGF7T3ZlcnRpbWV9ID8gVHJhbnNsYXRhYmxlKCdPbiBvdmVydGltZSBsZWF2ZScpCiAgICAgICAgICAgIDogICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICRQYXJhbXtXb3JraW5nSG91cnN9ID0gJERhdGF7VG90YWx9ID8gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSA6ICcnOwoKICAgICAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRQYXJhbXtDb21tZW50fSA9ICcnOwogICAgfQoKICAgIG15ICVVc2VyUmVwb3J0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyUmVwb3J0aW5nKAogICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKICAgIGZvciBteSAkUmVwb3J0RWxlbWVudCAoCiAgICAgICAgcXcoVGFyZ2V0U3RhdGUgVGFyZ2V0U3RhdGVUb3RhbCBXb3JraW5nSG91cnNUb3RhbCBXb3JraW5nSG91cnMKICAgICAgICBPdmVydGltZSBPdmVydGltZVRvdGFsIE92ZXJ0aW1lVW50aWwgTGVhdmVEYXkgTGVhdmVEYXlUb3RhbAogICAgICAgIExlYXZlRGF5UmVtYWluaW5nIFNpY2sgU2lja1RvdGFsIFNpY2tSZW1haW5pbmcpCiAgICAgICAgKQogICAgewogICAgICAgICRVc2VyUmVwb3J0eyAkUGFyYW17VXNlcklEfSB9eyRSZXBvcnRFbGVtZW50fSB8fD0gMDsKICAgICAgICAkUGFyYW17JFJlcG9ydEVsZW1lbnR9ID0gc3ByaW50ZiggIiUuMmYiLCAkVXNlclJlcG9ydHsgJFBhcmFte1VzZXJJRH0gfXskUmVwb3J0RWxlbWVudH0gKTsKICAgIH0KCiAgICBpZiAoICRVc2VyRGF0YXtTaG93T3ZlcnRpbWV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydGltZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgT3ZlcnZpZXcgcGVyIHByb2plY3QgYW5kIGFjdGlvbgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJVByb2plY3REYXRhICkgKSB7CgogICAgICAgICMgc2hvdyB0aGUgcmVwb3J0IHNvcnQgYnkgcHJvamVjdHMKICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IHx8ICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ3ZhbGlkJyApIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICdhbGwnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgKSB7CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gPSAndmFsaWQnOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte1Nob3dQcm9qZWN0c30gPSAnU2hvdyAnIC4gJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSAuICcgcHJvamVjdHMnOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdFRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwoKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgICAgICBzb3J0IHsgJFByb2plY3REYXRheyRhfXtOYW1lfSBjbXAgJFByb2plY3REYXRheyRifXtOYW1lfSB9IGtleXMgJVByb2plY3REYXRhCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRQcm9qZWN0UmVmID0gJFByb2plY3REYXRheyRQcm9qZWN0SUR9OwogICAgICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICRQcm9qZWN0UmVmLT57QWN0aW9uc307CgogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gPSAkUHJvamVjdFJlZi0+e1N0YXR1c30gPyAnJyA6ICdwYXNzaXYnOwoKICAgICAgICAgICAgbXkgJFRvdGFsICAgICAgPSAwOwogICAgICAgICAgICBteSAkVG90YWxUb3RhbCA9IDA7CgogICAgICAgICAgICBuZXh0IFBST0pFQ1RJRCBpZiAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IGVxICdhbGwnICYmICRQYXJhbXtTdGF0dXN9OwoKICAgICAgICAgICAgaWYgKCRBY3Rpb25zUmVmKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICgKICAgICAgICAgICAgICAgICAgICBzb3J0IHsgJEFjdGlvbnNSZWYtPnskYX17TmFtZX0gY21wICRBY3Rpb25zUmVmLT57JGJ9e05hbWV9IH0KICAgICAgICAgICAgICAgICAgICBrZXlzICV7JEFjdGlvbnNSZWZ9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG15ICRBY3Rpb25SZWYgPSAkQWN0aW9uc1JlZi0+eyRBY3Rpb25JRH07CgogICAgICAgICAgICAgICAgICAgICRQYXJhbXtBY3Rpb259ICAgICA9ICRBY3Rpb25SZWYtPntOYW1lfTsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntQZXJNb250aH0gfHwgMCApOwogICAgICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJEFjdGlvblJlZi0+e1RvdGFsfSB8fCAwICk7CiAgICAgICAgICAgICAgICAgICAgJFRvdGFsICAgICAgKz0gJFBhcmFte0hvdXJzfTsKICAgICAgICAgICAgICAgICAgICAkVG90YWxUb3RhbCArPSAkUGFyYW17SG91cnNUb3RhbH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICRQcm9qZWN0UmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0RGVzY3JpcHRpb24gPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJFByb2plY3RSZWYtPntEZXNjcmlwdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3TGluZSAgICAgICAgPT4gNTAsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm93U3BhbiA9PiAoIDEgKyBzY2FsYXIga2V5cyAleyRBY3Rpb25zUmVmfSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyAgPT4gJFBhcmFte1N0YXR1c30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQcm9qZWN0RGVzY3JpcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3REZXNjcmlwdGlvbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkUHJvamVjdERlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRVc2VyRGF0YXtDcmVhdGVQcm9qZWN0fSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBlcnNvbnMgd2hvIGFyZSBhbGxvd2VkIHRvIHNlZSB0aGUgY3JlYXRlIG9iamVjdCBsaW5rIGFyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhbGxvd2VkIHRvIHNlZSB0aGUgcHJvamVjdCByZXBvcnRpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RMaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdCAgID0+ICRQcm9qZWN0UmVmLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdE5vTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7IFByb2plY3QgPT4gJFByb2plY3RSZWYtPntOYW1lfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIE5vdyBzaG93IHJvdyB3aXRoIHRvdGFsIHJlc3VsdCBvZiBhbGwgYWN0aW9ucyBvZiB0aGlzIHByb2plY3QKICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsICk7CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbFRvdGFsICk7CiAgICAgICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICArPSAkVG90YWw7CiAgICAgICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSArPSAkVG90YWxUb3RhbDsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvblRvdGFsJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIGRlZmluZWQoICRQYXJhbXtUb3RhbEhvdXJzfSApICkgewogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzfSApOwogICAgICAgIH0KICAgICAgICBpZiAoIGRlZmluZWQoICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICkgKSB7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSApOwogICAgICAgIH0KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnR3JhbmRUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIG91dHB1dAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ092ZXJ2aWV3JyksCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldycKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVFcnJvcnMgPSAoKTsKICAgIG15ICVHZXRQYXJhbTsKCiAgICAjIGdldCB0aW1lIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZH07ICRQZXJpb2QrKyApIHsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0KICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICk7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnTWlzc2luZ1ZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlU3RhcnR9ICk7CiAgICAgICAgbXkgJFN0YXJ0RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZUVuZH0gKTsKICAgICAgICBteSAkRW5kRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFN0YXJ0RGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdJbnZhbGlkJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJEVuZERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdJbnZhbGlkJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAkU3RhcnREYXRlICYmICRFbmREYXRlICYmICRTdGFydERhdGUgPj0gJEVuZERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdCZWZvcmVEYXRlU3RhcnQnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJUVycm9yczsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB0aW1lIGFjY291bnRpbmcgcHJvamVjdCByZXBvcnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUmVwb3J0aW5nUHJvamVjdCcgKSB7CgogICAgICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6JFNlbGYtPntTdWJhY3Rpb259Iik7CgogICAgICAgIG15ICVGcm9udGVuZCA9ICgpOwoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0SUQnICk7CgogICAgICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJykKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICVBY3Rpb24gID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdHtQcm9qZWN0fS0+eyAkUGFyYW17UHJvamVjdElEfSB9OwoKICAgICAgICAjIGdldCBzeXN0ZW0gdXNlcnMKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAwCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ID0gJENvbmZpZy0+e1Nob3dPbmx5QWN0aXZlVXNlcnN9OwoKICAgICAgICBpZiAoICRQYXJhbXtTaG93T25seUFjdGl2ZVVzZXJzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHJlZ2lzdGVyZWQgdXNlcnMKICAgICAgICAgICAgbXkgJVJlZ2lzdGVyZWRVc2VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgICAgICMgcmVkdWNlIHNob3duIHVzZXJzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgcmVnaXN0ZXJlZCBpbiB0aW1lIGFjY291bnRpbmcKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBrZXlzICVSZWdpc3RlcmVkVXNlcnM7CiAgICAgICAgfQoKICAgICAgICAjIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nIGlzIG5vdCByZXdvcmtlZAogICAgICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICAgICAgKTsKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAoKTsKICAgICAgICBteSAlUHJvamVjdFRpbWUgPSAoKTsKCiAgICAgICAgbXkgQFVzZXJXaGl0ZUxpc3Q7CgogICAgICAgICMgT25seSBvbmUgZnVuY3Rpb24gc2hvdWxkIGJlIGVub3VnaAogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVTaG93blVzZXJzICkgewoKICAgICAgICAgICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICAgICAgICAgICMgUkVNQVJLOiBUaGlzIGlzIHRoZSB3cm9uZyBmdW5jdGlvbiB0byBnZXQgdGhpcyBpbmZvcm1hdGlvbgogICAgICAgICAgICAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJFByb2plY3REYXRheyAkUGFyYW17UHJvamVjdElEfSB9ICkgewogICAgICAgICAgICAgICAgbXkgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0OwogICAgICAgICAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkUHJvamVjdERhdGF7ICRQYXJhbXtQcm9qZWN0SUR9IH0tPntBY3Rpb25zfTsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXskQWN0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RUaW1leyRBY3Rpb25JRH0tPnskVXNlcklEfS0+e0hvdXJzfSA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfS0+e1RvdGFsfTsKCiAgICAgICAgICAgICAgICAgICAgIyByZW1lbWJlciB0aGUgc3VtIG9mIGFsbCBob3VycyBvZiBhbGwgdGFza3MKICAgICAgICAgICAgICAgICAgICAkVXNlclRvdGFsSG91cnNJblByb2plY3QgKz0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9LT57VG90YWx9IHx8IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciBvbmx5IHRoZSB1c2VycyB0aGF0IGhhcyBiZWVuIGFkZGVkIGhvdXJzIHRvIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdCAmJiAkVXNlclRvdGFsSG91cnNJblByb2plY3QgPiAwICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFVzZXJXaGl0ZUxpc3QsICRVc2VySUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ICkgewoKICAgICAgICAgICAgIyByZWR1Y2Ugc2hvd24gdXNlcnMgdG8gb25seSB0aGUgb25lcyB0aGF0IGFyZSBhY3RpdmUgaW4gdGhlIHByb2plY3QgKGJ5IGFkZGluZyBob3VycykKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBAVXNlcldoaXRlTGlzdDsKICAgICAgICB9CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGhlIGhlYWRlciBsaW5lCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJOYW1lJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgVXNlciA9PiAkU2hvd25Vc2Vyc3skVXNlcklEfSB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBiZXR0ZXIgc29sdXRpb24gZm9yIHNvcnQgYWN0aW9ucyBuZWNlc3NhcnkKICAgICAgICAgICAgbXkgJU5ld0FjdGlvbiA9ICgpOwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICVQcm9qZWN0VGltZSApIHsKICAgICAgICAgICAgICAgICROZXdBY3Rpb257JEFjdGlvbklEfSA9ICRBY3Rpb257JEFjdGlvbklEfS0+e0FjdGlvbn07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJUFjdGlvbiA9ICVOZXdBY3Rpb247CgogICAgICAgICAgICAjIHNob3cgdGhlIHJlc3VsdHMKICAgICAgICAgICAgbXkgJVRvdGFsID0gKCk7CiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IHsgJEFjdGlvbnskYX0gY21wICRBY3Rpb257JGJ9IH0ga2V5cyAlQWN0aW9uICkgewogICAgICAgICAgICAgICAgbXkgJFRvdGFsSG91cnMgPSAwOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb257JEFjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICAgICAkVG90YWxIb3VycyArPSAkUHJvamVjdFRpbWV7JEFjdGlvbklEfXskVXNlcklEfXtIb3Vyc30gfHwgMDsKICAgICAgICAgICAgICAgICAgICAkVG90YWx7JFVzZXJJRH0gKz0gJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDA7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvdXJzID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggIiUuMmYiLCAkUHJvamVjdFRpbWV7JEFjdGlvbklEfXskVXNlcklEfXtIb3Vyc30gfHwgMCApLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBUb3RhbAogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhvdXJzID0+IHNwcmludGYoICIlLjJmIiwgJFRvdGFsSG91cnMgKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkUGFyYW17VG90YWxBbGx9ID0gMDsKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICAgICAgJFBhcmFte1RvdGFsQWxsfSArPSAkVG90YWx7JFVzZXJJRH07CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyVG90YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBUb3RhbCA9PiBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbHskVXNlcklEfSApLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUb3RhbEFsbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBUb3RhbEFsbCA9PiBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEFsbH0gKSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIG15IEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0SGlzdG9yeSgKICAgICAgICAgICAgUHJvamVjdElEID0+ICRQYXJhbXtQcm9qZWN0SUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggXEBQcm9qZWN0SGlzdG9yeUFycmF5ICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJUZyb250ZW5kCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBQcm9qZWN0SGlzdG9yeUFycmF5KSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBVc2VyICAgPT4gJFJvdy0+e1VzZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJFJvdy0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbWFyayA9PiAkUm93LT57UmVtYXJrfSB8fCAnLS0nLAogICAgICAgICAgICAgICAgICAgICAgICBQZXJpb2QgPT4gc3ByaW50ZiggIiUuMmYiLCAkUm93LT57UGVyaW9kfSApLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICAgPT4gJFJvdy0+e0RhdGV9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNob3cgdGhlIHRvdGFsIHN1bSBvZiBob3VycyBhdCB0aGUgZW5kIG9mIHRoZSBoaXN0b3J5IGxpc3QKICAgICAgICAgICAgIyBJIGFsc28gY2FuIHVzZSAkUGFyYW17VG90YWxBbGx9CiAgICAgICAgICAgIG15ICRQcm9qZWN0VG90YWxIb3VycyA9IHNwcmludGYoCiAgICAgICAgICAgICAgICAiJS4yZiIsCiAgICAgICAgICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RUb3RhbEhvdXJzKAogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hpc3RvcnlUb3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VG90YWwgPT4gJFByb2plY3RUb3RhbEhvdXJzIHx8IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBvdXRwdXQKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZyBQcm9qZWN0JyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdGltZSBhY2NvdW50aW5nIHJlcG9ydGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICVGcm9udGVuZCAgID0gKCk7CiAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMAogICAgKTsKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBNb250aCBZZWFyIFByb2plY3RTdGF0dXNTaG93KSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICBteSAlTW9udGggPSAoKTsKICAgIGZvciBteSAkSUQgKCAxIC4uIDEyICkgewogICAgICAgICRNb250aHsgc3ByaW50ZiggIiUwMmQiLCAkSUQgKSB9ID0gJE1vbnRoQXJyYXlbJElEXTsKICAgIH0KCiAgICAkRnJvbnRlbmR7TW9udGhPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVNb250aCwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17TW9udGh9IHx8ICcnLAogICAgICAgIE5hbWUgICAgICAgID0+ICdNb250aCcsCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJNb250aCIpLAogICAgKTsKCiAgICBteSBAWWVhciA9ICggJFllYXIgLSA0IC4uICRZZWFyICsgMSApOwoKICAgICRGcm9udGVuZHtZZWFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFxAWWVhciwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17WWVhcn0gfHwgJycsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1llYXInLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJZZWFyIiksCiAgICApOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIC0xLCAwICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAxLCAwLCAxLCAwICk7CgogICAgbXkgJVVzZXJSZXBvcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVVc2VyQmFzaWNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSB8fCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlVXNlclJlcG9ydCApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUYWJsZScsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CgogICAgICAgIFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgIG5leHQgVVNFUklEIGlmICEkVXNlclJlcG9ydHskVXNlcklEfTsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyICgKICAgICAgICAgICAgICAgIHF3KExlYXZlRGF5IE92ZXJ0aW1lIFdvcmtpbmdIb3VycyBTaWNrIExlYXZlRGF5UmVtYWluaW5nIE92ZXJ0aW1lVG90YWwpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9IHNwcmludGYoICIlLjJmIiwgKCAkVXNlclJlcG9ydHskVXNlcklEfXskUGFyYW1ldGVyfSB8fCAwICkgKTsKICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RvdGFsJyAuICRQYXJhbWV0ZXIgfSArPSAkUGFyYW17JFBhcmFtZXRlcn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgU2hvdyBPdmVydGltZSBpZiBhbGxvd2VkCiAgICAgICAgICAgIGlmICggISRVc2VyQmFzaWNzeyRVc2VySUR9e1Nob3dPdmVydGltZX0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17T3ZlcnRpbWV9ICAgICAgPSAnJzsKICAgICAgICAgICAgICAgICRQYXJhbXtPdmVydGltZVRvdGFsfSA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17VXNlcn0gICA9ICRTaG93blVzZXJzeyRVc2VySUR9OwogICAgICAgICAgICAkUGFyYW17VXNlcklEfSA9ICRVc2VySUQ7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkUGFyYW1ldGVyICgKICAgICAgICAgICAgcXcoVG90YWxMZWF2ZURheSBUb3RhbE92ZXJ0aW1lIFRvdGFsV29ya2luZ0hvdXJzCiAgICAgICAgICAgIFRvdGFsU2ljayBUb3RhbExlYXZlRGF5UmVtYWluaW5nIFRvdGFsT3ZlcnRpbWVUb3RhbCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8IDAgKTsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyR3JhbmRUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIHJlcG9ydCBzb3J0IGJ5IHByb2plY3RzCiAgICBpZiAoICEkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IHx8ICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ3ZhbGlkJyApIHsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ2FsbCc7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICd2YWxpZCc7CiAgICB9CgogICAgJFBhcmFte1Nob3dQcm9qZWN0c30gPSAnU2hvdyAnIC4gJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSAuICcgcHJvamVjdHMnOwoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlUHJvamVjdERhdGEgKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzTGlua0NsYXNzfSA9ICdIaWRkZW4nOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RUYWJsZScsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CgogICAgICAgICMgUkVNQVJLOiBtZXJnZSB0aGlzIHByb2plY3QgcmVwb3J0aW5nIGxpc3Qgd2l0aCB0aGUgbGlzdCBpbiBvdmVydmlldwogICAgICAgIFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdERhdGF7JGF9LT57TmFtZX0gY21wICRQcm9qZWN0RGF0YXskYn0tPntOYW1lfSB9CiAgICAgICAgICAgIGtleXMgJVByb2plY3REYXRhCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRQcm9qZWN0UmVmID0gJFByb2plY3REYXRheyRQcm9qZWN0SUR9OwogICAgICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICRQcm9qZWN0UmVmLT57QWN0aW9uc307CgogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gPSAkUHJvamVjdFJlZi0+e1N0YXR1c30gPyAnJyA6ICdwYXNzaXYnOwoKICAgICAgICAgICAgbXkgJFRvdGFsICAgICAgPSAwOwogICAgICAgICAgICBteSAkVG90YWxUb3RhbCA9IDA7CgogICAgICAgICAgICBuZXh0IFBST0pFQ1RJRCBpZiAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IGVxICdhbGwnICYmICRQYXJhbXtTdGF0dXN9OwoKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoCiAgICAgICAgICAgICAgICBzb3J0IHsgJEFjdGlvbnNSZWYtPnskYX0tPntOYW1lfSBjbXAgJEFjdGlvbnNSZWYtPnskYn0tPntOYW1lfSB9CiAgICAgICAgICAgICAgICBrZXlzICV7JEFjdGlvbnNSZWZ9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICRBY3Rpb25SZWYgPSAkQWN0aW9uc1JlZi0+eyRBY3Rpb25JRH07CgogICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3RJRH0gID0gJFByb2plY3RJRDsKICAgICAgICAgICAgICAgICRQYXJhbXtBY3Rpb259ICAgICA9ICRBY3Rpb25SZWYtPntOYW1lfTsKICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJEFjdGlvblJlZi0+e1Blck1vbnRofSB8fCAwICk7CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntUb3RhbH0gfHwgMCApOwogICAgICAgICAgICAgICAgJFRvdGFsICAgICAgKz0gJFBhcmFte0hvdXJzfTsKICAgICAgICAgICAgICAgICRUb3RhbFRvdGFsICs9ICRQYXJhbXtIb3Vyc1RvdGFsfTsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICRQcm9qZWN0UmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRQcm9qZWN0UmVmLT57RGVzY3JpcHRpb259LAogICAgICAgICAgICAgICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBOZXdMaW5lICAgICAgICA9PiA1MCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUm93U3BhbiAgICAgICAgICAgID0+ICggMSArIHNjYWxhciBrZXlzICV7JEFjdGlvbnNSZWZ9ICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgICAgICAgICAgICAgPT4gJFBhcmFte1N0YXR1c30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJFByb2plY3REZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEICAgICAgICAgID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWwgKTsKICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWxUb3RhbCApOwogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICArPSAkVG90YWw7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICs9ICRUb3RhbFRvdGFsOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvblRvdGFsJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgfHw9IDA7CiAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gfHw9IDA7CgogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxIb3Vyc30gKTsKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIG91dHB1dAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZycpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgZXhwcmVzc2lvbiBhZGQgdGltZSBwZXJpb2Qgd2FzIHByZXNzZWQKICAgIGlmICgKICAgICAgICAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkUGVyaW9kJyApCiAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1Ym1pdFVzZXJEYXRhJyApCiAgICAgICAgKQogICAgewoKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1VzZXJJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApOwogICAgICAgIG15ICRQZXJpb2RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgIG15ICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgUGVyaW9kID0+ICRQZXJpb2RzLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIHBlcmlvZCBkYXRhIGlzIE9LCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZ2V0IGFsbCBwYXJhbWV0ZXJzCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdWJhY3Rpb24gRGVzY3JpcHRpb24gQ2FsZW5kYXIpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0IEFsbG93U2tpcCkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkUGVyaW9kID0gMTsKICAgICAgICAgICAgbXkgJVBlcmlvZERhdGE7CgogICAgICAgICAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkR2V0UGFyYW17VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgcGFyYW1ldGVycyBmb3IgYWxsIHJlZ2lzdGVyZWQgcGVyaW9kcwogICAgICAgICAgICB3aGlsZSAoICRVc2VyRGF0YXskUGVyaW9kfSApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhXZWVrbHlIb3VycyBPdmVydGltZSBEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMpKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZERhdGF7JFBlcmlvZH17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyIC4gIlskUGVyaW9kXSIgKQogICAgICAgICAgICAgICAgICAgICAgICB8fCAkVXNlckRhdGF7JFBlcmlvZH17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGVyaW9kRGF0YXskUGVyaW9kfXtVc2VyU3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iICkgfHwgMDsKICAgICAgICAgICAgICAgICRQZXJpb2QrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkR2V0UGFyYW17UGVyaW9kfSA9IFwlUGVyaW9kRGF0YTsKCiAgICAgICAgICAgICMgdXBkYXRlIHBlcmlvZHMKICAgICAgICAgICAgaWYgKCAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoJUdldFBhcmFtKSApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKSApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIGVkaXQgdGltZSBzZXR0aW5ncyBhZ2FpbiwgYnV0IG5vdyB3aXRoIGEgbmV3IGVtcHR5IHRpbWUgcGVyaW9kIGxpbmUKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nO1N1YmFjdGlvbj0kR2V0UGFyYW17U3ViYWN0aW9ufTtVc2VySUQ9JEdldFBhcmFte1VzZXJJRH07IgogICAgICAgICAgICAgICAgICAgICAgICAuICJOZXdUaW1lUGVyaW9kPTEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIG92ZXJ2aWV3IG9mIHRhc2tzIGFuZCB1c2VycwogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7VXNlcj0kU2VsZi0+e1N1YmFjdGlvbn0iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgcHJvamVjdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRQcm9qZWN0JyApIHsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KCBBY3Rpb24gPT4gJ0FkZFByb2plY3QnICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHByb2plY3QgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFByb2plY3RBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICRQcm9qZWN0SUQ7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KICAgICAgICAkR2V0UGFyYW17UHJvamVjdFN0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvamVjdFN0YXR1cycgKQogICAgICAgICAgICB8fCAnMCc7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0RXJyb3JUeXBlfSA9ICdQcm9qZWN0TWlzc2luZ1ZhbHVlJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Byb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCVFeGlzdGluZ1Byb2plY3QpIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0RXJyb3JUeXBlfSA9ICdQcm9qZWN0RHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIHByb2plY3QKICAgICAgICAgICAgJFByb2plY3RJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRQcm9qZWN0SUQpIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIHRoZSBvdXRwdXQKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0IGFkZGVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JUdldFBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZFByb2plY3QnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCBwcm9qZWN0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRQcm9qZWN0JyApIHsKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CgogICAgICAgICMgZ2V0IHByb2plY3QgZGF0YQogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0UHJvamVjdCcsCiAgICAgICAgICAgICVQcm9qZWN0LAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgcHJvamVjdCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFByb2plY3RBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICAkR2V0UGFyYW17SUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApIHx8ICcnOwogICAgICAgICRHZXRQYXJhbXtQcm9qZWN0U3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0U3RhdHVzJyApCiAgICAgICAgICAgIHx8ICcwJzsKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoUHJvamVjdCBQcm9qZWN0RGVzY3JpcHRpb24pKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBuYW1lIGlzIHVuaXF1ZQogICAgICAgICAgICBteSAlRXhpc3RpbmdQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkR2V0UGFyYW17UHJvamVjdH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGlmIHRoZSBwcm9qZWN0IG5hbWUgaXMgZm91bmQsIGNoZWNrIHRoYXQgdGhlIElEIGlzIGRpZmZlcmVudAogICAgICAgICAgICBpZiAoICVFeGlzdGluZ1Byb2plY3QgJiYgJEV4aXN0aW5nUHJvamVjdHtJRH0gbmUgJEdldFBhcmFte0lEfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0RXJyb3JUeXBlfSA9ICdQcm9qZWN0RHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZWRpdCBwcm9qZWN0CiAgICAgICAgICAgIGlmICggJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoJUdldFBhcmFtKSApIHsKCiAgICAgICAgICAgICAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnUHJvamVjdCB1cGRhdGVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTm90ZSA9ICRMb2dPYmplY3QtPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIHdlbnQgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZQogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X1Byb2plY3RTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnRWRpdFByb2plY3QnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgdGFzawogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRUYXNrJyApIHsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KCBBY3Rpb24gPT4gJ0FkZFRhc2snICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB0YXNrIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRUYXNrQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAkVGFza0lEOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICAkR2V0UGFyYW17VGFza30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFzaycgKSB8fCAnJzsKICAgICAgICAkR2V0UGFyYW17VGFza1N0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFza1N0YXR1cycgKQogICAgICAgICAgICB8fCAnMCc7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Rhc2t9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tUYXNrRXJyb3JUeXBlfSA9ICdUYXNrTWlzc2luZ1ZhbHVlJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Rhc2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkR2V0UGFyYW17VGFza30sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICglRXhpc3RpbmdUYXNrKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0Vycm9yVHlwZX0gPSAnVGFza0R1cGxpY2F0ZU5hbWUnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGFkZCB0YXNrCiAgICAgICAgICAgICRUYXNrSUQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkR2V0UGFyYW17VGFza1N0YXR1c30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJFRhc2tJRCkgewoKICAgICAgICAgICAgICAgICMgYnVpbGQgdGhlIG91dHB1dAogICAgICAgICAgICAgICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1Rhc2sgYWRkZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTm90ZSA9ICRMb2dPYmplY3QtPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIHdlbnQgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZQogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X1Rhc2tTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQWRkVGFzaycsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHRhc2sKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFRhc2snICkgewogICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY3Rpb25JRCcgKSB8fCAnJzsKCiAgICAgICAgIyBnZXQgcHJvamVjdCBkYXRhCiAgICAgICAgbXkgJVRhc2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgSUQgPT4gJElELAogICAgICAgICk7CgogICAgICAgIG15ICVUYXNrRGF0YSA9ICgKICAgICAgICAgICAgVGFzayAgICAgICA9PiAkVGFza3tBY3Rpb259LAogICAgICAgICAgICBUYXNrU3RhdHVzID0+ICRUYXNre0FjdGlvblN0YXR1c30sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uICAgPT4gJ0VkaXRUYXNrJywKICAgICAgICAgICAgQWN0aW9uSUQgPT4gJElELAogICAgICAgICAgICAlVGFza0RhdGEsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCBwcm9qZWN0IGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0VGFza0FjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICROb3RlID0gJyc7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtBY3Rpb25JRH0gICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY3Rpb25JRCcgKSAgIHx8ICcnOwogICAgICAgICRHZXRQYXJhbXtUYXNrU3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrU3RhdHVzJyApIHx8ICcwJzsKICAgICAgICAkR2V0UGFyYW17VGFza30gICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVGFzaycgKSAgICAgICB8fCAnJzsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17VGFza30gKSB7CiAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Rhc2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkR2V0UGFyYW17VGFza30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGlmIHRoZSB0YXNrIG5hbWUgaXMgZm91bmQsIGNoZWNrIHRoYXQgdGhlIElEIGlzIGRpZmZlcmVudAogICAgICAgICAgICBpZiAoICVFeGlzdGluZ1Rhc2sgJiYgJEV4aXN0aW5nVGFza3tJRH0gbmUgJEdldFBhcmFte0FjdGlvbklEfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrRXJyb3JUeXBlfSA9ICdUYXNrRHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZWRpdCBhY3Rpb24gKHRhc2spCiAgICAgICAgICAgIG15ICRBY3Rpb25VcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICAgICAgQWN0aW9uSUQgICAgID0+ICRHZXRQYXJhbXtBY3Rpb25JRH0sCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEdldFBhcmFte1Rhc2t9LAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICRHZXRQYXJhbXtUYXNrU3RhdHVzfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkQWN0aW9uVXBkYXRlKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVGFzayB1cGRhdGVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTm90ZSA9ICRMb2dPYmplY3QtPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIHdlbnQgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTm90ZQogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X1Rhc2tTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnRWRpdFRhc2snLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgdXNlcgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRVc2VyJyApIHsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgIG15ICROZXdVc2VySUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmV3VXNlcklEJyApCiAgICAgICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VySUQnICkKICAgICAgICAgICAgfHwgJyc7CiAgICAgICAgaWYgKCAhJE5ld1VzZXJJRCApIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICROZXdUaW1lUGVyaW9kID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05ld1RpbWVQZXJpb2QnICk7CgogICAgICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBpdCBpcyBub3QgYW4gYWN0aW9uIGFib3V0IGFkZGluZyBhIG5ldyB0aW1lIHBlcmlvZAogICAgICAgIGlmICggISROZXdUaW1lUGVyaW9kICYmICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBpbnNlcnQgdXNlciBkYXRhIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkTmV3VXNlcklELAogICAgICAgICk7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fVXNlclNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdBZGRVc2VyJywKICAgICAgICAgICAgU3ViYWN0aW9uID0+ICdBZGRVc2VyJywKICAgICAgICAgICAgJVVzZXIsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCB1c2VyIHNldHRpbmdzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRVc2VyJyApIHsKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApIHx8ICcnOwogICAgICAgIGlmICggISRJRCApIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICROZXdUaW1lUGVyaW9kID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05ld1RpbWVQZXJpb2QnICk7CiAgICAgICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJElELAogICAgICAgICk7CgogICAgICAgICMgaWYgaXQgaXMgYW4gYWN0aW9uIGFib3V0IGFkZGluZyBhIG5ldyB0aW1lIHBlcmlvZCwgaW5zZXJ0IGl0CiAgICAgICAgaWYgKCROZXdUaW1lUGVyaW9kKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJElELAogICAgICAgICAgICAgICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyICsgMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kIScpLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICVFcnJvcnMgPSAoKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkUGVyaW9kJyApCiAgICAgICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJtaXRVc2VyRGF0YScgKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiBwZXJpb2RzCiAgICAgICAgICAgICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJElELAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1VzZXJTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnRWRpdFVzZXInLAogICAgICAgICAgICBTdWJhY3Rpb24gPT4gJ0VkaXRVc2VyJywKICAgICAgICAgICAgVXNlcklEICAgID0+ICRJRCwKICAgICAgICAgICAgRXJyb3JzICAgID0+IFwlRXJyb3JzLAogICAgICAgICAgICBQZXJpb2RzICAgPT4gJExhc3RQZXJpb2ROdW1iZXIsCiAgICAgICAgICAgICVVc2VyLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNldHRpbmdzIGZvciBoYW5kbGluZyB0aW1lIGFjY291bnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBnZXQgdXNlciBkYXRhCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gJiYgISRTZWxmLT57QWNjZXNzUnd9ICkgewoKICAgICAgICAjIHJldHVybiBubyBwZXJtaXNzaW9uIHNjcmVlbgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCB0aGUgdXNlciBhY3Rpb24gdG8gc2hvdyBhIG1lc3NhZ2UgaWYgYW4gdXNlciB3YXMgdXBkYXRlZCBvciBhZGRlZAogICAgbXkgJE5vdGUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcicgKTsKCiAgICAjIGJ1aWxkIG91dHB1dAogICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdTZXR0aW5nJyksCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBzaG93IGEgbm90aWZpY2F0aW9uIG1lc3NhZ2UgaWYgcHJvcGVyCiAgICBpZiAoJE5vdGUpIHsKICAgICAgICAkT3V0cHV0IC49ICROb3RlIGVxICdFZGl0VXNlcicKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdVc2VyIHVwZGF0ZWQhJyksCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdVc2VyIGFkZGVkIScpLAogICAgICAgICAgICApOwogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKCn0KCnN1YiBfQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUVycm9ycyA9ICgpOwogICAgbXkgJUdldFBhcmFtOwoKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIGZvciAoIG15ICRQZXJpb2QgPSAxOyAkUGVyaW9kIDw9ICRQYXJhbXtQZXJpb2R9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9CiAgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApOwogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3sgJFBhcmFtZXRlciAuICctJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ01pc3NpbmdWYWx1ZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZVN0YXJ0fSApOwogICAgICAgIG15ICRTdGFydERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQoICctJywgJEdldFBhcmFte0RhdGVFbmR9ICk7CiAgICAgICAgbXkgJEVuZERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgIGlmICggISRTdGFydERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggISRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggJFN0YXJ0RGF0ZSAmJiAkRW5kRGF0ZSAmJiAkU3RhcnREYXRlID49ICRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnQmVmb3JlRGF0ZVN0YXJ0JzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCnN1YiBfUHJvamVjdFNldHRpbmdzRWRpdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdQcm9qZWN0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RQcm9qZWN0JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvblNldHRpbmdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgIG15ICRQcm9qZWN0U3RhdHVzID0gMTsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17UHJvamVjdFN0YXR1c30gKSB7CiAgICAgICAgJFByb2plY3RTdGF0dXMgPSAkUGFyYW17UHJvamVjdFN0YXR1c307CiAgICB9CgogICAgJFBhcmFte1N0YXR1c09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICBTZWxlY3RlZElEID0+ICRQcm9qZWN0U3RhdHVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1Byb2plY3RTdGF0dXMnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlUHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIHNob3dzIGhlYWRlcgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnRWRpdFByb2plY3QnICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJFZGl0UHJvamVjdCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJBZGRQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSAoaWYgYW55KSBmb3IgdGhlIHByb2plY3QgbmFtZQogICAgaWYgKCAkUGFyYW17UHJvamVjdEVycm9yVHlwZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte1Byb2plY3RFcnJvclR5cGV9LAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfU2V0dGluZ092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVByb2plY3QgPSAoKTsKICAgIG15ICVEYXRhICAgID0gKCk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGJ1aWxkIG91dHB1dAogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25BZGRQcm9qZWN0JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGhhc2ggdG8gc2F2ZSByZWdpc3RlcmVkIHVzZXJzCiAgICBteSAlVXNlcjsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgIGlmICggJFNlbGYtPntBY2Nlc3NSd30gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICVTaG93blVzZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzIChpZiBhbnkpCiAgICAgICAgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgogICAgICAgIFVTRVJJTkZPOgogICAgICAgIGZvciBteSAkVXNlckluZm8gKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICBuZXh0IFVTRVJJTkZPIGlmICEkVXNlcnskVXNlckluZm99OwoKICAgICAgICAgICAgIyBkZWxldGUgYWxyZWFkeSByZWdpc3RlcmVkIHVzZXIgZnJvbSB0aGUgJ25ldycgbGlzdAogICAgICAgICAgICBkZWxldGUgJFNob3duVXNlcnN7JFVzZXJJbmZvfTsKICAgICAgICB9CgogICAgICAgICRTaG93blVzZXJzeyctJ30gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIkFkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uIik7CgogICAgICAgIGlmICggc2NhbGFyIGtleXMgJVNob3duVXNlcnMgPiAxICkgewogICAgICAgICAgICBteSAkTmV3VXNlck9wdGlvbiA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAnJywKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnTmV3VXNlcklEJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJOZXcgVXNlciIpLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFVzZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmV3VXNlck9wdGlvbiA9PiAkTmV3VXNlck9wdGlvbiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgU2hvdyBwcm9qZWN0IGRhdGEKICAgICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3QnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgICMgc2hvdyBsaXN0IG9mIGF2YWlsYWJsZSBwcm9qZWN0cyAoaWYgYW55KQogICAgaWYgKCAkUHJvamVjdHtQcm9qZWN0fSApIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0UHJvamVjdFRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAgICAgIGtleXMgJXsgJFByb2plY3R7UHJvamVjdH0gfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gICAgICAgICAgICA9ICRQcm9qZWN0e1Byb2plY3R9eyRQcm9qZWN0SUR9OwogICAgICAgICAgICAkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSA9ICRQcm9qZWN0e1Byb2plY3REZXNjcmlwdGlvbn17JFByb2plY3RJRH07CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ICAgICAgICAgID0gJFByb2plY3RJRDsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gICAgICAgICAgICAgPSAkU3RhdHVzTGlzdHsgJFByb2plY3R7UHJvamVjdFN0YXR1c317JFByb2plY3RJRH0gfTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRQcm9qZWN0Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICMgU2hvdyBhY3Rpb24gZGF0YQogICAgICAgIG15ICVBY3Rpb24gPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFNldHRpbmcnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGxpc3Qgb2YgYXZhaWxhYmxlIHRhc2tzL2FjdGlvbnMgKGlmIGFueSkKICAgICAgICBpZiAoJUFjdGlvbikgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFNldHRpbmdUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQgeyAkQWN0aW9ueyRhfXtBY3Rpb259IGNtcCAkQWN0aW9ueyRifXtBY3Rpb259IH0ga2V5cyAlQWN0aW9uICkgewogICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbn0gICA9ICRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb259OwogICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbklEfSA9ICRBY3Rpb25JRDsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGF0dXN9ICAgPSAkU3RhdHVzTGlzdHsgJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvblN0YXR1c30gfTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFNldHRpbmdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSwgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vU2V0dGluZ0RhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzaG93IHVzZXIgZGF0YQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFVzZXInLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2VycyAoaWYgYW55KQogICAgICAgIGlmICglVXNlcikgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFVzZXJUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFVzZXJ7JGF9IGNtcCAkVXNlcnskYn0gfSBrZXlzICVVc2VyICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IG1pc3NpbmcgdXNlciBkYXRhCiAgICAgICAgICAgICAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgJVVzZXJHZW5lcmFsRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJFBhcmFte1VzZXJ9ICAgICAgID0gIiRVc2VyR2VuZXJhbERhdGF7VXNlckZ1bGxuYW1lfSAoJFVzZXJHZW5lcmFsRGF0YXtVc2VyTG9naW59KSI7CiAgICAgICAgICAgICAgICAkUGFyYW17VXNlcklEfSAgICAgPSAkVXNlcklEOwogICAgICAgICAgICAgICAgJFBhcmFte0NvbW1lbnR9ICAgID0gJFVzZXJEYXRhe0Rlc2NyaXB0aW9ufTsKICAgICAgICAgICAgICAgICRQYXJhbXtDYWxlbmRhck5vfSA9ICRVc2VyRGF0YXtDYWxlbmRhcn07CiAgICAgICAgICAgICAgICAkUGFyYW17Q2FsZW5kYXJ9ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoCiAgICAgICAgICAgICAgICAgICAgIlRpbWVab25lOjpDYWxlbmRhciIKICAgICAgICAgICAgICAgICAgICAgICAgLiAoICRQYXJhbXtDYWxlbmRhck5vfSB8fCAnJyApIC4gIk5hbWUiCiAgICAgICAgICAgICAgICApIHx8ICdEZWZhdWx0JzsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFVzZXJSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSwgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vVXNlckRhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9UYXNrU2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgIG15ICRUYXNrU3RhdHVzID0gMTsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17VGFza1N0YXR1c30gKSB7CiAgICAgICAgJFRhc2tTdGF0dXMgPSAkUGFyYW17VGFza1N0YXR1c307CiAgICB9CgogICAgJFBhcmFte1N0YXR1c09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICBTZWxlY3RlZElEID0+ICRUYXNrU3RhdHVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1Rhc2tTdGF0dXMnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlVGFzaycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIHNob3dzIGhlYWRlcgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnRWRpdFRhc2snICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJFZGl0VGFzaycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJBZGRUYXNrJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSAoaWYgYW55KSBmb3IgdGhlIHRhc2sgbmFtZQogICAgaWYgKCAkUGFyYW17VGFza0Vycm9yVHlwZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte1Rhc2tFcnJvclR5cGV9LAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfVXNlclNldHRpbmdzRWRpdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgJUdldFBhcmFtID0gKCk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgcGFyYW1ldGVycwogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERlc2NyaXB0aW9uIFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0IEFsbG93U2tpcCBDYWxlbmRhcikpIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdSZWZlcmVuY2UnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHN0YXR1cyBsaXN0CiAgICBteSAlU3RhdHVzTGlzdCA9ICgKICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgndmFsaWQnKSwKICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnaW52YWxpZCcpLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGZpbGwgdXAgdGhlIGNhbGVuZGFyIGxpc3QKICAgIG15ICRDYWxlbmRhckxpc3RSZWYgPSB7IDAgPT4gJ0RlZmF1bHQnIH07CiAgICBteSAkQ2FsZW5kYXJJbmRleCA9IDE7CiAgICB3aGlsZSAoICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkQ2FsZW5kYXJJbmRleCAuICJOYW1lIiApICkgewogICAgICAgICRDYWxlbmRhckxpc3RSZWYtPnskQ2FsZW5kYXJJbmRleH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gJENhbGVuZGFySW5kZXggLiAiTmFtZSIgKTsKICAgICAgICAkQ2FsZW5kYXJJbmRleCsrOwogICAgfQoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgZ2V0IHVzZXIgZGF0YQogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgJFBhcmFte0NhbGVuZGFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+ICRDYWxlbmRhckxpc3RSZWYsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0NhbGVuZGFyJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRHZXRQYXJhbXtDYWxlbmRhcn0gfHwgJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17RGVzY3JpcHRpb259ID0gJEdldFBhcmFte0Rlc2NyaXB0aW9ufSB8fCAkVXNlckRhdGF7RGVzY3JpcHRpb259IHx8ICcnOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlVXNlcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lID0+ICggJEdldFBhcmFte1Nob3dPdmVydGltZX0gfHwgJFVzZXJEYXRhe1Nob3dPdmVydGltZX0gKQogICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAoICRHZXRQYXJhbXtDcmVhdGVQcm9qZWN0fSB8fCAkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gKQogICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgQWxsb3dTa2lwID0+ICggJEdldFBhcmFte0FsbG93U2tpcH0gfHwgJFVzZXJEYXRhe0FsbG93U2tpcH0gKQogICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgfQogICAgKTsKCiAgICAjIGlmIHRoZXJlIGFyZSBlcnJvcnMgdG8gc2hvdwogICAgaWYgKCAkUGFyYW17RXJyb3JzfSAmJiAleyAkUGFyYW17RXJyb3JzfSB9ICkgewoKICAgICAgICAjIHNob3cgYWxsIGV4aXN0aW5nIHBlcmlvZHMKICAgICAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkUGFyYW17UGVyaW9kc307ICRQZXJpb2QrKyApIHsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMgV2Vla2x5SG91cnMgT3ZlcnRpbWUgUGVyaW9kU3RhdHVzICkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICIkUGFyYW1ldGVyXFskUGVyaW9kXF0iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte1BlcmlvZFN0YXR1c30gfHwgJFBhcmFteyRQZXJpb2R9e1BlcmlvZFN0YXR1c30sCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iLAogICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAiUGVyaW9kU3RhdHVzLSRQZXJpb2QiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlBlcmlvZCBTdGF0dXMiKSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgICAgICAgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnRJbnZhbGlkID0+ICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kSW52YWxpZCA9PiAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9IHx8ICcnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5c0ludmFsaWQgPT4gJFBhcmFte0Vycm9yc30tPnsgJ0xlYXZlRGF5cy0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICcnLAogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgICAgICAgICA9PiAkR2V0UGFyYW17RGF0ZVN0YXJ0fSwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICAgICAgICAgPT4gJEdldFBhcmFte0RhdGVFbmR9LAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICAgICAgICA9PiAkR2V0UGFyYW17TGVhdmVEYXlzfSwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgICAgICAgPT4gJEdldFBhcmFte1dlZWtseUhvdXJzfSwKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICAgICAgICAgPT4gJEdldFBhcmFte092ZXJ0aW1lfSwKICAgICAgICAgICAgICAgICAgICBQZXJpb2RTdGF0dXNPcHRpb24gPT4gJFBhcmFteyRQZXJpb2R9e1BlcmlvZFN0YXR1c09wdGlvbn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEYXRlU3RhcnQnCiAgICAgICAgICAgICAgICAgICAgLiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0Vycm9yc30tPnsgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJ01pc3NpbmdWYWx1ZScKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7IFBlcmlvZCA9PiAkUGVyaW9kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGF0ZUVuZCcKICAgICAgICAgICAgICAgICAgICAuICggJFBhcmFte0Vycm9yc30tPnsgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9IHx8ICdNaXNzaW5nVmFsdWUnICksCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgUGVyaW9kID0+ICRQZXJpb2QgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBteSAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U2luZ2xlVXNlclNldHRpbmdzR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IHVzZXIgZGF0YQogICAgICAgIGlmICglVXNlcikgewogICAgICAgICAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciAoIG15ICRQZXJpb2QgPSAxOyAkUGVyaW9kIDw9ICRMYXN0UGVyaW9kTnVtYmVyOyAkUGVyaW9kKysgKSB7CiAgICAgICAgICAgICAgICBteSAlUGVyaW9kUGFyYW0gPSAoKTsKCiAgICAgICAgICAgICAgICAjIGdldCBhbGwgbmVlZGVkIGRhdGEgdG8gZGlzcGxheQogICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cyBXZWVrbHlIb3VycyBPdmVydGltZSkpIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kUGFyYW17JFBhcmFtZXRlcn0gPSAkVXNlcnskUGVyaW9kfXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQZXJpb2RQYXJhbXtQZXJpb2R9ID0gJFBlcmlvZDsKCiAgICAgICAgICAgICAgICAkUGVyaW9kUGFyYW17UGVyaW9kU3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFVzZXJ7JFBlcmlvZH17VXNlclN0YXR1c30sCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiUGVyaW9kU3RhdHVzWyRQZXJpb2RdIiwKICAgICAgICAgICAgICAgICAgICBJRCAgICAgICAgID0+ICJQZXJpb2RTdGF0dXMtJFBlcmlvZCIsCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlBlcmlvZCBTdGF0dXMiKSwKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiBcJVBlcmlvZFBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kT3ZlcnZpZXdSb3dOb0RhdGEnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB2aWV3IG9sZGVyIGRheSBpbnNlcnRzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcGFyYW1zCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF5IE1vbnRoIFllYXIgVXNlcklEKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbXMKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXkgTW9udGggWWVhcikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1ZpZXc6IE5lZWQgJXMhJywgJE5lZWRlZCApLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGZvcm1hdCB0aGUgZGF0ZSBwYXJ0cwogICAgJFBhcmFte1llYXJ9ICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte1llYXJ9ICk7CiAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAkUGFyYW17RGF5fSAgID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17RGF5fSApOwoKICAgICMgaWYgbm8gVXNlcklEIHBvc3RlZCB1c2UgdGhlIGN1cnJlbnQgdXNlcgogICAgJFBhcmFte1VzZXJJRH0gfHw9ICRTZWxmLT57VXNlcklEfTsKCiAgICAjIGdldCB0aW1lIGFuZCB0aW1lYWNjb3VudGluZyBvYmplY3QKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBjdXJyZW50IGRhdGUgYW5kIHRpbWUKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICB9CiAgICApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEFsbG93ZWQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyQWxsb3dlZH0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aEFsbG93ZWR9LAogICAgICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgIH0KICAgICk7CgogICAgaWYgKAogICAgICAgICREYXRlVGltZU9iamVjdEdpdmVuLT5Db21wYXJlKCBEYXRlVGltZU9iamVjdCA9PiAkRGF0ZVRpbWVPYmplY3RBbGxvd2VkICkKICAgICAgICA+IDAKICAgICAgICAmJiAkUGFyYW17VXNlcklEfSA9PSAkU2VsZi0+e1VzZXJJRH0KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIG5hbWluZyBvZiB0aGUgYWdlbnQgd2hpY2ggdGltZSBhY2NvdW50aW5nIGlzIHZpc2l0ZWQKICAgIGlmICggJFBhcmFte1VzZXJJRH0gIT0gJFNlbGYtPntVc2VySUR9ICkgewogICAgICAgIG15ICVTaG93blVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMQogICAgICAgICk7CiAgICAgICAgJFBhcmFte1VzZXJ9ID0gJFNob3duVXNlcnN7ICRQYXJhbXtVc2VySUR9IH07CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte1dlZWtkYXl9ICAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApOwogICAgJFBhcmFte1dlZWtkYXlfdG9fVGV4dH0gPSAkV2Vla2RheUFycmF5WyAkUGFyYW17V2Vla2RheX0gLSAxIF07CiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gICA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgIyBWYWx1ZXMgZm9yIHRoZSBsaW5rIGljb25zIDw+CiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgLTEgKTsKICAgICggJFBhcmFte1llYXJOZXh0fSwgJFBhcmFte01vbnRoTmV4dH0sICRQYXJhbXtEYXlOZXh0fSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAxICk7CgogICAgJFBhcmFte0RhdGVTZWxlY3Rpb259ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnJywKICAgICAgICBGb3JtYXQgICA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgIENsYXNzICAgID0+ICRQYXJhbXtFcnJvcnN9LT57RGF0ZUludmFsaWR9LAogICAgKTsKCiAgICAjIFNob3cgV29ya2luZyBVbml0cwogICAgIyBnZXQgZXhpc3Rpbmcgd29ya2luZyB1bml0cwogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtEYXRlfSA9ICREYXRhe0RhdGV9OwoKICAgICMgZ2V0IHByb2plY3QgYW5kIGFjdGlvbiBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgc2ljaywgbGVhdmUgZGF5IGFuZCBvdmVydGltZQogICAgJFBhcmFte1NpY2t9ICAgICA9ICREYXRhe1NpY2t9ICAgICA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte0xlYXZlRGF5fSA9ICREYXRhe0xlYXZlRGF5fSA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkJyA6ICcnOwoKICAgICMgb25seSBzaG93IHRoZSB1bml0IGJsb2NrIGlmIHRoZXJlIGlzIHNvbWUgZGF0YQogICAgbXkgJFVuaXRzUmVmID0gJERhdGF7V29ya2luZ1VuaXRzfTsKICAgIGlmICggJFVuaXRzUmVmLT5bMF0gKSB7CgogICAgICAgIGZvciBteSAkVW5pdFJlZiAoIEB7JFVuaXRzUmVmfSApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVW5pdCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgPT4gJFByb2plY3R7UHJvamVjdH17ICRVbml0UmVmLT57UHJvamVjdElEfSB9LAogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkQWN0aW9ueyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICRVbml0UmVmLT57UmVtYXJrfSwKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJFVuaXRSZWYtPntTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkVW5pdFJlZi0+e0VuZFRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAkVW5pdFJlZi0+e1BlcmlvZH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUb3RhbCA9PiBzcHJpbnRmKCAiJS4yZiIsICREYXRhe1RvdGFsfSApLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2lja30gfHwgJFBhcmFte0xlYXZlRGF5fSB8fCAkUGFyYW17T3ZlcnRpbWV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdGhlclRpbWVzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkUGFyYW17U2lja30sCiAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkUGFyYW17TGVhdmVEYXl9LAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJFBhcmFte092ZXJ0aW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRWYWNhdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBDYWxlbmRhciA9PiAkVXNlckRhdGF7Q2FsZW5kYXJ9LAogICAgKTsKCiAgICBpZiAoJFZhY2F0aW9uKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1ZhY2F0aW9uJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBWYWNhdGlvbiA9PiAkVmFjYXRpb24sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHByZXNlbnRhdGlvbgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiAnVmlldycsCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdWaWV3JwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBXMzAwcHgiPgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiWWVhciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLlllYXIgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTW9udGgiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTW9udGgpIHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkRheSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9maWVsZHNldD4KPHAgY2xhc3M9IlNwYWNpbmdUb3AgQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5PyIpIHwgaHRtbCAlXQo8L3A+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIkVkaXQgVGltZSBSZWNvcmQiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Byb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNyZWF0ZVByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1nZWFyIj48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNyZWF0ZVByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Byb2plY3QiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkVkaXQiIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik5hdmlnYXRpb25TZWxlY3QiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIElubGluZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1hcnJvdy1jaXJjbGUtby1yaWdodCI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF5cyB3aXRob3V0IGVudHJpZXMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLkluY29tcGxldGVXb3JraW5nRGF5c1NlbGVjdCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluY29tcGxldGVXb3JraW5nRGF5cyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnkiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXlzIHdpdGhvdXQgZW50cmllcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBJbmNvbXBsZXRlV29ya2luZ0RheXMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGlkPSJTZWxlY3RBbGxEYXlzIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiIG5hbWU9IkluY29tcGxldGVXb3JraW5nRGF5LUFsbCIgLz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGF0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICBbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlcxMHBjIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIiBuYW1lPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIiAvPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGxhYmVsIGZvcj0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSI+WyUgRGF0YS5EYXRlSFIgfCBMb2NhbGl6ZSgiRGF0ZSIpICVdIC0gWyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheSkgfCBodG1sICVdPC9sYWJlbD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJXMTBwYyI+PGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXkgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1lZGl0Ij48L2k+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgWyUgUmVuZGVyQmxvY2tFbmQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeVNpbmdsZURheSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPCEtLSA8dWwgY2xhc3M9IkluY29tcGxldGVXb3JraW5nRGF5cyI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGlkPSJTZWxlY3RBbGxEYXlzIj48bGFiZWwgZm9yPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiPjxlbT5bJSBUcmFuc2xhdGUoIlNlbGVjdCBhbGwgZGF5cyIpIHwgaHRtbCAlXTwvZW0+PC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4gLSA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4gLS0+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgaWQ9Ik1hc3NFbnRyeSIgbmFtZT0iTWFzc0VudHJ5IiBjbGFzcz0iU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ik1hc3NFbnRyeSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXRlcyIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMZWF2ZURheSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTaWNrIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ0aW1lIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJNYXNzRW50cnlTdWJtaXQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiA8L2k+WyUgVHJhbnNsYXRlKCJNYXNzIGVudHJ5IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1hc3NFbnRyeUNvbmZpcm1EaWFsb2ciIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlBsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyIpIHwgaHRtbCAlXS48L2gyPgogICAgICAgICAgICAgICAgICAgIDx1bCBpZD0iTWFzc0VudHJ5Q29uZmlybVJhZGlvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJMZWF2ZURheSIgbmFtZT0iQWJzZW5jZVtdIiBpZD0iQ29uZmlybUxlYXZlRGF5IiAvPjxsYWJlbCBmb3I9IkNvbmZpcm1MZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJTaWNrIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtU2ljayIgLz48bGFiZWwgZm9yPSJDb25maXJtU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9Ik92ZXJ0aW1lIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtT3ZlcnRpbWUiIC8+PGxhYmVsIGZvcj0iQ29uZmlybU92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnkiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJSZWZlcmVuY2UiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgXCIqXCIuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLldlZWtkYXlfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuWWVhciB8IGh0bWwgJV0tWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0tWyUgRGF0YS5EYXkgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iV29ya2luZ1VuaXRzIiBpZD0iV29ya2luZ1VuaXRzIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJFZGl0IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlJlY29yZHNOdW1iZXIiIGlkPSJSZWNvcmRzTnVtYmVyIiB2YWx1ZT0iWyUgRGF0YS5SZWNvcmRzTnVtYmVyIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdGF0dXMiIHZhbHVlPSJBY3Rpb24iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iWWVhciIgdmFsdWU9IlslIERhdGEuWWVhciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTW9udGgiIHZhbHVlPSJbJSBEYXRhLk1vbnRoIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXkiIHZhbHVlPSJbJSBEYXRhLkRheSB8IGh0bWwgJV0iIC8+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXRCbG9jayIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBIaWdoQ2VsbHMiIGlkPSJJbnNlcnRXb3JraW5nSG91cnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVtYXJrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGFydCIpIHwgaHRtbCAlXSAoSEg6TU0pPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJFbmQiKSB8IGh0bWwgJV0gKEhIOk1NKTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPlslIERhdGEuUGVyaW9kTm90ZSB8IGh0bWwgJV08L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGVyaW9kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IldvcmtpbmdIb3VycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3RPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19Qcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQWN0aW9uT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX0FjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX0FjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJSZW1hcmtbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsgWyUgRGF0YS5SZW1hcmtJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuUmVtYXJrIHwgaHRtbCAlXSIgc2l6ZT0iMzUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZW1hcmtbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlN0YXJ0VGltZVtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJTdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IlN0YXJ0VGltZSBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWUgWyUgRGF0YS5TdGFydFRpbWVSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5TdGFydFRpbWVJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuU3RhcnRUaW1lIHwgaHRtbCAlXSIgc2l6ZT0iNyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3RhcnQgVGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU3RhcnRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlJlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lMjRIb3VycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIjI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZTI0SG91cnMiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJFbmRUaW1lW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IkVuZFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IkVuZFRpbWUgVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX1N0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdIFslIERhdGEuRW5kVGltZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLkVuZFRpbWVJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuRW5kVGltZSB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVuZCBUaW1lIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJFbmRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkVuZFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lQmVmb3JlU3RhcnRUaW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0SW5wdXRQZXJpb2QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlBlcmlvZFtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJQZXJpb2RbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IlBlcmlvZCBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2QgVmFsaWRhdGVfVGltZVVuaXRzIFslIERhdGEuUGVyaW9kUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuUGVyaW9kSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGVyaW9kWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBlcmlvZFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlplcm9Ib3Vyc1BlcmlvZFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJaZXJvSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk5lZ2F0aXZlUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiTmVnYXRpdmVQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdElucHV0UGVyaW9kIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0UGVyaW9kV2l0aG91dElucHV0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiIgY2xhc3M9IlJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIiB0eXBlPSJidXR0b24iIGlkPSJNb3JlSW5wdXRGaWVsZHMiIG5hbWU9Ik1vcmVJbnB1dEZpZWxkcyI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgb25lIHJvdyIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXRCbG9jayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjwvdGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTo8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iVG90YWxIb3VycyI+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3NwYW4+PC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlYWRvbmx5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLkRlc2NyaXB0aW9uKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlYWRvbmx5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIEFic2VuY2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBpZD0iTGVhdmVEYXkiIG5hbWU9IkxlYXZlRGF5IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXSIgY2xhc3M9IlslIERhdGEuTGVhdmVEYXlJbnZhbGlkICVdIiBbJSBEYXRhLkxlYXZlRGF5ICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxlYXZlRGF5Ij5bJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGlkPSJTaWNrIiBuYW1lPSJTaWNrIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5TaWNrSW52YWxpZCAlXSIgWyUgRGF0YS5TaWNrICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNpY2siPlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNpY2tTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGlkPSJPdmVydGltZSIgbmFtZT0iT3ZlcnRpbWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5PdmVydGltZUludmFsaWQgJV0iIFslIERhdGEuT3ZlcnRpbWUgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT3ZlcnRpbWUiPlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdmVydGltZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk90aGVyVGltZXMiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNlbnRlciBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIG5hbWU9Ikluc2VydFdvcmtpbmdVbml0cyIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJEZWxldGVUaW1lQWNjb3VudGluZ0VudHJ5IiBocmVmPSIjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTsiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8cCBpZD0iU2lja0xlYXZlTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/IikgfCBodG1sICVdCjwvcD4KCjxwIGlkPSJWYWNhdGlvbk1lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8iKSB8IGh0bWwgJV0KPC9wPgoKPHAgaWQ9Ik92ZXJ0aW1lTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyIpIHwgaHRtbCAlXQo8L3A+Cgo8cCBpZD0iTW9yZTE2SG91cnNNZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyIpIHwgaHRtbCAlXQo8L3A+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiI+CiAgICA8aDEgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3IikgfCBodG1sICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckxhc3QiPgogICAgICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydGltZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lIChIb3VycykiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKHRoaXMgbW9udGgpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lICh0b3RhbCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lVW50aWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ0aW1lIikgJV0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIChEYXlzKSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkxlYXZlRGF5IHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24gdGFrZW4gKHRvdGFsKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXlUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlbWFpbmluZyB2YWNhdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlNpY2sgTGVhdmUgKERheXMpIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlNpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5TaWNrVG90YWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk92ZXJ2aWV3IikgfCBodG1sICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAtIFslIERhdGEuVXNlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWRkaXRpb25hbEluZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJOZXh0IHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhOZXh0IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEYXkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldlZWtkYXkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldvcmtpbmcgSG91cnMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSBNYXN0ZXJBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRml4ZWQgRGF5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIERhdGEuQWN0aW9uIHwgdXJpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07RGF5PVslIERhdGEuRGF5IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRml4ZWQgV2Vla2RheSI+WyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheV90b19UZXh0KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5Db21tZW50KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AgUmlnaHQiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCB3b3JrZWQgaG91cnMiKSB8IGh0bWwgJV06PC9zdHJvbmc+IFslIERhdGEuV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlVzZXIncyBwcm9qZWN0IG92ZXJ2aWV3IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFslIFRyYW5zbGF0ZShEYXRhLlNob3dQcm9qZWN0cykgfCBodG1sICVdKQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBIaWdoQ2VsbHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiSG91cnMgKG1vbnRobHkpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHJvd3NwYW49IlslIERhdGEuUm93U3BhbiAlXSIgY2xhc3M9IlJvd1NwYW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0Tm9MaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0ICVdClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0Tm9MaW5rIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdExpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZztTdWJhY3Rpb249UmVwb3J0aW5nUHJvamVjdDtQcm9qZWN0SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3RMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvblRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnMgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIkdyYW5kIHRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVwb3J0aW5nIikgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTW9udGggTmF2aWdhdGlvbiIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1vbnRoU2VsZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3cgTGVmdCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUHJldmlvdXMgbW9udGgiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyQmFjayB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoQmFjayB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJOZXh0IHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhOZXh0IHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgVHJhbnNsYXRlKERhdGEuTW9udGhfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuWWVhciAlXTwvc3Ryb25nPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iY29tcG9zZSIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlJlcG9ydGluZyIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk1vbnRoT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5ZZWFyT3B0aW9uICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AiIGFjY2Vzc2tleT0iZyI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVXNlciByZXBvcnRzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQgY2xhc3M9IlR3b1Jvd3MiPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2VudGVyIiBjb2xzcGFuPSI0Ij5bJSBUcmFuc2xhdGUoIk1vbnRobHkgdG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiIGNvbHNwYW49IjIiPlslIFRyYW5zbGF0ZSgiTGlmZXRpbWUgdG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJVc2VyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldvcmtpbmcgSG91cnMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiByZW1haW5pbmciKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLldvcmtpbmdIb3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5MZWF2ZURheSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbFdvcmtpbmdIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsT3ZlcnRpbWUgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbExlYXZlRGF5IHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxTaWNrIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxPdmVydGltZVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxMZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlckdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0cyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLlByb2plY3RTdGF0dXNMaW5rQ2xhc3MgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIChbJSBUcmFuc2xhdGUoRGF0YS5TaG93UHJvamVjdHMpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChtb250aGx5KSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSJbJSBEYXRhLlJvd1NwYW4gJV0iIGNsYXNzPSJSb3dTcGFuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249UmVwb3J0aW5nUHJvamVjdDtQcm9qZWN0SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvamVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25Ub3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLkhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIkdyYW5kIHRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnMgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0R3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+ClslIElGIERhdGEuU2hvd09ubHlBY3RpdmVVc2VycyA9PSAnMScgJV0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkN1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblN5c0NvbmZpZztTdWJhY3Rpb249RWRpdDtTeXNDb25maWdHcm91cD1UaW1lQWNjb3VudGluZztTeXNDb25maWdTdWJHcm91cD1Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdXRuaW5nOjpWaWV3UmVwb3J0aW5nUHJvamVjdCI+U2hvd09ubHlBY3RpdmVVc2VyczwvYT4KICAgICAgICAgICAgICAgIDwvcD4KWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblN5c0NvbmZpZztTdWJhY3Rpb249RWRpdDtTeXNDb25maWdHcm91cD1UaW1lQWNjb3VudGluZztTeXNDb25maWdTdWJHcm91cD1Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdXRuaW5nOjpWaWV3UmVwb3J0aW5nUHJvamVjdCI+U2hvd09ubHlBY3RpdmVVc2VyczwvYT4KICAgICAgICAgICAgICAgIDwvcD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Vc2VyRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Vc2VyRGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlck5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIERhdGEuVXNlciB8IGh0bWwgJV08L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlck5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRvdGFsQWxsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEFsbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclRvdGFsQWxsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KIFslIFJlbmRlckJsb2NrRW5kKCJVc2VyVGFibGUiKSAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJIaXN0b3J5IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEYXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUGVyaW9kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuRGF0ZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuVXNlciB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5SZW1hcmsgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIaXN0b3J5VG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSGlzdG9yeVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJIaXN0b3J5VG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Byb2plY3QiKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIkVkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0UHJvamVjdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFByb2plY3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgcHJvamVjdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uU2V0dGluZ092ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblNldHRpbmdPdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3RQcm9qZWN0IikgJV0KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBQcm9qZWN0IikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFByb2plY3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0UHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFByb2plY3QgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFByb2plY3QiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iUHJvamVjdFVwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSUQiIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlByb2plY3QiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUHJvamVjdCIgaWQ9IlByb2plY3QiIHZhbHVlPSJbJSBEYXRhLlByb2plY3QgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5Qcm9qZWN0SW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdE1pc3NpbmdWYWx1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0RHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0RHVwbGljYXRlTmFtZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJvamVjdERlc2NyaXB0aW9uIj5bJSBUcmFuc2xhdGUoIkRlc2NyaXB0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQcm9qZWN0RGVzY3JpcHRpb24iIGlkPSJQcm9qZWN0RGVzY3JpcHRpb24iIHZhbHVlPSJbJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIxNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb2plY3RTdGF0dXMiPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhdHVzT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiBpZD0iU3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlUHJvamVjdCIpICVdCiAgICA8L2Rpdj4KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Byb2plY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2V0dGluZyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdFNldHRpbmciKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRQcm9qZWN0Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIHByb2plY3QiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkVGFzayIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRUYXNrIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQgdGFzayIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgdGFzayIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFRhc2siKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBpZD0iQWN0aW9uQWRkVXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRVc2VyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1VzZXJPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGRVc2VyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXdTZXR0aW5nIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3U2V0dGluZyIpICVdCgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25MaXN0U2V0dGluZyIpICVdCgogICAgWyUgSUYgIUVudigiU3ViYWN0aW9uIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRmlsdGVyIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIkp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIpIHwgaHRtbCAlXSIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWZlcmVuY2UiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlJlZmVyZW5jZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlJlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSBcIipcIi4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVmZXJlbmNlIikgJV0KCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlByb2plY3RzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzMzcGMiPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuU3RhdHVzID09ICdpbnZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFByb2plY3Q7SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iPlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gfCBodG1sICVdIj5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiB8IHRydW5jYXRlKDQwKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlN0YXR1cykgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZyIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJUYXNrIExpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1NldHRpbmdEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1NldHRpbmdEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUYXNrcyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlN0YXR1cyA9PSAnaW52YWxpZCclXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRUYXNrO0FjdGlvbklEPVslIERhdGEuQWN0aW9uSUQgfCB1cmkgJV0iPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlN0YXR1cykgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFNldHRpbmdUYWJsZSIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3VXBkYXRlVGFzayIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyQWRkVGFzayIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQgVGFzayIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZGRUYXNrIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRWRpdFRhc2siKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBUYXNrIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckVkaXRUYXNrIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9IlRhc2tVcGRhdGUiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV1BY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbklEIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb25JRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUYXNrIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlRhc2siIGlkPSJUYXNrIiB2YWx1ZT0iWyUgRGF0YS5UYXNrIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuVGFza0ludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUYXNrRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrTWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRhc2tTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRhc2tNaXNzaW5nVmFsdWUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVGFza0R1cGxpY2F0ZU5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGFza1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGFza0R1cGxpY2F0ZU5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGFza1N0YXR1cyI+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJTdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVUYXNrIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0VXNlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIExpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJVc2VycyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMzNwYyI+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNhbGVuZGFyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0VXNlclJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRVc2VyO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQ29tbWVudCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuQ2FsZW5kYXIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFVzZXJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRVc2VyVGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0VXNlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVVzZXIiKSAlXQogICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9IlVzZXJVcGRhdGUiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuU3ViYWN0aW9uIHwgaHRtbCAlXSIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VySUQiIHZhbHVlPSJbJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWRkUGVyaW9kIiB2YWx1ZT0iIiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1Ym1pdFVzZXJEYXRhIiB2YWx1ZT0iIiAvPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVXNlciBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOYW1lIj5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiVXNlcm5hbWUiKSB8IGh0bWwgJV0pOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPlslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSAoWyUgRGF0YS5Vc2VyTG9naW4gfCBodG1sICVdKTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGVzY3JpcHRpb24iPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJEZXNjcmlwdGlvbiIgaWQ9IkRlc2NyaXB0aW9uIiBjbGFzcz0iVzUwcGMiIHZhbHVlPSJbJSBEYXRhLkRlc2NyaXB0aW9uIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNob3dPdmVydGltZSI+WyUgVHJhbnNsYXRlKCJVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNob3dPdmVydGltZSIgaWQ9IlNob3dPdmVydGltZSIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgT3ZlcnRpbWUiKSB8IGh0bWwgJV0iIFslIERhdGEuU2hvd092ZXJ0aW1lICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDcmVhdGVQcm9qZWN0Ij5bJSBUcmFuc2xhdGUoIlVzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJDcmVhdGVQcm9qZWN0IiBpZD0iQ3JlYXRlUHJvamVjdCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHByb2plY3QgY3JlYXRpb24iKSB8IGh0bWwgJV0iIFslIERhdGEuQ3JlYXRlUHJvamVjdCAlXSAvPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQWxsb3dTa2lwIj5bJSBUcmFuc2xhdGUoIlVzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IkFsbG93U2tpcCIgaWQ9IkFsbG93U2tpcCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyIpIHwgaHRtbCAlXSIgWyUgRGF0YS5BbGxvd1NraXAgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2FsZW5kYXIiPlslIFRyYW5zbGF0ZSgiQ2FsZW5kYXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2FsZW5kYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlRpbWUgU3BhbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBUaW1lQWNjb3VudGluZ1RhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCBCZWdpbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQZXJpb2QgRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkRheXMgb2YgVmFjYXRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiSG91cnMgcGVyIFdlZWsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQXV0aG9yaXplZCBPdmVydGltZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkRhdGVTdGFydC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVTdGFydFtbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5EYXRlU3RhcnQgfCBodG1sICVdIiBjbGFzcz0iIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRGF0ZVN0YXJ0SW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN0YXJ0IERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIlBsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZVN0YXJ0SW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGF0ZVN0YXJ0SW52YWxpZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVFbmRbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuRGF0ZUVuZCB8IGh0bWwgJV0iIGNsYXNzPSIgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5EYXRlRW5kSW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVuZCBEYXRlIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZUVuZE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kTWlzc2luZ1ZhbHVlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZUVuZEJlZm9yZURhdGVTdGFydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJMZWF2ZURheXMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJMZWF2ZURheXNbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuTGVhdmVEYXlzIHwgaHRtbCAlXSIgY2xhc3M9IkxlYXZlRGF5cyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkxlYXZlRGF5c0ludmFsaWQgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJMZWF2ZSBEYXlzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlzLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJXZWVrbHlIb3Vycy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IldlZWtseUhvdXJzW1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLldlZWtseUhvdXJzIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiV2Vla2x5IEhvdXJzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Ik92ZXJ0aW1lLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgbmFtZT0iT3ZlcnRpbWVbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuT3ZlcnRpbWUgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPdmVydGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5QZXJpb2RTdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1JvdyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIHRpbWUgcGVyaW9kcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXSIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdIiBpZD0iQWRkUGVyaW9kIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIFNwYWNpbmdUb3BTbWFsbCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+IFslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iIGlkPSJTdWJtaXRVc2VyRGF0YSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9mb3JtPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVVc2VyIikgJV0KICAgIDwvZGl2Pgo8L2Rpdj4KClslIFJlbmRlckJsb2NrRW5kKCJTZXR0aW5nIikgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlZpZXcgVGltZSBSZWNvcmQiKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgLSBbJSBUcmFuc2xhdGUoIlZpZXcgb2YgIikgfCBodG1sICVdIFslIERhdGEuVXNlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3O1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUgTmF2aWdhdGlvbiIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1vbnRoU2VsZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByZXZpb3VzIGRheSIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdO0RheT1bJSBEYXRhLkRheUJhY2sgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5leHQgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5TmV4dCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlllYXIgfCBodG1sICVdLVslIERhdGEuTW9udGggfCBodG1sICVdLVslIERhdGEuRGF5IHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgY2xhc3M9IlZhbGlkYXRlIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iVmlldyIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VySUQiICAgIHZhbHVlPSJbJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlU2VsZWN0aW9uICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1hcnJvdy1jaXJjbGUtby1yaWdodCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gZGF0ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLldlZWtkYXlfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuRGF0ZSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVtYXJrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXJ0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkVuZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5SZW1hcmsgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuU3RhcnRUaW1lIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkVuZFRpbWUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdOjwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJUb3RhbCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij5bJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5LiIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZCIpICVdCgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3RoZXJUaW1lcyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ii0yIiBpZD0iTGVhdmVEYXkiIG5hbWU9IkxlYXZlRGF5IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXSIgWyUgRGF0YS5MZWF2ZURheSAlXSBkaXNhYmxlZCAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxlYXZlRGF5Ij5bJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSItMSIgaWQ9IlNpY2siIG5hbWU9IlNpY2siIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHNpY2sgbGVhdmUiKSB8IGh0bWwgJV0iIFslIERhdGEuU2ljayAlXSBkaXNhYmxlZCAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNpY2siPlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iLTMiIGlkPSJPdmVydGltZSIgbmFtZT0iT3ZlcnRpbWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdIiBbJSBEYXRhLk92ZXJ0aW1lICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT3ZlcnRpbWUiPlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdGhlclRpbWVzIikgJV0KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIlZhY2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3BTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFjYXRpb24gfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJWYWNhdGlvbiIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpOb3RpZmljYXRpb246OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9LAogICAgICAgIE1vbnRoID0+ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9LAogICAgICAgIERheSAgID0+ICREYXRlVGltZVNldHRpbmdzLT57RGF5fSwKICAgICk7CiAgICBpZiAoICRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfSApIHsKICAgICAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICAgICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgICAgICBteSAkUHJpb3JpdHkgPSAoICRJbmNvbXBsZXRlV29ya2luZ0RheXN7RW5mb3JjZUluc2VydH0gKSA/ICdFcnJvcicgOiAnV2FybmluZyc7CiAgICAgICAgaWYgKCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze1dhcm5pbmd9IHx8ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7RW5mb3JjZUluc2VydH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk5vdGlmeSgKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICRQcmlvcml0eSwKICAgICAgICAgICAgICAgIExpbmsgICAgID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30gLiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0JywKICAgICAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAnJzsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgRGVmaW5lIGFjdGlvbiBhbmQgZ2V0IGl0cyBmcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uLgogICAgbXkgJEFjdGlvbiA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGcm9udGVuZDo6TW9kdWxlJyktPnskQWN0aW9ufTsKCiAgICAjIERvIG5vdCBzaG93IGljb24gaWYgZnJvbnRlbmQgbW9kdWxlIGlzIG5vdCByZWdpc3RlcmVkLgogICAgcmV0dXJuIGlmICEkQ29uZmlnOwoKICAgICMgR2V0IGdyb3VwIG5hbWVzIGZyb20gY29uZmlnLgogICAgbXkgQEdyb3VwTmFtZXMgPSBAeyAkQ29uZmlnLT57R3JvdXB9IHx8IFtdIH07CgogICAgIyBJZiBhY2Nlc3MgaXMgcmVzdHJpY3RlZCwgYWxsb3cgYWNjZXNzIG9ubHkgaWYgdXNlciBoYXMgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMgaW4gY29uZmlndXJlZCBncm91cChzKS4KICAgIGlmIChAR3JvdXBOYW1lcykgewoKICAgICAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAgICAgIyBHZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgICAgICAgbXkgJUdyb3VwTGlzdCA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwoKICAgICAgICBteSAkUGVybWlzc2lvbiA9IDA7CgogICAgICAgIEdST1VQOgogICAgICAgIGZvciBteSAkR3JvdXBOYW1lIChAR3JvdXBOYW1lcykgewogICAgICAgICAgICBuZXh0IEdST1VQIGlmICEkR3JvdXBOYW1lOwoKICAgICAgICAgICAgIyBHZXQgdGhlIGdyb3VwIElELgogICAgICAgICAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgICAgICBHcm91cCA9PiAkR3JvdXBOYW1lLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IEdST1VQIGlmICEkR3JvdXBJRDsKCiAgICAgICAgICAgICMgU3RvcCBjaGVja2luZyBpZiBtZW1iZXJzaGlwIGluIGF0IGxlYXN0IG9uZSBncm91cCBpcyBmb3VuZC4KICAgICAgICAgICAgaWYgKCAkR3JvdXBMaXN0eyRHcm91cElEfSApIHsKICAgICAgICAgICAgICAgICRQZXJtaXNzaW9uID0gMTsKICAgICAgICAgICAgICAgIGxhc3QgR1JPVVA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRGVueSBhY2Nlc3MgaWYgdGhlIGFnZW50IGRvZXNuJ3QgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgICAgICAgcmV0dXJuIGlmICEkUGVybWlzc2lvbjsKICAgIH0KCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfSwKICAgICAgICBNb250aCA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSwKICAgICAgICBEYXkgICA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX0sCiAgICApOwoKICAgICMgRGVueSBhY2Nlc3MsIGlmIHVzZXIgaGFzIG5vIHZhbGlkIHBlcmlvZC4KICAgIHJldHVybiBpZiAhJFVzZXJDdXJyZW50UGVyaW9keyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICAjIEdldCB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzLgogICAgbXkgJENvdW50ICAgICAgICAgICAgICAgICA9IDA7CiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIFlFQVJJRDoKICAgIGZvciBteSAkWWVhcklEICggc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX0gfSApIHsKCiAgICAgICAgbmV4dCBZRUFSSUQgaWYgISRZZWFySUQ7CiAgICAgICAgbmV4dCBZRUFSSUQgaWYgISRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH07CiAgICAgICAgbmV4dCBZRUFSSUQgaWYgcmVmICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gbmUgJ0hBU0gnOwoKICAgICAgICAjIEV4dHJhY3QgeWVhci4KICAgICAgICBteSAlWWVhciA9ICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfTsKCiAgICAgICAgTU9OVEg6CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICVZZWFyICkgewoKICAgICAgICAgICAgbmV4dCBNT05USCBpZiAhJE1vbnRoSUQ7CiAgICAgICAgICAgIG5leHQgTU9OVEggaWYgISRZZWFyeyRNb250aElEfTsKICAgICAgICAgICAgbmV4dCBNT05USCBpZiByZWYgJFllYXJ7JE1vbnRoSUR9IG5lICdIQVNIJzsKCiAgICAgICAgICAgICMgZXh0cmFjdCBtb250aAogICAgICAgICAgICBteSAlTW9udGggPSAleyAkWWVhcnskTW9udGhJRH0gfTsKCiAgICAgICAgICAgICRDb3VudCArPSBzY2FsYXIga2V5cyAlTW9udGg7CgogICAgICAgICAgICAjIFJlbW92ZSBjdXJyZW50IGRheSBiZWNhdXNlIGl0IG1ha2VzIG5vIHNlbnNlIHRvIHNob3cgdGhlIGN1cnJlbnQgZGF5IGFzIGluY29tcGxldGUuCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0gZXEgJFllYXJJRAogICAgICAgICAgICAgICAgJiYgJE1vbnRoSUQgZXEgc3ByaW50ZiggJyUwMmQnLCAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSApCiAgICAgICAgICAgICAgICAmJiBkZWZpbmVkICRNb250aHsgc3ByaW50ZiggJyUwMmQnLCAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX0gKSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRDb3VudC0tOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBHZXQgdG9vbGJhciBvYmplY3QgcGFyYW1ldGVycy4KICAgIG15ICRDbGFzcyA9ICRQYXJhbXtDb25maWd9LT57Q3NzQ2xhc3N9OwogICAgbXkgJFRleHQgID0gVHJhbnNsYXRhYmxlKCdJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cycpOwogICAgbXkgJFVSTCAgID0gJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfTsKICAgIG15ICRJY29uICA9ICRQYXJhbXtDb25maWd9LT57SWNvbn07CgogICAgcmV0dXJuICgpIGlmICEkQ291bnQ7CgogICAgbXkgJVJldHVybiA9ICgKICAgICAgICAxMDAwODEwID0+IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAlUmV0dXJuOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8b3B0aW9uIHZhbHVlPSJ7eyBWYWx1ZSB9fSIge3sgInNlbGVjdGVkIiBpZiBTZWxlY3RlZCB9fT57eyBUZXh0IH19PC9vcHRpb24+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8c3BhbiBjbGFzcz0iQUpBWExvYWRlciI+PC9zcGFuPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyggOmFsbCApOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nIC0gdGltZSBhY2NvdW50aW5nIGxpYgoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgdGltZSBhY2NvdW50aW5nIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBVc2VyQ3VycmVudFBlcmlvZEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBjdXJyZW50IHBlcmlvZCBkYXRhIG9mIHRoZSBzcGVjaWZpZWQgdXNlcgoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzI0JywKICAgICk7CgpUaGUgcmV0dXJuZWQgaGFzaCBjb250YWlucyB0aGUgZm9sbG93aW5nIGVsZW1lbnRzOgoKICAgICVVc2VyRGF0YSA9ICgKICAgICAgICAxID0+IHsKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMTIzLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAwNS0xMi0yNCcsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDA1LTEyLTI0JywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gNDAuNCwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gMTIsCiAgICAgICAgICAgIE92ZXJUaW1lICAgID0+IDM0LAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFVzZXJDdXJyZW50UGVyaW9kR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZFBhcmFtIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZFBhcmFtfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJDdXJyZW50UGVyaW9kR2V0OiBOZWVkICROZWVkZWRQYXJhbSEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIGRhdGUgc3RyaW5nIGZvciBnaXZlbiBwYXJhbXMKICAgIG15ICREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwoKICAgICMgY2hlY2sgY2FjaGUKICAgIGlmICggJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9ICkgewoKICAgICAgICByZXR1cm4gJXsgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9IH07CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgZGF0ZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgZGF0ZV9lbmQgID49ID8KICAgICAgICAgICAgICAgIEFORCBzdGF0dXMgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCREYXRlLCBcJERhdGUsIFwxLCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRVc2VyUmVmID0gewogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQZXJpb2QgICAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICksCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKSwKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJvd1s0XSwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJFJvd1s2XSwKICAgICAgICB9OwogICAgICAgICREYXRheyAkUm93WzBdIH0gPSAkVXNlclJlZjsKICAgIH0KCiAgICAjIGNoZWNrIGZvciB2YWxpZCB1c2VyIGRhdGEKICAgIHJldHVybiBpZiAhJURhdGE7CgogICAgIyBzdG9yZSB1c2VyIGRhdGEgaW4gY2FjaGUKICAgICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSA9IFwlRGF0YTsKCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBVc2VyUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgbGVhdmUgZGF5cywgb3ZlcnRpbWVzLAp3b3JraW5nIGhvdXJzIGV0Yy4gb2YgYWxsIHVzZXJzCgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzEyJywgICAgICAjIE9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJSZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWRQYXJhbSAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWRQYXJhbX0gJiYgJE5lZWRlZFBhcmFtIG5lICdEYXknICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJSZXBvcnRpbmc6IE5lZWQgJE5lZWRlZFBhcmFtISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB2YWxpZCBkYXRlIHZhbHVlcwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9IHx8IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkRGF0ZVRpbWVPYmplY3Q7CgogICAgIyBnZXQgZGF5cyBvZiBtb250aCBpZiBub3QgcHJvdmlkZWQKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdC0+TGFzdERheU9mTW9udGhHZXQoKTsKICAgICRQYXJhbXtEYXl9IHx8PSAkTGFzdERheU9mTW9udGgtPntEYXl9OwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRTZWxmLT5Vc2VyQ3VycmVudFBlcmlvZEdldCglUGFyYW0pOwogICAgbXkgJFllYXJTdGFydCAgICAgICAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICAgICAgICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgICAgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgICAgICAgID0gJFBhcmFte1llYXJ9OwogICAgbXkgJE1vbnRoRW5kICAgICAgICAgID0gJFBhcmFte01vbnRofTsKICAgIG15ICREYXlFbmQgICAgICAgICAgICA9ICRQYXJhbXtEYXl9OwoKICAgIG15ICVEYXRhOwoKICAgIFVTRVJJRDoKICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVVc2VyQ3VycmVudFBlcmlvZCApIHsKCiAgICAgICAgaWYgKCAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IG17IFxBIChcZHs0fSktKFxkezJ9KS0oXGR7Mn0pIH14bXMgKSB7CiAgICAgICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgICAgICREYXlTdGFydCAgID0gJDM7CiAgICAgICAgfQoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyU3RhcnQsCiAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGhTdGFydCwKICAgICAgICAgICAgICAgIERheSAgID0+ICREYXlTdGFydCwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyUmVwb3J0aW5nOiBJbnZhbGlkIHN0YXJ0IGRhdGUgZm9yIHVzZXIgJwogICAgICAgICAgICAgICAgICAgIC4gIiRVc2VySUQ6ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgVVNFUklEOwogICAgICAgIH0KCiAgICAgICAgbXkgJUN1cnJlbnRVc2VyRGF0YSA9ICgKICAgICAgICAgICAgTGVhdmVEYXRlICAgICAgICA9PiAwLAogICAgICAgICAgICBTaWNrICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGFyZ2V0U3RhdGUgICAgICA9PiAwLAogICAgICAgICAgICBMZWF2ZURheVRvdGFsICAgID0+IDAsCiAgICAgICAgICAgIFNpY2tUb3RhbCAgICAgICAgPT4gMCwKICAgICAgICAgICAgU2lja1RvdGFsICAgICAgICA9PiAwLAogICAgICAgICAgICBUYXJnZXRTdGF0ZVRvdGFsID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENhbGVuZGFyID0geyAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKSB9LT57Q2FsZW5kYXJ9OwoKICAgICAgICBZRUFSOgogICAgICAgIGZvciBteSAkWWVhciAoICRZZWFyU3RhcnQgLi4gJFllYXJFbmQgKSB7CgogICAgICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICAgICAgTU9OVEg6CiAgICAgICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0KICAgICAgICAgICAgICAgICAgICAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydAogICAgICAgICAgICAgICAgICAgID8gJERheVN0YXJ0CiAgICAgICAgICAgICAgICAgICAgOiAxOwoKICAgICAgICAgICAgICAgIG15ICREYXlFbmRQb2ludDsKCiAgICAgICAgICAgICAgICBpZiAoICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQgKSB7CiAgICAgICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJERheUVuZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICREYXlFbmRQb2ludCA9ICRTZWxmLT5EYXlzSW5Nb250aCggJFllYXIsICRNb250aCApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERBWToKICAgICAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkU2VsZi0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSAkTGVhdmVEYXkgICAgPSAwOwogICAgICAgICAgICAgICAgICAgIG15ICRTaWNrICAgICAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJE92ZXJ0aW1lICAgID0gMDsKICAgICAgICAgICAgICAgICAgICBteSAkVGFyZ2V0U3RhdGUgPSAwOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRXb3JraW5nVW5pdHtMZWF2ZURheX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJExlYXZlRGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkV29ya2luZ1VuaXR7U2lja30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7U2lja1RvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkU2ljayA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFdvcmtpbmdVbml0e092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkT3ZlcnRpbWUgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRTZWxmLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBteSAkV2Vla2RheSA9ICRTZWxmLT5EYXlPZldlZWsoICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRXZWVrZGF5ICE9IDYKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJFdlZWtkYXkgIT0gNwogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgJiYgISRTaWNrCiAgICAgICAgICAgICAgICAgICAgICAgICYmICEkTGVhdmVEYXkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZVRvdGFsfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e1dlZWtseUhvdXJzfSAvIDU7CiAgICAgICAgICAgICAgICAgICAgICAgICRUYXJnZXRTdGF0ZSA9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtXZWVrbHlIb3Vyc30gLyA1OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTW9udGggPT0gJE1vbnRoRW5kICYmICRZZWFyID09ICRZZWFyRW5kICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlfSAgKz0gJFRhcmdldFN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1dvcmtpbmdIb3Vyc30gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtMZWF2ZURheX0gICAgICs9ICRMZWF2ZURheTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtTaWNrfSAgICAgICAgICs9ICRTaWNrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZX0gICAgICA9ICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzfSAtICRDdXJyZW50VXNlckRhdGF7VGFyZ2V0U3RhdGV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0gPSAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17T3ZlcnRpbWV9CiAgICAgICAgICAgICsgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0KICAgICAgICAgICAgLSAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlVG90YWx9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVVbnRpbH0gICAgID0gJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSAtICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlSZW1haW5pbmd9ID0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e0xlYXZlRGF5c30gLSAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5VG90YWx9OwoKICAgICAgICAkRGF0YXskVXNlcklEfSA9IFwlQ3VycmVudFVzZXJEYXRhOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFByb2plY3RTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIGFsbCB0aGUgcHJvamVjdHMnIGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJyB8fCAnaW52YWxpZCcsIG9wdGlvbmFsIGRlZmF1bHQgdmFsaWQgJiYgaW52YWxpZAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkV2hlcmUgPSAnJzsKICAgIGlmICggJFBhcmFte1N0YXR1c30gKSB7CiAgICAgICAgJFdoZXJlID0gJyBXSEVSRSBzdGF0dXMgPSAnOwogICAgICAgICRXaGVyZSAuPSAkUGFyYW17U3RhdHVzfSBlcSAnaW52YWxpZCcgPyAiJzAnIiA6ICInMSciOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIgogICAgICAgICAgICBTRUxFQ1QgaWQsIHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAkV2hlcmUiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRJRCA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7UHJvamVjdH17JElEfSAgICAgICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtQcm9qZWN0RGVzY3JpcHRpb259eyRJRH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe1Byb2plY3RTdGF0dXN9eyRJRH0gICAgICA9ICRSb3dbM107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgUHJvamVjdEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgcHJvamVjdCBkYXRhCgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KCBJRCA9PiAyICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggUHJvamVjdCA9PiAnaW50ZXJuYWwnICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIElEICAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gJiYgISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgcHJvamVjdCBuYW1lIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVByb2plY3Q7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBwcm9qZWN0LCBkZXNjcmlwdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgICAgIFdIRVJFIHByb2plY3QgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17UHJvamVjdH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICREYXRhWzFdLAogICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+ICREYXRhWzJdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVByb2plY3Q7Cn0KCj1oZWFkMiBQcm9qZWN0U2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBwcm9qZWN0IGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsICMgb3B0aW9uYWwKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSB8fCAwLCAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zIElEIG9mIGNyZWF0ZWQgcHJvamVjdAoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtQcm9qZWN0fSB8fD0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lJyk7CiAgICAkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSB8fD0gJyc7CgogICAgaWYgKCAkUGFyYW17UHJvamVjdFN0YXR1c30gbmUgJzAnICYmICRQYXJhbXtQcm9qZWN0U3RhdHVzfSBuZSAnMScgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3RTdGF0dXMnKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgaW5zZXJ0IHByb2plY3QgcmVjb3JkCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3Byb2plY3QgKHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30gXSwKICAgICk7CgogICAgIyBnZXQgaWQgb2YgbmV3bHkgY3JlYXRlZCBwcm9qZWN0IHJlY29yZAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgV0hFUkUgcHJvamVjdCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtQcm9qZWN0fSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRQcm9qZWN0SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUHJvamVjdElEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJFByb2plY3RJRDsKfQoKPWhlYWQyIFByb2plY3RTZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIGEgcHJvamVjdAoKICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+IDEyMywKICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJ2ludGVybmFsJywKICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdFNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBQcm9qZWN0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgU0VUIHByb2plY3QgPSA/LCBkZXNjcmlwdGlvbiA9ID8sIHN0YXR1cyA9ID8KICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtQcm9qZWN0fSwgXCRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259LCBcJFBhcmFte1Byb2plY3RTdGF0dXN9LCBcJFBhcmFte0lEfSwKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEFjdGlvblNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggYWxsIHRoZSBhY3Rpb25zIHNldHRpbmdzCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7Cgo9Y3V0CgpzdWIgQWN0aW9uU2V0dGluZ3NHZXQgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQsIGFjdGlvbiwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtBY3Rpb259ICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0FjdGlvblN0YXR1c30gPSAkUm93WzJdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIEFjdGlvbkdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgYWN0aW9uICh0YXNrKSBkYXRhCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggSUQgPT4gMiApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ015IHRhc2snLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIEFjdGlvbiA9PiAnTXkgdGFzaycgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAoCiAgICAgICAgSUQgICAgICAgICAgID0+IDIsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17SUR9ICYmICEkUGFyYW17QWN0aW9ufSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgQWN0aW9uIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVRhc2s7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBhY3Rpb24sIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVRhc2sgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBhY3Rpb24gPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlVGFzayA9ICgKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgICAgIElEICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVUYXNrOwp9Cgo9aGVhZDIgQWN0aW9uU2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBhY3Rpb24gaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ21lZXRpbmcnLCAgICMgb3B0aW9uYWwKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSB8fCAwLCAgICAgICMgb3B0aW9uYWwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uU2V0dGluZ3NJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAkUGFyYW17QWN0aW9ufSB8fD0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUnKSB8fCAnJzsKICAgIGlmICggJFBhcmFte0FjdGlvblN0YXR1c30gbmUgJzAnICYmICRQYXJhbXtBY3Rpb25TdGF0dXN9IG5lICcxJyApIHsKICAgICAgICAkUGFyYW17QWN0aW9uU3RhdHVzfSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRBY3Rpb25TdGF0dXMnKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX2FjdGlvbiAoYWN0aW9uLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0FjdGlvbn0sIFwkUGFyYW17QWN0aW9uU3RhdHVzfSwgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBBY3Rpb25TZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIGFuIGFjdGlvbiAodGFzaykKCiAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgQWN0aW9uSUQgICAgID0+IDEyMywKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ2ludGVybmFsJywKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uU2V0dGluZ3NVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KEFjdGlvbklEIEFjdGlvbikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNRTAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgVVBEQVRFIHRpbWVfYWNjb3VudGluZ19hY3Rpb24KICAgICAgICAgICAgU0VUIGFjdGlvbiA9ID8sIHN0YXR1cyA9ID8KICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtBY3Rpb259LCBcJFBhcmFte0FjdGlvblN0YXR1c30sIFwkUGFyYW17QWN0aW9uSUR9CiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBVc2VyTGlzdCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2YgYWxsIHVzZXJzCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKPWN1dAoKc3ViIFVzZXJMaXN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBkZXNjcmlwdGlvbiwgc2hvd19vdmVydGltZSwgY3JlYXRlX3Byb2plY3QsIGFsbG93X3NraXAsIGNhbGVuZGFyCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH17VXNlcklEfSAgICAgICAgPSAkUm93WzBdOwogICAgICAgICREYXRheyAkUm93WzBdIH17RGVzY3JpcHRpb259ICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17U2hvd092ZXJ0aW1lfSAgPSAkUm93WzJdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q3JlYXRlUHJvamVjdH0gPSAkUm93WzNdOwogICAgICAgICREYXRheyAkUm93WzBdIH17QWxsb3dTa2lwfSAgICAgPSAkUm93WzRdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q2FsZW5kYXJ9ICAgICAgPSAkUm93WzVdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFVzZXJHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgdXNlciBkYXRhIG9mIG9uZSB1c2VyCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAxNSwKICAgICk7Cgo9Y3V0CgpzdWIgVXNlckdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIGRhdGEKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnVXNlckdldDogTmVlZCBVc2VySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBkZXNjcmlwdGlvbiwgc2hvd19vdmVydGltZSwgY3JlYXRlX3Byb2plY3QsIGFsbG93X3NraXAsIGNhbGVuZGFyCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXtVc2VySUR9ICAgICAgICA9ICRQYXJhbXtVc2VySUR9OwogICAgICAgICREYXRhe0Rlc2NyaXB0aW9ufSAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTaG93T3ZlcnRpbWV9ICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7Q3JlYXRlUHJvamVjdH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe0FsbG93U2tpcH0gICAgID0gJFJvd1szXTsKICAgICAgICAkRGF0YXtDYWxlbmRhcn0gICAgICA9ICRSb3dbNF07CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGNvbXBsZXRlIHVzZXIgcGVyaW9kIGRhdGEgZm9yIGFsbCB1c2VycwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzR2V0KCk7CgpyZXR1cm5zOgogICAgJVVzZXJEYXRhID0gKAogICAgICAgIDMgPT4gewogICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIyMDE1LTEyLTMxIiwKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIyMDE1LTAxLTAxIiwKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICIyMy4wMCIsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAiMC4wMCIsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAiNDAuMDAiLAogICAgICAgICAgICB9LAogICAgICAgICAgICAyID0+IHsKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIyMDE1LTEyLTMxIiwKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIyMDE1LTAxLTAxIiwKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICIyMy4wMCIsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAiMC4wMCIsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgICA9PiAyLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAiMzIuMDAiLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgNCA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiA0LAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICI0MC4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgVXNlclNldHRpbmdzR2V0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBwcmVmZXJlbmNlX3BlcmlvZCwgZGF0ZV9zdGFydCwgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywKICAgICAgICAgICAgICAgIG92ZXJ0aW1lLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1BlcmlvZH0gICAgICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e0RhdGVTdGFydH0gICA9IHN1YnN0ciggJFJvd1syXSwgMCwgMTAgKTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtXZWVrbHlIb3Vyc30gPSAkUm93WzRdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtMZWF2ZURheXN9ICAgPSAkUm93WzVdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtVc2VyU3RhdHVzfSAgPSAkUm93WzddOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFNpbmdsZVVzZXJTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgdXNlcidzIHBlcmlvZCBkYXRhCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoIFVzZXJJRCA9PiAxICk7Cgo9Y3V0CgpzdWIgU2luZ2xlVXNlclNldHRpbmdzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUsIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlVXNlckRhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtVc2VySUR9ICAgICAgPSAkUm93WzBdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1BlcmlvZH0gICAgICA9ICRSb3dbMV07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17RGF0ZVN0YXJ0fSAgID0gc3Vic3RyKCAkUm93WzJdLCAwLCAxMCApOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e0RhdGVFbmR9ICAgICA9IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtXZWVrbHlIb3Vyc30gPSAkUm93WzRdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e0xlYXZlRGF5c30gICA9ICRSb3dbNV07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17T3ZlcnRpbWV9ICAgID0gJFJvd1s2XTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtVc2VyU3RhdHVzfSAgPSAkUm93WzddOwogICAgfQoKICAgIHJldHVybiAlVXNlckRhdGE7Cn0KCj1oZWFkMiBVc2VyTGFzdFBlcmlvZE51bWJlckdldCgpCgpyZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIGxhc3QgcmVnaXN0ZXJlZCBwZXJpb2QgZm9yIHRoZSBzcGVjaWZpZWQgdXNlcgoKICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCggVXNlcklEID0+IDEgKTsKCj1jdXQKCnN1YiBVc2VyTGFzdFBlcmlvZE51bWJlckdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVXNlcklEIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBtYXgocHJlZmVyZW5jZV9wZXJpb2QpCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kCiAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFJvd1swXSB8fCAwOwoKICAgIHJldHVybiAkTGFzdFBlcmlvZE51bWJlcjsKfQoKPWhlYWQyIFVzZXJTZXR0aW5nc0luc2VydCgpCgppbnNlcnQgbmV3IHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICBVc2VySUQgICAgICAgPT4gJzInLAogICAgICAgIFBlcmlvZCAgICAgICA9PiAnMicsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcgKFVzZXJJRCBQZXJpb2QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIHVzZXIgZXhpc3RzCiAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJJRCAkUGFyYW17VXNlcklEfSBkb2VzIG5vdCBleGlzdCEiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtXZWVrbHlIb3Vyc30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzJykKICAgICAgICB8fCAnNDAnOwogICAgJFBhcmFte0xlYXZlRGF5c30gID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJMZWF2ZURheXMnKSB8fCAnMjUnOwogICAgJFBhcmFte1VzZXJTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJTdGF0dXMnKSAgICB8fCAnMSc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlck92ZXJ0aW1lJykgIHx8ICcwJzsKICAgICRQYXJhbXtEYXRlRW5kfSAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCcpCiAgICAgICAgfHwgJzIwMTgtMTItMzEnOwogICAgJFBhcmFte0RhdGVTdGFydH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVTdGFydCcpCiAgICAgICAgfHwgJzIwMTgtMDEtMDEnOwogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24nKQogICAgICAgIHx8ICdQdXQgeW91ciBkZXNjcmlwdGlvbiBoZXJlLic7CgogICAgJFBhcmFte0RhdGVTdGFydH0gLj0gJyAwMDowMDowMCc7CiAgICAkUGFyYW17RGF0ZUVuZH0gICAuPSAnIDAwOjAwOjAwJzsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZGVsZXRlICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QgKHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LAogICAgICAgICAgICAgICAgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywgb3ZlcnRpbWUsIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgICAgICBcJFBhcmFte1BlcmlvZH0sICAgIFwkUGFyYW17RGF0ZVN0YXJ0fSwgXCRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgXCRQYXJhbXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17TGVhdmVEYXlzfSwgXCRQYXJhbXtPdmVydGltZX0sICBcJFBhcmFte1VzZXJTdGF0dXN9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgc2VsZWN0IFVzZXJJRAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtVc2VySUR9LCBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRVc2VySUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlcklEID0gJFJvd1swXTsKICAgIH0KCiAgICBpZiAoICFkZWZpbmVkICRVc2VySUQgKSB7CgogICAgICAgICMgZGIgaW5zZXJ0CiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3VzZXIgKHVzZXJfaWQsIGRlc2NyaXB0aW9uKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0sIFwkUGFyYW17RGVzY3JpcHRpb259LCBdLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBVc2VyU2V0dGluZ3NVcGRhdGUoKQoKdXBkYXRlcyB1c2VyIGRhdGEgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NvbWUgVGV4dCcsCiAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxIHx8IDAsCiAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxIHx8IDAsCiAgICAgICAgQWxsb3dTa2lwICAgICA9PiAxIHx8IDAsCiAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgID0+ICcyMDE1LTEyLTEyJywKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICA9PiAnMjAxNS0xMi0zMScsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgPT4gJzM4JywKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICAgPT4gMSB8fCAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICAyID0+IHsKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgICA9PiAnMjAxNS0xMi0xMicsCiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICAgPT4gJzIwMTUtMTItMzEnLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgID0+ICczOCcsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICAgPT4gJzI1JywKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgID0+IDEgfHwgMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgMyA9PiAuLi4uLi4KICAgICAgICB9CiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBkZWxldGUgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J307CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1BlcmlvZH0tPnsxfXtEYXRlU3RhcnR9ICYmICFkZWZpbmVkICRQYXJhbXtQZXJpb2R9LT57MX17RGF0ZUVuZH0gKSB7CgogICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJTZXR0aW5nVXBkYXRlOiBObyBkYXRhIGZvciB1c2VyIGlkICRVc2VySUQhIgogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMKICAgICRQYXJhbXtTaG93T3ZlcnRpbWV9ICB8fD0gMDsKICAgICRQYXJhbXtDcmVhdGVQcm9qZWN0fSB8fD0gMDsKICAgICRQYXJhbXtBbGxvd1NraXB9ICAgICB8fD0gMDsKICAgICRQYXJhbXtDYWxlbmRhcn0gICAgICB8fD0gMDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgVVBEQVRFIHRpbWVfYWNjb3VudGluZ191c2VyCiAgICAgICAgICAgIFNFVCBkZXNjcmlwdGlvbiA9ID8sIHNob3dfb3ZlcnRpbWUgPSA/LCBjcmVhdGVfcHJvamVjdCA9ID8sIGFsbG93X3NraXAgPSA/LCBjYWxlbmRhciA9ID8KICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0Rlc2NyaXB0aW9ufSwgXCRQYXJhbXtTaG93T3ZlcnRpbWV9LAogICAgICAgICAgICBcJFBhcmFte0NyZWF0ZVByb2plY3R9LCBcJFBhcmFte0FsbG93U2tpcH0sIFwkUGFyYW17Q2FsZW5kYXJ9LCBcJFBhcmFte1VzZXJJRH0KICAgICAgICBdLAogICAgKTsKCiAgICAjIHVwZGF0ZSBhbGwgcGVyaW9kcwogICAgZm9yIG15ICRQZXJpb2QgKCBzb3J0IGtleXMgJXsgJFBhcmFte1BlcmlvZH0gfSApIHsKCiAgICAgICAgIyBkYiBpbnNlcnQKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kCiAgICAgICAgICAgICAgICBTRVQgbGVhdmVfZGF5cyA9ID8sIGRhdGVfc3RhcnQgPSA/LCBkYXRlX2VuZCA9ID8sIG92ZXJ0aW1lID0gPywgd2Vla2x5X2hvdXJzID0gPywKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPwogICAgICAgICAgICAgICAgICAgIEFORCBwcmVmZXJlbmNlX3BlcmlvZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0xlYXZlRGF5c30sICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17RGF0ZVN0YXJ0fSwKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0RhdGVFbmR9LCAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17T3ZlcnRpbWV9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17V2Vla2x5SG91cnN9LCBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtVc2VyU3RhdHVzfSwKICAgICAgICAgICAgICAgIFwkVXNlcklELCBcJFBlcmlvZCwKICAgICAgICAgICAgICAgIF0KICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgV29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBhbmQKdGhlIGluZm9ybWF0aW9uIGlmIHRoZSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBhcmUgaW4gdGhlIGFsbG93ZWQKcmFuZ2UuCgogICAgbXkgJVdvcmtpbmdVbml0c0NoZWNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2sgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkVXNlcklEID0gJFBhcmFte1VzZXJJRH07CgogICAgbXkgJVVzZXJEYXRhID0gJFNlbGYtPlVzZXJHZXQoIFVzZXJJRCA9PiAkVXNlcklEICk7CiAgICBpZiAoICElVXNlckRhdGEgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdDb3VsZCBub3QgZ2V0IHVzZXIgZGF0YScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgU2tpcCBjaGVjayBmb3IgdXNlcnMgdGhhdCBhcmUgbm90IHJlcXVpcmVkIHRvIGxvZyB0aW1lcy4KICAgIHJldHVybiAoKSBpZiAkVXNlckRhdGF7QWxsb3dTa2lwfTsKCiAgICBteSAlRGF0YSAgICAgICAgICAgICAgICA9ICgpOwogICAgbXkgJFdvcmtpbmdVbml0SUQgICAgICAgPSAwOwogICAgbXkgJUNvbXBsZXRlV29ya2luZ0RheXMgPSAoKTsKCiAgICAjIGdldCB0aW1lIG9iamVjdAogICAgbXkgJERhdGVUaW1lT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAoCiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPntTZWNvbmR9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57TWludXRlfSwKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncy0+e0hvdXJ9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57RGF5fSwKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSwKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9LAogICAgKTsKCiAgICAjIFRPRE86IFNlYXJjaCBvbmx5IGluIHRoZSBDdXJyZW50VXNlclBlcmlvZAogICAgIyBUT0RPOiBTZWFyY2ggb25seSB3b3JraW5nIHVuaXRzIHdoZXJlIGFjdGlvbl9pZCBhbmQgcHJvamVjdF9pZCBpcyB0cnVlCgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIERJU1RJTkNUIHRpbWVfc3RhcnQKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFVzZXJJRCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBpZiAoICRSb3dbMF0gPX4gL14oXGQrKS0oXGQrKS0oXGQrKS8gKSB7CiAgICAgICAgICAgICRDb21wbGV0ZVdvcmtpbmdEYXlzeyQxfXskMn17JDN9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFNlbGYtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICBteSAkV29ya2luZ0RheXMgPSAwOwogICAgbXkgJFllYXJTdGFydCAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgID0gJFllYXI7CiAgICBteSAkTW9udGhFbmQgICAgPSAkTW9udGg7CiAgICBteSAkRGF5RW5kICAgICAgPSAkRGF5OwoKICAgIGlmICgKICAgICAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9CiAgICAgICAgJiYgJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9LT57RGF0ZVN0YXJ0fSA9fiAvXihcZCspLShcZCspLShcZCspLwogICAgICAgICkKICAgIHsKICAgICAgICAkWWVhclN0YXJ0ICA9ICQxOwogICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgJERheVN0YXJ0ICAgPSAkMzsKICAgIH0KCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkQ2FsZW5kYXIgPSAkVXNlckRhdGF7Q2FsZW5kYXJ9OwoKICAgIGZvciBteSAkWWVhciAoICRZZWFyU3RhcnQgLi4gJFllYXJFbmQgKSB7CgogICAgICAgIG15ICRNb250aFN0YXJ0UG9pbnQgPSAkWWVhciA9PSAkWWVhclN0YXJ0ID8gJE1vbnRoU3RhcnQgOiAxOwogICAgICAgIG15ICRNb250aEVuZFBvaW50ICAgPSAkWWVhciA9PSAkWWVhckVuZCAgID8gJE1vbnRoRW5kICAgOiAxMjsKCiAgICAgICAgZm9yIG15ICRNb250aCAoICRNb250aFN0YXJ0UG9pbnQgLi4gJE1vbnRoRW5kUG9pbnQgKSB7CgogICAgICAgICAgICBteSAkRGF5U3RhcnRQb2ludCA9ICRZZWFyID09ICRZZWFyU3RhcnQgJiYgJE1vbnRoID09ICRNb250aFN0YXJ0ID8gJERheVN0YXJ0IDogMTsKCiAgICAgICAgICAgIG15ICREYXlFbmRQb2ludDsKICAgICAgICAgICAgaWYgKCAkWWVhciA9PSAkWWVhckVuZCAmJiAkTW9udGggPT0gJE1vbnRoRW5kICkgewogICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJERheUVuZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICREYXlFbmRQb2ludCA9ICRTZWxmLT5EYXlzSW5Nb250aCggJFllYXIsICRNb250aCApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkTW9udGhTdHJpbmcgPSBzcHJpbnRmICIlMDJkIiwgJE1vbnRoOwoKICAgICAgICAgICAgZm9yIG15ICREYXkgKCAkRGF5U3RhcnRQb2ludCAuLiAkRGF5RW5kUG9pbnQgKSB7CgogICAgICAgICAgICAgICAgbXkgJFZhY2F0aW9uQ2hlY2sgPSAkU2VsZi0+VmFjYXRpb25DaGVjaygKICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgR2V0IGNhbGVuZGFyIHRpbWV6b25lIG9yIHVzZSB0aGUgb25lIG9mIHRpbWUtYWNjb3VudGluZyBvYmplY3QuCiAgICAgICAgICAgICAgICBteSAkVGltZVpvbmUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gKCAkQ2FsZW5kYXIgfHwgJycgKSApCiAgICAgICAgICAgICAgICAgICAgfHwgJFNlbGYtPntUaW1lWm9uZX07CgogICAgICAgICAgICAgICAgbXkgJERheVN0YXJ0VGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgICAgICAgICAgICAgSG91ciAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgTWludXRlICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgU2Vjb25kICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUgPT4gJFRpbWVab25lLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICREYXlTdG9wVGltZSA9ICREYXlTdGFydFRpbWUtPkNsb25lKCk7CiAgICAgICAgICAgICAgICAkRGF5U3RvcFRpbWUtPlNldCgKICAgICAgICAgICAgICAgICAgICBIb3VyICAgPT4gMjMsCiAgICAgICAgICAgICAgICAgICAgTWludXRlID0+IDU5LAogICAgICAgICAgICAgICAgICAgIFNlY29uZCA9PiA1OSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRvIHRoZSB0aW1lem9uZSBvZiB0aW1lLWFjY291bnRpbmcgb2JqZWN0LgogICAgICAgICAgICAgICAgJERheVN0YXJ0VGltZS0+VG9UaW1lWm9uZSgKICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkRGF5U3RvcFRpbWUtPlRvVGltZVpvbmUoCiAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgQ29udmVydCB0byBlcG9jaHMuCiAgICAgICAgICAgICAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZS0+VG9FcG9jaCgpOwogICAgICAgICAgICAgICAgJERheVN0b3BUaW1lICA9ICREYXlTdG9wVGltZS0+VG9FcG9jaCgpOwoKICAgICAgICAgICAgICAgICMgT0xEIENPREUKCiAgICAgICAgICAgICAgICAjbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICMgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAjICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAjICAgICAgICBZZWFyICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICMgICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICAgICAgICAgICMgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAjICAgIH0sCiAgICAgICAgICAgICAgICAjKTsKCiAgICAgICAgICAgICAgICAjbXkgJERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRZZWFyLCAkTW9udGgsICREYXk7CgogICAgICAgICAgICAgICAgI215ICREYXRlVGltZU9iamVjdFN0YXJ0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICMgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAjICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAjICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDAwOjAwOjAwJywKICAgICAgICAgICAgICAgICMgICAgfSwKICAgICAgICAgICAgICAgICMpOwogICAgICAgICAgICAgICAgI215ICREYXlTdGFydFRpbWUgPSAkRGF0ZVRpbWVPYmplY3RTdGFydC0+VG9FcG9jaCgpOwoKICAgICAgICAgICAgICAgICNteSAkRGF0ZVRpbWVPYmplY3RTdG9wID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICMgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgICAgICAjICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAjICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JywKICAgICAgICAgICAgICAgICMgICAgfSwKICAgICAgICAgICAgICAgICMpOwogICAgICAgICAgICAgICAgI215ICREYXlTdG9wVGltZSA9ICREYXRlVGltZU9iamVjdFN0b3AtPlRvRXBvY2goKTsKCiAgICAgICAgICAgICAgICAjIGFkZCB0aW1lIHpvbmUgdG8gY2FsY3VsYXRpb24KICAgICAgICAgICAgICAgICNteSAkWm9uZSA9ICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAoICRDYWxlbmRhciB8fCAnJyApICk7CiAgICAgICAgICAgICAgICAjaWYgKCRab25lKSB7CiAgICAgICAgICAgICAgICAjICAgIG15ICRab25lU2Vjb25kcyA9ICRab25lICogNjAgKiA2MDsKICAgICAgICAgICAgICAgICMgICAgJERheVN0YXJ0VGltZSA9ICREYXlTdGFydFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgICAgICAgICAjICAgICREYXlTdG9wVGltZSAgPSAkRGF5U3RvcFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgICAgICAgICAjfQoKICAgICAgICAgICAgICAgICMgRU5ECgogICAgICAgICAgICAgICAgbXkgJFRoaXNEYXlXb3JraW5nVGltZSA9ICRTZWxmLT5Xb3JraW5nVGltZSgKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgICBTdG9wVGltZSAgPT4gJERheVN0b3BUaW1lLAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyICA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICApIHx8ICcwJzsKCiAgICAgICAgICAgICAgICBteSAkRGF5U3RyaW5nID0gc3ByaW50ZiAiJTAyZCIsICREYXk7CgogICAgICAgICAgICAgICAgaWYgKCAkVGhpc0RheVdvcmtpbmdUaW1lICYmICEkVmFjYXRpb25DaGVjayApIHsKICAgICAgICAgICAgICAgICAgICAkV29ya2luZ0RheXMgKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkVGhpc0RheVdvcmtpbmdUaW1lCiAgICAgICAgICAgICAgICAgICAgJiYgISRWYWNhdGlvbkNoZWNrCiAgICAgICAgICAgICAgICAgICAgJiYgISRDb21wbGV0ZVdvcmtpbmdEYXlzeyRZZWFyfXskTW9udGhTdHJpbmd9eyREYXlTdHJpbmd9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGhTdHJpbmd9eyREYXlTdHJpbmd9ID0gJFdvcmtpbmdEYXlzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgbXkgJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMnKSB8fCAnNSc7CiAgICBteSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcKICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcnKQogICAgICAgIHx8ICczJzsKICAgIGZvciBteSAkWWVhciAoIHNvcnQga2V5cyAleyAkRGF0YXtJbmNvbXBsZXRlfSB9ICkgewoKICAgICAgICBmb3IgbXkgJE1vbnRoICggc29ydCBrZXlzICV7ICREYXRhe0luY29tcGxldGV9eyRZZWFyfSB9ICkgewoKICAgICAgICAgICAgZm9yIG15ICREYXkgKCBzb3J0IGtleXMgJXsgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aH0gfSApIHsKCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aH17JERheX0KICAgICAgICAgICAgICAgICAgICA8ICRXb3JraW5nRGF5cyAtICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe0VuZm9yY2VJbnNlcnR9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICgKICAgICAgICAgICAgICAgICAgICAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofXskRGF5fQogICAgICAgICAgICAgICAgICAgIDwgJFdvcmtpbmdEYXlzIC0gJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe1dhcm5pbmd9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBXb3JraW5nVW5pdHNHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgd29ya2luZyB1bml0cyBkYXRhCgogICAgbXkgJVdvcmtpbmdVbml0c0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoICA9PiAnNycsCiAgICAgICAgRGF5ICAgID0+ICcxMycsCiAgICAgICAgVXNlcklEID0+ICcxMjMnLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkRGF0ZSAgICAgID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwogICAgbXkgJERhdGVTdGFydCA9ICREYXRlIC4gIiAwMDowMDowMCI7CiAgICBteSAkRGF0ZVN0b3AgID0gJERhdGUgLiAiIDIzOjU5OjU5IjsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgYXNrIHRoZSBkYXRhYmFzZQogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBwcm9qZWN0X2lkLCBhY3Rpb25faWQsIHJlbWFyaywgdGltZV9zdGFydCwgdGltZV9lbmQsIHBlcmlvZAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8KICAgICAgICAgICAgICAgIEFORCB1c2VyX2lkID0gPwogICAgICAgICAgICBPUkRFUiBieSBpZCcsCiAgICAgICAgQmluZCA9PiBbIFwkRGF0ZVN0YXJ0LCBcJERhdGVTdG9wLCBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgbXkgJURhdGEgPSAoCiAgICAgICAgVG90YWwgPT4gMCwKICAgICAgICBEYXRlICA9PiAkRGF0ZSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgJFJvd1s0XSAhfiBte14gKC4rPykgXHMgKFxkKzpcZCspIDogKFxkKykgfXhtczsKCiAgICAgICAgIyBjaGVjayBpZiBpdCBpcyBhIHNwZWNpYWwgd29ya2luZyB1bml0CiAgICAgICAgaWYgKCAkUm93WzFdID09IC0xICkgewogICAgICAgICAgICBteSAkQWN0aW9uSUQgPSAkUm93WzJdOwoKICAgICAgICAgICAgJERhdGF7U2lja30gICAgID0gJEFjdGlvbklEID09IC0xID8gMSA6IDA7CiAgICAgICAgICAgICREYXRhe0xlYXZlRGF5fSA9ICRBY3Rpb25JRCA9PSAtMiA/IDEgOiAwOwogICAgICAgICAgICAkRGF0YXtPdmVydGltZX0gPSAkQWN0aW9uSUQgPT0gLTMgPyAxIDogMDsKCiAgICAgICAgICAgIG5leHQgUk9XOwogICAgICAgIH0KCiAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICQyOwogICAgICAgIG15ICRFbmRUaW1lICAgPSAnJzsKICAgICAgICBpZiAoICRSb3dbNV0gPX4gbXteKC4rPylccyhcZCs6XGQrKTooXGQrKX14bXMgKSB7CiAgICAgICAgICAgICRFbmRUaW1lID0gJDI7CgogICAgICAgICAgICAjIHJlcGxhY2UgMjM6NTk6NTkgd2l0aCAyNDowMAogICAgICAgICAgICBpZiAoICRFbmRUaW1lIGVxICcyMzo1OScgJiYgJDMgZXEgJzU5JyApIHsKICAgICAgICAgICAgICAgICRFbmRUaW1lID0gJzI0OjAwJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJVdvcmtpbmdVbml0ID0gKAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgUHJvamVjdElEID0+ICRSb3dbMV0sCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkUm93WzJdLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJFJvd1szXSwKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICRTdGFydFRpbWUsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkRW5kVGltZSwKICAgICAgICAgICAgUGVyaW9kICAgID0+IGRlZmluZWQoICRSb3dbNl0gKSA/IHNwcmludGYoICIlLjJmIiwgJFJvd1s2XSApIDogMCwKICAgICAgICApOwoKICAgICAgICAjIG9ubHkgY291bnQgY29tcGxldGUgd29ya2luZyB1bml0cwogICAgICAgIGlmICggJFJvd1sxXSAmJiAkUm93WzJdICkgewogICAgICAgICAgICAkRGF0YXtUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1BlcmlvZH07CiAgICAgICAgfQoKICAgICAgICBwdXNoIEB7ICREYXRhe1dvcmtpbmdVbml0c30gfSwgXCVXb3JraW5nVW5pdDsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBXb3JraW5nVW5pdHNJbnNlcnQoKQoKaW5zZXJ0IHdvcmtpbmcgdW5pdHMgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcwNycsCiAgICAgICAgRGF5ICAgPT4gJzAyJywKICAgICAgICBMZWF2ZURheSA9PiAxLCB8fCAwCiAgICAgICAgU2ljayAgICAgPT4gMSwgfHwgMAogICAgICAgIE92ZXJ0aW1lID0+IDEsIHx8IDAKICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gMSwKICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAyMywKICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU29tZVRleHQnLAogICAgICAgICAgICAgICAgU3RhcnRUaW1lID0+ICc3OjMwJywKICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnMTE6MDAnLAogICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc4LjUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7IC4uLi4uLiB9LAogICAgICAgIF0sCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzSW5zZXJ0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFllYXIgTW9udGggRGF5IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJXb3JraW5nVW5pdHNJbnNlcnQ6IE5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwoKICAgICMgYWRkIHNwZWNpYWwgdGltZSB3b3JraW5nIHVuaXRzCiAgICBteSAlU3BlY2lhbEFjdGlvbiA9ICgKICAgICAgICAnU2ljaycgICAgID0+ICctMScsCiAgICAgICAgJ0xlYXZlRGF5JyA9PiAnLTInLAogICAgICAgICdPdmVydGltZScgPT4gJy0zJywKICAgICk7CgogICAgRUxFTUVOVDoKICAgIGZvciBteSAkRWxlbWVudCAocXcoTGVhdmVEYXkgU2ljayBPdmVydGltZSkpIHsKCiAgICAgICAgbmV4dCBFTEVNRU5UIGlmICEkUGFyYW17JEVsZW1lbnR9OwoKICAgICAgICBteSAlVW5pdCA9ICgKICAgICAgICAgICAgUHJvamVjdElEID0+IC0xLAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gJFNwZWNpYWxBY3Rpb257JEVsZW1lbnR9LAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJycsCiAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAnJywKICAgICAgICAgICAgRW5kVGltZSAgID0+ICcnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMCwKICAgICAgICApOwoKICAgICAgICBwdXNoIEB7ICRQYXJhbXtXb3JraW5nVW5pdHN9IH0sIFwlVW5pdDsKICAgIH0KCiAgICAjIGluc2VydCBuZXcgd29ya2luZyB1bml0cwogICAgVU5JVFJFRjoKICAgIGZvciBteSAkVW5pdFJlZiAoIEB7ICRQYXJhbXtXb3JraW5nVW5pdHN9IH0gKSB7CgogICAgICAgIG15ICRTdGFydFRpbWUgPSAkRGF0ZSAuICcgJyAuICggJFVuaXRSZWYtPntTdGFydFRpbWV9IHx8ICcwMDowMCcgKSAuICc6MDAnOwogICAgICAgIG15ICRFbmRUaW1lICAgPSAkRGF0ZSAuICcgJyAuICggJFVuaXRSZWYtPntFbmRUaW1lfSAgIHx8ICcwMDowMCcgKSAuICc6MDAnOwoKICAgICAgICAjICcnIGRvZXMgbm90IHdvcmsgaW4gaW50ZWdlciBmaWVsZCBvZiBQb3N0Z3JlU1FMCiAgICAgICAgJFVuaXRSZWYtPntQcm9qZWN0SUR9IHx8PSAwOwogICAgICAgICRVbml0UmVmLT57QWN0aW9uSUR9ICB8fD0gMDsKICAgICAgICAkVW5pdFJlZi0+e1BlcmlvZH0gICAgfHw9IDA7CgogICAgICAgICMgYnVpbGQgRFFMCiAgICAgICAgbXkgJFNRTCA9ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3RhYmxlICh1c2VyX2lkLCBwcm9qZWN0X2lkLCBhY3Rpb25faWQsIHJlbWFyaywgdGltZV9zdGFydCwKICAgICAgICAgICAgICAgIHRpbWVfZW5kLCBwZXJpb2QsIGNyZWF0ZWQgKQogICAgICAgICAgICBWQUxVRVMgICggPywgPywgPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXApJzsKICAgICAgICBteSAkQmluZCA9IFsKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LCBcJFVuaXRSZWYtPntQcm9qZWN0SUR9LCBcJFVuaXRSZWYtPntBY3Rpb25JRH0sCiAgICAgICAgICAgIFwkVW5pdFJlZi0+e1JlbWFya30sIFwkU3RhcnRUaW1lLCBcJEVuZFRpbWUsIFwkVW5pdFJlZi0+e1BlcmlvZH0sCiAgICAgICAgXTsKCiAgICAgICAgIyBkYiBpbnNlcnQKICAgICAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgICAgICBCaW5kID0+ICRCaW5kCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFdvcmtpbmdVbml0c0RlbGV0ZSgpCgpkZWxldGVzIHdvcmtpbmcgdW5pdHMgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgWWVhciAgID0+ICcyMDE1JywKICAgICAgICBNb250aCAgPT4gJzcnLAogICAgICAgIERheSAgICA9PiAnMTMnLAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0RlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhZZWFyIE1vbnRoIERheSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiV29ya2luZ1VuaXRzSW5zZXJ0OiBOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGF0ZSAgICAgID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwogICAgbXkgJFN0YXJ0VGltZSA9ICREYXRlIC4gJyAwMDowMDowMCc7CiAgICBteSAkRW5kVGltZSAgID0gJERhdGUgLiAnIDIzOjU5OjU5JzsKCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBERUxFVEUgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdGltZV9zdGFydCA+PSA/CiAgICAgICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFN0YXJ0VGltZSwgXCRFbmRUaW1lLCBcJFBhcmFte1VzZXJJRH0sIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgUHJvamVjdEFjdGlvblJlcG9ydGluZygpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBob3VycyBkZXBlbmRlbnQgcHJvamVjdCBhbmQgYWN0aW9uIGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gMjAwNSwKICAgICAgICBNb250aCA9PiA3LAogICAgICAgIFVzZXJJRCA9PiAxMjMsICMgb3B0aW9uYWw7IG5vIFVzZXJJRCBtZWFucyAnb2YgYWxsIHVzZXJzJwogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoWWVhciBNb250aCkpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkREJPYmplY3QtPlF1b3RlKCAkUGFyYW17JFBhcmFtZXRlcn0gKSB8fCAnJzsKICAgICAgICBpZiAoICEkUGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJQcm9qZWN0QWN0aW9uUmVwb3J0aW5nOiBOZWVkICRQYXJhbWV0ZXIhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGhvdXJzIHBlciBtb250aAogICAgbXkgJERheXNJbk1vbnRoID0gJFNlbGYtPkRheXNJbk1vbnRoKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0gKTsKICAgIG15ICREYXRlU3RyaW5nID0gJFBhcmFte1llYXJ9IC4gIi0iIC4gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICBteSAkU1FMRGF0ZSA9ICIkRGF0ZVN0cmluZy0kRGF5c0luTW9udGggMjM6NTk6NTkiOwoKICAgIG15ICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcGVyaW9kCiAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICBXSEVSRSBwcm9qZWN0X2lkICE9IC0xCiAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8nOwogICAgbXkgQEJpbmQgPSAoIFwkU1FMRGF0ZSApOwoKICAgIGlmICggJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFNRTCAuPSAnIEFORCB1c2VyX2lkID0gPyc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtVc2VySUR9OwogICAgfQoKICAgICMgdG90YWwgaG91cnMKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgUk9XOgogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG5leHQgUk9XIGlmICEkUm93WzJdOwoKICAgICAgICAkRGF0YXsgJFJvd1swXSB9LT57QWN0aW9uc30tPnsgJFJvd1sxXSB9LT57VG90YWx9ICs9ICRSb3dbMl07CiAgICB9CgogICAgbXkgJFNRTERhdGVTdGFydCA9ICIkRGF0ZVN0cmluZy0wMSAwMDowMDowMCI7CgogICAgJFNRTCA9ICcKICAgICAgICBTRUxFQ1QgcHJvamVjdF9pZCwgYWN0aW9uX2lkLCBwZXJpb2QKICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgIFdIRVJFIHByb2plY3RfaWQgIT0gLTEKICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/JzsKICAgIEBCaW5kID0gKCBcJFNRTERhdGVTdGFydCwgXCRTUUxEYXRlICk7CgogICAgaWYgKCAkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU1FMIC49ICcgQU5EIHVzZXJfaWQgPSA/JzsKICAgICAgICBwdXNoIEBCaW5kLCBcJFBhcmFte1VzZXJJRH07CiAgICB9CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgUk9XOgogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG5leHQgUk9XIGlmICEkUm93WzJdOwoKICAgICAgICAkRGF0YXsgJFJvd1swXSB9LT57QWN0aW9uc30tPnsgJFJvd1sxXSB9LT57UGVyTW9udGh9ICs9ICRSb3dbMl07CiAgICB9CgogICAgIyBhZGQgcmVhZGFibGUgY29tcG9uZW50cwogICAgbXkgJVByb2plY3QgPSAkU2VsZi0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICBteSAlQWN0aW9uICA9ICRTZWxmLT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgIGZvciBteSAkUHJvamVjdElEICggc29ydCBrZXlzICVEYXRhICkgewoKICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e05hbWV9ICAgICAgICA9ICRQcm9qZWN0e1Byb2plY3R9LT57JFByb2plY3RJRH0gfHwgJyc7CiAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntTdGF0dXN9ICAgICAgPSAkUHJvamVjdHtQcm9qZWN0U3RhdHVzfS0+eyRQcm9qZWN0SUR9OwogICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57RGVzY3JpcHRpb259ID0gJFByb2plY3R7UHJvamVjdERlc2NyaXB0aW9ufS0+eyRQcm9qZWN0SUR9OwoKICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICREYXRheyRQcm9qZWN0SUR9LT57QWN0aW9uc307CgogICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXskQWN0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57QWN0aW9uc30tPnskQWN0aW9uSUR9LT57TmFtZX0gPSAkQWN0aW9ueyRBY3Rpb25JRH0tPntBY3Rpb259IHx8ICcnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBQcm9qZWN0VG90YWxIb3VycygpCgpyZXR1cm5zIHRoZSBzdW0gb2YgYWxsIGhvdXJzIHJlbGF0ZWQgdG8gYSBwcm9qZWN0CgogICAgbXkgJFByb2plY3RUb3RhbEhvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgICAgICBQcm9qZWN0SUQgID0+IDE1LAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0VG90YWxIb3VycyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtCiAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1Byb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgUHJvamVjdElEIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGFzayB0aGUgZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBTVU0ocGVyaW9kKQogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSBwcm9qZWN0X2lkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1Byb2plY3RJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRUb3RhbCA9IDA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVG90YWwgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkVG90YWw7Cn0KCj1oZWFkMiBQcm9qZWN0SGlzdG9yeSgpCgpyZXR1cm5zIGFuIGFycmF5IHdpdGggYWxsIFdvcmtpbmdVbml0cyByZWxhdGVkIHRvIGEgcHJvamVjdAoKICAgIG15IEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0SGlzdG9yeSgKICAgICAgICBQcm9qZWN0SUQgID0+IDE1LAogICAgKTsKClRoaXMgd291bGQgcmV0dXJuCgogICAgQFByb2plY3RIaXN0b3J5QXJyYXkgPSAoCiAgICAgICAgewogICAgICAgICAgICBJRCAgICAgICAgPT4gOTk5LAogICAgICAgICAgICBVc2VySUQgICAgPT4gMTUsCiAgICAgICAgICAgIFVzZXIgICAgICA9PiAnVG9tJywKICAgICAgICAgICAgQWN0aW9uSUQgID0+IDYsCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnbWlzYycsCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAncmVtYXJrJywKICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICc3OjAwJywKICAgICAgICAgICAgVGltZUVuZCAgID0+ICcxODowMCcsCiAgICAgICAgICAgIERhdGUgICAgICA9PiAnMjAwOC0xMC0zMScsICMgdGhlIGRhdGUgb2YgdGhlIHdvcmtpbmcgdW5pdAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMTEsCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAnMjAwOC0xMS0wMScsICMgdGhlIGluc2VydCB0aW1lIG9mIHRoZSB3b3JraW5nIHVuaXQKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgSUQgICAgICAgID0+IDk5OSwKICAgICAgICAgICAgVXNlcklEICAgID0+IDE2LAogICAgICAgICAgICBVc2VyICAgICAgPT4gJ01hbmUnLAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gNywKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdkZXZlbG9wbWVudCcsCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAncmVtYXJrJywKICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICc3OjAwJywKICAgICAgICAgICAgVGltZUVuZCAgID0+ICcxODowMCcsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAxMSwKICAgICAgICAgICAgRGF0ZSAgICAgID0+ICcyMDA4LTExLTAzJywKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICcyMDA4LTExLTAzJywKICAgICAgICB9CiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RIaXN0b3J5IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW0KICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnUHJvamVjdEFjdGlvblJlcG9ydGluZzogTmVlZCBQcm9qZWN0SUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNhbGwgYWN0aW9uIGRhdGEgdG8gZ2V0IHRoZSByZWFkYWJsZSBuYW1lIG9mIHRoZSBhY3Rpb24KICAgIG15ICVBY3Rpb25EYXRhID0gJFNlbGYtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgdXNlciBsaXN0CiAgICBteSAlU2hvd25Vc2VycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgYXNrIHRoZSBkYXRhYmFzZQogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZCwgdXNlcl9pZCwgYWN0aW9uX2lkLCByZW1hcmssIHRpbWVfc3RhcnQsIHRpbWVfZW5kLCBwZXJpb2QsIGNyZWF0ZWQKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgcHJvamVjdF9pZCA9ID8KICAgICAgICAgICAgT1JERVIgQlkgdGltZV9zdGFydCcsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17UHJvamVjdElEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG15ICRVc2VyUmVmID0gewogICAgICAgICAgICBJRCAgICAgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRSb3dbMV0sCiAgICAgICAgICAgIFVzZXIgICAgICA9PiAkU2hvd25Vc2Vyc3sgJFJvd1sxXSB9LAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gJFJvd1syXSwKICAgICAgICAgICAgQWN0aW9uICAgID0+ICRBY3Rpb25EYXRheyAkUm93WzJdIH17QWN0aW9ufSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICRSb3dbM10gfHwgJycsCiAgICAgICAgICAgIFRpbWVTdGFydCA9PiAkUm93WzRdLAogICAgICAgICAgICBUaW1lRW5kICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgRGF0ZSAgICAgID0+ICRSb3dbNF0sCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAkUm93WzZdLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJFJvd1s3XSwKICAgICAgICB9OwogICAgICAgICRVc2VyUmVmLT57RGF0ZX0gPX4gc3soXGRcZFxkXGQtXGRcZC1cZFxkKSBccyAuKyB9eyQxfXhtczsKCiAgICAgICAgcHVzaCBARGF0YSwgJFVzZXJSZWY7CiAgICB9CgogICAgcmV0dXJuIEBEYXRhOwp9Cgo9aGVhZDIgTGFzdFByb2plY3RzT2ZVc2VyKCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgbGFzdCBwcm9qZWN0cyBvZiB0aGUgY3VycmVudCB1c2VyCgogICAgbXkgQExhc3RQcm9qZWN0cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+TGFzdFByb2plY3RzT2ZVc2VyKAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIExhc3RQcm9qZWN0c09mVXNlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICMgSSBkb24ndCB1c2UgZGlzdGluY3QgYmVjYXVzZSBvZiBPUkRFUiBCWSBwcm9ibGVtcyBvZiBQb3N0Z3JlU1FMCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgcHJvamVjdF9pZCBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPwogICAgICAgICAgICAgICAgQU5EIHByb2plY3RfaWQgPD4gLTEKICAgICAgICAgICAgT1JERVIgQlkgdGltZV9zdGFydCBERVNDJywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgICAgIExpbWl0ID0+IDQwLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVQcm9qZWN0czsKICAgIG15ICRDb3VudGVyID0gMDsKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAkQ291bnRlciA+IDc7CiAgICAgICAgbmV4dCBST1cgaWYgJFByb2plY3RzeyAkUm93WzBdIH07CgogICAgICAgICRQcm9qZWN0c3sgJFJvd1swXSB9ID0gMTsKICAgICAgICAkQ291bnRlcisrOwogICAgfQoKICAgIHJldHVybiBrZXlzICVQcm9qZWN0czsKfQoKPWhlYWQyIERheU9mV2VlaygpCgpTdWJzdGl0dXRlIGZvciBEYXRlOjpQY2FsYzo6RGF5X29mX1dlZWsoKSB3aGljaCB1c2VzIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZS4KCj1jdXQKCnN1YiBEYXlPZldlZWsgewogICAgbXkgKCAkU2VsZiwgJFllYXIsICRNb250aCwgJERheSApID0gQF87CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICBUaW1lWm9uZSA9PiAnZmxvYXRpbmcnLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gImVycm9yIiwKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGNyZWF0aW5nIERhdGVUaW1lIG9iamVjdC4iLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkRGF0ZVRpbWVWYWx1ZXMgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIHJldHVybiAkRGF0ZVRpbWVWYWx1ZXMtPntEYXlPZldlZWt9Owp9Cgo9aGVhZDIgQWRkRGVsdGFZTUQoKQoKU3Vic3RpdHV0ZSBmb3IgRGF0ZTo6UGNhbGM6OkFkZF9EZWx0YV9ZTUQoKSB3aGljaCB1c2VzIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZS4KCj1jdXQKCnN1YiBBZGREZWx0YVlNRCB7CiAgICBteSAoICRTZWxmLCAkWWVhciwgJE1vbnRoLCAkRGF5LCAkWWVhcnNUb0FkZCwgJE1vbnRoc1RvQWRkLCAkRGF5c1RvQWRkICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgIFRpbWVab25lID0+ICdmbG9hdGluZycsCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAhJERhdGVUaW1lT2JqZWN0ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAiZXJyb3IiLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgY3JlYXRpbmcgRGF0ZVRpbWUgb2JqZWN0LiIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICggJFllYXIsICRNb250aCwgJERheSwgKTsKICAgIH0KCiAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICBZZWFycyAgPT4gJFllYXJzVG9BZGQgIHx8IDAsCiAgICAgICAgTW9udGhzID0+ICRNb250aHNUb0FkZCB8fCAwLAogICAgICAgIERheXMgICA9PiAkRGF5c1RvQWRkICAgfHwgMCwKICAgICk7CiAgICBteSAkRGF0ZVRpbWVWYWx1ZXMgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIHJldHVybiAoCiAgICAgICAgJERhdGVUaW1lVmFsdWVzLT57WWVhcn0sCiAgICAgICAgJERhdGVUaW1lVmFsdWVzLT57TW9udGh9LAogICAgICAgICREYXRlVGltZVZhbHVlcy0+e0RheX0sCiAgICApOwp9Cgo9aGVhZDIgRGF5c0luTW9udGgoKQoKU3Vic3RpdHV0ZSBmb3IgRGF0ZTo6UGNhbGM6OkRheXNfaW5fTW9udGgoKSB3aGljaCB1c2VzIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZS4KCj1jdXQKCnN1YiBEYXlzSW5Nb250aCB7CiAgICBteSAoICRTZWxmLCAkWWVhciwgJE1vbnRoICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICAgID0+IDEsCiAgICAgICAgICAgIFRpbWVab25lID0+ICdmbG9hdGluZycsCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAhJERhdGVUaW1lT2JqZWN0ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAiZXJyb3IiLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgY3JlYXRpbmcgRGF0ZVRpbWUgb2JqZWN0LiIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdC0+TGFzdERheU9mTW9udGhHZXQoKTsKCiAgICByZXR1cm4gJExhc3REYXlPZk1vbnRoLT57RGF5fTsKfQoKPWhlYWQyIFZhY2F0aW9uQ2hlY2soKQoKY2hlY2sgaWYgdGhlIHNlbGVjdGVkIGRheSBpcyBhIHZhY2F0aW9uIChpdCBkb2VzIG5vdCBtYXR0ZXIgaWYgeW91Cmluc2VydCAwMSBvciAxIGZvciBtb250aCBvciBkYXkgaW4gdGhlIGZ1bmN0aW9uIG9yIGluIHRoZSBTeXNDb25maWcpCgpyZXR1cm5zICh0cnVlKSB2YWNhdGlvbiBkYXkgaWYgZXhpc3RzLCByZXR1cm5zIGZhbHNlIGlmIGRhdGUgaXMgbm8KdmFjYXRpb24gZGF5CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgIFllYXIgICAgID0+IDIwMDUsCiAgICAgICAgTW9udGggICAgPT4gNyB8fCAnMDcnLAogICAgICAgIERheSAgICAgID0+IDEzLAogICAgKTsKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgWWVhciAgICAgPT4gMjAwNSwKICAgICAgICBNb250aCAgICA9PiA3IHx8ICcwNycsCiAgICAgICAgRGF5ICAgICAgPT4gMTMsCiAgICAgICAgQ2FsZW5kYXIgPT4gMywgIyAnJyBpcyBkZWZhdWx0OyAwIGlzIGhhbmRsZWQgbGlrZSAnJwogICAgKTsKCj1jdXQKCnN1YiBWYWNhdGlvbkNoZWNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbXMKICAgIGZvciAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlZhY2F0aW9uQ2hlY2s6IE5lZWQgJF8hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgfSwKICAgICk7CiAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBjcmVhdGluZyBEYXRlVGltZSBvYmplY3QuIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gJERhdGVUaW1lT2JqZWN0LT5Jc1ZhY2F0aW9uRGF5KAogICAgICAgIENhbGVuZGFyID0+ICRQYXJhbXtDYWxlbmRhcn0sCiAgICApOwp9Cgo9aGVhZDIgV29ya2luZ1RpbWUoKQoKZ2V0IHRoZSB3b3JraW5nIHRpbWUgaW4gc2Vjb25kcyBiZXR3ZWVuIHRoZXNlIGxvY2FsIHN5c3RlbSB0aW1lcy4KCiAgICBteSAkV29ya2luZ1RpbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgIFN0YXJ0VGltZSA9PiAkQ3JlYXRlZCwKICAgICAgICBTdG9wVGltZSAgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgbXkgJFdvcmtpbmdUaW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVGltZSgKICAgICAgICBTdGFydFRpbWUgPT4gJENyZWF0ZWQsCiAgICAgICAgU3RvcFRpbWUgID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgQ2FsZW5kYXIgID0+IDMsICMgJycgaXMgZGVmYXVsdAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVGltZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KFN0YXJ0VGltZSBTdG9wVGltZSkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRfISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDAgaWYgJFBhcmFte1N0YXJ0VGltZX0gPj0gJFBhcmFte1N0b3BUaW1lfTsKCiAgICBteSAkU3RhcnREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgRXBvY2ggICAgPT4gJFBhcmFte1N0YXJ0VGltZX0sCiAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICRTdG9wRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIEVwb2NoICAgID0+ICRQYXJhbXtTdG9wVGltZX0sCiAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICREZWx0YSA9ICRTdGFydERhdGVUaW1lT2JqZWN0LT5EZWx0YSgKICAgICAgICBEYXRlVGltZU9iamVjdCA9PiAkU3RvcERhdGVUaW1lT2JqZWN0LAogICAgICAgIEZvcldvcmtpbmdUaW1lID0+IDEsCiAgICAgICAgQ2FsZW5kYXIgICAgICAgPT4gJFBhcmFte0NhbGVuZGFyfSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJERlbHRhKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9yIGNhbGN1bGF0aW5nIHdvcmtpbmcgdGltZS4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiAkRGVsdGEtPntBYnNvbHV0ZVNlY29uZHN9Owp9Cgo9aGVhZDIgU3lzdGVtVGltZTJEYXRlKCkKCmNvbnZlcnRzIGEgc3lzdGVtIHRpbWUgdG8gYSBzdHJ1Y3R1cmVkIGRhdGUgYXJyYXkuCgogICAgbXkgKCRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyLCAkV2Vla0RheSkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKJFdlZWtEYXkgaXMgdGhlIGRheSBvZiB0aGUgd2Vlaywgd2l0aCAwIGluZGljYXRpbmcgU3VuZGF5IGFuZCAzIGluZGljYXRpbmcgV2VkbmVzZGF5LgoKPWN1dAoKc3ViIFN5c3RlbVRpbWUyRGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtTeXN0ZW1UaW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgU3lzdGVtVGltZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgRXBvY2ggPT4gJFBhcmFte1N5c3RlbVRpbWV9LAogICAgICAgIH0sCiAgICApOwoKICAgICREYXRlVGltZU9iamVjdC0+VG9UaW1lWm9uZSggVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0gKTsKCiAgICBteSAkRGF0ZVRpbWVWYWx1ZXMgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIG15ICRZZWFyICA9ICREYXRlVGltZVZhbHVlcy0+e1llYXJ9OwogICAgbXkgJE1vbnRoID0gc3ByaW50ZiAiJTAyZCIsICREYXRlVGltZVZhbHVlcy0+e01vbnRofTsKICAgIG15ICREYXkgICA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntEYXl9OwogICAgbXkgJEhvdXIgID0gc3ByaW50ZiAiJTAyZCIsICREYXRlVGltZVZhbHVlcy0+e0hvdXJ9OwogICAgbXkgJE1pbiAgID0gc3ByaW50ZiAiJTAyZCIsICREYXRlVGltZVZhbHVlcy0+e01pbnV0ZX07CiAgICBteSAkU2VjICAgPSBzcHJpbnRmICIlMDJkIiwgJERhdGVUaW1lVmFsdWVzLT57U2Vjb25kfTsKCiAgICBteSAkV0RheSA9ICREYXRlVGltZVZhbHVlcy0+e0RheU9mV2Vla30gPT0gNyA/IDAgOiAkRGF0ZVRpbWVWYWx1ZXMtPntEYXlPZldlZWt9OwoKICAgIHJldHVybiAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyLCAkV0RheSApOwp9Cgo9aGVhZDIgRGF5T2ZXZWVrVG9OYW1lKCkKCkNvbnZlcnQgYSBkYXkgbnVtYmVyIGludG8gdGhlIGRheSBuYW1lCgogICAgbXkgJERheU5hbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2Vla1RvTmFtZSgKICAgICAgICBOdW1iZXIgPT4gMSAjIHdpbGwgcmV0dXJuICdNb25kYXknCiAgICApOwoKPWN1dAoKc3ViIERheU9mV2Vla1RvTmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtOdW1iZXJ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBOdW1iZXIhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoICFJc1Bvc2l0aXZlSW50ZWdlciggJFBhcmFte051bWJlcn0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk51bWJlciBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCAkUGFyYW17TnVtYmVyfSA+IDcgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOdW1iZXIgbXVzdCBub3QgYmUgZ3JhdGVyIHRoYW4gNyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15IEBEYXlOYW1lcyA9ICgKICAgICAgICAnTW9uZGF5JywKICAgICAgICAnVHVlc2RheScsCiAgICAgICAgJ1dlZG5lc2RheScsCiAgICAgICAgJ1RodXJzZGF5JywKICAgICAgICAnRnJpZGF5JywKICAgICAgICAnU2F0dXJkYXknLAogICAgICAgICdTdW5kYXknCiAgICApOwoKICAgIHJldHVybiAkRGF5TmFtZXNbICRQYXJhbXtOdW1iZXJ9IC0gMSBdOwp9Cgo9aGVhZDIgRGF0ZTJTeXN0ZW1UaW1lKCkKCmNvbnZlcnRzIGEgc3RydWN0dXJlZCBkYXRlIGFycmF5IHRvIHN5c3RlbSB0aW1lIG9mIE9UUlMuCgogICAgbXkgJFN5c3RlbVRpbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICBZZWFyICAgPT4gMjAwNCwKICAgICAgICBNb250aCAgPT4gOCwKICAgICAgICBEYXkgICAgPT4gMTQsCiAgICAgICAgSG91ciAgID0+IDIyLAogICAgICAgIE1pbnV0ZSA9PiA0NSwKICAgICAgICBTZWNvbmQgPT4gMCwKICAgICk7Cgo9Y3V0CgpzdWIgRGF0ZTJTeXN0ZW1UaW1lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciAocXcoWWVhciBNb250aCBEYXkgSG91ciBNaW51dGUgU2Vjb25kKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJF8hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAhJERhdGVUaW1lT2JqZWN0ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAiSW52YWxpZCBEYXRlICckUGFyYW17WWVhcn0tJFBhcmFte01vbnRofS0kUGFyYW17RGF5fSAkUGFyYW17SG91cn06JFBhcmFte01pbnV0ZX06JFBhcmFte1NlY29uZH0nISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFN5c3RlbVRpbWUgPSAkRGF0ZVRpbWVPYmplY3QtPlRvRXBvY2goKTsKCiAgICByZXR1cm4gJFN5c3RlbVRpbWU7Cn0KCj1oZWFkMiBUaW1lU3RhbXAyU3lzdGVtVGltZSgpCgpjb252ZXJ0cyBhIGdpdmVuIHRpbWUgc3RhbXAgdG8gbG9jYWwgc3lzdGVtIHRpbWUuCgogICAgbXkgJFN5c3RlbVRpbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgIFN0cmluZyA9PiAnMjAwNC0wOC0xNCAyMjo0NTowMCcsCiAgICApOwoKPWN1dAoKc3ViIFRpbWVTdGFtcDJTeXN0ZW1UaW1lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtTdHJpbmd9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBTdHJpbmchJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkU3lzdGVtVGltZSA9IDA7CgogICAgIyBtYXRjaCBpc28gZGF0ZSBmb3JtYXQKICAgIGlmICggJFBhcmFte1N0cmluZ30gPX4gLyhcZHs0fSktKFxkezEsMn0pLShcZHsxLDJ9KVxzKFxkezEsMn0pOihcZHsxLDJ9KTooXGR7MSwyfSkvICkgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQxLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgbWF0Y2ggaXNvIGRhdGUgZm9ybWF0ICh3cm9uZyBmb3JtYXQpCiAgICBlbHNpZiAoICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7MSwyfSktKFxkezEsMn0pLShcZHs0fSlccyhcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pLyApIHsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkMywKICAgICAgICAgICAgTW9udGggID0+ICQyLAogICAgICAgICAgICBEYXkgICAgPT4gJDEsCiAgICAgICAgICAgIEhvdXIgICA9PiAkNCwKICAgICAgICAgICAgTWludXRlID0+ICQ1LAogICAgICAgICAgICBTZWNvbmQgPT4gJDYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hdGNoIGV1cm8gdGltZSBmb3JtYXQKICAgIGVsc2lmICggJFBhcmFte1N0cmluZ30gPX4gLyhcZHsxLDJ9KVwuKFxkezEsMn0pXC4oXGR7NH0pXHMoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KS8gKSB7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDMsCiAgICAgICAgICAgIE1vbnRoICA9PiAkMiwKICAgICAgICAgICAgRGF5ICAgID0+ICQxLAogICAgICAgICAgICBIb3VyICAgPT4gJDQsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAkNSwKICAgICAgICAgICAgU2Vjb25kID0+ICQ2LAogICAgICAgICk7CiAgICB9CgogICAgIyBtYXRjaCB5eXl5LW1tLWRkVGhoOm1tOnNzK3R0Onp6IHRpbWUgZm9ybWF0CiAgICBlbHNpZiAoCiAgICAgICAgJFBhcmFte1N0cmluZ30KICAgICAgICA9fiAvKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pVChcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pKFwrfFwtKSgoXGR7MSwyfSk6KFxkezEsMn0pKS9pCiAgICAgICAgKQogICAgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQxLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgbWF0Y2ggbWFpbCB0aW1lIGZvcm1hdAogICAgZWxzaWYgKAogICAgICAgICRQYXJhbXtTdHJpbmd9CiAgICAgICAgPX4gLygoLi4uKSxccyt8KShcZHsxLDJ9KVxzKC4uLilccyhcZHs0fSlccyhcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pXHMoKFwrfFwtKShcZHsyfSkoXGR7Mn0pfC4uLikvCiAgICAgICAgKQogICAgewogICAgICAgIG15IEBNb250aE1hcCAgICA9IHF3L0phbiBGZWIgTWFyIEFwciBNYXkgSnVuIEp1bCBBdWcgU2VwIE9jdCBOb3YgRGVjLzsKICAgICAgICBteSAkTW9udGggICAgICAgPSAxOwogICAgICAgIG15ICRNb250aFN0cmluZyA9ICQ0OwogICAgICAgIGZvciBteSAkTW9udGhDb3VudCAoIDAgLi4gJCNNb250aE1hcCApIHsKICAgICAgICAgICAgaWYgKCAkTW9udGhTdHJpbmcgPX4gLyRNb250aE1hcFskTW9udGhDb3VudF0vaSApIHsKICAgICAgICAgICAgICAgICRNb250aCA9ICRNb250aENvdW50ICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkNSwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICQzLAogICAgICAgICAgICBIb3VyICAgPT4gJDYsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAkNywKICAgICAgICAgICAgU2Vjb25kID0+ICQ4LAogICAgICAgICk7ICAgICMgKyAkU2VsZi0+e1RpbWVTZWNEaWZmfTsKICAgIH0KICAgIGVsc2lmICggICAgIyBtYXRjaCB5eXl5LW1tLWRkVGhoOm1tOnNzWgogICAgICAgICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSlUKFxkezEsMn0pOihcZHsxLDJ9KTooXGR7MSwyfSlaJC8KICAgICAgICApCiAgICB7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDEsCiAgICAgICAgICAgIE1vbnRoICA9PiAkMiwKICAgICAgICAgICAgRGF5ICAgID0+ICQzLAogICAgICAgICAgICBIb3VyICAgPT4gJDQsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAkNSwKICAgICAgICAgICAgU2Vjb25kID0+ICQ2LAogICAgICAgICk7CiAgICB9CgogICAgIyByZXR1cm4gZXJyb3IKICAgIGlmICggIWRlZmluZWQgJFN5c3RlbVRpbWUgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIERhdGUgJyRQYXJhbXtTdHJpbmd9JyEiLAogICAgICAgICk7CiAgICB9CgogICAgIyByZXR1cm4gc3lzdGVtIHRpbWUKICAgIHJldHVybiAkU3lzdGVtVGltZTsKCn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIEdldE9iamVjdE5hbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gJ1RpbWVBY2NvdW50aW5nJzsKfQoKc3ViIEdldE9iamVjdEF0dHJpYnV0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyBzZXQgcHJlZGVmaW5lZCBzdGFydCB0aW1lCiAgICBteSAkVGltZVN0YW1wID0gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpOwogICAgbXkgKCREYXRlKSA9IHNwbGl0IC9ccysvLCAkVGltZVN0YW1wOwogICAgbXkgJFRvZGF5ID0gc3ByaW50ZiAiJXMgMjM6NTk6NTkiLCAkRGF0ZTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBwcm9qZWN0IGxpc3QKICAgIG15ICVQcm9qZWN0TGlzdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdldCBhY3Rpb24gbGlzdAogICAgbXkgJUFjdGlvbkxpc3RTb3VyY2UgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CiAgICBteSAlQWN0aW9uTGlzdDsKCiAgICBmb3IgbXkgJEFjdGlvbiAoIHNvcnQga2V5cyAlQWN0aW9uTGlzdFNvdXJjZSApIHsKICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9ufSA9ICRBY3Rpb25MaXN0U291cmNleyRBY3Rpb259LT57QWN0aW9ufTsKICAgIH0KCiAgICAjIGdldCB1c2VyIGxpc3QKICAgIG15ICVVc2VyTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSBAQXR0cmlidXRlcyA9ICgKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0JyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAwLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+ICRQcm9qZWN0TGlzdHtQcm9qZWN0fSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1VzZXInKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnVXNlcicsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVVc2VyTGlzdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1NvcnQgc2VxdWVuY2UnKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMCwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnU29ydFNlcXVlbmNlJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgVXAgICA9PiAnYXNjZW5kaW5nJywKICAgICAgICAgICAgICAgIERvd24gPT4gJ2Rlc2NlbmRpbmcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnVGFzaycpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdQcm9qZWN0QWN0aW9uJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiBcJUFjdGlvbkxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdQZXJpb2QnKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUGVyaW9kJywKICAgICAgICAgICAgVGltZVBlcmlvZEZvcm1hdCA9PiAnRGF0ZUlucHV0Rm9ybWF0JywgICAgICAgICMgJ0RhdGVJbnB1dEZvcm1hdExvbmcnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdUaW1lJywKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBUaW1lU3RhcnQgPT4gJ1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnQnLAogICAgICAgICAgICAgICAgVGltZVN0b3AgID0+ICdUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3AnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiBAQXR0cmlidXRlczsKfQoKc3ViIEdldEhlYWRlckxpbmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15IEBIZWFkZXJMaW5lID0gKCIiKTsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgdXNlcnMKICAgICAgICBVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CiAgICAgICAgICAgIG15ICRVc2VyTmFtZSA9ICRVc2VyT2JqZWN0LT5Vc2VyTmFtZSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcHVzaCBASGVhZGVyTGluZSwgJFVzZXJOYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewogICAgICAgICMgcHJvamVjdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAUHJvamVjdElEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CiAgICAgICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgIElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBIZWFkZXJMaW5lLCAkUHJvamVjdERhdGF7UHJvamVjdH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcQEhlYWRlckxpbmU7Cn0KCnN1YiBHZXRTdGF0VGFibGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15IEBTdGF0QXJyYXk7CiAgICBteSBAVXNlcklEczsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCBzdGF0IGRhdGEKICAgICAgICBteSAkU3RhdERhdGEgPSAkU2VsZi0+X0dldFN0YXREYXRhKAogICAgICAgICAgICBQYXJhbSAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRHMgPT4gXEBVc2VySURzLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc3RhdCBkYXRhCiAgICAgICAgcmV0dXJuIGlmICEkU3RhdERhdGE7CiAgICAgICAgcmV0dXJuIGlmIHJlZiAkU3RhdERhdGEgbmUgJ0FSUkFZJzsKCiAgICAgICAgbXkgQFJhd1N0YXRBcnJheSA9IEB7JFN0YXREYXRhfTsKICAgICAgICByZXR1cm4gaWYgIUBSYXdTdGF0QXJyYXk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJVByb2plY3RMaXN0ID0gJXsgJFByb2plY3REYXRhe1Byb2plY3R9IHx8IHt9IH07CgogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVBY3Rpb25MaXN0ID0gbWFwIHsgKCAkXyA9PiAkQWN0aW9uRGF0YXskX30tPntBY3Rpb259ICkgfSBrZXlzICVBY3Rpb25EYXRhOwoKICAgICAgICBteSBAU29ydGVkUHJvamVjdElEcyA9IHNvcnQgeyAkUHJvamVjdExpc3R7JGF9IGNtcCAkUHJvamVjdExpc3R7JGJ9IH0ga2V5cyAlUHJvamVjdExpc3Q7CiAgICAgICAgbXkgQFNvcnRlZEFjdGlvbklEcyAgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwoKICAgICAgICAjIHJlLXNvcnQgcHJvamVjdHMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFByb2plY3RJRHMgPSByZXZlcnNlIEBTb3J0ZWRQcm9qZWN0SURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHByb2plY3QgbGlzdAogICAgICAgIFNPUlRFRFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFByb2plY3RJRCAoQFNvcnRlZFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkUHJvamVjdElEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEUFJPSkVDVElEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCB0aGUgY3VycmVudCBwcm9qZWN0IGRhdGEgb2YgY3VycmVudCBwcm9qZWN0CiAgICAgICAgICAgIG15IEBQcm9qZWN0U3RhdERhdGEgPSBncmVwIHsgJF8tPntQcm9qZWN0SUR9ID09ICRTb3J0ZWRQcm9qZWN0SUQgfSBAUmF3U3RhdEFycmF5OwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIGFjdGlvbiBsaXN0CiAgICAgICAgICAgIFNPUlRFREFDVElPTklEOgogICAgICAgICAgICBmb3IgbXkgJFNvcnRlZEFjdGlvbklEIChAU29ydGVkQWN0aW9uSURzKSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufQogICAgICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZEFjdGlvbklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB8fCBbXSB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5leHQgU09SVEVEQUNUSU9OSUQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgYWN0aW9uIG91dCBvZiB0aGUgY3VycmVudCBwcm9qZWN0CiAgICAgICAgICAgICAgICBteSBAQWN0aW9uU3RhdERhdGEgPSBncmVwIHsgJF8tPntBY3Rpb25JRH0gPT0gJFNvcnRlZEFjdGlvbklEIH0gQFByb2plY3RTdGF0RGF0YTsKCiAgICAgICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICIkUHJvamVjdExpc3R7JFNvcnRlZFByb2plY3RJRH06OiRBY3Rpb25MaXN0eyRTb3J0ZWRBY3Rpb25JRH0iOwogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgICAgICBVU0VSSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBnZXQgJzAnIGZvciB1c2VyIGRhdGEKICAgICAgICAgICAgICAgICAgICBteSAkVXNlclBlcmlvZFN1bSA9IDA7CgogICAgICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHBlcmlvZCBkYXRhIG9mIHVzZXIKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFBlcmlvZERhdGEgKCBncmVwIHsgJF8tPntVc2VySUR9ID09ICRVc2VySUQgfSBAQWN0aW9uU3RhdERhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRVc2VyUGVyaW9kU3VtICs9ICRQZXJpb2REYXRhLT57UGVyaW9kfTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkVXNlclBlcmlvZFN1bTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewoKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyB3ZSBuZWVkIHRvIGdldCBhbGwgdXNlcnMKICAgICAgICBteSAlVXNlcklEcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ1Nob3J0JywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBAVXNlcklEcyA9IGtleXMgJVVzZXJJRHM7CgogICAgICAgICMgZ2V0IGNhbGN1bGF0ZWQgc3RhdHMgZGF0YQogICAgICAgIG15ICRTdGF0RGF0YSA9ICRTZWxmLT5fR2V0U3RhdERhdGEoCiAgICAgICAgICAgIFBhcmFtICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgVXNlcklEcyA9PiBcQFVzZXJJRHMsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBzdGF0IGRhdGEKICAgICAgICByZXR1cm4gaWYgISRTdGF0RGF0YTsKICAgICAgICByZXR1cm4gaWYgcmVmICRTdGF0RGF0YSBuZSAnQVJSQVknOwoKICAgICAgICBteSBAUmF3U3RhdEFycmF5ID0gQHskU3RhdERhdGF9OwogICAgICAgIHJldHVybiBpZiAhQFJhd1N0YXRBcnJheTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVVc2VyTGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15IEBTb3J0ZWRVc2VySURzID0gc29ydCB7ICRVc2VyTGlzdHskYX0gY21wICRVc2VyTGlzdHskYn0gfSBrZXlzICVVc2VyTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHVzZXJzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRVc2VySURzID0gcmV2ZXJzZSBAU29ydGVkVXNlcklEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCB1c2VyIGxpc3QKICAgICAgICBTT1JURURVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRVc2VySUQgKEBTb3J0ZWRVc2VySURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFVzZXJJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFVTRVJJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgdXNlciBkYXRhIG9mIGN1cnJlbnQgdXNlcgogICAgICAgICAgICBteSBAVXNlclN0YXREYXRhID0gZ3JlcCB7ICRfLT57VXNlcklEfSA9PSAkU29ydGVkVXNlcklEIH0gQFJhd1N0YXRBcnJheTsKCiAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICRVc2VyTGlzdHskU29ydGVkVXNlcklEfTsKICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgUFJPSkVDVElEOgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoQFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICAgICAjIGF0IGxlYXN0IGdldCAnMCcgZm9yIHVzZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJFByb2plY3RQZXJpb2RTdW0gPSAwOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHBlcmlvZCBkYXRhIG9mIHVzZXIKICAgICAgICAgICAgICAgIGZvciBteSAkUGVyaW9kRGF0YSAoIGdyZXAgeyAkXy0+e1Byb2plY3RJRH0gPT0gJFByb2plY3RJRCB9IEBVc2VyU3RhdERhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RQZXJpb2RTdW0gKz0gJFBlcmlvZERhdGEtPntQZXJpb2R9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRQcm9qZWN0UGVyaW9kU3VtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgIH0KCiAgICB9CgogICAgcmV0dXJuIEBTdGF0QXJyYXk7Cn0KCnN1YiBHZXRTdGF0VGFibGVQcmV2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFN0YXRBcnJheTsKICAgIG15IEBVc2VySURzOwoKICAgICMgVXNlcnMgYXMgWC12YWx1ZQogICAgaWYgKCAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9ICYmICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gZXEgJ1VzZXInICkgewoKICAgICAgICAjIHVzZXIgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBAVXNlcklEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJVByb2plY3RMaXN0ID0gJXsgJFByb2plY3REYXRhe1Byb2plY3R9IHx8IHt9IH07CgogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVBY3Rpb25MaXN0ID0gbWFwIHsgKCAkXyA9PiAkQWN0aW9uRGF0YXskX30tPntBY3Rpb259ICkgfSBrZXlzICVBY3Rpb25EYXRhOwoKICAgICAgICBteSBAU29ydGVkUHJvamVjdElEcyA9IHNvcnQgeyAkUHJvamVjdExpc3R7JGF9IGNtcCAkUHJvamVjdExpc3R7JGJ9IH0ga2V5cyAlUHJvamVjdExpc3Q7CiAgICAgICAgbXkgQFNvcnRlZEFjdGlvbklEcyAgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwoKICAgICAgICAjIHJlLXNvcnQgcHJvamVjdHMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFByb2plY3RJRHMgPSByZXZlcnNlIEBTb3J0ZWRQcm9qZWN0SURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHByb2plY3QgbGlzdAogICAgICAgIFNPUlRFRFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFByb2plY3RJRCAoQFNvcnRlZFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkUHJvamVjdElEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEUFJPSkVDVElEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgYWN0aW9uIGxpc3QKICAgICAgICAgICAgU09SVEVEQUNUSU9OSUQ6CiAgICAgICAgICAgIGZvciBteSAkU29ydGVkQWN0aW9uSUQgKEBTb3J0ZWRBY3Rpb25JRHMpIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259CiAgICAgICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkQWN0aW9uSUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IHx8IFtdIH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1JURURBQ1RJT05JRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICIkUHJvamVjdExpc3R7JFNvcnRlZFByb2plY3RJRH06OiRBY3Rpb25MaXN0eyRTb3J0ZWRBY3Rpb25JRH0iOwogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgICAgICBVU0VSSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsIGludCByYW5kIDUwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgUHJvamVjdHMgYXMgWC12YWx1ZQogICAgZWxzZSB7CgogICAgICAgICMgcHJvamVjdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAUHJvamVjdElEcyA9IEB7ICRQYXJhbXtYVmFsdWV9e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyB3ZSBuZWVkIHRvIGdldCBhbGwgdXNlcnMKICAgICAgICBteSAlVXNlcklEcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ1Nob3J0JywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBAVXNlcklEcyA9IGtleXMgJVVzZXJJRHM7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSBAU29ydGVkVXNlcklEcyA9IHNvcnQgeyAkVXNlckxpc3R7JGF9IGNtcCAkVXNlckxpc3R7JGJ9IH0ga2V5cyAlVXNlckxpc3Q7CgogICAgICAgICMgcmUtc29ydCB1c2VycyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkVXNlcklEcyA9IHJldmVyc2UgQFNvcnRlZFVzZXJJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgdXNlciBsaXN0CiAgICAgICAgU09SVEVEVVNFUklEOgogICAgICAgIGZvciBteSAkU29ydGVkVXNlcklEIChAU29ydGVkVXNlcklEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCB1c2VycwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRVc2VySUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURVU0VSSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICRVc2VyTGlzdHskU29ydGVkVXNlcklEfTsKICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgUFJPSkVDVElEOgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoQFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCBpbnQgcmFuZCA1MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIEBTdGF0QXJyYXk7Cn0KCnN1YiBFeHBvcnRXcmFwcGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIHdyYXAgaWRzIHRvIHVzZWQgc3BlbGxpbmcKICAgIGZvciBteSAkVXNlIChxdyhVc2VBc1ZhbHVlU2VyaWVzIFVzZUFzUmVzdHJpY3Rpb24gVXNlQXNYdmFsdWUpKSB7CgogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQ7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdVc2VyJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdCcgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVUbXBQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgSUQgPT4gJElELT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFRtcFByb2plY3REYXRhe1Byb2plY3R9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0QWN0aW9uJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJVRtcEFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgICAgICAgICAgSUQgPT4gJElELT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFRtcEFjdGlvbkRhdGF7QWN0aW9ufTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgSW1wb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyB3cmFwIHVzZWQgc3BlbGxpbmcgdG8gaWRzCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQ7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdVc2VyJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCRVc2VySUQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVXNlcklEOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCB0aGUgdXNlciAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdCcgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRJRC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHJvamVjdHtJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFByb2plY3R7SUR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCBwcm9qZWN0ICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJElEID0gdW5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0QWN0aW9uJyApIHsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlQWN0aW9uID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggJEFjdGlvbntJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJEFjdGlvbntJRH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJyBmaW5kIGFjdGlvbiAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgR2V0RXh0ZW5kZWRUaXRsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9IHx8ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdG9wfTsKCiAgICBteSAlRGF0ZUluZGV4VG9OYW1lID0gKAogICAgICAgICdTZWNvbmQnID0+IDAsCiAgICAgICAgJ01pbnV0ZScgPT4gMSwKICAgICAgICAnSG91cicgICA9PiAyLAogICAgICAgICdEYXknICAgID0+IDMsCiAgICAgICAgJ01vbnRoJyAgPT4gNCwKICAgICAgICAnWWVhcicgICA9PiA1LAogICAgKTsKCiAgICBteSAlUHJldmlvdXNNb250aERhdGVzID0gJFNlbGYtPl9HZXRQcmV2aW91c01vbnRoRGF0ZXMoCiAgICAgICAgRGF0ZUluZGV4VG9OYW1lID0+IFwlRGF0ZUluZGV4VG9OYW1lLAogICAgKTsKCiAgICBteSAkU3RhcnREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAiLCAkUHJldmlvdXNNb250aERhdGVze05ld1N0YXJ0RGF0ZX0tPlswXSwKICAgICAgICAkUHJldmlvdXNNb250aERhdGVze05ld1N0YXJ0RGF0ZX0tPlsxXSwgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdGFydERhdGV9LT5bMl07CiAgICBteSAkU3RvcERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCAwMDowMDowMCIsICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RvcERhdGV9LT5bMF0sCiAgICAgICAgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsxXSwgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsyXTsKCiAgICByZXR1cm4gIiRTdGFydERhdGUtJFN0b3BEYXRlIjsKfQoKc3ViIF9HZXRTdGF0RGF0YSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBSZXR1cm47CiAgICBteSBAVXNlcklEcyA9IEB7ICRQYXJhbXtVc2VySURzfSB8fCBbXSB9OwoKICAgIG15ICVEYXRlSW5kZXhUb05hbWUgPSAoCiAgICAgICAgJ1NlY29uZCcgPT4gMCwKICAgICAgICAnTWludXRlJyA9PiAxLAogICAgICAgICdIb3VyJyAgID0+IDIsCiAgICAgICAgJ0RheScgICAgPT4gMywKICAgICAgICAnTW9udGgnICA9PiA0LAogICAgICAgICdZZWFyJyAgID0+IDUsCiAgICApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgbG9vcGluZyBvdmVyIGFsbCBvciBzZWxlY3RlZCB1c2VycwogICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgIG15ICRTdGFydERhdGU7CiAgICAgICAgbXkgJFN0b3BEYXRlOwoKICAgICAgICAjIGNoZWNrIGlmIHRpbWUgcGVyaW9kIGhhcyBiZWVuIHNlbGVjdGVkCiAgICAgICAgaWYgKCAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9ICkgewoKICAgICAgICAgICAgIyBnZXQgVU5JWCB0aW1lLXN0YW1wIG9mIHN0YXJ0IGFuZCBlbmQgdmFsdWVzCiAgICAgICAgICAgICRTdGFydERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3B9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgSU1QT1JUQU5UOgogICAgICAgICAgICAjIElmIG5vIHRpbWUgcGVyaW9kIGhhZCBiZWVuIHNlbGVjdGVkIHByZXZpb3VzIG1vbnRoIHdpbGwgYmUgdXNlZCBhcyBwZXJpb2QhCiAgICAgICAgICAgIG15ICVQcmV2aW91c01vbnRoRGF0ZXMgPSAkU2VsZi0+X0dldFByZXZpb3VzTW9udGhEYXRlcygKICAgICAgICAgICAgICAgIERhdGVJbmRleFRvTmFtZSA9PiBcJURhdGVJbmRleFRvTmFtZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgQ2FsY3VsYXRlIFVOSVggdGltZXN0YW1wcyBmb3Igc3RhcnQgYW5kIHN0b3AgZGF0ZS4KICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzFdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzJdLAogICAgICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU3RvcERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkUHJldmlvdXNNb250aERhdGVze05ld1N0b3BEYXRlfS0+WzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RvcERhdGV9LT5bMV0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsyXSwKICAgICAgICAgICAgICAgIEhvdXIgICA9PiAyMywKICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiA1OSwKICAgICAgICAgICAgICAgIFNlY29uZCA9PiA1OSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2FsY3VsYXRlIG51bWJlciBvZiBkYXlzIHdpdGhpbiB0aGUgZ2l2ZW4gcmFuZ2UKICAgICAgICBteSAkRGF5cyA9IGludCggKCAkU3RvcERhdGUgLSAkU3RhcnREYXRlICkgLyA4NjQwMCApICsgMTsKCiAgICAgICAgREFZOgogICAgICAgIGZvciBteSAkRGF5ICggMCAuLiAkRGF5cyApIHsKCiAgICAgICAgICAgICMgZ2V0IGRheSByZWxhdGl2ZSB0byBzdGFydCBkYXRlCiAgICAgICAgICAgIG15ICREYXRlT2ZQZXJpb2QgPSAkU3RhcnREYXRlICsgJERheSAqIDg2NDAwOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIGRhdGUgdmFsdWVzIG91dCBvZiB0aW1lLXN0YW1wCiAgICAgICAgICAgIG15IEBEYXRlVmFsdWVzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlT2ZQZXJpb2QsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCB3b3JraW5nIHVuaXQgZm9yIHVzZXIgYW5kIGRheQogICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnWWVhcid9IF0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJERhdGVWYWx1ZXNbICREYXRlSW5kZXhUb05hbWV7J01vbnRoJ30gXSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnRGF5J30gXSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBleHRyYWN0IGRldGFpbGVkIGluZm9ybWF0aW9uCiAgICAgICAgICAgIG15IEBEYXlXb3JraW5nVW5pdHMgPSBAeyAkV29ya2luZ1VuaXR7V29ya2luZ1VuaXRzfSB8fCBbXSB9OwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgcHJvamVjdCByZXN0cmljdGlvbnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgcmVmICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gZXEgJ0FSUkFZJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBtYXRjaGluZyBoYXNoIGZvciBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICAgICAgbXkgJVNlbGVjdGVkUHJvamVjdElEcyA9IG1hcCB7ICggJF8gPT4gMSApIH0gQHsgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB9OwoKICAgICAgICAgICAgICAgICMgZmlsdGVyIG9ubHkgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgICAgIG15IEBGaWx0ZXJlZFByb2plY3RXVXMgPSBncmVwIHsKICAgICAgICAgICAgICAgICAgICAkU2VsZWN0ZWRQcm9qZWN0SURzeyAkXy0+e1Byb2plY3RJRH0gfQogICAgICAgICAgICAgICAgfSBARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgICAgIEBEYXlXb3JraW5nVW5pdHMgPSBARmlsdGVyZWRQcm9qZWN0V1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciB0YXNrIHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZEFjdGlvbklEcyA9IG1hcCB7ICggJF8gPT4gMSApIH0gQHsgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB9OwoKICAgICAgICAgICAgICAgICMgZmlsdGVyIG9ubHkgc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgbXkgQEZpbHRlcmVkQWN0aW9uV1VzID0gZ3JlcCB7ICRTZWxlY3RlZEFjdGlvbklEc3sgJF8tPntBY3Rpb25JRH0gfSB9IEBEYXlXb3JraW5nVW5pdHM7CgogICAgICAgICAgICAgICAgQERheVdvcmtpbmdVbml0cyA9IEBGaWx0ZXJlZEFjdGlvbldVczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdXNlciByZXN0cmljdGlvbnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntVc2VyfQogICAgICAgICAgICAgICAgJiYgcmVmICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VXNlcn0gZXEgJ0FSUkFZJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBtYXRjaGluZyBoYXNoIGZvciBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWRVc2VySURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSBARmlsdGVyZWRVc2VyV1VzID0gZ3JlcCB7ICRTZWxlY3RlZFVzZXJJRHN7ICRfLT57VXNlcklEfSB9IH0gQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICAgICBARGF5V29ya2luZ1VuaXRzID0gQEZpbHRlcmVkVXNlcldVczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBkbyBub3Qgc3RvcmUgZGF0YSBpZiBubyBkYXRhIGlzIGF2YWlsYWJsZQogICAgICAgICAgICBuZXh0IERBWSBpZiAhQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICMgYWRkIGRhdGEgdG8gZ2xvYmFsIHJlc3VsdCBzZXQKICAgICAgICAgICAgcHVzaCBAUmV0dXJuLCBARGF5V29ya2luZ1VuaXRzOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBSZXR1cm47Cn0KCnN1YiBfR2V0UHJldmlvdXNNb250aERhdGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte0RhdGVJbmRleFRvTmFtZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIERhdGVJbmRleFRvTmFtZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyBHZXQgY3VycmVudCBkYXRlIHZhbHVlcy4KICAgIG15IEBDdXJyZW50RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICAjIEdldCBmaXJzdCBkYXkgb2YgcHJldmlvdXMgbW9udGguCiAgICBteSBATmV3U3RhcnREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCgKICAgICAgICAkQ3VycmVudERhdGVbICRQYXJhbXtEYXRlSW5kZXhUb05hbWV9LT57J1llYXInfSBdLAogICAgICAgICRDdXJyZW50RGF0ZVsgJFBhcmFte0RhdGVJbmRleFRvTmFtZX0tPnsnTW9udGgnfSBdLAogICAgICAgIDEsCiAgICAgICAgMCwKICAgICAgICAtMSwKICAgICAgICAwLAogICAgKTsKCiAgICAjIEdldCBmaXJzdCBkYXkgb2YgbmV4dCBtb250aCByZWxhdGl2ZSB0byBwcmV2aW91cyBtb250aC4KICAgIG15IEBOZXdTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoCiAgICAgICAgJE5ld1N0YXJ0RGF0ZVswXSwKICAgICAgICAkTmV3U3RhcnREYXRlWzFdLAogICAgICAgICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgMCwKICAgICAgICArMSwKICAgICAgICAwLAogICAgKTsKCiAgICAjIEdldCBsYXN0IG9mIGRheSBwcmV2aW91cyBtb250aC4KICAgIEBOZXdTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoCiAgICAgICAgJE5ld1N0b3BEYXRlWzBdLAogICAgICAgICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAkTmV3U3RvcERhdGVbMl0sCiAgICAgICAgMCwKICAgICAgICAwLAogICAgICAgIC0xLAogICAgKTsKCiAgICByZXR1cm4gKAogICAgICAgIE5ld1N0YXJ0RGF0ZSA9PiBcQE5ld1N0YXJ0RGF0ZSwKICAgICAgICBOZXdTdG9wRGF0ZSAgPT4gXEBOZXdTdG9wRGF0ZSwKICAgICk7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgID0+ICdFbXB0eScsCiAgICAgICAgQ29uZmlnICA9PiB7fSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF5IChzdHJpbmcpJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gJ2EnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIERheSAoMCknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiAwLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIERheSAoLTEpJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gLTEsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF5ICg4KScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDgsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTW9uZGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdNb25kYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVHVlc2RheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDIsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnVHVlc2RheScsCiAgICAgICAgU3VjY2VzcyAgICAgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdXZWRuZXNkYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiAzLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJ1dlZG5lc2RheScsCiAgICAgICAgU3VjY2VzcyAgICAgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUaHVyc2RheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDQsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnVGh1cnNkYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRnJpZGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gNSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdGcmlkYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnU2F0dXJkYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiA2LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJ1NhdHVyZGF5JywKICAgICAgICBTdWNjZXNzICAgICAgICA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1N1bmRheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDcsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnU3VuZGF5JywKICAgICAgICBTdWNjZXNzICAgICAgICA9PiAxLAogICAgfSwKKTsKCm5vIHdhcm5pbmdzICdvbmNlJzsgICAgIyMgbm8gY3JpdGljCm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwp1c2Ugd2FybmluZ3M7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewogICAgbXkgJERheU5hbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2Vla1RvTmFtZSggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICBpZiAoICEkVGVzdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJERheU5hbWUsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IERheU9mV2Vla1RvTmFtZSgpIC0gd2l0aCBmYWxzZSIsCiAgICAgICAgKTsKICAgICAgICBuZXh0IFRFU1Q7CiAgICB9CgogICAgJFNlbGYtPklzKAogICAgICAgICREYXlOYW1lLAogICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXN1bHR9LAogICAgICAgICIkVGVzdC0+e05hbWV9IERheU9mV2Vla1RvTmFtZSgpIiwKICAgICk7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSB2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmc7CgpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRSYW5kb21Hcm91cCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgID0+ICdSZXN0b3JlIHBlcm1pc3Npb25zIG9mIEFnZW50VGltZUFjY291bnRpbmdFZGl0IGZyb250ZW5kIG1vZHVsZScsCiAgICAgICAgU2V0dGluZ3MgID0+IFsnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0J10sCiAgICAgICAgT2xkQ29uZmlnID0+IHsKICAgICAgICAgICAgJ0Zyb250ZW5kOjpNb2R1bGUnID0+IHsKICAgICAgICAgICAgICAgICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcgPT4gewogICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ1RpbWUgYWNjb3VudGluZyBlZGl0LicsCiAgICAgICAgICAgICAgICAgICAgJ0dyb3VwJyAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICRSYW5kb21Hcm91cCwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICdHcm91cFJvJyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICRSYW5kb21Hcm91cCwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICdOYXZCYXInID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc0tleScgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCbG9jaycgICAgICAgPT4gJ0l0ZW1BcmVhJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ1RpbWUgYWNjb3VudGluZy4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmsnICAgICAgICA9PiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYW1lJyAgICAgICAgPT4gJ1RpbWUgQWNjb3VudGluZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmF2QmFyJyAgICAgID0+ICdUaW1lQWNjb3VudGluZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUHJpbycgICAgICAgID0+ICc2MDAwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUeXBlJyAgICAgICAgPT4gJ01lbnUnCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2Nlc3NLZXknICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmxvY2snICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Rlc2NyaXB0aW9uJyA9PiAnRWRpdCB0aW1lIHJlY29yZC4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0dyb3VwUm8nICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJhbmRvbUdyb3VwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMaW5rJyAgID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hbWUnICAgPT4gJ0VkaXQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hdkJhcicgPT4gJ1RpbWVBY2NvdW50aW5nJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQcmlvJyAgID0+ICcyMDAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1R5cGUnICAgPT4gJycKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1Jlc3RvcmUgcGVybWlzc2lvbnMgb2YgRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3IHRvIHRoZSBvbGQgZGVmYXVsdHMnLAogICAgICAgIFNldHRpbmdzICAgID0+IFsnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3J10sCiAgICAgICAgT2xkQ29uZmlnICAgPT4ge30sCiAgICAgICAgT2xkRGVmYXVsdHMgPT4gewogICAgICAgICAgICAnRnJvbnRlbmQ6Ok1vZHVsZScgPT4gewogICAgICAgICAgICAgICAgJ0FnZW50VGltZUFjY291bnRpbmdWaWV3JyA9PiB7CiAgICAgICAgICAgICAgICAgICAgR3JvdXAgICA9PiBbJ3RpbWVfYWNjb3VudGluZyddLAogICAgICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWyd0aW1lX2FjY291bnRpbmcnXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBDb25maWcgPT4ge30sCiAgICB9LAopOwoKbXkgJEdldENvbmZpZyA9IHN1YiB7CiAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgIG15ICRTZXR0aW5nTmFtZSA9IHNoaWZ0OwoKICAgIG15ICRDb25maWcgPSAkU291cmNlOwogICAgbXkgQEtleXMgPSBzcGxpdCAnIyMjJywgJFNldHRpbmdOYW1lOwogICAgd2hpbGUgKCBteSAkS2V5ID0gc2hpZnQgQEtleXMgKSB7CiAgICAgICAgJENvbmZpZyA9ICRDb25maWctPnskS2V5fTsKICAgIH0KCiAgICByZXR1cm4gJENvbmZpZzsKfTsKCm15ICRDaGVja0dyb3VwR3JvdXBSbyA9IHN1YiB7CiAgICBteSAlUGFyYW0gICAgPSBAXzsKICAgIG15ICRFeHBlY3RlZCA9ICRQYXJhbXtFeHBlY3RlZH07CiAgICBteSAkUmVzdWx0ICAgPSAkUGFyYW17UmVzdWx0fTsKICAgIG15ICRUZXN0TmFtZSA9ICRQYXJhbXtUZXN0TmFtZX07CgogICAgaWYgKCAkRXhwZWN0ZWQtPntHcm91cH0gfHwgJEV4cGVjdGVkLT57R3JvdXBSb30gKSB7CgogICAgICAgICMgQ2hlY2sgZm9yIEtleSBHcm91cCBhbmQgR3JvdXBSby4KICAgICAgICBmb3IgbXkgJEtleSAocXcoR3JvdXAgR3JvdXBSbykpIHsKICAgICAgICAgICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICAgICAgICAgJFJlc3VsdC0+eyRLZXl9LAogICAgICAgICAgICAgICAgJEV4cGVjdGVkLT57JEtleX0gLy8gW10sCiAgICAgICAgICAgICAgICAkVGVzdE5hbWUgLiAiLCAnJHsgS2V5IH0nIGZpeGVkISIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cn07CgpteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwoKVEVTVDoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAjIElmIHRoZSBrZXkgJ0NvbmZpZycgZXhpc3RzLCBsZXRzIHNldCB0aGUgbmV3IGNvbmZpZyBiZWZvcmUgZG8gYW55dGhpbmcgZWxzZQogICAgaWYgKCAkVGVzdC0+e0NvbmZpZ30gKSB7CiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXsgJFRlc3QtPntDb25maWd9IH0gKSB7CiAgICAgICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFRlc3QtPntDb25maWd9LT57JEtleX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgQ2hlY2sgaWYgaXQgd2FzIHJlc3RvcmVkIHRvIHRoZSBvbGQgY29uZmlnCiAgICBteSAkT2xkQ29uZmlnID0gJFRlc3QtPntPbGRDb25maWd9OwogICAgbG9jYWwgKnZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZzo6X0dldE9UUlM1Q29uZmlnQmFja3VwID0gc3ViIHsgICAgIyMgbm8gY3JpdGljCiAgICAgICAgcmV0dXJuICRPbGRDb25maWc7CiAgICB9OwogICAgdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nLT5uZXcoKS0+Q29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzVfMF85MigpOwoKICAgICMgQ2hlY2sgaWYgdGhlIG5ldyBjb25maWcgaXMgYWNjb3JkaW5nIHRvIHRoZSBvbGQgb25lLgogICAgbXkgQFNldHRpbmdzID0gQHsgJFRlc3QtPntTZXR0aW5nc30gfTsKICAgIFNFVFRJTkdfTkFNRToKICAgIGZvciBteSAkU2V0dGluZ05hbWUgKEBTZXR0aW5ncykgewogICAgICAgIG15ICRTZXR0aW5nT2xkQ29uZmlnICAgPSAkR2V0Q29uZmlnLT4oICRPbGRDb25maWcsICAgICAgICAgICAkU2V0dGluZ05hbWUgKTsKICAgICAgICBteSAkU2V0dGluZ09sZERlZmF1bHRzID0gJEdldENvbmZpZy0+KCAkVGVzdC0+e09sZERlZmF1bHRzfSwgJFNldHRpbmdOYW1lICk7CiAgICAgICAgbXkgJUNvbmZpZyAgICAgICAgICAgICA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdHZXQoCiAgICAgICAgICAgIE5hbWUgPT4gJFNldHRpbmdOYW1lLAogICAgICAgICk7CiAgICAgICAgbXkgJEVmZmVjdGl2ZVZhbHVlID0gJENvbmZpZ3tFZmZlY3RpdmVWYWx1ZX07CgogICAgICAgICMgSXQncyBub3QgYSBjb21wbGV4IHZhbHVlLCBjaGVjayBvbmx5IGlmIHRoZSB2YWx1ZSB3YXMgcmVzdG9yZWQuCiAgICAgICAgaWYgKCAhKCByZWYgJEVmZmVjdGl2ZVZhbHVlICkgKSB7CiAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICRFZmZlY3RpdmVWYWx1ZSwKICAgICAgICAgICAgICAgICRTZXR0aW5nT2xkQ29uZmlnIC8vICRTZXR0aW5nT2xkRGVmYXVsdHMsCiAgICAgICAgICAgICAgICAkVGVzdC0+e05hbWV9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFNFVFRJTkdfTkFNRTsKICAgICAgICB9CgogICAgICAgICRDaGVja0dyb3VwR3JvdXBSby0+KAogICAgICAgICAgICBFeHBlY3RlZCA9PiAkU2V0dGluZ09sZENvbmZpZyAvLyAkU2V0dGluZ09sZERlZmF1bHRzLAogICAgICAgICAgICBSZXN1bHQgICA9PiAkRWZmZWN0aXZlVmFsdWUsCiAgICAgICAgICAgIFRlc3ROYW1lID0+ICRUZXN0LT57TmFtZX0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0gfHwgJFNldHRpbmdPbGREZWZhdWx0cy0+e05hdkJhcn0gKSB7CgogICAgICAgICAgICAjIENoZWNrIGZvciBuYXZpZ2F0aW9uIHBlcm1pc3Npb25zLgogICAgICAgICAgICBteSAoIHVuZGVmLCAkRnJvbnRlbmQgKSA9IHNwbGl0ICcjIyMnLCAkU2V0dGluZ05hbWU7CgogICAgICAgICAgICAjIEdldCB0aGUgb2xkIG5hdmlnYXRpb24uCiAgICAgICAgICAgIG15ICRPbGROYXZpZ2F0aW9uID0gJFNldHRpbmdPbGRDb25maWctPntOYXZCYXJ9IC8vICRTZXR0aW5nT2xkRGVmYXVsdHMtPntOYXZCYXJ9OwoKICAgICAgICAgICAgIyBHZXQgdGhlIGN1cnJlbnQgbmF2aWdhdGlvbi4KICAgICAgICAgICAgbXkgJE5ld05hdmlnYXRpb24KICAgICAgICAgICAgICAgID0gJEdldENvbmZpZy0+KCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLCAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyMnIC4gJEZyb250ZW5kICk7CgogICAgICAgICAgICAjIENoZWNrIGlmIHRoZSBwZXJtaXNzaW9uIGlzIHRoZSBzYW1lIGFzIHRoZSBvbGQgb25lLgogICAgICAgICAgICBmb3IgbXkgJEluZGV4ICggc29ydCBrZXlzICV7JE5ld05hdmlnYXRpb259ICkgewogICAgICAgICAgICAgICAgbXkgJE5ld0l0ZW1zID0gJE5ld05hdmlnYXRpb24tPnskSW5kZXh9OwogICAgICAgICAgICAgICAgZm9yIG15ICROZXdJdGVtICggQHskTmV3SXRlbXN9ICkgewogICAgICAgICAgICAgICAgICAgIG15ICRPbGRJdGVtCiAgICAgICAgICAgICAgICAgICAgICAgID0gTGlzdDo6VXRpbDo6Zmlyc3QgeyAkXy0+e05hbWV9IGVxICROZXdJdGVtLT57TmFtZX0gJiYgJF8tPntCbG9ja30gZXEgJE5ld0l0ZW0tPntCbG9ja30gfQogICAgICAgICAgICAgICAgICAgIEB7JE9sZE5hdmlnYXRpb259OwogICAgICAgICAgICAgICAgICAgIG5leHQgTkVXX0lURU0gaWYgISRPbGRJdGVtOwoKICAgICAgICAgICAgICAgICAgICAkQ2hlY2tHcm91cEdyb3VwUm8tPigKICAgICAgICAgICAgICAgICAgICAgICAgRXhwZWN0ZWQgPT4gJE9sZEl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCAgID0+ICROZXdJdGVtLAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0TmFtZSA9PiBzcHJpbnRmKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRlc3QtPntOYW1lfSAuICcgKE5hdmlnYXRpb24gJXMpJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdJdGVtLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV3SXRlbS0+e0Jsb2NrfSA/ICctJyAuICROZXdJdGVtLT57QmxvY2t9IDogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKIyBSZXN0b3JlIGRlZmF1bHQgc2V0dGluZyB2YWx1ZXMgYWZ0ZXIgdGVzdGluZywgc2luY2Ugb3ZlcnJpZGVzIGFyZSBkZXBsb3llZCBmcm9tIGV4dGVybmFsIGNvZGUuCm15IEBTZXR0aW5ncyA9ICgKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nVmlldycsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCMjIzAwMi1UaW1lQWNjb3VudGluZycsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcjIyMwMDItVGltZUFjY291bnRpbmcnLAogICAgJ0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmcnLAogICAgJ0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyMjIzAwMi1UaW1lQWNjb3VudGluZycsCik7Cgpmb3IgbXkgJFNldHRpbmdOYW1lIChAU2V0dGluZ3MpIHsKICAgIG15ICRFeGNsdXNpdmVMb2NrR1VJRCA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdMb2NrKAogICAgICAgIE5hbWUgICA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEV4Y2x1c2l2ZUxvY2tHVUlELAogICAgICAgICJMb2NrZWQgJFNldHRpbmdOYW1lIgogICAgKTsKCiAgICBteSAkU3VjY2VzcyA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdSZXNldCgKICAgICAgICBOYW1lICAgICAgICAgICAgICA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgRXhjbHVzaXZlTG9ja0dVSUQgPT4gJEV4Y2x1c2l2ZUxvY2tHVUlELAogICAgICAgIFVzZXJJRCAgICAgICAgICAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgIlJlc2V0ICRTZXR0aW5nTmFtZSIKICAgICk7Cn0KCm15ICRTdWNjZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlndXJhdGlvbkRlcGxveSgKICAgIENvbW1lbnRzICAgICAgPT4gJ1VwZ3JhZGVMb3dlclRoYW41MDkyLnQnLAogICAgVXNlcklEICAgICAgICA9PiAxLAogICAgRm9yY2UgICAgICAgICA9PiAxLAogICAgRGlydHlTZXR0aW5ncyA9PiBcQFNldHRpbmdzLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgJ1Jlc3RvcmVkIGRlZmF1bHQgY29uZmlndXJhdGlvbicKKTsKCjE7Cg==
CiMgLS0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxOCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGRlY2xhcmUgZXh0ZXJuYWxseSBkZWZpbmVkIHZhcmlhYmxlcyB0byBhdm9pZCBlcnJvcnMgdW5kZXIgJ3VzZSBzdHJpY3QnCnVzZSB2YXJzIHF3KCRTZWxmKTsKCiMgZ2V0IGhlbHBlciBvYmplY3QKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgpOwoKbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCik7CgpteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCm15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgIFBlcmlvZCA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlVzZXJTZXR0aW5nc0luc2VydCgpIGZvciB1c2VyICRVc2VySUQiLAopOwoKJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRCwKICAgIERlc2NyaXB0aW9uICAgPT4gJ1NvbWUgVGV4dCcsCiAgICBDcmVhdGVQcm9qZWN0ID0+IDEgfHwgMCwKICAgIFNob3dPdmVydGltZSAgPT4gMSB8fCAwLAogICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDE2LTAxLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTYtMTItMzEnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlVzZXJTZXR0aW5nc1VwZGF0ZSgpIGZvciB1c2VyICRVc2VySUQiLAopOwoKIyBUaGlzIHVuaXQgdGVzdCBvbmx5IGNoZWNrIHRoYXQgdGhlIGZ1bmN0aW9uIHVzZXMgY29ycmVjdCBkYXRlIHZhbHVlcyBhbmQgaXQgZG9lcyBub3QgYnJlYWsKZm9yIG15ICRNb250aCAoIDEgLi4gMTIgKSB7CiAgICBteSAkTW9udGhTdWNjZXNzID0gMTsKICAgIGZvciBteSAkRGF5ICggMSAuLiAyOCApIHsKICAgICAgICAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgPT4gJzIwMTYnLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgU2ljayAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICRNb250aFN1Y2Nlc3MgPSAwOwogICAgICAgIH0KICAgIH0KICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJXb3JraW5nVW5pdHNJbnNlcnQoKSBpbiBtb250aCAkTW9udGggZm9yIHVzZXIgJFVzZXJJRCIsCiAgICApOwp9CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICcyMDE2LUphbi0xJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICA9PiAyMDE2LAogICAgICAgICAgICBNb250aCA9PiAxLAogICAgICAgICAgICBEYXkgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnMjAxNi1GZWItMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gMjAxNiwKICAgICAgICAgICAgTW9udGggPT4gMiwKICAgICAgICAgICAgRGF5ICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJzIwMTYtT2N0LTEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+IDIwMTYsCiAgICAgICAgICAgIE1vbnRoID0+IDEwLAogICAgICAgICAgICBEYXkgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnMjAxNi1EZWMtMTInLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+IDIwMTYsCiAgICAgICAgICAgIE1vbnRoID0+IDEyLAogICAgICAgICAgICBEYXkgICA9PiAxMiwKICAgICAgICB9LAogICAgfSwKKTsKCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWyAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywgXSwKICAgICk7CgogICAgIyBSZWRlZmluZSBWYWNhdGlvbkNoZWNrIGluIG9yZGVyIHRvIGJyZWFrIG9uIGEgd3JvbmcgZGF0ZSAodGhpcyBzaG91bGQgbm90IGhhcHBlbikuCiAgICBubyB3YXJuaW5ncyBxdyggb25jZSByZWRlZmluZSApOyAgICAjIyBubyBjcml0aWMKICAgIGxvY2FsICpLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmc6OlZhY2F0aW9uQ2hlY2sgPSBzdWIgewogICAgICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1zCiAgICAgICAgZm9yIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlZhY2F0aW9uQ2hlY2s6IE5lZWQgJF8hIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBJZiBkYXRlIGlzIHdyb25nIERhdGVUaW1lT2JqZWN0IGlzIHVuZGVmaW5lZCBhbmQgaXQgc2hvdWxkIGJyZWFrIHVuaXQgdGVzdCBpZgogICAgICAgICMgICBJc1ZhY2F0aW9uRGF5KCkgaXMgY2FsbGVkLCB0aGlzIGhhcHBlbnMgYXQgY2VydGFpbiBwb2ludCBpbiBVc2VyUmVwb3J0aW5nKCkuCgogICAgICAgIHJldHVybiAkRGF0ZVRpbWVPYmplY3QtPklzVmFjYXRpb25EYXkoCiAgICAgICAgICAgIENhbGVuZGFyID0+ICRQYXJhbXtDYWxlbmRhcn0sCiAgICAgICAgKTsKICAgIH07CiAgICB1c2Ugd2FybmluZ3M7CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgJFNlbGYtPklzTm90RGVlcGx5KAogICAgICAgIFwlRGF0YSwKICAgICAgICB7fSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBVc2VyUmVwb3J0aW5nKCkgcmV0dXJuIHZhbHVlIGlzIG5vdCBlbXB0eSIKICAgICk7Cn0KMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgZGVjbGFyZSBleHRlcm5hbGx5IGRlZmluZWQgdmFyaWFibGVzIHRvIGF2b2lkIGVycm9ycyB1bmRlciAndXNlIHN0cmljdCcKdXNlIHZhcnMgcXcoJFNlbGYpOwoKJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+U2V0KAogICAgS2V5ICAgPT4gJ1RpbWVWYWNhdGlvbkRheXM6OkNhbGVuZGFyMScsCiAgICBWYWx1ZSA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIDEgPT4gJ05ldyBZZWFyXCdzIERheScKICAgICAgICB9LAogICAgICAgIDEyID0+IHsKICAgICAgICAgICAgMTIgPT4gJ0Jlc3QgZGF5IGluIHdvcmxkJywKICAgICAgICAgICAgMjQgPT4gJ0NocmlzdG1hcyBFdmUnLAogICAgICAgICAgICAyNSA9PiAnRmlyc3QgQ2hyaXN0bWFzIERheScsCiAgICAgICAgICAgIDI2ID0+ICdTZWNvbmQgQ2hyaXN0bWFzIERheScsCiAgICAgICAgICAgIDMxID0+ICdOZXcgWWVhclwncyBFdmUnCiAgICAgICAgfSwKICAgICAgICA1ID0+IHsKICAgICAgICAgICAgMSA9PiAnSW50ZXJuYXRpb25hbCBXb3JrZXJzXCcgRGF5JwogICAgICAgIH0sCiAgICB9LAopOwoKbXkgQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ05vIFBhcmFtcycsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7fSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gWWVhcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTW9udGggICAgPT4gMSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBNb250aCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBEYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+IDEsCiAgICAgICAgICAgIENhbGVuZGFyID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF0ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMiwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMjksCiAgICAgICAgICAgIENhbGVuZGFyID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gVmFjYXRpb24gRGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAyLAogICAgICAgICAgICBEYXkgICAgICA9PiAxNSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWYWNhdGlvbiBEYXkgTnVtZXJpYyBNb250aCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gIk5ldyBZZWFyJ3MgRGF5IiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWYWNhdGlvbiBEYXkgU3RyaW5nIE1vbnRoJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAnMDEnLAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAiTmV3IFllYXIncyBEYXkiLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZhY2F0aW9uIERheSBDdXN0b20nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+IDEyLAogICAgICAgICAgICBEYXkgICAgICA9PiAxMiwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gIkJlc3QgZGF5IGluIHdvcmxkIiwKICAgIH0KKTsKCm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICBteSAkUmVzdWx0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkUmVzdWx0IC8vIDAsCiAgICAgICAgJFRlc3QtPntFeHBlY3RlZFZhbHVlfSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBWYWNhdGlvbkNoZWNrKCkiLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgZGVjbGFyZSBleHRlcm5hbGx5IGRlZmluZWQgdmFyaWFibGVzIHRvIGF2b2lkIGVycm9ycyB1bmRlciAndXNlIHN0cmljdCcKdXNlIHZhcnMgcXcoJFNlbGYpOwoKIyBnZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKIyBzZXQgZml4ZWQgdGltZQokSGVscGVyLT5GaXhlZFRpbWVTZXQoCiAgICAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFN0cmluZyA9PiAnMjAxMS0wMS0zMSAyMzo1OTo1OScsCiAgICAgICAgfSwKICAgICktPlRvRXBvY2goKSwKKTsKCm15ICRSYW5kb21OdW1iZXIgPSBpbnQgc3Vic3RyICRIZWxwZXItPkdldFJhbmRvbU51bWJlcigpLCAtNSwgNTsKCiMgZGF0YSBmb3IgdGhlIG5ldyBhY3Rpb24gKHRhc2spCm15ICVOZXdBY3Rpb25EYXRhID0gKAogICAgQWN0aW9uICAgICAgID0+ICdUZXN0QWN0aW9uJyAuICRSYW5kb21OdW1iZXIsCiAgICBBY3Rpb25TdGF0dXMgPT4gMSwKKTsKCiMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgojIGNyZWF0ZSBhIG5ldyBhY3Rpb24gKHRhc2spCm15ICRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KCVOZXdBY3Rpb25EYXRhKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGVzdCBhY3Rpb24gc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgojIGdldCB0aGUgYWN0aW9uIGRhdGEgdGhhdCB3YXMgaW5zZXJ0ZWQgYWJvdmUKbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggQWN0aW9uID0+ICROZXdBY3Rpb25EYXRhe0FjdGlvbn0gKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGRhdGEgc2F2ZWQgaW4gdGhlIERCIGlzIHRoZSBzYW1lIHRoYXQgd2FzIGluc2VydGVkCiRTZWxmLT5JcygKICAgICRBY3Rpb25EYXRhe0FjdGlvblN0YXR1c30sCiAgICAkTmV3QWN0aW9uRGF0YXtBY3Rpb25TdGF0dXN9LAogICAgJ0NvbXBhcmUgYWN0aW9uIHN0YXR1cyBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwoKIyBtb2RpZnkgdGhlIGFjdGlvbiBuYW1lCm15ICRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgQWN0aW9uSUQgICAgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgIEFjdGlvbiAgICAgICA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgIEFjdGlvblN0YXR1cyA9PiAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCBhY3Rpb24gc2V0dGluZ3MnLAopOwoKIyBnZXQgYWxsIGFjdGlvbnMgZGF0YQpteSAlQWxsQWN0aW9ucyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiMgdmVyaWZ5IHRoZSBsYXN0IG1vZGlmaWNhdGlvbgokU2VsZi0+SXMoCiAgICAkQWxsQWN0aW9uc3sgJEFjdGlvbkRhdGF7SUR9IH17QWN0aW9ufSwKICAgICROZXdBY3Rpb25EYXRhe0FjdGlvbn0gLiAnbW9kaWZpZWQnLAogICAgJ0NvbXBhcmUgYWN0aW9uIG5hbWUgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBkYXRhIGZvciB0aGUgbmV3IHByb2plY3QKbXkgJU5ld1Byb2plY3REYXRhID0gKAogICAgUHJvamVjdCAgICAgICAgICAgID0+ICdUZXN0UHJvamVjdCcgLiAkUmFuZG9tTnVtYmVyLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAopOwoKIyBjcmVhdGUgYSBuZXcgcHJvamVjdApteSAkUHJvamVjdElEID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoJU5ld1Byb2plY3REYXRhKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJFByb2plY3RJRCwKICAgICdJbnNlcnQgdGVzdCBwcm9qZWN0IHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgdGhlIGFjdGlvbiBkYXRhIHRoYXQgd2FzIGluc2VydGVkIGFib3ZlCm15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggSUQgPT4gJFByb2plY3RJRCApOwoKIyB2ZXJpZnkgdGhhdCB0aGUgZGF0YSBzYXZlZCBpbiB0aGUgREIgaXMgdGhlIHNhbWUgdGhhdCB3YXMgaW5zZXJ0ZWQKJFNlbGYtPklzKAogICAgJFByb2plY3REYXRhe1Byb2plY3R9LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3R9LAogICAgJ0NvbXBhcmUgcHJvamVjdCBuYW1lIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0RGVzY3JpcHRpb259LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3REZXNjcmlwdGlvbn0sCiAgICAnQ29tcGFyZSBwcm9qZWN0IGRlc2NyaXB0aW9uIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0U3RhdHVzfSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0U3RhdHVzfSwKICAgICdDb21wYXJlIHByb2plY3Qgc3RhdHVzIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CgojIG1vZGlmeSB0aGUgcHJvamVjdCBuYW1lCiRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSgKICAgIElEICAgICAgICAgICAgICAgICA9PiAkUHJvamVjdElELAogICAgUHJvamVjdCAgICAgICAgICAgID0+ICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSAuICdtb2RpZmllZCcsCiAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1Rlc3QnLAogICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHByb2plY3Qgc2V0dGluZ3MnLAopOwoKIyBnZXQgYWxsIHByb2plY3RzIGRhdGEKbXkgJUFsbFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoIFN0YXR1cyA9PiAndmFsaWQnICk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgJEFsbFByb2plY3Rze1Byb2plY3R9eyRQcm9qZWN0SUR9LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3R9IC4gJ21vZGlmaWVkJywKICAgICdDb21wYXJlIHByb2plY3QgbmFtZSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgojIGNyZWF0ZSBuZXcgdXNlcgpteSAkVXNlckxvZ2luID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKS0+VGVzdFVzZXJDcmVhdGUoKTsKbXkgJFVzZXJJRCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKKTsKCiMgb2J0YWluIHRoZSBsYXN0IHJlZ2lzdGVyZWQgcGVyaW9kIG9mIHRoZSB0ZXN0IHVzZXIKbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApICsgMTsKCiMgY3JlYXRlIHJlZ2lzdHJ5IGZvciB0aGUgbmV3IHVzZXIgaW4gVEEKJEluc2VydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgVXNlcklEID0+ICRVc2VySUQsCiAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB1c2VyIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB0ZXN0IHVzZXIgc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgojIGluc2VydCBhbm90aGVyIHBlcmlvZCBlbnRyeSBmb3IgdGhlIHNhbWUgdXNlcgokSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB1c2VyIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB0aW1lIHBlcmlvZCBmb3IgdGVzdCB1c2VyIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKJFJhbmRvbU51bWJlciA9IGludCBzdWJzdHIgJEhlbHBlci0+R2V0UmFuZG9tTnVtYmVyKCksIC0zLCAzOwoKIyB1cGRhdGUgdXNlciBkYXRhCm15ICVVc2VyU2V0dGluZ3NVcGRhdGVEYXRhID0gKAogICAgVXNlcklEICAgICAgICA9PiAkVXNlcklELAogICAgRGVzY3JpcHRpb24gICA9PiAnVGVzdCB1c2VyJyAuICRSYW5kb21OdW1iZXIsCiAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICBBbGxvd1NraXAgICAgID0+IDEsCiAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAxID0+IHsKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMTEtMDEtMDEnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAxMS0wMS0zMScsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICRSYW5kb21OdW1iZXIsCiAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcxMCcsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcyMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgfSwKICAgICAgICAyID0+IHsKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMTEtMDItMDEnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAxMS0xMi0zMScsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICRSYW5kb21OdW1iZXIgKyAxMCwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMTAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoJVVzZXJTZXR0aW5nc1VwZGF0ZURhdGEpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCB1c2VyIHNldHRpbmdzJywKKTsKCiMgZ2V0IHVzZXIgc2V0dGluZ3MKbXkgJVNpbmdsZVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoIFVzZXJJRCA9PiAkVXNlcklEICk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgaW50ICRTaW5nbGVVc2VyRGF0YXsxfXtXZWVrbHlIb3Vyc30sCiAgICAkUmFuZG9tTnVtYmVyLAogICAgJ0NvbXBhcmUgd2Vla2x5IGhvdXJzIGZvciBwZXJpb2QgMSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgokU2VsZi0+SXMoCiAgICBpbnQgJFNpbmdsZVVzZXJEYXRhezJ9e1dlZWtseUhvdXJzfSwKICAgICRSYW5kb21OdW1iZXIgKyAxMCwKICAgICdDb21wYXJlIHdlZWtseSBob3VycyBmb3IgcGVyaW9kIDIgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBnZXQgdXNlciBkYXRhCiVTaW5nbGVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKTsKCiMgY29tcGFyZSBkYXRhIHNhdmVkIG9uIHRoZSBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUKJFNlbGYtPklzKAogICAgJFNpbmdsZVVzZXJEYXRhe0Rlc2NyaXB0aW9ufSwKICAgICdUZXN0IHVzZXInIC4gJFJhbmRvbU51bWJlciwKICAgICdDb21wYXJlIGRlc2NyaXB0aW9uIHNhdmVkIG9uIHRoZSBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIGluc2VydGlvbicsCik7CgojIGdldCBhbGwgdXNlcnMgZGF0YQpteSAlQWxsVXNlcnNEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdGVzdCB1c2VyIGlzIGluIHRoZSBsaXN0CiRTZWxmLT5UcnVlKAogICAgJEFsbFVzZXJzRGF0YXskVXNlcklEfXtEZXNjcmlwdGlvbn0sCiAgICAnVmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgdXNlciBpbiB0aGUgbGlzdCcKKTsKCiMgZ2V0IGFsbCBwZXJpb2RzIG9mIGRhdGEgb2YgYWxsIHVzZXJzCm15ICVBbGxVc2Vyc1BlcmlvZERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0dldCgpOwoKIyB2ZXJpZnkgdGhlIHBlcmlvZCBkYXRhIG9mIHRoZSB0ZXN0IHVzZXIKbXkgJENvcnJlY3RVc2VyRGF0YSA9CiAgICAoCiAgICAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e1dlZWtseUhvdXJzfSA9PSAkUmFuZG9tTnVtYmVyCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsxfXtMZWF2ZURheXN9ID09IDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsxfXtPdmVydGltZX0gPT0gMjAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e1VzZXJTdGF0dXN9CiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtXZWVrbHlIb3Vyc30gPT0gJFJhbmRvbU51bWJlciArIDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtMZWF2ZURheXN9ID09IDUKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e092ZXJ0aW1lfSA9PSAxMAogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17Mn17VXNlclN0YXR1c30KICAgICkgPyAxIDogMDsKCiRTZWxmLT5UcnVlKAogICAgJENvcnJlY3RVc2VyRGF0YSwKICAgICdWZXJpZnkgdGhlIHBlcmlvZCBkYXRhIG9mIHRoZSB0ZXN0IHVzZXIgaW4gdGhlIGxpc3QnCik7CgojIGdldCBjdXJyZW50IHBlcmlvZCBvZiB1c2VyCm15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICBZZWFyICA9PiAnMjAxMScsCiAgICBNb250aCA9PiAnMDEnLAogICAgRGF5ICAgPT4gJzE1JywKKTsKCiMgY2hlY2sgdGhlIHBlcmlvZAokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntQZXJpb2R9LAogICAgMSwKICAgICdWZXJpZnkgY3VycmVudCBwZXJpb2QnLAopOwoKJFNlbGYtPklzKAogICAgJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9LT57RGF0ZVN0YXJ0fSwKICAgICcyMDExLTAxLTAxJywKICAgICdWZXJpZnkgc3RhcnQgZGF0ZSBvZiBjdXJyZW50IHBlcmlvZCcsCik7CgokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlRW5kfSwKICAgICcyMDExLTAxLTMxJywKICAgICdWZXJpZnkgZW5kIGRhdGUgb2YgY3VycmVudCBwZXJpb2QnLAopOwoKIyBDaGVjayBmb3IgY29tcGxldGVuZXNzIC0gc2hvdWxkIGJlIG9rIGFzIHVzZXIgaXMgbm90IHJlcXVpcmVkIHRvIGxvZyB0aW1lcy4KbXkgJVdvcmtpbmdVbml0c0NoZWNrQWxsb3dTa2lwID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5GYWxzZSgKICAgICRXb3JraW5nVW5pdHNDaGVja0FsbG93U2tpcHtFbmZvcmNlSW5zZXJ0fSwKICAgICdWZXJpZnkgdXNlciBwZXJtaXNzaW9uIHRvIHNraXAgbG9nZ2luZyBlbmFibGVkJywKKTsKCiMgVXBkYXRlICdBbGxvd1NraXAnIGZsYWcuCiRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICVVc2VyU2V0dGluZ3NVcGRhdGVEYXRhLAogICAgQWxsb3dTa2lwID0+IDAsCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHVzZXIgc2V0dGluZ3MnLAopOwoKIyBDaGVjayBmb3IgY29tcGxldGVuZXNzIC0gc2hvdWxkIHJldHVybiBhIHJlc3VsdCBhcyB1c2VyIGlzIG5vdyByZXF1aXJlZCB0byBsb2cgdGltZXMuCm15ICVXb3JraW5nVW5pdHNDaGVja05vQWxsb3dTa2lwID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5UcnVlKAogICAgJFdvcmtpbmdVbml0c0NoZWNrTm9BbGxvd1NraXB7RW5mb3JjZUluc2VydH0sCiAgICAnVmVyaWZ5IHVzZXIgcGVybWlzc2lvbiB0byBza2lwIGxvZ2dpbmcgZGlzYWJsZWQnLAopOwoKIyBoYXNoIHdpdGggdGhlIHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTR0aCwgMjAxMQpteSAlV29ya2luZ1VuaXRzID0gKAogICAgWWVhciAgICAgICAgID0+ICcyMDExJywKICAgIE1vbnRoICAgICAgICA9PiAnMDEnLAogICAgRGF5ICAgICAgICAgID0+ICcxNCcsCiAgICBMZWF2ZURheSAgICAgPT4gMCwKICAgIFNpY2sgICAgICAgICA9PiAwLAogICAgT3ZlcnRpbWUgICAgID0+IDAsCiAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgIHsKICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAnTXkgY29tbWVudCcsCiAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAnNzowMCcsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnMTA6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMy4wLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdNeSBjb21tZW50JywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICcxMzowMCcsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnMTU6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMi4wLAogICAgICAgIH0sCiAgICBdLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIGluc2VydCB3b3JraW5nIHVuaXRzIGluIHRoZSBEQgokSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoJVdvcmtpbmdVbml0cyk7CgojIHZlcmlmeSB0aGF0IHRoZSB3b3JraW5nIHVuaXRzIHdlcmUgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgYWxsIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5Cm15ICVXb3JraW5nVW5pdHNDaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdGhhdCBKYW4gMTR0aCwgMjAxMSBpcyBub3QgaW4gdGhlIGxpc3Qgb2YgZGF5cyB3aXRob3V0IGVudHJ5CiRTZWxmLT5GYWxzZSgKICAgIGRlZmluZWQgJFdvcmtpbmdVbml0c0NoZWNreydJbmNvbXBsZXRlJ317JzIwMTEnfXsnMDEnfXsnMTQnfSwKICAgICdWZXJpZnkgY29tcGxldGlvbiBvZiB3b3JraW5nIHVuaXRzJwopOwoKIyBnZXQgd29ya2luZyB1bml0cyBvZiBhbGwgdXNlcnMKbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICBZZWFyICA9PiAnMjAxMScsCiAgICBNb250aCA9PiAnMDEnLAogICAgRGF5ICAgPT4gJzE1JywKKTsKCiMgdmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgd29ya2luZyB1bml0cyBmb3IgdGhlIHRlc3QgdXNlcgokU2VsZi0+SXMoCiAgICAkRGF0YXskVXNlcklEfXtXb3JraW5nSG91cnNUb3RhbH0sCiAgICA1LAogICAgJ1ZlcmlmeSBudW1iZXIgb2Ygd29ya2luZyBob3VycyBvZiB0aGUgdGVzdCB1c2VyJywKKTsKCiMgZ2V0IHByb2plY3RzIGluIHdoaWNoIHRoZSB0ZXN0IHVzZXIgaGFzIHdvcmtlZCBvbgpteSBATGFzdFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5MYXN0UHJvamVjdHNPZlVzZXIoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCm15ICRUZXN0UHJvamVjdEV4aXN0ZW5jZTsKCklEOgpmb3IgbXkgJElEIChATGFzdFByb2plY3RzKSB7CiAgICBuZXh0IElEIGlmICRJRCAhPSAkUHJvamVjdElEOwogICAgJFRlc3RQcm9qZWN0RXhpc3RlbmNlID0gMTsKfQoKIyB2ZXJpZnkgdGhhdCBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgcHJvamVjdCBpbnRvIHRoZSB1c2VyJ3MgbGlzdAokU2VsZi0+VHJ1ZSgKICAgICRUZXN0UHJvamVjdEV4aXN0ZW5jZSwKICAgICdWZXJpZnkgdGhhdCBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgcHJvamVjdCBpbnRvIHRoZSB1c2VyXCdzIGxpc3QnLAopOwoKIyBnZXQgcHJvamVjdCAtIGFjdGlvbiB3b3JraW5nIGhvdXJzCm15ICVQcm9qZWN0QWN0aW9uV29ya2luZ0hvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgWWVhciAgID0+IDIwMTEsCiAgICBNb250aCAgPT4gMSwKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdG90YWwgcmVwb3J0ZWQgaG91cnMgZm9yIHRoZSB0ZXN0IGFjdGlvbiAodGFzaykgYW5kIHRlc3QgcHJvamVjdAokU2VsZi0+SXMoCiAgICAkUHJvamVjdEFjdGlvbldvcmtpbmdIb3Vyc3skUHJvamVjdElEfXtBY3Rpb25zfXsgJEFjdGlvbkRhdGF7SUR9IH17VG90YWx9LAogICAgJzUnLAogICAgJ1ZlcmlmeSB0b3RhbCByZXBvcnRlZCBob3VycyBmb3IgdGhlIHRlc3QgYWN0aW9uICh0YXNrKSBhbmQgdGVzdCBwcm9qZWN0JywKKTsKCiMgZ2V0IHByb2plY3Qgd29ya2luZyB1bml0cwpteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoIFByb2plY3RJRCA9PiAkUHJvamVjdElEICk7CgpteSAkVG90YWxIb3VyczsKCiMgZ2V0IHN1bSBvZiBhbGwgd29ya2luZyB1bml0IGZvciB0aGUgdGVzdCBwcm9qZWN0CmZvciBteSAkUHJvamVjdCAoQFByb2plY3RIaXN0b3J5QXJyYXkpIHsKICAgICRUb3RhbEhvdXJzICs9ICRQcm9qZWN0LT57UGVyaW9kfTsKfQoKbXkgJFRlc3RQcm9qZWN0VG90YWxIb3VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFRvdGFsSG91cnMoCiAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKKTsKCiMgdmVyaWZ5IHRvdGFsIHdvcmtpbmcgdW5pdHMgZm9yIHRoZSB0ZXN0IHByb2plY3QKJFNlbGYtPklzKAogICAgaW50ICRUb3RhbEhvdXJzLAogICAgaW50ICRUZXN0UHJvamVjdFRvdGFsSG91cnMsCiAgICAnVmVyaWZ5IHRvdGFsIGhvdXJzIG9mIHRlc3QgcHJvamVjdCcsCik7CgojIGRlbGV0ZSB3b3JraW5nIHVuaXRzIGZvciBKYW4uIDE1dGgsIDIwMTEKbXkgJERlbGV0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgWWVhciAgID0+ICcyMDExJywKICAgIE1vbnRoICA9PiAnMScsCiAgICBEYXkgICAgPT4gJzE1JywKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgd29ya2luZyB1bml0cyB3ZXJlIHN1Y2Nlc3NmdWxseSBkZWxldGVkCiRTZWxmLT5UcnVlKAogICAgJERlbGV0ZSwKICAgICdEZWxldGUgd29ya2luZyB1bml0cyBmb3IgdGVzdCcsCik7CgojIGdldCB3b3JraW5nIHVuaXRzIGZvciBKYW4uIDE1dGgsIDIwMTEKbXkgJVdvcmtpbmdVbml0c0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgIFllYXIgICA9PiAnMjAxMScsCiAgICBNb250aCAgPT4gJzEnLAogICAgRGF5ICAgID0+ICcxNScsCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCiMgdmVyaWZ5IG5vbmV4aXN0ZW5jZSBvZiB0aGUgZGVsZXRlZCB3b3JraW5nIHVuaXRzCiRTZWxmLT5JcygKICAgICRXb3JraW5nVW5pdHNEYXRhe1RvdGFsfSwKICAgICcwJywKICAgICdWZXJpZnkgbm9uZXhpc3RlbmNlIG9mIHRoZSBkZWxldGVkIHdvcmtpbmcgdW5pdHMnLAopOwoKIyBzZXQgdG8gaW52YWxpZCBhbGwgcmVnaXN0cmllcyB1c2VkIGZvciB0aGUgdGVzdHMKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgIEFjdGlvbklEICAgICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICBBY3Rpb24gICAgICAgPT4gJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSAuICdtb2RpZmllZCcsCiAgICBBY3Rpb25TdGF0dXMgPT4gMCwKKTsKCiRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzVXBkYXRlKAogICAgSUQgICAgICAgICAgICAgICAgID0+ICRQcm9qZWN0SUQsCiAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJE5ld1Byb2plY3REYXRhe1Byb2plY3R9IC4gJ21vZGlmaWVkJywKICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnVGVzdCcsCiAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMCwKKTsKCiRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgVXNlcklEICAgICAgICA9PiAkVXNlcklELAogICAgRGVzY3JpcHRpb24gICA9PiAnVGVzdCB1c2VyJywKICAgIENyZWF0ZVByb2plY3QgPT4gMCwKICAgIFNob3dPdmVydGltZSAgPT4gMCwKICAgIEFsbG93U2tpcCAgICAgPT4gMCwKICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgIDEgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMS0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAxLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzUwJywKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzEwJywKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzIwJywKICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMCwKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMi0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAyLTI4JywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzMwJywKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMTAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAwLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBjbGVhbnVwIGlzIGRvbmUgYnkgUmVzdG9yZURhdGFiYXNlLgoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgVXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIERpc2FibGUgZGVmYXVsdCBWYWNhdGlvbiBkYXlzLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lVmFjYXRpb25EYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgIyBEaXNhYmxlIE1hc3NFbnRyeSBmZWF0dXJlcy4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlcicsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBHZXQgdGVzdCB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgSW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgIyBVcGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBwcm9qZWN0LgogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgYWN0aW9uLgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIExvZ2luIGFzIHRlc3QgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdFZGl0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0Iik7CgogICAgICAgICMgQWRkIGFkZGl0aW9uYWwgcm93LgogICAgICAgIG15ICRSZWNvcmRzTnVtYmVyID0gJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHBhcnNlSW50KCQoIiNSZWNvcmRzTnVtYmVyIikudmFsKCksIDEwKScpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQGlkPSdNb3JlSW5wdXRGaWVsZHMnXVtcQHR5cGU9J2J1dHRvbiddIiktPmNsaWNrKCk7CgogICAgICAgIG15ICROZXh0UmVjb3Jkc051bWJlciA9ICRSZWNvcmRzTnVtYmVyICsgMTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI1JlY29yZHNOdW1iZXInKS52YWwoKSA9PSAkTmV4dFJlY29yZHNOdW1iZXIiICk7CgogICAgICAgICMgQ2hlY2sgdGltZSBhY2NvdW50aW5nIGVkaXQgZmllbGQgSURzLCBmaXJzdCBhbmQgYWRkZWQgcm93LgogICAgICAgIGZvciBteSAkUm93ICggMSwgOSApIHsKICAgICAgICAgICAgZm9yIG15ICRFZGl0RmllbGRJRCAoCiAgICAgICAgICAgICAgICBxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lIFBlcmlvZCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkRWRpdEZpZWxkSUQkUm93IiwgJ2NzcycgKTsKICAgICAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIG15ICRFZGl0UmVzdElEICgKICAgICAgICAgICAgcXcoTW9udGggRGF5IFllYXIgRGF5RGF0ZXBpY2tlckljb24gTmF2aWdhdGlvblNlbGVjdCBJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IExlYXZlRGF5IFNpY2sgT3ZlcnRpbWUpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJEVkaXRSZXN0SUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIEVkaXQgdGltZSBhY2NvdW50aW5nIGZvciB0ZXN0IGNyZWF0ZWQgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNQcm9qZWN0SUQxJykudmFsKCckUHJvamVjdElEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0FjdGlvbklEMScpLnZhbCgnJEFjdGlvbklEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSZW1hcmsxIiwgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSB0ZXN0IHJlbWFyaycpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N0YXJ0VGltZTEiLCAnY3NzJyApLT5zZW5kX2tleXMoJzEwOjAwJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRW5kVGltZTEiLCAgICdjc3MnICktPnNlbmRfa2V5cyggJzE2OjAwJywgIlx0IiApOwoKICAgICAgICAjIFN1Ym1pdCB3b3JrIGFjY291bnRpbmcgZWRpdCB0aW1lIHJlY29yZC4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IHRoYXQgcGVyaW9kIGNhbGN1bGF0ZSBjb3JyZWN0IHRpbWUuCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNQZXJpb2QxIiwgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICc2LjAwJywKICAgICAgICAgICAgIlBlcmlvZCB0aW1lIGNvcnJlY3RseSBjYWxjdWxhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIFZlcmlmeSBzdWJtaXQgbWVzc2FnZS4KICAgICAgICBteSAkU3VibWl0TWVzc2FnZSA9ICdTdWNjZXNzZnVsIGluc2VydCEnOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFN1Ym1pdE1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJFN1Ym1pdE1lc3NhZ2UgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgaWYgQWdlbnQgaGF2ZSBhY2Nlc3MgdG8gTmF2YmFyLiBTZWUgYnVnIzEzNDY2LgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nO1N1YmFjdGlvbj1FZGl0VXNlcjtVc2VySUQ9JFRlc3RVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgIyBTdWJ0cmFjdCAxMCBkYXlzIGZyb20gY3VycmVudCBkYXRlLgogICAgICAgIG15ICRJbnRlcnZhbCA9IDEwOwogICAgICAgICREYXRlVGltZU9iamVjdC0+U3VidHJhY3QoIERheXMgPT4gJEludGVydmFsICk7CiAgICAgICAgbXkgJFllYXJTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVZJywKICAgICAgICApOwogICAgICAgIG15ICRNb250aFN0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgIEZvcm1hdCA9PiAnJW0nLAogICAgICAgICk7CiAgICAgICAgbXkgJERheVN0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgIEZvcm1hdCA9PiAnJWQnLAogICAgICAgICk7CgogICAgICAgIG15ICRTdWJ0cmFjdGVkRGF0ZSA9ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCI7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGF0ZVN0YXJ0LTEiLCAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0RhdGVTdGFydC0xIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRTdWJ0cmFjdGVkRGF0ZSk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdFVzZXJEYXRhIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBpZiBub3RpZmljYXRpb24gaXMgc2hvd24gb24gcGFnZS4KICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcuTWVzc2FnZUJveC5FcnJvciBhW2hyZWYqPVwiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0XCJdJykudGV4dCgpLnRyaW0oKTsiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICJQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEiLAogICAgICAgICAgICAnTGluayBmb3IgQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQgaXMgZm91bmQnLAogICAgICAgICk7CgogICAgICAgICMgQ2hlY2tzIGlmIEluY29tcGxldGUgd29ya2luZyBkYXlzIGlzIHNob3duLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJy5JbmNvbXBsZXRlV29ya2luZ0RheXMgLkNvdW50ZXInKS50ZXh0KCk7IgogICAgICAgICAgICApLAogICAgICAgICAgICAkSW50ZXJ2YWwsCiAgICAgICAgICAgICIkSW50ZXJ2YWwgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgaXMgZm91bmQgaW4gdG9vbGJhciBjb3VudGVyIiwKICAgICAgICApOwoKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBHZXQgREIgY2xlYW4tdXAgZGF0YS4KICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgQ2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEuCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoIERheXMgPT4gMSApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJFbmQgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhFbmQgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e01vbnRofTsKICAgICAgICBteSAkRGF5RW5kICAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e0RheX07CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3OyIpOwoKICAgICAgICAjIGNoZWNrIHBhZ2UgbGF5b3V0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgdmVyaWZ5IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldyB2YWx1ZXMKICAgICAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKICAgICAgICBteSBAVGVzdCA9ICgKICAgICAgICAgICAgJFByb2plY3RUaXRsZSwgJEFjdGlvblRpdGxlLCAnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldycsICdPbiBvdmVydGltZSBsZWF2ZScsICdPdmVydGltZSAoSG91cnMpJywKICAgICAgICAgICAgJ1ZhY2F0aW9uIChEYXlzKScsICdTaWNrIExlYXZlIChEYXlzKScsIEBXZWVrZGF5QXJyYXkKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJENoZWNrIChAVGVzdCkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hlY2sgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRDaGVjayBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgICAgICMgU2V0IE1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cyBTeXNDb25maWcgb24gNTAgZGF5cyBmb3IgdGVzdCBwdXJwb3NlLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gNTAsCiAgICAgICAgKTsKCiAgICAgICAgIyBVc2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIEdldCB0ZXN0IHVzZXIgSUQuCiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBJbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nLgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICRZZWFyU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgRm9ybWF0ID0+ICclWScsCiAgICAgICAgKTsKICAgICAgICBteSAkTW9udGhTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVtJywKICAgICAgICApOwogICAgICAgIG15ICREYXlTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVkJywKICAgICAgICApOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncyA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgICAgICREYXRlVGltZVNldHRpbmdzLT5BZGQoCiAgICAgICAgICAgIERheXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lU2V0dGluZ3MtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyBVcGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBwcm9qZWN0LgogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgYWN0aW9uLgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIEFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIuCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgTG9naW4gYXMgdGVzdCB1c2VyLgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIik7CgogICAgICAgICMgU2VsZWN0IG1vbnRoIGFuZCB5ZWFyIHRoYXQgYXJlIHVzZWQgZm9yIHRlc3RpbmcuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTW9udGggb3B0aW9uW3ZhbHVlPSckTW9udGhTdGFydCddIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNZZWFyIG9wdGlvblt2YWx1ZT0nJFllYXJTdGFydCddIiwgICAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjTW9udGgnKS52YWwoKSA9PSAkTW9udGhTdGFydCAmJiBcJCgnI1llYXInKS52YWwoKSA9PSAkWWVhclN0YXJ0IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hdmlnYXRpb25TZWxlY3QiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgcGFnZSBsYXlvdXQuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgVmVyaWZ5IHRoZXJlIGlzIGxpbmsgdG8gdGVzdCB1c2VyIHJlcG9ydHMuCiAgICAgICAgbXkgJFVzZXJSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkVGVzdFVzZXJMb2dpbiAkVGVzdFVzZXJMb2dpbiIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBWZXJpZnkgdGhlcmUgaXMgbGluayB0byB0ZXN0IHVzZXIgcHJvamVjdCByZXBvcnRzLgogICAgICAgIG15ICRQcm9qZWN0UmVwb3J0RWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiJFByb2plY3RUaXRsZSIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFByb2plY3RSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFByb2plY3RSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBTZWxlY3QgdGVzdCBjcmVhdGVkIHByb2plY3QuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICRQcm9qZWN0VGl0bGUsICdsaW5rX3RleHQnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBwYWdlIGxheW91dC4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyBWZXJpZnkgdGhlcmUgaXMgdGVzdCBjcmVhdGVkIGFjdGlvbi4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRBY3Rpb25UaXRsZSApID4gLTEsCiAgICAgICAgICAgICIkQWN0aW9uVGl0bGUgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIEdldCBEQiBjbGVhbi11cCBkYXRhLgogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YS4KICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFub3RoZXIgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlciA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKCk7CgogICAgICAgICMgR2V0IHRlc3QgdXNlciBJRC4KICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nIik7CgogICAgICAgICMgQ2hlY2sgdGltZSBhY2NvdW50IHNldHRpbmcgcGFnZSBJRHMuCiAgICAgICAgZm9yIG15ICRTZXR0aW5nUGFnZSAoCiAgICAgICAgICAgIHF3KAogICAgICAgICAgICBOZXdVc2VySUQKICAgICAgICAgICAgQ29yZV9VSV9BdXRvZ2VuZXJhdGVkSURfMAogICAgICAgICAgICBDb3JlX1VJX0F1dG9nZW5lcmF0ZWRJRF8xCiAgICAgICAgICAgIENvcmVfVUlfQXV0b2dlbmVyYXRlZElEXzIKICAgICAgICAgICAgLkZpbHRlckJveAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRTZWxlY3RvciA9ICggJFNldHRpbmdQYWdlID1+IG0vXlthLXpBLVowLTldLyA/ICcjJyA6ICcnICkgLiAkU2V0dGluZ1BhZ2U7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICRTZWxlY3RvciwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBhZGQgcHJvamVjdCBhbmQgYWRkIHRhc2suCiAgICAgICAgZm9yIG15ICRTZXR0aW5nQWRkICggJ0FkZCcsICdBZGQgdGFzaycsICkgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSckU2V0dGluZ0FkZCddW1xAdHlwZT0nc3VibWl0J10iKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBGb3IgY2hlY2sgJ25ldyB1c2VyJyBpbnB1dCBhdXRvY29tcGxldGUuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICdpbnB1dFtpZD0iTmV3VXNlcklEX1NlYXJjaCJdJywgJ2NzcycgKTsKCiAgICAgICAgIyBDbGljayBvbiAnQWRkIHByb2plY3QnLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBwcm9qZWN0IHBhZ2UgSURzLgogICAgICAgIGZvciBteSAkUHJvamVjdFBhZ2VJRCAocXcoUHJvamVjdCBQcm9qZWN0RGVzY3JpcHRpb24gUHJvamVjdFN0YXR1cykpCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRQcm9qZWN0UGFnZUlEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBDcmVhdGUgdGVzdCBwcm9qZWN0LgogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgICAgICAgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdERlc2NyaXB0aW9uID0gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUHJvamVjdCIsICAgICAgICAgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCRQcm9qZWN0VGl0bGUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3REZXNjcmlwdGlvbiIsICdjc3MnICktPnNlbmRfa2V5cygkUHJvamVjdERlc2NyaXB0aW9uKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IGNyZWF0ZWQgdGVzdCBwcm9qZWN0LgogICAgICAgIGZvciBteSAkUHJvamVjdFZlcmlmeSAoICRQcm9qZWN0VGl0bGUsICRQcm9qZWN0RGVzY3JpcHRpb24gKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRQcm9qZWN0VmVyaWZ5ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkUHJvamVjdFZlcmlmeSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIENsaWNrIG9uICdBZGQgdGFzaycuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J0FkZCB0YXNrJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgdGFzayBwYWdlIElEcy4KICAgICAgICBmb3IgbXkgJFRhc2tQYWdlSUQgKHF3KFRhc2sgVGFza1N0YXR1cykpIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkVGFza1BhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgQ3JlYXRlIHRlc3QgdGFzay4KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnVGFzayAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUYXNrIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRBY3Rpb25UaXRsZSk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIFZlcmlmeSBjcmVhdGVkIHRlc3QgdGFzay4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRBY3Rpb25UaXRsZSApID4gLTEsCiAgICAgICAgICAgICIkQWN0aW9uVGl0bGUgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgVGhpcyBjaGFuZ2UgdHJpZ2dlcmVkIGEgcGFnZSBsb2FkIG9uIGEgbmV3IHBhZ2UuCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjTmV3VXNlcklEJykudmFsKCckVGVzdFVzZXJJRCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgJ3JldHVybiB0eXBlb2YoQ29yZSkgPT0gIm9iamVjdCIgJiYgdHlwZW9mKENvcmUuQXBwKSA9PSAib2JqZWN0IiAmJiBDb3JlLkFwcC5QYWdlTG9hZENvbXBsZXRlOycKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJyNEZXNjcmlwdGlvbicpLmxlbmd0aDsiICk7CgogICAgICAgICMgQ2hlY2sgZWRpdCB1c2VyIHBhZ2UuCiAgICAgICAgZm9yIG15ICRFZGl0VXNlclBhZ2VJRCAoCiAgICAgICAgICAgIHF3KERlc2NyaXB0aW9uIFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0IEFsbG93U2tpcCBDYWxlbmRhciBEYXRlU3RhcnQtMSBEYXRlRW5kLTEgTGVhdmVEYXlzLTEKICAgICAgICAgICAgV2Vla2x5SG91cnMtMSBPdmVydGltZS0xIFBlcmlvZFN0YXR1cy0xKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRFZGl0VXNlclBhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjTGVhdmVEYXlzLTEnKS52YWwoJycpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0xlYXZlRGF5cy0xIiwgJ2NzcycgKS0+c2VuZF9rZXlzKDApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0RhdGVTdGFydC0xIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgbGVhdmUgZGF5cyBjb3JyZWN0IGZvcm1hdC4KICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0xlYXZlRGF5cy0xIiwgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICcwLjAwJywKICAgICAgICAgICAgIkxlYXZlIERheXMgY29ycmVjdCBmb3JtYXQiLAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjTGVhdmVEYXlzLTEnKS52YWwoJycpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0xlYXZlRGF5cy0xIiwgJ2NzcycgKS0+c2VuZF9rZXlzKDQwKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEYXRlU3RhcnQtMSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IGxlYXZlIGRheXMgY29ycmVjdCBmb3JtYXQuCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMZWF2ZURheXMtMSIsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAnNDAuMDAnLAogICAgICAgICAgICAiTGVhdmUgRGF5cyBjb3JyZWN0IGZvcm1hdCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGljayAnQWRkIHRpbWUgcGVyaW9kJy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkIHRpbWUgcGVyaW9kJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgZm9yIG5ldyBhZGRlZCB0aW1lIHBlcmlvZCBmaWVsZHMuCiAgICAgICAgZm9yIG15ICROZXdUaW1lUGVyaW9kSUQgKHF3KERhdGVTdGFydC0yIERhdGVFbmQtMiBMZWF2ZURheXMtMiBXZWVrbHlIb3Vycy0yIE92ZXJ0aW1lLTIgUGVyaW9kU3RhdHVzLTIpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkTmV3VGltZVBlcmlvZElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBFZGl0IHVzZXIgc2V0dGluZy4KICAgICAgICBteSAkVXNlckRlc2NyaXB0aW9uID0gJ1NlbGVuaXVtIHRlc3QgdXNlciBzZXR0aW5nJzsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEZXNjcmlwdGlvbiIsICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAnY3NzJyApLT5zZW5kX2tleXMoJFVzZXJEZXNjcmlwdGlvbik7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Nob3dPdmVydGltZSIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNTaG93T3ZlcnRpbWU6Y2hlY2tlZCcpLmxlbmd0aDsiICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0NyZWF0ZVByb2plY3QiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjQ3JlYXRlUHJvamVjdDpjaGVja2VkJykubGVuZ3RoOyIgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQWxsb3dTa2lwIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0FsbG93U2tpcDpjaGVja2VkJykubGVuZ3RoOyIgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIFZlcmlmeSB0ZXN0IHVzZXIgc2V0dGluZy4KICAgICAgICBteSAkU2V0dGluZ1VzZXIgPSAiJFRlc3RVc2VyICRUZXN0VXNlciAoJFRlc3RVc2VyKSI7CiAgICAgICAgZm9yIG15ICRTZXR0aW5nVXNlclZlcmlmeSAoICRTZXR0aW5nVXNlciwgJFVzZXJEZXNjcmlwdGlvbiApIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFNldHRpbmdVc2VyVmVyaWZ5ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkU2V0dGluZ1VzZXJWZXJpZnkgaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgR2V0IERCIGNsZWFuLXVwIGRhdGEuCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgQ2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEuCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgZ2V0IG5lZWRlZCBvYmplY3QKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBzZXQgTWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIFN5c0NvbmZpZyBvbiA1MCBkYXlzIGZvciB0ZXN0IHB1cnBvc2UKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IDUwLAogICAgICAgICk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBEaXNhYmxlIGRlZmF1bHQgVmFjYXRpb24gZGF5cy4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVZhY2F0aW9uRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgIG15ICRZZWFyU3RhcnQgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntNb250aH07CiAgICAgICAgbXkgJERheVN0YXJ0ICAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgRGF5cyAgICA9PiA0MCwKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBTZWNvbmRzID0+IDEgKTsKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggRGF5cyA9PiAxICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nVmlldyBvZiB0ZXN0IGNyZWF0ZWQgd29yayB1bml0IGRheQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nVmlldztZZWFyPSRZZWFyQ3VycmVudDtNb250aD0kTW9udGhDdXJyZW50O0RheT0kRGF5Q3VycmVudDtVc2VySUQ9JFRlc3RVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBwYWdlIGxheW91dAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIGNoZWNrIHRpbWUgYWNjb3VudGluZyB2aWV3IHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRJRCAocXcoTW9udGggRGF5IFllYXIgRGF5RGF0ZXBpY2tlckljb24gTmF2aWdhdGlvblNlbGVjdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBwcm9qZWN0IGFuZCBhY3Rpb24KICAgICAgICBmb3IgbXkgJENoZWNrICggJFByb2plY3RUaXRsZSwgJEFjdGlvblRpdGxlICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hlY2sgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRDaGVjayBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBEYXlzID0+IDQwICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NTdGFydCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CiAgICAgICAgbXkgJFllYXJTdGFydCAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhTdGFydCAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e01vbnRofTsKICAgICAgICBteSAkRGF5U3RhcnQgICAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKAogICAgICAgICAgICBEYXlzICAgID0+IDQwLAogICAgICAgICAgICBTZWNvbmRzID0+IDEKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJDdXJyZW50ICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoQ3VycmVudCA9ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9OwogICAgICAgIG15ICREYXlDdXJyZW50ICAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+U3VidHJhY3QoIFNlY29uZHMgPT4gMSApOwogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKCBEYXlzID0+IDEgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5nc0VuZCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyRW5kICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoRW5kID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntNb250aH07CiAgICAgICAgbXkgJERheUVuZCAgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntEYXl9OwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgbm90aWZpY2F0aW9uIG1lc3NhZ2UKICAgICAgICBteSAkTm90aWZpY2F0aW9uTWVzc2FnZSA9ICdQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJE5vdGlmaWNhdGlvbk1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJE5vdGlmaWNhdGlvbk1lc3NhZ2UgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIHVzZSBhIGNhbGVuZGFyIHdpdGggdGhlIHNhbWUgYnVzaW5lc3MgaG91cnMgZm9yIGV2ZXJ5IGRheSBzbyB0aGF0IHRoZSBVVCBydW5zIGNvcnJlY3RseQogICAgICAgICMgb24gZXZlcnkgZGF5IG9mIHRoZSB3ZWVrIGFuZCBvdXRzaWRlIHVzdWFsIGJ1c2luZXNzIGhvdXJzLgogICAgICAgIG15ICVXZWVrOwogICAgICAgIG15IEBEYXlzID0gcXcoU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0KTsKICAgICAgICBmb3IgbXkgJERheSAoQERheXMpIHsKICAgICAgICAgICAgJFdlZWt7JERheX0gPSBbIDAgLi4gMjMgXTsKICAgICAgICB9CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgIG15ICRZZWFyU3RhcnQgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntNb250aH07CiAgICAgICAgbXkgJERheVN0YXJ0ICAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgRGF5cyAgICA9PiA0MCwKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBTZWNvbmRzID0+IDEgKTsKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggRGF5cyA9PiAxICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgdmVyaWZ5IHRoZXJlIGlzIHRvb2wgYmFyIGZvciBpbmNvbXBsZXRlIGRheXMKICAgICAgICBteSAkVG9vbEJhckluY29tcGxldGVEYXlzID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQHRpdGxlLCBcJ0luY29tcGxldGUgd29ya2luZyBkYXlzOicpXSIpOwogICAgICAgICRUb29sQmFySW5jb21wbGV0ZURheXMtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkVG9vbEJhckluY29tcGxldGVEYXlzLT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgVGltZUFjY291bnRpbmcuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICBDb3JlLlVJLlRhYmxlLkluaXRUYWJsZUZpbHRlcigkKCcuRmlsdGVyQm94JyksICQoJy5EYXRhVGFibGUnKSk7CgogICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5NYXNzRW50cnlJbml0KCk7CgogICAgICAgICQoJyNOZXdVc2VySUQnKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnZm9ybScpLnN1Ym1pdCgpOwogICAgICAgIH0pOwoKICAgICAgICAkKCcjQWRkUGVyaW9kJykub2ZmKCdjbGljaycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgJEZvcm0gPSAkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKTsKICAgICAgICAgICAgJCgnaW5wdXRbbmFtZT0iQWRkUGVyaW9kIl0nLCAkRm9ybSkudmFsKDEpOwogICAgICAgIH0pOwoKICAgICAgICAkKCcjU3VibWl0VXNlckRhdGEnKS5vZmYoJ2NsaWNrJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkRm9ybSA9ICQodGhpcykuY2xvc2VzdCgnZm9ybScpOwogICAgICAgICAgICAkKCdpbnB1dFtuYW1lPSJTdWJtaXRVc2VyRGF0YSJdJywgJEZvcm0pLnZhbCgxKTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0Jykub2ZmKCdjaGFuZ2UuSW5jb21wbGV0ZVdvcmtpbmdEYXlzJykub24oJ2NoYW5nZS5JbmNvbXBsZXRlV29ya2luZ0RheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBEYXRlID0gJCh0aGlzKS52YWwoKS5zcGxpdCgnLScpOwogICAgICAgICAgICBpZiAoRGF0ZVswXSAmJiBEYXRlWzFdICYmIERhdGVbMl0pIHsKICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJykgKyAiQWN0aW9uPSIgKyBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbicpICsgIjtZZWFyPSIgKyBEYXRlWzBdICsgIjtNb250aD0iICsgRGF0ZVsxXSArICI7RGF5PSIgKyBEYXRlWzJdOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5CaW5kQ29uZmlybWF0aW9uRGlhbG9nKHsKICAgICAgICAgICAgRWxlbWVudElEOiAgICAgICAgICAgICAgICAgICdEZWxldGVUaW1lQWNjb3VudGluZ0VudHJ5JywKICAgICAgICAgICAgRWxlbWVudFNlbGVjdG9yOiAgICAgICAgICAgICcjRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeScsCiAgICAgICAgICAgIERpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZzogICAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O0RlbGV0ZURpYWxvZz0xO1llYXI9JyArIENvcmUuQ29uZmlnLkdldCgnWWVhcicpICsgJztNb250aD0nICsgQ29yZS5Db25maWcuR2V0KCdNb250aCcpICsgJztEYXk9JyArIENvcmUuQ29uZmlnLkdldCgnRGF5JyksCiAgICAgICAgICAgIENvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nOiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O1N1YmFjdGlvbj1EZWxldGU7WWVhcj0nICsgQ29yZS5Db25maWcuR2V0KCdZZWFyJykgKyAnO01vbnRoPScgKyBDb3JlLkNvbmZpZy5HZXQoJ01vbnRoJykgKyAnO0RheT0nICsgQ29yZS5Db25maWcuR2V0KCdEYXknKSwKICAgICAgICAgICAgRGlhbG9nVGl0bGU6ICAgICAgICAgICAgICAgIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5IiksCiAgICAgICAgICAgIFRyYW5zbGF0ZWRUZXh0OiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBZZXM6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdZZXMnKSwKICAgICAgICAgICAgICAgIE5vOiAgQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ05vJykKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBzaG93IHRoZSBjb25maXJtYXRpb24gZGlhbG9nIHRvIGNvbmZpcm0gdGhlIGFjdGlvbgogICAgICAgIGlmIChDb3JlLkNvbmZpZy5HZXQoJ0Jsb2NrTmFtZScpKSB7CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKAogICAgICAgICAgICAgICAgQ29yZS5Db25maWcuR2V0KCdCbG9ja05hbWUnKSwKICAgICAgICAgICAgICAgIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJDb25maXJtIGluc2VydCIpLAogICAgICAgICAgICAgICAgJzIwJScsCiAgICAgICAgICAgICAgICAnQ2VudGVyJywKICAgICAgICAgICAgICAgIHRydWUsCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ1llcycpLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzczogIlByaW1hcnkiLAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ05vJyksCgogICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWZpbmUgdGhlIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlICdObycgYnV0dG9uIGlzIHByZXNzZWQKICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uKCl7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYuRGlhbG9nOnZpc2libGUgZGl2LkNvbnRlbnRGb290ZXIgYnV0dG9uJykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byB0aGUgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgc2F2ZWQgZW50cnkgYWZ0ZXIgcHJlc3NpbmcgdGhlIE5vIGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7U3ViYWN0aW9uPURlbGV0ZTtZZWFyPScgKyAgQ29yZS5Db25maWcuR2V0KCdZZWFyJykgKyAnO01vbnRoPScgKyAgQ29yZS5Db25maWcuR2V0KCdNb250aCcpICsgJztEYXk9JyArICBDb3JlLkNvbmZpZy5HZXQoJ0RheScpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJCgnLkxlYXZlRGF5cycpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIEZpZWxkVmFsdWUgPSAkKHRoaXMpLnZhbCgpOwoKICAgICAgICAgICAvLyByZXBsYWNlICwgd2l0aCAuCiAgICAgICAgICAgRmllbGRWYWx1ZSA9IEZpZWxkVmFsdWUucmVwbGFjZSgvLC9nLCAiLiIpOwoKICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgZW50ZXJlZCB2YWx1ZSBvbmx5IGNvbnNpc3RzIG9mIGFsbG93ZWQgdmFsdWVzCiAgICAgICAgICAgLy8gaWYgbm90LCB3ZSBkbyBub3QgZXZhbCBmb3Igc2VjdXJpdHkgcmVhc29ucwogICAgICAgICAgIGlmIChGaWVsZFZhbHVlLm1hdGNoKC9eWzAtOS4rXC0gXSskLykpIHsKICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRpb24KICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICAgICAgRmllbGRWYWx1ZSA9IGV2YWwoRmllbGRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1lbmFibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGNhdGNoIChDYWxjRXJyb3IpIHsKICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSAwOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAvLyBzZXQgbmV3IHZhbHVlCiAgICAgICAgICAgICAgICQodGhpcykudmFsKEZpZWxkVmFsdWUudG9GaXhlZCgyKSk7CiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgoKLyoqCiAqIEBuYW1lc3BhY2UgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgQ29uZmlybWF0aW9uRGlhbG9nLgogKi8KVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIERpYWxvZ0RhdGEKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICAgICAqIEBtZW1iZXIge0FycmF5fQogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHBhc3NlZCBmcm9tIHRoZSBEVEwgYW5kIGNvbnRhaW4gYWxsIHRoZSBkYXRhIHRoYXQgdGhlIGRpYWxvZyBuZWVkcy4KICAgICAqLwogICAgdmFyIERpYWxvZ0RhdGEgPSBbXTsKCiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKiBAbmFtZSBTaG93V2FpdGluZ0RpYWxvZwogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gUG9zaXRpb25Ub3AgLSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nLgogICAgICogQGRlc2NyaXB0aW9uIFNob3dzIHdhaXRpbmcgZGlhbG9nIHVudGlsIHNlYXJjaCBzY3JlZW4gaXMgcmVhZHkuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNob3dXYWl0aW5nRGlhbG9nKFBvc2l0aW9uVG9wKXsKICAgICAgICBDb3JlLlVJLkRpYWxvZy5TaG93Q29udGVudERpYWxvZygnPGRpdiBjbGFzcz0iU3BhY2luZyBDZW50ZXIiPjxzcGFuIGNsYXNzPSJBSkFYTG9hZGVyIiB0aXRsZT0iJyArIENvcmUuQ29uZmlnLkdldCgnTG9hZGluZ01zZycpICsgJyI+PC9zcGFuPjwvZGl2PicsICcnLCBQb3NpdGlvblRvcCwgJ0NlbnRlcicsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgU2hvd0NvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gZmFsc2UuCiAgICAgKiBAcGFyYW0ge0V2ZW50T2JqZWN0fSBFdmVudCAtIGV2ZW50IG9iamVjdCBvZiB0aGUgY2xpY2tlZCBlbGVtZW50LgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gc2hvd3MgYSBjb25maXJtYXRpb24gZGlhbG9nIHdpdGggMiBidXR0b25zOiBZZXMgYW5kIE5vIG9yIGEgbWVzc2FnZSBkaWFsb2cgd2l0aCBvbmUgYnV0dG9uOiBPay4KICAgICAqLwogICAgVGFyZ2V0TlMuU2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uIChFdmVudCkgewoKICAgICAgICB2YXIgTG9jYWxEaWFsb2dEYXRhLAogICAgICAgICAgICBQb3NpdGlvblRvcCwKICAgICAgICAgICAgRGF0YSwKICAgICAgICAgICAgQnV0dG9uczsKCiAgICAgICAgLy8gZ2V0IGdsb2JhbCBzYXZlZCBEaWFsb2dEYXRhIGZvciB0aGlzIGZ1bmN0aW9uCiAgICAgICAgTG9jYWxEaWFsb2dEYXRhID0gRGlhbG9nRGF0YVskKEV2ZW50LnRhcmdldCkuYXR0cignaWQnKV07CgogICAgICAgIC8vIGRlZmluZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRpYWxvZwogICAgICAgIFBvc2l0aW9uVG9wID0gJCh3aW5kb3cpLmhlaWdodCgpICogMC4zOwoKICAgICAgICAvLyBzaG93IHdhaXRpbmcgZGlhbG9nCiAgICAgICAgU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApOwoKICAgICAgICAvLyBhamF4IGNhbGwgdG8gdGhlIG1vZHVsZSB0aGF0IGV4ZWN1dGVzIHRoZSBhY3Rpb24gd2hlbiBwcmVzc2luZyB0aGUgY29uZmlybWF0aW9uIGJ1dHRvbgogICAgICAgIERhdGEgPSBMb2NhbERpYWxvZ0RhdGEuRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nOwogICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLCBEYXRhLCBmdW5jdGlvbiAoUmVzcG9uc2UpIHsKCiAgICAgICAgICAgIC8vICdDb25maXJtYXRpb24nIG9wZW5zIGEgZGlhbG9nIHdpdGggMiBidXR0b25zOiBZZXMgYW5kIE5vCiAgICAgICAgICAgIGlmIChSZXNwb25zZS5EaWFsb2dUeXBlID09PSAnQ29uZmlybWF0aW9uJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSB5ZXMgYW5kIG5vIGJ1dHRvbnMKICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuWWVzLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCgogICAgICAgICAgICAgICAgICAgIC8vIGRlZmluZSB0aGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgJ1llcycgYnV0dG9uIGlzIHByZXNzZWQKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24oKXsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpc2FibGUgWWVzIGFuZCBObyBidXR0b25zIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VibWl0cwogICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYuRGlhbG9nOnZpc2libGUgZGl2LkNvbnRlbnRGb290ZXIgYnV0dG9uJykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIHRoZSBtb2R1bGUgdGhhdCBkb2VzIHRoZSBjb25maXJtZWQgYWN0aW9uIGFmdGVyIHByZXNzaW5nIHRoZSBZZXMgYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJykgKyBMb2NhbERpYWxvZ0RhdGEuQ29uZmlybWVkQWN0aW9uUXVlcnlTdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuTm8sCiAgICAgICAgICAgICAgICAgICAgVHlwZTogIkNsb3NlIgogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vICdNZXNzYWdlJyBvcGVucyBhIGRpYWxvZyB3aXRoIDEgYnV0dG9uOiBPawogICAgICAgICAgICBlbHNlIGlmIChSZXNwb25zZS5EaWFsb2dUeXBlID09PSAnTWVzc2FnZScpIHsKCiAgICAgICAgICAgICAgICAvLyBkZWZpbmUgT2sgYnV0dG9uCiAgICAgICAgICAgICAgICBCdXR0b25zID0gW3sKICAgICAgICAgICAgICAgICAgICBMYWJlbDogTG9jYWxEaWFsb2dEYXRhLlRyYW5zbGF0ZWRUZXh0Lk9rLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCiAgICAgICAgICAgICAgICAgICAgVHlwZTogIkNsb3NlIgogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHNob3cgdGhlIGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gY29uZmlybSB0aGUgYWN0aW9uCiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKFJlc3BvbnNlLkhUTUwsIExvY2FsRGlhbG9nRGF0YS5EaWFsb2dUaXRsZSwgUG9zaXRpb25Ub3AsICJDZW50ZXIiLCB0cnVlLCBCdXR0b25zKTsKICAgICAgICB9LCAnanNvbicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBCaW5kQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBEYXRhIC0gRGlhbG9nRGF0YS4KICAgICAqIEBkZXNjcmlwdGlvbiAgQmluZHMgY29uZm9ybWF0aW9uIGRpYWxvZyB0byBhbiBlbGVtZW50CiAgICAgKi8KICAgIFRhcmdldE5TLkJpbmRDb25maXJtYXRpb25EaWFsb2cgPSBmdW5jdGlvbiAoRGF0YSkgewogICAgICAgIERpYWxvZ0RhdGFbRGF0YS5FbGVtZW50SURdID0gRGF0YTsKCiAgICAgICAgLy8gYmluZGluZyBhIGNsaWNrIGV2ZW50IHRvIHRoZSBkZWZpbmVkIGVsZW1lbnQKICAgICAgICAkKERpYWxvZ0RhdGFbRGF0YS5FbGVtZW50SURdLkVsZW1lbnRTZWxlY3RvcikKICAgICAgICAgICAgLm9mZignY2xpY2suVGltZUFjY291bnRpbmcuQmluZENvbmZpcm1hdGlvbkRpYWxvZycpCiAgICAgICAgICAgIC5vbignY2xpY2suVGltZUFjY291bnRpbmcuQmluZENvbmZpcm1hdGlvbkRpYWxvZycsIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5TaG93Q29uZmlybWF0aW9uRGlhbG9nKTsKICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgZWRpdCBzY3JlZW4uCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLy8gQWRkcyBvcHRpb24gdG8gYSBzZWxlY3Rpb24KICAgIGZ1bmN0aW9uIEFkZFNlbGVjdGlvbk9wdGlvbigkU2VsZWN0aW9uRWxlbWVudCwgT3B0aW9uVGV4dCwgT3B0aW9uVmFsdWUsIFNlbGVjdGVkT3B0aW9uKSB7CiAgICAgICAgdmFyIE9wdGlvbkhUTUwgPSBDb3JlLlRlbXBsYXRlLlJlbmRlcigKICAgICAgICAgICAgJ0FnZW50L1RpbWVBY2NvdW50aW5nL09wdGlvbicsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZhbHVlOiAgICBPcHRpb25WYWx1ZSwKICAgICAgICAgICAgICAgIFRleHQ6ICAgICBPcHRpb25UZXh0LAogICAgICAgICAgICAgICAgU2VsZWN0ZWQ6IE9wdGlvblZhbHVlID09PSBTZWxlY3RlZE9wdGlvbgogICAgICAgICAgICB9CiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVjdGlvbkVsZW1lbnQuYXBwZW5kKE9wdGlvbkhUTUwpOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gV29ya2luZ1VuaXRJRCAtIFRoZSBJRCBvZiB0aGUgd29ya2luZyB1bml0IHdlIGFyZSBpbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIEZpbGxzIG9wdGlvbnMgb2YgYWN0aW9uIHNlbGVjdGlvbiBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdAogICAgICovCiAgICBUYXJnZXROUy5GaWxsQWN0aW9uTGlzdCA9IGZ1bmN0aW9uIChXb3JraW5nVW5pdElEKSB7CiAgICAgICAgdmFyIFByb2plY3ROYW1lID0gJCgnI1Byb2plY3RJRCcgKyBXb3JraW5nVW5pdElEICsgJyBvcHRpb246c2VsZWN0ZWQnKS50ZXh0KCksCiAgICAgICAgICAgIEFjdGlvbkxpc3QgPSBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbkxpc3QnKSwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0gQ29yZS5Db25maWcuR2V0KCdBY3Rpb25MaXN0Q29uc3RyYWludHMnKSwKICAgICAgICAgICAgJEFjdGlvblNlbGVjdGlvbiA9ICQoIiNBY3Rpb25JRCIgKyBXb3JraW5nVW5pdElEKSwKICAgICAgICAgICAgU2VsZWN0ZWRBY3Rpb25JRCA9ICRBY3Rpb25TZWxlY3Rpb24udmFsKCksCiAgICAgICAgICAgIE9wdGlvbkNvdW50ID0gMDsKCiAgICAgICAgLy8gcmVtb3ZlIHByZXZpb3VzIGFjdGlvbnMsIGxlYXZlIGZpcnN0IGVsZW1lbnQgKGVtcHR5IGVsZW1lbnQpCiAgICAgICAgJEFjdGlvblNlbGVjdGlvbi5maW5kKCdvcHRpb24nKS5maWx0ZXIoJzpub3QoOmZpcnN0KScpLnJlbW92ZSgpOwoKICAgICAgICAkLmVhY2goQWN0aW9uTGlzdCwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgQWN0aW9uSUQgPSB0aGlzWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uTmFtZSA9IHRoaXNbMV07CgogICAgICAgICAgICAkLmVhY2goQWN0aW9uTGlzdENvbnN0cmFpbnRzLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgUHJvamVjdE5hbWVSZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXNbMF0pLAogICAgICAgICAgICAgICAgICAgIEFjdGlvbk5hbWVSZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXNbMV0pOwoKICAgICAgICAgICAgICAgIC8vIGFkZCBhY3Rpb24gdG8gc2VsZWN0aW9uCiAgICAgICAgICAgICAgICBpZiAoUHJvamVjdE5hbWVSZWdFeHAudGVzdChQcm9qZWN0TmFtZSkgJiYgQWN0aW9uTmFtZVJlZ0V4cC50ZXN0KEFjdGlvbk5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgQWRkU2VsZWN0aW9uT3B0aW9uKCRBY3Rpb25TZWxlY3Rpb24sIEFjdGlvbk5hbWUsIEFjdGlvbklELCBTZWxlY3RlZEFjdGlvbklEKTsKICAgICAgICAgICAgICAgICAgICBPcHRpb25Db3VudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gYWxsIGFjdGlvbnMgd2lsbCBiZSBhZGRlZCBpZiBubyBhY3Rpb24gd2FzIGFkZGVkIGFib3ZlIChwb3NzaWJsZSBtaXNjb25maWd1cmF0aW9uKQogICAgICAgIGlmICghT3B0aW9uQ291bnQpIHsKICAgICAgICAgICAgLy8gaWdub3JlIGZpcnN0IGVsZW1lbnQgYmVjYXVzZSBpdCdzIHRoZSBlbXB0eSBlbGVtZW50IHdoaWNoIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgbGlzdAogICAgICAgICAgICAkLmVhY2goQWN0aW9uTGlzdCwgZnVuY3Rpb24gKEluZGV4KSB7CiAgICAgICAgICAgICAgICB2YXIgQWN0aW9uSUQgPSB0aGlzWzBdLAogICAgICAgICAgICAgICAgICAgIEFjdGlvbk5hbWUgPSB0aGlzWzFdOwogICAgICAgICAgICAgICAgaWYgKEluZGV4ID4gMCkgewogICAgICAgICAgICAgICAgICAgIEFkZFNlbGVjdGlvbk9wdGlvbigkQWN0aW9uU2VsZWN0aW9uLCBBY3Rpb25OYW1lLCBBY3Rpb25JRCwgU2VsZWN0ZWRBY3Rpb25JRCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH07CgoKICAgIGZ1bmN0aW9uIEluaXRBZGRSb3coKSB7CiAgICAgICAgJCgnI01vcmVJbnB1dEZpZWxkcycpLm9mZignY2xpY2suTW9yZUlucHV0RmllbGRzJykub24oJ2NsaWNrLk1vcmVJbnB1dEZpZWxkcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyICRMYXN0Um93ID0gJCgnI0luc2VydFdvcmtpbmdIb3VycyB0Ym9keSB0ci5Xb3JraW5nSG91cnM6bGFzdCcpLAogICAgICAgICAgICAgICAgJE5ld1JvdywgTmV3Um93SFRNTCwKICAgICAgICAgICAgICAgIFJlY29yZE51bWJlciA9IHBhcnNlSW50KCQoJyNSZWNvcmRzTnVtYmVyJykudmFsKCksIDEwKSArIDE7CgogICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkRlYWN0aXZhdGUoJCgnLldvcmtpbmdIb3VycycpKTsKICAgICAgICAgICAgJE5ld1JvdyA9ICRMYXN0Um93LmNsb25lKCk7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSAkTmV3Um93Lmh0bWwoKTsKCiAgICAgICAgICAgIC8vIE5vdyB0YWtlIHRoZSBsYXN0IHJvdyBhbmQgcmVwbGFjZSBhbGwgbnVtYmVycyB3aXRoIHRoZSBuZXcgcmVjb3JkIG51bWJlcgogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9Qcm9qZWN0SURbMC05XSsvZywgJ1Byb2plY3RJRCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9Qcm9qZWN0SURcW1swLTldKy9nLCAnUHJvamVjdElEWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9GaWxsQWN0aW9uTGlzdFwoWzAtOV0rL2csICdGaWxsQWN0aW9uTGlzdCgnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvQWN0aW9uSURbMC05XSsvZywgJ0FjdGlvbklEJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0FjdGlvbklEXFtbMC05XSsvZywgJ0FjdGlvbklEWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9SZW1hcmtbMC05XSsvZywgJ1JlbWFyaycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9SZW1hcmtcW1swLTldKy9nLCAnUmVtYXJrWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9TdGFydFRpbWVbMC05XSsvZywgJ1N0YXJ0VGltZScgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9TdGFydFRpbWVcW1swLTldKy9nLCAnU3RhcnRUaW1lWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9FbmRUaW1lWzAtOV0rL2csICdFbmRUaW1lJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0VuZFRpbWVcW1swLTldKy9nLCAnRW5kVGltZVsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUGVyaW9kWzAtOV0rL2csICdQZXJpb2QnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUGVyaW9kXFtbMC05XSsvZywgJ1BlcmlvZFsnICsgUmVjb3JkTnVtYmVyKTsKCiAgICAgICAgICAgIC8vIE5vdyB3cml0ZSB0aGlzIEhUTUwgYmFjayB0byB0aGUganF1ZXJ5IG9iamVjdAogICAgICAgICAgICAkTmV3Um93Lmh0bWwoTmV3Um93SFRNTCk7CgogICAgICAgICAgICAvLyBJZiBsYXN0IHJvdyBjb250YWluZWQgdmFsdWVzLCB0aGVzZSBtdXN0IGJlIHJlbW92ZWQKICAgICAgICAgICAgJE5ld1JvdwogICAgICAgICAgICAgICAgLmZpbmQoJ2lucHV0OnRleHQnKS52YWwoJycpLmVuZCgpCiAgICAgICAgICAgICAgICAuZmluZCgnc2VsZWN0IG9wdGlvbicpLnByb3AoJ3NlbGVjdGVkJywgZmFsc2UpOwoKICAgICAgICAgICAgLy8gTm93IGFkZCB0aGlzIHJvdyB0byB0aGUgdGFibGUKICAgICAgICAgICAgJExhc3RSb3cuYWZ0ZXIoJE5ld1Jvdyk7CgogICAgICAgICAgICAvLyBTYXZlIG5ldyBSZWNvcmROdW1iZXIKICAgICAgICAgICAgJCgnI1JlY29yZHNOdW1iZXInKS52YWwoUmVjb3JkTnVtYmVyKTsKCiAgICAgICAgICAgIC8vIFJlLWluaXRpYXRlIHRoZSAnb2RkL2V2ZW4nIGNvbG91cnMgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgICQoJyNJbnNlcnRXb3JraW5nSG91cnMgdGJvZHkgdHInKQogICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdFdmVuJykKICAgICAgICAgICAgICAgIC5maWx0ZXIoJzpvZGQnKS5hZGRDbGFzcygnRXZlbicpOwoKICAgICAgICAgICAgLy8gTW9kZXJuaXplIGZpZWxkcwogICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkFjdGl2YXRlKCQoJy5Xb3JraW5nSG91cnMnKSk7CiAgICAgICAgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gUmVjYWxjdWxhdGVUb3RhbEhvdXJzKCkgewogICAgICAgIHZhciBUb3RhbCA9IDA7CiAgICAgICAgJCgnLlBlcmlvZCcpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgVmFsdWUgPSBwYXJzZUZsb2F0KCQodGhpcykudmFsKCkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKFZhbHVlKSkgewogICAgICAgICAgICAgICAgVG90YWwgKz0gVmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAkKCcuVG90YWxIb3VycycpLnRleHQoVG90YWwudG9GaXhlZCgyKSk7CiAgICB9CgogICAgZnVuY3Rpb24gSW5pdFBlcmlvZENhbGN1bGF0aW9uKCkgewogICAgICAgIC8vIGluaXQgY2FsY3VsYXRpb24gb2YgcGVyaW9kIGZpZWxkIGFmdGVyIHdvcmtpbmcgaG91cnMgd2hlcmUgYWRkZWQvc3Vic3RyYWN0ZWQvd2hhdGV2ZXIuLi4KICAgICAgICAkKCcuUGVyaW9kJykub2ZmKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nKS5vbignY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgIHZhciBGaWVsZFZhbHVlID0gJCh0aGlzKS52YWwoKTsKCiAgICAgICAgICAgLy8gcmVwbGFjZSAsIHdpdGggLgogICAgICAgICAgIEZpZWxkVmFsdWUgPSBGaWVsZFZhbHVlLnJlcGxhY2UoLywvZywgIi4iKTsKCiAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGVudGVyZWQgdmFsdWUgb25seSBjb25zaXN0cyBvZiBhbGxvd2VkIHZhbHVlcwogICAgICAgICAgIC8vIGlmIG5vdCwgd2UgZG8gbm90IGV2YWwgZm9yIHNlY3VyaXR5IHJlYXNvbnMKICAgICAgICAgICBpZiAoRmllbGRWYWx1ZS5tYXRjaCgvXlswLTkuK1wtIF0rJC8pKSB7CiAgICAgICAgICAgICAgIC8vIENhbGN1bGF0aW9uCiAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSBldmFsKEZpZWxkVmFsdWUpOwogICAgICAgICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBjYXRjaCAoQ2FsY0Vycm9yKSB7CiAgICAgICAgICAgICAgICAgICBGaWVsZFZhbHVlID0gMDsKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgLy8gc2V0IG5ldyB2YWx1ZQogICAgICAgICAgICAgICAkKHRoaXMpLnZhbChGaWVsZFZhbHVlLnRvRml4ZWQoMikpOwoKICAgICAgICAgICAgICAgLy8gbm93IFN0YXJ0VGltZSBhbmQgRW5kVGltZSB3aWxsIG5vdCBtYXRjaCB0aGUgcGVyaW9kIGFueW1vcmUKICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZXNlIGVudHJpZXMKICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykudmFsKCcnKTsKCiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICAgICAgICAgfQoKICAgICAgICAgICAvLyBub3cgcmUtY2FsY3VsYXRlIHRoZSB0b3RhbCBob3VycyBzdW0KICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gaW5pdCBwZXJpb2QgY2FsY3VsYXRpb24gb24gc3RhcnR0aW1lIGFuZCBlbmR0aW1lIGZpZWxkcwogICAgICAgICQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykub2ZmKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nKS5vbignY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFN0YXJ0VGltZSwgJEVuZFRpbWUsCiAgICAgICAgICAgICAgICBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIEVuZFRpbWVIb3VyLCBFbmRUaW1lTWludXRlLAogICAgICAgICAgICAgICAgU3RhcnREYXRlLCBFbmREYXRlLCBUb2RheSwKICAgICAgICAgICAgICAgIFBlcmlvZDsKCiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdTdGFydFRpbWUnKSkgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuRW5kVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcuU3RhcnRUaW1lJyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG9ubHkgY2FsY3VsYXRlIGlmIGJvdGggZmllbGRzIGFyZSBmaWxsZWQKICAgICAgICAgICAgaWYgKCRTdGFydFRpbWUudmFsKCkgJiYgJEVuZFRpbWUudmFsKCkpIHsKICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgaG91cnMgYW5kIG1pbnV0ZXMKICAgICAgICAgICAgICAgIFN0YXJ0VGltZUhvdXIgPSAkU3RhcnRUaW1lLnZhbCgpLnNwbGl0KC86LylbMF0gfHwgMDsKICAgICAgICAgICAgICAgIFN0YXJ0VGltZU1pbnV0ZSA9ICRTdGFydFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwogICAgICAgICAgICAgICAgRW5kVGltZUhvdXIgPSAkRW5kVGltZS52YWwoKS5zcGxpdCgvOi8pWzBdIHx8IDA7CiAgICAgICAgICAgICAgICBFbmRUaW1lTWludXRlID0gJEVuZFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBkYXRlIG9iamVjdHMKICAgICAgICAgICAgICAgIFRvZGF5ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIFN0YXJ0RGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIDApOwogICAgICAgICAgICAgICAgRW5kRGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBFbmRUaW1lSG91ciwgRW5kVGltZU1pbnV0ZSwgMCk7CgogICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICBQZXJpb2QgPSBFbmREYXRlLmdldFRpbWUoKSAtIFN0YXJ0RGF0ZS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICBQZXJpb2QgPSBQZXJpb2QgLyAoMTAwMCAqIDYwICogNjApOwoKICAgICAgICAgICAgICAgIC8vIHNldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oUGVyaW9kKSkgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKFBlcmlvZC50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKCcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhbGwgbmVlZGVkIEpTIGZvciB0aGUgRWRpdCBzY3JlZW4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgdmFyIFJlbWFya1JlZ0V4cENvbnRlbnQgPSBDb3JlLkNvbmZpZy5HZXQoJ1JlbWFya1JlZ0V4cENvbnRlbnQnKSwKICAgICAgICAgICAgLy8gQWRkIHNvbWUgc3BlY2lhbCB2YWxpZGF0aW9uIG1ldGhvZHMgZm9yIHRoZSBlZGl0IHNjcmVlbgogICAgICAgICAgICAvLyBEZWZpbmUgYWxsIGF2YWlsYWJsZSBlbGVtZW50cyAob25seSB0aGUgcHJlZml4ZXMpIGluIGEgcm93CiAgICAgICAgICAgIEVsZW1lbnRQcmVmaXhlcyA9IFsnUHJvamVjdElEJywgJ0FjdGlvbklEJywgJ1JlbWFyaycsICdTdGFydFRpbWUnLCAnRW5kVGltZScsICdQZXJpb2QnXTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSBwcm9qZWN0OiBpZiBzb21lIG90aGVyIGZpZWxkIGluIHRoaXMgcm93IGlzIGZpbGxlZCwgdGhlIHByb2plY3Qgc2VsZWN0IG11c3QgYmUgZmlsbGVkLCB0b28KICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0JywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCwKICAgICAgICAgICAgICAgIFJlc3VsdCA9IHRydWU7CgogICAgICAgICAgICAvLyBHZXQgSUQKICAgICAgICAgICAgLy8gT3VyIEVsZW1lbnQgY2FuIGJlIHRoZSBzZWxlY3QgZWxlbWVudCBvciB0aGUgYXV0b2NvbXBsZXRpb24gaW5wdXQgZmllbGQKICAgICAgICAgICAgaWYgKCQoRWxlbWVudCkuaXMoJ3NlbGVjdCcpKSB7CiAgICAgICAgICAgICAgICBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdQcm9qZWN0SUQnLCAnJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBJRCA9ICQoRWxlbWVudCkucHJldkFsbCgnc2VsZWN0JykuYXR0cignaWQnKS5yZXBsYWNlKCdQcm9qZWN0SUQnLCAnJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghVmFsdWUpIHsKICAgICAgICAgICAgICAgICQuZWFjaChFbGVtZW50UHJlZml4ZXMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIVJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyAhPT0gJ1Byb2plY3RJRCcgJiYgJCgnIycgKyB0aGlzICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gUmVzdWx0OwogICAgICAgIH0pOwoKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkUnVsZSgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdCcsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdDogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgcmVtYXJrczogZGVwZW5kaW5nIG9uIHRoZSBwcm9qZWN0LCByZW1hcmtzIG11c3QgYmUgZW50ZXJlZCBvciBub3QKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1JlbWFyaycsICcnKSwKICAgICAgICAgICAgICAgIFJlbWFya1JlZ0V4cCA9IG5ldyBSZWdFeHAoIl4oIiArIFJlbWFya1JlZ0V4cENvbnRlbnQgKyAiKSQiKSwKICAgICAgICAgICAgICAgIFJlbWFya0NoZWNrID0gUmVtYXJrUmVnRXhwLnRlc3QoJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkpOwoKICAgICAgICAgICAgaWYgKCQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gIShSZW1hcmtDaGVjayAmJiBWYWx1ZS5sZW5ndGggPCA4KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyazogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgc3RhcnQgdGltZTogaWYgYSBwcm9qZWN0IGlzIGdpdmVuIGFuZCBubyB0aW1lIHBlcmlvZCBpcyBnaXZlbiwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZScsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnU3RhcnRUaW1lJywgJycpOwoKICAgICAgICAgICAgaWYgKCFWYWx1ZSAmJiAkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSAmJiAhJCgnI1BlcmlvZCcgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWUnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZTogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgdGltZSBwZXJpb2Q6IGlmIGEgcHJvamVjdCBpcyBnaXZlbiBhbmQgbm8gc3RhcnQgdGltZSBpcyBnaXZlbiwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZCcsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnUGVyaW9kJywgJycpOwoKICAgICAgICAgICAgaWYgKCFWYWx1ZSAmJiAkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSAmJiAhJCgnI1N0YXJ0VGltZScgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2QnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZDogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIGluaXRpYXRlICJtb3JlIGlucHV0IGZpZWxkcyIgZnVuY3Rpb25hbGl0eQogICAgICAgIEluaXRBZGRSb3coKTsKCiAgICAgICAgLy8gaW5pdGlhdGUgcGVyaW9kIGNhbGN1bGF0aW9uCiAgICAgICAgSW5pdFBlcmlvZENhbGN1bGF0aW9uKCk7CgogICAgICAgIC8vIFNlbGVjdCBvbmx5IG9uZSBjaGVja2JveCBpbiB0aGUgZ3JvdXAgJ0Fic2VuY2UnCiAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5jbGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICQoIi5BYnNlbmNlIGlucHV0OmNoZWNrYm94IikucHJvcCgiY2hlY2tlZCIsIGZhbHNlKTsKICAgICAgICAgICAgJCh0aGlzKS5wcm9wKCJjaGVja2VkIiwgdHJ1ZSk7CiAgICAgICAgfSk7CiAgICB9OwoKCiAgICAvKioKICAgICAqIEBuYW1lIE1hc3NFbnRyeUluaXQKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IExhbmd1YWdlIG9iamVjdCB3aXRoIHRleHQgdHJhbnNsYXRpb25zCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgamF2YXNjcmlwdCBmb3IgdGhlIG1hc3MgZW50cnkgZnVuY3Rpb25hbGl0eQogICAgICovCiAgICBUYXJnZXROUy5NYXNzRW50cnlJbml0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgJCgnI0luY29tcGxldGVXb3JraW5nRGF5LUFsbCcpLm9mZignY2xpY2suU2VsZWN0QWxsRGF5cycpLm9uKCdjbGljay5TZWxlY3RBbGxEYXlzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgU3RhdGUgPSAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnKTsKICAgICAgICAgICAgJCgnLkluY29tcGxldGVXb3JraW5nRGF5cyB0Ym9keSBpbnB1dDpjaGVja2JveCcpLnByb3AoJ2NoZWNrZWQnLCBTdGF0ZSk7CiAgICAgICAgfSk7CiAgICAgICAgJCgnI01hc3NFbnRyeVN1Ym1pdCcpLm9mZignY2xpY2suTWFzc0VudHJ5U3VibWl0Jykub24oJ2NsaWNrLk1hc3NFbnRyeVN1Ym1pdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyICRXb3JraW5nRGF5Q2hlY2tib3hlcyA9ICQoJy5JbmNvbXBsZXRlV29ya2luZ0RheXMgdGJvZHkgaW5wdXQ6Y2hlY2tib3g6Y2hlY2tlZCcpLmZpbHRlcignW25hbWUhPUluY29tcGxldGVXb3JraW5nRGF5LUFsbF0nKTsKCiAgICAgICAgICAgIGlmICghJFdvcmtpbmdEYXlDaGVja2JveGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgYWxlcnQoQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnKSk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFNob3cgb3ZlcmxheQogICAgICAgICAgICBDb3JlLlVJLkRpYWxvZy5TaG93Q29udGVudERpYWxvZygkKCcjTWFzc0VudHJ5Q29uZmlybURpYWxvZycpLCBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnTWFzcyBFbnRyeScpLCAnMTUwcHgnLCAnQ2VudGVyJywgdHJ1ZSwgWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnU3VibWl0JyksCiAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRTZWxlY3RlZFJhZGlvID0gJCgnI01hc3NFbnRyeUNvbmZpcm1SYWRpbyBsaSBpbnB1dDpyYWRpbzpjaGVja2VkJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYnNlbmNlUmVhc29uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkRGF0ZXMgPSAnJzsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJFNlbGVjdGVkUmFkaW8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydChDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBhYnNlbmNlIHJlYXNvbgogICAgICAgICAgICAgICAgICAgICAgICBBYnNlbmNlUmVhc29uID0gJFNlbGVjdGVkUmFkaW8uZGF0YSgnYWJzZW5jZScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoQWJzZW5jZVJlYXNvbiA9PT0gJ0xlYXZlRGF5JykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPUxlYXZlRGF5XScpLnZhbCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBYnNlbmNlUmVhc29uID09PSAnU2ljaycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1TaWNrXScpLnZhbCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBYnNlbmNlUmVhc29uID09PSAnT3ZlcnRpbWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9T3ZlcnRpbWVdJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2xsZWN0IGRhdGVzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5JbmNvbXBsZXRlV29ya2luZ0RheXMgdGJvZHkgaW5wdXQ6Y2hlY2tib3g6Y2hlY2tlZCcpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIERhdGVJdGVtID0gJCh0aGlzKS5hdHRyKCduYW1lJykucmVwbGFjZSgvSW5jb21wbGV0ZVdvcmtpbmdEYXktLywgIiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERhdGVJdGVtICE9PSAnQWxsJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3RlZERhdGVzICs9IERhdGVJdGVtICsgJ3wnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPURhdGVzXScpLnZhbChDb2xsZWN0ZWREYXRlcyk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBTaG93IHdhaXRpbmcgaWNvbgogICAgICAgICAgICAgICAgICAgICAgICAkKCcuRGlhbG9nOnZpc2libGUnKQogICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLkNvbnRlbnRGb290ZXInKQogICAgICAgICAgICAgICAgICAgICAgICAuZW1wdHkoKQogICAgICAgICAgICAgICAgICAgICAgICAuZW5kKCkKICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5Jbm5lckNvbnRlbnQnKQogICAgICAgICAgICAgICAgICAgICAgICAud2lkdGgoJCgnLkRpYWxvZzp2aXNpYmxlJykuZmluZCgnLklubmVyQ29udGVudCcpLndpZHRoKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoQ29yZS5UZW1wbGF0ZS5SZW5kZXIoJ0FnZW50L1RpbWVBY2NvdW50aW5nL0RpYWxvZy9BamF4TG9hZGVyJykpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3VibWl0IGZvcm0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeScpLnN1Ym1pdCgpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICdQcmltYXJ5JwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ0NhbmNlbCcpLAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLkNsb3NlRGlhbG9nKCQoJy5EaWFsb2c6dmlzaWJsZScpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0pOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5PdmVydmlldwogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgVGltZUFjY291bnRpbmcuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5PdmVydmlldyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAkKCcuTWFzdGVyQWN0aW9uJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAgICAgdmFyICRNYXN0ZXJBY3Rpb25MaW5rID0gJCh0aGlzKS5maW5kKCcuTWFzdGVyQWN0aW9uTGluaycpOwogICAgICAgICAgICAvLyBvbmx5IGFjdCBpZiB0aGUgbGluayB3YXMgbm90IGNsaWNrZWQgZGlyZWN0bHkKICAgICAgICAgICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAkTWFzdGVyQWN0aW9uTGluay5hdHRyKCdocmVmJyk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oVGltZUFjY291bnRpbmcuQWdlbnQuT3ZlcnZpZXcgfHwge30pKTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5SZXBvcnRpbmcKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIFRpbWVBY2NvdW50aW5nLgogKi8KVGltZUFjY291bnRpbmcuQWdlbnQuUmVwb3J0aW5nID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICQoJyNOYXZpZ2F0aW9uU2VsZWN0Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KFRpbWVBY2NvdW50aW5nLkFnZW50LlJlcG9ydGluZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5WaWV3CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaW1lQWNjb3VudGluZy4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LlZpZXcgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudC5WaWV3IHx8IHt9KSk7Cg==
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgoKICAgIDx0aXRsZT5UaW1lQWNjb3VudGluZyBmb3IgT1RSUyAmbmRhc2g7IFVuaXRUZXN0IFJlc3VsdHM8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGgxIGlkPSJxdW5pdC1oZWFkZXIiPlRpbWVBY2NvdW50aW5nIGZvciBPVFJTICZuZGFzaDsgVW5pdFRlc3QgUmVzdWx0czwvaDE+CiAgICA8aDIgaWQ9InF1bml0LWJhbm5lciI+PC9oMj4KICAgIDxoMiBpZD0icXVuaXQtdXNlckFnZW50Ij48L2gyPgogICAgPG9sIGlkPSJxdW5pdC10ZXN0cyI+PC9vbD4KCgogICAgPCEtLSBVbml0VGVzdCBjb2RlIGdvZXMgaGVyZSAtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuanMiPjwvc2NyaXB0PgogICAgPCEtLQogICAgICAgIE5vdyBhbHdheXMgbG9hZCBsaWJyYXJ5IGZpcnN0IGFuZCB0aGVuIHRoZSBVbml0VGVzdCBmaWxlIGZvciBpdC4KICAgICAgICBUaGUgVW5pdFRlc3QgZmlsZSBpcyByZXNwb25zaWJsZSBmb3IgcnVubmludCB0aGUgdGVzdHMuCiAgICAtLT4KCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS0zLjIuMS9qcXVlcnkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktdWktMS4xMi4xL2pxdWVyeS11aS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1wdWJzdWIvcHVic3ViLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvanF1ZXJ5LXZhbGlkYXRlLTEuMTYuMC9qcXVlcnkudmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktanN0cmVlLTMuMy40L2pxdWVyeS5qc3RyZWUuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuTGFuZ3VhZ2UuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Jbml0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuSmF2YVNjcmlwdEVuaGFuY2VtZW50cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkRlYnVnLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRGF0YS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkpTT04uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Db25maWcuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5BcHAuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkFjY2Vzc2liaWxpdHkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5SaWNoVGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLlRyZWVTZWxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5JbnB1dEZpZWxkcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkRpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uRXJyb3JUb29sdGlwcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uVmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvcmUuVW5pdFRlc3QuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLlVuaXRUZXN0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuUnVuVW5pdFRlc3RzKCk7CiAgICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgpUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgPSAoZnVuY3Rpb24gKE5hbWVzcGFjZSkgewogICAgTmFtZXNwYWNlLlJ1blVuaXRUZXN0cyA9IGZ1bmN0aW9uKCl7CgogICAgICAgIC8qCiAgICAgICAgICogQ3JlYXRlIGEgZm9ybSBjb250YWluZXIgZm9yIHRoZSB0ZXN0cwogICAgICAgICAqLwogICAgICAgIHZhciAkVGVzdEZvcm0gPSAkKCc8Zm9ybSBpZD0iVGVzdEZvcm0iPjwvZm9ybT4nKSwKICAgICAgICAgICAgJFRhYmxlOwoKICAgICAgICBRVW5pdC5tb2R1bGUoJ1RpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcycpOwogICAgICAgIFFVbml0LnRlc3QoJ2NsaWVudC1zaWRlIHRpbWUgcGVyaW9kIGNhbGN1bGF0aW9ucycsIGZ1bmN0aW9uKEFzc2VydCl7CgogICAgICAgICAgICBBc3NlcnQuZXhwZWN0KDIwKTsKCiAgICAgICAgICAgICRUZXN0Rm9ybS5hcHBlbmQoJzx0YWJsZT48dHI+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPicpOwogICAgICAgICAgICAkVGFibGUgPSAkVGVzdEZvcm0uZmluZCgndHI6ZXEoMCkgdGQnKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJTdGFydFRpbWUxIiBuYW1lPSJTdGFydFRpbWUxIiBjbGFzcz0iU3RhcnRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IkVuZFRpbWUxIiBuYW1lPSJFbmRUaW1lMSIgY2xhc3M9IkVuZFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iUGVyaW9kMSIgbmFtZT0iUGVyaW9kMSIgY2xhc3M9IlBlcmlvZCIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlID0gJFRlc3RGb3JtLmZpbmQoJ3RyOmVxKDEpIHRkJyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iU3RhcnRUaW1lMiIgbmFtZT0iU3RhcnRUaW1lMiIgY2xhc3M9IlN0YXJ0VGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJFbmRUaW1lMiIgbmFtZT0iRW5kVGltZTIiIGNsYXNzPSJFbmRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlBlcmlvZDIiIG5hbWU9IlBlcmlvZDIiIGNsYXNzPSJQZXJpb2QiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZSA9ICRUZXN0Rm9ybS5maW5kKCd0cjplcSgyKSB0ZCcpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlN0YXJ0VGltZTMiIG5hbWU9IlN0YXJ0VGltZTMiIGNsYXNzPSJTdGFydFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iRW5kVGltZTMiIG5hbWU9IkVuZFRpbWUzIiBjbGFzcz0iRW5kVGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJQZXJpb2QzIiBuYW1lPSJQZXJpb2QzIiBjbGFzcz0iUGVyaW9kIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8c3BhbiBpZD0iVG90YWxIb3VycyIgbmFtZT0iVG90YWxIb3VycyIgY2xhc3M9IlRvdGFsSG91cnMiPjwvc3Bhbj4nKTsKICAgICAgICAgICAgJCgnYm9keScpLmFwcGVuZCgkVGVzdEZvcm0pOwoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUnVuIHRoZSB0ZXN0cwogICAgICAgICAgICAgKi8KCiAgICAgICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Jbml0KCk7CgogICAgICAgICAgICAvLyBUZXN0OiB0aW1lIGNhbGN1bGF0aW9uIG9uIHRpbWUgcGVyaW9kIGZpZWxkCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMi4wMCcsICdOb3JtYWwgbnVtYmVyIGVudHJ5Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnZm9vYmFyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ05vdCBhIG51bWJlciAoPSJmb29iYXIiKScpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIgKyAzJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnNS4wMCcsICdFYXN5IGNhbGN1bGF0aW9uJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnYWxlcnQoImh1aHUiKTsnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnRXZpbCBqYXZhc2NyaXB0IGNvZGUnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjIzICsgMS4wOScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzMuMzInLCAnQ2FsY3VsYXRpb24gd2l0aCBub24taW50ZWdlcnMnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjAwMDEgKyAxLjUnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICczLjUwJywgJ0NhbGN1bGF0aW9uIHdpdGggYSBudW1iZXIgd2l0aCBtb3JlIHRoYW4gMiBkZWNpbWFscycpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzEsMiArIDEsMycpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzIuNTAnLCAnTnVtYmVycyB3aXRoICwgaW5zdGVhZCBvZiAuJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnNS44IC0gMS4yJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnNC42MCcsICdTdWJzdHJhY3Rpb24nKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcnKTsKCiAgICAgICAgICAgIC8vIFRlc3Q6IGNhbGN1bGF0ZSBwZXJpb2QgZnJvbSBlbnRlcmVkIHN0YXJ0IGFuZCBlbmQgdGltZQogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnMScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJycpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnT25seSBzdGFydCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcyJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdPbmx5IGVuZCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcxLjAwJywgJ0JvdGggdGltZXMgZW50ZXJlZCcpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6MDYnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDowMCcpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcwLjkwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6MDAnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMTozMCcpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcyLjUwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzksNScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwLDUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ1N0YXJ0VGltZSBhbmQgRW5kVGltZSBmb3JtYXQgYXJlIHdyb25nJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTo1Jyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTA6NScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcxLjAwJywgJ1N0YXJ0VGltZSBhbmQgRW5kVGltZSBmb3JtYXQgYXJlIHNsaWdodGx5IHdyb25nJyk7CgogICAgICAgICAgICAvLyBUZXN0OiBDYWxjdWxhdGlvbiBvZiB0b3RhbCBob3VycwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTo1Jyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTA6NScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMS4wMCcsICdFYXN5IHN0YXJ0Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMi41Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjVG90YWxIb3VycycpLnRleHQoKSwgJzMuNTAnLCAnU2Vjb25kIHBlcmlvZCBmaWVsZCcpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDInKS52YWwoJzEuNSArIDksNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1RvdGFsSG91cnMnKS50ZXh0KCksICcxMi4wMCcsICdTZWNvbmQgcGVyaW9kIGZpZWxkIGdldHMgYW4gYWRkaXRpb25hbCBjYWxjdWxhdGlvbiB3aXRoIG9uZSB3cm9uZyBjb21tYScpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDMnKS52YWwoJzQuMzUnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDMnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTYuMzUnLCAnVGhpcmQgZmllbGQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxNDowMCcpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJ29wZW5lbmQnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjVG90YWxIb3VycycpLnRleHQoKSwgJzE1LjM1JywgJ0ZpcnN0IHJvdzogc3RhcnR0aW1lIGFuZCBlbmR0aW1lIGZpZWxkcyBoYXZlIHdyb25nIGlucHV0Jyk7CgoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogQ2xlYW51cCBkaXYgY29udGFpbmVyIGFuZCBjb250ZW50cwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJCgnI1Rlc3RGb3JtJykucmVtb3ZlKCk7CiAgICAgICAgfSk7CgogICAgfTsKCiAgICByZXR1cm4gTmFtZXNwYWNlOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyB8fCB7fSkpOwo=
LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFRpbWUgQWNjb3VudGluZyBEZWZhdWx0IENTUwogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7CgovKioKICogQHN1YnNlY3Rpb24gIGxlZnQgYW5kIHJpZ2h0IGFycm93cwogKi8KCi5BcnJvdyB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiAxMHB4OwogICAgaGVpZ2h0OiAxMnB4OwogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tdG9wOiAtMnB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7Cn0KCi5BcnJvdyBpIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGNvbG9yOiAjNTU1Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHNwZWNpYWwgc2V0dGluZ3M6IHJlcG9ydGluZwogKi8KCmRpdi5Nb250aFNlbGVjdGlvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5Nb250aFNlbGVjdGlvbiAuQXJyb3cgewogICAgbWFyZ2luLXRvcDogMXB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIEluY29tcGxldGVXb3JraW5nRGF5cyBzZWxlY3QKICovCiNJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IG9wdGlvbltzZWxlY3RlZD1zZWxlY3RlZF0gewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgcHJvamVjdCBhbmQgYWN0aW9uIGRyb3Bkb3ducwogKi8KLlByb2plY3RTZWxlY3Rpb24gewogICAgd2lkdGg6IDMwMHB4Owp9CgouQWN0aW9uU2VsZWN0aW9uIHsKICAgIHdpZHRoOiAzMDBweDsKfQoKLlNpZGViYXJDb2x1bW4gLkRhdGVwaWNrZXJJY29uIHsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cn0KCi5TaWRlYmFyQ29sdW1uIHRoIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsKICAgIG1hcmdpbjogMHB4Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8K
LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMTggT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFRpbWUgQWNjb3VudGluZyBBZGRpdGlvbmFsIFRhYmxlIFNldHRpbmdzCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgZGF0YSB0YWJsZSBlbGVtZW50cyB3aXRob3V0IGhvdmVyCiAqLwoKLk5vSG92ZXIgdGJvZHkgdHI6aG92ZXIgdGQgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICBib3gtc2hhZG93OiBub25lOwp9CgouTm9Ib3ZlciB0ci5FdmVuOmhvdmVyIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7Cn0KCi5Ob0hvdmVyIHRyLkdyYW5kVG90YWw6aG92ZXIgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0NGQ0ZDRjsKfQoKLlRpbWVBY2NvdW50aW5nVGFibGUgaW5wdXRbdHlwZT10ZXh0XSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCi5UaW1lQWNjb3VudGluZ1RhYmxlIHRkIHsKICAgIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBzcGVjaWFsIHRhYmxlIGhlaWdodAogKi8KCi5IaWdoQ2VsbHMgdGJvZHkgdGQgewogICAgaGVpZ2h0OiAzMHB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIGZpeGVkIGRhdGEgdGFibGUgd2lkdGhzCiAqLwoKLkRhdGFUYWJsZSB0ZC5GaXhlZC5EYXkgewogICAgd2lkdGg6IDUwcHg7Cn0KCi5EYXRhVGFibGUgdGQuRml4ZWQuV2Vla2RheSB7CiAgICB3aWR0aDogODBweDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICB0YWJsZSBjb2xvdXJzIGZvciBvdmVydmlldwogKi8KCi5EYXRhVGFibGUgdHIuVmFjYXRpb24gdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0VCQ0NDQzsKfQoKLkRhdGFUYWJsZSB0ci5Ob25Xb3JraW5nRGF5IHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkUwRTA7Cn0KCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkIHsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwMDAwOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDAwMDA7CiAgICBjb2xvcjogIzFBMUExQTsKfQoKLkRhdGFUYWJsZSB0ci5BY3RpdmUgdGQ6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDAwMDAwOwp9CgouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZDpsYXN0LWNoaWxkLAouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZC5MYXN0IHsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7Cn0KCi5EYXRhVGFibGUgdHIuR3JhbmRUb3RhbCB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0ZDRkNGOwp9CgovKioKICogQHN1YnNlY3Rpb24gIGRhdGEgdGFibGUgd2l0aCB0d28gaGVhZGVyIHJvd3MKICovCgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgewogICAgYmFja2dyb3VuZDogbm9uZTsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyIHsKICAgIGJhY2tncm91bmQ6ICNlZWVlZWU7Cn0KCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB0cjpmaXJzdC1jaGlsZCB0aCB7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcGFkZGluZy1ib3R0b206IDJweDsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyOmxhc3QtY2hpbGQgdGgsCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB0ci5MYXN0IHRoIHsKICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICBwYWRkaW5nLXRvcDogM3B4Owp9Cgp0ci5NYXN0ZXJBY3Rpb24gdGQuUm93U3BhbiB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9Cgp0ZC5Sb3dTcGFuewogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjY2NjOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsKfQoKI1RpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwgewogICAgYm9yZGVyLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLWltYWdlOiBub25lOwogICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgcGFkZGluZzogN3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cn0KLyogZW5kIEBtZWRpYSAqLwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBMaXN0OjpVdGlsIHF3KCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAopOwoKPWhlYWQxIE5BTUUKCnZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZyAtIGNvZGUgdG8gZXhlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENvZGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCd2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmcnKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBGb3JjZSBhIHJlbG9hZCBvZiBaWlpBdXRvLnBtIHRvIGdldCB0aGUgZnJlc2ggY29uZmlndXJhdGlvbiB2YWx1ZXMuCiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlSU5DICkgewogICAgICAgIGlmICggJE1vZHVsZSA9fiBtL1paWkFBP3V0b1wucG0kLyApIHsKICAgICAgICAgICAgZGVsZXRlICRJTkN7JE1vZHVsZX07CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIGNvbW1vbiBvYmplY3RzIHdpdGggZnJlc2ggZGVmYXVsdCBjb25maWcuCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIERlYWN0aXZhdGUgdGhlIGdyb3VwICd0aW1lX2FjY291bnRpbmcnIGlmIGV4aXN0cy4KICAgICRTZWxmLT5fR3JvdXBEZWFjdGl2YXRlKAogICAgICAgIE5hbWUgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSgpCgpUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgaWYgdGhlIGluc3RhbGxlZCBtb2R1bGUgdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gNC4wLjkxLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSB7ICAgICMjIG5vIGNyaXRpYwogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoYW5nZSBjb25maWd1cmF0aW9ucyB0byBtYXRjaCB0aGUgbmV3IG1vZHVsZSBsb2NhdGlvbi4KICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3MoKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl81XzBfOTIoKQoKVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV4ZWN1dGVkIGlmIHRoZSBpbnN0YWxsZWQgbW9kdWxlIHZlcnNpb24gaXMgc21hbGxlciB0aGFuIDUuMC45Mi4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl81XzBfOTIoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyIHsgICAgIyMgbm8gY3JpdGljCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgUmVjb3ZlciB0aGUgb2xkIHBlcm1pc3Npb25zCiAgICAkU2VsZi0+X01pZ3JhdGVQZXJtaXNzaW9ucygpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDEgUFJJVkFURSBJTlRFUkZBQ0UKCj1oZWFkMiBfR3JvdXBEZWFjdGl2YXRlKCkKCmRlYWN0aXZhdGUgYSBncm91cAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dyb3VwRGVhY3RpdmF0ZSgKICAgICAgICBOYW1lID0+ICd0aGUtZ3JvdXAtbmFtZScsCiAgICApOwoKPWN1dAoKc3ViIF9Hcm91cERlYWN0aXZhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte05hbWV9ICkgewogICAgICAgIEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE5hbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBncm91cCBvYmplY3QKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICMgbG9va3VwIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJFBhcmFte05hbWV9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBHZXQoCiAgICAgICAgSUQgICAgID0+ICRHcm91cElELAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIGRlYWN0aXZhdGUgZ3JvdXAKICAgICRHcm91cE9iamVjdC0+R3JvdXBVcGRhdGUoCiAgICAgICAgJUdyb3VwRGF0YSwKICAgICAgICBWYWxpZElEID0+ICRWYWxpZExpc3RSZXZlcnNle2ludmFsaWR9LAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfTWlncmF0ZUNvbmZpZ3MoKQoKY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVDb25maWdzKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWdzIHsKCiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBNaWdyYXRlIHRpbWUgYWNjb3VudGluZyBub3RpZmljYXRpb24gU3lzQ29uZmlnCiAgICAjICAgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgdGltZSBhY2NvdW50aW5nIFN5c0NvbmZpZy4KICAgIG15ICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6Tm90aWZ5TW9kdWxlJyk7CgogICAgbXkgQE5ld1NldHRpbmdzOwoKICAgIGlmICggJFNldHRpbmctPnsnODg4LVRpbWVBY2NvdW50aW5nJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eyc4ODgtVGltZUFjY291bnRpbmcnfS0+e01vZHVsZX0gPSAiS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmciOwoKICAgICAgICAjIHNldCBuZXcgc2V0dGluZwogICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdGcm9udGVuZDo6Tm90aWZ5TW9kdWxlIyMjODg4LVRpbWVBY2NvdW50aW5nJywKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnsnVGltZUFjY291bnRpbmcnfSwKICAgICAgICB9OwogICAgfQoKICAgICMgTWlncmF0ZSB0aW1lIGFjY291bnRpbmcgdG9vbCBiYXIgU3lzQ29uZmlnCiAgICAjICAgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgdGltZSBhY2NvdW50aW5nIFN5c0NvbmZpZy4KICAgICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6VG9vbEJhck1vZHVsZScpOwoKICAgIGlmICggJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfS0+e01vZHVsZX0gKSB7CgogICAgICAgICMgdXBkYXRlIG1vZHVsZSBsb2NhdGlvbgogICAgICAgICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30tPntNb2R1bGV9CiAgICAgICAgICAgID0gIktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXMiOwoKICAgICAgICAjIHNldCBuZXcgc2V0dGluZwogICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAxIGlmICFATmV3U2V0dGluZ3M7CgogICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ1RpbWVBY2NvdW50aW5nIC0gcGFja2FnZSBzZXR1cCBmdW5jdGlvbjogTWlncmF0ZUNvbmZpZ3MnLAogICAgICAgIFNldHRpbmdzID0+IFxATmV3U2V0dGluZ3MKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfR2V0T1RSUzVDb25maWdCYWNrdXAoKQoKR2V0IHRoZSBjdXN0b20gY29uZmlndXJhdGlvbnMgbWFkZSBpbiB0aGUgcHJldmlvdXMgdmVyc2lvbiwgT1RSUyA1LgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dldE9UUlM1Q29uZmlnQmFja3VwKCk7Cgo9Y3V0CgpzdWIgX0dldE9UUlM1Q29uZmlnQmFja3VwIHsKICAgIG15ICRDb25maWcgPSB7fTsKCiAgICBteSAkRmlsZUNsYXNzID0gJ0tlcm5lbDo6Q29uZmlnOjpCYWNrdXBzOjpaWlpBdXRvT1RSUzUnOwogICAgZGVsZXRlICRJTkN7JEZpbGVDbGFzc307CgogICAgaWYgKAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoCiAgICAgICAgICAgICRGaWxlQ2xhc3MsCiAgICAgICAgICAgIFNpbGVudCA9PiAxLAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEZpbGVDbGFzcy0+TG9hZCgkQ29uZmlnKTsKICAgIH0KCiAgICByZXR1cm4gJENvbmZpZzsKfQoKPWhlYWQyIF9NaWdyYXRlUGVybWlzc2lvbnMoKQoKY2hhbmdlIHBlcm1pc3Npb25zIHRvIG1hdGNoIHRoZSBvbGQgb25lcyBiZWZvcmUgdGhlIHVwZ3JhZGUuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fTWlncmF0ZVBlcm1pc3Npb25zKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVQZXJtaXNzaW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPbGRDb25maWcgPSAkU2VsZi0+X0dldE9UUlM1Q29uZmlnQmFja3VwKCk7CiAgICBteSAkTmV3Q29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkR2V0Q29uZmlnID0gc3ViIHsKICAgICAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgICAgICBteSAkU2V0dGluZ05hbWUgPSBzaGlmdDsKCiAgICAgICAgbXkgJENvbmZpZyA9ICRTb3VyY2U7CiAgICAgICAgbXkgQEtleXMgPSBzcGxpdCAnIyMjJywgJFNldHRpbmdOYW1lOwogICAgICAgIHdoaWxlICggbXkgJEtleSA9IHNoaWZ0IEBLZXlzICkgewogICAgICAgICAgICAkQ29uZmlnID0gJENvbmZpZy0+eyRLZXl9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRDb25maWc7CiAgICB9OwoKICAgIG15IEBOZXdTZXR0aW5ncyAgICAgICA9ICgpOwogICAgbXkgQFNldHRpbmdzVG9NaWdyYXRlID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgTmF2QmFyID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRWRpdCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldycsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgTmF2QmFyID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJ1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nLAogICAgICAgICAgICAgICAgR3JvdXAgICAgICAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBOYXZCYXIgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1NldHRpbmdzJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZycsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgTmF2QmFyID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cCA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZXBvcnRpbmcnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nVmlldycsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgU0VUVElORzoKICAgIGZvciBteSAkU2V0dGluZyAoQFNldHRpbmdzVG9NaWdyYXRlKSB7CiAgICAgICAgbXkgJFNldHRpbmdPbGRDb25maWcgPSAkR2V0Q29uZmlnLT4oICRPbGRDb25maWcsICRTZXR0aW5nLT57TmFtZX0sICk7CiAgICAgICAgbXkgJFNldHRpbmdEZWZhdWx0cyA9ICRTZXR0aW5nLT57RGVmYXVsdHN9OwoKICAgICAgICBteSBAR3JvdXBHcm91cFJvID0gcXcoIEdyb3VwIEdyb3VwUm8gKTsKCiAgICAgICAgewogICAgICAgICAgICBteSAkTmV3U2V0dGluZyA9ICRHZXRDb25maWctPiggJE5ld0NvbmZpZywgJFNldHRpbmctPntOYW1lfSApOwoKICAgICAgICAgICAgIyBDaGVjayBmb3IgR3JvdXAgYW5kIEdyb3VwUm8uCiAgICAgICAgICAgIGZvciBteSAkS2V5IChAR3JvdXBHcm91cFJvKSB7CiAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFNldHRpbmdPbGRDb25maWctPnskS2V5fSB8fCBkZWZpbmVkICRTZXR0aW5nRGVmYXVsdHMtPnskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAkTmV3U2V0dGluZy0+eyRLZXl9ID0gJFNldHRpbmdPbGRDb25maWctPnskS2V5fSAvLyAkU2V0dGluZ0RlZmF1bHRzLT57JEtleX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAkU2V0dGluZy0+e05hbWV9LAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJE5ld1NldHRpbmcsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBmb3IgTmF2QmFyID0+IE5hdmlnYXRpb24uCiAgICAgICAgaWYgKCAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0gfHwgJFNldHRpbmdEZWZhdWx0cy0+e05hdkJhcn0gKSB7CiAgICAgICAgICAgIG15ICggdW5kZWYsICRGcm9udGVuZCApID0gc3BsaXQgJyMjIycsICRTZXR0aW5nLT57TmFtZX07CiAgICAgICAgICAgIG15ICROZXdTZXR0aW5nID0gJEdldENvbmZpZy0+KCAkTmV3Q29uZmlnLCAiRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyMkeyBGcm9udGVuZCB9IiApOwoKICAgICAgICAgICAgZm9yIG15ICRJbmRleCAoIHNvcnQga2V5cyAleyROZXdTZXR0aW5nfSApIHsKICAgICAgICAgICAgICAgIG15ICROZXdJdGVtcyA9ICROZXdTZXR0aW5nLT57JEluZGV4fTsKICAgICAgICAgICAgICAgIGZvciBteSAkTmV3SXRlbSAoIEB7JE5ld0l0ZW1zfSApIHsKCiAgICAgICAgICAgICAgICAgICAgU09VUkNFOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkU291cmNlICggKCAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0sICRTZXR0aW5nRGVmYXVsdHMtPntOYXZCYXJ9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRPbGRJdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IExpc3Q6OlV0aWw6OmZpcnN0IHsgJF8tPntOYW1lfSBlcSAkTmV3SXRlbS0+e05hbWV9ICYmICRfLT57QmxvY2t9IGVxICROZXdJdGVtLT57QmxvY2t9IH0KICAgICAgICAgICAgICAgICAgICAgICAgQHskU291cmNlfTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1VSQ0UgaWYgISRPbGRJdGVtOwoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKEBHcm91cEdyb3VwUm8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkT2xkSXRlbS0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdJdGVtLT57JEtleX0gPSAkT2xkSXRlbS0+eyRLZXl9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgU09VUkNFOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJGcm9udGVuZDo6TmF2aWdhdGlvbiMjIyR7IEZyb250ZW5kIH0jIyMkeyBJbmRleCB9IiwKICAgICAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkTmV3U2V0dGluZy0+eyRJbmRleH0sCiAgICAgICAgICAgICAgICAgICAgSXNWYWxpZCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBEZXBsb3kgdGhlIG5ldyBzZXR0aW5ncy4KICAgIG15ICRTZXR0aW5nc0RlcGxveWVkID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDb21tZW50cyA9PiAnVGltZUFjY291bnRpbmcgLSBwYWNrYWdlIHNldHVwIGZ1bmN0aW9uOiBfTWlncmF0ZVBlcm1pc3Npb25zJywKICAgICAgICBTZXR0aW5ncyA9PiBcQE5ld1NldHRpbmdzLAogICAgKTsKICAgIGlmICggISRTZXR0aW5nc0RlcGxveWVkICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3Igd2hpbGUgZGVwbG95aW5nIHRoZSBtaWdyYXRlZCBwZXJtaXNzaW9ucyEnLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmls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YmoKNCAwIG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDE4LTExLTA1VDE3OjAwOjQwKzAxOjAwPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQcm9kdWNlcj5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC9wZGY6UHJvZHVjZXI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHJkZjphYm91dD0iIj4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTgtMTEtMDVUMTc6MDA6NDArMDE6MDA8L3htcDpNZXRhZGF0YURhdGU+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE4LTExLTA1VDE3OjAwOjQwKzAxOjAwPC94bXA6Q3JlYXRlRGF0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NSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY3OS42MjkgMTE3LjE5IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjA5IDY3OS42MjkgNTQwLjAgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY2Ny42MjkgMTUzLjg1OCA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjY3LjYyOSA1MzkuOTk4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjU1LjYyOSAyNTMuNTA3IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NTUuNjI5IDUzOS45OTggNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago1OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDYzNC42OSBudWxsXQo+PgplbmRvYmoKNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAyMjYuMTMyIDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NDMuNjI5IDUzOS45OTggNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDU0Ni43NjEgbnVsbF0KPj4KZW5kb2JqCjYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzMS42MjkgMjU1LjAxOSA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjMxLjYyOSA1MzkuOTk4IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0ODAuNjUxIG51bGxdCj4+CmVuZG9iago2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTkuNjI5IDI0Ny41MDggNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYxOS42MjkgNTM5Ljk5OCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDAyLjU0MSBudWxsXQo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjA3LjYyOSAyNTIuMTMzIDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MDcuNjI5IDUzOS45OTggNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDM2MC40MzEgbnVsbF0KPj4KZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU5NS42MjkgMjYzLjY1NiA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTk1LjYyOSA1MzkuOTk4IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAzMDYuMzIxIG51bGxdCj4+CmVuZG9iago3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODMuNjI5IDQwNy40NDkgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU4My42MjkgNTM5Ljk5OCA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMjI4LjIxMSBudWxsXQo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTcxLjYyOSAzMzMuNjE5IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NzEuNjI5IDUzOS45OTggNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDE2Mi4xMDEgbnVsbF0KPj4KZW5kb2JqCjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1OS42MjkgMzk2LjgwMSA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy44MDggNTU5LjYyOSA1NDAuMTY4IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQ3LjYyOSAxODguNzk3IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NDcuNjI5IDUzOS45OTggNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDUzNS42MjkgMjA0Ljk3NiA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTM1LjYyOSA1MzkuOTk4IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTIzLjYyOSAxNzMuNDA4IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1MjMuNjI5IDUzOS45OTggNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDYyNi40IG51bGxdCj4+CmVuZG9iago5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTEuNjI5IDE2NC45MTMgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MiAwIFIKL0ggL0kKCj4+CmVuZG9iago5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuODA3IDUxMS42MjkgNTQwLjE2NyA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNTU4LjAgbnVsbF0KPj4KZW5kb2JqCjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ5OS42MjkgMjA5LjU1MiA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDk5LjYyOSA1MzkuOTk4IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA0ODkuNiBudWxsXQo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDg3LjYyOSAyMjEuNzk0IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDg3LjYyOSA1MzkuOTk4IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ3NS42MjkgMTQ5LjM5IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQ3NS42MjkgNTM5Ljk5OCA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA2NDQuOCBudWxsXQo+PgplbmRvYmoKMTA1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ2My42MjkgMTk5LjAwNiA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NjMuNjI5IDUzOS45OTggNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNTY4LjQgbnVsbF0KPj4KZW5kb2JqCjEwOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NTEuNjI5IDE5NC42NDEgNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDUxLjYyOSA1MzkuOTk4IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MzkuNjI5IDE2MS43ODQgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDM5LjYyOSA1MzkuOTk4IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDY2Ny42NzEgbnVsbF0KPj4KZW5kb2JqCjExNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MjcuNjI5IDM2MS45MjEgNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDI3LjYyOSA1MzkuOTk4IDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDYwNS41MzYgbnVsbF0KPj4KZW5kb2JqCjExNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MTUuNjI5IDM4OC42MDYgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNDE1LjYyOSA1MzkuOTk3IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDU0My40MDEgbnVsbF0KPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MDMuNjI5IDM5MS4wMzYgNDEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNDAzLjYyOSA1MzkuOTk3IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDQ4MS4yNjYgbnVsbF0KPj4KZW5kb2JqCjEyMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzOTEuNjI5IDM3OC4yODcgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzkxLjYyOSA1MzkuOTk3IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDQxOS4xMzEgbnVsbF0KPj4KZW5kb2JqCjEyNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzkuNjI5IDM2NS4zNzggMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzc5LjYyOSA1MzkuOTk3IDM4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDM1Ni45OTYgbnVsbF0KPj4KZW5kb2JqCjEyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNjcuNjI5IDUwNi4wMjEgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy43IDM2Ny42MjkgNTQwLjA2IDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDI4MC40NjEgbnVsbF0KPj4KZW5kb2JqCjEzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNTUuNjI5IDQ5MC40NyAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQzLjYyOSAxNTAuNzkgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42NCAzNDMuNjI5IDU0MC4wIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDIwMy45MjYgbnVsbF0KPj4KZW5kb2JqCjEzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzEuNjI5IDQ5Mi4wIDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTkuNjI5IDE1MC43OSAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjY0IDMxOS42MjkgNTQwLjAgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMTI3LjM5MSBudWxsXQo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMwNy42MjkgNTA3LjM4IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyOTUuNjI5IDEyMi42MSAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOSAyOTUuNjI5IDUzOS45OTkgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNzA4LjAgbnVsbF0KPj4KZW5kb2JqCjE0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyODMuNjI5IDUwMS42OSAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjcxLjYyOSAxMjIuNjEgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzkgMjcxLjYyOSA1MzkuOTk5IDI4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDYyOC4yMDIgbnVsbF0KPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNTkuNjI5IDM3MC42MzcgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMjU5LjYyOSA1MzkuOTk3IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDU2Mi44MDQgbnVsbF0KPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDcuNjI5IDUwNS4zOTQgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42OTggMjQ3LjYyOSA1NDAuMDU4IDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDQ3MS4wMDYgbnVsbF0KPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI5IDQ2Ni41NDcgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMjM1LjYyOSA1MzkuOTk3IDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDM5MS4yMDggbnVsbF0KPj4KZW5kb2JqCjE1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjMuNjI5IDQ5NC4xMzggMjMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzUgMjIzLjYyOSA1MzkuOTk1IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDMxMS40MSBudWxsXQo+PgplbmRvYmoKMTYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxMS42MjkgNDk1LjY1OSAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNSAyMTEuNjI5IDUzOS45OTUgMjIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMjMxLjYxMiBudWxsXQo+PgplbmRvYmoKMTYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE5OS42MjkgNDgyLjkxMiAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxOTkuNjI5IDUzOS45OTcgMjA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMTUxLjgxNCBudWxsXQo+PgplbmRvYmoKMTY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE4Ny42MjkgNDcwLjkxIDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE4Ny42MjkgNTM5Ljk5NyAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE3NS42MjkgMzY5Ljc5IDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE3NS42MjkgNTM5Ljk5NyAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA2NjIuOTEgbnVsbF0KPj4KZW5kb2JqCjE3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNjMuNjI5IDQwMS4xMTYgMTczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTYzLjYyOSA1MzkuOTk3IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDYwMC4yMTMgbnVsbF0KPj4KZW5kb2JqCjE3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNTEuNjI5IDMxOS43MjkgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTUxLjYyOSA1MzkuOTk3IDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDUyNS41MTYgbnVsbF0KPj4KZW5kb2JqCjE3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5IDI2OC45NCAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMzkuNjI5IDUzOS45OTcgMTQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNDM4LjgxOSBudWxsXQo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEyNy42MjkgMzI5LjgwOSAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMjcuNjI5IDUzOS45OTcgMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMzY0LjEyMiBudWxsXQo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDExNS42MjkgMzExLjMxMiAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMTUuNjI5IDUzOS45OTcgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMzAxLjQyNSBudWxsXQo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEwMy42MjkgMzEzLjY0MyAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMDMuNjI5IDUzOS45OTcgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMjM4LjcyOCBudWxsXQo+PgplbmRvYmoKMTkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDkxLjYyOSAzMTQuMjEgMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggOTEuNjI5IDUzOS45OTggMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMTc2LjAzMSBudWxsXQo+PgplbmRvYmoKMTkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDc5LjYyOSAzMTYuNTQxIDg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNzkuNjI5IDUzOS45OTggODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTUgMCBvYmoKPDwgL0xlbmd0aCAxOTYgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nN19y64sSVbs/HzF/gECfz8kVFI90b0zREsMECMQMKC56hG/f5e5R6R77AxOmRXVTVcLHfrU2W47MzIyzM3Xw9YfvvgPZ//3V/if2sPHP//+yx/Of/MfNXzEcv8nn8tHdEfLxTlvP5pId/2P/QP+B///r9wR8sd/DMT+d3f97/wnd/3l3z/+4ct/fnEff/vlH//J/vVf7N/zx399mb/uAv79l7/79Gbcn937299h9OHP8B3+4UtN8zVDOXzPvfePFj5CPcJ8S3/9f34fPn74f+NixvKA78LvP3Jy+Mt/nH/B7xs/ev3F/hfv4Q9fUnbzFfCX5j9KuH5xun7x7XtWx1fPffzbl+9+9+Wvf/Llw9u7aQ6f0e/+dX1L24dP9tkF+0FIH7/7/cc//o399YdvPry9+559+sB/f2c/9QbN9vfxO+xPsn8L8+8hzv923f58e645/+79N//08bv/i/eQP7z79OLRXqTit5X6evFoL17Hy6ZvPuwy8Te8sN1fV89fnucvff2m1A7f7GNvJT7+zv5pffZHxO9zxXPr05EDfn99fs9v6+uBt2pvuFDri32BC35/595/Scf4wJ1RDLUeX0X7/d1x77+6I1ZbXu1BoNbHI+MeRUeuL0cdX57Avf/aj4b722On1rd4ODyGNXOffyvH+BLHSK7vx/j4febuVw9Hxv3thXv/PR814v037v30dnQsiYVb71045pPcuAvwLh/kd8G7diSPL7M9xhTA+yPj7paYSEA6Kh7f4FmALcL9dZF73n3wx3heWiKvIaQj4A6XQr4l49eUBu2SANvkihc4y8d41CqQlo/l6Gl8Sck7ndzhcaez5x5jn6JtQniMA/cc+FSOVMYa8qJTP8rYjhp50TkczQnU5XO2RQJ3+dwPHwXy8iUc0Qns5Us+Eu50ruTTXNpRkvCOqj8a+LpG8pprOjoUQE7sK9gOXhQGa7aFR4XBmu3h5Mp6lKIQWLftOyoE1m3/xh1Omfxa93p43OFQuK+13awjZp4sgrMdHHc4Be6agytH6QJ/mf4wjSPwV/C2iSuiK3iob4G/gu8mAwX+CsH28SjwVwi2kXuBv0JopnQE/grRdnJFeoVoO7mivUJsR1TEV0i2nyvqy75CJgcF/gqpHtI7Mr0/zg4sfwUT/CEJ/BVM8SdFgQWT/LnixJLJB67Ydk7e4mIbud1iHxP5eZred4oCCyb4Ax7mXsl3b4o/BYXATPJLbNGCaUKcoBwLsH1cEWAmXA5vpN1yJG+Dqf6gCLBgst/O93gyyWsw3V8UARadPypYu2XuoqOzjRzPsikxEmAbuSLAoqn/yfKVe9Siqf+kCLBo6r/YnbZL4G5cDLafKwIshnj0hlhIJ6/B1L8XBJgpnSMqAiya+E94ol3gKMBOviZ6BAKL0fbzIBAYS0bRNL+vAntF0/xRkV/RNH/2AntF0/xFkV8x2zYuyK9okt95gb2iSX6vyK9okj9mgb2iaX4p5hVN85+PJXkNtc6oF81epvlH2ItmL9P8I+5Fs5dJ/6jIr2jS3zSCwF49aqGv2ItpHYG97APSgl/JtD+iXzR7JdP+yoE2mfTPivxKPsz4F8teyWctAJZM+jtFfiWT/mQALJnoT4r8Sib6pQBYin4GwFgCS9G2cUV+JRP9SrApmeYPivxKpvml+FcyzV8U+WVKSot/pWy7uCK/Elj7K/fNv4WNP2yrevu13+FXgxG+sTX2a2bO5ftvPnJ6JT/w9Pxgf350n9Mid9RPMznj8f9++PzqyPRApdhZ9Ol9vL3bZufv8QE+v++3ILS3LQnPlJ1EqfXJTt+2vhgTUuurHb7t/SOpxqy3H9uGNKPcJCAeIPLeIncF3lXbkHAJmbsEuy9H8LiGyAKibUhjR+okoNjhezBbIQHdNiRcQ4scwJiwQe2GQl5DKIcruIZKXkPotiEZoGQSEMORcKdTJS86ZtuRcA2dvGjjw5rw8JDfPePDPiN2lQRk4xIDVONDDtBsQzJALuRbyt62JQOY7iIB6ci40ZW8z8h64j7nSL5AcUfHfY6ZvOaSbFcSKMwj8VkFDrODh21LAon5Gu0ILrCYR+4TN9q2WBJgi3CjQybfUouHR67fbh4JKHYEx+Pj2VfoRyoKjfVwlKjQWM92BFdoDCnQKtBYcMGO4Hh+yOX5iLjP0XNvKCAN2gQSC94fJQskFlC6EQQSC0iDdp7ETAcdvggkFoJt6VEgsRBsT3cCiQVkQatAYiHanp54EgsmpZwXSCwgCdoEEgvJtnRFh4VkW7oixAKSoIoSC0iCKlIsZNvSo0BiIduWDuaujbxoJEFxo+kbV2xLTwKJ2VHoqPZEt+rI5w1ZUEWLhWp7ut1pHzt5DdX2dEWLBWRB7TZ7F8iLRha0KDTWbFNXtFjotqnbI91YYkUuVJFiwc4BwYjbzjLcAxftHJAULRaRDLUb7en1tqUrUiw6WwTm7o675ohcKJ5o38lrtmNAULRYtGNAsie62Y7CAewYUBQtFpELtRvtUVXIAWxLV7RYtGOAN+72tq+TgHwERYtFOwakLNBYtHNACQKNReRCFS0Wk23qRaCxaOcAr2gx29iO6AQai0iGKlos2kGgJIHGYrFdXVFjESlRRY1FOwjYgYamsWjngKiIsYiMaFdoDBlRRY3FZrt6FGjMjgFOEWMRGdGq0JgdA2JSaMyOAVlRYxEZ0SbQWHJei4olOwi4INBYQkZUUWPJozpZoLFkB4GsqDHbDWdkjKWxhIyoosZSQIWyQGMJ1fKKGktIiSpqLEUUKQs0lmLRImMJKVFFjSU7CjhFjaVUtMhYSqhU5mksITWqqLFU/NdP9t+97eofBvl6ENz0VEA424dvTCuNv+FHKCvIb2vSq1+gzT+jTeFH+19kSH44segOqW9YrO7nb03z71iN//bfvgU9Es6qdtCr7fES3qMkFWdV/NrMAVBHeJY2kAB7yjzSLqGTgGqHVQOUVCjArCM0QCqRBKCQ0ACB+5BmHaFdcwnsC6CO0AD2tHEAaGfbzu2hJK8Z2vksFyMB3c6qI/vFrUcZYbL11VUSgDJCA+SQSADKCA1g+pMDjDJC3IZGvsIoIzQA99UeRYS4zdGTl4wiwjLLQEiACeezmpMEmHB2uAuF/KqOKkLchUZe9KgixMPjuOd5VhHi4fHkNwlVhA13oZCvMKoIi+mjTH63Ry2hQGKjlrDbK6RGPm6jllAgsVFLaA+095W86FFLqJAYignB3M2R1zCKCe0V7JBOAkw6e4XFUExoT3RjOWnUEiokBuVsN8/bF5ACzFpCgcVGLaE90p7kjFlKKJAYSgmjE0hslhLah9or+ZZGKaFAY6OU0J7oVhxHMrOUUKCxUUpoN9qHTl70qCUUaGzUEoK72T191hIKNDZqCaNAYxHC2Qk0NosKBRobRYVJoLFZVCjQ2CgqbAKNzaJCgcZGVWEQaGxWFQo0NqoKFTE2qgojT2OzqFCgsVFUWBUaG0WFCo2hqNALNDZqChUaQ02hosVmTaFCY6OmUKCxUVNYBBqbNYUCjaGm0A6qPI3NokKBxkZRYRJobBYVCjQ2igoVNTaLCgUam6WFAo2N0kJFjc3SQoHGRmmhosZmaaFAY6O2UFFjs7ZQoLFRW6iosVFbKKixWVoo0NgtrPIYL3kPq5iO/rzM38IqM0zytaDKueIXhFRO5Pf25/z5W/0h6oM8uhgQQHl4s+/RCjvdRBfmt50DmFI5q6tJgCkVNKvj284BTKmg5xkBFApQg+k5P7/tHMCUSvYjgMKtN6GChj4EUCiAHW4S2sPwZecAJlRKmAEUDmBC5WxX4QB2uHGz/4Fcbzql+rlncwDTKbjPCKAwgGCHm4z7jE2bAyRTc2Fu2hygTuMV7quN6qBhuIItmwMk03KzDJ0EmE45u8k4gJ1tcvQzgMIBTKfgNmPL5gCmU3CfEUChAHa2cai9r4l8BTvbBB/mls0Biqk5gcSCnW1yFkgsJNMpQSCxkLKpOYHEUB/kikBiqA8KUSCxYGeb5HgSC3a0ybjR2LEpgO2JNQkkForJFHugG0lJqA5yTeAwVAfZ5zQPHhzAVEoQSMw0kGm5MA4e1PpmIqUoHNZsUVQ4zI423m7zOHhQADvahKqwmB1tTP/NgwcHsB3dKyzWu0m5MA8eDMAUCZyxeBZDeZDHA80+DSgPCnigcfCgAHa0SUVgsWhHm2IP9Dh4cADb0hUpFsMQrfPgwQFsT1ekGMqD7MLnwYMC2NEmKVIs2tGmgLpx8OAAtqcHgcZickdXtBjKg3zhaQzVQVGRYtFONtkJNBbtaFMULRazbeqJpzEUBzlFiqE4yCtSDMVBMQs0Fu0UkBUxFu0UULpAY7Hanq6IMVQHuajQmB0DgiLGoh0DYlVozI4BOSk01m1TV8RY7OloTaExOwc4RYyhPCgEgcaSnQOiIsaSnQPsenkaS962dUWMJW+LnEBjKA9yihpDeVBQ1Fiyk0AS1Fiyg0BW1FgKtqsraixF29UVNYbqICeoMRQHBUWNJTsHJEWNJTsHFEWNpdSOqqixlG1TV9RYsnOAV9TYLe71BHiIeyH3+jnuhT7ZVU5kn8vPlhNda35JOdGF/ekb+0yvztxxgjsLi+64t3BJQctJh1x6upiH+EpHy4l9qLFwANRdosPcNmsSkGH+YGs6+wrtQMDVZc+9AgIsDQZikV2fbX+bPggkoKHjZHRncwBkjytuQyPXJzSc2F0wluQA1bY3AySfOACSx/B+qJl8BVRdZtyFyr5Cte0Nd6F7DoDkMe6zfbQkIML61A1/YQ5Q0HAC6032LXXb3hqasMm3hOQxbnQynuQAxbY3A4T+yDaPAZaEYsISyVdA8hh3OmXyFYxYK+50KBxnIMJiwq23TD4+yB336SBEAjIcIIxkE3nNpdn+JrAYIiwFrN4qec1IHuNGe/LxqRUGqAKJNY+GEzQWkF9u5I6bwmKtHsnus7evHwfo7ihBYDHkju0mex/Ia+7l6EVgMbRf+SiwGNqvIh5ol7hrQIAlVYHFEGAp9om20rgvNwIszQsshgDLMEOJhbxob3t6FlgM/VfR7raHpTsHyEfqAoshwFKKwGIIsDR7olsP3Lcb/VdDp7Eshv4rX3kWQ/tVTAKLIb6SvcBiCLAURYshwNKywGJov3KBZzF0X3lFiiHAEovAYgiwZEWLIcBSncBiCLA0QYuh+8pODDyLofsqKFoM8ZWoaDHEV3JWWMwWVUWLIb6Ch41nMaRZFS2G9iuTVwKL2TEgKVoM8ZVcBRZDfKUqWgzxla5oMbRfuSawGNqvgqLFEF9JghZDeCUrWgzhlapoMcRXuqLF0H3lFS2G7qsgaDGEV5KixRBfKYoWQ3ylKloM8ZWuaDE0X3lBi6H5Kiha7BYteQI8REv6u08ZZrts0ZJ25J+Nllxrfkm05MSOFHeeqz6vvKbGrPhCbcso5OESHmIkfhmFcID0Mgrh1rdlFEIB4I92GYVwgLSMQjhAXUYhDADdXS+jEA4Ql1EIB6jLKIQCwCHNnW5HHCAibDPdjjhAWUYhHKAjbjPdjigAHNKu1lQOUNB9Nd2OOEBfRiEUIAb0X8HtiFuel00IB2jLJoQCwCDtsmzjAHn5hHCAhqjNcDui1sMf7bIJ4QAJzVfT7YgD1OUTQgFgkHb5hHCAtHxCOEBdPiEUAAZpl08IB4jLJ4QDlOUTwgH68gmhADBIu3xCOEBZPiEcoC+fEAoAg7TLJ4QD5OUTwgHa8glhAKhzefmEcIC8fEI4QFs+IRQAFmmXTwgHSMsnhAPU5RNCAeCRdvqEcOvT8gnhAHX5hFAAWKQVgcfQ33X5hHDr6/IJoQCwSKsCjaG96+UTwgHK8gnhAH35hFAAWKQpYgxlLi+fEA7Ql08IBYBFWhFoDO1dWRFjaO96+YRQAFikVYHGUOfiFDEWYZHmFRqDRZoixtDf9fIJ4QB1+YRQAPg8dIXG4POgyLEIjzRFjqHB6/IJ4dbH5RPCAQq6r3gaQ39XV+QYylxc42ksweZBUWNo70qKGkN7V1bUGNq7qqLG0N7VFTWGMhevqLEEnwdFjaG9KylqDO1dRVFjaO+qihpDe1dX1BjqXLyixhKcHhQ1dovcPAEeIjfevdvrjKmlu2/Oz7Z4vdb8Mt+c+grdIGxTt5V+/X38trcQDlR3DPN5e7qWhxBLQf/XjOGQCHtEaxxBHA4A3Z3ifOJIRDZJGWcYh0TYQ9rifOYoxPAmnsNXGovI6AKbTx2JaGgDm6EcDgH1XcJ87khEQiPYDOaQiHZglt2I5nAICHDc8uTZ14AExz0P/81D9YCoJi/jfFo5BET4HI9UWEREP9hUESSioiUMMR1uPWQ47jhUBIkwHY5xqpARJMKEOOZyIqxDIrppzDiVBIeAFMcd9+zjBCk+p8+RD/mwK7Yb7mkAtHhTyG34Fec41QSJaGgMm3KCQ0COd4XdhmWxPeNDUJAIE+RRYjdT5KYfp6QgESbJq8Ru0OT2jA9RwSHgW+wldoMqB69DVpCIih6xqSsoxPAuDgq7DfNie8rHAYlE2LZeFHYb/sV2z8cRiUOYOPdOYbfhYGxP+TgkkQjb/JPCb8PD2Cv8NkyM7TlvLOkOE+Os0NtwMbbHfJyUSIRp9K7w2/AxLgK/DR9jSbyhkqY5hd+Gk3FV+G1YGUvqbXgZe4XfhpmxpN6Gm3FW+G3YGUvqbfgZd4XfhqGxpN6GpXFU+A1VNdlJ/AZrNkm9DVfjJPHbqK+X+G0U2Ev8NirsJX4bJfYSv40ae4XfhrmxpN+Gu3EU+C2NMnuF34a9cVX4bfgbS/ptGBwr+m0YHEv6bTgcS/ptWBxL+m14HEv6bZgcS/ptuBxL+i2NgnuF34bPsaTfhtGxpN+G07Gk34bXsaTfblGbR8RT2Ca82/eM2eIrbGMb/s+Gba41vyRsc2JDPldfYZqywjW3UA7WlbcoBpqhDZFbebymh7gHuqELGqAih0A9ilEoAkwsAO3QY2xxZRFoiB6DcBOJ8OiINkRhX8KjI9oAqdEItERnbOjsmwpoirYLL4l9jYCuaNyNQr8G2qJxN/B8cAj0RY/BpI1ERDRGjwHjmUWgM9oQNbLvKqI12hA5se8qoTca96Ow7yqhObrgMaJfA93ReJ4C+xoZ7dGGiIl9PDL6o/GUY//nEGiQHtODyaccTiz2TTG68uyVF7RI44Fy7Lsq6JG26+iZvfKKJml7DdtEWAS6pBV+Q7uQs+e8tco+gw190gq/NfRJ20tkz37ZGzqlJX5raJUusFhgL7yjV1oiuI5mabvwxt6Njm5pewlbzSFQrmJaRuA31KsUBJprJp9AFKzUqvAbKla63XGf2Dfl0TGt0BusWeyu285d2dewRSkr9IaqlRIUekPZSu2zap1EmNjtRaE3+LN4e8jtiEN+rVC6Ep1Cb6hdSVWhNxSvlKTQG6pXmlfoDeUrvSn0BpsWL8k3FLDEoNAbKliSIt9QwVKKQm8oYWmSfEMrEZQuT28wa/GSfkMVS0wCvaGKJXuJ3lDPLsm3OOZ9S/Q2Jn5L9DZmfiv0NoZ+S/Q2xn4r9JbG3G+F3tIY/K3QWxqTvxV6S2P0t0Jvacz+VugtjeHfCr2lMf1bobc0xn8r9JbG/G+F3tIYAK7QWxoTwBV6S2MEuEJvacwAF+gtjSHgCr2lMQVcobc0xoAr9JbGHHCF3tIYBC7Q2z1O8oR4ipNE2L24eQi+4iSDjNyMY9hn8wqT+NLHX8+IBiyxwxXFSJ/Wo1oFfZW7GcsIefx4/n1f7L7/xvax63e//65v54uE786Kl9sPDRv8Fb/Br3697NNLfSXc81qiR3te0O/XIlxGePvIR6HW2WH39OE/J4GuFjsSkVaPHYmoq8mOQ4xirdllRwLSarMjERXzzme3MIdADugyPSARtgddrgckotiis2GYQyAHdPkekAjbgy7jAxJRjnQ5H5CIjsHns2mYQyAHdHkfkIiM0eezbZhE9MNf7gccAjmgy/6ARNgedPkfkIh2lNMAgQKMFNDlgEAibA+6LBBIRFt+VBwCOaDLBIFE2B50uiCQgLocqTgEckBFobeRA4oKvY0ckFPobeSAqkBvIwWUFHobKSCv0NuYdNkUehspoKzQ20gBBYXekAKKXaG3kQIqCr3dpc0T4knaoHP8s7T5YZM21U5FPyMJXkt0SfCC3vzpRp+1W4W7Q+u8ZYE+/4pLVZRLIF2SZ7ybvN70fDcPod+lIB4+lcfQ71IQFMI2uaUgOERaCoID1E1BUIjmNgXBIeKmIDhE2RQEh+ibgqAQPW4KgkOUTUFwiL4pCAaB2O9SEBwibwqCQ7RNQVAIHzYFwSHypiA4RNsUBIUIfikIDpA2BcEh2qYgKET0m4LgEGlTEByiLgVBAZLbFASHiJuC4BB1UxAUIrtNQXCIuBQEByibguAQfVMQFKKETUFwiLIpCA7RNwVBIWrYFASHyJuC4BCwSpDorfnlcEkiYJYg0Vtry+OSQ3S/TC5JBAwTJHrrddlcUggEfy+fSxKQltEliajL6ZJDeLesLklEXF6XJKK8zC5JQF9ulxwixGV3SSLK8rskEX0ZXnIIlJAo6g2R3yqpN0R+u6TeYC7lJfWG0G+U1BtCv0lSbwj9Fkm9IfTbJPV2PyA9IZ4OSLm+H5B2D28U913nj/DTfgJC6HecfvzDseUFy/PIcv/Hr8RfryW/IP56QX/5YWu/2P/BYQspeHQrz0D/wyf8IJHcDNUj0M8B7OSU3JnH5BDVjgP+zGNSCGTgmzvzmBzCyDPjY0Uek0MUDG6ZeUwOYOTZ3ZnHpBBIwBd/5jE5hJ2cojvzmByi22nAn3lMCoEMfHVnHpND2MnJNrSZx+QQ3Y4D7sxjUghk4O2Wzzwmh8gY4XLmMTmEnZxMSM88JoVACr7blY88Jocw9rTfP/OYHMKOTtGfeUwKYTIMQ1lmHpND2NEJT3lgLwMpeHvKZx6TQYwUvN3ymcfkEBGjXM48Joewo1NW6G2k4INAbyMD3xV6Gxn4otDbyMBHhd6QgR/Snqa3kYGvAr2NBHxS6G0k4L1CbyMB3xR6Gwn4rNDbyMAHhd5GBr4r9DYy8EWht5GBjwq9QYahBIanN8iwdplxPSKeZFjpD+tGP/6SYh4u30OEnLnwobz8559+zj+PlHh+8oXAA9DPAeyP7+DztXk8AGWk/GlEMTk+NFhiEd3k+DmEnUPgCcCY6syuzybGzyHsJKLBzcyNka4cAt//do5hJxEZdYJzqCuJaEcM5yB2DoHvP+44xrqSiARPsznXlUSY+I3nLHYOYU/M+D5jsiuJMPVbz2nsJKLC2AzPCvuuqjuyP+exk4iISsE53ZVEmPrN50R2DtEcKgXHfFcSEGFu5saUahJh6recM9lJRIe92ZxTzSF6OKo7x7KTiIxKwTGpmgSY+E0Ku8H8JeCOY1Y1iTDxizuO0WIkwsRvVtgN5i818Ow2rF+6wm7D+qUo7AbrlxAVdoP1S3IKuw3rl6qwG6xfalLYDdYv3SvsNqxfmsJuMH8JWWE3mL+koLDbMH/pCrsN85eisBvMX3pU2A3uL94p7DbcX8DrGJjIIewYnXDPMTGRRNju7xV6G/Yv9pQ3lqvg/tKzwm5wf/F2y8fURBJh4lcSb8P9xR5zTzOJHaJLlNitIfAlsRvMX+wpH6MTSQQiXxK/dUS+yhyeSCGG+Yuk3mD+UuyWjymwJAKRL4XfhvkLnnJ68x/mL3jKMQiWRCD0pfAbzF+yPeVjFCyHgPmLpN5g/tLsKR/DYEkEQl8Kvw33F2P2MQ6WRCD0pfAbKn9zUPhtVP52hd+G/Ysk32JC6EvgNxT+Bkm9DfeXqvAbKn+zJN9Q+Vu9wG+j8FdSbyaLMS5A4DcU/oag8Nso/JX02zB/KRK/VYS+JH5rCH1J/AbzF0m/ofA3JInfOmJfEr+h8FfSbyj8rVnhN1T+dkm/jcrfrvDbcH+R9Bsqf1NU+A2Vv0XSb8P9RdJvKP3tkn5D6a+X9Nso/VX0Gyp/k6TfUPpbJP02Sn8l/TbcXxT9hspfL+k3VP5qsbdh/iLpN1T+atG3e2L7AeE/R1TbmEL0vmwPptqhN76alL7bEsRXdve26p5URp5o5KIRWl254be88FPQNSIxjz5MhIcf3uVD8LGb4L36/ihECiZ40WiGch8OkU3wXn1/HKJtrjQUwlTDcqXhEGm50nCAtrnSUAj7bi1XGg6RlisNB6ibKw2FMNGwXGk4RNpcaThE3VxpKERzmysNh4ibKw2HKJsrDYfomysNhehxc6XhEGVzpeEQfXOlYRAIPi5XGg6RN1caDtE2VxoK4cPmSsMhsglehd8QflyuNBQieBO8Cr8h/LhcaThE3VxpKET0ELwCv4WYlisNB6jQuwK/Ifq4XGk4RDS9K/Abgo/LlIZCZGdyV+G3kCPkrsBvCD4uVxoO0TdXGgpRwuZKwyHycqXhAH1zpaEQNWyuNBwib640HKJtrjQUwhYtVxoOkTZXGg7RNlcaCtH95krDIdLmSsMh6uZKwyAQfVyuNBwibq40HKJurjQUwrvNlYZDxOVKwwHK5krDIfrmSkMhQtxcaThE2VxpOERfrjQUIIbNlYZD5M2VhkO0zZWGQtgxwknyLaKGoQv0htBjlNQbYo/LlYZDpM2VhkPUzZWGQqCEISn0Fu0YEST1huDjcqWhEChhkNQbgo/LlYZDlM2VhkKghKFI9GbniCCpNwQfk6TeEHxcrjQUAjUMinpD7HG50nCIvrnSMIiEGoas0Btij0mSb4g9vlxpKABKGIpCbwg9dkm9JTtFeEm9JRQxSOoNocekqDdEHouk3hB6rJJ6Q+ixS+ot2SnCS+otoYZBUm+IPSZJvSH2WCT1hthjk9QbYo9dUm/32ONTUPHHt81/RBjefvMt+Gh3oF2mRzWMv519Ka8A4rfLCCmGz+EFl8bQwF7RQfb0am8BCVfX2EAO4VFNM6c4k4C45gaSiFFMM+c4c4iAYhqMcg/sZYQ4Zwd6+iXKnB3YM3sZoa/hgRwiopbmnEhPIsoaH0giRi3NOcqMQqSwBgiSiFFLc44y4xBtjRDkEHkU05yjzDgEimnOwfQkoq0pghyioJjmHE1PItLGJBxiVNOco8woBBw4rrnOJGJU04xRZtx61NKcA1E5BAw4rsHOJAK1NOeEehKBWhqJ3WDA0RV2g/9Gkditj1Iahd06SmnOwagUAlHjghs+BjVyCJTStDmokQOgkkZhNwSNfVPYDUHjmBV2Q9A4B4XdEDQuXWE3BI1bUdgtwH8jKuyGoHFwCrshaByrwm6IGueksBuixtUr7IaocWsKu4U0amkEdkPYOASF3RA2jp1nNwSNc1HYDUHjGhV2Q9C4nwOfSQAKaRRyQ9A4XCOfOURFIY3Cbgga53PoMwlAHY1EbpDb19hnEoE6mnPuM4lAHY3Ebn3U0ZyDfjgE6mgkdoP7xjX7mUIgZtwl7RYxweWa/kwiUEejsBtixuma/0wiRiHNOciMQ6CQRmE3BI17OSfZcwj4b0jaDUHj+OoC5BCopFHYDVHjks5p9iQCI5QVfkPUuEvqDVFjnwV+Q9A4SuINUePUFX5D1LhI6g1R4xYFfosY4CKJNwSNfVX4DUHjmBR+Q9A4S+oNQePSFH5D0LhJ6i1igEuQ+K1hhLLEbw0jlCV+wwQXSb0haFydxG8dI5QlfsMEF0m9IWocvMJviBpHSb0hapyzwm+IGldJvSFs3LrCb/YRoZNN4DeEjYOk3xA2Top+Q9RYC70hbFwl/YawsRZ7SxEzlAV+Q9Q4SPoNUeMk6TdEjbOk3xA11mJviBp3Sb8lGMhI+u0eNX5APEWNcTJ/W3eLGic/i1FdfBWjokh5hENfdkn1tER66vgfCSiMDHX+8eXeLmTkn0YxbOMAfuSfMHAyZhaB/BMGuObnz+ABgfxTnKdTDjESUOcgWhKBBFSYp1MS0dagbQ4xElC4jsJex0hA4Toqex0jA4Xr6Ox1jAxUnNE3EhHXpG0SgQxUHNE3DjASUOcgWhKBBFSY0TcSUdakbRKBBFSY0TcOMRJQcUTfSEBZg7ZJRD8iHnJE3zgEemivQdskIh8FTzmibySirUHbHAJNtLjliL6RiLwGbZOIdkTcckTfOETzR4YtC6JvJCKtQdskoh4tSfzW/Rq0TSLs9N8kfkMXbVb4DUNlM+45ed0BPbTXmG0SUdaYbQ7h3eGiwm4YKvuas00i7OxfBXYLaKFNCruFEI7qFXYLaKFtCrthpqzLCrthpmwIArthpOxrzDaJsL2/KOwWTDW9xmyTCNv7ncJuGCn7GrPNIdBCmxR2w0jZ15htElHXmG0OgRZa3HL+Dhbb+4PCbpgr4OwpH6dTDoEeWkm9YaRssns+TqckwjZ/Sb0F9NDaUz5OpxwCPbRJ4rdmu7+X+A09tPaYN5p00UIribdgpwj71s7TKYmwo7+k3iJaaO2Wex5ge78k3jBWIILXcTrlEOigxVOO0ymJsL1fUm/R295vT/k4nXIIdNBK6g1zBbzd8hF9IxG290vqDYa2yVaM6BuJsN1fUm8x2u4fFX6Doy2+6Ty/wdHWS+oNjrYxKfwGS9ssqbeIHtqm8FvMtv1L6g2WtqZABX6Dpa2X9BssbaOk36KdI3IU+C3aMaJK8i3WdLSq8BscbZ2k3+Boa8JS4Dc7RURJvkU7ReQs8Vu33T9I/Nbj0ST9BkdbVxR+g6NtkPQbHG3tj8Bvyc4RWdJvydnunxR+M+12dEm/wdLWSfoNlrZB0m+wtE2Sfkt2kMiSfkuhidG3FG37l/QbPG216Bs8bYOk3+BpmyT9lhKmbin8lhKmbgn8lrITg2+wtPWSfpuWtqctxGOY+imc7d+tb/0+WQCVuXPeK3Ijboas3+z5d4f/F+LZs+EhZphzmDYsT+/mMWZY8btho0ci0P3ipw0Lh0Dva/HTRo9EoPvFTxsWEoHuFz9MQkkAml/CNAnlEGh9TWG6sJAIJB/CNAklEcg+4HZU9l2h9zX7YRJKApB88NOFhUQg+eCnSSiHQOsr7jhsWEjESD6czxuHGMkHmIRy6+FdjxsOExYSgdRDmCahJAKpBz9NpigEAoa2102TUBKB1IOfJlMkAqkHP01COYQfuYdpEkoiRu5hmkyRiJF7mCahJGLkHgR2Q8ywV4XdAjpfk8JuiBlGr7AbYoapKeyGoGHJArshZtiCwm6IGfausFtII/cgsBtihjEq7IaYYXYCuyFkWKrCbggZNnvKPUskAY2vXiE3TCL1TSE3RAyj3fDhMcUh6sg8CPSGiGExWh8eeiQCuQeJ3tD4and8eOiRCOQeJHqDeTcecv7pQOMrHnJ46HGIPpIPCr3BvNse8uGhRyJG8kGgN4wiDXYNw0OPRCD7oNAbYoZ20dNDj0Og8kASb4gZdhA7PPRIBLIPfnrocYgwsg8CvyFmmOw5byxZIWSYJfGGkGG1Wz489EgEkg8Kv2EIlj0aPL8hYhgk8YaIYZLEGyKGxSn8hohhleQbIoY9KfyGIVhekm+IGIam8BsihkmSb4gYlqDwGyKGtSv8hpBhl+QbhmD5qPAbQoZRkm8IGaYq8RsqDyT5hphh8xK/wb9bkm8YguWzxG+oPAgKvyFmmCT9hphhKQK/IWTYJPmGIVij9I7mN0zB8pJ+Q8gwKvoNEcMs6TdEDIuk3xAxbJJ+wxQsJ+k3TMHykn5DxDBK+g0RwyzpN0QMq6TfEDFskn7DFCwn6TdMwQqSfkPIMEr67VYB+xwKfAgZhndv1+D3kKEpnToniCLguQxYZ+2r/+Hzuk+VsmmGCxE6vK/Dd22OKn3V0f4wPRgmblm8vkXOTAv3NGcxP73/h1hbtt3FECk/X/FjdM6bEBmzmDmE7atxXG1j35Xtq6nGOYyZRDTktuFBwb4r21ebj3MYM4lIyG3bInzvOESz3QX3o7OvYfuqqds5jZlEmBbGPY80oNrmkuYwZg5h22qLuB2FfQ3bVjGQGMOYSUBFZtvuBnZVBoHwXMQdxzBmEhFtd0lzGDOJMC3ccDcq/Rrddpc0hzFzCNtWHe54cORnhfCcxx3HMGYS0ZHZNu2V2Hdl+2rGLceseRKRkdq2+1HJpxz96Q33HLPmOYTtqy4p/IbwXPAKvyE+F5vCb4jP5azwG2r6alD4Df3prSv8hvicKwq/IUAXosJvCNAl3HPPPlDFHfYsCfSGkr5qj/kYNk8iytG9wm8I0Dm75WPYPImIR8gCvyE+l+wpH8PmSURHX4nCb812/yLxW8vIbM9h8yTCdn8n8VsPyGzPYfMkwnb/JPFbt93fbrmPhbxylPTVpvCb/ezo9pRjyimLaOgrEfgN8bkg6TfE5+ywa6eZQH7ZUdNXJP2Gmr5mN7xl9iUCeswUekN8ztst9yGxFx4dGksEekN8LoHYW2UvPNr2nwV6s0fpaJJ6Q3+6rRDoDfE5L8k3xOdiVOgN8bmsyDcU9JWq0Bsa1Jsk3xCec5J8Q3jON4XeEJ6LknxDeC4Hhd5Q0Vck+YYG9VYkerNjhJPkG8JzwUn0ZueIKMk3hOeyJN9Q0le9RG+9HE2SbwjPuSzQG6JzQVJvCM/FrtAbKvqypN5Q0VejQm/oT++KekN4zknqDeG5IKk3hOeSpN5Q0Jcl9YaCvqqoN7Snd0m9ITrnJPWG6FyQ1Buic0lSb6jnK5J6Q0FfldQb+tO7pN7u0bkHxFt0rs2aiLdle3AudoTIRqlu2WrzMBf6/HOr7BtTkj6/jEkMmMx2xO0fXvDtSjBhZjjAgkooQDlQzm9vkwXYp+PG+40cAONlMFqvF/IaMF0G3FYb+ZZ6twcW11BIALryYdDifCMvAl35iCpwa9uBBFtvoDUKgbEybUS3EovIx7CiD55GtGO0yrvoSQTGyuDGtcReB8bK4F6Xwr4rjJWZjyqLMOocz5Ir7HVgrMywRqzPj+0Dotr5b3xl2Xue3HEmTwKLMGGBex4D+VyguBY2465U9sqNO2cjTWOvHA6B40vi2CtHce0ctc1eOQbLRIXVEL9vTqG1UV07TYvZJxyTZZLypmo4zoQne+GorgV55kS/Rjvm/Daa2kx3nw4l7IU39k6jqLZIvIZ5MlHitY5pcoZImf2Oo6x2OP0U8juOuH3LAoHYqeQYFfkpkBc+qmq7QmuoqoXBv/CuPKbJKbQ2qmq7QmujqrYotBYwTyYqtIaq2pHVpGltVNU2hdYQts9ZoTWE7c/iYPbKUVYribWAgTKSWkNZLTrSeFobZbXSm0JVbVVoDVF7nMl4WkPUvkuKbdTVDnPczD6CGCjD3uxi+/2s5Wc/VlTUSooNAfs5XaOyV1AxSE5iNrgCShyCglpMTe6ORth2Lwk2BOyLw8yWyN4OFNRKgg0B+57Hw8peR8cgOYXZRkEtOB3DZ0gEBslheGciv+YI2BdJsI2C2vFRVfLhGwW1kmBDQe0ZECHvIApqoyTYRkEtPOVsHYvAIDmB2RCwb5JgGwW1bYTZSF5AQa2XBBsqaqexGstsqKhl7wNKaatCbAjVN0myRTsyjAgGTWyjlFaSbCiljYpkQ6h+Nr6xxDYqaSXJhlD9HEbFElusmCCnEBsqaU8Vwl4HKmklyYZQ/Vk8wF55wwg5idhQSStJtggPryQRm50dgiTZRiVtV4gNoXotwIZY/TC/ooltlNIqkm1U0kqSDZW0Z/6A5AVU0mpBtlFKK0k2xOrZIBui9F2SbKOIVpJsKKINkmRDEW2SJBvC9NKxb9TQSpINUXotxoYaWi9JtlFDK0k21NAmSbLdo/QPiPDZ3xWPQ/652WMwFx7Vsre6WR9Xw/193RXQvxrtR10p/vv0nn2viY0odJ8TpB/fznv4Ma4JqyQCde7nBGkSgUL3c4I0h0hhjVglESh0x0RIGHZwiL5GrHKIjEL3IbIzi8hrxiqJQKG7IXJi31Xxa8YqiUhrxiqJQKE7ZnoG9jWqXzNWSQQK3ZG9gmEHh6hrxiqHaLDZwf3o7Ltqcc1YJRGw2cETFdh31d2asUoi4pqxSiJgs4MnytGv0V8zVikABmL1eSAhH3NUHL9mrJIIuOwI/IaBWK8RqyQCJjsKv2EgVi0Kv2Eg1mvGKomAyY7Cbyg4fs1Y5RARJjsKv2Eg1mvIKomAyY7CbxiI9RqySiLSGrJKIuoRusJvGIj1GrJKIqJJCoXfMBLrNWSVRKCe4ByyyiGK7f9J4TdUHEd/zpAmEf1ITeE3zMQqWeE3zMRq4ZwhTSLagcvm+a3Z9l/OGdIkwrb/KPFbs+3fnTOkOYSdXYsk4DATq6U5Q5oE2O7vzxnSFAIFx17Sb/azI+ZzhjSJsN1f0m8YiVX6nCFNAmzzl+Qb6o3t2DpnSHMIjNWV5BsKjqMk3zARK6dzhjSJsM1fkm+YiNXaOUOaRNjuL8k3VByHoNAbKo6jJN8wEisXhd4wEqtK8g0jsbok31By7KpCbyg5Dop8w0is5BV6w0isLMk3jMSqWaE3jMTqkn5DxbHrAr2h4DgUid4wV1eSb5iIVZxEb6iWk+QbJmL1pNAb5upK6g31xqFJ9IaCOUm9YSBWkdQbBmLVrtAbBmJ1Sb2h4NhHhd5QcBwl9YaBWElSbxiIVST1holYTVJvmIjVJfWGimMvqTeUHEdJvWEkVlLUGyZiFUm9YSJWk9QbKo6dpN5QcayF31BxHBX1dg9lPiAeQ5mjps2PVzmX3edhmT4YdqCowR/lxHH+GTOwyu4HcK10P21Rzre4pR1vS0IYGM4W7y/+Hp1AOy1qMwcFMwD42jZ/HqApgJ24sz8JmAI0FOmdx2cGAFPb7k7+pQAJJXrn4ZkCVFTonezLANBHi9s0yJcCJPiknCdnClDt++tP6mUA6KLFnR7nZgpge+0s4SwkoKBI74wKMgC00OJOD9qlABE1emdMkAIUlOidpEsB7DGL/uRcBoD+WdzpERCkAHbCxppAfkgmR9xM41UOgN7ZmQoiH+meUZs3g4HU+obKvJNsCUBA32w42ZIDJHgSn5FACtBgSczTWEDTbBRoLKBn1gk0BseYXAUaC3aCrUmgMdRtdi/QWDAJ4ppAYyE6mBHzNBbQLhsEGgt2eM1doLFgZ9daBBpDxWaPAo0F9Mo6gcZCsuN0FWgs5ICCPJ7GAjplvUBjwU6ttQk0hmLNbs/0VI4UIMOEmKaxUBpK8U7dyACq7epFoLGAFll7pKdqpAC2qzuFx+y8eq3h1icU4Z0nYgpQ4T0s0Fh3KME7z8MUIMJ5WKAxtMbafR6nYWq9nZ4VMRad7en25Z5nYQpge7oixiLaYhUxFu2QWuyBngdhCmB7uiLGIppi7YGex2AGEOzcrIgxOwbCcfg8BFMA29UVMRbtJFBA3eMITAFsV1fEWEQ/rCLGItphncBi0U4CURBj0Q4COQksFtEKq4gxlGa2JrBYtIOAU9SY6WG4DNMsFu0cELvAYtHOAVkRY7F01NvxLIaizK6IsWjnAFd5Fot2DAiKFot2DEheYTE7BmRFi8VmW7qixVCN2YPCYnYOcIoWi3YQCEVgMRPQaGjlWSzZQQBhUprFkqtHVbQYCjF7Elgs2UHAK1os2UEgKFos2UEgKVos2UGgCFrMZOdRFS2GOsyuaLGEcjhFiyVUwylaLNk5IAlaLKEUTtFiCZVwihZDBWZXtFhCHZyixRLK4AQtdg9ZvgPeIpZtaOK3VXvA0vbwdAtYju7mMySJckr4KXyegPTkk4CGoZeX1vurvl3MaBeCRUsk13c7n4wWt0yt96NXCHaHMI6mAHm4aPUCCxEK0DYTLQbgMbTq8gikAOgTukxmKADahC6HQAaALiE0FoXOAtI00PKwjKYAdfpndWwqDGD0CF0GMxQgHv0yP6XW1808iwGgP+hlfUoB4rLOotajR+gyPqUAfTPOYgCjQ+gylqEAxQ4ol+spBeibaxYDQH/Qy/OUAuTNM4sCNMxiPx1PGQCag6JAYn70Bl1+pxSgbX5ZDGB0Bl12WRQg2QnlMjulAHUzy2IAaAvKCo2NriCFxkZTkEBj8BNYTlkUAC1Bl80pBSh2RLlcnBnA6AgSaAxmAiHxNBZGO5BAY3ASyE2gsTCagXgaC6MhSKAxuAgsgywGMNqBBBqDh0CKAo2F0Qwk0Bi6YGoVaCyMXiCBxuAf4L1AY/APCIoWC6MRSKAxuAeUINAYPH+XKT0FiBi3fpr+UYC6WdIzgOowbX1a/lHr4+ZHTwFsV3/5mVKAvrnRM4AW7Ihy2f1RgII569Ptj1rfNyd6BmDHgPSyMqUAeTOipwC2qb+MTAkATAOcIMZgGeBfNqYUoG0m9AzAzgFZEWPwCygvD1MKUDcHegZg5wD3cjClAGnzn6cAtqe//EsZgJ0DsiLGYBVQX+6lFKBs3vMMwA4CThFj8AkIXmAxuAVERYzBLCBnnsXg6lsVLYYS29YFFoNRgFO0GIwCQhRYDD4BL8d5an3bDOcZQPWb3zwFSJvdPAVom9s8A7BzQBC0GPwBltc8Baib1TwD6G5zmqcAcTOapwB185knALAGWDbzFCBuLvMUoGwm8xSga3ExVNQui3kKUDaHeQrQN4N5BmDngKRoMTgDSJEx2Pc2QYuhlFYKjMEVwCtaDKYAUdFiMAVIihaDJ0ARtBiqaKW4GIpou6LF4AcgBcbuAemHUHN8EwFDUn7+vXsJLRrvRl3s99981DD+9pp19QpQn33/V0UtfGmGN8235xr8/MfT4Bc/K+vPYOm68COoHb4xFTdewZ31unl3IxieAu2cx/XjhnPne0B17/ena4E739+TNF75u4dP4R1QtvwdBehb/o4AQBqv/B0FyFv+jgK0LX/HAEwbr/wdBchb/o4CtC1/xwBMG6/8HQVIK39Hra9b/o4BmDRe+TsKkLb8HQWoW/6OAZg0fuXvqPVxy99RgLLl7yhA3/J3DCDHLX9HAcrK31Hr+1bYzgBMGZdXLRUFyFthOwXoW2E7A6jBTscCi8E+axW2UwBT615hMZPGq7CdAiRM/xRYrLWtsJ0BdI/ZnwKL9bQVtlOAuhW2EwBo4+oEFoM2fhW2U+urHY4FFkOpxipspwARMz95FoM0XpXtFMDU+lVLxaw3Zdy6wGIo1ViF7RTA9vQosBgcs1ZhOwXIdjrmWQzKeNW1MwD4RHmBxVCqseraKUDb6toZQPZwm+VZDNI4K1rsLo3fAU/SGPYAn5bdusuy7Qa/SWmMn3f3sury15hc/KZvv/noU/C/C7W+moMfPpsHHRVWbzAHyK/WYG59X53BFAD5qqsxmAPk1RfMAdpqC6YAyFddXcEcIK2mYA7QVk8wBch+tQRzgLQ6gjlAXQ3BFKC41Q/MAeJqB+YAdXUDUwDkq65mYA4QX73A3PqyWoE5QF+dwBSgxdUIzAHK6gPmAP3VBkyt7zCpPU0OOEBeFnwcABa1Aouh0f9lwMcB7ATceRZDl//LfY8CIF8VBRZDTe3Le48D1GW9RwGQr0oCi6HB/2W8xwHsBNwEFkvIV2WBxVBUW4PAYiiqfZnuUQDkq4rAYujtf1nucYCyHPc4ACxpBRZDVe3lt0etH8Kr2HcvPX67H4WXj2/Ca58jZvvTb1N4/fSNfeBjdXZjfIq/3FI/rXzUUi/HpofP51FLvQybOEBbfk0UIPpl18QB0nJr4gB1mTVRgOSXVxMHSMuqiQPU5dREAbJbRk0cIC6fJg5Qlk0TBShuuTRxgPgyaeLWl+XRxAH6smiiADUshyYOkJdBEwfoL38man0Ly56JA+TlzsQB2nb+YgDdb+cvCpDW+Yta37bzFwFAg9I6f1GAtJ2/KEDdzl8MwLvt/EUB4nb+ogB1O38xgOC28xcFiNv5iwKU7fxFAfp2/mIAMWznLwpQtvMXBejb+YsBpLDOX9T6vJ2/KEDbzl8MIIft/EUB8nb+YgA39fUOeFRf4aGTaVdfZbq+/9bU1xiEkc/39rN6Cw7OrRjZxqcP5CE4Zl+uc0gYCbBvl12+T76QgGZEZbeyusoB4N5cYJ6TyfX25Xp9VyiAKUY0opWWOACcm6t9qL2SbwnGzRilGT15zVCM3l6hgP4ZAGybz3l+JCAZT9mnGjp50VCMmChmAocDwLO5IzcUyGuAZXOxVwi+kwA7uEZ7hVweH/dnxejsY22Z/HajbKTiyNPJi4Zdc7JXSI18HMqY1mBkG8iLhllzsxvnK3nRdcxqMLIt5EVDMoLRmiOvAVbNeKRdJ7/ecGrG9Crb/EgA5jQINAbJ6BQag0tzVWisjxkNPI0Nzeh5GoNkjE2gMUjGnAUaG5IxCDQGydi6QGOQjK4INAbJGKJAY0MyOoHGIBlzFWgMkrEmgcaGZPQCjUEyuibQGCRjyAKNDckYBBqDZsxdoDFoxloEGkOqtEeBxoZmdAKN3TXjgxh80ozxodhw04z2K9tvUTPG+nqXzv1cghQFghFTOl19/EQeALaHYcRj8pkCoECw+mp0jh2GAtge1s60NwewPSw3+7g6dw0QvgFzrgoCJRTA9rBur+ACedEmfDPmWUdPXrQJ34pcvx3eSEA67KYZoZPvyISvqw1d+uQ1m/ANyV4gY4uhAOlIcyBkJQG2idmN9ux6070Vs+hy8STADo8Bfm6OvGa4DGPgvO/kNZvuDcVeIUfyGkz3JhNdrWGHoQDlKOORr+RFZ9vD7Eb77MlrKLaHJYz4c+RXyXSv9/YKPpEXXXAwtVdIkbzoipOpXXRt5EXXcTLlaQwVgnYXBBpr42Qq0FjD0VShsYajqUJjHUdThcY6jqYKjXUcTQUaQ4UgmgVoGoPytaMpTWMQvjEINAbhaydTnsYgfEsRaAwVgi3yNAbd65xAY9C9vgo0Bt0bk0Bj0L3ZCzQG3WsHU57GUCHYskBj0L0uCDQG3eu7QGPQvbEINAbdax8QT2PQvdUJNIYSwaaosbvufRK0D7o3vVcSpl33/vLmmQBZWld13pC3b65P/zvNNPtr4hfizyiNDJc4/jVe9eF7XFfd98NH//Atc6vumwPEVffNAcqq++YAfdV9U4AcXnXf1PoxaNPNKbJP38+nr3F5r8so19f4L+Dr+9WC11/t6xwePtj6nqNRv/UNBaJ4t/35972tt8MMkocdsSNmfTs8BjRXCBlifUd16PiUyPUoDp1fSG59PdCujlZJar399JjtJrmQANSG4goiC0Bt6PjSRg5gQil6XEMhr8GEUkIKujbyLXkUh7o5fJwDoDgU19DIawjsOtvkEHlsCG5SgH6c7m2JA5hAQtdIT9mTADvB1HPmOAdAUagbI8ep9Qk1oSCTQF5zQk2omwPHOQCKQp3wlkwf5XCOG+cAdoCZX1HuOcZIlDNTxj3IGPnshtNgIJ+CgqJQXHMlL7qgKBT3oZEXXVEUKpAXRqLUILAXRqK0ptBXsyNMVuirxSPgTudKPqHNjjDSO0JNKLbr/2YHewPAbHR4gSbyFeA26hX26v0YeyzLXpjyTO5nAUajXiAwTEPJTSAwTENB1QZNYJiG0oNAYJjt7AW2wGTnEUdnCSzAZzQJBIZhKEV6S9EdOK7RBIZhKD0JBIahzt4LBIaZzqEJBGanBgzV4AkMw1BKFAgMw1Caor4wDKUr8gvjnE/rHPYVbD9X9FcoAVM1MKCB/FjhNJp4AsMwlBYEAsMwlFEB6EjRgznOXpFfGONs36LeSiYfOBiNkisTxmnYqSSRbx4Oo4oAw/Dm2cJayTffMW5N4S84jAoCLMJg1B7l1h0LiKZ2BP7CGJRZkRy524CxzU4RYCjHO5UFeQ0e09YE/kLH5mkMS140OjbHTK3Efa2RHm6KAEPLpkv4kCr3LI+WTUWAoWUzdoG/0LKZFQE2WjajwF+oGVMkITo2nSLA0LF5mshxFDA6NhUBho5NpAtp/kLJWCVvAHo1g0Bg6NV0igBDr+YMaJEENno1FQE2mjUFtYNaMVTT8AQGb1FFgI1eTacQWMOcNYXAYC6aFQJDs6YiwFAsNmJfLIGhWGwEv1gCG82aigBDt+ZkeZLA0K0pxb/QrVkUATa6NRUBhqxZVwQYujW9IMBGs6YiwNCsmRQBhmZNKf41mjUVAWanHXIdMooCeyFlIMW/Ro+mIr+QMpDiXyP19ZWv3GPOoL1Xhg2fNfeXkTOgezX/iNmD/p61/B9lDx5+31ezB8z6PXtArL9lD5j1e/aAWb9nD4j1/pY9oAB79oAC7NkDBnDLHlCAPXtAAfbsAQXYswcMILDr9uwBBdizBwzglj2gAHv2gAJs2QNm/S17QAH27AEF2LMHDOCWPaAAe/aAAuzZAwZwyx5QgD17QAH27AEDuGUPKMCePaAAe/aAAdyyBxRgzx5QgC17QK3fswcM4JY9oAB79oAC7NkDAnBlD6ile/aAAuzZAwZwyx5QgD17QAG27AGz/pY9oAB79oAC7NkDBnDLHlCAPXtAAfbsAQO4ZQ8owJ49oAB79oAC7NkDBnDLHlCAPXtAAfbsAQO4ZQ8owJY9oNbv2QMGcMseUIA9e0AB9uwBA5jZA2rlnj2gAHv2gAHcsgcUYM8eUIAte0Csv2cPKMCePaAAe/aAAdyyBxRgzx5QgD17QAH27AEDuGUPKMCePaAAe/aAAdyyBxRgzx5QgD17wABu2QMKsGUPqPV79oAB3LIHFGDPHlCAPXvAAM7sAbV0zx5QgD17wABu2QMKsGcPKMCWPaDW79kDBnDLHlCAPXtAAfbsAQO4ZQ8owJ49oAB79oAA3LMHFGDPHlCAPXvAAG7ZAwqwZw8oQNUCYPfsAQXYsgfU+j17wABu2QMKELX41z17wACQPaDW7dkDClC0+Nc9e8AAbtkDBnDLHrwDnrIHmMP0ednL4tH95rMHX/Ma+uM1zzzlEODM+umD3t/M282El8x18H7Avq8v69xNrbf7jrftaqHWw0hmhFd65NYXI1j8/v547e/r+5GufAezHi4yV76DWp/XiZta39aBm1kPC5krPEetz+u4Ta1v47Q9sh3MejvslSvZQa03cXvlOqj1dZ61kepg1nvb019nbQ6QjGDdDBZyABO33Eo75JUr2cEB4jprc4A6z9rBkwDbzP38gnLPuw/xiNjMWyKvAcYxuMOlsG+pr8M2BbBDXrvkMwco67DNAfrhr2wHBUhhHbY5QD7yle3gACZucacRLKQAdsp7HbY5QD7cle3gAG0dtimACYfYBPJCiud12OYA9ahXtoMC2FlPekc1rcM2B6hHuLIdFKC5ddjmAPHIV7aDAxQctrmltn17hcF6XIdtDmAb+JXt4AB9HbYZAJI7Clsgw1OvbAcHaOuwTQF8wMw84S35vA7bHMC28SQQGFI8r8M2B0hHbQKBIcXTr2wHBYh+HbY5QFq1JhygrsM2BUhuVZtwgLgO2xygHDBioAnMTkGvwza3Pq7DNgco67DNAfo6bFOAEtZhmwOwv7ivwzYFMLUfFf2FzM7rsM0B2jpsU4DmX8Um3Hrbxa9cBwdoq9iEAqCk68p1cIC0ik04QF2WBgwACZ6myK9oot9duQ4OYNv4leugACjqUuQXEjz5ynVwgLKKTThAx7S8GbehAKb9nSK/omn/cOU6OEA/FD5Fficr8gv5nRoF9kJ+51VsQgFQ3VUF9oom/clgAlI7KQgEhtROVuQXUjv1ynVwgLqKTSiAiX5F60SUdRWBwJDfSYr8Qn6nOIHAkN+Rgl7I7/SsEJiJfq/IL4zyCleugwOUGfiiCcykf1HkFxI8tSsEhrouRX7Zc7yKTRgAZnlJ0S8keF7FJhygvYpNqPXer2ITDpBWsQkHaFoADGuiIr+Q3yE/f5R1KQIMmR0pAJZM87+KTThAXcUmFMA0fxQEGDI8WRFgyPBI8S9keJoiwJJpfin+Na3R7D3V56/EY4YnvvedfDezHX8pWZ4nd+A/eX4nvbXh7G/x6/mdd+zX8zvM+j2/Q6y/5XeY9Xt+h1m/53eI9bf8DrN+z+8w6/f8DrH+lt9h1u/5HWb9nt8h1t/yO8z6Pb/DrN/zO8T6e36HAuz5HQow8jvMylt+hwLs+R0KsOd3GMAtv0MB9vwOBdjzOxRgz+8wgFt+hwLs+R0KsOd3GMAtv0MB9vwOBdjzOwzglt+hAHt+hwLs+R0GcMvvUIA9v0MB9vwOA9jzO9T6Pb9DAfb8DgO45XcowJ7foQAzv0Mt3fM7DOCW36EAe36HAuz5HQJwy+9Q6/f8DgXY8zsM4JbfoQB7focC7PkdBnDL71CAPb9DAfb8DgO45XcowJ7foQB7focB3PI7FGDP71CAPb/DAPb8DrV+z+9QgD2/QwH2/A4DuOV3KAD7i/f8DgO45XcowJ7foQB7focB7Pkdav2e36EAe36HAdzyOxRgz+9QgD2/QwDu+R0KsOd3KMCe32EAt/wOBdjzOxRgz+9QgD2/wwBu+R0KsOd3KMCW32HW3/I7FGDP71CAPb/DAG75HQow8zvU0j2/wwBu+R0KsOd3KMCe32EAe36HWr/ndyjAnt9hALf8DgWIWtDrnt9hALf8DgXY8zsUYM/vUIA9v8MAbvkdCrDndyjAnt8hAPf8DgXY8zsUYMvvMOtv+R0KsOd3KEDTAmD3/A4FSGQA7J7fYQC3/A4F2PM7FGDP7zCAPb9Drd/zOxSgaPGve36HAdzyOwzglt95B4T0to/bi7x3Bn13/nmNCu+/fFQ4Ej3+bKGZ+8mVHgl4CWIoJOzIrj9/5Mk00W2zg54+mSdB2q7Z2RwAa86hsxTAmMdfs7M5gB2nr9nZHMA24mt2NgUIthFfs7M5gB2nr9nZHMA24mt2NgUwAvLX7GwOYOfpa3Y2ByhHvmZncwDbiK/Z2RTAFGm7ZmdzgGIkeg6d5QC2EV+zsylAto34mp3NAexgfc3O5gC2EV+zsykAZtBes7M5gJ2sz9nZ3PpmR8ZzdjYFqB7zYufsbA5gG/E1O5sDVMyLHbOzqfUmS1tTaKzZdpwVGmt2rg4KjXXbjrtCY93246LQWLdzdVRozGRpdwKNJWf7cRVoLLmCebE8jaGdNnmBxpK3g3UTaCx5O1hngcagS3sQaCwFO1h3gcZSsIN1EWgshYaBsTyNpWjbuhNoDPK0VoHGIE97EmgsJdvWvUBjKdn5uvE0lpLt6lmgsZQd5sXyNAZ5WrtAY7fJjA+AR3la3kflfXcW4qzpjOmXqlOoSHveXkvzlKAjAjhySZxE9VdF1K8+PPF6oyh1GD8/1+O34Tx6vZvrAoN9CLld14P3j6zB/hvDt/PaIL9HNuv9uwynwGRvP+XHz/8d0I2qjU4zik8YgCmdGu29NYQcKICdZeAiic2DWt+Nqe0Fso8cwIROsOtozSUSAL/AGdTgAPjyX7NYHwCPX/72XtOHu/ZyWLAvf/Dn2eyn62vlr9K68yvhXl+468v0336lr6fiL3v+KLwtlv56+Izft2W39Be1Pm76iwLUTX8xAO82/UUB4qa/KEDZ9BcF6Jv+YgAmFJb+ogBl018UoG/6iwHEsOkvCpA3/UUB2qa/GIAJhaW/KEDe9BcFaJv+YgDZb/qLAqRNfzGAm1J4BzySZX8sVB5WwhdZ2lPTfjNk+aeZdisPbw7wyhoZ0v74mT+p9Wgv42N/vklPaj0hb1NsEQeAV5a9gkN+jgLUoyGaHCF1GUCCV5ZddMnkRZta97kaP5PvKMEry14gdPKaTa0nkxMtY8egAPDKGhH0ygHGM5jPEP074OkZzO49SI1nMG7PoCmf38wj+KceHqE/jOUoSBzb/3v88J92RKN5/FbPAWxHRFKkh/58e59ODx55EfvukABMAmj2GqFwgDQmAWC2eScBmARgr5DZF2hHO2unOICdHsDP48TEAYxEYRCPExMF2B/GB8Djw+gfMzujqvW1IeYj/Faexv8dM7avP3+mqrv3Iyjz9HG/r4dn6cwjc4BgOj+HGZThAPAs9fNswwFM5/cwzjbceniW+inNKAAYBEEInG04ADxL/TzbcAB4loZ5tqEAxiCmq+fZhgPAs3QWepAAk/l2o8fZhgKYpu7IP+NswwGMQvBI4GxDAXZN/QB4pJDwGH2bLronhQT3WyGQP3Wf39epAya1WIF6j6fP+R2QV8EaB2goWKOWwp72KljjAGkVrHGAugrWKADsaa+CNQ6QXgVr3Pq6CtYoAOxpr4I1DhBXwRoH2Lo0OUBfBWsUIMVVsMYByipY4wB9FaxRAPjUXgVrFOBGZO+ARyJLj5HUNekOaYRJZPH1WL+yCO4kpRFwd5OwxlftShN8alqmUgZ/JJJ7j3YiePm6gw+fwzsgLvtsDlBXxwcFQPTyKjnkAHF1fHCAsryMOUBfHR8UANHLq+SQA5RXxwe3vq+ODwqA4OVVcsgB8ur44ABtdXxQgES+ddNXr44PDtBWxwcFQIW1v/YfCpBWxwcHqK+OD2o9BqNdBYccIK2ODw5QV8cHBcBgtKvgkAPE1fHBAcrq+KAAGIx2dXxwgLg6PjhAWR0fHKCvjg8KgArrq+ODA+TV8cEB+ur4YACosH51fHCA/Or44Na31fFBATAeLQrsNSqsXwKaArRNQDOA4IeAppamTUBTgLoJaAaAyWgvAU0B4iagKUBdAppZj8FoRSAwiM8loClA2QQ0BeibgGYAGIyWBQK7i893QCgP4jM/Z6b2NH6qRxlF0WFKupes9Fsp9bdn1UaZP/dxyVBki5A/iFfGqJ34Wwjbn8J11H3gVdKzgL0J1T+KKI1opTbGqtE/fj5PWiW0Yr+1JhLQ7BxirxDBoQzAbmZBZKMiKEQBkgnrPLo8SABaqfGxpucvxZNo8baDtxIjCUAr9dgICglAK7V9rNGTF12cCWt7BXsuSUA8Gr4HPZMXXYoJa3uFkMiLNtXis71CbuRFV/RS28faQKUUoBwJTfCBvISKVmp7gezJb3cLR5tSjfx2m2gxorYHuZPX3NBTba+QGnnNJloixlg28i50tFTbC/hAXnNvR4EfTCrcNSNi1uyJbjVzT/SImM1YJfflhmixD9TIjXxHplmMXngWG2GzKLDYCJs5gcUQNmtVYDEoF5cEFhtxMy+wGJRLbAKLQbnkLLDYiJsFgcUQN2tdYDFIF1cEFhtxsyiw2IibOYHFIF1yFVjsLl3eAY/SpbylGv3N/c+kSz0z+r9muesn1Of42k93GYNS0utnn6XN9dsvMfX2scCJoyLEGbt/ut4HQIT3EEKBjQRU+/LMkzsHsE02mJLzdoInAaas3VUHQAEKJjmedQAUwJR1uuoAGEANsCA66wAogG1p7aoDoAAdFkRnHQADsF02hbMOgFpvW1q/6gAoQMM8x7MOgAF0O0DEqw6AAmTMc3SjcpoDtCPA8Mdz3yR0QBoVzcppDpCO4tusnOYAFQ5EI7rBAbxDPNrWN+6a0QHpMbK7cg8DGiDtoGz0EMhrtk02FXsB289JQFyNuRygHA0PtEvkNYw8iMBiaIDEJ9pK477caICMXmAxNECmJrAYGiBXNRMFyFs1EwVoWzUTA7BNdlUzUYC8VTNRgLZVMzEAbOOVZzGEjVc1EwVoWzUTA6h+q2aiAAmBaZ7F0ACZg8BizU6pXWGxZnt6UVis2Z4eFRbrDnFpgcW6nVKrwGK9ICwtsFi3Ld0LLIagcWsCi6H/0WWBxdD/GBQthv5HO0jyLIb+x6xoMUSNq6LFhq+2osVQUe0ULYaK6qBosVFRrWgxVFRnRYshdlwVLTYqqgUthoJqp2gxVFQHRYuNimpFi42KakWL3Q9g74DHA1h9K9Tyn+057Kd/ovPXFVx+dVriX8MZQL6KvWbR1NvVwwD0Zbf5cFnv0tXFZbfJAcqy2+QAfdltUgCjm5fdJgfIy26TA7Rlt0kBQtiKLyhAXnabHKBtxRcMIPplt8kB0lZ8QQGw5rTbpABot07COzK6WcUXFKAeaTweiXwFtFu/ii8oAEzGcRsaec3YpZl1xW3FFxQgbsUXFKBsxRcUoG/FFwyghlV8Qa0vW/EFBehb8QUDaGErvqAAeSu+oABtK75gAN1vxRcUIG/FFxSgbcUXBADhhlV8QQHSVnxBAepWfMEA0CT4Kr6gAGkrvqAAdSu+YADBHQqfItywii8oQNmKLyhA34ovGECMW/EFBSij+IJa2rfiCwaADqImEBgCDav4ggK0rfiCASDQIGgdxBlW8QUFaFvxBQOAWnUCgSHQUBX5hfq0VXzBABBoUOQXAg2repkC1K16mQEg0qDIL0QaXnabHADW4gqBdbfsNjlAXHabHKAsu00O0F92m8z6EWlQ5BdSvS+7TQ7Ql90mBUCkIQgENiIN5Mq27DYpQPDLbpMD5GW3yQHastukANG/7Da59WnZbXKAuuw2KUByy26TA6Rlt8kBYC4u8BdCDFERYAgxZEWA3UMM74DHEEN7a6Hwny2Wav5j5Hhn7GB0U5zNWO40J8K5f/z5fv0OKNHhGfq9vYd8szj69sztfj0CgYPOSqq8X/XjQWclVShA3ZIqDKC6LalCAeKWVKEAe4s4BdhbxBlA21vEKcDeIk4B9hZxBtD3FnEKsLWIU+v3FnECEN3eIk4B9hZxCtC2pAoD8H4lVaj1aUuqUIC6JVUYgO1rK6lCAdKWVKEAdSVVmPXRbUkVChC3pAoFKFtShQHYvraSKhQgbkkVClC2pAoF6FtShQHksCVVKEDekioUoG9JFQZQwpZUoQB5S6pQgLYlVRiAHXdWUoUCpJVUoda3LanCAJrfkioUIG1JFQpQt6QKA7DTTq0Ci8HJJiks1m1P9wKLwS0uNIHFYBeXssBiyKuWwLMYDju1CyyGw04vAovBLc5HgcXgFhcVLQa3uKRoMZx5iqLFcOZpihbDmacrWgxucV7RYnCLi4oWg1tcUrQYDj1F0WI49DRFi8HZwilaDG5xXtBi9zPPO+DpzFPcW+eO/+ysiUbCX/vMM8xXxzF5nnNe3eE//FzN62tg9vn675IUs0wRHStGOw/X9wDA0BQ/Xfk4QLOjhAFC49ZjlCkamkogX8DuvP32aYrMATA0ZfrvUOsxyfTM65GAZAeJ03+HA2B0yum/QwEwyTRN/x1uPSannP47HMD2r3b671CAhskpp/8OB4h2kDj9dzgARqec/jscwM6kZ+KdA2CeaTz9dzhAsZPE6b/DAWwDq6f/DgPACTAnP71FOUC2o0SY3qIcwDYwe6CHtygFsG3eZWROOnfREX5h9v6HtygHsA0Mk2jhLUoB7Aho1zu9RTlAsqOEwGI4AnbYeMDbnQLYNu/wSMPbnQPYqTQJNBYx0NTzNIYjYG4CjeEIWLNAYzgC9iDQmG1udpTgaSxm212LQGMR80yjQGM4ARYn0BhOgLUKNIYTYE8CjUUMNvUCjRnB2FFCoLFYbU/PAo3hCFiCQmN2BKxdoTE7Avai0Bgmm0aFxjDZ1Ck01u1UWhUaszNgSQKN4QzYvEBjOAN2RYzBMtxngcZgGR6DQGMwN0yKGsMhsAhqDGfApqgxmBs6RY3B3NAragzuhlFQYzA3zIoawxGwKGoMR8CmqDGYGzpFjcHc0CtqDOaGUVFjOAJmRY3hCFgVNXY7Az4AHs+A/q0F0n82DEcR15/RGfCTOcR4Jf94UoMjtr3LHOvTdT4A4Igd8QYTB8hwxEYRU/UkAI7YI73aSAAsscMcmEEBCiyxo30iibzoAktsewV7xkhAMcKyi66NvGg73MHTu7v6+H17AEQjLHuF5MmLrgWEZZyLbYACdGOsUbHSOYA9A8Xu9PBv5wDZGCtM/3YO0A94hA//dgrQgzFWmP7tHCAbY8Xp384BGhhr+Lcz61HHWNEWDf92DpCOVsP0b+cA7XApTP92CuD9EexGe3p9OiLc3XLhvtxI7+UcQZbkNQd0Wtsr+E5eM+ZGdoHGcLZz9kS3FrgnGvm9EAUaQ37PtJpRsievAXMjq0BjqGasSaAxVDN2L9DYmBvZBBpDfi9kgcaQ30tBoLExN7ILNIZyxloEGkM5Y48CjeF0551AY2NwZBVoDPm9lAQaQ36veIHGxuDIJtBYQ6u1QmMNrdYKjWFwZFdorKPXWqCxjlZrhcY6Wq0VGkMjUxVoDGc7r6gx5PeiF2hszI1U1BgSfCULNIZqxqaosTE3UlFjSPB5RY0hwRcVNYYEX1bU2JgbqagxVDU2RY3hdOcUNTbmRipqDAm+qKgxJPiyosbG4EhFjaGqsSlq7H66ewc8nu7Co3PNbRRN+5Pm956cpfE7P1v2EZm+fIxTKnoEH67zAdBWlw0FwIEdL40eQQ6QVpcNB6iry4YCwC736rLhAGl12XCA+uqyodbDLffqsuEAcXXZcICyumwoANxyry4bDhDRZcMtLavLhgP01WVDAeCTe3XZcIC8umw4QH912TDrkbN7ddlwgLy6bDhAW102FAA+uVeXDQdIq8uGA7TVZUMB4JN7ddlwgLS6bDhAXV02FABuuVeXDQfAriIQGHJ2ry4bCpDc6rLhAHF12XCA8uqy4db31WVDAeCW2wQCQ9Lu1WXDAfrqsqEAJRzk51/y6rLhAG112VCAGlaXDQfIq8uGA7RXlw21vvnVZcMB0uqy4QB1ddlQgO5Xlw0HSKvLhgPU1WXDAJCse3XZcADY3gv8hQNdUwQYknUuCfyFZF1QBBiSdVERYMjWZUWA4UBXFQGGA10TBBiSdU4RYMjWBUWAIVuXFAGG81xWBBjOc5W8AQnV3QKBIU/nFAGGPF1QBBjydEkRYPMkd06PfQA8nuTiowXObY6h8dyvNqrrVz3L8Rk7zCQfX7X6dMUPByjMJHfTMpoDYCi5AQr7AphJ7qZjNAWAa2mYa7j1GEnupmM0B8BIcj8dozkARpK76RhNAWBaOrfwRgIwktwPx2huPSaSu+kYTQHgWWrfmOEYzQEwkdxNx2gOgInkfjpGUwCYlobZN0ICMJHcT8doDoCJ5G46RjOA4Vo6xXUhAZhI7qdjNAeoduxy0zGaAsC1FA80HKM5QILd1XSM5gD1CM1Px2gKANtSe6KHYzQHiEfBEx3IS4CNiD3Rw/eeA3S4XfEkNlxL7aMdvvccoMDtimexYSZSeRYbpqVJYLFhWuoFFhteIk1gseElkgUWG6algWex4SXSBRYbXiJFYLFhWhoFFhumpU5gseElUgUWG6alSWCxYVrqFRaDl0hTWAyupVlhMbiWBoXF4CXSFRaDl0hRWAy2pVFhMdiWOoHFhplI5VlsuJYmgcWGa6kixYaXSBNYbHiJKFpsuJYKWmw4iihabDiKKFpsmJYqWmyYlipabFiKCFpseJYqWmx4lipabDiKKFpsOIooWmyYlipabDiKKFrsfmJ7B1wnth9/9+XvvvzhxHnYgxbsjD5//PPvt393H3BOaG//ijHn9m/jv/H//2r8w398BJMUM6D+9E/u03/OBe76y79//MOX//ziPv72yz/+k/3rv9i/54//+jJf49Ov+Xt7+/sFzB+L79ZD6JbP/+m2vyrvcIPj3bmPf/vy3e++/PVP9pl69/G7f91ukmnTOksrvTcQTqChvk7LONy6x9sEX0y0Zv9Z3xT83/8HtG2dwwplbmRzdHJlYW0KZW5kb2JqCjE5NiAwIG9iagoyMzU2NwplbmRvYmoKMTk3IDAgb2JqClsKNTEgMCBSCjUyIDAgUgo1NCAwIFIKNTUgMCBSCjU3IDAgUgo1OCAwIFIKNjAgMCBSCjYxIDAgUgo2MyAwIFIKNjQgMCBSCjY2IDAgUgo2NyAwIFIKNjkgMCBSCjcwIDAgUgo3MiAwIFIKNzMgMCBSCjc1IDAgUgo3NiAwIFIKNzggMCBSCjc5IDAgUgo4MSAwIFIKODIgMCBSCjg0IDAgUgo4NSAwIFIKODcgMCBSCjg4IDAgUgo5MCAwIFIKOTEgMCBSCjkzIDAgUgo5NCAwIFIKOTYgMCBSCjk3IDAgUgo5OSAwIFIKMTAwIDAgUgoxMDIgMCBSCjEwMyAwIFIKMTA1IDAgUgoxMDYgMCBSCjEwOCAwIFIKMTA5IDAgUgoxMTEgMCBSCjExMiAwIFIKMTE0IDAgUgoxMTUgMCBSCjExNyAwIFIKMTE4IDAgUgoxMjAgMCBSCjEyMSAwIFIKMTIzIDAgUgoxMjQgMCBSCjEyNiAwIFIKMTI3IDAgUgoxMjkgMCBSCjEzMCAwIFIKMTMyIDAgUgoxMzMgMCBSCjEzNCAwIFIKMTM2IDAgUgoxMzcgMCBSCjEzOCAwIFIKMTQwIDAgUgoxNDEgMCBSCjE0MiAwIFIKMTQ0IDAgUgoxNDUgMCBSCjE0NiAwIFIKMTQ4IDAgUgoxNDkgMCBSCjE1MSAwIFIKMTUyIDAgUgoxNTQgMCBSCjE1NSAwIFIKMTU3IDAgUgoxNTggMCBSCjE2MCAwIFIKMTYxIDAgUgoxNjMgMCBSCjE2NCAwIFIKMTY2IDAgUgoxNjcgMCBSCjE2OSAwIFIKMTcwIDAgUgoxNzIgMCBSCjE3MyAwIFIKMTc1IDAgUgoxNzYgMCBSCjE3OCAwIFIKMTc5IDAgUgoxODEgMCBSCjE4MiAwIFIKMTg0IDAgUgoxODUgMCBSCjE4NyAwIFIKMTg4IDAgUgoxOTAgMCBSCjE5MSAwIFIKMTkzIDAgUgoxOTQgMCBSCl0KZW5kb2JqCjE5OCAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Bbm5vdHMgMTk3IDAgUgogIC9Db250ZW50cyAxOTUgMCBSCj4+CmVuZG9iagoxOTkgMCBvYmoKPDwgL0xlbmd0aCAyMDAgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nO1azW7kNgy+z1PoBVZLUf/AYoAkkxTtrWiAHhZ7atH2sGmRU1+/pETasmfiSRbJJkCDxLEsUSRFfiIpO/c7Z4B+PvAtVzS/3e3upc+ZjManZZeLyXiwJSYAR0N9JuiNOvjGfz+AxWi+thljG/Teu0Abf5lfd3/vwPyw+/yFen+n/mj+3XV2OvGX3c8rZeDN6Tdq6B2+QQ3vdzl0mZis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Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzA5LjAwNSAzMTYuMTUzIDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDcwOS4wMDUgNTM5Ljk5NyA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgNzA4LjAgbnVsbF0KPj4KZW5kb2JqCjI0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDMyMS41NjEgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjk3LjAwNSA1MzkuOTk4IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCA2NDQuODg5IG51bGxdCj4+CmVuZG9iagoyNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjg1LjAwNSAzMzAuMTE3IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY4NS4wMDUgNTM5Ljk5OCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgNTgxLjc3OCBudWxsXQo+PgplbmRvYmoKMjQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzI3Ljg5NiA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NzMuMDA1IDUzOS45OTggNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMSAwIFIgL1hZWiA3Mi4wIDUxOC42NjcgbnVsbF0KPj4KZW5kb2JqCjI0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NjEuMDA1IDMxOS44ODggNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNjYxLjAwNSA1MzkuOTk3IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCA0NTUuNTU2IG51bGxdCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQ5LjAwNSAzMDUuMTU2IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY0OS4wMDUgNTM5Ljk5OCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgMzkyLjQ0NSBudWxsXQo+PgplbmRvYmoKMjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzNy4wMDUgMzM4LjUyNCA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA2MzcuMDA1IDUzOS45OTcgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMSAwIFIgL1hZWiA3Mi4wIDMyOS4zMzQgbnVsbF0KPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MjUuMDA1IDMyOC4zOTQgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjI1LjAwNSA1MzkuOTk4IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCAyNTQuMjIzIG51bGxdCj4+CmVuZG9iagoyNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjEzLjAwNSA0ODAuNzcgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjEzLjAwNSA1MzkuOTk4IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCAxNzYuNzEyIG51bGxdCj4+CmVuZG9iagoyNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjAxLjAwNSAzNzUuNzg2IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYwMS4wMDUgNTM5Ljk5OCA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgMTEzLjYwMSBudWxsXQo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4OS4wMDUgMzI3LjMzOCA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1ODkuMDA1IDUzOS45OTggNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNCAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoyNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAzNjQuOTY5IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU3Ny4wMDUgNTM5Ljk5OCA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA0IDAgUiAvWFlaIDcyLjAgNjQzLjYgbnVsbF0KPj4KZW5kb2JqCjI3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDQzOC40NDggNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTY1LjAwNSA1MzkuOTk3IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDQgMCBSIC9YWVogNzIuMCA1NjcuMiBudWxsXQo+PgplbmRvYmoKMjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1My4wMDUgMzMwLjQ2NiA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1NTMuMDA1IDUzOS45OTcgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNCAwIFIgL1hZWiA3Mi4wIDQ5MC44IG51bGxdCj4+CmVuZG9iagoyNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQxLjAwNSAzMjIuNjI3IDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDU0MS4wMDUgNTM5Ljk5NyA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA0IDAgUiAvWFlaIDcyLjAgNDE0LjQgbnVsbF0KPj4KZW5kb2JqCjI4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjkuMDA1IDI3NS41ODQgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTI5LjAwNSA1MzkuOTk3IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDQgMCBSIC9YWVogNzIuMCAzMzguMCBudWxsXQo+PgplbmRvYmoKMjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxNy4wMDUgMjU2LjczOCA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1MTcuMDA1IDUzOS45OTcgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1MDUuMDA1IDEyNS4yNzYgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTA1LjAwNSA1MzkuOTk4IDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDcgMCBSIC9YWVogNzIuMCA1NzAuMTYyIG51bGxdCj4+CmVuZG9iagoyOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDkzLjAwNSAyMjYuODQgNTAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzcgNDkzLjAwNSA1MzkuOTk3IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDcgMCBSIC9YWVogNzIuMCAyODQuNzM0IG51bGxdCj4+CmVuZG9iagoyOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDgxLjAwNSAyMTQuMzk3IDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc3IDQ4MS4wMDUgNTM5Ljk5NyA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEwIDAgUiAvWFlaIDcyLjAgNjgyLjQ0IG51bGxdCj4+CmVuZG9iagoyOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDY5LjAwNSAxNzUuMzIgNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNDY5LjAwNSA1MzkuOTk4IDQ3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTAgMCBSIC9YWVogNzIuMCAzOTguNDI0IG51bGxdCj4+CmVuZG9iagozMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDU3LjAwNSAyNjIuNjkyIDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc3IDQ1Ny4wMDUgNTM5Ljk5NyA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjMwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ0NS4wMDUgMTMyLjkwOCA0NTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0NDUuMDA1IDUzOS45OTggNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MzMuMDA1IDExOS4wNiA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0MzMuMDA1IDUzOS45OTggNDQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMiAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagozMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDIxLjAwNSAxNzEuOTIgNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzEwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNDIxLjAwNSA1MzkuOTk4IDQzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9E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NDYgMCBSCjI0NyAwIFIKMjQ5IDAgUgoyNTAgMCBSCjI1MiAwIFIKMjUzIDAgUgoyNTUgMCBSCjI1NiAwIFIKMjU4IDAgUgoyNTkgMCBSCjI2MSAwIFIKMjYyIDAgUgoyNjQgMCBSCjI2NSAwIFIKMjY3IDAgUgoyNjggMCBSCjI3MCAwIFIKMjcxIDAgUgoyNzMgMCBSCjI3NCAwIFIKMjc2IDAgUgoyNzcgMCBSCjI3OSAwIFIKMjgwIDAgUgoyODIgMCBSCjI4MyAwIFIKMjg1IDAgUgoyODYgMCBSCjI4OCAwIFIKMjg5IDAgUgoyOTEgMCBSCjI5MiAwIFIKMjk0IDAgUgoyOTUgMCBSCjI5NyAwIFIKMjk4IDAgUgozMDAgMCBSCjMwMSAwIFIKMzAzIDAgUgozMDQgMCBSCjMwNiAwIFIKMzA3IDAgUgozMDkgMCBSCjMxMCAwIFIKMzEyIDAgUgozMTMgMCBSCjMxNSAwIFIKMzE2IDAgUgpdCmVuZG9iagozMjAgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDE0IDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQW5ub3RzIDMxOSAwIFIKICAvQ29udGVudHMgMzE3IDAgUgo+PgplbmRvYmoKMzIxIDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCiAgL0ZvbnROYW1lIC9FQUFBQUErRGVqYVZ1U2Fucy1Cb2xkCiAgL0ZvbnRCQm94IFstMTA2OSAtNDE1IDE5NzUgMTE3NF0KICAvRmxhZ3MgMzMKICAvQ2FwSGVpZ2h0IDcyOQogIC9Bc2NlbnQgMTE3NAogIC9EZXNjZW50IC00MTUKICAvSXRhbGljQW5nbGUgMAogIC9TdGVtViAwCiAgL01pc3NpbmdXaWR0aCA1MDAKICAvRm9udEZpbGUyIDMyMiAwIFIKICAvQ0lEU2V0IDMyMyAwIFIKPj4KZW5kb2JqCjMyMiAwIG9iago8PAogIC9MZW5ndGgxIDI5OTYw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dF0KICAvWE9iamVjdCA8PAogIC9JbTEgNyAwIFIKICAvSW0yIDkgMCBSCiAgL0ltMyAxNiAwIFIKICAvSW00IDE4IDAgUgo+PgogIC9Db2xvclNwYWNlIDw8IC9EZWZhdWx0UkdCIDQgMCBSID4+Cj4+CmVuZG9iagozNDkgMCBvYmoKPDwgL051bXMgWzAgPDwgL1MgL0QgPj4gMSA8PCAvUyAvciAvU3QgMiA+PiAyIDw8IC9TIC9yIC9TdCAzID4+IDMgPDwgL1MgL3IgL1N0IDQgPj4gNCA8PCAvUyAvciAvU3QgNSA+PiA1IDw8IC9TIC9EID4+IDEyIDw8IC9TIC9EIC9TdCA4ID4+IDE2IDw8IC9TIC9EIC9TdCAxMiA+Pl0gPj4KZW5kb2JqCnhyZWYKMCAzNTAKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAxNDUgMDAwMDAgbiAKMDAwMDAwMjY4MyAwMDAwMCBuIAowMDAwMDAyNzAzIDAwMDAwIG4gCjAwMDAwMDI3MzYgMDAwMDAgbiAKMDAwMDAwMzY4MyAwMDAwMCBuIAowMDAwMDAzNzAyIDAwMDAwIG4gCjAwMDAwNTIyMjcgMDAwMDAgbiAKMDAwMDA1MjI0OCAwMDAwMCBuIAowMDAwMTA1NTA4IDAwMDAwIG4gCjAwMDAxMDU1MzAgMDAwMDAgbiAKMDAwMDEwNjAzMCAwMDAwMCBuIAowMDAwMTA2MDUwIDAwMDAwIG4gCjAwMDAyNjcxOTIgMDAwMDAgbiAKMDAwMDI2Njg2MiAwMDAwMCBuIAowMDAwMTA2MjQ0IDAwMDAwIG4gCjAwMDAxMTI0MTUgMDAwMDAgbiAKMDAwMDExMjQzNiAwMDAwMCBuIAowMDAwMTE5NjE2IDAwMDAwIG4gCjAwMDAxMTk2MzcgMDAwMDAgbiAKMDAwMDExOTcyMiAwMDAwMCBuIAowMDAwMTE5ODYwIDAwMDAwIG4gCjAwMDAxMjA3OTMgMDAwMDAgbiAKMDAwMDEyMDgxMyAwMDAwMCBuIAowMDAwMTIwODQwIDAwMDAwIG4gCjAwMDAxMjEwNTEgMDAwMDAgbiAKMDAwMDEyNDA1MCAwMDAwMCBuIAowMDAwMTI0MDcxIDAwMDAwIG4gCjAwMDAxMjQyNjUgMDAwMDAgbiAKMDAwMDEyNDkzNiAwMDAwMCBuIAowMDAwMTI0OTU2IDAwMDAwIG4gCjAwMDAxMjUxNTAgMDAwMDAgbiAKMDAwMDEyNTk5OSAwMDAwMCBuIAowMDAwMTI2MDE5IDAwMDAwIG4gCjAwMDAxMjYyMTMgMDAwMDAgbiAKMDAwMDEyNjMwOCAwMDAwMCBuIAowMDAwMTI2NDQ0IDAwMDAwIG4gCjAwMDAxMjc4NDggMDAwMDAgbiAKMDAwMDEyNzg2OSAwMDAwMCBuIAowMDAwMTI3ODk2IDAwMDAwIG4gCjAwMDAxMjgxMDcgMDAwMDAgbiAKMDAwMDEyOTM2MyAwMDAwMCBuIAowMDAwMTI5Mzg0IDAwMDAwIG4gCjAwMDAxMjk1NzggMDAwMDAgbiAKMDAwMDEzMDk2MSAwMDAwMCBuIAowMDAwMTMwOTgyIDAwMDAwIG4gCjAwMDAxMzExNzYgMDAwMDAgbiAKMDAwMDEzMjk0NSAwMDAwMCBuIAowMDAwMTMyOTY2IDAwMDAwIG4gCjAwMDAxMzMxNjAgMDAwMDAgbiAKMDAwMDEzMzIzOCAwMDAwMCBuIAowMDAwMTMzMzc0IDAwMDAwIG4gCjAwMDAxMzM1MTEgMDAwMDAgbiAKMDAwMDEzMzU4OSAwMDAwMCBuIAowMDAwMTMzNzI2IDAwMDAwIG4gCjAwMDAxMzM4NjYgMDAwMDAgbiAKMDAwMDEzMzk0NCAwMDAwMCBuIAowMDAwMTM0MDgyIDAwMDAwIG4gCjAwMDAxMzQyMjIgMDAwMDAgbiAKMDAwMDEzNDMwMSAwMDAwMCBuIAowMDAwMTM0NDM5IDAwMDAwIG4gCjAwMDAxMzQ1NzkgMDAwMDAgbiAKMDAwMDEzNDY1OSAwMDAwMCBuIAowMDAwMTM0Nzk3IDAwMDAwIG4gCjAwMDAxMzQ5MzcgMDAwMDAgbiAKMDAwMDEzNTAxNyAwMDAwMCBuIAowMDAwMTM1MTU1IDAwMDAwIG4gCjAwMDAxMzUyOTUgMDAwMDAgbiAKMDAwMDEzNTM3NSAwMDAwMCBuIAowMDAwMTM1NTEzIDAwMDAwIG4gCjAwMDAxMzU2NTMgMDAwMDAgbiAKMDAwMDEzNTczMyAwMDAwMCBuIAowMDAwMTM1ODcxIDAwMDAwIG4gCjAwMDAxMzYwMTEgMDAwMDAgbiAKMDAwMDEzNjA5MSAwMDAwMCBuIAowMDAwMTM2MjI5IDAwMDAwIG4gCjAwMDAxMzYzNjkgMDAwMDAgbiAKMDAwMDEzNjQ0OSAwMDAwMCBuIAowMDAwMTM2NTg3IDAwMDAwIG4gCjAwMDAxMzY3MjcgMDAwMDAgbiAKMDAwMDEzNjgwNyAwMDAwMCBuIAowMDAwMTM2OTQ1IDAwMDAwIG4gCjAwMDAxMzcwODUgMDAwMDAgbiAKMDAwMDEzNzE2MyAwMDAwMCBuIAowMDAwMTM3MzAxIDAwMDAwIG4gCjAwMDAxMzc0NDEgMDAwMDAgbiAKMDAwMDEzNzUxOSAwMDAwMCBuIAowMDAwMTM3NjU2IDAwMDAwIG4gCjAwMDAxMzc3OTYgMDAwMDAgbiAKMDAwMDEzNzg3NCAwMDAwMCBuIAowMDAwMTM4MDEyIDAwMDAwIG4gCjAwMDAxMzgxNTIgMDAwMDAgbiAKMDAwMDEzODIzMCAwMDAwMCBuIAowMDAwMTM4MzY4IDAwMDAwIG4gCjAwMDAxMzg1MDggMDAwMDAgbiAKMDAwMDEzODU4NiAwMDAwMCBuIAowMDAwMTM4NzI0IDAwMDAwIG4gCjAwMDAxMzg4NjQgMDAwMDAgbiAKMDAwMDEzODk0MiAwMDAwMCBuIAowMDAwMTM5MDgwIDAwMDAwIG4gCjAwMDAxMzkyMjEgMDAwMDAgbiAKMDAwMDEzOTMwMCAwMDAwMCBuIAowMDAwMTM5NDM4IDAwMDAwIG4gCjAwMDAxMzk1ODAgMDAwMDAgbiAKMDAwMDEzOTY1OSAwMDAwMCBuIAowMDAwMTM5Nzk5IDAwMDAwIG4gCjAwMDAxMzk5NDEgMDAwMDAgbiAKMDAwMDE0MDAyMCAwMDAwMCBuIAowMDAwMTQwMTYwIDAwMDAwIG4gCjAwMDAxNDAzMDIgMDAwMDAgbiAKMDAwMDE0MDM4MSAwMDAwMCBuIAowMDAwMTQwNTIwIDAwMDAwIG4gCjAwMDAxNDA2NjIgMDAwMDAgbiAKMDAwMDE0MDc0MyAwMDAwMCBuIAowMDAwMTQwODgzIDAwMDAwIG4gCjAwMDAxNDEwMjUgMDAwMDAgbiAKMDAwMDE0MTEwNiAwMDAwMCBuIAowMDAwMTQxMjQ2IDAwMDAwIG4gCjAwMDAxNDEzODggMDAwMDAgbiAKMDAwMDE0MTQ2OSAwMDAwMCBuIAowMDAwMTQxNjA5IDAwMDAwIG4gCjAwMDAxNDE3NTEgMDAwMDAgbiAKMDAwMDE0MTgzMiAwMDAwMCBuIAowMDAwMTQxOTcyIDAwMDAwIG4gCjAwMDAxNDIxMTQgMDAwMDAgbiAKMDAwMDE0MjE5NSAwMDAwMCBuIAowMDAwMTQyMzM1IDAwMDAwIG4gCjAwMDAxNDI0NzcgMDAwMDAgbiAKMDAwMDE0MjU1OCAwMDAwMCBuIAowMDAwMTQyNjk4IDAwMDAwIG4gCjAwMDAxNDI4MzcgMDAwMDAgbiAKMDAwMDE0MjkxOCAwMDAwMCBuIAowMDAwMTQzMDU3IDAwMDAwIG4gCjAwMDAxNDMxOTYgMDAwMDAgbiAKMDAwMDE0MzMzNSAwMDAwMCBuIAowMDAwMTQzNDE2IDAwMDAwIG4gCjAwMDAxNDM1NTQgMDAwMDAgbiAKMDAwMDE0MzY5MyAwMDAwMCBuIAowMDAwMTQzODMyIDAwMDAwIG4gCjAwMDAxNDM5MTMgMDAwMDAgbiAKMDAwMDE0NDA1MiAwMDAwMCBuIAowMDAwMTQ0MTkxIDAwMDAwIG4gCjAwMDAxNDQzMzMgMDAwMDAgbiAKMDAwMDE0NDQxMiAwMDAwMCBuIAowMDAwMTQ0NTUxIDAwMDAwIG4gCjAwMDAxNDQ2OTAgMDAwMDAgbiAKMDAwMDE0NDgzMiAwMDAwMCBuIAowMDAwMTQ0OTEzIDAwMDAwIG4gCjAwMDAxNDUwNTMgMDAwMDAgbiAKMDAwMDE0NTE5NSAwMDAwMCBuIAowMDAwMTQ1Mjc2IDAwMDAwIG4gCjAwMDAxNDU0MTYgMDAwMDAgbiAKMDAwMDE0NTU1OCAwMDAwMCBuIAowMDAwMTQ1NjM5IDAwMDAwIG4gCjAwMDAxNDU3NzkgMDAwMDAgbiAKMDAwMDE0NTkyMSAwMDAwMCBuIAowMDAwMTQ2MDAyIDAwMDAwIG4gCjAwMDAxNDYxNDIgMDAwMDAgbiAKMDAwMDE0NjI4NCAwMDAwMCBuIAowMDAwMTQ2MzY0IDAwMDAwIG4gCjAwMDAxNDY1MDQgMDAwMDAgbiAKMDAwMDE0NjY0NiAwMDAwMCBuIAowMDAwMTQ2NzI3IDAwMDAwIG4gCjAwMDAxNDY4NjcgMDAwMDAgbiAKMDAwMDE0NzAwOSAwMDAwMCBuIAowMDAwMTQ3MDkwIDAwMDAwIG4gCjAwMDAxNDcyMjkgMDAwMDAgbiAKMDAwMDE0NzM3MSAwMDAwMCBuIAowMDAwMTQ3NDUwIDAwMDAwIG4gCjAwMDAxNDc1ODkgMDAwMDAgbiAKMDAwMDE0NzczMSAwMDAwMCBuIAowMDAwMTQ3ODExIDAwMDAwIG4gCjAwMDAxNDc5NTEgMDAwMDAgbiAKMDAwMDE0ODA5MyAwMDAwMCBuIAowMDAwMTQ4MTc0IDAwMDAwIG4gCjAwMDAxNDgzMTQgMDAwMDAgbiAKMDAwMDE0ODQ1NiAwMDAwMCBuIAowMDAwMTQ4NTM3IDAwMDAwIG4gCjAwMDAxNDg2NzYgMDAwMDAgbiAKMDAwMDE0ODgxOCAwMDAwMCBuIAowMDAwMTQ4ODk5IDAwMDAwIG4gCjAwMDAxNDkwMzkgMDAwMDAgbiAKMDAwMDE0OTE4MSAwMDAwMCBuIAowMDAwMTQ5MjYyIDAwMDAwIG4gCjAwMDAxNDk0MDIgMDAwMDAgbiAKMDAwMDE0OTU0NCAwMDAwMCBuIAowMDAwMTQ5NjI1IDAwMDAwIG4gCjAwMDAxNDk3NjUgMDAwMDAgbiAKMDAwMDE0OTkwNyAwMDAwMCBuIAowMDAwMTQ5OTg4IDAwMDAwIG4gCjAwMDAxNTAxMjYgMDAwMDAgbiAKMDAwMDE1MDI2NyAwMDAwMCBuIAowMDAwMTUwMzQ4IDAwMDAwIG4gCjAwMDAxNTA0ODYgMDAwMDAgbiAKMDAwMDE1MDYyNiAwMDAwMCBuIAowMDAwMTc0MjcxIDAwMDAwIG4gCjAwMDAxNzQyOTQgMDAwMDAgbiAKMDAwMDE3NTA2NiAwMDAwMCBuIAowMDAwMTc1MjgwIDAwMDAwIG4gCjAwMDAxNzY4NDAgMDAwMDAgbiAKMDAwMDE3Njg2MiAwMDAwMCBuIAowMDAwMTc3MDU4IDAwMDAwIG4gCjAwMDAxNzg3NzUgMDAwMDAgbiAKMDAwMDE3ODc5NyAwMDAwMCBuIAowMDAwMTc4OTkzIDAwMDAwIG4gCjAwMDAxODExNTIgMDAwMDAgbiAKMDAwMDE4MTE3NCAwMDAwMCBuIAowMDAwMTgxMzcwIDAwMDAwIG4gCjAwMDAxODM5MjUgMDAwMDAgbiAKMDAwMDE4Mzk0NyAwMDAwMCBuIAowMDAwMTg0MTQzIDAwMDAwIG4gCjAwMDAxODQyMjUgMDAwMDAgbiAKMDAwMDE4NDM2NCAwMDAwMCBuIAowMDAwMTg0NTA2IDAwMDAwIG4gCjAwMDAxODU0NDUgMDAwMDAgbiAKMDAwMDE4NTQ2NiAwMDAwMCBuIAowMDAwMTg1NTAzIDAwMDAwIG4gCjAwMDAxODU3MTcgMDAwMDAgbiAKMDAwMDE4NjQwNCAwMDAwMCBuIAowMDAwMTg2NDI1IDAwMDAwIG4gCjAwMDAxODY2MjEgMDAwMDAgbiAKMDAwMDE4NzkxNyAwMDAwMCBuIAowMDAwMTg3OTM5IDAwMDAwIG4gCjAwMDAxODgxMzUgMDAwMDAgbiAKMDAwMDE4OTU2NSAwMDAwMCBuIAowMDAwMTg5NTg3IDAwMDAwIG4gCjAwMDAxODk3ODMgMDAwMDAgbiAKMDAwMDE5MDQzNCAwMDAwMCBuIAowMDAwMTkwNDU1IDAwMDAwIG4gCjAwMDAxOTA2NTEgMDAwMDAgbiAKMDAwMDE5Mjc5MSAwMDAwMCBuIAowMDAwMTkyODEzIDAwMDAwIG4gCjAwMDAxOTMwMDkgMDAwMDAgbiAKMDAwMDE5NDk3NiAwMDAwMCBuIAowMDAwMTk0OTk4IDAwMDAwIG4gCjAwMDAxOTUxOTQgMDAwMDAgbiAKMDAwMDE5NTI3NSAwMDAwMCBuIAowMDAwMTk1NDE1IDAwMDAwIG4gCjAwMDAxOTU1NTcgMDAwMDAgbiAKMDAwMDE5NTYzNyAwMDAwMCBuIAowMDAwMTk1Nzc3IDAwMDAwIG4gCjAwMDAxOTU5MTkgMDAwMDAgbiAKMDAwMDE5NjAwMSAwMDAwMCBuIAowMDAwMTk2MTQxIDAwMDAwIG4gCjAwMDAxOTYyODMgMDAwMDAgbiAKMDAwMDE5NjM2NSAwMDAwMCBuIAowMDAwMTk2NTA1IDAwMDAwIG4gCjAwMDAxOTY2NDcgMDAwMDAgbiAKMDAwMDE5NjcyOSAwMDAwMCBuIAowMDAwMTk2ODY5IDAwMDAwIG4gCjAwMDAxOTcwMTEgMDAwMDAgbiAKMDAwMDE5NzA5MyAwMDAwMCBuIAowMDAwMTk3MjMzIDAwMDAwIG4gCjAwMDAxOTczNzUgMDAwMDAgbiAKMDAwMDE5NzQ1NyAwMDAwMCBuIAowMDAwMTk3NTk3IDAwMDAwIG4gCjAwMDAxOTc3MzkgMDAwMDAgbiAKMDAwMDE5NzgyMSAwMDAwMCBuIAowMDAwMTk3OTYxIDAwMDAwIG4gCjAwMDAxOTgxMDMgMDAwMDAgbiAKMDAwMDE5ODE4NSAwMDAwMCBuIAowMDAwMTk4MzI0IDAwMDAwIG4gCjAwMDAxOTg0NjYgMDAwMDAgbiAKMDAwMDE5ODU0OCAwMDAwMCBuIAowMDAwMTk4Njg4IDAwMDAwIG4gCjAwMDAxOTg4MzAgMDAwMDAgbiAKMDAwMDE5ODkxMiAwMDAwMCBuIAowMDAwMTk5MDUyIDAwMDAwIG4gCjAwMDAxOTkxOTQgMDAwMDAgbiAKMDAwMDE5OTI3NCAwMDAwMCBuIAowMDAwMTk5NDE0IDAwMDAwIG4gCjAwMDAxOTk1NTYgMDAwMDAgbiAKMDAwMDE5OTYzNiAwMDAwMCBuIAowMDAwMTk5Nzc2IDAwMDAwIG4gCjAwMDAxOTk5MTggMDAwMDAgbiAKMDAwMDE5OTk5OCAwMDAwMCBuIAowMDAwMjAwMTM4IDAwMDAwIG4gCjAwMDAyMDAyODAgMDAwMDAgbiAKMDAwMDIwMDM2MCAwMDAwMCBuIAowMDAwMjAwNTAwIDAwMDAwIG4gCjAwMDAyMDA2NDIgMDAwMDAgbiAKMDAwMDIwMDcyMiAwMDAwMCBuIAowMDAwMjAwODYyIDAwMDAwIG4gCjAwMDAyMDEwMDQgMDAwMDAgbiAKMDAwMDIwMTA4NCAwMDAwMCBuIAowMDAwMjAxMjI0IDAwMDAwIG4gCjAwMDAyMDEzNjYgMDAwMDAgbiAKMDAwMDIwMTQ0NiAwMDAwMCBuIAowMDAwMjAxNTg1IDAwMDAwIG4gCjAwMDAyMDE3MjcgMDAwMDAgbiAKMDAwMDIwMTgwOSAwMDAwMCBuIAowMDAwMjAxOTQ4IDAwMDAwIG4gCjAwMDAyMDIwOTAgMDAwMDAgbiAKMDAwMDIwMjE3MiAwMDAwMCBuIAowMDAwMjAyMzEyIDAwMDAwIG4gCjAwMDAyMDI0NTQgMDAwMDAgbiAKMDAwMDIwMjUzNSAwMDAwMCBuIAowMDAwMjAyNjc0IDAwMDAwIG4gCjAwMDAyMDI4MTYgMDAwMDAgbiAKMDAwMDIwMjg5OCAwMDAwMCBuIAowMDAwMjAzMDM4IDAwMDAwIG4gCjAwMDAyMDMxODAgMDAwMDAgbiAKMDAwMDIwMzI2MCAwMDAwMCBuIAowMDAwMjAzMzk5IDAwMDAwIG4gCjAwMDAyMDM1NDEgMDAwMDAgbiAKMDAwMDIwMzYyMSAwMDAwMCBuIAowMDAwMjAzNzU5IDAwMDAwIG4gCjAwMDAyMDM5MDEgMDAwMDAgbiAKMDAwMDIwMzk4MSAwMDAwMCBuIAowMDAwMjA0MTIwIDAwMDAwIG4gCjAwMDAyMDQyNjIgMDAwMDAgbiAKMDAwMDIwNDM0MiAwMDAwMCBuIAowMDAwMjA0NDgyIDAwMDAwIG4gCjAwMDAyMDQ2MjQgMDAwMDAgbiAKMDAwMDIwNDcwNCAwMDAwMCBuIAowMDAwMjA0ODQzIDAwMDAwIG4gCjAwMDAyMDQ5ODUgMDAwMDAgbiAKMDAwMDIxOTUxNiAwMDAwMCBuIAowMDAwMjE5NTM5IDAwMDAwIG4gCjAwMDAyMTk5OTIgMDAwMDAgbiAKMDAwMDIyMDIwNiAwMDAwMCBuIAowMDAwMjIwNDcxIDAwMDAwIG4gCjAwMDAyMzUwMjEgMDAwMDAgbiAKMDAwMDIzNDk5OCAwMDAwMCBuIAowMDAwMjM1MTIxIDAwMDAwIG4gCjAwMDAyMzUxNDEgMDAwMDAgbiAKMDAwMDIzNTc4OCAwMDAwMCBuIAowMDAwMjM1MzA2IDAwMDAwIG4gCjAwMDAyMzYzNjkgMDAwMDAgbiAKMDAwMDIzNjM5MCAwMDAwMCBuIAowMDAwMjM2NjUwIDAwMDAwIG4gCjAwMDAyNTI3MjkgMDAwMDAgbiAKMDAwMDI1MjcwNiAwMDAwMCBuIAowMDAwMjUyODM0IDAwMDAwIG4gCjAwMDAyNTI4NTQgMDAwMDAgbiAKMDAwMDI1MzU0OSAwMDAwMCBuIAowMDAwMjUzMDE0IDAwMDAwIG4gCjAwMDAyNTQxOTMgMDAwMDAgbiAKMDAwMDI1NDIxNCAwMDAwMCBuIAowMDAwMjU0NDc2IDAwMDAwIG4gCjAwMDAyNjU2MjQgMDAwMDAgbiAKMDAwMDI2NTYwMSAwMDAwMCBuIAowMDAwMjY1NzIyIDAwMDAwIG4gCjAwMDAyNjU3NDIgMDAwMDAgbiAKMDAwMDI2NjMyNSAwMDAwMCBuIAowMDAwMjY1OTA2IDAwMDAwIG4gCjAwMDAyNjY4NDEgMDAwMDAgbiAKMDAwMDI2NzA4MyAwMDAwMCBuIAowMDAwMjY3NDIyIDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvUm9vdCAzNDggMCBSCiAgL0luZm8gMSAwIFIKICAvSUQgWzxGQkEyMEJGNjE0OTBEN0UxOEYyNjgwODkwOUFCODdFMT4gPEZCQTIwQkY2MTQ5MEQ3RTE4RjI2ODA4OTA5QUI4N0UxPl0KICAvU2l6ZSAzNTAKPj4Kc3RhcnR4cmVmCjI2NzYwNAolJUVPRgo=