TimeAccounting
5.0.3
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for TimeAccounting 5 patch level 3.
Build for TimeAccounting 5 patch level 2.
Build for TimeAccounting 5.
Build for TimeAccounting 5 beta1.
A Time Registration Module.
Ein Zeiterfassungsmodul.
Egy munkaidő nyilvántartás modul.
5.0.x
<br>
<b>WELCOME</b>
<br>
<br>
You are about to install the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu installieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de instalar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag telepítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTICE</b>
<br>
<br>
In order to grant users access to the time accounting module, you need to add them as member to the group 'time_accounting'.
<br>
<br>
The menu items that were added by this package will be visible after you log-in to the system again.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>HINWEIS</b>
<br>
<br>
Um Benutzern Zugriff auf die Zeiterfassung zu gewähren, müssen diese Mitglied der neuen Gruppe 'time_accounting' sein.
<br>
<br>
Die von diesem Paket hinzugefügten Menü-Punkte sind erst nach einem erneuten Anmeldevorgang im System sichtbar.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTA</b>
<br>
<br>
Para permitirles a los usuarios el acceso al módulo de contabilidad de tiempo, es necesario añadirlos como miembros del grupo 'time_accounting'.
<br>
<br>
Los elementos del menú agregados por este paquete, serán visibles luego de reiniciar sesión en el sistema.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELMEZTETÉS</b>
<br>
<br>
Annak érdekében, hogy hozzáférést adjon a felhasználók számára az időelszámolás modulhoz, hozzá kell adnia őket a „time_accounting” csoporthoz tagként.
<br>
<br>
Azok a menüpontok, amelyeket ez a csomag adott hozzá, azután lesznek láthatóak, miután ismét bejelentkezik a rendszerbe.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
If you uninstall this package, all database tables that were created during installation will be deleted.
All data from these tables will be irrevocably lost!
<br>
<br>
The group 'time_accounting' that was created during package installation will be deactivated.
You can activate this group again in the admin area.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ACHTUNG</b>
<br>
<br>
Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
Alle darin enthaltenen Daten gehen unwiderruflich verloren!
<br>
<br>
Die von diesem Paket angelegte Gruppe 'time_accounting' wird deaktiviert.
Sie kann jederzeit im Admin-Bereich wieder aktiviert werden.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
Si usted desinstala este paquete, todas las tablas de la base de datos que se crearon durante la instalación del mismo, se eliminarán y
el contenido de dichas tablas se perderá irrevocablemente.
<br>
<br>
El grupo 'time_accounting' que se dió de alta durante la instalación del paquete, se desactivará.
Es posible reactivar dicho grupo en el área de administración.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELEM</b>
<br>
<br>
Ha eltávolítja ezt a csomagot, akkor a telepítés során létrehozott összes adatbázistábla törlésre kerül.
Az ezekben a táblákban lévő összes adat visszavonhatatlanul el fog veszni!
<br>
<br>
A csomagtelepítés során létrehozott „time_accounting” csoport ki lesz kapcsolva.
Ezt a csoportot az adminisztrációs területen tudja ismét bekapcsolni.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WELCOME</b>
<br>
<br>
You are about to upgrade the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu aktualisieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de actualizar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag frissítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeInstall();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_91();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUninstall();
2016-06-22 23:55:56
opms.otrs.com
iVBORw0KGgoAAAANSUhEUgAAAz4AAAHqCAIAAABKmQyfAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde1xT9f848NfZxrhsDGQMkKsYIIrIRU1NMgS5ZImGAqaYmZdPdjHN0vxWkqZmpmmWaVqKkZqKiQoIiFdQ8oco3lFERJT7gA3GxnbOzu+P8/nss882JqKg0Ov58OFje9/fB/X98pz3OYegaRoQQgghhFB3wHrWA0AIIYQQQu2FoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULfBMZ59+/btrhkHMqKpqelZDwEhhBBCXWfw4MFtZT0idEPPAw/PwGc9BIQQQgh1kTvFF43k4gVThBBCCKFuA0M3hBBCCKFuA0M3hBBCCKFu4/FCt7i4uMDAQH9/f29v78DAwMDAwG+//fb06dNz587tWPcNDQ0+Pj4bNmzoWHWD5HL5nj17AOBJBqZN046mZYQQQgihZ4KgadpItsE7TEtKSqZOnfr3338zX1tbW+VyubW1dQe6T0pKSk9Pr66uPn78OEEQHWhBX11dXUxMzMmTJ59kYNo07WhafirjbD97B88u7hEhhBBCz8qd4oude4fp9evXMzMzw8LCDh482NzcfP369YkTJzY1NaWnp3t6em7YsIHH4wHAkSNHtmzZQlHUpEmTZs2axdQ9ePBgQkLCwoULL1789yg3b968b98+gUDwzjvvjB8/XucrAPz666+7du1ycHCYMGFCXFzchQsX0tPTGxoaLl265O/vv2bNmsWLF9fW1n766advvvlmZmbmkiVL9MtwudytW7cmJye7ubl5eXkNGzZs1KhRmhnpZPH5fKYdTcvffffdkx83hBBCCKHH9RT2ujU1Nd2/f18mkx04cGDmzJnbt2/fuHGjqalpZmYmSZI5OTkAIJFINm7c+PPPP2/evPno0aPHjh0DgOLi4ubmZj8/v7Fjxx45cgQAysrKMjIy0tPTt27dumnTplu3bml/VSgUZWVlhw4dSkxM/P333w8fPlxcXCyTyf7666/Zs2f/9ddfpaWlBQUF3377rUgk+u6775iBAYB+mdLS0szMzOTk5I8++mjv3r1isVgzHf0sTTualp/8oCGEEEIIdcDTvE3Bx8dn0KBBrq6uVlZWMTExpqamXl5elZWVAJCdne3s7FxQUHDp0qU+ffowF1tTUlK8vb1zc3NtbGzS09NVKtXx48cjIyPNzc3t7e1379598uRJ7a8sFuvYsWNjx451c3MzMTGJjIxMT08HgKFDhw4YMMDGxsbf3//BgwcGx6ZT5vjx4+PHjxcIBAMHDnzppZe0SxrJQgghhBB6tp5m6Obk5MR8IAiCz+drZ1VWVnK5XJVKpVKpXnzxxYiICIqiDh8+bGFhkZGRcefOHQsLi5ycnPLycoFAwFTh8XiVlZXaX9lsdmVlpVAoZFIoilKr1QBgbm7+78mwWG1t3dMpU1JSYmZmxqRYWVlplzSShRBCCCH0bHXRw0HCw8Obm5tjYmLi4uIqKirq6urOnTtnb2+/evXqFStWrFixYsqUKYcOHQoJCcnJyaEoSi6XT5gw4aWXXtL+2traOnr06FOnTlEU1draevr06VdeecVgdxRFGR9Pv379Tp06pVarm5ubc3Nz25nVnpYRQgghhDpPF4VuXl5eAwcOfOONN15//fWioqKQkJCDBw9GRUVpCkRGRp46dcrX11epVI4dOzY2NnbGjBmhoaHaXy0sLIYPH97U1PTqq68yF1L9/Pz0+xIKhXw+f8mSJUbGM3nyZJFINGHChOnTp9vb25uYmLQnqz0tI4QQQgh1no48HKTDmpubGxsbnZ2djRerq6vr1asXm802+BUAHjx4YGpqKhKJ2mqBpmm5XG5hYdFWgYqKCoVC4ebmxmazZ86c+cknn/Tv3/+RWe1puTPgw0EQQgihf45OfzhI+/H5fJ09cAbZ2toa+QoAjwz+CIIwHl2x2ex33303Ojr63LlzJEl6enq2J6s9LSOEEEIIdZ4uPev2XKmrqzt//rxAIBg6dKjmvoRHZnU9E665jc0jQlWEEEII9RjGz7r9c0O3bsHUlGdl3ftpvWcCIYQQQs8/46Ebvn7++YVxG0IIIYR0YOj2nMK4DSGEEEL6MHR7HmHchhBCCCGDHnGHqVwud3Ty6JqhIA0TEzOM2xBCqGMaG+vP/32KxeFwOCwOC/8tRZ2OVNMkSalJatjwYGtrm87u7hGhG0mSXC4+CwMhhFD3cPJEKsEmCEuhjGutYplRBAsAozfUqWg2rTZRKyxUkkuF59QUHRo6rlP7wwumCCGEeoiMjGTgcMS8PvXmTgo2jyLYGLehzkdQBFvB5tWbOTbw+7BMTDIykju1PwzdEEII9QRnTmdwLfi1/L4qlumzHgv6h1KyzGp57qYW/LO52Z3XC4ZuCCGEuj2FooWkyXqemxrXNfRMqQm22MJVoZLL5S2d1EWXvggLIYQQ6gxnTmfQliKSMNFO/G2p6pEVbRy4QePvCWxEpua4sRs9HSSLS5la5eZkhIVHd0b7GLohhBDq/lgsuYlAJ83L35rFgn/fsM+8OYgAoP/9u5qmaRr41uzr+bk+Q4NETm5dPWbUc7WYWFkQ9Z3UOIZuCCGEuj0TE47+FrfYd+2iBnAAQE0DpWZ+pyk1kDSQFJBqWknCyVstf3xfphgYqN9m5p6t9i59/YPG3C++vmrOG+NmzHvtrQ+6YjKdrwdPTV/75ygR134W8/KoqDffnJ/whJ2qWKYmJp0VYmHohhBCqNvjsAiKYOskEjTd1ELer2lRUTSbzbLimVQ2KFQkLbQyr6yXt6poDycBpSLbavPQr+sDRoX7B42xtrWP/tenL/i2+U7JbqcHT03fY82RptU0rTaY1dJQ3VB2y2CWjZu3eS877RSKYHfeMwXZX331lZHsyspKG2HvTuobIYQQeirulxU3cW11EnkWVq7WUCtRKlopNQ0mHHZ9k0quos24nLomlUKhsjAnymtbbxRkO3v0t7IRaddN/GbRg5KiZmmjokVm79wnY/cvNna9CSC2fvUhqWpN+33T0aTNpuYWlWV3fluxMC/jr74+/pa9hABw5dyJX79ekLbzx9Ibl/sFDOeamRsccE7q3qQ1/5exe2vpzcu2ji5WQjsAuFd0dfuKhUcSfywvvmElFPUSORhMLC++sfWrD/dvWvl3VgrHhOvq5cMU+yXhQzNzC0d3r+ry0k3/9y+CAC7XbPOX75Gq1oxdW47s+KGxrto7cMTO1Yv1p+bq6VNVVqJfmCCIa+dPb1s+P2vPtl52vX9fs0TZKnfv76c/I4MDcPX0uZSTtX/TqpRt6+7fvu7s4c2ztDJ4lB6UFG3+8j0TLjc1caO0UazfBdM+0PTRPzYf+m29TNLg6TeUIFiPbKqXyEEzR4OH7kZ+zrZl848nJ3JNza7/vxy3fr6+I0brT5DNNSu/kC2tuCure6j9SyVv7u37EsHSuT+GECjFbm5ebf6RNaq+vtLR0bGtXLwTByGEUM+kpihKDSpS3UrSShWppOhWFd2qJFtJulWpVqqUilaSIg3fymDn3AcAzC14Nva9WxUtpTcKG+uq5S3NJdcuJv+8WqmQV92/u2vdl39uWGbO498rurL3xxUA8PDu7c1fvKeQNfcfPPJq3smfPpttsPHq8tJd674kWKyAl8OunD2RuGoRAMikjRsWvvXw7i33/oMKTmf8+NnsVoVcP7GhpnLd/PiyW9cGvRQqlzX9se6LwtxsAJDLmkpvFErENQCgVMhLbxQ21FYp5C0l1y7u+2mlTCpRyGWZe7beuXrB4NQAwGDhVoV8y5fv1z68b+/ivmPlp6U3ChuqKwxOyuAApA11vy1fwDHhvvTqpGt/nzq8fUNbR0nRIiu9UfjnD8uv5J1ks3VPoGra/3PjckVLs7S+Nu33TWcO/9mepjRzlDVJ9A+dStm6+cv3y+/ctLa1P/TbeiN/nFhsjuOgkfrpjn5BLHaXXsPEC6YIIYR6JopSM5vbKDUQxL/3t5EUqCgg1UCqgaSAJCmDdcdOey818Udnj/4jx8bcL76unTUmZsb4WR/v2fDV6UO731u1ZcCQoC/jw6ru3wWAc0eTaVr9zudrHd29OFxubuq+itLbju66p17Uair2wy/8g8Yo5fJLOcdqK+4DwIWT6YoW2fTFq0dERucfT72Uk9VYV11UcE4nMXPPVkVL85vzv3pl/BRx1cPP3xx9OuUP/6AxRo5DwKiIWV+uv1d0ZfXcSdf+Pv3GnE/ampp+YUWLjFQpp326cljY+HNHk39f8380Tbf/R3D3eiFJqtgcjvfgEQNeDJI3N7d1lJjyds5us5ZuEDm6ttXgS69OnLJgWW3F/S+njsk/fqT2Ydkjm9LM8fyxQ/qHztTMXNWqmLrw65dfj8v6c9tfv3xnZDq93PrX3LrYUl+lSeHZOtq49W//AXkqMHRDCCHUM6lJklKbUDQTutEqmib/HbRpPoCabHOvW1v4Vr0AwMLSCgBsRL0BwMyCp5A1A4C46gEAfPt+rKZwXeUD/dDNxt6prOjq4d82qJQKE64ZEwyJqx4CgFNfLwAYGvr60NDXAeBs2n6dxL0/fg0AfX0CAEDo4CSwEdU8LNNpn4b/ia5cPQcAAHOlUtWqMD47ncLFl/MBwK2fLwC8MLC9W+I0A+g/ZKR7f79LZzIvncm0trWfMHthW0eJOZ6DXgo1ErcBAHMhVeTo2suut0Rc81hN1T4sA71DV3QxDwA8Bw0FAL+RY4yHbgRBuAwOuZ29h/mREQThHBDczmPyFGHohhBCqGdSU6SKAhUFKoqiaSBJUFJAUmolqSYpNUnRKoqmHj90M4h5BAlP0AsAPl6fZGPvxKQLbIT6hbP3/Xb+2KGY95YEjZu88dMZZbeuAUBvtxcAQNYkBYB7RVfv3bw8ePSr+olM0FDz4J6LR3+5rKmpQezWzwcAuKZmAKBSKgGgqUH8v2N7jM1ROoWd3D0BoK7ygYNrX80JLYMMDoBUts78cn19TcXVvJN5GX/tWvfloJdCDB6l+7dvAIDZo56uV3b72ojI6FaFXCKucfX0eaym+FY2oHfoetn1BoD66ocOrn0l9bWPPD48W0crZ8/G8tsAYO3ixbNtc0da58HQDSGEUM9EqiiVGuRKUtnaSrIIuUKhbG1VkSq5nK1UtVIqUkXRVBsXTAGAYBHiqgdVZSXt77FfwLCz6ftzUveOHBuTmrix5kHZV79ncE1171RolcsBwMXL53bh+bvXL7HZHADwefFlgiAyd/+ialUc+u37htrqoHFx+okffbfjdMqu9KRNNE1fOpNJ02r/oHAAsHN2A4BzGQfMePxje381Ps72T81n2CsEwdq7cXnpmHF5GQeNlDQ4gBv5ub+t+Pj1tz8cOTam9mFZ0cW/2WyOwaP0yJEw8o+nunsPKszNVlOUd+AIR3fP9jflHzQmNXGjzqHzeynkzx+WpWz7XlJfd+pgUnvG4OT/irTiLvOhncN+uvA2BYQQQj0TSVIkSZmyKRO2ms2iSJWSw6JM2DSpUnJYao4Ji1IDTbUZug0Pf6Oi9M6BLd+2qzOCAIAXx0S99tYHd65c2LBwevmdm5PeX2LB131QMAC89OpEK6Hd9/Pjkzet6hcwnCRVdZXlAhvRmJgZRRfzfv783bqK8rc+XcXhmOgnuvUbGPvBF9X3S39dPr/g1NHBwa+GTHoLACythUGvx9Y+LNv34wrvwJeMD7b9U+Nb9Yp5f4miRZaTus//5TAAaGtLvsEBBL4S6f9y2LE/f/1qeuS9oqtRM+ebmlu08ygZ5N7fb88Pyy7lZL0wMDBs8qzHasqpbz/9Q9fLrnfIxOn3i6/vXL3YxXNAe8ZgyrcSeQWIvAK4vPYO++kijO83LCgo8PA08KBChBBC6PmRcybtIb+fTiK71TQk0F4mVyoUKlJNUzRLpQaSpEiaoGiCUgPBMrl+rfT44fXDI95w8TCw2ZwiSVKlfNx3ZNG0uubhfaGDE4djAgDShjqdAiZcUzMLXkNNpeYyn0ZLk6SxrtrOxZ2p21aiStla+7DMSmjHE1hrV1e0NAMQZha8Rw6ynVNrqK0qL77h6O5l29v5Uk7WL0s/mLFkTf+hQfozMudZtjUAklQ11FTq7DzTOUraDB6xe0VXf/jk7bcWrXoxbHxzY721rX17mtJn8NA1NYppmhb00n2+TFtIpYIAYHPNjJRxar718qjX2tmgjjvFFwcPbnNnIV4wRQgh1DPV1cvTz5VTzI2mNE2rgaZpNc18Jpit9PKWViMtsDkcNuexF0qCYNk799F8PXN4j06B3m4vDA4eqx+3AYCFpRWzy954ognXVP/uBwAws+C3c5DtnJqpuUXSd/+nVqud+vYrvpxvaW3jFTC8rRm1NQAOx0T/5gOdo6TNYPsWltaa1rTjNuNN6TN46CytDWxJNIJjNGjrbBi6IYQQ6plIdfnZk7m1ejdg6hA5uT1yd/yTeH36h53XeGez4AsW/5xcVHCu4l6xf9CYwFcirW3tO3tGBtuvrbg/dtp7zoZOjv7TYOiGEEKoZxLYiHyGBhl8P6k2M3MLwf++SgFps+3tHPR67KPLdTKRo2vUO/Of9SieCxi6IYQQ6plMzS1ETm7PehQIPWV4hylCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBe90QQgj1BE7Nt571EBDqChi6IYQQ6vYKCgoSEhKe9SgQ+q9ly5Z1+JG8xuEFU4QQQgihbgNDN4QQQgihbgNDN4QQQj2W7N6nsrvvUmSL8Rd2PyGJRFJaWtp57SOkDUM3hBBCPZPsdjCXOmfCvtp6xbNRXEKSpHZuenr6+PHjtVOWLFmybds27ZTCwkIOh+Po6Ni7d2+hUPjmm2/KZDIAEIlERUVFAFBTU/Paa6/5+PhERUXZ2dl9++23mrpMmZs3bxIEsWXLFk26nZ1dZWXliBEjBAIBj8djsVgCgUAgEHzyySedcRBQz4OhG0IIoR5IUbXVTOQN5mYEd6CZCb+55COpVKp97i0kJGT79u2PbMfd3b2ioqKysrKsrOzcuXMHDhzQzo2Pjx8wYMD9+/evXr2an5+/evXq7OxsnRYsLS0TEhJqamq0E/Py8qRS6YULF4RCoVQqlUqla9eufYLpon8QDN0QQgj1QATLnFY3stnAlp0HkpTLpBKJRK1WawoUFBSsXLkSAL755hsvL6/Q0NDi4mIjDfL5fGdnZzMzM03KhQsXbt68uWrVKhaLBQBubm4pKSk8Hk+nor29/YwZM/CkGnpa8OEgCCGEeiBTu2mSGz/z+DTR3NSsaLoqnj64L6FdQCKRlJSUFBQUJCUlpaamyuXy0NDQiIgInXaqq6tnzpxJ03RJSYlcLo+KitJkXbt2zd/f38TEBAAKCgrq6uoAQD90A4CEhISBAweeOnUqODj4qc8U/dNg6IYQQqiH4r9NsHfLm+uv1QU5OPa3srJiTo9pS0tLi4uL8/LyAoCwsDD9NiwtLadMmQIAdXV1n3/++datW+fNm8dkKRQKZusbAJw6deratWtlZWUEQRw/flynEXNz802bNs2dO/fy5ctPd4roHwhDN4QQQj0Tl8sFNVDAkXDnDnJzs7S0JAhCp0xlZeWgQYOYzwKBQL8RCwuL0NBQTYOrVq3ShG79+vU7d+6cXC43NzdfuHAhAMyfP//q1asGBxMZGZmYmIgb2tCTw71uCCGEeiYmUGPR8l7WfEtLSw7HwNmK8ePHp6WlkSSpUCj07zDQVltbm5qa6ufnp0l5+eWXPTw8Nm/ezHy9devW3r17jbSwYcOGn376qbm5uSOTQeg/MHRDCCHUk9EEi277ElNoaKhEIvH29g4ICPD29tYvcPfuXZFIJBKJfHx86urqVqxYocnicDh79uz5/fffPT09/f39IyIiNm7cqH9iT8PBwWHp0qVyufwJZ4T+4QjjTyksKCjw8AzsstEghBBCHbBh/XKD7zBtvuFV3+Aotljv6enJ5/MN1mVuQXBycjI3N+9Y7+Xl5SwWy8nJqWPVUY+0bNmy+QuWdqzuneKLgwcPbisX97ohhBDqsSinfNJM7GBuzuVy2ypDEISHh8eT9OLi4vIk1RF6LBi6IYQQ6rGsrKysrKye9SgQeppwrxtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCCGEULeBoRtCCKEeq14q3XH0aG1Dg0ql6oLu0tPTx48fr52yZMmSbdu2aaeIRKKioqKbN28SBLFlyxZNup2dXWVl5YgRIwQCAY/HY7FYAoFAIBB88sknXTBy1I3gi7AQQgj1TGKJJOPKFa+wsN+zssb7+Lj27m3kTaZPRUhIyLBhw9pZ2NLSMiEhITo62s7OTpOYl5cHADdv3hw1alRtbW2njBJ1c3jWDSGEUA8klkgyr1zpFxSkZLP7hIfvuHr1XkWFUqnUFDhx4sSCBQuYz4sWLTp+/DhFUe+9956/v//UqVMLCwuZrN27d/v4+Hh7e69ZswYA/v7773nz5sXHxy9btky/04KCgpUrVwLAN9984+XlFRoaWlxc3NYI7e3tZ8yYgSfV0OPC0A0hhFBP8+/zbUFBLQDNAFI2WxARsf769VKt6K2pqam8vJz5/ODBA6lUeuTIEYlEUlhYOG/ePCZQq6+vX7p06aFDhw4dOrR///6DBw/KZLLNmzePHj36448/1u9XIpGUlJQUFBQkJSWlpqZ+//33p06dMjLOhISEs2fPGi+DkA4M3RBCCPU0B3Nz+4wY0QTQCFAHUEPTTQBcX9+9+fkSiaStWgMGDMjMzFy8eDFJkrt27QKAlJQUd3f33NzcvLw8T0/PEydOAMCQIUNmzpxpaWnZVjtpaWlxcXFeXl5+fn5hYWFGxmlubr5p06a5c+dqnw5EyDgM3RBCCPU0b4wcmX/8eD1FiQFqaFpKks1VVXDiRJBQKJfL9cs3NDQAgJeX18WLF+3s7BYvXjxhwgQAKC8vNzU1VSqVSqUyODh44sSJAGBra2u898rKSs32NYFAYLxwZGSkn5/f2rVrOzBN9M+EoRtCCKGexorPH9e//6XMzBqSbKIoWXU1lZ0dLhIJhULN2TKhUHj//n2KohoaGgoKCgBg69atZ8+eXbhwYXZ2dl5enkqlio6Olkqls2bNmjNnTllZWXV1dXt6Hz9+fFpaGkmSCoUiOzv7keU3bNjw008/NTc3P8mU0T8Hhm4IIYR6Gg6H4+Lg8JaPz72srKbKSvr48Ug7O2dnZxcXF81psMGDB5Mk6e3tPWHChAEDBgBAeHj4d999FxkZGRkZ+dFHH5mYmPj6+g4ZMiQwMHDgwIGXL1+OiopqT++hoaESicTb2zsgIMDb2/uR5R0cHJYuXWrwdCBC+giapo1kFxQUeHgGdtloEEIIoQ7YsH55QkKCTqJSqSytqEguKBjRq5etra2zs7OVlRWbzdYuU11dbW9vr51SVlbm4OBgamqqSZFKpWKx2N3dXbvYjRs3dLrz9PQ0MTFhPtM0XVJS4uTkZG5u/oRTQ93UsmXL5i9Y2rG6d4ovDh48uK1cfK4bQgihnonL5bo7Os7h8RQKBZ/PFwgEOnEbAOjEbQDg5uamk8I8GlcnMT8/X7+iJnQjCMLDw+OJRo9QGzB0Qwgh1GNxuVyRSNQZLU+fPr0zmkXokboodGtsrD//9ykWh8PhsDgsoms6Rc8tUk2TJKUmqWHDg62tbZ71cBBCCKFuoytCt5MnUgk2QVgKZVxrFcuMIlgAGL39k9FsWm2iVlioJJcKz6kpOjR03LMeEkIIIdQ9dPodphkZycDhiHl96s2dFGweRbAxbvvHIyiCrWDz6s0cG/h9WCYmGRnJz3pICCGEUPfQuaHbmdMZXAt+Lb+vimX66NLon0fJMqvluZta8M/mPvrRRwghhBDqxNBNoWghabKe56bGp8ehtqkJttjCVaGSy+Utz3osCCGE0POuE/e6nTmdQVuKSMJEO/G3papHVrRx4AaNvyewEZmaW3Ta6NBzhGRxKVOr3JyMsPDoZz0WhBBC6LnWmbcpsFhyE90H4Xj5W7NYQBAEAADzMGACgP7372qapmngW7Ov5+f6DA0SOek+XAf1VC0mVhZE/bMeBUIIIfS868TQzcSEo7/FLfZdu6gBHABQ00Cpmd9pSg0kDSQFpJpWknDyVssf35cpBhp4i0Pmnq32Ln39g8bcL76+as4b42bMe+2tDzpvCl3p2U7tmR9YFcvUxASfMogQQgg9QiculhwWQRG6z60maLqphbxf06KiaDabZcUzqWxQqEhaaGVeWS9vVdEeTgJKRbbV5qFf1weMCvcPGmNtax/9r09f8G3zNRHdzrOdWmf03tJQ3VB2y2CWjZu3eS877RSKYOMD/xBCzz+pVKr/ZgWEulJnn+fQXYzVNE3RoFCpW5UUh8M243LkrepWkuar1LJWtbJV1SSXq5RKg20lfrOIptXFVy4c2bHxxTHjLuUc4wmsuVyzPzcuf3HMuGvnz9RVlIe/OZvN4WTs+oVravbWolWO7l4AcOXciSOJG6X1tS8MHDxlwTK+VS+D7eek7j2dsquluamvj3/45Fmunj4AcK/o6l9bvq2reujlN/SV8VPcB/gbTCwvvvHnxuUP796ytrUfE/NO0OuxTLG9P34dOnH6kJDXqstLE1cvDnot5gWfwKS1n784ZtzNC2cr793xfzl8wuyFO1cv1p/aCz6BVWUl+oUJgrh2/vSh39bLm5smzl2c9eevQ0NfD4l+q8OTOn1ot8HeAUB/Xm0NSb9rM4Gw4f4tpUyik87lWfX2femRf1QQQujJ1Uulh86efX34cGs+X/OWqg6LioqSyWTHjx9/KmPrbOnp6b/88suhQ4eMlFmyZEnfvn1nz56tSRGJRDk5OTRNDxgwYPh7QJ0AACAASURBVPPmze+++y6Tbmdnd/ny5ejo6OvXr1MUJZfL+Xw+AMyZM2ft2rWdOhGko6vv/VRTFKUGFaluJWmlilRSdKuKblWSrSTdqlQrVUpFK0mRhm9lsHPuAwDmFjwb+96tipbSG4WNddXyluaSaxeTf16tVMir7t/dte7LPzcsM+fx7xVd2fvjCgB4ePf25i/eU8ia+w8eeTXv5E+fzTbYeHV56a51XxIsVsDLYVfOnkhctQgAZNLGDQvfenj3lnv/QQWnM378bHarQq6f2FBTuW5+fNmta4NeCpXLmv5Y90VhbjYAyGVNpTcKJeIaAFAq5KU3ChtqqxTylpJrF/f9tFImlSjkssw9W+9cvWBwagBgsHCrQr7ly/drH963d3HfsfLT0huFDdUVTzIpa1t7g73LmiT68zI4JIO9s9gcx0Ej9dMd/YJYbLw2ihDqdGKJ5Ojly15hYb/n5ZVVVCjbOC/QTi0tLceOHesucRsAhISEbN++vcPVLS0tExISampqtBPz8vKkUumFCxeEQqFUKpVKpRi3db2uDt0oSs1sbqPUQKr/vb+NpEBFAalJISmDdcdOe48gWM4e/UeOjdHJGhMzY8H3v4+KmkyqlLMSNnz6458iJ7eq+3cB4NzRZJpWv/P52jfnfzUsfPy9oisVpbf1G1erqdgPv5i74ueXX4/jW9vUVtwHgAsn0xUtsknvLZmd8MNbn67yDhzRWFetn5i5Z6uipTnm/f975/O1i37aBwCnU/4wfhwCRkUs/GHX3BWbAeDa36eNTE2/8O3C86RK+eb8hA+//XXyR18CAE3TBntp56RGvDrRYO/njx1qa146Q2prmr3c+lvYOGin8Gwdbdz6Gz84CCH05MQSSeaVK/2CgpRsdp/w8B1Xr9773+gtLS1twYIFr7/+uq+v7/fff69Wq//+++958+bFx8cvW7YMAHbv3u3j4+Pt7b1mzRoAmD59OkmSEydO1M8yXjEnJ+eDDz6YPHmyq6trXFxca2srAKxcubJPnz7+/v5JSUn6VQzSH7DxkRQUFKxcuRIA1qxZ06dPn6CgoK1btzJNffPNN15eXqGhocXFxW11Z29vP2PGjE8++eRJfxLoaevqkx9qkqTUJhQNlBoIglbRNPnvoE3zAdRkm3vd2sJcA7WwtAIAG1FvADCz4ClkzQAgrnoAAN++H6spXFf5gLmQqs3G3qms6Orh3zaolAoTrhkTDImrHgKAU18vABga+vrQ0NcB4Gzafp3EvT9+DQB9fQIAQOjgJLAR1Tws02mfhv+Jrlw9BwAAz9IKAFStCuOz0ylcfDkfANz6+QLACwONbUpr/6QMqn1Y1ta82jl+giBcBofczt7DdE0QhHNAsPHJIoTQkxNLJBlXrvQLCmoBaAaQstmCiIj1WVnzAdwdHblcLgDU19cnJiZeuHDByclp7NixQ4cOVSqVmzdv3rJlS2xsbH19/dKlSzMyMiiKio+P9/T03LFjR05OzoEDB/SzBAKBkYqmpqaJiYk5OTnOzs5hYWG5ubmurq779++/fv16Y2Pj6NGjQ0JCdKq88cYb+pPSH7CPj4+RkeTk5JSUlBQXF//xxx/Z2dmurq5jxowZOXKkQqFISkpKTU2Vy+WhoaERERFtHcaEhISBAweeOnUqODi4835Y6HF1/QVTUkWBigIVRalINUmCkgKSUitJNUmpSYpWUTT1+KGbQcwGLJ6gFwB8vD5pxe4TzC/vwSP0C2fv++38sUPj3v7w+yMFTFgDAL3dXgAAWZMUAO4VXT118I+mRrF+IhOX1Dy4BwByWVNTg9jS2gYAuKZmAMBs3WtqEP/v2B7jyOsUdnL3BIC6ygcAYPAMYgcmZbA638rG4Lwea/w8W0crZ0/ms7WLF8/WsZ0VEUKoww7m5vYZMaIJoBGgDqCGppsAuL6+e/PzJZL/bsANCQl54YUXzMzMpk2blpKSAgBDhgyZOXOmpaVlSkqKu7t7bm5uXl6ep6fniRMnNLUMZhmvOGrUqICAAJFINHz48NLS0sOHD8fExPB4PCcnpzNnzhw+fLitvnToDNj4SDSjjYuL8/Dw4HK5MTExf/75Z1paWlxcnJeXl5+fX1hYmJHDaG5uvmnTprlz5z7htWb0dHX1WTdSRanUIFeSytZWkkXIFQpla6uKVMnlbKWqlVKRKoqm2rhgCgAEixBXPagqK2l/j/0Chp1N35+Tunfk2JjUxI01D8q++j2Da2quU6xVLgcAFy+f24Xn716/xGZzAMDnxZcJgsjc/YuqVXHot+8baquDxsXpJ3703Y7TKbvSkzbRNH3pTCZNq/2DwgHAztkNAM5lHDDj8Y/t/dX4ONs/NZ9hrxAEa+/G5aVjxuVlHDRSsv2TMti7f9CY1MSN+vN6XE7+r0gr7jIfOlAdIYQe1xsjRyYdP+4SGipls2toWkqSsupqOHEiyNVVLpdrivXq9e+71lpbWxsaGgDA1taWSSkvLzc1NWVCluDgYC+v/16r0c+iKMpIxZaWFguLfz9hns1m0zR99+7dAQMGMCkCgaCysrKtvnToDNj4SBj3798fNGgQ85kkSbVaXVlZqUl55N2ykZGRiYmJuKHtudLVZ91IkiJJypRNmbDVbBZFqpQcFmXCpkmVksNSc0xYlBpoqs3QbXj4GxWldw5s+bZdnREEALw4Juq1tz64c+XChoXTy+/cnPT+Egu+gT+pL7060Upo9/38+ORNq/oFDCdJVV1lucBGNCZmRtHFvJ8/f7euovytT1dxOCb6iW79BsZ+8EX1/dJfl88vOHV0cPCrIZPeAgBLa2HQ67G1D8v2/bjCO1D/nsoOTo1v1Svm/SWKFllO6j7/l8MAoK1d/+2flMHenfr2Mzivx2XKtxJ5BYi8Arg8vKMeIdQVrPj8cf37X8rMrCHJJoqSVVdT2dnhIpFQKNScjgKAs2fPKpVKtVqdlpYWGPg/DxONjo6WSqWzZs2aM2dOWVlZdXV1e7IemcsYN24cc5VTJpMFBAS8+uqrj6xicMDt7CstLY2iKIVCkZ6ePnbs2PHjx6elpZEkqVAosrMf/f7oDRs2/PTTT83NzY8siboG0dYOd0ZBQYGHp4FH47ZHzpm0h/x+OonsVtOQQHuZXKlQqEg1TdEslRpIkiJpgqIJSg0Ey+T6tdLjh9cPj3jDxcPAfnaKJEmV8nHfkUXT6pqH94UOThyOCQBIG+p0CphwTc0seA01lTb2TjpZLU2SxrpqOxd3pm5biSpla+3DMiuhHU9grV1d0dIMQJhZ8B45yHZOraG2qrz4hqO7l21v50s5Wb8s/WDGkjX9hwbpz8icZ0nT6nZOqq3e25rXYyGVCgKAzTUzUsap+dbLo17rcBcIoX+yDeuXJyQkaKcolcp7FRXrr1/n+vrCiRPhIpGzs7OLi4uVlRWbzQaApKSktWvXcrlcuVzu6uqakpKSk5OzYcOGI0eOMC18/PHHJ06cIEmyT58++/fvpyjKw8OjqqpKP+vcuXNGKp48eXL79u3JyckA8P777/v7+7/99tuvvfZaWVmZqanp+++//69//Uunirm57qUhgwPmcrlGRsI8HCQ5OTk8PPzhw4dKpdLf3//AgQNqtTokJKSystLExKRv374TJkww+HCQqKgozU0MW7ZsmTt3bkVFRe/evQHg5s2bo0aNqq2tfdo/xh5l2bJl8xcs7VjdO8UXBw9ucy97V4duDZVqvgWbYm40pWlaDTRNq2nmM8Hs5Ze3tJ7L/rmt0O2pSN35o05Kb7cXBgeP7aTunq6WZmnCtHC1Wu3Ut1/x5Xy+lfX/bU05m75fp1g3mhEDQzeEUIfph24AoFQqSysqkgsKRvTqZWtr6+zsrInbACApKSk3N3fjxo0NDQ0ODg56TQIASKVSsVjs7u7+WFmPzGVUVVWJRCLNeHSq3LhxQ6f833//ff78ef0Bt6ev0tJSMzMzJvACAJqmS0pKnJycDMaI6KnovNCty/e6qcvPnsyt1bsBU4fIyc2sM989//r0Dzuv8c5mwRcs/jm5qOBcxb1i/6Axga9EWtvad+sZIYRQZ+Byue6OjnN4PIVCwefzBQKBJk7SMDU1bStuAwCBQNDWbjAjWY/MZej0q1MlPz9fpzyzp01/wO3pSyewIwjCw8PDeBX03Orq0E1gI/IZGmTw/aTazMwtBDairhlSd2Tb25l5YQNCCCEjuFyuSGR4NQkJCfH39+/i8bTf9OnTdVIePnw4cqSB55yjf5quDt1MzS1ETm5d3ClCCCGkw8nJyclJdx/w86zbDRh1kq6+wxQhhBBCCHUYhm4IIYQQQt0Ghm4IIYQQQt1G5+51c2q+1antI4QQQgj9o3Ri6FZQUKD/lB2E2rJs2TJ8rhtCCCFkHF4wRQghhBDqNjB0QwghhBDqNp5B6Ca796ns7rsU2WL8HVxPSCKRlJaWdl77CCGEEEJdr6tDN9ntYC51zoR9tfWKZ6O4hCRJ7dz09PTx48drpyxZsmTbtm3aKYWFhRwOx9HRsXfv3kKh8M0335TJZAAgEomKiooAoKam5rXXXvPx8YmKirKzs/v22281dZkyN2/eJAhiy5YtmnQ7O7vKysoRI0YIBAIej8disZj3inzyySedcRAQQgh1jXqpdMfRo7UNDSqVykgx/bWGIZPJNm/e3OHe21ldv1h5eTlBEEKhUCgUOjg4TJ06tbGxUZNbV1fH5XK/+OIL5qvBxUsikRAEYapl4sSJbS1zzOJYWFhIEMTSpf997ebhw4cJgti5c6fB1jp8WNAT6tLQTVG11UzkDeZmBHegmQm/ueQjqVSqfe4tJCRk+/btj2zH3d29oqKisrKyrKzs3LlzBw4c0M6Nj48fMGDA/fv3r169mp+fv3r16uzsbJ0WLC0tExISampqtBPz8vKkUumFCxeEQqFUKpVKpWvXrn2C6SKEEHqWxBLJ0cuXvcLCfs/LK6uoYN4B+liamppWr17d4QG0s7rBYhYWFmKxWCwWFxcXCwSCqKgoTdaePXtefPHFXbt2MQtoW4sXh8Np1XLgwIFHLnN2dnbJycmar/v377e3t2c+67fW0aOCnlSXhm4Ey5xWN7LZwJadB5KUy6QSiUStVmsKFBQUrFy5EgC++eYbLy+v0NDQ4uJiIw3y+XxnZ2czMzNNyoULF27evLlq1SoWiwUAbm5uKSkpPB5Pp6K9vf2MGTPwpBpCCPVUYokk88qVfkFBSja7T3j4jqtX7+lFb/przcaNGwMCAgIDA1esWAEAb7/9dlVV1bRp0wBg9+7dPj4+3t7ea9asaatTiqLee+89f3//qVOnFhYWalfXafnvv/+eN29efHz8smXLtIvps7S0XL58eW5u7sWLF5mUnTt3rlu3jsVinT179ikcKS0ODg7W1tZXr14FgNbW1jNnzgQHBz/dLtCT69J3mJraTZPc+JnHp4nmpmZF01Xx9MF9Ce0CEomkpKSkoKAgKSkpNTVVLpeHhoZGRETotFNdXT1z5kyapktKSuRyufb/Ra5du+bv729iYgIABQUFdXV1AKAfugFAQkLCwIEDT506hX8uEUKohxFLJBlXrvQLCmoBaAaQstmCiIj1WVnzAdwdHblcLgDorzVisfjgwYMnT57k8XiDBg2aPHlyYmLisGHDkpKS6uvrly5dmpGRQVFUfHy8p6fnG2+8od/vkSNHJBJJYWHh+fPn16xZo6mu3zJzkXTLli2xsbEymYwp1tZ0RCKRj49PUVFRYGDg9evXpVLpsGHD4uLidu3aFRQU1FYtJo7UfJ01a1ZgYKDx40ZRVGxs7L59+3x9fbOysoKDgymK6nBrqJN09evngf82wd4tb66/Vhfk4NjfysqKOT2mLS0tLS4uzsvLCwDCwsL027C0tJwyZQoA1NXVff7551u3bp03bx6TpVAomK1vAHDq1Klr166VlZURBHH8+HGdRszNzTdt2jR37tzLly8/3SkihBB6tg7m5vaPiGgCaAIQA9TQdBMA19d37/nzc4ODRSIRGFprhELhwYMH09LSbt++XVVVVVFRweQCQEpKiru7e25uLgB4enqeOHHCYOg2YMCAzMzMxYsXR0VF7dq1q7q6mknXbxkAhgwZMnPmTADQLFtGMNu7AWDnzp1+fn5ZWVkikeiXX3754YcfmEhUH4vF0j43wcz6kSZNmhQWFvb111/v27dv8uTJe/bseZLWUGfo6tsUuFwuEEABR8Kd6+bmZmlpSRCETpnKyko7Ozvms0Ag0G/EwsIiNDQ0NDQ0Li7uu+++0/6fSr9+/c6dOyeXywFg4cKFO3bsGDRoUFuDiYyM9PPzww1tCCHUw7wxcmT+8eP1FMXEbVKSbK6qghMngoRCZoEAQ2vN9evX/fz8ysvLR4wYobN2lJeXm5qaKpVKpVIZHBzc1iZ9Ly+vixcv2tnZLV68eMKECZp0gy3b2tq2czpyufz8+fNDhgyhKGrXrl08Hm///v03btzg8XgZGRlt1SIIIlaLi4tLe/pydnYWCoX5+flnzpzRPnvSsdZQZ+jq0I0J1Fi0vJc139LSksMxcNpv/PjxaWlpJEkqFAr9Owy01dbWpqam+vn5aVJefvllDw8Pza06t27d2rt3r5EWNmzY8NNPPzU3N3dkMgghhJ5LVnz+uP79L2Vm1pBkE0XJqqup7OxwkUgoFFpaWjJl9Nea9PT0qKiozz77bPjw4bdv32aKMVcMo6OjpVLprFmz5syZU1ZWpjmdpmPr1q1nz55duHBhdnZ2Xl6eSqViqhtsWZvmuqQ+uVw+Z86cyMhIoVB47NgxJyenxMTEbdu2bdu27b333vvjjz+e7FAZEBsb++677wYHB7d1Pg89W8/mkbw0waLbvlYbGhoqkUi8vb0DAgK8vb31C9y9e1ckEjHX/uvq6pgtnwwOh7Nnz57ff//d09PT398/IiJi48aN+if2NBwcHJYuXar5TxhCCKEegMPhuDg4vOXjcy8rq6mykj5+PNLOztnZ2cXFRXMxR3+tiY6OzsjIGDduXGxsbHBw8Lp16+zt7QUCwYwZM3x9fYcMGRIYGDhw4MDLly9r77HWFh4e/t1330VGRkZGRn700UfOzs5Mdf2WtWtpetFObGlpYVa6AQMGmJmZ7dixAwB27tw5depUTZmYmJjU1FSpVGpwMCRJCrQY3IBk0KRJky5duhQbG/tUWkNPHWH8ubgFBQUenh3ch7hh/XKD7zBtvuFV3+Aotljv6enJ5/MN1mVuQXBycjI3N+9Y7+Xl5SwWy8nJqWPVUddbtmzZ/AVLH10OIYT0GFxxlEplaUVFckHBiF69bG1tnZ2drays2Gy2poD+WkNRVEVFBXM1UCwWC4VCmqZlMhmzWkmlUrFY7O7uDgA3btzQ6c7T05O5Sa6srMzBwcHU1JTpgqmu37J2Xe1eUM/wJIvaneKLgwcPbiu3y29TAKCc8kkzsYO5uZEzsQRBeHh4PEkveBkeIYT+4bhcrruj4xweT6FQ8Pl8gUCgHbeBobWGzWZrlg8muiIIQhNRMSecmM/5+fk63bm5uTGhm5ubm3YXTHX9lnVGgnEbaqdnELpZWVlZWVl1fb8IIYT+abhcbifdCzl9+vTOaBahR8LXzyOEEEIIdRsYuiGEEEIIdRsYuiGEEEIIdRsYuiGEEEIIdRsYuiGEEEIIdRsYuiGEEEIIdRsYuiGEEEIIdRsYuiGEEEIIdRsYunVcXV1dVVVVZ7QslUpbW1s7VlcsFht/uRlCCCGEuq9nELpVS6Wr09OrGhtVKlUHqstkss2bNwNAenr6+PHjH6vuokWL3n77bc3XixcvCgQCzbvn6+rquFzuF198wXxVKBQEQQiFQqFQaGtr6+3t/dtvvzFZpaWlw4cPHzFiRERExCuvvJKeng4Ad+/e1XlLhKWl5b179x63cQB45513KIoCgIyMjKioqOjo6EOHDqnVagD4+OOPJ/1HcXExAOTl5U2ZMmXSpEmnT58GgKysrG3btj3WYUEIoZ6qXirdcfRobUOD8RVnyZIlBv/l1Kw4nUSn3/Lycs3S4ODgMHXq1MbGRk2uzjoyYsQIgUDA4/FYLBbzhq5PPvlEIpEQBGGqZeLEiQZLAoBIJCoqKiosLCQIYunS/75t8/DhwwRB7Ny502BrnXc0UDt1dehWKZEkFxbOioj49fz5uxUVSqXycVtoampavXo1AISEhGzfvv2x6sbHxx86dEjTaXJycnR0tOatw3v27HnxxRd37dqlfdbqwYMHYrG4rq5uw4YNs2fPbmhooChq7NixcXFxxcXFly9fXrt27ezZs1taWox33c7GASAlJcXPz8/CwuLevXvTp09/9dVXFy1a9Nlnnx07dgwADh06NPs/7Ozsamtr4+Pj33nnnY8//njatGnl5eUxMTG//PKLVCp9rCODEEI9j1giOXr5sldY2O95eWVPtuJ0GQsLC7FYLBaLi4uLBQJBVFSUJktnHcnLy5NKpRcuXBAKhVKpVCqVrl27FgA4HE6rlgMHDrRVUsPOzi45OVnzdf/+/fb29sxn/da64iggo7o0dKuUSA5evvzOqFG2bPZHY8Yk3rhRUlmp83dp48aNAQEBgYGBK1asYFJWrlzZp08ff3//pKQkAHj77berqqqmTZtWUFCwcuVKAFizZk2fPn2CgoK2bt0KADk5OR988MHkyZNdXV3j4uK0rzwOGjTIxcUlOzub+ZqcnDxt2jRN7s6dO9etW8disc6ePas/+ODgYHNzc4lEkpGRwWKx5s+fz6QPHTp0y5YttbW1xufezsYBYN26dZMnTwaAvLy86OjouXPnDh8+PDY29ujRo7W1tU5OThEREeHh4REREVZWVikpKYMGDRozZsxLL700evToc+fOcTicMWPG7Nq1y/h4nn/r169e9tX/6X9GCKH2EEskmVeu9AsKUrLZfcLDd1y9ek8vevvmm2+8vLxCQ0OZixigtwZpVhwA2L17t4+Pj7e395o1a4z0q1PM4JKk368+S0vL5cuX5+bmXrx4kUkxvo48CQcHB2tr66tXrwJAa2vrmTNngoODn24X6CnqutfPV/wnbmPOcVmy2Z+Ghy87duxfAB69e3O5XAAQi8UHDx48efIkj8cbNGjQ5MmTaZrev3//9evXGxsbR48ePWnSpMTExGHDhiUlJaWnp5eUlBQXF//xxx/Z2dmurq5jxowZOXJkU1NTYmJiTk6Os7NzWFhYbm5uaGioZhjx8fH79+8fO3bslStXZDLZ6NGjmfTr169LpdJhw4bFxcXt2rUrKCiISf/rr7+4XG5ra2tqauqYMWP69OmTnJzs7+9PEISmzXHjxgHA3bt3W1patK/hai7Ftr9xmqZv3LjRt29fAHjzzTfffPNNAJBIJH/99dcPP/xQUlJSWlrq4eHBTCQhIeH27dsDBgxgWvP09Lx06VJcXJy3t3dKSsrcuXOf+g8RIYS6BbFEknHlSr+goBaAZgApmy2IiFiflTUfwN3RkVlxCgoKkpKSUlNT5XJ5aGhoRESE/hqkWXHq6+uXLl2akZFBUVR8fLynp+cbb7yh369+MVNTU50lydraWqfftmYhEol8fHyKiooCAwPbWkf0URT13nvvab7OmjUrMDDQ+OGiKCo2Nnbfvn2+vr5ZWVnBwcHMpp2OtYY6W9eFbom5uXMiI821UmzY7EkBAbvPn//IwkIkEgGAUCg8ePBgWlra7du3q6qqKioq8vPzY2JieDwej8c7c+YMi6V7mjAlJSUuLo6JZmJiYv78888RI0aMGjUqICAAAIYPH15aWqpdfsqUKX5+fiqVKjk5ecqUKZoGd+7c6efnl5WVJRKJfvnllx9++IFJP3v2LIfDUSqVly9ffvnllwHA1NRUJpMZnCOXy503b57mK3OJ87EaLysrs7GxYbPZmkYOHz68cOHCmTNnjh49+tq1a/Pnz1+wYEF9fb0mTtWEbr169aqurgaAfv36lZSUtPPnghBCPc/B3Nz+ERFNAE0AYoAamm4C4Pr67j1/fm5wMLPipKWlxcXFeXl5AUBYWBgYWoOYXABISUlxd3fPzc0FAE9PzxMnThgM3fSLvfrqqzpLUkVFhU6/RvTu3VsoFIKhdYQJQPWxWCztc2bMZB9p0qRJYWFhX3/99b59+yZPnrxnz54naQ11qq4L3WaOHPnriRPvh4RY/icuuS4Wp+TkvGZjo312auzYsXPnzh0xYsSpU6cA4O7du5rQRCAQcDi6A75///6gQYOYzyRJMnv5LSwsmBQ2m61zu6Wzs7Ofn192dnZycrLmjyZFUbt27QoLC9u/fz8A8Hi8jIyM8PBwAFi3bh2zGa6oqMjX1/eHH37o16/f559/rlKpTExMmOrjx4//6KOP+vTpw+FwtM/wMRHYYzVeU1OjPcdvvvkmKyvr8OHD/fv3BwBfX19fX18AsLW1nTRpUkZGRmBg4O3bt5nCtbW1TK6pqSmPx3vcHxBCCPUYb4wcmXT8uEtoqJTNrqFpKUnKqqvhxIkgV1fNilNZWalZPgQCARhagzTKy8tNTU2Z663BwcGakE6HfrGWlhadJUm/37bI5fLz588PGTLE4DqivQ1OG0EQsbGx7TlK2pydnYVCYX5+/pkzZ3777TfN+tix1lCn6rrQTcjnR/fr982xY5+Ehdmw2dfF4l9PnBhjYSEUCi0tLZky6enpUVFRn332WWNjIxORjBs3btOmTe+++65CoQgMDCwoKAAAzYlcpsDPP//8zjvvqFSq9PT0r776itkxZkR8fPzy5cvZbLafnx+TcuzYMScnp8TERObr6tWr//jjDya60vD29uZyuY2NjcHBwW5ubps3b2ZOsGVlZd2+fXv06NE6p/c0HqtxDw+P0tJSkiQ5HE5mZmZKSkpeXp7m1OC2bdsyMzOTk5NJkjx16tTixYttbW03bdpEUVRzc3NKSgpzm2pJSQkTw3U71la6Z1XXr19t8PPzplGiftZDQAj9RLgXmwAAIABJREFUlxWfP65//x2ZmZbh4U0AsupqKjs70s5Oe8UZP378Tz/9NHv2bJIks7OzhwwZor8GwX9WnOjo6OPHj8+aNYvFYn3++ec6zxPQ0C+m6U5Dv1+DTcnl8jlz5kRGRgqFwoyMDP11pK3QrcNiY2Pffffd4ODgts7noedE192mwOFw+jg4TOvff9mxYznV1dtPnhxjYeHs7Ozi4qL5b0d0dHRGRsa4ceNiY2ODg4PXrVsXGhra2to6YMCAESNGfPzxx3w+397eXiAQzJgxg6kyevRoiUTSv39/b29vHo83fPjwR45k4sSJhYWF8fHxmpSdO3dOnTpV8zUmJiY1NVX/Jk0bG5vz589zudw9e/b8+uuvffv2HTRo0IcffpiYmKi99U3HYzVuY2PTr18/5pEiJ06cuH79ur29vUgkEolE8+bNmz59ulgsHj16dJ8+fSwsLEJCQvz9/YcNG+br6+vt7R0RETF48GAAuHPnTjcN3Rolas2vhK9WLVjwmf7n5/DXsz5sCCFdHA7HxcHhLR+fe1lZTZWV9PHjkXZ2OitOaGioRCLx9vYOCAjw9vYGQ2uQZsXx9fUdMmRIYGDgwIEDL1++3FbY1J5i+v1qa2lpYf7NHzBggJmZ2Y4dO6Dd6wiDJEmBlkdek9WYNGnSpUuXdM6xdbg11HkI449vLSgo8PDs4IbEDeuXJyQk6CQqlco7lZV7rlwZzePZ2to6OztbWVlpb+2iKKqiosLFxQUAxGIxc42/qqpKJBJpitE0LZPJ+Hy+plZpaamZmVnv3r07NtSOuX//PgC4uro+3WZ/+umnlpaWRYsWtVWgpqaGIAjtDQfV1dUmJiY2NjbM1zFjxuzZs6fb7UhYtmzZ/AX/fbDQ+vWrpRJpwlerdD4/h6ytWBjAIfRstbXilFZUJBcUjOjVy+CKQ9N0SUmJk5OT5ilR+muQ9oojlUrFYrG7uzsA3LhxQ6c7T09PZiONdjGD9PtFPY/OovZY7hRfZM7FGNR1F0wZXC7Xo3fveRYWCoWCz+cLBALtv0UAwGazmb8zAMDEbQDg4OCgXYYgCO24DQCM/A3pPE89aGP861//eu211+bPn9/WKWs7OzudFM0DeADg5MmTYWFh3S5uQwihp47L5bo7Os7h8dpacQiCYO5y09Bfg7RXHObME/M5Pz9fpzs3NzcmdNMuZpB+vwi1X1eHbgDA5XIxsDDCxMRk+/btra2tHdtt4Orq+tJLLz31UXW9BQs+M/gZIYTar/NWnOnTp3dGswg90jMI3dAjOTs7d7juCy+88BRHghBCCKHnCr5+HiGEEEKo28DQDSGEEEKo28DQDSGEEEKo28DQDSGEEEKo28DQDSGEEEKo28DQDSGEEEKo28DQDSGEEEKo28DQrePq6uqqqqo6o2WpVNra2tqekmKx2PirzBBCCCHjOm85Y7R/UTMC1zuNZxC61UulO44erW1oUKlUjywsk8k2b978uFltWbRo0dtvv635evHiRYFAIJfLma91dXVcLveLL75gvioUCoIghEKhUCi0tbX19vb+7bffmKzS0tLhw4ePGDEiIiLilVdeSU9PB4C7d+9aWVlpd2dpacm8SP6xGgeAd955h6Io5rNYLI6JidFkffzxx5P+o7i4OCsra9u2bY91EBBC6J+jWipdnZ5e1djYnhWn/Q4dOjRz5kztlOPHj48bN649ddPT0ydNmvQUB6NRXl6uWVkcHBymTp3a2NgIABKJhCAIUy0TJ05kqhhczgBAJBIVFRUVFhYSBLF06X9fxHn48GGCIHbu3Ml81Vnabt68qfPiSoaRRS0vL2/KlCmTJk06ffq0Tq2MjIyoqKjo6OhDhw6p1Wpc7zS6+m0KYokk48oVr7Cw37Oyxvv4uPbubfx1T01NTatXr547d+5jZbUlPj7+lVdeUSqVTKfJycnR0dGat//u2bPnxRdf3LVr19dff00QBJP44MEDpkBGRsbYsWOjo6MFAsHYsWPnzJmzYMECAMjPz58wYUJxcbHxrtvZeK9evVJSUvz8/CwsLAAgKSlp586dRUVFmnYOHTr0888/M5/t7OxiYmKGDRs2efJk4+/LQ8i4xsb683+fYnE4HA6LwyKe9XBQ1yHVNElSapIaNjzY2trmWQ/nKauUSP66fHlWRMSW7OwYb2/3R604PYCFhYVYLAaApqamRYsWRUVFnTlzBgA4HI7+eS+KogwuZ8wCxLCzs0tOTl6+fDnzdf/+/dpvzTa4tOkwsqjV1tbGx8f/8ssvFhYWkydPPnv2rOYFsvfu3Zs+ffpXX30VEBAwY8YMMzMzXO80ujR0E0skmVeu9AsKagLoEx6+IyNjOk33cXTU/F2iKOrDDz88d+6cj4/Pp59+6u/v//bbb1dVVU2bNi0pKWnjxo07duwgCCI6OvqLL77QZM2YMePIkSPr168HgEWLFkVERAQHB+u0w7Q/aNAgFxeX7OzssWPHAkBycrL2ebudO3du2rRpypQpZ8+eDQoK0hl8cHCwubm5RCI5d+4ci8WaP38+kz506NAtW7bU1tYan3s7G+/Vq9f/Z+/O45o4+seBfzYJ4Qh3CCCEU27kxoNqLQgIVQGLAh6o9ahV+63aaj1+tlp9vGqr9bHaWmsVi0gVFLSAiICKKLUIggooglzKmQAJRwJkk98f67NNkxDRinjM+w9fyezsZDai+2F25jO7d+8+cuQIUd7U1OTm5ib9U25qahoUFCSRSMh/JAEBAXFxcc8UwiKItEvZKRgVw7SYXXTdPooajlEAUPT2lpBQJWIVsVCjj3er6LoYl/j7D2jc6LXQwOMlFRcvGD9eHWBFQMD2jIy5AMOlordZs2atXLly1KhRS5YssbCwWL9+/YULF65evbp169YTJ05s27YNx/EFCxasWbMGAORLCJmZmf/973/j4uKItwsXLpw+ffr7778PAGFhYVu2bHFzc5PvW1tb2wcffJCfn//uu+8eO3aMTqfv2rXrxx9/ZLPZc+fOXbx4cXZ2tsx9jcFgnDhxorW11dbW9ssvv1R4j5OmpaW1ZcsWIyOjwsLC/jZITE9PV3g7s7CwIOsYGxszGIw7d+64uLj09PTk5OT4+vqSR5Xf2ghKbmrJycmurq4BAQEA4Ofnd/369aioKOJQXl5eeHg4cWuLjIw8f/58UFAQut8RXt4D0yfjbePGdQN0AvCpVO2goO9LSqrq63t7e4k6f/zxB4/HKyoqWr58+a5duwAgJibG2Ng4NjaWy+UmJSVdunTpxo0bcXFxFRUV5KGOjo66ujqihUePHvH5fPl2SNHR0QkJCQBw+/btrq4uPz8/orykpITP548ePToqKor8RwgAZ86cSUhIOH78+IcffhgQEGBpaVlWVubu7i7960VISAjxg97d3R0mhXwUO/DGJRJJaWmptbU1UWH16tXLli0j61dWVlZVVdnY2Nja2n799dfEU38HB4f09PQX8VeEvI3S0xOBRuMyLFvVTYVUBo5RUdz2NsFwjCqkMlrVTNo0LSkqKunpiUPdpRejnsc7U1w8f/x44qmKFpX6xcSJB8vKKhoayDuOpaVlVlYW8STuzJkzAJCWlubo6Nja2rpx48azZ8+ePXs2ISEhKSlJvoRoITMzc8WKFfv37yfHgby8vE6cOAEADx8+LCwsdHFxUdi97Ozs1atX3759u7y8PDc398GDB8ePH8/MzMzOzj5+/HhJSYn8fY2YI+Tn5/f5558rucdJY7FYzs7ORJyE4/gyKYWFhQCg5HZGwnE8MjLy1KlTAJCRkeHr60ujPRn06e/WJk35Ta28vNzJyYl4bWtre+vWLfLQzJkzibEVHo935syZ0NBQQPe7/3l5oVtSbq6lj08HQDsAB6BZIukAoLu4nMzP5/F4RB0nJ6cLFy6sXbtWJBLJ/BwwmcykpKTU1NStW7c2NjbW19cr+Swl7cyaNevcuXN9fX2JiYmzZs2iUJ58A8eOHXNzc8vIyGCxWKdOnSL/bV+7du3q1au5ubnFxcXEKLGqqmpXV5fCz6XT6culkL/bDbzxmpoafX19KpWqsH0Gg7Fy5cry8vI///wzOTk5MzMTAOzt7SsrK5V8GwjSn5wr6XQNzRZN6z6K6lD3BRlivRS1FoaVqobmtdzMoe7LCxCTmxs1dqy6VIk+lTrdw+NEcTF5x3n//fdzcnLu3LkzduxYgUDA5/MvX74cFBSUnJxsZWWVm5ubl5dna2ubnZ0tXwIAf/31V2ho6JYtW6RjncjIyPT09N7e3tOnT8+YMYO8xcjw9PQcO3asvr6+l5fXw4cPk5OTo6KibGxs6HR6RETE77//rvAsb2/vhQsXamlpKbnHyRg2bBiTyQQACoXiK4XFYoHS25m06dOnJyYmAsCpU6ciIyPJ8v5ubdKU39Q6OjrIx696enrynTl37py3t/fs2bOJcRZ0vyO8vNDtg7Fj87OyWnGcC9AskfBFos7GRsjOHsdkkqNTdnZ2hYWFhoaGa9eunTp1qvTpJSUlbm5udXV1Pj4+rq6u/X1KW1ub8nbYbLabm1tmZmZiYmJ0dDRRiON4XFwcg8FISEgoLS1lMBhkXL979+59+/YdPHgwKSnp6NGjAoHA3t4+OztbesZrWFgY8S+ZRqP5SyF+WJ+p8ebmZvIXGnkuLi6rVq2iUCgGBgbTp08n2lFVVWUwGAP8W0AQklDYLZKIWhkWYrTSHAEAADFG5WqYC/sEAkH3UPfl31o4duzh7OyO/02NB4ASLjf56tUJmprkHcfHx6e0tPTSpUu+vr7vvffemTNn1NXVDQwM6urqVFVVe3t7e3t7fX19p02bJl8CAAKB4Lvvvvvqq6+kQxYDA4PRo0dnZWVJ32LkWVlZES8oFIpEIqmtrTU0NCRKRCKRWCyWrkzc14jGiRdK7nHSBALBjRs3vL29AQDDsEgpxJQyJbczaWw2m8lk5ufn5+TkBAYGEoVKbm3SlN/UPD09a2tridctLS0yg5Q7duz4/vvvz507t27dOmJoEN3vCC9vrpuOpmaIo+PRCxe0Jk7sAOhqasIzM4MNDZlMppaWFlHn0KFDWlpaq1at+uSTT8zNzYmfJ2JZSlpaWmho6Lp169rb28vLy4n6xCEmk1lbW4vjOJ/PLygoUNiOiooK2ZPo6OgtW7ZQqVRyCsLFixdNTU1jYmKItzt37jx+/PjEiROl++/g4ECn09vb2319fS0sLH766afly5cDQEZGRnl5uZ+fX1VVlcILf6bGbWxsqqqqRCKRwp/1X3755cKFC4mJiSKR6PLly2vXrgWAysrK/sbkEUSJnCvpEi2WCFORLvx149NX4ekb08eFVWvrs1TVNZ5aGXm9iCh0XFUn92p64MTwoe7Lv8LU1Ay3t99x8eLqwEB9KrWEyz2cnR2goSF9x6HRaKNGjTpw4EB6erquru7atWvnzJkDAOHh4VlZWYsWLaJQKBs2bNDR0ZEvUVNTe++995YtW3bhwoXt27d//fXX5EfPmjXr+++/FwgECme5KRQSEvLjjz8uWLCgr68vLS2NmA8jc1+TpvweRxAIBIsXLw4ODmYymeRAo4z+bmfyNSMjI5csWeLr60s+TVJ4a9u8ebPMicpvaiNHjjxw4ACO452dncnJyb/++qtIJCotLR0xYsTFixeTk5Pz8vKkRy7R/Y7w8n7bptFoZsbGc52dqzMyOhoaJFlZwYaGbDbbzMyMnCUwceLEb7/9Njg4ODg4eMWKFSoqKkZGRtra2vPnzw8PD09PTw8JCYmMjPT19d29ezd5yMvLSyQSOTg4TJ06lXhqLt+OdE+mTZtWVFQk/fvQsWPHZs+eTb6NiIhISUnh8/kyl6Cvr3/jxg06nR4fH3/48GFra2tXV9dPP/00Jiamv5U1z9q4vr6+vb09mVJExrx587hcrp+fn6WlpYaGxoQJEwCgoqIC/Sgjz4NCEajILtSyc9d18NR19NJz9NJz9NRz9PzfCy89R089ew9dO3ddSwetkvxcfutTluYgr6luFR0J9toPxNJoNEtj4zmOjpsvXrza1HTk0qUADQ2ZOw4AvP/++z09PcOHD/fz83v48CGxvMDFxcXb29vT03PEiBHFxcWhoaHyJWQL+/bt++9//1tWVkaWhIWFXb9+fe7cuQPvrZ+fH4/Hc3R0dHBwYDAYY8aMkb+vSVNyj+vu7maxWCwWy8nJSU1N7ejRo0S5SCTSlkIMng38djZ9+vRbt27JPC1VeGtrbm4mP8XOzk75Tc3d3X306NEuLi4ODg5BQUFeXl6tra1ubm4dHR3Z2dklJSVGRkbE5RDBJbrfETDlCe4KCgpsbD2fr+m932/ZtGmTTGFvb29VfX1iQYGPnp6BgQGbzdbR0ZF5Cl5TU2NsbKyq+mTyjUQi6erq0tTUxHG8vr6eGOblcrlMJpM8BABNTU3SK5bl23nhiGFec3PzF9vs/v37u7u7pVcwyWhubsYwjJipAAABAQHx8fHk29fX5s2bV3628en1Xj26OpR2nvjp9V4xly6ncLRscOwfvwoPM7QKdaIBgFgCuJj4U4KLQSQBEQ4isaRXBJfudx/f8+mYoA/MbBxl2rwQf8jIzNp9XEDtg5Ltiz8Imb988tz/e3mXNJgG6dLIZhUeLb2Z+8OaRXO+2PbO+9PIwkeV97YuCg1b+Nn70YOyzo4qERl0VPj5ThmMxgdPf3ecioaG+Nu3/RiM/u44/eHz+Vwul3yyqbBEIRzHbW1t//rrL+L5ZmlpqUwFW1tb+UEyAKiqqlJTUxs2bBhZIn9fk/YC73GDdDsjPPWm1tTUpKKioq//JDfNmjVrvvnmG4UR5Ot1v/s3N7WKB4VeXl79HX3Zed3odLqVicliBkMoFGpqampra8v/K5JZ3oJhGBGcUalUMuMLMe+SPAQA8j/fMu28cIP0U/7xxx9Pnjx55cqV/eUfIqdEAMClS5cCAwNfl59j5JVCo2A4JvuvD5NIOrpFtc3dfbiESqXoMFQa2oR9IglTR72hVdDTJ7Ex1cb7RP21efbw9x7jJ7qPC9A1MAr/+IvhLv3+1/PaGaRLI5tVfFgikUjEAP82g3x3W1NbzX2Fh/QtHNT1DKVLcIz6xuT2o9PpNsOGLdfQUHLH6Q8xbqS8RF5BQcGePXsmT55MzkvLz8+XqWNhYaEwdJMPCpXEbfBC73GDdDsjPPWmJn2ZXV1dU6ZMURi3ofsd6WWHbgBAp9PRV6+EiorKkSNHenp6BpI60tzc/J133nkJvULeULL/P4olElwCwj5xTy9Oo1HV6DRBj7hHJNHsE3f1iHt7+joEgj5F68gAIGbHGolE/OD2zT+O7hsVEHLr6kWGti6drvb7vi2jAkLu3sjh1NdNnPkRlUZLj/uZrqo2d812Eys7ALh9PfuPmH381pbhI7xmfbZZU0dPYftXU05eSY7r7uywdnafOGORua0zAFTfu3Pm4Decxsd2biPfC5tl5eSusLDuQenv+7Y8fnhf18AoIGLBuCmRRLWTP/zHf9o87wmTm+qqYnauHTc5YrizZ+x3G0YFhJTdvNZQXeH+7sSpH606tnOt/KUNd/ZsrKmUr4xh2N0bV87++r2gs2Pa0rUZvx8e6T9lQriCx2fS31jI/OUKLxAAWh7X/veL+Zz6Om+/SaELV0q3MMCvTk2b2VZ7v7dLdsITnaEzzEX+P5A3JG4jvOQ7jqGh4bJly8aOHUuWzJs376V9+qvpmW5qDAZj/PjxCg+h+x3ptZ/Q8EZis9nkRFrlhg8fPnhPhJG3kBjHcTH0icQ9Iklvn6gXl/T0SXp6RT0iSU+vuLevV9gjwkWKlzIYsi0BQF2DoW80rEfYXVVa1M5pEnR3Vt4tTPxxZ69Q0Fj7MG73V7/v3azO0Ky+d/vkD1sB4PHD8p++XCbs6nT0Gnsn79L+dR8pbLypripu91cYheLxbuDta9kx29cAQBe/fe+quY8f3rdydC24kv7Duo96hAL5wrbmht0ro2vu33V9x1/Q1XF895dFuZkAIOjqqCot4nGbAaBXKKgqLWpraRQKuivvFp7av62LzxMKui7EH6q4c1PhpQGAwso9QsHBrz5peVxrZGZ1dNsXVaVFbU2KkxlJN6vwAgkXfv8Fwyi4SHQ+7uCtnAyyfIBfHQBQqDQT17Hy5SZu4yjUIfgF/g1mZmYmHbchhIHf1JRA9zsSCt0QBPkbjouJyW24GETiJ/PbRDj04SAiS0S4wnMnzVmGYRS2jePYSREyhwIi5n+257fxoTNEfb2LNu394offWaYWjbUPAeD6+USJRLxgw3czV349emJY9b3b9VXl8o2LxXjkp18u3frju1OiNHX1W+prAeDmpTRhd9f0Zes/2vTfuV9sd/D0aec0yRdeiD8k7O6M+OT/Ldjw3Zr9pwDgSvJx5d+Dx/igVf+NW7r1JwC4++cVJZcmX7m86Iaor3fmyk2ffnN4xoqvAKC/KcXSzSq8QMK7U6KW7/p1zYGTGEa5eyOHLB/gV0fQs3DU0P/H5pIMAxN9C9nZigiCvPrQ71sIgvxNLBLhYhVcArgYMEzSJ5GIngRt5AsQi/qd69Yf4kGehpYOAOizhgGAmgZD2NUJANzGRwDwzSd/r1zjNDwiHqRK0zcyrbl359yve/t6hSp0NSIY4jY+BgBTazsAGOk/ZaT/FAC4lpogU3jyh/8AgLWzBwAwjU219VnNj2tk2pf8cz6Zua0TADC0dACgr0eo/OpkKj8ozgcAC3sXABg+YqBT4hReIIFoStfASJdlVHm3YMK0J89eB/jVETAMM/OaUJ4ZT7SMYRjbw3eAfUMQ5JUyiKGbl5dXSkrK4LWPvGGUrKZBXhoxLurDoQ+HPhyXSEAkgl4cRLi4VyQW4WIRLunDJfizh24KETORGdp6APD597H6RqZEubY+U75y5qlfb1w8G7Fs/biQGfu+mF9z/y4ADLMYDgBdHXwAqL53p7qs2MvvfflCIlhpflRtZuMo6OroaONa2DsDAF1VDQCIqXsdbdx/9u0ZnkjIVDa1sgUATsMjY3NrJcNgA7lAQvPjagDoEQp43GbP8UFk+QC/ur/rG5josG3b68oBQNfMjmFgMsC+IQjyShncUTdyrS+CPFVra+tQdwEBUR/eJwZBr6i3p0dEwQRCYW9PT5+oTyCg9vb14H2iPlyC9/PAFAAwCsZtfNRY8ww71dh7jL6WlnA15eTYSREpMfuaH9V8/Vs6XVVdplqPQAAAZnbO5UU3HpbcolJpAOA86l0Mwy6c+LmvR3j21z1tLU3jQqLkC1d8e/RKclxa7AGJRHIr54JEInYfNxEADNkWAHA9/bQaQ/PiycPK+znwS3Me/R6GUU7u21IVEJKXnjTAZhVeIOFaaoKugXHFnZtiHHfw+nse1QC/Ommm7u/x6x8SL556IQiCvJrQXDcEQf4mEuEiEa5KxVWoYioFF/X10ii4ClUi6uulUcQ0FQouBgneb+g2ZuIH9VUVpw9+M6APwzAAGBUQOnnu/1Xcvrl31by6irLpn6zX0FSQf+Gd96fpMA33rIxOPLDd3mOMSNTHaajT1mcFRMy/V5j344YlnPq6uV9sp9FU5Ast7EdE/t+XTbVVh7esLLh83sv3/QnT5wKAli5z3JTIlsc1p37Y6uD5lJVrA780TR29iE/WC7u7rqaccn83EACULAUgm1V4gUQdS0e3Mwd33cxOtXHx8nzv71G3AX510lQ1dVh2Hiw7DzrjKTURBHllDWJK3qs5qWjUDRm41tbWd8dPHupePI/XNCXv1ZzUx5r2MoXUHtUJnkZdgl6hsE8kluASSp8YRCJcJMFwCYaLAaOolNytyjr3vcKUvACAi0Sivt5n3SNLIhE3P65lGpvSaCoAwG/jyFRQoauqaTDamhvIh4Ok7g5eO6fJ0MyKOLe/wr7enpbHNTpMQ4a2rvTpwu5OAExN4+kbIw7w0tpaGuselJpY2RkMY9+6mvHzxv+bv36X48hx8lekztCSblYiESu8QAAQifq6eO06TAVJLmS+uqcS9QoxACpdTUkd0877r90/RoUpeRFkCL0hKXn19PQcHR3Ly8s5HNn/l2WYmZmZmZn9+eefMrvwIggyqDitgrTrdTix0FQikYhBIpGIJcRrjJjLL+juUdIClUaj9r/bdH8wjGLEtiTf5pyLl6kwzGK4l+8khWGNhpYOsQBCeaEKXVXhFH41Dc0BdnKAl6aqrhH77f8Ti8Wm1vYPivO1dPXtPMb0d0XSzWIYReEFAgCNpqIwbgO5r+6paEqDNgRBXn2v6ApTJVuCIq+L+/fvA4CdnR3623yNiMR11y7ltsgtwJTBMrVQG8y956fM+3TwGh9sGpraa39MvFdwvb76gfu4AM/3gnUNjF7rK0JeaxwORyQSGRsbP73q8+Lz+aqqqv8y6RqXy9XX10f3i4EYmtBNS0vL2tqaw+GwWCwcxx89etTW1gYApqamxsbGfX19QuGT1fhsNtvIyEgikXA4HGKTNSMjI2Nj4+rq6t7eXjs7Ow6H8/jxY/lqbDbbwMAAw7C2trb+Nr5FBpVQKCwqKrp79667u/vw4cOHujvIgGjrs5xHjhOOeMo0CTV1DW19tCdKvwyGsYkNG5Ah18TnH83N/fCdd5gMhsz2U1lZWXv37v3jjz9eQjfWr19vbW390Uf9pk0eiLq6OnNzc2ImkoqKir+//4EDB3R1dXk8nq6urvReBVOmTDl9+nRVVdXMmTO5XK6Ghoauru7atWsnTZoEACwW6+rVq0Kh0MPD46uvvtqyZQtx1rlz58LCwmJiYogdIDgcjomJyZo1a7Zu3QoAZWVlfn5+jY2N8h1bsGDBb7/9BgBcLnfJkiUJCQlEeV5e3g8//NDb2/vpp5++957sypj09PQff/yRRqPNmzcvJCQkIyOjo6Nj8eLF/+YreksMTehGpVIZDAaVSm1sbDQxMTE3N29ra1NXV7ewsODz+Twej81mA4BDzOgwAAAgAElEQVSmpqa5ufnjx49xHDc3N+/r62toaGhpaTE1NbW2tu7p6VFRUWlqamIwGDLVurq6zM3NKyoqMAyztLRsb29vb28fkitFOjs7c3Nz7927N3LkSOndV5FXk6q6Bst0cDf/RZCXpoHHO1NcvCgo6GBmZoSDg9WwYQPZi+lVpqGhweVyAaCjo2PNmjWhoaE5OTkAQKPRenr+MZMBx/FJkyYtXrz4s88+A4D8/PypU6c+ePBAQ+Pv8XJDQ8PExEQydEtISJDeTjQ+Pn7UqFFxcXH/+c9/lAyGJScnu7m5aWhoxMbGHjt27N69e0R5S0tLdHT0zz//rKGhMWPGjGvXrpG7kANAdXX1vHnzvv76aw8Pj/nz56upqUVERIwePXrGjBlP3SgWGcoVptXV1fX19Vwul8FgYBimp6cHAPfv36+rqyMiLSaTKRaLieluOI4Tv2qIxeKKigp1dXVdXd3KykqRSGRgYCBTjfghY7PZDAajpKQExW1DjsPhpKenX7lypbOzc6j7giDIW6GBx0sqLl4wfrwBlboiICCmtLSyoaFX0Q68J06ccHZ2dnBw2LVrF1m4b98+Dw8PT09PYsxp5syZWVlZxKFp06YVFRUpPEvGjh077Ozs/P39Hzx40F/LCxcuPH/+PHEoLCyssLBw2bJl7u7us2fPLioq6q9lLS2tLVu25ObmFhYWKqyQnp5OoVBWrnyy6e3IkSMPHjzY0tIiXcfY2FhXV/fOnTsA0NPTk5OT4+vrSx49duzY7t27KRTKtWvX+usGAOzevXvGjBkA0NTU5ObmRpYnJye7uroGBAS88847fn5+169flz4rLy8vPDx86dKlY8aMiYyMPH/+PI1GCwgIiIuLU/JZCGEoQzccx0Fqixg6nS6RSIhC4oGpurq6RCLBMIxCoTQ0NJCLG3AcJ84iwjX5ajwer7S0tKury8DAwNXVFQ32vAokEkl1dXVqampHR8dQ9wVBkDdcPY93prh4/vjxRJo7LSr1i4kTD5aVVchFb62trRs3bjx79uzZs2cTEhKSkpIAgMvlJiUlXbp06caNG3FxcRUVFV5eXvHx8QBQVVVVUFBgZmYmf5aMgoKC2NjYlJSUPXv2XL58mShU2PKJEycA4OHDh4WFhdXV1Twer6ioaPny5UqCQgBgsVjOzs7EKBeO48ukFBYWlpWVubu7S4+WhYSEWFj8Y0wdx/HIyMhTp04BQEZGhq+vL+1/C3FKSkr4fP7o0aOjoqKUhFMSiaS0tNTa2hoAVq9evWzZMvJQeXm5k5MT8drW1vbWrVvSJ86cOfOnn34CAB6Pd+bMmdDQUABwcHBIT09XcskI4RXK69ba2ophGJvN1tHRIQbYOjs7qVRqV1cX8aie3L/F1tZWKBR2d3fb2NhQqVT5akZGRlZWVo8ePbp165ZYLJYeH0aGCoZhTk5OU6dO/febECMIgigXk5sbNXasdHpifSp1uofHieJiHo8nXTM5OdnKyio3NzcvL8/W1jY7OxsAmExmUlJSamrq1q1bGxsb6+vrZ82alZKSguN4QkLCnDlzzp49K3+WjNTU1KioKDs7Ozc3t8DAQKJQvuXIyMj09PTe3t7Tp0/PmDFjxIgRFy5cWLt2rUgkeuoQ1LBhw5hMJgBQKBRfKSwWS1VVtaur66lf1PTp0xMTEwHg1KlTkZF/T9A8duyYm5tbRkYGi8U6deqUwtFKAKipqdHX16dSqfKHOjo6yMevenp6Cjtz7tw5b2/v2bNn+/n5AYC9vX1l5TMk9H5rvUIrTPl8fltbG5vNNjEx4fF4qqqq9fX1KioqZHxGPPc0MzPT0NAoKysTi8XOzs4WFhbV1dWqqqrS1cRiMYvFcnV1xTCss7NT4bRK5GVis9ne3t46OrIZHJChZdp5f6i7gCCDYuHYsYezsz+ZMEHrf1FFCZebfPXqZH19gUAgXbOurk5VVZUITXx9fe3s7ACgpKRk0qRJS5cu9fHxIQbMTExMXF1dr1y5curUqfj4+BMnTsifJaOhocHV1ZV4Tc7fkm/ZwMBg9OjRWVlZiYmJhw4dsrOzKywsTEhIWLt2LZPJPHv2bH/XKBAIbty44e3tDQAYhkkHXgBgb2+/YcOGvr4+cnFGWFjYihUrJkyYIF2NzWYzmcz8/PycnJxff/2VGFnEcTwuLi4wMJBYcMBgMNLT021tbeX70NzcTOsnY46np2d5+ZON4FpaWlxcXGQq7NixIyMj49y5c46OTzJEqqqqMhhPz7CIvNTQra2tjXzaTb6orq4mV4CWlZXR6XSRSESmc6usrKyqqlJRUSEnYNbW1hJrSKUbka929+5dKpVKoVD6+voG/cKQ/unq6o4cOdLEBO2W+MopKChAKUwRhTZv3vzapeSVwdTUDLe333Hx4urAQH0qtYTLPZydHaChwWQyZQb+w8PDs7KyFi1aRKFQNmzYQPyGmZaWFhoaum7duvb2djL+mDNnzq5du9TU1GxtbRWeJSMsLGz//v0fffSRSCTKzMwkYiyFLc+aNev7778XCARubm6HDh3S0tJatWrVJ598Qiy8k1kYSxAIBIsXLw4ODmYymTLjiARfX18LC4uffvpp+fLlAJCRkVFeXk4MbsmIjIxcsmSJr68vuYbj4sWLpqamMTExxNudO3ceP3588+bN8ufa2NhUVVWJRCL5AG7kyJEHDhzAcbyzszM5OfnXX38FAJFIVFpaOmLEiIsXLyYnJ+fl5VEofz/9q6yslI/wEHmv0ANTQm9vr0waXrFYLLNwRiH5ajiOo7htCKmoqHh5eYWEhKC4DUGQl4xGo1kaG89xdNx88eLVpqYjly4FaGiw2WwzMzOZBYwuLi7e3t6enp4jRowoLi4mJl2Fh4enp6eHhIRERkb6+vru3r2bKMzNzSUSZyg8S4a/vz+Px3NwcPDw8HBwcCAKFbYcFhZ2/fr1uXPnAsDEiRO//fbb4ODg4ODgFStWyMRt3d3dLBaLxWI5OTmpqakdPXqUKBeJRNpSAgMD6XR6fHz84cOHra2tXV1dP/3005iYGIULRadPn37r1i2Zp6WzZ88m30ZERKSkpPD5/ObmZvIjiIFGfX19e3t7hRm43N3dR48e7eLi4uDgEBQUROwN0Nra6ubm1tHRkZ2dXVJSYmRkRFwOEV9WVFSg0G0g0EZYyKsCbYT1kqGNg5D+/JsNfIaKwp/n3t7eioaG+Nu3/RgMAwMDYi61wolZfD6fy+VaWVmRJTiO19fXE/ksuFwuMaVMyVmlpaUyR21tbWk0WmVlpampqbr63/Pu5FvGcdzW1vavv/4yMDAg6tTU1BgbG//LJLcE4jmVubn5v29Kof3793d3d69Zs0bh0aamJhUVFelgYM2aNd98843CIDIgICA+Pp7FekNyRr4hG2EhCPLq66r+AsQdauZ7KFT1wctszuPxWltbpe+UCPLC0el0m2HDlmtoCIVCTU1NbW1thXEbABAjSdIlVCqVzEOmMG6TOSs/P1/mqIWFBTFdW6ZcpuWCgoI9e/ZMnjyZjNuIcwd0hQMweEEb4eOPP548efLKlSsV5syTThQHAF1dXVOmTFH4H8ulS5cCAwPfmLhtUL1yD0wRBBlCXeW+dPy6CvVOz23bdm6lSCSSPpqWlhYWFiZdsn79+l9++UW6pKioiEajmZiYEGvfZs6cSawsY7FYRBaD5ubmyZMnOzs7h4aGGhoafvPNN+S5RJ2ysjIMww4ePEiWGxoaNjQ0+Pj4aGtrMxgMCoVC3DJXr149GF8C8iah0+ksFsvMzExPT6+/uO2FmCdngDPuDQ0Nly1b9sMPPwxe3waViorKkSNHBjKvCQAYDMb48eMVHjI3Nyez0CHKoVE3BEGeEDYeUmM5iAUPMMxGTYXDrVwhsY3V09Mjf0WeMGHC6NGjn9qOlZUVkYC0s7PT2dn59OnTxCQeQnR0tJub2x9//EGhUGpqatzd3b28vAICAqRb0NLS2rRpU3h4uHRSxry8PAAoKysbP368TGZRBHl9mZmZSW8z8DoiNkD6l9B+iQOHRt0QBHkCo6hLxO1UKlC7boBIJOji83g86WVDBQUF27Ztg35yxMvT1NRks9lqampkyc2bN8vKyrZv304sK7OwsEhOTpYfnDAyMpo/fz4aVEMQBJE3uKNura2tg9o+giAvkKrhHF7pjwxNCdbZ0SnsuMOd52X9jykpPB6vsrKSzBEvEAj8/f2DgoJk2mlqalq4cKFEIqmsrBQIBNKL7+7evevu7k4smisoKCC2SFH4XGnTpk0jRoy4fPmy9M48CIIgyCCGbiKxhKNlg2PomSzydFSJyKCjYqh7gQBofohRTwg6W+9yxhmbOOro6EhnXSKQOeIBgMwRL01LS2vWrFkAwOFwNmzYcOjQIWLlPwAIhUIyqfrly5fv3r1bU1ODYRi5OyRJXV39wIEDS5cuLS4ufrGXiCAI8lobxLiqr0+kIu7BqSh0Q55ORdzTi5LwvQLodDqIAQcaj77U1cJCS0tLfi2Ywhzx0jQ0NPz9/ckGt2/fToZu9vb2169fFwgE6urqq1atAoCVK1cSu1/LCw4OjomJ+e67717IpSEIgrwZBnOum1is3scfxPaRN4h6XztFWYZB5CUhAjWKRKCnq6mlpaVwi5uwsLDU1FSRSCQUCjMzM5W01tLSkpKS4ubmRpa8++67NjY2xLbTAHD//v2TJ08qaWHv3r379+/v7Ox8notBEAR5Ew1i6Pbu+GCVHh5NrHjPWgQhqYh7aT3893xfy3y8byQJRpH0PySvMEe8tIcPHxIZ0p2dnTkcztatW8lDNBotPj7+t99+s7W1dXd3DwoK2rdvn5LsccbGxhs3bpTZdBJBEORtNohPM9XVNWhUGrO7toVhJcYGMZsO8lqjSHD97hq6iqrCdI7IS6Zm9GFn6fZ2zFNdXV0+CdakSZMmTZoEADk5OfI54gnu7u44jsu3TKbzcHFxKSoqqquro1AopqamABARESFTR3rh6pIlS5YsWUK+dXR0RJlBEAR5mw1ucpDx44N7Bd0GnQ/pYuGgfhDymqKLe1idD3sF3WPHTRzqviBP4Kb5omFHjI2NlQTTGIbZ2NjIx20DZ2ZmRsRtCII8Hw6H09jYOHjt8/n8ASbaVYLL5SrfbxN5DoOe1y0oKBxEIr3Oan3BYzVRJ1UiAkB/i285CVUiUhN16gse6XVWYRJxUNC0oe4S8jcdHR1ra+thw4ahcVDkDdDE5+9MS2tsb+970Quhurq6iFmb8ruMPJO6ujoMw5hMJpPJNDY2nj17dnt7OwDweDwMw1SlTJv25L/KqqqqMWPG+Pj4BAUFvffee2lpaSC1YUlRURGGYRs3/r175rlz5zAMO3bsGPGWw+HQ6fQvv/ySeFtWVmZsbCzfsQULFpAj6FwulxwdB4C8vLxZs2ZNnz79ypUrMmelp6eHhoaGh4efPXtWLBZnZGTIbLiC/HsvY/nnBP+Q9vbWv25c1qC0qajQaJTB2hUReV2IxJK+vj4QSzxG++rq6j/9BARBkGfXwOOdKS5eFBR0MDMzwsHB6oX+QtLR0bFz586lS5cOcJcRJTQ0NLhcLtHmmjVrQkNDc3JyAIBGo8mPe+E4PmnSpMWLF3/22WcAkJ+fP3XqVJnk2IaGhomJiVu2bCHeJiQkSO8lGh8fP2rUqLi4uP/85z/9zTRNTk52c3PT0NAAgNjY2GPHjhFxIQC0tLRER0f//PPPGhoaM2bMuHbtGrkbRHV19bx5877++msPD4/58+erqalFRESMHj16xowZClejI8/nJWXu0NXVnxgU/nI+C0EQBEEaeLyk4uIF48erA6wICNiekTEXYPg/o7ddu3b9+OOPbDZ77ty5ixcvnjlz5qJFi4jUNtOmTfvqq6/c3d1PnDixbds2HMcXLFiwZs2aP//888SJE62trXFxcXQ6fc6cOUuWLDl9+vSePXuuXr167NgxPp9fUFCwYMGC9vb2kydPjhgx4uTJk1paWjLtKOyzlpbWli1bjIyMCgsL+9sYKj09nUKhkNt9jhw58uDBgzITQI2NjRkMxp07d1xcXHp6enJycqRTWx87duzAgQOzZs26du3auHHjFH7K7t27jxw5Qrxuampyc3MjQ7fk5GRXV1di8zo/P7/r169HRUURh/Ly8sLDw5cuXQoAkZGR58+fDwoKCggIiIuLIwqRFwJthIUgCIK8aep5vDPFxfPHjyfmY2pRqV9MnHiwrKyioaG390negwcPHhw/fjwzMzM7O/v48eMlJSVeXl7x8fEAUFVVVVBQ4Obm1traunHjxrNnz549ezYhISEpKYl4Turn51deXm5sbBwbG0vsMgIAHR0dR44cWb16dUZGxsaNG9XU1MrLy/v6+tLT0+Xb6a/nxNJsIk7CcXyZlMLCQgAoKytzd3eXHi0LCQmxsLCQbgTH8cjIyFOnTgFARkaGr68vmeinpKSEz+ePHj06KioqLi5OYR8kEklpaam1tTXxdvXq1cuWLSOPlpeXOzk5Ea9tbW1v3bpFHpo5cybxEJnH4505c4bYScXBwSE9Pf1pf2PIM0ChG4IgCPKmicnNjRo7VnodjT6VOt3D40RxMY/HI0qSk5OjoqJsbGzodHpERMTvv/8+a9aslJQUHMcTEhLmzJmDYVhycrKVlVVubm5eXp6trW12djYAeHt7L1y4UEtLS/5zvby8Ro0aNXz4cH19/UWLFqmpqbm4uNTV1Slspz/Dhg1jMpkAQKFQfKWwWCwAUFVVJbckUWL69OmJiYkAcOrUqcjISLL82LFjbm5uGRkZLBbr1KlTZCArraamRl9fX36NOaGjo4N8/KqnpyffmXPnznl7e8+ePdvPzw8A7O3tidAWeVHQVgcIgiDIm2bh2LGHs7M/mTBB63/xRwmXm3z16mR9fTJNYG1tLbkviEgkEovFJiYmrq6uV65cOXXqFDH8VldXp6qqSsQ3vr6+dnZ2OI4bGBj097nk6BeGYTo6OmS5fDv9tSAQCG7cuOHt7U00Ih11Eezt7Tds2NDX10fsBQwAYWFhK1askKnGZrOZTGZ+fn5OTs6vv/5KXA6O43FxcYGBgQkJCQDAYDDS09NtbW1lzm1ublaYjpvg6elZXl5OvG5paXFxcZE+umPHjoyMjHPnzjk6OhIlqqqqCvcpRp4bGnVDEARB3jRMTc1we/sdFy+24jgAlHC5h7OzJ6irM5lMcrQsJCQkNTUVx3GhUJiWlkbkLJwzZ86uXbvU1NSIgCY8PJzP5y9atGjx4sU1NTVNTU3Sn6IwhaFCytshCQSCxYsXBwcHE6NuCvn6+lpYWJBbkmRkZJSXlxPjWzIiIyOXLFni6+tLTu+7ePGiqalpTEzML7/88ssvvyxbtuz48ePyJ9rY2FRVVYlEIoUdGDly5MWLF3Ec5/F4ycnJXl5eIpHo9u3bYrH4woULycnJWVlZZNwGAJWVlTLhHfIvodANQRAEedPQaDRLY+M5jo6bL1682tR05NKlAA0NNpttZmZGLnX08/Pj8XiOjo4ODg4MBmPMmDEAEB4enpubO2/ePKKOi4uLt7e3p6fniBEjiouLiclbBCMjI21t7fnz5w+kP0raAYDu7m5iAxInJyc1NbWjR48S5SKRSFtKYGAgANDp9Pj4+MOHD1tbW7u6un766acxMTEKF4pOnz791q1bMk9LZ8+eTb6NiIhISUnh8/nNzc3kp9jZ2enr69vb21dXVyu8Fnd399GjR7u4uDg4OAQFBXl5ebW2trq5uXV0dGRnZ5eUlBgZGRGXQ2xeXFFRgUK3FwtTniuvoKDAxtbzpfUGQV5HujqUdp54qHvxzPZ+v2XTpk1D3QvkVbR58+aVn218er1XicKf597e3oqGhvjbt/0YDAMDAzabraOjIzOFq6qqSk1NbdiwYUoa5/P5XC7XyspKplwikXR1dWlqag6wk/2183xqa2sBwNzc/IW0JmP//v3d3d39rYQFgKamJhUVFX39J9md1qxZ88033yiMIAMCAuLj44mJem+Vf/PvqOJBoZeXV39H0Vw3BEEQ5M1Ep9Nthg1brqEhFAo1NTW1tbXlp94PJJAihqPkyzEMG3jcpqSd5zNIQRvh448/njx58sqVK/vLhCedKK6rq2vKlCkK47ZLly4FBga+hXHboEIPTBEE+YdWPv/o+fMtbW0vPPu8QvKZ6NevXy+Tfp1IE19WVoZh2MGDB8lyQ0PDhoYGHx8fbW1tBoNBoVCIW+Pq1atfQs+R1wKdTmexWGZmZnp6ev0tmUTkqaioHDlyZIAbYTEYjPHjxys8ZG5uTqagQ14UNOqGIMjfuDxe+u3bdoGBv2VkhDk7mw/+dljPlIleS0tr06ZN4eHhhoaGZGFeXh4AlJWVjR8/Hu1MjyAvCpvN/veN9JdYGPk30KgbgiBPcHm8C7dv248b10ulWk6cePTOner6eum0T9nZ2cTeOwCwZs2arKwsImWou7v77Nmzi4qKiEMnTpxwdnZ2cHDYtWsXAPz555/Lly+Pjo7evHmz/IcWFBRs27YNAHbs2GFnZ+fv7y+zpY80IyOj+fPno0E1BEHeZih0QxAEgBxvGzeuG6ATgE+lagcFfV9SUiUVvXV0dNTV1RGvHz16xOfz//jjDx6PV1RUtHz5ciJQU5J9/vPPP5f/XCITfUFBQWxsbEpKyp49ey5fvqykn5s2bbp27ZryOgiCIG8wFLohCAIAkJSba+nj0wHQDsABaJZIOgDoLi4n8/PJ7PPynJycLly4sHbtWpFIRGyq86zZ5wmpqalRUVF2dnZubm5EBoT+qKurHzhwYOnSpQqzwCMIgrzxUOiGIAgAwAdjx+ZnZbXiOBegWSLhi0SdjY2QnT2OySSzz0tra2sDADs7u8LCQkNDw7Vr106dOhWkssb39vb6+vpOmzYNAJRknyc0NDSQ09eeugQvODjYzc3tu+++e47LRBAEed2h0A1BEAAAHU3NEEfHWxcuNItEHTje1dSEZ2ZOZLGks88zmcza2locx9va2goKCgDg0KFD165dW7VqVWZmZl5eXl9f3wCzxssICwtLTU0ViURCoTAzM/Op9ffu3bt///7Ozs5/c8kIgiCvIxS6IQgCAECj0cyMjec6O1dnZHQ0NEiysoINDWWyzxM73jg4OEydOtXJyQkAJk6c+O233wYHBwcHB69YsUJFRUV51vj++Pv783g8BwcHDw8PBweHp9Y3NjbeuHGjwuFABEGQNxtKDoIgyBN0Ot3SxGQlQGJ+vo+5uXz2eXV19cLCwqamJulsnIWFhTU1NcbGxqqqqkTJnj17pLPG+/v7+/v7A0BpaanMJ9ra2k6aNInYOzInJ6eystLU1FRdXV2mGpnyQ3rx6ZIlS5YsWUK+dXR0RJlBEAR5G6DQDUGQv9HpdCsTk8UMhpLs89JxG8HCwkKmRGHW+Pz8fPkTVVRUiNcYhtnY2Pyr3iPIm4vD4YhEImNj4xfeMp/PV1VVJX/1UoLL5err6yvcNQF5mdADUwRB/mHwss/Pk8NgMF5g+wgi75l2ByES2Tzrof6sWbPmww8/JN8WFhZqa2uTT/k5HA6dTv/yyy+Jt0KhEMMwJpPJZDINDAwcHBx+/fVX4lBVVdWYMWN8fHyCgoLee++9tLQ0AHj48KGOjo70x2lpaZEbxg+8cQBYsGABjuPEay6XGxERQR76/PPPp//PgwcPMjIyZHY6QYYECt0QBEGQNxOXxztfXGwXGPhbXl7NP/NLK9TR0bFz585nPdSf6Ojos2fPkh+amJgYHh5OzgeIj48fNWpUXFycRCIhT3n06BGXy+VwOHv37v3oo4/a2tpwHJ80aVJUVNSDBw+Ki4u/++67jz76qLu7W/lHD7BxAEhOTnZzc9PQ0ACA2NjYqKgoYnsSwtmzZz/6H0NDw4iIiJ9//pnP5z/T94C8cCh0QxAEQd5AT90dRH4vkA8//LCxsXHOnDkAsG/fPg8PD09Pz61bt0ofGuCeIgDg6upqZmZGrphOTEwkWiYcO3Zs9+7dFArl2rVr8p339fVVV1fn8Xjp6ekUCoXcBnTkyJEHDx586rTOATYOALt3754xYwZR3tTU5ObmRlZraWkxNTUNCgqaOHFiUFCQjo4OjUYLCAggMjgiQwiFbgiCIMibZiC7g8jvBRITE2NsbBwbG8vlcpOSki5dunTjxo24uLiKigry0ED2FCFFR0cnJCQAwO3bt7u6uvz8/IjykpISPp8/evToqKgo6UjozJkzCQkJx48f//DDDwMCAiwtLcvKytzd3aWnl4WEhBCzS7u7u8OkkI9iB964RCIpLS21trYmKqxevXrZsmVk/crKyqqqKhsbG1tb26+//poYwHNwcEhPT38Rf0XI80OhG4IgCPKmGcjuIPJ7gZCYTGZSUlJqaurWrVsbGxvr6+uVfJaSdmbNmnXu3Lm+vr7ExMRZs2ZRKE/uuceOHXNzc8vIyGCxWKdOnSKjyWvXrl29ejU3N7e4uJhYD6SqqtrV1aXwc+l0+nIpdDr9WRuvqanR19fvb0org8FYuXJleXn5n3/+mZycTAwf2tvbV1ZWKvk2kJcAhW4IgiDIm2Ygu4PI7wVCKikpcXNzq6ur8/HxcXV17e9T+ttThMRms93c3DIzMxMTE6Ojo4lCHMfj4uIYDEZCQkJpaSmDwSDHsXbv3r1v376DBw8mJSUdPXpUIBDY29tnZ2dLr7EICwsj9pej0Wj+UogI7Jkab25uptH6TTTh4uKyatUqCoViYGAwffp0oh1VVVW0umjIoeQgCIIgyJuG2B3k6IULWhMndgAQu4MEGxpK7w5y6NAhLS2tVatWffLJJ+bm5kR4RKy1TEtLCw0NXbduXXt7e3l5OVGfOETuKcLn88k9RWTaIVPeAEB0dPSWLVuoVCo5jezixYumpqYxMTHE2507dx4/fnzixInS/XdwcKDT6e3t7b6+vhYWFj/99NPy5etzWl0AACAASURBVMsBICMjo7y83M/Pr6qqSuGFP1PjNjY2VVVVIpFIYQD3yy+/XLhwITExUSQSXb58ee3atQBQWVnp4uIy0L8GZHCgUTcEQRDkTTOQ3UHk9wIxMjLS1taeP39+eHh4enp6SEhIZGSkr6/v7t27yUMD2VNEuifTpk0rKioih9wA4NixY7NnzybfRkREpKSkyC/b1NfXv3HjBp1Oj4+PP3z4sLW1taur66effhoTE6Mks9ozNa6vr29vb0+mFJExb948Lpfr5+dnaWmpoaExYcIEAKioqECh25BDo24IgiDIG+ipu4NYWlrK7AWCYVhJSUlXV5empua9e/fq6+vNzMwAgMvlkocGuKcISUdHR2bHtvj4eOm3w4cPJ5J9SCfyAAByMcSIESNu375dW1sLAObm5kShtbU1OWmP0NHR8RyNf/TRR2fOnFmzZg1Z/9GjR+QXeOnSpebmZgzDWCwWUZidnS3zEcjLh0I3BEHeFjwer7W1ldieC3kbDGR3EJm9QDAM09TUBAAqlUrEbQDAZDKlD8HA9hR5scig7cX6+OOPJ0+evHLlSnKVgwxDQ0Py9aVLlwIDA8kwDhkq6IEpgiD/8EzZ55VLS0ubPn36QGoqSVWflpYWFhYmU7h+/XrprO5FRUU0Gs3ExGTYsGFMJnPmzJnEojwWi3Xv3j0AaG5unjx5srOzc2hoqKGh4TfffEOeS9QpKyvDMOzgwYNkuaGhYUNDg4+Pj7a2NoPBoFAoxO5eq1evHvAXgAy9wdsd5M2goqJy5MiRnp6egVQ2NzcnM8whQwiFbgiC/O1Zs88r5+fn9+OPPw6kppJU9RMmTDhy5MhTW7Cysqqvr29oaKipqbl+/frp06elj0ZHRzs5OdXW1t65cyc/P3/nzp1kolSSlpbWpk2bmpubpQvz8vL4fP7NmzeZTCafz+fz+d99991ArghBXhdsNptcuqHc8OHDB7LVKTLYUOiGIG8diURy/VqOfPlTs8+npqZ+9tlnU6ZMcXFx2bNnj1gs/vPPP5cvXx4dHb1582YA2LVrl6Wl5bhx4w4dOgQAhYWF3377LQCcOHHC2dnZwcGBTFi6bds2S0tLd3f32NhY+GcWexkFBQXbtm0jXu/YscPOzs7f3//Bgwf9XZ2mpiabzVZTUyNLbt68WVZWtn37diKrloWFRXJysnyCAyMjo/nz56NBNQRBXnForhuCvGm+/34nn8ff9PV2+UMSiST9/B87d24BgA8+CJU+RGSft5fJPp+RsRLAysSEmAfT2toaExNz8+ZNU1PTSZMmjRw5sre396effjp48GBkZOSDBw+OHz+emZlpbm4eEBAwduxYHo9XVVXV2tq6cePG9PR0HMejo6NtbW1HjBiRkJBQUlLS3t7u5+c3ffr0mJiY0aNHE2GcDB6PR6QALSgoiI2NTUlJEQgE/v7+QUFB0tWampoWLlwokUgqKysFAkFo6N9Xd/fuXXd3d2LdX0FBAYfDAQCFuak2bdo0YsSIy5cv+/r6PvP3jiAI8lKg0A1B3grSQdu6dRuD3w/5797/SFdIys11DArqAOgA4Epnn79xY6mvLzkxecKECcOHDweAOXPmJCcnT5o0ydvbe+HChQBw8ODBqKgoGxsbAIiIiPj99999fHwAIDk52crKKjc3FwBsbW2zs7MfPnwYERHBYDAYDEZOTg6ZYl651NTUqKgoOzs7AAgMDJQ5qqWlNWvWLADgcDgbNmw4dOgQkQcLAIRCIZmP/vLly3fv3q2pqcEwLCsrS6YRdXX1AwcOLF26tLi4eKDfLPJq8PLySklJGepeIMjfvLy8BqllFLohyBtOPmhTmBTqg7FjY7OyzPz9+VQqkX2+q6kJsrPHmZtLpzbQ09MjXvT09BCp5A0MDIiS2tpaMu+8SCQSi8XE67q6OlVVVeLBq6+vr52dXUJCApEQCwC0tbWV5HOX1tDQQLZPpuYiaWho+Pv7E6/pdPr27dvJ0M3e3v769esCgUBdXX3VqlUAsHLlyjt37ij8lODg4JiYGDSh7XWkr68/1F1AkL+1trYOUstorhuCvLEkEsn5tHO+743cuXPLunUbL1/Jf39SaH/JPIns87cuXGgWiTpwnMg+P5HFks4+DwDXrl3r7e0Vi8Wpqamenp7SLYSEhKSmpuI4LhQK09LSJk2aRJSHh4fz+fxFixYtXry4pqamqakpJCSEeH7a1dXl4eFBhIZEqnolwsLCUlNTRSKRUCiUX2RAamlpSUlJITPXA8C7775rY2NDrmC9f//+yZMnlXzQ3r179+/f39nZqbw/CIIgQwKFbgjyBpKA5HzaOT1d6o4dm58atBEGkn0eAOh0+tixY11dXXEcX7x4sXQLfn5+PB7P0dHRwcGBwWCMGTOGKHdxcfH29vb09BwxYkRxcXFoaKi/v39PT4+Tk5OPj8/nn3+uqalJpqpX0kN/f38ej+fg4ODh4eHg4CBz9OHDhywWi8ViOTs7czicrVu3Sl9afHz8b7/9Zmtr6+7uHhQUtG/fPiXfhrGx8caNG2XSqCIIgrwiMJkMyzIKCgpsbD2VVEAQRFfntfwV6Ouvv960aZNMYW9vb1V9fWJBgY+ennz2+djY2Nzc3H379rW1tRkbGytstqqqSk1NbdiwYQCQkpISExOTmJgIAHw+n8vlSqfDbWxsZLFYZOMSiaSrq4tIGS/N1taW3FmIWIVgamqqrq7+HJdcV1dHoVBMTU2f49y3yubNm1d+tnGoe/Fsruakyjww1dPTc3R0LC8vJxamKGFmZmZmZvbnn3+ST/kR5N9rbW19d/zk5zu34kGhkqlyaK4bgvxb7bxX6797coWp8llue7/fIn/uQLLPq6qq9he3AQAZnNXV1e3cuZNcB0rks5WuKdMIkao+Pz9fpkELCwsydMMwjFgG8XzI5PgIIk35gDSCEO7fvw8AdnZ2Q/4Dg0I3BHljYRj2/qTQ4PdDiACOmPHW3zIFEpF9XuGhCRMmuLu7D/DTtbW1Dxw4ID3nbCDmzZv3TPUR5Km0tLSsra05HA6LxcJx/NGjR8QKG1NTU2Nj476+PqFQSNRks9lGRkYSiYTD4RADwEZGRsbGxtXV1b29vXZ2dhwO5/Hjx/LV2Gy2gYEBhmFtbW397eaOvO6EQmFRURGRbIhYaD9UXssHPQiCDBwRwF2+kr9u3cadO7f4vjfyfNo55TMl+mNqauri4jLAyjo6Os8atyHIYKBSqQwGw8jIqLm5WVVVldgMVF1d3cLCglgoTWxRqqmpaW5uzuFwmpub2Ww28dC/paWFSqVaW1tbWVmpqKg0NTUxGAyZatra2ubm5vX19fX19UZGRrq6ukN8wchg6uzszM3NTU1Nldl55WVCoRuCvBXkA7ih7hGCvFTV1dX19fVcLpfBYGAYRqS5uX//fl1dXXt7OwAwmUyxWExMd8NxnJg5JxaLKyoq1NXVdXV1KysrRSKRgYGBTDViGJvNZjMYDCLR9FBeJ/JScDic9PT0K1euDMlSdPTAFEHeNJ99tq6/Q+Qj1LzrV//66/JL7BSCDDEi+ww53kyn0yUSCVFIPDBVV1eXSCQYhmEY1tDQQO7IjuM4UU6Ea/LVeDxeaWmpkZGRgYGBsbFxRUXFEI7HIC+NRCKprq5ubGycNGnSADeBfVHQqBuCvHUwDHtn7Pih7gWCDKXW1lYMw4g11MQAW2dnJ5VK7erq4nK5GhoaRJCHYZitra1QKOzu7raxsaFSqfLVjIyMrKysHj16dOvWLbFYrKGhMdQXh7wMGIY5OTlNnTr1JcdtgEbdEARBkLcQn89va2tjs9kmJiY8Hk9VVbW+vl5FRYWMz4jnnmZmZhoaGmVlZWKx2NnZ2cLCorq6WlVVVbqaWCxmsViurq4YhnV2djY2Ng71xSGDjs1me3t76+joDMmno9ANQRAEeQO1tbVdv36deE2+qK6uJleAlpWV0el06U3bKisrq6qqVFRUyKeltbW1ZK5BshH5anfv3qVSqRQKpa+vb9AvDBlSurq6I0eONDExGcI+oNANQRAEeUsRW+tKE4vFZECmhHw1HMefupkb8lpTUVHx8vJycnKiUIZ4shkK3RAEQRAEQZ7CyclpqLvwBFqmgCDIm4zH41VVVQ11LxAEQV4YFLohCPIPrXz+0fPnW9ranm/WTldX108//QQAaWlpYWFhz9cHheeuX7/+l19+Id8WFRXRaDQTE5Nhw4YxmcyZM2d2dXUBAIvFunfvHgA0NzdPnjzZ2dk5NDTU0NDwm2++Ic8l6pSVlWEYdvDgQbLc0NCwoaHBx8dHW1ubwWBQKBRi/67Vq1c/34UgCIK8cCh0QxDkb1we73xxsV1g4G95eTX19fIzgZ6qo6Nj586dADBhwoQjR448XzcGeK6VlVV9fX1DQ0NNTc3169dPnz4tfTQ6OtrJyam2tvbOnTv5+fk7d+7MzMyUaUFLS2vTpk0yWbjy8vL4fP7NmzeZTCafz+fz+d99993zXQiCIMgLh0I3BEGe4PJ4F27fth83rpdKtZw48eidO9Vy0du+ffs8PDw8PT23bt1KlGzbts3S0tLd3T02NhYAPvzww8bGxjlz5hQUFGzbtg0Adu3aZWlpOW7cuEOHDgHA1atX/+///m/GjBnm5uZRUVEKp4ST5wLAjh077Ozs/P39Hzx40F/PNTU12Wy2mpoaWXLz5s2ysrLt27cTE4otLCySk5MZDIbMiUZGRvPnz0eDagiCvEbQMgUEQQAAuDxe+u3b9uPGdQN0AvCpVO2goO8zMlYCWJmY0Ol0AOByuUlJSZcuXWIwGK6urjNmzJBIJAkJCcTmP35+ftOnT4+JiRk9enRsbGxaWlplZeWDBw+OHz+emZlpbm4eEBAwduzYjo6OmJiYq1evstnswMDA3Nxcf39/mc7weLzKykoAKCgoiI2NTUlJEQgE/v7+QUFB0tWampoWLlwokUgqKysFAkFoaCh5iNgiWkVFhWiEw+EAgHzoBgCbNm0aMWLE5cuXfX19X/B3irxcra2tQ90FBHkZUOiGIAgAQFJurmNQUAdABwAXoFki6QCgu7icvHFjqa8vi8UCACaTmZSUlJqaWl5e3tjYWF9fn5+fHxERwWAwGAxGTk6O/Jr55OTkqKgoGxsbAIiIiPj99999fHzGjx/v4eEBAGPGjFG+hiA1NTUqKsrOzg4AAgMDZY5qaWnNmjULADgczoYNGw4dOrR8+XLikFAoJKa+AcDly5fv3r1bU1ODYVhWVpZMI+rq6gcOHFi6dGlxcfFzfXPIK0EklnC0bHAM3dSQVwJVIjLoqBikxtEDUwRBAAA+GDs2PyurFceJuI0vEnU2NkJ29jgmUyAQEHVKSkrc3Nzq6up8fHxcXV0B4OHDh7q6usRRbW1tGk32xllbW2toaEi8JnOfkjsFUalUck9JhRoaGsjTtbW1ZY5qaGj4+/v7+/tHRUV9++23xBNbgr29/fXr14mer1q16ujRo0SHFQoODnZzc0MT2l5rfX0iFfHT87EhyMuhIu7pHbT8zCh0QxAEAEBHUzPE0fHWhQvNIlEHjnc1NeGZmRNZLCaTSe7Ql5aWFhoaum7dujFjxpSXlwNASEhIeno6juNdXV0eHh5EqCSdmDQkJCQ1NRXHcaFQmJaWNmnSpGfqVVhYWGpqqkgkEgqF8osMSC0tLSkpKW5ubmTJu+++a2NjQ6x1BYD79++fPHlSyQft3bt3//79nZ2dz9Q95BUiFqv38Ye6EwjyhHpfO0XZr6X/CgrdEAQBAKDRaGbGxnOdnaszMjoaGiRZWcGGhmw228zMjBzuCg8PT09PDwkJiYyM9PX13b17t7+/f09Pj5OTk4+Pz+eff66pqWlkZKStrT1//nziFD8/Px6P5+jo6ODgwGAwxowZ80y98vf35/F4Dg4OHh4eDg4OMkcfPnzIYrFYLJazszOHwyFXThCXEx8f/9tvv9na2v5/9u48rInjfQD4u0kIRyAcIdyHqCCKyKUiShW5i4IVEayiVkWrtvWs1laL1VZrbT2/bb2qgopUwYoXjQiogFp+iOKBBxQRUe4ACUeu3ezvj23TNAmHB1p1Pk+fPmR2dnZ2FXmZnXnH3d09JCRk+/btGIZ1dCELC4v4+HjF+CLy2nlnZKiWRMCQP/WaaAR54bTkUoZEOMpvTA+1j3X+tqKwsLCvo2cPXRtBkFdo65a1q1evVimUSqXlVVWphYU+xsampqY2NjaGhoZ0Ol1RgSCIqqoqW1tbAODz+RwOBwBqamq4XK6iGkmSbW1t+vr6irPKy8t1dHQsLS019uTOnTsqJY6OjtQKA6q1srIya2trXV3dZ7jNyspKGo1mbW39DOe+tdasWbNocfyr7sVTy8nhEQD1LAc5Ru+6NoL0DBpJcNseMGn0Eb7Bz9zIn6XXvLy8OjqKZnQiCPIPJpPpYGU1h8USi8X6+vpsNls5bgMAOp1OxW0AQMVtAGBhYaFcB8Mw5bgNABwcHDq5aEFBgUqJvb29InTDMIxa5fBsFL1F3ngjR4aePfubKfmgmWUrpel0fQKCvGhMucS47ZFU3D46ZELPXQWFbgiC/AuTyaTWk74006dPf5mXQ95gISGR2VmnjFsfyrQM2rUMZXQdAqMDdPiiHEFeBJJOElqEWE/WrCVrxQAL6cm4DVDohiAIgrxJ/APCm5sb/y//gh6tSUuLwaChuA3pcbiclMlkICc9vP2MjEx6+nIodEMQBEHeKEZGJsEhka+6FwjSU9AKUwRBEARBkNcGCt0QBEEQBEFeGyh0QxAEQRAEeW2g0A1BEARBEOS1gUI3BEEQBEGQ1wYK3RAEQRAEQV4bKHRDEOSt0NDQUFNT0xMtC4VCiUTybOfy+fzOdyNEEARRgUI3BEH+pVYo3JCeXtPcLJPJXs4VT5w4MWvWLPXy5cuXf/DBB4qP165dY7PZih3iGxoamEzmqlWrqI9isRjDMA6Hw+FwTE1NnZ2d9+7dSx0qLy8fNmyYj49PSEjIqFGj0tPTAeDBgweGhobKlzMwMHj48OHTNg4AM2fOJAgCAHg8XkRERGRk5IkTJ+RyOQAsWbIk6m+lpaUAcOXKlcmTJ0dFRV28eBEAMjIy9uzZ85wPEEGQtwpKyYsgyD+qBYLfbtyICwnZmZk50dnZwdKSyWS+qs7ExsaOGjVKKpVSfUhNTY2MjFRsQp+cnDx06NCkpKSvv/4aw/7KmP/48WOqAo/HCwsLi4yMZLPZYWFhc+bMWbx4MQAUFBS89957VBTViW42bmxsnJaW5ubmpqen9/Dhw+nTp3/11VceHh4zZszQ0dEJCQk5ceLEzz//TJ1uZmZWX18fGxu7a9cuPT29SZMmXbp0aeLEid7e3pMmTWKz2S/+CSII8iZCo24IgvylWiA4fuPGzJEjTen0hYGBCXfulFVXS6VSRYU//vhjwYIFsbGxa9asAYDDhw+7uLg4Oztv3LgRAHJzc+Pi4qKjo/v06bNu3bply5bZ2dmFhYW1tLQAwPbt2z08PDw9Pb/55hv1piiZmZnh4eFCoZD6OGjQIFtb28zMTOpjamrq1KlTFZUTExM3bdpEo9EuXbqkfi9+fn66uroCgYDH49FotEWLFlHlQ4YM2blzZ319feePopuNA8CmTZsmTZoEAFeuXImMjJw3b96wYcOio6N///33+vp6a2vrkJCQ4ODgkJAQQ0PDtLS0QYMGBQYGDh8+fPTo0ZcvX2YwGIGBgUlJSV382SAIgvwNjbohCAIAUPV33EYNahnQ6cuCg9ecO/chQN+/x97a2tp27Nixc+fO6OjoxsbG+Ph4Ho9HEERsbKyjo6O2tva+ffv++OMPDofj5OT0xRdflJSUhIeH83g8f3//48ePnz9/nsViDRo0aNKkScpNZWdnA0BmZubChQvT09OVx59iY2NTUlLCwsJu3rzZ1tY2evRoqry4uFgoFHp7e8fExCQlJfn6+lLlv/32G5PJlEgkp0+fDgwM7NWrV2pqqru7u2LkDADCw8MB4MGDB+3t7ePGjVOUK17Fdr9xkiTv3LnTu3dvAHj//ffff/99ABAIBL/99tu2bdvKysrKy8v79u1L3cjq1atLSkoGDBhAtebo6Hj9+vWYmBhnZ+e0tLR58+a96D9SBEHeTCh0QxAEACAhL29OaKiuUokJnR7l4XE4P3+hnh6Xy6UKBw8eTM1L27dvn4ODQ15eHgA4OjpmZ2e/++67Xl5eQ4cOBQATE5O4uDgdHR1XV9fKykoOh3P8+PEzZ86UlJTU1NRUVVUpNwUA//d//5ecnHzw4EF7e3vlXk2ePNnNzU0mk6Wmpk6ePJlG++tFQWJiopubW0ZGBpfL3bVr17Zt26jyS5cuMRgMqVR648aNd955BwC0tbXb2to03jKTyVywYIHi47lz55628YqKChMTEzqdrmjk5MmTS5cunTVr1ujRo2/fvr1o0aLFixc3NjYGBgaOGDGipaVFEboZGxvX1tYCQL9+/crKyp7ijwpBkLcbCt0QBAEAmDVixC/Z2R/5+xv8HYgU8/lpubljTEwUw1EAYGpqSn1RWVmpra1NvU718/NzcnJqb29XBF4YhikvAiguLg4LC5s3b56Pj8+FCxdUmgIAkUj0ww8/fPnll+Hh4cqz62xsbNzc3DIzM1NTU5OTk6lCgiCSkpKCgoJSUlIAgMVi8Xi84OBgANi0aRM1He3evXuurq7btm3r16/fypUrZTKZlpYWdfq4ceMWLlzYq1cvBoMREBCguBYVgT1V43V1dQzGP/+KfvvttxkZGSdPnuzfvz8AuLq6urq6UncaFRXF4/E8PT1LSkqoyvX19dRRbW1tFov1tH9eCIK8tdBcNwRBAAA4+vqR/fp9e+5cI0EAQDGf/0t2tr+uLofDMTAwUK8fGRkpFArj4uLmzJlTUVFBDSB1JD09PSIiYsWKFcOGDVPELspGjRo1f/58R0fH9evXqxyKjY1du3YtnU53c3OjSs6dO2dtbZ2QkLBnz549e/bMnz//0KFDKmc5Ozszmczm5mY/Pz97e/sdO3ZQ5RkZGSUlJYoXr+qeqvG+ffuWl5fjOA4AZ8+eTUtLy8rKouI2ANizZ09UVBQA4Dh+4cKF0NDQIUOGnDt3jiAIgUCQlpbm5eUFAGVlZVQMhyAI0h0odEMQBACAwWD0srCY2r//mnPncmtr950/H6inZ2NjY2trq3Hxo6ur6+DBgz09PQcOHHjjxo2IiIhOGo+MjOTxeOHh4dHR0X5+fps2bdJYbfv27du2bbt7965y4YQJE4qKimJjYxUliYmJU6ZMUXycOHHi6dOnFYsbFExMTPLz85lMZnJy8i+//NK7d+9BgwZ98sknCQkJylPfVDxV4yYmJv369aNSimRnZxcXF5ubm3O5XC6Xu2DBgunTp/P5/NGjR/fq1UtPT8/f39/d3d3b29vV1dXZ2TkkJIQK3f78808UuiEI0n1Y59kgCwsL+zp6vrTeIAjy0mzdsnb16tUqhVKp9M/q6uSbN0ezWKampjY2NoaGhspzuVQIhUI+n+/g4NDl5QiCqKqqsrW1BQA+n8/hcJ6z/0/r0aNHAGBnZ/dim/3xxx/b29uXL1/eUYW6ujoMwxSTBQGgtrZWS0vLxMSE+hgYGJicnKxc4ZVbs2bNosXxr7oXCPL2+rP0GvWrnUZorhuCIP9gMpl9LS0X6OmJxWJ9fX02m91J3AYAbDa7mwnJ6HQ6FbcBwMuP26AHgjbKhx9+OGbMmEWLFnWUAM/MzEylxNzcXPH1+fPng4KC/lNxG4Ig/3EodEMQ5F+YTCaKJLpPS0tr3759Eonk2XIX29nZDR8+/IX3CkGQNxgK3RAEQZ6LjY3NM5/bp0+fF9gTBEHeBmiZAoIgCIIgyGsDhW4IgiAIgiCvDRS6IQiCIAiCvDZQ6IYgCIIgCPLaQKEbgiAIgiDIawOFbgiCIAiCIK8NFLohCIIgCIK8NlDohiAIgiAI8tpAoRuCIP/SKBTu//33+qYmmUymcqitrW3Hjh0AkJ6ePm7cuBd+aUX7T1utsrISwzAOh8PhcCwsLKZMmdLc3Kw42tDQwGQyV61apSjx8fFhs9ksFotGo1F7ec2ePRvDMG0lEyZM0Fjz008/5XK59+7dKyoqwjAsPv6fvT5PnjyJYVhiYiIACAQCjQ0iCII8J7SbAoIg/+ALBLybN52Cgg5kZIxzcbGztFTe36mlpWXDhg3z5s3z9/f39vZ+4VdXtP8M1fT09Ph8PnV0+fLlEREROTk51KHk5OShQ4cmJSV9/fXXGIYBwJUrVwDg7t27I0eOrK+vBwCBQJCQkCCRSFSupV4TAKjgDADMzMxSU1PXrl1LfUxJSVHen5TBYKg3iLwEzc2N+X9coDEYDAaNQcNedXeQHofLSRwn5DjhPczPyMjkVXenx6HQDUGQv/AFgrM3b/bz9W0B6BUcvJ/Hm06SvaysFNHbBx98UFNTM3Xq1Llz5x47dmzz5s25ubmJiYlCobCwsHDmzJnNzc1HjhwZOHDgkSNHDAwMDh8+vG7dOoIgZs6cuXz5cvUrEgTxySefXL582cXFZdmyZStWrKDaP3jw4Pbt2/fv349hWGRkJDVg9scffxw+fLixsTEpKYnJZFLV1Ns0MDBYu3atubn5tWvXPD09ASAxMfGnn36aPHnypUuXfH19X+ATs7CwYLFYt27dcnV1lUgkOTk5fn5+L7B95Bmczz6N0THMgNPGNJLRdAiMBoCitzcbSSflWnKxnkxwveiynCADAsJfdZd6FnphiiAIgGK8zde3HaAVQEins0NCthQXl1dVSaVSqk5CQoKFhcXBgwcFAkFZWRkAtLS07Nu379NPP83IyIiPj9fR0SkpKZHJZDwer7GxMT4+/sSJEydOnEhJSTl+/Lj6RU+dOiUQCIqKihYsWLBx40ZF+3w+//jx4+fPn8/Pz09KSvrzzz/h7/eko0ePLikpIjHbqAAAIABJREFUoap1dC9cLtfFxeXevXsAUFxcLBQKvb29Y2JikpKSOnkCBEHMV3Lt2rUuHxpBENHR0UePHgWAjIwMPz8/BoOhfPRpG0SeE4+XCgwGn9WrUddaTGcRGB3FbW8BjMDoYjqrUceqSb8XTUuLx0t91V3qWSh0QxAEAOB4Xl4vH58WgGaABoA6kmwBYLq6HikoEAgEnZzo5eU1dOjQPn36mJiYxMXF6ejouLq6VlZWpqWlOTg45OXlXblyxdHRMTs7W/3cAQMGnD179rPPPsNxXDmu4nA4x48fP3PmzDfffFNTU1NVVUWVDx48eNasWQYGBl3ejqWlJYfDAYDExEQ3N7eMjAwul3v06FFFGKqORqP5KeFyuV1eBQCioqJSU1MB4OjRo9HR0c/fIPLMci7ymHr69fq9ZTTtV90X5NWQ0nTqWQ7aevqX8jJfdV96EHphiiAIAMD4ESMOZmXZBgQI6fQ6khTieFttLWRn+9rZiUSiTk60t7envsAwzNDQUFFeWVmpra1NhUp+fn5OTk7q5zo5OV27di0lJeWzzz7jcDi7du2iyouLi8PCwubNm+fj43PhwgVFfVNT0+7ci0gkys/PHzx4MEEQSUlJQUFBKSkpAMBisXg8XkREhMazMAxTib26w8bGhsPhFBQU5OTk7N27Nzk5+TkbRJ6NWNyOk3ijfh85GpJ4u8kxOl/PzrilTCRq19XVe9Xd6REodEMQBADAUF8/vH///WfPGgQHtwC01dYSmZmhZmYcDkd5lIsgiG42GBkZmZWVFRcXR6PRVq5cqRzVKezevdvAwGDp0qUfffSRnZ2dTCaj2k9PT4+IiFixYkVzc3NJSYn6iZ10QyQSzZkzJzQ0lMPh8Hg8a2vrhIQE6tCGDRsOHTrUUej2zKKjo+fOnevn56e8pAN5yXIu8kgDLo5pKRfujVddJa3OxILpO+4h24Sr/Yb+mH8L4TQmoW2Yl8sLCo581X3pEei3EwRBAAAYDIathcU0F5eHGRkt1dVkVlaomZmNjY2trS2bzabqmJubs9nsGTNmdKdBV1fXwYMHe3p6Dhw48MaNGxoDpuDg4O+//z40NDQ0NHThwoU2NjZU+5GRkTweLzw8PDo62s/Pb9OmTcpnaexGe3s7l8vlcrkDBgzQ0dHZv38/ACQmJk6ZMkVRZ+LEiadPnxYKhRo7jOM4W0lQUFB3bhMAoqKirl+/rj7A9swNIs+CRhNpsVXKnNyNnD2N+nsZ9/cy7u9p3N/z7y+8jPt7GvfzMHJyN+rlbFBckCdsrH8lvUZ6SLuWIYm9sREORpJkJ4cLCwv7Onq+tN4gCPLSbN2ydvXq1SqFUqm0vKoqtbDQx9jY1NTUxsbG0NCQTqcrKpAk2dbWpq+v382rCIVCPp/v4OAAAHfu3FE56ujoqKWlVVFRYWFhoa2trdw+QRBVVVW2trYAwOfzqYlrz9wN5KmsWbNm0eL4ruv9l5y/cLrBoC+B/etVkqWZQ8QABgDISSDk1P9JQg44CTgBuJyU4nD+fvuhzZ8MCxlv27e/Sptnk3eb2/Z29w18VFq8fs748BkLxkz7+OXdUk96g2+NQidx05Y/R/uNfdUdeUZ/ll7z8vLq6Ch6YYogyD+YTKaDldUcFkssFuvr67PZbOW4DQAwDHuqgIkacKK+LigoUDlqb2+vpaWlmC2n3D6dTqfiNgBQidueoRvIG49BwwiMrlKIkWRLO/6orl1GkHQ6zZClVd0kluEkx1C3ulEkkZF9rdmEDO+ozRO/bPEYGezuG2hkah754bI+rh3+KH3tvI631t5U21RxX+MhE3tnXWMz5RICo7/BKf1Q6IYgyL8wmcweWgs5ffr0nmgWQf6m+qNaTpIECWKZXCIlGAy6DpMhksglOKkvk7dJ5FKJrEUkknWw6Djh2+UkKS+9efXU/u1DA8Ov555jsY2YTJ1ft68dGhh+Oz+noaoy+P3ZdAaDl7SLqa0zbfl6KwcnALh5OftUwnZhY32fgV6TF6/RNzTW2H7u6SMX05LaW1t6u7gHT4qzc3QBgIf3bv2287uGmidObkNGjZvsMMBdY2Fl6Z1ft6998uC+kal54MSZvmOjqWpH/vd1wITpg/3H1FaWJ2z4zHfMxD4ungd/WDk0MPzu1UvVD/90fyf4vdlLEzd8pn5rfVw8ayrK1CtjGHY7/+KJvVtErS0T5n2W8esvQwLG+kdOU78jjR0YETbxem5G7qkj1Q9LHd2Ghs9YwLWy0/iUHpfdS9oc7/felOs5Z508hqlfQofNaXp0X9qmuuCdyTK0dB3e5V+GN8kb+yYYQRAEecvJCYKQgwyXS3BSKsOlBCmRkRIpLsFJiVQulUnFEpzANS9lMLPpBQC6eiwTc0uJuL38TlFzQ62ovbXs9rXUnzdIxaKaRw+SNn3569Y1uiz9h/duHvnfNwDw5EHJjlXzxW2t/b1G3Lpy/scVszU2XltZnrTpS4xG83gn6Oal7IT1ywGgTdi8dem0Jw/uO/QfVHiR978VsyVikXphU131pkWxFfdvDxoeIGprObRpVVFeJgCI2lrK7xQJ+HUAIBWLyu8UNdXXiEXtZbevHf1xXZtQIBa1nU3e/eetqxpvDQA0VpaIRTu//Kj+ySNzW4f965aV3ylqqq3SeFMaOyBsati7djFDizn83ajbf1w4uW9rR09J3N5Wfqfo121rb145rzLYT6HRGVaDRqiXW7n50uhv1zjU23W3CIIgyNuDIOTU5DZCDhj21/w2nAAZAbgccDngBOC45tXKYVPnn074n03f/iPCJj4qLVY+FDhxxri4Jclbv7p44vD89TsHDPb9Mjao5tEDALj8eypJymeu/MHKwYnBZOadPlpVXkKNximTy4noT1a5+wZKRaLruefqqx4BwNXz6eL2tumfbfAJjSzIOn09N6O5ofZe4WWVwrPJu8Xtre8v+mrUuMn8micr3x99Me2Qu29gJ8/BY2RI3JdbHt67uWFe1O0/Lo6f82lHt6ZeWdzehsukU5et8w4ad/n31AMbv+h8iryKB8VFOC6jMxjOXj4DhvqKWls7ekpUfTMb+7j4rdTInDpj+/5196+1N9YoSlimVib2qpMU33godEMQBEHeTHIcJ+RaBEmFbqSMJPG/gjbFFyDHO5zr1hHqHaiegSEAmHAtAUBHjyVuawUAfs1jAPjuo3+WGzdUP1YP3UzMrSvu3Tq5d6tMKtZi6lDBEL/mCQBY93YCgCEBY4cEjAWAS2dSVAqP/O9rAOjt4gEAHAtrtgm37kmFSvsk/Cu6snMcAAAsA0MAkEnEnd+dSuXSGwUAYN/PFQD6DOzulDhFB/oPHuHQ3+16ztnrOWeNTM3fm720o6dEPc9BwwM6itsAAMMwWy//ksxk6olhGGbj4dfNLr1JUOiGIAiCvJnkBC4jQEaAjCBIEnAcpATghFyKy3FCjhOkjCCJpw/dNMIwDABYbGMAWLLloIm5NVXONlFdZAMAmUf35p87MXH+577hk7Yvm1Fx/zYAWNr3AYC2FiEAPLx36+HdG16j31UvpKKWuscPbfv2F7W1tDTx7fu5AABTWwcAqKl7LU38f/ftKSZHqVS2dnAEgIbqxxZ2vRVjYxpp7AAulcz6cktjXdWtK+ev8H5L2vTloOH+Gp/So5I7AKDTVXY9lqmVoY1jc2UJABjZOrFMrbp/a28MFLohCIIgbyZcRsjkIJLiUokEp2EisVgqkchwmUhEl8okhAyXESTRwQtTAMBoGL/mcU1FWfev2M/D+1J6Su7pIyPCJp5O2F73uOKrAzymtq5KNYlIBAC2Ti4lRfkPiq/T6QwAcBn6DoZhZw/vkknEJ/Zubqqv9Q2PUS9c+P3+i2lJ6Qd/Iknyes5ZkpS7+wYDgJmNPQBc5h3TYemfO/JL5/3s/q25eI/CMNqR7WvLA8Ov8DTsRKygsQN3CvL2frNk7AefjAibWP+k4t61P+h0hsan1GVPFKzdRwmrHlBfdP+sNwlapoAgCIK8mXCcwHFCm05o0eV0GoHLpAwaoUUncZmUQZMztGiEHMiOd+YYFjy+qvzPYzu/69bFMAwAhgZGjJn28Z83r25dOr3yz7tRH32up6+aKBgAhr87wZBjtnlRbOpP6/t5DMNxWUN1JduEGzhxxr1rV35eObehqnLasvUMhpZ6oX2/gdEfr6p9VP7L2kWFF3738nvXP2oaABgYcXzHRtc/qTj6v2+cPdVXXD7jrekbGk/86HNxe1vu6aPu7wQBQEdrAjR2wHNUqPs7Qed+/eWr6aEP792KmLVIW1evm0+pI9r6hlwnD66TB5P1FGe9SVBKXgR5S2lMyYsg8Hqm5M3NOfNEv59KIV2i7e9p3iaSisUyXE4SJE0mBxwncBIjSIyQA0bTKr5dnnVyi8aUvABA4Dgukz7tHlkkKa978ohjYc1gaAGAsKlBpYIWU1tHj9VUV614Y6jQ3iJobqg1s3Wgzu2oUCaV1D+pMOSYsdhGyqeL21sBMB09Vped7OatNdXXVJbesXJwMrW0uZ6bsSv+4xmfb+w/xFf9jnRZBh11AMdlTXXVKpPYVJ7SU8GlYgyAztTppI516/13Ro552pb/I1BKXgRBEORt1NAoSr9cSVALTUmSlANJknKS+hqjptKL2iWdtEBnMOiMp/5BiWE0c5teio85J5NVKlja9/HyC1OP2wBAz8CQmrDfeaEWU1t99QMA6Oh1N1V1N29NW1fv4PdfyOVy6979Sm8UGBiZOHkM6+iOOuoAg6GlvvhA5Sk9FUanQdsbD4VuCPLWIUnyyuXcV90LBOlxuLzy0vm8erUFmCq41vZdzo5/HmOnf9Jzjfc0PX32Zz+n3iu8XPWw1N030HNUqJGp+Wt9R28ANNcNQd40W7ZsWPPVFxoPkST5e/pJv1FDPv98SUenNwqF+3//vb6pSSZTTVXa1ta2Y8cOAEhPTx83btwL7HM3ff7553v27FF8rKysxDCMw+FwOBwLC4spU6Y0NzcrjjY0NDCZzFWrVilKfHx82Gw2i8Wi0WjUDl2zZ8/GMExbyYQJEzTW/PTTT7lc7r1794qKijAMi4//533iyZMnMQxLTEwEAIFAoLFB5JVgm3BdhvgOCxnf+X8uQ3zZJj2yg8ibwdTSxndsdPTHK/0nTDcyNX/V3UHQqBuCvB1IkuT9fmrDhrUAsGJFfOi74du2fq1ejS8Q8G7edAoKOpCRMc7Fxc7SkslkKo62tLRs2LBh3rx5/v7+3t7eL6/3HdPT0+Pz+QDQ0tKyfPnyiIiInJwc6lBycvLQoUOTkpK+/vprKnHDlStXAODu3bsjR46sr68HAIFAkJCQIJGovjJTrwkAVHAGAGZmZqmpqWvXrqU+pqSkmJv/8/OMwWCoN4i8Etq6elxr+67rIchrBY26IcgbTjHStmHD2hUr4i9cLHg3LIIKZVTwBYKzN2/28/WV0um9goP337r1sKpKqrTD4wcffFBTUzN16tTCwsJ169YBQG5ublxcXHR0dJ8+fdatW7ds2TI7O7uwsLCWlhYAOHz4sIuLi7Oz88aNGzvqnkqd3Nzcjz/+eNKkSXZ2djExMVQM9O233zo5OQUEBJSWlnbUjoGBwdq1a/Py8q5du0aVJCYmbtq0iUajXbp06RmfXQcsLCyMjIxu3boFABKJJCcnx8/P78VeAkEQpCNo1A1B3ljqI20aIzYKNd7Wz9e3HaAVQEins0NCtmRkLAJwsLKixt4SEhK8vb0PHjyYnp5eVlYGAC0tLfv27fvjjz84HI6Tk9MXX3xRUlISHh7O4/ECAgLi4+N5PB5BELGxsY6OjuPHj1e5aGNjo0odbW3thISE3NxcGxuboKCgvLw8IyOjgwcPnj59WiQSBQQEhISEdHQLXC7XxcXl3r17np6excXFQqHQ29s7JiYmKSnJ11d1QZwCQRDz589XfIyLi/P07GJZPUEQ0dHRR48edXV1zcjI8PPzI5QSTDxDgwiCIN2HQjcEeQORQP6efvL9998bNMjj889Xdx60UY7n5fUPCWkBaAHgA9SRZAsA09X1SH7+PD8/LrfDmUBeXl5Dhw4FABMTk7i4OB0dHVdX18rKyrS0NAcHh7y8PABwdHTMzs5WD93U67z77rsjR4708PAAgGHDhpWXl1dVVcXExDg5OQFAUFBQ53dhaWnJ4XAAIDEx0c3NLSMjg8vl7tq1a9u2bcpvfpXRaDTlMbNO7lRZVFRUUFDQ119/ffTo0UmTJiUn/7Pg7tkaRBAE6SYUuiHIi2Fk+F+cfnDz5vX3339P46GvvvpK+eP4ESMOZmXZBgQI6fQ6khTieFttLWRn+9rZiUSiTi5hb//XXCIMwwwN/8lfUFlZqa2tTb1v9fPzo2IvFep12tvb9fT+WutHp9NJkqyurh40aBBVwmZ3loFTJBLl5+cPHjyYIIikpKSgoKCUlBQAYLFYPB4vIiJC41kYhkVHR2s81AkbGxsOh1NQUJCTk7N3717l0O3ZGkSen3Xr/VfdBQR5GVDohiAvTLNA/qq7AACwZcsGoUC4+qv1nb8w3bplrfJZhvr64f377z971iA4uAWgrbaWyMwMNTPjcDgGBgaKakTHqedVREZGZmVlxcXF0Wi0lStXKkd1ndRRvhZl3LhxP/744+zZs3Ecz8zMHDx4sMbLiUSiOXPmhIaGcjgcHo9nbW2dkJBAHdqwYcOhQ4c6Ct2eWXR09Ny5c/38/Doaz0NepsLCQpRiGlG2Zs2a1zclb+f+i+MECIK8EBiGvRsWceFiwYoV8Rs2rPUbNeT39JMdbaDCYDBsLSymubg8zMhoqa4ms7JCzcxsbGxsbW0VY13m5uZsNnvGjBndubqrq+vgwYM9PT0HDhx448YNjZFTd+oEBAQIBAJnZ2cPDw9nZ2eVo+3t7Vwul8vlDhgwQEdHZ//+/QCQmJg4ZcoURZ2JEyeePn1aKBRq7CeO42wlXb6TVYiKirp+/br6ANszN4ggCNIdaCMsBHkxjAxp/7VRN+VCjclB1EcppFJpeVVVamGhj7GxqampjY2NoaEhnU5XbqetrU1fv7sZ24VCIZ/Pd3BwAIA7d+6oHHV0dNTS0lKuoxFJkmVlZdbW1rq6qtt4Iz3hddwIC23shqh4Hf8aK6CNsBAE+WsELvTdcCqA27Bh7fjxGoa4mEymg5XVHBZLLBbr6+uz2WzluI1qp/txGwBQI0/U1wUFBSpH7e3ttbS0lOt01Pm+fft2/6IIotD2cBnIW3TsNtPoul0u1nlmAoGgsbGxk18/EOQFQi9MEeRNs3jxCpUhNwXFK9Rvv93c0elMJpPL5dra2hobG6vEbc9puhoWq+tNshHkmbWV+DGJy1r0W5Kbjs38MhzHlY+qbwqisl0HABQVFTEYDCsrK2rx8vvvv9/W1gYA1NYaAFBXVzdmzBgXF5eIiAgzM7PvvvtOcS5V5+7duxiG7dy5U1FuZmZWXV2tcceOnngIyJvnJY26NTc35v9xgcZgMBg0Bq2nfu9BXlO4nMRxQo4T3sP8jIxMXnV33nwYhg0fMfL//u/Cq+4IgvQgcc1uHa6zXFSKYX11tBr4ZQtJx4PGxsaKsbdubgri4OBA5YJubW11cXE5duzYtGnTFEdjY2Pd3NxOnTpFo9EqKirc3d29vLwCAwOVWzAwMFi9enVkZKSZmZmiUOOOHQjSHS8jdDuffRqjY5gBp41pJKPpEBgNAEVviAJJJ+VacrGeTHC96LKcIAMCwl91lxAEee1hNF1S3kynA7TkA46L2oS4QKA8d7OwsPDYsWObN2/+9ttv9+/fT4009+7du6MG9fX1bWxsdHR0FCVXr169e/fumTNnaDQaANjb26elpamvODY3N58wYcKnn3564MCBHrhR5K3T46Ebj5eqrafP17OV0bR7+lrI6wkjMDpBZ4npLCbTxLj9MY+XGhoa9ap7hSDI603bbKrgzs8sfRJrbWkVt9ziT/fq/a9RA4FAUFZWVlhY2Pl2HbW1tbNmzaLWyohEIuV10Ldv33Z3d9fS0gKAwsLChoYGANA4DWD16tUDBw68cOEC2jMNeX49G7rlXOQx9fTr9XvL0aQ6pBukNJ16lgMXyi/lZY7wDez6BARBkE7of4DRD4taG283+FpY9Tc0NKSGx5SdOXOm8+06DAwMJk+eDAANDQ0rV67cvXv3ggULqENisZia+gYAFy5cuH37dkVFBYZhWVlZKo3o6ur+9NNP8+bNu3Hjxou9ReQt1IMRlVjcjpN4I8sexW1I98kxOl/PTiwTiUTtr7ovCIK83phMJmBAAEPAnGdvb29gYKC+yLS6uloxBU3jSmc9Pb2AgICAgICYmJjvv//+4MGDikP9+vW7fPkytd3I0qVL9+/fr9j5Q11oaKibm9sPP/zwAm4Mebv14KhbzkUeacDFMS3lwr3xsi5PNLFg+o57yDbhauvq9VjvkP8unMYktA3zcnlBwZGvui8IgrzGqECNRoqMjfQNDAwYDA0/8rq5XQcA1NfXnz592s3NTVHyzjvv9O3bd8eOHUuWLAGA+/fvHzlyZMCAAR21sHXrVk9Pz9bW1ue6K+St15MvTGk0kZbqbzBO7kY02l/fTkAlA8YAyL/+LydJkgR9I3pxQZ7LEF+utX0Pdg/5D2vXMtTDGl91LxAEeROQGI3s+IddQEDAunXrnJ2dtbS01LfrAIAHDx5wuVwAwDDMx8dn165dikMMBiM5OXnq1Kk7duxgsVjNzc3bt29XrqDCwsIiPj5+3rx5z3dDyNuuB0M3LS2G+tKE6LlmEQMYACAngZBT/ycJOeAk4ATgclKKw/n77Yc2V4gHatjF4WzybnPb3u6+gY9Ki9fPGR8+Y8GYaR/33C28TP+pW6t/UvFlbFDolA/fi1va/bMUt/D8HZDRtLW0UL5oBEGei475B6131jdjnrq6uupJCsPCwsLCwgAgJyeno+063N3dNe7bq0jn4erqWlRUVFlZSaPRrK2tAWDixIkqdajcIpS5c+fOnTtX8bF///4oMwjytHrwpyODhhGY6rcKRpIt7fijunYZQdLpNEOWVnWTWIaTHEPd6kaRREb2tWYTMlxjgwBw4pctHiOD3X0DjUzNIz9c1se1w20iXjv/qVtjsY0iP1zmMMD9qc5S3ILGo+1NtU0V9zUeMrF31jU2Uy4hMDrK/4c8lYaGBhzHLSwseu4SQqFQW1tbW/u5Fsvz+XwTE5OeS+uPqCCsC3AdvoWurnrODoXn367D1tb2eU5HkKfS0wsIVP95kpMkQZJimbxdjIskhERGiiTyNolcIpO3SeTtImmLSCSTSjW2lfDtcpKUl968emr/dlFry/XcczUVZZWld77/ZNLFE0k/ffHhmg/Crpw9/n9Zp9bOHLthXlRVeQl14s3L2evmvPdZ1IjdXy1oFTR11Nfc00e+iYv4YtLoX75e/Ki0mCp8eO/W5kWxX0wanfDt8vI7RR0VUt1YNMbjq+mheaePKqp991H01ewzAFBbWf7dR9GX0lNqKsqoDu/8cv7qqcHHd/9AkqTGWwMAjZUB4Hb+xXVz3ls1OeB6bsZ3H0Vn/6Y5VxDVgbzTR3fFf/xlbNCp/dvkcuJx2b3vPorOP3di55fzqRPVOy+ViG/n59RWPuzoAao/AeVb0NgZHTan6dH92rv/p/Jf06P72mz1NLzoB9srUysUbkhPr2lulsm6npnaOfVs9erU89dXVlZiGMbhcDgcjoWFxZQpU5qbmwFAIBBgGKatZMKECQBQXl4+bNgwHx+fkJCQUaNGpaenU+1QueyLioowDIuP/2crw5MnT2IYlpiYSH1saGhgMpmrVq2iPt69e7ej+G/mzJnUAAyfz1eMrADAlStXJk+eHBUVdfHiRZVTDhw4EBwcPH369N9//50qycjIULlfpEcZGhr27t3b0tKyk9ANQV4vL3vtp5wgCDnIcLkEJ6UyXEqQEhkpkeISnJRI5VKZVCzBCVzzDwwzm14AoKvHMjG3lIjby+8UNTfUitpby25fS/15g1Qsqnn0IGnTl79uXaPL0n947+aR/30DAE8elOxYNV/c1trfa8StK+d/XDFbY+O1leVJm77EaDSPd4JuXspOWL8cANqEzVuXTnvy4L5D/0GFF3n/WzFbIhapFzbVVW9aFFtx//ag4QGitpZDm1YV5WUCgKitpfxOkYBfBwBSsaj8TlFTfY1Y1F52+9rRH9e1CQViUdvZ5N1/3rqq8dYAQGNliVi088uP6p88Mrd12L9uWfmdoqbaKo03RXXg1+1rxe2twsb6Mwd+yjn5q7i9rfxO0a/b1t68cp5Op7e1CNQ7L5OIS4ryG6ofaXyAGh+L8i1o7AyNzrAaNEK93MrNl0ZH70b/K6oFgtSioriQkF/y8x9UVUk7+D2qm/z9/fft2/cMJ+rp6fH5fD6fX1paymazFZm0GAyGRMmxY8cIgggLC4uJiSktLb1x48YPP/wwe/bs9vZ/LU82MzNLTU1VfExJSTE3N1d8TE5OHjp0aFJSEvV7UUfS0tLc3Nz09PQOHjwYExNDpcIHgPr6+tjY2JkzZy5ZsmTq1KmVlZWKU65cubJmzZp58+ZRu35RAejEiRN37dolFAqf4bEgCILAyw/dCEJOTW4j5IDL/5rfhhMgIwBXlOAaJhYAQNjU+RhGs+nbf0TYRJVDgRNnLN58YGTEJFwmjVu9ddn/fuVa29c8egAAl39PJUn5zJU/vL/oK+/gcQ/v3VSMximTy4noT1bN++bnd8bG6BuZ1Fc9AoCr59PF7W1R8z+fvXrbtGXrnT19mhtq1QvPJu8Wt7dO/OiLmSt/WP7jUQC4mHao8+fgMTJk6baked/sAIDbf1zs5NbUK5cU5eMy6fuLVn/y3S+TFn4JAJ3/yBn+7oSFPySs+uUkABRknaIKzWzs1xw4O2rclPxzJzrvvPoDPLlvm/pj6fwWKMb2/fVM/jWewTK1MrHv3/mVB7EiAAAgAElEQVSzQl6aaoHg+I0bM0eONKXTFwYGJty5U1ZdrRy9nTlzZvHixWPHjnV1dd28ebNcLgeAw4cPu7i4ODs7b9y4EQD++OOPBQsWxMbGrlmzprCwcN26dQCwcePGXr16+fr67t69m2rq22+/dXJyCggIUJ4GpM7AwGDt2rV5eXnXrl3TWIHH49FotEWLFlEfhwwZsnPnTpXJQxYWFkZGRrdu3QIAiUSSk5OjnBY1MTFx06ZNNBrt0qVLnfRk06ZNkyZNAoDa2lrlNYZpaWmDBg0KDAwcPnz46NGjL1++rDhUUVGxatWq8ePH+/v7W1lZUR1gMBiBgYFJSUmdXAtBEKQTL3u0Q47jhFyLIIGQA4aRMpLE/wraFF+AHO9wrltH9A2NAUDPwBAATLiWAKCjxxK3tQIAv+YxAHz3UbSickP1YysHJ5UWTMytK+7dOrl3q0wq1mLqUMEQv+YJAFj3dgKAIQFjhwSMBYBLZ1JUCo/872sA6O3iAQAcC2u2CbfuSYVK+yT8K7qycxwAACwDQwCQScSd351K5dIbBQBg388VAPoM7HpKnEN/NwDgWtkZm1lSQ4AAMGh4ANfKDgDqn1R03nn1B3i/6A/1x9IdGIbZevmXZCZTjxfDMBsPv26ei/S0qr/jNmqetgGdviw4eM25cx8C9P37ZVNjY2NCQsLVq1etra3DwsKGDBni4uISHx/P4/EIgoiNjXV0dGSz2Tt27Ni5c2d0dHRubm5ZWVlpaemhQ4cyMzPt7OwCAwNHjBghFos7z1+vjMvluri43Lt3r0+fPgRBzJ8/X3EoLi7u7t277u7uylPHwsNVN1IjCCI6Ovro0aOurq4ZGRl+fn6KiefFxcVCodDb2zsmJiYpKcnX11djH0iSvHPnDrVF0qefflpWVnbkyBHqUElJiSIZhKOj4/Xr12NiYqiPVKjH4/GOHDnCYrF8fHyocmdn57S0NLTMEEGQZ/PyX5jiMgJkBMgIQobLcRykBOCEXIrLcUKOE6SMIImnD900ov41Z7GNAWDJloPfHM6m/nP28lGvnHl0b/65E+EffLL5VCEVlACApX0fAGhrEQLAw3u3Lhw/1NLMVy+kApG6xw8BQNTW0tLENzAyAQCmtg4AUFP3Wpr4/+7bUzx5lcrWDo4A0FD9GAA0jiCqqCi5DQASsUjAr9M3/GtWmc7fOfOoEvXOK6g/wNHjY9UfSzfvhWVqZWjjSH1tZOvEMrXq5olIT0vIy4sZMUJ5fZ0JnR7l4XH4xg2BQKAo9Pf379Onj46OztSpU9PS0tLS0hwcHPLy8q5cueLo6JidnQ0AgwcPnjVrloGBAXVKWlpaTExM3759mUzmxIkTf/31V0X+ejc3N43561VYWlpyOBwAoNFofkq4XK62trYinX0noqKiqHemR48ejY7+5/eQxMRENze3jIwMLpd79OjRjl4QV1RUmJiYqC9RBICWlhbF61djY2P1zjCZTDab/eTJk+vXr1Ml/fr1Kysr67LPCIIgGr3sUTdcRsjkIJLiUokEp2EisVgqkchwmUhEl8okhAyXESTRwQtTAMBoGL/mMTWFv5v6eXhfSk/JPX1kRNjE0wnb6x5XfHWAx9RWXQEuEYkAwNbJpaQo/0HxdTqdAQAuQ9/BMOzs4V0yifjE3s1N9bW+4THqhQu/338xLSn94E8kSV7POUuScnffYAAws7EHgMu8Yzos/XNHfum8n92/NRfvURhGO7J9bXlg+BXe8S7rF2SddnAeVJSXKScIZ0/VsNXdN/B0wnb1ziuoP8AlWw+pPxblW7Cw79NJf6zdRwmrHlBfdNl55KWZNWLEL9nZH/n7G/wdoBTz+Wm5uWNMTKhk8RRjY2PqC4lE0tTUVFlZqa2tTUU8fn5+Tk5OBEGYmpoqt/zo0SNFinkcx+VyeXV1taJEY/56ZSKRKD8/n0qUimGYcuAFAP369Vu5cqVMJqP2kQSAcePGLVy40N/fX7majY0Nh8MpKCjIycnZu3dvcnIyABAEkZSUFBQUlJKSAgAsFovH4zk6Oqr3oa6uTmM2VwDw9PQsKfnrN6j6+npXV1fFoaysrD59+vj7+/v7+9NotF9//XXIkCEAoK2trXGbSwRBkO542aNuOE7gOKFNJ7TocjqNwGVSBo3QopO4TMqgyRlaNEIOpKYkOpRhweOryv88tvO7bl0MwwBgaGDEmGkf/3nz6tal0yv/vBv10ed6+hp+VAx/d4Ihx2zzotjUn9b38xiG47KG6kq2CTdw4ox71678vHJuQ1XltGXrGQwt9UL7fgOjP15V+6j8l7WLCi/87uX3rn/UNAAwMOL4jo2uf1Jx9H/fOHsO77yz3b81fUPjiR99Lm5vyz191P2dIADofJq/Q3+35G1rrudm9BnoGTQpTuWode9+GjuvoP4ALex6qz+W7t+Ctr4h18mD6+TBZHXxMxt5mTj6+pH9+n177lwjQQBAMZ//S3a2v64uh8NRjJ8BwKVLl6RSqVwuP3PmjKenZ2RkpFAojIuLmzNnTkVFRW1trXrL4eHhZ86cIQhCLBanp6eHhYWNGzfuzJkzOI6LxeLMzMxOeiUSiebMmRMaGkqNuqnz8/Ozt7ffsWMH9TEjI6OkpGT06NHqNaOjo+fOnevn56dYaXju3Dlra+uEhIQ9e/bs2bNn/vz5hw5pnqXat2/f8vJyXNMLgSFDhpw7d44gCIFAkJaW5uXlheP4zZs35XL5rVu3FDMCHzx4oHgbW1ZWphzhIQiCPBWs8xnuhYWFfR01pMbtjtycM0/0+6kU0iXa/p7mbSKpWCzD5SRB0mRywHECJzGCxAg5YDSt4tvlWSe3DAsZb9tXwwR2AsdxmfRp98giSXndk0ccC2sqyBA2NahU0GJq6+ixmuqqTcytVQ61twiaG2rNbB2oczsqlEkl9U8qDDlmLLaR8uni9lYATEev61+yu3lrTfU1laV3rBycTC1trudm7Ir/eMbnG/sPUZ2jo8XUfnjv1rZPP5i2fP3QoHGtzY1GpuYaG1TvfE1F2VcfvBs2dX7EzL9mf6s8wI4eSzdvAZeKMQA6U6eTOtat998ZOabzdv5TjAxpzQL5q+7FU9i6Ze3q1auVS6RSaVl19c67d6M8PNJyc/11dW1sbGxtbQ0NDal3hQcPHvzhhx+YTKZIJLKzs0tLS2MymUuWLMnOzsZxvFevXikpKZcvX966deupU6cAID09fdeuXampqcHBwU+ePJFKpe7u7seOHZPL5f7+/tXV1VpaWr17937vvfdmz/5n6XdlZaWdnR01dKevrx8YGLht2zY9PT2BQGBkZKQcR3p7e587d+727duTJ09ubW3V19eXSCQHDhzw9vYGAC6Xm5ubKxaLY2Njb9++XVVVZWNjc+rUqTFjxsTGxgYFBfF4vGHDhi1cuJBqjYqozp8/7+Pjo6+vTxVaWFhQg2pubm7Hjh2jsn+VlZWNGjXq8ePHAECS5IcffpiXl9fU1DRt2rTvvvuurq7O3Ny8ublZLBbPmTOntLSUTqcPGjQoMTGRGrpbv349i8VSXPc/aM2aNYsWx3dd779E/e8z8pZ7Hf8aK/xZes3Lq8O57C/7hWlDoyj9ciVBLTQlSVIOJEnKSeprjJrLL2qXdNICncGgd/DmohMYRjO36aX4mHMyWaWCpX0fL78w9bgNAPQMDKkFEJ0XajG11Vc/AICOnn43O9nNW9PW1Tv4/Rdyudy6d7/SGwUGRiZOHsM03pGewV9BJIOh1Uncpt75veuWAkAv538GBlQeIHTwWLp5C4xOgzbkVWEymX0sLT8ESP6//xtjYmJqampjY6OI2yjDhg3bvn17U1OTIvnZ5s2bhUIhn893cHAAAGqjbuqQIlv9+fPny8vLdXR0LC0tAYBOp3eSv97W1lbjr5SGhoYaywcOHHjz5s1Hjx4BgJ2dnaJcsc709u3bAGBlZUUNgAEANbo2ffp05Xb69OlDZRVRVFM2e/bs3377bfny5VRNKm4DAAzDdu/eXVtbq6WlZWJiAgBmZmbLli1js9mGhoYnTpyor6/X19dXvs3s7GzqjS2CIMgzeOlz3eSVl87n1astwFTBtbbX6cm958dO/6TnGu9pevrsz35OvVd4uephqbtvoOeoUCNTc413VF/1KGzqfBtNg5edGzh05JhpH7sMRXPR3jpMJrOvpeUCPT2xWKyvr89ms9Xn5mtra6skrWWz2V1OWaMCO4Xnz1+vQjlo6wkffvjhmDFjFi1apDGzq3KiuLa2trFjxyoWvVLbXyqcP38+KChIpRBBEKT7Xnboxjbhugzx1bg/qTIdXT22CfqnrUOmlja+Y6O7rMa1slO88Xwq4+KWPMNZyJuByWR2FFj4+/u7uz/d9mhvDC0trX379kkkki6T8rNYrJEjR3Z01M7ObvjwLma+Ii9Qo1B44tKlscOGGenrK9ay9BxqksCJEycUJZ9//nnv3r2VpwRQr/JJkhwwYMCOHTsUW5qamZnduHEjMjKyuLiYIAiRSES9uJ8zZ84PP/zQ0z1HXiMvO3TT1tXjWtu/5IsiCPJCWFtbUxtsv51sbGyev5E+fTpbf428WHyBgHfzplNQ0IGMjHEuLnY9vx2Wv78/NdWyOwwMDFavXh0ZGWlm9s8mztRGHXfv3h05ciTamR7R6GWvMEUQBEGQl4AvEJy9ebOfr6+UTu8VHLz/1q2H/97bLTs7e/HixdTXy5cvz8rKonI+u7u7T5kypajor02rO9kvRP2iih1EurNfiLm5+YwZMz799NMXeNfI2wCFbgiCIMib5q/xNl/fdoBWACGdzg4J2VJcXK4UvbW0tCj2nH38+LFQKDx16pRAICgqKlqwYAEVqDU2NsbHx584ceLEiRMpKSnHjx9va2vbsWPH6NGjlyzRMLFEIBCUlZUVFhZS+4Vs3rz5woULnfRz9erVly5d6rwOgqhAoRuCIAjypjmel9fLx6cFoBmgAaCOJFsAmK6uRwoKlHcHUTFgwICzZ89+9tlnOI5T+8x2Z78Qdd3fL0RXV/enn36aN29eRzt5IIi6np3rZt16v0fbRxAEQRB140eMOJiVZRsQIKTT60hSiONttbWQne1rZ6e8O4hCU1MTADg5OV27di0lJeWzzz7jcDgnTpzozn4h6p5qv5DQ0NCEhAS0EAHpvh4M3QoLC1GCROSZrVmz5vVKyYsgyH+Hob5+eP/++8+eNQgObgFoq60lMjNDzcyUdwfhcDiPHj0iCEIoFBYWFgLA7t27DQwMli5d+tFHH9nZ2clkssjIyKysrLi4OBqNtnLlSkNDwy7jNgAYN27cjz/+OHv2bBzHMzMzqW3cOrF161ZPT8/W1tbnv3HkbYBemCIIgiBvGgaDYWthMc3F5WFGRkt1NZmVFWpmRu0OohgGo3Ytc3Z2fu+99wYMGAAAwcHB33//fWhoaGho6MKFC7W0tFxdXQcPHuzp6Tlw4MAbN25ERER05+oBAQECgcDZ2dnDw8PZ2bnL+hYWFvHx8RqHAxFE3ctODoIgCIIgLwGTyexlZbUIILWgwMfOTn13EF1d3WvXrtXW1ipnVL527VpFRYWFhYW2tjZV0tF+IXfu3FG5oqOjo2IHkU72C1Gk/FBefDp37lxFgjcA6N+/P8oMgnTkFYRubQ+XgbxFx24zja6rSDj+wgkEgsbGRpUE7giCIMjbg8lkOlhZzWGxOtkdRDluo9jbqyYf1bhfSEFBgfqJiqy/L3y/EARReNkvTNtK/JjEZS36LclNx2Z+GY7jykfT09PHjRunXPL555/v2bNHuaSoqIjBYFhZWVlaWnI4nPfff7+trQ0AuFzuvXv3AKCurm7MmDEuLi4RERFmZmbfffed4lyqzt27dzEM27lzp6LczMysurrax8eHzWazWCwajUZ9o6J0O8hbqFEo3P/77/VNTTKZ7MW2TGVV6E5NlW/8yspKDMM4HA6Hw7GwsJgyZUpzc7PiaENDA5PJXLVqFfVR4zeyQCDAMExbyYQJEzr6lqf+oSgqKsIwLD7+n+2rT548iWFYYmKixtZezDNCXjRqdxBbW1tjY2P1uO15TFfDYrFeYPsI0pGXGrqJa3brcJ1BVwdjDtTR0m8tWygUCpX3k/b399+3b1+X7Tg4OFRVVVVXV1dUVFy+fPnYsWPKR2NjYwcMGPDo0aNbt24VFBRs2LAhMzNTpQUqh3VdXZ1y4ZUrV4RC4dWrVzkcjlAoFAqFaMkP8rbhCwS/37jhFBR04MqVin/nL31+LS0tGzZseLZz9fT0+Hw+n88vLS1ls9nKU46Sk5OHDh2alJRE/WPS0Tcyg8GQKDl27FiX3/JmZmapqamKjykpKYoRGvXWnu2+EARBntZLDd0wmi4pb6bTgd6WDzguahMKBAK5XK6o8FR5qAFAX1/fxsZGR0dHUXL16tW7d++uX7+eRqMBgL29fVpamvpvQiiHNYKo6zL7PACsW7euV69e7u7uBw8ehH9nlldJOg8A27dv9/Dw8PT0/OabbwDggw8+qKmpmTp1KqhlqKd05xvfwMBg7dq1eXl5165do0oSExM3bdpEo9EuXbr0Yh+IhYWFkZHRrVu3AEAikeTk5Pj5+b3YSyAIgjytlzrXTdtsquDOzyx9EmttaRW33OJP9+r9r7luKnmoRSJRQEBASEiISju1tbWzZs0iSbKsrEwkEin//n379m13d3dqtkFhYWFDQwMAaBzEXr169cCBAy9cuID+LUYQ+Dv7fD+V7PMZGYsAHKysqJ0fS0tLU1JSiouLm5ubR48eHRUVRb0D3blzZ2BgYEBAAI/HIwgiNjbW0dFx5MiRx48fP3/+PIvFGjRo0KRJkxISEry9vQ8ePEhlqFeuPH78+C6/8RW4XK6Li8u9e/c8PT2Li4uFQqG3t3dMTExSUpKvr29HZ1F7HCk+xsXFeXp6dv5MCIKIjo4+evSoq6trRkaGn58fQRDP3BqCIMgL8dKXKeh/gNEPi1obbzf4Wlj1NzQ0pIbHlCnyUAOAxjzUBgYGkydPBoCGhoaVK1fu3r17wYIF1CGxWExNfQOACxcu3L59u6KiAsOwrKwslUYUOaxv3LjxYm8RQV5Hx/Py+oeEtAC0APCVs8/n58/z8+NyuQBw8uTJiRMnslgsFouVk5NDffNSmeX37dtHJZ0HACrp/Pjx448fP37mzJmSkpKampqqqirqmxqUMtQrV+7yG18ZNdUVABITE93c3DIyMrhc7q5du7Zt29bR/uI0Gk359zTqjroUFRUVFBT09ddfHz16dNKkScnJyc/TGoIgyPN72aEbk8kEORDAEDDnDbK3NzAwUF9k2mUeaj09PWptNtXg+vXrFaFbv379Ll++LBKJdHV1ly5dCgCLFi2i3neoQzmsEUShO9nnHzx4QKW/AgA2m81gMACAylCqnnS+uLg4LCxs3rx5Pj4+Kls0qleGp0lALxKJ8vPzBw8eTBBEUlJSUFBQSkoKALBYLB6P11HmLQzDoqOjn/ax2NjYcDicgoKCnJycvXv3KkK3Z2sNQRDk+b3sFaZUoEYjRcZG+gYGBtQ//SrGjRt35swZHMfFYrH6CgNl9fX1p0+fdnNzU5S88847ffv2Vaxiu3///pEjRzppYevWrT/++CPKYY0gVPb562fP1uF4C0FQ2eeDuVzl7PPh4eHUW862tjYPDw/lDKKRkZFCoTAuLm7OnDkVFRW1tbXp6ekRERErVqwYNmxYSUkJVY164aheGbr9jS8SiebMmRMaGsrhcM6dO2dtbZ2QkLBnz549e/bMnz//0KFDL/zJREdHz50718/Pr6PxPARBkJfp1eymQGI0suMBvy7zUD948IDL5VLzXRoaGqgZ0BQGg5GcnHzgwAFHR0d3d/eQkJDt27d3kj0O5bBGEEp3ss8HBARIJJIBAwb4+PgsWbJEX19fcbp60vnIyEgejxceHh4dHe3n57dp0yZzc3M2mz1jxgyNGeo7/8Zvb2+nvusHDBigo6Ozf/9+AEhMTJwyZYqizsSJE0+fPi0UCjXeII7jbCVdvpNViIqKun79usoY2zO3hiAI8pww5dwc6goLC/s6PuPc261b1mrcw7T1jlNjkxVfb4ujo6PyP/3KqCUIGvNQd1NlZSWNRrO2tn6205FXbs2aNYsWx3dd7z/DyJDWLJB3Xe8/Q+N3qFQqLa+qSi0s9DE2Vs8+T6mpqeFyuRpTZCknnQcAgiCqqqpsbW0BgM/nczgckiTb2tqob3yVyvAivvGRF+K1++6Djn/iIG+t1/GvscKfpde8vLw6OvoKdlMgrAtwHb6Frm4nbx+ePw819dMCQZCn0p3s8xYWFh2drpJ0nk6nK74TqVUFGIYpfmFTz1CPEtAjCIJ06RW8MDU0NOzdu7elpSWaOIIg/0E9l30eQV6+bu4Oor5zzzNQ3xCIoryPSEd1OtH9DUKysrIMDQ0fPXpEnbhgwYLx48d31MLz3SvyKqHt5xEEQZA3E5Wt0Cko6EBGxjgXF7seHjLw9/f39vZWL6f2EZk3b14ndTpx5coVALh79+7IkSMVe9ILBAJqSw+VylOnTp09e/bZs2cvXbp05MgRKsGCxhaQ19erWaaAIAiCID2qO7uDqG/gobLPB5V72d3dfcqUKUVFRVQd5T1FlDcUoTYEOnPmzOLFi8eOHevq6rp582a5XK68j4hi06CNGzf26tXL19d39+7dAJCbm/vxxx9PmjTJzs4uJiZGPSbrpo0bNz548ODnn3+eNWvWTz/9ZGZm9qzPD/nvQqNuCIIgyJumO7uDqG/gob7PB4ZhAoGgqKgoPz9/48aNhw8fVtlTZPPmzdSGItHR0bm5uWVlZR4eHgkJCVevXrW2tg4LCxsyZIhiHxH4e9Og0tLSQ4cOZWZm2tnZBQYGjhgxoqWlJSEhITc318bGJigoKC8vT5G+tCMat/TQ09NLSEj4//buPK6pK+8f+ElCgiGyr0pAZBOUHa1QW8smID7Ylqq0iq06arWLa6vtLKX2VUfHrY4zWkcdi0PVp4Wx6AgDqGALiraVglPQoiyKA4JsiaAsWX5/nKf3l+aGiFQSEj7vv8Ll5NyTOFO/3nvP9/Pss8/Omzdvzpw5Q/olg76gdAMYoUJDQ0+fPq3vVcBwpGVrm6EYSDoIO8CDnfPx9ttv5+Xlbdy4cfbs2UePHiWsTJHS0lIaKKJ69qioKA8PD0LIwoULs7Ky3n33XbXlZWVlJScn0005c+fO/d///d/w8PDp06cHBwcTQsLCwmprax/5GfuL9KitrR09enR9fb1CoWDnFYERQOkGMHLZ2NjoewkwHLW1tel7Cb/WQNJB2AEe7JwPb2/v0tLSjIyMjRs32tranjx5kp0pQgNFVFlbW9MXPT097e3t7OXdvn2bObVMJlMoFIQQMzMzeoTH42nv20VpjPSor69fu3YtLTp37tzJrhrBCKAeBwAAYzOQdBB2gAc75+PAgQMXLlxYv3792bNnS0pK+vr6tGSKMC5cuNDb26tQKLKzs0NCQsjPOSKMxMTE7OxsuVze3d2dk5OTkJDwRD61UqlcvHjxihUrJk+efOjQoY8//riysvKJzAzDCko3AAAwNgNMB1EL8GDnfMTGxm7fvj0+Pj4+Pn716tV8Pl9LpghDIBBMmzYtICBALpcvX76cyRFhBkRGRkokEl9fXx8fH5FIFBYWNojPyI70+Mtf/tLc3PyHP/yBEDJp0qR169a9+uqrMplsMN8gDGN6SFMAGAiDa4RtcGkKRd9kq90wtba29vX1raqqamlp0f5eFxcXFxeXS5cu0Rs9YGTa2tqenT5L36t4PINLB9EY4MHO+bh165aTk5OpqSlzREumSHp6enFx8Z49e9rb25n+1ao5Ioza2tpRo0aNGTPmV3xu6JfB/SWiatilKRillpYWmUympcv8oEmlUtpucRDvbW1ttbGx0RLhCjA4+B+VYfnpp58IId7e3iPtD+6R6SAaAzzYOR/jxo1TG/PI/9qbmpqqjlHNEWGoVocAA6eHG6ZNUunWnJy7HR3ae1sPRE5OzgA3P6s2s6Y2bNiwaNEi5sfS0lILCwv61EJLS4tAIPj973/P/La7u5vD4dja2tra2trZ2fn4+Pz973+nv6qtrQ0LCwsPD4+Li3vuuedycnIIITU1NZaWlqqnMzc3r6uro6/V5tcyOSFkyZIl9CGJ3NxcGul98uRJeqlj3bp1c35GmxKVlJTMnz9/zpw5X3/9NSEkPz//1/cHhxHI3Nw8MDDQ2dk5KCjI39+feeba2dk5NDQ0ICBg1KhR9IhYLA4NDQ0JCXF1daVHHB0dAwMDLS0thUIhnUTjMLFYHBQUFBwc7ObmpuuPN/J0d3dfunTpxIkT1dXV+l6Lruk+HSQqKuqtt97SwYlgxNJ16dYokWSWlS2Nizt0+XINqzvi44qMjNy3b99ARtJm1qpHUlJSTp48ySwgMzMzKSmJXjM/fvz4U089dfToUbW7yXfu3GltbW1padm9e/eyZcva29vlcnlCQkJycvKNGzfKy8t37NixbNmyBw8eaF+MxvnZkxNCsrKyAgMDzczM6urqXnvttZkzZ27YsOG99947c+YMIeTkyZPLfubg4HDv3r2UlJQlS5asW7du4cKF9fX1c+fO/dvf/iaVSgfyFQEweDyeSCRydHRsbm42NTWl9ZZQKBw3bhzdMUcDSUePHu3q6trS0tLc3CwWi+l9n3v37vF4PHd39/Hjx/P5/KamJpFIpDbMwsLC1dW1oaGhoaHB0dHRyspKzx94ZOjs7CwuLs7Ozm5ubtb3WoyZs7Ozv7+/vlcBxkynpVujRPJVefmS6dPteLzVMTFplZXVjY2q1Ru7CbVqo2rCaj9dWlq6fft2wup/TX7Z7ZoQotrMmgoICHBxcaG7igghmZmZzG+PHDmyc+dOLpd74cIFjR8kIiJCKBRKJJLc3Fwul7tmzRp6fMqUKfv3739kzIj2+eTycCcAACAASURBVJnJCSE7d+58+eWXCSElJSVJSUkrV64MCwubN2/ev//973v37jk7O8fFxcXGxsbFxVlaWmZlZQUEBMTExDz99NORkZEXL140MTGJiYmhvYgAHlddXV1DQ0Nra6tIJOJwOPTa208//VRfX9/R0UEIsbW1VSgU9BqwXC6nT84pFIqbN28KhUIrK6vq6mqZTGZnZ6c2jN62E4vFIpGItjbV5+ccYVpaWnJzc7/++uvOzk59rwUABkN3z7o1/Fy30WdBzXm8d2NjN5058zohnj/nyrW1tak1oe7t7WUaVbPbT0skktraWnb/az8/P9Vu13PmzFFtZs1ISUnJyMhISEi4evVqV1dXZGQkIaSiokIqlU6dOjU5Ofno0aPPPPMMM/7EiRMCgaCnp+f06dMxMTFubm6ZmZlBQUGqj48kJiYSQmpqah48eKCaMcxsIO9vfvbkSqWysrLS3d2dEPLKK6+88sorhBCJRHLixIk///nP1dXVtbW19CmNlJSU1NTUqqoqptuQl5fXDz/8kJyc7OPjk5WVRbPzAB4LvVPPXBsWCARKpZIe7O7uJoQIhUKlUsnhcDgcTmNjIxPdI5fL6XFarrGHSSSSyspKR0dHOzs7Jyenmzdv4jqQLimVyrq6urt37yYkJDCdMgDAUOjuqltacXHytGlClSM2PN6c4OBj5eX0ChNFm1CPGjWKNqEmhNBG1ebm5kz7aYFAQNtP07cw/a9LSkpo/2um27Wzs/M333zTXzvp+fPnnzp1qq+vLzMzc/78+XTYkSNHAgMD8/Pz7e3tv/zyS9WLghcuXCgqKiouLi4vL3d0dCSEmJqadnV1aZxcIBCsUsFkHvc3P3vyW7du2djYqD6ccerUqcmTJy9YsCAyMlIkEq1Zs6aqqurSpUtZWVlnz569f/8+fSMhxNrami5swoQJI/DpFhgKbW1tHA6H7tGjF9g6Ozt5PF5XV1dra6uZmRkt8jgcjpeXV3d394MHDzw9PXk8HnuYo6Pj+PHj79y588MPPygUCqYTKegGh8OZOHHiCy+8gLoNwBDp7qrbb6ZNO1RQ8GZUlPnPtUhFa2tWUdEsGxvVlobsJtRMo2qN7aeJpv7XGRkZat2uNS5JLBYHBgaePXs2MzPz+PHjhBC5XH706NEZM2ZkZGQQQkQiEd0cQMfv3LmTPgx3/fp1f3//P//5zxMmTPjd737X19fH5/PpmOeff3716tVubm4mJiaqCXS0AtM4f2xsrMbJm5ubVVe+ZcuW/Pz8U6dO+fr6EkL8/f3p4xR2dnZz5szJzc0NCQmpqqqig+/du0d/a2pqKhKJBv7HBNAfqVTa3t4uFovHjh0rkUhMTU0bGhr4fD5Tn9H7ni4uLmZmZteuXVMoFJMmTRo3blxdXZ2pqanqMIVCYW9vHxAQwOFwOjs77969q+8PN4KIxeLJkyer7aMCAAOiu9LNdvTopAkTtpw5886MGTY8XkVr66GCghgzM9Xe1uTnJtQmJibZ2dlxcXGqMyQmJu7bt2/JkiV9fX05OTkffvghvVyXlJR07ty5pUuXcrnc3/3ud5aWlomJiXv37l2xYkV3d3dISMiVK1cIq5k1lZKS8tFHH/F4vMDAQELImTNnnJ2d09LS6G+3bt36+eefM6Ubw8fHRyAQdHR0REREjBs37tNPP121ahUhJD8/v6qqKjIysr/4OY3z09KNPbmnp2dtba1MJjMxMcnLy8vKyiopKWGuIB48eDAvLy8zM1Mmk50/f37jxo12dnZ79+6Vy+WdnZ1ZWVl0m2p1dTUemIUBam9vv3jxIn3NvKirq2M2R1+7dk0gEKj+w4neuOfz+czd0tu3b9++fVttEvawH3/8kcfjcbncX7/THAbIyspqypQpY8eO1fdCAOBX0d0NUxMTEzcnp4W+vpvOnClqajpcWBhjZqbW25qwmlCrztBf+2l2/2t2t2t2M2vqpZdeKisrS0lJoT8eOXJkwYIFzG/nzp17+vRpjTs0bWxsLl++LBAIjh8/fujQIXd394CAgLfffjstLU1L56QBzk8nt7GxmTBhAv1bs6CgoKKiwtHR0d7e3t7eftWqVa+99lpra2tkZKSbm5uZmVlUVFRQUNDUqVP9/f19fHzi4uJoN7+bN2+idIMniMb7qB5RKBRMQaYFe5hcLkfdpht8Pj80NDQxMRF1G4AR0GlLXoFA4DFmzOuEHP/221k2Nhp7W4eFhak2oY6OjmZuO/L5/MLCQtX208xfIbt27VLrf52fn6/a7ZrD4VRUVLCfS7O0tFS9XUtvmzI8PDyYTh9qjULq6+vpCz8/v6tXr9LLDEzPKnd3d9UH+Agh9+/f1zJ/f5MvW7bsxIkTGzZs+NOf/vSnP/1JbfGFhYXNzc0cDsfe3p4eOXDgQFNTE5/PZ7rkFxQUqJ0UAEYa5gESADACuk5TEAgEnmPGrDIz66+3NWE1oVbDFGf19fVbt25lbqqy+1+rTaKxmfWTwhRtT9brr78+a9asNWvWMLsc1Dg4OKgdYXYqEEIKCwtnzJjBFHYAAABg6PSQpqClt/VjNaG2sLDYu3cvzdk1Vnw+//DhwwO5G6WRq6sr03MOAGAEeqz8noEn9OgAEwKUk5Oj2mpqEOzt7a9fv37t2jUOh7N//37muIODQ2NjY3h4uIWFhUgk4nK59CLIO++882tXD0NJD6WbFo/VhNrS0pLuLTBuYrF40Bv4PTw8Bhd+CgBgBJ5sfo+OMSFAUVFRhw8ffiJzmpubp6amqrVRLCkpkUql33//va2trVQqlUqlO3bseCKngyEyvEo3gP588snWTR/+lv0aAECjR+b3yOXyN954IygoaMGCBWVlZfRge3v7iy++KBaLX3nlFTpYLcVn/vz53377LSFkxYoVW7ZsIYTk5eWpZl6rUnvvK6+8cu7cOforukmOHQXEZAiNGTOGhgBduXJl8+bNhJCioqKlS5fOmzfPw8Nj8+bN7777rqura0JCAn2Wmj0Vm6Oj4+LFi3FRzdDp+lk3ABg+2tra9L0EgCExkPyef/3rXxKJpKys7PLly9u2bTt27BghpKCgoLi42NfXd8aMGcXFxS4uLmopPm5ubufOnZs8eXJ+fr6tre3777+fk5Pz1FNPsdfATgAKDQ09fvx4dHR0bW3tlStXXFxcaFdOJgroxRdfpPdJ9+/fn5qaGhMTk56enpOTQzur379///Dhw5cuXbK1tfX29v7tb39bVVWVmJiYm5sbHR2tlir04osvavxmUlNT/fz8zp8/HxERMVTfPgwxlG4AI5RMoWwx95Rz8B8B+AWeUmZ3/6a+V/FrpRUXL4+P15Dfc/nyajMzunlr4sSJeXl5GzdunD17NpP1HBISMm3aNEJIaGhoTU3NlStXaIoPIYSm+MycOfOPf/xjQkLCtGnTfvjhB6lUev78eY1PXTMJQMx7V65cGRISIpfLMzIyFi5cePLkSRoFRAihUUC03qIZQhpbVYeGhtIy0cbGZunSpaNGjfL396+vr2dShdSmYhMKhXv37l25cmV5efngv1/QK9wwBRih+vpkfMUgd8CAEeMrenoNv98eze+5r9KJneb3RI0ezTSE8vb2Li0tdXBw2Lhx4wsvvEAPMk0MuFyuUqm8ffs2s5GfNqMODw+vrKwsLCyMiIh47rnnTpw4IRQKmdQfVez3jh07NiAg4Ouvv/7yyy9fffVVJgqot7c3IiLipZdeooM1zkaNGzeOvuBwOKqRGP1NpVF8fHxgYCAeaDNc+Ac3DF9Wlur/tPjkk60aX8NgKBTCPmk3Dzlp8AvCvg6u8tHDhrmB5PccOHDA3Nx8/fr1b775pqurq8YtqOwUHxMTk6eeemrv3r25ublWVlYbN25cuHChxjWw30sIWbhw4bZt20aNGuXl5cWOAlKbQWMIkEaPnErN7t27Q0JCOjs7Bzg/DCso3WD46pD8/679n3yyVSqRpn74R7XXMGjPTo8vuVRgIrCVcTV3DYQRiK/oNemRPhsxS98L+bX+L79Hqdx05syc4OCsoiJ2fk9sbGxSUtKRI0e6u7tXr17NRFGrioyM3LJli6+vb29vb1BQEE3xmTlz5uXLlz08PKytrWtqambOnKlxDRrfm5SUtHLlyk8++YSoRAHJZDI3Nze1vQ5MCNDcuXMf+Xm1T8Xm5OT0wQcfrFy58pEzwzDEUevjr+bKlSueXiGDm3r3Jx+lpqYO7r0AmzZtWrP2A+ZHlG5D4ZtvcuWE3BONV3DUO2PDCMRVyu27agRc3rRnYh89epjR+DdOb2/vzcbG41evRopEGvN7CCG3bt1ycnLS3kdJNcWnP5WVlWpHvLy8+Hz+I9+rFgWkSqlUdnV1DbyZvJapRiC1v0QMy80bpTTNUiNcdQMYuaZPj8/LO2GnrOkQufRyR+l7OaBPAkWPddft3u4HkXHaHpMyLAPJ72GeHtNiIMXQd999x56Zz+c/8r3sKCDG44YAaZkKjIketikMsLf1+++/f/DgwV95rv6aUDNdqrWM0UJj72mJRMLhcExVvPTSS+fOnbO0tKQJp4SQVatW0V0/6F79uNaufY+5zKb6Gn6luLgkIpNZd9bZPPzvKFknTykjxPAfdIKBUvKUslGyTpuHd6w7azlKRZwR1W2UlvyeJ+s1FpEID5LCkND1VbdGieREefnSuLj9Z8/O9fEZ/3N/nSESFRU1depU9nHapZre5u9vjBYlJSWEkGvXrk2fPv3evXv0oEQiMTExYYdWLVy4cNmyZXl5eRcuXPjiiy/+85//9DcDgF5ERSd2dLR9e/m8Gbedzzcx4XL0vSLQHZlC2dfXRxTK4KkRVlY2+l4OADyaTku3RpUeiatjYv6Yn/8qIR6/rN62bNny2Wef0X8hubu7E0KOHTu2efNmuVy+ZMmSDRs2yOXyt99+++LFi5MmTXr33XeDgoIIIZs3bz548KCVldX69eu9vLyOHTvW1tbm5eUVExPzz3/+Mzo6+uzZszdu3Lh169bixYvXrFmzaNEi2qU6PT39ypUr//znP3ft2rVt27Z9+/aJxeJXX311+fLlRUVFX3zxRUtLy8WLF8PDw//xj38MLlRq27ZtgYGB+/bt27Nnz969e9mB8QB6Z2VlExuXpO9VAADAo+mudBtIb+srV66kp6efPn364cOH0dHRcXFxbW1tah2iORyOWv/rGzduZGRkVFRUdHR0REZG7tq1i7ainjdvXlFRUXV1dXBwcFpa2vfff+/s7JyQkDBlypS0tLSpU6emp6cTQiQSSXV1Nbvt9f3799PS0oqKisRiMW2rHR0drf0z0lgV5selS5eGhISYmZmlpaU9++yz8+bNGz7BxgAAAGCIdPesW1pxcfK0aRp6W5eXSyQSeiQ7Ozs5Odnb2zswMHDGjBmEEKZDdElJCe0QzfS/lslktP/1qVOn5s6dKxKJnJ2dv/nmGy6XS1tRq6a2R0VFeXh4jBo1auHChVlZWezlMW2vBQIBbXtNCJk+fXpwcLC9vX1YWFhtbe0jPyOXy41QQRt2E0Jqa2tHjx5dX1+vUCi0zwAAAACghe5Kt4H0tm5sbGTuJ9JtMuwO0ez+1zU1NVZWVsy7TExM2K2ora2t6Yuenp729nb28thtrwkhZmZm9AiPx9PeRYXicDjzVLi4uNCPsHbt2oKCAoVCsXPnzgF8VQAAAACa6a50Y3pbt8nlhBDa2zpKKFTtbf38889nZ2fLZLLu7u6zZ88SQpKSkqRS6dKlS5cvX37r1q2mpqYDBw5cuHBh/fr1Z8+eLSkp6evro+G7crm8q6srODiYKQRVXbhwobe3V6FQZGdnh4SEEFaX6sTExOzsbLlc3t3dnZOTk5CQ8EQ+tVKpXLx48YoVKyZPnnzo0KGPP/6Y3fsHAAAAYIB0V7r9X29rX99NZ84UNTUdLixk97aOjo6WSCQ+Pj7BwcE+Pj5EpUO0n59feXn57NmzY2Njt2/fHh8fHx8fT/tfR0dH9/T0TJw4MTw8fN26dRq74AgEgmnTpgUEBMjl8uXLlzNdqpkBkZGREonE19fXx8dHJBLRttePSyaTWaiYMWPGX/7yl+bmZppMPGnSpHXr1r366qsymWww3yAAAACMeLpOU3hkb2ulUlldXe3s7CwU/v/n4tgdotn9r+/evWtvb6+xbU96enpxcfGePXva29udnJyYE7G7VA+kZTbohkE3wgYAHUN+D6gx6L9EhleawiN7W3M4HE9PT7V3sTtEs/tfMzVZf0xNTVXHaOxSjfwQAAAAGM70kKags97WjKioqLfeeksHJwIAgGFlgPk9g6CayjMUcnJyBthPSuNK7O3tr1+/fu3aNQ6Hs3//fua4g4NDY2MjEn0Mmh5KN91zdnb29/fX9yoAAECnGiWSzLKypXFxhy5frmlo6O3tfYKT01SeJzihmsjIyH379v36lZibm6empjY3N6seLCkpkUql33//va2trVQqlUqlO3bs+LUrBl0ZEaUbAACMNEx+jx2PtzomJq2ysrqxUa1627x5s5ubW1BQEO3QfunSpVWrVqWkpGzatOnYsWOTJk3y8fHZtm0bHbxnz57g4OCQkJCPP/6YEMKk8hBC2IPZsrOz165d+z//8z/+/v67du1SKBSqp9u2bZubm9szzzxz4MABOr60tHT79u0aJ1dbtupK2BwdHRcvXoyLasZE18+6AQAADLWB5PeoJfHMmTOH3nncv39/TExMdHS0apDP9OnTv/rqq8LCQpFIFBAQ8PLLLzOpPOzUnxdffJG9pLa2NrVcn97eXnq64ODgRYsWqcb5TJo0SSKR1NbWsif38/NTW7ZqPpBGqampfn5+58+fj4iIGKIvHHQJV90AAMDYDCS/h53EQwihYTznzp1TC/KxtbX96quvsrOzP/7447t37zY0NDAzs1N/+lsVO9eHOR07zqe/yTUuWzuhULh3796VK1c+2VvGoC8o3QAAwNgMJL+HncRDCKFhPOwgn4qKisDAwPr6+vDw8ICAANVzsQf3typ2rg89ncY4n/4m17jsR4qPjw8MDMQDbcYBpRsAABibgeT3aEniYQf55OTkzJ49+7333gsLC6uqqqLDaCoPe3B/q2Ln+jAr6S/Ohz25xmWr5QNptHv37r/+9a+dnZ2P9U3CMITSDQAAjM0A83v6S+JhB/kkJSXl5uYmJibOmzcvIiJi586dTCoPe3B/q1LL9WGOa4nzYU/OXjY7H0gjJyenDz74QGNWJBgWbFMAAAAjJBAIPMaMeZ2Q499+O8vGhp3fw+fz8/PzVZN4oqOjo6Oj6W937dqlGuTj4eFx/fr1hoYGFxcXQkhrayuHw6moqOjq6mIPJoSw46r7+vrCwsJUc32Y0/H5/MLCQrU4H+a2KXtytWWrroRx7949+uLGjRvMwRUrVqxYsYL50dfXlxkGBgSl2+C1tLTIZLJHpjgMglQqNTU1VY356k9ra6uNjQ2Hw3niawAAMHSPzO8hWpN41IJ8eDwerdsIIba2tuSXqTxqg7/77ju12egWAbVcH1WqcT719fVbt26Ni4vTODl72RrzgcBY6eGGaZtU+tm//32vvX0gva21tKseRCfrDRs2LFq0iPmxtLTUwsKCuXrc0tIiEAh+//vf0x+7u7s5HI6tra2tra2dnZ2Pj8/f//53+qva2tqwsLDw8PC4uLjnnnsuJyeHEFJTU2Npaal6OnNz87q6usednBCyZMkS5sGF1tbWuXPnMr9at27dnJ/duHEjPz//4MGDj/UlAACMHLrP76FeY0lMTBx4ro+FhcXevXv/8Ic/DOkiwUDpunRrlUj+XV7uPWPGP0pKbg2gt7WWJtGD6GSdkpJy8uRJ5qSZmZlJSUlMzv3x48efeuqpo0ePKpVK5i137txpbW1taWnZvXv3smXL2tvb5XJ5QkJCcnLyjRs3ysvLd+zYsWzZsgcPHmg/9QAnJ4RkZWUFBgaamZkRQtLT05OTk0tKSpi3nDx5ctnPHBwc5s6d+7e//U0qlT7W9wAAADr2WLk+lpaWgYGBQ7oeMFw6Ld1aJZK8q1cnPPNML4/nFhv72X/+U/fL6k0ul7/xxhtBQUELFiwoKysjv2wS3V8n64KCgrVr19IZNmzYcO7cOfY8VEBAgIuLy9mzZ+mPmZmZqu2njxw5snPnTi6Xe+HCBfbiIyIihEKhRCLJzc3lcrlr1qyhx6dMmbJ///5HPi4wwMkJITt37nz55Zfp8aamJtX/9967d8/Z2TkuLi42NjYuLs7S0tLExCQmJubo0aPazw4AAADGQXelW6tEknv1qvczzzwgpJMQKY9nERf3SUVFrUr19q9//UsikZSVla1atYomfqSlpTk5OaWnp7e2ttJO1pcvXz569OjNmzeZX92/f7++vp7OcOfOHalUyp6HkZKSkpGRQQi5evVqV1dXZGQkPV5RUSGVSqdOnZqcnKxaCZ04cSIjI+Pzzz9ftGhRTEyMm5vbtWvXgoKCVB8vS0xMHDduHCHkwYMHz6tgbsUOfHKlUllZWenu7k4HvPPOO2+88QYzvrq6ura21tPT08vL68MPP6QX8Hx8fHJzc5/EHxEAAAAMd7or3b4qLnYLD79PSAchLYQ0K5X3CRH4+3/x3XdMb+uJEyfm5eVt3LhRJpOpXUnS0smaTcs88+fPP3XqVF9fX2Zm5vz585k+1EeOHAkMDMzPz7e3t//yyy+ZavLChQtFRUXFxcXl5eWOjo6EEFNTU7WNPAyBQLBKBc1aeazJb926ZWNj098DGSKRaM2aNVVVVZcuXcrKyqKXDydMmFBdXa3l2wAAAACjobvS7cVp0747d65NLm8lpFmplMpknXfvkoKCZ2xtmatT3t7epaWlDg4OGzdufOGFF1TfrqWTtSr6uJiWecRicWBg4NmzZzMzM1NSUuhBuVx+9OhRkUiUkZFRWVkpEomY61g7d+7cs2fP/v37v/rqq88+++zhw4cTJkwoKChQ3WPx/PPP0+QTExOTaBW0AnusyZubm7W0xvb391+/fj2Xy7Wzs5szZw6dx9TUVCQSDfBPAQAAAAya7pqDWI4enejr+1lennls7H1Cupqa5GfPxjs4qPa2PnDggLm5+fr16998801XV1daHtG9lkwn646ODrVO1ra2trdv35bL5VKp9MqVKxrn4fP5zEpSUlI++ugjHo/HPEZ25swZZ2fntLQ0+uPWrVs///zz2NhY1fX7+PgIBIKOjo6IiIhx48Z9+umnq1atIoTk5+dXVVVFRkbW1tZq/OCPNbmnp2dtba1MJtNYwB08eDAvLy8zM1Mmk50/f37jxo2EkOrq6oE/+goAAAAGTXdX3UxMTFycnF6dNKkuP/9+Y6Py3Ll4Bwe13taxsbHbt2+Pj4+Pj49fvXo1n89nmkRr6WQdGhoqk8l8fHxeeOGFiRMnapxHdSUvvfRSWVkZc8mNEHLkyJEFCxYwP86dO/f06dPsbZs2NjaXL18WCATHjx8/dOiQu7t7QEDA22+/nZaWpqWz2mNNbmNjM2HCBKaliJrXXnuttbU1MjLSzc3NzMwsKiqKEHLz5k2UbgAAACOETlvyCgQCt7Fj1xCS+d134a6u7N7Wbm5upaWlt27dcnJyog1pmSbRo0eP7q+TtVAoLC0tbWpqoo+LUWrzqLK0tFRLAjl+/Ljqjx4eHrTZh2ojD0IIsxnCz8/v6tWrt2/fJoS4urrSg+7u7sxDe9T9+/cHMfmyZctOnDixYcMGZvydO3eYL7CwsLC5uZnD4djb29ODBQUFaqcAAAAAY6XrNAWBQDB+7NjlIpGW3tZ0tyaDaRKtvZO1at2mcZ4njinanqzXX3991qxZa9asYXY5qHFwcGBeFxYWzpgxgynjAAAAwLjpIU1BX72tDQWfzz98+HBPT89ABru6ujId5gAAQE2TVLo1J+duR8dA8nvYzp07l5iY+Ljvev/99x8r58be3v769evXrl3jcDj79+9njjs4ODQ2NoaHh1tYWIhEIi6XSxOx3nnnncddEhgTPZRu8EhisZjZuqGdh4fHQKJOAQBGoEaJJLOsbGlc3KHLl2sGkN+jd+bm5qmpqc3NzaoHS0pKpFLp999/b2trK5VKpVLpjh079LVCGA5QugEAgBFqlEi+Ki9fMn26HY+3OiYmrbKyurFRrXrbvHmzm5tbUFBQeno6PaIW28M4duzYpEmTfHx8aJv3oqKit9566+WXX3Z1dU1OTqb3SbZs2eLt7R0dHX3jxo3+Zrt06dKqVatSUlI2bdrEXrOjo+PixYtxUQ200/WzbgAAAEOt4ee6jWZUm/N478bGbjpz5nVCPMeMoU8S37hxIyMjo6KioqOjIzIycs6cOQ8ePKCxPSKRKCAggMkkbGtr++CDD3Jzc+VyeUpKipeXl6mpaVpaWlFRkVgsnjFjRnFxsZWVVXp6+unTpx8+fBgdHR0XF8eEADGzeXp6dnV1ffrpp/v37583b57Glaempvr5+Z0/fz4iIkI33xUYnCEs3UJDQ0+fPj1084NxCw0N1fcSAMBQpRUXL4+PF6ocseHx5gQHH7t8ebWZGd3aderUqblz54pEIpFI9M0333C5XCa2p6qqSjW2Jysra/z48cXFxYQQLy+vgoKCmTNnTp8+PTg4mBASFhZWW1vb0NCQnJzs7e1NCJkxYwZRCQFiZvP09CSETJ48+Te/+U1/KxcKhXv37l25cmV5efmQfT1g2Ib2qpuNjc2Qzg9GrK2tTd9LAABD9Ztp0w4VFLwZFWX+82a4itbWrKKiWTY2THOompoa2gqUEGJhYWFiYlJRUZGQkLBy5crw8PDz588zs9XX15uamtKbrREREd7e3g8ePDAzM6O/5fF4SqWysbGRSfqhzUr7m83Ozk774uPj49PS0vBAG/QHz7oBAICxsR09OmnChC1nzrTJ5YSQitbWQwUFUUKhan5PYmIivQfa1dUVHBz88OFDJrYnLCyMie0hhCQld779tAAACBJJREFUJUml0qVLly5fvvzWrVtNTU3sMz7//PPZ2dkymay7u5sGTPc320Ds3r37r3/9a2dn5+C/AjBeKN0AAMDYmJiYuDk5LfT13XTmTFFT0+HCwhgzM7X8nujo6J6enokTJ4aHh69bt2706NHs2B460t/ff/LkySEhIX5+fuXl5bNnz2afMTo6WiKR+Pj4BAcH+/j4EEL6m20gnJycPvjgA7Xu8QAUR62nv5orV654eoUMbuqib7LVbphaW1v7+vpWVVW1tLRof6+Li4uLi8ulS5cUCsXgzg6Grq2t7dnps/S9CgAwDLs/+Sg1NVXtYG9v783GxuNXr0aKROz8Huru3bv29vbMQblcrhrbQ9u/U1KptLW1dfz48f2tQalUVldXOzs7C4XCR84GQ23Tpk1r1n6g71UM0s0bpVoe+B6mO0y1RIKCgfrpp58IId7e3vjDBQDdEAgEnmPGrDIz05Lf4+TkpPojO7aHQdvhajkdh8OhGxEGMhvAoOmndDM3N3d3d29pabG3t5fL5Xfu3GlvbyeEODs7Ozk59fX1dXd305FisdjR0VGpVLa0tNDMUEdHRycnp7q6ut7eXm9v75aWlv/+97/sYWKx2M7OjsPhtLe395fmDrrU3d1dVlb2448/BgUFeXh46Hs5ADAi0Pwefa8C4EnSz7NuPB5PJBI5Ojo2NzebmprSMFChUDhu3Lienp729nb6r5PRo0e7urq2tLQ0NzeLxeIxY8YQQu7du8fj8dzd3cePH8/n85uamkQikdowCwsLV1fXhoaGhoYGR0dHKysrvXxMYOvs7CwuLs7OzlZrFw4AAAADoc9tCnV1dQ0NDa2trSKRiMPhWFtbE0J++umn+vr6jo4OQoitra1CoaCPu8nlcvrknEKhuHnzplAotLKyqq6ulslkdnZ2asPoLTmxWCwSiWi7RT1+TGBraWnJzc39+uuvsX8KAADgseizdJPL5YQQZp+EQCBQKpX0IL1hKhQKlUolh8PhcrmNjY3M5ga5XE7fRcs19jCJRFJZWdnV1WVnZxcQEODg4KCXDwhaKJXKurq67Ozs+/fv63stAAAABmMYbVNoa2sbO3asWCyWSCT0AltnZ6eVlVVXV1d3d7eLiwut5zgcjpeXV3d3t1Kp9PT0LCsr6+zstLGxUR3m6Og4duzYqqqqmpqa0NBQpnEiDB8cDsfX1zcgIMDU1FTfawEAg4f8HlBjxJE8w6h0k0ql7e3tYrF47NixEonE1NS0oaGBz+d7enryeLzOzk5639PFxcXMzOzatWsKhWLSpEnjxo2rq6szNTVVHaZQKOzt7QMCAjgcTmdn5927d/X94eAXxGLx5MmTLS0t9b0QADAeyO8BVUYcyaPT0q29vf3ixYv0NfOirq6O2QF67do1gUAgk8mYdm7V1dW1tbV8Pr+np4ceuX37Nt1DqjoJe9iPP/7I4/G4XG5fX9+QfzAYMCsrqylTpowdO1bfCwEAADBIw+iqG0VD4lQpFAqmINOCPUwul9Mn52A44PP5oaGhEydO5HKR4QEAADBI+EsUdGTixIl+fn6o2wBAN6ytrZ9++ulHZr0TQlxcXJ5++mn81wkMxbC76gYAAKBLiHgxCIjkYaB0AwAAY4b8HuOASB4Grg8DAIAxQ36PMUEkD0HpBgAAIwHye4zJCI/kGdobpkbcVQUAAAzIwPN7OBxOY2Mj07KA5vdwOBy1/B5mGM3vcXR0tLOzc3Jyunnz5ki+IKQzNJLn7t27CQkJ5ubm+l6OTg1h6SZTKFvMPeUcPE4Hj42nlNndv6nvVQCA0UJ+j6EbyZE8Q1hX9fXJ+IoeOQ+lGzw2vqKnF72UAWDIIL/HoI3wSJ6hrKsUCmGftJsnGsJTgJES9nVwlfpeBAAYMuT3GCVE8pAhLd2enR5fcqnARGAr4wqG7ixgfPiKXpMe6bMRs/S9EAAwcsjvMSCI5GEMYekmFJqZ8ExsH9y+Jxqv4PCG7kRgTLhKuc2DWwK+qUCAih8AAP7PxIkT9b2E4WJoS9fp0+N7Hz6w66wRKLqH9ERgHASKHvvOmt6HD6Y9E6vvtQAAAAxHQ37VMS4uichk1p11Ng//O0rWyVPKCMFDTKBKyVPKRsk6bR7ese6s5SgVcXEv6XtJAAAAw5Qutn9GRSd2dLR9e/m8Gbedzzcx4Y709DFQI1Mo+/r6iEIZPDXCyspG38sBAAAYvnTUucPKyiY2Lkk35wIAAAAwVmi6BgAAxgD5PTBCoHQDAACDh/weUGXckTwjvTkKAAAYAZrfo+9VwHBh3JE8KN0AAMDwKRTCPqm+FwHDhXFH8qB0AwAAg/fs9Hh+j8REoZ6OACMQjeR5zngjeVC6AQCAwWPye7hKpFGNaDSSZ5RRR/KgdAMAAGOA/B4YIZE8KN0AAMBIIL9nRBpxkTzYRw0AAMYD+T0j0EiL5EHpBgAARgX5PWDccMMUAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgo3QAAAAAMBko3AAAAAIOB0g0AAADAYKB0AwAAADAYKN0AAAAADAZKNwAAAACDgdINAAAAwGCgdAMAAAAwGCjdAAAAAAwGSjcAAAAAg4HSDQAAAMBgoHQDAAAAMBgmjxxx80apDtYBAAAAAI/EUSqV+l4DAAAAAAwIbpgCAAAAGAyUbgAAAAAGA6UbAAAAgMFA6QYAAABgMFC6AQAAABgMlG4AAAAABgOlGwAAAIDBQOkGAAAAYDD+H3KsT6dETQQmAAAAAElFTkSuQmCC
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBlZGl0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaW1lQWNjb3VudGluZzwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZSBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZT5UaW1lIEFjY291bnRpbmc8L05hbWU+CiAgICAgICAgICAgICAgICAgICAgPExpbms+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0PC9MaW5rPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8VHlwZT5NZW51PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjYwMDA8L1ByaW8+CiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc0tleT48L0FjY2Vzc0tleT4KICAgICAgICAgICAgICAgICAgICA8QmxvY2s+SXRlbUFyZWE8L0Jsb2NrPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FZGl0IHRpbWUgcmVjb3JkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPE5hbWU+RWRpdDwvTmFtZT4KICAgICAgICAgICAgICAgICAgICA8TGluaz5BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjIwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLkRlZmF1bHRzLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuVGFibGUuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPEphdmFTY3JpcHQ+VGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgICAgIDxKYXZhU2NyaXB0PlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qczwvSmF2YVNjcmlwdD4KICAgICAgICAgICAgICAgICAgICA8SmF2YVNjcmlwdD5UaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+VGltZUFjY291bnRpbmc8L05hdkJhck5hbWU+CiAgICAgICAgICAgICAgICA8VGl0bGUgVHJhbnNsYXRhYmxlPSIxIj5PdmVydmlldzwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5PdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgIDxOYW1lPk92ZXJ2aWV3PC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjEwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLkRlZmF1bHRzLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuVGFibGUuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPlRpbWVBY2NvdW50aW5nPC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPFRpdGxlIFRyYW5zbGF0YWJsZT0iMSI+U2V0dGluZ3M8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgIDxOYW1lPlNldHRpbmdzPC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzwvTGluaz4KICAgICAgICAgICAgICAgICAgICA8VHlwZT48L1R5cGU+CiAgICAgICAgICAgICAgICAgICAgPEJsb2NrPjwvQmxvY2s+CiAgICAgICAgICAgICAgICAgICAgPE5hdkJhcj5UaW1lQWNjb3VudGluZzwvTmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NLZXk+PC9BY2Nlc3NLZXk+CiAgICAgICAgICAgICAgICAgICAgPFByaW8+OTAwPC9QcmlvPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0NTUz4KICAgICAgICAgICAgICAgICAgICA8SmF2YVNjcmlwdD5UaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPnRpbWVfYWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaW1lQWNjb3VudGluZzwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZSBUcmFuc2xhdGFibGU9IjEiPlJlcG9ydGluZzwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxHcm91cD50aW1lX2FjY291bnRpbmc8L0dyb3VwPgogICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlByb2plY3QgdGltZSByZXBvcnRpbmcuPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZT5SZXBvcnRpbmc8L05hbWU+CiAgICAgICAgICAgICAgICAgICAgPExpbms+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmc8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPFR5cGU+PC9UeXBlPgogICAgICAgICAgICAgICAgICAgIDxCbG9jaz48L0Jsb2NrPgogICAgICAgICAgICAgICAgICAgIDxOYXZCYXI+VGltZUFjY291bnRpbmc8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PjwvQWNjZXNzS2V5PgogICAgICAgICAgICAgICAgICAgIDxQcmlvPjUwMDwvUHJpbz4KICAgICAgICAgICAgICAgIDwvTmF2QmFyPgogICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0NTUz4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nVmlldyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8R3JvdXA+dGltZV9hY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxHcm91cFJvPnRpbWVfYWNjb3VudGluZzwvR3JvdXBSbz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyB2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaW1lQWNjb3VudGluZzwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgICAgIDxUaXRsZSBUcmFuc2xhdGFibGU9IjEiPlZpZXc8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8R3JvdXBSbz50aW1lX2FjY291bnRpbmc8L0dyb3VwUm8+CiAgICAgICAgICAgICAgICA8L05hdkJhcj4KICAgICAgICAgICAgICAgIDxMb2FkZXI+CiAgICAgICAgICAgICAgICAgICAgPENTUz5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0NTUz4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdFN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIiBUcmFuc2xhdGFibGU9IjEiPmludmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiIFRyYW5zbGF0YWJsZT0iMSI+dmFsaWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uTmFtZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uU3RhdHVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5pbnZhbGlkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIiBUcmFuc2xhdGFibGU9IjEiPnZhbGlkPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJXZWVrbHlIb3VycyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+NDA8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJMZWF2ZURheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjIzPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyT3ZlcnRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4wPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZVN0YXJ0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdTZXR0aW5nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4yMDE1LTAxLTAxPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjIwMTUtMTItMzE8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEZXNjcmlwdGlvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld1NldHRpbmc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPlB1dCB5b3VyIGRlc2NyaXB0aW9uIGhlcmUuPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyU3RhdHVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3U2V0dGluZzwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+NDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjI8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6Tm90aWZ5TW9kdWxlIyMjODg4LVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVOb3RpZnk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6Tm90aWZpY2F0aW9uOjpUaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MTA8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6UmVkdWNlVGltZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0mZ3Q7IHRyYXZlbGluZzsgQ29udGVudCA9Jmd0OyA1MCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJ0cmF2ZWxpbmciPjUwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiIFRyYW5zbGF0YWJsZT0iMSI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiIFRyYW5zbGF0YWJsZT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJQcmVBcHBsaWNhdGlvbk1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPktlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3VudGluZzo6Vmlld0VkaXQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPl4oPzogUFJPSkVDVFwjIHwgSU5GUkE6IHwgUFJPRFVDVDogKTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpQcm9qZWN0TGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdFZGl0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWN0aW9uTGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGltZUFjY291bnRpbmc8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdW50aW5nOjpWaWV3RWRpdDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiIFRyYW5zbGF0YWJsZT0iMSI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiIFRyYW5zbGF0YWJsZT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdFZGl0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpBY3RpdmVGaWx0ZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdFZGl0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpBbGxvd01hc3NFbnRyeUZvclVzZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291bnRpbmc6OlZpZXdFZGl0PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSIgVHJhbnNsYXRhYmxlPSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpUb29sQmFyTW9kdWxlIyMjMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUb29sQmFyTW9kdWxlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3NzQ2xhc3MiPkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvbiI+ZmEgZmEtY2xvY2stbzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN0YXRzOjpEeW5hbWljT2JqZWN0UmVnaXN0cmF0aW9uIyMjVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5UaW1lQWNjb3VudGluZzwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlN0YXRzPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OlN0YXRzOjpEeW5hbWljOjpUaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6UmVwb3J0aW5nUHJvamVjdCMjI1Nob3dPbmx5QWN0aXZlVXNlcnMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRpbWVBY2NvdW50aW5nPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaW1lQWNjb3V0bmluZzo6Vmlld1JlcG9ydGluZ1Byb2plY3Q8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIiBUcmFuc2xhdGFibGU9IjEiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIiBUcmFuc2xhdGFibGU9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgo8L290cnNfY29uZmlnPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdNw7ZjaHRlbiBTaWUgd2lya2xpY2ggZGllIFplaXRlcmZhc3N1bmcgZsO8ciBkZW4gYWt0dWVsbGVuIFRhZyBsw7ZzY2hlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnWmVpdGFicmVjaG51bmcgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0dlaGUgenUgRWluc3RlbGx1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNuYXZpZ2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ZvcmhlcmlnZXIgVGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTsOkY2hzdGVyIFRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdHZWhlIHp1IGRpZXNlbSBEYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ05pY2h0IGF1c2dlZsO8bGx0ZSBUYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0FsbGUgVGFnZSBhdXN3w6RobGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnQml0dGUgd8OkaGxlbiBTaWUgZGVuIEdydW5kIGbDvHIgSWhyZSBBYndlc2VuaGVpdCBmw7xyIGRpZSBhdXNnZXfDpGhsdGVuIFRhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdpbSBVcmxhdWInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Vya3Jhbmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdCaXR0ZSB3w6RobGVuIFNpZSBtaW5kZXN0ZW5zIGVpbmVuIFRhZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBHcnVuZCBmw7xyIGRpZSBBYndlc2VuaGVpdCBhdXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRmVsZGVyLCBkaWUgYXVzZ2Vmw7xsbHQgd2VyZGVuIG3DvHNzZW4sIHNpbmQgbWl0IGVpbmVtIFN0ZXJuICIqIiBnZWtlbm56ZWljaG5ldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdTaWUgbcO8c3NlbiBlaW5lIFN0YXJ0LSB1bmQgRW5kemVpdCBvZGVyIGVpbmUgWmVpdHNwYW5uZSBhbmdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVMOkdGlna2VpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdBbm1lcmt1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmUgQW5tZXJrdW5nIHZvbiBtZWhyIGFscyA4IFplaWNoZW4gTMOkbmdlIGVpbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ1N0YXJ0emVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdmUgQW5nYWJlbiBzaW5kIG5pY2h0IGVybGF1YnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBTdGFydHplaXQgd3VyZGUgYmVyZWl0cyBpbiBlaW5lbSBhbmRlcmVuIEVpbnRyYWcgYW5nZWdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnVW5nw7xsdGlnZXMgRm9ybWF0ISBCaXR0ZSBnZWJlbiBTaWUgZWluZSBaZWl0IGltIEZvcm1hdCBISDpNTSBlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ051ciAyNDowMCBpc3QgYWxzIEVuZHplaXQgZXJsYXVidC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdVbmfDvGx0aWdlIFplaXQhIEVpbiBUYWcgaGF0IG51ciAyNCBTdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnRW5kemVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnRGllIEVuZHplaXQgbXVzcyBuYWNoIGRlciBTdGFydHplaXQgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBFbmR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VuZ8O8bHRpZ2UgQW5nYWJlLiBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFaW5lIGfDvGx0aWdlIFplaXRkYXVlciBtdXNzIGdyw7bDn2VyIGFscyBOdWxsIHNlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gTmVnYXRpdmUgWmVpdHNwYW5uZW4gc2luZCBuaWNodCBtw7ZnbGljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdFaW5lIFplaWxlIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnU3VtbWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdTaWUga8O2bm5lbiBudXIgZWluZSBDaGVja2JveCBtYXJraWVyZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnQWxsZSBFaW50csOkZ2UgYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VpbnRyYWcgbMO2c2NoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdFaW5nYWJlIGJlc3TDpHRpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgZXJrcmFua3Qgc2luZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgaW0gVXJsYXViIHNpbmQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGdlYXJiZWl0ZXQgaGFiZW4sIG9id29obCBTaWUgw5xiZXJzdHVuZGVuIGdlbm9tbWVuIGhhYmVuPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIG1laHIgYWxzIDE2IFN0dW5kZW4gZ2VhcmJlaXRldCBoYWJlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01vbmF0c8O8YmVyc2ljaHQgWmVpdGJlcmljaHRlcnN0YXR0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfDnGJlcnN0dW5kZW4gKGluIFN0dW5kZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ8OcYmVyc3R1bmRlbiAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnw5xiZXJzdHVuZGVuIChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuICh2ZXJibGVpYmVuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVXJsYXViIChpbiBUYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnVXJsYXVic3RhZ2UgKGRpZXNlciBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1VybGF1YnN0YWdlIChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnVXJsYXVic3RhZ2UgKHZlcmJsZWliZW5kKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0Vya3Jhbmt0IChpbiBUYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdFcmtyYW5rdCAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdFcmtyYW5rdCAoU3VtbWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnVm9yaGVyaWdlciBNb25hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTsOkY2hzdGVyIE1vbmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdXb2NoZW50YWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0FyYmVpdHNzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0FyYmVpdHNzdHVuZGVuIChnZXNhbXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Byb2pla3TDvGJlcnNpY2h0IGRlcyBCZW51dHplcnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnU3R1bmRlbiAoaW0gTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdTdHVuZGVuIChnZXNhbXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnU3VtbWUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnWmVpdGJlcmljaHRlcnN0YXR0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNhdXN3YWhsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdHZWhlIHp1IERhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ051dHplcmJlcmljaHRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdwcm8gTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdW1tZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1VybGF1Yic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnRXJrcmFua3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnVmVyYmxlaWJlbmRlIFVybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RiZXJpY2h0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvamVrdMO8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnWnVyIEJlcmljaHRlcnN0YXR0dW5nc8O8YmVyc2ljaHQgZ2VoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdEZXJ6ZWl0IHdlcmRlbiBpbiBkaWVzZW0gUHJvamVrdCBudXIgYWt0aXZlIEJlbnV0emVyIGFuZ2V6ZWlndC4gVW0gZGllc2UgRWluc3RlbGx1bmcgenUgw6RuZGVybiwgYmVhcmJlaXRlbiBTaWUgYml0dGU6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0RlcnplaXQgd2VyZGVuIGFsbGUgemVpdGVyZmFzc2VuZGVuIEJlbnV0emVyIGFuZ2V6ZWlndC4gVW0gZGllc2UgRWluc3RlbGx1bmcgenUgw6RuZGVybiwgYmVhcmJlaXRlbiBTaWUgYml0dGU6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1plaXRhYnJlY2hudW5nLVByb2pla3RlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdQcm9qZWt0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnWnVyIEVpbnN0ZWxsdW5nc8O8YmVyc2ljaHQgZ2VoZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdQcm9qZWt0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1Byb2pla3RlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VpbiBQcm9qZWt0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdaZWl0YWJyZWNobnVuZ3NlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdUw6R0aWdrZWl0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTmV1ZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRlciBmw7xyIFByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0ZXIgZsO8ciBUw6R0aWdrZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRlciBmw7xyIEJlbnV0emVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnWmVpdGZlbnN0ZXIga8O2bm5lbiBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnVMOkdGlna2VpdHNsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1TDpHRpZ2tlaXQgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnVMOkdGlna2VpdHNlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VpbmUgVMOkdGlna2VpdCBtaXQgZ2xlaWNoZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuIEJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIGFuZGVyZW4gTmFtZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JlbnV0emVybGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdFaW5zdGVsbHVuZ2VuIGbDvHIgbmV1ZW4gQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdLb21tZW50YXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4gYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Byb2pla3QgZXJzdGVsbGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0RhdHVtIEJlZ2lubic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnRGF0dW0gRW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnVXJsYXVic3RhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdXb2NoZW5zdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdBdXRvcmlzaWVydGUgw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdTdGFydGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW4gZ8O8bHRpZ2VzIERhdHVtIGVpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdFbmRkYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0RhcyBFbmRlIGRlciBaZWl0c3Bhbm5lIG11c3MgbmFjaCBkZW0gQW5mYW5nIHNlaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdVcmxhdWJzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdXw7ZjaGVudGxpY2hlIFN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0tlaW5lIFplaXRzcGFubmUgZ2VmdW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1plaXRzcGFubmUgaGluenVmw7xnZW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnRGF0ZW5zYXR6IGFuemVpZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnQW5zaWNodCB2b24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnS2VpbiBFaW50cmFnIGbDvHIgZGllc2VuIFRhZyBnZWZ1bmRlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnS2FubiBBcmJlaXRzZWluaGVpdGVuIG5pY2h0IGVpbmbDvGdlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ0xldHp0ZSBQcm9qZWt0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gRWluIFRhZyBoYXQgbnVyIDI0IFN0dW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICdLYW5uIEFyYmVpdHNlaW5oZWl0ZW4gbmljaHQgbMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRGllc2VzIERhdHVtIGlzdCBhdcOfZXJoYWxiIGRlcyBHcmVuendlcnRlcywgYWJlciBTaWUgaGFiZW4gZGllc2VuIFRhZyBiaXMgamV0enQgbm9jaCBuaWNodCBlaW5nZWbDvGd0LCBhbHNvIGJla29tbWVuIFNpZSBkYWbDvHIgZWluZSghKSBDaGFuY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnVW52b2xsc3TDpG5kaWdlIEFyYmVpdHN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0JpdHRlIGRpZSBBcmJlaXRzc3R1bmRlbiBlaW50cmFnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0VpbmdhYmVuIGdlc3BlaWNoZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRmVobGVyIGJlaSBkZXIgRWluZ2FiZSBmw7xyIG1laHJlcmUgVGFnZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnRGF0ZW4gZsO8ciBtZWhyZXJlIFRhZ2UgZXJmb2xncmVpY2ggZXJmYXNzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0VpbmdlZ2ViZW5lcyBEYXR1bSB1bmfDvGx0aWchIERhdHVtIHd1cmRlIGF1ZiBcJ2hldXRlXCcgZ2XDpG5kZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnRXMgaXN0IGtlaW5lIFplaXRwZXJpb2RlIGtvbmZpZ3VyaWVydCwgb2RlciBkYXMgYW5nZWdlYmVuZSBEYXR1bSBsaWVndCBhdcOfZXJoYWxiIGRlciBrb25maWd1cmllcnRlbiBaZWl0cGVyaW9kZW4uIEJpdHRlIGtvbnRha3RpZXJlbiBTaWUgaWhyZW4gWmVpdGVyZmFzc3VuZ3MtQWRtaW5pc3RyYXRvciwgdW0gZGllIFplaXRwZXJpb2RlbiB6dSBha3R1YWxpc2llcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnWnVsZXR6dCBhdXNnZXfDpGhsdGUgUHJvamVrdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnQWxsZSBQcm9qZWt0ZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdCZXJpY2h0c3Byb2pla3Q6IEJlbsO2dGlnZSBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdCZXJpY2h0c3Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnQmVyaWNodGVyc3RhdHR1bmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuIGvDtm5uZW4gbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yLid9ID0gJ0JpdHRlIGtvbnRha3RpZXJlbiBTaWUgSWhyZW4gQWRtaW5pc3RyYXRvci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWt0IGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3QgYWt0dWFsaXNpZXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXVmZ2FiZSBoaW56dWdlZsO8Z3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBdWZnYWJlIGFrdHVhbGlzaWVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnRGllIFVzZXJJRCBpc3QgdW5nw7xsdGlnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLYW5uIEJlbnV0emVyZGF0ZW4gbmljaHQgZWluZsO8Z2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ0thbm4gWmVpdHBlcmlvZGUgbmljaHQgaGluenVmw7xnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICdCZW51dHplciBha3R1YWxpc2llcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnQmVudXR6ZXIgaGluenVnZWbDvGd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ05ldWVyIEJlbnV0emVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgZGVzIFplaXRyYXVtcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnQW5zaWNodDogQmVuw7Z0aWdlICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ1Vudm9sbHN0w6RuZGlnZSBBcmJlaXRzdGFnZSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBBbnplaWdlbiBkZXIgQW56YWhsIGRlciB1bnZvbGxzdMOkbmRpZ2VuIEFyYmVpdHN0YWdlIGRlcyBCZW51dHplcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRuYW1lIGbDvHIgbmV1ZSBUw6R0aWdrZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gUHJvamVrdHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEVuZGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFN0YXJ0ZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEJlc2NocmVpYnVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFVybGF1YnN0YWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0V2ZW50dWVsbCB2b3JoYW5kZW5lciDDnGJlcnN0dW5kZW7DvGJlcnRyYWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdTdGFuZGFyZCBXb2NoZW5hcmJlaXRzemVpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXIgbmV1ZW4gVMOkdGlna2VpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbmZhbmdzc3RhdHVzIGVpbmVzIG5ldWVuIFByb2pla3RzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gQmVudXR6ZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdJbm5lcmhhbGIgZGllc2VyIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGthbm4gZWluZSBSZWdFeHAgZGVmaW5pZXJ0IHdlcmRlbiwgZGllIGZlc3RsZWd0LCBiZWkgd2VsY2hlbiBQcm9qZWt0ZW4gZWluZSBCZW1lcmt1bmcgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MgKGRpZSBSZWdFeHAgYXJiZWl0ZXQgbWl0IHNteC1QYXJhbWV0ZXJuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0Jlc3RpbW10LCBvYiBkYXMgU3RhdGlzdGlrLU1vZHVsIEluZm9ybWF0aW9uZW4genVyIFplaXRhYnJlY2hudW5nIGdlbmVyaWVyZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnWmVpdGVyZmFzc3VuZ3MtRWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ1plaXQtRGF0ZW5zYXR6IGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0xlZ3QgZmVzdCwgYmlzIHdhbm4gbWFuIGluIMOkbHRlcmUgWmVpdGVpbnRyw6RnZSBiZWFyYmVpdGVuIGthbm4gKHouIEIuIDEwIFRhZ2UgenVyw7xja2xpZWdlbmQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgd2VyZGVuIG51ciBVc2VyIGFuZ2V6ZWlndCBkaWUgQXJiZWl0c3plaXRlbiB6dSBkZW0gZ2V3w6RobHRlbiBQcm9qZWt0IGhpbnp1Z2Vmw7xndCBoYWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0IHdlcmRlbiBkaWUgRHJvcGRvd24tRmVsZGVyIGltIGRlciBFZGl0aWVyLU9iZXJmbMOkY2hlIGluIGRlciBuZXVlbiBGb3JtIGFscyBGZWxkIG1pdCBBdXRvLVZlcnZvbGxzdMOkbmRpZ2VuIGFuZ2V6ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnRGVyIEZpbHRlciBiZWkgdm9yaGVyaWdlbiBQcm9qZWt0ZW4ga2FubiBiZWkgQWt0aXZpZXJ1bmcgZ2VudXR6dCB3ZXJkZW4sIGFuc3RlbGxlIGRhcyB6d2VpIFByb2pla3QgTGlzdGVuIChsZXR6dGUgdW5kIGFsbGUpIGdlbnV0enQgd2VyZGVuLiBFcyBrYW5uIGFsbGVyZGluZ3MgbnVyIGdlbnV0enQgd2VyZGVuIHdlbm4gVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aWVydCBpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdCZWkgQWt0aXZpZXJ1bmcgaXN0IGRlciBGaWx0ZXIgZGVyIHZvcmhlcmlnZW4gUHJvamVrdGUgc3RhbmRhcmRtw6Rzc2lnIGFrdGl2IGZhbGxzIHZvcmhlcmlnZSBQcm9qZWt0ZSB2b3JoYW5kZW4gc2luZC4gRXIga2FubiBudXIgZ2VudXR6dCB3ZXJkZW4gd2VubiBFbmFibGVBdXRvQ29tcGxldGlvbiB1bmQgIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpZXJ0IHNpbmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgIGvDtm5uZW4gQmVudXR6ZXIgImltIFVybGF1YiIsICJFcmtyYW5rdCIgdW5kICLDnGJlcnN0dW5kZW4iIGFuIG1laHJlcmVuIFRhZ2VuIGF1ZiBlaW5tYWwgc2V0emVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gQXJiZWl0c3RhZ2VuLCBuYWNoIGRlciBkaWUgQXJiZWl0c3plaXQgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEFyYmVpdHN0YWdlbiBvaG5lIEFyYmVpdHN6ZWl0ZWludHLDpGdlIG5hY2ggZGVuZW4gZWluZSBXYXJudW5nIGFuZ2V6ZWlndCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfDnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1Byb2pla3QtWmVpdC1SZXBvcnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOkcmVyIEF1c2RydWNrLCB1bSBkaWUgTGlzdGUgZGVyIFTDpHRpZ2tlaXRlbiBiZXrDvGdsaWNoIGRlcyBhdXNnZXfDpGhsdGVuIFByb2pla3RzIGVpbnp1c2NocsOkbmtlbi4gRGVyIFNjaGzDvHNzZWwgZW50aMOkbHQgZWluZW4gUmVndWzDpHJlbiBBdXNkcnVjayBmw7xyIFByb2pla3RlLCBkZXIgV2VydCBlaW5lbiBSZWd1bMOkcmVuIEF1c2RydWNrIGbDvHIgZGllIFTDpHRpZ2tlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpHJlciBBdXNkcnVjaywgdW0gZGllIExpc3RlIGRlciBQcm9qZWt0ZSBiZXrDvGdsaWNoIGRlcyBha3RpdmVuIEJlbnV0emVycyBlaW56dXNjaHLDpG5rZW4uIERlciBTY2hsw7xzc2VsIGVudGjDpGx0IGVpbmVuIFJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgZsO8ciBQcm9qZWt0ZSwgZGVyIFdlcnQgZW50aMOkbHQgZWluZSBrb21tYS1zZXBhcmllcnRlIExpc3RlIHZvbiBCZW51dHplcmdydXBwZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdHaWJ0IGFuLCBvYiBBcmJlaXRzc3R1bmRlbiBvaG5lIFN0YXJ0LSB1bmQgRW5kemVpdCBlaW5nZWdlYmVuIHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEaWVzZXMgTW9kdWwgendpbmd0IHp1ciBFaW5nYWJlIHZvbiBTdHVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ01vZHVsLCBkYXNzIGRlbiBBZ2VudCBpbSBOb3RpZmljYXRpb24tQmVyZWljaCBkZXMgQWdlbnQtSW50ZXJmYWNlcyBkYXLDvGJlciBpbmZvcm1pZXJ0LCB3ZW5uIHNjaG9uIHp1IGxhbmdlIGtlaW5lIFN0dW5kZW4gbWVociBlaW5nZXRyYWdlbiB3dXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1plaXRhYnJlY2hudW5nIEJlYXJiZWl0dW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnWmVpdGFicmVjaG51bmdzw7xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZyBCZXJpY2h0ZXJzdGF0dHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ1plaXRhYnJlY2hudW5nIEVpbnN0ZWxsdW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1plaXRhYnJlY2hudW5nIEFuc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnSGllciBrYW5uIG1hbiBlaW5nZWJlbiwgb2IgZsO8ciBlaW5lIGJlc3RpbW10ZSBUw6R0aWdrZWl0LCBkaWUgenUgdmVycmVjaG5lbmRlbiBTdHVuZGVuIGdla8O8cnp0IHdlcmRlbi4gWi4gQiB3ZW5uIFJlaXNlemVpdGVuIG51ciB6dXIgSMOkbGZ0ZSB2ZXJnw7x0ZXQgd2VyZGVuIChLZXkgPSZndDsgam91cm5leTsgQ29udGVudCA9Jmd0OyA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWaWwgZHUgdmlya2VsaWcgc2xldHRlIHRpZHNyZWduc2thYmV0IGZvciBkZW5uZSBkYWc/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ1JlZGlnZXIgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdEYXRvbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpnN0ZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRGFnZSB1ZGVuIG9wdGVnbmVsc2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnUMOlIGZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTeWdlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0Fmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdEZSBww6VrcsOmdmVkZSBmZWx0ZXIgZXIgbWFya2VyZXQgbWVkICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdEdSBza2FsIGluZHRhc3RlIGVuIHN0YXJ0LSBvZyBzbHV0ZGF0byBlbGxlciBlbiB0aWRzcGVyaW9kZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ09wZ2F2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdCZW3DpnJrbmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdiB0aWQgZXIgaWtrZSB0aWxsYWR0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnR2VudGFnbmUgdGltZXIgZXIgaWtrZSB0aWxsYWR0LiBTdGFydHRpZGVuIHN2YXJlciB0aWwgZXQgYW5kZXQgaW50ZXJ2YWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdTbHV0dGlkZW4gc2thbCB2w6ZyZSBzZW5lcmUgZW5kIHN0YXJ0dGlkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnR2VudGFnbmUgdGltZXIgZXIgaWtrZSB0aWxsYWR0LiBTbHV0dGlkZW4gc3ZhcmVyIHRpbCBldCBhbmRldCBpbnRlcnZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VneWxkaWcgcGVyaW9kZSEgRW4gZGFnIGhhciBrdW4gMjQgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRW4gZ3lsZGlnIHBlcmlvZGUgc2thbCB2w6ZyZSBzdMO4cnJlIGVuZCAwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdVZ3lsZGlnIHBlcmlvZGUhIE5lZ2F0aXZlIHBlcmlvZGVyIGVyIGlra2UgdGlsbGFkdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUaWxmw7hqIGVuIHLDpmtrZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ0kgYWx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnRHUga2FuIGt1biB2w6ZsZ2UgZXQgYWZrcnlkc25pbmdzZmVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdWaXMgYWxsZSBwdW5rdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdTbGV0IHRpZHNyZWduc2thYnNpbmR0YXN0bmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3LDpmZ0IGluZHPDpnR0ZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlIHVuZGVyIGRpdCBzeWdlZnJhdsOmcj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdFciBkdSBzaWtrZXIgcMOlLCBhdCBkdSBhcmJlamRlZGUsIG1lbnMgZHUgdmFyIHDDpSBmZXJpZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0VyIGR1IHNpa2tlciBww6EsIGF0IGR1IGFyYmVqZGVkZSwgbWVucyBkdSB2YXIgcMOlIGFmc3BhZHNlcmluZz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlIG1lcmUgZW5kIDE2IHRpbWVyPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTcOlbmVkbGlnIG92ZXJzaWd0IG92ZXIgdGlkc3JhcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdPdmVydGlkICh0aW1lciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnT3ZlcnRpZCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnT3ZlcnRpZCAoaSBhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Jlc3RlcmVuZGUgYWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0ZlcmllIChkYWdlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZWRhZ2UgYnJ1Z3QgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0ZlcmllZGFnZSBicnVndCAoaSBhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1Jlc3RlcmVuZGUgZmVyaWVkYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnU3lnZWZyYXbDpnIgKGRhZ2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnU3lnZWZyYXbDpnIgYnJ1Z3QgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnU3lnZWZyYXbDpnIgYnJ1Z3QgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0ZvcnJpZ2UgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOw6ZzdGUgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdVZ2VkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0FyYmVqZHN0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdBcmJlamRzdGltZXIgaSBhbHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnQnJ1Z2VycyBwcm9qZWt0b3ZlcmJsaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnVGltZXIgKG3DpW5lZGxpZyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1NhbWxldCBhbnRhbCB0aW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ0FsdCBpIGFsdCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdUaWRzcmFwb3J0ZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ03DpW5lZHNuYXZpZ2F0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnQnJ1Z2VycmFwcG9ydGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdJIGFsdCBmb3IgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnU2FtbGV0IHRvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1N5Z2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1Jlc3RlcmVuZGUgZnJhdsOmcnNkYWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RyYXBwb3J0ZXInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1Byb2pla3RyYXBwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUmVkaWdlciBpbmRzdGlsbGluZ2VyIGZvciB0aWRzcmVnbnNrYWJzcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1RpbGbDuGogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ1RpbGbDuGogcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdSZWRpZ2VyIHByb2pla3RpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXIgZXIgYWxsZXJlZGUgZXQgcHJvamVrdCBtZWQgZGV0dGUgbmF2bi4gVsOmbGcgdmVubGlnc3QgZXQgYW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnUmVkaWdlciB0aWRzcmVnbnNrYWJzaW5kc3RpbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGlsZsO4aiBvcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdOeSBicnVnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRyw6lyIHByb2pla3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFRhc2tzJ30gPSAnRmlsdHLDqXIgb3BnYXZlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHLDqXIgYnJ1Z2VyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdQcm9qZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnT3BnYXZlbGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdUaWxmw7hqIG9wZ2F2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdSZWRpZ2VyIG9wZ2F2ZWluZHN0aWxsaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0RlciBlciBhbGxlcmVkZSBlbiBvcGdhdmUgbWVkIGRldHRlIG5hdm4uIFbDpmxnIHZlbmxpZ3N0IGV0IGFuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdCcnVnZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ055ZSBicnVnZXJpbmRzdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgYnJ1Z2VyaW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ0tvbW1lbnRhcmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdWaXMgb3ZlcnRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnVGlsbGFkIG9wcmV0dGVsc2UgYWYgcHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWd5bmQgcGVyaW9kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnQWZzbHV0IHBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0ZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHByLiB1Z2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0dvZGtlbmR0IG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2RlbnMgYWZzbHV0bmluZyBza2FsIHbDpnJlIGVmdGVyIHBlcmlvZGVucyBzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RpbGbDuGogdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1NlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdEZXIgZXIgaWtrZSBmdW5kZXQgZGF0YSBmb3IgZGVubmUgZGFnLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLiBQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0ZXJpbmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4nfSA9ICdLb250YWt0IGRpbiBhZG1pbmlzdHJhdG9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ0FnZW50IGludGVyZmFjZS1ub3RpZmljYXRpb25zbW9kdWxldCBza2FsIHNlIGFudGFsbGV0IGFmIHVhZnNsdXR0ZWRlIGFyYmVqZHNkYWdlIGZvciBicnVnZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBoYW5kbGluZ2VyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdTdGFuZGFyZG5hdm4gZm9yIG55ZSBwcm9qZWt0ZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igc2x1dGRhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBiZWd5bmRlbHNlc2RhdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBmcmF2w6Zyc2RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igb3ZlcnRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIG5vcm1hbGUgdWdlbnRsaWdlIHRpbWVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIGhhbmRsaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3IgbnllIHByb2pla3Rlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgYnJ1Z2VyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lcmVyIGRlIHByb2pla3RlciwgZm9yIGh2aWxrZSBlbiBiZW3DpnJrbmluZyBlciBww6VrcsOmdmV0LiBIdmlzIFJlZ0V4cCBtYXRjaGVyIHDDpSBwcm9qZWt0ZXQsIHNrYWwgZHUgb2dzw6UgaW5kZsO4amUgZW4gYmVtw6Zya25pbmcuIFJlZ0V4cCBicnVnZXIgc214IHBhcmFtZXRlcmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdBbmdpdmVyIGZvciBodm9yIG1hbmdlIGRhZ2UsIGR1IGthbiBpbmRzw6Z0dGUgYXJiZWpkc2VuaGVkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzaW1hbHQgYW50YWwgYWYgYXJiZWpkc2RhZ2UgZWZ0ZXIgaHZpbGtldCBhcmJlamRzZW5oZWRlcm5lIHNrYWwgaW5kc8OmdHRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1JlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGJlZ3LDpm5zbmluZyBhZiBoYW5kbGluZ3NsaXN0ZSBpZsO4bGdlIGRldCB2YWxndGUgcHJvamVrdC4gTsO4Z2xlbiBpbmRlaG9sZGVyIGV0IHJlZ3Vsw6ZydCB1ZHRyeWsgZm9yIHByb2pla3QoZXIpLCBpbmRob2xkZXQgcnVtbWVyIHJlZ3Vsw6ZyZSB1ZHRyeWsgZm9yIGhhbmRsaW5nKGVyKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpnJlIHVkdHJ5ayBmb3IgYmVncsOmbnNuaW5nIGFmIHByb2pla3RsaXN0ZSBpZsO4bGdlIGJydWdlcmdydXBwZXIuIE7DuGdsZW4gaW5kZWhvbGRlciBldCByZWd1bMOmcnQgdWR0cnlrIGZvciBwcm9qZWt0KGVyKSwgaW5kaG9sZGV0IHJ1bW1lciBrb21tYXNlcGFyZXJldCBsaXN0ZSBvdmVyIGdydXBwZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdBbmdpdmVyLCBvbSBhcmJlamRzdGltZXIga2FuIGluZHPDpnR0ZXMgdWRlbiBzdGFydC0gb2cgc2x1dHRpZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEZXR0ZSBtb2R1bCBnZW5uZW10dmluZ2VyIGluZHPDpnR0ZWxzZXIgaSB0aWRzcmVnbnNrYWIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRGV0dGUgYWR2aXNlcmluZ3Ntb2R1bCBnaXZlciBlbiBhZHZhcnNlbCwgaHZpcyBkZXIgZXIgZm9yIG1hbmdlIHVmdWxkc3TDpm5kaWdlIGFyYmVqZHNkYWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ25za2FiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0JydWdlcywgaHZpcyBub2dsZSBoYW5kbGluZ2VyIGhhciByZWR1Y2VyZXQgYXJiZWpkc3RpbWVybmUgKGYuZWtzLiBodmlzIGt1biBoYWx2ZGVsZW4gYWYgcmVqc2V0aWRlbiBlciBiZXRhbHQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCknOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfTVhfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvIGRlIGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnTW9kaWZpY2FyIFJlZ2lzdHJvIGRlIEhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgYSBjb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIEZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNpZ3VpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdJciBhIGVzdGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEw61hcyBzaW4gcmVnaXN0cm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNjaW9uYXIgdG9kb3MgbG9zIGTDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdSZWdpc3RybyBtYXNpdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQb3IgZmF2b3IgZXNjb2phIHVuYSByYXrDs24gcGFyYSBzdSBhdXNlbmNpYSBwYXJhIGxvcyBkw61hcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRGUgdmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0F1c2VudGUgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciBzZWxlY2Npb25lIGFsIG1lbm9zIHVuIGTDrWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBvciBhdXNlbmNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnSG9yYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdIb3JhIGludsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ0hvcmEgZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgTm8gc2UgcGVybWl0ZW4gcGVyaW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0HDsWFkaXIgdW5hIGZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICdUb3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ8KhU8OzbG8gc2UgcGVybWl0ZSBlbGVnaXIgdW4gZWxlbWVudG8gY2hlY2tib3ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnTW9zdHJhciB0b2RvcyBsb3MgZWxlbWVudG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5hciBSZWdpc3RybyBkZSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2VyY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1IGF1c2VuY2lhIHBvciBlbmZlcm1lZGFkPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1cyB2YWNhY2lvbmVzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBtw6FzIGRlIDE2IGhvcmFzPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnVmlzdGEgbWVuc3VhbCBkZSB0aWVtcG9zIHJlcG9ydGFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ07Dum1lcm8gZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0hvcmFzIGV4dHJhcyB0cmFiYWphZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1RvdGFsIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdIb3JhcyByZXN0YW50ZXMgcGFyYSBhdXNlbnRhcnNlIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1ZhY2FjaW9uZXMgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdWYWNhY2lvbmVzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1ZhY2FjaW9uZXMgdG9tYWRhcyAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0TDrWFzIGRlIHZhY2FjaW9uZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQXVzZW5jaWEgcG9yIGVuZmVybWVkYWQgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXMgc2lndWllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdEw61hIGRlIGxhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yYXMgdHJhYmFqYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbCBkZSBob3JhcyB0cmFiYWphZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3RhIGRlIHByb3llY3RvIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSG9yYXMgKG1lbnN1YWxlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICh0aWVtcG8gZGUgdmlkYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBuZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgZGUgaG9yYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBtZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0ZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc3VhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RpZW1wbyB0b3RhbCBkZSB2aWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdBdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdEw61hcyBsaWJyZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JlcG9ydGVzIGRlIHByb3llY3RvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZXBvcnRlIGRlIHByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgcmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzb2xvIHNlIG11ZXN0cmFuIGxvcyB1c3VhcmlvcyBhY3Rpdm9zIGVuIGVzdGUgcHJveWVjdG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzZSBtdWVzdHJhbiB0b2RvcyBsb3MgdXN1YXJpb3MgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtaWVudG8sIHBvciBmYXZvciBhY3R1YWxpemUgbGEgY29uZmlndXJhY2nDs246JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBjb25maWd1cmFjacOzbiBkZWwgcHJveWVjdG8gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0FncmVnYXIgcHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdJciBhbCByZXN1bWVuIGRlIGNvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnQWdyZWdhciBQcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGVsIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdZYSBleGlzdGUgdW4gcHJveWVjdG8gY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlIGxhIENvbnRhYmlsaWRhZCBkZSBUaWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdBZ3JlZ2FyIHRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnVXN1YXJpbyBudWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnRmlsdHJvIHBhcmEgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0cm8gcGFyYSBUYXJlYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRybyBwYXJhIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnTG9zIHBlcsOtb2RvcyBkZSB0aWVtcG8gbm8gcHVlZGVuIHNlciBlbGltaW5hZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdyZWdhciBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1bmEgdGFyZWEgY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhY2nDs24gZGUgVXN1YXJpbyBOdWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGVsIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdDb21lbnRhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIGRlIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBkYXRvcyBkZSBlc3RlIGTDrWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnRMOtYXMgTGFib3JhbGVzIEluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1BvciBmYXZvciBpbnNlcnRlIHN1cyBob3JhcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdFcnJvciBhbCBpbnNlcnRhciBtw7psdGlwbGVzIGZlY2hhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnU2UgaW5zZXJ0YXJvbiBzYXRpc2ZhY3RvcmlhbWVudGUgbGFzIGVudHJhZGFzIGRlIHZhcmlhcyBmZWNoYXMhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnTGEgZmVjaGEgZW50cmFkYSBlcyBpbmNvcnJlY3RhISBMYSBmZWNoYSBkZSBoYSBjYW1iaWFkbyBhIGhveS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLiBQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnTG9zIMOabHRpbW9zIFByb3llY3RvcyBTZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIGxvcyBQcm95ZWN0b3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJ30gPSAnUG9yIGZhdm9yLCBjb250YWN0ZSBhIHN1IGFkbWluaXN0cmFkb3IuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdVc3VhcmlvIE51ZXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdFc3RhZG8gZGVsIFBlcmlvZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0TDrWFzIGxhYm9yYWxlcyBpbmNvbXBsZXRvcyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLCBuZWNlc2FyaW8gcGFyYSB2aXN1YWxpemFyIGVsIG7Dum1lcm8gZGUgZMOtYXMgaW5jb21wbGV0b3MgZGUgdW4gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBkZXNjcmlwY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBmYWx0YXMgKGTDrWFzIGRlIGF1c2VuY2lhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBzZW1hbmFsZXMgZXN0w6FuZGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgdXN1YXJpb3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgcGFyYSBjdcOhbGVzIHByb3llY3RvcyBlcyBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGNvbWVudGFyaW9zLiBTaSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgY29pbmNpZGUgY29uIGVsIHByb3llY3RvLCBzZSB0aWVuZSBxdWUgZXNjcmliaXIgdW4gY29tZW50YXJpby4gTGEgZXhwcmVzacOzbiByZWd1bGFyIHVzYSBlbCBwYXLDoW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGluZm9ybWFjacOzbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnRXNwZWNpZmljYSBlbCBuw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgcGFyYSByZWdpc3RyYXIgaG9yYXMgZGUgdHJhYmFqbyBhdHJhc2FkYXMgKHBvciBlamVtcGxvOiAxMCBkw61hcyBkZSBhbnRpZ8O8ZWRhZCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzb2xhbWVudGUgbG9zIHVzdWFyaW9zIHF1ZSBoYW4gcmVnaXN0cmFkbyBzdXMgdGllbXBvcyBlbiBlbCBwcm95ZWN0byBzZWxlY2Npb25hZG8gc2Vyw6FuIG1vc3RyYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnU2kgZXN0w6FuIGhhYmlsaXRhZG9zLCBsb3MgZWxlbWVudG9zIGRlc3BsZWdhYmxlcyBlbiBsYSBwYW50YWxsYSBkZSBlZGljacOzbiBoYW4gc2lkbyBtb2RpZmljYWRvcyBwb3IgY2FtcG9zIGRlIGF1dG8tY29tcGxldGFkbywgZXN0byBwYXJhIHNlciBtYXMgbW9kZXJub3MgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NpIGVzdMOhIGhhYmlsaXRhZG8sIGVsIGZpbHRybyBwYXJhIGVsIHByb3llY3RvIGFudGVyaW9yIHB1ZWRlIHNlciB1c2FkbyBlbiB2ZXogZGUgZG9zIGxpc3RhcyBkZSBwcm95ZWN0b3MgKGxhcyBhbnRlcmlvciB5IHRvZGFzIGxhcyBkZW3DoXMpLiBFc3RvIHNlIHBvZHLDoSB1c2FyIHNpLCB5IHNvbG8gc2kgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGVzdMOhIGhhYmlsaXRhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdTaSBlc3TDoSBoYWJpbGl0YWRvLCBlbCBmaWx0cm8gcGFyYSBlbCBwcm95ZWN0byBhbnRlcmlvciBlc3TDoSBhY3RpdmFkbyBwb3Igb21pc2nDs24gc2kgaGF5IHByb3llY3RvcyBwcmV2aW9zLiBFc3RvIHB1ZWRlIHNlciB1dGlsaXphZG8gc2ksIHkgc29sbyBzaSwgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnU2kgc2UgaGFiaWxpdGEsIHNlIGxlIHBlcm1pdGlyw6EgYWwgdXN1YXJpbyByZWdpc3RyYXIgInZhY2FjaW9uZXMiLCAiYXVzZW5jaWEgcG9yIGVuZmVybWVkYWQiLCAiYXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYSIgZW4gbcO6bHRpcGxlcyBmZWNoYXMgYWwgbWlzbW8gdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBkw61hcyBsYWJvcmFsZXMgZGVzcHXDqXMgZGUgbG9zIGN1YWxlcyBlcyBvYmxpZ2F0b3JpbyByZXBvcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBkw61hcyBsYWJvcmFsZXMgc2luIHJlZ2lzdHJvIGRlIGhvcmFzIHRyYWJhamFkYXMgZGVzcHXDqXMgZGUgbG9zIGN1YWxlcyBzZSBtb3N0cmFyw6EgdW5hIGFkdmVydGVuY2lhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnRXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBsYSBsaXN0YSBkZSBhY2Npb25lcywgZGUgYWN1ZXJkbyBhbCBwcm95ZWN0byBzZWxlY2Npb25hZG8uIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgbGFzIGV4cHJlc2lvbmVzIHJlZ3VsYXJlcyBwYXJhIGxhcyBhY2Npb25lcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBsYSBsaXN0YSBkZSBwcm95ZWN0b3MsIGRlIGFjdWVyZG8gYSBsb3MgZ3J1cG9zIGRlIHVzdWFyaW9zLiBLZXkgY29udGllbmUgbGEgZXhwcmVzacOzbiByZWd1bGFyIHBhcmEgbG9zIHByb3llY3RvcyB5IENvbnRlbnQsIHVuYSBsaXN0YSBkZSBncnVwb3MsIHNlcGFyYWRvcyBwb3IgY29tYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdFc3BlY2lmaWNhIHNpIGVzIHBvc2libGUgaW5zZXJ0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMgc2luIGRlZmluaXIgbG9zIHRpZW1wb3MgZGUgaW5pY2lvIHkgZmluYWxpemFjacOzbiBkZSBsYXMgdGFyZWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdFc3RlIG3Ds2R1bG8gaGFjZSBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIHF1ZSBtdWVzdHJhIHVuYSBhZHZlcnRlbmNpYSBzaSBoYXkgZGVtYXNpYWRvcyBkw61hcyBzaW4gcmVnaXN0cm8gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Jlc3VtZW4gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQWp1c3RlcyBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ZlciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdDb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdTZSB1c2Egc2kgYWxndW5hcyBhY2Npb25lcyByZWR1Y2VuIGVsIG7Dum1lcm8gZGUgaG9yYXMgdHJhYmFqYWRhcyAocG9yIGVqZW1wbG86IHNpIHPDs2xvIHNlIHBhZ2EgbGEgbWl0YWQgZGVsIHRpZW1wbyBkZSB2aWFqZSBwdWVkZSBlc3BlY2lmaWNhcnNlIEtleSA9PiBWaWFqZTsgQ29udGVudCA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvIGRlIGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnTW9kaWZpY2FyIFJlZ2lzdHJvIGRlIEhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgYSBjb25maWd1cmFjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIEZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNpZ3VpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICdJciBhIGVzdGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEw61hcyBzaW4gcmVnaXN0cm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNjaW9uYXIgdG9kb3MgbG9zIGTDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdSZWdpc3RybyBtYXNpdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQb3IgZmF2b3IgZXNjb2phIHVuYSByYXrDs24gcGFyYSBzdSBhdXNlbmNpYSBwYXJhIGxvcyBkw61hcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRGUgdmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0F1c2VudGUgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciBzZWxlY2Npb25lIGFsIG1lbm9zIHVuIGTDrWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBvciBhdXNlbmNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnSG9yYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdIb3JhIGludsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ0hvcmEgZGUgZmluYWxpemFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgTm8gc2UgcGVybWl0ZW4gcGVyaW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0HDsWFkaXIgdW5hIGZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICdUb3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ8KhU8OzbG8gc2UgcGVybWl0ZSBlbGVnaXIgdW4gZWxlbWVudG8gY2hlY2tib3ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnTW9zdHJhciB0b2RvcyBsb3MgZWxlbWVudG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5hciBSZWdpc3RybyBkZSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2VyY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1IGF1c2VuY2lhIHBvciBlbmZlcm1lZGFkPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBkdXJhbnRlIHN1cyB2YWNhY2lvbmVzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ8K/RXN0w6Egc2VndXJvIHF1ZSB0cmFiYWrDsyBtw6FzIGRlIDE2IGhvcmFzPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnVmlzdGEgbWVuc3VhbCBkZSB0aWVtcG9zIHJlcG9ydGFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ07Dum1lcm8gZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0hvcmFzIGV4dHJhcyB0cmFiYWphZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1RvdGFsIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdIb3JhcyByZXN0YW50ZXMgcGFyYSBhdXNlbnRhcnNlIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1ZhY2FjaW9uZXMgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdWYWNhY2lvbmVzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1ZhY2FjaW9uZXMgdG9tYWRhcyAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0TDrWFzIGRlIHZhY2FjaW9uZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQXVzZW5jaWEgcG9yIGVuZmVybWVkYWQgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0F1c2VuY2lhcyBwb3IgZW5mZXJtZWRhZCAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXMgc2lndWllbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdEw61hIGRlIGxhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yYXMgdHJhYmFqYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbCBkZSBob3JhcyB0cmFiYWphZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3RhIGRlIHByb3llY3RvIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSG9yYXMgKG1lbnN1YWxlcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICh0aWVtcG8gZGUgdmlkYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBuZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgZGUgaG9yYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBtZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIGEgZmVjaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0ZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc3VhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RpZW1wbyB0b3RhbCBkZSB2aWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW5jaWEgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdBdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdEw61hcyBsaWJyZXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JlcG9ydGVzIGRlIHByb3llY3RvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZXBvcnRlIGRlIHByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgcmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzb2xvIHNlIG11ZXN0cmFuIGxvcyB1c3VhcmlvcyBhY3Rpdm9zIGVuIGVzdGUgcHJveWVjdG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzZSBtdWVzdHJhbiB0b2RvcyBsb3MgdXN1YXJpb3MgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtaWVudG8sIHBvciBmYXZvciBhY3R1YWxpemUgbGEgY29uZmlndXJhY2nDs246JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBjb25maWd1cmFjacOzbiBkZWwgcHJveWVjdG8gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZ3JlZ2FyIHByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnSXIgYWwgcmVzdW1lbiBkZSBjb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FncmVnYXIgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIENvbmZpZ3VyYWNpw7NuIGRlbCBQcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuIHByb3llY3RvIGNvbiBlc3RlIG5vbWJyZS4gUG9yIGZhdm9yLCBlbGlqYSB1bm8gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWdyZWdhciB0YXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ1VzdWFyaW8gbnVldm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0ZpbHRybyBwYXJhIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFRhc2tzJ30gPSAnRmlsdHJvIHBhcmEgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVXNlcnMnfSA9ICdGaWx0cm8gcGFyYSBVc3Vhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdyZWdhciBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1bmEgdGFyZWEgY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhY2nDs24gZGUgVXN1YXJpbyBOdWV2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGVsIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdDb21lbnRhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIGRlIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBkYXRvcyBkZSBlc3RlIGTDrWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0ZvciBmYXZvciBpbnNlcnRlIHN1cyBob3JhcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdFcnJvciBhbCBpbnNlcnRhciBtdWx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdTZSBoYW4gaW5zZXJ0YWRvIHNhdGlzZmFjdG9yaWFtZW50ZSBlbnRyYWRhcyBwYXJhIHZhcmlhcyBmZWNoYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdMYSBmZWNoYSBlcnJhZGEgZXMgaW52w6FsaWRhISBMYSBmZWNoYXMgZnVlIGNhbWJpYWRhIGEgaG95Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZXBvcnRlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yLid9ID0gJ0NvbnRhY3RlIGNvbiBzdSBhZG1pbmlzdHJhZG9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2FjacOzbiBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLCBuZWNlc2FyaW8gcGFyYSB2aXN1YWxpemFyIGVsIG7Dum1lcm8gZGUgZMOtYXMgaW5jb21wbGV0b3MgZGUgdW4gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBmZWNoYSBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYSBkZXNjcmlwY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBmYWx0YXMgKGTDrWFzIGRlIGF1c2VuY2lhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhcyBob3JhcyBzZW1hbmFsZXMgZXN0w6FuZGFyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHByb3llY3RvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgdXN1YXJpb3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgcGFyYSBjdcOhbGVzIHByb3llY3RvcyBlcyBvYmxpZ2F0b3JpYSBsYSBpbnNlcmNpw7NuIGRlIGNvbWVudGFyaW9zLiBTaSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgY29pbmNpZGUgY29uIGVsIHByb3llY3RvLCBzZSB0aWVuZSBxdWUgZXNjcmliaXIgdW4gY29tZW50YXJpby4gTGEgZXhwcmVzacOzbiByZWd1bGFyIHVzYSBlbCBwYXLDoW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzaSBlbCBtw7NkdWxvIGRlIGVzdGFkw61zdGljYXMgZGViZSBnZW5lcmFyIGluZm9ybWFjacOzbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnRXNwZWNpZmljYSBlbCBuw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgcGFyYSByZWdpc3RyYXIgaG9yYXMgZGUgdHJhYmFqbyBhdHJhc2FkYXMgKHBvciBlamVtcGxvOiAxMCBkw61hcyBkZSBhbnRpZ8O8ZWRhZCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzb2xhbWVudGUgbG9zIHVzdWFyaW9zIHF1ZSBoYW4gcmVnaXN0cmFkbyBzdXMgdGllbXBvcyBlbiBlbCBwcm95ZWN0byBzZWxlY2Npb25hZG8gc2Vyw6FuIG1vc3RyYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc2UgbGUgcGVybWl0aXLDoSBhbCB1c3VhcmlvIHJlZ2lzdHJhciAidmFjYWNpb25lcyIsICJhdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCIsICJhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhIiBlbiBtw7psdGlwbGVzIGZlY2hhcyBhbCBtaXNtbyB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGxhYm9yYWxlcyBkZXNwdcOpcyBkZSBsb3MgY3VhbGVzIGVzIG9ibGlnYXRvcmlvIHJlcG9ydGFyIGxhcyBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIGxhYm9yYWxlcyBzaW4gcmVnaXN0cm8gZGUgaG9yYXMgdHJhYmFqYWRhcyBkZXNwdcOpcyBkZSBsb3MgY3VhbGVzIHNlIG1vc3RyYXLDoSB1bmEgYWR2ZXJ0ZW5jaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdFZGl0YXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnUmVzdW1lbiBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnUmVwb3J0ZSBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdBanVzdGVzIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmVyIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1NlIHVzYSBzaSBhbGd1bmFzIGFjY2lvbmVzIHJlZHVjZW4gZWwgbsO6bWVybyBkZSBob3JhcyB0cmFiYWphZGFzIChwb3IgZWplbXBsbzogc2kgc8OzbG8gc2UgcGFnYSBsYSBtaXRhZCBkZWwgdGllbXBvIGRlIHZpYWplIHB1ZWRlIGVzcGVjaWZpY2Fyc2UgS2V5ID0+IFZpYWplOyBDb250ZW50ID0+IDUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Z2xfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdRdWVyZSByZWFsbWVudGUgYm9ycmFyIG8gVGVtcG8gQ29udGFiaWxpemFkbyBkZXN0ZSBkw61hPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdFZGl0ZSBSZXhpc3RybyBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIMOhIGNvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIGVudHJlIGRhdGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNlZ3VpbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ0lyIGEgZXN0YSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRMOtYXMgc2VuIGVudHJhZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjY2lvbmFyIHRvZG9zIG9zIGTDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdJbnRyb2R1Y2nDs24gZW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ0VzY29sbGEgbyBtb3Rpdm8gZGEgc8O6YSBhdXNlbmNpYSBub3MgZMOtYXMgc2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1ZhY2FjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnRW4gcGVybWlzbyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0VzY29sbGEgYW8gbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdFc2NvbGxhIG8gbW90aXZvIGRhIGF1c2VuY2lhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW50cm9kdWNpw7NuIGVuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdPcyBjYW1wb3Mgb2JyaWdhdG9yaW9zIGVzdMOhbiBtYXJjYWRvcyBjdW4gwqsqwrsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnSGFpIHF1ZSBkYXIgdW5oYSBob3JhIGRlIGluaWNpbyBlIGRlIHJlbWF0ZSBvdSB1biBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3hlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBUaW1lJ30gPSAnSG9yYSBkZSBpbmljaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vbiBzZSBwZXJtaXRlbiBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgaW5pY2lvIGNvaW5jaWRlIGNvbiBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPIGZvcm1hdG8gw6kgaW5jb3JyZWN0byEgSW50cm9kdXphIHVuaGEgaG9yYSBubyBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBzw7MgZXN0w6EgcGVybWl0aWRvIGNvbW8gaG9yYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0EgaG9yYSDDqSBpbmNvcnJlY3RhISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnSG9yYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdBIGhvcmEgZGUgZmluYWxpemFjacOzbiBoYSBkZSBzZXIgcG9zdGVyaW9yIMOhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgZmluYWxpemFjacOzbiBjb2luY2lkZSBjb24gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTyBwZXLDrW9kbyDDqSBpbmNvcnJlY3RvISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyw61vZG8gY29ycmVjdG8gaGEgZGUgc2VyIG1haW9yIGRlIGNlcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdPIHBlcsOtb2RvIMOpIGluY29ycmVjdG8hIE5vbiBzZSBwZXJtaXRlbiBwZXLDrW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0VuZ2FkaXIgdW5oYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsJ30gPSAnVG90YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdTw7Mgw6kgcG9zw61iZWwgc2VsZWNjaW9uYXIgdW4gZWxlbWVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnTW9zdHJhciB0b2RvcyBvcyBlbGVtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0VsaW1pbmUgRW50cmFkYSBUZW1wbyBDb250YWJpbGl6YWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWUgYSBpbnNlcmNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdDb25maXJtYSBxdWUgdHJhYmFsbG91IG1lbnRyZXMgdGnDsWEgbGljZW56YSBwb3IgZW5mZXJtaWRhZGU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIGVzdGFiYSBkZSB2YWNhY2nDs25zPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIHRpw7FhIHBlcm1pc28gcG9yIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtw6FpcyBkZSBkZXphc2VpcyBob3Jhcz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1Zpc3RhIHhlcmFsIG1lbnN1YWwgZGUgcmVwb3J0ZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnSG9yYXMgZXh0cmEgKGhvcmFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdIb3JhcyBleHRyYSAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdIb3JhcyBleHRyYSAodG90YWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Blcm1pc28gcG9yIGhvcmFzIGV4dHJhcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpw7NucyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjacOzbnMgY29sbGlkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVmFjYWNpw7NucyBjb2xsaWRhcyAodG90YWlzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdWYWNhY2nDs25zIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWNlbnphcyBwb3IgZW5mZXJtaWRhZGUgY29sbGlkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdMaWNlbnphcyBwb3IgZW5mZXJtaWRhZGUgY29sbGlkYXMgKHRvdGFpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNZXMgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ01lcyBzZWd1aW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRMOtYSBkYSBzZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0hvcmFzIGxhYm9yYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0hvcmFzIHRyYWJhbGxhZGFzIHRvdGFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN0YSB4ZXJhbCBkbyBwcm94ZWN0byBkbyB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzIChwb3IgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKHZpZGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWwgYWN1bXVsYWRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBtZXNlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgYSB1bmhhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnSW5mb3JtZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc3VhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RvdGFsIGRhIHZpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1ZhY2FjacOzbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpY2VuemEgcG9yIGVuZmVybWlkYWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1ZhY2FjacOzbnMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ0luZm9ybWVzIGRlIHByb3hlY3Rvcyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnSW5mb3JtZSBkZSBwcm94ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgw6EgdmlzdGEgeGVyYWwgZGUgaW5mb3JtZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBY3R1YWxtZW50ZSBzw7MgdXN1YXJpb3MgYWN0aXZvcyBuZXN0ZSBwcm94ZWN0byBzb24gbW9zdHJhZG9zLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1lbnRvLCBwb3IgZmF2b3IgYWN0dWFsaWNlIG8gYXh1c3RlOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdUb2RvIG8gdGVtcG8gY29udGFiaWxpemFkbyBwb2xvcyB1c3VhcmlvcyDDqSBtb3N0cmFkby4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGFjdHVsaWNlIG8gYXh1c3RlOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0ZSBDb250YWJpbGl6YWNpw7NuIGRvIFRlbXBvIGVuIEF4dXN0ZXMgZGUgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdFbmdhZGlyIHVuIHByb3hlY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVmFpYSDDoSB2aXN0YSB4ZXJhbCBkZSBheHVzdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnRW5nYWRpciB1biBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgYSBjb25maWd1cmFjacOzbiBkbyBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWGEgaGFpIHVuIHByb3hlY3RvIGNvbiBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xsYSB1biBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRWRpdGUgQ29udGFiaWxpemFjacOzbiBkbyBUZW1wbyBlbiBBeHVzdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRW5nYWRpciB1bmhhIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ05vdm8gdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnRmlsdHJhciBwb3IgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0cmFyIHBvciB0YXJlZmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVXNlcnMnfSA9ICdGaWx0cmFyIHBvciB1c3Vhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBwcm94ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgdGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0VuZ2FkaXIgdW5oYSB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRWRpdGFyIGEgY29uZmlndXJhY2nDs24gZGEgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdYYSBoYWkgdW5oYSB0YXJlZmEgY29uIGVzdGUgbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGxhIHVuIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgdXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdBeHVzdGVzIE5vdm8gVXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdBeHVzdGVzIEVkaXRhciBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnQ29tZW50YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgVGVtcG8gRXhjZXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQZXJtaXRpciBjcmVhY2nDs24gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnQ29taWVuem8gUGVyaW9kbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnRmluIFBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0TDrWFzIGRlIFZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdFeGNlc28gVGVtcG8gQXV0b3JpemFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkZSBjb21lem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnUG9yIGZhdm9yIGludHJvZHV6Y2EgdW5oYSBkYXRhIHbDoWxpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXRhIGRlIGZpbmFsaXphY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdGaW4gZG8gcGVyaW9kbyBkZWJlIHNlciBkZXNwb2lzIGRlIHF1ZSBjb21pZW5jZSBvIHBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0TDrWFzIGRlIHBlcm1pc28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm9uIHNlIGF0b3Bhcm9uIHBlcsOtb2RvcyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnRW5nYWRpciBwZXJpb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1Zpc3RhIFJleGlzdHJvIGRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzdGEgZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm9uIHNlIGF0b3Bhcm9uIGRhdG9zIHBhcmEgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnRyb2R1emEgYXMgc8O6YXMgaG9yYXMgZGUgdHJhYmFsbG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyY2nDs24gc2F0aXNmYWN0b3JpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm8gbWVudHJlcyBpbnRyb2R1Y8OtYW5zZSBkYXRhcyBtw7psdGlwbGVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdFbnRyYWRhcyBzYXRpc2ZhY3RvcmlhbWVudGUgaW50cm9kdWNpZGFzIHBhcmEgdmFyaWFzIGRhdGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnRGF0YSBpbnRyb2R1Y2lkYSBmb2kgaW52YWxpZGEhIEEgZGF0YSBmb2kgY2FtYmlhZGEgYSBob3hlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdJbmZvcm1lcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yLid9ID0gJ0NvbnRhY3RlIGNvIHNldSBhZG1pbmlzdHJhZG9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gbm90aWZpY2FjacOzbiBpbnRlcmZhY2UgZGUgYXhlbnRlIHBhcmEgdmVyIG8gbsO6bWVybyBkZSBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcyBwYXJhIG8gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21lIHByZWRldGVybWluYWRvIHBhcmEgYXMgYWNjacOzbnMgbm92YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWUgcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyBwcm94ZWN0b3Mgbm92b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgZmluIGRhIGRhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdBeHVzdGUgcG9yIGRlZmVjdG8gcGFyYSBpbmljaW8gZGEgZGF0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwcmVkZWZpbmlkYSBkYSBkZXNjcmljacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZG9zIGTDrWFzIGRlIHBlcm1pc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZGFzIGhvcmFzIGV4dHJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgYXMgaG9yYXMgZXN0YW5kYXJkIHNlbWFuw6Fpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIGFzIGFjY2nDs25zIG5vdmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIG9zIHByb3hlY3RvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyB1c3VhcmlvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIG9zIHByb3hlY3RvcyBwYXJhIG9zIGNhbGVzIHVuIGNvbWVudGFyaW8gw6kgcmVxdWlyaWRvLiBTZSBhIEV4cFJlZyBjb2luY2lkZSBubyBwcm94ZWN0bywgdGVuIHF1ZSBpbnNlcnRhciB1biBjb21lbnRhcmlvIHRhbcOpbi4gQSBFeHBSZWcgdXNhIG8gcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgcG9kZSB4ZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpemFjacOzbiBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BvciBjYW50b3MgZMOtYXMgYXRyw6FzIHBvZGUgaW5zZXJ0YXIgdW5pZGFkZXMgZGUgdHJhYmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIHPDsyB1c3VhcmlvcyBxdWUgZW5nYWRpcm9uIHRlbXBvIGRlIHRyYWJhbGxvIGFvIHByb3hlY3RvIHNlbGVjY2lvbmFkbyBzb24gbW9zdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBhbyB1c3VhcmlvIHBlcm1pdGVzZWxsZSBpbnRyb2R1Y2lyICJwZXJtaXNvIGRlIHZhY2FjacOzbnMiICwgInBlcm1pc28gcG9yIGVuZmVybWlkYWRlIiBlICJwZXJtaXNvIHBvciBleGNlc28gZGUgdGVtcG8iIHBhcmEgbXVsdGlwbGVzIGRhdGFzIGR1bmhhIHZlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gZGVzcG9pcyBkb3MgY2FsZXMgYXMgdW5pZGFkZXMgZGUgdHJhYmFsbG8gZGViZW4gc2VyIGluc2VydGFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gc2VuIGVudHJhZGFzIGRlIHVuaWRhZGVzIGRlIHRyYWJhbGxvIGRlc3BvaXMgZG9zIGNhbGVzIHVuaGEgYWxlcnRhIHNlcsOhIG1vc3RyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0V4cHJlc2nDs25zIHJlZ3VsYXJlcyBwYXJhIGEgbGlzdGEgcXVlIGNvbnRyaW54ZSBhIGFjY2nDs24gc2VndW5kbyBvIHByb3hlY3RvIHNlbGVjY2lvbmFkby4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gZXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYWNjacOzbihzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYSBsaXN0YSBxdWUgY29udHJpbnhlIG8gcHJveGVjdG8gc2VndW5kbyBvcyBncnVwb3Mgc2VsZWNjaW9uYWRvcy4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gbGlzdGEgc2VwYXJhZGEgcG9yIGNvbWFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2UgYXMgaG9yYXMgZGUgdHJhYmFsbG8gcG9kZW4gc2VyIGluc2VydGFkYXMgc2VuIHRlbXBvcyBkZSBpbmljaW8gZSBmaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBmb3J6YSBhcyBpbnNlcmNpw7NucyBlbiBDb250YWJpbGl6YWNpw7NuVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGEgdW5oYSBhbGVydGEgc2UgaGFpIG1vaXRvcyBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGUgY29udGFiaWxpemFjacOzbiBkbyB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Zpc3RhIFhlcmFsIGNvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSW5mb3JtZSBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQXh1c3RlcyBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWaXN0YSBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnUGFyYSB1c2FyIHNlIGFsZ3VuaGFzIGFjY2nDs25zIHJlZHVjaXJvbiBhcyBob3JhcyBkZSB0cmFiYWxsbyAocG9yIGV4ZW1wbG8sIHNlIHPDsyBhIG1pdGFkZSBkbyB0ZW1wbyBkZSB2aWF4ZSDDqSBwYWdhZG8gQ2hhdmUgPT4gdmlheGU7IENvbnRpZG8gPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWYWzDs2JhbiB0w7Zyw7Zsbmkgc3plcmV0bsOpIGVubmVrIGEgbmFwbmFrIGF6IGlkxZFlbHN6w6Ftb2zDoXPDoXQ/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0lkxZFmZWxqZWd5esOpcyBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnVWdyw6FzIGEgYmXDoWxsw610w6Fzb2tob3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRMOhdHVtIG5hdmlnw6FjacOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0VsxZF6xZEgbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnS8O2dmV0a2V6xZEgbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ1VncsOhcyBlcnJlIGEgZMOhdHVtcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdCZWplZ3l6w6lzZWsgbsOpbGvDvGxpIG5hcG9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ01pbmRlbiBuYXAga2lqZWzDtmzDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdUw7ZtZWdlcyBiZWplZ3l6w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVsOhbGFzc3phIGtpIGEgdMOhdm9sbMOpdGUgb2vDoXQgYSBraWplbMO2bHQgbmFwb2tyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1N6YWJhZHPDoWdvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQmV0ZWdzemFiYWRzw6Fnb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdDc8O6c3p0YXTDoXNvbiB0w7psw7NyYSBtaWF0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnTGVnYWzDoWJiIGVneSBuYXBvdCB2w6FsYXNzem9uIGtpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1bDoWxhc3N6YSBraSBhIHTDoXZvbGzDqXQgb2vDoXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdUw7ZtZWdlcyBiZWplZ3l6w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnQSBrw7Z0ZWxlesWRIG1lesWRayDigJ4q4oCdIGplbGxlbCB2YW5uYWsgbWVnamVsw7ZsdmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnS2kga2VsbCB0w7ZsdGVuaWUgYSBrZXpkxZEgw6lzIGJlZmVqZXrFkSBpZMWRdCB2YWd5IGVneSBpZMWRc3pha290Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnRmVsYWRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfDiXN6cmV2w6l0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdLZXpkw6lzaSBpZMWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdMOtdiBpZMWRcG9udG9rIG5lbSBlbmdlZMOpbHllemV0dGVrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnQXogaXNtw6l0bMWRZMWRIMOzcsOhayBuZW0gZW5nZWTDqWx5ZXpldHRlay4gQSBrZXpkw6lzaSBpZMWRIGVneSBtw6FzaWsgaWTFkWvDtnpyZSBpbGxlc3prZWRpay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ8OJcnbDqW55dGVsZW4gZm9ybcOhdHVtISDDk8OTOlBQIGZvcm3DoXR1bcO6IGlkxZF0IGFkam9uIG1lZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnQSAyNDowMCBjc2FrIGJlZmVqZXrDqXNpIGlkxZFrw6ludCBlbmdlZMOpbHllemV0dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfDiXJ2w6lueXRlbGVuIGlkxZFwb250ISBFZ3kgbmFwbmFrIGNzYWsgMjQgw7Nyw6FqYSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBUaW1lJ30gPSAnQmVmZWplesOpc2kgaWTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnQSBiZWZlamV6w6lzaSBpZMWRbmVrIGEga2V6ZMOpc2kgaWTFkSB1dMOhbiBrZWxsIGxlbm5pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdBeiBpc23DqXRsxZFkxZEgw7Nyw6FrIG5lbSBlbmdlZMOpbHllemV0dGVrLiBBIGJlZmVqZXrDqXNpIGlkxZEgZWd5IG3DoXNpayBpZMWRa8O2enJlIGlsbGVzemtlZGlrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRc3phayEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ0VneSDDqXJ2w6lueWVzIGlkxZFzemFrbmFrIG5hZ3lvYmJuYWsga2VsbCBsZW5uaWUgbnVsbMOhbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8OJcnbDqW55dGVsZW4gaWTFkXN6YWshIE5lZ2F0w612IGlkxZFzemFrb2sgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRWd5IHNvciBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICfDlnNzemVzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdDc2FrIGVneSBqZWzDtmzFkW7DqWd5emV0IGVsZW1ldCB2w6FsYXN6dGhhdCBraSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdNaW5kZW4gZWxlbSBtZWdqZWxlbsOtdMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgYmVqZWd5esOpcyB0w7ZybMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdCZWlsbGVzenTDqXMgbWVnZXLFkXPDrXTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdCaXp0b3MgYmVubmUsIGhvZ3kgZG9sZ296b3R0LCBtaWFsYXR0IGJldGVnc3phYmFkc8OhZ29uIHZvbHQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnQml6dG9zIGJlbm5lLCBob2d5IGRvbGdvem90dCwgbWlhbGF0dCBzemFiYWRzw6Fnb24gdm9sdD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0JpenRvcyBiZW5uZSwgaG9neSBkb2xnb3pvdHQsIG1pYWxhdHQgY3PDunN6dGF0b3R0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdCaXp0b3MgYmVubmUsIGhvZ3kgdMO2YmIgbWludCAxNiDDs3LDoXQgZG9sZ296b3R0Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnSWTFkWplbGVudMOpcyBoYXZpIMOhdHRla2ludMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ1TDumzDs3JhICjDs3JhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdUw7psw7NyYSAoZXogYSBow7NuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdUw7psw7NyYSAow7Zzc3plc2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdNZWdtYXJhZHQgY3PDunN6dGF0w6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1N6YWJhZHPDoWcgKG5hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnS2l2ZXR0IHN6YWJhZHPDoWcgKGV6IGEgaMOzbmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnS2l2ZXR0IHN6YWJhZHPDoWcgKMO2c3N6ZXNlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnTWVnbWFyYWR0IHN6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdCZXRlZ3N6YWJhZHPDoWcgKG5hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdLaXZldHQgYmV0ZWdzemFiYWRzw6FnIChleiBhIGjDs25hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnS2l2ZXR0IGJldGVnc3phYmFkc8OhZyAow7Zzc3plc2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0VsxZF6xZEgaMOzbmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdLw7Z2ZXRrZXrFkSBow7NuYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0jDqXRrw7Z6bmFwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdNdW5rYWlkxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnTGVkb2xnb3pvdHQgw7Nyw6FrIMO2c3N6ZXNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdBIGZlbGhhc3puw6Fsw7MgcHJvamVrdGrDqW5layDDoXR0ZWtpbnTFkWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ8OTcsOhayAoaGF2b250YSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ8OTcsOhayAow6lsZXR0YXJ0YW0pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnTWluZMO2c3N6ZXNlbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdJZMWRamVsZW50w6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdIw7NuYXAgbmF2aWfDoWNpw7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ1VncsOhcyBkw6F0dW1yYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdGZWxoYXN6bsOhbMOzaSBqZWxlbnTDqXNlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSGF2aSDDtnNzemVzw610xZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfDiWxldHRhcnRhbSDDtnNzemVzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdDc8O6c3p0YXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdTemFiYWRzw6FnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdCZXRlZ3N6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnSMOhdHJhbMOpdsWRIHN6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUHJvamVrdCBqZWxlbnTDqXNlayc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvamVrdCBqZWxlbnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnVWdyw6FzIGEgamVsZW50w6lzIMOhdHRla2ludMWRaMO2eic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0plbGVubGVnIGNzYWsgYXogYWt0w612IGZlbGhhc3puw6Fsw7NrIHZhbm5hayBtZWdqZWxlbsOtdHZlIGViYmVuIGEgcHJvamVrdGJlbi4gQSBtxbFrw7Zkw6lzIG3Ds2Rvc8OtdMOhc8OhaG96IGZyaXNzw610c2UgYSBiZcOhbGzDrXTDoXN0Oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdKZWxlbmxlZyBtaW5kZW4gaWTFkWVsc3rDoW1vbMOzIGZlbGhhc3puw6Fsw7MgbWVnIHZhbiBqZWxlbsOtdHZlLiBBIG3FsWvDtmTDqXMgbcOzZG9zw610w6Fzw6Fob3ogZnJpc3PDrXRzZSBhIGJlw6FsbMOtdMOhc3Q6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgcHJvamVrdGJlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdQcm9qZWt0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1VncsOhcyBhIGJlw6FsbMOtdMOhc29rIMOhdHRla2ludMWRaMO2eic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ1Byb2pla3QgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1Byb2pla3RiZcOhbGzDrXTDoXNvayBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdNw6FyIGzDqXRlemlrIGVneSBpbHllbiBuZXbFsSBwcm9qZWt0LiBWw6FsYXNzem9uIGVneSBtw6FzaWsgbmV2ZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSWTFkWVsc3rDoW1vbMOhc2kgYmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0ZlbGFkYXQgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnw5pqIGZlbGhhc3puw6Fsw7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ1Byb2pla3RlayBzesWxcsOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0ZlbGFkYXRvayBzesWxcsOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZlbGhhc3puw6Fsw7NrIHN6xbFyw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0F6IGlkxZFzemFrb2sgbmVtIHTDtnLDtmxoZXTFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdGZWxhZGF0bGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdGZWxhZGF0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdGZWxhZGF0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnTcOhciBsw6l0ZXppayBlZ3kgaWx5ZW4gbmV2xbEgZmVsYWRhdC4gVsOhbGFzc3pvbiBlZ3kgbcOhc2lrIG5ldmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdGZWxoYXN6bsOhbMOzbGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICfDmmogZmVsaGFzem7DoWzDsyBiZcOhbGzDrXTDoXNhaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdGZWxoYXN6bsOhbMOzYmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ01lZ2plZ3l6w6lzZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1TDumzDs3JhIG1lZ2plbGVuw610w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdGzDqXRyZWhvesOhcyBlbmdlZMOpbHllesOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnSWTFkXN6YWsga2V6ZGV0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnSWTFkXN6YWsgdsOpZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ1N6YWJhZHPDoWcgbmFwamFpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnw5Nyw6FrIGhldGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0pvZ29zdWx0IHTDumzDs3JhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdLZXpkw6lzaSBkw6F0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnw4lydsOpbnllcyBkw6F0dW1vdCBpbGxlc3N6ZW4gYmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnQmVmZWplesOpc2kgZMOhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnQXogaWTFkXN6YWsgdsOpZ8OpbmVrIGF6IGlkxZFzemFrIGtlemRldGUgdXTDoW4ga2VsbCBsZW5uaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdTemFiYWRzw6FnIG5hcGphaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIZXRpIMOzcsOhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1TDumzDs3JhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdOZW0gdGFsw6FsaGF0w7NrIGlkxZFzemFrb2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0lkxZFzemFrIGhvenrDoWFkw6FzYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdJZMWRZmVsamVneXrDqXMgbWVndGVraW50w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ0Ega8O2dmV0a2V6xZEgbWVndGVraW50w6lzZTogJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05lbSB0YWzDoWxoYXTDsyBhZGF0IGVycmUgYSBuYXByYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdMZWd1dMOzYmJpIHByb2pla3Rlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0JlZmVqZXpldGxlbiBtdW5rYW5hcG9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0lsbGVzc3plIGJlIGEgbXVua2FpZGVqw6l0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdTaWtlcmVzIGJlaWxsZXN6dMOpcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0hpYmEgdMO2cnTDqW50IHTDtmJiIGTDoXR1bSBiZWlsbGVzenTDqXNlIGvDtnpiZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0EgYmVqZWd5esOpc2VrIHNpa2VyZXNlbiBiZWlsbGVzenR2ZSBhIGvDvGzDtm5iw7Z6xZEgZMOhdHVtb2tob3ohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdBIG1lZ2Fkb3R0IGTDoXR1bSDDqXJ2w6lueXRlbGVuIHZvbHQhIEEgZMOhdHVtIGEgbWFpIG5hcHJhIGxldHQgbcOzZG9zw610dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4gUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbiB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xlZ3V0w7NiYiBraXbDoWxhc3p0b3R0IHByb2pla3Rlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdNaW5kZW4gcHJvamVrdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnSmVsZW50w6lzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJ30gPSAnTMOpcGplbiBrYXBjc29sYXRiYSBheiBhZG1pbmlzenRyw6F0b3JyYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfDmmogZmVsaGFzem7DoWzDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnSWTFkXN6YWsgw6FsbGFwb3QnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0JlZmVqZXpldGxlbiBtdW5rYW5hcG9rJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnw5xneWludMOpesWRaSBmZWzDvGxldCDDqXJ0ZXPDrXTDqXNpIG1vZHVsIGEgZmVsaGFzem7DoWzDsyBiZWZlamV6ZXRsZW4gbXVua2FuYXBqYWkgc3rDoW3DoW5hayBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IG7DqXYgYXogw7pqIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgbsOpdiBheiDDumogcHJvamVrdGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgYmVmZWplesOpc2kgZMOhdHVtaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBrZXpkw6lzaSBkw6F0dW1ob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBsZcOtcsOhc2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgc3phYmFkc8OhZyBuYXBqYWlob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSB0w7psw7Nyw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIHN6YWJ2w6FueW9zIGhldGkgbXVua2HDs3LDoWtob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBtxbF2ZWxldGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgw6FsbGFwb3QgYXogw7pqIHByb2pla3Rla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBmZWxoYXN6bsOhbMOza2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSBwcm9qZWt0ZWtldCwgYW1lbHlla2hleiDDqXN6cmV2w6l0ZWwgc3rDvGtzw6lnZXMuIEhhIGEgcmVndWzDoXJpcyBraWZlamV6w6lzIGlsbGVzemtlZGlrIGEgcHJvamVrdHJlLCBha2tvciBiZSBrZWxsIGlsbGVzenRlbmllIGVneSDDqXN6cmV2w6l0ZWx0IGlzLiBBIHJlZ3Vsw6FyaXMga2lmZWplesOpcyBheiBzbXggcGFyYW3DqXRlcnQgaGFzem7DoWxqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSBzdGF0aXN6dGlrYSBtb2R1bCBlbMWRw6FsbMOtdGhhdC1lIGlkxZFlbHN6w6Ftb2zDoXNpIGluZm9ybcOhY2nDs2thdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0jDoW55IG5hcHBhbCBlemVsxZF0dGjDtnogaWxsZXN6dGhldCBiZSBtdW5rYWVneXPDqWdla2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgY3NhayBhem9rIGEgZmVsaGFzem7DoWzDs2sgbGVzem5layBtZWdqZWxlbsOtdHZlLCBha2lrIG11bmthaWTFkXQgYWR0YWsgaG96esOhIGEga2lqZWzDtmx0IHByb2pla3RoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYSBzemVya2VzenTDqXNpIGvDqXBlcm55xZFuIGzDqXbFkSBsZW55w61sw7MgZWxlbWVrIGtvcnN6ZXLFsXPDrXRldHQgYXV0b21hdGlrdXNhbiBraWVnw6lzesOtdGV0dCBtZXrFkWtyZSBsZXN6bmVrIG1lZ3bDoWx0b3p0YXR2YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGF6IGVsxZF6xZEgcHJvamVrdGVrIHN6xbFyxZFqZSBoYXN6bsOhbGhhdMOzIGEgcHJvamVrdGVrIGvDqXQgbGlzdMOhamEgaGVseWV0dCAobGVndXTDs2JiaSDDqXMgw7Zzc3plcykuIENzYWsgYWtrb3IgaGFzem7DoWxoYXTDsywgaGEgYSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gZW5nZWTDqWx5ZXp2ZSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYXogZWzFkXrFkSBwcm9qZWt0ZWsgc3rFsXLFkWplIGFsYXDDqXJ0ZWxtZXpldHRlbiBiZSB2YW4ga2FwY3NvbHZhLCBoYSB2YW5uYWsgZWzFkXrFkSBwcm9qZWt0ZWsuIENzYWsgYWtrb3IgaGFzem7DoWxoYXTDsywgaGEgYXogRW5hYmxlQXV0b0NvbXBsZXRpb24gw6lzIGEgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBlbmdlZMOpbHllenZlIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBhIGZlbGhhc3puw6Fsw7NuYWsgbWVnZW5nZWRldHQgZWd5c3plcnJlIHTDtmJiIGTDoXR1bWhveiDigJ5zemFiYWRzw6Fnb27igJ0sIOKAnmJldGVnc3phYmFkc8OhZ29u4oCdIMOpcyDigJ5jc8O6c3p0YXTDoXNvbuKAnSDDqXJ0w6lrIG1lZ2Fkw6FzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdBIG11bmthbmFwb2sgbGVnbmFneW9iYiBzesOhbWEsIGFtZWx5ZWsgdXTDoW4gYSBtdW5rYWVneXPDqWdla2V0IGJlIGtlbGwgc3rDunJuaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0EgbXVua2FlZ3lzw6lnZWsgYmVqZWd5esOpcyBuw6lsa8O8bGkgbXVua2FuYXBvayBsZWduYWd5b2JiIHN6w6FtYSwgYW1lbHllayB1dMOhbiBlZ3kgZmlneWVsbWV6dGV0w6lzIGxlc3ogbWVnamVsZW7DrXR2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOhcmlzIGtpZmVqZXrDqXNlayBhIGtpamVsw7ZsdCBwcm9qZWt0IHN6ZXJpbnRpIGtvcmzDoXRvesOzIG3FsXZlbGV0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBhIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ1JlZ3Vsw6FyaXMga2lmZWplesOpc2VrIGEgZmVsaGFzem7DoWzDs2Nzb3BvcnRvayBzemVyaW50aSBrb3Jsw6F0b3rDsyBwcm9qZWt0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBjc29wb3J0b2sgdmVzc3rFkXZlbCBlbHbDoWxhc3p0b3R0IGxpc3TDoWrDoXQgdGFydGFsbWF6emEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdNZWdhZGphLCBob2d5IGEgbXVua2FpZMWRIGJlc3rDunJoYXTDsy1lIGtlemTDqXNpIMOpcyBiZWZlamV6w6lzaSBpZMWRayBuw6lsa8O8bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXogYSBtb2R1bCBraWvDqW55c3plcsOtdGkgYSBiZXN6w7pyw6Fzb2thdCBheiBpZMWRZWxzesOhbW9sw6FzYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0V6IGF6IMOpcnRlc8OtdMOpc2kgbW9kdWwgZWd5IGZpZ3llbG1lenRldMOpc3QgYWQsIGhhIHTDumwgc29rIGJlZmVqZXpldGxlbiBtdW5rYW5hcCB0YWzDoWxoYXTDsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBzemVya2VzenTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIMOhdHRla2ludMWRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgamVsZW50w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBiZcOhbGzDrXTDoXNvay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBuw6l6ZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdBa2tvciBrZWxsIGhhc3puw6FsbmksIGhhIG7DqWjDoW55IG3FsXZlbGV0IGNzw7Zra2VudGV0dGUgYSBtdW5rYWlkxZF0IChww6lsZMOhdWwgaGEgY3NhayBheiB1dGF6w6FzaSBpZMWRIGZlbGUgdmFuIGtpZml6ZXR2ZTogS3VsY3MgPT4gdXRhesOhczsgVGFydGFsb20gPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aXRfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWdW9pIHZlcmFtZW50ZSBjYW5jZWxsYXJlIGxhIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUgZGkgb2dnaSA/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhIGxhIHJlbmRpY29udGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1ZhaSBhbGxlIGltcG9zdGF6aW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2F6aW9uZSBwZXIgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdHaW9ybm8gcHJlY2VkZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0dpb3JubyBzdWNjZXNzaXZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ1ZhIGEgcXVlc3RhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdHaW9ybmkgc2VuemEgaW5mb3JtYXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGV6aW9uYSB0dXR0aSBpIGdpb3JuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BlciBmYXZvcmUgc2VsZXppb25hIGlsIG1vdGl2byBkZWxsYSB0dWEgYXNzZW56YSBwZXIgaSBnaW9ybmkgc2VsZXppb25hdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Fzc2VudGUgcGVyIG1hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXNzZW50ZSBwZXIgcmVjdXBlcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1NwZWNpZmljYXJlIGFsbWVubyB1biBnaW9ybm8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnU2VsZXppb25hcmUgdW4gbW90aXZvIHBlciBsXCdhc3NlbnphISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0kgY2FtcGkgb2JibGlnYXRvcmkgc29ubyBpbmRpY2F0aSBjb24gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0VcJyBvYmJsaWdhdG9yaW8gaW5zZXJpcmUgaW5pemlvIGUgZmluZSBvcHB1cmUgdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdDb21waXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0NvbW1lbnRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ0FnZ2l1bmdlcmUgdW4gY29tbWVudG8gY29uIHBpw7kgZGkgOCBjYXJhdHRlcmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdJc3RhbnRlIGRpIEluaXppbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm9uIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRpIHZhbG9yaSBuZWdhdGl2aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBpbml6aW8gY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIG5vbiB2YWxpZG8uIEluc2VyaXJlIHVuIG9yYXJpbyBuZWwgZm9ybWF0byBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnTFwnb3JhIDI0OjAwIMOoIGNvbnNlbnRpdGEgc29sbyBjb21lIG9yYSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09yYXJpbyBub24gdmFsaWRvISBJbiB1biBnaW9ybm8gY2kgc29ubyBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICdPcmFyaW8gZGkgdGVybWluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTFwnb3JhcmlvIGRpIGZpbmUgw6ggcG9zdGVyaW9yZSBhbGxcJ29yYXJpbyBkaSBpbml6aW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTm9uIMOoIHBlcm1lc3NvIGluc2VyaXJlIG9yZSByaXBldHV0ZS4gTFwnb3JhcmlvIGRpIGZpbmUgY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdQZXJpb2RvIG5vbiB2YWxpZG8uIFVuYSBnaW9ybmF0YSBoYSBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHZhbGlkbyBkZXZlIGVzc2VyZSBtYWdnaW9yZSBkaSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyaW9kbyBub24gdmFsaWRvLiBWYWxvcmkgbmVnYXRpdmkgbm9uIGFtbWVzc2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWdnaXVuZ2VyZSB1bmEgcmlnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1RvdGFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1B1b2kgc2VsZXppb25hcmUgc29sbyB1biBlbGVtZW50byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdNb3N0cmEgdHV0dGkgZ2xpIGVsZW1lbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdDYW5jZWxsYXJlIHZvY2UgZGkgcmVuZGljb250YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmVybWFyZSBpbnNlcmltZW50byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIG1lbnRyZSBlcmkgYXNzZW50ZSBwZXIgbWFsYXR0aWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIG1lbnRyZSBlcmkgaW4gZmVyaWU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBhc3NlbnRlIHBlciByZWN1cGVybyA/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBwacO5IGRpIDE2IG9yZT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ0NydXNjb3R0byBtZW5zaWxlIGRpIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ1N0cmFvcmRpbmFyaW8gKG9yZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnU3RyYW9yZGluYXJpbyAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdTdHJhb3JkaW5hcmlvICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1RvdGFsZSBvcmUgZGkgcmVjdXBlcm8gZGlzcG9uaWJpbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnRmVyaWUgKGdpb3JuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWUgdXRpbGl6emF0ZSAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGZXJpZSB1dGlsaXp6YXRlICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0ZlcmllIHJlc2lkdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdBc3NlbnplIHBlciBtYWxhdHRpYSAoZ2lvcm5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhIHV0aWxpenphdGUgKHF1ZXN0byBtZXNlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdBc3NlbnplIHBlciBtYWxhdHRpYSAodG90YWxlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ01lc2UgcHJlY2VkZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTWVzZSBzZWd1ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnR2lvcm5vIGRlbGxhIHNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnT3JlIGxhdm9yYXRpdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWxlIG9yZSBsYXZvcmF0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN1YWxpenphemlvbmUgZGVsIHByb2dldHRvIC0gVXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ09yZSAobWVuc2lsaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ09yZSAoZ2xvYmFsaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbGUgb21uaWNvbXByZW5zaXZvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlcG9ydCBkZWwgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmlnYXppb25lIHBlciBtZXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdWYWkgYWxsYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlcG9ydCB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsZSBtZW5zaWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnVG90YWxlIGdMb2JhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdBc3NlbnplIHBlciByZWN1cGVybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdNYWxhdHRpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdHaW9ybmkgcmltYW5lbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JpYXNzdW50aSBwcm9nZXR0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmlhc3N1bnRvIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ1ZhaSBhbCByaWVwaWxvZ28gZGkgcmVwb3J0aXN0aWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVmVuZ29ubyBtb3N0cmF0aSBzb2xvIGdsaSB1dGVudGkgYXR0aXZpIGRpIHF1ZXN0byBwcm9nZXR0by4gUGVyIGNhbWJpYXJlIHF1ZXN0byBjb21wb3J0YWVudG8gYWdnaW9ybmFyZSBpbCBwYXJhbWV0cm86ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdWZW5nb25vIG1vc3RyYXRpIHR1dHRpIGdsaSB1dGVudGkgcGVyIGxhIHJlbmRpY29udGF6aW9uZSB0ZW1wby4gUGVyIGNhbWJpYXJlIHF1ZXN0byBjb21wb3J0YW1lbnRvIGFnZ2lvcm5hcmUgaWwgcGFyYW1ldHJvOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXJlIGxlIGNvbmZpZ3VyYXppb25pIGRpIGdlc3Rpb25lIGRlbCB0ZW1wbyBkZWwgcHJvZ2V0dG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdnaXVuZ2VyZSBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1ZhaSBhbCByaWVwaWxvZ28gaW1wb3N0YXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnQWdnaXVuZ2VyZSBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXJlIGxhIGNvbmZpZ3VyYXppb25lIGRlbCBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRXNpc3RlIGdpw6AgdW4gcHJvZ2V0dG8gY29uIHF1ZXN0byBub21lLiBTY2VnbGVpcmUgdW4gbm9tZSBkaXZlcnNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGUgY29uZmlndXJhemlvbmkgZGVsbGEgcmVuZGljb250YXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWdnaXVuZ2VyZSBjb21waXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnTnVvdm8gdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cm8gcGVyIHByb2dldHRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0cm8gcGVyIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRybyBwZXIgdXRlbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnSSBwZXJpb2RpIGRpIHRlbXBvIG5vbiBwb3Nzb25vIGVzc2VyZSBlbGltaW5hdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0VsZW5jbyBkZWkgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnRWxlbmNvIGRlaSBjb21waXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdnaXVuZ2VyZSBjb21waXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGEgY29uZmlndXJhemlvbmUgZGVpIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0VzaXN0ZSBnacOgIHVuIGNvbXBpdG8gY29uIHF1ZXN0byBub21lLiBTY2VnbGllcmUgdW4gbm9tZSBkaXZlcnNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdFbGVuY28gdXRlbnRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhemlvbmkgbnVvdm8gdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgY29uZmlndXJhemlvbmUgdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnQ29tbWVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXJlIHN0cmFvcmRpbmFyaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnQ29zZW50aXJlIGxhIGNyZWF6aW9uZSBkZWwgcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGkgdGVybWluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnR2lvcm5pIGRpIEFzc2VuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdPcmUgYWxsYSBzZXR0aW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaSBhdXRvcml6emF0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnSW5zZXJpcmUgdW5hIGRhdGEgdmFsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgRmluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0lsIHBlcmlvZG8gZmluYWxlIGRldmUgZXNzZXJlIHBvc3RlcmlvcmUgYWwgcGVyaW9kbyBpbml6aWFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0dpb3JuaSBkaSBhc3NlbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ09yYXJpIGRlbGxhIFNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBjaSBzb25vIHBlcmlvZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0FnZ2l1bmdpIHBlcmlvZG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmlzdWFsaXp6YXJlIHJlZ2lzdHJvIG9yYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkaSAgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05lc3N1biBkYXRvIHRyb3ZhdG8gcGVyIHF1ZXN0byBnaW9ybm8uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnVWx0aW1pIHByb2dldHRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnR2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnNlcmlyZSBsXCdvcmFyaW8gbGF2b3JhdGl2byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJpbWVudG8gYXZ2ZW51dG8gY29uIHN1Y2Nlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnU2kgw6ggdmVyaWZpY2F0byB1biBlcnJvcmUgbmVsbFwnaW5zZXJpbWVudG8gZGkgZGF0ZSBtdWx0aXBsZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnSW5zZXJpbWVudG8gZGkgZGF0ZSBtdWx0aXBsZSBhdnZlbnV0byBjb24gc3VjY2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdMYSBkYXRhIGluc2VyaXRhIG5vbiDDqCB2YWxpZGEhIEVcJyBzdGF0YSBpbXBvc3RhdGEgbGEgZGF0YSBkaSBvZ2dpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdVbHRpbWkgcHJvZ2V0dGkgc2VsZXppb25hdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnVHV0dGkgaSBwcm9nZXR0aSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0aXN0aWNhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJ30gPSAnU2kgcHJlZ2EgZGkgY29udGF0dGFyZSBsXCdhbW1pbmlzdHJhdG9yZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTnVvdm8gdXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0byBkaSBwZXJpb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdHaW9ybmkgbGF2b3JhdGl2aSBpbmNvbXBsZXRpJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTW9kdWxvIGRpIG5vdGlmaWNhIGRlbGxcJ2ludGVyZmFjY2lhIGFnZW50ZSBwZXIgdmVkZXJlIGlsIG51bWVybyBkaSBnaW9ybmkgbGF2b3JhdGl2aSBpbmNvbXBsZXRpIHBlciBsXCd1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21lIHByZWRlZmluaXRvIHBlciBsZSBudW92ZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWUgcHJlZGVmaW5pdG8gcGVyIGkgbnVvdmkgcHJvZ2V0dGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsYSBkYXRhIGRpIGZpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxhIGRhdGEgZGkgaW5pemlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGEgZGVzY3JpemlvbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGkgZ2lvcm5pIGRpIGFzc2VuemEvdmFjYW56YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxvIHN0cmFvcmRpbmFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxcJ29yYXJpbyBzZXR0aW1hbmFsZSBzdGFuZGFyZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGUgbnVvdmUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSBwcm9nZXR0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGkgbnVvdmkgdXRlbnRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmlzY2UgaSBwcm9nZXR0aSBwZXIgaSBxdWFsaSB1bmEgYW5ub3RhemlvbmUgw6ggb2JibGlnYXRvcmlhLiBTZSBsYSBSZWdFeHAgY29pbmNpZGUgaWwgcHJvZ2V0dG8gc2kgw6ggb2JibGlnYXRpIGFkIGluc2VyaXJlIHVuYSBhbm5vdGF6aW9uZS4gTGEgUmVnRXhwIHV0aWxpenphIGlsIHBhcmFtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgaWwgbW9kdWxvIHN0YXRpc3RpY2hlIHB1w7IgZ2VuZXJhcmUgaW5mb3JtYXppb25pIGRpIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdOdW1lcm8gbWFzc2ltbyBkaSBnaW9ybmkgbmVsIHBhc3NhdG8gaW4gY3VpIMOoIHBvc3NpYmlsZSBpbnNlcmlyZSBsZSB1bml0w6AgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTZSBhYmlsaXRhdG8sIG1vc3RyYSBzb2xvIGdsaSB1dGVudGkgY2hlIGhhbm5vIGFnZ2l1bnRvIHZvY2kgZGkgdGVtcG8gbGF2b3JvIGFsIHByb2dldHRvIHNlbGV6aW9uYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRhLCBnbGkgZWxlbWVudGkgYSB0ZW5kaW5hIG5lbGxhIHNjaGVybWF0YSBkaSBtb2RpZmljYSBzb25vIHNvc3RpdHVpdGkgZGEgcGnDuSBtb2Rlcm5pIGNhbXBpIGNvbiBjb21wbGV0YW1lbnRvIGF1dG9tYXRpY28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0YSwgaWwgZmlsdHJvIHBlciBpIHByb2dldHRpIHByZWNlZGVudGkgcHXDsiBlc3NlcmUgdXRpbGl6emF0byBhbCBwb3N0byBkaSBkdWUgZWxlbmNoaSBkaSBwcm9nZXR0aSAodWx0aW1vIGUgdHV0dGkpLiBQdcOyIGVzc2VyZSB1dGlsaXp6YXRvIHNvbG8gc2UgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIMOoIGFiaWxpdGF0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0YSwgaWwgZmlsdHJvIHBlciBpIHByb2dldHRpIHByZWNlZGVudGkgw6ggYXR0aXZvIGluIG1vZG8gcHJlZGVmaW5pdG8gc2UgY2kgc29ubyBwcm9nZXR0aSBwcmVjZWRlbnRpLiBQdcOyIGVzc2VyZSB1dGlsaXp6YXRvIHNvbG8gc2UgRW5hYmxlQXV0b0NvbXBsZXRpb24gZSBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIHNvbm8gYWJpbGl0YXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRvLCDDqCBwb3NzaWJpbGUgcGVyIGdsaSB1dGVudGkgaW5zZXJpcmUgaSBjYW1waSAicGVyaW9kbyBkaSB2YWNhbnphIiwgInBlcmlvZG8gZGkgbWFsYXR0aWEiIGUgInN0cmFvcmRpbmFyaW8iIGNvbiBkYXRlIG11bHRpcGxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ051bWVybyBtYXNzaW1vIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGluIGN1aSDDqCBwb3NzaWJpbGUgaW5zZXJpcmUgbGUgdm9jaSBkaSB1bml0w6AgZGkgbGF2b3JvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIGxhdm9yYXRpdmkgY2hlIG5vbiBoYW5ubyB2b2NpIGRpIHVuaXTDoCBkaSBsYXZvcm8gb2x0cmUgaWwgcXVhbGUgdmVycsOgIG1vc3RyYXRvIHVuIGF2dmlzby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgdmluY29sYXJlIGxpc3RhIGRpIGF6aW9uaSBpbiBiYXNlIGFsIHByb2dldHRvIHNlbGV6aW9uYXRvLiBMYSBjaGlhdmUgY29udGllbmUgdW5cJ2VzcHJlc3Npb25lIHJlZ29sYXJlIHBlciBpbC9pIHByb2dldHRvL2ksIGlsIGNvbnRlbnV0byBjb250aWVuZSBlc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgbGUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgdmluY29sYXJlIGxpc3RhIGRpIHByb2dldHRpIGluIGJhc2UgYWkgZ3J1cHBpIHV0ZW50ZS4gTGEgY2hpYXZlIGNvbnRpZW5lIHVuXCdlc3ByZXNzaW9uZSByZWdvbGFyZSBwZXIgaWwvaSBwcm9nZXR0by9pLCBpbCBjb250ZW51dG8gY29udGllbmUgZXNwcmVzc2lvbmkgcmVnb2xhcmkgcGVyIGxlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ1NwZWNpZmljYSBzZSBsZSBvcmUgbGF2b3JhdGl2ZSBwb3Nzb25vIGVzc2VyZSBpbnNlcml0ZSBzZW56YSBvcmFyaSBkaSBpbml6aW8gZSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdRdWVzdG8gbW9kdWxvIGZvcnphIGdsaSBpbnNlcmltZW50aSBpbiBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdRdWVzdG8gbW9kdWxvIGRpIG5vdGlmaWNhIGdlbmVyYSB1biBhdnZpc28gc2UgY2kgc29ubyB0cm9wcGkgZ2lvcm5pIGxhdm9yYXRpdmkgbm9uIGNvbXBsZXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdNb2RpZmljYSByZW5kaWNvbnRhemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQYW5vcmFtaWNhIHN1bGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGlzdGljYSBzdWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0ltcG9zdGF6aW9uaSBwZXIgbGEgY29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1Zpc3RhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0RhIHV0aWxpenphcmUgc2UgYWxjdW5lIGF6aW9uaSBoYW5ubyByaWRvdHRvIGxlIG9yZSBsYXZvcmF0aXZlIChwZXIgZXNlbXBpbzogc2Ugc29sbyBsYSBtZXTDoCBkZWwgdGVtcG8gZGkgdmlhZ2dpbyDDqCBwYWdhdG86IENoaWF2ZSA9PiBWaWFnZ2lvOyBDb250ZW51dG8gPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6amFfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfmnKzlvZPjgavoqbLlvZPml6Xjga7mg4XloLHjgpLliYrpmaTjgZfjgb7jgZnjgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn44K/44Kk44Og44Os44Kz44O844OJ44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn6Kit5a6a44G4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ+aXpeWIpeODiuODk+OCsuODvOOCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3jga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfmrKHjga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAn44GT44GuIOaXpSDjgavnp7vli5XjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfjgqjjg7Pjg4jjg6rjg7zjga7jgarjgYTml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn5YWo44Gm44Gu5pel44KS6YG45oqeJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfoqbLlvZPjga7ml6Xjga7mrKDli6TnkIbnlLHjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHmmoflj5blvpfkuK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheasoOS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+S7o+S8keS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn5bCR44Gq44GP44Go44KC5LiA5pel44Gv6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn5qyg5Yuk55CG55Sx44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcqIOOBrumgheebruOBr+WFpeWKm+W/hemgiOOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ+mWi+Wni+aZgumWk+OBqOe1guS6huaZgumWk+OAgeOBvuOBn+OBr+acn+mWk+OCkuaMh+WumuOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfjgr/jgrnjgq8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5rOo6YeIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJzjmloflrZfku6XkuIrjga7ms6jph4jjgpLov73liqDjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ+OCueOCv+ODvOODiOaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn77yN77yI44Oe44Kk44OK44K577yJ44Gu5pmC6ZaT44Gv5YWl5Yqb44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfnubDjgorov5TjgZXjgozjgZ/mmYLplpPjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPjgILplovlp4vmmYLliLvjga/liKXjga7plpPpmpTjgajkuIDoh7TjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ+S4jeato+OBquODleOCqeODvOODnuODg+ODiOOBp+OBmSEg5pmC6ZaT44Gu5YWl5Yqb44GvSEg6TU3jga7jg5Xjgqnjg7zjg57jg4Pjg4jjgavlvpPjgaPjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDDjga/ntYLkuobmmYLplpPjgajjgZfjgabjga7jgb/lhaXlipvlj6/og73jgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfkuI3mraPjgarmmYLplpPjgafjgZkhIDHml6Xjga8yNOaZgumWk+OBp+OBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ+e1guS6huaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn57WC5LqG5pmC6ZaT44Gu5YmN44Gr6ZaL5aeL5pmC6ZaT44KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgRW5kemVpdCB3dXJkZSBiZXJlaXRzIGluIGVpbmVtIGFuZGVyZW4gRWludHJhZyBhbmdlZ2ViZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfjgIzmnJ/plpPjgI3jga7oqK3lrprjgYzkuI3mraPjgafjgZnjgILvvIgyNOaZgumWk+S7peS4iuOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iDDjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iO+8je+8iOODnuOCpOODiuOCue+8ieOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ+ihjOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ+ioiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJzHpoIXnm67jga7jgb/pgbjmip7jgafjgY3jgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICfjgZnjgbnjgabjga7jgqLjgqTjg4bjg6DjgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ+OCqOODs+ODiOODquODvOOCkuWJiumZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ+aMv+WFpeOBrueiuuiqjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn55eF5qyg44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn5LyR5pqH44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfku6PkvJHjgavoqK3lrprjgZXjgozjgZ/mnJ/plpPkuK3jgavnqLzlg43jgZfjgb7jgZfjgZ/jgYvvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnMTbmmYLplpPku6XkuIrnqLzlg43jgZfjgb7jgZfjgZ/jgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ+aciOWIpeS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn6LaF6YGO5Yuk5YuZ77yI77ya5pmC6ZaT77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ+i2hemBjuWLpOWLme+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn6LaF6YGO5Yuk5YuZ77yI57Sv6KiI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ+i2hemBjuWLpOWLmeWPr+iDveaui++8iOaZgumWk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfkvJHmmofvvIjml6XmlbDvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn5LyR5pqH5Y+W5b6X5pel5pWw77yI5LuK5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfkvJHmmoflj5blvpfml6XmlbDvvIjntK/oqIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn5LyR5pqH5Y+W5b6X5q6L5pel5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn55eF5qyg77yI5pel5pWw77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn55eF5qyg5pel5pWw77yI5LuK5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ+eXheasoOaXpeaVsO+8iOe0r+ioiO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ+WJjeaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn5qyh5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfmm5zml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ+eovOWDjeaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfnt4/nqLzlg43mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn44Om44O844K244Gu44OX44Ot44K444Kn44Kv44OI5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ+aZgumWk++8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn5pmC6ZaT77yI6YCa566X77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn5ZCI6KiIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ+aZgumWk+S8muioiOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn5pyI5Yil44OK44OT44Ky44O844K344On44OzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfml6Xku5jjgavnp7vli5XjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn44Om44O844K244O744Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfmnIjlkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfpgJrnrpflkIjoqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfku6PkvJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfkvJHmmocnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ+eXheasoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfkvJHml6Xmrovml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn44OX44Ot44K444Kn44Kv44OI44O744Os44Od44O844OIJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjg7vjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn5aCx5ZGK44Gu5qaC6KaB44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn5pys44OX44Ot44K444Kn44Kv44OI44Gu44Ki44Kv44OG44Kj44OW44Om44O844K244O844Gu44G/6KGo56S644GX44Gm44GE44G+44GZ44CB5aSJ5pu044GZ44KL44Gr44Gv6Kit5a6a44KS5pu05paw44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ+OBmeOBueOBpuOBruOCv+OCpOODoOOCouOCq+OCpuODs+ODiOODpuODvOOCtuODvOOCkuihqOekuuOBl+OBpuOBhOOBvuOBmeOAgeWkieabtOOBmeOCi+OBq+OBr+ioreWumuOCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfmmYLplpPkvJroqIgg44OX44Ot44K444Kn44Kv44OI6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn6Kit5a6a44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5ZCM5ZCN44Gu44OX44Ot44K444Kn44Kv44OI44GM5a2Y5Zyo44GX44G+44GZ44CC5ZCN56ew44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn6Kit5a6a44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn5paw6KaP44K/44K544Kv44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAn5paw6KaP44Om44O844K2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7ntZ7jgorovrzjgb8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ+OCv+OCueOCr+OBrue1nuOCiui+vOOBvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAn44Om44O844K244Gu57We44KK6L6844G/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAn5pmC6ZaT44Gv5YmK6Zmk44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfjgr/jgrnjgq/kuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfmlrDopo/jgr/jgrnjgq/jga7ov73liqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn44K/44K544Kv6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICflkIzlkI3jga7jgr/jgrnjgq/jgYzlrZjlnKjjgZfjgb7jgZnjgILlkI3np7DjgpLlpInmm7TjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn44Om44O844K25LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAn5paw6KaP44Om44O844K26Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ+ODpuODvOOCtuioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ+OCs+ODoeODs+ODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAn6LaF6YGO5Yuk5YuZ44KS6KGo56S6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7mlrDopo/ov73liqDjgpLoqLHlj6/jgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn6ZaL5aeL54K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfntYLkuobngrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keaahyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+aZgumWkyAvIOmAsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om/6KqN5riI44Gu6LaF6YGO5Yuk5YuZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfjgrnjgr/jg7zjg4jml6Xku5gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn5q2j44GX44GE5pel5LuY44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57WC5LqG5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn57WC5LqG54K544Gu5YmN44Gr6ZaL5aeL54K544KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfkvJHmmofml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn6YCx44GC44Gf44KK44Gu5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5q6L5qWt5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmnJ/plpPjgYzmnKroqK3lrprjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5pyf6ZaT44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODu+ODrOOCs+ODvOODieOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+S4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfoqbLlvZPjgZnjgovjg4fjg7zjgr/jgYzjgYLjgorjgb7jgZvjgpPjgIInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn5bel5pWw44KS5oy/5YWl44Gn44GN44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfliY3jg5fjg63jgrjjgqfjgq/jg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn5LiN5q2j44Gq5pmC6ZaT44Gn44GZISAx5pel44GvMjTmmYLplpPjgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ+W3peaVsOOCkuWJiumZpOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+acn+mWk+WkluOBp+OBmeOBruOBp+OAgeaMv+WFpeOBmeOCi+S6i+OBr+OBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn+OAguOCguOBhuS4gOW6pighKeaXpeS7mOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ+acquWujOS6huOBruWPr+WLleaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICfli6Tli5nlrp/nuL7jgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44KS5YWl5Yqb5Lit44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44Gr44KP44Gf44KL56i85YON5a6f57i+44Gu5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+S4jeato+OBp+OBmSAhIOaXpeS7mOOBr+acrOaXpeOBq+WkieabtOOBleOCjOOBvuOBl+OBnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn5pyf6ZaT44GM5pyq6Kit5a6a44Gn44GC44KL44GL44CB5oyH5a6a44GV44KM44Gf5pel5LuY44GM5pyf6ZaT5aSW44Gn44GZ44CC5bel5pWw566h55CG6LKs5Lu76ICF44Gu5pa544Gr5pyf6ZaT44Gu6KaL55u044GX44Gq44Gp44Gr44Gk44GE44Gm44GU55u46KuH44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICfliY3lm57pgbjmip7jgZXjgozjgZ/jg5fjg63jgrjjgqfjgq/jg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAn5YWo44OX44Ot44K444Kn44Kv44OIJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGluZ1Byb2plY3Q6IOODl+ODreOCuOOCp+OCr+ODiElE44Gu5YWl5Yqb44GM5b+F6KaB44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAn44OX44Ot44K444Kn44Kv44OI44KS5aCx5ZGK44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ+WgseWRiuOBmeOCiyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICfjg6bjg7zjgrbjg7zoqK3lrprjgpLmm7TmlrDjgafjgY3jgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yLid9ID0gJ+OCt+OCueODhuODoOeuoeeQhuiAheOBq+mAo+e1oeOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOCkui/veWKoOOBl+OBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn44OX44Ot44K444Kn44Kv44OI44KS5pu05paw44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn44K/44K544Kv44KS6L+95Yqg44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfjgr/jgrnjgq/jgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnVXNlcklEIOOBjOeEoeWKueOBp+OBme+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfjg6bjg7zjgrbjg7zjg4fjg7zjgr/jgYzmjL/lhaXjgafjgY3jgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfmnJ/plpPjgpLov73liqDjgafjgY3jgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ+ODpuODvOOCtuODvOOCkuabtOaWsOOBl+OBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ+ODpuODvOOCtuODvOOCkui/veWKoOOBl+OBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ+aWsOimj+ODpuODvOOCtuODvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn5pyf6ZaT44Gu54q25oWLJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICfms6jnm67vvIHvvJogJXMg44Gu5YWl5Yqb44GM5b+F6KaB44Gn44GZ44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn5pyq5a6M5LqG44Gu5Y+v5YuV5pelJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn44Om44O844K244Gu5LiN5a6M5YWo44Gq56i85YON5pel5pWw44KS44Kr44Km44Oz44OI44GX6YCa55+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/orablkYrjgpLkuI7jgYjjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44KS57eo6ZuG44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7mpoLopoEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7loLHlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOBruioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrAg44OT44Ol44O8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICfmmYLplpPkvJroqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAn5qWt5YuZ5LiK44Gu6KGM5YuV44Gr44GK44GE44Gm44CB56i85YON5pmC6ZaT44Go44GX44Gm6KiI5LiK44GZ44KL5pmC6ZaT44KS6Kq/5pW044GZ44KL5b+F6KaB44GM44GC44KL5aC05ZCI44Gr44CB44GT44Gu6Kit5a6a44KS5L2/55So44GX44G+44GZ44CC77yI5L6L77ya44CM56e75YuV5pmC6ZaT44CN44GuNTAl44Gu44G/5Yuk5YuZ5pmC6ZaT55u45b2T44Go44GZ44KL5aC05ZCI44CM6Y2144CN44GrYGpvdXJuZXlg44CB44CM5YaF5a6544CN44GrYDUwYOOBqOioreWumiknOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bXNfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdBZGFrYWggYW5kYSBwYXN0aSBpbmdpbiBtZW5naGFwdXNrYW4gUGVyYWthdW5hbiBNYXNhIGhhcmkgaW5pPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdTdW50aW5nIFJla29kIE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdQZXJnaSBrZSB0ZXRhcGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmlnYXNpIFRhcmlraCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdIYXJpIHNlYmVsdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdIYXJpIHNldGVydXNueWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnUGVyZ2kga2UgdGFyaWtoIGluaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0hhcmkgdGFucGEgcGVueWVydGFhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdQaWxpaCBrZXNlbXVhIGhhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ0tlbWFzdWthbiBiZXNhci1iZXNhcmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUGlsaWggc2ViYWIga2V0aWRha2hhZGlyYW4gYW5kYSB1bnR1ayBoYXJpLWhhcmkgeWFuZyBkaXBpbGloJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnQmVyY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnQ3V0aSBzYWtpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0JlcmN1dGkgbGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU2lsYSBwaWxpaCBzZWt1cmFuZy1rdXJhbmdueWEgc2VoYXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1NpbGEgcGlsaWggc2ViYWIga2V0aWRha2hhZGlyYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICdLZW1hc3VrYW4gYmVzYXItYmVzYXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ01lZGFuIHlhbmcgZGlwZXJsdWthbiBkaXRhbmRhaSBkZW5nYW4gIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0FuZGEgcGVybHUgbWVuZ2lzaSBwZXJtdWxhYW4gZGFuIGFraGlyIG1hc2EgYXRhdSB0ZW1wb2ggbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnS29tZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdXYWt0dSBNdWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdXYWt0dSBuZWdhdGlmIHRpZGFrIGRpYmVuYXJrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQZW5ndWxhbmdhbiBqYW0gYWRhbGFoIHRpZGFrIGRpYmVuYXJrYW4uIE1hc2EgbXVsYSBwYWRhbiBkZW5nYW4gc2VsYW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXQgdGlkYWsgc2FoISBTaWxhIG1hc3Vra2FuIG1hc2EgZGVuZ2FuIGZvcm1hdCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgaGFueWEgZGliZW5hcmthbiBzZWJhZ2FpIG1hc2EgYWtoaXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTWFzYSB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ01hc2EgQWtoaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ01hc2EgdGFtYXQgbWVzdGkgc2VsZXBhcyBtYXNhIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIGFraGlyIHBhZGFuIGRlbmdhbiBzZWxhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBvaCB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1RlbXBvaCBzYWggbWVzdGkgbGViaWggYmVzYXIgZGFyaXBhZGEgc2lmYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdUZW1wb2ggdGlkYWsgc2FoISBUZW1wb2ggbmVnYXRpZiBhZGFsYWggdGlkYWsgZGliZW5hcmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUYW1iYWggc2F0dSBiYXJpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ0p1bWxhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0FuZGEgaGFueWEgYm9sZWggcGlsaWggc2F0dSBlbGVtZW4ga290YWsgc2VtYWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnVHVuanVrIHNlbXVhIGJ1dGlyYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1BhZGFtIEtlbWFzdWthbiBNYXNhIFBlcmFrYXVuYW4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnU2Foa2FuIGtlbWFzdWthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpIHNha2l0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgc2VtYXNhIGFuZGEgYmVyY3V0aT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgc2VtYXNhIGFuZGEgYmVyY3V0aSBsZWJpaCBtYXNhPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdBZGFrYWggYW5kYSBwYXN0aSBiYWhhd2EgYW5kYSBiZWtlcmphIGxlYmloIGRhcmlwYWRhIDE2IGphbT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ0dhbWJhcmFuIGJ1bGFuYW4gbWFzYSBtZWxhcG9ya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdMZWJpaCBtYXNhIChKYW0pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0tlcmphIGxlYmloIG1hc2EgKGJ1bGFuIGluaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ0tlcmphIGxlYmloIG1hc2EgKGp1bWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQmFraSBjdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnQmVyY3V0aSAoSGFyaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQ3V0aSBkaWFtYmlsIChidWxhbiBpbmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdDdXRpIGRpYW1iaWwgKGp1bWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnQmFraSBjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQ3V0aSBTYWtpdCAoSGFyaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdDdXRpIHNha2l0IGRpYW1iaWwgKGJ1bGFuIGluaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQ3V0aSBzYWtpdCBkaWFtYmlsIChqdW1sYWgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnQnVsYW4gc2ViZWx1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnQnVsYW4gYmVyaWt1dG55YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnSGFyaSBtaW5nZ3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0phbSBiZWtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0p1bWxhaCBqYW0gYmVrZXJqYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdHYW1iYXJhbiBwcm9qZWsgcGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSmFtIChidWxhbmFuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSmFtIChIYXlhdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdKdW1sYWgga2VzZWx1cnVoYW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnTWFzYSBtZWxhcG9ya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2FzaSBidWxhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnUGVyZ2kga2UgdGFyaWtoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0xhcG9yYW4gcGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0p1bWxhaCBidWxhbmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnSnVtbGFoIGhheWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQ3V0aSBsZWJpaCBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnQmVyY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnQ3V0aSBzYWtpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdCYWtpIGN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnTGFwb3JhbiBwcm9qZWsnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ0xhcG9yYW4gcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ1BlcmdpIGtlIHRpbmphdWFuIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdQYWRhIG1hc2EgaW5pIGhhbnlhIHBlbmdndW5hIGFrdGlmIGRhbGFtIHByb2playBpbmkgYWthbiBkaXR1bmp1a2thbi4gVW50dWsgbWVuZ3ViYWggc2lmYXQgaW5pLCBzaWxhIGtlbWFzIGtpbmkgdGV0YXBhbjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnUGFkYSBtYXNhIGluaSBrZXNlbXVhIHBlbmdndW5hIHBlcmFrYXVuYW4gbWFzYSBkaXR1bmp1a2thbi4gVW50dWsgbWVuZ3ViYWggdGluZ2thaCBsYWt1IGluaSwgc2lsYSBrZW1hcyBraW5pIHRldGFwYW46JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgVGV0YXBhbiBQcm9qZWsgUGVyYWthdW5hbiBNYXNhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1RhbWJhaCBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdQZXJnaSBrZSBnYW1iYXJhbiBrZXNlbHVydWhhbiB0ZXRhcGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnVGFtYmFoIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdTdW50aW5nIHRldGFwYW4gcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdTdWRhaCBhZGEgcHJvamVrIGRlbmdhbiBuYW1hIGluaS4gU2lsYSBwaWxpaCB5YW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnU3VudGluZyBUZXRhcGFuIFBlcmFrYXVuYW4gTWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ1RhbWJhaCB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ1BlbmdndW5hIGJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAnVGFwaXMgYmFnaSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ1RhcGlzIGJhZ2kgdHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ1RhcGlzIGJhZ2kgcGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdUZW1wb2ggbWFzYSB0aWRhayBib2xlaCBkaWhhcHVza2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdTZW5hcmFpIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdTZW5hcmFpIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVGFtYmFoIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgdGV0YXBhbiB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnU3VkYWggYWRhIHR1Z2FzIGRlbmdhbiBuYW1hIGluaS4gU2lsYSBwaWxpaCB5YW5nIGxhaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ1NlbmFyYWkgUGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdUZXRhcGFuIFBlbmdndW5hIEJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdTdW50aW5nIFRldGFwYW4gUGVuZ2d1bmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdLb21lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVHVuanVrIGxlYmloYW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnQmVuYXJrYW4gY2lwdGFhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnVGVtcG9oIE11bGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1RlbXBvaCB0YW1hdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnSGFyaSBCZXJjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSmFtIFNlbWluZ2d1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdMZWJpaGFuIG1hc2EgZGliZW5hcmthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnVGFyaWtoIE11bGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnU2lsYSBtYXN1a2thbiB0YXJpa2ggeWFuZyBzYWguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnVGFyaWtoIFRhbWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnVGVtcG9oIHRhbWF0IG1lc3RpbGFoIHNlbGVwYXMgdGVtcG9oIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdIYXJpIGN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSmFtIG1pbmdndWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnTGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnVGlhZGEgdGVtcG9oIG1hc2EgZGlqdW1wYWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RhbWJhaCB0ZW1wb2ggbWFzYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdMaWhhdCBSZWtvZCBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnUGFuZGFuZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ1RpYWRhIGRhdGEgZGlqdW1wYWkgcGFkYSBoYXJpIGluaS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdQcm9qZWsgTGVwYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdIYXJpIEJla2VyamEgVGlkYWsgTGVuZ2thcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdTaWxhIG1hc3Vra2FuIHdha3R1IGtlcmphIGFuZGEhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdCZXJqYXlhIGRpbWFzdWtrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdSYWxhdCBzZW1hc2EgbWVtYXN1a2thbiBiZWJlcmFwYSB0YXJpa2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0JlcmpheWEgZGltYXN1a2thbiBwZW55ZXJ0YWFuIHVudHVrIGJlYmVyYXBhIHRhcmlraCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ1RhcmlraCB5YW5nIGRpbWFzdWtrYW4gdGlkYWsgc2FoISBUYXJpa2ggdGVsYWggZGl0dWthciBrZXBhZGEgaGFyaSBpbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4gUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbiB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Byb2playBEaXBpbGloIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1NlbXVhIFByb2playc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnTWVsYXBvcmthbic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yLid9ID0gJ1NpbGEgaHVidW5naSBwZW50YWRiaXIgYW5kYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1BlbmdndW5hIEJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIFRlbXBvaCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnSGFyaSBiZWtlcmphIHRpZGFrIGxlbmdrYXAnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bCBwZW1iZXJpdGFodWFuIGFudGFyYSBtdWthIGVqZW4gdW50dWsgbWVsaWhhdCBiaWxhbmdhbiBoYXJpIGJla2VyamEgeWFuZyB0aWRhayBsZW5na2FwIHVudHVrIHBlbmdndW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05hbWEgbGFsYWkgdW50dWsgdGluZGFrYW4gYmFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTmFtYSBsYWxhaSB1bnR1ayBwcm9qZWsgYmFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdUZXRhcGFuIGxhbGFpIHVudHVrIHRhcmlraCBha2hpci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgdGFyaWtoIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBnYW1iYXJhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgaGFyaSBjdXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgbGViaWggbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgamFtIG1pbmdndWFuIHBpYXdhaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgdGluZGFrYW4gYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgcHJvamVrIGJhaGFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdUZXRhcGFuIGxhbGFpIHVudHVrIHBlbmdndW5hIGJhaGFydS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHByb2play1wcm9qZWsgeWFuZyBtYW5hIGtvbWVuIGRpcGVybHVrYW4uIEppa2EgVW5na2FwYW5CaWFzYSBwYWRhbiBkYWxhbSBwcm9qZWsgaW5pLCBhbmRhIHBlcmx1IG1lbWFzdWtrYW4ga29tZW4ganVnYS4gVW5na2FwYW5CaWFzYSBtZW5nZ3VuYWthbiBwYXJhbWV0ZXIgc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnTWVuZW50dWthbiBqaWthIG1vZHVsIHN0YXRpc3RpayBib2xlaCBtZW5qYW5hIG1hc2EgbWFrbHVtYXQgcGVyYWthdW5hbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1VudHVrIGJlcmFwYSBoYXJpIHlhbmcgbGFsdSwgYW5kYSBib2xlaCBtZW1hc3Vra2FuIHVuaXQga2VyamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0ppa2EgZGlib2xlaGthbiwgaGFueWEgcGVuZ2d1bmEgeWFuZyB0ZWxhaCBkaXRhbWJhaCBtYXNhIGtlcmphIHVudHVrIHByb2playB5YW5nIGRpcGlsaWggYWthbiBkaXR1bmp1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ0ppa2EgZGlib2xlaGthbiwgdW5zdXItdW5zdXIga290YWsgcGlsaWhhbiBkYWxhbSBza3JpbiBzdW50aW5nIGRpdHVrYXIga2VwYWRhIGJpZGFuZyBwZW55aWFwYW4gc2VjYXJhIGF1dG9tYXRpayBtb2Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnSmlrYSBkaWFrdGlma2FuLCBwZW5hcGlzIGJhZ2kgcHJvamVrLXByb2playBzZWJlbHVtIGJvbGVoIGRpZ3VuYWthbiBzZWxhaW4gZHVhIHNlbmFyYWkgcHJvamVrLXByb2playAodGVyYWtoaXIgZGFuIHNlbXVhbnlhKS4gSWEgYm9sZWggZGlndW5ha2FuIGhhbnlhIGppa2EgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGRpZGF5YWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0ppa2EgZGlha3RpZmthbiwgcGVuYXBpcyBiYWdpIHByb2play1wcm9qZWsgc2ViZWx1bSBhZGFsYWggYWt0aWYgc2VjYXJhIGxhbGFpIHNla2lyYW55YSB0ZXJkYXBhdCBwcm9qZWsgbGVwYXMuIElhIGJvbGVoIGRpZ3VuYWthbiBoYW55YSBqaWthIEVuYWJsZUF1dG9Db21wbGV0aW9uIGRhbiBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGRpZGF5YWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0ppa2EgZGlib2xlaGthbiwgcGVuZ2d1bmEgZGliZW5hcmthbiB1bnR1ayBtZW1hc3VraSAic2VkYW5nIGN1dGkgcmVoYXQgIiwgInNlZGFuZyBjdXRpIHNha2l0ICIgZGFuICJzZWRhbmcgY3V0aSBsZWJpaCBtYXNhIiBwYWRhIGJlYmVyYXBhIHRhcmlraCBzZWthbGlndXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnQmlsYW5nYW4gbWFrc2ltdW0gaGFyaSBiZWtlcmphIHNlbGVwYXMgdW5pdCBrZXJqYSBwZXJsdSBkaW1hc3Vra2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnQmlsYW5nYW4gbWFrc2ltdW0gaGFyaSBiZWtlcmphIHRhbnBhIGtlbWFzdWthbiB1bml0IGJla2VyamEgc2VsZXBhcyBkaSBtYW5hIGFtYXJhbiBha2FuIGRpdHVuanVra2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1VuZ2thcGFuIGJpYXNhIHVudHVrIG1lbmdla2FuZyBzZW5hcmFpIHRpbmRha2FuIG1lbmdpa3V0IHByb2playB5YW5nIGRpcGlsaWguIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSB1bmdrYXBhbiBiaWFzYSB1bnR1ayB0aW5kYWthbiAodGluZGFrYW4tdGluZGFrYW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdVbmdrYXBhbiBiaWFzYSB1bnR1ayBtZW5nZWthbmcgc2VuYXJhaSBwcm9qZWsgbWVuZ2lrdXQga3VtcHVsYW4gcGVuZ2d1bmEuIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSBrb21hIHNlbmFyYWkga3VtcHVsYW4gZGlwaXNhaGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSB3YWt0dSBiZWtlcmphIGJvbGVoIGRpbWFzdWtrYW4gdGFucGEgcGVybXVsYWFuIGRhbiBha2hpciBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdNb2R1bCBpbmkgbWVtYWtzYSBrZW1hc3VrYW4gZGFsYW0gUGVyYWthdW5hblNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNb2R1bCBwZW1iZXJpdGFodWFuIGluaSBtZW1iZXJpIGFtYXJhbiBqaWthIHRlcmRhcGF0IHRlcmxhbHUgYmFueWFrIGhhcmkgYmVrZXJqYSB0aWRhayBsZW5na2FwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdTdW50aW5nIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnR2FtYmFyYW4ga2VzZWx1cnVoYW4gcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnTWVsYXBvciBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ1RldGFwYW4gcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1BhcGFyYW4gcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdQZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnVW50dWsgZGlndW5ha2FuIGppa2EgYmViZXJhcGEgdGluZGFrYW4gbWVuZ3VyYW5na2FuIHdha3R1IGtlcmphIChjb250b2hueWEsIGppa2EgaGFueWEgc2VwYXJ1aCBkYXJpcGFkYSBtYXNhIHBlcmphbGFuYW4gZGliYXlhciBLdW5jaSA9PiBwZXJqYWxhbmFuOyBLYW5kdW5nYW4gPSA+IDUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cGxfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdDenkgbmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHJvemxpY3plbmllIGN6YXN1IHByYWN5IHRlZ28gZG5pYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWR5Y2phIGV3aWRlbmNqaSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1ByemVqZMW6IGRvIHVzdGF3aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXdpZ2FjamEgcG8gZGFjaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnUG9wcnplZG5pIGR6aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0tvbGVqbnkgZHppZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHRoaXMgZGF0ZSd9ID0gJ1ByemVqZMW6IGRvIHRlZ28gZG5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0RuaSBiZXogd3Bpc8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdaYXpuYWN6IHdzenlzdGtpZSBkbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ01hc293ZSB3cGlzeXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUHJvc3rEmSB3eWJyYcSHIHByenljenluxJkgbmllb2JlY25vxZtjaSBkbGEgd3licmFueWNoIGRuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ1VybG9wJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdad29sbmllbmllIGxla2Fyc2tpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ1dvbG5lIHphIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1Byb3N6xJkgd3licmHEhyBjbyBuYWptbmllaiBqZWRlbiBkemllxYQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIHByenljenluxJkgbmllb2JlY25vxZtjaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc293ZSB3cGlzeXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnUG9sYSB3eW1hZ2FuZSBvem5hY3pvbmUgc8SFICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdNdXNpc3ogd3Byb3dhZHppxIcgY3phcyBwb2N6xIV0a3UgaSB6YWtvxYRjemVuaWEgbHViIG9rcmXFm2wgY3phcyB0cndhbmlhIGN5bGt1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnWmFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdVd2FnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ0N6YXMgcm96cG9jesSZY2lhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdVamVtbmUgY3phc3kgc8SFIG5pZWRvendvbG9uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ1Bva3J5d2FqxIVjZSBzacSZIGdvZHppbnkgbmllIHPEhSBkb3p3b2xvbmUuIEN6YXMgcm96cG9jesSZY2lhIHBhc3VqZSBkbyBpbm5lZ28gcHJ6ZWR6aWHFgnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdOaWVwcmF3aWTFgm93eSBmb3JtYXQhIFByb3N6xJkgcG9kYcSHIGN6YXMgdyBmb3JtYWNpZSBHRzpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgamVzdCBkb3p3b2xvbmEgamVkeW5pZSBqYWtvIGN6YXMgemFrb8WEY3plbmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05pZXByYXdpZMWCb3d5IGN6YXMhIER6aWXFhCBtYSB0eWxrbyAyNCBnb2R6aW55Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ0N6YXMgemFrb8WEY3plbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdDemFzIHpha2/FhGN6ZW5pYSBtdXNpIGJ5xIcgcG8gY3phc2llIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQb2tyeXdhasSFY2Ugc2nEmSBnb2R6aW55IG5pZSBzxIUgZG96d29sb25lLiBDemFzIHpha2/FhGN6ZW5pYSBwYXN1amUgZG8gaW5uZWdvIHByemVkemlhxYJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyBjeWtsdSEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnUHJhd2lkxYJvd3kgY3phcyBjeWtsdSBtdXNpIGJ5xIcgd2nEmWtzenkgb2QgemVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05pZXByYXdpZMWCb3d5IGN5a2whIFVqZW1ueSBjemFzIGN5a2x1IG5pZSBqZXN0IGRvendvbG9ueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdEb2RhaiB3aWVyc3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICdTdW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnTW/FvGVzeiB6YXpuYWN6ecSHIHR5bGtvIGplZGVuIGVsZW1lbnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgYWxsIGl0ZW1zJ30gPSAnUG9rYcW8IGNhxYLEhSB6YXdhcnRvxZvEhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnVXN1xYQgcm96bGljemVuaWUgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdQb3R3aWVyZMW6IHdwaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgendvbG5pZW5pYSBsZWthcnNraWVnbz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdDenkgamVzdGXFmyBwZXdpZW4sIMW8ZSBwcmFjb3dhxYJlxZsgdyB0cmFrY2llIHVybG9wdT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgd29sbmVnbyB6YSBuYWRnb2R6aW55Pyc7CiAgICAkU2VsZi0+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+eydBZGQgdGFzayd9ID0gJ0RvZGFqIHphZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdOb3d5IHXFvHl0a293bmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cnVqIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICdGaWx0cnVqIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ0ZpbHRydWogVcW8eXRrb3duaWvDs3cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdDeWtsZSBjemFzdSBuaWUgbW9nxIUgem9zdGHEhyB1c3VuacSZdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIHByb2pla3TDs3cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgemFkYcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnRG9kYWogemFkYW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSB6YWRhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdJbm5lIHphZGFuaWUgdcW8eXdhIGp1xbwgdGVqIG5hend5LiBVxbx5aiBpbm5laiBuYXp3eS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgVcW8eXRrb3duaWvDs3cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdVc3Rhd2llbmlhIE5vd2VnbyBVxbx5dGtvd25pa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnRWR5dHVqIFVzdGF3aWVuaWEgVcW8eXRrb3duaWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbW1lbnRzJ30gPSAnS29tZW50YXJ6ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnUG9rYcW8IGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1plendhbGFqIG5hIHR3b3J6ZW5pZSBwcm9qZWt0w7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BvY3rEhXRlayBjeWtsdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnS29uaWVjIGN5a2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEbmkgdXJsb3B1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSWxvxZvEhyBnb2R6aW4gdyB0eWdvZG5pdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnWmV6d8OzbCBuYSBnb2R6aW55IG5hZGxpY3pib3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXRhIHJvenBvY3rEmWNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQcm9zesSZIHdwcm93YWR6acSHIHByYXdpZMWCb3fEhSBkYXTEmS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXRhIHpha2/FhGN6ZW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0tvbmllYyBva3Jlc3UgbXVzaSBiecSHIHBvIGplZ28gcG9jesSFdGt1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRG5pIG9wdWN6b25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1R5Z29kbmlvd3kgY3phcyBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ0dvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05pZSB6bmFsZXppb25vIMW8YWRuZWdvIGN5a2x1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdEb2RhaiBjeWtsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1Bva2HFvCBld2lkZW5jasSZIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnV2lkb2sgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0JyYWsgZGFueWNoIGRvdHljesSFY3ljaCB3eWJyYW5lZ28gZG5pYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdPc3RhdG5pZSBwcm9qZWt0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ05pZXBlxYJuZSBkbmkgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUHJvc3rEmSB3cHJvd2FkemnEhyBzd8OzaiBjemFzIHByYWN5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdXcHJvd2FkYW5pZSBwb3dpb2TFgm8gc2nEmSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1d5c3TEhXBpxYIgYsWCxIVkIHBvZGN6YXMgd3Byb3dhZHphbmlhIHdpZWx1IGRhdCBqZWRub2N6ZcWbbmllISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdQb215xZtsbmllIHdwcm93YWR6b25vIHdpZWxlIGRhdCBqZWRub2N6ZcWbbmllISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnV3Byb3dhZHpvbm8gbmllcHJhd2lkxYJvd8SFIGRhdMSZISBab3N0YcWCYSBvbmEgem1pZW5pb25hIG5hIGJpZcW8xIVjxIUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4gUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbiB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ09zdGF0bmlvIHd5YnJhbmUgcHJvamVrdHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnV3N6eXN0a2llIHByb2pla3R5JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBvcnRvd2FuaWUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4nfSA9ICdQcm9zaW15LCBvIGtvbnRha3QgeiB0d29pbSBhZG1pbmlzdHJhdG9yZW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3d5IFXFvHl0a293bmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgY3lrbHUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ05pZXBlxYJuZSBkbmkgcHJhY3knOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1xYIgcG93aWFkYW1pYW5pYSBBZ2VudGEgbyBsaWN6YmllIGRuaSB6IG5pZWtvbXBsZXRueW0gcmFwb3J0b3dhbmllbSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdEb215xZtsbmEgbmF6d2Egbm93eWNoIGN6eW5ub8WbY2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0RvbXnFm2xuYSBuYXp3YSBub3d5Y2ggcHJvamVrdMOzdy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdEb215xZtsbmEgZGF0YSB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdEb215xZtsbmEgZGF0YSByb3pwb2N6xJljaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnRG9tecWbbG5lIHVzdGF3aWVuaWUgb3Bpc3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdEb215xZtsbmUga29uZmlndXJhY2phIHVybG9wdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdEb215xZtsbmUga29uZmlndXJhY2phIGdvZHppbiBuYWRsaWN6Ym93eWNoLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnRG9tecWbbG5hIGtvbmZpZ3VyYWNqYSB0eWdvZG5pb3dlZ28gY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdEb215xZtsbnkgc3RhdHVzIG5vd3ljaCBjenlubm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0RvbXnFm2xueSBzdGF0dXMgbm93eWNoIHByb2pla3TDs3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRG9tecWbbG55IHN0YXR1cyBub3d5Y2ggdcW8eXRrb3duaWvDs3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ09rcmXFm2xhIHByb2pla3R5LCBrdMOzcmUgd3ltYWdhasSFIGRvZGF3YW5pYSBrb21lbnRhcnp5LiBKZcW8ZWxpIHd5cmHFvGVuaWUgcmVndWxhcm5lIHBhc3VqZSBkbyBwcm9qZWt0dSwgdHJ6ZWJhIGRvZGHEhyBrb21lbnRhcnouIFd5cmHFvGVuaWEgcmVndWxhcm5lIGtvcnp5c3RhasSFIHogcGFyYW1ldHLDs3cgc2Vyd2VyYSBtYWtyIChTTVgpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnT2tyZcWbbGEsIGN6eSBtb2R1xYIgc3RhdHlzdHljem55IG1vxbxlIGdlbmVyb3dhxIcgaW5mb3JtYWNqZSBvIHJvemxpY3plbmlhY2ggY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdMaWN6YmEgZG5pIHdzdGVjeiwgZGxhIGt0w7NyeWNoIG1vxbxuYSByb3psaWN6YcSHIGN6YXMgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0plxZtsaSBha3R5d25lLCB3aWRvY3puaSBzxIUgdHlsa28gdcW8eXRrb3duaWN5LCBrdMOzcnp5IHJvemxpY3p5bGkgY3phcyBwcmFjeSB3IHd5YnJhbnltIHByb2pla2NpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1Byenkgd8WCxIVjem9uZWogb3BjamksIGVsZW1lbnR5IHJvendpamFuZSB3IG9rbmllIGVkeWNqaSBixJlkxIUgemFzdMSFcGlvbmUgcG9sYW1pIHogYXV0b21hdHljem55bSB1enVwZcWCbmlhbmllbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnUHJ6eSB3xYLEhWN6b25laiBvcGNqaSwgbW/FvG5hIHXFvHnEhyBmaWx0csOzdywgdcW8eXR5Y2ggdyBwb3ByemVkbmljaCBwcm9qZWt0YWNoLCB6YW1pYXN0IHN0b3Nvd2HEhyBkd2llIGxpc3R5IHByb2pla3TDs3cgKG9zdGF0bmllZ28gaSB3c3p5c3RraWNoKS4gTmllemLEmWRuZSBqZXN0IHVydWNob21pZW5pZSBvcGNqaSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdKZcWbbGkgYWt0eXduZSwgZmlsdHJ5IHXFvHl0ZSB3IHBvcHJ6ZWRuaWNoIHByb2pla3RhY2ggc8SFIGRvbXnFm2xuaWUgYWt0eXduZSAoamXFm2xpIHRha2llIHByb2pla3R5IGlzdG5pZWrEhSkuIE5pZXpixJlkbmUgamVzdCB1cnVjaG9taWVuaWUgb3BjamkgRW5hYmxlQXV0b0NvbXBsZXRpb24gb3JheiBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnSmXFm2xpIGFrdHl3bmUsIHXFvHl0a293bmlrIG1vxbxlIHVzdGF3acSHICJ1cmxvcCIsICJ6d29sbmllbmllIGxla2Fyc2tpZSIgb3JheiAid29sbmUgemEgbmFkZ29kemlueSIgZGxhIHdpZWx1IGRuaSBqZWRub2N6ZcWbbmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3N5bWFsbmEgbGljemJhIGRuaSByb2JvY3p5Y2gsIHcgY2nEhWd1IGt0w7NyeWNoIG5hbGXFvHkgdXp1cGXFgm5pxIcgY3phcyBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ01ha3N5bWFsbmEgbGljemJhIGRuaSByb2JvY3p5Y2gsIGJleiB1enVwZcWCbmlhbmlhIGN6YXN1IHByYWN5LCBwbyBrdMOzcnljaCBwb2themFuZSB6b3N0YW5pZSBvc3RyemXFvGVuaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnV3lyYcW8ZW5pYSByZWd1bGFybmUgZG8gb2dyYW5pY3plbmlhIGxpc3R5IHphZGHFhCB3eWJyYW55Y2ggcHJvamVrdMOzdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgb2tyZcWbbGEgd3lyYcW8ZW5pZSByZWd1bGFybmUgZGxhIGFrY2ppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdXeXJhxbxlbmlhIHJlZ3VsYXJuZSBkbyBvZ3JhbmljemVuaWEgbGlzdHkgcHJvamVrdMOzdyB3eWJyYW55Y2ggZ3J1cCB1xbx5dGtvd25pa8Ozdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgemF3aWVyYSBsaXN0xJkgZ3J1cCByb3pkemllbG9ueWNoIHByemVjaW5rYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnT2tyZcWbbGEsIGN6eSBjemFzIHByYWN5IG1vxbxlIHpvc3RhxIcgd3Byb3dhZHpvbnkgYmV6IHBvZGF3YW5pYSBjemFzdSByb3pwb2N6xJljaWEgb3JheiB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1RlbiBtb2R1xYIgd3ltdXN6YSB1enVwZcWCbmlhbmllIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTW9kdcWCIHRlbiBvc3RyemVnYSBvIHpieXQgZHXFvGVqIGxpY3piaWUgbmllcm96bGljem9ueWNoIGRuaSByb2JvY3p5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkeWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnT3BpcyByb3psaWN6YW5pYSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSYXBvcnRvd2FuaWUgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0tvbmZpZ3VyYWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQcnplZ2zEhWQgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1JvemxpY3phbmllIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdXeWtvcnp5c3R5d2FuZSBqZcW8ZWxpIGt0w7NyZcWbIHphZGFuaWEgcmVkdWt1asSFIGdvZHppbnkgcHJhY3kgKG5wLiBqZcWbbGkgemEgY3phc3UgZG9qYXpkdSBsaWN6b25hIGplc3QgdHlsa28gcG/Fgm93YSBjemFzeTsgS2x1Y3ogPT4gZG9qYXpkOyBXYXJ0b8WbxIcgPT4gNTApLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdWb2PDqiByZWFsbWVudGUgcXVlciByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIGVzc2UgcmVnaXN0cm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJciBwYXJhIGNvbmZpZ3VyYcOnw7Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2HDp8OjbyBkZSBkYXRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEaWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdQcsOzeGltbyBkaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnSXIgcGFyYSBlc3RhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEaWFzIHNlbSBhcG9udGFtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNpb25hciB0b2RvcyBvcyBkaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdFbnRyYWRhIGVtIG1hc3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yLCBlc2NvbGhhIG8gbW90aXZvIGRlIHN1YSBhdXPDqm5jaWEgcGFyYSBvcyBkaWFzIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0VtIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciwgZXNjb2xoYSBwZWxvIG1lbm9zIHVtIGRpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdQb3IgZmF2b3IgZXNjb2xoYSB1bSBtb3Rpdm8gcGFyYSBhIGF1c8OqbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnRW50cmFkYSBlbSBtYXNzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0NhbXBvcyBvYnJpZ2F0w7NyaW9zIGVzdMOjbyBtYXJjYWRvcyBjb20gIioiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVm9jw6ogdMOqbSBxdWUgcHJlZW5jaGVyIGluw61jaW8gZSBmaW0sIG91IHVtIHBlcsOtb2RvIGRlIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdPYnNlcnZhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdUZW1wbyBpbmljaWFsICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnRGF0YXMgbmVnYXRpdmFzIG7Do28gc8OjbyBsaWJlcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yLCBlbnRyZSBjb20gdW0gdGVtcG8gbm8gZm9ybWF0byBISDpNTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdBcGVuYXMgMjQ6MDAgc8OjbyBwZXJtaXRpZGFzIGNvbW8gdGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdUZW1wbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgVGltZSd9ID0gJ1RlbXBvIGZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdUZW1wbyBmaW5hbCBkZXZlIHNlciBkZXBvaXMgZG8gdGVtcG8gaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdIb3JhcyByZXBldGlkYXMgbsOjbyBzw6NvIGxpYmVyYWRhcy4gSW5pY2llIG8gYXBvbnRhbWVudG8gZW0gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBVbSBkaWEgdGVtIGFwZW5hcyAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbSBwZXLDrW9kbyB2w6FsaWRvIGRldmUgc2VyIG1haW9yIHF1ZSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBQZXLDrW9kb3MgbmVnYXRpdm9zIG7Do28gc8OjbyBsaWJlcmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWRpY2lvbmFyIHVtYSBsaW5oYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ1RvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnVm9jw6ogcG9kZSBzZWxlY2lvbmFyIGFwZW5hcyB1bSBlbGVtZW50byBubyBjaGVja2JveCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdNb3N0cmFyIHRvZG9zIG9zIGl0ZW5zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdEZWxldGFyIGVudHJhZGEgbmEgQ29udGFiaWxpZGFkZSBkZSBUZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdDb25maXJtYXIgaW5zZXLDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnVGVtIGNlcnRlemEgZGUgcXVlIHZvY8OqIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZW0gbGljZW7Dp2EgbcOpZGljYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBkZSBmw6lyaWFzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnVm9jw6ogdGVtIGNlcnRlemEgcXVlIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZGUgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdWb2PDqiB0ZW0gY2VydGV6YSBxdWUgdHJhYmFsaG91IG1haXMgcXVlIDE2IGhvcmFzPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnUmVsYXTDs3JpbyBkZSBhcG9udGFtZW50byBkZSB0ZW1wbyBtZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0hvcmFzIGV4dHJhcyAoaG9yYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0hvcmFzIGV4dHJhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnSG9yYXMgZXh0cmFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnUmVzdGFudGUgZGEgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0bDqXJpYXMgKERpYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0bDqXJpYXMgdGlyYWRhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRsOpcmlhcyB0aXJhZGFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRsOpcmlhcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWNlbsOnYSBNw6lkaWNhIChEaWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2FzIHRpcmFkYXMgICggZXN0ZSBtw6pzICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGljZW7Dp2EgbcOpZGljYXMgdGlyYWRhcyAgKCB0b3RhbCApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTcOqcyBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnUHLDs3hpbW8gbcOqcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRGlhIGRhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yw6FyaW8gZGUgdHJhYmFsaG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgZGUgaG9yYXMgdHJhYmFsaGFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzw6NvIGRlIHByb2pldG8gZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzICggbWVuc2FsICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICggRHVyYcOnw6NvICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBnZXJhbCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2HDp8OjbyBNZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIHBhcmEgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ0R1cmHDp8OjbyB0b3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0bDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnRsOpcmlhcyByZXN0YW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSBwcm9qZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZWxhdMOzcmlvIGRlIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgcGFyYSB2aXPDo28gZ2VyYWwgZGUgcmVsYXTDs3Jpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHNvbWVudGUgdXN1w6FyaW9zIGF0aXZvcyBuZXN0ZSBwcm9qZXRvIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHRvZG9zIG9zIGFwb250YW1lbnRvIGRlIHRlbXBvcyBkb3MgdXN1w6FyaW9zIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRvIFByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZGljaW9uYXIgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIHBhcmEgY29uZmlndXJhw6fDtWVzIGdlcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FkaWNpb25hciBwcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkaXRhciBDb25maWd1cmHDp8O1ZXMgZG8gUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bSBwcm9qZXRvIGNvbSBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRWRpdGFyIENvbmZpZ3VyYcOnw7VlcyBkYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICdOb3ZvIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICdGaWx0cmFyIHBvciBQcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFRhc2tzJ30gPSAnRmlsdHJhciBmb3IgVGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnRmlsdHJhciBwb3IgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnUGVyw61vZG9zIGRlIHRlbXBvIG7Do28gcG9kZW0gc2VyIGV4Y2x1w61kb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIGRlIHRhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZGljaW9uYXIgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZGEgVGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdKw6EgZXhpc3RlIHVtYSB0YXJlZmEgY29tIGVzc2Ugbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGhhIHVtIG5vbWUgZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgbm92byB1c3XDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFVzZXIgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJ0NvbWVudMOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0xpYmVyYXIgY3JpYcOnw6NvIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BlcsOtb2RvIEluaWNpYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcsOtb2RvIEZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEaWFzIGRlIEbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMgYXV0b3JpemFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBpbmljaWFsICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IsIGluc2lyYSB1bWEgZGF0YSB2w6FsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXLDrW9kbyBmaW5hbCBkZXZlIHNlciBtYWlvciBxdWUgIHBlcsOtb2RvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEaWFzIGRlIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ1BlcsOtb2RvIGRlIHRlbXBvIG7Do28gZW5jb250cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc8OjbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZG9zIGRhZG9zIHBhcmEgZXN0ZSBkaWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdEaWFzIGRlIHRyYWJhbGhvcyBpbmNvbXBsZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdQb3IgZmF2b3IgaW5zaXJhIHN1YXMgaG9yYXMgZGUgdHJhYmFsaG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyaWRvIGNvbSBzdWNlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJybyBhbyBpbnNlcmlyIG3Dumx0aXBsYXMgZGF0YXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0VudHJhZGEgZGUgdsOhcmlhcyBkYXRhcyBpbnNlcmlkYSBjb20gc3VjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0RhdGEgaW5zZXJpZGEgw6kgaW52w6FsaWRhISBEYXRhIGZvaSBhbHRlcmFkYSBwYXJhIGhvamUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4gUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbiB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBvcyBwcm9qZXRvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVsYXTDs3Jpb3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4nfSA9ICdQb3IgZmF2b3IsIGVudHJlIGVtIGNvbnRhdG8gY29tIHNldSBhZG1pbmlzdHJhZG9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTm92byB1c3XDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnRXN0YWRvIGRvIHBlcsOtb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdEaWFzIGRlIHRyYWJhbGhvcyBpbmNvbXBsZXRvcyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gZGUgbm90aWZpY2HDp8OjbyBkbyBBZ2VudGUgcGFyYSB2ZXIgbyBudW1lcm8gZGUgZGlhcyBpbmNvbXBsZXRvcyBkbyB1c3XDoXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdPIG5vbWUgcGFkcsOjbyBwYXJhIG5vdmFzIGHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ08gbm9tZSBwYWRyw6NvIHBhcmEgbm92b3MgcHJvamV0b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRhdGEgZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkYXRhIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRlc2NyacOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRpYXMgZGUgZsOpcmlhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgaG9yYXMgZXh0cmFzLCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGhvcmFzIHNlbWFuYWlzIHBhZHLDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwYWRyw6NvIHBhcmEgbm92YXMgYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdFc3RhZG8gcGFkcsOjbyBwYXJhIG5vdm9zIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnRXN0YWRvIHBhcmEgcGFyYSBub3ZvcyB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIG9zIHByb2pldG9zIHBhcmEgb3MgcXVhaXMgw6kgbmVjZXNzw6FyaWEgdW1hIG9ic2VydmHDp8Ojby4gU2UgbyBSZWdFeHAgw6kgZW5jb250cmFkbyBubyBwcm9qZXRvLCB2b2PDqiB0ZW0gcXVlIGluc2VyaXIgdW1hIG9ic2VydmHDp8Ojby4gTyBSZWdFeHAgdXNhIG8gcGFyw6JtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgcG9kZSBnZXJhciBpbmZvcm1hw6fDtWVzIGRvIHRpbWUgYWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BhcmEgcXVhbnRvcyBkaWFzIGF0csOhcyB2b2PDqiBwb2RlIGluc2VyaXIgdW5pZGFkZXMgZGUgdHJhYmFsaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIHNvbWVudGUgb3MgdXN1w6FyaW9zIHF1ZSBhZGljaW9ub3UgdGVtcG8gZGUgdHJhYmFsaG8gYW8gbyBwcm9qZXRvIHNlbGVjaW9uYWRvIHNlcsOjbyBleGliaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG9zIGVsZW1lbnRvcyBzdXNwZW5zb3MgbmEgdGVsYSBkZSBlZGnDp8OjbyBzw6NvIG1vZGlmaWNhZGFzIHBhcmEgY2FtcG9zIGRlIGF1dG9jb21wbGV0YXIgbW9kZXJuaXphZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBvIGZpbHRybyBwYXJhIG9zIHByb2pldG9zIGFudGVyaW9yZXMgcG9kZSBzZXIgdXNhZG8gZW0gdmV6IGRlIGR1YXMgbGlzdGFzIGRlIHByb2pldG9zICjDumx0aW1vIGUgdG9kb3MpLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBwcm9qZXRvcyBhbnRlcmlvcmVzIMOpIGF0aXZhZG8gcG9yIHBhZHLDo28gc2UgaMOhIHByb2pldG9zIGFudGVyaW9yZXMuIEVsZSBwb2RlIHNlciB1c2FkbyBhcGVuYXMgc2UgRW5hYmxlQXV0b0NvbXBsZXRpb24gZSBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGVzdMOjbyBoYWJpbGl0YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG8gdXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gcGFyYSBlbnRyYXIgImVtIGxpY2Vuw6dhIGRlIGbDqXJpYXMiLCAiZW0gbGljZW7Dp2EgbcOpZGljYSIgZSAiZW0gbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzIiBkZSB1bWEgc8OzIHZleiBwYXJhIHbDoXJpYXMgZGF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBhcMOzcyBvIHF1YWwgYXMgInVuaWRhZGVzIGRlIHRyYWJhbGhvIiBkZXZlbSBzZXIgaW5zZXJpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBkaWFzIGRlIHRyYWJhbGhvIHNlbSAidW5pZGFkZXMgZGUgdHJhYmFsaG8iICBhcMOzcyBvIHF1YWwgdW0gYXZpc28gc2Vyw6EgbW9zdHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnQXMgZXhwcmVzc8O1ZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBsaXN0YSBkZSBhw6fDtWVzIGRlIGFjb3JkbyBjb20gbyBwcm9qZXRvIHNlbGVjaW9uYWRvLiBDaGF2ZSBjb250w6ltIGV4cHJlc3PDo28gcmVndWxhciBwYXJhIG8gcHJvamV0byhzKSwgQ29udGXDumRvIGNvbnTDqW0gZXhwcmVzc8O1ZXMgcmVndWxhcmVzIHBhcmEgYSBhw6fDo28ocykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ0FzIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIHJlc3RyaW5naXIgYSBsaXN0YSBkZSBwcm9qZXRvIGRlIGFjb3JkbyBjb20gZ3J1cG9zIGRlIHVzdcOhcmlvcy4gQ2hhdmUgY29udMOpbSBleHByZXNzw6NvIHJlZ3VsYXIgcGFyYSBvIHByb2pldG8gKHMpLCBjb250ZcO6ZG8gY29udMOpbSBsaXN0YSAgc2VwYXJhZGEgcG9yIHbDrXJndWxhcyBkZSBncnVwb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdFc3BlY2lmaXF1ZSBzZSBvIGhvcsOhcmlvIGRlIHRyYWJhbGhvIHBvZGUgc2VyIGluc2VyaWRvIHNlbSBob3LDoXJpb3MgZGUgaW7DrWNpbyBlIHTDqXJtaW5vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdFc3NlIG3Ds2R1bG8gZm9yw6dhIHByZWVuY2hlciBvIFRpbWVBY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0VzdGUgbcOzZHVsbyBkZSBub3RpZmljYcOnw6NvIGTDoSB1bSBhdmlzbyBzZSBob3V2ZXIgbXVpdG9zIGRpYXMgZGUgdHJhYmFsaG8gbsOjbyByZWdpc3RyYWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBnZXJhbCBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnUmVsYXTDs3JpbyBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdVc2FyIHBhcmEgIGFsZ3VtYXMgYcOnw7VlcyBkZSByZWR1emlyIGFzIGhvcmFzIGRlIHRyYWJhbGhvIChwb3IgZXhlbXBsbywgc2UgYXBlbmFzIG1ldGFkZSBkbyB0ZW1wbyBkZSB2aWFnZW0gw6kgcGFnbyBLZXkgPT4gdmlhamFyOyBDb250ZW50ID0+IDUwKSc7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INC20LXQu9Cw0LXRgtC1INGD0LTQsNC70LjRgtGMINGD0YfRgtC10L3QvdGL0LUg0LfQsNGC0YDQsNGC0Ysg0LLRgNC10LzQtdC90Lgg0LTQu9GPINGN0YLQvtCz0L4g0LTQvdGPPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQt9Cw0L/QuNGB0Ywg0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvdCw0YHRgtGA0L7QudC60LDQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40Y8g0L/QviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfQn9GA0LXQtNGL0LTRg9GJ0LjQuSDQtNC10L3RjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ9Ch0LvQtdC00YPRjtGJ0LjQuSDQtNC10L3RjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDRjdGC0L7QuSDQtNCw0YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0L3QuCDQsdC10Lcg0LfQsNC/0LjRgdC10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn0JLRi9Cx0YDQsNGC0Ywg0LLRgdC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ9CS0YvQsdC10YDQuNGC0LUg0L/RgNC40YfQuNC90YMg0LLQsNGI0LXQs9C+INC+0YLRgdGD0YLRgdGC0LLQuNGPINCyINCy0YvQsdGA0LDQvdC90YvQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQkiDQvtGC0L/Rg9GB0LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAn0J/QviDQsdC+0LvQtdC30L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9CSINC+0YLQs9GD0LvQtSDQt9CwINC/0LXRgNC10YDQsNCx0L7RgtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0YXQvtGC0Y8g0LHRiyDQvtC00LjQvSDQtNC10L3RjCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQktGL0LHQtdGA0LjRgtC1INC/0YDQuNGH0LjQvdGDINC+0YLRgdGD0YLRgdGC0LLQuNGPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQtSDQv9C+0LvRjyDQv9C+0LzQtdGH0LXQvdGLICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICfQndC10L7QsdGF0L7QtNC40LzQviDQt9Cw0L/QvtC70L3QuNGC0Ywg0LLRgNC10LzRjyDQvdCw0YfQsNC70LAg0Lgg0L7QutC+0L3Rh9Cw0L3QuNGPINC40LvQuCDQv9C10YDQuNC+0LQg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9C70LDQvdC40YDQvtCy0LDQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ9CX0LDQtNCw0YfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQn9GA0LjQvNC10YfQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICfQn9GA0LjQvNC10YfQsNC90LjQtSDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L3QtSDQvNC10L3QtdC1IDgg0YHQuNC80LLQvtC70L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ9CS0YDQtdC80Y8g0L3QsNGH0LDQu9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC90LXQtNC+0L/Rg9GB0YLQuNC80L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8g0L/QvtCy0YLQvtGA0LXQvdC40LUuINCS0YDQtdC80Y8g0L3QsNGH0LDQu9CwINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPQtdGCINC00YDRg9Cz0L7QvNGDINC40L3RgtC10YDQstCw0LvRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0YTQvtGA0LzQsNGCISDQktCy0LXQtNC40YLQtSDQstGA0LXQvNGPINCyINGE0L7RgNC80LDRgtC1IEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICfQotC+0LvRjNC60L4gMjQ6MDAg0YDQsNC30YDQtdGI0LXQvdC+INCyINC60LDRh9C10YHRgtCy0LUg0LLRgNC10LzQtdC90Lgg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstC10YDQvdC+0LUg0LLRgNC10LzRjyEg0JIg0YHRg9GC0LrQsNGFINGC0L7Qu9GM0LrQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICfQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0L7Qt9C20LUg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cd0LUg0LTQvtC/0YPRgdC60LDQtdGC0YHRjyDQv9C+0LLRgtC+0YDQtdC90LjQtS4g0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0YHQvtC+0YLQstC10YLRgdGC0LLRg9C10YIg0LTRgNGD0LPQvtC80YMg0LjQvdGC0LXRgNCy0LDQu9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdCy0LXRgNC90YvQuSDQv9C10YDQuNC+0LQhINCSINGB0YPRgtC60LDRhSDRgtC+0LvRjNC60L4gMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0J/RgNCw0LLQuNC70YzQvdGL0Lkg0L/QtdGA0LjQvtC0INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQsdC+0LvRjNGI0LUg0L3Rg9C70Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INC/0LXRgNC40L7QtCEg0J7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC1INC00L7Qv9GD0YHQutCw0LXRgtGB0Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtCx0LDQstC40YLRjCDQvtC00L3RgyDRgdGC0YDQvtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICfQmNGC0L7Qs9C+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0KMg0LLQsNGBINC10YHRgtGMINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LLRi9Cx0YDQsNGC0Ywg0YLQvtC70YzQutC+INC+0LTQuNC9INGN0LvQtdC80LXQvdGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGFsbCBpdGVtcyd9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0LLRgdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQo9C00LDQu9C40YLRjCDQt9Cw0L/QuNGB0Ywg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn0J/QvtC00YLQstC10YDQtNC40YLQtSDQstGB0YLQsNCy0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQsdC+0LvQtdC30L3QuD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGA0LDQsdC+0YLQsNC70Lgg0LIg0L/QtdGA0LjQvtC0INC+0YLQv9GD0YHQutCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQvtGC0LPRg9C70L7Qsj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCx0L7Qu9C10LUgMTYg0YfQsNGB0L7Qsj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9Cc0LXRgdGP0YfQvdGL0Lkg0L7RgtGH0LXRgiDQviDQt9Cw0YLRgNCw0YfQtdC90L3QvtC8INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9C10YDQtdGA0LDQsdC+0YLQutCwICjRh9Cw0YHRiyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0Y3RgtC+0LPQviDQvNC10YHRj9GG0LApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9C10YDQtdGA0LDQsdC+0YLQutCwICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGB0YLQsNCy0YjQtdC10YHRjyDQstGA0LXQvNGPINC+0YLQs9GD0LvQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfQntGC0L/Rg9GB0LogKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC90YvQtSDQtNC90Lgg0L7RgtC/0YPRgdC60LAgKNCyINGN0YLQvtC8INC80LXRgdGP0YbQtSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0L3QvdGL0LUg0LTQvdC4INC+0YLQv9GD0YHQutCwICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICfQntGB0YLQsNCy0YjQuNC10YHRjyDQtNC90Lgg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQkdC+0LvQtdC30L3RjCAo0LTQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9Ce0YLRgdGD0YLRgdGC0LLQvtCy0LDQuyDQv9C+INCx0L7Qu9C10LfQvdC4ICjQsiDRjdGC0L7QvCDQvNC10YHRj9GG0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9Ce0YLRgdGD0YLRgdGC0LLQvtCy0LDQuyDQv9C+INCx0L7Qu9C10LfQvdC4ICjQstGB0LXQs9C+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ9Cf0YDQtdC00YvQtNGD0YnQuNC5INC80LXRgdGP0YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ9Ch0LvQtdC00YPRjtGJ0LjQuSDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfQndC10LTQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQsdC+0YfQuNC1INGH0LDRgdGLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ9CS0YHQtdCz0L4g0L7RgtGA0LDQsdC+0YLQsNC90L3Ri9GFINGH0LDRgdC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn0J7QsdC30L7RgCDQtNCw0L3QvdGL0YUg0L/QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40Y4g0LTQu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfQp9Cw0YHRiyAo0LXQttC10LzQtdGB0Y/Rh9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfQp9Cw0YHRiyAo0LfQsCDQstC10YHRjCDRgdGA0L7QuiDQvdCw0LHQu9GO0LTQtdC90LjRjyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQktGB0LXQs9C+JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ9Ce0YLRh9C10YIg0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ9Cd0LDQstC40LPQsNGG0LjRjyDQv9C+INC80LXRgdGP0YbQsNC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQtNCw0YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfQntGC0YfQtdGCINC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0JjRgtC+0LPQviDQt9CwINC80LXRgdGP0YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQmNGC0L7Qs9C+INC30LAg0LLRgdC1INCy0YDQtdC80Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQntGC0LPRg9C70Ysg0LfQsCDQv9C10YDQtdGA0LDQsdC+0YLQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn0J7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfQntGC0YHRg9GC0YHRgtCy0LjQtSDQv9C+INCx0L7Qu9C10LfQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ9Ce0YHRgtCw0LvQvtGB0Ywg0LTQvdC10Lkg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0J7RgtGH0LXRgtGLINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfQntGC0YfQtdGCINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ9Cf0LXRgNC10LnRgtC4INC6INC+0LHQt9C+0YDRgyDQvtGC0YfQtdGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9CSINC90LDRgdGC0L7Rj9GJ0LXQtSDQstGA0LXQvNGPINC/0L7QutCw0LfQsNC90Ysg0YLQvtC70YzQutC+INCw0LrRgtC40LLQvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4INCyINGN0YLQvtC8INC/0YDQvtC10LrRgtC1LiDQp9GC0L7QsdGLINC40LfQvNC10L3QuNGC0Ywg0Y3RgtC+LCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L7QsdC90L7QstC40YLQtSDQvdCw0YHRgtGA0L7QudC60Lg6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9CSINC90LDRgdGC0L7Rj9GJ0LXQtSDQstGA0LXQvNGPINC/0L7QutCw0LfQsNC90Ysg0LLRgdC1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDQsiDRjdGC0L7QvCDQv9GA0L7QtdC60YLQtS4g0KfRgtC+0LHRiyDQuNC30LzQtdC90LjRgtGMLCDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L7QsdC90L7QstC40YLQtSDQvdCw0YHRgtGA0L7QudC60Lg6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCDQv9C+INC/0YDQvtC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvtCx0LfQvtGA0YMg0L3QsNGB0YLRgNC+0LXQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDQv9C70LDQvdC40YDQvtCy0LDQvdC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9Cj0LbQtSDQtdGB0YLRjCDQv9GA0L7QtdC60YIg0YEg0YLQsNC60LjQvCDQvdCw0LjQvNC10L3QvtCy0LDQvdC40LXQvC4g0JLRi9Cx0LXRgNC40YLQtSDQtNGA0YPQs9C+0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFByb2plY3RzJ30gPSAn0KTQuNC70YzRgtGAINC00LvRjyDQn9GA0L7QtdC60YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICfQpNC40LvRjNGC0YAg0LTQu9GPINC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBVc2Vycyd9ID0gJ9Ck0LjQu9GM0YLRgCDQtNC70Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICfQn9C10YDQuNC+0LTRiyDQstGA0LXQvNC10L3QuCDQvdC1INC80L7Qs9GD0YIg0LHRi9GC0Ywg0YPQtNCw0LvQtdC90YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ9Ch0L/QuNGB0L7QuiDQv9GA0L7QtdC60YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Ch0L/QuNGB0L7QuiDQt9Cw0LTQsNGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQt9Cw0LTQsNGH0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INC30LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0KPQttC1INC10YHRgtGMINC30LDQtNCw0YfQsCDRgSDRgtCw0LrQuNC8INC40LzQtdC90LXQvCwg0JLRi9Cx0LXRgNC40YLQtSDQtNGA0YPQs9C+0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Ch0L/QuNGB0L7QuiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDQvdC+0LLQvtCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICfQmtC+0LzQvNC10L3RgtCw0YDQuNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfQn9C+0LrQsNC30LDRgtGMINC/0LXRgNC10YDQsNCx0L7RgtC60YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDRgdC+0LfQtNCw0L3QuNC1INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J3QsNGH0LDQu9C+INC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtC+0L3QtdGGINC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNC90Lgg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQp9Cw0YHQvtCyINCyINC90LXQtNC10LvQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0KDQsNC30YDQtdGI0LXQvdC90LDRjyDQv9C10YDQtdGA0LDQsdC+0YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfQlNCw0YLQsCDQvdCw0YfQsNC70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JLQstC10LTQuNGC0LUg0L/RgNCw0LLQuNC70YzQvdGD0Y4g0LTQsNGC0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn0JLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L/QtdGA0LjQvtC00LAg0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0L7Qt9C20LUg0LLRgNC10LzQtdC90Lgg0LXQs9C+INC90LDRh9Cw0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ9Ce0YHRgtCw0LvQvtGB0YwsINC00L3QtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Cn0LDRgdC+0LIg0LIg0L3QtdC00LXQu9GOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsC/QodCy0LXRgNGF0YPRgNC+0YfQvdGL0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0LUg0LfQsNC00LDQvdGLINC/0LXRgNC40L7QtNGLINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LgnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/QvtGB0LzQvtGC0YDQtdGC0Ywg0LfQsNC/0LjRgdGMINCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn0J/RgNC+0YHQvNC+0YLRgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfQlNC70Y8g0Y3RgtC+0LPQviDQtNC90Y8g0LTQsNC90L3Ri9C1INC90LUg0L3QsNC50LTQtdC90YsuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LTQvtCx0LDQstC40YLRjCDRgNCw0LHQvtGH0LjQtSDQtdC00LjQvdC40YbRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNC90LjQtSDQv9GA0L7QtdC60YLRiy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDRgdC+0YXRgNCw0L3QuNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4LCDRgtCw0Log0LrQsNC6INCyINGB0YPRgtC60LDRhSAyNCDRh9Cw0YHQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YPQtNCw0LvQuNGC0Ywg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0YshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAn0K3RgtCwINC00LDRgtCwINCy0L3QtSDQtNC40LDQv9Cw0LfQvtC90LAsINC90L4g0LLRiyDQtdGJ0LUg0L3QtSDRg9GB0YLQsNC90L7QstC40LvQuCDRjdGC0L7RgiDQtNC10L3RjCwg0YLQsNC6INGH0YLQviDQstCw0Lwg0LTQsNC10YLRgdGPINC+0LTQuNC9KCEpINGI0LDQvdGBINC00LvRjyDQtdC1INGD0YHRgtCw0L3QvtCy0LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ9Cd0LXQv9C+0LvQvdGL0LUg0YDQsNCx0L7Rh9C40LUg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ9CS0LLQtdC00LjRgtC1INCS0LDRiNC4INGA0LDQsdC+0YfQuNC1INGH0LDRgdGLISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfQlNCw0L3QvdGL0LUg0LfQsNC90LXRgdC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LLQstC+0LTQtSDQvdC10YHQutC+0LvRjNC60LjRhSDQtNCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9CU0LDQvdC90YvQtSDQtNC70Y8g0YDQsNC30L3Ri9GFINC00LDRgiDQstCy0LXQtNC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ9CS0LLQtdC00LXQvdC90LDRjyDQtNCw0YLQsCDQvdC10LLQtdGA0L3QsCEg0JfQsNC80LXQvdC10L3QsCDQvdCwINGC0LXQutGD0YnRg9GOISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0J3QtSDQt9Cw0LTQsNC9INCy0YDQtdC80LXQvdC90YvQuSDQv9C10YDQuNC+0LQg0LjQu9C4INC30LDQtNCw0L3QvdCw0Y8g0LTQsNGC0LAg0LLQvdC1INC00LjQsNC/0LDQt9C+0L3QsCDRg9C60LDQt9Cw0L3QvdC+0LPQviDQv9C10YDQuNC+0LTQsC4K0J/QvtC20LDQu9GD0LnRgdGC0LAg0YHQstGP0LbQuNGC0LXRgdGMINGBINCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0L7QvCDQvtGC0LLQtdGC0YHRgtCy0LXQvdC90YvQvCDQt9CwINGA0LDRgdC/0LjRgdCw0L3QuNGPINC00LvRjyDQvtCx0L3QvtCy0LvQtdC90LjRjyDQstCw0YjQuNGFINCy0YDQtdC80LXQvdC90YvRhSDQv9C10YDQuNC+0LTQvtCyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00L3QuNC1INCy0YvQsdGA0LDQvdC90YvQtSDQv9GA0L7QtdC60YLRiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfQktGB0LUg0L/RgNC+0LXQutGC0YsnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmVwb3J0aW5nUHJvamVjdDog0KLRgNC10LHRg9C10YLRgdGPIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ9Cf0YDQvtC10LrRgiDRgdC+0YHRgtCw0LLQu9C10L3QuNGPINC+0YLRh9C10YLQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9Ce0YLRh9C10YLQvdC+0YHRgtGMJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJ30gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQstCw0YjQuNC8INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICfQlNC+0LHQsNCy0LvQtdC90L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn0J/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1INC+0LHQvdC+0LLQu9C10L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICfQl9Cw0LTQsNGH0LAg0LTQvtCx0LDQstC70LXQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAn0JfQsNC00LDRh9CwINC+0LHQvdC+0LLQu9C10L3QsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAn0J3QtdCy0LXRgNC90YvQuSBVc2VySUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LLRgdGC0LDQstC40YLRjCDQtNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0LTQvtCx0LDQstC40YLRjCDQv9C10YDQuNC0INCy0YDQtdC80LXQvdC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINC+0LHQvdC+0LLQu9C10L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINC00L7QsdCw0LLQu9C10L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAn0J3QvtCy0YvQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ9Ch0YLQsNGC0YPRgSDQv9C10YDQuNC+0LTQsCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmlldzog0KLRgNC10LHRg9C10YLRgdGPICAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICfQndC10L/QvtC70L3Ri9C1INGA0LDQsdC+0YfQuNC1INC00L3QuCc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvRjCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LCDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDQvdC10LfQsNCy0LXRgNGI0LXQvdC90YvRhSDRgNCw0LHQvtGH0LjRhSDQtNC90LXQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0JjQvNC10L3QsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L3QvtCy0YvRhSDQtNC10LnRgdGC0LLQuNC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQndCw0LfQstCw0L3QuNC1INC90L7QstC+0LPQviDQv9GA0L7QtdC60YLQsCDQv9C+LdGD0LzQvtC70YfQsNC90LjRji4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQtNCw0YLRiyDQvtC60L7QvdGH0LDQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQtNCw0YLRiyDQvdCw0YfQsNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L7Qv9C40YHQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC+0YHRgtCw0LLRiNC40YXRgdGPINC00L3QtdC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC/0LXRgNC10YDQsNCx0L7RgtC60LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDRgdGC0LDQvdC00LDRgNGC0L3Ri9GFINGA0LDQsdC+0YfQuNGFINGH0LDRgdC+0LIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINGB0YLQsNGC0YPRgdCwINC90L7QstGL0YUg0LTQtdC50YHRgtCy0LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDRgdGC0LDRgtGD0YHQsCDQvdC+0LLRi9GFINC/0YDQvtC10LrRgtC+0LIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHRgtCw0YLRg9GB0LAg0L3QvtCy0YvRhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINC/0YDQvtC10LrRgtGLINC00LvRjyDQutC+0YLQvtGA0YvRhSDRgtGA0LXQsdGD0LXRgtGB0Y8g0LfQsNC90LXRgdC10L3QuNC1INC30LDQvNC10YfQsNC90LjQuS4g0JXRgdC70LggUmVnRXhwINCy0LXRgNC90L4g0LTQu9GPINC/0YDQvtC10LrRgtCwLCDQstGLINC00L7Qu9C20L3RiyDQtNC+0LHQsNCy0LjRgtGMINC30LDQvNC10YfQsNC90LjRjyDRgtC+0LbQtS4g0JTQu9GPIFJlZ0V4cCDQuNGB0L/QvtC70YzQt9GD0LnRgtC1INC/0LDRgNCw0LzQtdGC0YAgc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCLCDQvNC+0LbQtdGCINC70Lgg0LzQvtC00YPQu9GMINC+0YLRh9C10YLQvtCyINCz0LXQvdC10YDQuNGA0L7QstCw0YLRjCDQuNC90YTQvtGA0LzQsNGG0LjRjiDQv9C+INGD0YfQtdGC0YMg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LfQsNC/0LjRgdGMINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICfQlNC70Y8g0LrQsNC60L7Qs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINC/0YDQvtGI0LXQtNGI0LjRhSDQtNC90LXQuSDQstGLINC80L7QttC10YLQtSDQstC90LXRgdGC0Lgg0LTQsNC90L3Ri9C1INC+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDQvtGC0L7QsdGA0LDQttCw0Y7RgtGB0Y8g0YLQvtC70YzQutC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCwg0LrQvtGC0L7RgNGL0LUg0LfQsNC90L7RgdC40LvQuCDQt9Cw0YLRgNCw0YLRiyDQstGA0LXQvNC10L3QuCDQsiDQstGL0LHRgNCw0L3QvdGL0Lkg0L/RgNC+0LXQutGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0LLRi9C/0LDQtNCw0Y7RidC40LUg0L/QvtC70Y8g0YHQv9C40YHQutCwINC90LAg0Y3QutGA0LDQvdC1INGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0L/RgNC10L7QsdGA0LDQt9GD0Y7RgtGB0Y8g0LIg0LzQvtC00LXRgNC90LjQt9C40YDQvtCy0LDQvdC90YvQtSDQv9C+0LvRjyDQsNCy0YLQvtC30LDQstC10YDRiNC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDRgtC+INGE0LjQu9GM0YLRgCDQtNC70Y8g0L/RgNC10LTRi9C00YPRidC40YUg0L/RgNC+0LXQutGC0L7QsiDQvNC+0LbQtdGCINCx0YvRgtGMINC40YHQv9C+0LvRjNC30L7QstCw0L0g0LLQvNC10YHRgtC+INC00LLRg9GFINGB0L/QuNGB0LrQvtCyICjQv9C+0YHQu9C10LTQvdC40YUg0Lgg0LLRgdC10YUg0L/RgNC+0LXQutGC0L7QsikuINCt0YLQviDQtNC+0YHRgtGD0L/QvdC+INGC0L7Qu9GM0LrQviDQtdGB0LvQuCDQv9Cw0YDQsNC80LXRgtGAIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiDQsNC60YLQuNCy0LjRgNC+0LLQsNC9Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0YLQviDRhNC40LvRjNGC0YAg0LTQu9GPINC/0YDQtdC00YvQtNGD0YnQuNGFINC/0YDQvtC10LrRgtC+0LIg0LLQutC70Y7Rh9C10L0g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0L/RgNC4INC90LDQu9C40YfQuNC1INC/0YDQtdC00YvQtNGD0YnQuNGFINC/0YDQvtC10LrRgtC+0LIuINCt0YLQviDQtNC+0YHRgtGD0L/QvdC+INGC0L7Qu9GM0LrQviDQtdGB0LvQuCDQv9Cw0YDQsNC80LXRgtGA0YsgRW5hYmxlQXV0b0NvbXBsZXRpb24g0LggVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciDQsNC60YLQuNCy0LjRgNC+0LLQsNC90YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0YDQsNC30YDQtdGI0LXQvdC+INCy0LLQvtC00LjRgtGMINC30L3QsNGH0LXQvdC40Y8gItCe0YHRgtCw0LvQvtGB0Ywg0LIg0L7RgtC/0YHQutC1IiwgItCe0YHRgtCw0LvQvtGB0Ywg0LTQvdC10Lkg0L/QviDQsdC+0LvQtdC30L3QuCIg0LggItCe0YHRgtCw0LvQvtGB0Ywg0L/QtdGA0LXRgNCw0LHQvtGC0LrQuCIg0L/QviDQvdC10YHQutC+0LvRjNC60L4g0LTQsNGCINGB0YDQsNC30YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAn0JzQsNC60YEuINC60L7Qu9C40YfQtdGB0YLQstC+INGA0LDQsdC+0YfQuNGFINC00L3QtdC5LCDQv9C+0YHQu9C1INC60L7RgtC+0YDRi9GFINGA0LDQsdC+0YfQuNC1INC10LTQuNC90LjRhtGLINC00L7Qu9C20L3RiyDQsdGL0YLRjCDQt9Cw0L3QtdGB0LXQvdGLLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3QviDQutC+0LvQuNGH0LXRgdGC0LLQviDRgNCw0LHQvtGH0LjRhSDQtNC90LXQuSwg0L/QvtGB0LvQtSDQutC+0YLQvtGA0L7Qs9C+INCy0YvQtNCw0LXRgtGB0Y8g0L/RgNC10LTRg9C/0YDQtdC20LTQtdC90LjQtSDQviDRgtC+0LwsINGH0YLQviDQtNCw0L3QvdGL0LUg0L3QtSDQstCy0L7QtNC40LvQuNGB0YwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ9Ce0LHQt9C+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICfQntGC0YfQtdGCINC+INCy0YDQtdC80LXQvdC4INC/0L4g0L/RgNC+0LXQutGC0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ9Cg0LXQs9GD0LvRj9GA0L3Ri9C1INCy0YvRgNCw0LbQtdC90LjRjyDQtNC70Y8g0YHQvtGB0YLQsNCy0LvQtdC90LjRjyDRgdC/0LjRgdC60LAg0LTQtdC50YHRgtCy0LjQuSDQsiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Lgg0YEg0LLRi9Cx0YDQsNC90L3Ri9C8INC/0YDQvtC10LrRgtC+0LwuINCa0LvRjtGHINC00L7Qu9C20LXQvSDRgdC+0LTQtdGA0LbQsNGC0Ywg0YDQtdCz0YPQu9GP0YDQvdC+0LUg0LLRi9GA0LDQttC10L3QuNC1INC00LvRjyDQv9GA0L7QtdC60YLQsCjQvtCyKSwg0KHQvtC00LXRgNC20LDQvdC40LUgLSDRgNC10LPRg9C70Y/RgNC90YvQtSDQstGL0YDQsNC20LXQvdC40Y8g0LTQu9GPINC00LXQudGB0YLQstC40Y8o0LkpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICfQoNC10LPRg9C70Y/RgNC90YvQtSDQstGL0YDQsNC20LXQvdC40Y8g0LTQu9GPINGB0L7RgdGC0LDQstC70LXQvdC40Y8g0YHQv9C40YHQutCwINC00LXQudGB0YLQstC40Lkg0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINCz0YDRg9C/0L8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuINCa0LvRjtGHINC00L7Qu9C20LXQvSDRgdC+0LTQtdGA0LbQsNGC0Ywg0YDQtdCz0YPQu9GP0YDQvdC+0LUg0LLRi9GA0LDQttC10L3QuNC1INC00LvRjyDQv9GA0L7QtdC60YLQsCjQvtCyKSwg0KHQvtC00LXRgNC20LDQvdC40LUgLSDRgdC/0LjRgdC+0Log0LPRgNGD0L/Qvywg0YDQsNC30LTQtdC70LXQvdC90YvRhSDQt9Cw0L/Rj9GC0L7QuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiwg0LzQvtC20L3QviDQu9C4INC30LDQvdC+0YHQuNGC0Ywg0YDQsNCx0L7Rh9C40LUg0YfQsNGB0Ysg0LHQtdC3INGD0LrQsNC30LDQvdC40Y8g0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwINC4INC+0LrQvtC90YfQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAn0K3RgtC+0YIg0LzQvtC00YPQu9GMINGD0YHQutC+0YDRj9C10YIg0LLQstC+0LQg0LTQsNC90L3Ri9GFINCyIFRpbWVBY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvRjCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LCDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDQvdC10LfQsNCy0LXRgNGI0LXQvdC90YvRhSDRgNCw0LHQvtGH0LjRhSDQtNC90LXQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUg0LfQsNGC0YDQsNGCINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn0J7QsdC30L7RgCDQt9Cw0YLRgNCw0YIg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAn0J7RgtGH0LXRgtGLINC+INC30LDRgtGA0YLQsNGFINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0J3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfQn9GA0L7RgdC80L7RgtGAINC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ9Cj0YfQtdGCINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICfQlNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8sINC10YHQu9C4INC90LXQutC+0YLQvtGA0YvQtSDQtNC10LnRgdGC0LLQuNGPINGD0LzQtdC90YzRiNCw0Y7RgiDRgNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyAo0L3QsNC/0YDQuNC80LXRgCwg0LXRgdC70Lgg0YLQvtC70YzQutC+INC/0L7Qu9C+0LLQuNC90LAg0LLRgNC10LzQtdC90Lgg0LIg0L/Rg9GC0Lgg0L7Qv9C70LDRh9C40LLQsNC10YLRgdGPIC0gS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfQ3lybF9UaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhlIFRpbWUgQWNjb3VudGluZyBvZiB0aGlzIGRheT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDQt9Cw0LjRgdGC0LAg0LbQtdC70LjRgtC1INC00LAg0L7QsdGA0LjRiNC10YLQtSDQvtCx0YDQsNGH0YPQvSDQstGA0LXQvNC10L3QsCDQt9CwINC+0LLQsNGYINC00LDQvT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0JjQt9C80LXQvdC4INCy0YDQtdC80LXQvdGB0LrQuCDQt9Cw0L/QuNGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn0JjQtNC4INGDINC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ9CU0LDRgtGD0LzRgdC60LAg0L3QsNCy0LjQs9Cw0YbQuNGY0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAn0J/RgNC10YLRhdC+0LTQvdC4INC00LDQvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ9Ch0LvQtdC00LXRm9C4INC00LDQvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byB0aGlzIGRhdGUnfSA9ICfQmNC00Lgg0L3QsCDQvtCy0LDRmCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfQlNCw0L3QuCDQsdC10Lcg0YPQvdC+0YHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICfQodC10LvQtdC60YLRg9GYINGB0LLQtSDQtNCw0L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAn0JzQsNGB0L7QstC90Lgg0YPQvdC+0YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfQnNC+0LvQuNC80L4g0JLQsNGBINC40LfQsNCx0LXRgNC40YLQtSDRgNCw0LfQu9C+0LMg0LLQsNGI0LXQsyDQvtC00YHRg9GB0YLQstCwINC30LAg0LjQt9Cw0LHRgNCw0L3QtSDQtNCw0L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ9Cd0LAg0L7QtNC80L7RgNGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfQndCwINCx0L7Qu9C+0LLQsNGa0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfQodC70L7QsdC+0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICfQnNC+0LvQuNC80L4g0JLQsNGBINC40LfQsNCx0LXRgNC40YLQtSDQsdCw0YAg0ZjQtdC00LDQvSDQtNCw0L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn0JzQvtC70LjQvNC+INCS0LDRgSDQuNC30LDQsdC10YDQuNGC0LUg0YDQsNC30LvQvtCzINCy0LDRiNC10LMg0L7QtNGB0YPRgdGC0LLQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQvdC4INGD0L3QvtGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0J7QsdCw0LLQtdC30L3QsCDQv9C+0ZnQsCDRgdGDINC+0LfQvdCw0YfQtdC90LAg0YHQsCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn0JzQvtGA0LDRgtC1INGD0L3QtdGC0Lgg0LLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDQuCDQt9Cw0LLRgNGI0LXRgtC60LAg0LjQu9C4INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfQl9Cw0LTQsNGC0LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQndCw0L/QvtC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ9Cc0L7Qu9C40LzQviDQtNCwINC00L7QtNCw0YLQtSDQvdCw0L/QvtC80LXQvdGDINC00YPQttGDINC+0LQgOCDQutCw0YDQsNC60YLQtdGA0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICfQktGA0LXQvNC1INC/0L7Rh9C10YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LPQsNGC0LjQstC90LAg0LLRgNC10LzQtdC90LAg0L3QuNGB0YMg0LTQvtC30LLQvtGZ0LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J/QvtC90LDQstGZ0LDRmtC1INGB0LDRgtC4INC90LjRmNC1INC00L7Qt9Cy0L7RmdC10L3Qvi4g0JLRgNC10LzQtSDQv9C+0YfQtdGC0LrQsCDRgdC1INC/0L7QutC70LDQv9CwINGB0LAg0LTRgNGD0LPQuNC8INC40L3RgtC10YDQstCw0LvQvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAn0J3QtdC40YHQv9GA0LDQstCw0L0g0YTQvtGA0LzQsNGCISDQnNC+0LvQuNC80L4g0LTQsCDRg9C90LXRgdC10YLQtSDQstGA0LXQvNC1INGDINGE0L7RgNC80LDRgtGDIOKAnkhIOk1N4oCdLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCDRmNC1INC00L7Qt9Cy0L7RmdC10L3QviDRgdCw0LzQviDQutCw0L4g0LLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdC40YHQv9GA0LDQstC90L4g0LLRgNC10LzQtSEg0JTQsNC9INC40LzQsCDRgdCw0LzQviAyNCDRgdCw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICfQktGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn0JLRgNC10LzQtSDQt9Cw0LLRgNGI0LXRgtC60LAg0LzQvtGA0LAg0LHQuNGC0Lgg0L3QsNC60L7QvSDQv9C+0YfQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQn9C+0L3QsNCy0ZnQsNGa0LUg0YHQsNGC0Lgg0L3QuNGY0LUg0LTQvtC30LLQvtGZ0LXQvdC+LiDQktGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsCDRgdC1INC/0L7QutC70LDQv9CwINGB0LAg0LTRgNGD0LPQuNC8INC40L3RgtC10YDQstCw0LvQvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAn0J3QtdC40YHQv9GA0LDQstCw0L0g0L/QtdGA0LjQvtC0ISDQlNCw0L0g0LjQvNCwINGB0LDQvNC+IDI0INGB0LDRgtCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9CY0YHQv9GA0LDQstCw0L0g0L/QtdGA0LjQvtC0INC80L7RgNCwINCx0LjRgtC4INCy0LXRm9C4INC+0LQg0L3Rg9C70LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQhINCd0LXQs9Cw0YLQuNCy0L3QuCDQv9C10YDQuNC+0LTQuCDQvdC40YHRgyDQtNC+0LfQstC+0ZnQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtC00LDRmCDRmNC10LTQsNC9INGA0LXQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCd9ID0gJ9Cj0LrRg9C/0L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9Cc0L7QttC10YLQtSDQuNC30LDQsdGA0LDRgtC4INGB0LDQvNC+INGY0LXQtNC90L4g0L/QvtGZ0LUg0LfQsCDQv9C+0YLQstGA0LTRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICfQn9GA0LjQutCw0LbQuCDRgdCy0LUg0YHRgtCw0LLQutC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQntCx0YDQuNGI0Lgg0YHRgtCw0LLQutGDINC+0LHRgNCw0YfRg9C90LAg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfQn9C+0YLQstGA0LTQuCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINCx0L7Qu9C+0LLQsNGa0YM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINC+0LTQvNC+0YDRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDRgdGC0LUg0YHQuNCz0YPRgNC90Lgg0LTQsCDRgdGC0LUg0YDQsNC00LjQu9C4INC00L7QuiDRgdGC0LUg0LHQuNC70Lgg0L3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQlNCwINC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LAg0YHRgtC1INGA0LDQtNC40LvQuCDQstC40YjQtSDQvtC0IDE2INGB0LDRgtC4Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0LzQtdGB0LXRh9C90L7QsyDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNCh0LDRgtC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10L7RgdGC0LDQu9C4INGB0LvQvtCx0L7QtNC90Lgg0LTQsNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7QtNC80L7RgCAo0JTQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQutC+0YDQuNGI0ZvQtdC9INC+0LTQvNC+0YAgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0LrQvtGA0LjRiNGb0LXQvSDQvtC00LzQvtGAICjRg9C60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ9Cf0YDQtdC+0YHRgtCw0L4g0L7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNCU0LDQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXRgtGF0L7QtNC90Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn0KHQu9C10LTQtdGb0Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0KDQsNC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQtNC90Lgg0KHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn0KPQutGD0L/QvdC+INGA0LDQtNC90LjRhSDRgdCw0YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfQn9GA0LXQs9C70LXQtCDQutC+0YDQuNGB0L3QuNGH0LrQvtCzINC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KHQsNGC0LggKNC80LXRgdC10YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KHQsNGC0LggKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQo9C60YPQv9Cw0L0g0LfQsdC40YAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQstGA0LXQvNC10L3Rgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn0J3QsNCy0LjQs9Cw0YbQuNGY0LAg0L/QviDQvNC10YHQtdGG0LjQvNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfQmNC00Lgg0L3QsCDQtNCw0YLRg9C8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC40LfQstC10YjRgtCw0ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0JzQtdGB0LXRh9C90Lgg0LfQsdC40YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQodCy0LXQs9CwINC00L4g0YHQsNC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQodC70L7QsdC+0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn0J7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0JHQvtC70L7QstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQn9GA0LXQvtGB0YLQsNC+INC+0LTQvNC+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0JjQt9Cy0LXRiNGC0LDRmCDQviDQv9GA0L7RmNC10LrRgtC40LzQsCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0JjQt9Cy0LXRiNGC0LDRmCDQviDQv9GA0L7RmNC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ9CY0LTQuCDQvdCwINC/0YDQtdCz0LvQtdC0INC40LfQstC10YjRgtCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQotGA0LXQvdGD0YLQvdC+INGB0YMg0L/RgNC40LrQsNC30LDQvdC4INGB0LDQvNC+INCw0LrRgtC40LLQvdC4INC60L7RgNC40YHQvdC40YbQuCDRgyDQvtCy0L7QvCDQv9GA0L7RmNC10LrRgtGDLiDQl9CwINC/0YDQvtC80LXQvdGDINC+0LLQsNC60LLQvtCzINC/0L7QvdCw0YjQsNGa0LAsINC80L7Qu9C40LzQviDQktCw0YEg0LDQttGD0YDQuNGA0LDRmNGC0LUg0L/QvtC00LXRiNCw0LLQsNGa0LA6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9Ci0YDQtdC90YPRgtC90L4g0YHRgyDQv9GA0LjQutCw0LfQsNC90Lgg0YHQstC4INC60L7RgNC40YHQvdC40YbQuCDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwLiDQl9CwINC/0YDQvtC80LXQvdGDINC+0LLQsNC60LLQvtCzINC/0L7QvdCw0YjQsNGa0LAsINC80L7Qu9C40LzQviDQsNC20YPRgNC40YDQsNGY0YLQtSDQv9C+0LTQtdGI0LDQstCw0ZrQsDonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdC4INC/0L7QtNC10YjQsNCy0LDRmtCwINC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsCDQn9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn0JTQvtC00LDRmCDQv9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0JjQtNC4INC90LAg0L/RgNC10LPQu9C10LQg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LTQsNGYINCf0YDQvtGY0LXQutCw0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdC4INC/0L7QtNC10YjQsNCy0LDRmtCwINCf0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9CS0LXRmyDQv9C+0YHRgtC+0ZjQuCDQv9GA0L7RmNC10LrQsNGCINGB0LAg0YLQuNC8INC40LzQtdC90L7QvC4g0JzQvtC70LjQvNC+INCy0LDRgSwg0LjQt9Cw0LHQtdGA0LjRgtC1INC90LXQutC+INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdC4INC/0L7QtNC10YjQsNCy0LDRmtCwINC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QtNCw0Zgg0LfQsNC00LDRgtCw0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IHVzZXInfSA9ICfQndC+0LLQuCDQutC+0YDQuNGB0L3QuNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICfQpNC40LvRgtC10YAg0LfQsCDQv9GA0L7RmNC10LrRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVGFza3MnfSA9ICfQpNC40LvRgtC10YAg0LfQsCDQt9Cw0LTQsNGC0LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAn0KTQuNC70YLQtdGAINC30LAg0LrQvtGA0LjRgdC90LjQutC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAn0JLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtNC4INGB0LUg0L3QtSDQvNC+0LPRgyDQvtCx0YDQuNGB0LDRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfQm9C40YHRgtCwINCf0YDQvtGY0LXQutCw0YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICfQm9C40YHRgtCwINCX0LDQtNCw0YLQsNC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LTQsNGYINCX0LDQtNCw0YLQsNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9Cj0YDQtdC00Lgg0L/QvtC00LXRiNCw0LLQsNGa0LAg0LfQsNC00LDRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ9CS0LXRmyDQv9C+0YHRgtC+0ZjQuCDQt9Cw0LTQsNGC0LDQuiDRgdCwINGC0LjQvCDQuNC80LXQvdC+0LwuINCc0L7Qu9C40LzQviDQstCw0YEsINC40LfQsNCx0LXRgNC40YLQtSDQvdC10LrQviDQtNGA0YPQs9C+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICfQm9C40YHRgtCwINCa0L7RgNC40YHQvdC40LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlciBTZXR0aW5ncyd9ID0gJ9Cd0L7QstCwINC60L7RgNC40YHQvdC40YfQutCwINC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJ9Cj0YDQtdC00Lgg0LrQvtGA0LjRgdC90LjRh9C60LAg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICfQmtC+0LzQtdC90YLQsNGA0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0YDQuNC60LDQttC4INCf0YDQtdC60L7QstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn0JTQvtC30LLQvtC70Lgg0LrRgNC10LjRgNCw0ZrQtSDQv9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ9Cf0L7Rh9C10YLQsNC6INC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtGA0LDRmCDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQsNC90Lgg0L7QtNC80L7RgNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAn0KHQsNGC0Lgg0L/QviDQvdC10LTQtdGZ0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ9CU0L7Qt9Cy0L7RmdC10L3QviDQv9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ9CU0LDRgtGD0Lwg0L/QvtGH0LXRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JzQvtC70LjQvNC+INC00LAg0YPQvdC10YHQtdGC0LUg0LLQsNC20LXRm9C4INC00LDRgtGD0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn0JTQsNGC0YPQvCDQt9Cw0LLRgNGI0LXRgtC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICfQmtGA0LDRmCDQv9C10YDQuNC+0LTQsCDQvNC+0YDQsCDQsdC40YLQuCDQv9C+0YHQu9C1INC/0L7Rh9C10YLQutCwINC/0LXRgNC40L7QtNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAn0JTQsNC90Lgg0L7QtNGB0YPRgdGC0LLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfQodC10LTQvNC40YfQvdC4INGB0LDRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn0J/RgNC10LrQvtCy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndC40YHRgyDQv9GA0L7QvdCw0ZLQtdC90Lgg0LLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtNC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQlNC+0LTQsNGYINCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/RgNC40LrQsNC3INCy0YDQtdC80LXQvdGB0LrQvtCzINC30LDQv9C40YHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ9Cf0YDQuNC60LDQtyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfQndC10LzQsCDQv9C+0LTQsNGC0LDQutCwINC30LAg0L7QstCw0Zgg0LTQsNC9Lic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfQoNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUg0YHQtSDQvdC1INC80L7Qs9GDINGD0L3QtdGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfQn9C+0YHQu9C10LTRmtC4INCf0YDQvtGY0LXQutGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAn0J3QtSDQvNC+0LPRgyDQtNCwINGB0LDRh9GD0LLQsNC8INC/0L7QtNC10YjQsNCy0LDRmtCwINGY0LXRgCDQtNCw0L0g0LjQvNCwINGB0LDQvNC+IDI0INGB0LDRgtCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAn0KDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1INGB0LUg0L3QtSDQvNC+0LPRgyDQvtCx0YDQuNGB0LDRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ9Ce0LLQsNGYINC00LDRgtGD0Lwg0ZjQtSDQuNC30LLQsNC9INCz0YDQsNC90LjRhtCwINCw0LvQuCDQs9CwINC90LjRgdGC0LUg0ZjQvtGIINGD0LLQtdC6INGD0L3QtdC70LgsINC/0LAg0LjQvNCw0YLQtSDRmNC+0Ygg0ZjQtdC00L3RgyghKSDRiNCw0L3RgdGDINC30LAg0YPQvdC+0YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfQndC10L/QvtGC0L/Rg9C90Lgg0YDQsNC00L3QuCDQtNCw0L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICfQnNC+0LvQuNC80L4g0JLQsNGBINGD0L3QtdGB0LjRgtC1INCy0LDRiNC1INGA0LDQtNC90L4g0LLRgNC10LzQtSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn0KPRgdC/0LXRiNC90L4g0LTQvtC00LDQstCw0ZrQtSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ9CT0YDQtdGI0LrQsCDQv9GA0Lgg0YPQvdC+0YHRgyDQstC40YjQtSDQtNCw0YLRg9C80LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9Cj0YHQv9C10YjQvdC+INGD0LHQsNGH0LXQvdC4INGD0L3QvtGB0Lgg0LfQsCDQstC40YjQtSDQtNCw0YLRg9C80LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICfQo9C90LXRgtC4INC00LDRgtGD0Lwg0ZjQtSDQvdC10LLQsNC20LXRm9C4LiDQlNCw0YLRg9C8INGY0LUg0L/RgNC+0LzQtdGa0LXQvSDQvdCwINC00LDQvdCw0YjRmtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0J3QuNGY0LUg0LrQvtC90YTQuNCz0YPRgNC40YHQsNC9INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQg0LjQu9C4INGY0LUg0L3QsNCy0LXQtNC10L3QuCDQtNCw0YLRg9C8INCy0LDQvSDQtNC10YTQuNC90LjRgdCw0L3QuNGFINCy0YDQtdC80LXQvdGB0LrQuNGFINC/0LXRgNC40L7QtNCwLiDQnNC+0LvQuNC80L4g0LTQsCDQutC+0L3RgtCw0LrRgtC40YDQsNGC0LUg0LDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YDQsCDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwINC30LAg0LDQttGD0YDQuNGA0LDRmtC1INCy0YDQtdC80LXQvdGB0LrQuNGFINC/0LXRgNC40L7QtNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00ZrQuCDQuNC30LDQsdGA0LDQvdC4INC/0YDQvtGY0LXQutGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAn0KHQstC4INC/0YDQvtGY0LXQutGC0LgnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQv9GA0L7RmNC10LrRgtGDOiDQndC10L7Qv9GF0L7QtNCw0L0g0ZjQtSDQmNCUINC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfQmNC30LLQtdGI0YLQsNCy0LDRmtC1INC+INC/0YDQvtGY0LXQutGC0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICfQmtC+0YDQuNGB0L3QuNGH0LrQsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDRgdC1INC90LUg0LzQvtCz0YMg0LDQttGD0YDQuNGA0LDRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJ30gPSAn0JzQvtC70LjQvNC+LCDQutC+0L3RgtCw0LrRgtC40YDQsNGY0YLQtSDQstCw0YjQtdCzINCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAn0JTQvtC00LDRgiDQv9GA0L7RmNC10LrQsNGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn0JDQttGD0YDQuNGA0LDQvSDQv9GA0L7RmNC10LrQsNGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ9CU0L7QtNCw0YIg0LfQsNC00LDRgtCw0LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfQkNC20YPRgNC40YDQsNC9INC30LDQtNCw0YLQsNC6ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfQmNCUINC60L7RgNC40YHQvdC40LrQsCDQvdC40ZjQtSDQstCw0LbQtdGb0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC/0L7QtNCw0YbQuCDRgdC1INC90LUg0LzQvtCz0YMg0YPQvdC10YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfQktGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0INGB0LUg0L3QtSDQvNC+0LbQtSDQtNC+0LTQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfQkNC20YPRgNC40YDQsNC9INC60L7RgNC40YHQvdC40LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAn0JTQvtC00LDRgiDQutC+0YDQuNGB0L3QuNC6ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ9Cd0L7QstC4INC60L7RgNC40YHQvdC40LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ9Ch0YLQsNGC0YPRgSDQv9C10YDQuNC+0LTQsCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn0J/RgNC40LrQsNC3OiDQn9C+0YLRgNC10LHQvdC+ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ9Cd0LXQv9C+0YLQv9GD0L3QuCDRgNCw0LTQvdC4INC00LDQvdC4JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0JzQvtC00YPQuyDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAg0LrQvtGY0Lgg0L/RgNC40LrQsNC30YPRmNC1INCx0YDQvtGYINC90LXQutC+0LzQv9C70LXRgtC90LjRhSDRgNCw0LTQvdC40YUg0LTQsNC90LAg0LfQsCDQutC+0YDQuNGB0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LjQvNC1INC90L7QstC40YUg0LDQutGG0LjRmNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQuNC80LUg0L3QvtCy0LjRhSDQv9GA0L7RmNC10LrQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC00LDRgtGD0Lwg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0YLRg9C8INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0L7Qv9C40YEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC00LDQvdC1INC+0LTRgdGD0YHRgtCy0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQv9GA0LXQutC+0LLRgNC10LzQtdC90Lgg0YDQsNC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDRgdGC0LDQvdC00LDRgNC00L3RgyDRgNCw0LTQvdGDINC90LXQtNC10ZnRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGB0YLQsNGC0YPRgSDQt9CwINC90L7QstC1INCw0LrRhtC40ZjQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQtSDQv9GA0L7RmNC10LrRgtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGB0YLQsNGC0YPRgSDQvdC+0LLQuNGFINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9GA0L7RmNC10LrRgtC1INC30LAg0LrQvtGY0LUg0ZjQtSDQvdCw0L/QvtC80LXQvdCwINC+0LHQsNCy0LXQt9C90LAuINCQ0LrQviDRgdC1IOKAnlJlZ0V4cOKAnSDQv9C+0LrQu9C+0L/QuCDQvdCwINC/0YDQvtGY0LXQutGC0YMsINC80L7RgNCw0YLQtSDRgtC10LrQvtGS0LUg0YPQvdC10YLQuCDQvdCw0L/QvtC80LXQvdGDLiDigJ5SZWdFeHDigJ0g0LrQvtGA0LjRgdGC0Lgg4oCec2144oCdINC/0LDRgNCw0LzQtdGC0LDRgC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGB0YLQsNGC0LjRgdGC0LjRh9C60Lgg0LzQvtC00YPQuyDQvNC+0LbQtSDQs9C10L3QtdGA0LjRgdCw0YLQuCDQuNC90YTQvtGA0LzQsNGG0LjRmNC1INC+INC+0LHRgNCw0YfRg9C90YMg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAn0JjQt9C80LXQvdC4INCy0YDQtdC80LXQvdGB0LrQuCDQt9Cw0L/QuNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICfQl9CwINC60L7Qu9C40LrQviDQtNCw0L3QsCDRg9C90LDQt9Cw0LQg0LzQvtC20LXRgtC1INGD0L3QtdGC0Lgg0YDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0L/RgNC40LrQsNC30LDQvdC4INGB0YMg0YHQsNC80L4g0LrQvtGA0LjRgdC90LjRhtC4INC60L7RmNC4INGB0YMg0LTQvtC00LDQu9C4INGA0LDQtNC90L4g0LLRgNC10LzQtSDRgyDQuNC30LDQsdGA0LDQvdC4INC/0YDQvtGY0LXQutCw0YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0L/QsNC00LDRmNGD0ZvQuCDQtdC70LXQvNC10L3RgtC4INC90LAg0LXQutGA0LDQvdGDINC30LAg0LjQt9C80LXQvdGDINGB0LUg0LzQtdGa0LDRmNGDINGDINC80L7QtNC10YDQvdC40LfQvtCy0LDQvdCwINGB0LDQvNC+0LTQvtCy0YDRiNCw0LLQsNGY0YPRm9CwINC/0L7RmdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0YTQuNC70YLQtdGAINC/0YDQtdGC0YXQvtC00L3QuNGFINC/0YDQvtGY0LXQutCw0YLQsCDRgdC1INC80L7QttC1INC60L7RgNC40YHRgtC40YLQuCDRg9C80LXRgdGC0L4g0LTQstC1INC70LjRgdGC0LUg0L/RgNC+0ZjQtdC60LDRgtCwICjQv9C+0YHQu9C10LTRmtC4INC4INGB0LLQuCkuINCc0L7QttC1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INGB0LDQvNC+INCw0LrQviDRmNC1IOKAnlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbuKAnSDQsNC60YLQuNCy0LjRgNCw0L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CQ0LrQviDRmNC1INCw0LrRgtC40LLQuNGA0LDQvdC+LCDRhNC40LvRgtC10YAg0L/RgNC10YLRhdC+0LTQvdC40YUg0L/RgNC+0ZjQtdC60LDRgtCwINGY0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LDQutGC0LjQstCw0L0g0LDQutC+INC40LzQsCDQv9GA0L7RmNC10LrQsNGC0LAg0L7QtCDQv9GA0LUuINCc0L7QttC1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INGB0LDQvNC+INCw0LrQviDRmNC1IOKAnkVuYWJsZUF1dG9Db21wbGV0aW9u4oCdINC4IOKAnlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXLigJ0g0LDQutGC0LjQstC40YDQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0LrQvtGA0LjRgdC90LjQutGDINGY0LUg0LTQvtC30LLQvtGZ0LXQvdC+INC00LAg0YPQvdC10YHQtSDigJ7QvdCwINC+0LTQvNC+0YDRg+KAnSwg4oCe0L3QsCDQsdC+0LvQvtCy0LDRmtGD4oCdINC4IOKAntC90LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsOKAnSDQvdCwINCy0LjRiNC1INC00LDRgtGD0LzQsCDQvtC00ZjQtdC00L3QvtC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdC4INCx0YDQvtGYINGA0LDQtNC90LjRhSDQtNCw0L3QsCDQv9C+0YHQu9C1INC60L7QsyDRgtGA0LXQsdCwINC00L7QtNCw0YLQuCDRgNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCDRgNCw0LTQvdC40YUg0LTQsNC90LAg0LHQtdC3INGD0L3QvtGB0LAg0YDQsNC00L3QuNGFINGY0LXQtNC40L3QuNGG0LAg0L/QvtGB0LvQtSDQutC+0LMg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90L4g0YPQv9C+0LfQvtGA0LXRmtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfQn9GA0LXQs9C70LXQtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICfQmNC30LLQtdGI0YLQsNCy0LDRmtC1INC+INCy0YDQtdC80LXQvdGDINC/0YDQvtGY0LXQutGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICfQoNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L7Qs9GA0LDQvdC40YfQsNCy0LDRmtC1INC70LjRgdGC0LUg0LDQutGG0LjRmNCwINC/0YDQtdC80LAg0LjQt9Cw0LHRgNCw0L3QuNC8INC/0YDQvtGY0LXQutGC0LjQvNCwLiDQmtGZ0YPRhyDRgdCw0LTRgNC20Lgg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQv9GA0L7RmNC10LrRgijQtSksINGDINGB0LDQtNGA0LbQsNGY0YMg0ZjQtSDRgNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQtyDQt9CwINCw0LrRhtC40ZjRgyjQtSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ9Cg0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC30Lgg0LfQsCDQvtCz0YDQsNC90LjRh9Cw0LLQsNGa0LUg0LvQuNGB0YLQtSDQsNC60YbQuNGY0LAg0L/RgNC10LzQsCDQuNC30LDQsdGA0LDQvdC40Lwg0LrQvtGA0LjRgdC90LjRh9C60LjQvCDQs9GA0YPQv9Cw0LzQsC4g0JrRmdGD0Ycg0YHQsNC00YDQttC4INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0L/RgNC+0ZjQtdC60YIo0LUpLCDRgyDRgdCw0LTRgNC20LDRmNGDINGY0LUg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQs9GA0YPQv9C1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQtNCwINC70Lgg0YDQsNC00L3QuCDRgdCw0YLQuCDQvNC+0LPRgyDQtNCwINGB0LUg0YPQvdC10YHRgyDQsdC10Lcg0LLRgNC10LzQtdC90LAg0L/QvtGH0LXRgtC60LAg0Lgg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICfQntCy0LDRmCDQvNC+0LTRg9C7INC90LDQvNC10ZvQtSDRg9C90L7RgSDRgyDQvtCx0YDQsNGH0YPQvSDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQntCy0LDRmCDQvNC+0LTRg9C7INC30LAg0L7QsdCw0LLQtdGI0YLQsNCy0LDRmtC1INC00LDRmNC1INGD0L/QvtC30L7RgNC10ZrQtSDQsNC60L4g0LjQvNCwINC/0YDQtdCy0LjRiNC1INC90LXQutC+0LzQv9C70LXRgtC90LjRhSDRgNCw0LTQvdC40YUg0LTQsNC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ9CY0LfQvNC10L3QtSDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICfQn9GA0LXQs9C70LXQtCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAn0JjQt9Cy0LXRiNGC0LDRmNC4INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ9Cf0L7QtNC10YjQsNCy0LDRmtCwINC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAn0J/RgNC10LPQu9C10LQg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn0J7QsdGA0LDRh9GD0L3QsNCy0LDRmtC1INCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICfQl9CwINGD0L/QvtGC0YDQtdCx0YMg0LDQutC+INC90LXQutC1INCw0LrRhtC40ZjQtSDRgdC80LDRmtGD0ZjRgyDRgNCw0LTQvdC1INGB0LDRgtC1ICjQvdCwINC/0YDQuNC80LXRgCwg0LDQutC+INGB0LUg0L/Qu9Cw0ZvQsCDRgdCw0LzQviDQv9C+0LvQsCDQstGA0LXQvNC10L3QsCDQv9GD0YLQvtCy0LDRmtCwINCa0ZnRg9GHID0+INC/0YPRgtC+0LLQsNGa0LU7INCh0LDQtNGA0LbQsNGYID0+IDUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3ZfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnR8OlIHRpbGwgaW5zdMOkbGxuaW5nYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW0tbmF2aWdlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGw7ZyZWfDpWVuZGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnTsOkc3Rrb21tYW5kZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnR8OlIHRpbGwgZGV0IGjDpHIgZGF0dW1ldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdWw6RsaiBhbGxhIGRhZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdQw6Ugc2VtZXN0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1NqdWtsZWRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVsOkbmxpZ2VuIHbDpGxqIMOldG1pbnN0b25lIGVuIGRhZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6RubGlnZW4gdsOkbGogZW4gYW5sZWRuaW5nIGbDtnIgZnLDpW52YXJvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdVcHBkcmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0FubcOkcmsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IFRpbWUnfSA9ICdTdGFydHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXRpdmEgdGlkZXIgw6RyIGludGUgdGlsbMOldG5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPZ2lsdGlndCBmb3JtYXQhIFbDpG5saWdlbiBmeWxsIGkgZW4gdGlkIG1lZCBmb3JtYXRldCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnT2dpbHRpZyB0aWQhIEV0dCBkeWduIGhhciBiYXJhIDI0IHRpbW1hci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ8OWdmVydGlkIChUaW1tYXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdTZW1lc3RlciAoRGFnYXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyB1c2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIFVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21tZW50cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVmFyIHbDpG5saWcgZnlsbCBpIGRpbmEgYXJiZXRzdGltbWFyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuIFBsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW4gdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBwb3J0ZXJpbmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3dfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdKZSB1bmF0YWthIGt1ZnV0YSBVaGFzaWJ1IHdhIE11ZGEga3dhIHNpa3UgeWEgbGVvPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdIYXJpcmkgcmVrb2RpIHlhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdOZW5kYSBrd2VueWUgbXBhbmdpbGlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ1VhYmlyaSB3YSB0YXJlaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnU2lrdSBpbGl5b3BpdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdTaWt1IGluYXlvZndhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gdGhpcyBkYXRlJ30gPSAnTmVuZGEga3dlbnllIGhpaSB0YXJlaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdTaWt1IHppc2l6b2t1d2EgbmEgbWFpbmdpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnQ2hhZ3VhIHNpa3Ugem90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5naXpvIGxhIHBhbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1RhZmFkaGFsaSBjaGFndWEgc2FiYWJ1IHlhIGt1dG9rdXdlcG8ga3dhIHNpa3UgemlsaXpvIGNoYWd1bGl3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0thdGlrYSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0thdGlrYSBydWh1c2EgeWEgd2Fnb25qd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdLYXRpa2EgcnVodXNhIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgamFwbyBzaWt1IG1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdUYWZhZGhhbGkgY2hhZ3VhIHNhYmFidSB5YSBrdXRvIGt1d2VwbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0luZ2l6byBsYSBwYW1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdTZWhlbXUgemluYXpvdGFraXdhIHppbmEgYWxhbWEgIioiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVW5hdGFraXdhIGt1amF6YSBtdWRhIHdhIGt1YW56YSBuYSBrdW1hbGl6YSBhdSBtdWRhIHVsaW90dW1pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdNcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnS2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdNYW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgVGltZSd9ID0gJ011ZGEgd2EgS3VhbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdNdWRhIGhhc2kgaGF1cnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNdWRhIHVsaW9qaXJ1ZGlhIGhhdXJ1aHVzaXdpLiBNdWRhIHdhIGt1YW56YSB1bmFmYW5hbmEgbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ011dW5kbyBiYXRpbGkhIFRhZmFkaGFsaSBpbmdpemEgbXVkYSBuYSBtdXVuZG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGluYXJ1aHVzaXdhIGthdGlrYSBtdWRhIHdhIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIFRpbWUnfSA9ICdNdWRhIHdhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdNdWRhIHdhIGt1bWFsaXphIGxhemltYSB1d2UgYmFhZGEgeWEgbXVkYSB3YSBrdWFuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnTWFzYWEgeWFsaXlvamlydWRpYSBoYXlhcnVodXNpd2kuIE11ZGEgd2Ega3VtYWxpemEgdW5hZmFuYW5hIG11ZGEgbXdpbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdNdWRhIGJhdGlsaSEgU2lrdSBpbmEgbWFzYWEgMjQgdHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnTXVkYSBoYWxhbGkgdW5hIG1hc2FhIHphaWRpIHlhIHNpZnVyaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ0tpcGluZGkgYmF0aWxpISBWaXBpbmRpIGhhc2kgaGF2aXJ1aHVzaXdpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ09uZ2V6YSBzYWZ1IG1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwnfSA9ICdKdW1sYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1VuYXdlemEga3VjaGFndWEgZWxlbWVudGkgbW9qYSBrYXRpa2EgY2hla2kgYm9rc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBhbGwgaXRlbXMnfSA9ICdPbnllc2hhIHZpcGVuZ2VsZSB2eW90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRnV0YSBpbmdpem8gbGEgVWhhc2lidSB3YSBNdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnSGFraWtpIGluZ2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6byB5YSB3YWdvbmp3YT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdVbmEgdWhha2lrYSB1bGlmYW55YSBrYXppIHdha2F0aSB1cG8gbGlraXpvPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6byB5YSBtdWRhIHdhIG55b25nZXphPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdVbmEgdWhha2lrYSB1bGlmYW55YSBrYXppIHphaWRpIHlhIG1hc2FhIDE2Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTWFwaXRpbyB5YSBtd2V6aSB5YSB1YXJpZnUgd2EgbXVkYSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ011ZGEgd2EgbnlvZ25lemEgKE1hc2FhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdNdWRhIHdhIG55b25nZXphIChtd2V6aSBodXUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdNdWRhIHdhIG55b25nZXphIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnTXVkYSB1bGlvYmFraSB3YSBsaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdMaWtpem8gKHNpa3UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0xpa2l6byBpbGl5b2NodWt1bGl3YSAobXdlemkgaHV1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnTGlraXpvIGlsaXlvY2h1a3VsaXdhIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnTGlraXpvIGlsaXlvYmFraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSAoc2lrdSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWtpem8geWEgd2Fnb25qd2EgaWxpeW9jaHVrdWxpd2EgKG13ZXppIGh1dSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGlraXpvIHlhIHdhZ29uandhIGlsaXlvY2h1a3VsaXdhIChqdW1sYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNd2V6aSB1bGlvcGl0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTXdlemkgdWphbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnU2lrdSB6YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdNYXNhYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ0p1bWxhIHlhIG1hc2FhIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnTWFwaXRpbyB5YSBtcmFkaSB3YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdNYXNhYSAoa3dhIG13ZXppKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnTWFzYWEgKG11ZGEgd290ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdKdW1sYSBrdXUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVWFyaWZ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ1VhYmlyaSB3YSBtd2V6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnTmVuZGEgdGFyZWhlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JpcG90aSB6YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSnVtbGEgeWEgbXdlemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdKdW1sYSB5YSBtdWRhIHdvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdMaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0xpa2l6byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnTGlraXpvIHlhIHdhZ29uandhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0xpa2l6byBpbGl5b2Jha2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmlwb3RpIHphIG1yYWRpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSaXBvdGkgeWEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnTmVuZGEga3dlbnllIG1hcGl0aW8geWEgdWFyaWZ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnS3dhIHNhc2Egd2F0dW1pYWppIGFtaWxpZnUgdHUga2F0aWthIG1yYWRpIGh1dSB3YXRhb255ZXNod2EuIEt1YmFkaWxpc2hhIHRhYmlhIGhpaSwgdGFmYWRoYWxpIHNhc2lzaGEgbXBhbmdhbGlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdLd2Egc2FzYSB3YXR1bWlhamkgd290ZSB3YSBtdWRhIHVsaW9oZXNhYmlrYSB3YXRhb255ZXNod2EuIEt1YmFkaWxpc2hhIHRhYmlhIGhpaSwgdGFmYWRoYWxpIHNhc2lzaGEgbXBhbmdhbGlvLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdIYXJpcmkgVWhhc2lidSB3YSBNdWRhIGt3ZW55ZSBtaXBhbmdpbGlvIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnT25nZXphIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnTmVuZGEga3dlbnllIG1hcGl0aW8geWEgbXBhbmdpaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdPbmdlemEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgbXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1RheWFyaSBrdW5hIG1yYWRpIHdlbnllIGhpbGkgamluYS4gVGFmYWRoYWxpLCBjaGFndWEgamVuZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdIYXJpcmkgbWlwYW5naWxpbyB5YSBVaGFzdWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdPbmdlemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgdXNlcid9ID0gJ010dW1pYWppIG1weWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBQcm9qZWN0cyd9ID0gJ0tpY2h1amlvIGNoYSBNaXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBUYXNrcyd9ID0gJ0tpY2h1amlvIGNoYSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgVXNlcnMnfSA9ICdLaWNodWppbyBjaGEgV2F0dW1pYWppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ09yb2RoYSB5YSBtaXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnT3JvZGhhIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdPbmdlemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdIYXJpcmkgbWlwYW5naWxpbyB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdUYXlhcmkga3VuYSBrYXppIHllbnllIGhpbGkgamluYS4gVGFmYWRoYWxpIGNoYWd1YSBqZW5naW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdPcm9kaGEgeWEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXIgU2V0dGluZ3MnfSA9ICdNaXBhbmdpbGlvIHlhIG10dW1pYWppIG1weWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBVc2VyIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tbWVudHMnfSA9ICdNYW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnT255ZXNoYSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdSdWh1c3UgdXRlbmdlbmV6YWppIHdhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0t1YW56YSBrd2Ega2lwZW5nZWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLdWlzaGEga3dhIGtpcGVuZ2VsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnU2lrdSB6YSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdNYXNhYSBrd2Egd2lraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSB1bGlvcnVodXNpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1RhcmVoZSB5YSBrdWFuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSB0YXJlaGUgaGFsYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnVGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnTXdpc2hvIHdhIGtpcGVuZ2VsZSBsYXppbWEgdXdlIGJhYWRhIHlhIG13YW56byB3YSBraXBlbmdlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1Npa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ01hc2FhIHlhIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdNdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdIYWt1bmEgdmlwZW5nZWxlIHZ5YSBtdWRhIHZpbGl2eW9wYXRpa2FuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdPbmdlemEga2lwZW5nZWxlIGNoYSBtdWRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ09ueWVzaGEga2lwZW5nZWxlIGNoYSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnTXVvbmVrYW5vIHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0hha3VuYSBkYXRhIHppbGl6b3BhdGlrYW5hIGt3YSBzaWt1IGhpaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdUYWZhZGhhbGkgaW5naXphIG1hc3NhYSB5YSBrYXppISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbmdpem8gbGltZWZhbmlraXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdLb3NhIGthdGlrYSBrdWluZ2l6YSB0YXJlaGUgemFpZGkgeWEgbW9qYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnTWFpbmdpem8geWFsaXlvZmFuaWtpd2Ega3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnSW5naXpvIGxhIHRhcmVoZSBuaSBiYXRpbGkhIFRhcmVoZSBpbWViYWRpbGlzaHdhIGxlby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLiBQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnVWFyaWZ1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJ30gPSAnVGFmYWRoYWxpIHdhc2lsaWFuYSBuYSBtdGF3YWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsaSB5YSB0YWFyaWZhIGt3YSBraW9sZXN1cmEgY2hhIHdha2FsYSBrdW9uYSBpZGFkaSB5YSBzaWt1IHphIGthemkgemEgbXR1bWlhamkgemlzaXpvIGthbWlsaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdKaW5hIGxhIGNoYWd1by1tc2luZ2kga3dhIHZpdGVuZG8gdmlweWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0ppbmEgbGEgY2hhZ3VvLW1zaW5naSBrd2EgbWlyYWRpIG1pcHlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQ2hhZ3VvLW1zaW5naSBrd2EgbWlwYW5naWxpbyB5YSB0YXJlaGUgeWEga3VtYWxpemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0NoYWd1by1tc2luZ2kga3dhIG1pcGFuZ2lsaW8geWEgdGFyZWhlIHlhIGt1YW56YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDaGFndW8tbXNpbmdpIGt3YSBtaXBhbmdpbGlvIHlhIG1hZWxlem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NoYWd1by1tc2luZ2kgbGEgc2lrdSB6YSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NoYWd1by1tc2luZ2kgbGEgbWlwYW5naWxpbyB5YSBzaWt1IHphIGthd2FpZGEgemEgd2lraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnSGFsaSB5YSBjaGFndW8tbXNpbmdpIGt3YSB2aXRlbmRvIHZpcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0hhbGkgeWEgY2hhZ3VvLW1zaW5naSBrd2EgbWlyYWRpIG1pcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0hhbGkgeWEgY2hhZ3VvLW1zaW5naSBrd2Egd2F0dW1pYWppIHdhcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIG1pcmFkaSBhbWJheW8gbWFvbmkgeWFuYWhpdGFqaWthLiBLYW1hIFJlZ0V4cCBpbmFmYW5hbmEga2F0aWthIG1yYWRpLCB1bmF0YWtpd2Ega3V3ZWthIG1hb25pIHBpYS4gUmVnRXhwIGluYXR1bWlhIHBhcmFtZXRhIHlhIHNteCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnSW5haGFraWtpIGthbWEgbW9kdWxpIHlhIHRha3dpbXUgaW5hd2V6YSBrdXRlbmdlbmV6YSB0YWFyaWZhIHlhIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0t3YSBzaWt1IG5nYXBpIHppbGl6b3BpdGEgdW5hd2V6YSBrdWluZ2l6YSB2aXRlbmdvIHZ5YSBrYXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdLYW1hIGltZXdlemVzaHdhLCB3YXR1bWlhamkgd2FsaW93ZWthIG11ZGEgd2Ega2F6aSBrd2EgbXJhZGkgdWxpb2NoYWd1bGl3YSBuZGlvIHdhdGFvbnllc2h3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdLYW1hIGltZXdlemVzaHdhLCBtdHVtaWFqaSBhbmFydWh1c2l3YSBrdWluZ2l6YSAia3dlbnllIGxpa2l6byIsICJrd2VueWUgbGlraXpvIHlhIHdhZ29uandhIiwgImt3ZW55ZSBsaWtpem8geWEgc2lrdSB6YSBueW9uZ2V6YSIga3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phIGt3YSBta3VwdW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnS2ltYSBjaGEganV1IGNoYSBzaWt1IHphIGthemkgYmFhZGEgeWEgdml0ZW5nbyB2eWEga2F6aSBrdWluZ2l6d2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdLaW1hIGNoYSBqdXUgY2hhIHNpa3UgemEga2F6aSBiaWxhIHlhIHZpdGVuZ28gdnlhIGthemkga3VpbmdpendhIGFtYmF2eW8gIG9ueW8gbGl0YW9ueWVzaHdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ01hbmVubyB5YSBrYXdhaWRhIHlhbmF5byBrd2FtaXNoYSBvcm9kaGEgeWEgdml0ZW5kbyBrd2EgbXJhZGkgdWxpb2NoYWd1bGl3YS4gVWZ1bmd1byB1bmEgbWFuZW5vIHlhIGthd2FpZGEgeWEgbXJhZGkgKG1pcmFkaSksIG1hdWRodWkgeWFuYSBtYW5lbm8geWEga2F3YWlkYSB5YSBraXRlbmRvICh2aXRlbmRvKS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ01hbmVubyB5YSBrYXdhaWRhIHlhIGt1enVpYSBvcm9kaGEgeWEgbXJhZGkga3VlbmRhbmEgbmEgbWFrdW5kaSB5YSB3YXR1bWlhamkuIFVmdW5ndW8gdW5hIG1hbmVubyB5YSBrYXdhaWRhIHlhIG1yYWRpIChtaXJhZGkpLCBtYXVkaHVpIHlhbmEgbWFrdW5kaSB5YWxpeW9nYXdhbnl3YSBrd2EgYWxhbWEgeWEgbWthdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdJbmFiYWluaXNoYSBrYW1hIG1hc2FhIHlhIGthemkgeWFuYXdlemEga3VpbmdpendhIGJpbGEgeWEgbXVkYSB3YSBrdWFuemEgbmEga3VtYWxpemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0hpaSBtb2R1bGkgaW5haW5naXphIFVoYXNpYnUgd2EgTXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0hpaSBtb2R1bGkgeWEgdGFhcmlmYSBpbmF0b2Egb255byBlbmRhcG8ga3VuYSBzaWt1IG55aW5naSB6YSBrYXppIGFtYmF6byBoYXppamFrYW1pbGlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnSGFyaXJpIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ01hcGl0aW8geWEgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1VhcmlmdSB3YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdNcGFuZ2lsaW8gd2EgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdNdW9uZWthbm8gd2EgdWhhc2lidSB3YSBtdWRhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVWhhc2lidSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0l0YXR1bWlrYSBrYW1hIGJhYWRoaSB5YSB2aXRlbmRvIHZpdGFwdW5ndXphIG11ZGEgd2Ega2F6aSAobWZhbm8sIGthbWEgbnVzdSB5YSBtdWRhIHdhIGt1c2FmaXJpIHVtZWxpcHdhIFVmb25ndW89PiBrdXNhZmlyaTsgbWF1ZGh1aT0+IDUwKS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nRWRpdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyhUb2RheSBEYXlzX2luX01vbnRoIERheV9vZl9XZWVrIEFkZF9EZWx0YV9ZTUQgY2hlY2tfZGF0ZSk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICByZXR1cm4gMSBpZiAhJFNlbGYtPntBY2Nlc3NSb307CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICBpZiAoCiAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tFbmZvcmNlSW5zZXJ0fQogICAgICAgICYmICRTZWxmLT57QWN0aW9ufSBuZSAnQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnCiAgICAgICAgJiYgJFNlbGYtPntBY3Rpb259IG5lICdBZ2VudENhbGVuZGFyU21hbGwnCiAgICAgICAgKQogICAgewoKICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gZGVsZXRlIHRoZSBlbnRyeSBvZiB0aGlzIGRheQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0RlbGV0ZURpYWxvZycgKSApIHsKCiAgICAgICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgRGF0ZQogICAgICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSB8fCAhJFBhcmFte0RheX0gKSB7CiAgICAgICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgICAgICAgICAgJFBhcmFte0RheX0gICA9ICREYXk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUGFyYW17WWVhcn0gID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17WWVhcn0gKTsKICAgICAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgICAgICAgICAkUGFyYW17RGF5fSAgID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17RGF5fSApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdEZWxldGUnLAogICAgICAgICk7CgogICAgICAgICMgYnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlCiAgICAgICAgbXkgJURhdGEgPSAoCiAgICAgICAgICAgIEhUTUwgICAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgRGlhbG9nVHlwZSA9PiAnQ29uZmlybWF0aW9uJywKICAgICAgICApOwoKICAgICAgICAjIHJldHVybiBKU09OLVN0cmluZyBiZWNhdXNlIG9mIEFKQVgtTW9kZQogICAgICAgIG15ICRPdXRwdXRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiBcJURhdGEsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXRKU09OLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGRlbGV0ZSBvYmplY3QgZnJvbSBkYXRhYmFzZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICkgewogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXkgTW9udGggWWVhcikpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKAogICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH07RGF5PSRQYXJhbXtEYXl9IiwKICAgICAgICApOwogICAgfQoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgbWFzcyBlbnRyeQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdNYXNzRW50cnknICkgewoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZXMgTGVhdmVEYXkgU2ljayBPdmVydGltZSkpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBzcGxpdCB1cCBkYXRlcwogICAgICAgIG15IEBEYXRlcyA9IHNwbGl0IC9bfF0vLCAkUGFyYW17RGF0ZXN9OwogICAgICAgIG15ICRJbnNlcnRFcnJvciA9IDA7CgogICAgICAgICMgc2F2ZSBlbnRyaWVzIGluIHRoZSBkYgogICAgICAgIGZvciBteSAkRGF0ZSAoQERhdGVzKSB7CgogICAgICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0IC9bLV0vLCAkRGF0ZTsKCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkUGFyYW17TGVhdmVEYXl9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJFBhcmFte1NpY2t9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJFBhcmFte092ZXJ0aW1lfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEluc2VydEVycm9yID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgICMgcmVkaXJlY3QgdG8gZWRpdCBzY3JlZW4gd2l0aCBsb2cgbWVzc2FnZQogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtOb3RpZmljYXRpb249JwogICAgICAgICAgICAgICAgLiAoICRJbnNlcnRFcnJvciA/ICdFcnJvcicgOiAnU3VjY2Vzc2Z1bCcgKSwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHRoZSB0aW1lIGFjY291bnRpbmcgZWxlbWVudHMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcGFyYW1zCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIFllYXIgTW9udGggRGF5IE5vdGlmaWNhdGlvbikpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICB9CiAgICAkUGFyYW17UmVjb3Jkc051bWJlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUmVjb3Jkc051bWJlcicgKSB8fCA4OwogICAgJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSW5zZXJ0V29ya2luZ1VuaXRzJyApOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSB8fCAhJFBhcmFte0RheX0gKSB7CiAgICAgICAgJFBhcmFte1llYXJ9ICA9ICRZZWFyOwogICAgICAgICRQYXJhbXtNb250aH0gPSAkTW9udGg7CiAgICAgICAgJFBhcmFte0RheX0gICA9ICREYXk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17WWVhcn0gKTsKICAgICAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAgICAgJFBhcmFte0RheX0gICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte0RheX0gKTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGEgdmFsaWQgZGF0ZQogICAgIyBpZiBub3QgdmFsaWQsIHNldCB0aGUgZGF0ZSB0byB0b2RheQogICAgaWYgKCAhY2hlY2tfZGF0ZSggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgICAgICAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ICAgICAgID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgICAgICAgPSAkRGF5OwogICAgICAgICRQYXJhbXsnV3JvbmdEYXRlJ30gPSAxOwogICAgfQoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgIyBmb3IgaW5pdGlhbCB1c2UsIHRoZSBmaXJzdCBhZ2VudCB3aXRoIHJ3LXJpZ2h0IHdpbGwgYmUgcmVkaXJlY3RlZAogICAgIyB0byAnU2V0dGluZycsIHNvIGhlIGNhbiBkbyB0aGUgaW5pdGlhbCBzZXR0aW5ncwogICAgaWYgKCAhJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9ICkgewoKICAgICAgICByZXR1cm4gJFNlbGYtPl9GaXJzdFVzZXJSZWRpcmVjdCgpOwogICAgfQoKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE1heEFsbG93ZWRJbnNlcnREYXlzID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMnKSB8fCAnMTAnOwogICAgKCAkUGFyYW17WWVhckFsbG93ZWR9LCAkUGFyYW17TW9udGhBbGxvd2VkfSwgJFBhcmFte0RheUFsbG93ZWR9ICkKICAgICAgICA9IEFkZF9EZWx0YV9ZTUQoICRZZWFyLCAkTW9udGgsICREYXksIDAsIDAsIC0kTWF4QWxsb3dlZEluc2VydERheXMgKTsKICAgIGlmICgKICAgICAgICB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApIDwgdGltZWxvY2FsKAogICAgICAgICAgICAxLCAwLCAwLCAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgICRQYXJhbXtNb250aEFsbG93ZWR9IC0gMSwKICAgICAgICAgICAgJFBhcmFte1llYXJBbGxvd2VkfSAtIDE5MDAKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgIGlmICgKICAgICAgICAgICAgISRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17ICRQYXJhbXtZZWFyfSB9eyAkUGFyYW17TW9udGh9IH0KICAgICAgICAgICAgeyAkUGFyYW17RGF5fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICApOwoKICAgICRQYXJhbXtNb250aF90b19UZXh0fSA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgKCAkUGFyYW17WWVhckJhY2t9LCAkUGFyYW17TW9udGhCYWNrfSwgJFBhcmFte0RheUJhY2t9ICkKICAgICAgICA9IEFkZF9EZWx0YV9ZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIC0xICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgMSApOwoKICAgIG15ICRSZWR1Y2VUaW1lUmVmID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UmVkdWNlVGltZScpOwoKICAgICMgaGFzaGVzIHRvIHN0b3JlIHNlcnZlciBzaWRlIGVycm9ycwogICAgbXkgJUVycm9ycyAgICAgICAgICA9ICgpOwogICAgbXkgJVNlcnZlckVycm9yRGF0YSA9ICgpOwogICAgbXkgJEVycm9ySW5kZXggICAgICA9IDE7CgogICAgbXkgJURhdGE7CiAgICBteSAlQWN0aW9uTGlzdCA9ICRTZWxmLT5fQWN0aW9uTGlzdCgpOwoKICAgICMgRWRpdCBXb3JraW5nIFVuaXRzCiAgICBpZiAoICRQYXJhbXtTdGF0dXN9ICkgewoKICAgICAgICAjIGFycmF5cyB0byBzYXZlIGFsbCBzdGFydCBhbmQgZW5kIHRpbWVzIGZvciBzb21lIGNoZWNrcwogICAgICAgIG15ICggQFN0YXJ0VGltZXMsIEBFbmRUaW1lcyApOwoKICAgICAgICAjIGRlbGV0ZSBwcmV2aW91cyBlbnRyaWVzIGZvciB0aGlzIGRheSBhbmQgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICVDaGVja2JveENoZWNrID0gKCk7CiAgICAgICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewogICAgICAgICAgICBteSAkVmFsdWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkRWxlbWVudCApOwogICAgICAgICAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgICAgICAgICAkQ2hlY2tib3hDaGVja3skRWxlbWVudH0gPSAxOwogICAgICAgICAgICAgICAgJFBhcmFteyRFbGVtZW50fSAgICAgICAgID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQYXJhbXskRWxlbWVudH0gPSAnJwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG1vcmUgdGhhbiBvbmUgY2hlY2sgYm94IHdhcyBjaGVja2VkIGl0IGlzIGEgc2VydmVyIGVycm9yCiAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlQ2hlY2tib3hDaGVjayA+IDEgKSB7CiAgICAgICAgICAgIGZvciBteSAkQ2hlY2tib3ggKCBzb3J0IGtleXMgJUNoZWNrYm94Q2hlY2sgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkQ2hlY2tib3ggLiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGluc2VydCB2YWx1ZXMgKGlmIGFueSkKICAgICAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlQ2hlY2tib3hDaGVjayA+IDAgKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgICAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkQ2hlY2tib3hDaGVja3tMZWF2ZURheX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJENoZWNrYm94Q2hlY2t7U2lja30gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJENoZWNrYm94Q2hlY2t7T3ZlcnRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgY2hlY2sgaXRlbSBvYmplY3QKICAgICAgICBteSAkQ2hlY2tJdGVtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbScpOwoKICAgICAgICBJRDoKICAgICAgICBmb3IgbXkgJElEICggMSAuLiAkUGFyYW17UmVjb3Jkc051bWJlcn0gKSB7CgogICAgICAgICAgICAjIGFycmF5cyB0byBzYXZlIHRoZSBzZXJ2ZXIgZXJyb3JzIGJsb2NrIHRvIHNob3cgdGhlIGVycm9yIG1lc3NhZ2VzCiAgICAgICAgICAgIG15ICggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgQFBlcmlvZFNlcnZlckVycm9yQmxvY2sgKSA9ICgpOwoKICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFByb2plY3RJRCBBY3Rpb25JRCBSZW1hcmsgU3RhcnRUaW1lIEVuZFRpbWUgUGVyaW9kKSkgewogICAgICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICdbJyAuICRJRCAuICddJyApOwogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFBhcmFtUmVmID0gXCRQYXJhbXskUGFyYW1ldGVyfTsKCiAgICAgICAgICAgICAgICAgICAgIyBkZWxldGUgbGVhZGluZyBhbmQgdGFpbGluZyBzcGFjZXMKICAgICAgICAgICAgICAgICAgICAkUGFyYW1SZWYgPSAkQ2hlY2tJdGVtT2JqZWN0LT5TdHJpbmdDbGVhbigKICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUmVmID0+ICRQYXJhbVJlZiwKICAgICAgICAgICAgICAgICAgICAgICAgVHJpbUxlZnQgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyaW1SaWdodCA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG5leHQgSUQgaWYgISRQYXJhbXtQcm9qZWN0SUR9ICYmICEkUGFyYW17QWN0aW9uSUR9OwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgbWlzc2luZyB2YWx1ZXMKICAgICAgICAgICAgaWYgKCAkUGFyYW17UHJvamVjdElEfSAmJiAhJFBhcmFte0FjdGlvbklEfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0FjdGlvbklESW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICYmICRQYXJhbXtBY3Rpb25JRH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQcm9qZWN0SURJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY3JlYXRlIGEgdmFsaWQgcGVyaW9kCiAgICAgICAgICAgIG15ICRQZXJpb2QgPSAkUGFyYW17UGVyaW9kfTsKICAgICAgICAgICAgaWYgKCAkUGVyaW9kID1+IC9eKFxkKyksKFxkKykvICkgewogICAgICAgICAgICAgICAgJFBlcmlvZCA9ICQxIC4gIi4iIC4gJDI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICNhbGxvdyBmb3JtYXQgaGg6bW0KICAgICAgICAgICAgZWxzaWYgKCAkUGFyYW17UGVyaW9kfSA9fiAvXihcZCspOihcZCspLyApIHsKICAgICAgICAgICAgICAgICRQZXJpb2QgPSAkMSArICQyIC8gNjA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgc3RhcnQgb3IgZW5kIHRpbWVzIGFyZSBtaXNzaW5nLCBkZWxldGUgdGhlIG90aGVyIGVudHJ5CiAgICAgICAgICAgIGlmICggISRQYXJhbXtTdGFydFRpbWV9IHx8ICEkUGFyYW17RW5kVGltZX0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSA9ICcnOwogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ICAgPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgJzowMCcgdG8gdGhlIHRpbWUsIGlmIGl0IGRvZXNuJ3QgaGF2ZSBpdCB5ZXQKICAgICAgICAgICAgaWYgKCAkUGFyYW17U3RhcnRUaW1lfSAmJiAkUGFyYW17U3RhcnRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhcnRUaW1lfSAuPSAnOjAwJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQYXJhbXtFbmRUaW1lfSAmJiAkUGFyYW17RW5kVGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9IC49ICc6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICggJFBhcmFte1N0YXJ0VGltZX0gPX4gL14oXGQrKTooXGQrKSQvICkKICAgICAgICAgICAgICAgICYmICggJFBhcmFte0VuZFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLyApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9ID1+IC9eKFxkKyk6KFxkKykkLzsKICAgICAgICAgICAgICAgIG15ICRTdGFydFRpbWUgPSAkMSAqIDYwICsgJDI7CiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gPX4gL14oXGQrKTooXGQrKSQvOwogICAgICAgICAgICAgICAgbXkgJEVuZFRpbWUgPSAkMSAqIDYwICsgJDI7CiAgICAgICAgICAgICAgICBpZiAoICRSZWR1Y2VUaW1lUmVmLT57ICRBY3Rpb25MaXN0eyAkUGFyYW17QWN0aW9uSUR9IH0gfSApIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kID0gKCAkRW5kVGltZSAtICRTdGFydFRpbWUgKSAvIDYwCiAgICAgICAgICAgICAgICAgICAgICAgICogJFJlZHVjZVRpbWVSZWYtPnsgJEFjdGlvbkxpc3R7ICRQYXJhbXtBY3Rpb25JRH0gfSB9IC8gMTAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZCA9ICggJEVuZFRpbWUgLSAkU3RhcnRUaW1lICkgLyA2MDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGVuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZQogICAgICAgICAgICAgICAgaWYgKCAkRW5kVGltZSA8PSAkU3RhcnRUaW1lICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lQmVmb3JlU3RhcnRUaW1lU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRTdGFydFRpbWVzWyRJRF0gPSAkU3RhcnRUaW1lOwogICAgICAgICAgICAgICAgJEVuZFRpbWVzWyRJRF0gICA9ICRFbmRUaW1lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17U3RhcnRUaW1lfSAmJiAkUGFyYW17U3RhcnRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17RW5kVGltZX0gJiYgJFBhcmFte0VuZFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkCiAgICAgICAgICAgIGlmICggJFBhcmFte1N0YXJ0VGltZX0gPX4gL14tKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRQYXJhbXtFbmRUaW1lfSA9fiAvXi0oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZAogICAgICAgICAgICBQT1NJVElPTjoKICAgICAgICAgICAgZm9yICggbXkgJFBvc2l0aW9uID0gJElEIC0gMTsgJFBvc2l0aW9uID49IDE7ICRQb3NpdGlvbi0tICkgewogICAgICAgICAgICAgICAgbmV4dCBQT1NJVElPTiBpZiAhZGVmaW5lZCAkU3RhcnRUaW1lc1skUG9zaXRpb25dOwogICAgICAgICAgICAgICAgbmV4dCBQT1NJVElPTiBpZiAhZGVmaW5lZCAkU3RhcnRUaW1lc1skSURdOwoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkU3RhcnRUaW1lc1skUG9zaXRpb25dID4gJFN0YXJ0VGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICYmICRTdGFydFRpbWVzWyRQb3NpdGlvbl0gPCAkRW5kVGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRW5kVGltZXNbJFBvc2l0aW9uXSA+ICRTdGFydFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICAmJiAkRW5kVGltZXNbJFBvc2l0aW9uXSA8ICRFbmRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmICggJEVuZFRpbWVzWyRJRF0gPiAkRW5kVGltZXNbJFBvc2l0aW9uXSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhZ3JlcCB7L15TdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJFBvc2l0aW9uXSA9PSAkU3RhcnRUaW1lc1skSURdICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRFbmRUaW1lc1skUG9zaXRpb25dID09ICRFbmRUaW1lc1skSURdICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkU3RhcnRUaW1lc1skSURdID4gJFN0YXJ0VGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICYmICRTdGFydFRpbWVzWyRJRF0gPCAkRW5kVGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15TdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRFbmRUaW1lc1skSURdID4gJFN0YXJ0VGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICYmICRFbmRUaW1lc1skSURdIDwgJEVuZFRpbWVzWyRQb3NpdGlvbl0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgJzI0OjAwJyBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZQogICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRJRF0gJiYgJFN0YXJ0VGltZXNbJElEXSA9PSAxNDQwICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZTI0SG91cnMnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHRpbWVzIHN1cGVyaW9yIHRvIDI0OjAwIGFyZSBub3QgYWxsb3dlZAogICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRJRF0gJiYgJFN0YXJ0VGltZXNbJElEXSA+IDE0NDAgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lSW52YWxpZCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkRW5kVGltZXNbJElEXSAmJiAkRW5kVGltZXNbJElEXSA+IDE0NDAgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lSW52YWxpZCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIHJlZmVyZW5jZSB0byB0aGUgc2VydmVyIGVycm9yIG1lc3NhZ2VzIHRvIGJlIHNob3duCiAgICAgICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSA9IFxAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSA9IFxARW5kVGltZVNlcnZlckVycm9yQmxvY2s7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3ZlcndyaXRlIHBlcmlvZCBpZiB0aGVyZSBhcmUgc3RhcnQgYW5kIGVuZCB0aW1lcwogICAgICAgICAgICBpZiAoICRTdGFydFRpbWVzWyRJRF0gJiYgJEVuZFRpbWVzWyRJRF0gKSB7CiAgICAgICAgICAgICAgICAkUGVyaW9kID0gJEVuZFRpbWVzWyRJRF0gLSAkU3RhcnRUaW1lc1skSURdOwoKICAgICAgICAgICAgICAgICMgY29udmVydCBwZXJpb2QgZnJvbSBtaW51dGVzIHRvIGhvdXJzCiAgICAgICAgICAgICAgICAkUGVyaW9kIC89IDYwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciBlcnJvcnMgaW4gdGhlIHBlcmlvZAogICAgICAgICAgICBpZiAoICRQZXJpb2QgPT0gMCApIHsKICAgICAgICAgICAgICAgIHB1c2ggQFBlcmlvZFNlcnZlckVycm9yQmxvY2ssICdaZXJvSG91cnNQZXJpb2RTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6SW5wdXRIb3Vyc1dpdGhvdXRTdGFydEVuZFRpbWUnKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCAkUGVyaW9kIDwgMCApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jaywgJ05lZ2F0aXZlUGVyaW9kU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBlcmlvZCA+IDI0ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jaywgJ0ludmFsaWRIb3Vyc1BlcmlvZFNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9ID0gXEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHRoZXJlIHdhcyBhbiBlcnJvciBvbiB0aGlzIHJvdywgc2F2ZSBhbGwgZGF0YSBpbiB0aGUgc2VydmVyIGVycm9yIGhhc2gKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRFcnJvcnN7JEVycm9ySW5kZXh9ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFByb2plY3RJRCBBY3Rpb25JRCBSZW1hcmsgU3RhcnRUaW1lIEVuZFRpbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17JFBhcmFtZXRlcn0gPSAkUGFyYW17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQZXJpb2R9ID0gJFBlcmlvZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdGhlcndpc2UsIHNhdmUgcm93IG9uIHRoZSBEQgogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIGluaXRpYWxpemUgdGhlIGFycmF5IG9mIHdvcmtpbmcgdW5pdHMKICAgICAgICAgICAgICAgIEB7ICREYXRhe1dvcmtpbmdVbml0c30gfSA9ICgpOwoKICAgICAgICAgICAgICAgICMgcmVwbGFjZSAyNDowMCBmb3IgMjM6NTk6NTkgdG8gYmUgYSB2YWxpZCBlbnRyeSBpbiB0aGUgREIKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSA9ICRQYXJhbXtFbmRUaW1lfSBlcSAnMjQ6MDAnID8gJzIzOjU5OjU5JyA6ICRQYXJhbXtFbmRUaW1lfTsKCiAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAoCiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQYXJhbXtQcm9qZWN0SUR9LAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkUGFyYW17QWN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUGFyYW17UmVtYXJrfSwKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJFBhcmFte1N0YXJ0VGltZX0sCiAgICAgICAgICAgICAgICAgICAgRW5kVGltZSAgID0+ICRQYXJhbXtFbmRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBwdXNoIEB7ICREYXRhe1dvcmtpbmdVbml0c30gfSwgXCVXb3JraW5nVW5pdDsKCiAgICAgICAgICAgICAgICAkRGF0YXtZZWFyfSAgID0gJFBhcmFte1llYXJ9OwogICAgICAgICAgICAgICAgJERhdGF7TW9udGh9ICA9ICRQYXJhbXtNb250aH07CiAgICAgICAgICAgICAgICAkRGF0YXtEYXl9ICAgID0gJFBhcmFte0RheX07CiAgICAgICAgICAgICAgICAkRGF0YXtVc2VySUR9ID0gJFNlbGYtPntVc2VySUR9OwoKICAgICAgICAgICAgICAgIGlmICggISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KCVEYXRhKSApIHsKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzIScpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGluY3JlbWVudCB0aGUgZXJyb3IgaW5kZXggaWYgdGhlcmUgd2FzIGFuIGVycm9yIG9uIHRoaXMgcm93CiAgICAgICAgICAgICRFcnJvckluZGV4KysgaWYgKCBkZWZpbmVkICRFcnJvcnN7JEVycm9ySW5kZXh9ICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJVNlcnZlckVycm9yRGF0YSkgewogICAgICAgICAgICAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gPSB1bmRlZjsKICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IFdvcmtpbmcgVW5pdHMKICAgICMgZ2V0IGV4aXN0aW5nIHdvcmtpbmcgdW5pdHMKICAgICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgbnVtYmVyIG9mIHdvcmtpbmcgdW5pdHMgKD1yZWNvcmRzKQogICAgIyAgICBpZiBiaWdnZXIgdGhhbiBSZWNvcmRzTnVtYmVyLCBtb3JlIHRoYW4gdGhlIG51bWJlciBvZiBkZWZhdWx0IHJlY29yZHMgd2VyZSBzYXZlZCBmb3IKICAgICMgICAgdGhpcyBkYXRlCiAgICBpZiAoICREYXRhe1dvcmtpbmdVbml0c30gKSB7CiAgICAgICAgbXkgJFdvcmtpbmdVbml0c0NvdW50ID0gQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9OwogICAgICAgIGlmICggJFdvcmtpbmdVbml0c0NvdW50ID4gJFBhcmFte1JlY29yZHNOdW1iZXJ9ICkgewogICAgICAgICAgICAkUGFyYW17UmVjb3Jkc051bWJlcn0gPSAkV29ya2luZ1VuaXRzQ291bnQ7CiAgICAgICAgfQogICAgfQoKICAgIG15ICVGcm9udGVuZDsKCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lJykgKSB7CiAgICAgICAgJFBhcmFte1BlcmlvZEJsb2NrfSAgID0gJ1VuaXRJbnB1dFBlcmlvZCc7CiAgICAgICAgJEZyb250ZW5ke1BlcmlvZE5vdGV9ID0gJyonOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte1BlcmlvZEJsb2NrfSAgID0gJ1VuaXRQZXJpb2RXaXRob3V0SW5wdXQnOwogICAgICAgICRGcm9udGVuZHtQZXJpb2ROb3RlfSA9ICcnOwogICAgfQoKICAgIGlmICgKICAgICAgICAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpCiAgICAgICAgPiB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApCiAgICAgICAgKQogICAgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVbml0QmxvY2snLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHNpY2ssIGxlYXZlIGRheSBhbmQgb3ZlcnRpbWUKICAgICRQYXJhbXtTaWNrfSAgICAgPSAkRGF0YXtTaWNrfSAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAkUGFyYW17TGVhdmVEYXl9ID0gJERhdGF7TGVhdmVEYXl9ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKCiAgICAkUGFyYW17VG90YWx9ID0gJERhdGF7VG90YWx9OwoKICAgICMgc2V0IGFjdGlvbiBsaXN0IGFuZCByZWxhdGVkIGNvbnN0cmFpbnRzCiAgICAjIGdlbmVyYXRlIGEgSmF2YVNjcmlwdCBBcnJheSB3aGljaCB3aWxsIGJlIG91dHB1dCB0byB0aGUgdGVtcGxhdGUKICAgIG15IEBBY3Rpb25JRHMgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwogICAgbXkgQEpTQWN0aW9uczsKICAgIGZvciBteSAkQWN0aW9uSUQgKEBBY3Rpb25JRHMpIHsKICAgICAgICBwdXNoIEBKU0FjdGlvbnMsICJbJyRBY3Rpb25JRCcsICckQWN0aW9uTGlzdHskQWN0aW9uSUR9J10iOwogICAgfQogICAgJFBhcmFte0pTQWN0aW9uTGlzdH0gPSAnWycgLiAoIGpvaW4gJywgJywgQEpTQWN0aW9ucyApIC4gJ10nOwoKICAgIG15ICRBY3Rpb25MaXN0Q29uc3RyYWludHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpBY3Rpb25MaXN0Q29uc3RyYWludHMnKTsKICAgIG15IEBKU0FjdGlvbkxpc3RDb25zdHJhaW50czsKICAgIGZvciBteSAkUHJvamVjdE5hbWVSZWdFeHAgKCBzb3J0IGtleXMgJXskQWN0aW9uTGlzdENvbnN0cmFpbnRzfSApIHsKICAgICAgICBteSAkQWN0aW9uTmFtZVJlZ0V4cCA9ICRBY3Rpb25MaXN0Q29uc3RyYWludHMtPnskUHJvamVjdE5hbWVSZWdFeHB9OwogICAgICAgIHN7KFsnIlxcXSl9e1xcJDF9c214ZyBmb3IgKCAkUHJvamVjdE5hbWVSZWdFeHAsICRBY3Rpb25OYW1lUmVnRXhwICk7CiAgICAgICAgcHVzaCBASlNBY3Rpb25MaXN0Q29uc3RyYWludHMsICJbJyRQcm9qZWN0TmFtZVJlZ0V4cCcsICckQWN0aW9uTmFtZVJlZ0V4cCddIjsKICAgIH0KICAgICRQYXJhbXtKU0FjdGlvbkxpc3RDb25zdHJhaW50c30gPSAnWycgLiAoIGpvaW4gJywgJywgQEpTQWN0aW9uTGlzdENvbnN0cmFpbnRzICkgLiAnXSc7CgogICAgIyBidWlsZCBhIHdvcmtpbmcgdW5pdCBhcnJheQogICAgbXkgQFVuaXRzID0gKHVuZGVmKTsKICAgIGlmICggJERhdGF7V29ya2luZ1VuaXRzfSApIHsKICAgICAgICBwdXNoIEBVbml0cywgQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9CiAgICB9CgogICAgJEVycm9ySW5kZXggPSAwOwoKICAgICMgYnVpbGQgdW5pdHMKICAgIGZvciBteSAkSUQgKCAxIC4uICRQYXJhbXtSZWNvcmRzTnVtYmVyfSApIHsKICAgICAgICAkUGFyYW17SUR9ID0gJElEOwogICAgICAgIG15ICRVbml0UmVmICAgPSAkVW5pdHNbJElEXTsKICAgICAgICBteSAkU2hvd0Vycm9yID0gMDsKCiAgICAgICAgaWYgKCAhJFVuaXRSZWYgKSB7CiAgICAgICAgICAgICRFcnJvckluZGV4Kys7CiAgICAgICAgICAgICRTaG93RXJyb3IgPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZGF0YSBvZiBwcm9qZWN0cwogICAgICAgIG15ICRQcm9qZWN0TGlzdCA9ICRTZWxmLT5fUHJvamVjdExpc3QoCiAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgICAgICB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQcm9qZWN0SUR9CiAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICApOwoKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQcm9qZWN0SUR9CiAgICAgICAgICAgIHx8ICcnOwogICAgICAgICRQYXJhbXtQcm9qZWN0TmFtZX0gPSAnJzsKCiAgICAgICAgIyBzZXQgY29tbW9uIHBhcmFtcyBmb3IgcHJvamVjdCBzZWxlY3Rpb24KICAgICAgICBteSAlUHJvamVjdE9wdGlvblBhcmFtcyA9ICgKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gIlByb2plY3RJRFskSURdIiwKICAgICAgICAgICAgSUQgICAgICAgICAgPT4gIlByb2plY3RJRCRJRCIsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0IFByb2plY3RTZWxlY3Rpb24gJwogICAgICAgICAgICAgICAgLiAoICRFcnJvcnN7JEVycm9ySW5kZXh9e1Byb2plY3RJREludmFsaWR9IHx8ICcnICksCiAgICAgICAgICAgIE9uQ2hhbmdlID0+ICJUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuRmlsbEFjdGlvbkxpc3QoJElEKTsiLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlByb2plY3QiKSwKICAgICAgICApOwoKICAgICAgICBteSAkRW5hYmxlQXV0b0NvbXBsZXRpb24gPSAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIpIHx8IDA7CiAgICAgICAgbXkgJENsYXNzID0gJEVuYWJsZUF1dG9Db21wbGV0aW9uID8gJyBNb2Rlcm5pemUnIDogJyc7CgogICAgICAgICMgc2V0IHBhcmFtcyBmb3IgbW9kZXJuIGlucHV0cwogICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0NsYXNzfSAuPSAkQ2xhc3M7CgogICAgICAgIGlmICggJEVuYWJsZUF1dG9Db21wbGV0aW9uICYmICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciIpICkgewoKICAgICAgICAgICAgIyBhZGQgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RGF0YX0gICAgPSAkUHJvamVjdExpc3QtPntBbGxQcm9qZWN0c307CiAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0ZpbHRlcnN9ID0gewogICAgICAgICAgICAgICAgTGFzdFByb2plY3RzID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYXN0IFByb2plY3RzJyksCiAgICAgICAgICAgICAgICAgICAgVmFsdWVzID0+ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgIyBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLCBleHBhbmQgZmlsdGVyIGRpYWxvZwogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkUHJvamVjdExpc3QtPntMYXN0UHJvamVjdHN9IH0gPiAxICkgewogICAgICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RXhwYW5kRmlsdGVyc30gPSAxOwoKICAgICAgICAgICAgICAgICMgbWFrZSB0aGUgZmlsdGVyIGFjdGl2ZSBieSBkZWZhdWx0IGlmICdBY3RpdmVGaWx0ZXInIGlzIGVuYWJsZWQKICAgICAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6QWN0aXZlRmlsdGVyIikgKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RmlsdGVyc30tPntMYXN0UHJvamVjdHN9LT57QWN0aXZlfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICMgc2V0IHBhcmFtcyBmb3IgdHJhZGl0aW9uYWwgc2VsZWN0cyAoYW5kIG1vZGVybiBpbnB1dCBmaWVsZHMgaWYgZmlsdGVyIGlzIG5vdCB1c2VkKQogICAgICAgICAgICBteSBAUHJvamVjdHMgPSAoIEB7ICRQcm9qZWN0TGlzdC0+e0xhc3RQcm9qZWN0c30gfSwgQHsgJFByb2plY3RMaXN0LT57QWxsUHJvamVjdHN9IH0gKTsKICAgICAgICAgICAgJFByb2plY3RPcHRpb25QYXJhbXN7RGF0YX0gPSBcQFByb2plY3RzOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBwcm9qZWN0cyBzZWxlY3QKICAgICAgICAkRnJvbnRlbmR7UHJvamVjdE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgJVByb2plY3RPcHRpb25QYXJhbXMsCiAgICAgICAgKTsKCiAgICAgICAgIyBhY3Rpb24gbGlzdCBpbml0aWFsbHkgb25seSBjb250YWlucyBlbXB0eSBhbmQgc2VsZWN0ZWQgZWxlbWVudCBhcyB3ZWxsIGFzIGVsZW1lbnRzCiAgICAgICAgIyBjb25maWd1cmVkIGZvciBzZWxlY3RlZCBwcm9qZWN0CiAgICAgICAgIyBpZiBubyBjb25zdHJhaW50cyBhcmUgY29uZmlndXJlZCwgYWxsIGFjdGlvbnMgd2lsbCBiZSBkaXNwbGF5ZWQKICAgICAgICBteSAkQWN0aW9uRGF0YSA9ICRTZWxmLT5fQWN0aW9uTGlzdENvbnN0cmFpbnRzKAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFVuaXRSZWYtPntQcm9qZWN0SUR9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9LT57UHJvamVjdElEfSwKICAgICAgICAgICAgUHJvamVjdExpc3QgICAgICAgICAgID0+ICRQcm9qZWN0TGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdCAgICAgICAgICAgID0+IFwlQWN0aW9uTGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0+ICRBY3Rpb25MaXN0Q29uc3RyYWludHMsCiAgICAgICAgKTsKICAgICAgICAkQWN0aW9uRGF0YS0+eycnfSA9ICcnOwoKICAgICAgICBpZiAoICRVbml0UmVmICYmICRVbml0UmVmLT57QWN0aW9uSUR9ICYmICRBY3Rpb25MaXN0eyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9ICkgewogICAgICAgICAgICAkQWN0aW9uRGF0YS0+eyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9ID0gJEFjdGlvbkxpc3R7ICRVbml0UmVmLT57QWN0aW9uSUR9IH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICgKICAgICAgICAgICAgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH0KICAgICAgICAgICAgJiYgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9CiAgICAgICAgICAgICYmICRBY3Rpb25MaXN0eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkQWN0aW9uRGF0YS0+eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfQogICAgICAgICAgICAgICAgPSAkQWN0aW9uTGlzdHsgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9IH07CiAgICAgICAgfQoKICAgICAgICAkRnJvbnRlbmR7QWN0aW9uT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAoKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gJEFjdGlvbkRhdGEsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRVbml0UmVmLT57QWN0aW9uSUR9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB8fCAnJywKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gIkFjdGlvbklEWyRJRF0iLAogICAgICAgICAgICBJRCAgICAgICAgICA9PiAiQWN0aW9uSUQkSUQiLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX1Byb2plY3RJRCcKICAgICAgICAgICAgICAgIC4gJElECiAgICAgICAgICAgICAgICAuICcgQWN0aW9uU2VsZWN0aW9uICcKICAgICAgICAgICAgICAgIC4gKCAkRXJyb3JzeyRFcnJvckluZGV4fXtBY3Rpb25JREludmFsaWR9IHx8ICcnICkKICAgICAgICAgICAgICAgIC4gJENsYXNzLAogICAgICAgICAgICBUaXRsZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlRhc2siKSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17UmVtYXJrfSA9ICRVbml0UmVmLT57UmVtYXJrfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtSZW1hcmt9IHx8ICcnOwoKICAgICAgICBteSAkUGVyaW9kOwogICAgICAgIGlmICgKICAgICAgICAgICAgKCAkVW5pdFJlZi0+e1BlcmlvZH0gJiYgJFVuaXRSZWYtPntQZXJpb2R9ID09IDAgKQogICAgICAgICAgICB8fCAoCiAgICAgICAgICAgICAgICBkZWZpbmVkICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0KICAgICAgICAgICAgICAgICYmICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0gPT0gMAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQZXJpb2QgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBlcmlvZCA9ICRVbml0UmVmLT57UGVyaW9kfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtQZXJpb2R9IHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRUaW1lUGVyaW9kIChxdyhTdGFydFRpbWUgRW5kVGltZSkpIHsKICAgICAgICAgICAgaWYgKCRTaG93RXJyb3IpIHsKICAgICAgICAgICAgICAgICRQYXJhbXskVGltZVBlcmlvZH0gPSAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXskVGltZVBlcmlvZH0gLy8gJyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFRpbWVQZXJpb2R9ID0gJFVuaXRSZWYtPnskVGltZVBlcmlvZH0gLy8gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgJFBlcmlvZAogICAgICAgICAgICAmJiAkUGFyYW17U3RhcnRUaW1lfSBlcSAnMDA6MDAnCiAgICAgICAgICAgICYmICRQYXJhbXtFbmRUaW1lfSBlcSAnMDA6MDAnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9ID0gJyc7CiAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSAgID0gJyc7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVW5pdCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgICAgICAgICAgJXsgJEVycm9yc3skRXJyb3JJbmRleH0gfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBwcm9wZXIgc2VydmVyIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBzdGFydCBhbmQgZW5kIHRpbWVzCiAgICAgICAgbXkgJFNlcnZlckVycm9yQmxvY2tOYW1lOwogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH0gPiAwICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ICkgewogICAgICAgICAgICBpZiAoIHNjYWxhciBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lU2VydmVyRXJyb3JCbG9ja30gfSA+IDAgKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9OwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJFBhcmFte1BlcmlvZEJsb2NrfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgIElEICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICAleyAkRXJyb3JzeyRFcnJvckluZGV4fSB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHByb3BlciBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIHBlcmlvZAogICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH0gPiAwICkgewogICAgICAgICAgICAgICAgd2hpbGUgKCBAeyAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckJsb2NrTmFtZSA9IHNoaWZ0IEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB2YWxpZGl0eSBjaGVjawogICAgICAgIGlmICgKICAgICAgICAgICAgJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntQcm9qZWN0SUR9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57QWN0aW9uSUR9CiAgICAgICAgICAgICYmICRQYXJhbXtTaWNrfQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdTaWNrTGVhdmVNZXNzYWdlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte0xlYXZlRGF5fQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICdWYWNhdGlvbk1lc3NhZ2UnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e0FjdGlvbklEfQogICAgICAgICAgICAmJiAkUGFyYW17T3ZlcnRpbWV9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJ092ZXJ0aW1lTWVzc2FnZSc7CiAgICAgICAgfQogICAgfQoKICAgIGlmICgKICAgICAgICAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpCiAgICAgICAgPiB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXtUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICggJFBhcmFte1RvdGFsfSB8fCAwICkgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwogICAgfQoKICAgICMgdmFsaWRpdHkgY2hlY2tzIHN0YXJ0CiAgICBteSAkRXJyb3JOb3RlOwogICAgaWYgKCAkUGFyYW17VG90YWx9ICYmICRQYXJhbXtUb3RhbH0gPiAyNCApIHsKICAgICAgICAkRXJyb3JOb3RlID0gVHJhbnNsYXRhYmxlKCdDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte0luc2VydFdvcmtpbmdVbml0c30gJiYgJFBhcmFte1RvdGFsfSAmJiAkUGFyYW17VG90YWx9ID4gMTYgKSB7CiAgICAgICAgJFBhcmFte0Jsb2NrTmFtZX0gPSAnTW9yZTE2SG91cnNNZXNzYWdlJzsKICAgIH0KICAgIGlmICgkRXJyb3JOb3RlKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFBhcmFte0Jsb2NrTmFtZX0gJiYgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTaG93Q29uZmlybWF0aW9uJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBCbG9ja05hbWUgPT4gJFBhcmFte0Jsb2NrTmFtZX0sCiAgICAgICAgICAgICAgICBZZWFyICAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgTW9udGggICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17RGF0ZX0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgJVBhcmFtLAogICAgICAgIFZhbGlkYXRlID0+IDEsCiAgICAgICAgUHJlZml4ICAgPT4gJycsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICApOwoKICAgIGlmICgKICAgICAgICB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApIDwgdGltZWxvY2FsKAogICAgICAgICAgICAxLCAwLCAwLCAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgICRQYXJhbXtNb250aEFsbG93ZWR9IC0gMSwKICAgICAgICAgICAgJFBhcmFte1llYXJBbGxvd2VkfSAtIDE5MDAKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgIGlmICgKICAgICAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXsgJFBhcmFte1llYXJ9IH17ICRQYXJhbXtNb250aH0gfXsgJFBhcmFte0RheX0gfQogICAgICAgICAgICAmJiAhJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVhZG9ubHknLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlKAogICAgICAgICAgICAgICAgICAgICAgICAnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0JwogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0OwogICAgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJFllYXJJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9IH0gKSB7CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfSApIHsKICAgICAgICAgICAgZm9yIG15ICREYXlJRCAoCiAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXskWWVhcklEfXskTW9udGhJRH0gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHsiJFllYXJJRC0kTW9udGhJRC0kRGF5SUQifSA9ICIkWWVhcklELSRNb250aElELSREYXlJRCI7CiAgICAgICAgICAgICAgICAkUGFyYW17SW5jb21wbGV0ZX0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgU2hvdyB0ZXh0LCBpZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBhcmUgYXZhaWxhYmxlCiAgICBpZiAoICRQYXJhbXtJbmNvbXBsZXRlfSApIHsKCiAgICAgICAgIyBpZiBtYXNzIGVudHJ5IG9wdGlvbiBpcyBlbmFibGVkLCBzaG93IGxpc3Qgb2Ygd29ya2luZyBkYXlzCiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpBbGxvd01hc3NFbnRyeUZvclVzZXIiKSApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkV29ya2luZ0RheXMgKCBzb3J0IGtleXMgJUluY29tcGxldGVXb3JraW5nRGF5c0xpc3QgKSB7CiAgICAgICAgICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAvLS8sICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30gKTsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeVNpbmdsZURheScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgID0+ICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30sCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBzaG93IGluY29tcGxldGUgd29ya2luZyBkYXlzIGFzIGEgZHJvcC1kb3duCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIGN1cnJlbnQgZGF5IGlzIGluY29tcGxldGUKICAgICAgICAgICAgIyBpZiB5ZXMsIHNlbGVjdCB0aGUgY3VycmVudCBkYXkgaW4gdGhlIGRyb3AtZG93bgogICAgICAgICAgICAjIG90aGVyd2lzZSBzZWxlY3QgdGhlIGVtcHR5IGVsZW1lbnQKICAgICAgICAgICAgbXkgJFNlbGVjdGVkSUQ7CgogICAgICAgICAgICBpZiAoICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyIkUGFyYW17WWVhcn0tJFBhcmFte01vbnRofS0kUGFyYW17RGF5fSJ9ICkgewogICAgICAgICAgICAgICAgJFNlbGVjdGVkSUQgPSAiJFBhcmFte1llYXJ9LSRQYXJhbXtNb250aH0tJFBhcmFte0RheX0iOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkSW5jb21wbGVXb3JraW5nRGF5c1NlbGVjdCA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkU2VsZWN0ZWRJRCwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCIsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIFRpdGxlID0+CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyIpLAogICAgICAgICAgICAgICAgQ2xhc3MgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luY29tcGxldGVXb3JraW5nRGF5cycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBJbmNvbXBsZXRlV29ya2luZ0RheXNTZWxlY3QgPT4gJEluY29tcGxlV29ya2luZ0RheXNTZWxlY3QsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgbXkgJFZhY2F0aW9uQ2hlY2sgPSAkVGltZU9iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBDYWxlbmRhciA9PiAkVXNlckRhdGF7Q2FsZW5kYXJ9LAogICAgKTsKCiAgICAkUGFyYW17V2Vla2RheX0gPSBEYXlfb2ZfV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApOwoKICAgICMgZ2V0IHdvcmtpbmcgZGF5cyBvZiB0aGUgdXNlcidzIGNhbGVuZGFyCiAgICBteSAkQ2FsZW5kYXJOYW1lID0gJ1RpbWVXb3JraW5nSG91cnMnOwogICAgJENhbGVuZGFyTmFtZSAuPSAkVXNlckRhdGF7Q2FsZW5kYXJ9ID8gIjo6Q2FsZW5kYXIkVXNlckRhdGF7Q2FsZW5kYXJ9IiA6ICcnOwogICAgbXkgJENhbGVuZGFyV29ya2luZ0hvdXJzID0gJENvbmZpZ09iamVjdC0+R2V0KCRDYWxlbmRhck5hbWUpOwoKICAgICMgc2hvdyAib3RoZXIgdGltZXMiIGJsb2NrLCBpZiBuZWNlc3NhcnkKICAgIGlmICgKICAgICAgICBAeyAkQ2FsZW5kYXJXb3JraW5nSG91cnMtPnsgJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdIH0gfQogICAgICAgICYmICEkVmFjYXRpb25DaGVjawogICAgICAgICkKICAgIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3RoZXJUaW1lcycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtXZWVrZGF5X3RvX1RleHR9ID0gJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdOwoKICAgICMgaW50ZWdyYXRlIHRoZSBoYW5kbGluZyBmb3IgcmVxdWlyZWQgcmVtYXJrcyBpbiByZWxhdGlvbiB0byBwcm9qZWN0cwogICAgJFBhcmFte1JlbWFya1JlZ0V4cH0gPSAkU2VsZi0+X1Byb2plY3QyUmVtYXJrUmVnRXhwKCk7CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ0VkaXQnLAogICAgKTsKCiAgICBpZiAoICEkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9ICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Byb2plY3QnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgY3JlYXRlIHByb2plY3QgbGluaywgaWYgYWxsb3dlZAogICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NyZWF0ZVByb2plY3QnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c3tXYXJuaW5nfSApIHsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzIScpLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCRFcnJvck5vdGUpIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyAgICAgPT4gJEVycm9yTm90ZSwKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCBkZWZpbmVkICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSApCiAgICB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdTdWNjZXNzZnVsIGluc2VydCEnKSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBtYXNzIGVudHJ5IG5vdGlmaWNhdGlvbgogICAgaWYgKCAkUGFyYW17Tm90aWZpY2F0aW9ufSBlcSAnRXJyb3InICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnKSwKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17Tm90aWZpY2F0aW9ufSBlcSAnU3VjY2Vzc2Z1bCcgKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnKSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBub3RpZmljYXRpb24gaWYgd3JvbmcgZGF0ZSB3YXMgc2VsZWN0ZWQKICAgIGlmICggJFBhcmFte1dyb25nRGF0ZX0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5LicpLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX0ZpcnN0VXNlclJlZGlyZWN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBmb3IgaW5pdGlhbCB1c2luZywgdGhlIGZpcnN0IGFnZW50IHdpdGggcnctcmlnaHQgd2lsbCBiZSByZWRpcmVjdGVkCiAgICAjIHRvICdTZXR0aW5nJy4gVGhlbiBoZSBjYW4gZG8gdGhlIGluaXRpYWwgc2V0dGluZ3MKCiAgICBteSAlR3JvdXBMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgZm9yIG15ICRHcm91cEtleSAoIHNvcnQga2V5cyAlR3JvdXBMaXN0ICkgewogICAgICAgIGlmICggJEdyb3VwTGlzdHskR3JvdXBLZXl9IGVxICd0aW1lX2FjY291bnRpbmcnICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZyIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgKICAgICAgICAgICAgJ05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4gUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbiB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJwogICAgICAgICksCiAgICApOwp9CgpzdWIgX0FjdGlvbkxpc3QgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICBteSAlQWN0aW9uTGlzdDsKICAgIG15ICVBY3Rpb24gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKS0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAjIGdldCBhY3Rpb24gc2V0dGluZ3MKICAgIEFDVElPTklEOgogICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAlQWN0aW9uICkgewogICAgICAgIG5leHQgQUNUSU9OSUQgaWYgISRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb25TdGF0dXN9OwogICAgICAgIG5leHQgQUNUSU9OSUQgaWYgISRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb259OwogICAgICAgICRBY3Rpb25MaXN0eyRBY3Rpb25JRH0gPSAkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9ufTsKICAgIH0KICAgICRBY3Rpb25MaXN0eycnfSA9ICcnOwoKICAgIHJldHVybiAlQWN0aW9uTGlzdDsKfQoKc3ViIF9BY3Rpb25MaXN0Q29uc3RyYWludHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlTGlzdDsKICAgIGlmICggJFBhcmFte1Byb2plY3RJRH0gJiYga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdENvbnN0cmFpbnRzfSB9ICkgewogICAgICAgIG15ICRQcm9qZWN0TmFtZTsKCiAgICAgICAgUFJPSkVDVDoKICAgICAgICBmb3IgbXkgJFByb2plY3QgKCBAeyAkUGFyYW17UHJvamVjdExpc3R9LT57QWxsUHJvamVjdHN9IH0gKSB7CiAgICAgICAgICAgIGlmICggJFByb2plY3QtPntLZXl9IGVxICRQYXJhbXtQcm9qZWN0SUR9ICkgewogICAgICAgICAgICAgICAgJFByb2plY3ROYW1lID0gJFByb2plY3QtPntWYWx1ZX07CiAgICAgICAgICAgICAgICBsYXN0IFBST0pFQ1Q7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggZGVmaW5lZCgkUHJvamVjdE5hbWUpICkgewoKICAgICAgICAgICAgIyBsb29wIG92ZXIgYWN0aW9ucyB0byBmaW5kIG1hdGNoZXMgZm9yIGNvbmZpZ3VyZWQgcHJvamVjdAogICAgICAgICAgICAjIGFuZCBhY3Rpb24gcmVnLWV4cCBwYWlycwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0fSB9ICkgewoKICAgICAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lID0gJFBhcmFte0FjdGlvbkxpc3R9LT57JEFjdGlvbklEfTsKCiAgICAgICAgICAgICAgICBQUk9KRUNUTkFNRVJFR0VYUDoKICAgICAgICAgICAgICAgIGZvciBteSAkUHJvamVjdE5hbWVSZWdFeHAgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3RDb25zdHJhaW50c30gfSApIHsKICAgICAgICAgICAgICAgICAgICBteSAkQWN0aW9uTmFtZVJlZ0V4cCA9ICRQYXJhbXtBY3Rpb25MaXN0Q29uc3RyYWludHN9LT57JFByb2plY3ROYW1lUmVnRXhwfTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRQcm9qZWN0TmFtZSA9fiBteyRQcm9qZWN0TmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJEFjdGlvbk5hbWUgPX4gbXskQWN0aW9uTmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0IFBST0pFQ1ROQU1FUkVHRVhQOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFsbCBhdmFpbGFibGUgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICBpZiAoICFrZXlzICVMaXN0ICkgewogICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3R9IH0gKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lID0gJFBhcmFte0FjdGlvbkxpc3R9LT57JEFjdGlvbklEfTsKICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVMaXN0Owp9CgpzdWIgX1Byb2plY3RMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgcHJvamVjdCBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgaWYgKCAhJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9ICkgewoKICAgICAgICAjIGdldCB0aGUgbGFzdCBwcm9qZWN0cwogICAgICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgZmF2b3JpdGVzCiAgICAgICAgJXsgJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9IH0gPSBtYXAgeyAkXyA9PiAxIH0gQExhc3RQcm9qZWN0czsKICAgIH0KCiAgICBteSBATGFzdFByb2plY3RzID0gKAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJycsCiAgICAgICAgICAgIFZhbHVlID0+ICcnLAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIHRoZSBzZXBhcmF0b3IKICAgIFBST0pFQ1RJRDoKICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICBzb3J0IHsgJFByb2plY3R7UHJvamVjdH17JGF9IGNtcCAkUHJvamVjdHtQcm9qZWN0fXskYn0gfQogICAgICAgIGtleXMgJXsgJFByb2plY3R7UHJvamVjdH0gfQogICAgICAgICkKICAgIHsKICAgICAgICBuZXh0IFBST0pFQ1RJRCBpZiAhJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9LT57JFByb2plY3RJRH07CiAgICAgICAgbXkgJUhhc2ggPSAoCiAgICAgICAgICAgIEtleSAgID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgIFZhbHVlID0+ICRQcm9qZWN0e1Byb2plY3R9eyRQcm9qZWN0SUR9LAogICAgICAgICk7CiAgICAgICAgcHVzaCBATGFzdFByb2plY3RzLCBcJUhhc2g7CiAgICB9CgogICAgQExhc3RQcm9qZWN0cyA9ICRTZWxmLT5fUHJvamVjdExpc3RDb25zdHJhaW50cygKICAgICAgICBMaXN0ICAgICAgID0+IFxATGFzdFByb2plY3RzLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1NlbGVjdGVkSUR9IHx8ICcnLAogICAgKTsKCiAgICBteSBAQWxsUHJvamVjdHM7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGNoZWNrIGlmIEF1dG9Db21wbGV0aW9uIGlzIGRpc2FibGVkCiAgICAjIGluIHRoaXMgY2FzZSBhIHNlcGFyYXRvciBpcyBuZWVkZWQgYmV0d2VlbiB0d28gbGlzdHMgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCkKICAgIGlmICgKICAgICAgICAhJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24iKQogICAgICAgIHx8ICEkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIiKQogICAgICAgICkKICAgIHsKICAgICAgICBpZiAoIHNjYWxhciBATGFzdFByb2plY3RzID4gMSApIHsKCiAgICAgICAgICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgICAgICAgICAjIGFkZCBsYXN0IHByb2plY3RzIHNlcGFyYXRvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0CiAgICAgICAgICAgIG15ICRMYXN0UHJvamVjdHNTdHIgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnKTsKCiAgICAgICAgICAgIHVuc2hpZnQgQExhc3RQcm9qZWN0cywgewogICAgICAgICAgICAgICAgS2V5ICAgICAgPT4gJzAnLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gIi0tLSRMYXN0UHJvamVjdHNTdHItLS0iLAogICAgICAgICAgICAgICAgRGlzYWJsZWQgPT4gMSwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICMgYWRkIGFsbCBwcm9qZWN0cyBzZXBhcmF0b3IgcmlnaHQgYWZ0ZXIgdGhlIGxhc3Qgc2VsZWN0ZWQgcHJvamVjdHMgbGlzdAogICAgICAgICAgICBteSAkQWxsUHJvamVjdHNTdHIgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0FsbCBQcm9qZWN0cycpOwoKICAgICAgICAgICAgcHVzaCBATGFzdFByb2plY3RzLCB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnMCcsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAiLS0tJEFsbFByb2plY3RzU3RyLS0tIiwKICAgICAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgQEFsbFByb2plY3RzID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAnJywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZGQgYWxsIGFsbG93ZWQgcHJvamVjdHMgdG8gdGhlIGxpc3QKICAgIFBST0pFQ1RJRDoKICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICBzb3J0IHsgJFByb2plY3R7UHJvamVjdH17JGF9IGNtcCAkUHJvamVjdHtQcm9qZWN0fXskYn0gfQogICAgICAgIGtleXMgJXsgJFByb2plY3R7UHJvamVjdH0gfQogICAgICAgICkKICAgIHsKICAgICAgICBuZXh0IFBST0pFQ1RJRCBpZiAhJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH07CiAgICAgICAgbXkgJUhhc2ggPSAoCiAgICAgICAgICAgIEtleSAgID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgIFZhbHVlID0+ICRQcm9qZWN0e1Byb2plY3R9eyRQcm9qZWN0SUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAkUGFyYW17U2VsZWN0ZWRJRH0gJiYgJFBhcmFte1NlbGVjdGVkSUR9IGVxICRQcm9qZWN0SUQgKSB7CiAgICAgICAgICAgICRIYXNoe1NlbGVjdGVkfSA9IDE7CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBBbGxQcm9qZWN0cywgXCVIYXNoOwogICAgfQoKICAgIEBBbGxQcm9qZWN0cyA9ICRTZWxmLT5fUHJvamVjdExpc3RDb25zdHJhaW50cygKICAgICAgICBMaXN0ICAgICAgID0+IFxAQWxsUHJvamVjdHMsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17U2VsZWN0ZWRJRH0gfHwgJycsCiAgICApOwoKICAgIG15ICVQcm9qZWN0cyA9ICgKICAgICAgICBMYXN0UHJvamVjdHMgPT4gXEBMYXN0UHJvamVjdHMsCiAgICAgICAgQWxsUHJvamVjdHMgID0+IFxAQWxsUHJvamVjdHMsCiAgICApOwoKICAgIHJldHVybiBcJVByb2plY3RzOwp9CgpzdWIgX1Byb2plY3RMaXN0Q29uc3RyYWludHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATGlzdDsKICAgIG15ICRQcm9qZWN0Q291bnQgICAgICAgICAgID0gMDsKICAgIG15ICRQcm9qZWN0TGlzdENvbnN0cmFpbnRzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdUaW1lQWNjb3VudGluZzo6UHJvamVjdExpc3RDb25zdHJhaW50cycpOwoKICAgIGlmICgga2V5cyAleyRQcm9qZWN0TGlzdENvbnN0cmFpbnRzfSApIHsKCiAgICAgICAgIyBnZXQgZ3JvdXBzIG9mIGN1cnJlbnQgdXNlcgogICAgICAgIG15ICVHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwogICAgICAgICVHcm91cHMgPSBtYXAgeyAkR3JvdXBzeyRffSA9PiAxIH0ga2V5cyAlR3JvdXBzOwoKICAgICAgICAjIGdldCBwcm9qZWN0IGxpc3QgY29uc3RyYWludHMKICAgICAgICBteSAlUHJvamVjdFJlZ2V4OwogICAgICAgIGZvciBteSAkUHJvamVjdFJlZ2V4ICggc29ydCBrZXlzICV7JFByb2plY3RMaXN0Q29uc3RyYWludHN9ICkgewogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RHcm91cCAoIHNwbGl0IC8sXHMqLywgJFByb2plY3RMaXN0Q29uc3RyYWludHMtPnskUHJvamVjdFJlZ2V4fSApIHsKICAgICAgICAgICAgICAgIGlmICggJEdyb3Vwc3skUHJvamVjdEdyb3VwfSApIHsKICAgICAgICAgICAgICAgICAgICAkUHJvamVjdFJlZ2V4eyRQcm9qZWN0UmVnZXh9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSBAUHJvamVjdFJlZ2V4ID0ga2V5cyAlUHJvamVjdFJlZ2V4OwoKICAgICAgICAjIHJlZHVjZSBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIGNvbmZpZ3VyYXRpb24KICAgICAgICBpZiAoIHJlZiggJFBhcmFte0xpc3R9ICkgJiYgQFByb2plY3RSZWdleCApIHsKCiAgICAgICAgICAgIG15ICRFbGVtZW50Q291bnQgPSAwOwoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0ICggQHsgJFBhcmFte0xpc3R9IH0gKSB7CiAgICAgICAgICAgICAgICBteSAkUHJvamVjdE5hbWUgPSAkUHJvamVjdC0+e1ZhbHVlfTsKCiAgICAgICAgICAgICAgICAjIGVtcHR5IGZpcnN0IGVsZW1lbnQsIGxhc3QgcHJvamVjdHMgc2VwYXJhdG9yIGFuZCBjdXJyZW50bHkgc2VsZWN0ZWQgcHJvamVjdAogICAgICAgICAgICAgICAgaWYgKCAhJEVsZW1lbnRDb3VudCB8fCAhJFByb2plY3QtPntLZXl9IHx8ICRQcm9qZWN0LT57S2V5fSBlcSAkUGFyYW17U2VsZWN0ZWRJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBATGlzdCwgJFByb2plY3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBQUk9KRUNUUkVHRVhQOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkUHJvamVjdFJlZ2V4IChAUHJvamVjdFJlZ2V4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJFByb2plY3ROYW1lID1+IG17JFByb2plY3RSZWdleH1zbXggKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCAkUHJvamVjdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQcm9qZWN0Q291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgUFJPSkVDVFJFR0VYUDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRFbGVtZW50Q291bnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBmdWxsIHByb2plY3QgbGlzdCBpZiBjb25zdHJhaW50cyByZXN1bHRlZCBpbiBlbXB0eSBwcm9qZWN0IGxpc3Qgb3IgaWYgY29uc3RyYWludHMgYXJlbid0CiAgICAjIGNvbmZpZ3VyZWQgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICBpZiAoICEkUHJvamVjdENvdW50ICkgewogICAgICAgIEBMaXN0ID0gQHsgJFBhcmFte0xpc3R9IH07CiAgICB9CgogICAgcmV0dXJuIEBMaXN0Owp9CgojIGludGVncmF0ZSB0aGUgaGFuZGxpbmcgZm9yIHJlcXVpcmVkIHJlbWFya3MgaW4gcmVsYXRpb24gdG8gcHJvamVjdHMKCnN1YiBfUHJvamVjdDJSZW1hcmtSZWdFeHAgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICBteSBAUHJvamVjdHMyUmVtYXJrID0gKCk7CiAgICBteSAlUHJvamVjdERhdGEgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyktPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgcmV0dXJuICcnIGlmICEkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpQcm9qZWN0MlJlbWFya1JlZ0V4cCcpOwoKICAgIG15ICRQcm9qZWN0MlJlbWFya1JlZ0V4cCA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlByb2plY3QyUmVtYXJrUmVnRXhwJyk7CgogICAgZm9yIG15ICRQcm9qZWN0SUQgKCBzb3J0IGtleXMgJXsgJFByb2plY3REYXRhe1Byb2plY3R9IH0gKSB7CiAgICAgICAgaWYgKCAkUHJvamVjdERhdGF7UHJvamVjdH17JFByb2plY3RJRH0gPX4gbXskUHJvamVjdDJSZW1hcmtSZWdFeHB9c214ICkgewogICAgICAgICAgICBwdXNoIEBQcm9qZWN0czJSZW1hcmssICRQcm9qZWN0SUQ7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBqb2luICd8JywgQFByb2plY3RzMlJlbWFyazsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRGF0ZTo6UGNhbGMgcXcoVG9kYXkgRGF5c19pbl9Nb250aCBEYXlfb2ZfV2VlayBBZGRfRGVsdGFfWU1EIGNoZWNrX2RhdGUpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgVGltZTo6TG9jYWw7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcgYWJvdXQgdGhlIHVzZXJzIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIERheSBNb250aCBZZWFyIFVzZXJJRCBQcm9qZWN0U3RhdHVzU2hvdykpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CiAgICAkUGFyYW17QWN0aW9ufSA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFBhcmFte0FjdGlvbn0gPSAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnOwogICAgfQogICAgaWYgKCAkUGFyYW17VXNlcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VXNlcn0gPSAkU2hvd25Vc2Vyc3sgJFBhcmFte1VzZXJJRH0gfTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAxLCAwLCAtMSwgMCApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIDEsIDAgKTsKCiAgICAjIE92ZXJ2aWV3IHBlciBkYXkKICAgIG15ICREYXlzT2ZNb250aCA9IERheXNfaW5fTW9udGgoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkRGF5ICggMSAuLiAkRGF5c09mTW9udGggKSB7CiAgICAgICAgJFBhcmFte0RheX0gPSBzcHJpbnRmKCAiJTAyZCIsICREYXkgKTsKICAgICAgICAkUGFyYW17V2Vla2RheX0gPSBEYXlfb2ZfV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkRGF5ICkgLSAxOwogICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJERheSApOwogICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnLAogICAgICAgICk7CiAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JywKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aW1lIHpvbmUgdG8gY2FsY3VsYXRpb24KICAgICAgICBteSAkVXNlckNhbGVuZGFyID0gJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAnJzsKICAgICAgICBteSAkWm9uZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkVXNlckNhbGVuZGFyICk7CiAgICAgICAgaWYgKCRab25lKSB7CiAgICAgICAgICAgIG15ICRab25lU2Vjb25kcyA9ICRab25lICogNjAgKiA2MDsKICAgICAgICAgICAgJERheVN0YXJ0VGltZSA9ICREYXlTdGFydFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgICAgICREYXlTdG9wVGltZSAgPSAkRGF5U3RvcFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgfQoKICAgICAgICBteSAkVGhpc0RheVdvcmtpbmdUaW1lID0gJFRpbWVPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgU3RvcFRpbWUgID0+ICREYXlTdG9wVGltZSwKICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRVc2VyQ2FsZW5kYXIsCiAgICAgICAgKSB8fCAnMCc7CgogICAgICAgIGlmICggJFBhcmFte1llYXJ9IGVxICRZZWFyICYmICRQYXJhbXtNb250aH0gZXEgJE1vbnRoICYmICRDdXJyZW50RGF5IGVxICREYXkgKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gPSAnQWN0aXZlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCRWYWNhdGlvbkNoZWNrKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gICA9ICdWYWNhdGlvbic7CiAgICAgICAgICAgICRQYXJhbXtDb21tZW50fSA9ICRWYWNhdGlvbkNoZWNrOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJFRoaXNEYXlXb3JraW5nVGltZSkgewogICAgICAgICAgICAkUGFyYW17Q2xhc3N9ID0gJ1dvcmtpbmdEYXknOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSA9ICdOb25Xb3JraW5nRGF5JzsKICAgICAgICB9CgogICAgICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17Q29tbWVudH0gPSAkRGF0YXtTaWNrfQogICAgICAgICAgICA/IFRyYW5zbGF0YWJsZSgnU2ljayBsZWF2ZScpCiAgICAgICAgICAgIDogJERhdGF7TGVhdmVEYXl9ID8gVHJhbnNsYXRhYmxlKCdPbiB2YWNhdGlvbicpCiAgICAgICAgICAgIDogJERhdGF7T3ZlcnRpbWV9ID8gVHJhbnNsYXRhYmxlKCdPbiBvdmVydGltZSBsZWF2ZScpCiAgICAgICAgICAgIDogICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICRQYXJhbXtXb3JraW5nSG91cnN9ID0gJERhdGF7VG90YWx9ID8gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSA6ICcnOwoKICAgICAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSBdOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICAgICAgJFBhcmFte0NvbW1lbnR9ID0gJyc7CiAgICB9CgogICAgbXkgJVVzZXJSZXBvcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICApOwogICAgZm9yIG15ICRSZXBvcnRFbGVtZW50ICgKICAgICAgICBxdyhUYXJnZXRTdGF0ZSBUYXJnZXRTdGF0ZVRvdGFsIFdvcmtpbmdIb3Vyc1RvdGFsIFdvcmtpbmdIb3VycwogICAgICAgIE92ZXJ0aW1lIE92ZXJ0aW1lVG90YWwgT3ZlcnRpbWVVbnRpbCBMZWF2ZURheSBMZWF2ZURheVRvdGFsCiAgICAgICAgTGVhdmVEYXlSZW1haW5pbmcgU2ljayBTaWNrVG90YWwgU2lja1JlbWFpbmluZykKICAgICAgICApCiAgICB7CiAgICAgICAgJFVzZXJSZXBvcnR7ICRQYXJhbXtVc2VySUR9IH17JFJlcG9ydEVsZW1lbnR9IHx8PSAwOwogICAgICAgICRQYXJhbXskUmVwb3J0RWxlbWVudH0gPSBzcHJpbnRmKCAiJS4yZiIsICRVc2VyUmVwb3J0eyAkUGFyYW17VXNlcklEfSB9eyRSZXBvcnRFbGVtZW50fSApOwogICAgfQoKICAgIGlmICggJFVzZXJEYXRhe1Nob3dPdmVydGltZX0gKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ0aW1lJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoIFwlUHJvamVjdERhdGEgKSApIHsKCiAgICAgICAgIyBzaG93IHRoZSByZXBvcnQgc29ydCBieSBwcm9qZWN0cwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gfHwgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAndmFsaWQnICkgewogICAgICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ2FsbCc7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyApIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICd2YWxpZCc7CiAgICAgICAgfQoKICAgICAgICAkUGFyYW17U2hvd1Byb2plY3RzfSA9ICdTaG93ICcgLiAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IC4gJyBwcm9qZWN0cyc7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgIFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdERhdGF7JGF9e05hbWV9IGNtcCAkUHJvamVjdERhdGF7JGJ9e05hbWV9IH0ga2V5cyAlUHJvamVjdERhdGEKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFByb2plY3RSZWYgPSAkUHJvamVjdERhdGF7JFByb2plY3RJRH07CiAgICAgICAgICAgIG15ICRBY3Rpb25zUmVmID0gJFByb2plY3RSZWYtPntBY3Rpb25zfTsKCiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSA9ICcnOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSA9ICRQcm9qZWN0UmVmLT57U3RhdHVzfSA/ICcnIDogJ3Bhc3Npdic7CgogICAgICAgICAgICBteSAkVG90YWwgICAgICA9IDA7CiAgICAgICAgICAgIG15ICRUb3RhbFRvdGFsID0gMDsKCiAgICAgICAgICAgIG5leHQgUFJPSkVDVElEIGlmICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgJiYgJFBhcmFte1N0YXR1c307CgogICAgICAgICAgICBpZiAoJEFjdGlvbnNSZWYpIHsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKAogICAgICAgICAgICAgICAgICAgIHNvcnQgeyAkQWN0aW9uc1JlZi0+eyRhfXtOYW1lfSBjbXAgJEFjdGlvbnNSZWYtPnskYn17TmFtZX0gfQogICAgICAgICAgICAgICAgICAgIGtleXMgJXskQWN0aW9uc1JlZn0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGlvblJlZiA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfTsKCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0FjdGlvbn0gICAgID0gJEFjdGlvblJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJEFjdGlvblJlZi0+e1Blck1vbnRofSB8fCAwICk7CiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57VG90YWx9IHx8IDAgKTsKICAgICAgICAgICAgICAgICAgICAkVG90YWwgICAgICArPSAkUGFyYW17SG91cnN9OwogICAgICAgICAgICAgICAgICAgICRUb3RhbFRvdGFsICs9ICRQYXJhbXtIb3Vyc1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJFByb2plY3RSZWYtPntOYW1lfTsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXdMaW5lICAgICAgICA9PiA1MCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3dTcGFuID0+ICggMSArIHNjYWxhciBrZXlzICV7JEFjdGlvbnNSZWZ9ICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICA9PiAkUGFyYW17U3RhdHVzfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFByb2plY3REZXNjcmlwdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdERlc2NyaXB0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICRQcm9qZWN0RGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGVyc29ucyB3aG8gYXJlIGFsbG93ZWQgdG8gc2VlIHRoZSBjcmVhdGUgb2JqZWN0IGxpbmsgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFsbG93ZWQgdG8gc2VlIHRoZSBwcm9qZWN0IHJlcG9ydGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdExpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgPT4gJFByb2plY3RSZWYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0Tm9MaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgUHJvamVjdCA9PiAkUHJvamVjdFJlZi0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgTm93IHNob3cgcm93IHdpdGggdG90YWwgcmVzdWx0IG9mIGFsbCBhY3Rpb25zIG9mIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWwgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsVG90YWwgKTsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgICs9ICRUb3RhbDsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICs9ICRUb3RhbFRvdGFsOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uVG90YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICggZGVmaW5lZCggJFBhcmFte1RvdGFsSG91cnN9ICkgKSB7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnN9ICk7CiAgICAgICAgfQogICAgICAgIGlmICggZGVmaW5lZCggJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKSApIHsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICk7CiAgICAgICAgfQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnT3ZlcnZpZXcnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3JwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUVycm9ycyA9ICgpOwogICAgbXkgJUdldFBhcmFtOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZH07ICRQZXJpb2QrKyApIHsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0KICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICk7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnTWlzc2luZ1ZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlU3RhcnR9ICk7CiAgICAgICAgbXkgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlRW5kfSApOwogICAgICAgIG15ICRFbmREYXRlID0gJFRpbWVPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgIGlmICggISRTdGFydERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggISRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggJFN0YXJ0RGF0ZSAmJiAkRW5kRGF0ZSAmJiAkU3RhcnREYXRlID49ICRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnQmVmb3JlRGF0ZVN0YXJ0JzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGU6OlBjYWxjIHF3KFRvZGF5IERheXNfaW5fTW9udGggRGF5X29mX1dlZWsgQWRkX0RlbHRhX1lNRCBjaGVja19kYXRlKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIFRpbWU6OkxvY2FsOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkVGltZU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB0aW1lIGFjY291bnRpbmcgcHJvamVjdCByZXBvcnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUmVwb3J0aW5nUHJvamVjdCcgKSB7CgogICAgICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6JFNlbGYtPntTdWJhY3Rpb259Iik7CgogICAgICAgIG15ICVGcm9udGVuZCA9ICgpOwoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0SUQnICk7CgogICAgICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJykKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICVBY3Rpb24gID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdHtQcm9qZWN0fS0+eyAkUGFyYW17UHJvamVjdElEfSB9OwoKICAgICAgICAjIGdldCBzeXN0ZW0gdXNlcnMKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAwCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ID0gJENvbmZpZy0+e1Nob3dPbmx5QWN0aXZlVXNlcnN9OwoKICAgICAgICBpZiAoICRQYXJhbXtTaG93T25seUFjdGl2ZVVzZXJzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHJlZ2lzdGVyZWQgdXNlcnMKICAgICAgICAgICAgbXkgJVJlZ2lzdGVyZWRVc2VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgICAgICMgcmVkdWNlIHNob3duIHVzZXJzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgcmVnaXN0ZXJlZCBpbiB0aW1lIGFjY291bnRpbmcKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBrZXlzICVSZWdpc3RlcmVkVXNlcnM7CiAgICAgICAgfQoKICAgICAgICAjIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nIGlzIG5vdCByZXdvcmtlZAogICAgICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgKTsKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAoKTsKICAgICAgICBteSAlUHJvamVjdFRpbWUgPSAoKTsKCiAgICAgICAgbXkgQFVzZXJXaGl0ZUxpc3Q7CgogICAgICAgICMgT25seSBvbmUgZnVuY3Rpb24gc2hvdWxkIGJlIGVub3VnaAogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVTaG93blVzZXJzICkgewoKICAgICAgICAgICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICAgICAgICAgICMgUkVNQVJLOiBUaGlzIGlzIHRoZSB3cm9uZyBmdW5jdGlvbiB0byBnZXQgdGhpcyBpbmZvcm1hdGlvbgogICAgICAgICAgICAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJFByb2plY3REYXRheyAkUGFyYW17UHJvamVjdElEfSB9ICkgewogICAgICAgICAgICAgICAgbXkgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0OwogICAgICAgICAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkUHJvamVjdERhdGF7ICRQYXJhbXtQcm9qZWN0SUR9IH0tPntBY3Rpb25zfTsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXskQWN0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RUaW1leyRBY3Rpb25JRH0tPnskVXNlcklEfS0+e0hvdXJzfSA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfS0+e1RvdGFsfTsKCiAgICAgICAgICAgICAgICAgICAgIyByZW1lbWJlciB0aGUgc3VtIG9mIGFsbCBob3VycyBvZiBhbGwgdGFza3MKICAgICAgICAgICAgICAgICAgICAkVXNlclRvdGFsSG91cnNJblByb2plY3QgKz0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9LT57VG90YWx9IHx8IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciBvbmx5IHRoZSB1c2VycyB0aGF0IGhhcyBiZWVuIGFkZGVkIGhvdXJzIHRvIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdCAmJiAkVXNlclRvdGFsSG91cnNJblByb2plY3QgPiAwICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFVzZXJXaGl0ZUxpc3QsICRVc2VySUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ICkgewoKICAgICAgICAgICAgIyByZWR1Y2Ugc2hvd24gdXNlcnMgdG8gb25seSB0aGUgb25lcyB0aGF0IGFyZSBhY3RpdmUgaW4gdGhlIHByb2plY3QgKGJ5IGFkZGluZyBob3VycykKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBAVXNlcldoaXRlTGlzdDsKICAgICAgICB9CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGhlIGhlYWRlciBsaW5lCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJOYW1lJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgVXNlciA9PiAkU2hvd25Vc2Vyc3skVXNlcklEfSB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBiZXR0ZXIgc29sdXRpb24gZm9yIHNvcnQgYWN0aW9ucyBuZWNlc3NhcnkKICAgICAgICAgICAgbXkgJU5ld0FjdGlvbiA9ICgpOwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICVQcm9qZWN0VGltZSApIHsKICAgICAgICAgICAgICAgICROZXdBY3Rpb257JEFjdGlvbklEfSA9ICRBY3Rpb257JEFjdGlvbklEfS0+e0FjdGlvbn07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJUFjdGlvbiA9ICVOZXdBY3Rpb247CgogICAgICAgICAgICAjIHNob3cgdGhlIHJlc3VsdHMKICAgICAgICAgICAgbXkgJVRvdGFsID0gKCk7CiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IHsgJEFjdGlvbnskYX0gY21wICRBY3Rpb257JGJ9IH0ga2V5cyAlQWN0aW9uICkgewogICAgICAgICAgICAgICAgbXkgJFRvdGFsSG91cnMgPSAwOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb257JEFjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICAgICAkVG90YWxIb3VycyArPSAkUHJvamVjdFRpbWV7JEFjdGlvbklEfXskVXNlcklEfXtIb3Vyc30gfHwgMDsKICAgICAgICAgICAgICAgICAgICAkVG90YWx7JFVzZXJJRH0gKz0gJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDA7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvdXJzID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZiggIiUuMmYiLCAkUHJvamVjdFRpbWV7JEFjdGlvbklEfXskVXNlcklEfXtIb3Vyc30gfHwgMCApLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBUb3RhbAogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhvdXJzID0+IHNwcmludGYoICIlLjJmIiwgJFRvdGFsSG91cnMgKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkUGFyYW17VG90YWxBbGx9ID0gMDsKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICAgICAgJFBhcmFte1RvdGFsQWxsfSArPSAkVG90YWx7JFVzZXJJRH07CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyVG90YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBUb3RhbCA9PiBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbHskVXNlcklEfSApLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUb3RhbEFsbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBUb3RhbEFsbCA9PiBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEFsbH0gKSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIG15IEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0SGlzdG9yeSgKICAgICAgICAgICAgUHJvamVjdElEID0+ICRQYXJhbXtQcm9qZWN0SUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggXEBQcm9qZWN0SGlzdG9yeUFycmF5ICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RUYWJsZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJUZyb250ZW5kCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBQcm9qZWN0SGlzdG9yeUFycmF5KSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBVc2VyICAgPT4gJFJvdy0+e1VzZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJFJvdy0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbWFyayA9PiAkUm93LT57UmVtYXJrfSB8fCAnLS0nLAogICAgICAgICAgICAgICAgICAgICAgICBQZXJpb2QgPT4gc3ByaW50ZiggIiUuMmYiLCAkUm93LT57UGVyaW9kfSApLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICAgPT4gJFJvdy0+e0RhdGV9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNob3cgdGhlIHRvdGFsIHN1bSBvZiBob3VycyBhdCB0aGUgZW5kIG9mIHRoZSBoaXN0b3J5IGxpc3QKICAgICAgICAgICAgIyBJIGFsc28gY2FuIHVzZSAkUGFyYW17VG90YWxBbGx9CiAgICAgICAgICAgIG15ICRQcm9qZWN0VG90YWxIb3VycyA9IHNwcmludGYoCiAgICAgICAgICAgICAgICAiJS4yZiIsCiAgICAgICAgICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RUb3RhbEhvdXJzKAogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hpc3RvcnlUb3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VG90YWwgPT4gJFByb2plY3RUb3RhbEhvdXJzIHx8IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBvdXRwdXQKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZyBQcm9qZWN0JyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdGltZSBhY2NvdW50aW5nIHJlcG9ydGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICVGcm9udGVuZCAgID0gKCk7CiAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMAogICAgKTsKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBNb250aCBZZWFyIFByb2plY3RTdGF0dXNTaG93KSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICBteSAlTW9udGggPSAoKTsKICAgIGZvciBteSAkSUQgKCAxIC4uIDEyICkgewogICAgICAgICRNb250aHsgc3ByaW50ZiggIiUwMmQiLCAkSUQgKSB9ID0gJE1vbnRoQXJyYXlbJElEXTsKICAgIH0KCiAgICAkRnJvbnRlbmR7TW9udGhPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVNb250aCwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17TW9udGh9IHx8ICcnLAogICAgICAgIE5hbWUgICAgICAgID0+ICdNb250aCcsCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJNb250aCIpLAogICAgKTsKCiAgICBteSBAWWVhciA9ICggJFllYXIgLSA0IC4uICRZZWFyICsgMSApOwoKICAgICRGcm9udGVuZHtZZWFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFxAWWVhciwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17WWVhcn0gfHwgJycsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1llYXInLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJZZWFyIiksCiAgICApOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIC0xLCAwICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKSA9IEFkZF9EZWx0YV9ZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgMSwgMCwgMSwgMCApOwoKICAgIG15ICVVc2VyUmVwb3J0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyUmVwb3J0aW5nKAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAlVXNlckJhc2ljcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggXCVTaG93blVzZXJzICkgfHwgIUlzSGFzaFJlZldpdGhEYXRhKCBcJVVzZXJSZXBvcnQgKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9Vc2VyRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyVGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwoKICAgICAgICBVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IHsgJFNob3duVXNlcnN7JGF9IGNtcCAkU2hvd25Vc2Vyc3skYn0gfSBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICBuZXh0IFVTRVJJRCBpZiAhJFVzZXJSZXBvcnR7JFVzZXJJRH07CgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAoCiAgICAgICAgICAgICAgICBxdyhMZWF2ZURheSBPdmVydGltZSBXb3JraW5nSG91cnMgU2ljayBMZWF2ZURheVJlbWFpbmluZyBPdmVydGltZVRvdGFsKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSBzcHJpbnRmKCAiJS4yZiIsICggJFVzZXJSZXBvcnR7JFVzZXJJRH17JFBhcmFtZXRlcn0gfHwgMCApICk7CiAgICAgICAgICAgICAgICAkUGFyYW17ICdUb3RhbCcgLiAkUGFyYW1ldGVyIH0gKz0gJFBhcmFteyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIFNob3cgT3ZlcnRpbWUgaWYgYWxsb3dlZAogICAgICAgICAgICBpZiAoICEkVXNlckJhc2ljc3skVXNlcklEfXtTaG93T3ZlcnRpbWV9ICkgewogICAgICAgICAgICAgICAgJFBhcmFte092ZXJ0aW1lfSAgICAgID0gJyc7CiAgICAgICAgICAgICAgICAkUGFyYW17T3ZlcnRpbWVUb3RhbH0gPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFBhcmFte1VzZXJ9ICAgPSAkU2hvd25Vc2Vyc3skVXNlcklEfTsKICAgICAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkVXNlcklEOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAoCiAgICAgICAgICAgIHF3KFRvdGFsTGVhdmVEYXkgVG90YWxPdmVydGltZSBUb3RhbFdvcmtpbmdIb3VycwogICAgICAgICAgICBUb3RhbFNpY2sgVG90YWxMZWF2ZURheVJlbWFpbmluZyBUb3RhbE92ZXJ0aW1lVG90YWwpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9IHNwcmludGYoICIlLjJmIiwgKCAkUGFyYW17JFBhcmFtZXRlcn0gKSB8fCAwICk7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlckdyYW5kVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHRoZSByZXBvcnQgc29ydCBieSBwcm9qZWN0cwogICAgaWYgKCAhJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSB8fCAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IGVxICd2YWxpZCcgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICdhbGwnOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IGVxICdhbGwnICkgewogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gPSAndmFsaWQnOwogICAgfQoKICAgICRQYXJhbXtTaG93UHJvamVjdHN9ID0gJ1Nob3cgJyAuICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gLiAnIHByb2plY3RzJzsKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICApOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVByb2plY3REYXRhICkgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vUHJvamVjdERhdGFGb3VuZE1zZycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c0xpbmtDbGFzc30gPSAnSGlkZGVuJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwoKICAgICAgICAjIFJFTUFSSzogbWVyZ2UgdGhpcyBwcm9qZWN0IHJlcG9ydGluZyBsaXN0IHdpdGggdGhlIGxpc3QgaW4gb3ZlcnZpZXcKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgICAgICBzb3J0IHsgJFByb2plY3REYXRheyRhfS0+e05hbWV9IGNtcCAkUHJvamVjdERhdGF7JGJ9LT57TmFtZX0gfQogICAgICAgICAgICBrZXlzICVQcm9qZWN0RGF0YQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkUHJvamVjdFJlZiA9ICRQcm9qZWN0RGF0YXskUHJvamVjdElEfTsKICAgICAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkUHJvamVjdFJlZi0+e0FjdGlvbnN9OwoKICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ID0gJyc7CiAgICAgICAgICAgICRQYXJhbXtTdGF0dXN9ID0gJFByb2plY3RSZWYtPntTdGF0dXN9ID8gJycgOiAncGFzc2l2JzsKCiAgICAgICAgICAgIG15ICRUb3RhbCAgICAgID0gMDsKICAgICAgICAgICAgbXkgJFRvdGFsVG90YWwgPSAwOwoKICAgICAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyAmJiAkUGFyYW17U3RhdHVzfTsKCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKAogICAgICAgICAgICAgICAgc29ydCB7ICRBY3Rpb25zUmVmLT57JGF9LT57TmFtZX0gY21wICRBY3Rpb25zUmVmLT57JGJ9LT57TmFtZX0gfQogICAgICAgICAgICAgICAga2V5cyAleyRBY3Rpb25zUmVmfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkQWN0aW9uUmVmID0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ICA9ICRQcm9qZWN0SUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgICAgPSAkQWN0aW9uUmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntQZXJNb250aH0gfHwgMCApOwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57VG90YWx9IHx8IDAgKTsKICAgICAgICAgICAgICAgICRUb3RhbCAgICAgICs9ICRQYXJhbXtIb3Vyc307CiAgICAgICAgICAgICAgICAkVG90YWxUb3RhbCArPSAkUGFyYW17SG91cnNUb3RhbH07CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb24nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdFJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0RGVzY3JpcHRpb24gPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgTmV3TGluZSAgICAgICAgPT4gNTAsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd1NwYW4gICAgICAgICAgICA9PiAoIDEgKyBzY2FsYXIga2V5cyAleyRBY3Rpb25zUmVmfSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICAgICAgICAgICAgID0+ICRQYXJhbXtTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICRQcm9qZWN0RGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RSZWYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCAgICAgICAgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgICAgICAgID0+ICdNYXN0ZXJBY3Rpb25MaW5rJyAuICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWwgKTsKICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWxUb3RhbCApOwogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICArPSAkVG90YWw7CiAgICAgICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICs9ICRUb3RhbFRvdGFsOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvblRvdGFsJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgfHw9IDA7CiAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gfHw9IDA7CgogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxIb3Vyc30gKTsKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RHcmFuZFRvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIG91dHB1dAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZycpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nJwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGV4cHJlc3Npb24gYWRkIHRpbWUgcGVyaW9kIHdhcyBwcmVzc2VkCiAgICBpZiAoCiAgICAgICAgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKQogICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJtaXRVc2VyRGF0YScgKQogICAgICAgICkKICAgIHsKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1VzZXJJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApOwogICAgICAgIG15ICRQZXJpb2RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgIG15ICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgUGVyaW9kID0+ICRQZXJpb2RzLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIHBlcmlvZCBkYXRhIGlzIE9LCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZ2V0IGFsbCBwYXJhbWV0ZXJzCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdWJhY3Rpb24gRGVzY3JpcHRpb24gQ2FsZW5kYXIpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0KSkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRQZXJpb2QgPSAxOwogICAgICAgICAgICBteSAlUGVyaW9kRGF0YTsKCiAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U2luZ2xlVXNlclNldHRpbmdzR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBwYXJhbWV0ZXJzIGZvciBhbGwgcmVnaXN0ZXJlZCBwZXJpb2RzCiAgICAgICAgICAgIHdoaWxlICggJFVzZXJEYXRheyRQZXJpb2R9ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFdlZWtseUhvdXJzIE92ZXJ0aW1lIERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kRGF0YXskUGVyaW9kfXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApCiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICRVc2VyRGF0YXskUGVyaW9kfXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQZXJpb2REYXRheyRQZXJpb2R9e1VzZXJTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIlBlcmlvZFN0YXR1c1skUGVyaW9kXSIgKSB8fCAwOwogICAgICAgICAgICAgICAgJFBlcmlvZCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZXRQYXJhbXtQZXJpb2R9ID0gXCVQZXJpb2REYXRhOwoKICAgICAgICAgICAgIyB1cGRhdGUgcGVyaW9kcwogICAgICAgICAgICBpZiAoICEkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSglR2V0UGFyYW0pICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzIScpLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKSApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIGVkaXQgdGltZSBzZXR0aW5ncyBhZ2FpbiwgYnV0IG5vdyB3aXRoIGEgbmV3IGVtcHR5IHRpbWUgcGVyaW9kIGxpbmUKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nO1N1YmFjdGlvbj0kR2V0UGFyYW17U3ViYWN0aW9ufTtVc2VySUQ9JEdldFBhcmFte1VzZXJJRH07IgogICAgICAgICAgICAgICAgICAgICAgICAuICJOZXdUaW1lUGVyaW9kPTEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIG92ZXJ2aWV3IG9mIHRhc2tzIGFuZCB1c2VycwogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIE9QID0+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+ICROZXdVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBpdCBpcyBub3QgYW4gYWN0aW9uIGFib3V0IGFkZGluZyBhIG5ldyB0aW1lIHBlcmlvZAogICAgICAgIGlmICggISROZXdUaW1lUGVyaW9kICkgewogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBpbnNlcnQgdXNlciBkYXRhIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICAgICAgICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICAgICAgICAgbXkgJUdyb3VwcyA9ICRHcm91cE9iamVjdC0+R3JvdXBMaXN0KCBWYWxpZCA9PiAxICk7CiAgICAgICAgICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkTmV3VXNlcklELAogICAgICAgICAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICAgICApOwogICAgICAgICAgICBmb3IgbXkgJEdyb3VwS2V5ICggc29ydCBrZXlzICVHcm91cHMgKSB7CiAgICAgICAgICAgICAgICBpZiAoICRHcm91cHN7JEdyb3VwS2V5fSBlcSAndGltZV9hY2NvdW50aW5nJyAmJiAhJEdyb3VwRGF0YXskR3JvdXBLZXl9ICkgewoKICAgICAgICAgICAgICAgICAgICAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyQWRkKAogICAgICAgICAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgVUlEICAgICAgICA9PiAkTmV3VXNlcklELAogICAgICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZV9pbnRvID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGUgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydyAgICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Vc2VyU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ0FkZFVzZXInLAogICAgICAgICAgICBTdWJhY3Rpb24gPT4gJ0FkZFVzZXInLAogICAgICAgICAgICAlVXNlciwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHVzZXIgc2V0dGluZ3MKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFVzZXInICkgewogICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VySUQnICkgfHwgJyc7CiAgICAgICAgaWYgKCAhJElEICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZSBVc2VySUQgaXMgbm90IHZhbGlkIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE5ld1RpbWVQZXJpb2QgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmV3VGltZVBlcmlvZCcgKTsKICAgICAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBpdCBpcyBhbiBhY3Rpb24gYWJvdXQgYWRkaW5nIGEgbmV3IHRpbWUgcGVyaW9kLCBpbnNlcnQgaXQKICAgICAgICBpZiAoJE5ld1RpbWVQZXJpb2QpIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIgKyAxLAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICVFcnJvcnMgPSAoKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkUGVyaW9kJyApCiAgICAgICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJtaXRVc2VyRGF0YScgKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBjaGVjayB2YWxpZGl0eSBvZiBwZXJpb2RzCiAgICAgICAgICAgICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICVVc2VyID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJElELAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1VzZXJTZXR0aW5nc0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnRWRpdFVzZXInLAogICAgICAgICAgICBTdWJhY3Rpb24gPT4gJ0VkaXRVc2VyJywKICAgICAgICAgICAgVXNlcklEICAgID0+ICRJRCwKICAgICAgICAgICAgRXJyb3JzICAgID0+IFwlRXJyb3JzLAogICAgICAgICAgICBQZXJpb2RzICAgPT4gJExhc3RQZXJpb2ROdW1iZXIsCiAgICAgICAgICAgICVVc2VyLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNldHRpbmdzIGZvciBoYW5kbGluZyB0aW1lIGFjY291bnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBnZXQgdXNlciBkYXRhCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gJiYgISRTZWxmLT57QWNjZXNzUnd9ICkgewoKICAgICAgICAjIHJldHVybiBubyBwZXJtaXNzaW9uIHNjcmVlbgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCB0aGUgdXNlciBhY3Rpb24gdG8gc2hvdyBhIG1lc3NhZ2UgaWYgYW4gdXNlciB3YXMgdXBkYXRlZCBvciBhZGRlZAogICAgbXkgJE5vdGUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcicgKTsKCiAgICAjIGJ1aWxkIG91dHB1dAogICAgJFNlbGYtPl9TZXR0aW5nT3ZlcnZpZXcoKTsKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdTZXR0aW5nJyksCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBzaG93IGEgbm90aWZpY2F0aW9uIG1lc3NhZ2UgaWYgcHJvcGVyCiAgICBpZiAoJE5vdGUpIHsKICAgICAgICAkT3V0cHV0IC49ICROb3RlIGVxICdFZGl0VXNlcicKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdVc2VyIHVwZGF0ZWQhJyksCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdVc2VyIGFkZGVkIScpLAogICAgICAgICAgICApOwogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKCn0KCnN1YiBfQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUVycm9ycyA9ICgpOwogICAgbXkgJUdldFBhcmFtOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZH07ICRQZXJpb2QrKyApIHsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0KICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICk7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnTWlzc2luZ1ZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlU3RhcnR9ICk7CiAgICAgICAgbXkgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgID0+ICREYXksCiAgICAgICAgICAgIEhvdXIgICA9PiAwLAogICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgKTsKICAgICAgICAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlRW5kfSApOwogICAgICAgIG15ICRFbmREYXRlID0gJFRpbWVPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgIGlmICggISRTdGFydERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggISRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggJFN0YXJ0RGF0ZSAmJiAkRW5kRGF0ZSAmJiAkU3RhcnREYXRlID49ICRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnQmVmb3JlRGF0ZVN0YXJ0JzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCnN1YiBfUHJvamVjdFNldHRpbmdzRWRpdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdQcm9qZWN0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RQcm9qZWN0JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvblNldHRpbmdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgIG15ICRQcm9qZWN0U3RhdHVzID0gMTsKICAgIGlmICggZGVmaW5lZCAkUGFyYW17UHJvamVjdFN0YXR1c30gKSB7CiAgICAgICAgJFByb2plY3RTdGF0dXMgPSAkUGFyYW17UHJvamVjdFN0YXR1c30KICAgIH0KCiAgICAkUGFyYW17U3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFByb2plY3RTdGF0dXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnUHJvamVjdFN0YXR1cycsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVQcm9qZWN0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgc2hvd3MgaGVhZGVyCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdFZGl0UHJvamVjdCcgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXRQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckFkZFByb2plY3QnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHNlcnZlciBlcnJvciBtZXNzYWdlIChpZiBhbnkpIGZvciB0aGUgcHJvamVjdCBuYW1lCiAgICBpZiAoICRQYXJhbXtQcm9qZWN0RXJyb3JUeXBlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17UHJvamVjdEVycm9yVHlwZX0sCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9TZXR0aW5nT3ZlcnZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlUHJvamVjdCA9ICgpOwogICAgbXkgJURhdGEgICAgPSAoKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFByb2plY3QnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgaGFzaCB0byBzYXZlIHJlZ2lzdGVyZWQgdXNlcnMKICAgIG15ICVVc2VyOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkVGFzaycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBsaXN0IG9mIHJlZ2lzdGVyZWQgdXNlcnMgKGlmIGFueSkKICAgICAgICAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgVVNFUklORk86CiAgICAgICAgZm9yIG15ICRVc2VySW5mbyAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgIG5leHQgVVNFUklORk8gaWYgISRVc2VyeyRVc2VySW5mb307CgogICAgICAgICAgICAjIGRlbGV0ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgdXNlciBmcm9tIHRoZSAnbmV3JyBsaXN0CiAgICAgICAgICAgIGRlbGV0ZSAkU2hvd25Vc2Vyc3skVXNlckluZm99OwogICAgICAgIH0KCiAgICAgICAgaWYgKCVTaG93blVzZXJzKSB7CiAgICAgICAgICAgIG15ICROZXdVc2VyT3B0aW9uID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICcnLAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdVc2VySUQnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMCwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIk5ldyBVc2VyIiksCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkVXNlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBOZXdVc2VyT3B0aW9uID0+ICROZXdVc2VyT3B0aW9uLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnUHJvamVjdEZpbHRlcicsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVGFza0ZpbHRlcicsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlckZpbHRlcicsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNob3cgcHJvamVjdCBkYXRhCiAgICAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRQcm9qZWN0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgZGVmaW5lIHN0YXR1cyBsaXN0CiAgICBteSAlU3RhdHVzTGlzdCA9ICgKICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgndmFsaWQnKSwKICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnaW52YWxpZCcpLAogICAgKTsKCiAgICAjIHNob3cgbGlzdCBvZiBhdmFpbGFibGUgcHJvamVjdHMgKGlmIGFueSkKICAgIGlmICggJFByb2plY3R7UHJvamVjdH0gKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3RUYWJsZScsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgICAgICBzb3J0IHsgJFByb2plY3R7UHJvamVjdH17JGF9IGNtcCAkUHJvamVjdHtQcm9qZWN0fXskYn0gfQogICAgICAgICAgICBrZXlzICV7ICRQcm9qZWN0e1Byb2plY3R9IH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3R9ICAgICAgICAgICAgPSAkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfTsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0gPSAkUHJvamVjdHtQcm9qZWN0RGVzY3JpcHRpb259eyRQcm9qZWN0SUR9OwogICAgICAgICAgICAkUGFyYW17UHJvamVjdElEfSAgICAgICAgICA9ICRQcm9qZWN0SUQ7CiAgICAgICAgICAgICRQYXJhbXtTdGF0dXN9ICAgICAgICAgICAgID0gJFN0YXR1c0xpc3R7ICRQcm9qZWN0e1Byb2plY3RTdGF0dXN9eyRQcm9qZWN0SUR9IH07CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0UHJvamVjdFJvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIG90aGVyd2lzZSwgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vUHJvamVjdERhdGFGb3VuZE1zZycsCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57QWNjZXNzUnd9ICkgewoKICAgICAgICAjIFNob3cgYWN0aW9uIGRhdGEKICAgICAgICBteSAlQWN0aW9uID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBsaXN0IG9mIGF2YWlsYWJsZSB0YXNrcy9hY3Rpb25zIChpZiBhbnkpCiAgICAgICAgaWYgKCVBY3Rpb24pIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRTZXR0aW5nVGFibGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IHsgJEFjdGlvbnskYX17QWN0aW9ufSBjbXAgJEFjdGlvbnskYn17QWN0aW9ufSB9IGtleXMgJUFjdGlvbiApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtBY3Rpb259ICAgPSAkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9ufTsKICAgICAgICAgICAgICAgICRQYXJhbXtBY3Rpb25JRH0gPSAkQWN0aW9uSUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17U3RhdHVzfSAgID0gJFN0YXR1c0xpc3R7ICRBY3Rpb257JEFjdGlvbklEfXtBY3Rpb25TdGF0dXN9IH07CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBvdGhlcndpc2UsIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1NldHRpbmdEYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdyB1c2VyIGRhdGEKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBsaXN0IG9mIHJlZ2lzdGVyZWQgdXNlcnMgKGlmIGFueSkKICAgICAgICBpZiAoJVVzZXIpIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRVc2VyVGFibGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRVc2VyeyRhfSBjbXAgJFVzZXJ7JGJ9IH0ga2V5cyAlVXNlciApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBtaXNzaW5nIHVzZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG15ICVVc2VyR2VuZXJhbERhdGEgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRQYXJhbXtVc2VyfQogICAgICAgICAgICAgICAgICAgID0gIiRVc2VyR2VuZXJhbERhdGF7VXNlckZpcnN0bmFtZX0gJFVzZXJHZW5lcmFsRGF0YXtVc2VyTGFzdG5hbWV9ICgkVXNlckdlbmVyYWxEYXRhe1VzZXJMb2dpbn0pIjsKICAgICAgICAgICAgICAgICRQYXJhbXtVc2VySUR9ICAgICA9ICRVc2VySUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17Q29tbWVudH0gICAgPSAkVXNlckRhdGF7RGVzY3JpcHRpb259OwogICAgICAgICAgICAgICAgJFBhcmFte0NhbGVuZGFyTm99ID0gJFVzZXJEYXRhe0NhbGVuZGFyfTsKICAgICAgICAgICAgICAgICRQYXJhbXtDYWxlbmRhcn0gICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgKICAgICAgICAgICAgICAgICAgICAiVGltZVpvbmU6OkNhbGVuZGFyIgogICAgICAgICAgICAgICAgICAgICAgICAuICggJFBhcmFte0NhbGVuZGFyTm99IHx8ICcnICkgLiAiTmFtZSIKICAgICAgICAgICAgICAgICkgfHwgJ0RlZmF1bHQnOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Vc2VyRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1Rhc2tTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFNldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgbXkgJFRhc2tTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtUYXNrU3RhdHVzfSApIHsKICAgICAgICAkVGFza1N0YXR1cyA9ICRQYXJhbXtUYXNrU3RhdHVzfQogICAgfQoKICAgICRQYXJhbXtTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkVGFza1N0YXR1cywKICAgICAgICBOYW1lICAgICAgID0+ICdUYXNrU3RhdHVzJywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZVRhc2snLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgIyBzaG93cyBoZWFkZXIKICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0VkaXRUYXNrJyApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRWRpdFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyQWRkVGFzaycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgc2VydmVyIGVycm9yIG1lc3NhZ2UgKGlmIGFueSkgZm9yIHRoZSB0YXNrIG5hbWUKICAgIGlmICggJFBhcmFte1Rhc2tFcnJvclR5cGV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRQYXJhbXtUYXNrRXJyb3JUeXBlfSwKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1VzZXJTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEZXNjcmlwdGlvbiBTaG93T3ZlcnRpbWUgQ3JlYXRlUHJvamVjdCBDYWxlbmRhcikpIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHRoZSBkYXRlLXBpY2tlciB1c2VkIGluIHRoaXMgc2NyZWVuIGlzIG5vbi1zdGFuZGFyZAogICAgIyBUaGVyZWZvciB3ZSBoYXZlIHRvIGRlZmluZSB0aGlzIHZhciBpbiB0aGUgTGF5b3V0T2JqZWN0IGZvciBhdXRvbWF0aWMgY29uZmlnIGdlbmVyYXRpb24gaW4gdGhlIEpTIGZvb3RlcgogICAgJExheW91dE9iamVjdC0+e0hhc0RhdGVwaWNrZXJ9ID0gMTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3U2V0dGluZycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdSZWZlcmVuY2UnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgZGVmaW5lIHN0YXR1cyBsaXN0CiAgICBteSAlU3RhdHVzTGlzdCA9ICgKICAgICAgICAxID0+IFRyYW5zbGF0YWJsZSgndmFsaWQnKSwKICAgICAgICAwID0+IFRyYW5zbGF0YWJsZSgnaW52YWxpZCcpLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGZpbGwgdXAgdGhlIGNhbGVuZGFyIGxpc3QKICAgIG15ICRDYWxlbmRhckxpc3RSZWYgPSB7IDAgPT4gJ0RlZmF1bHQnIH07CiAgICBteSAkQ2FsZW5kYXJJbmRleCA9IDE7CiAgICB3aGlsZSAoICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkQ2FsZW5kYXJJbmRleCAuICJOYW1lIiApICkgewogICAgICAgICRDYWxlbmRhckxpc3RSZWYtPnskQ2FsZW5kYXJJbmRleH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gJENhbGVuZGFySW5kZXggLiAiTmFtZSIgKTsKICAgICAgICAkQ2FsZW5kYXJJbmRleCsrOwogICAgfQoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgZ2V0IHVzZXIgZGF0YQogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgJFBhcmFte0NhbGVuZGFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+ICRDYWxlbmRhckxpc3RSZWYsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0NhbGVuZGFyJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRHZXRQYXJhbXtDYWxlbmRhcn0gfHwgJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17RGVzY3JpcHRpb259ID0gJEdldFBhcmFte0Rlc2NyaXB0aW9ufSB8fCAkVXNlckRhdGF7RGVzY3JpcHRpb259IHx8ICcnOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlVXNlcicsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lID0+ICggJEdldFBhcmFte1Nob3dPdmVydGltZX0gfHwgJFVzZXJEYXRhe1Nob3dPdmVydGltZX0gKQogICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAoICRHZXRQYXJhbXtDcmVhdGVQcm9qZWN0fSB8fCAkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gKQogICAgICAgICAgICA/ICdjaGVja2VkPSJjaGVja2VkIicKICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgfQogICAgKTsKCiAgICAjIHNob3dzIGhlYWRlcgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnRWRpdFVzZXInICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJFZGl0VXNlcicsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJBZGRVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgIyBpZiB0aGVyZSBhcmUgZXJyb3JzIHRvIHNob3cKICAgIGlmICggJFBhcmFte0Vycm9yc30gJiYgJXsgJFBhcmFte0Vycm9yc30gfSApIHsKCiAgICAgICAgIyBzaG93IGFsbCBleGlzdGluZyBwZXJpb2RzCiAgICAgICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZHN9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzIFdlZWtseUhvdXJzIE92ZXJ0aW1lIFBlcmlvZFN0YXR1cyApKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAiJFBhcmFtZXRlclxbJFBlcmlvZFxdIiApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17JFBlcmlvZH17UGVyaW9kU3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtQZXJpb2RTdGF0dXN9IHx8ICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXN9LAogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiUGVyaW9kU3RhdHVzWyRQZXJpb2RdIiwKICAgICAgICAgICAgICAgIElEICAgICAgICAgPT4gIlBlcmlvZFN0YXR1cy0kUGVyaW9kIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQZXJpb2QgU3RhdHVzIiksCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RPdmVydmlld1JvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgICAgICAgID0+ICRQZXJpb2QsCiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0SW52YWxpZCA9PiAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZEludmFsaWQgPT4gJFBhcmFte0Vycm9yc30tPnsgJ0RhdGVFbmQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSB8fCAnJywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXNJbnZhbGlkID0+ICRQYXJhbXtFcnJvcnN9LT57ICdMZWF2ZURheXMtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICAgICAgICAgPT4gJEdldFBhcmFte0RhdGVTdGFydH0sCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgICAgICAgID0+ICRHZXRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICAgICAgICAgPT4gJEdldFBhcmFte0xlYXZlRGF5c30sCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgICAgICAgID0+ICRHZXRQYXJhbXtXZWVrbHlIb3Vyc30sCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgICAgICAgID0+ICRHZXRQYXJhbXtPdmVydGltZX0sCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kU3RhdHVzT3B0aW9uID0+ICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXNPcHRpb259LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGF0ZVN0YXJ0JwogICAgICAgICAgICAgICAgICAgIC4gKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICdNaXNzaW5nVmFsdWUnCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIERhdGEgPT4geyBQZXJpb2QgPT4gJFBlcmlvZCB9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RhdGVFbmQnCiAgICAgICAgICAgICAgICAgICAgLiAoICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSB8fCAnTWlzc2luZ1ZhbHVlJyApLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7IFBlcmlvZCA9PiAkUGVyaW9kIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyB1c2VyIGRhdGEKICAgICAgICBpZiAoJVVzZXIpIHsKICAgICAgICAgICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkTGFzdFBlcmlvZE51bWJlcjsgJFBlcmlvZCsrICkgewogICAgICAgICAgICAgICAgbXkgJVBlcmlvZFBhcmFtID0gKCk7CgogICAgICAgICAgICAgICAgIyBnZXQgYWxsIG5lZWRlZCBkYXRhIHRvIGRpc3BsYXkKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMgV2Vla2x5SG91cnMgT3ZlcnRpbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFVzZXJ7JFBlcmlvZH17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGVyaW9kUGFyYW17UGVyaW9kfSA9ICRQZXJpb2Q7CgogICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFte1BlcmlvZFN0YXR1c09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEID0+ICRVc2VyeyRQZXJpb2R9e1VzZXJTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gIlBlcmlvZFN0YXR1c1skUGVyaW9kXSIsCiAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAiUGVyaW9kU3RhdHVzLSRQZXJpb2QiLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQZXJpb2QgU3RhdHVzIiksCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kT3ZlcnZpZXdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVQZXJpb2RQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93Tm9EYXRhJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFRpbWVBY2NvdW50aW5nVmlldzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyhUb2RheSBEYXlzX2luX01vbnRoIERheV9vZl9XZWVrIEFkZF9EZWx0YV9ZTUQgY2hlY2tfZGF0ZSk7CnVzZSBUaW1lOjpMb2NhbDsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQE1vbnRoQXJyYXkgPSAoCiAgICAgICAgJycsICAgICAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICAgICAnQXByaWwnLCAgICdNYXknLAogICAgICAgICdKdW5lJywgJ0p1bHknLCAgICAnQXVndXN0JywgICAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLAogICAgICAgICdEZWNlbWJlcicsCiAgICApOwogICAgbXkgQFdlZWtkYXlBcnJheSA9ICggJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1bicsICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdmlldyBvbGRlciBkYXkgaW5zZXJ0cwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtcwogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERheSBNb250aCBZZWFyIFVzZXJJRCkpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRGF5IE1vbnRoIFllYXIpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdWaWV3OiBOZWVkICVzIScsICROZWVkZWQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBmb3JtYXQgdGhlIGRhdGUgcGFydHMKICAgICRQYXJhbXtZZWFyfSAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtZZWFyfSApOwogICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgJFBhcmFte0RheX0gICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte0RheX0gKTsKCiAgICAjIGlmIG5vIFVzZXJJRCBwb3N0ZWQgdXNlIHRoZSBjdXJyZW50IHVzZXIKICAgICRQYXJhbXtVc2VySUR9IHx8PSAkU2VsZi0+e1VzZXJJRH07CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAjIGdldCBjdXJyZW50IGRhdGUgYW5kIHRpbWUKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgICMgcmVkaXJlY3QgdG8gdGhlIGVkaXQgc2NyZWVuLCBpZiBuZWNlc3NhcnkKICAgIGlmICgKICAgICAgICB0aW1lbG9jYWwoIDEsIDAsIDAsICRQYXJhbXtEYXl9LCAkUGFyYW17TW9udGh9IC0gMSwgJFBhcmFte1llYXJ9IC0gMTkwMCApID4gdGltZWxvY2FsKAogICAgICAgICAgICAxLCAwLCAwLCAkUGFyYW17RGF5QWxsb3dlZH0sCiAgICAgICAgICAgICRQYXJhbXtNb250aEFsbG93ZWR9IC0gMSwKICAgICAgICAgICAgJFBhcmFte1llYXJBbGxvd2VkfSAtIDE5MDAKICAgICAgICApICYmICRQYXJhbXtVc2VySUR9ID09ICRTZWxmLT57VXNlcklEfQogICAgICAgICkKICAgIHsKCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9O0RheT0kUGFyYW17RGF5fSIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIG5hbWluZyBvZiB0aGUgYWdlbnQgd2hpY2ggdGltZSBhY2NvdW50aW5nIGlzIHZpc2l0ZWQKICAgIGlmICggJFBhcmFte1VzZXJJRH0gIT0gJFNlbGYtPntVc2VySUR9ICkgewogICAgICAgIG15ICVTaG93blVzZXJzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMQogICAgICAgICk7CiAgICAgICAgJFBhcmFte1VzZXJ9ID0gJFNob3duVXNlcnN7ICRQYXJhbXtVc2VySUR9IH07CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte1dlZWtkYXl9ICAgICAgICAgPSBEYXlfb2ZfV2VlayggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSApOwogICAgJFBhcmFte1dlZWtkYXlfdG9fVGV4dH0gPSAkV2Vla2RheUFycmF5WyAkUGFyYW17V2Vla2RheX0gLSAxIF07CiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gICA9ICRNb250aEFycmF5WyAkUGFyYW17TW9udGh9IF07CgogICAgIyBWYWx1ZXMgZm9yIHRoZSBsaW5rIGljb25zIDw+CiAgICAoICRQYXJhbXtZZWFyQmFja30sICRQYXJhbXtNb250aEJhY2t9LCAkUGFyYW17RGF5QmFja30gKQogICAgICAgID0gQWRkX0RlbHRhX1lNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgLTEgKTsKICAgICggJFBhcmFte1llYXJOZXh0fSwgJFBhcmFte01vbnRoTmV4dH0sICRQYXJhbXtEYXlOZXh0fSApCiAgICAgICAgPSBBZGRfRGVsdGFfWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAxICk7CgogICAgJFBhcmFte0RhdGVTZWxlY3Rpb259ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnJywKICAgICAgICBGb3JtYXQgICA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgIENsYXNzICAgID0+ICRQYXJhbXtFcnJvcnN9LT57RGF0ZUludmFsaWR9LAogICAgKTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIFNob3cgV29ya2luZyBVbml0cwogICAgIyBnZXQgZXhpc3Rpbmcgd29ya2luZyB1bml0cwogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtEYXRlfSA9ICREYXRhe0RhdGV9OwoKICAgICMgZ2V0IHByb2plY3QgYW5kIGFjdGlvbiBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgc2ljaywgbGVhdmUgZGF5IGFuZCBvdmVydGltZQogICAgJFBhcmFte1NpY2t9ICAgICA9ICREYXRhe1NpY2t9ICAgICA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte0xlYXZlRGF5fSA9ICREYXRhe0xlYXZlRGF5fSA/ICdjaGVja2VkJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkJyA6ICcnOwoKICAgICMgb25seSBzaG93IHRoZSB1bml0IGJsb2NrIGlmIHRoZXJlIGlzIHNvbWUgZGF0YQogICAgbXkgJFVuaXRzUmVmID0gJERhdGF7V29ya2luZ1VuaXRzfTsKICAgIGlmICggJFVuaXRzUmVmLT5bMF0gKSB7CgogICAgICAgIGZvciBteSAkVW5pdFJlZiAoIEB7JFVuaXRzUmVmfSApIHsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVW5pdCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgPT4gJFByb2plY3R7UHJvamVjdH17ICRVbml0UmVmLT57UHJvamVjdElEfSB9LAogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkQWN0aW9ueyAkVW5pdFJlZi0+e0FjdGlvbklEfSB9e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICRVbml0UmVmLT57UmVtYXJrfSwKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJFVuaXRSZWYtPntTdGFydFRpbWV9LAogICAgICAgICAgICAgICAgICAgIEVuZFRpbWUgICA9PiAkVW5pdFJlZi0+e0VuZFRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAkVW5pdFJlZi0+e1BlcmlvZH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUb3RhbCA9PiBzcHJpbnRmKCAiJS4yZiIsICREYXRhe1RvdGFsfSApLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2lja30gfHwgJFBhcmFte0xlYXZlRGF5fSB8fCAkUGFyYW17T3ZlcnRpbWV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdGhlclRpbWVzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkUGFyYW17U2lja30sCiAgICAgICAgICAgICAgICBMZWF2ZURheSA9PiAkUGFyYW17TGVhdmVEYXl9LAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgPT4gJFBhcmFte092ZXJ0aW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRWYWNhdGlvbiA9ICRUaW1lT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIENhbGVuZGFyID0+ICRVc2VyRGF0YXtDYWxlbmRhcn0sCiAgICApOwoKICAgIGlmICgkVmFjYXRpb24pIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVmFjYXRpb24nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFZhY2F0aW9uID0+ICRWYWNhdGlvbiwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgcHJlc2VudGF0aW9uCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdWaWV3JywKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFczMDBweCI+CiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJZZWFyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJNb250aCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aCkgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiRGF5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iVmFsdWUiPgogICAgICAgIFslIERhdGEuRGF5IHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8cCBjbGFzcz0iU3BhY2luZ1RvcCBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/IikgfCBodG1sICVdCjwvcD4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldztZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWdlYXIiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ3JlYXRlUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXRlIE5hdmlnYXRpb24iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNb250aFNlbGVjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBkYXkiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyQmFjayB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoQmFjayB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXlCYWNrIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXS1bJSBEYXRhLk1vbnRoIHwgaHRtbCAlXS1bJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5leHQgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5TmV4dCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkVkaXQiIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gU3BhY2luZ1RvcFNtYWxsIEZ1bGxzaXplIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byB0aGlzIGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2E+ClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiQoJyNOYXZpZ2F0aW9uU2VsZWN0JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpewogICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7Cn0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXMiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXlzIHdpdGhvdXQgZW50cmllcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIFslIERhdGEuSW5jb21wbGV0ZVdvcmtpbmdEYXlzU2VsZWN0ICVdClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAkKCcjSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCcpLnVuYmluZCgnY2hhbmdlLkluY29tcGxldGVXb3JraW5nRGF5cycpLmJpbmQoJ2NoYW5nZS5JbmNvbXBsZXRlV29ya2luZ0RheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIERhdGUgPSAkKHRoaXMpLnZhbCgpLnNwbGl0KCctJyk7CiAgICAgICAgaWYgKERhdGVbMF0gJiYgRGF0ZVsxXSAmJiBEYXRlWzJdKSB7CiAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSAiWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj0iICsgRGF0ZVswXSArICI7TW9udGg9IiArIERhdGVbMV0gKyAiO0RheT0iICsgRGF0ZVsyXTsKICAgICAgICB9CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRheXMgd2l0aG91dCBlbnRyaWVzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJJbmNvbXBsZXRlV29ya2luZ0RheXMiPgogICAgICAgICAgICAgICAgICAgIDxsaSBpZD0iU2VsZWN0QWxsRGF5cyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsIiBuYW1lPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiIC8+PGxhYmVsIGZvcj0iSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsIj48ZW0+WyUgVHJhbnNsYXRlKCJTZWxlY3QgYWxsIGRheXMiKSB8IGh0bWwgJV08L2VtPjwvbGFiZWw+PC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5U2luZ2xlRGF5IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSIgbmFtZT0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSIgLz48bGFiZWwgZm9yPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIj5bJSBEYXRhLkRhdGUgfCBodG1sICVdPC9sYWJlbD4gLSA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhciB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoIHwgdXJpICVdO0RheT1bJSBEYXRhLkRheSB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKCJFZGl0IikgfCBodG1sICVdPC9hPjwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXkiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBpZD0iTWFzc0VudHJ5IiBuYW1lPSJNYXNzRW50cnkiIGNsYXNzPSJTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ik1hc3NFbnRyeSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXRlcyIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMZWF2ZURheSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTaWNrIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ0aW1lIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJNYXNzRW50cnlTdWJtaXQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiA8L2k+WyUgVHJhbnNsYXRlKCJNYXNzIGVudHJ5IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1hc3NFbnRyeUNvbmZpcm1EaWFsb2ciIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlBsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyIpIHwgaHRtbCAlXS48L2gyPgogICAgICAgICAgICAgICAgICAgIDx1bCBpZD0iTWFzc0VudHJ5Q29uZmlybVJhZGlvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJMZWF2ZURheSIgbmFtZT0iQWJzZW5jZVtdIiBpZD0iQ29uZmlybUxlYXZlRGF5IiAvPjxsYWJlbCBmb3I9IkNvbmZpcm1MZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJTaWNrIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtU2ljayIgLz48bGFiZWwgZm9yPSJDb25maXJtU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9Ik92ZXJ0aW1lIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtT3ZlcnRpbWUiIC8+PGxhYmVsIGZvcj0iQ29uZmlybU92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKLypnbG9iYWwgVGltZUFjY291bnRpbmc6IHRydWUgKi8KICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5NYXNzRW50cnlJbml0KHsKICAgICAgICBNc2dDaG9vc2VPbmVEYXk6ICAgIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISIpIHwgSlNPTiAlXSwKICAgICAgICBNc2dBYnNlbmNlUmVhc29uOiAgIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEiKSB8IEpTT04gJV0sCiAgICAgICAgTWFzc0VudHJ5OiAgICAgICAgICBbJSBUcmFuc2xhdGUoIk1hc3MgRW50cnkiKSB8IEpTT04gJV0sCiAgICAgICAgU3VibWl0OiAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgSlNPTiAlXSwKICAgICAgICBDYW5jZWw6ICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBKU09OICVdCiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzTWFzc0VudHJ5IikgJV0KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVmZXJlbmNlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhIFwiKlwiLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXRlIikgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5XZWVrZGF5X3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgfCBodG1sICVdLVslIERhdGEuTW9udGggfCBodG1sICVdLVslIERhdGEuRGF5IHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IEhvcml6b250YWxTY3JvbGwiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IldvcmtpbmdVbml0cyIgaWQ9IldvcmtpbmdVbml0cyIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iRWRpdCIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJSZWNvcmRzTnVtYmVyIiBpZD0iUmVjb3Jkc051bWJlciIgdmFsdWU9IlslIERhdGEuUmVjb3Jkc051bWJlciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3RhdHVzIiB2YWx1ZT0iQWN0aW9uIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlllYXIiIHZhbHVlPSJbJSBEYXRhLlllYXIgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1vbnRoIiB2YWx1ZT0iWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGF5IiB2YWx1ZT0iWyUgRGF0YS5EYXkgfCBodG1sICVdIiAvPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0QmxvY2siKSAlXQogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIgSGlnaENlbGxzIiBpZD0iSW5zZXJ0V29ya2luZ0hvdXJzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhcnQiKSB8IGh0bWwgJV0gKEhIOk1NKTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRW5kIikgfCBodG1sICVdIChISDpNTSk8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj5bJSBEYXRhLlBlcmlvZE5vdGUgfCBodG1sICVdPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJXb3JraW5nSG91cnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0T3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX1Byb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkFjdGlvbk9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19BY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19BY3Rpb25JRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUmVtYXJrW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IlJlbWFya1slIERhdGEuSUQgfCBodG1sICVdIiBjbGFzcz0iVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrIFslIERhdGEuUmVtYXJrSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlJlbWFyayB8IGh0bWwgJV0iIHNpemU9IjM1IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJlbWFya1slIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJTdGFydFRpbWVbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iU3RhcnRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJTdGFydFRpbWUgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lIFslIERhdGEuU3RhcnRUaW1lUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuU3RhcnRUaW1lSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlN0YXJ0VGltZSB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN0YXJ0IFRpbWUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZUdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIk5lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0VGltZTI0SG91cnMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCIyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWUyNEhvdXJzIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iRW5kVGltZVtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJFbmRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJFbmRUaW1lIFZhbGlkYXRlX0RlcGVuZGluZ1JlcXVpcmVkQU5EIFZhbGlkYXRlX0RlcGVuZGluZ19TdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSBbJSBEYXRhLkVuZFRpbWVSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5FbmRUaW1lSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLkVuZFRpbWUgfCBodG1sICVdIiBzaXplPSI3IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJFbmQgVGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRW5kVGltZVslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJFbmRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVCZWZvcmVTdGFydFRpbWVTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZUludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdElucHV0UGVyaW9kIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQZXJpb2RbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iUGVyaW9kWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJQZXJpb2QgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kIFZhbGlkYXRlX1RpbWVVbml0cyBbJSBEYXRhLlBlcmlvZFJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLlBlcmlvZEludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBzaXplPSI3IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBlcmlvZFslIERhdGEuSUQgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQZXJpb2RbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlBlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW52YWxpZEhvdXJzUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiSW52YWxpZEhvdXJzUGVyaW9kU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJaZXJvSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkEgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiWmVyb0hvdXJzUGVyaW9kU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOZWdhdGl2ZVBlcmlvZFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIk5lZ2F0aXZlUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXRJbnB1dFBlcmlvZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXRQZXJpb2RXaXRob3V0SW5wdXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV08L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiIGNsYXNzPSJSaWdodCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUGx1cyIgdHlwZT0iYnV0dG9uIiBpZD0iTW9yZUlucHV0RmllbGRzIiBuYW1lPSJNb3JlSW5wdXRGaWVsZHMiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIG9uZSByb3ciKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0QmxvY2siKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij48L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV06PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9IlRvdGFsSG91cnMiPlslIERhdGEuVG90YWwgfCBodG1sICVdPC9zcGFuPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWFkb25seSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5EZXNjcmlwdGlvbikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWFkb25seSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3RoZXJUaW1lcyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCBBYnNlbmNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgaWQ9IkxlYXZlRGF5IiBuYW1lPSJMZWF2ZURheSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gdmFjYXRpb24iKSB8IGh0bWwgJV0iIGNsYXNzPSJbJSBEYXRhLkxlYXZlRGF5SW52YWxpZCAlXSIgWyUgRGF0YS5MZWF2ZURheSAlXSAvPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJMZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBpZD0iU2ljayIgbmFtZT0iU2ljayIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXSIgY2xhc3M9IlslIERhdGEuU2lja0ludmFsaWQgJV0iIFslIERhdGEuU2ljayAlXSAvPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTaWNrIj5bJSBUcmFuc2xhdGUoIk9uIHNpY2sgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTaWNrU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBpZD0iT3ZlcnRpbWUiIG5hbWU9Ik92ZXJ0aW1lIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXSIgY2xhc3M9IlslIERhdGEuT3ZlcnRpbWVJbnZhbGlkICVdIiBbJSBEYXRhLk92ZXJ0aW1lICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iT3ZlcnRpbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDZW50ZXIgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiBuYW1lPSJJbnNlcnRXb3JraW5nVW5pdHMiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeSIgaHJlZj0iIyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07Ij5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCi8qZ2xvYmFsIFRpbWVBY2NvdW50aW5nOiB0cnVlICovCiAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuQWN0aW9uTGlzdCA9IFslIERhdGEuSlNBY3Rpb25MaXN0IHwgaHRtbCAlXTsKICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5BY3Rpb25MaXN0Q29uc3RyYWludHMgPSBbJSBEYXRhLkpTQWN0aW9uTGlzdENvbnN0cmFpbnRzIHwgaHRtbCAlXTsKICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Jbml0KHsKICAgICAgICBSZW1hcmtSZWdFeHBDb250ZW50OiAiWyUgRGF0YS5SZW1hcmtSZWdFeHAgfCBodG1sICVdIiwKICAgICAgICBMYW5ndWFnZTogewogICAgICAgICAgICBTaG93QWxsSXRlbXM6IFslIFRyYW5zbGF0ZSgiU2hvdyBhbGwgaXRlbXMiKSB8IEpTT04gJV0sCiAgICAgICAgICAgIFByb2plY3RUaXRsZTogWyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBKU09OICVdLAogICAgICAgICAgICBUYXNrVGl0bGU6IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgSlNPTiAlXQogICAgICAgIH0KICAgIH0pOwogICAgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLkJpbmRDb25maXJtYXRpb25EaWFsb2coewogICAgICAgIEVsZW1lbnRJRDogICAgICAgICAgICAgICAgICAnRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeScsCiAgICAgICAgRWxlbWVudFNlbGVjdG9yOiAgICAgICAgICAgICcjRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeScsCiAgICAgICAgRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nOiAgICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7RGVsZXRlRGlhbG9nPTE7WWVhcj1bJSBEYXRhLlllYXIgfCBodG1sICVdO01vbnRoPVslIERhdGEuTW9udGggfCBodG1sICVdO0RheT1bJSBEYXRhLkRheSB8IGh0bWwgJV0nLAogICAgICAgIENvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nOiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O1N1YmFjdGlvbj1EZWxldGU7WWVhcj1bJSBEYXRhLlllYXIgfCBodG1sICVdO01vbnRoPVslIERhdGEuTW9udGggfCBodG1sICVdO0RheT1bJSBEYXRhLkRheSB8IGh0bWwgJV0nLAogICAgICAgIERpYWxvZ1RpdGxlOiAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkRlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnkiKSB8IEpTT04gJV0sCiAgICAgICAgVHJhbnNsYXRlZFRleHQ6ICAgICAgICAgICAgIHsKICAgICAgICAgICAgWWVzOiBbJSBUcmFuc2xhdGUoIlllcyIpIHwgSlNPTiAlXSwKICAgICAgICAgICAgTm86ICBbJSBUcmFuc2xhdGUoIk5vIikgfCBKU09OICVdCiAgICAgICAgfQogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2hvd0NvbmZpcm1hdGlvbiIpICVdClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAvLyBkZWZpbmUgeWVzIGFuZCBubyBidXR0b25zCiAgICB2YXIgQnV0dG9ucyA9IFt7CiAgICAgICAgTGFiZWw6IFslIFRyYW5zbGF0ZSgiWWVzIikgfCBKU09OICVdLAogICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCiAgICAgICAgVHlwZTogIkNsb3NlIiwKICAgICAgICB9LCB7CiAgICAgICAgTGFiZWw6IFslIFRyYW5zbGF0ZSgiTm8iKSB8IEpTT04gJV0sCgogICAgICAgIC8vIGRlZmluZSB0aGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgJ05vJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbigpewoKICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG1vZHVsZSB0aGF0IGRlbGV0ZXMgdGhlIHNhdmVkIGVudHJ5IGFmdGVyIHByZXNzaW5nIHRoZSBObyBidXR0b24KICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7U3ViYWN0aW9uPURlbGV0ZTtZZWFyPVslIERhdGEuWWVhciB8IGh0bWwgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IGh0bWwgJV07RGF5PVslIERhdGEuRGF5IHwgaHRtbCAlXSc7CiAgICAgICAgfQogICAgfV07CiAgICAvLyBzaG93IHRoZSBjb25maXJtYXRpb24gZGlhbG9nIHRvIGNvbmZpcm0gdGhlIGFjdGlvbgogICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coJCgnI1slIERhdGEuQmxvY2tOYW1lIHwgaHRtbCAlXScpLCBbJSBUcmFuc2xhdGUoIkNvbmZpcm0gaW5zZXJ0IikgfCBKU09OICVdLCAnMjAlJywgJ0NlbnRlcicsIHRydWUsIEJ1dHRvbnMpOwoKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJTaG93Q29uZmlybWF0aW9uIikgJV0KCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKPHAgaWQ9IlNpY2tMZWF2ZU1lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyIpIHwgaHRtbCAlXQo8L3A+Cgo8cCBpZD0iVmFjYXRpb25NZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/IikgfCBodG1sICVdCjwvcD4KCjxwIGlkPSJPdmVydGltZU1lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8iKSB8IGh0bWwgJV0KPC9wPgoKPHAgaWQ9Ik1vcmUxNkhvdXJzTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8iKSB8IGh0bWwgJV0KPC9wPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIj4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXciKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyTGFzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ0aW1lIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKEhvdXJzKSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJPdmVydGltZSAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKHRvdGFsKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuT3ZlcnRpbWVVbnRpbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlbWFpbmluZyBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuT3ZlcnRpbWVUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnRpbWUiKSAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24gKERheXMpIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiB0YWtlbiAodG90YWwpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5MZWF2ZURheVRvdGFsIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUmVtYWluaW5nIHZhY2F0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5MZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiU2ljayBMZWF2ZSAoRGF5cykiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlNpY2sgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJTaWNrIGxlYXZlIHRha2VuICh0b3RhbCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLlNpY2tUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiT3ZlcnZpZXciKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIC0gWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBZGRpdGlvbmFsSW5mb3JtYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByZXZpb3VzIG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhckJhY2sgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aEJhY2sgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJOZXh0IG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLk1vbnRoX3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRheSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV2Vla2RheSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya2luZyBIb3VycyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IlslIERhdGEuQ2xhc3MgfCBodG1sICVdIE1hc3RlckFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGaXhlZCBEYXkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRGF0YS5BY3Rpb24gfCB1cmkgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXkgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGaXhlZCBXZWVrZGF5Ij5bJSBUcmFuc2xhdGUoRGF0YS5XZWVrZGF5X3RvX1RleHQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLkNvbW1lbnQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Xb3JraW5nSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCBSaWdodCI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIHdvcmtlZCBob3VycyIpIHwgaHRtbCAlXTo8L3N0cm9uZz4gWyUgRGF0YS5Xb3JraW5nSG91cnMgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVXNlcidzIHByb2plY3Qgb3ZlcnZpZXciKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtQcm9qZWN0U3RhdHVzU2hvdz1bJSBEYXRhLlByb2plY3RTdGF0dXNTaG93IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWyUgVHJhbnNsYXRlKERhdGEuU2hvd1Byb2plY3RzKSB8IGh0bWwgJV0pCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBOb0hvdmVyIEhpZ2hDZWxscyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAobW9udGhseSkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChMaWZldGltZSkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgcm93c3Bhbj0iWyUgRGF0YS5Sb3dTcGFuICVdIiBjbGFzcz0iUm93U3BhbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3ROb0xpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3QgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3ROb0xpbmsiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0TGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nO1N1YmFjdGlvbj1SZXBvcnRpbmdQcm9qZWN0O1Byb2plY3RJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3QgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdExpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N0cm9uZz4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uVG90YWwiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj48c3Ryb25nPlslIFRyYW5zbGF0ZSgiR3JhbmQgdG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcuTWFzdGVyQWN0aW9uJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgIHZhciAkTWFzdGVyQWN0aW9uTGluayA9ICQodGhpcykuZmluZCgnLk1hc3RlckFjdGlvbkxpbmsnKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVGltZSByZXBvcnRpbmciKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLk1vbnRoX3RvX1RleHQpIHwgaHRtbCAlXSBbJSBEYXRhLlllYXIgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJNb250aCBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyBMZWZ0IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJOZXh0IG1vbnRoIikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5bJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyICVdPC9zdHJvbmc+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJjb21wb3NlIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgICAgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iUmVwb3J0aW5nIiAvPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTW9udGhPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlllYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCIgYWNjZXNza2V5PSJnIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtYXJyb3ctY2lyY2xlLW8tcmlnaHQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcjTmF2aWdhdGlvblNlbGVjdCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwp9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIHJlcG9ydHMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBIb3Jpem9udGFsU2Nyb2xsIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZCBjbGFzcz0iVHdvUm93cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiIGNvbHNwYW49IjQiPlslIFRyYW5zbGF0ZSgiTW9udGhseSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNlbnRlciIgY29sc3Bhbj0iMiI+WyUgVHJhbnNsYXRlKCJMaWZldGltZSB0b3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiV29ya2luZyBIb3VycyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTaWNrIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIHJlbWFpbmluZyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFjdGlvblVzZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLldvcmtpbmdIb3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5MZWF2ZURheSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbFdvcmtpbmdIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsT3ZlcnRpbWUgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbExlYXZlRGF5IHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxTaWNrIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxPdmVydGltZVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxMZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlckdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0cyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLlByb2plY3RTdGF0dXNMaW5rQ2xhc3MgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIChbJSBUcmFuc2xhdGUoRGF0YS5TaG93UHJvamVjdHMpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChtb250aGx5KSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iIGRhdGEtcHJvamVjdC1pZD0iWyUgRGF0YS5Qcm9qZWN0SUQgfCBodG1sJV0iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSJbJSBEYXRhLlJvd1NwYW4gJV0iIGNsYXNzPSJSb3dTcGFuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1SZXBvcnRpbmdQcm9qZWN0O1Byb2plY3RJRD1bJSBEYXRhLlByb2plY3RJRCB8IHVyaSAlXSIgY2xhc3M9IlslIERhdGEuQ2xhc3MgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvamVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjwvc3Ryb25nPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0RGVzY3JpcHRpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25Ub3RhbCIpICVdClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb24iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0R3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJHcmFuZCB0b3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdEdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3RUYWJsZSIpICVdCgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKJCgnLk1hc3RlckFjdGlvbicpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICB2YXIgJE1hc3RlckFjdGlvbkxpbmsgPSAkKHRoaXMpLnBhcmVudHMoKS5maW5kKCcuTWFzdGVyQWN0aW9uTGluaycgKyAkKHRoaXMpLmF0dHIoJ2RhdGEtcHJvamVjdC1pZCcpKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7CiQoJy5NYXN0ZXJBY3Rpb25Vc2VyJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgIHZhciAkTWFzdGVyQWN0aW9uTGluayA9ICQodGhpcykuZmluZCgnLk1hc3RlckFjdGlvbkxpbmsnKTsKICAgIC8vIG9ubHkgYWN0IGlmIHRoZSBsaW5rIHdhcyBub3QgY2xpY2tlZCBkaXJlY3RseQogICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJE1hc3RlckFjdGlvbkxpbmsuYXR0cignaHJlZicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KfSk7CgovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnQiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiSGludCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KWyUgSUYgRGF0YS5TaG93T25seUFjdGl2ZVVzZXJzID09ICcxJyAlXQogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ0dyb3VwPVRpbWVBY2NvdW50aW5nO1N5c0NvbmZpZ1N1Ykdyb3VwPUZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291dG5pbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0Ij5TaG93T25seUFjdGl2ZVVzZXJzPC9hPgogICAgICAgICAgICAgICAgPC9wPgpbJSBFTFNFICVdCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluU3lzQ29uZmlnO1N1YmFjdGlvbj1FZGl0O1N5c0NvbmZpZ0dyb3VwPVRpbWVBY2NvdW50aW5nO1N5c0NvbmZpZ1N1Ykdyb3VwPUZyb250ZW5kOjpBZ2VudDo6VGltZUFjY291dG5pbmc6OlZpZXdSZXBvcnRpbmdQcm9qZWN0Ij5TaG93T25seUFjdGl2ZVVzZXJzPC9hPgogICAgICAgICAgICAgICAgPC9wPgpbJSBFTkQgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCByZXBvcnQiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV08L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyVG90YWwiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyVG90YWxBbGwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsQWxsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyVG90YWxBbGwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpc3RvcnkiKSB8IGh0bWwgJV06IFslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVXNlciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5EYXRlIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJlbWFyayB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5QZXJpb2QgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhpc3RvcnlUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5IaXN0b3J5VG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIkhpc3RvcnlUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkxpc3RQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQWRkUHJvamVjdCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBwcm9qZWN0IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkUHJvamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25TZXR0aW5nT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uU2V0dGluZ092ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uTGlzdFByb2plY3QiKSAlXQogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVByb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZFByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWRkIFByb2plY3QiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyQWRkUHJvamVjdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckVkaXRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkVkaXQgUHJvamVjdCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJFZGl0UHJvamVjdCIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBuYW1lPSJQcm9qZWN0VXBkYXRlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb24gfCBodG1sICVdQWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJRCIgdmFsdWU9IlslIERhdGEuSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUHJvamVjdCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQcm9qZWN0IiBpZD0iUHJvamVjdCIgdmFsdWU9IlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLlByb2plY3RJbnZhbGlkIHwgaHRtbCAlXSIgbWF4bGVuZ3RoPSI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdEVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0TWlzc2luZ1ZhbHVlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REdXBsaWNhdGVOYW1lIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REdXBsaWNhdGVOYW1lIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQcm9qZWN0RGVzY3JpcHRpb24iPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlByb2plY3REZXNjcmlwdGlvbiIgaWQ9IlByb2plY3REZXNjcmlwdGlvbiIgdmFsdWU9IlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjE1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJvamVjdFN0YXR1cyI+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJTdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVQcm9qZWN0IikgJV0KICAgIDwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UHJvamVjdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXR0aW5nIikgJV0KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDE+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0U2V0dGluZyIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFByb2plY3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgcHJvamVjdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRUYXNrIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFRhc2siLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCB0YXNrIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCB0YXNrIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkVGFzayIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZFVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFVzZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3VXNlck9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiTmV3IHVzZXIiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS11c2VyIj48L2k+WyUgVHJhbnNsYXRlKCJOZXcgdXNlciIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlld1NldHRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIHNldHRpbmdzIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXdTZXR0aW5nIikgJV0KCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3RTZXR0aW5nIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RGaWx0ZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyUHJvamVjdHMiPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBQcm9qZWN0cyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJGaWx0ZXJQcm9qZWN0cyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9Ikp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIgbmFtZT0iRmlsdGVyUHJvamVjdHMiIHZhbHVlPSIiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgUHJvamVjdHMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdEZpbHRlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrRmlsdGVyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxsYWJlbCBmb3I9IkZpbHRlclRhc2tzIj5bJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgVGFza3MiKSB8IGh0bWwgJV08L2xhYmVsPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRmlsdGVyVGFza3MiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJKdXN0IHN0YXJ0IHR5cGluZyB0byBmaWx0ZXIuLi4iIG5hbWU9IkZpbHRlclRhc2tzIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFRhc2tzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRhc2tGaWx0ZXIiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlckZpbHRlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48bGFiZWwgZm9yPSJGaWx0ZXJVc2VycyI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFVzZXJzIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlclVzZXJzIiBjbGFzcz0iRmlsdGVyQm94IiBwbGFjZWhvbGRlcj0iSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIiBuYW1lPSJGaWx0ZXJVc2VycyIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBVc2VycyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyRmlsdGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJlZmVyZW5jZSIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVmZXJlbmNlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhIFwiKlwiLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSZWZlcmVuY2UiKSAlXQoKICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvamVjdCBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iUHJvamVjdHMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlN0YXR1cyA9PSAnaW52YWxpZCclXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRQcm9qZWN0O0lEPVslIERhdGEuUHJvamVjdElEIHwgdXJpICVdIj5bJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgdGl0bGU9IlslIERhdGEuUHJvamVjdERlc2NyaXB0aW9uIHwgaHRtbCAlXSI+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gfCB0cnVuY2F0ZSg0MCkgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5TdGF0dXMpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFByb2plY3RSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0VGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdCIpICVdCgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgQ29yZS5VSS5UYWJsZS5Jbml0VGFibGVGaWx0ZXIoJCgnI0ZpbHRlclByb2plY3RzJyksICQoJyNQcm9qZWN0cycpKTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFNldHRpbmciKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVGFzayBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9TZXR0aW5nRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9TZXR0aW5nRGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iVGFza3MiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuU3RhdHVzID09ICdpbnZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFRhc2s7QWN0aW9uSUQ9WyUgRGF0YS5BY3Rpb25JRCB8IHVyaSAlXSI+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuU3RhdHVzKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFNldHRpbmciKSAlXQoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQoJyNGaWx0ZXJUYXNrcycpLCAkKCcjVGFza3MnKSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVUYXNrIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZGRUYXNrIikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBUYXNrIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFRhc2siKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0VGFzayIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFRhc2sgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFRhc2siKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iVGFza1VwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uSUQiIHZhbHVlPSJbJSBEYXRhLkFjdGlvbklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRhc2siPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVGFzayIgaWQ9IlRhc2siIHZhbHVlPSJbJSBEYXRhLlRhc2sgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UYXNrSW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRhc2tFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlRhc2tNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGFza1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGFza01pc3NpbmdWYWx1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUYXNrU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJUYXNrRHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUYXNrU3RhdHVzIj5bJSBUcmFuc2xhdGUoIlN0YXR1cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXR1c09wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IlN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1VwZGF0ZVRhc2siKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlVzZXIgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vVXNlckRhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlVzZXJzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDYWxlbmRhciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFVzZXJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1FZGl0VXNlcjtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPlslIERhdGEuVXNlciB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkNvbW1lbnQgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLkNhbGVuZGFyKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRVc2VyUm93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0VXNlclRhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFVzZXIiKSAlXQoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgIENvcmUuVUkuVGFibGUuSW5pdFRhYmxlRmlsdGVyKCQoJyNGaWx0ZXJVc2VycycpLCAkKCcjVXNlcnMnKSk7CiAgICBDb3JlLlVJLkluaXRXaWRnZXRBY3Rpb25Ub2dnbGUoKTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVVzZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZFVzZXIiKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTmV3IFVzZXIgU2V0dGluZ3MiKSB8IGh0bWwgJV06IFslIERhdGEuVXNlckZpcnN0bmFtZSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyTGFzdG5hbWUgfCBodG1sICVdIChbJSBEYXRhLlVzZXJMb2dpbiB8IGh0bWwgJV0pPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0VXNlciIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFVzZXIgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFVzZXIiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iVXNlclVwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5TdWJhY3Rpb24gfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVzZXJJRCIgdmFsdWU9IlslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgLz4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOYW1lIj5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPlslIERhdGEuVXNlckZpcnN0bmFtZSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyTGFzdG5hbWUgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5hbWUiPlslIFRyYW5zbGF0ZSgiVXNlcm5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPlslIERhdGEuVXNlckxvZ2luIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJEZXNjcmlwdGlvbiI+WyUgVHJhbnNsYXRlKCJDb21tZW50cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz0iMSIgbmFtZT0iRGVzY3JpcHRpb24iIGlkPSJEZXNjcmlwdGlvbiIgY29scz0iNDAiPlslIERhdGEuRGVzY3JpcHRpb24gJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJTaG93T3ZlcnRpbWUiIGlkPSJTaG93T3ZlcnRpbWUiIHZhbHVlPSIxIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IE92ZXJ0aW1lIikgfCBodG1sICVdIiBbJSBEYXRhLlNob3dPdmVydGltZSAlXSAvPlslIFRyYW5zbGF0ZSgiU2hvdyBPdmVydGltZSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJDcmVhdGVQcm9qZWN0IiBpZD0iQ3JlYXRlUHJvamVjdCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHByb2plY3QgY3JlYXRpb24iKSB8IGh0bWwgJV0iIFslIERhdGEuQ3JlYXRlUHJvamVjdCAlXSAvPlslIFRyYW5zbGF0ZSgiQWxsb3cgcHJvamVjdCBjcmVhdGlvbiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2FsZW5kYXIiPlslIFRyYW5zbGF0ZSgiQ2FsZW5kYXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DYWxlbmRhck9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGVyaW9kIEJlZ2luIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQZXJpb2QgRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJEYXlzIG9mIFZhY2F0aW9uIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyBwZXIgV2VlayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQXV0aG9yaXplZCBPdmVydGltZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGVyaW9kT3ZlcnZpZXdSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJEYXRlU3RhcnRbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuRGF0ZVN0YXJ0IHwgaHRtbCAlXSIgY2xhc3M9IkRhdGVwaWNrZXJFbGVtZW50IFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRGF0ZVN0YXJ0SW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN0YXJ0IERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVTdGFydC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVTdGFydEludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlU3RhcnQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlU3RhcnRJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZVN0YXJ0TWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVFbmRbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuRGF0ZUVuZCB8IGh0bWwgJV0iIGNsYXNzPSJEYXRlcGlja2VyRWxlbWVudCBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkRhdGVFbmRJbnZhbGlkIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRW5kIERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgZGF0ZSEiKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kSW52YWxpZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVFbmRNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJEYXRlRW5kLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRNaXNzaW5nVmFsdWUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJMZWF2ZURheXMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJMZWF2ZURheXNbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuTGVhdmVEYXlzIHwgaHRtbCAlXSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuTGVhdmVEYXlzSW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkxlYXZlIERheXMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iV2Vla2x5SG91cnMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJXZWVrbHlIb3Vyc1tbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5XZWVrbHlIb3VycyB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIldlZWtseSBIb3VycyIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJPdmVydGltZS1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9Ik92ZXJ0aW1lW1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLk92ZXJ0aW1lIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUGVyaW9kU3RhdHVzT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1JvdyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIHRpbWUgcGVyaW9kcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBlcmlvZE92ZXJ2aWV3Um93Tm9EYXRhIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXMTAwcGMgUmlnaHQgU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXSIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdIiBuYW1lPSJBZGRQZXJpb2QiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFBsdXMiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPiBbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iIG5hbWU9IlN1Ym1pdFVzZXJEYXRhIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSI+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwovKmdsb2JhbCBUaW1lQWNjb3VudGluZzogdHJ1ZSAqLwogICAgVGltZUFjY291bnRpbmcuQWdlbnQuRGF0ZXBpY2tlci5Jbml0KCQoJy5EYXRlcGlja2VyRWxlbWVudCcpLCB7CiAgICAgICAgRGF0ZUluRnV0dXJlOiBmYWxzZSwKICAgICAgICBXZWVrRGF5U3RhcnQ6IDEKICAgIH0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlVXNlciIpICVdCiAgICA8L2Rpdj4KPC9kaXY+CgpbJSBSZW5kZXJCbG9ja0VuZCgiU2V0dGluZyIpICVdCg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiVmlldyBUaW1lIFJlY29yZCIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAtIFslIFRyYW5zbGF0ZSgiVmlldyBvZiAiKSB8IGh0bWwgJV0gWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlciIpICVdCiAgICA8L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTW9udGhTZWxlY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUHJldmlvdXMgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhckJhY2sgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aEJhY2sgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5QmFjayB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBkYXkiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyTmV4dCB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoTmV4dCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXlOZXh0IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuWWVhciB8IGh0bWwgJV0tWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0tWyUgRGF0YS5EYXkgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJEYXRlU2VsZWN0aW9uIiBjbGFzcz0iVmFsaWRhdGUiIGlkPSJEYXRlU2VsZWN0aW9uRm9ybSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJWaWV3IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVzZXJJRCIgICAgdmFsdWU9IlslIERhdGEuVXNlcklEIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRhdGVTZWxlY3Rpb24gJV0KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJOYXZpZ2F0aW9uU2VsZWN0IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAkKCcjRGF0ZVNlbGVjdGlvbkZvcm0nKS5zdWJtaXQoKTsKfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSIpIHwgaHRtbCAlXTogWyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheV90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5EYXRlIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIERhdGFUYWJsZU5vSGlnaGxpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlByb2plY3QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhcnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5Qcm9qZWN0IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlJlbWFyayB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TdGFydFRpbWUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuRW5kVGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5QZXJpb2QgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV06PC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgoKICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRvdGFsIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjYiPlslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kIikgJV0KCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iLTIiIGlkPSJMZWF2ZURheSIgbmFtZT0iTGVhdmVEYXkiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdIiBbJSBEYXRhLkxlYXZlRGF5ICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGVhdmVEYXkiPlslIFRyYW5zbGF0ZSgiT24gdmFjYXRpb24iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ii0xIiBpZD0iU2ljayIgbmFtZT0iU2ljayIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXSIgWyUgRGF0YS5TaWNrICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSItMyIgaWQ9Ik92ZXJ0aW1lIiBuYW1lPSJPdmVydGltZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV0iIFslIERhdGEuT3ZlcnRpbWUgJV0gZGlzYWJsZWQgLz4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJPdmVydGltZSI+WyUgVHJhbnNsYXRlKCJPbiBvdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk90aGVyVGltZXMiKSAlXQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVmFjYXRpb24iKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWNhdGlvbiB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlZhY2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKQogICAgKTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICBteSAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwogICAgaWYgKCAkVXNlcnsgJFNlbGYtPntVc2VySUR9IH0gKSB7CiAgICAgICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHJlZGlyZWN0IGlmIGluY29tcGxldGUgd29ya2luZyBkYXkgYXJlIG91dCBvZiByYW5nZQogICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c3tXYXJuaW5nfSApIHsKCiAgICAgICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPk5vdGlmeSgKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJyc7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBVc2VySUQgcGFyYW0KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGFjdGlvbiwgZ3JvdXAsIGxhYmVsLCBpbWFnZSBhbmQgcHJpbwogICAgbXkgJEFjdGlvbiA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CiAgICBteSAkR3JvdXAgID0gJ3RpbWVfYWNjb3VudGluZyc7CgogICAgIyBkbyBub3Qgc2hvdyBpY29uIGlmIGZyb250ZW5kIG1vZHVsZSBpcyBub3QgcmVnaXN0ZXJlZAogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgZ2V0IGdyb3VwIG9iamVjdAogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgIyBnZXQgdGhlIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJEdyb3VwLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzLCB3aGVuIHRoZSBncm91cCBpcyBub3QgZm91bmQKICAgIHJldHVybiBpZiAhJEdyb3VwSUQ7CgogICAgIyBnZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcHJpdmlsZWdlCiAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgKTsKCiAgICAjIGRlbnkgYWNjZXNzIGlmIHRoZSBhZ2VudCBkb2Vzbid0IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHR5cGUgaW4gdGhlIGFwcHJvcHJpYXRlIGdyb3VwCiAgICByZXR1cm4gaWYgISRHcm91cHN7JEdyb3VwSUR9OwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgbXkgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgICMgZGVueSBhY2Nlc3MsIGlmIHVzZXIgaGFzIG5vIHZhbGlkIHBlcmlvZAogICAgcmV0dXJuIGlmICEkVXNlckN1cnJlbnRQZXJpb2R7ICRTZWxmLT57VXNlcklEfSB9OwoKICAgICMgZ2V0IHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMKICAgIG15ICRDb3VudCAgICAgICAgICAgICAgICAgPSAwOwogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBZRUFSSUQ6CiAgICBmb3IgbXkgJFllYXJJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9IH0gKSB7CgogICAgICAgIG5leHQgWUVBUklEIGlmICEkWWVhcklEOwogICAgICAgIG5leHQgWUVBUklEIGlmICEkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9OwogICAgICAgIG5leHQgWUVBUklEIGlmIHJlZiAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9eyRZZWFySUR9IG5lICdIQVNIJzsKCiAgICAgICAgIyBleHRyYWN0IHllYXIKICAgICAgICBteSAlWWVhciA9ICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfTsKCiAgICAgICAgTU9OVEg6CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICVZZWFyICkgewoKICAgICAgICAgICAgbmV4dCBNT05USCBpZiAhJE1vbnRoSUQ7CiAgICAgICAgICAgIG5leHQgTU9OVEggaWYgISRZZWFyeyRNb250aElEfTsKICAgICAgICAgICAgbmV4dCBNT05USCBpZiByZWYgJFllYXJ7JE1vbnRoSUR9IG5lICdIQVNIJzsKCiAgICAgICAgICAgICMgZXh0cmFjdCBtb250aAogICAgICAgICAgICBteSAlTW9udGggPSAleyAkWWVhcnskTW9udGhJRH0gfTsKCiAgICAgICAgICAgICRDb3VudCArPSBzY2FsYXIga2V5cyAlTW9udGg7CiAgICAgICAgfQogICAgfQoKICAgICMgcmVtb3ZlIGN1cnJlbnQgZGF5IGJlY2F1c2UgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gc2hvdyB0aGUgY3VycmVudCBkYXkgYXMgaW5jb21wbGV0ZQogICAgaWYgKCAkQ291bnQgPiAwICkgewogICAgICAgICRDb3VudC0tOwogICAgfQoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBnZXQgVG9vbEJhciBvYmplY3QgcGFyYW1ldGVycwogICAgbXkgJENsYXNzID0gJFBhcmFte0NvbmZpZ30tPntDc3NDbGFzc307CiAgICBteSAkVGV4dCAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0luY29tcGxldGUgd29ya2luZyBkYXlzJyk7CiAgICBteSAkVVJMICAgPSAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9OwogICAgbXkgJEljb24gID0gJFBhcmFte0NvbmZpZ30tPntJY29ufTsKCiAgICByZXR1cm4gKCkgaWYgISRDb3VudDsKCiAgICBteSAlUmV0dXJuID0gKAogICAgICAgIDEwMDA4MTAgPT4gewogICAgICAgICAgICBCbG9jayAgICAgICA9PiAnVG9vbEJhckl0ZW0nLAogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAkVGV4dCwKICAgICAgICAgICAgQ291bnQgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAkQ2xhc3MsCiAgICAgICAgICAgIEljb24gICAgICAgID0+ICRJY29uLAogICAgICAgICAgICBMaW5rICAgICAgICA9PiAkVVJMIC4gJ0FjdGlvbj0nIC4gJEFjdGlvbiwKICAgICAgICAgICAgQWNjZXNzS2V5ICAgPT4gJycsCiAgICAgICAgICAgIH0KICAgICk7CgogICAgcmV0dXJuICVSZXR1cm47Cn0KCjE7Cg==
Iy0tCiMgS2VybmVsL1N5c3RlbS9UaW1lQWNjb3VudGluZy5wbSAtIGFsbCB0aW1lIGFjY291bnRpbmcgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRGF0ZTo6UGNhbGMgcXcoVG9kYXkgRGF5c19pbl9Nb250aCBEYXlfb2ZfV2VlayBjaGVja19kYXRlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nIC0gdGltZSBhY2NvdW50aW5nIGxpYgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgdGltZSBhY2NvdW50aW5nIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gVXNlckN1cnJlbnRQZXJpb2RHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgY3VycmVudCBwZXJpb2QgZGF0YSBvZiB0aGUgc3BlY2lmaWVkIHVzZXIKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICcyMDA1JywKICAgICAgICBNb250aCA9PiAnMTInLAogICAgICAgIERheSAgID0+ICcyNCcsCiAgICApOwoKVGhlIHJldHVybmVkIGhhc2ggY29udGFpbnMgdGhlIGZvbGxvd2luZyBlbGVtZW50czoKCiAgICAlVXNlckRhdGEgPSAoCiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEyMywKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMDUtMTItMjQnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAwNS0xMi0yNCcsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+IDQwLjQsCiAgICAgICAgICAgIExlYXZlRGF5cyAgID0+IDEyLAogICAgICAgICAgICBPdmVyVGltZSAgICA9PiAzNCwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBVc2VyQ3VycmVudFBlcmlvZEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWRQYXJhbSAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWRQYXJhbX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJVc2VyQ3VycmVudFBlcmlvZEdldDogTmVlZCAkTmVlZGVkUGFyYW0hIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBidWlsZCBkYXRlIHN0cmluZyBmb3IgZ2l2ZW4gcGFyYW1zCiAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKSAuICcgMDA6MDA6MDAnOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIGlmICggJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9ICkgewoKICAgICAgICByZXR1cm4gJXsgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9IH07CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgZGF0ZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgZGF0ZV9lbmQgID49ID8KICAgICAgICAgICAgICAgIEFORCBzdGF0dXMgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCREYXRlLCBcJERhdGUsIFwxLCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRVc2VyUmVmID0gewogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQZXJpb2QgICAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICksCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKSwKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJvd1s0XSwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJFJvd1s2XSwKICAgICAgICB9OwogICAgICAgICREYXRheyAkUm93WzBdIH0gPSAkVXNlclJlZjsKICAgIH0KCiAgICAjIGNoZWNrIGZvciB2YWxpZCB1c2VyIGRhdGEKICAgIHJldHVybiBpZiAhJURhdGE7CgogICAgIyBzdG9yZSB1c2VyIGRhdGEgaW4gY2FjaGUKICAgICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSA9IFwlRGF0YTsKCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFVzZXJSZXBvcnRpbmcoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBsZWF2ZSBkYXlzLCBvdmVydGltZXMsCndvcmtpbmcgaG91cnMgZXRjLiBvZiBhbGwgdXNlcnMKCiAgICBteSAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggPT4gJzEyJywKICAgICAgICBEYXkgICA9PiAnMTInLCAgICAgICMgT3B0aW9uYWwKICAgICk7Cgo9Y3V0CgpzdWIgVXNlclJlcG9ydGluZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGxvZyBvYmplY3QKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZFBhcmFtIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZFBhcmFtfSAmJiAkTmVlZGVkUGFyYW0gbmUgJ0RheScgKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVXNlclJlcG9ydGluZzogTmVlZCAkTmVlZGVkUGFyYW0hIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHZhbGlkIGRhdGUgdmFsdWVzCiAgICByZXR1cm4gaWYgIWNoZWNrX2RhdGUoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gfHwgMSApOwoKICAgICMgZ2V0IGRheXMgb2YgbW9udGggaWYgbm90IHByb3ZpZGVkCiAgICAkUGFyYW17RGF5fSB8fD0gRGF5c19pbl9Nb250aCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9ICk7CgogICAgbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFNlbGYtPlVzZXJDdXJyZW50UGVyaW9kR2V0KCVQYXJhbSk7CiAgICBteSAkWWVhclN0YXJ0ICAgICAgICAgPSAxOTcwOwogICAgbXkgJE1vbnRoU3RhcnQgICAgICAgID0gMTsKICAgIG15ICREYXlTdGFydCAgICAgICAgICA9IDE7CiAgICBteSAkWWVhckVuZCAgICAgICAgICAgPSAkUGFyYW17WWVhcn07CiAgICBteSAkTW9udGhFbmQgICAgICAgICAgPSAkUGFyYW17TW9udGh9OwogICAgbXkgJERheUVuZCAgICAgICAgICAgID0gJFBhcmFte0RheX07CgogICAgbXkgJURhdGE7CgogICAgVVNFUklEOgogICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJVVzZXJDdXJyZW50UGVyaW9kICkgewoKICAgICAgICBpZiAoICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9ID1+IG17IFxBIChcZHs0fSktKFxkezJ9KS0oXGR7Mn0pIH14bXMgKSB7CiAgICAgICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgICAgICREYXlTdGFydCAgID0gJDM7CiAgICAgICAgfQoKICAgICAgICBpZiAoICFjaGVja19kYXRlKCAkWWVhclN0YXJ0LCAkTW9udGhTdGFydCwgJERheVN0YXJ0ICkgKSB7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyUmVwb3J0aW5nOiBJbnZhbGlkIHN0YXJ0IGRhdGUgZm9yIHVzZXIgJwogICAgICAgICAgICAgICAgICAgIC4gIiRVc2VySUQ6ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgVVNFUklEOwogICAgICAgIH0KCiAgICAgICAgbXkgJUN1cnJlbnRVc2VyRGF0YSA9ICgKICAgICAgICAgICAgTGVhdmVEYXRlICAgICAgICA9PiAwLAogICAgICAgICAgICBTaWNrICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGFyZ2V0U3RhdGUgICAgICA9PiAwLAogICAgICAgICAgICBMZWF2ZURheVRvdGFsICAgID0+IDAsCiAgICAgICAgICAgIFNpY2tUb3RhbCAgICAgICAgPT4gMCwKICAgICAgICAgICAgU2lja1RvdGFsICAgICAgICA9PiAwLAogICAgICAgICAgICBUYXJnZXRTdGF0ZVRvdGFsID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENhbGVuZGFyID0geyAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKSB9LT57Q2FsZW5kYXJ9OwoKICAgICAgICBZRUFSOgogICAgICAgIGZvciBteSAkWWVhciAoICRZZWFyU3RhcnQgLi4gJFllYXJFbmQgKSB7CgogICAgICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICAgICAgTU9OVEg6CiAgICAgICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0KICAgICAgICAgICAgICAgICAgICAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydAogICAgICAgICAgICAgICAgICAgID8gJERheVN0YXJ0CiAgICAgICAgICAgICAgICAgICAgOiAxCiAgICAgICAgICAgICAgICAgICAgOwoKICAgICAgICAgICAgICAgIG15ICREYXlFbmRQb2ludCA9CiAgICAgICAgICAgICAgICAgICAgJFllYXIgPT0gJFllYXJFbmQgJiYgJE1vbnRoID09ICRNb250aEVuZAogICAgICAgICAgICAgICAgICAgID8gJERheUVuZAogICAgICAgICAgICAgICAgICAgIDogRGF5c19pbl9Nb250aCggJFllYXIsICRNb250aCApCiAgICAgICAgICAgICAgICAgICAgOwoKICAgICAgICAgICAgICAgIERBWToKICAgICAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkU2VsZi0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSAkTGVhdmVEYXkgICAgPSAwOwogICAgICAgICAgICAgICAgICAgIG15ICRTaWNrICAgICAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJE92ZXJ0aW1lICAgID0gMDsKICAgICAgICAgICAgICAgICAgICBteSAkVGFyZ2V0U3RhdGUgPSAwOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRXb3JraW5nVW5pdHtMZWF2ZURheX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJExlYXZlRGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkV29ya2luZ1VuaXR7U2lja30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7U2lja1RvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkU2ljayA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFdvcmtpbmdVbml0e092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkT3ZlcnRpbWUgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCAgICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIG15ICRXZWVrZGF5ID0gRGF5X29mX1dlZWsoICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRXZWVrZGF5ICE9IDYKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJFdlZWtkYXkgIT0gNwogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgJiYgISRTaWNrCiAgICAgICAgICAgICAgICAgICAgICAgICYmICEkTGVhdmVEYXkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZVRvdGFsfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e1dlZWtseUhvdXJzfSAvIDU7CiAgICAgICAgICAgICAgICAgICAgICAgICRUYXJnZXRTdGF0ZSA9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtXZWVrbHlIb3Vyc30gLyA1OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTW9udGggPT0gJE1vbnRoRW5kICYmICRZZWFyID09ICRZZWFyRW5kICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlfSAgKz0gJFRhcmdldFN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1dvcmtpbmdIb3Vyc30gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtMZWF2ZURheX0gICAgICs9ICRMZWF2ZURheTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtTaWNrfSAgICAgICAgICs9ICRTaWNrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZX0gICAgICA9ICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzfSAtICRDdXJyZW50VXNlckRhdGF7VGFyZ2V0U3RhdGV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0gPSAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17T3ZlcnRpbWV9CiAgICAgICAgICAgICsgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0KICAgICAgICAgICAgLSAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlVG90YWx9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVVbnRpbH0gICAgID0gJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSAtICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlSZW1haW5pbmd9ID0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e0xlYXZlRGF5c30gLSAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5VG90YWx9OwoKICAgICAgICAkRGF0YXskVXNlcklEfSA9IFwlQ3VycmVudFVzZXJEYXRhOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gUHJvamVjdFNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggYWxsIHRoZSBwcm9qZWN0cycgZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnIHx8ICdpbnZhbGlkJywgb3B0aW9uYWwgZGVmYXVsdCB2YWxpZCAmJiBpbnZhbGlkCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRXaGVyZSA9ICcnOwogICAgaWYgKCAkUGFyYW17U3RhdHVzfSApIHsKICAgICAgICAkV2hlcmUgPSAnIFdIRVJFIHN0YXR1cyA9ICc7CiAgICAgICAgJFdoZXJlIC49ICRQYXJhbXtTdGF0dXN9IGVxICdpbnZhbGlkJyA/ICInMCciIDogIicxJyI7CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiCiAgICAgICAgICAgIFNFTEVDVCBpZCwgcHJvamVjdCwgZGVzY3JpcHRpb24sIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICRXaGVyZSIsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJElEID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtQcm9qZWN0fXskSUR9ICAgICAgICAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRhe1Byb2plY3REZXNjcmlwdGlvbn17JElEfSA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7UHJvamVjdFN0YXR1c317JElEfSAgICAgID0gJFJvd1szXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFByb2plY3RHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgcmVxdWVzdGVkIHByb2plY3QgZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggSUQgPT4gMiApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJ2ludGVybmFsJywKICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoIFByb2plY3QgPT4gJ2ludGVybmFsJyApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ2Rlc2NyaXB0aW9uJywKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17SUR9ICYmICEkUGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIElEIG9yIHByb2plY3QgbmFtZSEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVQcm9qZWN0OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIElECiAgICBpZiAoICRQYXJhbXtJRH0gKSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgcHJvamVjdCwgZGVzY3JpcHRpb24sIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SUR9IF0sCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICVQcm9qZWN0ID0gKAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtJRH0sCiAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJERhdGFbMF0sCiAgICAgICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJERhdGFbMV0sCiAgICAgICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gJERhdGFbMl0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgbG9vayBmb3IgdGhlIHRhc2sgZGF0YSB3aXRoIHRoZSB0YXNrIG5hbWUKICAgIGVsc2UgewoKICAgICAgICAjIFNRTAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIGlkLCBkZXNjcmlwdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICAgICBXSEVSRSBwcm9qZWN0ID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3R9IF0sCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICVQcm9qZWN0ID0gKAogICAgICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVQcm9qZWN0Owp9Cgo9aXRlbSBQcm9qZWN0U2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBwcm9qZWN0IGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsICMgb3B0aW9uYWwKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSB8fCAwLCAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zIElEIG9mIGNyZWF0ZWQgcHJvamVjdAoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtQcm9qZWN0fSB8fD0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lJyk7CiAgICAkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSB8fD0gJyc7CgogICAgaWYgKCAkUGFyYW17UHJvamVjdFN0YXR1c30gbmUgJzAnICYmICRQYXJhbXtQcm9qZWN0U3RhdHVzfSBuZSAnMScgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3RTdGF0dXMnKTsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgaW5zZXJ0IHByb2plY3QgcmVjb3JkCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3Byb2plY3QgKHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMpCiAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30gXSwKICAgICk7CgogICAgIyBnZXQgaWQgb2YgbmV3bHkgY3JlYXRlZCBwcm9qZWN0IHJlY29yZAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgV0hFUkUgcHJvamVjdCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtQcm9qZWN0fSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRQcm9qZWN0SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUHJvamVjdElEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJFByb2plY3RJRDsKfQoKPWl0ZW0gUHJvamVjdFNldHRpbmdzVXBkYXRlKCkKCnVwZGF0ZXMgYSBwcm9qZWN0CgogICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSgKICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIFByb2plY3QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICBTRVQgcHJvamVjdCA9ID8sIGRlc2NyaXB0aW9uID0gPywgc3RhdHVzID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30sIFwkUGFyYW17SUR9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBBY3Rpb25TZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIGFsbCB0aGUgYWN0aW9ucyBzZXR0aW5ncwoKICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKPWN1dAoKc3ViIEFjdGlvblNldHRpbmdzR2V0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkLCBhY3Rpb24sIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH17QWN0aW9ufSAgICAgICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtBY3Rpb25TdGF0dXN9ID0gJFJvd1syXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIEFjdGlvbkdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgYWN0aW9uICh0YXNrKSBkYXRhCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggSUQgPT4gMiApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBBY3Rpb24gICAgICAgPT4gJ015IHRhc2snLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIEFjdGlvbiA9PiAnTXkgdGFzaycgKTsKClRoaXMgcmV0dXJucyBzb21ldGhpbmcgbGlrZToKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QgPSAoCiAgICAgICAgSUQgICAgICAgICAgID0+IDIsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17SUR9ICYmICEkUGFyYW17QWN0aW9ufSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgQWN0aW9uIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVRhc2s7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBhY3Rpb24sIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVRhc2sgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIHN0YXR1cwogICAgICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgICAgICBXSEVSRSBhY3Rpb24gPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlVGFzayA9ICgKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgICAgIElEICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVUYXNrOwp9Cgo9aXRlbSBBY3Rpb25TZXR0aW5nc0luc2VydCgpCgppbnNlcnRzIGEgbmV3IGFjdGlvbiBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnbWVldGluZycsICAgIyBvcHRpb25hbAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxIHx8IDAsICAgICAgIyBvcHRpb25hbAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtBY3Rpb259IHx8PSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uTmFtZScpIHx8ICcnOwogICAgaWYgKCAkUGFyYW17QWN0aW9uU3RhdHVzfSBuZSAnMCcgJiYgJFBhcmFte0FjdGlvblN0YXR1c30gbmUgJzEnICkgewogICAgICAgICRQYXJhbXtBY3Rpb25TdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cycpOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfYWN0aW9uIChhY3Rpb24sIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSwgXCRQYXJhbXtBY3Rpb25TdGF0dXN9LCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQWN0aW9uU2V0dGluZ3NVcGRhdGUoKQoKdXBkYXRlcyBhbiBhY3Rpb24gKHRhc2spCgogICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgICAgIEFjdGlvbklEICAgICA9PiAxMjMsCiAgICAgICAgQWN0aW9uICAgICAgID0+ICdpbnRlcm5hbCcsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIEFjdGlvblNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhBY3Rpb25JRCBBY3Rpb24pKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfYWN0aW9uCiAgICAgICAgICAgIFNFVCBhY3Rpb24gPSA/LCBzdGF0dXMgPSA/CiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17QWN0aW9ufSwgXCRQYXJhbXtBY3Rpb25TdGF0dXN9LCBcJFBhcmFte0FjdGlvbklEfQogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBVc2VyTGlzdCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2YgYWxsIHVzZXJzCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKPWN1dAoKc3ViIFVzZXJMaXN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBkZXNjcmlwdGlvbiwgc2hvd19vdmVydGltZSwgY3JlYXRlX3Byb2plY3QsIGNhbGVuZGFyCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzBdIH17VXNlcklEfSAgICAgICAgPSAkUm93WzBdOwogICAgICAgICREYXRheyAkUm93WzBdIH17RGVzY3JpcHRpb259ICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17U2hvd092ZXJ0aW1lfSAgPSAkUm93WzJdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q3JlYXRlUHJvamVjdH0gPSAkUm93WzNdOwogICAgICAgICREYXRheyAkUm93WzBdIH17Q2FsZW5kYXJ9ICAgICAgPSAkUm93WzRdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gVXNlckdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2Ygb25lIHVzZXIKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+IDE1LAogICAgKTsKCj1jdXQKCnN1YiBVc2VyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgZGF0YQogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyR2V0OiBOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGRlc2NyaXB0aW9uLCBzaG93X292ZXJ0aW1lLCBjcmVhdGVfcHJvamVjdCwgY2FsZW5kYXIKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcgogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe1VzZXJJRH0gICAgICAgID0gJFBhcmFte1VzZXJJRH07CiAgICAgICAgJERhdGF7RGVzY3JpcHRpb259ICAgPSAkUm93WzBdOwogICAgICAgICREYXRhe1Nob3dPdmVydGltZX0gID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtDcmVhdGVQcm9qZWN0fSA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7Q2FsZW5kYXJ9ICAgICAgPSAkUm93WzNdOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGNvbXBsZXRlIHVzZXIgcGVyaW9kIGRhdGEgZm9yIGFsbCB1c2VycwoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzR2V0KCk7CgpyZXR1cm5zOgogICAgJVVzZXJEYXRhID0gKAogICAgICAgIDMgPT4gewogICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIyMDE1LTEyLTMxIiwKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIyMDE1LTAxLTAxIiwKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICIyMy4wMCIsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAiMC4wMCIsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAiNDAuMDAiLAogICAgICAgICAgICB9LAogICAgICAgICAgICAyID0+IHsKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIyMDE1LTEyLTMxIiwKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIyMDE1LTAxLTAxIiwKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICIyMy4wMCIsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAiMC4wMCIsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgICA9PiAyLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAiMzIuMDAiLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgNCA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiA0LAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICI0MC4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgVXNlclNldHRpbmdzR2V0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkLCBwcmVmZXJlbmNlX3BlcmlvZCwgZGF0ZV9zdGFydCwgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywKICAgICAgICAgICAgICAgIG92ZXJ0aW1lLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1BlcmlvZH0gICAgICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e0RhdGVTdGFydH0gICA9IHN1YnN0ciggJFJvd1syXSwgMCwgMTAgKTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtXZWVrbHlIb3Vyc30gPSAkUm93WzRdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtMZWF2ZURheXN9ICAgPSAkUm93WzVdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtVc2VyU3RhdHVzfSAgPSAkUm93WzddOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gU2luZ2xlVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCB1c2VyJ3MgcGVyaW9kIGRhdGEKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+IDEgKTsKCj1jdXQKCnN1YiBTaW5nbGVVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZCwgcHJlZmVyZW5jZV9wZXJpb2QsIGRhdGVfc3RhcnQsIGRhdGVfZW5kLCB3ZWVrbHlfaG91cnMsIGxlYXZlX2RheXMsCiAgICAgICAgICAgICAgICBvdmVydGltZSwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVVc2VyRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtEYXRlU3RhcnR9ICAgPSBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICk7CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17TGVhdmVEYXlzfSAgID0gJFJvd1s1XTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVVc2VyRGF0YTsKfQoKPWl0ZW0gVXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoKQoKcmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSBsYXN0IHJlZ2lzdGVyZWQgcGVyaW9kIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIKCiAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoIFVzZXJJRCA9PiAxICk7Cgo9Y3V0CgpzdWIgVXNlckxhc3RQZXJpb2ROdW1iZXJHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgbWF4KHByZWZlcmVuY2VfcGVyaW9kKQogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZAogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCk7CiAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRSb3dbMF0gfHwgMDsKCiAgICByZXR1cm4gJExhc3RQZXJpb2ROdW1iZXI7Cn0KCj1pdGVtIFVzZXJTZXR0aW5nc0luc2VydCgpCgppbnNlcnQgbmV3IHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICBVc2VySUQgICAgICAgPT4gJzInLAogICAgICAgIFBlcmlvZCAgICAgICA9PiAnMicsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcgKFVzZXJJRCBQZXJpb2QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIHVzZXIgZXhpc3RzCiAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJJRCAkUGFyYW17VXNlcklEfSBkb2VzIG5vdCBleGlzdCEiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtXZWVrbHlIb3Vyc30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzJykKICAgICAgICB8fCAnNDAnOwogICAgJFBhcmFte0xlYXZlRGF5c30gID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJMZWF2ZURheXMnKSB8fCAnMjUnOwogICAgJFBhcmFte1VzZXJTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJTdGF0dXMnKSAgICB8fCAnMSc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlck92ZXJ0aW1lJykgIHx8ICcwJzsKICAgICRQYXJhbXtEYXRlRW5kfSAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCcpCiAgICAgICAgfHwgJzIwMTUtMTItMzEnOwogICAgJFBhcmFte0RhdGVTdGFydH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVTdGFydCcpCiAgICAgICAgfHwgJzIwMTUtMDEtMDEnOwogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24nKQogICAgICAgIHx8ICdQdXQgeW91ciBkZXNjcmlwdGlvbiBoZXJlLic7CgogICAgJFBhcmFte0RhdGVTdGFydH0gLj0gJyAwMDowMDowMCc7CiAgICAkUGFyYW17RGF0ZUVuZH0gICAuPSAnIDAwOjAwOjAwJzsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZGVsZXRlICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QgKHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LAogICAgICAgICAgICAgICAgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywgb3ZlcnRpbWUsIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgICAgICBcJFBhcmFte1BlcmlvZH0sICAgIFwkUGFyYW17RGF0ZVN0YXJ0fSwgXCRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgXCRQYXJhbXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17TGVhdmVEYXlzfSwgXCRQYXJhbXtPdmVydGltZX0sICBcJFBhcmFte1VzZXJTdGF0dXN9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgc2VsZWN0IFVzZXJJRAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtVc2VySUR9LCBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRVc2VySUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlcklEID0gJFJvd1swXTsKICAgIH0KCiAgICBpZiAoICFkZWZpbmVkICRVc2VySUQgKSB7CgogICAgICAgICMgZGIgaW5zZXJ0CiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3VzZXIgKHVzZXJfaWQsIGRlc2NyaXB0aW9uKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0sIFwkUGFyYW17RGVzY3JpcHRpb259LCBdLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIFVzZXJTZXR0aW5nc1VwZGF0ZSgpCgp1cGRhdGVzIHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU29tZSBUZXh0JywKICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEgfHwgMCwKICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEgfHwgMCwKICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICAgPT4gJzIwMTUtMTItMTInLAogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgID0+ICcyMDE1LTEyLTMxJywKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzICA9PiAnMzgnLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgID0+ICcyNScsCiAgICAgICAgICAgICAgICBPdmVydGltZSAgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgICA9PiAxIHx8IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDIgPT4gewogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgID0+ICcyMDE1LTEyLTEyJywKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICA9PiAnMjAxNS0xMi0zMScsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgPT4gJzM4JywKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICAgPT4gMSB8fCAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICAzID0+IC4uLi4uLgogICAgICAgIH0KICAgICk7Cgo9Y3V0CgpzdWIgVXNlclNldHRpbmdzVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWxldGUgY2FjaGUKICAgIGRlbGV0ZSAkU2VsZi0+eydDYWNoZTo6VXNlckN1cnJlbnRQZXJpb2RHZXQnfTsKCiAgICBteSAkVXNlcklEID0gJFBhcmFte1VzZXJJRH07CgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17UGVyaW9kfS0+ezF9e0RhdGVTdGFydH0gJiYgIWRlZmluZWQgJFBhcmFte1BlcmlvZH0tPnsxfXtEYXRlRW5kfSApIHsKCiAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVXNlclNldHRpbmdVcGRhdGU6IE5vIGRhdGEgZm9yIHVzZXIgaWQgJFVzZXJJRCEiCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlcwogICAgJFBhcmFte1Nob3dPdmVydGltZX0gIHx8PSAwOwogICAgJFBhcmFte0NyZWF0ZVByb2plY3R9IHx8PSAwOwogICAgJFBhcmFte0NhbGVuZGFyfSAgICAgIHx8PSAwOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgU0VUIGRlc2NyaXB0aW9uID0gPywgc2hvd19vdmVydGltZSA9ID8sIGNyZWF0ZV9wcm9qZWN0ID0gPywgY2FsZW5kYXIgPSA/CiAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtEZXNjcmlwdGlvbn0sIFwkUGFyYW17U2hvd092ZXJ0aW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtDcmVhdGVQcm9qZWN0fSwgXCRQYXJhbXtDYWxlbmRhcn0sIFwkUGFyYW17VXNlcklEfQogICAgICAgIF0sCiAgICApOwoKICAgICMgdXBkYXRlIGFsbCBwZXJpb2RzCiAgICBmb3IgbXkgJFBlcmlvZCAoIHNvcnQga2V5cyAleyAkUGFyYW17UGVyaW9kfSB9ICkgewoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgICAgIFNFVCBsZWF2ZV9kYXlzID0gPywgZGF0ZV9zdGFydCA9ID8sIGRhdGVfZW5kID0gPywgb3ZlcnRpbWUgPSA/LCB3ZWVrbHlfaG91cnMgPSA/LAogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ID8KICAgICAgICAgICAgICAgIFdIRVJFIHVzZXJfaWQgPSA/CiAgICAgICAgICAgICAgICAgICAgQU5EIHByZWZlcmVuY2VfcGVyaW9kID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17TGVhdmVEYXlzfSwgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtEYXRlU3RhcnR9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17RGF0ZUVuZH0sICAgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtPdmVydGltZX0sCiAgICAgICAgICAgICAgICBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e1VzZXJTdGF0dXN9LAogICAgICAgICAgICAgICAgXCRVc2VySUQsIFwkUGVyaW9kLAogICAgICAgICAgICAgICAgXQogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIFdvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYW5kCnRoZSBpbmZvcm1hdGlvbiBpZiB0aGUgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXJlIGluIHRoZSBhbGxvd2VkCnJhbmdlLgoKICAgIG15ICVXb3JraW5nVW5pdHNDaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCIKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJURhdGEgICAgICAgICAgICAgICAgPSAoKTsKICAgIG15ICRXb3JraW5nVW5pdElEICAgICAgID0gMDsKICAgIG15ICVDb21wbGV0ZVdvcmtpbmdEYXlzID0gKCk7CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSwKICAgICk7CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgICMgVE9ETzogU2VhcmNoIG9ubHkgaW4gdGhlIEN1cnJlbnRVc2VyUGVyaW9kCiAgICAjIFRPRE86IFNlYXJjaCBvbmx5IHdvcmtpbmcgdW5pdHMgd2hlcmUgYWN0aW9uX2lkIGFuZCBwcm9qZWN0X2lkIGlzIHRydWUKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgRElTVElOQ1QgdGltZV9zdGFydAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkVXNlcklEIF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIGlmICggJFJvd1swXSA9fiAvXihcZCspLShcZCspLShcZCspLyApIHsKICAgICAgICAgICAgJENvbXBsZXRlV29ya2luZ0RheXN7JDF9eyQyfXskM30gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlVXNlckN1cnJlbnRQZXJpb2QgPSAkU2VsZi0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgIG15ICRXb3JraW5nRGF5cyA9IDA7CiAgICBteSAkWWVhclN0YXJ0ICAgPSAxOTcwOwogICAgbXkgJE1vbnRoU3RhcnQgID0gMTsKICAgIG15ICREYXlTdGFydCAgICA9IDE7CiAgICBteSAkWWVhckVuZCAgICAgPSAkWWVhcjsKICAgIG15ICRNb250aEVuZCAgICA9ICRNb250aDsKICAgIG15ICREYXlFbmQgICAgICA9ICREYXk7CgogICAgaWYgKAogICAgICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e0RhdGVTdGFydH0KICAgICAgICAmJiAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IC9eKFxkKyktKFxkKyktKFxkKykvCiAgICAgICAgKQogICAgewogICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgJE1vbnRoU3RhcnQgPSAkMjsKICAgICAgICAkRGF5U3RhcnQgICA9ICQzOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRDYWxlbmRhciA9IHsgJFNlbGYtPlVzZXJHZXQoIFVzZXJJRCA9PiAkVXNlcklEICkgfS0+e0NhbGVuZGFyfTsKCiAgICBmb3IgbXkgJFllYXIgKCAkWWVhclN0YXJ0IC4uICRZZWFyRW5kICkgewoKICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICBteSAkTW9udGhFbmRQb2ludCAgID0gJFllYXIgPT0gJFllYXJFbmQgICA/ICRNb250aEVuZCAgIDogMTI7CgogICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgbXkgJERheVN0YXJ0UG9pbnQgPSAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydCA/ICREYXlTdGFydCA6IDE7CiAgICAgICAgICAgIG15ICREYXlFbmRQb2ludCA9ICRZZWFyID09ICRZZWFyRW5kCiAgICAgICAgICAgICAgICAmJiAkTW9udGggPT0gJE1vbnRoRW5kID8gJERheUVuZCA6IERheXNfaW5fTW9udGgoICRZZWFyLCAkTW9udGggKTsKICAgICAgICAgICAgbXkgJE1vbnRoU3RyaW5nID0gc3ByaW50ZiggIiUwMmQiLCAkTW9udGggKTsKCiAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgPT4gJENhbGVuZGFyIHx8ICcnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkRGF0ZSA9IHNwcmludGYoICIlMDRkLSUwMmQtJTAyZCIsICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnICk7CiAgICAgICAgICAgICAgICBteSAkRGF5U3RvcFRpbWUgID0gJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JyApOwoKICAgICAgICAgICAgICAgICMgYWRkIHRpbWUgem9uZSB0byBjYWxjdWxhdGlvbgogICAgICAgICAgICAgICAgbXkgJFpvbmUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gKCAkQ2FsZW5kYXIgfHwgJycgKSApOwogICAgICAgICAgICAgICAgaWYgKCRab25lKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAgICAgICAgICREYXlTdGFydFRpbWUgPSAkRGF5U3RhcnRUaW1lIC0gJFpvbmVTZWNvbmRzOwogICAgICAgICAgICAgICAgICAgICREYXlTdG9wVGltZSAgPSAkRGF5U3RvcFRpbWUgLSAkWm9uZVNlY29uZHM7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgJFRoaXNEYXlXb3JraW5nVGltZSA9ICRUaW1lT2JqZWN0LT5Xb3JraW5nVGltZSgKICAgICAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgICAgICAgICBTdG9wVGltZSAgPT4gJERheVN0b3BUaW1lLAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyICA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICApIHx8ICcwJzsKCiAgICAgICAgICAgICAgICBteSAkRGF5U3RyaW5nID0gc3ByaW50ZiggIiUwMmQiLCAkRGF5ICk7CgogICAgICAgICAgICAgICAgaWYgKCAkVGhpc0RheVdvcmtpbmdUaW1lICYmICEkVmFjYXRpb25DaGVjayApIHsKICAgICAgICAgICAgICAgICAgICAkV29ya2luZ0RheXMrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkVGhpc0RheVdvcmtpbmdUaW1lCiAgICAgICAgICAgICAgICAgICAgJiYgISRWYWNhdGlvbkNoZWNrCiAgICAgICAgICAgICAgICAgICAgJiYgISRDb21wbGV0ZVdvcmtpbmdEYXlzeyRZZWFyfXskTW9udGhTdHJpbmd9eyREYXlTdHJpbmd9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGhTdHJpbmd9eyREYXlTdHJpbmd9ID0gJFdvcmtpbmdEYXlzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgbXkgJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMnKSB8fCAnNSc7CiAgICBteSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcKICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcnKQogICAgICAgIHx8ICczJzsKICAgIGZvciBteSAkWWVhciAoIHNvcnQga2V5cyAleyAkRGF0YXtJbmNvbXBsZXRlfSB9ICkgewoKICAgICAgICBmb3IgbXkgJE1vbnRoICggc29ydCBrZXlzICV7ICREYXRhe0luY29tcGxldGV9eyRZZWFyfSB9ICkgewoKICAgICAgICAgICAgZm9yIG15ICREYXkgKCBzb3J0IGtleXMgJXsgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aH0gfSApIHsKCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aH17JERheX0KICAgICAgICAgICAgICAgICAgICA8ICRXb3JraW5nRGF5cyAtICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe0VuZm9yY2VJbnNlcnR9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICgKICAgICAgICAgICAgICAgICAgICAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofXskRGF5fQogICAgICAgICAgICAgICAgICAgIDwgJFdvcmtpbmdEYXlzIC0gJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICREYXRhe1dhcm5pbmd9ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFdvcmtpbmdVbml0c0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB3b3JraW5nIHVuaXRzIGRhdGEKCiAgICBteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggID0+ICc3JywKICAgICAgICBEYXkgICAgPT4gJzEzJywKICAgICAgICBVc2VySUQgPT4gJzEyMycsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkRGF0ZVN0YXJ0ID0gJERhdGUgLiAiIDAwOjAwOjAwIjsKICAgIG15ICREYXRlU3RvcCAgPSAkRGF0ZSAuICIgMjM6NTk6NTkiOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPwogICAgICAgICAgICAgICAgQU5EIHVzZXJfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIGJ5IGlkJywKICAgICAgICBCaW5kID0+IFsgXCREYXRlU3RhcnQsIFwkRGF0ZVN0b3AsIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBUb3RhbCA9PiAwLAogICAgICAgIERhdGUgID0+ICREYXRlLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAkUm93WzRdICF+IG17XiAoLis/KSBccyAoXGQrOlxkKykgOiAoXGQrKSB9eG1zOwoKICAgICAgICAjIGNoZWNrIGlmIGl0IGlzIGEgc3BlY2lhbCB3b3JraW5nIHVuaXQKICAgICAgICBpZiAoICRSb3dbMV0gPT0gLTEgKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25JRCA9ICRSb3dbMl07CgogICAgICAgICAgICAkRGF0YXtTaWNrfSAgICAgPSAkQWN0aW9uSUQgPT0gLTEgPyAxIDogMDsKICAgICAgICAgICAgJERhdGF7TGVhdmVEYXl9ID0gJEFjdGlvbklEID09IC0yID8gMSA6IDA7CiAgICAgICAgICAgICREYXRhe092ZXJ0aW1lfSA9ICRBY3Rpb25JRCA9PSAtMyA/IDEgOiAwOwoKICAgICAgICAgICAgbmV4dCBST1c7CiAgICAgICAgfQoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJDI7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICcnOwogICAgICAgIGlmICggJFJvd1s1XSA9fiBte14oLis/KVxzKFxkKzpcZCspOihcZCspfXhtcyApIHsKICAgICAgICAgICAgJEVuZFRpbWUgPSAkMjsKCiAgICAgICAgICAgICMgcmVwbGFjZSAyMzo1OTo1OSB3aXRoIDI0OjAwCiAgICAgICAgICAgIGlmICggJEVuZFRpbWUgZXEgJzIzOjU5JyAmJiAkMyBlcSAnNTknICkgewogICAgICAgICAgICAgICAgJEVuZFRpbWUgPSAnMjQ6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAoCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFJvd1sxXSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJFN0YXJ0VGltZSwKICAgICAgICAgICAgRW5kVGltZSAgID0+ICRFbmRUaW1lLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gZGVmaW5lZCggJFJvd1s2XSApID8gc3ByaW50ZiggIiUuMmYiLCAkUm93WzZdICkgOiAwLAogICAgICAgICk7CgogICAgICAgICMgb25seSBjb3VudCBjb21wbGV0ZSB3b3JraW5nIHVuaXRzCiAgICAgICAgaWYgKCAkUm93WzFdICYmICRSb3dbMl0gKSB7CiAgICAgICAgICAgICREYXRhe1RvdGFsfSArPSAkV29ya2luZ1VuaXR7UGVyaW9kfTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9LCBcJVdvcmtpbmdVbml0OwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gV29ya2luZ1VuaXRzSW5zZXJ0KCkKCmluc2VydCB3b3JraW5nIHVuaXRzIGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgIFllYXIgID0+ICcyMDA1JywKICAgICAgICBNb250aCA9PiAnMDcnLAogICAgICAgIERheSAgID0+ICcwMicsCiAgICAgICAgTGVhdmVEYXkgPT4gMSwgfHwgMAogICAgICAgIFNpY2sgICAgID0+IDEsIHx8IDAKICAgICAgICBPdmVydGltZSA9PiAxLCB8fCAwCiAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUHJvamVjdElEID0+IDEsCiAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gMjMsCiAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NvbWVUZXh0JywKICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAnNzozMCcsCiAgICAgICAgICAgICAgICBFbmRUaW1lICAgPT4gJzExOjAwJywKICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnOC41JywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgeyAuLi4uLi4gfSwKICAgICAgICBdLAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhZZWFyIE1vbnRoIERheSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiV29ya2luZ1VuaXRzSW5zZXJ0OiBOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGF0ZSA9IHNwcmludGYgIiUwNGQtJTAyZC0lMDJkIiwgJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fTsKCiAgICAjIGFkZCBzcGVjaWFsIHRpbWUgd29ya2luZyB1bml0cwogICAgbXkgJVNwZWNpYWxBY3Rpb24gPSAoCiAgICAgICAgJ1NpY2snICAgICA9PiAnLTEnLAogICAgICAgICdMZWF2ZURheScgPT4gJy0yJywKICAgICAgICAnT3ZlcnRpbWUnID0+ICctMycsCiAgICApOwoKICAgIEVMRU1FTlQ6CiAgICBmb3IgbXkgJEVsZW1lbnQgKHF3KExlYXZlRGF5IFNpY2sgT3ZlcnRpbWUpKSB7CgogICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJFBhcmFteyRFbGVtZW50fTsKCiAgICAgICAgbXkgJVVuaXQgPSAoCiAgICAgICAgICAgIFByb2plY3RJRCA9PiAtMSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRTcGVjaWFsQWN0aW9ueyRFbGVtZW50fSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICcnLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJycsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnJywKICAgICAgICAgICAgUGVyaW9kICAgID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgcHVzaCBAeyAkUGFyYW17V29ya2luZ1VuaXRzfSB9LCBcJVVuaXQ7CiAgICB9CgogICAgIyBpbnNlcnQgbmV3IHdvcmtpbmcgdW5pdHMKICAgIFVOSVRSRUY6CiAgICBmb3IgbXkgJFVuaXRSZWYgKCBAeyAkUGFyYW17V29ya2luZ1VuaXRzfSB9ICkgewoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJERhdGUgLiAnICcgLiAoICRVbml0UmVmLT57U3RhcnRUaW1lfSB8fCAnMDA6MDAnICkgLiAnOjAwJzsKICAgICAgICBteSAkRW5kVGltZSAgID0gJERhdGUgLiAnICcgLiAoICRVbml0UmVmLT57RW5kVGltZX0gICB8fCAnMDA6MDAnICkgLiAnOjAwJzsKCiAgICAgICAgIyAnJyBkb2VzIG5vdCB3b3JrIGluIGludGVnZXIgZmllbGQgb2YgUG9zdGdyZVNRTAogICAgICAgICRVbml0UmVmLT57UHJvamVjdElEfSB8fD0gMDsKICAgICAgICAkVW5pdFJlZi0+e0FjdGlvbklEfSAgfHw9IDA7CiAgICAgICAgJFVuaXRSZWYtPntQZXJpb2R9ICAgIHx8PSAwOwoKICAgICAgICAjIGJ1aWxkIERRTAogICAgICAgIG15ICRTUUwgPSAnCiAgICAgICAgICAgIElOU0VSVCBJTlRPIHRpbWVfYWNjb3VudGluZ190YWJsZSAodXNlcl9pZCwgcHJvamVjdF9pZCwgYWN0aW9uX2lkLCByZW1hcmssIHRpbWVfc3RhcnQsCiAgICAgICAgICAgICAgICB0aW1lX2VuZCwgcGVyaW9kLCBjcmVhdGVkICkKICAgICAgICAgICAgVkFMVUVTICAoID8sID8sID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wKSc7CiAgICAgICAgbXkgJEJpbmQgPSBbCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgXCRVbml0UmVmLT57UHJvamVjdElEfSwgXCRVbml0UmVmLT57QWN0aW9uSUR9LAogICAgICAgICAgICBcJFVuaXRSZWYtPntSZW1hcmt9LCBcJFN0YXJ0VGltZSwgXCRFbmRUaW1lLCBcJFVuaXRSZWYtPntQZXJpb2R9LAogICAgICAgIF07CgogICAgICAgICMgZGIgaW5zZXJ0CiAgICAgICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICAgICAgQmluZCA9PiAkQmluZAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIFdvcmtpbmdVbml0c0RlbGV0ZSgpCgpkZWxldGVzIHdvcmtpbmcgdW5pdHMgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgWWVhciAgID0+ICcyMDE1JywKICAgICAgICBNb250aCAgPT4gJzcnLAogICAgICAgIERheSAgICA9PiAnMTMnLAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0RlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhZZWFyIE1vbnRoIERheSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiV29ya2luZ1VuaXRzSW5zZXJ0OiBOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRGF0ZSAgICAgID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwogICAgbXkgJFN0YXJ0VGltZSA9ICREYXRlIC4gJyAwMDowMDowMCc7CiAgICBteSAkRW5kVGltZSAgID0gJERhdGUgLiAnIDIzOjU5OjU5JzsKCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBERUxFVEUgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdGltZV9zdGFydCA+PSA/CiAgICAgICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFN0YXJ0VGltZSwgXCRFbmRUaW1lLCBcJFBhcmFte1VzZXJJRH0sIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGhvdXJzIGRlcGVuZGVudCBwcm9qZWN0IGFuZCBhY3Rpb24gZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAyMDA1LAogICAgICAgIE1vbnRoID0+IDcsCiAgICAgICAgVXNlcklEID0+IDEyMywgIyBvcHRpb25hbDsgbm8gVXNlcklEIG1lYW5zICdvZiBhbGwgdXNlcnMnCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RBY3Rpb25SZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhZZWFyIE1vbnRoKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8ICcnOwogICAgICAgIGlmICggISRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlByb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgJFBhcmFtZXRlciEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaG91cnMgcGVyIG1vbnRoCiAgICBteSAkRGF5c0luTW9udGggPSBEYXlzX2luX01vbnRoKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0gKTsKICAgIG15ICREYXRlU3RyaW5nID0gJFBhcmFte1llYXJ9IC4gIi0iIC4gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICBteSAkU1FMRGF0ZSA9ICIkRGF0ZVN0cmluZy0kRGF5c0luTW9udGggMjM6NTk6NTkiOwoKICAgIG15ICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcGVyaW9kCiAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICBXSEVSRSBwcm9qZWN0X2lkICE9IC0xCiAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8nOwogICAgbXkgQEJpbmQgPSAoIFwkU1FMRGF0ZSApOwoKICAgIGlmICggJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFNRTCAuPSAnIEFORCB1c2VyX2lkID0gPyc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtVc2VySUR9OwogICAgfQoKICAgICMgdG90YWwgaG91cnMKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgUk9XOgogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG5leHQgUk9XIGlmICEkUm93WzJdOwoKICAgICAgICAkRGF0YXsgJFJvd1swXSB9LT57QWN0aW9uc30tPnsgJFJvd1sxXSB9LT57VG90YWx9ICs9ICRSb3dbMl07CiAgICB9CgogICAgbXkgJFNRTERhdGVTdGFydCA9ICIkRGF0ZVN0cmluZy0wMSAwMDowMDowMCI7CgogICAgJFNRTCA9ICcKICAgICAgICBTRUxFQ1QgcHJvamVjdF9pZCwgYWN0aW9uX2lkLCBwZXJpb2QKICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgIFdIRVJFIHByb2plY3RfaWQgIT0gLTEKICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/JzsKICAgIEBCaW5kID0gKCBcJFNRTERhdGVTdGFydCwgXCRTUUxEYXRlICk7CgogICAgaWYgKCAkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU1FMIC49ICcgQU5EIHVzZXJfaWQgPSA/JzsKICAgICAgICBwdXNoIEBCaW5kLCBcJFBhcmFte1VzZXJJRH07CiAgICB9CgogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgUk9XOgogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG5leHQgUk9XIGlmICEkUm93WzJdOwoKICAgICAgICAkRGF0YXsgJFJvd1swXSB9LT57QWN0aW9uc30tPnsgJFJvd1sxXSB9LT57UGVyTW9udGh9ICs9ICRSb3dbMl07CiAgICB9CgogICAgIyBhZGQgcmVhZGFibGUgY29tcG9uZW50cwogICAgbXkgJVByb2plY3QgPSAkU2VsZi0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICBteSAlQWN0aW9uICA9ICRTZWxmLT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgIGZvciBteSAkUHJvamVjdElEICggc29ydCBrZXlzICVEYXRhICkgewoKICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e05hbWV9ICAgICAgICA9ICRQcm9qZWN0e1Byb2plY3R9LT57JFByb2plY3RJRH0gfHwgJyc7CiAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntTdGF0dXN9ICAgICAgPSAkUHJvamVjdHtQcm9qZWN0U3RhdHVzfS0+eyRQcm9qZWN0SUR9OwogICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57RGVzY3JpcHRpb259ID0gJFByb2plY3R7UHJvamVjdERlc2NyaXB0aW9ufS0+eyRQcm9qZWN0SUR9OwoKICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICREYXRheyRQcm9qZWN0SUR9LT57QWN0aW9uc307CgogICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXskQWN0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57QWN0aW9uc30tPnskQWN0aW9uSUR9LT57TmFtZX0gPSAkQWN0aW9ueyRBY3Rpb25JRH0tPntBY3Rpb259IHx8ICcnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFByb2plY3RUb3RhbEhvdXJzKCkKCnJldHVybnMgdGhlIHN1bSBvZiBhbGwgaG91cnMgcmVsYXRlZCB0byBhIHByb2plY3QKCiAgICBteSAkUHJvamVjdFRvdGFsSG91cnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RUb3RhbEhvdXJzKAogICAgICAgIFByb2plY3RJRCAgPT4gMTUsCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RUb3RhbEhvdXJzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW0KICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnUHJvamVjdEFjdGlvblJlcG9ydGluZzogTmVlZCBQcm9qZWN0SUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgYXNrIHRoZSBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIFNVTShwZXJpb2QpCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHByb2plY3RfaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17UHJvamVjdElEfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFRvdGFsID0gMDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRUb3RhbCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRUb3RhbDsKfQoKPWl0ZW0gUHJvamVjdEhpc3RvcnkoKQoKcmV0dXJucyBhbiBhcnJheSB3aXRoIGFsbCBXb3JraW5nVW5pdHMgcmVsYXRlZCB0byBhIHByb2plY3QKCiAgICBteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoCiAgICAgICAgUHJvamVjdElEICA9PiAxNSwKICAgICk7CgpUaGlzIHdvdWxkIHJldHVybgoKICAgIEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gKAogICAgICAgIHsKICAgICAgICAgICAgSUQgICAgICAgID0+IDk5OSwKICAgICAgICAgICAgVXNlcklEICAgID0+IDE1LAogICAgICAgICAgICBVc2VyICAgICAgPT4gJ1RvbScsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiA2LAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ21pc2MnLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ3JlbWFyaycsCiAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnNzowMCcsCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAnMTg6MDAnLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJzIwMDgtMTAtMzEnLCAjIHRoZSBkYXRlIG9mIHRoZSB3b3JraW5nIHVuaXQKICAgICAgICAgICAgUGVyaW9kICAgID0+IDExLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJzIwMDgtMTEtMDEnLCAjIHRoZSBpbnNlcnQgdGltZSBvZiB0aGUgd29ya2luZyB1bml0CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIElEICAgICAgICA9PiA5OTksCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAxNiwKICAgICAgICAgICAgVXNlciAgICAgID0+ICdNYW5lJywKICAgICAgICAgICAgQWN0aW9uSUQgID0+IDcsCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnZGV2ZWxvcG1lbnQnLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ3JlbWFyaycsCiAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnNzowMCcsCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAnMTg6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMTEsCiAgICAgICAgICAgIERhdGUgICAgICA9PiAnMjAwOC0xMS0wMycsCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAnMjAwOC0xMS0wMycsCiAgICAgICAgfQogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0SGlzdG9yeSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtCiAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1Byb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgUHJvamVjdElEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjYWxsIGFjdGlvbiBkYXRhIHRvIGdldCB0aGUgcmVhZGFibGUgbmFtZSBvZiB0aGUgYWN0aW9uCiAgICBteSAlQWN0aW9uRGF0YSA9ICRTZWxmLT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICMgZ2V0IHVzZXIgbGlzdAogICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGFzayB0aGUgZGF0YWJhc2UKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQsIHVzZXJfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kLCBjcmVhdGVkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHByb2plY3RfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIEJZIHRpbWVfc3RhcnQnLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3RJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSBARGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBteSAkVXNlclJlZiA9IHsKICAgICAgICAgICAgSUQgICAgICAgID0+ICRSb3dbMF0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBVc2VyICAgICAgPT4gJFNob3duVXNlcnN7ICRSb3dbMV0gfSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkQWN0aW9uRGF0YXsgJFJvd1syXSB9e0FjdGlvbn0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdIHx8ICcnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJFJvd1s0XSwKICAgICAgICAgICAgVGltZUVuZCAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgIERhdGUgICAgICA9PiAkUm93WzRdLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gJFJvd1s2XSwKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICRSb3dbN10sCiAgICAgICAgfTsKICAgICAgICAkVXNlclJlZi0+e0RhdGV9ID1+IHN7KFxkXGRcZFxkLVxkXGQtXGRcZCkgXHMgLisgfXskMX14bXM7CgogICAgICAgIHB1c2ggQERhdGEsICRVc2VyUmVmOwogICAgfQoKICAgIHJldHVybiBARGF0YTsKfQoKPWl0ZW0gTGFzdFByb2plY3RzT2ZVc2VyKCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgbGFzdCBwcm9qZWN0cyBvZiB0aGUgY3VycmVudCB1c2VyCgogICAgbXkgQExhc3RQcm9qZWN0cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+TGFzdFByb2plY3RzT2ZVc2VyKAogICAgICAgIFVzZXJJRCA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIExhc3RQcm9qZWN0c09mVXNlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICMgSSBkb24ndCB1c2UgZGlzdGluY3QgYmVjYXVzZSBvZiBPUkRFUiBCWSBwcm9ibGVtcyBvZiBQb3N0Z3JlU1FMCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgcHJvamVjdF9pZCBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPwogICAgICAgICAgICAgICAgQU5EIHByb2plY3RfaWQgPD4gLTEKICAgICAgICAgICAgT1JERVIgQlkgdGltZV9zdGFydCBERVNDJywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgICAgIExpbWl0ID0+IDQwLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVQcm9qZWN0czsKICAgIG15ICRDb3VudGVyID0gMDsKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAkQ291bnRlciA+IDc7CiAgICAgICAgbmV4dCBST1cgaWYgJFByb2plY3RzeyAkUm93WzBdIH07CgogICAgICAgICRQcm9qZWN0c3sgJFJvd1swXSB9ID0gMTsKICAgICAgICAkQ291bnRlcisrOwogICAgfQoKICAgIHJldHVybiBrZXlzICVQcm9qZWN0czsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlN0YXRzOjpEeW5hbWljOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRlOjpQY2FsYyBxdyggQWRkX0RlbHRhX0RheXMgQWRkX0RlbHRhX1lNRCApOwp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgR2V0T2JqZWN0TmFtZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAnVGltZUFjY291bnRpbmcnOwp9CgpzdWIgR2V0T2JqZWN0QXR0cmlidXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgc2V0IHByZWRlZmluZWQgc3RhcnQgdGltZQogICAgbXkgJFRpbWVTdGFtcCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPkN1cnJlbnRUaW1lc3RhbXAoKTsKICAgIG15ICgkRGF0ZSkgPSBzcGxpdCAvXHMrLywgJFRpbWVTdGFtcDsKICAgIG15ICRUb2RheSA9IHNwcmludGYgIiVzIDIzOjU5OjU5IiwgJERhdGU7CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgcHJvamVjdCBsaXN0CiAgICBteSAlUHJvamVjdExpc3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgIyBnZXQgYWN0aW9uIGxpc3QKICAgIG15ICVBY3Rpb25MaXN0U291cmNlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbkxpc3Q7CgogICAgZm9yIG15ICRBY3Rpb24gKCBzb3J0IGtleXMgJUFjdGlvbkxpc3RTb3VyY2UgKSB7CiAgICAgICAgJEFjdGlvbkxpc3R7JEFjdGlvbn0gPSAkQWN0aW9uTGlzdFNvdXJjZXskQWN0aW9ufS0+e0FjdGlvbn07CiAgICB9CgogICAgIyBnZXQgdXNlciBsaXN0CiAgICBteSAlVXNlckxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgbXkgQEF0dHJpYnV0ZXMgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnUHJvamVjdCcpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiAkUHJvamVjdExpc3R7UHJvamVjdH0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdVc2VyJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1VzZXInLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAwLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IFwlVXNlckxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdTb3J0IHNlcXVlbmNlJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAxLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDAsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1NvcnRTZXF1ZW5jZScsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ1NlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIFVwICAgPT4gJ2FzY2VuZGluZycsCiAgICAgICAgICAgICAgICBEb3duID0+ICdkZXNjZW5kaW5nJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1Rhc2snKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUHJvamVjdEFjdGlvbicsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVBY3Rpb25MaXN0LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnUGVyaW9kJyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1BlcmlvZCcsCiAgICAgICAgICAgIFRpbWVQZXJpb2RGb3JtYXQgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsICAgICAgICAjICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnVGltZScsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgVGltZVN0YXJ0ID0+ICdUaW1lQWNjb3VudGluZ1BlcmlvZFN0YXJ0JywKICAgICAgICAgICAgICAgIFRpbWVTdG9wICA9PiAnVGltZUFjY291bnRpbmdQZXJpb2RTdG9wJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gQEF0dHJpYnV0ZXM7Cn0KCnN1YiBHZXRIZWFkZXJMaW5lIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSBASGVhZGVyTGluZSA9ICgiIik7CgogICAgIyBVc2VycyBhcyBYLXZhbHVlCiAgICBpZiAoICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gJiYgJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSBlcSAnVXNlcicgKSB7CgogICAgICAgICMgdXNlciBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBVc2VySURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgVVNFUklEOgogICAgICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewogICAgICAgICAgICBteSAkVXNlck5hbWUgPSAkVXNlck9iamVjdC0+VXNlck5hbWUoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQEhlYWRlckxpbmUsICRVc2VyTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgIyBQcm9qZWN0cyBhcyBYLXZhbHVlCiAgICBlbHNlIHsKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgUFJPSkVDVElEOgogICAgICAgIGZvciBteSAkUHJvamVjdElEIChAUHJvamVjdElEcykgewogICAgICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcHVzaCBASGVhZGVyTGluZSwgJFByb2plY3REYXRhe1Byb2plY3R9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBIZWFkZXJMaW5lOwp9CgpzdWIgR2V0U3RhdFRhYmxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSBAU3RhdEFycmF5OwogICAgbXkgQFVzZXJJRHM7CgogICAgIyBVc2VycyBhcyBYLXZhbHVlCiAgICBpZiAoICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gJiYgJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSBlcSAnVXNlcicgKSB7CgogICAgICAgICMgdXNlciBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIEBVc2VySURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgc3RhdCBkYXRhCiAgICAgICAgbXkgJFN0YXREYXRhID0gJFNlbGYtPl9HZXRTdGF0RGF0YSgKICAgICAgICAgICAgUGFyYW0gICA9PiBcJVBhcmFtLAogICAgICAgICAgICBVc2VySURzID0+IFxAVXNlcklEcywKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHN0YXQgZGF0YQogICAgICAgIHJldHVybiBpZiAhJFN0YXREYXRhOwogICAgICAgIHJldHVybiBpZiByZWYgJFN0YXREYXRhIG5lICdBUlJBWSc7CgogICAgICAgIG15IEBSYXdTdGF0QXJyYXkgPSBAeyRTdGF0RGF0YX07CiAgICAgICAgcmV0dXJuIGlmICFAUmF3U3RhdEFycmF5OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0TGlzdCA9ICV7ICRQcm9qZWN0RGF0YXtQcm9qZWN0fSB8fCB7fSB9OwoKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlQWN0aW9uTGlzdCA9IG1hcCB7ICggJF8gPT4gJEFjdGlvbkRhdGF7JF99LT57QWN0aW9ufSApIH0ga2V5cyAlQWN0aW9uRGF0YTsKCiAgICAgICAgbXkgQFNvcnRlZFByb2plY3RJRHMgPSBzb3J0IHsgJFByb2plY3RMaXN0eyRhfSBjbXAgJFByb2plY3RMaXN0eyRifSB9IGtleXMgJVByb2plY3RMaXN0OwogICAgICAgIG15IEBTb3J0ZWRBY3Rpb25JRHMgID0gc29ydCB7ICRBY3Rpb25MaXN0eyRhfSBjbXAgJEFjdGlvbkxpc3R7JGJ9IH0ga2V5cyAlQWN0aW9uTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHByb2plY3RzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRQcm9qZWN0SURzID0gcmV2ZXJzZSBAU29ydGVkUHJvamVjdElEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBwcm9qZWN0IGxpc3QKICAgICAgICBTT1JURURQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRQcm9qZWN0SUQgKEBTb3J0ZWRQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFByb2plY3RJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFBST0pFQ1RJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgcHJvamVjdCBkYXRhIG9mIGN1cnJlbnQgcHJvamVjdAogICAgICAgICAgICBteSBAUHJvamVjdFN0YXREYXRhID0gZ3JlcCB7ICRfLT57UHJvamVjdElEfSA9PSAkU29ydGVkUHJvamVjdElEIH0gQFJhd1N0YXRBcnJheTsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBhY3Rpb24gbGlzdAogICAgICAgICAgICBTT1JURURBQ1RJT05JRDoKICAgICAgICAgICAgZm9yIG15ICRTb3J0ZWRBY3Rpb25JRCAoQFNvcnRlZEFjdGlvbklEcykgewoKICAgICAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRBY3Rpb25JRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0gfHwgW10gfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IFNPUlRFREFDVElPTklEOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IGFjdGlvbiBvdXQgb2YgdGhlIGN1cnJlbnQgcHJvamVjdAogICAgICAgICAgICAgICAgbXkgQEFjdGlvblN0YXREYXRhID0gZ3JlcCB7ICRfLT57QWN0aW9uSUR9ID09ICRTb3J0ZWRBY3Rpb25JRCB9IEBQcm9qZWN0U3RhdERhdGE7CgogICAgICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgICAgICBteSAkUm93TGFiZWwgPSAiJFByb2plY3RMaXN0eyRTb3J0ZWRQcm9qZWN0SUR9OjokQWN0aW9uTGlzdHskU29ydGVkQWN0aW9uSUR9IjsKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCB1c2VycwogICAgICAgICAgICAgICAgVVNFUklEOgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgICAgICAgICAgICAgICMgYXQgbGVhc3QgZ2V0ICcwJyBmb3IgdXNlciBkYXRhCiAgICAgICAgICAgICAgICAgICAgbXkgJFVzZXJQZXJpb2RTdW0gPSAwOwoKICAgICAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBwZXJpb2QgZGF0YSBvZiB1c2VyCiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQZXJpb2REYXRhICggZ3JlcCB7ICRfLT57VXNlcklEfSA9PSAkVXNlcklEIH0gQEFjdGlvblN0YXREYXRhICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVXNlclBlcmlvZFN1bSArPSAkUGVyaW9kRGF0YS0+e1BlcmlvZH07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFVzZXJQZXJpb2RTdW07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBQcm9qZWN0cyBhcyBYLXZhbHVlCiAgICBlbHNlIHsKCiAgICAgICAgIyBwcm9qZWN0cyBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgeC12YWx1ZQogICAgICAgIG15IEBQcm9qZWN0SURzID0gQHsgJFBhcmFte1hWYWx1ZX0tPntTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgd2UgbmVlZCB0byBnZXQgYWxsIHVzZXJzCiAgICAgICAgbXkgJVVzZXJJRHMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdTaG9ydCcsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgQFVzZXJJRHMgPSBrZXlzICVVc2VySURzOwoKICAgICAgICAjIGdldCBjYWxjdWxhdGVkIHN0YXRzIGRhdGEKICAgICAgICBteSAkU3RhdERhdGEgPSAkU2VsZi0+X0dldFN0YXREYXRhKAogICAgICAgICAgICBQYXJhbSAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRHMgPT4gXEBVc2VySURzLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc3RhdCBkYXRhCiAgICAgICAgcmV0dXJuIGlmICEkU3RhdERhdGE7CiAgICAgICAgcmV0dXJuIGlmIHJlZiAkU3RhdERhdGEgbmUgJ0FSUkFZJzsKCiAgICAgICAgbXkgQFJhd1N0YXRBcnJheSA9IEB7JFN0YXREYXRhfTsKICAgICAgICByZXR1cm4gaWYgIUBSYXdTdGF0QXJyYXk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSBAU29ydGVkVXNlcklEcyA9IHNvcnQgeyAkVXNlckxpc3R7JGF9IGNtcCAkVXNlckxpc3R7JGJ9IH0ga2V5cyAlVXNlckxpc3Q7CgogICAgICAgICMgcmUtc29ydCB1c2VycyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkVXNlcklEcyA9IHJldmVyc2UgQFNvcnRlZFVzZXJJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgdXNlciBsaXN0CiAgICAgICAgU09SVEVEVVNFUklEOgogICAgICAgIGZvciBteSAkU29ydGVkVXNlcklEIChAU29ydGVkVXNlcklEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCB1c2VycwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRVc2VySUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURVU0VSSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHRoZSBjdXJyZW50IHVzZXIgZGF0YSBvZiBjdXJyZW50IHVzZXIKICAgICAgICAgICAgbXkgQFVzZXJTdGF0RGF0YSA9IGdyZXAgeyAkXy0+e1VzZXJJRH0gPT0gJFNvcnRlZFVzZXJJRCB9IEBSYXdTdGF0QXJyYXk7CgogICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICBteSAkUm93TGFiZWwgPSAkVXNlckxpc3R7JFNvcnRlZFVzZXJJRH07CiAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIFBST0pFQ1RJRDoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBnZXQgJzAnIGZvciB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0UGVyaW9kU3VtID0gMDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBwZXJpb2QgZGF0YSBvZiB1c2VyCiAgICAgICAgICAgICAgICBmb3IgbXkgJFBlcmlvZERhdGEgKCBncmVwIHsgJF8tPntQcm9qZWN0SUR9ID09ICRQcm9qZWN0SUQgfSBAVXNlclN0YXREYXRhICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0UGVyaW9kU3VtICs9ICRQZXJpb2REYXRhLT57UGVyaW9kfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkUHJvamVjdFBlcmlvZFN1bTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICB9CgogICAgfQoKICAgIHJldHVybiBAU3RhdEFycmF5Owp9CgpzdWIgR2V0U3RhdFRhYmxlUHJldmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBTdGF0QXJyYXk7CiAgICBteSBAVXNlcklEczsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0TGlzdCA9ICV7ICRQcm9qZWN0RGF0YXtQcm9qZWN0fSB8fCB7fSB9OwoKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKICAgICAgICBteSAlQWN0aW9uTGlzdCA9IG1hcCB7ICggJF8gPT4gJEFjdGlvbkRhdGF7JF99LT57QWN0aW9ufSApIH0ga2V5cyAlQWN0aW9uRGF0YTsKCiAgICAgICAgbXkgQFNvcnRlZFByb2plY3RJRHMgPSBzb3J0IHsgJFByb2plY3RMaXN0eyRhfSBjbXAgJFByb2plY3RMaXN0eyRifSB9IGtleXMgJVByb2plY3RMaXN0OwogICAgICAgIG15IEBTb3J0ZWRBY3Rpb25JRHMgID0gc29ydCB7ICRBY3Rpb25MaXN0eyRhfSBjbXAgJEFjdGlvbkxpc3R7JGJ9IH0ga2V5cyAlQWN0aW9uTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHByb2plY3RzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRQcm9qZWN0SURzID0gcmV2ZXJzZSBAU29ydGVkUHJvamVjdElEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCBwcm9qZWN0IGxpc3QKICAgICAgICBTT1JURURQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRQcm9qZWN0SUQgKEBTb3J0ZWRQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFByb2plY3RJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFBST0pFQ1RJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIGFjdGlvbiBsaXN0CiAgICAgICAgICAgIFNPUlRFREFDVElPTklEOgogICAgICAgICAgICBmb3IgbXkgJFNvcnRlZEFjdGlvbklEIChAU29ydGVkQWN0aW9uSURzKSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufQogICAgICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZEFjdGlvbklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB8fCBbXSB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5leHQgU09SVEVEQUNUSU9OSUQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbXkgQFJvd0RhdGE7CgogICAgICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgICAgICBteSAkUm93TGFiZWwgPSAiJFByb2plY3RMaXN0eyRTb3J0ZWRQcm9qZWN0SUR9OjokQWN0aW9uTGlzdHskU29ydGVkQWN0aW9uSUR9IjsKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzZWxlY3RlZCB1c2VycwogICAgICAgICAgICAgICAgVVNFUklEOgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCBpbnQgcmFuZCA1MDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewoKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfXtTZWxlY3RlZFZhbHVlc30gfTsKCiAgICAgICAgIyBnZXQgdXNlciBvYmplY3QKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgICMgd2UgbmVlZCB0byBnZXQgYWxsIHVzZXJzCiAgICAgICAgbXkgJVVzZXJJRHMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdTaG9ydCcsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgQFVzZXJJRHMgPSBrZXlzICVVc2VySURzOwoKICAgICAgICAjIGdldCBsaXN0IG9mIG5lZWRlZCBkYXRhCiAgICAgICAgbXkgJVVzZXJMaXN0ID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgQFNvcnRlZFVzZXJJRHMgPSBzb3J0IHsgJFVzZXJMaXN0eyRhfSBjbXAgJFVzZXJMaXN0eyRifSB9IGtleXMgJVVzZXJMaXN0OwoKICAgICAgICAjIHJlLXNvcnQgdXNlcnMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFVzZXJJRHMgPSByZXZlcnNlIEBTb3J0ZWRVc2VySURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHVzZXIgbGlzdAogICAgICAgIFNPUlRFRFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFVzZXJJRCAoQFNvcnRlZFVzZXJJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgdXNlcnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkVXNlcklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntVc2VyfSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEVVNFUklEOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICMgYWRkIGRlc2NyaXB0aXZlIGZpcnN0IGNvbHVtbgogICAgICAgICAgICBteSAkUm93TGFiZWwgPSAkVXNlckxpc3R7JFNvcnRlZFVzZXJJRH07CiAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRSb3dMYWJlbDsKCiAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgIFBST0pFQ1RJRDoKICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CgogICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgaW50IHJhbmQgNTA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgcHVzaCBAU3RhdEFycmF5LCBcQFJvd0RhdGE7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBAU3RhdEFycmF5Owp9CgpzdWIgRXhwb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyB3cmFwIGlkcyB0byB1c2VkIHNwZWxsaW5nCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewoKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnVXNlcicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFVzZXJPYmplY3QtPlVzZXJMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQtPntDb250ZW50fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3QnICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlVG1wUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIElEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRUbXBQcm9qZWN0RGF0YXtQcm9qZWN0fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdEFjdGlvbicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVUbXBBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIElEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRUbXBBY3Rpb25EYXRhe0FjdGlvbn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIEltcG9ydFdyYXBwZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFVzZXJPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKICAgIG15ICRMb2dPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgd3JhcCB1c2VkIHNwZWxsaW5nIHRvIGlkcwogICAgZm9yIG15ICRVc2UgKHF3KFVzZUFzVmFsdWVTZXJpZXMgVXNlQXNSZXN0cmljdGlvbiBVc2VBc1h2YWx1ZSkpIHsKICAgICAgICBFTEVNRU5UOgogICAgICAgIGZvciBteSAkRWxlbWVudCAoIEB7ICRQYXJhbXskVXNlfSB9ICkgewogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50OwogICAgICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRFbGVtZW50LT57U2VsZWN0ZWRWYWx1ZXN9OwoKICAgICAgICAgICAgbXkgJEVsZW1lbnROYW1lID0gJEVsZW1lbnQtPntFbGVtZW50fTsKICAgICAgICAgICAgbXkgJFZhbHVlcyAgICAgID0gJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBpZiAoICRFbGVtZW50TmFtZSBlcSAnVXNlcicgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICRVc2VySUQgPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRJRC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkVXNlcklEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFVzZXJJRDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4nIGZpbmQgdGhlIHVzZXIgJElELT57Q29udGVudH0hIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRWxlbWVudE5hbWUgZXEgJ1Byb2plY3QnICkgewoKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlUHJvamVjdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdCA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggJFByb2plY3R7SUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRQcm9qZWN0e0lEfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW1wb3J0OiBDYW4nIGZpbmQgcHJvamVjdCAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdEFjdGlvbicgKSB7CiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJUFjdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoICRBY3Rpb257SUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkSUQtPntDb250ZW50fSA9ICRBY3Rpb257SUR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCBhY3Rpb24gJElELT57Q29udGVudH0hIgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkSUQgPSB1bmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXCVQYXJhbTsKfQoKc3ViIF9HZXRTdGF0RGF0YSB7CgogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAUmV0dXJuOwogICAgbXkgQFVzZXJJRHMgPSBAeyAkUGFyYW17VXNlcklEc30gfHwgW10gfTsKCiAgICBteSAlRGF0ZUluZGV4VG9OYW1lID0gKAogICAgICAgICdTZWNvbmQnID0+IDAsCiAgICAgICAgJ01pbnV0ZScgPT4gMSwKICAgICAgICAnSG91cicgICA9PiAyLAogICAgICAgICdEYXknICAgID0+IDMsCiAgICAgICAgJ01vbnRoJyAgPT4gNCwKICAgICAgICAnWWVhcicgICA9PiA1LAogICAgKTsKCiAgICAjIGxvb3Bpbmcgb3ZlciBhbGwgb3Igc2VsZWN0ZWQgdXNlcnMKICAgIGZvciBteSAkVXNlcklEIChAVXNlcklEcykgewoKICAgICAgICBteSAkU3RhcnREYXRlOwogICAgICAgIG15ICRTdG9wRGF0ZTsKCiAgICAgICAgIyBnZXQgdGltZSBvYmplY3QKICAgICAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgICAgICMgY2hlY2sgaWYgdGltZSBwZXJpb2QgaGFzIGJlZW4gc2VsZWN0ZWQKICAgICAgICBpZiAoICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0gKSB7CgogICAgICAgICAgICAjIGdldCBVTklYIHRpbWUtc3RhbXAgb2Ygc3RhcnQgYW5kIGVuZCB2YWx1ZXMKICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkU3RvcERhdGUgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3B9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgSU1QT1JUQU5UOgogICAgICAgICAgICAjIElmIG5vIHRpbWUgcGVyaW9kIGhhZCBiZWVuIHNlbGVjdGVkIHByZXZpb3VzIG1vbnRoIHdpbGwgYmUgdXNlZCBhcyBwZXJpb2QhCgogICAgICAgICAgICAjIGdldCBjdXJyZW50IGRhdGUgdmFsdWVzCiAgICAgICAgICAgIG15IEBDdXJyZW50RGF0ZSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBmaXJzdCBkYXkgb2YgcHJldmlvdXMgbW9udGgKICAgICAgICAgICAgbXkgQE5ld1N0YXJ0RGF0ZSA9IEFkZF9EZWx0YV9ZTUQoCiAgICAgICAgICAgICAgICAkQ3VycmVudERhdGVbICREYXRlSW5kZXhUb05hbWV7J1llYXInfSBdLAogICAgICAgICAgICAgICAgJEN1cnJlbnREYXRlWyAkRGF0ZUluZGV4VG9OYW1leydNb250aCd9IF0sCiAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIC0xLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IGZpcnN0IGRheSBvZiBuZXh0IG1vbnRoIHJlbGF0aXZlIHRvIHByZXZpb3VzIG1vbnRoCiAgICAgICAgICAgIG15IEBOZXdTdG9wRGF0ZSA9IEFkZF9EZWx0YV9ZTUQoCiAgICAgICAgICAgICAgICAkTmV3U3RhcnREYXRlWzBdLAogICAgICAgICAgICAgICAgJE5ld1N0YXJ0RGF0ZVsxXSwKICAgICAgICAgICAgICAgICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgKzEsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgbGFzdCBvZiBkYXkgcHJldmlvdXMgbW9udGgKICAgICAgICAgICAgQE5ld1N0b3BEYXRlID0gQWRkX0RlbHRhX1lNRCgKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVswXSwKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAgICAgICAgICROZXdTdG9wRGF0ZVsyXSwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgLTEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNhbGN1bGF0ZSBVTklYIHRpbWVzdGFtcHMgZm9yIHN0YXJ0IGFuZCBzdG9wIGRhdGUKICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJE5ld1N0YXJ0RGF0ZVswXSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTmV3U3RhcnREYXRlWzFdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICAgICAgU2Vjb25kID0+IDAsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTdG9wRGF0ZSA9ICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJE5ld1N0b3BEYXRlWzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkTmV3U3RvcERhdGVbMl0sCiAgICAgICAgICAgICAgICBIb3VyICAgPT4gMjMsCiAgICAgICAgICAgICAgICBNaW51dGUgPT4gNTksCiAgICAgICAgICAgICAgICBTZWNvbmQgPT4gNTksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNhbGN1bGF0ZSBudW1iZXIgb2YgZGF5cyB3aXRoaW4gdGhlIGdpdmVuIHJhbmdlCiAgICAgICAgbXkgJERheXMgPSBpbnQoICggJFN0b3BEYXRlIC0gJFN0YXJ0RGF0ZSApIC8gODY0MDAgKSArIDE7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgREFZOgogICAgICAgIGZvciBteSAkRGF5ICggMCAuLiAkRGF5cyApIHsKCiAgICAgICAgICAgICMgZ2V0IGRheSByZWxhdGl2ZSB0byBzdGFydCBkYXRlCiAgICAgICAgICAgIG15ICREYXRlT2ZQZXJpb2QgPSAkU3RhcnREYXRlICsgJERheSAqIDg2NDAwOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIGRhdGUgdmFsdWVzIG91dCBvZiB0aW1lLXN0YW1wCiAgICAgICAgICAgIG15IEBEYXRlVmFsdWVzID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVPZlBlcmlvZCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHdvcmtpbmcgdW5pdCBmb3IgdXNlciBhbmQgZGF5CiAgICAgICAgICAgIG15ICVXb3JraW5nVW5pdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgWWVhciAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydZZWFyJ30gXSwKICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnTW9udGgnfSBdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICREYXRlVmFsdWVzWyAkRGF0ZUluZGV4VG9OYW1leydEYXknfSBdLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGV4dHJhY3QgZGV0YWlsZWQgaW5mb3JtYXRpb24KICAgICAgICAgICAgbXkgQERheVdvcmtpbmdVbml0cyA9IEB7ICRXb3JraW5nVW5pdHtXb3JraW5nVW5pdHN9IHx8IFtdIH07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBwcm9qZWN0IHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIHByb2plY3RzCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWRQcm9qZWN0SURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3R9IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICAgICAgbXkgQEZpbHRlcmVkUHJvamVjdFdVcyA9IGdyZXAgewogICAgICAgICAgICAgICAgICAgICRTZWxlY3RlZFByb2plY3RJRHN7ICRfLT57UHJvamVjdElEfSB9CiAgICAgICAgICAgICAgICB9IEBEYXlXb3JraW5nVW5pdHM7CgogICAgICAgICAgICAgICAgQERheVdvcmtpbmdVbml0cyA9IEBGaWx0ZXJlZFByb2plY3RXVXM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRhc2sgcmVzdHJpY3Rpb25zCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57UHJvamVjdEFjdGlvbn0KICAgICAgICAgICAgICAgICYmIHJlZiAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IGVxICdBUlJBWScKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgYnVpbGQgbWF0Y2hpbmcgaGFzaCBmb3Igc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgbXkgJVNlbGVjdGVkQWN0aW9uSURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSBARmlsdGVyZWRBY3Rpb25XVXMgPSBncmVwIHsgJFNlbGVjdGVkQWN0aW9uSURzeyAkXy0+e0FjdGlvbklEfSB9IH0gQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICAgICBARGF5V29ya2luZ1VuaXRzID0gQEZpbHRlcmVkQWN0aW9uV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1c2VyIHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntVc2VyfSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZFVzZXJJRHMgPSBtYXAgeyAoICRfID0+IDEgKSB9IEB7ICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VXNlcn0gfTsKCiAgICAgICAgICAgICAgICAjIGZpbHRlciBvbmx5IHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15IEBGaWx0ZXJlZFVzZXJXVXMgPSBncmVwIHsgJFNlbGVjdGVkVXNlcklEc3sgJF8tPntVc2VySUR9IH0gfSBARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgICAgIEBEYXlXb3JraW5nVW5pdHMgPSBARmlsdGVyZWRVc2VyV1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGRvIG5vdCBzdG9yZSBkYXRhIGlmIG5vIGRhdGEgaXMgYXZhaWxhYmxlCiAgICAgICAgICAgIG5leHQgREFZIGlmICFARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgIyBhZGQgZGF0YSB0byBnbG9iYWwgcmVzdWx0IHNldAogICAgICAgICAgICBwdXNoIEBSZXR1cm4sIEBEYXlXb3JraW5nVW5pdHM7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcQFJldHVybjsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBkZWNsYXJlIGV4dGVybmFsbHkgZGVmaW5lZCB2YXJpYWJsZXMgdG8gYXZvaWQgZXJyb3JzIHVuZGVyICd1c2Ugc3RyaWN0Jwp1c2UgdmFycyBxdygkU2VsZik7CgojIGdldCBoZWxwZXIgb2JqZWN0CiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgpteSAkUmFuZG9tTnVtYmVyID0gaW50IHN1YnN0ciAkSGVscGVyLT5HZXRSYW5kb21OdW1iZXIoKSwgLTUsIDU7CgojIGRhdGEgZm9yIHRoZSBuZXcgYWN0aW9uICh0YXNrKQpteSAlTmV3QWN0aW9uRGF0YSA9ICgKICAgIEFjdGlvbiAgICAgICA9PiAnVGVzdEFjdGlvbicgLiAkUmFuZG9tTnVtYmVyLAogICAgQWN0aW9uU3RhdHVzID0+IDEsCik7CgojIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0Cm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKIyBjcmVhdGUgYSBuZXcgYWN0aW9uICh0YXNrKQpteSAkSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCglTmV3QWN0aW9uRGF0YSk7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRJbnNlcnQsCiAgICAnSW5zZXJ0IHRlc3QgYWN0aW9uIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgdGhlIGFjdGlvbiBkYXRhIHRoYXQgd2FzIGluc2VydGVkIGFib3ZlCm15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoIEFjdGlvbiA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259ICk7CgojIHZlcmlmeSB0aGF0IHRoZSBkYXRhIHNhdmVkIGluIHRoZSBEQiBpcyB0aGUgc2FtZSB0aGF0IHdhcyBpbnNlcnRlZAokU2VsZi0+SXMoCiAgICAkQWN0aW9uRGF0YXtBY3Rpb25TdGF0dXN9LAogICAgJE5ld0FjdGlvbkRhdGF7QWN0aW9uU3RhdHVzfSwKICAgICdDb21wYXJlIGFjdGlvbiBzdGF0dXMgc2F2ZWQgaW4gREIgd2l0aCB0aGUgaW5zZXJ0ZWQgb25lJywKKTsKCiMgbW9kaWZ5IHRoZSBhY3Rpb24gbmFtZQpteSAkVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgIEFjdGlvbklEICAgICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICBBY3Rpb24gICAgICAgPT4gJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSAuICdtb2RpZmllZCcsCiAgICBBY3Rpb25TdGF0dXMgPT4gMSwKKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgdXBkYXRlZAokU2VsZi0+VHJ1ZSgKICAgICRVcGRhdGUsCiAgICAnVXBkYXRlIHRlc3QgYWN0aW9uIHNldHRpbmdzJywKKTsKCiMgZ2V0IGFsbCBhY3Rpb25zIGRhdGEKbXkgJUFsbEFjdGlvbnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgJEFsbEFjdGlvbnN7ICRBY3Rpb25EYXRhe0lEfSB9e0FjdGlvbn0sCiAgICAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgICdDb21wYXJlIGFjdGlvbiBuYW1lIHNhdmVkIGluIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgdXBkYXRlJywKKTsKCiMgZGF0YSBmb3IgdGhlIG5ldyBwcm9qZWN0Cm15ICVOZXdQcm9qZWN0RGF0YSA9ICgKICAgIFByb2plY3QgICAgICAgICAgICA9PiAnVGVzdFByb2plY3QnIC4gJFJhbmRvbU51bWJlciwKICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnVGVzdCcsCiAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKKTsKCiMgY3JlYXRlIGEgbmV3IHByb2plY3QKbXkgJFByb2plY3RJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KCVOZXdQcm9qZWN0RGF0YSk7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZAokU2VsZi0+VHJ1ZSgKICAgICRQcm9qZWN0SUQsCiAgICAnSW5zZXJ0IHRlc3QgcHJvamVjdCBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiMgZ2V0IHRoZSBhY3Rpb24gZGF0YSB0aGF0IHdhcyBpbnNlcnRlZCBhYm92ZQpteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoIElEID0+ICRQcm9qZWN0SUQgKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGRhdGEgc2F2ZWQgaW4gdGhlIERCIGlzIHRoZSBzYW1lIHRoYXQgd2FzIGluc2VydGVkCiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0fSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSwKICAgICdDb21wYXJlIHByb2plY3QgbmFtZSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwokU2VsZi0+SXMoCiAgICAkUHJvamVjdERhdGF7UHJvamVjdERlc2NyaXB0aW9ufSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0RGVzY3JpcHRpb259LAogICAgJ0NvbXBhcmUgcHJvamVjdCBkZXNjcmlwdGlvbiBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwokU2VsZi0+SXMoCiAgICAkUHJvamVjdERhdGF7UHJvamVjdFN0YXR1c30sCiAgICAkTmV3UHJvamVjdERhdGF7UHJvamVjdFN0YXR1c30sCiAgICAnQ29tcGFyZSBwcm9qZWN0IHN0YXR1cyBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwoKIyBtb2RpZnkgdGhlIHByb2plY3QgbmFtZQokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgIFByb2plY3QgICAgICAgICAgICA9PiAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0gLiAnbW9kaWZpZWQnLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCBwcm9qZWN0IHNldHRpbmdzJywKKTsKCiMgZ2V0IGFsbCBwcm9qZWN0cyBkYXRhCm15ICVBbGxQcm9qZWN0cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCBTdGF0dXMgPT4gJ3ZhbGlkJyApOwoKIyB2ZXJpZnkgdGhlIGxhc3QgbW9kaWZpY2F0aW9uCiRTZWxmLT5JcygKICAgICRBbGxQcm9qZWN0c3tQcm9qZWN0fXskUHJvamVjdElEfSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSAuICdtb2RpZmllZCcsCiAgICAnQ29tcGFyZSBwcm9qZWN0IG5hbWUgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBjcmVhdGUgbmV3IHVzZXIKbXkgJFVzZXJMb2dpbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyktPlRlc3RVc2VyQ3JlYXRlKCk7Cm15ICRVc2VySUQgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCik7CgojIG9idGFpbiB0aGUgbGFzdCByZWdpc3RlcmVkIHBlcmlvZCBvZiB0aGUgdGVzdCB1c2VyCm15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCggVXNlcklEID0+ICRVc2VySUQgKSArIDE7CgojIGNyZWF0ZSByZWdpc3RyeSBmb3IgdGhlIG5ldyB1c2VyIGluIFRBCiRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdXNlciB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGVzdCB1c2VyIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBpbnNlcnQgYW5vdGhlciBwZXJpb2QgZW50cnkgZm9yIHRoZSBzYW1lIHVzZXIKJEluc2VydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgVXNlcklEID0+ICRVc2VySUQsCiAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIgKyAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdXNlciB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGltZSBwZXJpb2QgZm9yIHRlc3QgdXNlciBzZXR0aW5ncyBpbnRvIGRhdGFiYXNlJywKKTsKCiRSYW5kb21OdW1iZXIgPSBpbnQgc3Vic3RyICRIZWxwZXItPkdldFJhbmRvbU51bWJlcigpLCAtMywgMzsKCiMgdXBkYXRlIHVzZXIgZGF0YQokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICBVc2VySUQgICAgICAgID0+ICRVc2VySUQsCiAgICBEZXNjcmlwdGlvbiAgID0+ICdUZXN0IHVzZXInIC4gJFJhbmRvbU51bWJlciwKICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgIDEgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMS0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAxLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJhbmRvbU51bWJlciwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzEwJywKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzIwJywKICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMi0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTEyLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJhbmRvbU51bWJlciArIDEwLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnNScsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcxMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgfSwKICAgIH0sCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHVzZXIgc2V0dGluZ3MnLAopOwoKIyBnZXQgdXNlciBzZXR0aW5ncwpteSAlU2luZ2xlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+ICRVc2VySUQgKTsKCiMgdmVyaWZ5IHRoZSBsYXN0IG1vZGlmaWNhdGlvbgokU2VsZi0+SXMoCiAgICBpbnQgJFNpbmdsZVVzZXJEYXRhezF9e1dlZWtseUhvdXJzfSwKICAgICRSYW5kb21OdW1iZXIsCiAgICAnQ29tcGFyZSB3ZWVrbHkgaG91cnMgZm9yIHBlcmlvZCAxIHNhdmVkIGluIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgdXBkYXRlJywKKTsKCiRTZWxmLT5JcygKICAgIGludCAkU2luZ2xlVXNlckRhdGF7Mn17V2Vla2x5SG91cnN9LAogICAgJFJhbmRvbU51bWJlciArIDEwLAogICAgJ0NvbXBhcmUgd2Vla2x5IGhvdXJzIGZvciBwZXJpb2QgMiBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgojIGdldCB1c2VyIGRhdGEKJVNpbmdsZVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApOwoKIyBjb21wYXJlIGRhdGEgc2F2ZWQgb24gdGhlIERCIHdpdGggdGhlIGluc2VydGVkIG9uZQokU2VsZi0+SXMoCiAgICAkU2luZ2xlVXNlckRhdGF7RGVzY3JpcHRpb259LAogICAgJ1Rlc3QgdXNlcicgLiAkUmFuZG9tTnVtYmVyLAogICAgJ0NvbXBhcmUgZGVzY3JpcHRpb24gc2F2ZWQgb24gdGhlIERCIHdpdGggdGhlIHNwZWNpZmllZCBpbiB0aGUgaW5zZXJ0aW9uJywKKTsKCiMgZ2V0IGFsbCB1c2VycyBkYXRhCm15ICVBbGxVc2Vyc0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7CgojIHZlcmlmeSB0aGF0IHRoZSB0ZXN0IHVzZXIgaXMgaW4gdGhlIGxpc3QKJFNlbGYtPlRydWUoCiAgICAkQWxsVXNlcnNEYXRheyRVc2VySUR9e0Rlc2NyaXB0aW9ufSwKICAgICdWZXJpZnkgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCB1c2VyIGluIHRoZSBsaXN0JwopOwoKIyBnZXQgYWxsIHBlcmlvZHMgb2YgZGF0YSBvZiBhbGwgdXNlcnMKbXkgJUFsbFVzZXJzUGVyaW9kRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzR2V0KCk7CgojIHZlcmlmeSB0aGUgcGVyaW9kIGRhdGEgb2YgdGhlIHRlc3QgdXNlcgpteSAkQ29ycmVjdFVzZXJEYXRhID0KICAgICgKICAgICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17MX17V2Vla2x5SG91cnN9ID09ICRSYW5kb21OdW1iZXIKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e0xlYXZlRGF5c30gPT0gMTAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e092ZXJ0aW1lfSA9PSAyMAogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17MX17VXNlclN0YXR1c30KICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e1dlZWtseUhvdXJzfSA9PSAkUmFuZG9tTnVtYmVyICsgMTAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e0xlYXZlRGF5c30gPT0gNQogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17Mn17T3ZlcnRpbWV9ID09IDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtVc2VyU3RhdHVzfQogICAgKSA/IDEgOiAwOwoKJFNlbGYtPlRydWUoCiAgICAkQ29ycmVjdFVzZXJEYXRhLAogICAgJ1ZlcmlmeSB0aGUgcGVyaW9kIGRhdGEgb2YgdGhlIHRlc3QgdXNlciBpbiB0aGUgbGlzdCcKKTsKCiMgZ2V0IGN1cnJlbnQgcGVyaW9kIG9mIHVzZXIKbXkgJVVzZXJDdXJyZW50UGVyaW9kID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgIFllYXIgID0+ICcyMDExJywKICAgIE1vbnRoID0+ICcwMScsCiAgICBEYXkgICA9PiAnMTUnLAopOwoKIyBjaGVjayB0aGUgcGVyaW9kCiRTZWxmLT5JcygKICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e1BlcmlvZH0sCiAgICAxLAogICAgJ1ZlcmlmeSBjdXJyZW50IHBlcmlvZCcsCik7CgokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9LAogICAgJzIwMTEtMDEtMDEnLAogICAgJ1ZlcmlmeSBzdGFydCBkYXRlIG9mIGN1cnJlbnQgcGVyaW9kJywKKTsKCiRTZWxmLT5JcygKICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e0RhdGVFbmR9LAogICAgJzIwMTEtMDEtMzEnLAogICAgJ1ZlcmlmeSBlbmQgZGF0ZSBvZiBjdXJyZW50IHBlcmlvZCcsCik7CgojIGhhc2ggd2l0aCB0aGUgd29ya2luZyB1bml0cyBmb3IgSmFuLiAxNXRoLCAyMDExCm15ICVXb3JraW5nVW5pdHMgPSAoCiAgICBZZWFyICAgICAgICAgPT4gJzIwMTEnLAogICAgTW9udGggICAgICAgID0+ICcwMScsCiAgICBEYXkgICAgICAgICAgPT4gJzE1JywKICAgIExlYXZlRGF5ICAgICA9PiAwLAogICAgU2ljayAgICAgICAgID0+IDAsCiAgICBPdmVydGltZSAgICAgPT4gMCwKICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgewogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdNeSBjb21tZW50JywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICc3OjAwJywKICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxMDowMCcsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAzLjAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbkRhdGF7SUR9LAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ015IGNvbW1lbnQnLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJzEzOjAwJywKICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxNTowMCcsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAyLjAsCiAgICAgICAgfSwKICAgIF0sCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCiMgaW5zZXJ0IHdvcmtpbmcgdW5pdHMgaW4gdGhlIERCCiRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCglV29ya2luZ1VuaXRzKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIHdvcmtpbmcgdW5pdHMgd2VyZSBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIgaW50byBkYXRhYmFzZScsCik7CgojIGdldCBhbGwgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkKbXkgJVdvcmtpbmdVbml0c0NoZWNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0aGF0IEphbiAxNXRoLCAyMDExIGlzIG5vdCBpbiB0aGUgbGlzdCBvZiBkYXlzIHdpdGhvdXQgZW50cnkKJFNlbGYtPkZhbHNlKAogICAgZGVmaW5lZCAkV29ya2luZ1VuaXRzQ2hlY2t7J0luY29tcGxldGUnfXsnMjAxMSd9eycwMSd9eycxNSd9LAogICAgJ1ZlcmlmeSBjb21wbGV0aW9uIG9mIHdvcmtpbmcgdW5pdHMnCik7CgojIGdldCB3b3JraW5nIHVuaXRzIG9mIGFsbCB1c2VycwpteSAlRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclJlcG9ydGluZygKICAgIFllYXIgID0+ICcyMDExJywKICAgIE1vbnRoID0+ICcwMScsCiAgICBEYXkgICA9PiAnMTUnLAopOwoKIyB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB3b3JraW5nIHVuaXRzIGZvciB0aGUgdGVzdCB1c2VyCiRTZWxmLT5JcygKICAgICREYXRheyRVc2VySUR9e1dvcmtpbmdIb3Vyc1RvdGFsfSwKICAgIDUsCiAgICAnVmVyaWZ5IG51bWJlciBvZiB3b3JraW5nIGhvdXJzIG9mIHRoZSB0ZXN0IHVzZXInLAopOwoKIyBnZXQgcHJvamVjdHMgaW4gd2hpY2ggdGhlIHRlc3QgdXNlciBoYXMgd29ya2VkIG9uCm15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKbXkgJFRlc3RQcm9qZWN0RXhpc3RlbmNlOwoKSUQ6CmZvciBteSAkSUQgKEBMYXN0UHJvamVjdHMpIHsKICAgIG5leHQgSUQgaWYgJElEICE9ICRQcm9qZWN0SUQ7CiAgICAkVGVzdFByb2plY3RFeGlzdGVuY2UgPSAxOwp9CgojIHZlcmlmeSB0aGF0IGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCBwcm9qZWN0IGludG8gdGhlIHVzZXIncyBsaXN0CiRTZWxmLT5UcnVlKAogICAgJFRlc3RQcm9qZWN0RXhpc3RlbmNlLAogICAgJ1ZlcmlmeSB0aGF0IGV4aXN0ZW5jZSBvZiB0aGUgdGVzdCBwcm9qZWN0IGludG8gdGhlIHVzZXJcJ3MgbGlzdCcsCik7CgojIGdldCBwcm9qZWN0IC0gYWN0aW9uIHdvcmtpbmcgaG91cnMKbXkgJVByb2plY3RBY3Rpb25Xb3JraW5nSG91cnMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICBZZWFyICAgPT4gMjAxMSwKICAgIE1vbnRoICA9PiAxLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0b3RhbCByZXBvcnRlZCBob3VycyBmb3IgdGhlIHRlc3QgYWN0aW9uICh0YXNrKSBhbmQgdGVzdCBwcm9qZWN0CiRTZWxmLT5JcygKICAgICRQcm9qZWN0QWN0aW9uV29ya2luZ0hvdXJzeyRQcm9qZWN0SUR9e0FjdGlvbnN9eyAkQWN0aW9uRGF0YXtJRH0gfXtUb3RhbH0sCiAgICAnNScsCiAgICAnVmVyaWZ5IHRvdGFsIHJlcG9ydGVkIGhvdXJzIGZvciB0aGUgdGVzdCBhY3Rpb24gKHRhc2spIGFuZCB0ZXN0IHByb2plY3QnLAopOwoKIyBnZXQgcHJvamVjdCB3b3JraW5nIHVuaXRzCm15IEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0SGlzdG9yeSggUHJvamVjdElEID0+ICRQcm9qZWN0SUQgKTsKCm15ICRUb3RhbEhvdXJzOwoKIyBnZXQgc3VtIG9mIGFsbCB3b3JraW5nIHVuaXQgZm9yIHRoZSB0ZXN0IHByb2plY3QKZm9yIG15ICRQcm9qZWN0IChAUHJvamVjdEhpc3RvcnlBcnJheSkgewogICAgJFRvdGFsSG91cnMgKz0gJFByb2plY3QtPntQZXJpb2R9Owp9CgpteSAkVGVzdFByb2plY3RUb3RhbEhvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAopOwoKIyB2ZXJpZnkgdG90YWwgd29ya2luZyB1bml0cyBmb3IgdGhlIHRlc3QgcHJvamVjdAokU2VsZi0+SXMoCiAgICBpbnQgJFRvdGFsSG91cnMsCiAgICBpbnQgJFRlc3RQcm9qZWN0VG90YWxIb3VycywKICAgICdWZXJpZnkgdG90YWwgaG91cnMgb2YgdGVzdCBwcm9qZWN0JywKKTsKCiMgZGVsZXRlIHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTV0aCwgMjAxMQpteSAkRGVsZXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICBZZWFyICAgPT4gJzIwMTEnLAogICAgTW9udGggID0+ICcxJywKICAgIERheSAgICA9PiAnMTUnLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB3b3JraW5nIHVuaXRzIHdlcmUgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQKJFNlbGYtPlRydWUoCiAgICAkRGVsZXRlLAogICAgJ0RlbGV0ZSB3b3JraW5nIHVuaXRzIGZvciB0ZXN0JywKKTsKCiMgZ2V0IHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTV0aCwgMjAxMQpteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgWWVhciAgID0+ICcyMDExJywKICAgIE1vbnRoICA9PiAnMScsCiAgICBEYXkgICAgPT4gJzE1JywKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgbm9uZXhpc3RlbmNlIG9mIHRoZSBkZWxldGVkIHdvcmtpbmcgdW5pdHMKJFNlbGYtPklzKAogICAgJFdvcmtpbmdVbml0c0RhdGF7VG90YWx9LAogICAgJzAnLAogICAgJ1ZlcmlmeSBub25leGlzdGVuY2Ugb2YgdGhlIGRlbGV0ZWQgd29ya2luZyB1bml0cycsCik7CgojIHNldCB0byBpbnZhbGlkIGFsbCByZWdpc3RyaWVzIHVzZWQgZm9yIHRoZSB0ZXN0cwokVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgQWN0aW9uSUQgICAgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgIEFjdGlvbiAgICAgICA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgIEFjdGlvblN0YXR1cyA9PiAwLAopOwoKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NVcGRhdGUoCiAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFByb2plY3RJRCwKICAgIFByb2plY3QgICAgICAgICAgICA9PiAkTmV3UHJvamVjdERhdGF7UHJvamVjdH0gLiAnbW9kaWZpZWQnLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAwLAopOwoKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICBVc2VySUQgICAgICAgID0+ICRVc2VySUQsCiAgICBEZXNjcmlwdGlvbiAgID0+ICdUZXN0IHVzZXInLAogICAgQ3JlYXRlUHJvamVjdCA9PiAwLAogICAgU2hvd092ZXJ0aW1lICA9PiAwLAogICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDExLTAxLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTEtMDEtMzEnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnNTAnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMTAnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMjAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgMiA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDExLTAyLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTEtMDItMjgnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzAnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnNScsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcxMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDAsCiAgICAgICAgfSwKICAgIH0sCik7CgojIGNsZWFudXAgaXMgZG9uZSBieSBSZXN0b3JlRGF0YWJhc2UuCgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IFN5c0NvbmZpZyBvYmplY3QKICAgICAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgZGlzYWJsZSBNYXNzRW50cnkgZmVhdHVyZXMKICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlcicsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIG9iamVjdAogICAgICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBzeXN0ZW0gdGVzdCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyQ3VycmVudC0kTW9udGhDdXJyZW50LSREYXlDdXJyZW50IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIpOwoKICAgICAgICAjIGFkZCBhZGRpdGlvbmFsIHJvdwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQGlkPSdNb3JlSW5wdXRGaWVsZHMnXVtcQHR5cGU9J2J1dHRvbiddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayB0aW1lIGFjY291bnRpbmcgZWRpdCBmaWVsZCBJRHMsIGZpcnN0IGFuZCBhZGRlZCByb3cKICAgICAgICBmb3IgbXkgJFJvdyAoIDEsIDkgKSB7CiAgICAgICAgICAgIGZvciBteSAkRWRpdEZpZWxkSUQgKAogICAgICAgICAgICAgICAgcXcoUHJvamVjdElEIEFjdGlvbklEIFJlbWFyayBTdGFydFRpbWUgRW5kVGltZSBQZXJpb2QpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJEVkaXRGaWVsZElEJFJvdyIsICdjc3MnICk7CiAgICAgICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciBteSAkRWRpdFJlc3RJRCAoCiAgICAgICAgICAgIHF3KE1vbnRoIERheSBZZWFyIERheURhdGVwaWNrZXJJY29uIE5hdmlnYXRpb25TZWxlY3QgSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRFZGl0UmVzdElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBlZGl0IHRpbWUgYWNjb3VudGluZyBmb3IgdGVzdCBjcmVhdGVkIHVzZXIKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNQcm9qZWN0SUQxJykudmFsKCckUHJvamVjdElEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0FjdGlvbklEMScpLnZhbCgnJEFjdGlvbklEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSZW1hcmsxIiwgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSB0ZXN0IHJlbWFyaycpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N0YXJ0VGltZTEiLCAnY3NzJyApLT5zZW5kX2tleXMoJzEwOjAwJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRW5kVGltZTEiLCAgICdjc3MnICktPnNlbmRfa2V5cyggJzE2OjAwJywgIlx0IiApOwoKICAgICAgICAjIHN1Ym1pdCB3b3JrIGFjY291bnRpbmcgZWRpdCB0aW1lIHJlY29yZAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhhdCBwZXJpb2QgY2FsY3VsYXRlIGNvcnJlY3QgdGltZQogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUGVyaW9kMSIsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAnNi4wMCcsCiAgICAgICAgICAgICJQZXJpb2QgdGltZSBjb3JyZWN0bHkgY2FsY3VsYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgc3VibWl0IG1lc3NhZ2UKICAgICAgICBteSAkU3VibWl0TWVzc2FnZSA9ICdTdWNjZXNzZnVsIGluc2VydCEnOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFN1Ym1pdE1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJFN1Ym1pdE1lc3NhZ2UgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0ZXN0IHRpbWUKICAgICAgICBteSAoICRTZWNDdXJyZW50LCAkTWluQ3VycmVudCwgJEhvdXJDdXJyZW50LCAkRGF5Q3VycmVudCwgJE1vbnRoQ3VycmVudCwgJFllYXJDdXJyZW50ICkKICAgICAgICAgICAgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICAgICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgZW5kIHRpbWUgKyAxIGRheSBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNFbmQsICRNaW5FbmQsICRIb3VyRW5kLCAkRGF5RW5kLCAkTW9udGhFbmQsICRZZWFyRW5kICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7Iik7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB2ZXJpZnkgQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IHZhbHVlcwogICAgICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwogICAgICAgIG15IEBUZXN0ID0gKAogICAgICAgICAgICAkUHJvamVjdFRpdGxlLCAkQWN0aW9uVGl0bGUsICdUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3JywgJ09uIG92ZXJ0aW1lIGxlYXZlJywgJ092ZXJ0aW1lIChIb3VycyknLAogICAgICAgICAgICAnVmFjYXRpb24gKERheXMpJywgJ1NpY2sgTGVhdmUgKERheXMpJywgQFdlZWtkYXlBcnJheQogICAgICAgICk7CgogICAgICAgIGZvciBteSAkQ2hlY2sgKEBUZXN0KSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGVjayApID4gLTEsCiAgICAgICAgICAgICAgICAiJENoZWNrIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgc2V0IE1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cyBTeXNDb25maWcgb24gNTAgZGF5cyBmb3IgdGVzdCBwdXJwb3NlCiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMnLAogICAgICAgICAgICBWYWx1ZSA9PiA1MCwKICAgICAgICApOwoKICAgICAgICAjIHVzZSBhIGNhbGVuZGFyIHdpdGggdGhlIHNhbWUgYnVzaW5lc3MgaG91cnMgZm9yIGV2ZXJ5IGRheSBzbyB0aGF0IHRoZSBVVCBydW5zIGNvcnJlY3RseQogICAgICAgICMgb24gZXZlcnkgZGF5IG9mIHRoZSB3ZWVrIGFuZCBvdXRzaWRlIHVzdWFsIGJ1c2luZXNzIGhvdXJzLgogICAgICAgIG15ICVXZWVrOwogICAgICAgIG15IEBEYXlzID0gcXcoU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0KTsKICAgICAgICBmb3IgbXkgJERheSAoQERheXMpIHsKICAgICAgICAgICAgJFdlZWt7JERheX0gPSBbIDAgLi4gMjMgXTsKICAgICAgICB9CiAgICAgICAgJENvbmZpZ09iamVjdC0+U2V0KAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnLCAndGltZV9hY2NvdW50aW5nJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIGdldCB0ZXN0IHVzZXIgSUQKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgaW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBvYmplY3QKICAgICAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgICAgICMgZ2V0IHRlc3Qgc3RhcnQgdGltZSAtIDQwIGRheXMgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjU3RhcnQsICRNaW5TdGFydCwgJEhvdXJTdGFydCwgJERheVN0YXJ0LCAkTW9udGhTdGFydCwgJFllYXJTdGFydCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgd29yayB0ZXN0IHRpbWUgKyAxIHNlY29uZCB0aGVuIHN0YXJ0IHRpbWUKICAgICAgICBteSAoICRTZWNDdXJyZW50LCAkTWluQ3VycmVudCwgJEhvdXJDdXJyZW50LCAkRGF5Q3VycmVudCwgJE1vbnRoQ3VycmVudCwgJFllYXJDdXJyZW50ICkKICAgICAgICAgICAgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgLSA2MCAqIDYwICogMjQgKiA0MCArIDEsCiAgICAgICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgZW5kIHRpbWUgKyAxIGRheSBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNFbmQsICRNaW5FbmQsICRIb3VyRW5kLCAkRGF5RW5kLCAkTW9udGhFbmQsICRZZWFyRW5kICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyIpOwoKICAgICAgICAjIHNlbGVjdCBtb250aCBhbmQgeWVhciB0aGF0IGFyZSB1c2VkIGZvciB0ZXN0aW5nCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTW9udGggb3B0aW9uW3ZhbHVlPSckTW9udGhTdGFydCddIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNZZWFyIG9wdGlvblt2YWx1ZT0nJFllYXJTdGFydCddIiwgICAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hdmlnYXRpb25TZWxlY3QiLCAgICAgICAgICAgICAgICAgICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBwYWdlIGxheW91dAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyBsaW5rIHRvIHRlc3QgdXNlciByZXBvcnRzCiAgICAgICAgbXkgJFVzZXJSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkVGVzdFVzZXJMb2dpbiAkVGVzdFVzZXJMb2dpbiIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgbGluayB0byB0ZXN0IHVzZXIgcHJvamVjdCByZXBvcnRzCiAgICAgICAgbXkgJFByb2plY3RSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkUHJvamVjdFRpdGxlIiwgJ2xpbmtfdGV4dCcgKTsKICAgICAgICAkUHJvamVjdFJlcG9ydEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkUHJvamVjdFJlcG9ydEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwoKICAgICAgICAjIHNlbGVjdCB0ZXN0IGNyZWF0ZWQgcHJvamVjdAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAkUHJvamVjdFRpdGxlLCAnbGlua190ZXh0JyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgcGFnZSBsYXlvdXQKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgdGVzdCBjcmVhdGVkIGFjdGlvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEFjdGlvblRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRBY3Rpb25UaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhbm90aGVyIHRlc3QgdXNlcgogICAgICAgIG15ICRUZXN0VXNlciA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKCk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlciwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZyIpOwoKICAgICAgICAjIGNoZWNrIHRpbWUgYWNjb3VudCBzZXR0aW5nIHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRTZXR0aW5nUGFnZUlEICgKICAgICAgICAgICAgcXcoTmV3VXNlcklEIEZpbHRlclByb2plY3RzIEZpbHRlclRhc2tzIEZpbHRlclVzZXJzIENvcmVfVUlfQXV0b2dlbmVyYXRlZElEXzAKICAgICAgICAgICAgQ29yZV9VSV9BdXRvZ2VuZXJhdGVkSURfMSBDb3JlX1VJX0F1dG9nZW5lcmF0ZWRJRF8yKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRTZXR0aW5nUGFnZUlEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBidXR0b25zCiAgICAgICAgZm9yIG15ICRTZXR0aW5nQnV0dG9uICggJ0FkZCcsICdBZGQgdGFzaycsICdOZXcgdXNlcicgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nJFNldHRpbmdCdXR0b24nXVtcQHR5cGU9J3N1Ym1pdCddIik7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY2xpY2sgb24gJ0FkZCBwcm9qZWN0JwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBwcm9qZWN0IHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRQcm9qZWN0UGFnZUlEIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbiBQcm9qZWN0U3RhdHVzKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJFByb2plY3RQYWdlSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlICAgICAgID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3QiLCAgICAgICAgICAgICdjc3MnICktPnNlbmRfa2V5cygkUHJvamVjdFRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNQcm9qZWN0RGVzY3JpcHRpb24iLCAnY3NzJyApLT5zZW5kX2tleXMoJFByb2plY3REZXNjcmlwdGlvbik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIHZlcmlmeSBjcmVhdGVkIHRlc3QgcHJvamVjdAogICAgICAgIGZvciBteSAkUHJvamVjdFZlcmlmeSAoICRQcm9qZWN0VGl0bGUsICRQcm9qZWN0RGVzY3JpcHRpb24gKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRQcm9qZWN0VmVyaWZ5ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkUHJvamVjdFZlcmlmeSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNsaWNrIG9uICdBZGQgdGFzaycKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkIHRhc2snXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayB0YXNrIHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRUYXNrUGFnZUlEIChxdyhUYXNrIFRhc2tTdGF0dXMpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkVGFza1BhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHRlc3QgdGFzawogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdUYXNrICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Rhc2siLCAnY3NzJyApLT5zZW5kX2tleXMoJEFjdGlvblRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgdmVyaWZ5IGNyZWF0ZWQgdGVzdCB0YXNrCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQWN0aW9uVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEFjdGlvblRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0ZXN0IHVzZXIgdG8gdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNOZXdVc2VySUQnKS52YWwoJyRUZXN0VXNlcklEJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nTmV3IHVzZXInXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBlZGl0IHVzZXIgcGFnZQogICAgICAgIGZvciBteSAkRWRpdFVzZXJQYWdlSUQgKAogICAgICAgICAgICBxdyhEZXNjcmlwdGlvbiBTaG93T3ZlcnRpbWUgQ3JlYXRlUHJvamVjdCBDYWxlbmRhciBEYXRlU3RhcnQtMSBEYXRlRW5kLTEgTGVhdmVEYXlzLTEKICAgICAgICAgICAgV2Vla2x5SG91cnMtMSBPdmVydGltZS0xIFBlcmlvZFN0YXR1cy0xKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRFZGl0VXNlclBhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgY2xpY2sgJ0FkZCB0aW1lIHBlcmlvZCcKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkIHRpbWUgcGVyaW9kJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgZm9yIG5ldyBhZGRlZCB0aW1lIHBlcmlvZCBmaWVsZHMKICAgICAgICBmb3IgbXkgJE5ld1RpbWVQZXJpb2RJRCAocXcoRGF0ZVN0YXJ0LTIgRGF0ZUVuZC0yIExlYXZlRGF5cy0yIFdlZWtseUhvdXJzLTIgT3ZlcnRpbWUtMiBQZXJpb2RTdGF0dXMtMikpCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyROZXdUaW1lUGVyaW9kSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGVkaXQgdXNlciBzZXR0aW5nCiAgICAgICAgbXkgJFVzZXJEZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHVzZXIgc2V0dGluZyc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAgICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAgICdjc3MnICktPnNlbmRfa2V5cygkVXNlckRlc2NyaXB0aW9uKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTaG93T3ZlcnRpbWUiLCAgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDcmVhdGVQcm9qZWN0IiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIHZlcmlmeSB0ZXN0IHVzZXIgc2V0dGluZwogICAgICAgIG15ICRTZXR0aW5nVXNlciA9ICIkVGVzdFVzZXIgJFRlc3RVc2VyICgkVGVzdFVzZXIpIjsKICAgICAgICBmb3IgbXkgJFNldHRpbmdVc2VyVmVyaWZ5ICggJFNldHRpbmdVc2VyLCAkVXNlckRlc2NyaXB0aW9uICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkU2V0dGluZ1VzZXJWZXJpZnkgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRTZXR0aW5nVXNlclZlcmlmeSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBuZWVkZWQgb2JqZWN0CiAgICAgICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBzZXQgTWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIFN5c0NvbmZpZyBvbiA1MCBkYXlzIGZvciB0ZXN0IHB1cnBvc2UKICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IDUwLAogICAgICAgICk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICd0aW1lX2FjY291bnRpbmcnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aW1lIG9iamVjdAogICAgICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAgICAgIyBnZXQgdGVzdCBzdGFydCB0aW1lIC0gNDAgZGF5cyBvZiBjdXJyZW50IHRpbWUKICAgICAgICBteSAoICRTZWNTdGFydCwgJE1pblN0YXJ0LCAkSG91clN0YXJ0LCAkRGF5U3RhcnQsICRNb250aFN0YXJ0LCAkWWVhclN0YXJ0ICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkgLSA2MCAqIDYwICogMjQgKiA0MCwKICAgICAgICApOwoKICAgICAgICAjIGdldCB3b3JrIHRlc3QgdGltZSArIDEgc2Vjb25kIHRoZW4gc3RhcnQgdGltZQogICAgICAgIG15ICggJFNlY0N1cnJlbnQsICRNaW5DdXJyZW50LCAkSG91ckN1cnJlbnQsICREYXlDdXJyZW50LCAkTW9udGhDdXJyZW50LCAkWWVhckN1cnJlbnQgKQogICAgICAgICAgICA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwICsgMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGVzdCBlbmQgdGltZSArIDEgZGF5IG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY0VuZCwgJE1pbkVuZCwgJEhvdXJFbmQsICREYXlFbmQsICRNb250aEVuZCwgJFllYXJFbmQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSArIDYwICogNjAgKiAyNCwKICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdWaWV3IG9mIHRlc3QgY3JlYXRlZCB3b3JrIHVuaXQgZGF5CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdWaWV3O1llYXI9JFllYXJDdXJyZW50O01vbnRoPSRNb250aEN1cnJlbnQ7RGF5PSREYXlDdXJyZW50O1VzZXJJRD0kVGVzdFVzZXJJRCIKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHBhZ2UgbGF5b3V0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgY2hlY2sgdGltZSBhY2NvdW50aW5nIHZpZXcgcGFnZSBJRHMKICAgICAgICBmb3IgbXkgJElEIChxdyhNb250aCBEYXkgWWVhciBEYXlEYXRlcGlja2VySWNvbiBOYXZpZ2F0aW9uU2VsZWN0IExlYXZlRGF5IFNpY2sgT3ZlcnRpbWUpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciB0ZXN0IHByb2plY3QgYW5kIGFjdGlvbgogICAgICAgIGZvciBteSAkQ2hlY2sgKCAkUHJvamVjdFRpdGxlLCAkQWN0aW9uVGl0bGUgKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGVjayApID4gLTEsCiAgICAgICAgICAgICAgICAiJENoZWNrIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCB0ZXN0IHN0YXJ0IHRpbWUgLSA0MCBkYXlzIG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY1N0YXJ0LCAkTWluU3RhcnQsICRIb3VyU3RhcnQsICREYXlTdGFydCwgJE1vbnRoU3RhcnQsICRZZWFyU3RhcnQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgdGVzdCB0aW1lICsgMSBzZWNvbmQgdGhlbiBzdGFydCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAgKyAxLAogICAgICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZXN0IGVuZCB0aW1lICsgMSBkYXkgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjRW5kLCAkTWluRW5kLCAkSG91ckVuZCwgJERheUVuZCwgJE1vbnRoRW5kLCAkWWVhckVuZCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyBub3RpZmljYXRpb24gbWVzc2FnZQogICAgICAgIG15ICROb3RpZmljYXRpb25NZXNzYWdlID0gJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISc7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkTm90aWZpY2F0aW9uTWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkTm90aWZpY2F0aW9uTWVzc2FnZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkQ29uZmlnT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJywgJ3RpbWVfYWNjb3VudGluZycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCB0ZXN0IHN0YXJ0IHRpbWUgLSA0MCBkYXlzIG9mIGN1cnJlbnQgdGltZQogICAgICAgIG15ICggJFNlY1N0YXJ0LCAkTWluU3RhcnQsICRIb3VyU3RhcnQsICREYXlTdGFydCwgJE1vbnRoU3RhcnQsICRZZWFyU3RhcnQgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSAtIDYwICogNjAgKiAyNCAqIDQwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHdvcmsgdGVzdCB0aW1lICsgMSBzZWNvbmQgdGhlbiBzdGFydCB0aW1lCiAgICAgICAgbXkgKCAkU2VjQ3VycmVudCwgJE1pbkN1cnJlbnQsICRIb3VyQ3VycmVudCwgJERheUN1cnJlbnQsICRNb250aEN1cnJlbnQsICRZZWFyQ3VycmVudCApCiAgICAgICAgICAgID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpIC0gNjAgKiA2MCAqIDI0ICogNDAgKyAxLAogICAgICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZXN0IGVuZCB0aW1lICsgMSBkYXkgb2YgY3VycmVudCB0aW1lCiAgICAgICAgbXkgKCAkU2VjRW5kLCAkTWluRW5kLCAkSG91ckVuZCwgJERheUVuZCwgJE1vbnRoRW5kLCAkWWVhckVuZCApID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIHZlcmlmeSB0aGVyZSBpcyB0b29sIGJhciBmb3IgaW5jb21wbGV0ZSBkYXlzCiAgICAgICAgbXkgJFRvb2xCYXJJbmNvbXBsZXRlRGF5cyA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEB0aXRsZSwgXCdJbmNvbXBsZXRlIHdvcmtpbmcgZGF5czonKV0iKTsKICAgICAgICAkVG9vbEJhckluY29tcGxldGVEYXlzLT5pc19lbmFibGVkKCk7CiAgICAgICAgJFRvb2xCYXJJbmNvbXBsZXRlRGF5cy0+aXNfZGlzcGxheWVkKCk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBDb25maXJtYXRpb25EaWFsb2cuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAcHJpdmF0ZQogICAgICogQG5hbWUgRGlhbG9nRGF0YQogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQG1lbWJlciB7QXJyYXl9CiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyB2YXJpYWJsZSBzdG9yZXMgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgcGFzc2VkIGZyb20gdGhlIERUTCBhbmQgY29udGFpbiBhbGwgdGhlIGRhdGEgdGhhdCB0aGUgZGlhbG9nIG5lZWRzLgogICAgICovCiAgICB2YXIgRGlhbG9nRGF0YSA9IFtdOwoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIFNob3dXYWl0aW5nRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBQb3NpdGlvblRvcCAtIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBkaWFsb2cuCiAgICAgKiBAZGVzY3JpcHRpb24gU2hvd3Mgd2FpdGluZyBkaWFsb2cgdW50aWwgc2VhcmNoIHNjcmVlbiBpcyByZWFkeS4KICAgICAqLwogICAgZnVuY3Rpb24gU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApewogICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCc8ZGl2IGNsYXNzPSJTcGFjaW5nIENlbnRlciI+PHNwYW4gY2xhc3M9IkFKQVhMb2FkZXIiIHRpdGxlPSInICsgQ29yZS5Db25maWcuR2V0KCdMb2FkaW5nTXNnJykgKyAnIj48L3NwYW4+PC9kaXY+JywgJycsIFBvc2l0aW9uVG9wLCAnQ2VudGVyJywgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBTaG93Q29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBmYWxzZS4KICAgICAqIEBwYXJhbSB7RXZlbnRPYmplY3R9IEV2ZW50IC0gZXZlbnQgb2JqZWN0IG9mIHRoZSBjbGlja2VkIGVsZW1lbnQuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBzaG93cyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8gb3IgYSBtZXNzYWdlIGRpYWxvZyB3aXRoIG9uZSBidXR0b246IE9rLgogICAgICovCiAgICBUYXJnZXROUy5TaG93Q29uZmlybWF0aW9uRGlhbG9nID0gZnVuY3Rpb24gKEV2ZW50KSB7CgogICAgICAgIHZhciBMb2NhbERpYWxvZ0RhdGEsCiAgICAgICAgICAgIFBvc2l0aW9uVG9wLAogICAgICAgICAgICBEYXRhLAogICAgICAgICAgICBCdXR0b25zOwoKICAgICAgICAvLyBnZXQgZ2xvYmFsIHNhdmVkIERpYWxvZ0RhdGEgZm9yIHRoaXMgZnVuY3Rpb24KICAgICAgICBMb2NhbERpYWxvZ0RhdGEgPSBEaWFsb2dEYXRhWyQoRXZlbnQudGFyZ2V0KS5hdHRyKCdpZCcpXTsKCiAgICAgICAgLy8gZGVmaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nCiAgICAgICAgUG9zaXRpb25Ub3AgPSAkKHdpbmRvdykuaGVpZ2h0KCkgKiAwLjM7CgogICAgICAgIC8vIHNob3cgd2FpdGluZyBkaWFsb2cKICAgICAgICBTaG93V2FpdGluZ0RpYWxvZyhQb3NpdGlvblRvcCk7CgogICAgICAgIC8vIGFqYXggY2FsbCB0byB0aGUgbW9kdWxlIHRoYXQgZXhlY3V0ZXMgdGhlIGFjdGlvbiB3aGVuIHByZXNzaW5nIHRoZSBjb25maXJtYXRpb24gYnV0dG9uCiAgICAgICAgRGF0YSA9IExvY2FsRGlhbG9nRGF0YS5EaWFsb2dDb250ZW50UXVlcnlTdHJpbmc7CiAgICAgICAgQ29yZS5BSkFYLkZ1bmN0aW9uQ2FsbChDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJyksIERhdGEsIGZ1bmN0aW9uIChSZXNwb25zZSkgewoKICAgICAgICAgICAgLy8gJ0NvbmZpcm1hdGlvbicgb3BlbnMgYSBkaWFsb2cgd2l0aCAyIGJ1dHRvbnM6IFllcyBhbmQgTm8KICAgICAgICAgICAgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdDb25maXJtYXRpb24nKSB7CgogICAgICAgICAgICAgICAgLy8gZGVmaW5lIHllcyBhbmQgbm8gYnV0dG9ucwogICAgICAgICAgICAgICAgQnV0dG9ucyA9IFt7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ZZXMsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKCiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSAnWWVzJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbigpewoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG1vZHVsZSB0aGF0IGRvZXMgdGhlIGNvbmZpcm1lZCBhY3Rpb24gYWZ0ZXIgcHJlc3NpbmcgdGhlIFllcyBidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArIExvY2FsRGlhbG9nRGF0YS5Db25maXJtZWRBY3Rpb25RdWVyeVN0cmluZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExvY2FsRGlhbG9nRGF0YS5UcmFuc2xhdGVkVGV4dC5ObywKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gJ01lc3NhZ2UnIG9wZW5zIGEgZGlhbG9nIHdpdGggMSBidXR0b246IE9rCiAgICAgICAgICAgIGVsc2UgaWYgKFJlc3BvbnNlLkRpYWxvZ1R5cGUgPT09ICdNZXNzYWdlJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBPayBidXR0b24KICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuT2ssCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiCiAgICAgICAgICAgICAgICB9XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gc2hvdyB0aGUgY29uZmlybWF0aW9uIGRpYWxvZyB0byBjb25maXJtIHRoZSBhY3Rpb24KICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coUmVzcG9uc2UuSFRNTCwgTG9jYWxEaWFsb2dEYXRhLkRpYWxvZ1RpdGxlLCBQb3NpdGlvblRvcCwgIkNlbnRlciIsIHRydWUsIEJ1dHRvbnMpOwogICAgICAgIH0sICdqc29uJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfTsKCiAgICAvKioKICAgICAqIEBuYW1lIEJpbmRDb25maXJtYXRpb25EaWFsb2cKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IERhdGEgLSBEaWFsb2dEYXRhLgogICAgICogQGRlc2NyaXB0aW9uICBCaW5kcyBjb25mb3JtYXRpb24gZGlhbG9nIHRvIGFuIGVsZW1lbnQKICAgICAqLwogICAgVGFyZ2V0TlMuQmluZENvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uIChEYXRhKSB7CiAgICAgICAgRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0gPSBEYXRhOwoKICAgICAgICAvLyBiaW5kaW5nIGEgY2xpY2sgZXZlbnQgdG8gdGhlIGRlZmluZWQgZWxlbWVudAogICAgICAgICQoRGlhbG9nRGF0YVtEYXRhLkVsZW1lbnRJRF0uRWxlbWVudFNlbGVjdG9yKS5iaW5kKCdjbGljaycsIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5TaG93Q29uZmlybWF0aW9uRGlhbG9nKTsKICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBkYXRlcGlja2VyIGZ1bmN0aW9uIGZvciBUQS4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgdmFyIFZhY2F0aW9uRGF5cywKICAgICAgICBWYWNhdGlvbkRheXNPbmVUaW1lLAogICAgICAgIExvY2FsaXphdGlvbkRhdGEsCiAgICAgICAgRGF0ZXBpY2tlckNvdW50ID0gMDsKCiAgICBpZiAoIUNvcmUuRGVidWcuQ2hlY2tEZXBlbmRlbmN5KCdDb3JlLlVJLkRhdGVwaWNrZXInLCAnJChbXSkuZGF0ZXBpY2tlcicsICdqUXVlcnkgVUkgZGF0ZXBpY2tlcicpKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIENoZWNrRGF0ZQogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHJldHVybnMge09iamVjdH0gLSBhcnJheSB3aXRoIGRhdGUgZGF0YQogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9IERhdGVPYmplY3QgLSBvYmplY3QgdGhhdCB3aWxsIGJlIGNoZWNrZWQKICAgICAqIEBkZXNjcmlwdGlvbiBSZXZpZXcgaWYgYSBkYXRlIG9iamVjdCBoYXZlIGNvcnJlY3QgdmFsdWVzCiAgICAgKiAgICAgIElmIG5vIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgY2xvc2UgaXMgZ2l2ZW4gKHZpYSB0aGUgQnV0dG9uIGRlZmluaXRpb24pLAogICAgICogICAgICB0aGUgZGlhbG9nIGlzIGp1c3QgY2xvc2VkLiBPdGhlcndpc2UgdGhlIGRlZmluZWQgQ2xvc2UgYnV0dG9uIGlzIHRyaWdnZXJlZCwKICAgICAqICAgICAgd2hpY2ggaW52b2tlcyB0aGUgY2FsbGJhY2sgYW5kIHRoZSBjbG9zaW5nIG9mIHRoZSBkaWFsb2cuCiAgICAgKi8KICAgIGZ1bmN0aW9uIENoZWNrRGF0ZShEYXRlT2JqZWN0KSB7CiAgICAgICAgdmFyIERheURlc2NyaXB0aW9uID0gJycsCiAgICAgICAgICAgIERheUNsYXNzID0gJyc7CgogICAgICAgIC8vIEdldCBkZWZpbmVkIGRheXMgZnJvbSBDb25maWcsIGlmIG5vdCBkb25lIGFscmVhZHkKICAgICAgICBpZiAodHlwZW9mIFZhY2F0aW9uRGF5cyA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgVmFjYXRpb25EYXlzID0gQ29yZS5Db25maWcuR2V0KCdEYXRlcGlja2VyLlZhY2F0aW9uRGF5cycpLlRpbWVWYWNhdGlvbkRheXM7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgVmFjYXRpb25EYXlzT25lVGltZSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgVmFjYXRpb25EYXlzT25lVGltZSA9IENvcmUuQ29uZmlnLkdldCgnRGF0ZXBpY2tlci5WYWNhdGlvbkRheXMnKS5UaW1lVmFjYXRpb25EYXlzT25lVGltZTsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGlmIGRhdGUgaXMgb25lIG9mIHRoZSB2YWNhdGlvbiBkYXlzCiAgICAgICAgaWYgKHR5cGVvZiBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBEYXlEZXNjcmlwdGlvbiArPSBWYWNhdGlvbkRheXNbRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldOwogICAgICAgICAgICBEYXlDbGFzcyA9ICdIaWdobGlnaHQgJzsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGlmIGRhdGUgaXMgb25lIG9mIHRoZSBvbmUgdGltZSB2YWNhdGlvbiBkYXlzCiAgICAgICAgaWYgKHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV0gIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgICAgIHR5cGVvZiBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBEYXlEZXNjcmlwdGlvbiArPSBWYWNhdGlvbkRheXNPbmVUaW1lW0RhdGVPYmplY3QuZ2V0RnVsbFllYXIoKV1bRGF0ZU9iamVjdC5nZXRNb250aCgpICsgMV1bRGF0ZU9iamVjdC5nZXREYXRlKCldOwogICAgICAgICAgICBEYXlDbGFzcyA9ICdIaWdobGlnaHQgJzsKICAgICAgICB9CgogICAgICAgIGlmIChEYXlDbGFzcy5sZW5ndGgpIHsKICAgICAgICAgICAgcmV0dXJuIFt0cnVlLCBEYXlDbGFzcywgRGF5RGVzY3JpcHRpb25dOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIFt0cnVlLCAnJ107CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkRhdGVwaWNrZXIKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9ICRFbGVtZW50IFRoZSBqUXVlcnkgb2JqZWN0KHMpIG9mIGEgdGV4dCBpbnB1dCBmaWVsZCB3aGljaCBzaG91bGQgZ2V0IGEgZGF0ZXBpY2tlci4KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBEYXRlcGlja2VyT3B0aW9ucyBPYmplY3Qgd2l0aCB0d28gcG9zc2libGUga2V5czoKICAgICAqICAgICAgICAgICAgICAgICAgICAgIERhdGVJbkZ1dHVyZTogdHJ1ZXxmYWxzZSwKICAgICAqICAgICAgICAgICAgICAgICAgICAgIFdlZWtEYXlTdGFydDogMC03IChzdW5kYXkgLSBzYXR1cmRheSkKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBkYXRlcGlja2VyIG9uIHNpbmdsZSBlbGVtZW50cyBmb3IgVEEuCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IHlldCBhdmFpbGFibGUgaW4gdGhlIE9UUlMgQ29yZS4KICAgICAqICAgICAgSWYgaXQgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBPVFJTIENvcmUgd2UgY291bGQgcmVtb3ZlIHRoaXMgZmlsZSBoZXJlLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCRFbGVtZW50LCBEYXRlcGlja2VyT3B0aW9ucykgewogICAgICAgIHZhciAkRGF0ZXBpY2tlckVsZW1lbnQsCiAgICAgICAgICAgIE9wdGlvbnM7CgogICAgICAgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgbmVlZGVkCiAgICAgICAgLy8gZnVuY3Rpb24gTGVhZGluZ1plcm8oTnVtYmVyKSB7CiAgICAgICAgLy8gICAgIGlmIChOdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IDEpIHsKICAgICAgICAvLyAgICAgICAgIHJldHVybiAnMCcgKyBOdW1iZXI7CiAgICAgICAgLy8gICAgIH0KICAgICAgICAvLyAgICAgZWxzZSB7CiAgICAgICAgLy8gICAgICAgICByZXR1cm4gTnVtYmVyOwogICAgICAgIC8vICAgICB9CiAgICAgICAgLy8gfQoKICAgICAgICBpZiAodHlwZW9mIExvY2FsaXphdGlvbkRhdGEgPT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIExvY2FsaXphdGlvbkRhdGEgPSBDb3JlLkNvbmZpZy5HZXQoJ0RhdGVwaWNrZXIuTG9jYWxpemF0aW9uJyk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgTG9jYWxpemF0aW9uRGF0YSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb3JlLkV4Y2VwdGlvbi5BcHBsaWNhdGlvbkVycm9yKCdEYXRlcGlja2VyIGxvY2FsaXphdGlvbiBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZCEnLCAnSW50ZXJuYWxFcnJvcicpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBEZWZpbmUgb3B0aW9ucyBoYXNoCiAgICAgICAgT3B0aW9ucyA9IHsKICAgICAgICAgICAgICAgIGJlZm9yZVNob3dEYXk6IGZ1bmN0aW9uIChEYXRlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENoZWNrRGF0ZShEYXRlT2JqZWN0KTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBzaG93T246ICdmb2N1cycsCiAgICAgICAgICAgICAgICBwcmV2VGV4dDogTG9jYWxpemF0aW9uRGF0YS5QcmV2VGV4dCwKICAgICAgICAgICAgICAgIG5leHRUZXh0OiBMb2NhbGl6YXRpb25EYXRhLk5leHRUZXh0LAogICAgICAgICAgICAgICAgc2hvd01vbnRoQWZ0ZXJZZWFyOiAwLAogICAgICAgICAgICAgICAgZGF0ZUZvcm1hdDogJ3l5LW1tLWRkJywKICAgICAgICAgICAgICAgIG1vbnRoTmFtZXM6IExvY2FsaXphdGlvbkRhdGEuTW9udGhOYW1lcywKICAgICAgICAgICAgICAgIG1vbnRoTmFtZXNTaG9ydDogTG9jYWxpemF0aW9uRGF0YS5Nb250aE5hbWVzU2hvcnQsCiAgICAgICAgICAgICAgICBkYXlOYW1lczogTG9jYWxpemF0aW9uRGF0YS5EYXlOYW1lcywKICAgICAgICAgICAgICAgIGRheU5hbWVzU2hvcnQ6IExvY2FsaXphdGlvbkRhdGEuRGF5TmFtZXNTaG9ydCwKICAgICAgICAgICAgICAgIGRheU5hbWVzTWluOiBMb2NhbGl6YXRpb25EYXRhLkRheU5hbWVzTWluLAogICAgICAgICAgICAgICAgaXNSVEw6IExvY2FsaXphdGlvbkRhdGEuSXNSVEwKICAgICAgICB9OwoKICAgICAgICBPcHRpb25zLmJlZm9yZVNob3cgPSBmdW5jdGlvbiAoSW5wdXQpIHsKICAgICAgICAgICAgdmFyIFZhbHVlID0gJChJbnB1dCkucHJldkFsbCgnaW5wdXQ6dGV4dCcpLnZhbCgpOwogICAgICAgICAgICAkKElucHV0KS52YWwoJycpOwogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZGVmYXVsdERhdGU6IG5ldyBEYXRlKFZhbHVlKQogICAgICAgICAgICB9OwogICAgICAgIH07CgogICAgICAgIE9wdGlvbnMub25TZWxlY3QgPSBmdW5jdGlvbiAoRGF0ZVRleHQpIHsKICAgICAgICAgICAgJCh0aGlzKS5wcmV2QWxsKCdpbnB1dDp0ZXh0JykudmFsKERhdGVUZXh0KTsKICAgICAgICB9OwoKICAgICAgICBpZiAoaXNKUXVlcnlPYmplY3QoJEVsZW1lbnQpKSB7CiAgICAgICAgICAgICRFbGVtZW50LmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyICRTaW5nbGVFbGVtZW50ID0gJCh0aGlzKTsKICAgICAgICAgICAgICAgIGlmICgkU2luZ2xlRWxlbWVudC5pcygnaW5wdXQ6dGV4dCcpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gSW5jcmVtZW50IG51bWJlciBvZiBpbml0aWFsaXplZCBkYXRlcGlja2VycyBvbiB0aGlzIHNpdGUKICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyQ291bnQrKzsKCiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50ID0gJCgnPGlucHV0PicpLmF0dHIoJ3R5cGUnLCAnaGlkZGVuJykuYXR0cignaWQnLCAnRGF0ZXBpY2tlcicgKyBEYXRlcGlja2VyQ291bnQpOwogICAgICAgICAgICAgICAgICAgICRTaW5nbGVFbGVtZW50LmFmdGVyKCREYXRlcGlja2VyRWxlbWVudCk7CgogICAgICAgICAgICAgICAgICAgIE9wdGlvbnMuZmlyc3REYXkgPSBEYXRlcGlja2VyT3B0aW9ucy5XZWVrRGF5U3RhcnQ7CiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50LmRhdGVwaWNrZXIoT3B0aW9ucyk7CgogICAgICAgICAgICAgICAgICAgIC8vIGFkZCBkYXRlcGlja2VyIGljb24gYW5kIGNsaWNrIGV2ZW50CiAgICAgICAgICAgICAgICAgICAgJERhdGVwaWNrZXJFbGVtZW50LmFmdGVyKCc8YSBocmVmPSIjIiBjbGFzcz0iRGF0ZXBpY2tlckljb24gRGF0ZXBpY2tlck51bWJlcicgKyBEYXRlcGlja2VyQ291bnQgKyAnIiB0aXRsZT0iJyArIExvY2FsaXphdGlvbkRhdGEuSWNvblRleHQgKyAnIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FsZW5kYXIiPjwvaT48L3NwYW4+PC9hPicpOwogICAgICAgICAgICAgICAgICAgICREYXRlcGlja2VyRWxlbWVudC5uZXh0KCdhLkRhdGVwaWNrZXJJY29uJykuY2xpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQ2xhc3NlcyA9ICQodGhpcykuYXR0cignY2xhc3MnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVwaWNrZXJOdW1iZXIgPSBDbGFzc2VzLnJlcGxhY2UoL14uKkRhdGVwaWNrZXJOdW1iZXIoWzAtOV0rKS4qL2csICIkMSIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0RhdGVwaWNrZXInICsgRGF0ZXBpY2tlck51bWJlcikuZGF0ZXBpY2tlcignc2hvdycpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBzaG93IHRoZSBkYXRlcGlja2VyIGNvbnRhaW5lciBkaXYuCiAgICAgICAgICAgICAgICAgICAgJCgnI3VpLWRhdGVwaWNrZXItZGl2JykuaGlkZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKfShUaW1lQWNjb3VudGluZy5BZ2VudC5EYXRlcGlja2VyIHx8IHt9KSk7Cg==
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBlZGl0IHNjcmVlbi4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5BY3Rpb25MaXN0ID0gIiI7CiAgICBUYXJnZXROUy5BY3Rpb25MaXN0Q29uc3RyYWludHMgPSAiIjsKICAgIC8vIEFkZHMgb3B0aW9uIHRvIGEgc2VsZWN0aW9uCgogICAgZnVuY3Rpb24gQWRkU2VsZWN0aW9uT3B0aW9uKCRTZWxlY3Rpb25FbGVtZW50LCBPcHRpb25UZXh0LCBPcHRpb25WYWx1ZSwgU2VsZWN0ZWRPcHRpb24pIHsKICAgICAgICB2YXIgJE9wdGlvbiA9ICQoJzxvcHRpb24gdmFsdWU9IicgKyBPcHRpb25WYWx1ZSArICciPicgKyBPcHRpb25UZXh0ICsgJzwvb3B0aW9uPicpOwoKICAgICAgICBpZiAoT3B0aW9uVmFsdWUgPT09IFNlbGVjdGVkT3B0aW9uKSB7CiAgICAgICAgICAgICRPcHRpb24ucHJvcCgnc2VsZWN0ZWQnLCB0cnVlKTsKICAgICAgICB9CgogICAgICAgICRTZWxlY3Rpb25FbGVtZW50LmFwcGVuZCgkT3B0aW9uKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBuYW1lIEluaXQKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtTdHJpbmd9IFdvcmtpbmdVbml0SUQgLSBUaGUgSUQgb2YgdGhlIHdvcmtpbmcgdW5pdCB3ZSBhcmUgaW4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBGaWxscyBvcHRpb25zIG9mIGFjdGlvbiBzZWxlY3Rpb24gYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QKICAgICAqLwogICAgVGFyZ2V0TlMuRmlsbEFjdGlvbkxpc3QgPSBmdW5jdGlvbiAoV29ya2luZ1VuaXRJRCkgewogICAgICAgIHZhciBQcm9qZWN0TmFtZSA9ICQoJyNQcm9qZWN0SUQnICsgV29ya2luZ1VuaXRJRCArICcgb3B0aW9uOnNlbGVjdGVkJykudGV4dCgpLAogICAgICAgICAgICBBY3Rpb25MaXN0ID0gVGFyZ2V0TlMuQWN0aW9uTGlzdCwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0gVGFyZ2V0TlMuQWN0aW9uTGlzdENvbnN0cmFpbnRzLAogICAgICAgICAgICAkQWN0aW9uU2VsZWN0aW9uID0gJCgiI0FjdGlvbklEIiArIFdvcmtpbmdVbml0SUQpLAogICAgICAgICAgICBTZWxlY3RlZEFjdGlvbklEID0gJEFjdGlvblNlbGVjdGlvbi52YWwoKSwKICAgICAgICAgICAgT3B0aW9uQ291bnQgPSAwOwoKICAgICAgICAvLyByZW1vdmUgcHJldmlvdXMgYWN0aW9ucywgbGVhdmUgZmlyc3QgZWxlbWVudCAoZW1wdHkgZWxlbWVudCkKICAgICAgICAkQWN0aW9uU2VsZWN0aW9uLmZpbmQoJ29wdGlvbicpLmZpbHRlcignOm5vdCg6Zmlyc3QpJykucmVtb3ZlKCk7CgogICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICBBY3Rpb25OYW1lID0gdGhpc1sxXTsKCiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0Q29uc3RyYWludHMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBQcm9qZWN0TmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1swXSksCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZVJlZ0V4cCA9IG5ldyBSZWdFeHAodGhpc1sxXSk7CgogICAgICAgICAgICAgICAgLy8gYWRkIGFjdGlvbiB0byBzZWxlY3Rpb24KICAgICAgICAgICAgICAgIGlmIChQcm9qZWN0TmFtZVJlZ0V4cC50ZXN0KFByb2plY3ROYW1lKSAmJiBBY3Rpb25OYW1lUmVnRXhwLnRlc3QoQWN0aW9uTmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICBBZGRTZWxlY3Rpb25PcHRpb24oJEFjdGlvblNlbGVjdGlvbiwgQWN0aW9uTmFtZSwgQWN0aW9uSUQsIFNlbGVjdGVkQWN0aW9uSUQpOwogICAgICAgICAgICAgICAgICAgIE9wdGlvbkNvdW50Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBhbGwgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICAgICAgaWYgKCFPcHRpb25Db3VudCkgewogICAgICAgICAgICAvLyBpZ25vcmUgZmlyc3QgZWxlbWVudCBiZWNhdXNlIGl0J3MgdGhlIGVtcHR5IGVsZW1lbnQgd2hpY2ggaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBsaXN0CiAgICAgICAgICAgICQuZWFjaChBY3Rpb25MaXN0LCBmdW5jdGlvbiAoSW5kZXgpIHsKICAgICAgICAgICAgICAgIHZhciBBY3Rpb25JRCA9IHRoaXNbMF0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uTmFtZSA9IHRoaXNbMV07CiAgICAgICAgICAgICAgICBpZiAoSW5kZXggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgQWRkU2VsZWN0aW9uT3B0aW9uKCRBY3Rpb25TZWxlY3Rpb24sIEFjdGlvbk5hbWUsIEFjdGlvbklELCBTZWxlY3RlZEFjdGlvbklEKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfTsKCgogICAgZnVuY3Rpb24gSW5pdEFkZFJvdygpIHsKICAgICAgICAkKCcjTW9yZUlucHV0RmllbGRzJykudW5iaW5kKCdjbGljay5Nb3JlSW5wdXRGaWVsZHMnKS5iaW5kKCdjbGljay5Nb3JlSW5wdXRGaWVsZHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkTGFzdFJvdyA9ICQoJyNJbnNlcnRXb3JraW5nSG91cnMgdGJvZHkgdHIuV29ya2luZ0hvdXJzOmxhc3QnKSwKICAgICAgICAgICAgICAgICROZXdSb3csIE5ld1Jvd0hUTUwsCiAgICAgICAgICAgICAgICBSZWNvcmROdW1iZXIgPSBwYXJzZUludCgkKCcjUmVjb3Jkc051bWJlcicpLnZhbCgpLCAxMCkgKyAxOwoKICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5EZWFjdGl2YXRlKCQoJy5Xb3JraW5nSG91cnMnKSk7CiAgICAgICAgICAgICROZXdSb3cgPSAkTGFzdFJvdy5jbG9uZSgpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gJE5ld1Jvdy5odG1sKCk7CgogICAgICAgICAgICAvLyBOb3cgdGFrZSB0aGUgbGFzdCByb3cgYW5kIHJlcGxhY2UgYWxsIG51bWJlcnMgd2l0aCB0aGUgbmV3IHJlY29yZCBudW1iZXIKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUHJvamVjdElEWzAtOV0rL2csICdQcm9qZWN0SUQnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUHJvamVjdElEXFtbMC05XSsvZywgJ1Byb2plY3RJRFsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvRmlsbEFjdGlvbkxpc3RcKFswLTldKy9nLCAnRmlsbEFjdGlvbkxpc3QoJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0FjdGlvbklEWzAtOV0rL2csICdBY3Rpb25JRCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9BY3Rpb25JRFxbWzAtOV0rL2csICdBY3Rpb25JRFsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUmVtYXJrWzAtOV0rL2csICdSZW1hcmsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUmVtYXJrXFtbMC05XSsvZywgJ1JlbWFya1snICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvU3RhcnRUaW1lWzAtOV0rL2csICdTdGFydFRpbWUnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvU3RhcnRUaW1lXFtbMC05XSsvZywgJ1N0YXJ0VGltZVsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvRW5kVGltZVswLTldKy9nLCAnRW5kVGltZScgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9FbmRUaW1lXFtbMC05XSsvZywgJ0VuZFRpbWVbJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1BlcmlvZFswLTldKy9nLCAnUGVyaW9kJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL1BlcmlvZFxbWzAtOV0rL2csICdQZXJpb2RbJyArIFJlY29yZE51bWJlcik7CgogICAgICAgICAgICAvLyBOb3cgd3JpdGUgdGhpcyBIVE1MIGJhY2sgdG8gdGhlIGpxdWVyeSBvYmplY3QKICAgICAgICAgICAgJE5ld1Jvdy5odG1sKE5ld1Jvd0hUTUwpOwoKICAgICAgICAgICAgLy8gSWYgbGFzdCByb3cgY29udGFpbmVkIHZhbHVlcywgdGhlc2UgbXVzdCBiZSByZW1vdmVkCiAgICAgICAgICAgICROZXdSb3cKICAgICAgICAgICAgICAgIC5maW5kKCdpbnB1dDp0ZXh0JykudmFsKCcnKS5lbmQoKQogICAgICAgICAgICAgICAgLmZpbmQoJ3NlbGVjdCBvcHRpb24nKS5wcm9wKCdzZWxlY3RlZCcsIGZhbHNlKTsKCiAgICAgICAgICAgIC8vIE5vdyBhZGQgdGhpcyByb3cgdG8gdGhlIHRhYmxlCiAgICAgICAgICAgICRMYXN0Um93LmFmdGVyKCROZXdSb3cpOwoKICAgICAgICAgICAgLy8gU2F2ZSBuZXcgUmVjb3JkTnVtYmVyCiAgICAgICAgICAgICQoJyNSZWNvcmRzTnVtYmVyJykudmFsKFJlY29yZE51bWJlcik7CgogICAgICAgICAgICAvLyBSZS1pbml0aWF0ZSB0aGUgJ29kZC9ldmVuJyBjb2xvdXJzIG9mIHRoZSB0YWJsZQogICAgICAgICAgICAkKCcjSW5zZXJ0V29ya2luZ0hvdXJzIHRib2R5IHRyJykKICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnRXZlbicpCiAgICAgICAgICAgICAgICAuZmlsdGVyKCc6b2RkJykuYWRkQ2xhc3MoJ0V2ZW4nKTsKCiAgICAgICAgICAgIC8vIE1vZGVybml6ZSBmaWVsZHMKICAgICAgICAgICAgQ29yZS5VSS5JbnB1dEZpZWxkcy5BY3RpdmF0ZSgkKCcuV29ya2luZ0hvdXJzJykpOwogICAgICAgIH0pOwogICAgfQoKICAgIGZ1bmN0aW9uIFJlY2FsY3VsYXRlVG90YWxIb3VycygpIHsKICAgICAgICB2YXIgVG90YWwgPSAwOwogICAgICAgICQoJy5QZXJpb2QnKS5lYWNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIFZhbHVlID0gcGFyc2VGbG9hdCgkKHRoaXMpLnZhbCgpKTsKICAgICAgICAgICAgaWYgKCFpc05hTihWYWx1ZSkpIHsKICAgICAgICAgICAgICAgIFRvdGFsICs9IFZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgJCgnLlRvdGFsSG91cnMnKS50ZXh0KFRvdGFsLnRvRml4ZWQoMikpOwogICAgfQoKICAgIGZ1bmN0aW9uIEluaXRQZXJpb2RDYWxjdWxhdGlvbigpIHsKICAgICAgICAvLyBpbml0IGNhbGN1bGF0aW9uIG9mIHBlcmlvZCBmaWVsZCBhZnRlciB3b3JraW5nIGhvdXJzIHdoZXJlIGFkZGVkL3N1YnN0cmFjdGVkL3doYXRldmVyLi4uCiAgICAgICAgJCgnLlBlcmlvZCcpLnVuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJykuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgIHZhciBGaWVsZFZhbHVlID0gJCh0aGlzKS52YWwoKTsKCiAgICAgICAgICAgLy8gcmVwbGFjZSAsIHdpdGggLgogICAgICAgICAgIEZpZWxkVmFsdWUgPSBGaWVsZFZhbHVlLnJlcGxhY2UoLywvZywgIi4iKTsKCiAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGVudGVyZWQgdmFsdWUgb25seSBjb25zaXN0cyBvZiBhbGxvd2VkIHZhbHVlcwogICAgICAgICAgIC8vIGlmIG5vdCwgd2UgZG8gbm90IGV2YWwgZm9yIHNlY3VyaXR5IHJlYXNvbnMKICAgICAgICAgICBpZiAoRmllbGRWYWx1ZS5tYXRjaCgvXlswLTlcLitcLSBdKyQvKSkgewogICAgICAgICAgICAgICAvLyBDYWxjdWxhdGlvbgogICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBuby1ldmFsICovCiAgICAgICAgICAgICAgICAgICBGaWVsZFZhbHVlID0gZXZhbChGaWVsZFZhbHVlKTsKICAgICAgICAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBuby1ldmFsICovCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgY2F0Y2ggKENhbGNFcnJvcikgewogICAgICAgICAgICAgICAgICAgRmllbGRWYWx1ZSA9IDA7CiAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgIC8vIHNldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgJCh0aGlzKS52YWwoRmllbGRWYWx1ZS50b0ZpeGVkKDIpKTsKCiAgICAgICAgICAgICAgIC8vIG5vdyBTdGFydFRpbWUgYW5kIEVuZFRpbWUgd2lsbCBub3QgbWF0Y2ggdGhlIHBlcmlvZCBhbnltb3JlCiAgICAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGVzZSBlbnRyaWVzCiAgICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcuU3RhcnRUaW1lLCAuRW5kVGltZScpLnZhbCgnJyk7CgogICAgICAgICAgIH0KICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgJCh0aGlzKS52YWwoJycpOwogICAgICAgICAgIH0KCiAgICAgICAgICAgLy8gbm93IHJlLWNhbGN1bGF0ZSB0aGUgdG90YWwgaG91cnMgc3VtCiAgICAgICAgICAgUmVjYWxjdWxhdGVUb3RhbEhvdXJzKCk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIGluaXQgcGVyaW9kIGNhbGN1bGF0aW9uIG9uIHN0YXJ0dGltZSBhbmQgZW5kdGltZSBmaWVsZHMKICAgICAgICAkKCcuU3RhcnRUaW1lLCAuRW5kVGltZScpLnVuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJykuYmluZCgnY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFN0YXJ0VGltZSwgJEVuZFRpbWUsCiAgICAgICAgICAgICAgICBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIEVuZFRpbWVIb3VyLCBFbmRUaW1lTWludXRlLAogICAgICAgICAgICAgICAgU3RhcnREYXRlLCBFbmREYXRlLCBUb2RheSwKICAgICAgICAgICAgICAgIFBlcmlvZDsKCiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdTdGFydFRpbWUnKSkgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuRW5kVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcuU3RhcnRUaW1lJyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG9ubHkgY2FsY3VsYXRlIGlmIGJvdGggZmllbGRzIGFyZSBmaWxsZWQKICAgICAgICAgICAgaWYgKCRTdGFydFRpbWUudmFsKCkgJiYgJEVuZFRpbWUudmFsKCkpIHsKICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgaG91cnMgYW5kIG1pbnV0ZXMKICAgICAgICAgICAgICAgIFN0YXJ0VGltZUhvdXIgPSAkU3RhcnRUaW1lLnZhbCgpLnNwbGl0KC86LylbMF0gfHwgMDsKICAgICAgICAgICAgICAgIFN0YXJ0VGltZU1pbnV0ZSA9ICRTdGFydFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwogICAgICAgICAgICAgICAgRW5kVGltZUhvdXIgPSAkRW5kVGltZS52YWwoKS5zcGxpdCgvOi8pWzBdIHx8IDA7CiAgICAgICAgICAgICAgICBFbmRUaW1lTWludXRlID0gJEVuZFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBkYXRlIG9iamVjdHMKICAgICAgICAgICAgICAgIFRvZGF5ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIFN0YXJ0RGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIDApOwogICAgICAgICAgICAgICAgRW5kRGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBFbmRUaW1lSG91ciwgRW5kVGltZU1pbnV0ZSwgMCk7CgogICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICBQZXJpb2QgPSBFbmREYXRlLmdldFRpbWUoKSAtIFN0YXJ0RGF0ZS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICBQZXJpb2QgPSBQZXJpb2QgLyAoMTAwMCAqIDYwICogNjApOwoKICAgICAgICAgICAgICAgIC8vIHNldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oUGVyaW9kKSkgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKFBlcmlvZC50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKCcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge09iamVjdH0gT3B0aW9ucyB0aGUgZGlmZmVyZW50IHBvc3NpYmxlIG9wdGlvbnM6CiAgICAgKiAgICAgICAgICAgICAgICAgIFJlbWFya1JlZ0V4cENvbnRlbnQgLSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZvciB0aGUgcmVtYXJrIHZhbGlkYXRpb24gY2hlY2sKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFsbCBuZWVkZWQgSlMgZm9yIHRoZSBFZGl0IHNjcmVlbgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKE9wdGlvbnMpIHsKICAgICAgICB2YXIgTG9jYWxPcHRpb25zID0gT3B0aW9ucyB8fCB7fSwKICAgICAgICAgICAgUmVtYXJrUmVnRXhwQ29udGVudCA9IExvY2FsT3B0aW9ucy5SZW1hcmtSZWdFeHBDb250ZW50LAogICAgICAgICAgICAvLyBBZGQgc29tZSBzcGVjaWFsIHZhbGlkYXRpb24gbWV0aG9kcyBmb3IgdGhlIGVkaXQgc2NyZWVuCiAgICAgICAgICAgIC8vIERlZmluZSBhbGwgYXZhaWxhYmxlIGVsZW1lbnRzIChvbmx5IHRoZSBwcmVmaXhlcykgaW4gYSByb3cKICAgICAgICAgICAgRWxlbWVudFByZWZpeGVzID0gWydQcm9qZWN0SUQnLCAnQWN0aW9uSUQnLCAnUmVtYXJrJywgJ1N0YXJ0VGltZScsICdFbmRUaW1lJywgJ1BlcmlvZCddOwoKICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIHByb2plY3Q6IGlmIHNvbWUgb3RoZXIgZmllbGQgaW4gdGhpcyByb3cgaXMgZmlsbGVkLCB0aGUgcHJvamVjdCBzZWxlY3QgbXVzdCBiZSBmaWxsZWQsIHRvbwogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1Byb2plY3QnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElELAogICAgICAgICAgICAgICAgUmVzdWx0ID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vIEdldCBJRAogICAgICAgICAgICAvLyBPdXIgRWxlbWVudCBjYW4gYmUgdGhlIHNlbGVjdCBlbGVtZW50IG9yIHRoZSBhdXRvY29tcGxldGlvbiBpbnB1dCBmaWVsZAogICAgICAgICAgICBpZiAoJChFbGVtZW50KS5pcygnc2VsZWN0JykpIHsKICAgICAgICAgICAgICAgIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1Byb2plY3RJRCcsICcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIElEID0gJChFbGVtZW50KS5wcmV2QWxsKCdzZWxlY3QnKS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1Byb2plY3RJRCcsICcnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFWYWx1ZSkgewogICAgICAgICAgICAgICAgJC5lYWNoKEVsZW1lbnRQcmVmaXhlcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGlmICghUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzICE9PSAnUHJvamVjdElEJyAmJiAkKCcjJyArIHRoaXMgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBSZXN1bHQ7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0JywgewogICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqLwogICAgICAgICAgICBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0OiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSByZW1hcmtzOiBkZXBlbmRpbmcgb24gdGhlIHByb2plY3QsIHJlbWFya3MgbXVzdCBiZSBlbnRlcmVkIG9yIG5vdAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyaycsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnUmVtYXJrJywgJycpLAogICAgICAgICAgICAgICAgUmVtYXJrUmVnRXhwID0gbmV3IFJlZ0V4cCgiXigiICsgUmVtYXJrUmVnRXhwQ29udGVudCArICIpJCIpLAogICAgICAgICAgICAgICAgUmVtYXJrQ2hlY2sgPSBSZW1hcmtSZWdFeHAudGVzdCgkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSk7CgogICAgICAgICAgICBpZiAoJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAhKFJlbWFya0NoZWNrICYmIFZhbHVlLmxlbmd0aCA8IDgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyaycsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUmVtYXJrOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSBzdGFydCB0aW1lOiBpZiBhIHByb2plY3QgaXMgZ2l2ZW4gYW5kIG5vIHRpbWUgcGVyaW9kIGlzIGdpdmVuLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lJywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdTdGFydFRpbWUnLCAnJyk7CgogICAgICAgICAgICBpZiAoIVZhbHVlICYmICQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpICYmICEkKCcjUGVyaW9kJyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZScsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfU3RhcnRUaW1lOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSB0aW1lIHBlcmlvZDogaWYgYSBwcm9qZWN0IGlzIGdpdmVuIGFuZCBubyBzdGFydCB0aW1lIGlzIGdpdmVuLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZE1ldGhvZCgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kJywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdQZXJpb2QnLCAnJyk7CgogICAgICAgICAgICBpZiAoIVZhbHVlICYmICQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpICYmICEkKCcjU3RhcnRUaW1lJyArIElEKS52YWwoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgQ29yZS5Gb3JtLlZhbGlkYXRlLkFkZFJ1bGUoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZCcsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUGVyaW9kOiB0cnVlCiAgICAgICAgICAgIC8qZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICB9KTsKCiAgICAgICAgLy8gaW5pdGlhdGUgIm1vcmUgaW5wdXQgZmllbGRzIiBmdW5jdGlvbmFsaXR5CiAgICAgICAgSW5pdEFkZFJvdygpOwoKICAgICAgICAvLyBpbml0aWF0ZSBwZXJpb2QgY2FsY3VsYXRpb24KICAgICAgICBJbml0UGVyaW9kQ2FsY3VsYXRpb24oKTsKCiAgICAgICAgLy8gU2VsZWN0IG9ubHkgb25lIGNoZWNrYm94IGluIHRoZSBncm91cCAnQWJzZW5jZScKICAgICAgICAkKCIuQWJzZW5jZSBpbnB1dDpjaGVja2JveCIpLmNsaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5wcm9wKCJjaGVja2VkIiwgZmFsc2UpOwogICAgICAgICAgICAkKHRoaXMpLnByb3AoImNoZWNrZWQiLCB0cnVlKTsKICAgICAgICB9KTsKICAgIH07CgoKICAgIC8qKgogICAgICogQG5hbWUgTWFzc0VudHJ5SW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge09iamVjdH0gTGFuZ3VhZ2Ugb2JqZWN0IHdpdGggdGV4dCB0cmFuc2xhdGlvbnMKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBqYXZhc2NyaXB0IGZvciB0aGUgbWFzcyBlbnRyeSBmdW5jdGlvbmFsaXR5CiAgICAgKi8KICAgIFRhcmdldE5TLk1hc3NFbnRyeUluaXQgPSBmdW5jdGlvbihMYW5ndWFnZSkgewogICAgICAgICQoJyNJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwnKS51bmJpbmQoJ2NsaWNrLlNlbGVjdEFsbERheXMnKS5iaW5kKCdjbGljay5TZWxlY3RBbGxEYXlzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgU3RhdGUgPSAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnKTsKICAgICAgICAgICAgJCgndWwuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIGxpIGlucHV0OmNoZWNrYm94JykucHJvcCgnY2hlY2tlZCcsIFN0YXRlKTsKICAgICAgICB9KTsKICAgICAgICAkKCcjTWFzc0VudHJ5U3VibWl0JykudW5iaW5kKCdjbGljay5NYXNzRW50cnlTdWJtaXQnKS5iaW5kKCdjbGljay5NYXNzRW50cnlTdWJtaXQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkV29ya2luZ0RheUNoZWNrYm94ZXMgPSAkKCd1bC5JbmNvbXBsZXRlV29ya2luZ0RheXMgbGkgaW5wdXQ6Y2hlY2tib3g6Y2hlY2tlZCcpLmZpbHRlcignW25hbWUhPUluY29tcGxldGVXb3JraW5nRGF5LUFsbF0nKTsKCiAgICAgICAgICAgIGlmICghJFdvcmtpbmdEYXlDaGVja2JveGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgYWxlcnQoTGFuZ3VhZ2UuTXNnQ2hvb3NlT25lRGF5KTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2hvdyBvdmVybGF5CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCQoJyNNYXNzRW50cnlDb25maXJtRGlhbG9nJyksIExhbmd1YWdlLk1hc3NFbnRyeSwgJzE1MHB4JywgJ0NlbnRlcicsIHRydWUsIFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMYWJlbDogTGFuZ3VhZ2UuU3VibWl0LAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkU2VsZWN0ZWRSYWRpbyA9ICQoJyNNYXNzRW50cnlDb25maXJtUmFkaW8gbGkgaW5wdXQ6cmFkaW86Y2hlY2tlZCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWJzZW5jZVJlYXNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3RlZERhdGVzID0gJyc7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRTZWxlY3RlZFJhZGlvLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoTGFuZ3VhZ2UuTXNnQWJzZW5jZVJlYXNvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBhYnNlbmNlIHJlYXNvbgogICAgICAgICAgICAgICAgICAgICAgICBBYnNlbmNlUmVhc29uID0gJFNlbGVjdGVkUmFkaW8uZGF0YSgnYWJzZW5jZScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoQWJzZW5jZVJlYXNvbiA9PT0gJ0xlYXZlRGF5JykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPUxlYXZlRGF5XScpLnZhbCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBYnNlbmNlUmVhc29uID09PSAnU2ljaycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1TaWNrXScpLnZhbCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBYnNlbmNlUmVhc29uID09PSAnT3ZlcnRpbWUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9T3ZlcnRpbWVdJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2xsZWN0IGRhdGVzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ3VsLkluY29tcGxldGVXb3JraW5nRGF5cyBsaSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRGF0ZUl0ZW0gPSAkKHRoaXMpLmF0dHIoJ25hbWUnKS5yZXBsYWNlKC9JbmNvbXBsZXRlV29ya2luZ0RheS0vLCAiIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRGF0ZUl0ZW0gIT09ICdBbGwnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkRGF0ZXMgKz0gRGF0ZUl0ZW0gKyAnfCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9RGF0ZXNdJykudmFsKENvbGxlY3RlZERhdGVzKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgd2FpdGluZyBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5EaWFsb2c6dmlzaWJsZScpCiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuQ29udGVudEZvb3RlcicpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbmQoKQogICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLklubmVyQ29udGVudCcpCiAgICAgICAgICAgICAgICAgICAgICAgIC53aWR0aCgkKCcuRGlhbG9nOnZpc2libGUnKS5maW5kKCcuSW5uZXJDb250ZW50Jykud2lkdGgoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLmVtcHR5KCkKICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgnPHNwYW4gY2xhc3M9IkFKQVhMb2FkZXIiPjwvc3Bhbj4nKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN1Ym1pdCBmb3JtCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnknKS5zdWJtaXQoKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAnUHJpbWFyeScKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IExhbmd1YWdlLkNhbmNlbCwKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBDb3JlLlVJLkRpYWxvZy5DbG9zZURpYWxvZygkKCcuRGlhbG9nOnZpc2libGUnKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzIHx8IHt9KSk7Cg==
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMS4xOS4wL3F1bml0LmNzcyIgdHlwZT0idGV4dC9jc3MiLz4KCiAgICA8dGl0bGU+VGltZUFjY291bnRpbmcgZm9yIE9UUlMgJm5kYXNoOyBVbml0VGVzdCBSZXN1bHRzPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxoMSBpZD0icXVuaXQtaGVhZGVyIj5UaW1lQWNjb3VudGluZyBmb3IgT1RSUyAmbmRhc2g7IFVuaXRUZXN0IFJlc3VsdHM8L2gxPgogICAgPGgyIGlkPSJxdW5pdC1iYW5uZXIiPjwvaDI+CiAgICA8aDIgaWQ9InF1bml0LXVzZXJBZ2VudCI+PC9oMj4KICAgIDxvbCBpZD0icXVuaXQtdGVzdHMiPjwvb2w+CgoKICAgIDwhLS0gVW5pdFRlc3QgY29kZSBnb2VzIGhlcmUgLS0+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L3F1bml0LTEuMTkuMC9xdW5pdC5qcyI+PC9zY3JpcHQ+CiAgICA8IS0tCiAgICAgICAgTm93IGFsd2F5cyBsb2FkIGxpYnJhcnkgZmlyc3QgYW5kIHRoZW4gdGhlIFVuaXRUZXN0IGZpbGUgZm9yIGl0LgogICAgICAgIFRoZSBVbml0VGVzdCBmaWxlIGlzIHJlc3BvbnNpYmxlIGZvciBydW5uaW50IHRoZSB0ZXN0cy4KICAgIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktMi4xLjQvanF1ZXJ5LmpzIj48L3NjcmlwdD4KICAgIDwhLS08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1taWdyYXRlLTEuMi4xL2pxdWVyeS1taWdyYXRlLmpzIj48L3NjcmlwdD4tLT4KCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1wdWJzdWIvcHVic3ViLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvanF1ZXJ5LXZhbGlkYXRlLTEuMTQuMC9qcXVlcnkudmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktdWktMS4xMS40L2pxdWVyeS11aS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1qc3RyZWUtMy4xLjEvanF1ZXJ5LmpzdHJlZS5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5FeGNlcHRpb24uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5EZWJ1Zy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkRhdGEuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuSlNPTi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkNvbmZpZy5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5BcHAuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5BY2Nlc3NpYmlsaXR5LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuVUkuUmljaFRleHRFZGl0b3IuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5UcmVlU2VsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuVUkuSW5wdXRGaWVsZHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5EaWFsb2cuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Gb3JtLkVycm9yVG9vbHRpcHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Gb3JtLlZhbGlkYXRlLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL1RpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDb3JlLlVuaXRUZXN0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Vbml0VGVzdC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLlJ1blVuaXRUZXN0cygpOwogICAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4K
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTYgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgVGltZUFjY291bnRpbmcgPSBUaW1lQWNjb3VudGluZyB8fCB7fTsKVGltZUFjY291bnRpbmcuQWdlbnQgPSBUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fTsKClRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyA9IChmdW5jdGlvbiAoTmFtZXNwYWNlKSB7CiAgICBOYW1lc3BhY2UuUnVuVW5pdFRlc3RzID0gZnVuY3Rpb24oKXsKCiAgICAgICAgLyoKICAgICAgICAgKiBDcmVhdGUgYSBmb3JtIGNvbnRhaW5lciBmb3IgdGhlIHRlc3RzCiAgICAgICAgICovCiAgICAgICAgdmFyICRUZXN0Rm9ybSA9ICQoJzxmb3JtIGlkPSJUZXN0Rm9ybSI+PC9mb3JtPicpLAogICAgICAgICAgICAkVGFibGU7CgogICAgICAgIG1vZHVsZSgnVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzJyk7CiAgICAgICAgdGVzdCgnY2xpZW50LXNpZGUgdGltZSBwZXJpb2QgY2FsY3VsYXRpb25zJywgZnVuY3Rpb24oKXsKCiAgICAgICAgICAgIGV4cGVjdCgyMCk7CgogICAgICAgICAgICAkVGVzdEZvcm0uYXBwZW5kKCc8dGFibGU+PHRyPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZD48L3RkPjwvdHI+PC90YWJsZT4nKTsKICAgICAgICAgICAgJFRhYmxlID0gJFRlc3RGb3JtLmZpbmQoJ3RyOmVxKDApIHRkJyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iU3RhcnRUaW1lMSIgbmFtZT0iU3RhcnRUaW1lMSIgY2xhc3M9IlN0YXJ0VGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJFbmRUaW1lMSIgbmFtZT0iRW5kVGltZTEiIGNsYXNzPSJFbmRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlBlcmlvZDEiIG5hbWU9IlBlcmlvZDEiIGNsYXNzPSJQZXJpb2QiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZSA9ICRUZXN0Rm9ybS5maW5kKCd0cjplcSgxKSB0ZCcpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlN0YXJ0VGltZTIiIG5hbWU9IlN0YXJ0VGltZTIiIGNsYXNzPSJTdGFydFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iRW5kVGltZTIiIG5hbWU9IkVuZFRpbWUyIiBjbGFzcz0iRW5kVGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJQZXJpb2QyIiBuYW1lPSJQZXJpb2QyIiBjbGFzcz0iUGVyaW9kIiAvPicpOwogICAgICAgICAgICAkVGFibGUgPSAkVGVzdEZvcm0uZmluZCgndHI6ZXEoMikgdGQnKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJTdGFydFRpbWUzIiBuYW1lPSJTdGFydFRpbWUzIiBjbGFzcz0iU3RhcnRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IkVuZFRpbWUzIiBuYW1lPSJFbmRUaW1lMyIgY2xhc3M9IkVuZFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iUGVyaW9kMyIgbmFtZT0iUGVyaW9kMyIgY2xhc3M9IlBlcmlvZCIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPHNwYW4gaWQ9IlRvdGFsSG91cnMiIG5hbWU9IlRvdGFsSG91cnMiIGNsYXNzPSJUb3RhbEhvdXJzIj48L3NwYW4+Jyk7CiAgICAgICAgICAgICQoJ2JvZHknKS5hcHBlbmQoJFRlc3RGb3JtKTsKCiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFJ1biB0aGUgdGVzdHMKICAgICAgICAgICAgICovCgogICAgICAgICAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuSW5pdCgpOwoKICAgICAgICAgICAgLy8gVGVzdDogdGltZSBjYWxjdWxhdGlvbiBvbiB0aW1lIHBlcmlvZCBmaWVsZAogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMi4wMCcsICdOb3JtYWwgbnVtYmVyIGVudHJ5Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnZm9vYmFyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnTm90IGEgbnVtYmVyICg9ImZvb2JhciIpJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnMiArIDMnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzUuMDAnLCAnRWFzeSBjYWxjdWxhdGlvbicpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJ2FsZXJ0KCJodWh1Iik7Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnRXZpbCBqYXZhc2NyaXB0IGNvZGUnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjIzICsgMS4wOScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMy4zMicsICdDYWxjdWxhdGlvbiB3aXRoIG5vbi1pbnRlZ2VycycpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIuMDAwMSArIDEuNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMy41MCcsICdDYWxjdWxhdGlvbiB3aXRoIGEgbnVtYmVyIHdpdGggbW9yZSB0aGFuIDIgZGVjaW1hbHMnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcxLDIgKyAxLDMnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzIuNTAnLCAnTnVtYmVycyB3aXRoICwgaW5zdGVhZCBvZiAuJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnNS44IC0gMS4yJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICc0LjYwJywgJ1N1YnN0cmFjdGlvbicpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJycpOwoKICAgICAgICAgICAgLy8gVGVzdDogY2FsY3VsYXRlIHBlcmlvZCBmcm9tIGVudGVyZWQgc3RhcnQgYW5kIGVuZCB0aW1lCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ09ubHkgc3RhcnQgdGltZSBlbnRlcmVkJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdPbmx5IGVuZCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzEuMDAnLCAnQm90aCB0aW1lcyBlbnRlcmVkJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTowNicpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwOjAwJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMC45MCcsICdFYXN5IGNhbGN1bGF0aW9uIHdpdGggdHdvIHRpbWVzIG9mIHRoZSBmb3JtYXQgSEg6TU0nKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjAwJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTE6MzAnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcyLjUwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzksNScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwLDUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnU3RhcnRUaW1lIGFuZCBFbmRUaW1lIGZvcm1hdCBhcmUgd3JvbmcnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCc5OjUnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDo1Jyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBlcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMS4wMCcsICdTdGFydFRpbWUgYW5kIEVuZFRpbWUgZm9ybWF0IGFyZSBzbGlnaHRseSB3cm9uZycpOwoKICAgICAgICAgICAgLy8gVGVzdDogQ2FsY3VsYXRpb24gb2YgdG90YWwgaG91cnMKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6NScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwOjUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMS4wMCcsICdFYXN5IHN0YXJ0Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMi41Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMy41MCcsICdTZWNvbmQgcGVyaW9kIGZpZWxkJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMS41ICsgOSw1Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTIuMDAnLCAnU2Vjb25kIHBlcmlvZCBmaWVsZCBnZXRzIGFuIGFkZGl0aW9uYWwgY2FsY3VsYXRpb24gd2l0aCBvbmUgd3JvbmcgY29tbWEnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QzJykudmFsKCc0LjM1Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QzJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTYuMzUnLCAnVGhpcmQgZmllbGQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxNDowMCcpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJ29wZW5lbmQnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIGVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTUuMzUnLCAnRmlyc3Qgcm93OiBzdGFydHRpbWUgYW5kIGVuZHRpbWUgZmllbGRzIGhhdmUgd3JvbmcgaW5wdXQnKTsKCgogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBDbGVhbnVwIGRpdiBjb250YWluZXIgYW5kIGNvbnRlbnRzCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkKCcjVGVzdEZvcm0nKS5yZW1vdmUoKTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIHJldHVybiBOYW1lc3BhY2U7Cn0oVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzIHx8IHt9KSk7Cg==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIERlZmF1bHQgQ1NTCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgbGVmdCBhbmQgcmlnaHQgYXJyb3dzCiAqLwoKLkFycm93IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEwcHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi10b3A6IC0ycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDRweDsKfQoKLkFycm93IGkgewogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICM1NTU7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgc3BlY2lhbCBzZXR0aW5nczogcmVwb3J0aW5nCiAqLwoKZGl2Lk1vbnRoU2VsZWN0aW9uIHsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKLk1vbnRoU2VsZWN0aW9uIC5BcnJvdyB7CiAgICBtYXJnaW4tdG9wOiAxcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgSW5jb21wbGV0ZVdvcmtpbmdEYXlzIHNlbGVjdAogKi8KI0luY29tcGxldGVXb3JraW5nRGF5c0xpc3Qgb3B0aW9uW3NlbGVjdGVkPXNlbGVjdGVkXSB7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBwcm9qZWN0IGFuZCBhY3Rpb24gZHJvcGRvd25zCiAqLwouUHJvamVjdFNlbGVjdGlvbiB7CiAgICB3aWR0aDogMzAwcHg7Cn0KCi5BY3Rpb25TZWxlY3Rpb24gewogICAgd2lkdGg6IDMwMHB4Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8=
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgVGltZSBBY2NvdW50aW5nIEFkZGl0aW9uYWwgVGFibGUgU2V0dGluZ3MKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKLyoqCiAqIEBzdWJzZWN0aW9uICBkYXRhIHRhYmxlIGVsZW1lbnRzIHdpdGhvdXQgaG92ZXIKICovCgouTm9Ib3ZlciB0Ym9keSB0cjpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCi5Ob0hvdmVyIHRyLkV2ZW46aG92ZXIgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTsKfQoKLk5vSG92ZXIgdHIuR3JhbmRUb3RhbDpob3ZlciB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0ZDRkNGOwp9CgovKioKICogQHN1YnNlY3Rpb24gIHNwZWNpYWwgdGFibGUgaGVpZ2h0CiAqLwoKLkhpZ2hDZWxscyB0Ym9keSB0ZCB7CiAgICBoZWlnaHQ6IDMwcHg7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZml4ZWQgZGF0YSB0YWJsZSB3aWR0aHMKICovCgouRGF0YVRhYmxlIHRkLkZpeGVkLkRheSB7CiAgICB3aWR0aDogNTBweDsKfQoKLkRhdGFUYWJsZSB0ZC5GaXhlZC5XZWVrZGF5IHsKICAgIHdpZHRoOiA4MHB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHRhYmxlIGNvbG91cnMgZm9yIG92ZXJ2aWV3CiAqLwoKLkRhdGFUYWJsZSB0ci5WYWNhdGlvbiB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJDQ0NDOwp9CgouRGF0YVRhYmxlIHRyLk5vbldvcmtpbmdEYXkgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRTBFMDsKfQoKLkRhdGFUYWJsZSB0ci5BY3RpdmUgdGQgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDAwMDsKICAgIGNvbG9yOiAjMUExQTFBOwp9CgouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZDpmaXJzdC1jaGlsZCB7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDAwMDA7Cn0KCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkOmxhc3QtY2hpbGQsCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkLkxhc3QgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDAwMDsKfQoKLkRhdGFUYWJsZSB0ci5HcmFuZFRvdGFsIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNDRkNGQ0Y7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgZGF0YSB0YWJsZSB3aXRoIHR3byBoZWFkZXIgcm93cwogKi8KCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB7CiAgICBiYWNrZ3JvdW5kOiBub25lOwp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHIgewogICAgYmFja2dyb3VuZDogI2VlZWVlZTsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyOmZpcnN0LWNoaWxkIHRoIHsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICBwYWRkaW5nLWJvdHRvbTogMnB4Owp9CgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgdHI6bGFzdC1jaGlsZCB0aCwKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyLkxhc3QgdGggewogICAgYm9yZGVyLXRvcDogbm9uZTsKICAgIHBhZGRpbmctdG9wOiAzcHg7Cn0KCnRyLk1hc3RlckFjdGlvbiB0ZC5Sb3dTcGFuIHsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCnRkLlJvd1NwYW57CiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9CgouRGF0YVRhYmxlIGEuRGF0ZXBpY2tlckljb24gaSB7CiAgICBjb2xvcjogIzAwMDsKICAgIG1hcmdpbi1sZWZ0OiAycHg7Cn0KCi5EYXRhVGFibGUgYS5EYXRlcGlja2VySWNvbjpob3ZlciBpIHsKICAgIGNvbG9yOiAjZjcyOwp9CgojVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCB7CiAgICBib3JkZXItY29sb3I6ICNkZGQ7CiAgICBib3JkZXItaW1hZ2U6IG5vbmU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXdpZHRoOiAxcHg7CiAgICBwYWRkaW5nOiA3cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKfQovKiBlbmQgQG1lZGlhICov
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycsCiAgICAnS2VybmVsOjpDb25maWcnLAopOwoKPWhlYWQxIE5BTUUKClRpbWVBY2NvdW50aW5nLnBtIC0gY29kZSB0byBleGVjdXRlIGR1cmluZyBwYWNrYWdlIGluc3RhbGxhdGlvbgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgZnVuY3Rpb25zCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgndmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgcmVidWlsZCBaWloqIGZpbGVzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPldyaXRlRGVmYXVsdCgpOwoKICAgICMgZGVmaW5lIHRoZSBaWlogZmlsZXMKICAgIG15IEBaWlpGaWxlcyA9ICgKICAgICAgICAnWlpaQUF1dG8ucG0nLAogICAgICAgICdaWlpBdXRvLnBtJywKICAgICk7CgogICAgIyByZWxvYWQgdGhlIFpaWiBmaWxlcyAobW9kX3Blcmwgd29ya2Fyb3VuZCkKICAgIGZvciBteSAkWlpaRmlsZSAoQFpaWkZpbGVzKSB7CgogICAgICAgIFBSRUZJWDoKICAgICAgICBmb3IgbXkgJFByZWZpeCAoQElOQykgewogICAgICAgICAgICBteSAkRmlsZSA9ICRQcmVmaXggLiAnL0tlcm5lbC9Db25maWcvRmlsZXMvJyAuICRaWlpGaWxlOwogICAgICAgICAgICBuZXh0IFBSRUZJWCBpZiAhLWYgJEZpbGU7CiAgICAgICAgICAgIGRvICRGaWxlOwogICAgICAgICAgICBsYXN0IFBSRUZJWDsKICAgICAgICB9CiAgICB9CgogICAgIyBhbHdheXMgZGlzY2FyZCB0aGUgY29uZmlnIG9iamVjdCBiZWZvcmUgcGFja2FnZSBjb2RlIGlzIGV4ZWN1dGVkLAogICAgIyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY29uZmlnIG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQgbmV3bHksIHNvIHRoYXQgaXQKICAgICMgd2lsbCB1c2UgdGhlIHJlY2VudGx5IHdyaXR0ZW4gbmV3IGNvbmZpZyBmcm9tIHRoZSBwYWNrYWdlCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoCiAgICAgICAgT2JqZWN0cyA9PiBbJ0tlcm5lbDo6Q29uZmlnJ10sCiAgICApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWRkIHRoZSBncm91cCB0aW1lX2FjY291bnRpbmcKICAgICRTZWxmLT5fR3JvdXBBZGQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0dyb3VwIGZvciBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXIuJywKICAgICk7CgogICAgIyBkZWxldGUgdGhlIGdyb3VwIGNhY2hlIHRvIGF2b2lkIHBlcm1pc3Npb24gcHJvYmxlbXMKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICdHcm91cCcgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVuaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgdW5pbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVbmluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlVW5pbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWFjdGl2YXRlIHRoZSBncm91cCB0aW1lX2FjY291bnRpbmcKICAgICRTZWxmLT5fR3JvdXBEZWFjdGl2YXRlKAogICAgICAgIE5hbWUgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiA0LjAuOTEuCgpteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxIHsgICAgIyMgbm8gY3JpdGljCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlncygpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfR3JvdXBBZGQoKQoKYWRkIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cEFkZCgKICAgICAgICBOYW1lICAgICAgICA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICdUaGUgZ3JvdXAgZGVzY3JpcHRpb24uJywKICAgICk7Cgo9Y3V0CgpzdWIgX0dyb3VwQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE5hbWUgRGVzY3JpcHRpb24pKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgIEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGdldCBsaXN0IG9mIGFsbCBncm91cHMKICAgIG15ICVHcm91cExpc3QgPSAkR3JvdXBPYmplY3QtPkdyb3VwTGlzdCgpOwoKICAgICMgcmV2ZXJzZSB0aGUgZ3JvdXAgbGlzdCBmb3IgZWFzaWVyIGxvb2t1cAogICAgbXkgJUdyb3VwTGlzdFJldmVyc2UgPSByZXZlcnNlICVHcm91cExpc3Q7CgogICAgIyBjaGVjayBpZiBncm91cCBhbHJlYWR5IGV4aXN0cwogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBMaXN0UmV2ZXJzZXsgJFBhcmFte05hbWV9IH07CgogICAgIyByZWFjdGl2YXRlIHRoZSBncm91cAogICAgaWYgKCRHcm91cElEKSB7CgogICAgICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgICAgICBJRCAgICAgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgcmVhY3RpdmF0ZSBncm91cAogICAgICAgICRHcm91cE9iamVjdC0+R3JvdXBVcGRhdGUoCiAgICAgICAgICAgICVHcm91cERhdGEsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBhZGQgdGhlIGdyb3VwCiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gaWYgISRHcm91cE9iamVjdC0+R3JvdXBBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFBhcmFte05hbWV9LAogICAgICAgICAgICBDb21tZW50ID0+ICRQYXJhbXtEZXNjcmlwdGlvbn0sCiAgICAgICAgICAgIFZhbGlkSUQgPT4gJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGxvb2t1cCB0aGUgbmV3IGdyb3VwIGlkCiAgICBteSAkTmV3R3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgID0+ICRQYXJhbXtOYW1lfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBhZGQgdXNlciByb290IHRvIHRoZSBncm91cAogICAgJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckFkZCgKICAgICAgICBHSUQgICAgICAgID0+ICROZXdHcm91cElELAogICAgICAgIFVJRCAgICAgICAgPT4gMSwKICAgICAgICBQZXJtaXNzaW9uID0+IHsKICAgICAgICAgICAgcm8gICAgICAgID0+IDEsCiAgICAgICAgICAgIG1vdmVfaW50byA9PiAxLAogICAgICAgICAgICBjcmVhdGUgICAgPT4gMSwKICAgICAgICAgICAgb3duZXIgICAgID0+IDEsCiAgICAgICAgICAgIHByaW9yaXR5ICA9PiAxLAogICAgICAgICAgICBydyAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX0dyb3VwRGVhY3RpdmF0ZSgpCgpkZWFjdGl2YXRlIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgKTsKCj1jdXQKCnN1YiBfR3JvdXBEZWFjdGl2YXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtOYW1lfSApIHsKICAgICAgICBLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBOYW1lIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgZ3JvdXAgb2JqZWN0CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGxvb2t1cCBncm91cCBpZAogICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgIEdyb3VwID0+ICRQYXJhbXtOYW1lfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkR3JvdXBJRDsKCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKCiAgICAjIGdldCBjdXJyZW50IGdyb3VwIGRhdGEKICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgIElEICAgICA9PiAkR3JvdXBJRCwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBkZWFjdGl2YXRlIGdyb3VwCiAgICAkR3JvdXBPYmplY3QtPkdyb3VwVXBkYXRlKAogICAgICAgICVHcm91cERhdGEsCiAgICAgICAgVmFsaWRJRCA9PiAkVmFsaWRMaXN0UmV2ZXJzZXtpbnZhbGlkfSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfTWlncmF0ZUNvbmZpZ3MoKQoKY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVDb25maWdzKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWdzIHsKCiAgICAjIGNyZWF0ZSBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgbWlncmF0ZSB0aW1lIGFjY291bnRpbmcgbm90aWZpY2F0aW9uIFN5c0NvbmZpZwogICAgIyBnZXQgc2V0dGluZyBjb250ZW50IGZvciB0aW1lIGFjY291bnRpbmcgU3lzQ29uZmlnCiAgICBteSAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVOb3RpZnknKTsKCiAgICBpZiAoICRTZXR0aW5nLT57J1RpbWVBY2NvdW50aW5nJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eydUaW1lQWNjb3VudGluZyd9LT57TW9kdWxlfSA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6Tm90aWZpY2F0aW9uOjpUaW1lQWNjb3VudGluZyI7CgogICAgICAgICMgc2V0IG5ldyBzZXR0aW5nCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZycsCiAgICAgICAgICAgIFZhbHVlID0+ICRTZXR0aW5nLT57J1RpbWVBY2NvdW50aW5nJ30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1pZ3JhdGUgdGltZSBhY2NvdW50aW5nIHRvb2wgYmFyIFN5c0NvbmZpZwogICAgIyBnZXQgc2V0dGluZyBjb250ZW50IGZvciB0aW1lIGFjY291bnRpbmcgU3lzQ29uZmlnCiAgICAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUnKTsKCiAgICBpZiAoICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eycyMDEtVGltZUFjY291bnRpbmc6OkluY29tcGxldGVXb3JraW5nRGF5cyd9LT57TW9kdWxlfQogICAgICAgICAgICA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzIjsKCiAgICAgICAgIyBzZXQgbmV3IHNldHRpbmcKICAgICAgICBteSAkU3VjY2VzcyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMS4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTYwNjIyMjM1NTUyKzAyJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndYU+cex99zTvZgJCFsCHuGpUAAkRGmgAzZohCSAAESICQM90BUsKKoyFIEKYpYsFqG1IkoDori3g1SBJRarOLC0USep/X29t7b2+8f53ye3/v7vef9jfd5DgCkgEyuMBdWAUAokogj/L0ZsXHxDOwAgAEeYIA9ABxubrZXWFgwkCvQl83IlTuBf9GrmwBSvK8xFXuB/0+q3GyxBAAoTM6zePxcrpyL5JyZL8lW2CflTEvOUDCMUrBYfkA5ayg4dYatP/vMsKeCeUIRT86Rcs7mCXkK7pXzhjwpX86IIpfiPAE/X87X5WycKRUK5PxGESvkc+Q5oEgKu4TPTZOznZxJ4sgItpznAIAjpX7ByV+whF8gUSTFzsouFAtS0yQMc64Fw97FhcUI4Odn8iUSZhiHm8ER8xjsLGE2R1QIwEzOn0VR1JYhL7KTvYuTE9PBxv6LQv3Xxb8pRW9n6EX4555B9P4/bH/ll9UAAGtKXpstf9iSqwDoXAeAxt0/bMZ7AFCW963j8hf50BXzkiaRZLva2ubn59sI+FwbRUF/1/90+Bv64ns2iu1+Lw/Dh5/CkWZKGIq6cbMys6RiRm42h8tnMP88xP848K/PYR3BT+GL+SJ5RLR8ygSiVHm7RTyBRJAlYghE/6mJ/zDsT5qZa7mojR8BLdEGqFymAeTnfoCiEgGSsFu+Av3et2B8NFDcvBj90Zm5/yzo33eFyxSPXEHq5zh2RCSDKxXnzawpriVAAwJQBjSgCfSAETAHTOAAnIEb8AS+YB4IBZEgDiwGXJAGhEAM8sEysBoUg1KwBewA1aAONIJm0AoOg05wDJwG58AlcAXcAPeADIyAp2ASvALTEARhITJEhTQhfcgEsoIcIBY0F/KFgqEIKA5KglIhESSFlkFroVKoHKqG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K0b1R5vHHMaOjfuNX3my8MnI0+yn0xPFP6v+XPvM/Nl3v3j+0j8ZOznyXPz806+bXmi+2Pdy9sueqbCph6+Er6Zfl7zRfLP/Lett37uYd6PT+e+x7ys/WHzo/hj08f4n4adPvwHJ4vTiCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iagpbL0lDQ0Jhc2VkIDUgMCBSXQplbmRvYmoKNyAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDEzIDAgUgo+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj4KPGRjOmxhbmd1YWdlPmVuPC9kYzpsYW5ndWFnZT4KPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KPGRjOmRhdGU+MjAxNi0wNi0yMlQyMzo1NTo1MiswMjowMDwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAxLjE8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA2LTIyVDIzOjU1OjUyKzAyOjAwPC94bXA6Q3JlYXRlRGF0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Ci9SZWN0IFsgODAuMCA2NjcuNjI5IDE1My44MTEgNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NyAwIFIKL0ggL0kKCj4+CmVuZG9iago1OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMzM4IDY2Ny42MjkgNTQyLjY5OCA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjYwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY1NS42MjkgMjUzLjQzMiA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS43MTIgNjU1LjYyOSA1NDIuMDcyIDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA2MzQuNCBudWxsXQo+PgplbmRvYmoKNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAyMjYuMDU4IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjkyOCA2NDMuNjI5IDU0Mi4yODggNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MyAwIFIKL0ggL0kKCj4+CmVuZG9iago2NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDU0Ni4wIG51bGxdCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzEuNjI5IDI1NC45NDQgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NiAwIFIKL0ggL0kKCj4+CmVuZG9iago2OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuNyA2MzEuNjI5IDU0Mi4wNiA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDc5LjYgbnVsbF0KPj4KZW5kb2JqCjcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxOS42MjkgMjQ3LjQzNCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS43NiA2MTkuNjI5IDU0Mi4xMiA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDAxLjIgbnVsbF0KPj4KZW5kb2JqCjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwNy42MjkgMjUyLjA1OSA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS43MjIgNjA3LjYyOSA1NDIuMDgyIDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAzNTguOCBudWxsXQo+PgplbmRvYmoKNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTk1LjYyOSAyNjMuNTgyIDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjYzMiA1OTUuNjI5IDU0MS45OTIgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NSAwIFIKL0ggL0kKCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDMwNC40IG51bGxdCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODMuNjI5IDQwNy4yNTMgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3OCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNDkxIDU4My42MjkgNTQwLjg1MSA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMjI2LjAgbnVsbF0KPj4KZW5kb2JqCjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU3MS42MjkgMzMzLjUyIDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjA3OCA1NzEuNjI5IDU0MS40MzggNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MSAwIFIKL0ggL0kKCj4+CmVuZG9iago4NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDE1OS42IG51bGxdCj4+CmVuZG9iago4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NTkuNjI5IDE4Mi40MzcgNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NCAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMjc0IDU1OS42MjkgNTQyLjYzNCA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTQ3LjYyOSAyMDQuOTI5IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKODkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1Ljk1NiA1NDcuNjI5IDU0Mi4zMTYgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NyAwIFIKL0ggL0kKCj4+CmVuZG9iago5MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MzUuNjI5IDE3My4zODMgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MCAwIFIKL0ggL0kKCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMzQ0IDUzNS42MjkgNTQyLjcwNCA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNjI2LjQgbnVsbF0KPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUyMy42MjkgMTY0Ljg4OCA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi41ODMgNTIzLjYyOSA1NDIuOTQzIDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA1NTguMCBudWxsXQo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTExLjYyOSAyMDkuNTAzIDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjA2IDUxMS42MjkgNTQyLjQyIDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA0ODkuNiBudWxsXQo+PgplbmRvYmoKMTAwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ5OS42MjkgMjIxLjcxOSA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuOTYyIDQ5OS42MjkgNTQyLjMyMiA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0ODcuNjI5IDE0OS4zNjcgNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zNzIgNDg3LjYyOSA1NDIuNzMyIDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDY0NC44IG51bGxdCj4+CmVuZG9iagoxMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDc1LjYyOSAxOTguOTU2IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMTQyIDQ3NS42MjkgNTQyLjUwMiA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA1NjguNCBudWxsXQo+PgplbmRvYmoKMTA5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ2My42MjkgMTk0LjU5MSA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjE3OCA0NjMuNjI5IDU0Mi41MzggNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTExIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjExMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ1MS42MjkgMTYxLjc2IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTExIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMjc4IDQ1MS42MjkgNTQyLjYzOCA0NjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA2NjYuMzM5IG51bGxdCj4+CmVuZG9iagoxMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDM5LjYyOSAzNjEuODk2IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODUgNDM5LjYyOSA1NDEuMjEgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNjAwLjc0MSBudWxsXQo+PgplbmRvYmoKMTE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQyNy42MjkgMzg4LjU4MSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjYzOSA0MjcuNjI5IDU0MC45OTkgNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNTM1LjE0MyBudWxsXQo+PgplbmRvYmoKMTIxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQxNS42MjkgMzkxLjAxMSA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjYxOSA0MTUuNjI5IDU0MC45NzkgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNDY5LjU0NSBudWxsXQo+PgplbmRvYmoKMTI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwMy42MjkgMzc4LjI2MiA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjcyMSA0MDMuNjI5IDU0MS4wODEgNDEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNDAzLjk0NyBudWxsXQo+PgplbmRvYmoKMTI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM5MS42MjkgMzY1LjM1MyA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjgyMyAzOTEuNjI5IDU0MS4xODMgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMzM4LjM0OSBudWxsXQo+PgplbmRvYmoKMTMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgMzY1LjE4MyAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjgyNCAzNzkuNjI5IDU0MS4xODQgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMjcyLjc1MSBudWxsXQo+PgplbmRvYmoKMTMzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2Ny42MjkgNDk5LjAzNCAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjgzMiAzNjcuNjI5IDU0MC4xOTIgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgMTgwLjc1MyBudWxsXQo+PgplbmRvYmoKMTM2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM1NS42MjkgMzYzLjQzIDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODM4IDM1NS42MjkgNTQxLjE5OCAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAxMTUuMTU1IG51bGxdCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQzLjYyOSAzOTQuNzU2IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNTg5IDM0My42MjkgNTQwLjk0OSAzNTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKMTQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMzMS42MjkgMzE5LjcwNCAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjE4NSAzMzEuNjI5IDU0MS41NDUgMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNjMwLjY2OSBudWxsXQo+PgplbmRvYmoKMTQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMxOS42MjkgMjY4LjkxNSAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjU4NyAzMTkuNjI5IDU0MS45NDcgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNTQxLjMzOCBudWxsXQo+PgplbmRvYmoKMTQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMwNy42MjkgMzI5Ljc4NCAzMTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjEwNSAzMDcuNjI5IDU0MS40NjUgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNDY0LjAwNyBudWxsXQo+PgplbmRvYmoKMTUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI5NS42MjkgMzExLjI4NyAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjI1MSAyOTUuNjI5IDU0MS42MTEgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMzk4LjY3NiBudWxsXQo+PgplbmRvYmoKMTU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI4My42MjkgMzEzLjYxOCAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjIzMyAyODMuNjI5IDU0MS41OTMgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMzMzLjM0NSBudWxsXQo+PgplbmRvYmoKMTU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3MS42MjkgMzE0LjE4NSAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjIyOCAyNzEuNjI5IDU0MS41ODggMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMjY4LjAxNCBudWxsXQo+PgplbmRvYmoKMTYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1OS42MjkgMzE2LjUxNiAyNjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjIxIDI1OS42MjkgNTQxLjU3IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDIwMi42ODMgbnVsbF0KPj4KZW5kb2JqCjE2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDcuNjI5IDMxNi4xMjggMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4yMTMgMjQ3LjYyOSA1NDEuNTczIDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDEzNy4zNTIgbnVsbF0KPj4KZW5kb2JqCjE2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI5IDMyMS41MzYgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4xNyAyMzUuNjI5IDU0MS41MyAyNDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIyMy42MjkgMzMwLjA5MiAyMzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjEwMiAyMjMuNjI5IDU0MS40NjIgMjMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNjYxLjc1NiBudWxsXQo+PgplbmRvYmoKMTcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxMS42MjkgMzI3Ljg3MSAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjEyIDIxMS42MjkgNTQxLjQ4IDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDU5Ny41NTkgbnVsbF0KPj4KZW5kb2JqCjE3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxOTkuNjI5IDMxOS44NjMgMjA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4xODMgMTk5LjYyOSA1NDEuNTQzIDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDUzMy4zNjIgbnVsbF0KPj4KZW5kb2JqCjE3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxODcuNjI5IDMwNS4xMzEgMTk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4zIDE4Ny42MjkgNTQxLjY2IDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDQ2OS4xNjUgbnVsbF0KPj4KZW5kb2JqCjE4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNzUuNjI5IDMzOC40OTkgMTg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4wMzUgMTc1LjYyOSA1NDEuMzk1IDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDQwNC45NjggbnVsbF0KPj4KZW5kb2JqCjE4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNjMuNjI5IDMyOC4zNjkgMTczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4xMTUgMTYzLjYyOSA1NDEuNDc1IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDMyOC43NzEgbnVsbF0KPj4KZW5kb2JqCjE4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNTEuNjI5IDQ4MC43NDQgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45MDQgMTUxLjYyOSA1NDAuMjY0IDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDI2NC41NzQgbnVsbF0KPj4KZW5kb2JqCjE5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5IDM3NS43NjEgMTQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC43NCAxMzkuNjI5IDU0MS4xIDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDIwMC4zNzcgbnVsbF0KPj4KZW5kb2JqCjE5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMjcuNjI5IDMyNy4zMTMgMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4xMjQgMTI3LjYyOSA1NDEuNDg0IDEzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDEzNi4xOCBudWxsXQo+PgplbmRvYmoKMTk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDExNS42MjkgMzY0Ljk0NCAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjgyNiAxMTUuNjI5IDU0MS4xODYgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMDMuNjI5IDQzOC40MjMgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjAwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4yNDMgMTAzLjYyOSA1NDAuNjAzIDExMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDY0OS42IG51bGxdCj4+CmVuZG9iagoyMDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgOTEuNjI5IDMzMC40NDEgMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4wOTkgOTEuNjI5IDU0MS40NTkgMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNTczLjIgbnVsbF0KPj4KZW5kb2JqCjIwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA3OS42MjkgMzIyLjYwMiA4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMTYxIDc5LjYyOSA1NDEuNTIxIDg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA3IDAgb2JqCjw8IC9MZW5ndGggMjA4IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzVvcmOLEmSJHiPr/AfGGvZF6ARQCwZg5lbYRLoQ6NPPduhqwc1l/n9YRJdhN1NPYKoOrIyqxKv4i1Cbqam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dCBbIDEwNC4wIDcwOS4wMDUgMjc1LjU1OSA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjUzNSA3MDkuMDA1IDU0MS44OTUgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNDIwLjQgbnVsbF0KPj4KZW5kb2JqCjI0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDI1Ni43MTMgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS42ODQgNjk3LjAwNSA1NDIuMDQ0IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjg1LjAwNSAxMjUuMjc3IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNTUyIDY4NS4wMDUgNTQyLjkxMiA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA5IDAgUiAvWFlaIDcyLjAgNjMwLjMxNCBudWxsXQo+PgplbmRvYmoKMjQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMjI2Ljg0MSA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjkyIDY3My4wMDUgNTQyLjI4IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDkgMCBSIC9YWVogNzIuMCAzMzkuMTYzIG51bGxdCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjYxLjAwNSAyMTQuMzk5IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDIyIDY2MS4wMDUgNTQyLjM4MiA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEyIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDE3NS4zMjEgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zMyA2NDkuMDA1IDU0Mi42OSA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEyIDAgUiAvWFlaIDcyLjAgNDI0LjMgbnVsbF0KPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDI2Mi42OTMgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS42MzYgNjM3LjAwNSA1NDEuOTk2IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjI1LjAwNSAxMzIuODYxIDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzAuMDg4IDYyNS4wMDUgNTQyLjgwOCA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDYxMy4wMDUgMTE5LjAzNiA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMwLjE5IDYxMy4wMDUgNTQyLjkxIDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwMS4wMDUgMTcxLjg3IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjkuOTQ2IDYwMS4wMDUgNTQyLjY2NiA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNjI0LjQgbnVsbF0KPj4KZW5kb2JqCjI3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5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Cr7lkXL+LoP5XcJ6+ZkgtE79m2v9jNzrRv3h1x9/iv/8F7vf4okKZW5kc3RyZWFtCmVuZG9iagoyNDAgMCBvYmoKWwoyMzkgMCBSCjI0MSAwIFIKMjQzIDAgUgoyNDQgMCBSCjI0NiAwIFIKMjQ3IDAgUgoyNDkgMCBSCjI1MCAwIFIKMjUyIDAgUgoyNTMgMCBSCjI1NSAwIFIKMjU2IDAgUgoyNTggMCBSCjI1OSAwIFIKMjYxIDAgUgoyNjIgMCBSCjI2NCAwIFIKMjY1IDAgUgoyNjcgMCBSCjI2OCAwIFIKMjcwIDAgUgoyNzEgMCBSCjI3MyAwIFIKMjc0IDAgUgpdCmVuZG9iagoyMzcgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0Fubm90cyAyNDAgMCBSCiAgL0NvbnRlbnRzIDI3NSAwIFIKPj4KCmVuZG9iagoyNzYgMCBvYmoKOTI3MQplbmRvYmoKMjc3IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCiAgL0ZvbnROYW1lIC9FQUFBQUErRGVqYVZ1U2Fuc01vbm8KICAvRm9udEJCb3ggWy01NTcgLTM3NCA3MTcgMTA0MV0KICAvRmxhZ3MgMzUKICAvQ2FwSGVpZ2h0IDcyOQogIC9Bc2NlbnQgMTA0MQogIC9EZXNjZW50IC0zNzQKICAvSXRhbGljQW5nbGUgMAogIC9TdGVtViAwCiAgL01pc3NpbmdXaWR0aCA1MDAKICAvRm9udEZpbGUyIDI3OCAwIFIKICAvQ0lEU2V0IDI3OSAwIFIKPj4KCmVuZG9iagoyNzggMCBvYmoKPDwKICAvTGVuZ3RoMSAxODk2NAogIC9MZW5ndGggMjk1IDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nN17C1gU1933OXNmZq8su8sdBAYIKhEBIaighuWy6CqCAbwmXlZ2kVVgCbuIxFq11qgB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agoxMDk4MQplbmRvYmoKMjk2IDAgb2JqCjIwCmVuZG9iagoyOTcgMCBvYmoKNDMzCmVuZG9iagoyOTggMCBvYmoKMTU4MzkKZW5kb2JqCjI5OSAwIG9iagoyNwplbmRvYmoKMzAwIDAgb2JqCjU1NwplbmRvYmoKMzAxIDAgb2JqCjE0NDI4CmVuZG9iagozMDIgMCBvYmoKMjIKZW5kb2JqCjMwMyAwIG9iago1MDYKZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCi9Db3VudCAxOQovS2lkcyBbOCAwIFIgNTIgMCBSIDIzNyAwIFIgMjE1IDAgUiAxOCAwIFIgMjggMCBSIDMxIDAgUiAzNCAwIFIgNDAgMCBSIDQzIDAgUiA0NiAwIFIgNDkgMCBSIDIwOSAwIFIgMjEyIDAgUiAyMjIgMCBSIDIyNSAwIFIgMjI4IDAgUiAyMzEgMCBSIDIzNCAwIFIgXSA+PgplbmRvYmoKMiAwIG9iago8PAogIC9UeXBlIC9DYXRhbG9nCiAgL1BhZ2VzIDEgMCBSCiAgL0xhbmcgKGVuKQogIC9NZXRhZGF0YSA3IDAgUgogIC9QYWdlTGFiZWxzIDkgMCBSCj4+CgplbmRvYmoKMyAwIG9iago8PAogIC9Gb250IDw8CiAgL0YxOSAyODAgMCBSCiAgL0YxNSAyODYgMCBSCiAgL0YxNiAyOTIgMCBSCj4+CgogIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL0ltYWdlQyAvVGV4dF0KICAvWE9iamVjdCA8PAogIC9JbTEgMTAgMCBSCiAgL0ltMiAxMSAwIFIKICAvSW0zIDE5IDAgUgogIC9JbTQgMjAgMCBSCj4+CgogIC9Db2xvclNwYWNlIDw8IC9EZWZhdWx0UkdCIDYgMCBSID4+Cgo+PgoKZW5kb2JqCjkgMCBvYmoKPDwgL051bXMgWzAgPDwgL1AgKDEpID4+CiAxIDw8IC9QIChpaSkgPj4KIDIgPDwgL1AgKGlpaSkgPj4KIDMgPDwgL1AgKGl2KSA+PgogNCA8PCAvUCAodikgPj4KIDUgPDwgL1AgKDEpID4+CiA2IDw8IC9QICgyKSA+PgogNyA8PCAvUCAoMykgPj4KIDggPDwgL1AgKDQpID4+CiA5IDw8IC9QICg1KSA+PgogMTAgPDwgL1AgKDYpID4+CiAxMSA8PCAvUCAoNykgPj4KIDEyIDw8IC9QICg4KSA+PgogMTMgPDwgL1AgKDkpID4+CiAxNCA8PCAvUCAoMTApID4+CiAxNSA8PCAvUCAoMTEpID4+CiAxNiA8PCAvUCAoMTIpID4+CiAxNyA8PCAvUCAoMTMpID4+CiAxOCA8PCAvUCAoMTQpID4+Cl0gPj4KCmVuZG9iagp4cmVmCjAgMzA0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDI1Mzk4NCAwMDAwMCBuIAowMDAwMjU0MTc4IDAwMDAwIG4gCjAwMDAyNTQyODMgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTQ1IDAwMDAwIG4gCjAwMDAwMDI4MjMgMDAwMDAgbiAKMDAwMDAwMjg1NiAwMDAwMCBuIAowMDAwMTA2MTc4IDAwMDAwIG4gCjAwMDAyNTQ1MTggMDAwMDAgbiAKMDAwMDAwMzgwNCAwMDAwMCBuIAowMDAwMDUyMzMxIDAwMDAwIG4gCjAwMDAxMDU1OTMgMDAwMDAgbiAKMDAwMDEwNTYxNCAwMDAwMCBuIAowMDAwMTA1NjM0IDAwMDAwIG4gCjAwMDAxMDU2NTYgMDAwMDAgbiAKMDAwMDEwNTY3OCAwMDAwMCBuIAowMDAwMTA2MzcwIDAwMDAwIG4gCjAwMDAxMjA5NzMgMDAwMDAgbiAKMDAwMDEwNjM5MCAwMDAwMCBuIAowMDAwMTEyNTYxIDAwMDAwIG4gCjAwMDAxMTk3NDEgMDAwMDAgbiAKMDAwMDExOTc2MiAwMDAwMCBuIAowMDAwMTE5NzgzIDAwMDAwIG4gCjAwMDAxMTk4NjggMDAwMDAgbiAKMDAwMDEyMDk0NiAwMDAwMCBuIAowMDAwMTIwMDA2IDAwMDAwIG4gCjAwMDAxMjExODMgMDAwMDAgbiAKMDAwMDEyMzk0MSAwMDAwMCBuIAowMDAwMTIxMjAzIDAwMDAwIG4gCjAwMDAxMjQxMzQgMDAwMDAgbiAKMDAwMDEyNTAyMiAwMDAwMCBuIAowMDAwMTI0MTU1IDAwMDAwIG4gCjAwMDAxMjUyMTUgMDAwMDAgbiAKMDAwMDEyNjkwNiAwMDAwMCBuIAowMDAwMTI1MjM1IDAwMDAwIG4gCjAwMDAxMjUzMzAgMDAwMDAgbiAKMDAwMDEyNjg3OSAwMDAwMCBuIAowMDAwMTI1NDY2IDAwMDAwIG4gCjAwMDAxMjcxMTYgMDAwMDAgbiAKMDAwMDEyODczMSAwMDAwMCBuIAowMDAwMTI3MTM3IDAwMDAwIG4gCjAwMDAxMjg5MjQgMDAwMDAgbiAKMDAwMDEzMDU5MCAwMDAwMCBuIAowMDAwMTI4OTQ1IDAwMDAwIG4gCjAwMDAxMzA3ODMgMDAwMDAgbiAKMDAwMDEzMjQ4MyAwMDAwMCBuIAowMDAwMTMwODA0IDAwMDAwIG4gCjAwMDAxMzI2NzYgMDAwMDAgbiAKMDAwMDEzNDMxNSAwMDAwMCBuIAowMDAwMTMyNjk3IDAwMDAwIG4gCjAwMDAxMzQ1MDggMDAwMDAgbiAKMDAwMDE3OTQxNSAwMDAwMCBuIAowMDAwMTM0NTI5IDAwMDAwIG4gCjAwMDAxMzQ2MDcgMDAwMDAgbiAKMDAwMDE3ODYwOSAwMDAwMCBuIAowMDAwMTM0NzQzIDAwMDAwIG4gCjAwMDAxMzQ4ODMgMDAwMDAgbiAKMDAwMDEzNDk2MSAwMDAwMCBuIAowMDAwMTM1MDk4IDAwMDAwIG4gCjAwMDAxMzUyMzggMDAwMDAgbiAKMDAwMDEzNTMxNiAwMDAwMCBuIAowMDAwMTM1NDU0IDAwMDAwIG4gCjAwMDAxMzU1OTQgMDAwMDAgbiAKMDAwMDEzNTY3MiAwMDAwMCBuIAowMDAwMTM1ODEwIDAwMDAwIG4gCjAwMDAxMzU5NTAgMDAwMDAgbiAKMDAwMDEzNjAyOCAwMDAwMCBuIAowMDAwMTM2MTY2IDAwMDAwIG4gCjAwMDAxMzYzMDMgMDAwMDAgbiAKMDAwMDEzNjM4MSAwMDAwMCBuIAowMDAwMTM2NTE5IDAwMDAwIG4gCjAwMDAxMzY2NTcgMDAwMDAgbiAKMDAwMDEzNjczNSAwMDAwMCBuIAowMDAwMTM2ODczIDAwMDAwIG4gCjAwMDAxMzcwMTMgMDAwMDAgbiAKMDAwMDEzNzA5MSAwMDAwMCBuIAowMDAwMTM3MjI5IDAwMDAwIG4gCjAwMDAxMzczNjkgMDAwMDAgbiAKMDAwMDEzNzQ0NyAwMDAwMCBuIAowMDAwMTM3NTg1IDAwMDAwIG4gCjAwMDAxMzc3MjUgMDAwMDAgbiAKMDAwMDEzNzgwMyAwMDAwMCBuIAowMDAwMTM3OTQwIDAwMDAwIG4gCjAwMDAxMzgwODAgMDAwMDAgbiAKMDAwMDEzODE1OCAwMDAwMCBuIAowMDAwMTM4Mjk2IDAwMDAwIG4gCjAwMDAxMzg0MzYgMDAwMDAgbiAKMDAwMDEzODUxNCAwMDAwMCBuIAowMDAwMTM4NjUxIDAwMDAwIG4gCjAwMDAxMzg3OTEgMDAwMDAgbiAKMDAwMDEzODg2OSAwMDAwMCBuIAowMDAwMTM5MDA3IDAwMDAwIG4gCjAwMDAxMzkxNDcgMDAwMDAgbiAKMDAwMDEzOTIyNSAwMDAwMCBuIAowMDAwMTM5MzYzIDAwMDAwIG4gCjAwMDAxMzk1MDMgMDAwMDAgbiAKMDAwMDEzOTU4MSAwMDAwMCBuIAowMDAwMTM5NzE5IDAwMDAwIG4gCjAwMDAxMzk4NTcgMDAwMDAgbiAKMDAwMDEzOTkzNSAwMDAwMCBuIAowMDAwMTQwMDc0IDAwMDAwIG4gCjAwMDAxNDAyMTUgMDAwMDAgbiAKMDAwMDE0MDI5NCAwMDAwMCBuIAowMDAwMTQwNDMzIDAwMDAwIG4gCjAwMDAxNDA1NzUgMDAwMDAgbiAKMDAwMDE0MDY1NCAwMDAwMCBuIAowMDAwMTQwNzk0IDAwMDAwIG4gCjAwMDAxNDA5MzYgMDAwMDAgbiAKMDAwMDE0MTAxNSAwMDAwMCBuIAowMDAwMTQxMTU1IDAwMDAwIG4gCjAwMDAxNDEyOTcgMDAwMDAgbiAKMDAwMDE0MTM3NiAwMDAwMCBuIAowMDAwMTQxNTE0IDAwMDAwIG4gCjAwMDAxNDE2NTYgMDAwMDAgbiAKMDAwMDE0MTczNyAwMDAwMCBuIAowMDAwMTQxODc3IDAwMDAwIG4gCjAwMDAxNDIwMTcgMDAwMDAgbiAKMDAwMDE0MjA5OCAwMDAwMCBuIAowMDAwMTQyMjM4IDAwMDAwIG4gCjAwMDAxNDIzODAgMDAwMDAgbiAKMDAwMDE0MjQ2MSAwMDAwMCBuIAowMDAwMTQyNjAxIDAwMDAwIG4gCjAwMDAxNDI3NDMgMDAwMDAgbiAKMDAwMDE0MjgyNCAwMDAwMCBuIAowMDAwMTQyOTY0IDAwMDAwIG4gCjAwMDAxNDMxMDYgMDAwMDAgbiAKMDAwMDE0MzE4NyAwMDAwMCBuIAowMDAwMTQzMzI3IDAwMDAwIG4gCjAwMDAxNDM0NjkgMDAwMDAgbiAKMDAwMDE0MzU1MCAwMDAwMCBuIAowMDAwMTQzNjkwIDAwMDAwIG4gCjAwMDAxNDM4MzIgMDAwMDAgbiAKMDAwMDE0MzkxMyAwMDAwMCBuIAowMDAwMTQ0MDUzIDAwMDAwIG4gCjAwMDAxNDQxOTUgMDAwMDAgbiAKMDAwMDE0NDI3NiAwMDAwMCBuIAowMDAwMTQ0NDE1IDAwMDAwIG4gCjAwMDAxNDQ1NTcgMDAwMDAgbiAKMDAwMDE0NDYzOCAwMDAwMCBuIAowMDAwMTQ0Nzc4IDAwMDAwIG4gCjAwMDAxNDQ5MjAgMDAwMDAgbiAKMDAwMDE0NDk5OSAwMDAwMCBuIAowMDAwMTQ1MTM5IDAwMDAwIG4gCjAwMDAxNDUyODEgMDAwMDAgbiAKMDAwMDE0NTM2MiAwMDAwMCBuIAowMDAwMTQ1NTAyIDAwMDAwIG4gCjAwMDAxNDU2NDQgMDAwMDAgbiAKMDAwMDE0NTcyNSAwMDAwMCBuIAowMDAwMTQ1ODY1IDAwMDAwIG4gCjAwMDAxNDYwMDcgMDAwMDAgbiAKMDAwMDE0NjA4OCAwMDAwMCBuIAowMDAwMTQ2MjI4IDAwMDAwIG4gCjAwMDAxNDYzNzAgMDAwMDAgbiAKMDAwMDE0NjQ1MSAwMDAwMCBuIAowMDAwMTQ2NTkxIDAwMDAwIG4gCjAwMDAxNDY3MzMgMDAwMDAgbiAKMDAwMDE0NjgxNCAwMDAwMCBuIAowMDAwMTQ2OTU0IDAwMDAwIG4gCjAwMDAxNDcwOTYgMDAwMDAgbiAKMDAwMDE0NzE3NyAwMDAwMCBuIAowMDAwMTQ3MzE3IDAwMDAwIG4gCjAwMDAxNDc0NTcgMDAwMDAgbiAKMDAwMDE0NzUzOCAwMDAwMCBuIAowMDAwMTQ3Njc4IDAwMDAwIG4gCjAwMDAxNDc4MjAgMDAwMDAgbiAKMDAwMDE0NzkwMSAwMDAwMCBuIAowMDAwMTQ4MDQxIDAwMDAwIG4gCjAwMDAxNDgxODEgMDAwMDAgbiAKMDAwMDE0ODI2MCAwMDAwMCBuIAowMDAwMTQ4NDAwIDAwMDAwIG4gCjAwMDAxNDg1NDIgMDAwMDAgbiAKMDAwMDE0ODYyMyAwMDAwMCBuIAowMDAwMTQ4NzYzIDAwMDAwIG4gCjAwMDAxNDg5MDMgMDAwMDAgbiAKMDAwMDE0ODk4NCAwMDAwMCBuIAowMDAwMTQ5MTI0IDAwMDAwIG4gCjAwMDAxNDkyNjYgMDAwMDAgbiAKMDAwMDE0OTM0NyAwMDAwMCBuIAowMDAwMTQ5NDg3IDAwMDAwIG4gCjAwMDAxNDk2MjYgMDAwMDAgbiAKMDAwMDE0OTcwNyAwMDAwMCBuIAowMDAwMTQ5ODQ3IDAwMDAwIG4gCjAwMDAxNDk5ODkgMDAwMDAgbiAKMDAwMDE1MDA3MCAwMDAwMCBuIAowMDAwMTUwMjEwIDAwMDAwIG4gCjAwMDAxNTAzNTIgMDAwMDAgbiAKMDAwMDE1MDQzMyAwMDAwMCBuIAowMDAwMTUwNTczIDAwMDAwIG4gCjAwMDAxNTA3MTUgMDAwMDAgbiAKMDAwMDE1MDc5NiAwMDAwMCBuIAowMDAwMTUwOTM2IDAwMDAwIG4gCjAwMDAxNTEwNzUgMDAwMDAgbiAKMDAwMDE1MTE1NiAwMDAwMCBuIAowMDAwMTUxMjk2IDAwMDAwIG4gCjAwMDAxNTE0MzggMDAwMDAgbiAKMDAwMDE1MTUxOCAwMDAwMCBuIAowMDAwMTUxNjU4IDAwMDAwIG4gCjAwMDAxNTE4MDAgMDAwMDAgbiAKMDAwMDE1MTg3OSAwMDAwMCBuIAowMDAwMTUyMDE5IDAwMDAwIG4gCjAwMDAxNTIxNjEgMDAwMDAgbiAKMDAwMDE1MjI0MCAwMDAwMCBuIAowMDAwMTUyMzc5IDAwMDAwIG4gCjAwMDAxNTI1MjAgMDAwMDAgbiAKMDAwMDE1MjU5OSAwMDAwMCBuIAowMDAwMTUyNzM3IDAwMDAwIG4gCjAwMDAxNTI4NzcgMDAwMDAgbiAKMDAwMDE3OTYyNiAwMDAwMCBuIAowMDAwMTgxNjkwIDAwMDAwIG4gCjAwMDAxNzk2NDkgMDAwMDAgbiAKMDAwMDE4MTg4NSAwMDAwMCBuIAowMDAwMTg0NDY0IDAwMDAwIG4gCjAwMDAxODE5MDcgMDAwMDAgbiAKMDAwMDE4NDY1OSAwMDAwMCBuIAowMDAwMTg2MDUzIDAwMDAwIG4gCjAwMDAxODQ2ODEgMDAwMDAgbiAKMDAwMDE4NDc2MSAwMDAwMCBuIAowMDAwMTg2MDE2IDAwMDAwIG4gCjAwMDAxODQ5MDAgMDAwMDAgbiAKMDAwMDE4NTA0MCAwMDAwMCBuIAowMDAwMTg2MjY2IDAwMDAwIG4gCjAwMDAxODY5ODMgMDAwMDAgbiAKMDAwMDE4NjI4NyAwMDAwMCBuIAowMDAwMTg3MTc4IDAwMDAwIG4gCjAwMDAxODg1MDQgMDAwMDAgbiAKMDAwMDE4NzE5OSAwMDAwMCBuIAowMDAwMTg4Njk5IDAwMDAwIG4gCjAwMDAxODk4MjQgMDAwMDAgbiAKMDAwMDE4ODcyMSAwMDAwMCBuIAowMDAwMTkwMDE5IDAwMDAwIG4gCjAwMDAxOTIyMDMgMDAwMDAgbiAKMDAwMDE5MDA0MSAwMDAwMCBuIAowMDAwMTkyMzk4IDAwMDAwIG4gCjAwMDAxOTMxNjAgMDAwMDAgbiAKMDAwMDE5MjQyMCAwMDAwMCBuIAowMDAwMTkzMzU1IDAwMDAwIG4gCjAwMDAyMDcyNjkgMDAwMDAgbiAKMDAwMDE5MzM3NiAwMDAwMCBuIAowMDAwMTkzNDU1IDAwMDAwIG4gCjAwMDAyMDcwNTYgMDAwMDAgbiAKMDAwMDE5MzU5NSAwMDAwMCBuIAowMDAwMTkzNzM3IDAwMDAwIG4gCjAwMDAxOTM4MTYgMDAwMDAgbiAKMDAwMDE5Mzk1NiAwMDAwMCBuIAowMDAwMTk0MDk4IDAwMDAwIG4gCjAwMDAxOTQxNzggMDAwMDAgbiAKMDAwMDE5NDMxNyAwMDAwMCBuIAowMDAwMTk0NDU5IDAwMDAwIG4gCjAwMDAxOTQ1NDEgMDAwMDAgbiAKMDAwMDE5NDY4MSAwMDAwMCBuIAowMDAwMTk0ODIxIDAwMDAwIG4gCjAwMDAxOTQ5MDMgMDAwMDAgbiAKMDAwMDE5NTA0MyAwMDAwMCBuIAowMDAwMTk1MTg1IDAwMDAwIG4gCjAwMDAxOTUyNjUgMDAwMDAgbiAKMDAwMDE5NTQwNSAwMDAwMCBuIAowMDAwMTk1NTQ1IDAwMDAwIG4gCjAwMDAxOTU2MjUgMDAwMDAgbiAKMDAwMDE5NTc2NSAwMDAwMCBuIAowMDAwMTk1OTA3IDAwMDAwIG4gCjAwMDAxOTU5ODcgMDAwMDAgbiAKMDAwMDE5NjEyNiAwMDAwMCBuIAowMDAwMTk2MjY4IDAwMDAwIG4gCjAwMDAxOTYzNDggMDAwMDAgbiAKMDAwMDE5NjQ4NyAwMDAwMCBuIAowMDAwMTk2NjI3IDAwMDAwIG4gCjAwMDAxOTY3MDcgMDAwMDAgbiAKMDAwMDE5Njg0NiAwMDAwMCBuIAowMDAwMTk2OTg4IDAwMDAwIG4gCjAwMDAxOTcwNjggMDAwMDAgbiAKMDAwMDE5NzIwOCAwMDAwMCBuIAowMDAwMTk3MzQ3IDAwMDAwIG4gCjAwMDAxOTc0MjcgMDAwMDAgbiAKMDAwMDE5NzU2NSAwMDAwMCBuIAowMDAwMTk3NzA3IDAwMDAwIG4gCjAwMDAyMDc0ODIgMDAwMDAgbiAKMDAwMDIwNzUwNCAwMDAwMCBuIAowMDAwMjA3NzY3IDAwMDAwIG4gCjAwMDAyMTg4NDcgMDAwMDAgbiAKMDAwMDIxODk0NSAwMDAwMCBuIAowMDAwMjE5MTEwIDAwMDAwIG4gCjAwMDAyMTk1MjkgMDAwMDAgbiAKMDAwMDIyMDA0MCAwMDAwMCBuIAowMDAwMjIwMzAxIDAwMDAwIG4gCjAwMDAyMzYyMzkgMDAwMDAgbiAKMDAwMDIzNjM0NCAwMDAwMCBuIAowMDAwMjM2NTA1IDAwMDAwIG4gCjAwMDAyMzcwMzIgMDAwMDAgbiAKMDAwMDIzNzY2NyAwMDAwMCBuIAowMDAwMjM3OTMzIDAwMDAwIG4gCjAwMDAyNTI0NjAgMDAwMDAgbiAKMDAwMDI1MjU2MCAwMDAwMCBuIAowMDAwMjUyNzI2IDAwMDAwIG4gCjAwMDAyNTMyMDggMDAwMDAgbiAKMDAwMDI1Mzc5MiAwMDAwMCBuIAowMDAwMjUzODE1IDAwMDAwIG4gCjAwMDAyNTM4MzUgMDAwMDAgbiAKMDAwMDI1Mzg1NiAwMDAwMCBuIAowMDAwMjUzODc5IDAwMDAwIG4gCjAwMDAyNTM4OTkgMDAwMDAgbiAKMDAwMDI1MzkyMCAwMDAwMCBuIAowMDAwMjUzOTQzIDAwMDAwIG4gCjAwMDAyNTM5NjMgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDIgMCBSCiAgL0luZm8gNCAwIFIKICAvSUQgWzxCRDgzNjQ5NTdDQTczMkJGNjc0NUI4OEU3QUI5MDU5RD4gPEJEODM2NDk1N0NBNzMyQkY2NzQ1Qjg4RTdBQjkwNTlEPl0KICAvU2l6ZSAzMDQKPj4Kc3RhcnR4cmVmCjI1NDg3MAolJUVPRgo=