OTRSMasterSlave
5.0.2
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for OTRSMasterSlave 5 patch level 2
Build for OTRSMasterSlave 5.
Build for OTRSMasterSlave 5 beta1.
Includes "Ticket Master/Slave" feature.
Enthält "Ticket Master/Slave" Funktionalität.
5.0.x
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to install the OTRS package OTRSMasterSlave.<br/>
<br/>
<br/>
<strong>ATTENTION</strong>
<br/>
<br/>
Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>BIENVENIDO</strong>
<br/>
<br/>
Usted está a punto de instalar el paquete OTRSMasterSlave de OTRS.<br/>
<br/>
<br/>
<strong>ATENCIÓN</strong>
<br/>
<br/>
Por favor asegúrese que su base de datos acepte paquetes de más de 5 MB de tamaño. Por ejemplo una base de datos de MySQL acepta paquetes de más de 1 MB predefinido. En este caso la configuración max_allowed_packet debe ser incrementada. El tamaño recomendado es 20 MB.
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>ATTENTION</strong>
<br/>
<br/>
If you uninstall this package, ParentChild ticket links will remain, but all ticket Master
Slave relations that were created during the use of this package be deleted.
All data from these relations will be irrevocably lost!
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>ATENCIÓN</strong>
<br/>
<br/>
Si usted desinstala este paquete, los vínculos de tickets PadreHijo
permanecerán, pero todas relaciones de tickets Master Slave creadas durante
el uso de este paquete serán borradas.
¡Todos los datos de esas relaciones se perderán irrevocablemente!.
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to upgrade the OTRS package OTRSMasterSlave.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>BIENVENIDO</strong>
<br/>
<br/>
Usted está apunto de actualizar el paquete OTRSMasterSlave de OTRS.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
$Kernel::OM->Get('var::packagesetup::OTRSMasterSlave')->CodeInstall();
$Kernel::OM->Get('var::packagesetup::OTRSMasterSlave')->CodeUpgrade125();
$Kernel::OM->Get('var::packagesetup::OTRSMasterSlave')->CodeUpgrade();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_91();
$Kernel::OM->Get('var::packagesetup::OTRSMasterSlave')->CodeUninstall();
$Kernel::OM->Get('var::packagesetup::OTRSMasterSlave')->CodeReinstall();
2016-01-14 05:38:47
opms.otrs.com
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkNoYW5nZXMiPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iTWFzdGVyU2xhdmU6OkR5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmUgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBtYXN0ZXIgdGlja2V0IGZlYXR1cmUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmc+TWFzdGVyU2xhdmU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJNYXN0ZXJTbGF2ZTo6QWR2YW5jZWRFbmFibGVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZSB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgcGFydCBvZiB0aGUgZmVhdHVyZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6Ok1hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+RGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPkVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9Ik1hc3RlclNsYXZlOjpVbnNldE1hc3RlclNsYXZlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZSB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPkRpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJNYXN0ZXJTbGF2ZTo6VXBkYXRlTWFzdGVyU2xhdmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPkRpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJNYXN0ZXJTbGF2ZTo6Rm9sbG93VXBkYXRlZE1hc3RlciIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FbmFibGUgdGhlIGZlYXR1cmUgdGhhdCBzbGF2ZSB0aWNrZXRzIGZvbGxvdyB0aGUgbWFzdGVyIHRpY2tldCB0byBhIG5ldyBtYXN0ZXIgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPkRpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJNYXN0ZXJTbGF2ZTo6Rm9yd2FyZFNsYXZlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FbmFibGUgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgJ2ZvcndhcmQnIG9mIGEgbWFzdGVyIHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzbGF2ZSB0aWNrZXRzLiBCeSBkZWZhdWx0IChkaXNhYmxlZCkgaXQgd2lsbCBub3QgZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgJ2ZvcndhcmQnIHRvIHRoZSBzbGF2ZSB0aWNrZXRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6TWFzdGVyU2xhdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5EaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+RW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iTWFzdGVyU2xhdmU6OktlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIE1hc3RlclNsYXZlIHN0YXRlIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6TWFzdGVyU2xhdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5EaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+RW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iTWFzdGVyU2xhdmU6OktlZXBQYXJlbnRDaGlsZEFmdGVyVXBkYXRlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIGNoYW5nZSBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPkRpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5FbmFibGVkPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkV2ZW50TW9kdWxlUG9zdCMjI01hc3RlclNsYXZlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6Ok1hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OlRpY2tldDo6RXZlbnQ6Ok1hc3RlclNsYXZlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFdmVudCI+KEFydGljbGVDcmVhdGV8QXJ0aWNsZVNlbmR8VGlja2V0U3RhdGVVcGRhdGV8VGlja2V0UHJpb3JpdHlVcGRhdGV8VGlja2V0UGVuZGluZ1RpbWVVcGRhdGV8VGlja2V0TG9ja1VwZGF0ZXxUaWNrZXRPd25lclVwZGF0ZXxUaWNrZXRSZXNwb25zaWJsZVVwZGF0ZXxUaWNrZXREeW5hbWljRmllbGRVcGRhdGUpPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iUHJlQXBwbGljYXRpb25Nb2R1bGUjIyNBZ2VudFByZU1hc3RlclNsYXZlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgbW9kdWxlIGFjdGl2YXRlcyBNYXN0ZXIvU2xhdmUgZmllbGQgaW4gbmV3IGVtYWlsIGFuZCBwaG9uZSB0aWNrZXQgc2NyZWVucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6Ok1hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5LZXJuZWw6Ok1vZHVsZXM6OkFnZW50UHJlTWFzdGVyU2xhdmU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24+VGlja2V0IE1hc3RlclNsYXZlPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxUaXRsZT5NYXN0ZXJTbGF2ZTwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5UaWNrZXQ8L05hdkJhck5hbWU+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxKYXZhU2NyaXB0PkNvcmUuQWdlbnQuVGlja2V0QWN0aW9uLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzQ4MC1NYXN0ZXJTbGF2ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0dXMgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpNZW51TW9kdWxlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRpY2tldE1lbnU6OkdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPk1hc3RlclNsYXZlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5DaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIHRoZSB0aWNrZXQuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50VGlja2V0TWFzdGVyU2xhdmU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpY2tldE1hc3RlclNsYXZlO1RpY2tldElEPVslIERhdGEuVGlja2V0SUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUYXJnZXQiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUG9wdXBUeXBlIj5UaWNrZXRBY3Rpb248L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1Blcm1pc3Npb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+TWFzdGVyU2xhdmU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1RpY2tldFR5cGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IHR5cGUgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHNlcnZpY2UgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6U2VydmljZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI093bmVyTWFuZGF0b3J5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgaWYgdGlja2V0IG93bmVyIG11c3QgYmUgc2VsZWN0ZWQgYnkgdGhlIGFnZW50LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNSZXNwb25zaWJsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNTdGF0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBhIG5vdGUgaXMgYWRkZWQgYnkgYW4gYWdlbnQsIHNldHMgdGhlIHN0YXRlIG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIHJlbWluZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNTdGF0ZURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFZhbGlkYXRlTW9kdWxlPktlcm5lbDo6U3lzdGVtOjpTeXNDb25maWc6OlN0YXRlVmFsaWRhdGU8L1ZhbGlkYXRlTW9kdWxlPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPnBlbmRpbmcgcmVtaW5kZXI8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjTm90ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNOb3RlTWFuZGF0b3J5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgaWYgbm90ZSBtdXN0IGJlIGZpbGxlZCBpbiBieSB0aGUgYWdlbnQuIENhbiBiZSBvdmVyd3JpdHRlbiBieSBUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TWFzdGVyU2xhdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjU3ViamVjdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IHN1YmplY3QgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+WyUgVHJhbnNsYXRlKCJNYXN0ZXJTbGF2ZSIpIHwgaHRtbCAlXSE8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjQm9keSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IGJvZHkgdGV4dCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFRleHRBcmVhPjwvVGV4dEFyZWE+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI0ludm9sdmVkQWdlbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TWFzdGVyU2xhdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1hc3RlclNsYXZlIyMjSW5mb3JtQWdlbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgcG9zc2libGUgYWdlbnRzIChhbGwgYWdlbnRzIHdpdGggbm90ZSBwZXJtaXNzaW9ucyBvbiB0aGUgcXVldWUvdGlja2V0KSB0byBkZXRlcm1pbmUgd2hvIHNob3VsZCBiZSBpbmZvcm1lZCBhYm91dCB0aGlzIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNBcnRpY2xlVHlwZURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB0eXBlIG9mIHRoZSBub3RlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+bm90ZS1pbnRlcm5hbDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNBcnRpY2xlVHlwZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3BlY2lmaWVzIHRoZSBkaWZmZXJlbnQgbm90ZSB0eXBlcyB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNQcmlvcml0eSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TWFzdGVyU2xhdmU8L1N1Ykdyb3VwPgogICAgICAgIDxWYWxpZGF0ZU1vZHVsZT5LZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnOjpQcmlvcml0eVZhbGlkYXRlPC9WYWxpZGF0ZU1vZHVsZT4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4zIG5vcm1hbDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNUaXRsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGl0bGUgZmllbGRzIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNIaXN0b3J5VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TWFzdGVyU2xhdmUjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNYXN0ZXJTbGF2ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+JSVNYXN0ZXJTbGF2ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkRhc2hib2FyZEJhY2tlbmQjIyMwOTAwLVRpY2tldE1hc3RlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIG1hc3RlciB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OkRhc2hib2FyZDwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldEdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj5NYXN0ZXIgVGlja2V0czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFsbCBtYXN0ZXIgdGlja2V0czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQXR0cmlidXRlcyI+RHluYW1pY0ZpZWxkX01hc3RlclNsYXZlX0VxdWFscz1NYXN0ZXI7U3RhdGVUeXBlPW9wZW47U3RhdGVUeXBlPW5ldzs8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkZpbHRlciI+QWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaW1lIj5BZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbWl0Ij4xMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVybWlzc2lvbiI+cnc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db250ZW50TGFyZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhY2hlVFRMTG9jYWwiPjAuNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdENvbHVtbnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZSI+MjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VkIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVySUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJOYW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyVXNlcklEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25SZXNwb25zZVRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblNvbHV0aW9uVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVXBkYXRlVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaWNrZXROdW1iZXIiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTG9jayI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPd25lciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZW5kaW5nVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJRdWV1ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXNwb25zaWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNMQSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+MjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkRhc2hib2FyZEJhY2tlbmQjIyMwOTEwLVRpY2tldFNsYXZlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgc2xhdmUgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpEYXNoYm9hcmQ8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpUaWNrZXRHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+U2xhdmUgVGlja2V0czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkFsbCBzbGF2ZSB0aWNrZXRzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBdHRyaWJ1dGVzIj5EeW5hbWljRmllbGRfTWFzdGVyU2xhdmVfTGlrZT1TbGF2ZSo7U3RhdGVUeXBlPW9wZW47U3RhdGVUeXBlPW5ldzs8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkZpbHRlciI+QWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaW1lIj5BZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbWl0Ij4xMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUGVybWlzc2lvbiI+cnc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5Db250ZW50TGFyZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlZmF1bHQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhY2hlVFRMTG9jYWwiPjAuNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdENvbHVtbnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZSI+MjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VkIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVySUQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJOYW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkN1c3RvbWVyVXNlcklEIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkVzY2FsYXRpb25SZXNwb25zZVRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXNjYWxhdGlvblNvbHV0aW9uVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJFc2NhbGF0aW9uVXBkYXRlVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaWNrZXROdW1iZXIiPjI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTG9jayI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPd25lciI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQZW5kaW5nVGltZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJRdWV1ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJSZXNwb25zaWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTZXJ2aWNlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNMQSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+MjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlJlcGxhY2VDdXN0b21lclJlYWxOYW1lT25TbGF2ZUFydGljbGVUeXBlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIHR5cGVzIHdoZXJlIHRoZSByZWFsIG5hbWUgZnJvbSBNYXN0ZXIgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTbGF2ZSB0aWNrZXQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01hc3RlclNsYXZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImVtYWlsLWV4dGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJlbWFpbC1pbnRlcm5hbCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW1haWwtbm90aWZpY2F0aW9uLWV4dCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZW1haWwtbm90aWZpY2F0aW9uLWludCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0icGhvbmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImZheCI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0ic21zIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJ3ZWJyZXF1ZXN0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkFDTEtleXNMZXZlbDM6OkFjdGlvbnMjIyM4ODgtT1RSU01hc3RlclNsYXZlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgd2hpY2ggaXRlbXMgYXJlIGF2YWlsYWJsZSBmb3IgJ0FjdGlvbicgaW4gdGhpcmQgbGV2ZWwgb2YgdGhlIEFDTCBzdHJ1Y3R1cmUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpUaWNrZXRBQ0w8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5BZ2VudFRpY2tldE1hc3RlclNsYXZlPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpEcml2ZXIjIyNNYXN0ZXJTbGF2ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljRmllbGQgYmFja2VuZCByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+TWFzdGVyU2xhdmU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpEcml2ZXI6OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaXNwbGF5TmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5NYXN0ZXIgLyBTbGF2ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6Ok1hc3RlclNsYXZlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb25maWdEaWFsb2ciPkFkbWluRHluYW1pY0ZpZWxkTWFzdGVyU2xhdmU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRpc2FibGVkQWRkIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluRHluYW1pY0ZpZWxkTWFzdGVyU2xhdmUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5NYXN0ZXJTbGF2ZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPEdyb3VwPmFkbWluPC9Hcm91cD4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbj5BZG1pbjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8VGl0bGUgVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBEcm9wLWRvd24gQmFja2VuZCBHVUk8L1RpdGxlPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPkNvcmUuQWdlbnQuQWRtaW4uRHluYW1pY0ZpZWxkLmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxKYXZhU2NyaXB0PkNvcmUuQWdlbnQuQWRtaW4uRHluYW1pY0ZpZWxkLmpzPC9KYXZhU2NyaXB0PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKICAgIDxDb25maWdJdGVtIE5hbWU9IlRpY2tldDo6RnJvbnRlbmQ6OkJ1bGtNb2R1bGUjIyMwMTAtTWFzdGVyU2xhdmUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFzdGVyU2xhdmUgbW9kdWxlIGZvciBUaWNrZXQgQnVsayBmZWF0dXJlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPk1hc3RlclNsYXZlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXRCdWxrTW9kdWxlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRpY2tldEJ1bGs6Ok1hc3RlclNsYXZlPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgo8L290cnNfY29uZmlnPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Y3NfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE93bmVyIG9mIFRpY2tldCd9ID0gJ1ptxJtuaXQgdmxhc3Ruw61rYSBUaWtldHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2xvc2UgVGlja2V0J30gPSAnVXphdsWZw610IFRpa2V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RlIHRvIFRpY2tldCd9ID0gJ1DFmWlkYXQgcG96bsOhbWt1IGsgVGlrZXR1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCBQZW5kaW5nJ30gPSAnTmFzdGF2aXQgLSDEjWVrw6EgbmEgdnnFmcOtemVuw60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5IG9mIFRpY2tldCd9ID0gJ1ptxJtuaXQgcHJpb3JpdHUgVGlrZXR1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBSZXNwb25zaWJsZSBvZiBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIE1hc3Rlci9TbGF2ZSd9ID0gJ1NwcsOhdmEgdnp0YWh1IE5hZMWZw616ZW7DvS9Qb2TFmcOtemVuw70nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IE1hc3Rlci9TbGF2ZSBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcHRpb25hbCd9ID0gJ1ZvbGl0ZWxuw6knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5mb3JtIGludm9sdmVkIEFnZW50cyd9ID0gJ0luZm9ybW92YXQgesO6xI1hc3RuxJtuw6kgxZllxaFpdGVsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RlIHdpbGwgYmUgKGFsc28pIHJlY2VpdmVkIGJ5Oid9ID0gJ1Bvem7DoW1rYSBidWRlICh0YWvDqSkgZG9ydcSNZW5hOic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IE1hc3RlciBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgTWFzdGVyIFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBTbGF2ZSBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2xhdmUgb2YgVGlja2V0Iyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEb3ZvbHVqZSBwxZlpZMOhdsOhbsOtIHBvem7DoW1layBwxZlpIHpvYnJhemVuw60gTmFkxZnDrXplbsOpaG8gLyBQb2TFmcOtemVuw6lobyB2IGRldGFpbHUgdGlrZXR1IC0gQWdlbnRUaWNrZXRab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIHRoZSB0aWNrZXQuJ30gPSAnWm3Em25hIHN0YXZ1IE5hZMWZw616ZW7DvS9Qb2TFmcOtemVuw70uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBkeW5hbWljIGZpZWxkIG5hbWUgZm9yIG1hc3RlciB0aWNrZXQgZmVhdHVyZS4nfSA9ICdQb2ptZW5vdsOhbsOtIGR5bmFtaWNrw6lobyBwb2xlIHphamnFocWldWrDrWPDrWhvIGZ1bmtjaSBOYWTFmcOtemVuw6lobyB0aWtldHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc25cJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLid9ID0KICAgICAgICAnVXLEjXVqZSwgemRhIGplIHZ5xb5hZG92w6FubyB1emFta251dMOtIHRpa2V0dSBwxZlpIHpvYnJhemVuw60gTmFkxZnDrXplbsOpaG8gLyBQb2TFmcOtemVuw6lobyB2IGRldGFpbHUgdGlrZXR1IHYgQWdlbnRUaWNrZXRab29tLiAoTmVuw60tbGkgdGlrZXQgemF0w61tIHV6ZW3EjWVuLCBidWRlIHV6YW3EjWVuIGEgc3TDoXZhasOtY8OtIGFnZW50IGJ1ZGUgYXV0b21hdGlja3kgdXLEjWVuIGpha28gdmxhc3Ruw61rLiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVXLEjXVqZSBkZWZhdWx0bsOtIG7DoXNsZWR1asOtIHN0YXYgdGlrZXR1IHBvIHDFmWlkw6Fuw60gcG96bsOhbWt5IC0gdiB6b2JyYXplbsOtIE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvSB2IGRldGFpbHUgdGlrZXR1IHYgQWdlbnRUaWNrZXRab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VyxI11amUgZGVmYXVsdG7DrSBwcmlvcml0dSB0aWtldHUgdiB6b2JyYXplbsOtIE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvSB2IEFnZW50VGlja2V0Wm9vbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0eXBlIG9mIHRoZSBub3RlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVXLEjXVqZSBkZWZhdWx0bsOtIHR5cCBwb3puw6Fta3kgdiBwb2hsZWR1IE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvSB2IGRldGFpbHUgdGlrZXR1IHYgQWdlbnRUaWNrZXRab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVXLEjXVqZSBrb21lbnTDocWZIGhpc3RvcmllIHBybyBha2NpIHpvYnJhemVuw60gTmFkxZnDrXplbsO9IC8gUG9kxZnDrXplbsO9LCBrb21lbnTDocWZIGplIHBvdcW+aXQgdiBoaXN0b3JpaSB0aWtldHUgdiByb3pocmFuw60gYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVXLEjXVqZSB0eXAgaGlzdG9yaWUgcHJvIGFrY2kgem9icmF6ZW7DrSBOYWTFmcOtemVuw70gLyBQb2TFmcOtemVuw70sIHR5cCBqZSBwb3XFvml0IHYgaGlzdG9yaWkgdGlrZXR1IHYgcm96aHJhbsOtIGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VyxI11amUgZGFsxaHDrSBzdGF2IHRpa2V0dSBwbyBwxZlpZMOhbsOtIHBvem7DoW1reSB2IHpvYnJhemVuw60gTmFkxZnDrXplbsO9IC8gUG9kxZnDrXplbsO9IHYgZGV0YWlsdSB0aWtldHUgdiByb3pocmFuw60gYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnUG92b2x1amUgcG9rcm/EjWlsb3UgxI3DoXN0ICBrb25jZXB0dSBOYWTFmcOtemVuw70vUG9kxZnDrXplbsO9Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdGhhdCBzbGF2ZSB0aWNrZXRzIGZvbGxvdyB0aGUgbWFzdGVyIHRpY2tldCB0byBhIG5ldyBtYXN0ZXIgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdQb3ZvbHVqZSBwb2TFmcOtemVuw71tIHRpa2V0xa9tIG7DoXNsZWRvdmF0IG5hZMWZw616ZW7DqSB0aWtldHkgayBub3bDqW11IG5hZMWZw616ZW7DqW11IHRpa2V0dSAtIHYgcG9rcm/EjWlsw6ltIGtvbmNlcHR1IE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdQb3ZvbHVqZSB6bcSbbnUgc3RhdnUgbmFkZMWZw616ZW7DvSAvIHBvZMWZw616ZW7DvSB0aWtldHUgdiBwb2tyb8SNaWzDqW0gbW9kdSBrb25jZXB0dSBOYWTFmcOtemVuw70gLyBQb2TFmcOtemVuw70uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyBvZiBhIG1hc3RlciB0aWNrZXQgdG8gdGhlIGN1c3RvbWVycyBvZiB0aGUgc2xhdmUgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzbGF2ZSB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIGNoYW5nZSBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIE1hc3RlclNsYXZlIHN0YXRlIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdQb3ZvbHVqZSB6cnXFoWVuw60gc3RhdnUgdGlrZXR1IG5hZMWZw616ZW7DvSAvIHBvZMWZw616ZW7DvSB2IHBva3JvxI1pbMOpbSBtb2R1IGtvbmNlcHR1IE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Bva3VkIGplIHDFmWlkw6FuYSBwb3puw6Fta2EgYWdlbnRlbSwgdXLEjcOtIHN0YXYgdGlrZXR1IHYgem9icmF6ZW7DrSBOYWTFmcOtemVuw70gLyBQb2TFmcOtemVuw70gLSB2IGRldGFpbHUgdGlrZXR1IHYgcm96aHJhbsOtIGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzdGVyIC8gU2xhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzdGVyU2xhdmUgbW9kdWxlIGZvciBUaWNrZXQgQnVsayBmZWF0dXJlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIG1hc3RlciB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICdQYXJhbWV0cnkgbmFzdGF2ZW7DrSBuw6FzdMSbbmt5IHYgcMWZZWhsZWR1IG5hZMWZw616ZW7DvWNoIHRpa2V0xa8gdiByb3pocmFuw60gYWdlbnRhLiAiTGltaXQiIGplIG1ub8W+c3R2w60gc3RhbmRhcmRuxJsgdmlkaXRlbG7DvWNoIHZzdHVwxa8uICJHcm91cCIgc2UgcG91xb7DrXbDoSBrIG9tZXplbsOtIHDFmcOtc3R1cHUgayBwbHVnaW51IChuYXDFmS46IEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiB1csSNdWplLCB6ZGEgamUgcGx1Z2luIHBvdm9sZW4gc3RhbmRhcmRuxJsgbmVibyB6ZGEgamVqIG11c8OtIHXFvml2YXRlbCBwb3ZvbGl0IG1hbnXDoWxuxJsuICJDYWNoZVRUTExvY2FsIiBqZSBjYWNob3ZhY8OtIMSNYXMgcGx1Z2ludSAtICB2IG1pbnV0w6FjaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzbGF2ZSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICdQYXJhbWV0cnkgbmFzdGF2ZW7DrSBuw6FzdMSbbmt5IHBybyBwxZllaGxlZCBwb2TFmcOtemVuw71jaCB0aWtldMWvIHYgcm96aHJhbsOtIGFnZW50YS4gIkxpbWl0IiBqZSBtbm/FvnN0dsOtIHN0YW5kYXJkbsSbIHZpZGl0ZWxuw71jaCB2c3R1cMWvLiAiR3JvdXAiIHNlIHBvdcW+w612w6EgayBvbWV6ZW7DrSBwxZnDrXN0dXB1IGsgcGx1Z2ludSAobmFwxZkuOiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgdXLEjXVqZSwgemRhIGplIHBsdWdpbiBwb3ZvbGVuIHN0YW5kYXJkbsSbIG5lYm8gemRhIGplaiBtdXPDrSB1xb5pdmF0ZWwgcG92b2xpdCBtYW51w6FsbsSbLiAiQ2FjaGVUVExMb2NhbCIgamUgY2FjaG92YWPDrSDEjWFzIHBsdWdpbnUgLSB2IG1pbnV0w6FjaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVnaXN0cmF0aW9uIG9mIHRoZSB0aWNrZXQgZXZlbnQgbW9kdWxlLid9ID0gJ1JlZ2lzdHJhY2UgbW9kdWx1IHVkw6Fsb3N0w60gdGlrZXR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQb8W+YWRvdmFuw6Egb3Byw6F2bsSbbsOtIGsgdcW+w612w6Fuw60gem9icmF6ZW7DrSBOYWTFmcOtemVuw70gLyBQb2TFmcOtemVuw70gdiBkZXRhaWx1IHRpa2V0dSB2IHJvemhyYW7DrSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VyxI11amUgZGVmYXVsdG7DrSB0ZXh0IHTEm2xhIHBvem7DoW1reSBwxZlpZGFuw6kgdiB6b2JyYXplbsOtIE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvSB2IGRldGFpbHUgdGlrZXR1IHYgcm96aHJhbsOtIGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VyxI11amUgZGVmYXVsdG7DrSBzdWJqZWt0IHBvem7DoW1layB2IHpvYnJhemVuw60gTmFkxZnDrXplbsO9IC8gUG9kxZnDrXplbsO9IHYgZGV0YWlsdSB0aWtldHUgdiByb3pocmFuw60gYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVXLEjXVqZSB6b2Rwb3bEm2Ruw6lobyBhZ2VudGEgdiB6b2JyYXplbsOtIE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvSB2IGRldGFpbHUgdGlrZXR1IHYgcm96aHJhbsOtIGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdVcsSNdWplIHNlcnZpcyB2IHpvYnJhemVuw60gTmFkxZnDrXplbsO9IC8gUG9kxZnDrXplbsO9IHYgZGV0YWlsdSB0aWtldHUgdiByb3pocmFuw60gYWdlbnRhLiAoTXVzw60gYsO9dCBha3Rpdm92w6FuIFRpY2tldDo6U2VydmljZS4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCBvd25lciBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VyxI11amUgdmxhc3Ruw61rYSB0aWtldHUgdiB6b2JyYXplbsOtIE5hZMWZw616ZW7DvSAvIFBvZMWZw616ZW7DvSB2IGRldGFpbHUgdGlrZXR1IHYgcm96aHJhbsOtIGFnZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgdGlja2V0IHR5cGUgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnVXLEjXVqZSB0eXAgdGlrZXR1IHYgem9icmF6ZW7DrSBOYWTFmcOtemVuw70gLyBQb2TFmcOtemVuw70gdiBkZXRhaWx1IHRpa2V0dSB2IHJvemhyYW7DrSBhZ2VudGEuIChNdXPDrSBiw710IGFrdGl2b3bDoW4gVGlja2V0OjpUeXBlLiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGNoYW5nZSB0aGUgTWFzdGVyU2xhdmUgc3RhdHVzIG9mIGEgdGlja2V0IGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdab2JyYXp1amUgbGluayB2IG1lbnUsICBrdGVyw70gc2xvdcW+w60ga2Ugem3Em27EmyBzdGF0dXN1IHRpa2V0dSB2IG5hZMWZw616ZW7DvSAvIHBvZMWZw616ZW7DvSwgdiBkZXRhaWx1IHRpa2V0dSB2IHJvemhyYW7DrSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdab2JyYXp1amUgc2V6bmFtIHbFoWVjaCBhZ2VudMWvLCBrdGXFmcOtIHNlIHBvZMOtbGVsaSBuYSB0aWtldHUsICB2IHpvYnJhemVuw60gTmFkxZnDrXplbsO9IC8gUG9kxZnDrXplbsO9IHYgZGV0YWlsdSB0aWtldHUgdiByb3pocmFuw60gYWdlbnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1pvYnJhenVqZSBzZXpuYW0gbW/Fvm7DvWNoIGFnZW50xa8gKHbFoWljaG5pIGFnZW50aSBtb2hvdWPDrSBwxZlpZGF0IHBvem7DoW1rdSBrIGZyb250xJsvdGlrZXR1KSwgYWJ5IGJ5bG8gbW/Fvm5vIHVyxI1pdCwga2RvIGJ1ZGUgbyBwb3puw6FtY2UgaW5mb3Jtb3bDoW4gLSB2IHpvYnJhemVuw60gTmFkxZnDrXplbsOpaG8vUG9kxZnDrXplbsOpaG8gemF6b29tb3ZhbsOpaG8gdGlrZXR1IHYgYWdlbnRza8OpbSBwcm9zdMWZZWTDrS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGRzIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyB0aGUgZGlmZmVyZW50IGFydGljbGUgdHlwZXMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIE1hc3RlciB0aWNrZXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvbmUgaW4gdGhlIFNsYXZlIHRpY2tldC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBhY3RpdmF0ZXMgTWFzdGVyL1NsYXZlIGZpZWxkIGluIG5ldyBlbWFpbCBhbmQgcGhvbmUgdGlja2V0IHNjcmVlbnMuJ30gPQogICAgICAgICcnOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICdEZW4gImZyZWllbiIgVGV4dCBkZXMgVGlja2V0cyDDpG5kZXJuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBPd25lciBvZiBUaWNrZXQnfSA9ICdEZW4gQmVzaXR6ZXIgZGVzIFRpY2tldHMgw6RuZGVybic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDbG9zZSBUaWNrZXQnfSA9ICdUaWNrZXQgc2NobGllw59lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90ZSB0byBUaWNrZXQnfSA9ICdCZW1lcmt1bmcgenVtIFRpY2tldCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgUGVuZGluZyd9ID0gJ1NldHplIHdhcnRlbmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5IG9mIFRpY2tldCd9ID0gJ8OEbmRlcm4gZGVyIFRpY2tldC1Qcmlvcml0w6R0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBSZXNwb25zaWJsZSBvZiBUaWNrZXQnfSA9ICfDhG5kZXJuIGRlciBUaWNrZXQtVmVyYW50d29ydGxpY2hlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgTWFzdGVyL1NsYXZlJ30gPSAnTWFzdGVyL1NsYXZlIHZlcndhbHRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgTWFzdGVyL1NsYXZlIFZhbHVlJ30gPSAnTWFzdGVyL1NsYXZlIFdlcnQgZmVzdGxlZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wdGlvbmFsJ30gPSAnT3B0aW9uYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5mb3JtIGludm9sdmVkIEFnZW50cyd9ID0gJ0ludm9sdmllcnRlIEFnZW50ZW4gaW5mb3JtaWVyZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90ZSB3aWxsIGJlIChhbHNvKSByZWNlaXZlZCBieTonfSA9ICdEaWUgTm90aXogd2lyZCAoYXVjaCkgZ2VzZW5kZXQgYW46JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpY2tldE1hc3RlclNsYXZlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgTWFzdGVyIFRpY2tldCd9ID0gJ05ldWVzIE1hc3RlciBUaWNrZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgTWFzdGVyIFRpY2tldCd9ID0gJ0F1ZmhlYmVuIGRlcyBNYXN0ZXIgVGlja2V0cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBTbGF2ZSBUaWNrZXQnfSA9ICdBdWZoZWJlbiBkZXMgU2xhdmUgVGlja2V0cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbGF2ZSBvZiBUaWNrZXQjJ30gPSAnU2xhdmUgdm9uIFRpY2tldCc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFcmxhdWJ0IGRhcyBoaW56dWbDvGdlbiB2b24gTm90aXplbiBpbiBkZXIgTWFzdGVyU2xhdmUgQW5zaWNodCBkZXMgQWdlbnRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgdGhlIHRpY2tldC4nfSA9ICdEZW4gTWFzdGVyU2xhdmUgU3RhdHVzIGRlcyBUaWNrZXRzIMOkbmRlcm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBkeW5hbWljIGZpZWxkIG5hbWUgZm9yIG1hc3RlciB0aWNrZXQgZmVhdHVyZS4nfSA9ICdEeW5hbWlzY2hlcyBGZWxkIGbDvHIgZGFzIE1hc3RlciB0aWNrZXQgZGVmaW5pZXJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzblwndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuJ30gPQogICAgICAgICdCZXN0aW1tdCwgb2IgZGllc2VyIFNjcmVlbiBpbSBBZ2VudGVuLUludGVyZmFjZSBkYXMgU3BlcnJlbiBkZXMgVGlja2V0cyB2b3JhdXNzZXR6dC4gRGFzIFRpY2tldCB3aXJkIChmYWxscyBuw7Z0aWcpIGdlc3BlcnJ0IHVuZCBkZXIgYWt0dWVsbGUgQWdlbnQgd2lyZCBhbHMgQmVzaXR6ZXIgZ2VzZXR6dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmVzdGltbXQgZGVuIEZvbGdlc3RhdHVzIGbDvHIgVGlja2V0cywgZsO8ciBkaWUgaW0gTWFzdGVyU2xhdmUgQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZWluZSBOb3RpeiBoaW56dWdlZsO8Z3Qgd3VyZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdGlja2V0IHByaW9yaXR5IGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmVzdGltbXQgZGllIHN0YW5kYXJkbcOkw59pZ2UgVGlja2V0IFByaW9yaXTDpHQgZsO8ciBUaWNrZXRzIGltIE1hc3RlclNsYXZlIEJpbGRzY2hpcm0gZGVzIEFnZW50ZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIG5vdGUgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gc3RhbmRhcmRtw6TDn2lnZW4gVHlwIGVpbmVyIE5vdGl6IGbDvHIgVGlja2V0cyBpbSBNYXN0ZXJTbGF2ZSBCaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSBjb21tZW50IGZvciB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiBIaXN0b3JpZW4gS29tbWVudGFyIHZvbiBUaWNrZXQgQWt0aW9uZW4gaW0gTWFzdGVyU2xhdmUgQmlsZHNjaGlybSwgd2VsY2hlciBmw7xyIGRpZSBUaWNrZXQgSGlzdG9yaWUgaW0gQWdlbnRlbiBJbnRlcmZhY2UgdmVyd2VuZGV0IHdpcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gSGlzdG9yaWVuIFR5cCB2b24gVGlja2V0IEFrdGlvbmVuIGltIE1hc3RlclNsYXZlIEJpbGRzY2hpcm0sIHdlbGNoZXIgZsO8ciBkaWUgVGlja2V0IEhpc3RvcmllIGltIEFnZW50ZW4gSW50ZXJmYWNlIHZlcndlbmRldCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmVzdGltbXQgZGVuIEZvbGdlc3RhdHVzIGbDvHIgVGlja2V0cywgZsO8ciBkaWUgaW0gTWFzdGVyU2xhdmUgQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZWluZSBOb3RpeiBoaW56dWdlZsO8Z3Qgd3VyZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgcGFydCBvZiB0aGUgZmVhdHVyZS4nfSA9ICdEYXMgZXJ3ZWl0ZXJ0ZSBWZXJoYWx0ZW4gZGVyIE1hc3RlclNsYXZlIEVyd2VpdGVydW5nIGFrdGl2aWVyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0aGF0IHNsYXZlIHRpY2tldHMgZm9sbG93IHRoZSBtYXN0ZXIgdGlja2V0IHRvIGEgbmV3IG1hc3RlciBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0FrdGl2aWVyZSBkZW4gTW9kdXMgZGFzIFNsYXZlIFRpY2tldHMgZGVtIE1hc3RlciBUaWNrZXQgaW0gZXJ3ZWl0ZXJ0ZW4gTWFzdGVyU2xhdmUgVmVyaGFsdGVuIHp1bSBuZXVlbiBNYXN0ZXIgZm9sZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0FrdGl2aWVyZSBkZW4gTW9kdXMgdW0gZGVuIE1hc3RlclNsYXZlIFN0YXR1cyBlaW5lcyBUaWNrZXRzIGltIGVyd2VpdGVydGVuIE1hc3RlclNsYXZlIE1vZHVzIHp1IMOkbmRlcm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyBvZiBhIG1hc3RlciB0aWNrZXQgdG8gdGhlIGN1c3RvbWVycyBvZiB0aGUgc2xhdmUgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzbGF2ZSB0aWNrZXRzLid9ID0KICAgICAgICAnQWt0aXZpZXJ0IGRpZSBGdW5rdGlvbiB6dW0gV2VpdGVybGVpdGVuIHZvbiBBcnRpa2VsbiBkZXMgVHlwcyBcJ1dlaXRlcmxlaXRlblwnIHp1IGRlbiBLdW5kZW4gZGVzIFNsYXZlIFRpY2tldHMuIFN0YW5kYXJkbcOkw59pZyAoZGVha3RpdmllcnQpIHdlcmRlbiBrZWluZSBBcnRpa2VsIGRlcyBUeXBzIFwnV2VpdGVybGVpdGVuXCcgYW4gZGllIFNsYXZlIFRpY2tldHMgd2VpdGVyZ2VsZWl0ZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIGNoYW5nZSBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdBa3RpdmllcnQgaW0gZGllIEZ1bmt0aW9uIGltIGVyd2VpdGVydGVuIE1hc3RlclNsYXZlIFZlcmhhbHRlbiBlaW5lIEVsdGVybi1LaW5kLUJlemllaHVuZyBuYWNoIGRlbSDDhG5kZXJuIGRlcyBNYXN0ZXJTbGF2ZSBTdGF0dXMgenUgYmVoYWx0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0FrdGl2aWVydCBpbSBkaWUgRnVua3Rpb24gaW0gZXJ3ZWl0ZXJ0ZW4gTWFzdGVyU2xhdmUgVmVyaGFsdGVuIGVpbmUgRWx0ZXJuLUtpbmQtQmV6aWVodW5nIG5hY2ggZGVtIEF1ZmzDtnNlbiBkZXMgTWFzdGVyU2xhdmUgU3RhdHVzIHp1IGJlaGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gdW5zZXQgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnQWt0aXZpZXJlIGRlbiBNb2R1cyB1bSBkZW4gTWFzdGVyU2xhdmUgU3RhdHVzIGVpbmVzIFRpY2tldHMgaW0gZXJ3ZWl0ZXJ0ZW4gTWFzdGVyU2xhdmUgVmVyaGFsdGVuIGF1Znp1aGViZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VybcO2Z2xpY2h0IGRhcyDDhG5kZXJuIGRlcyBUSWNrZXQgU3RhdHVzLCBiZWltIEhpbnp1ZsO8Z2VuIGVpbmVyIE5vdGl6IGlubmVyaGFsYiBkZXMgTWFzdGVyU2xhdmUgQmlsZHNjaGlybXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlciAvIFNsYXZlJ30gPSAnTWFzdGVyIC8gU2xhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzdGVyU2xhdmUgbW9kdWxlIGZvciBUaWNrZXQgQnVsayBmZWF0dXJlLid9ID0gJ01hc3RlclNsYXZlIE1vZHVsIGbDvHIgZGllIEZ1bmt0aW9uIHZvbiBTYW1tZWxha3Rpb25lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIG1hc3RlciB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICdFaW5zdGVsbHVuZyBkZXIgw5xiZXJzaWNodHNzZWl0ZW5wYXJhbWV0ZXIgZsO8ciBNYXN0ZXIgVGlja2V0cyBpbiBkZXIgQWdlbnRlbm9iZXJmbMOkY2hlLiAiTGltaXQiIGdpYnQgZGllIEFuemFobCBkZXIgc3RhbmRhcmRtw6TDn2lnIGRhcmdlc3RlbGx0ZW4gRWludHLDpGdlIGFuLiAiR3JvdXAiIHdpcmQgdmVyd2VuZGV0LCB1bSBkZW4gWnVncmlmZiBhdWYgZGFzIFBsdWdpbiB6dSBiZWdyZW56ZW4gKGJzcHcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBiZXN0aW1tdCwgb2IgZGFzIFBsdWdpbiBzdGFuZGFyZG3DpMOfaWcgYWt0aXZpZXJ0IGlzdCBvZGVyIG9iIGRlciBCZW51dHplciBlcyBzZWxic3QgYWt0aXZpZXJlbiBtdXNzLiAiQ2FjaGVUVExMb2NhbCIgaXN0IGRpZSBDYWNoaW5nLVplaXQgZGVzIFBsdWdpbnMsIGFuZ2VnZWJlbiBpbiBNaW51dGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHNsYXZlIHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ0VpbnN0ZWxsdW5nIGRlciDDnGJlcnNpY2h0c3NlaXRlbnBhcmFtZXRlciBmw7xyIFNsYXZlIFRpY2tldHMgaW4gZGVyIEFnZW50ZW5vYmVyZmzDpGNoZS4gIkxpbWl0IiBnaWJ0IGRpZSBBbnphaGwgZGVyIHN0YW5kYXJkbcOkw59pZyBkYXJnZXN0ZWxsdGVuIEVpbnRyw6RnZSBhbi4gIkdyb3VwIiB3aXJkIHZlcndlbmRldCwgdW0gZGVuIFp1Z3JpZmYgYXVmIGRhcyBQbHVnaW4genUgYmVncmVuemVuIChic3B3LiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgYmVzdGltbXQsIG9iIGRhcyBQbHVnaW4gc3RhbmRhcmRtw6TDn2lnIGFrdGl2aWVydCBpc3Qgb2RlciBvYiBkZXIgQmVudXR6ZXIgZXMgc2VsYnN0IGFrdGl2aWVyZW4gbXVzcy4gIkNhY2hlVFRMTG9jYWwiIGlzdCBkaWUgQ2FjaGluZy1aZWl0IGRlcyBQbHVnaW5zLCBhbmdlZ2ViZW4gaW4gTWludXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVnaXN0cmF0aW9uIG9mIHRoZSB0aWNrZXQgZXZlbnQgbW9kdWxlLid9ID0gJ1JlZ2lzdHJpZXJ1bmcgZGVzIFRpY2tldCBFdmVudCBNb2R1bHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0JlbsO2dGlndGUgQmVyZWNodGlndW5nZW4gdW0gZGVuIE1hc3RlclNsYXZlIERpYWxvZyBpbSBab29tIFRpY2tldCBEaWFsb2cgZGVzIEFnZW50ZW5pbnRlcmZhY2UgYW56ZWlnZW4genUgbGFzc2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBkZWZhdWx0IGJvZHkgdGV4dCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gc3RhbmRhcmRtw6TDn2lnZW4gQm9keSBUZXh0IGVpbmVyIE5vdGl6IGbDvHIgVGlja2V0cyBpbSBNYXN0ZXJTbGF2ZSBCaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiBzdGFuZGFyZG3DpMOfaWdlbiBCZXRyZWZmIGVpbmVyIE5vdGl6IGbDvHIgVGlja2V0cyBpbSBNYXN0ZXJTbGF2ZSBCaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiB2ZXJhbnR3b3J0bGljaGVuIEFnZW50ZW4gZWluZXMgVGlja2V0cyBpbSBNYXN0ZXJTbGF2ZSBCaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZSBmw7xyIGVpbiBhdWZnZXJ1ZmVuZXMgVGlja2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ0Jlc3RpbW10IGRlbiBTZXJ2aWNlIGVpbmVzIFRpY2tldHMgaW0gTWFzdGVyU2xhdmUgQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZsO8ciBlaW4gYXVmZ2VydWZlbmVzIFRpY2tldCAoVGlja2V0OjpTZXJ2aWNlIG11c3MgYWt0aXZpZXJ0IHNlaW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gQmVzaXR6ZXIgZWluZXMgVGlja2V0cyBpbSBNYXN0ZXJTbGF2ZSBCaWxkc2NoaXJtIGRlcyBBZ2VudGVuLUludGVyZmFjZSBmw7xyIGVpbiBhdWZnZXJ1ZmVuZXMgVGlja2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpUeXBlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdCZXN0aW1tdCBkZW4gVGlja2V0IFR5cCBlaW5lcyBUaWNrZXRzIGltIE1hc3RlclNsYXZlIEJpbGRzY2hpcm0gZGVzIEFnZW50ZW4tSW50ZXJmYWNlIGbDvHIgZWluIGF1ZmdlcnVmZW5lcyBUaWNrZXQgKFRpY2tldDo6VHlwZSBtdXNzIGFrdGl2aWVydCBzZWluKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGNoYW5nZSB0aGUgTWFzdGVyU2xhdmUgc3RhdHVzIG9mIGEgdGlja2V0IGluIHRoZSB0aWNrZXQgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBlaW5lbiBMaW5rIGltIE1lbsO8IHVtIGRlbiBNYXN0ZXJTbGF2ZSBTdGF0dXMgZWluZXMgVGlja2V0cyBpbSBUaWNrZXQgWm9vbSBJbnRlcmZhY2UgZGVzIEFnZW50ZW4gYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBlaW5lIExpc3RlIGFsbGVyIGludm9sdmllcnRlbiBBZ2VudGVuIGbDvHIgZGFzIGdld8OkaGx0ZSBUaWNrZXQgaW0gTWFzdGVyU2xhdmUgQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGVpbmUgTGlzdGUgYWxsZXIgbcO2Z2xpY2hlbiBBZ2VudGVuIChhbGxlIEFnZW50ZW4gbWl0IE5vdGl6IEJlcmVjaHRpZ3VuZyBhdWYgZGVyIFF1ZXVlL2RlbSBUaWNrZXQpIGbDvHIgZGFzIGdld8OkaGx0ZSBUaWNrZXQgaW0gTWFzdGVyU2xhdmUgQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGRpZSBQcmlvcml0w6R0IGVpbmVzIFRpY2tldHMgaW0gTWFzdGVyU2xhdmUgQmlsZHNjaGlybSBkZXMgQWdlbnRlbi1JbnRlcmZhY2UgZsO8ciBlaW4gYXVmZ2VydWZlbmVzIFRpY2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIHRpdGxlIGZpZWxkcyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGRpZSBUaXRlbC1GZWxkZXIgaW4gZGVyIE1hc3RlclNsYXZlLU9iZXJmbMOkY2hlIGVpbmVzIGF1ZmdlcnVmZW5lbiBUaWNrZXRzIGltIEFnZW50ZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIHR5cGVzIHdoZXJlIHRoZSByZWFsIG5hbWUgZnJvbSBNYXN0ZXIgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTbGF2ZSB0aWNrZXQuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIHZlcnNjaGllZGVuZSBBcnRpa2VsdHlwZW4gaW4gZGVuZW4gZGVyIHJlYWxlIE5hbWUgZGVzIE1hc3Rlci1USWNrZXRzIG1pdCBkZW5lbiBkZXMgU2xhdmUtVGlja2V0cyBlcnNldHp0IHdpcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBNYXN0ZXIvU2xhdmUgZmllbGQgaW4gbmV3IGVtYWlsIGFuZCBwaG9uZSB0aWNrZXQgc2NyZWVucy4nfSA9CiAgICAgICAgJ0RpZXNlcyBNb2R1bCBha3RpdmllcnQgZGFzIE1hc3Rlci9TbGF2ZSBGZWxkIGluIGRlciBBbnplaWdlIGbDvHIgZWluIG5ldWVzIEVtYWlsLSBvZGVyIFRlbGVmb24tVGlja2V0Lic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICdDYW1iaWFyIGVsIHRleHRvIGxpYnJlIGRlbCB0aWNrZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE93bmVyIG9mIFRpY2tldCd9ID0gJ0NhbWJpYXIgZWwgcHJvcGlldGFyaW8gZGVsIHRpY2tldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDbG9zZSBUaWNrZXQnfSA9ICdDZXJyYXIgZWwgdGlja2V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOb3RlIHRvIFRpY2tldCd9ID0gJ0HDsWFkaXIgdW5hIG5vdGEgYWwgdGlja2V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCBQZW5kaW5nJ30gPSAnRXN0YWJsZWNlciBjb21vIHBlbmRpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHkgb2YgVGlja2V0J30gPSAnQ2FtYmlhciBsYSBwcmlvcmlkYWQgZGVsIHRpY2tldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUmVzcG9uc2libGUgb2YgVGlja2V0J30gPSAnQ2FtYmlhciBlbCByZXNwb25zYWJsZSBkZWwgdGlja2V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hbmFnZSBNYXN0ZXIvU2xhdmUnfSA9ICdHZXN0acOzbiBNYWVzdHJvL0VzY2Fsdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IE1hc3Rlci9TbGF2ZSBWYWx1ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcHRpb25hbCd9ID0gJ09wY2lvbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luZm9ybSBpbnZvbHZlZCBBZ2VudHMnfSA9ICdJbmZvcm1hciBhIGxvcyBhZ2VudGVzIGludm9sdWNyYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RlIHdpbGwgYmUgKGFsc28pIHJlY2VpdmVkIGJ5Oid9ID0gJ0xhIG5vdGEgc2Vyw6EgcmVjaWJpZGEgKHRhbWJpw6luKSBwb3I6JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpY2tldE1hc3RlclNsYXZlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgTWFzdGVyIFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBNYXN0ZXIgVGlja2V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNsYXZlIFRpY2tldCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbGF2ZSBvZiBUaWNrZXQjJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Blcm1pdGUgYcOxYWRpciBub3RhcyBlbiBsYSBwYW50YWxsYSBkZSB0aWNrZXQgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJ01vZGlmaWNhIGVsIGVzdGFkbyBNYWVzdHJvLUVzY2xhdm8gZGVsIHRpY2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgbWFzdGVyIHRpY2tldCBmZWF0dXJlLid9ID0gJ0RlZmluZSBlbCBub21icmUgZGVsIGNhbXBvIGRpbsOhbWljbyBwYXJhIGxhIGZ1bmNpb25hbGlkYWQgZGUgdGlja2V0IG1hZXN0cm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc25cJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLid9ID0KICAgICAgICAnRGVmaW5lIGVsIGJsb3F1ZW8gcmVxdWVyaWRvIGluIGxhIHBhbnRhbGxhIGRlIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlIChzaSBlbCB0aWNrZXQgbm8gaGEgc2lkbyBibG9xdWVhZG8gYXVuLCBlbCB0aWNrZXQgc2UgYmxvcXVlYSB5IGVsIGFnZW50ZSBhY3R1YWwgc2UgY29udmVydGlyw6EgYXV0b23DoXRpY2FtZW50ZSBlbiBlbCBkdWXDsW8gZGVsIG1pc21vKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGVsIHNpZ3VpZW50ZSBlc3RhZG8gZGVsIHRpY2tldCBkZXNwdcOpcyBkZSBhw7FhZGlyIHVuYSBub3RhLCBlbiBsYSBwYW50YWxsYSBkZSB0aWNrZXQgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbGEgcHJpb3JpZGFkIHBvciBkZWZlY3RvIGVuIGxhIHBhbnRhbGxhIGRlIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIG5vdGUgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgdGlwbyBkZSBub3RhIHBvciBkZWZlY3RvIGVuIGxhIHBhbnRhbGxhIGRlIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGVsIGNvbWVudGFyaW8gZGVsIGhpc3RvcmlhbCBwYXJhIGxhIGFjY2nDs24gZGUgbGEgcGFudGFsbGEgZGVsIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8sIHF1ZSBlcyB1c2FkbyBwYXJhIGVsIGhpc3RvcmlhbCBkZWwgdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgdGlwbyBkZSBoaXN0b3JpYWwgcGFyYSBsYSBhY2Npw7NuIGRlIGxhIHBhbnRhbGxhIGRlbCB0aWNrZXQgTWFlc3Ryby1Fc2NsYXZvLCBxdWUgZXMgdXNhZG8gcGFyYSBlbCBoaXN0b3JpYWwgZGVsIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGVsIHNpZ3VpZW50ZSBlc3RhZG8gZGVzcHXDqXMgZGUgYcOxYWRpciB1bmEgbm90YSwgZW4gbGEgcGFudGFsbGEgZGUgdGlja2V0IE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgcGFydCBvZiB0aGUgZmVhdHVyZS4nfSA9ICdBY3RpdmEgZWwgbW9kbyBhdmFuemFkbyBwYXJhIGxhIGZ1bmNpb25hbGlkYWQgTWFlc3Ryby1Fc2NsYXZvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdGhhdCBzbGF2ZSB0aWNrZXRzIGZvbGxvdyB0aGUgbWFzdGVyIHRpY2tldCB0byBhIG5ldyBtYXN0ZXIgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdBY3RpdmEgbGEgZnVuY2lvbmFsaWRhZCBwYXJhIHF1ZSB0aWNrZXRzIEVzY2xhdm8gYWNvbXBhw7FlbiBhIHN1IHRpY2tldCBNYWVzdHJvIGhhY2lhIHVubyBudWV2byBlbiBlbCBtb2RvIGF2YW56YWRvIHBhcmEgTWFlc3Ryby1Fc2NsYXZvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0FjdGl2YSBsYSBmdW5jaW9uYWxpZGFkIHBhcmEgY2FtYmlhciBlbCBlc3RhZG8gTWFlc3Ryby1Fc2NsYXZvIGRlIHVuIHRpY2tldCBlbiBlbCBtb2RvIGF2YW56YWRvIHBhcmEgTWFlc3Ryby1Fc2NsYXZvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBtYXN0ZXIgdGlja2V0IHRvIHRoZSBjdXN0b21lcnMgb2YgdGhlIHNsYXZlIHRpY2tldHMuIEJ5IGRlZmF1bHQgKGRpc2FibGVkKSBpdCB3aWxsIG5vdCBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyB0byB0aGUgc2xhdmUgdGlja2V0cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciBjaGFuZ2Ugb2YgdGhlIE1hc3RlclNsYXZlIHN0YXRlIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gdW5zZXQgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnQWN0aXZhIGxhIGZ1bmNpb25hbGlkYWQgcGFyYSBzdXByaW1pciBlbCBlc3RhZG8gTWFlc3Ryby1Fc2NsYXZvIGRlIHVuIHRpY2tldCBlbiBlbCBtb2RvIGF2YW56YWRvIHBhcmEgTWFlc3Ryby1Fc2NsYXZvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhIG5vdGUgaXMgYWRkZWQgYnkgYW4gYWdlbnQsIHNldHMgdGhlIHN0YXRlIG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaSB1bmEgbm90YSBlcyBhw7FhZGlkYSBwb3IgdW4gYWdlbnRlLCBmaWphIGVsIGVzdGFkbyBkZWwgdGlja2V0IGVuIGVuIGxhIHBhbnRhbGxhIGRlIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXN0ZXIgLyBTbGF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXN0ZXJTbGF2ZSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgbWFzdGVyIHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ1BhcsOhbWV0cm9zIGRlIGVsIGRhc2hib2FyZCBiYWNrZW5kIGRlIGxhIHZpc3RhIGRlIGxvcyB0aWNrZXRzIG1hZXN0cm9zIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuICJMaW1pdGUiIGVzIGVsIG51bWVybyBkZSBlbnRyYWRhcyBhIG1vc3RyYXIgcG9yIGRlZmVjdG8uICJHcnVwbyIgZXMgdXNhZG8gcGFyYSByZXN0cmluZ2lyIGVsIGFjY2VzbyBhIGVsIHBsdWdpbiAoRS5KLiBHcnVwbzogYWRtaW47Z3J1cG8xO2dydXBvMjspLiAiRGVmZWN0byIgZGV0ZXJtaW5hIHNpIGVsIHBsdWdpbiBlcyBhY3RpdmFkbyBwb3IgZGVmZWN0byDDsyBzaSBlbCB1c3VhcmlvIG5lY2VzaXRhIGFjdGl2YXJsbyBtYW51YWxtZW50ZS4gIkNhY2hlVFRMTG9jYWwiIGVzIGhvcmEgY2FjaGUgZW4gbWludXRvcyBwYXJhIGVsIHBsdWdpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzbGF2ZSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICdQYXJhbWV0cm9zIGRlbCBiYWNrZW5kIGRlbCBwYW5lbCBwcmluY2lwYWwgZGUgbGEgdmlzdGEgZGVsIHRpY2tldCBlc2NsYXZvIGRlbCBpbnRlcmZhY2UgZGVsIGFnZW50ZS4gIkxpbWl0ZSIgZXMgZWwgbsO6bWVybyBkZSBlbnRyYWRhIG1vc3RyYWRhcyBwb3IgZGVmZWN0by4gIkdydXBvImVzIHVzYWRvIHBhcmEgcmVzdHJpbmdpciBlbCBhY2Nlc28gYWwgcGx1Z2luIChFam0uIEdydXBvOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZlY3RvIiBkZXRlcm1pbmEgc2kgZWwgcGx1Z2luIGVzIGhhYmlsaXRhZG8gcG9yIGRlZmVjdG8gbyBzaSBlbCB1c3VhcmlvIG5lY2VzaXRhIGhhYmlsaXRhcmxvIG1hbnVhbG1lbnRlLiAiQ2FjaGVUVExMb2NhbCIgZXMgZWwgdGllbXBvIGRlIGNhY2hlIGVuIG1pbnV0b3MgcGFyYSBlbCBwbHVnaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVnaXN0cmF0aW9uIG9mIHRoZSB0aWNrZXQgZXZlbnQgbW9kdWxlLid9ID0gJ1JlZ2lzdHJvIGRlbCBtw7NkdWxvIGRlIGV2ZW50byBkZSB0aWNrZXRzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQZXJtaXNvcyByZXF1ZXJpZG9zIHBhcmEgdXNhciBsYSBwYW50YWxsYSBNYWVzdHJvLUVzY2xhdm8gZGUgdW4gdGlja2V0LCBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0ZpamEgZWwgdGV4dG8gZGVsIGN1ZXJwbyBwb3IgZGVmZWN0byBkZSBsYXMgbm90YXMgYcOxYWRpZGFzIGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdGaWphIGVsIGFzdW50byBwb3IgZGVmZWN0byBkZSBsYXMgbm90YXMgYcOxYWRpZGFzIGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHJlc3BvbnNpYmxlIGFnZW50IG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdGaWphIGVsIGFnZW50ZSByZXNwb25zYWJsZSBkZSB1biB0aWNrZXQgZW4gbGEgcGFudGFsbGEgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdGaWphIGVsIHNlcnZpY2lvIGRlIHVuIHRpY2tldCBlbiBsYSBwYW50YWxsYSBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlIChUaWNrZXQ6OlNlcnZpY2UgcmVxdWlyZSBzZXIgYWN0aXZhZG8pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdGaWphIGVsIGR1ZcOxbyBkZSB1biB0aWNrZXQgZW4gbGEgcGFudGFsbGEgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgdGlja2V0IHR5cGUgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAnRmlqYSBlbCB0aXBvIGRlIHRpY2tldCBlbiBsYSBwYW50YWxsYSBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlIChUaWNrZXQ6OlR5cGUgcmVxdWlyZSBzZXIgYWN0aXZhZG8pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0dXMgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHBhcmEgY2FtYmlhciBlbCBlc3RhdHVzIE1hZXN0cm8tRXNjbGF2byBkZSB1biB0aWNrZXQsIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW5hIGxpc3RhIGRlIHRvZG9zIGxvcyBhZ2VudGVzIGludm9sdWNyYWRvcyBjb24gZXN0ZSB0aWNrZXQsIGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW5hIGxpc3RhIGRlIHRvZG9zIGxvcyBwb3NpYmxlcyBhZ2VudGVzICh0b2RvcyBsb3MgYWdlbnRlcyBjb24gcGVybWlzb3MgIm5vdGEiIGVuIGxhIGZpbGEvdGlja2V0KSBwYXJhIGRldGVybWluYXIgcXVpw6luIGRlYmVyw6Egc2VyIGluZm9ybWFkbyBhY2VyY2EgZGUgZXN0YSBub3RhLCBlbiBsYSBwYW50YWxsYSBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIGxhcyBvcGNpb25lcyBkZSBwcmlvcmlkYWQgZGUgdGlja2V0IGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aXRsZSBmaWVsZHMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIGxvcyBjYW1wb3MgdMOtdHVsbyBlbiBsYSBwYW50YWxsYSBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIHR5cGVzIHdoZXJlIHRoZSByZWFsIG5hbWUgZnJvbSBNYXN0ZXIgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTbGF2ZSB0aWNrZXQuJ30gPQogICAgICAgICdFc3BlY2lmaWNhciBsb3MgZGlmZXJlbnRlcyB0aXBvcyBkZSBhcnTDrWN1bG9zIGRvbmRlIGVsIHZlcmRhZGVybyBub21icmUgZGVsIHRpY2tleSBtYWVzdHJvIHNlcsOhIHJlZW1wbGF6YWRvIGNvbiBlbCBkZWwgdGlja2V0IGVzY2xhdm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGFjdGl2YXRlcyBNYXN0ZXIvU2xhdmUgZmllbGQgaW4gbmV3IGVtYWlsIGFuZCBwaG9uZSB0aWNrZXQgc2NyZWVucy4nfSA9CiAgICAgICAgJyc7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfTVhfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICdNb2RpZmljYXIgbG9zIENhbXBvcyBMaWJyZXMgZGVsIFRpY2tldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3duZXIgb2YgVGlja2V0J30gPSAnQ2FtYmlhciBlbCBQcm9waWV0YXJpbyBkZWwgVGlja2V0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Nsb3NlIFRpY2tldCd9ID0gJ0NlcnJhciBUaWNrZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGUgdG8gVGlja2V0J30gPSAnQWdyZWdhcmxlIHVuYSBOb3RhIGFsIFRpY2tldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgUGVuZGluZyd9ID0gJ0VzdGFibGVjZXIgY29tbyBwZW5kaWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5IG9mIFRpY2tldCd9ID0gJ0NhbWJpYXIgbGEgUHJpb3JpZGFkIGRlbCBUaWNrZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFJlc3BvbnNpYmxlIG9mIFRpY2tldCd9ID0gJ0NhbWJpYXIgZWwgUmVzcG9uc2FibGUgZGVsIFRpY2tldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgTWFzdGVyL1NsYXZlJ30gPSAnR2VzdGnDs24gTWFlc3Ryby9Fc2NhbHZvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCBNYXN0ZXIvU2xhdmUgVmFsdWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3B0aW9uYWwnfSA9ICdPcGNpb25hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmZvcm0gaW52b2x2ZWQgQWdlbnRzJ30gPSAnTm90aWZpY2FyIGEgQWdlbnRlcyBpbnZvbHVjcmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90ZSB3aWxsIGJlIChhbHNvKSByZWNlaXZlZCBieTonfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGlja2V0TWFzdGVyU2xhdmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBNYXN0ZXIgVGlja2V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IE1hc3RlciBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2xhdmUgVGlja2V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NsYXZlIG9mIFRpY2tldCMnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUGVybWl0ZSBhw7FhZGlyIG5vdGFzIGVuIGxhIHBhbnRhbGxhIGRlIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIHRoZSB0aWNrZXQuJ30gPSAnTW9kaWZpY2EgZWwgZXN0YWRvIE1hZXN0cm8tRXNjbGF2byBkZWwgdGlja2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBtYXN0ZXIgdGlja2V0IGZlYXR1cmUuJ30gPSAnRGVmaW5lIGVsIG5vbWJyZSBkZWwgY2FtcG8gZGluw6FtaWNvIHBhcmEgbGEgZnVuY2lvbmFsaWRhZCBkZSB0aWNrZXQgbWFlc3Ryby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzblwndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuJ30gPQogICAgICAgICdEZWZpbmUgZWwgYmxvcXVlbyByZXF1ZXJpZG8gaW4gbGEgcGFudGFsbGEgZGUgdGlja2V0IE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUgKHNpIGVsIHRpY2tldCBubyBoYSBzaWRvIGJsb3F1ZWFkbyBhdW4sIGVsIHRpY2tldCBzZSBibG9xdWVhIHkgZWwgYWdlbnRlIGFjdHVhbCBzZSBjb252ZXJ0aXLDoSBhdXRvbcOhdGljYW1lbnRlIGVuIGVsIGR1ZcOxbyBkZWwgbWlzbW8pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgc2lndWllbnRlIGVzdGFkbyBkZWwgdGlja2V0IGRlc3B1w6lzIGRlIGHDsWFkaXIgdW5hIG5vdGEsIGVuIGxhIHBhbnRhbGxhIGRlIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBsYSBwcmlvcmlkYWQgcG9yIGRlZmVjdG8gZW4gbGEgcGFudGFsbGEgZGUgdGlja2V0IE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgbm90ZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCB0aXBvIGRlIG5vdGEgcG9yIGRlZmVjdG8gZW4gbGEgcGFudGFsbGEgZGUgdGlja2V0IE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgY29tZW50YXJpbyBkZWwgaGlzdG9yaWFsIHBhcmEgbGEgYWNjacOzbiBkZSBsYSBwYW50YWxsYSBkZWwgdGlja2V0IE1hZXN0cm8tRXNjbGF2bywgcXVlIGVzIHVzYWRvIHBhcmEgZWwgaGlzdG9yaWFsIGRlbCB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCB0aXBvIGRlIGhpc3RvcmlhbCBwYXJhIGxhIGFjY2nDs24gZGUgbGEgcGFudGFsbGEgZGVsIHRpY2tldCBNYWVzdHJvLUVzY2xhdm8sIHF1ZSBlcyB1c2FkbyBwYXJhIGVsIGhpc3RvcmlhbCBkZWwgdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgc2lndWllbnRlIGVzdGFkbyBkZXNwdcOpcyBkZSBhw7FhZGlyIHVuYSBub3RhLCBlbiBsYSBwYW50YWxsYSBkZSB0aWNrZXQgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBwYXJ0IG9mIHRoZSBmZWF0dXJlLid9ID0gJ0FjdGl2YSBlbCBtb2RvIGF2YW56YWRvIHBhcmEgbGEgZnVuY2lvbmFsaWRhZCBNYWVzdHJvLUVzY2xhdm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0aGF0IHNsYXZlIHRpY2tldHMgZm9sbG93IHRoZSBtYXN0ZXIgdGlja2V0IHRvIGEgbmV3IG1hc3RlciBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0FjdGl2YSBsYSBmdW5jaW9uYWxpZGFkIHBhcmEgcXVlIHRpY2tldHMgRXNjbGF2byBhY29tcGHDsWVuIGEgc3UgdGlja2V0IE1hZXN0cm8gaGFjaWEgdW5vIG51ZXZvIGVuIGVsIG1vZG8gYXZhbnphZG8gcGFyYSBNYWVzdHJvLUVzY2xhdm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBjaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnQWN0aXZhIGxhIGZ1bmNpb25hbGlkYWQgcGFyYSBjYW1iaWFyIGVsIGVzdGFkbyBNYWVzdHJvLUVzY2xhdm8gZGUgdW4gdGlja2V0IGVuIGVsIG1vZG8gYXZhbnphZG8gcGFyYSBNYWVzdHJvLUVzY2xhdm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyBvZiBhIG1hc3RlciB0aWNrZXQgdG8gdGhlIGN1c3RvbWVycyBvZiB0aGUgc2xhdmUgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzbGF2ZSB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIGNoYW5nZSBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIE1hc3RlclNsYXZlIHN0YXRlIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdBY3RpdmEgbGEgZnVuY2lvbmFsaWRhZCBwYXJhIHN1cHJpbWlyIGVsIGVzdGFkbyBNYWVzdHJvLUVzY2xhdm8gZGUgdW4gdGlja2V0IGVuIGVsIG1vZG8gYXZhbnphZG8gcGFyYSBNYWVzdHJvLUVzY2xhdm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NpIHVuYSBub3RhIGVzIGHDsWFkaWRhIHBvciB1biBhZ2VudGUsIGZpamEgZWwgZXN0YWRvIGRlbCB0aWNrZXQgZW4gZW4gbGEgcGFudGFsbGEgZGUgdGlja2V0IE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlciAvIFNsYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlclNsYXZlIG1vZHVsZSBmb3IgVGlja2V0IEJ1bGsgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBtYXN0ZXIgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgc2xhdmUgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICdSZWdpc3RybyBkZWwgbcOzZHVvIGRlIGV2ZW50byBwYXJhIHRpY2tldHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1Blcm1pc29zIHJlcXVlcmlkb3MgcGFyYSB1c2FyIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBkZSB1biB0aWNrZXQsIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRmlqYSBlbCB0ZXh0byBkZWwgY3VlcnBvIHBvciBkZWZlY3RvIGRlIGxhcyBub3RhcyBhw7FhZGlkYXMgZW4gbGEgcGFudGFsbGEgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0ZpamEgZWwgYXN1bnRvIHBvciBkZWZlY3RvIGRlIGxhcyBub3RhcyBhw7FhZGlkYXMgZW4gbGEgcGFudGFsbGEgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0ZpamEgZWwgYWdlbnRlIHJlc3BvbnNhYmxlIGRlIHVuIHRpY2tldCBlbiBsYSBwYW50YWxsYSBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ0ZpamEgZWwgc2VydmljaW8gZGUgdW4gdGlja2V0IGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUgKFRpY2tldDo6U2VydmljZSByZXF1aXJlIHNlciBhY3RpdmFkbykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCBvd25lciBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0ZpamEgZWwgZHVlw7FvIGRlIHVuIHRpY2tldCBlbiBsYSBwYW50YWxsYSBNYWVzdHJvLUVzY2xhdm8gZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpUeXBlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdGaWphIGVsIHRpcG8gZGUgdGlja2V0IGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUgKFRpY2tldDo6VHlwZSByZXF1aXJlIHNlciBhY3RpdmFkbykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBjaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcGFyYSBjYW1iaWFyIGVsIGVzdGF0dXMgTWFlc3Ryby1Fc2NsYXZvIGRlIHVuIHRpY2tldCwgZW4gbGEgdmlzdGEgZGV0YWxsYWRhIGRlIGRpY2hvIHRpY2tldCBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBpbnZvbHZlZCBhZ2VudHMgb24gdGhpcyB0aWNrZXQsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1bmEgbGlzdGEgZGUgdG9kb3MgbG9zIGFnZW50ZXMgaW52b2x1Y3JhZG9zIGNvbiBlc3RlIHRpY2tldCwgZW4gbGEgcGFudGFsbGEgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgcG9zc2libGUgYWdlbnRzIChhbGwgYWdlbnRzIHdpdGggbm90ZSBwZXJtaXNzaW9ucyBvbiB0aGUgcXVldWUvdGlja2V0KSB0byBkZXRlcm1pbmUgd2hvIHNob3VsZCBiZSBpbmZvcm1lZCBhYm91dCB0aGlzIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1bmEgbGlzdGEgZGUgdG9kb3MgbG9zIHBvc2libGVzIGFnZW50ZXMgKHRvZG9zIGxvcyBhZ2VudGVzIGNvbiBwZXJtaXNvcyAibm90YSIgZW4gbGEgZmlsYS90aWNrZXQpIHBhcmEgZGV0ZXJtaW5hciBxdWnDqW4gZGViZXLDoSBzZXIgaW5mb3JtYWRvIGFjZXJjYSBkZSBlc3RhIG5vdGEsIGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgbGFzIG9wY2lvbmVzIGRlIHByaW9yaWRhZCBkZSB0aWNrZXQgZW4gbGEgcGFudGFsbGEgTWFlc3Ryby1Fc2NsYXZvIGVuIGxhIHZpc3RhIGRldGFsbGFkYSBkZSBkaWNobyB0aWNrZXQgZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIHRpdGxlIGZpZWxkcyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgbG9zIGNhbXBvcyB0w610dWxvIGVuIGxhIHBhbnRhbGxhIE1hZXN0cm8tRXNjbGF2byBlbiBsYSB2aXN0YSBkZXRhbGxhZGEgZGUgZGljaG8gdGlja2V0IGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyB0aGUgZGlmZmVyZW50IGFydGljbGUgdHlwZXMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIE1hc3RlciB0aWNrZXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvbmUgaW4gdGhlIFNsYXZlIHRpY2tldC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBhY3RpdmF0ZXMgTWFzdGVyL1NsYXZlIGZpZWxkIGluIG5ldyBlbWFpbCBhbmQgcGhvbmUgdGlja2V0IHNjcmVlbnMuJ30gPQogICAgICAgICcnOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aHVfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICdKZWd5IHN6YWJhZCBzesO2dmVnw6luZWsgbcOzZG9zw610w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3duZXIgb2YgVGlja2V0J30gPSAnSmVneSB0dWxhamRvbm9zw6FuYWsgbcOzZG9zw610w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDbG9zZSBUaWNrZXQnfSA9ICdKZWd5IGxlesOhcsOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGUgdG8gVGlja2V0J30gPSAnSmVneXpldCBob3p6w6FhZMOhc2EgYSBqZWd5aGV6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCBQZW5kaW5nJ30gPSAnVsOhcmFrb3rDoXMgYmXDoWxsw610w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUHJpb3JpdHkgb2YgVGlja2V0J30gPSAnSmVneSBwcmlvcml0w6Fzw6FuYWsgbcOzZG9zw610w6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUmVzcG9uc2libGUgb2YgVGlja2V0J30gPSAnSmVneSBmZWxlbMWRc8OpbmVrIG3Ds2Rvc8OtdMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIE1hc3Rlci9TbGF2ZSd9ID0gJ01lc3Rlci9hbMOhcmVuZGVsdCBrZXplbMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IE1hc3Rlci9TbGF2ZSBWYWx1ZSd9ID0gJ01lc3Rlci9hbMOhcmVuZGVsdCDDqXJ0w6lrIGJlw6FsbMOtdMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3B0aW9uYWwnfSA9ICdPcGNpb27DoWxpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmZvcm0gaW52b2x2ZWQgQWdlbnRzJ30gPSAnUsOpc3p0IHZldsWRIMO8Z3lpbnTDqXrFkWsgw6lydGVzw610w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RlIHdpbGwgYmUgKGFsc28pIHJlY2VpdmVkIGJ5Oid9ID0gJ0plZ3l6ZXQgKGlzKSBmb2dhZMOhc3JhIGtlcsO8bCBldHTFkWw6JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpY2tldE1hc3RlclNsYXZlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgTWFzdGVyIFRpY2tldCd9ID0gJ8OaaiBtZXN0ZXJqZWd5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IE1hc3RlciBUaWNrZXQnfSA9ICdNZXN0ZXJqZWd5IHTDtnJsw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBTbGF2ZSBUaWNrZXQnfSA9ICdBbMOhcmVuZGVsdCBqZWd5IHTDtnJsw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbGF2ZSBvZiBUaWNrZXQjJ30gPSAnSmVneSMgYWzDoXJlbmRlbHRqZSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMZWhldMWRdsOpIHRlc3ppIGplZ3l6ZXRlayBob3p6w6FhZMOhc8OhdCBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIHRoZSB0aWNrZXQuJ30gPSAnVsOhbHRvenRhc3NhIG1lZyBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IMOhbGxhcG90w6F0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBtYXN0ZXIgdGlja2V0IGZlYXR1cmUuJ30gPSAnSGF0w6Fyb3p6YSBtZWcgZGluYW1pa3VzIG1lesWRIG5ldsOpdCBhIG1lc3RlcmplZ3kgdHVsYWpkb25zw6FnbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzblwndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBob2d5IHN6w7xrc8OpZ2VzLWUgamVneXrDoXJvbMOhcyBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuIChoYSBhIGplZ3kgbcOpZyBuaW5jcyB6w6Fyb2x2YSwgYWtrb3IgYSBqZWd5IHrDoXJvbHZhIGxlc3osIMOpcyBheiBha3R1w6FsaXMgw7xneWludMOpesWRIGF1dG9tYXRpa3VzYW4gYW5uYWsgdHVsYWpkb25vc2Frw6ludCBsZXN6IGJlw6FsbMOtdHZhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBlZ3kgamVneSBhbGFww6lydGVsbWV6ZXR0IGvDtnZldGtlesWRIMOhbGxhcG90w6F0IGVneSBqZWd5emV0IGhvenrDoWFkw6FzYSB1dMOhbiBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCBqZWd5cHJpb3JpdMOhc3QgZWd5IG5hZ3nDrXRvdHQgamVneW5layBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IGvDqXBlcm55xZFqw6luIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0eXBlIG9mIHRoZSBub3RlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhIGplZ3l6ZXQgYWxhcMOpcnRlbG1lemV0dCB0w61wdXPDoXQgZWd5IG5hZ3nDrXRvdHQgamVneW5layBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IGvDqXBlcm55xZFqw6luIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSBjb21tZW50IGZvciB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6dCBheiBlbMWRem3DqW55IG1lZ2plZ3l6w6lzdCBoYXTDoXJvenphIG1lZyBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IGvDqXBlcm55xZEgbcWxdmVsZXTDqW7DqWwsIGFtZWx5ZXQgYSBqZWd5IGVsxZF6bcOpbnllaW7DqWwgc3pva3RhayBoYXN6bsOhbG5pIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6dCBheiBlbMWRem3DqW55IHTDrXB1c3QgaGF0w6Fyb3p6YSBtZWcgYSBqZWd5IG1lc3Rlci1hbMOhcmVuZGVsdCBrw6lwZXJuecWRIG3FsXZlbGV0w6luw6lsLCBhbWVseWV0IGEgamVneSBlbMWRem3DqW55ZWluw6lsIHN6b2t0YWsgaGFzem7DoWxuaSBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGVneSBqZWd5IGvDtnZldGtlesWRIMOhbGxhcG90w6F0IGVneSBqZWd5emV0IGhvenrDoWFkw6FzYSB1dMOhbiBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnRW5nZWTDqWx5ZXp6ZSBhIHR1bGFqZG9uc8OhZyBzcGVjacOhbGlzIG1lc3Rlci1hbMOhcmVuZGVsdCByw6lzesOpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRoYXQgc2xhdmUgdGlja2V0cyBmb2xsb3cgdGhlIG1hc3RlciB0aWNrZXQgdG8gYSBuZXcgbWFzdGVyIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnRW5nZWTDqWx5ZXp6ZSBhIHR1bGFqZG9uc8OhZ290LCBob2d5IGF6IGFsw6FyZW5kZWx0IGplZ3llayBhIG1lc3RlcmplZ3lldCBrw7Z2ZXNzw6lrIGVneSDDumogbWVzdGVyaGV6IGEgc3BlY2nDoWxpcyBtZXN0ZXItYWzDoXJlbmRlbHQgbcOzZGJhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGNoYW5nZSB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdFbmdlZMOpbHllenplIGEgdHVsYWpkb25zw6Fnb3QgZWd5IGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IMOhbGxhcG90w6FuYWsgbWVndsOhbHRvenRhdMOhc8OhaG96IGEgc3BlY2nDoWxpcyBtZXN0ZXItYWzDoXJlbmRlbHQgbcOzZGJhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIG9mIGEgbWFzdGVyIHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzbGF2ZSB0aWNrZXRzLiBCeSBkZWZhdWx0IChkaXNhYmxlZCkgaXQgd2lsbCBub3QgZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgdG8gdGhlIHNsYXZlIHRpY2tldHMuJ30gPQogICAgICAgICdFbmdlZMOpbHllenplIGEgdHVsYWpkb25zw6Fnb3QgYSBiZWplZ3l6w6lzZWsgdG92w6FiYsOtdMOhc8OhaG96IGVneSBtZXN0ZXJqZWd5IOKAnnRvdsOhYmLDrXTDoXPigJ0gdMOtcHVzw6Fiw7NsIGF6IGFsw6FyZW5kZWx0IGplZ3llayDDvGd5ZmVsZWloZXouIEFsYXDDqXJ0ZWxtZXpldHRlbiAobGV0aWx0dmEpIG5lbSBmb2cgYmVqZWd5esOpc2VrZXQgdG92w6FiYsOtdGFuaSBhIOKAnnRvdsOhYmLDrXTDoXPigJ0gdMOtcHVzYsOzbCBheiBhbMOhcmVuZGVsdCBqZWd5ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIGNoYW5nZSBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdFbmdlZMOpbHllenplIGEgdHVsYWpkb25zw6Fnb3QgYSBzesO8bMWRLWd5ZXJtZWsga2FwY3NvbGF0IG1lZ3RhcnTDoXPDoWhveiBhIG1lc3Rlci1hbMOhcmVuZGVsdCDDoWxsYXBvdCBtZWd2w6FsdG96dGF0w6FzYSB1dMOhbiBhIHNwZWNpw6FsaXMgbWVzdGVyLWFsw6FyZW5kZWx0IG3Ds2RiYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIHVuc2V0IG9mIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0VuZ2Vkw6lseWV6emUgYSB0dWxhamRvbnPDoWdvdCBhIHN6w7xsxZEtZ3llcm1layBrYXBjc29sYXQgbWVndGFydMOhc8OhaG96IGEgbWVzdGVyLWFsw6FyZW5kZWx0IMOhbGxhcG90IHTDtnJsw6lzZSB1dMOhbiBhIHNwZWNpw6FsaXMgbWVzdGVyLWFsw6FyZW5kZWx0IG3Ds2RiYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdFbmdlZMOpbHllenplIGEgdHVsYWpkb25zw6Fnb3QgZWd5IGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IMOhbGxhcG90w6FuYWsgdMO2cmzDqXPDqWhleiBhIHNwZWNpw6FsaXMgbWVzdGVyLWFsw6FyZW5kZWx0IG3Ds2RiYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0hhIGVneSDDvGd5aW50w6l6xZEgaG96esOhYWRvdHQgZWd5IG1lZ2plZ3l6w6lzdCwgYWtrb3IgYmXDoWxsw610amEgYSBqZWd5IMOhbGxhcG90w6F0IGVneSBuYWd5w610b3R0IGplZ3luZWsgYSBqZWd5IG1lc3Rlci1hbMOhcmVuZGVsdCBrw6lwZXJuecWRasOpbiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlciAvIFNsYXZlJ30gPSAnTWVzdGVyIC8gYWzDoXJlbmRlbHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzdGVyU2xhdmUgbW9kdWxlIGZvciBUaWNrZXQgQnVsayBmZWF0dXJlLid9ID0gJ01lc3Rlci1hbMOhcmVuZGVsdCBtb2R1bCBhIGplZ3kgdMO2bWVnZXMgc3pvbGfDoWx0YXTDoXPDoWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBtYXN0ZXIgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnUGFyYW3DqXRlcmVrIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgbWVzdGVyamVneWVpIMOhdHRla2ludMWRasOpbmVrIHZlesOpcmzFkXB1bHQgaMOhdHTDqXJwcm9ncmFtasOhaG96LiBBIOKAnktvcmzDoXTigJ0gYXogYWxhcMOpcnRlbG1lemV0dGVuIG1lZ2plbGVuw610ZXR0IGJlamVneXrDqXNlayBzesOhbWEuIEEg4oCeQ3NvcG9ydOKAnSBoYXN6bsOhbGhhdMOzIGEgaG96esOhZsOpcsOpcyBrb3Jsw6F0b3rDoXPDoWhveiBhIGLFkXbDrXRtw6lueXJlIChww6lsZMOhdWwgQ3NvcG9ydDogYWRtaW47Y3NvcG9ydDE7Y3NvcG9ydDI7KS4gQXog4oCeQWxhcMOpcnRlbG1lemV0dOKAnSBqZWx6aSwgaGEgYSBixZF2w610bcOpbnkgYWxhcMOpcnRlbG1lemV0dGVuIGVuZ2Vkw6lseWV6dmUgdmFuLCB2YWd5IGhhIGEgZmVsaGFzem7DoWzDs25hayBrw6l6emVsIGtlbGwgZW5nZWTDqWx5ZXpuaWUgYXp0LiBBIOKAnkNhY2hlVFRMTG9jYWzigJ0gYSBixZF2w610bcOpbnkgZ3lvcnPDrXTDs3TDoXIgaWRlamUgcGVyY2Jlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzbGF2ZSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICdQYXJhbcOpdGVyZWsgYXogw7xneWludMOpesWRaSBmZWzDvGxldCBhbMOhcmVuZGVsdCBqZWd5ZWkgw6F0dGVraW50xZFqw6luZWsgdmV6w6lybMWRcHVsdCBow6F0dMOpcnByb2dyYW1qw6Fob3ouIEEg4oCeS29ybMOhdOKAnSBheiBhbGFww6lydGVsbWV6ZXR0ZW4gbWVnamVsZW7DrXRldHQgYmVqZWd5esOpc2VrIHN6w6FtYS4gQSDigJ5Dc29wb3J04oCdIGhhc3puw6FsaGF0w7MgYSBob3p6w6Fmw6lyw6lzIGtvcmzDoXRvesOhc8OhaG96IGEgYsWRdsOtdG3DqW55cmUgKHDDqWxkw6F1bCBDc29wb3J0OiBhZG1pbjtjc29wb3J0MTtjc29wb3J0MjspLiBBeiDigJ5BbGFww6lydGVsbWV6ZXR04oCdIGplbHppLCBoYSBhIGLFkXbDrXRtw6lueSBhbGFww6lydGVsbWV6ZXR0ZW4gZW5nZWTDqWx5ZXp2ZSB2YW4sIHZhZ3kgaGEgYSBmZWxoYXN6bsOhbMOzbmFrIGvDqXp6ZWwga2VsbCBlbmdlZMOpbHllem5pZSBhenQuIEEg4oCeQ2FjaGVUVExMb2NhbOKAnSBhIGLFkXbDrXRtw6lueSBneW9yc8OtdMOzdMOhciBpZGVqZSBwZXJjYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWdpc3RyYXRpb24gb2YgdGhlIHRpY2tldCBldmVudCBtb2R1bGUuJ30gPSAnQSBqZWd5IGVzZW3DqW55IG1vZHVsIHJlZ2lzenRyw6FjacOzamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0Egc3rDvGtzw6lnZXMgam9nb3N1bHRzw6Fnb2sgZWd5IG5hZ3nDrXRvdHQgamVneW5layBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IGvDqXBlcm55xZFqw6luZWsgaGFzem7DoWxhdMOhaG96IGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmXDoWxsw610amEgYXogYWxhcMOpcnRlbG1lemV0dCB0w7ZyenNzesO2dmVnZXQgZWd5IG5hZ3nDrXRvdHQgamVneW5layBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IGvDqXBlcm55xZFqw6luIGhvenrDoWFkb3R0IGplZ3l6ZXRla27DqWwgYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBkZWZhdWx0IHN1YmplY3QgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmXDoWxsw610amEgYXogYWxhcMOpcnRlbG1lemV0dCB0w6FyZ3lhdCBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gaG96esOhYWRvdHQgamVneXpldGVrbsOpbCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHJlc3BvbnNpYmxlIGFnZW50IG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZcOhbGzDrXRqYSBhIGplZ3kgZmVsZWzFkXMgw7xneWludMOpesWRasOpdCBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ0Jlw6FsbMOtdGphIGEgc3pvbGfDoWx0YXTDoXN0IGVneSBuYWd5w610b3R0IGplZ3luZWsgYSBqZWd5IG1lc3Rlci1hbMOhcmVuZGVsdCBrw6lwZXJuecWRasOpbiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gKGEgVGlja2V0OjpTZXJ2aWNlIGxlaGV0xZFzw6lnbmVrIGFrdGl2w6FsdmEga2VsbCBsZW5uaWUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCZcOhbGzDrXRqYSBhIGplZ3kgdHVsYWpkb25vc8OhdCBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpUeXBlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdCZcOhbGzDrXRqYSBhIGplZ3kgdMOtcHVzw6F0IGVneSBuYWd5w610b3R0IGplZ3luZWsgYSBqZWd5IG1lc3Rlci1hbMOhcmVuZGVsdCBrw6lwZXJuecWRasOpbiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gKGEgVGlja2V0OjpUeXBlIGxlaGV0xZFzw6lnbmVrIGFrdGl2w6FsdmEga2VsbCBsZW5uaWUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0dXMgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4gZWd5IGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IMOhbGxhcG90w6FuYWsgbWVndsOhbHRvenRhdMOhc8OhaG96IGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgamVneW5hZ3nDrXTDoXMgbsOpemV0w6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdqZWxlbsOtdGkgYSBqZWd5ZW4gcsOpc3p0IHZldsWRIMO2c3N6ZXMgw7xneWludMOpesWRIGxpc3TDoWrDoXQgZWd5IG5hZ3nDrXRvdHQgamVneW5layBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IGvDqXBlcm55xZFqw6luIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgcG9zc2libGUgYWdlbnRzIChhbGwgYWdlbnRzIHdpdGggbm90ZSBwZXJtaXNzaW9ucyBvbiB0aGUgcXVldWUvdGlja2V0KSB0byBkZXRlcm1pbmUgd2hvIHNob3VsZCBiZSBpbmZvcm1lZCBhYm91dCB0aGlzIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnamVsZW7DrXRpIGF6IMO2c3N6ZXMgbGVoZXRzw6lnZXMgw7xneWludMOpesWRIChhIHbDoXLDs2xpc3TDoW4gdmFneSBqZWd5ZW4gamVneXpldCBqb2dvc3VsdHPDoWdnYWwgcmVuZGVsa2V6xZEgw7Zzc3plcyDDvGd5aW50w6l6xZEpIGxpc3TDoWrDoXQgZWd5IG5hZ3nDrXRvdHQgamVneW5layBhIGplZ3kgbWVzdGVyLWFsw6FyZW5kZWx0IGvDqXBlcm55xZFqw6luIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbiBhbm5hayBtZWdoYXTDoXJvesOhc8OhaG96LCBob2d5IGtpdCBrZWxsIHTDoWrDqWtvenRhdG5pIGVycsWRbCBhIGplZ3l6ZXRyxZFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZWdqZWxlbsOtdGkgYSBqZWd5IHByaW9yaXTDoXNpIGxlaGV0xZFzw6lnZWtldCBlZ3kgbmFnecOtdG90dCBqZWd5bmVrIGEgamVneSBtZXN0ZXItYWzDoXJlbmRlbHQga8OpcGVybnnFkWrDqW4gYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGl0bGUgZmllbGRzIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnamVsZW7DrXRpIGEgY8OtbW1lesWRa2V0IGVneSBuYWd5w610b3R0IGplZ3luZWsgYSBqZWd5IG1lc3Rlci1hbMOhcmVuZGVsdCBrw6lwZXJuecWRasOpbiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyB0aGUgZGlmZmVyZW50IGFydGljbGUgdHlwZXMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIE1hc3RlciB0aWNrZXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvbmUgaW4gdGhlIFNsYXZlIHRpY2tldC4nfSA9CiAgICAgICAgJ01lZ2FkamEgYSBrw7xsw7ZuYsO2esWRIGJlamVneXrDqXN0w61wdXNva2F0LCBhaG9sIGEgbWVzdGVyamVneWJlbiBsw6l2xZEgdmFsw7NkaSBuw6l2IGtpIGxlc3ogY3NlcsOpbHZlIGF6IGFsw6FyZW5kZWx0IGplZ3liZW4gbMOpdsWRdmVsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBhY3RpdmF0ZXMgTWFzdGVyL1NsYXZlIGZpZWxkIGluIG5ldyBlbWFpbCBhbmQgcGhvbmUgdGlja2V0IHNjcmVlbnMuJ30gPQogICAgICAgICdFeiBhIG1vZHVsIGJla2FwY3NvbGphIGEgbWVzdGVyL2Fsw6FyZW5kZWx0IG1lesWRdCBheiDDumogZS1tYWlsIMOpcyB0ZWxlZm9ub3MgamVneSBrw6lwZXJuecWRa8O2bi4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICdBbHRlcmFyIG9zIGNhbXBvcyBsaXZyZXMgZG8gY2hhbWFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3duZXIgb2YgVGlja2V0J30gPSAnQWx0ZXJhciBvIHByb3ByaWV0w6FyaW8gZG8gY2hhbWFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDbG9zZSBUaWNrZXQnfSA9ICdGZWNoYXIgQ2hhbWFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90ZSB0byBUaWNrZXQnfSA9ICdBZGljaW9uYXIgTm90YSBhbyBDaGFtYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCBQZW5kaW5nJ30gPSAnQ29uZmlndXJhciBjb21vIFBlbmRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSBvZiBUaWNrZXQnfSA9ICdBbHRlcmFyIGEgUHJpb3JpZGFkZSBkbyBDaGFtYWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBSZXNwb25zaWJsZSBvZiBUaWNrZXQnfSA9ICdBbHRlcmFyIG8gUmVzcG9uc8OhdmVsIHBlbG8gQ2hhbWFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgTWFzdGVyL1NsYXZlJ30gPSAnR2VyZW5jaWFyIE1hc3Rlci9TbGF2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgTWFzdGVyL1NsYXZlIFZhbHVlJ30gPSAnQ29uZmlndXJhciBWYWxvciBNZXN0cmUvRXNjcmF2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPcHRpb25hbCd9ID0gJ09wY2lvbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luZm9ybSBpbnZvbHZlZCBBZ2VudHMnfSA9ICdJbmZvcm1hciBhb3MgYXRlbmRlbnRlcyBlbnZvbHZpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGUgd2lsbCBiZSAoYWxzbykgcmVjZWl2ZWQgYnk6J30gPSAnTm90YSBzZXLDoSByZWNlYmlkYSAodGFtYsOpbSkgcG9yOic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IE1hc3RlciBUaWNrZXQnfSA9ICdOb3ZvIENoYW1hZG8gTWVzdHJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IE1hc3RlciBUaWNrZXQnfSA9ICdEZXNmYXplciBDaGFtYWRvIE1lc3RyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBTbGF2ZSBUaWNrZXQnfSA9ICdEZXNmYXplciBDaGFtYWRvIEVzY3Jhdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2xhdmUgb2YgVGlja2V0Iyd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQZXJtaXRlIGFkaWNpb25hciBub3RhcyBuYSB0ZWxhICJNYXN0ZXJTbGF2ZSInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJ0FsdGVyYSBvIGVzdGFkbyBNYXN0ZXJTbGF2ZSBkZSB1bSBjaGFtYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBtYXN0ZXIgdGlja2V0IGZlYXR1cmUuJ30gPSAnRGVmaW5hIHVtIG5vbWUgZGUgY2FtcG8gZGluw6JtaWNvIHBhcmEgbyByZWN1cnNvIE1hc3RlclNsYXZlIGRvIGNoYW1hZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc25cJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLid9ID0KICAgICAgICAnRGVmaW5lIHNlIHVtIGJsb3F1ZWlvIGRlIHRpY2tldCDDqSByZXF1ZXJpZG8gbmEgdGVsYSBNYXN0ZXJTbGF2ZSBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUgKHNlIG8gdGlja2V0IGFpbmRhIG7Do28gZXN0aXZlciBibG9xdWVhZG8sIG8gdGlja2V0IHNlcsOhIGJsb3F1ZWFkbyBlIG8gYWdlbnRlIGNvcnJlbnRlIHNlcsOhIGF1dG9tYXRpY2FtZW50ZSBkZWZpbmlkbyBjb21vIG8gc2V1IHByb3ByaWV0w6FyaW8pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbyBwcsOzeGltbyBlc3RhZG8gcGFkcsOjbyBkZSB1bSB0aWNrZXQgYXDDs3MgdW1hIG5vdGEgdGVyIHNpZG8gYWRpY2lvbmFkYSwgbmEgdGVsYSBNYXN0ZXJTbGF2ZSBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdGlja2V0IHByaW9yaXR5IGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGEgcHJpb3JpZGFkZSBwYWRyw6NvIGRvIHRpY2tldCBuYSB0ZWxhIE1hc3RlclNsYXZlIGRlIHVtIHRpY2tldCBkZXRhbGhhZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0eXBlIG9mIHRoZSBub3RlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gdGlwbyBwYWRyw6NvIGRlIG5vdGEgbmEgdGVsYSBNYXN0ZXJTbGF2ZSBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbyBjb21lbnTDoXJpbyBkZSBoaXN0w7NyaWNvIHBhcmEgYSBhw6fDo28gZGUgdGVsYSBNYXN0ZXJTbGF2ZSBkbyB0aWNrZXQsIHF1ZSDDqSB1dGlsaXphZGEgcGFyYSBvIGhpc3TDs3JpY28gZG8gdGlja2V0IG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbyB0aXBvIGRlIGhpc3TDs3JpY28gcGFyYSBhIGHDp8OjbyBkYSB0ZWxhIE1hc3RlclNsYXZlIGRvIHRpY2tldCwgcXVlIMOpIHV0aWxpemFkbyBwYXJhIG8gaGlzdMOzcmljbyBkbyB0aWNrZXQgbmEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIHByw7N4aW1vIGVzdGFkbyBkZSB1bSB0aWNrZXQgYXDDs3MgdW1hIG5vdGEgdGVyIHNpZG8gYWRpY2lvbmFkYSwgbmEgdGVsYSBNYXN0ZXJTbGF2ZSBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgcGFydCBvZiB0aGUgZmVhdHVyZS4nfSA9ICdBdGl2YSBvcyByZWN1cnNvcyBhdmFuw6dhZG9zIGRlIE1hc3RlciBTbGF2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRoYXQgc2xhdmUgdGlja2V0cyBmb2xsb3cgdGhlIG1hc3RlciB0aWNrZXQgdG8gYSBuZXcgbWFzdGVyIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnQXRpdmEgbyByZWN1cnNvIHF1ZSBmYXogY29tIHF1ZSB0aWNrZXRzIGVzY3Jhdm9zIHNpZ2FtIG8gdGlja2V0IG1lc3RyZSBwYXJhIHVtIG5vdm8gbWVzdHJlIG5vIG1vZG8gYXZhbsOnYWRvIGRlIE1hc3RlclNsYXZlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0hhYmlsaXRhIG8gcmVjdXJzbyBxdWUgcGVybWl0ZSBhbHRlcmFyIG8gZXN0YWRvIGRlIE1hc3RlclNsYXZlIGRlIHVtIHRpY2tldCBubyBtb2RvIGF2YW7Dp2FkbyBkZSBNYXN0ZXJTbGF2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIG9mIGEgbWFzdGVyIHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzbGF2ZSB0aWNrZXRzLiBCeSBkZWZhdWx0IChkaXNhYmxlZCkgaXQgd2lsbCBub3QgZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgdG8gdGhlIHNsYXZlIHRpY2tldHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciB1bnNldCBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIHVuc2V0IHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ0hhYmlsaXRhIG8gcmVjdXJzbyBxdWUgcGVybWl0ZSByZXRvcm5hciBvIGVzdGFkbyBkZSBNYXN0ZXJTbGF2ZSBkZSB1bSB0aWNrZXQgbm8gbW9kbyBhdmFuw6dhZG8gZGUgTWFzdGVyU2xhdmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NlIHVtYSBub3RhIGZvciBhZGljaW9uYWRhIHBvciB1bSBhZ2VudGUsIGRlZmluZSBvIGVzdGFkbyBkbyB0aWNrZXQgbmEgdGVsYSBkZSBNYXN0ZXJTbGF2ZSBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlciAvIFNsYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlclNsYXZlIG1vZHVsZSBmb3IgVGlja2V0IEJ1bGsgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBtYXN0ZXIgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnUGFyw6JtZXRyb3MgcGFyYSBvIGJhY2tlbmQgZG8gcGFpbmVsIGRlIHZpc8OjbyBnZXJhbCBkZSB0aWNrZXRzIG1lc3RyZSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLiAiTGltaXRlIiDDqSBhIHF1YW50aWRhZGUgZGUgcmVnaXN0cm9zIGV4aWJpZGEgcG9yIHBhZHLDo28uICJHcnVwbyIgw6kgdXNhZG8gcGFyYSByZXN0cmluZ2lyIG8gYWNlc3NvIGFvIHBsdWdpbiAoZXguOiBHcnVwbzogYWRtaW47Z3J1cG8xO2dydXBvMikuICJQYWRyw6NvIiBkZXRlcm1pbmEgc2UgbyBwbHVnaW4gw6kgaGFiaWxpdGFkbyBwb3IgcGFkcsOjbyBvdSBzZSBvIHVzdcOhcmlvIHByZWNpc2EgaGFiaWxpdMOhLWxvIG1hbnVhbG1lbnRlLiAiQ2FjaGVUVExMb2NhbCIgw6kgbyB0ZW1wbyBkZSBjYWNoZSBlbSBtaW51dG9zIHBhcmEgbyBwbHVnaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgc2xhdmUgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnUGFyw6JtZXRyb3MgcGFyYSBvIGJhY2tlbmQgZG8gcGFpbmVsIGRlIHZpc8OjbyBnZXJhbCBkZSB0aWNrZXRzIG1lc3RyZSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLiAiTGltaXRlIiDDqSBhIHF1YW50aWRhZGUgZGUgcmVnaXN0cm9zIGV4aWJpZGEgcG9yIHBhZHLDo28uICJHcnVwbyIgw6kgdXNhZG8gcGFyYSByZXN0cmluZ2lyIG8gYWNlc3NvIGFvIHBsdWdpbiAoZXguOiBHcnVwbzogYWRtaW47Z3J1cG8xO2dydXBvMikuICJQYWRyw6NvIiBkZXRlcm1pbmEgc2UgbyBwbHVnaW4gw6kgaGFiaWxpdGFkbyBwb3IgcGFkcsOjbyBvdSBzZSBvIHVzdcOhcmlvIHByZWNpc2EgaGFiaWxpdMOhLWxvIG1hbnVhbG1lbnRlLiAiQ2FjaGVUVExMb2NhbCIgw6kgbyB0ZW1wbyBkZSBjYWNoZSBlbSBtaW51dG9zIHBhcmEgbyBwbHVnaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICdSZWdpc3RybyBkbyBtw7NkdWxvIGRlIGV2ZW50b3MgZGUgdGlja2V0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdQZXJtaXNzw7VlcyByZXF1ZXJpZGFzIHBhcmEgdXNhciBhIHRlbGEgTWFzdGVyU2xhdmUgZGUgdGlja2V0IGRlIHVtIHRpY2tldCBkZXRhbGhhZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gY29ycG8gZG8gdGV4dG8gcGFkcsOjbyBwYXJhIG5vdGFzIGFkaWNpb25hZGFzIG5hIHRlbGEgTWFzdGVyU2xhdmUgZGUgdGlja2V0IGRlIHVtIHRpY2tldCBkZXRhbGhhZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIGFzc3VudG8gcGFkcsOjbyBwYXJhIG5vdGFzIGFkaWNpb25hZGFzIG5hIHRlbGEgTWFzdGVyU2xhdmUgZGUgdGlja2V0IGRlIHVtIHRpY2tldCBkZXRhbGhhZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIGFnZW50ZSByZXNwb25zw6F2ZWwgZG8gdGlja2V0IG5hIHRlbGEgTWFzdGVyU2xhdmUgZGUgdGlja2V0IGRlIHVtIHRpY2tldCBkZXRhbGhhZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgc2VydmljZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICdEZWZpbmUgbyBzZXJ2acOnbyBuYSB0ZWxhIE1hc3RlclNsYXZlIGRlIHVtIHRpY2tldCBkZXRhbGhhZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZSAoVGlja2V0OjpTZXJ2aWNlIHByZWNpc2Egc2VyIGF0aXZhZG8pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbyBwcm9wcmlldMOhcmlvIGRvIHRpY2tldCBuYSB0ZWxhIE1hc3RlclNsYXZlIGRlIHRpY2tldCBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIHRpcG8gZG8gdGlja2V0IG5hIHRlbGEgTWFzdGVyU2xhdmUgZGUgdGlja2V0IGRlIHVtIHRpY2tldCBkZXRhbGhhZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZSAoVGlja2V0OjpUeXBlIHByZWNpc2Egc2VyIGF0aXZhZG8pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0dXMgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0V4aWJlIHVtIGxpbmsgbm8gbWVudSBwYXJhIGFsdGVyYXIgbyBlc3RhZG8gTWFzdGVyU2xhdmUgZGUgdW0gdGlja2V0IG5hIHRlbGEgZGUgZGV0YWxoZSBkZSB0aWNrZXQgZGEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0V4aWJlIHVtYSBsaXN0YSBkZSB0b2RvcyBvcyBhZ2VudGVzIGVudm9sdmlkb3MgbmVzdGUgdGlja2V0LCBuYSB0ZWxhIE1hc3RlclNsYXZlIGRlIHRpY2tldCBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0V4aWJlIHVtYSBsaXN0YSBkZSB0b2RvcyBvcyBhZ2VudGVzIHBvc3PDrXZlaXMgKHRvZG9zIG9zIGFnZW50ZXMgY29tIHBlcm1pc3PDo28gZGUgbm90YSBuYSBmaWxhL3RpY2tldCkgcGFyYSBkZXRlcm1pbmFyIHF1ZW0gZGV2ZSBzZXIgaW5mb3JtYWRvIHNvYnJlIGVzdGEgbm90YSwgbmEgdGVsYSBNYXN0ZXJTbGF2ZSBkZSB0aWNrZXQgZGUgdW0gdGlja2V0IGRldGFsaGFkbyBuYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFeGliZSBhcyBvcMOnw7VlcyBkZSBwcmlvcmlkYWRlIGRlIHRpY2tldCBuYSB0ZWxhIE1hc3RlclNsYXZlIGRlIHRpY2tldCBkZSB1bSB0aWNrZXQgZGV0YWxoYWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aXRsZSBmaWVsZHMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFeGliZSBvIGNhbXBvIGRlIHTDrXR1bG8gbmEgdGVsYSBNYXN0ZXJTbGF2ZSBkZSB0aWNrZXQgZGUgdW0gdGlja2V0IGRldGFsaGFkbyBuYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIHR5cGVzIHdoZXJlIHRoZSByZWFsIG5hbWUgZnJvbSBNYXN0ZXIgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTbGF2ZSB0aWNrZXQuJ30gPQogICAgICAgICdFc3BlY2lmaWNhIG9zIGRpZmVyZW50ZXMgdGlwb3MgZGUgYXJ0aWdvIG9uZGUgbyBub21lIHJlYWwgZG8gdGlja2V0IE1hc3RlciBzZXLDoSBzdWJzdGl0dcOtZG8gY29tIG8gbm9tZSBkbyB0aWNrZXQgZXNjcmF2by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgYWN0aXZhdGVzIE1hc3Rlci9TbGF2ZSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICfQmNC30LzQtdC90LjRgtGMINGB0LLQvtCx0L7QtNC90YvQuSDRgtC10LrRgdGCINC30LDRj9Cy0LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3duZXIgb2YgVGlja2V0J30gPSAn0JjQt9C80LXQvdC40YLRjCDQstC70LDQtNC10LvRjNGG0LAg0LfQsNGP0LLQutC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Nsb3NlIFRpY2tldCd9ID0gJ9CX0LDQutGA0YvRgtGMINC30LDRj9Cy0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90ZSB0byBUaWNrZXQnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC30LDQvNC10YLQutGDINC6INC30LDRj9Cy0LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgUGVuZGluZyd9ID0gJ9Cf0L7RgdGC0LDQstC40YLRjCDQsiDQvtC20LjQtNCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSBvZiBUaWNrZXQnfSA9ICfQmNC30LzQtdC90LjRgtGMINC/0YDQuNC+0YDQuNGC0LXRgiDQt9Cw0Y/QstC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFJlc3BvbnNpYmxlIG9mIFRpY2tldCd9ID0gJ9CY0LfQvNC10L3QuNGC0Ywg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+0LPQviDQt9Cw0Y/QstC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFuYWdlIE1hc3Rlci9TbGF2ZSd9ID0gJ9Cj0L/RgNCw0LLQu9C10L3QuNC1IE1hc3Rlci9TbGF2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgTWFzdGVyL1NsYXZlIFZhbHVlJ30gPSAn0KPRgdGC0LDQvdC+0LLQuNGC0Ywg0LfQvdCw0YfQtdC90LjQtSBNYXN0ZXIvU2xhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3B0aW9uYWwnfSA9ICfQndC10L7QsdGP0LfQsNGC0LXQu9GM0L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmZvcm0gaW52b2x2ZWQgQWdlbnRzJ30gPSAn0KPQstC10LTQvtC80LjRgtGMINGD0YfQsNGB0YLQstGD0Y7RidC40YUg0LDQs9C10L3RgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90ZSB3aWxsIGJlIChhbHNvKSByZWNlaXZlZCBieTonfSA9ICfQodC+0L7QsdGJ0LXQvdC40LUg0LHRg9C00LXRgiAo0YLQsNC60LbQtSkg0L/QvtC70YPRh9C10L3QvjonOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGlja2V0TWFzdGVyU2xhdmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBNYXN0ZXIgVGlja2V0J30gPSAn0J3QvtCy0LDRjyBNYXN0ZXIg0LfQsNGP0LLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IE1hc3RlciBUaWNrZXQnfSA9ICfQodC90Y/RgtGMINC30L3QsNGH0LXQvdC40LUgTWFzdGVyINC30LDRj9Cy0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBTbGF2ZSBUaWNrZXQnfSA9ICfQodC90Y/RgtGMINC30L3QsNGH0LXQvdC40LUgU2xhdmUg0LfQsNGP0LLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NsYXZlIG9mIFRpY2tldCMnfSA9ICdTbGF2ZSDQvtGCINCX0LDRj9Cy0LrQuCMnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QvtC30LLQvtC70Y/QtdGCINC00L7QsdCw0LLQuNGC0Ywg0YHQvtC+0LHRidC10L3QuNC1INC90LAg0Y3QutGA0LDQvdC1IE1hc3RlclNsYXZlINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJ9CY0LfQvNC10L3QuNGC0Ywg0YHQvtGB0YLQvtGP0L3QuNC1IE1hc3RlclNsYXZlINC00LvRjyDRjdGC0L7QuSDQt9Cw0Y/QstC60LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBkeW5hbWljIGZpZWxkIG5hbWUgZm9yIG1hc3RlciB0aWNrZXQgZmVhdHVyZS4nfSA9ICfQl9Cw0LTQsNC10YIg0LjQvNGPINC00LjQvdCw0LzQuNGH0LXRgdC60L7Qs9C+INC/0L7Qu9GPINC00LvRjyDRhNGD0L3QutGG0LjQuCBtYXN0ZXIv0LPQu9Cw0LLQvdC+0Lkg0LfQsNGP0LLQutC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJ9Ci0YDQtdCx0YPQtdGC0YHRjyDQu9C4INCx0LvQvtC60LjRgNC+0LLQutCwINC30LDRj9Cy0LrQuCDQv9GA0Lgg0L/RgNC40LzQtdC90LXQvdC40Lgg0L7Qv9GG0LjQuCBNYXN0ZXJTbGF2ZSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAgKNC10YHQu9C4INC30LDRj9Cy0LrQsCDQtdGJ0LUg0L3QtSDQt9Cw0LHQu9C+0LrQuNGA0L7QstCw0L3QsCwg0L7QvdCwINCx0LvQvtC60LjRgNGD0LXRgtGB0Y8g0Lgg0YLQtdC60YPRidC40Lkg0LDQs9C10L3RgiDRgdGC0LDQvdC+0LLQuNGC0YHRjyDQtdC1INCS0LvQsNC00LXQu9GM0YbQtdC8KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0LvQtdC00YPRjtGJ0LXQtSDRgdC+0YHRgtC+0Y/QvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC30LDRj9Cy0LrQuCDQv9C+0YHQu9C1INC00L7QsdCw0LLQu9C10L3QuNGPINC30LDQvNC10YLQutC4INC90LAg0Y3QutGA0LDQvdC1IE1hc3RlclNsYXZlINC30LDRj9Cy0LrQuCDQv9GA0Lgg0LXQtSDQv9GA0L7RgdC80L7RgtGA0LUg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRg9C80LDQu9GH0LjQstCw0LXQvNGL0Lkg0L/RgNC40L7RgNC40YLQtdGCINC30LDRj9Cy0LrQuCDQvdCwINGN0LrRgNCw0L3QtSBNYXN0ZXJTbGF2ZSDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC30LDRj9Cy0LrQuCDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgbm90ZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRg9C80LDQu9GH0LjQstCw0LXQvNGL0Lkg0YLQuNC/INGB0L7QvtCx0YnQtdC90LjRjyDQvdCwINGN0LrRgNCw0L3QtSBNYXN0ZXJTbGF2ZSDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INC30LDRj9Cy0LrQuCDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YLQtdC60YHRgiDQutC+0LzQvNC10L3RgtCw0YDQuNGPINCyINC30LDQv9C40YHQuCDQuNGB0YLQvtGA0LjQuCDQv9GA0Lgg0LLRi9C30L7QstC1IE1hc3RlclNsYXZlINGN0LrRgNCw0L3QsCAsINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgtC40L8g0LfQsNC/0LjRgdC4INC40YHRgtC+0YDQuNC4INC/0YDQuCDQstGL0LfQvtCy0LUgTWFzdGVyU2xhdmUg0Y3QutGA0LDQvdCwICwg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0LvQtdC00YPRjtGJ0LXQtSDRgdC+0YHRgtC+0Y/QvdC40LUg0LTQu9GPINC30LDRj9Cy0LrQuCDQv9C+0YHQu9C1INC00L7QsdCw0LLQu9C10L3QuNGPINC30LDQvNC10YLQutC4INC90LAg0Y3QutGA0LDQvdC1IE1hc3RlclNsYXZlINC30LDRj9Cy0LrQuCDQv9GA0Lgg0LXQtSDQv9GA0L7RgdC80L7RgtGA0LUg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAn0JLQutC70Y7Rh9Cw0LXRgiDRgNCw0YHRiNC40YDQtdC90L3Ri9C1INCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0LTQu9GPIE1hc3RlclNsYXZlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdGhhdCBzbGF2ZSB0aWNrZXRzIGZvbGxvdyB0aGUgbWFzdGVyIHRpY2tldCB0byBhIG5ldyBtYXN0ZXIgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICfQktC60LvRjtGH0LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0L/QtdGA0LXQtNCw0YfQuCDQv9C+0LTRh9C40L3QtdC90L3Ri9GFINC30LDRj9Cy0L7QuiDQs9C70LDQstC90L7QuSDQt9Cw0Y/QstC60Lgg0Log0L3QvtCy0L7QuSDQs9C70LDQstC90L7QuSAg0LIg0YDQsNGB0YjQuNGA0LXQvdC90L7QvCDRgNC10LbQuNC80LUgTWFzdGVyU2xhdmUgLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ9CS0LrQu9GO0YfQsNC10YIg0LLQvtC30LzQvtC20L3QvtGB0YLRjCDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPIE1hc3RlclNsYXZlINC30LDRj9Cy0LrQuCDQsiDRgNCw0YHRiNC40YDQtdC90L3QvtC8INGA0LXQttC40LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIG9mIGEgbWFzdGVyIHRpY2tldCB0byB0aGUgY3VzdG9tZXJzIG9mIHRoZSBzbGF2ZSB0aWNrZXRzLiBCeSBkZWZhdWx0IChkaXNhYmxlZCkgaXQgd2lsbCBub3QgZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgdG8gdGhlIHNsYXZlIHRpY2tldHMuJ30gPQogICAgICAgICfQktC60LvRjtGH0LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0L/QtdGA0LXRgdGL0LvQutC4INGB0L7QvtCx0YnQtdC90LjQuS/Qt9Cw0LzQtdGC0L7QuiDQv9GA0Lgg0L/QtdGA0LXRgdGL0LvQutC1INCz0LvQsNCy0L3QvtC5INC30LDRj9Cy0LrQuCAg0LrQu9C40LXQvdGC0LDQvCDQv9C+0LTRh9C40L3QtdC90L3Ri9GFINC30LDRj9Cy0L7Qui4g0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4gKNCy0YvQutC70Y7Rh9C10L3Qvikg0LIg0L/QvtC00YfQuNC90LXQvdC90YvQtSDQt9Cw0Y/QstC60Lgg0L3QuNGH0LXQs9C+INC90LUg0L/QtdGA0LXRgdGL0LvQsNC10YLRgdGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciBjaGFuZ2Ugb2YgdGhlIE1hc3RlclNsYXZlIHN0YXRlIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAn0JLQutC70Y7Rh9Cw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINGB0L7RhdGA0LDQvdC40YLRjCDRgdCy0Y/Qt9GMINGA0L7QtNC40YLQtdC70Ywt0L/QvtGC0L7QvNC+0Log0LTQu9GPINC30LDRj9Cy0L7Quiwg0L/QvtGB0LvQtSDQuNC30LzQtdC90LXQvdC40Y8g0L/RgNC40LfQvdCw0LrQsCBNYXN0ZXJTbGF2ZSDQsiDRgNCw0YHRiNC40YDQtdC90L3QvtC8INGA0LXQttC40LzQtSBNYXN0ZXJTbGF2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIE1hc3RlclNsYXZlIHN0YXRlIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAn0JLQutC70Y7Rh9Cw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINGB0L7RhdGA0LDQvdC40YLRjCDRgdCy0Y/Qt9GMINGA0L7QtNC40YLQtdC70Ywt0L/QvtGC0L7QvNC+0Log0LTQu9GPINC30LDRj9Cy0L7Quiwg0L/QvtGB0LvQtSDRgdC90Y/RgtC40Y8g0L/RgNC40LfQvdCw0LrQsCBNYXN0ZXJTbGF2ZSDQsiDRgNCw0YHRiNC40YDQtdC90L3QvtC8INGA0LXQttC40LzQtSBNYXN0ZXJTbGF2ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIHVuc2V0IHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINGB0LHRgNC+0YHQuNGC0Ywg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdC+0LUg0YHQvtGB0YLQvtGP0L3QuNC1IE1hc3RlclNsYXZlINC30LDRj9Cy0LrQuCDQsiDRgNCw0YHRiNC40YDQtdC90L3QvtC8INGA0LXQttC40LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JXRgdC70Lgg0YHQvtC+0LHRidC10L3QuNC1L9C30LDQvNC10YLQutCwINC00L7QsdCw0LLQu9C10L3QsCDQsNCz0LXQvdGC0L7QvCwg0LfQsNC00LDQtdGCINGB0L7RgdGC0L7Rj9C90LjQtSDQt9Cw0Y/QstC60Lgg0L3QsCDRjdC60YDQsNC90LUgTWFzdGVyU2xhdmUgINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzdGVyIC8gU2xhdmUnfSA9ICdNYXN0ZXIgLyBTbGF2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXN0ZXJTbGF2ZSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAnTWFzdGVyU2xhdmUg0LzQvtC00YPQu9GMINC00LvRjyDRhNGD0L3QutGG0LjQuCDQnNCw0YHRgdC+0LLQvtC1INC00LXQudGB0YLQstC40LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgbWFzdGVyIHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YDQsNC30LTQtdC70LAg0JTQsNC50LTQttC10YHRgtCwINGBINC40L3RhNC+0YDQvNCw0YbQuNC10Lkg0L4gbWFzdGVyINC30LDRj9Cy0LrQsNGFINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4gIkdyb3VwIiDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LPRgNCw0L3QuNGH0LXQvdC40Y8g0LTQvtGB0YLRg9C/0LAg0Log0YDQsNC30LTQtdC70YMgKNC90LDQv9GA0LjQvNC10YAsIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiAtINC30LDQtNCw0LXRgiwg0LHRg9C00LXRgiDQu9C4INGA0LDQt9C00LXQuyDQtNC+0YHRgtGD0L/QtdC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC40LvQuCDQsNCz0LXQvdGCINC00L7Qu9C20LXQvSDQsNC60YLQuNCy0LjRgNC+0LLQsNGC0Ywg0LXQs9C+INCy0YDRg9GH0L3Rg9GOLiAiQ2FjaGVUVExMb2NhbCIgLSDQstGA0LXQvNGPINC+0LHQvdC+0LLQu9C10L3QuNGPINC60Y3RiNCwINCyINC80LjQvdGD0YLQsNGFINC00LvRjyDRjdGC0L7Qs9C+INGA0LDQt9C00LXQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHNsYXZlIHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YDQsNC30LTQtdC70LAg0JTQsNC50LTQttC10YHRgtCwINGBINC40L3RhNC+0YDQvNCw0YbQuNC10Lkg0L4gc2xhdmUg0LfQsNGP0LLQutCw0YUg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLiAiR3JvdXAiINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7Qs9GA0LDQvdC40YfQtdC90LjRjyDQtNC+0YHRgtGD0L/QsCDQuiDRgNCw0LfQtNC10LvRgyAo0L3QsNC/0YDQuNC80LXRgCwgR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIC0g0LfQsNC00LDQtdGCLCDQsdGD0LTQtdGCINC70Lgg0YDQsNC30LTQtdC7INC00L7RgdGC0YPQv9C10L0g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LjQu9C4INCw0LPQtdC90YIg0LTQvtC70LbQtdC9INCw0LrRgtC40LLQuNGA0L7QstCw0YLRjCDQtdCz0L4g0LLRgNGD0YfQvdGD0Y4uICJDYWNoZVRUTExvY2FsIiAtINCy0YDQtdC80Y8g0L7QsdC90L7QstC70LXQvdC40Y8g0LrRjdGI0LAg0LIg0LzQuNC90YPRgtCw0YUg0LTQu9GPINGN0YLQvtCz0L4g0YDQsNC30LTQtdC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICfQoNC10LPQuNGB0YLRgNCw0YbQuNGPINC80L7QtNGD0LvRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQvtCx0YvRgtC40Lkg0LfQsNGP0LLQutC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQn9GA0LDQstCwLCDRgtGA0LXQsdGD0LXQvNGL0LUg0LTQu9GPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPINGE0YPQvdC60YbQuNC4IE1hc3RlclNsYXZlINC30LDRj9Cy0L7QuiDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGC0LXQutGB0YIg0YHQvtC+0LHRidC10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC/0YDQuCDQtNC+0LHQsNCy0LvQtdC90LjQuCDRgdC+0L7QsdGJ0LXQvdC40Y8g0L3QsCDRjdC60YDQsNC90LUgTWFzdGVyU2xhdmUg0LfQsNGP0LLQutC4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBzdWJqZWN0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGC0LXQvNGDINGB0L7QvtCx0YnQtdC90LjRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQv9GA0Lgg0LTQvtCx0LDQstC70LXQvdC40Lgg0YHQvtC+0LHRidC10L3QuNGPINC90LAg0Y3QutGA0LDQvdC1IE1hc3RlclNsYXZlINC30LDRj9Cy0LrQuCDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHJlc3BvbnNpYmxlIGFnZW50IG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0J7RgtCy0LXRgtGB0YLQstC10L3QvdC+0LPQviDQt9CwINC30LDRj9Cy0LrRgyDQvdCwINGN0LrRgNCw0L3QtSBNYXN0ZXJTbGF2ZSDQt9Cw0Y/QstC60Lgg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdC10YDQstC40YEg0LTQu9GPINC30LDRj9Cy0LrQuCDQvdCwINGN0LrRgNCw0L3QtSBNYXN0ZXJTbGF2ZSDQt9Cw0Y/QstC60Lgg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLiAo0J/QsNGA0LDQvNC10YLRgCBUaWNrZXQ6OlNlcnZpY2Ug0LTQvtC70LbQtdC9INCx0YvRgtGMINCy0LrQu9GO0YfQtdC9KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINCS0LvQsNC00LXQu9GM0YbQsCDQt9Cw0Y/QstC60Lgg0L3QsCDRjdC60YDQsNC90LUgTWFzdGVyU2xhdmUg0LfQsNGP0LLQutC4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgdGlja2V0IHR5cGUgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGC0LjQvyDQt9Cw0Y/QstC60Lgg0L3QsCDRjdC60YDQsNC90LUgTWFzdGVyU2xhdmUg0LfQsNGP0LLQutC4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4gKNCf0LDRgNCw0LzQtdGC0YAgVGlja2V0OjpTZXJ2aWNlINC00L7Qu9C20LXQvSDQsdGL0YLRjCDQstC60LvRjtGH0LXQvSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBjaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YHRi9C70LrRgyDQsiDQvNC10L3RjiDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPIE1hc3RlclNsYXZlINGB0YLQsNGC0YPRgdCwICDQvdCwINGN0LrRgNCw0L3QtSDQv9GA0L7RgdC80L7RgtGA0LAg0LfQsNGP0LLQutC4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgaW52b2x2ZWQgYWdlbnRzIG9uIHRoaXMgdGlja2V0LCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0L7QutCw0LfRi9Cy0LDQtdGCINGB0L/QuNGB0L7QuiDQstGB0LXRhSDQv9GA0LjQstC70LXQutCw0LXQvNGL0YUg0LDQs9C10L3RgtC+0LIg0L/QviDRjdGC0L7QuSDQt9Cw0Y/QstC60LUg0L3QsCDRjdC60YDQsNC90LUgTWFzdGVyU2xhdmUg0LfQsNGP0LLQutC4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0L7QutCw0LfRi9Cy0LDQtdGCINGB0L/QuNGB0L7QuiDQstGB0LXRhSDQtNC+0YHRgtGD0L/QvdGL0YUg0LDQs9C10L3RgtC+0LIgKNCy0YHQtdGFINCw0LPQtdC90YLQvtCyINGBINC/0YDQsNCy0LDQvNC4IG5vdGUg0LTQu9GPINC+0YfQtdGA0LXQtNC4L9C30LDRj9Cy0LrQuCksINGH0YLQvtCx0Ysg0LfQsNC00LDRgtGMINC60L7Qs9C+INC90YPQttC90L4g0LjQvdGE0L7RgNC80LjRgNC+0LLQsNGC0Ywg0L7QsSDRjdGC0L7QuSDQt9Cw0LzQtdGC0LrQtSDQvdCwINGN0LrRgNCw0L3QtSBNYXN0ZXJTbGF2ZSDQt9Cw0Y/QstC60Lgg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIHRpY2tldCBwcmlvcml0eSBvcHRpb25zIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQsNC10YIg0LLQvtC30LzQvtC20L3QvtGB0YLRjCDQuNC30LzQtdC90LjRgtGMINC/0YDQuNC+0YDQuNGC0LXRgiDQvdCwINGN0LrRgNCw0L3QtSBNYXN0ZXJTbGF2ZSDQt9Cw0Y/QstC60Lgg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgdGhlIHRpdGxlIGZpZWxkcyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LjQt9C80LXQvdC40YLRjCDRgtC10LzRgyDQt9Cw0Y/QstC60Lgg0L3QsCDRjdC60YDQsNC90LUgTWFzdGVyU2xhdmUg0LfQsNGP0LLQutC4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyB0aGUgZGlmZmVyZW50IGFydGljbGUgdHlwZXMgd2hlcmUgdGhlIHJlYWwgbmFtZSBmcm9tIE1hc3RlciB0aWNrZXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvbmUgaW4gdGhlIFNsYXZlIHRpY2tldC4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgNCw0LfQu9C40YfQvdGL0LUg0YLQuNC/0Ysg0YHQvtC+0LHRidC10L3QuNC5L9C30LDQvNC10YLQvtC6INC00LvRjyDRgdC70YPRh9Cw0Y8g0LfQsNC80LXQvdGLINGA0LXQsNC70YzQvdC+0LPQviDQuNC80LXQvdC4INC40Lcg0LPQu9Cw0LLQvdC+0Lkg0LfQsNGP0LLQutC4INCyINGC0LDQutC40Lwg0LbQtSDQsiDQv9C+0LTRh9C40L3QtdC90L3QvtC5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBhY3RpdmF0ZXMgTWFzdGVyL1NsYXZlIGZpZWxkIGluIG5ldyBlbWFpbCBhbmQgcGhvbmUgdGlja2V0IHNjcmVlbnMuJ30gPQogICAgICAgICfQrdGC0L7RgiDQvNC+0LTRg9C70Ywg0LLQutC70Y7Rh9Cw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINCy0YvQsdC+0YDQsCBtYXN0ZXIvc2xhdmUg0L7Qv9GG0LjQuCDQvdCwINGN0LrRgNCw0L3QtSDRgdC+0LfQtNCw0L3QuNGPINC30LDRj9Cy0LrQuCwg0L3QsCDQvtGB0L3QvtCy0LUg0YLQtdC70LXRhNC+0L3QvdC+0LPQviDQt9Cy0L7QvdC60LAg0LjQu9C4INC/0LjRgdGM0LzQsCDQutC70LjQtdC90YLQsCDQsNCz0LXQvdGC0L7QvC4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3JfQ3lybF9PVFJTTWFzdGVyU2xhdmU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpY2tldE1hc3RlclNsYXZlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgRnJlZSBUZXh0IG9mIFRpY2tldCd9ID0gJ9Cf0YDQvtC80LXQvdC4INGB0LvQvtCx0L7QtNCw0L0g0YLQtdC60YHRgiDRgtC40LrQtdGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIE93bmVyIG9mIFRpY2tldCd9ID0gJ9Cf0YDQvtC80LXQvdC4INCy0LvQsNGB0L3QuNC60LAg0YLQuNC60LXRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Nsb3NlIFRpY2tldCd9ID0gJ9CX0LDRgtCy0L7RgNC4INGC0LjQutC10YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5vdGUgdG8gVGlja2V0J30gPSAn0JTQvtC00LDRmCDQvdCw0L/QvtC80LXQvdGDINGD0Lcg0YLQuNC60LXRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgUGVuZGluZyd9ID0gJ9Ch0YLQsNCy0Lgg0L3QsCDRh9C10LrQsNGa0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFByaW9yaXR5IG9mIFRpY2tldCd9ID0gJ9Cf0YDQvtC80LXQvdC4INC/0YDQuNC+0YDQuNGC0LXRgiDRgtC40LrQtdGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFJlc3BvbnNpYmxlIG9mIFRpY2tldCd9ID0gJ9Cf0YDQvtC80LXQvdC4INC+0LTQs9C+0LLQvtGA0L3QvtCzINC30LAg0YLQuNC60LXRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgTWFzdGVyL1NsYXZlJ30gPSAn0KPQv9GA0LDQstGZ0LDRmtC1INCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgTWFzdGVyL1NsYXZlIFZhbHVlJ30gPSAn0J/QvtC00LXRgdC4INCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDQstGA0LXQtNC90L7RgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wdGlvbmFsJ30gPSAn0J7Qv9GG0LjQvtC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5mb3JtIGludm9sdmVkIEFnZW50cyd9ID0gJ9Ce0LHQsNCy0LXRgdGC0Lgg0YDQtdC70LXQstCw0L3RgtC90LUg0L7Qv9C10YDQsNGC0LXRgNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGUgd2lsbCBiZSAoYWxzbykgcmVjZWl2ZWQgYnk6J30gPSAn0J3QsNC/0L7QvNC10L3RgyDRm9C1ICjRgtCw0LrQvtGS0LUpINC/0YDQuNC80LjRgtC4Oic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IE1hc3RlciBUaWNrZXQnfSA9ICfQndC+0LLQuCDQs9C70LDQstC90Lgg0YLQuNC60LXRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbnNldCBNYXN0ZXIgVGlja2V0J30gPSAn0J7Qv9C+0LfQvtCy0Lgg0L/QvtC00LXRiNCw0LLQsNGa0LUg0LPQu9Cw0LLQvdC+0LMg0YLQuNC60LXRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IFNsYXZlIFRpY2tldCd9ID0gJ9Ce0L/QvtC30L7QstC4INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LDQstC40YHQvdC+0LMg0YLQuNC60LXRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NsYXZlIG9mIFRpY2tldCMnfSA9ICfQl9Cw0LLQuNGB0L3QuCDQvtC0INCi0LjQutC10YIjJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3dzIGFkZGluZyBub3RlcyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0L7Qt9Cy0L7Qu9C4INC00L7QtNCw0LLQsNGa0LUg0LHQtdC70LXRiNC60Lgg0L3QsCDQk9C70LDQstC90Lgv0JfQsNCy0LjRgdC90Lgg0LXQutGA0LDQvdGDINC00LXRgtCw0ZnQvdC+0LMg0L/RgNC40LrQsNC30LAg0YLQuNC60LXRgtCwINC+0L/QtdGA0LDRgtC10YDRgdC60L7QsyDQuNC90YLQtdGA0YTQtdGY0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiB0aGUgdGlja2V0Lid9ID0gJ9Cf0YDQvtC80LXQvdC4INCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDRgdGC0LDRgtGD0YEg0YLQuNC60LXRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgZHluYW1pYyBmaWVsZCBuYW1lIGZvciBtYXN0ZXIgdGlja2V0IGZlYXR1cmUuJ30gPSAn0JTQtdGE0LjQvdC40YjQtSDQtNC40L3QsNC80LjRh9C60Lgg0L3QsNC30LjQsiDQv9C+0ZnQsCDQt9CwINGE0YPQvdC60YbQuNGY0YMg0JPQu9Cw0LLQvdC+0LMg0YLQuNC60LXRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGY0LUg0L/QvtGC0YDQtdCx0L3QviDQt9Cw0LrRmdGD0YfQsNGC0Lgg0LPQu9Cw0LLQvdC4L9C30LDQstC40YHQvdC4INC10LrRgNCw0L0g0YLQuNC60LXRgtCwINC90LAg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgtC40LrQtdGC0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwICjQsNC60L4g0YLQuNC60LXRgiDRmNC+0Ygg0YPQstC10Log0L3QuNGY0LUg0LfQsNC60ZnRg9GH0LDQvSwg0YLQuNC60LXRgiDRm9C1INC00L7QsdC40YLQuCDRgdGC0LDRgtGD0YEg0LfQsNC60ZnRg9GH0LDQvSDQuCDRgtGA0LXQvdGD0YLQvdC4INC+0L/QtdGA0LDRgtC10YAg0ZvQtSDQsdC40YLQuCDQsNGD0YLQvtC80LDRgtGB0LrQuCDQv9C+0YHRgtCw0LLRmdC10L0g0LrQsNC+INCy0LvQsNGB0L3QuNC6KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQvdCw0YDQtdC00L3QuCDRgdGC0LDRgtGD0YEg0YLQuNC60LXRgtCwINC/0L7RgdC70LUg0LTQvtC00LDQstCw0ZnQsCDQsdC10LvQtdGI0LrQtSwg0L3QsCDQs9C70LDQstC90Lgv0LfQsNCy0LjRgdC90Lgg0LXQutGA0LDQvdGDINC00LXRgtCw0ZnQvdC+0LMg0L/RgNC40LrQsNC30LAg0YLQuNC60LXRgtCwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INC/0YDQuNC+0YDQuNGC0LXRgiDRgtC40LrQtdGC0LAg0L3QsCDQs9C70LDQstC90Lgv0LfQsNCy0LjRgdC90Lgg0LXQutCw0L3RgyDQtNC10YLQsNGZ0L3QvtCzINC/0YDQuNC60LDQt9CwINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgbm90ZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YLQuNC/INCx0LXQu9C10YjQutC1INC90LAg0LPQu9Cw0LLQvdC4L9C30LDQstC40YHQvdC4INC10LrRgNCw0L3RgyDQtNC10YLQsNGZ0L3QvtCzINC/0YDQuNC60LDQt9CwINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC60L7QvNC10L3RgtCw0YAg0LfQsCDQuNGB0YLQvtGA0LjRmNCw0YIg0L3QsCDQs9C70LDQstC90Lgv0LfQsNCy0LjRgdC90Lgg0LXQutGA0LDQvdGB0LrQvtGYINCw0LrRhtC40ZjQuCwg0YjRgtC+INGb0LUg0YHQtSDQutC+0YDQuNGB0YLQuNGC0Lgg0LfQsCDQuNGB0YLQvtGA0LjRmNCw0YIg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDRgtC40L8g0LjRgdGC0L7RgNC40ZjQsNGC0LAg0LfQsCDQs9C70LDQstC90Lgv0LfQsNCy0LjRgdC90Lgg0LXQutGA0LDQvdGB0LrRgyDQsNC60YbQuNGY0YMsINGI0YLQviDRm9C1INGB0LUg0LrQvtGA0LjRgdGC0LjRgtC4INC30LAg0LjRgdGC0L7RgNC40ZjQsNGCINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L3QsNGA0LXQtNC90Lgg0YHRgtCw0YLRg9GBINGC0LjQutC10YLQsCDQv9C+0YHQu9C1INC00L7QtNCw0LLQsNGZ0LAg0LHQtdC70LXRiNC60LUsINC90LAg0LPQu9Cw0LLQvdC4L9C30LDQstC40YHQvdC4INC10LrRgNCw0L3RgyDQtNC10YLQsNGZ0L3QvtCzINC/0YDQuNC60LDQt9CwINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgcGFydCBvZiB0aGUgZmVhdHVyZS4nfSA9ICfQkNC60YLQuNCy0LjRgNCwINC90LDQv9GA0LXQtNC90Lgg0LTQtdC+INCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDRhNGD0L3QutGG0LjRmNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdGhhdCBzbGF2ZSB0aWNrZXRzIGZvbGxvdyB0aGUgbWFzdGVyIHRpY2tldCB0byBhIG5ldyBtYXN0ZXIgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICfQkNC60YLQuNCy0LjRgNCw0ZrQtSDRgdCy0L7RmNGB0YLQstCwINC00LAg0LfQsNCy0LjRgdC90Lgg0YLQuNC60LXRgiDQv9GA0LDRgtC4INCz0LvQsNCy0L3QuCDQvdCwINC90L7QstC4INCz0LvQsNCy0L3QuCDRgyDQvdCw0L/RgNC10LTQvdC+0Lwg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC80L7QtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ9CQ0LrRgtC40LLQuNGA0LDRmtC1INGE0YPQvdC60YbQuNGY0LUg0LfQsCDQv9GA0L7QvNC10L3RgyDRgdGC0LDRgtGD0YHQsCDRgtC40LrQtdGC0LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4ICDRgyDQvdCw0L/RgNC10LTQvdC+0Lwg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC80L7QtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gZm9yd2FyZCBhcnRpY2xlcyBmcm9tIHR5cGUgXCdmb3J3YXJkXCcgb2YgYSBtYXN0ZXIgdGlja2V0IHRvIHRoZSBjdXN0b21lcnMgb2YgdGhlIHNsYXZlIHRpY2tldHMuIEJ5IGRlZmF1bHQgKGRpc2FibGVkKSBpdCB3aWxsIG5vdCBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyB0byB0aGUgc2xhdmUgdGlja2V0cy4nfSA9CiAgICAgICAgJ9CQ0LrRgtC40LLQuNGA0LDRmtC1INGB0LLQvtGY0YHRgtCy0LAg0LfQsCDQv9GA0L7RgdC70LXRktC40LLQsNGa0LUg0YfQu9Cw0L3QsNC60LAg0L7QtCDRgtC40L/QsCDQs9C70LDQstC90L7QsyDRgtC40LrQtdGC0LAg0LrQvtGA0LjRgdC90LjRhtC40LzQsCDQt9Cw0LLQuNGB0L3QuNGFINGC0LjQutC10YLQsC4g0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0ZjQtSAo0LjRgdC60ZnRg9GH0LXQvdC+KSDQtNCwINGB0LUg0L3QuNGI0YLQsCDQvdC1INC/0YDQvtGB0LvQtdGS0YPRmNC1INC30LDQstC40YHQvdC40Lwg0YLQuNC60LXRgtC40LzQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgY2hhbmdlIG9mIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBpbiB0aGUgYWR2YW5jZWQgTWFzdGVyU2xhdmUgbW9kZS4nfSA9CiAgICAgICAgJ9CQ0LrRgtC40LLQuNGA0LDRmtC1INGE0YPQvdC60YbQuNGY0LUg0LfQsCDQt9Cw0LTRgNC20LDQstCw0ZrQtSDQstC10LfQtSDQvdCw0LTRgNC10ZLQtdC90Lgt0L/QvtC00YDQtdGS0LXQvdC4INC/0L7RgdC70LUg0LjQt9C80LXQvdC1INGB0YLQsNGa0LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4ICDRgyDQvdCw0L/RgNC10LTQvdC+0Lwg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC80L7QtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8ga2VlcCBwYXJlbnQtY2hpbGQgbGluayBhZnRlciB1bnNldCBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICfQkNC60YLQuNCy0LjRgNCw0ZrQtSDRhNGD0L3QutGG0LjRmNC1INC30LAg0LfQsNC00YDQttCw0LLQsNGa0LUg0LLQtdC30LUg0L3QsNC00YDQtdGS0LXQvdC4LdC/0L7QtNGA0LXRktC10L3QuCDQv9C+0YHQu9C1INC+0L/QvtC30LjQstCwINC/0L7QtNC10YjQsNCy0LDRmtCwINGB0YLQsNGa0LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4ICDRgyDQvdCw0L/RgNC10LTQvdC+0Lwg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC80L7QtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdG8gdW5zZXQgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAn0JDQutGC0LjQstC40YDQsNGa0LUg0YTRg9C90LrRhtC40ZjQtSDQt9CwINC40YHQutGZ0YPRh9C10ZrQtSDRgdGC0LDRgtGD0YHQsCDRgtC40LrQtdGC0LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4ICDRgyDQvdCw0L/RgNC10LTQvdC+0Lwg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC80L7QtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhIG5vdGUgaXMgYWRkZWQgYnkgYW4gYWdlbnQsIHNldHMgdGhlIHN0YXRlIG9mIHRoZSB0aWNrZXQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQvtC/0LXRgNCw0YLQtdGAINC00L7QtNCw0L4g0L3QsNC/0L7QvNC10L3Rgywg0L/QvtC00LXRiNCw0LLQsCDRgdGC0LDRgtGD0YEg0YLQuNC60LXRgtCwINC90LAg0LXQutGA0LDQvdGDINCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDRgtC40LrQtdGC0LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzdGVyIC8gU2xhdmUnfSA9ICfQk9C70LDQstC90LggLyDQl9Cw0LLQuNGB0L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXN0ZXJTbGF2ZSBtb2R1bGUgZm9yIFRpY2tldCBCdWxrIGZlYXR1cmUuJ30gPSAn0JzQvtC00YPQuyDQk9C70LDQstC90Lgv0JfQsNCy0LjRgdC90Lgg0LfQsCDRhNGD0L3QutGG0LjRmNGDINC80LDRgdC+0LLQvdC1INC+0LHRgNCw0LTQtSDRgtC40LrQtdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZCBvZiB0aGUgbWFzdGVyIHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YDQuCDQt9CwINC/0L7Qt9Cw0LTQuNC90YHQutC4INC/0YDQuNC60LDQtyDQutC+0L3RgtGA0L7Qu9C90LUg0YLQsNCx0LvQtSDQv9GA0LXQs9C70LXQtNCwINCz0LvQsNCy0L3QuNGFINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuIOKAntCb0LjQvNC40YLigJ0g0ZjQtSDQsdGA0L7RmCDRg9C90L7RgdCwINC/0L7QtNGA0LXQt9GD0LzQtdCy0LDQvdC+INC/0YDQuNC60LDQt9Cw0L3QuNGFLiDigJ7Qk9GA0YPQv9Cw4oCdINGB0LUg0LrQvtGA0LjRgdGC0Lgg0LTQsCDQvtCz0YDQsNC90LjRh9C4INC/0YDQuNGB0YLRg9C/INC00L7QtNCw0YLQutGDICjQvdC/0YAuINCT0YDRg9C/0LA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4g4oCe0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L7igJ0g0L7QtNGA0LXRktGD0ZjQtSDQtNCwINC70Lgg0ZjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQsNC60YLQuNCy0LjRgNCw0L0g0LjQu9C4INC00LAg0ZjQtSDQv9C+0YLRgNC10LHQvdC+INC00LAg0LPQsCDQutC+0YDQuNGB0L3QuNC6INC80LDQvdGD0LXQu9C90L4g0LDQutGC0LjQstC40YDQsC4g4oCeQ2FjaGVUVExMb2NhbOKAnSDRmNC1INCy0YDQtdC80LUg0YMg0LzQuNC90YPRgtCw0LzQsCDQt9CwINC60LXRiCDQtNC+0LTQsNGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBzbGF2ZSB0aWNrZXRzIG92ZXJ2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuICJMaW1pdCIgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHNob3duIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBkZXRlcm1pbmVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4gIkNhY2hlVFRMTG9jYWwiIGlzIHRoZSBjYWNoZSB0aW1lIGluIG1pbnV0ZXMgZm9yIHRoZSBwbHVnaW4uJ30gPQogICAgICAgICfQn9Cw0YDQsNC80LXRgtGA0Lgg0LfQsCDQv9C+0LfQsNC00LjQvdGB0LrQuCDQv9GA0LjQutCw0Lcg0LrQvtC90YLRgNC+0LvQvdC1INGC0LDQsdC70LUg0L/RgNC10LPQu9C10LTQsCDQs9C70LDQstC90LjRhSDRgtC40LrQtdGC0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLiDigJ7Qm9C40LzQuNGC4oCdINGY0LUg0LHRgNC+0Zgg0YPQvdC+0YHQsCDQv9C+0LTRgNC10LfRg9C80LXQstCw0L3QviDQv9GA0LjQutCw0LfQsNC90LjRhS4g4oCe0JPRgNGD0L/QsOKAnSDRgdC1INC60L7RgNC40YHRgtC4INC00LAg0L7Qs9GA0LDQvdC40YfQuCDQv9GA0LjRgdGC0YPQvyDQtNC+0LTQsNGC0LrRgyAo0L3Qv9GALiDQk9GA0YPQv9CwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuIOKAntCf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+4oCdINC+0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGY0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LDQutGC0LjQstC40YDQsNC9INC40LvQuCDQtNCwINGY0LUg0L/QvtGC0YDQtdCx0L3QviDQtNCwINCz0LAg0LrQvtGA0LjRgdC90LjQuiDQvNCw0L3Rg9C10LvQvdC+INCw0LrRgtC40LLQuNGA0LAuIOKAnkNhY2hlVFRMTG9jYWzigJ0g0ZjQtSDQstGA0LXQvNC1INGDINC80LjQvdGD0YLQsNC80LAg0LfQsCDQutC10Ygg0LTQvtC00LDRgtC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ2lzdHJhdGlvbiBvZiB0aGUgdGlja2V0IGV2ZW50IG1vZHVsZS4nfSA9ICfQoNC10LPQuNGB0YLRgNCw0YbQuNGY0LAg0LzQvtC00YPQu9CwINC00L7Qs9Cw0ZLQsNGY0LAg0LfQsCDRgtC40LrQtdGC0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cd0LXQvtC/0YXQvtC00L3QsCDQtNC+0LfQstC+0LvQsCDQt9CwINGD0L/QvtGC0YDQtdCx0YMg0LPQu9Cw0LLQvdC4L9C30LDQstC40YHQvdC4INC10LrRgNCw0L3QsCDQtNC10YLQsNGZ0L3QvtCzINC/0YDQuNC60LDQt9CwINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YHQsNC00YDQttCw0Zgg0LfQsCDQvdCw0L/QvtC80LXQvdC1INC00L7QtNCw0YLQtSDQvdCwINC90LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC10LrRgNCw0L3RgyDQtNC10YLQsNGZ0L3QvtCzINC/0YDQuNC60LDQt9CwINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INC/0YDQtdC00LzQtdGCINC30LAg0L3QsNC/0L7QvNC10L3QtSDQtNC+0LTQsNGC0LUg0L3QsCDQk9C70LDQstC90Lgv0JfQsNCy0LjRgdC90Lgg0LXQutGA0LDQvdGDINC00LXRgtCw0ZnQvdC+0LMg0L/RgNC40LrQsNC30LAg0YLQuNC60LXRgtCwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L7QtNCz0L7QstC+0YDQvdC+0LMg0L7Qv9C10YDQsNGC0LXRgNCwINC30LAg0YLQuNC60LXRgiDQvdCwINCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDQtdC60YDQsNC90YMg0LTQtdGC0LDRmdC90L7QsyDQv9GA0LjQutCw0LfQsCDRgtC40LrQtdGC0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0YHQtdGA0LLQuNGBINC90LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC10LrRgNCw0L3RgyDQtNC10YLQsNGZ0L3QvtCzINC/0YDQuNC60LDQt9CwINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAgKNCf0L7RgtGA0LXQsdC90L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0YLQuCDQotC40LrQtdGCOjrQodC10YDQstC40YEpLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J7QtNGA0LXRktGD0ZjQtSDQstC70LDRgdC90LjQutCwINGC0LjQutC10YLQsCDQvdCwINCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDQtdC60YDQsNC90YMg0LTQtdGC0LDRmdC90L7QsyDQv9GA0LjQutCw0LfQsCDRgtC40LrQtdGC0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZSAoVGlja2V0OjpUeXBlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INGC0LjQvyDRgtC40LrQtdGC0LAg0L3QsCDQk9C70LDQstC90Lgv0JfQsNCy0LjRgdC90Lgg0LXQutGA0LDQvdGDINC00LXRgtCw0ZnQvdC+0LMg0L/RgNC40LrQsNC30LAg0YLQuNC60LXRgtCwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsCAo0J/QvtGC0YDQtdCx0L3QviDRmNC1INCw0LrRgtC40LLQuNGA0LDRgtC4INCi0LjQutC10YI6OtCi0LjQvykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBjaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQt9CwINC40LfQvNC10L3RgyDQk9C70LDQstC90Lgv0JfQsNCy0LjRgdC90Lgg0YHRgtCw0YLRg9GB0LAg0YLQuNC60LXRgtCwINC90LAg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgtC40LrQtdGC0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpc3Qgb2YgYWxsIHRoZSBpbnZvbHZlZCBhZ2VudHMgb24gdGhpcyB0aWNrZXQsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/RgNC40LrQsNC30YPRmNC1INC70LjRgdGC0YMg0YHQstC40YUg0L7Qv9C10YDQsNGC0LXRgNCwINGD0LrRmdGD0YfQtdC90LjRhSDRgyDQvtCy0LDRmCDRgtC40LrQtdGCINC90LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC10LrRgNCw0L3RgyDQtNC10YLQsNGZ0L3QvtCzINC/0YDQuNC60LDQt9CwINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlIGFnZW50cyAoYWxsIGFnZW50cyB3aXRoIG5vdGUgcGVybWlzc2lvbnMgb24gdGhlIHF1ZXVlL3RpY2tldCkgdG8gZGV0ZXJtaW5lIHdobyBzaG91bGQgYmUgaW5mb3JtZWQgYWJvdXQgdGhpcyBub3RlLCBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0YDQuNC60LDQt9GD0ZjQtSDQu9C40YHRgtGDINGB0LLQuNGFINC80L7Qs9GD0ZvQuNGFINC+0L/QtdGA0LDRgtC10YDQsCAo0YHQstC4INC+0L/QtdGA0LDRgtC10YDQuCDRgdCwINC00L7Qt9Cy0L7Qu9C+0Lwg0LfQsCDQvdCw0L/QvtC80LXQvdGDINC30LAg0YDQtdC0L9GC0LjQutC10YIpINGA0LDQtNC4INGD0YLQstGA0ZLQuNCy0LDRmtCwINC60L4g0YLRgNC10LHQsCDQtNCwINCx0YPQtNC1INC40L3RhNC+0YDQvNC40YHQsNC9INC+INC+0LLQvtGYINC90LDQv9C+0LzQtdC90LgsINC90LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC10LrRgNCw0L3RgyDRgtC40LrQtdGC0LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0YDQuNC60LDQt9GD0ZjQtSDQvtC/0YbQuNGY0LUg0L/RgNC40L7RgNC40YLQtdGC0LAg0YLQuNC60LXRgtCwINC90LAg0JPQu9Cw0LLQvdC4L9CX0LDQstC40YHQvdC4INC10LrRgNCw0L3RgyDRgtC40LrQtdGC0LAg0L3QsCDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGC0LjQutC10YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aXRsZSBmaWVsZHMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQn9GA0LjQutCw0LfRg9GY0LUg0L3QsNGB0LvQvtCy0L3QsCDQv9C+0ZnQsCDQvdCwINCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDQtdC60YDQsNC90YMg0YLQuNC60LXRgtCwINC90LAg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgtC40LrQtdGC0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIHR5cGVzIHdoZXJlIHRoZSByZWFsIG5hbWUgZnJvbSBNYXN0ZXIgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTbGF2ZSB0aWNrZXQuJ30gPQogICAgICAgICfQndCw0LLQvtC00Lgg0YDQsNC30L3QtSDRgtC40L/QvtCy0LUg0YfQu9Cw0L3QsNC60LAg0LPQtNC1INGb0LUg0YHRgtCy0LDRgNC90L4g0LjQvNC1INGB0LAg0LPQu9Cw0LLQvdC+0LMg0YLQuNC60LXRgtCwINCx0LjRgtC4INC30LDQvNC10ZrQtdC90L4g0YHQsCDRmNC10LTQvdC40Lwg0L3QsCDQt9Cw0LLQuNGB0L3QvtC8INGC0LjQutC10YLRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgYWN0aXZhdGVzIE1hc3Rlci9TbGF2ZSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAn0J7QstCw0Zgg0LzQvtC00YPQuyDQsNC60YLQuNCy0LjRgNCwINC/0L7RmdC1INCT0LvQsNCy0L3QuC/Ql9Cw0LLQuNGB0L3QuCDQvdCwINC10LrRgNCw0L3RgyDQvdC+0LLQuNGFINC40LzQtdGY0Lsg0Lgg0YLQtdC70LXRhNC+0L3RgdC60LjRhSDRgtC40LrQtdGC0LAuJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6c3dfT1RSU01hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIEZyZWUgVGV4dCBvZiBUaWNrZXQnfSA9ICdCYWRpbGkgbWF0aW5pIGh1cnUga3dhIGFqaWxpIHlhIHRpa2V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgT3duZXIgb2YgVGlja2V0J30gPSAnQmFkaWxpIG1taWxpa2kgd2EgdGlrZXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Nsb3NlIFRpY2tldCd9ID0gJ0Z1bmdhIHRpa2V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTm90ZSB0byBUaWNrZXQnfSA9ICdPbmdlemEga2lkb2tlem8ga2F0aWthIHRpa2V0aSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IFBlbmRpbmcnfSA9ICdXZWthIGt1c3ViaXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSBQcmlvcml0eSBvZiBUaWNrZXQnfSA9ICdCYWRpbGkga2lwYXVtYmVsZSBjaGEgdGlrZXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2UgUmVzcG9uc2libGUgb2YgVGlja2V0J30gPSAnQmFkaWxpIHVodXNpa2Egd2EgdGlrZXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYW5hZ2UgTWFzdGVyL1NsYXZlJ30gPSAnU2ltYW1pYSBNa3V1L210dW13YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgTWFzdGVyL1NsYXZlIFZhbHVlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09wdGlvbmFsJ30gPSAnWWEgaGlhcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5mb3JtIGludm9sdmVkIEFnZW50cyd9ID0gJ1RhYXJpZnUgbWF3YWthbGEgd2FuYW9odXNpa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90ZSB3aWxsIGJlIChhbHNvKSByZWNlaXZlZCBieTonfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGlja2V0TWFzdGVyU2xhdmUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBNYXN0ZXIgVGlja2V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Vuc2V0IE1hc3RlciBUaWNrZXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5zZXQgU2xhdmUgVGlja2V0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NsYXZlIG9mIFRpY2tldCMnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnUnVodXN1IGt1b25nZXphIHZpZG9rZXppIGthdGlrYSBza3JpbmkgeWEgTWt1dU10dW13YSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZSB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgdGhlIHRpY2tldC4nfSA9ICdCYWRpbGlzaGEgaGFsaSB5YSBNa3V1L210dW13YSB5YSB0aWtldGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBkeW5hbWljIGZpZWxkIG5hbWUgZm9yIG1hc3RlciB0aWNrZXQgZmVhdHVyZS4nfSA9ICdGYWZhbnVhIGppbmEgbGEgdWdhIHdlbnllIHV3ZXpvIGt3YSBraXBlbmdlbGUgY2hhIHRpa2V0aSBrdXUuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuXCd0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS4nfSA9CiAgICAgICAgJ0ZhZmFudWEga2FtYSBrdWZ1bmdhIGt3YSB0aWtldGkga3VuYWhpdGFqaWthIGthdGlrYSBza3JpbmkgeWEgdGlrZXRpIHlhICBta3V1bXR1bXdhIHlhIHRpa2V0aSBpbGl5b2t1endhIGthdGlrYSBraW9sZXN1cmEgY2hhIHdha2FsYSAoa2FtYSB0aWtldGkgaGFpamFmdW5nd2EgYmFkbywgdGlrZXRpIHppcGF0d2Uga3VmdW5nd2EgbmEgd2FrYWxhIHdhIHNhc2EgYXRhZmFueXdhIGF1dG9tYXRpa2kga3V3YSBtbWlsaWtpIHdha2UpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kgbGEgaGFsaSBpeWFqbyB5YSB0aWtldGkgYmFhZGEgeWEga3VvbmdlemEga2lkb2tlem8sIGthdGlrYSBza3JpbmkgeWEgbWt1dW10dW13YSB5YSB0aWtldGkgeWEgdGlrZXRpIGlsaXlva3V6d2Ega2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEga2lwYXVtYmVsZSBjaGFndW8tbXNpbmdpIGNoYSB0aWtldGkga2F0aWthIHNrcmluaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgbm90ZSBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgYWluYSB5YSBjaGFndW8tbXNpbmdpIGxhIGtpZG9rZXpvIGt3YSBza3JpbmkgeWEgbWt1dW10dW13YSB5YSB0aWtldGkgeWEgdGlrZXRpIGlsaXlva3V6d2Ega2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBoaXN0b3JpYSB5YSBtYW9uaSBrd2Ega2l0ZW5kbyBjaGEgc2tyaW5pIHlhIHRpa2V0aSBta3V1bXR1bXdhLCBhbWJheW8gaW5hdHVtaWthIG5hIGhpc3RvcmlhIHlhIHRpa2V0aSB5YSBraW9sZXN1cmEgY2hhIHdha2FsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0ZhZmFudWEgYWluYSB5YSBoaXN0b3JpYSBrd2Ega2l0ZW5kbyBjaGEgc2tyaW5pIHlhIG1rdXVtdHVtd2EgY2hhIHRpa2V0aSwgYW1iYWNobyBraW5hdHVtaWthIG5hIGhpc3RvcmlhIHlhIHRpa2V0aSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdGYWZhbnVhIGhhbGkgaW5heW9mdWF0YSB5YSB0aWtldGkgYmFhZGEgeWEga3VvbmdlemEga2lkb2tlem8sIGthdGlrYSBza3JpbmkgeWEgbWt1dW10dW13YSB5YSB0aWtldGkgeWEgdGlrZXRpIGlsaXlva3V6d2Ega2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIHBhcnQgb2YgdGhlIGZlYXR1cmUuJ30gPSAnV2V6ZXNoYSB1d2V6byB3YSBqdXUgd2Egc2VoZW1lIHlhIG1rdXVtdHVtd2Egd2Ega2lwZW5nZWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIGZlYXR1cmUgdGhhdCBzbGF2ZSB0aWNrZXRzIGZvbGxvdyB0aGUgbWFzdGVyIHRpY2tldCB0byBhIG5ldyBtYXN0ZXIgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdXZXplc2hhIGtpcGVuZ2VsZSBhbWJhY2hvIHRpa2V0aSBtdHd1bXdhIHppdGFmdWF0YSB0aWtldGkgbWt1dSBrd2EgbWt1dSBtcHlhIGthdGlrYSBoYWxpIHlhIGp1dSB5YSBta3V1bXR1bXdhLiAgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBjaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXRlIG9mIGEgdGlja2V0IGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnV2V6ZXNoYSBraXBlbmdlbGUgY2hhIGt1YmFkaWxpc2hhIGhhbGkgeWEgbWt1dW10dW13YSB5YSB0aWtldGkga2F0aWthIGhhbGkgeWEganV1IHlhIG1rdXVtdHVtd2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBmb3J3YXJkIGFydGljbGVzIGZyb20gdHlwZSBcJ2ZvcndhcmRcJyBvZiBhIG1hc3RlciB0aWNrZXQgdG8gdGhlIGN1c3RvbWVycyBvZiB0aGUgc2xhdmUgdGlja2V0cy4gQnkgZGVmYXVsdCAoZGlzYWJsZWQpIGl0IHdpbGwgbm90IGZvcndhcmQgYXJ0aWNsZXMgZnJvbSB0eXBlIFwnZm9yd2FyZFwnIHRvIHRoZSBzbGF2ZSB0aWNrZXRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byBrZWVwIHBhcmVudC1jaGlsZCBsaW5rIGFmdGVyIGNoYW5nZSBvZiB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSBmZWF0dXJlIHRvIGtlZXAgcGFyZW50LWNoaWxkIGxpbmsgYWZ0ZXIgdW5zZXQgb2YgdGhlIE1hc3RlclNsYXZlIHN0YXRlIGluIHRoZSBhZHZhbmNlZCBNYXN0ZXJTbGF2ZSBtb2RlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgZmVhdHVyZSB0byB1bnNldCB0aGUgTWFzdGVyU2xhdmUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlIG1vZGUuJ30gPQogICAgICAgICdXZXplc2hhIGtpcGVuZ2VsZSBhbWJhY2hvIGhha2l0b3dla2EgaGFsaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSBrYXRpa2EgaGFsaSB5YSBqdXUgeWEgbWt1dW10dW13YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnS2FtYSBraWRva2V6byBraW1lb25nZXp3YSBuYSB3YWthbGEsIGluYXdla2EgaGFsaSB5YSB0aWtldGkga2F0aWthIHNrcmluaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlciAvIFNsYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3RlclNsYXZlIG1vZHVsZSBmb3IgVGlja2V0IEJ1bGsgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kIG9mIHRoZSBtYXN0ZXIgdGlja2V0cyBvdmVydmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiAiTGltaXQiIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBzaG93biBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgZGV0ZXJtaW5lcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuICJDYWNoZVRUTExvY2FsIiBpcyB0aGUgY2FjaGUgdGltZSBpbiBtaW51dGVzIGZvciB0aGUgcGx1Z2luLid9ID0KICAgICAgICAnUGFyYW1ldGEga3dhIGJhY2tlbmQgeWEgZGFzaWJvZGkgeWEgbWFwaXRpbyB5YSB0aWtldGkga3V1IHlhIGtpb2xlc3VyYSBjaGEgd2FrYWxhLiBcJ1wnS2lrb21vXCdcJyBuaSBuYW1iYSB5YSB2aXBlbmdlZSBoYWxpc2kgdmluYXZ5b29ueWVzaHdhIGt3YSBtY2hhZ3VvLWhhbGlzaS4gXCdcJ0tpa3VuZGlcJ1wnIGtpbmF0dW1pa2Ega3V6dWlhIGt1ZmlraWEga3VjaG9tZWthIChtZmFubyBLaWt1bmRpOlV0YXdhbGE7a2lrdW5kaSBjaGEgMTtraWt1bmRpIGNoYSAyOykuIFwnXCdDaGFndW8tbXNpbmdpXCdcJyBpbmFoYWtpa2kga2FtYSBtY2hvbWVrbyB1bWV3ZXplc2h3YSBrd2EgbWNoYWd1by1tc2luZ2kgYXUga2FtYSBtdHVtaXppIGFuYWhpdGFqaSBrdXdlemVzaGEga3dhIG1rb25vLiBcJ1wnSGlmYWRoaW11ZGFUVExLaWFtYm9cJ1wnIG5pIG11ZGEgd2EgaGlmYWRoaSBtdWRhIGthdGlrYSBkYWtpa2Ega3dhIG1jaG9tZWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQgb2YgdGhlIHNsYXZlIHRpY2tldHMgb3ZlcnZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gIkxpbWl0IiBpcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgc2hvd24gYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IHRoZSBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGRldGVybWluZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LiAiQ2FjaGVUVExMb2NhbCIgaXMgdGhlIGNhY2hlIHRpbWUgaW4gbWludXRlcyBmb3IgdGhlIHBsdWdpbi4nfSA9CiAgICAgICAgJ1BhcmFtZXRhIGt3YSBiYWNrZW5kIHlhIGRhc2lib2RpIHlhIG1hcGl0aW8geWEgdGlrZXRpIHR1bXdhIHlhIGtpb2xlc3VyYSBjaGEgd2FrYWxhLiBcJ1wnS2lrb21vXCdcJyBuaSBuYW1iYSB5YSB2aXBlbmdlZSBoYWxpc2kgdmluYXZ5b29ueWVzaHdhIGt3YSBtY2hhZ3VvLWhhbGlzaS4gXCdcJ0tpa3VuZGlcJ1wnIGtpbmF0dW1pa2Ega3V6dWlhIGt1ZmlraWEga3VjaG9tZWthIChtZmFubyBLaWt1bmRpOlV0YXdhbGE7a2lrdW5kaSBjaGEgMTtraWt1bmRpIGNoYSAyOykuIFwnXCdDaGFndW8tbXNpbmdpXCdcJyBpbmFoYWtpa2kga2FtYSBtY2hvbWVrbyB1bWV3ZXplc2h3YSBrd2EgbWNoYWd1by1tc2luZ2kgYXUga2FtYSBtdHVtaXppIGFuYWhpdGFqaSBrdXdlemVzaGEga3dhIG1rb25vLiBcJ1wnSGlmYWRoaW11ZGFUVExLaWFtYm9cJ1wnIG5pIG11ZGEgd2EgaGlmYWRoaSBtdWRhIGthdGlrYSBkYWtpa2Ega3dhIG1jaG9tZWtvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWdpc3RyYXRpb24gb2YgdGhlIHRpY2tldCBldmVudCBtb2R1bGUuJ30gPSAnVXNhamlsaSB3YSBraXBpbW8gY2hhIHR1a2lvIGxhIHRpa2V0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gdXNlIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5haGl0YWppIHJ1aHVzYSBrdXR1bWlhIHNrcmluaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvZXN1cmEgY2hhIHdha2FsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hd2VrYSBtYXRpbmkga2lpbmkga2lsaWNob29uZ2V6d2EgY2hhIGNoYWd1by1tc2luZ2kga2F0aWthIHNrcmluaSB5YSBta3V1bXR1d2EgeWEgdGlrZXRpIGthdGlrYSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmF3ZWthIHNvbW8gbGEgY2hhZ3VvLW1zaW5naSBrd2Ega2lwZW5nZWxlIGtpbGljaG9vbmdlendhIGthdGlrYSBza3JpbmkgeWEgbWt1dW10dXdhIHlhIHRpa2V0aSBrYXRpa2EgdGlrZXRpIGlsaXlva3V6d2Ega2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hd2VrYSB3YWthbGEgYW1iYXllIGFuYWh1c2lrYSBuYSB0aWtldGkga2F0aWthIHNrcmluaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2F0IGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlNlcnZpY2UgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ0luYXdla2EgaHVkdW1hIGthdGlrYSBza3JpbmkgeWEgbWt1dW10dW13YSB5YSB0aWtldGkgeWEgdGlrZXRpIGlsaXlva3V6d2Ega2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhIChUaWtldGk6Okh1ZHVtYSBpbmF5b2hpdGFqaSBrdWFtaWxpc2h3YSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCBvd25lciBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYXdla2EgbW1pbGlraSB3YSB0aWtldGkga2F0aWthIHNrcmluaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS4nfSA9CiAgICAgICAgJ0luYXdla2EgYWluYSB5YSB0aWtldGkga2F0aWthIHNrcmluaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEgKHRpa2V0aTo6IGFpbmEgaW5heW9pdGFqaSBrdWFtaWxpc2h3YSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBjaGFuZ2UgdGhlIE1hc3RlclNsYXZlIHN0YXR1cyBvZiBhIHRpY2tldCBpbiB0aGUgdGlja2V0IHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hb255ZXNoYSBraXVuZ28ga2F0aWthIG1lbnl1IGNoYSBrdWJhZGlsaXNoYSBoYWRoaSB5YSBta3V1bXR1bXdhIHlhIHRpa2V0aSBrYXRpa2EgbWFuZGhhcmkgaWxpeW9rdXp3YSB5YSB0aWtldGkgeWEga2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGlzdCBvZiBhbGwgdGhlIGludm9sdmVkIGFnZW50cyBvbiB0aGlzIHRpY2tldCwgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFvbnllc2hhIG9yb2RoYSB5YSBtYXdha2FsYSB3b3RlIHdhbmFvaHVzaWthIG5hIHRpa2V0aSBoaWksIGthdGlrYSBza3JpbmkgeWEgdGlrZXRpIG1rdXUvbXR1bXdhIHlhIHRpa2V0aSBpbGl5b2t1endhIGthdGlrYSBraW9sZXN1cmEgY2hhIHdha2FsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaXN0IG9mIGFsbCB0aGUgcG9zc2libGUgYWdlbnRzIChhbGwgYWdlbnRzIHdpdGggbm90ZSBwZXJtaXNzaW9ucyBvbiB0aGUgcXVldWUvdGlja2V0KSB0byBkZXRlcm1pbmUgd2hvIHNob3VsZCBiZSBpbmZvcm1lZCBhYm91dCB0aGlzIG5vdGUsIGluIHRoZSB0aWNrZXQgTWFzdGVyU2xhdmUgc2NyZWVuIG9mIGEgem9vbWVkIHRpY2tldCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hb255ZXNoYSBvcm9kaGEgeWEgd2FrYWxhIHdvdGUgd2FuYW93ZXphIChtYXdha2FsYSB3b3RlIHdlbnllIGtpZG9rZXpvIGNoYSBydWh1c2EgeWEgdGlrZXRpL2ZvbGVuaSkga3V0YW1idWEgbmFuaSBhdGFhcmlmaXdlIGt1aHVzdSBraWRva2V6byBoaWtpLCBrYXRpa2Egc2tyaW5pIHlhIHRpa2V0aSBta3V1bXR1bXdhIHlhIHRpa2V0aSBpbGl5b2t1endhIGthdGlrYSBraW9sZXN1cmEgY2h3YSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IE1hc3RlclNsYXZlIHNjcmVlbiBvZiBhIHpvb21lZCB0aWNrZXQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEgbWFjaGFndW8geWEga2lwYXVtYmVsZSB5YSB0aWtldGkga2F0aWthIHNrcmluaSB5YSB0aWtldGkgbWt1dW10dW13YSB5YSB0aWtldGkgaWxpeW9rdXp3YSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIHRoZSB0aXRsZSBmaWVsZHMgaW4gdGhlIHRpY2tldCBNYXN0ZXJTbGF2ZSBzY3JlZW4gb2YgYSB6b29tZWQgdGlja2V0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGtpY2h3YSBjaGEgaGFiYXJpIGthdGlrYSBza3JpbmkgeWEgdGlrZXRpIG1rdXVtdHVtd2EgeWEgdGlrZXRpIGlsaXlva3V6d2Ega2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBhcnRpY2xlIHR5cGVzIHdoZXJlIHRoZSByZWFsIG5hbWUgZnJvbSBNYXN0ZXIgdGlja2V0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgb25lIGluIHRoZSBTbGF2ZSB0aWNrZXQuJ30gPQogICAgICAgICdJbmFiYWluaXNoYSBhaW5hIG1iYWxpbWJhbGkgemEgbWFrYWxhIGFtYmF6byBtYWppbmEgeWFrZSB5YSB1a3dlbGkga3V0b2thIHRpa2V0aSBrdXUgeWF0YWJhZGlsaXNod2EgbmEgbW9qYXdhcG8ga2F0aWthIHRpa2V0aSB0dW13YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgYWN0aXZhdGVzIE1hc3Rlci9TbGF2ZSBmaWVsZCBpbiBuZXcgZW1haWwgYW5kIHBob25lIHRpY2tldCBzY3JlZW5zLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZG1pbkR5bmFtaWNGaWVsZE1hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9BZGQoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X0FkZEFjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9DaGFuZ2UoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZUFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X0NoYW5nZUFjdGlvbigKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgTWVzc2FnZSA9PiAiVW5kZWZpbmVkIHN1YmFjdGlvbi4iLAogICAgKTsKfQoKc3ViIF9BZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlR2V0UGFyYW07CiAgICBmb3IgbXkgJE5lZWRlZCAocXcoT2JqZWN0VHlwZSBGaWVsZFR5cGUgRmllbGRPcmRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JE5lZWRlZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkTmVlZGVkICk7CiAgICAgICAgaWYgKCAhJE5lZWRlZCApIHsKICAgICAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJOZWVkICROZWVkZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aGUgb2JqZWN0IHR5cGUgYW5kIGZpZWxkIHR5cGUgZGlzcGxheSBuYW1lCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkT2JqZWN0VHlwZU5hbWUKICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnRHluYW1pY0ZpZWxkczo6T2JqZWN0VHlwZScpLT57ICRHZXRQYXJhbXtPYmplY3RUeXBlfSB9LT57RGlzcGxheU5hbWV9IHx8ICcnOwogICAgbXkgJEZpZWxkVHlwZU5hbWUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6OkRyaXZlcicpLT57ICRHZXRQYXJhbXtGaWVsZFR5cGV9IH0tPntEaXNwbGF5TmFtZX0gfHwgJyc7CgogICAgcmV0dXJuICRTZWxmLT5fU2hvd1NjcmVlbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgJUdldFBhcmFtLAogICAgICAgIE1vZGUgICAgICAgICAgID0+ICdBZGQnLAogICAgICAgIE9iamVjdFR5cGVOYW1lID0+ICRPYmplY3RUeXBlTmFtZSwKICAgICAgICBGaWVsZFR5cGVOYW1lICA9PiAkRmllbGRUeXBlTmFtZSwKICAgICk7Cn0KCnN1YiBfQWRkQWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSAlRXJyb3JzOwogICAgbXkgJUdldFBhcmFtOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoTmFtZSBMYWJlbCBGaWVsZE9yZGVyKSkgewogICAgICAgICRHZXRQYXJhbXskTmVlZGVkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICROZWVkZWQgKTsKICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3InIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdTZXJ2ZXJFcnJvck1lc3NhZ2UnIH0gPSAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgIGlmICggJEdldFBhcmFte05hbWV9ICkgewoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgYWxwaGFudW1lcmljCiAgICAgICAgaWYgKCAkR2V0UGFyYW17TmFtZX0gIX4gbXtcQSAoPzogW2EtekEtWl0gfCBcZCApKyBcen14bXMgKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9CiAgICAgICAgICAgICAgICAnVGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gb25seSBBU0NJSSBsZXR0ZXJzIGFuZCBudW1iZXJzLic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgZHVwbGljYXRlZAogICAgICAgIG15ICVEeW5hbWljRmllbGRzTGlzdCA9ICV7CiAgICAgICAgICAgICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3QoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICAgICAgICAgICkKICAgICAgICB9OwoKICAgICAgICAlRHluYW1pY0ZpZWxkc0xpc3QgPSByZXZlcnNlICVEeW5hbWljRmllbGRzTGlzdDsKCiAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkc0xpc3R7ICRHZXRQYXJhbXtOYW1lfSB9ICkgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gJ1RoZXJlIGlzIGFub3RoZXIgZmllbGQgd2l0aCB0aGUgc2FtZSBuYW1lLic7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICkgewoKICAgICAgICAjIGNoZWNrIGlmIGZpZWxkIG9yZGVyIGlzIG51bWVyaWMgYW5kIHBvc2l0aXZlCiAgICAgICAgaWYgKCAkR2V0UGFyYW17RmllbGRPcmRlcn0gIX4gbXtcQSAoPzogXGQgKSsgXHp9eG1zICkgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7RmllbGRPcmRlclNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze0ZpZWxkT3JkZXJTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gJ1RoZSBmaWVsZCBtdXN0IGJlIG51bWVyaWMuJzsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRDb25maWdQYXJhbSAocXcoIE9iamVjdFR5cGUgT2JqZWN0VHlwZU5hbWUgRmllbGRUeXBlIEZpZWxkVHlwZU5hbWUgVmFsaWRJRCApKSB7CiAgICAgICAgJEdldFBhcmFteyRDb25maWdQYXJhbX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkQ29uZmlnUGFyYW0gKTsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgdW5jb3JyZWN0YWJsZSBlcnJvcnMKICAgIGlmICggISRHZXRQYXJhbXtWYWxpZElEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gIk5lZWQgVmFsaWRJRCIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJldHVybiB0byBhZGQgc2NyZWVuIGlmIGVycm9ycwogICAgaWYgKCVFcnJvcnMpIHsKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93U2NyZWVuKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgTW9kZSA9PiAnQWRkJywKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IHNwZWNpZmljIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gewogICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gMSwKICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgIH07CgogICAgIyBjcmVhdGUgYSBuZXcgZmllbGQKICAgIG15ICRGaWVsZElEID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkQWRkKAogICAgICAgIE5hbWUgICAgICAgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgIExhYmVsICAgICAgPT4gJEdldFBhcmFte0xhYmVsfSwKICAgICAgICBGaWVsZE9yZGVyID0+ICRHZXRQYXJhbXtGaWVsZE9yZGVyfSwKICAgICAgICBGaWVsZFR5cGUgID0+ICRHZXRQYXJhbXtGaWVsZFR5cGV9LAogICAgICAgIE9iamVjdFR5cGUgPT4gJEdldFBhcmFte09iamVjdFR5cGV9LAogICAgICAgIENvbmZpZyAgICAgPT4gJEZpZWxkQ29uZmlnLAogICAgICAgIFZhbGlkSUQgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICEkRmllbGRJRCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gIkNvdWxkIG5vdCBjcmVhdGUgdGhlIG5ldyBmaWVsZCIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pbkR5bmFtaWNGaWVsZCIsCiAgICApOwp9CgpzdWIgX0NoYW5nZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJhbU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkTmVlZGVkIChxdyhPYmplY3RUeXBlIEZpZWxkVHlwZSkpIHsKICAgICAgICAkR2V0UGFyYW17JE5lZWRlZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkTmVlZGVkICk7CiAgICAgICAgaWYgKCAhJE5lZWRlZCApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiTmVlZCAkTmVlZGVkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgdGhlIG9iamVjdCB0eXBlIGFuZCBmaWVsZCB0eXBlIGRpc3BsYXkgbmFtZQogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE9iamVjdFR5cGVOYW1lCiAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6Ok9iamVjdFR5cGUnKS0+eyAkR2V0UGFyYW17T2JqZWN0VHlwZX0gfS0+e0Rpc3BsYXlOYW1lfSB8fCAnJzsKICAgIG15ICRGaWVsZFR5cGVOYW1lID0gJENvbmZpZ09iamVjdC0+R2V0KCdEeW5hbWljRmllbGRzOjpEcml2ZXInKS0+eyAkR2V0UGFyYW17RmllbGRUeXBlfSB9LT57RGlzcGxheU5hbWV9IHx8ICcnOwoKICAgIG15ICRGaWVsZElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwoKICAgIGlmICggISRGaWVsZElEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAiTmVlZCBJRCIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGRhdGEKICAgIG15ICREeW5hbWljRmllbGREYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgSUQgPT4gJEZpZWxkSUQsCiAgICApOwoKICAgICMgY2hlY2sgZm9yIHZhbGlkIGR5bmFtaWMgZmllbGQgY29uZmlndXJhdGlvbgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZERhdGEpICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAiQ291bGQgbm90IGdldCBkYXRhIGZvciBkeW5hbWljIGZpZWxkICRGaWVsZElEIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkU2VsZi0+X1Nob3dTY3JlZW4oCiAgICAgICAgJVBhcmFtLAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICAlJHtEeW5hbWljRmllbGREYXRhfSwKICAgICAgICBJRCAgICAgICAgICAgICA9PiAkRmllbGRJRCwKICAgICAgICBNb2RlICAgICAgICAgICA9PiAnQ2hhbmdlJywKICAgICAgICBPYmplY3RUeXBlTmFtZSA9PiAkT2JqZWN0VHlwZU5hbWUsCiAgICAgICAgRmllbGRUeXBlTmFtZSAgPT4gJEZpZWxkVHlwZU5hbWUsCiAgICApOwp9CgpzdWIgX0NoYW5nZUFjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwogICAgbXkgJUVycm9yczsKICAgIG15ICVHZXRQYXJhbTsKCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgTGFiZWwgRmllbGRPcmRlcikpIHsKICAgICAgICAkR2V0UGFyYW17JE5lZWRlZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkTmVlZGVkICk7CiAgICAgICAgaWYgKCAhJEdldFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkRXJyb3JzeyAkTmVlZGVkIC4gJ1NlcnZlckVycm9yJyB9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnU2VydmVyRXJyb3JNZXNzYWdlJyB9ID0gJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJzsKICAgICAgICB9CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAkRmllbGRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKTsKICAgIGlmICggISRGaWVsZElEICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAiTmVlZCBJRCIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgZGF0YQogICAgbXkgJER5bmFtaWNGaWVsZERhdGEgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgSUQgPT4gJEZpZWxkSUQsCiAgICApOwoKICAgICMgY2hlY2sgZm9yIHZhbGlkIGR5bmFtaWMgZmllbGQgY29uZmlndXJhdGlvbgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZERhdGEpICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAiQ291bGQgbm90IGdldCBkYXRhIGZvciBkeW5hbWljIGZpZWxkICRGaWVsZElEIiwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJEdldFBhcmFte05hbWV9ICkgewoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgbG93ZXJjYXNlCiAgICAgICAgaWYgKCAkR2V0UGFyYW17TmFtZX0gIX4gbXtcQSAoPzogW2EtekEtWl0gfCBcZCApKyBcen14bXMgKSB7CgogICAgICAgICAgICAjIGFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9CiAgICAgICAgICAgICAgICAnVGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gb25seSBBU0NJSSBsZXR0ZXJzIGFuZCBudW1iZXJzLic7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIG5hbWUgaXMgZHVwbGljYXRlZAogICAgICAgIG15ICVEeW5hbWljRmllbGRzTGlzdCA9ICV7CiAgICAgICAgICAgICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3QoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdIQVNIJywKICAgICAgICAgICAgICAgICkKICAgICAgICB9OwoKICAgICAgICAlRHluYW1pY0ZpZWxkc0xpc3QgPSByZXZlcnNlICVEeW5hbWljRmllbGRzTGlzdDsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkRHluYW1pY0ZpZWxkc0xpc3R7ICRHZXRQYXJhbXtOYW1lfSB9ICYmCiAgICAgICAgICAgICREeW5hbWljRmllbGRzTGlzdHsgJEdldFBhcmFte05hbWV9IH0gbmUgJEZpZWxkSUQKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9ICdUaGVyZSBpcyBhbm90aGVyIGZpZWxkIHdpdGggdGhlIHNhbWUgbmFtZS4nOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBpdCdzIGFuIGludGVybmFsIGZpZWxkLCBpdCdzIG5hbWUgc2hvdWxkIG5vdCBjaGFuZ2UKICAgICAgICBpZiAoCiAgICAgICAgICAgICREeW5hbWljRmllbGREYXRhLT57SW50ZXJuYWxGaWVsZH0gJiYKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNMaXN0eyAkR2V0UGFyYW17TmFtZX0gfSBuZSAkRmllbGRJRAogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBhZGQgc2VydmVyIGVycm9yIGNsYXNzCiAgICAgICAgICAgICRFcnJvcnN7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gJ1RoZSBuYW1lIGZvciB0aGlzIGZpZWxkIHNob3VsZCBub3QgY2hhbmdlLic7CiAgICAgICAgICAgICRQYXJhbXtJbnRlcm5hbEZpZWxkfSAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkRGF0YS0+e0ludGVybmFsRmllbGR9OwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRHZXRQYXJhbXtGaWVsZE9yZGVyfSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBvcmRlciBpcyBudW1lcmljIGFuZCBwb3NpdGl2ZQogICAgICAgIGlmICggJEdldFBhcmFte0ZpZWxkT3JkZXJ9ICF+IG17XEEgKD86IFxkICkrIFx6fXhtcyApIHsKCiAgICAgICAgICAgICMgYWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcwogICAgICAgICAgICAkRXJyb3Jze0ZpZWxkT3JkZXJTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tGaWVsZE9yZGVyU2VydmVyRXJyb3JNZXNzYWdlfSA9ICdUaGUgZmllbGQgbXVzdCBiZSBudW1lcmljLic7CiAgICAgICAgfQogICAgfQoKICAgIGZvciBteSAkQ29uZmlnUGFyYW0gKHF3KCBPYmplY3RUeXBlIE9iamVjdFR5cGVOYW1lIEZpZWxkVHlwZSBGaWVsZFR5cGVOYW1lIFZhbGlkSUQgKSkgewogICAgICAgICRHZXRQYXJhbXskQ29uZmlnUGFyYW19ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJENvbmZpZ1BhcmFtICk7CiAgICB9CgogICAgIyB1bmNvcnJlY3RhYmxlIGVycm9ycwogICAgaWYgKCAhJEdldFBhcmFte1ZhbGlkSUR9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiAiTmVlZCBWYWxpZElEIiwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIHRvIGNoYW5nZSBzY3JlZW4gaWYgZXJyb3JzCiAgICBpZiAoJUVycm9ycykgewogICAgICAgIHJldHVybiAkU2VsZi0+X1Nob3dTY3JlZW4oCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBJRCAgID0+ICRGaWVsZElELAogICAgICAgICAgICBNb2RlID0+ICdDaGFuZ2UnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgc3BlY2lmaWMgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSB7CiAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAxLAogICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgfTsKCiAgICAjIHVwZGF0ZSBkeW5hbWljIGZpZWxkIChGaWVsZFR5cGUgYW5kIE9iamVjdFR5cGUgY2Fubm90IGJlIGNoYW5nZWQ7IHVzZSBvbGQgdmFsdWVzKQogICAgbXkgJFVwZGF0ZVN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRVcGRhdGUoCiAgICAgICAgSUQgICAgICAgICA9PiAkRmllbGRJRCwKICAgICAgICBOYW1lICAgICAgID0+ICRHZXRQYXJhbXtOYW1lfSwKICAgICAgICBMYWJlbCAgICAgID0+ICRHZXRQYXJhbXtMYWJlbH0sCiAgICAgICAgRmllbGRPcmRlciA9PiAkR2V0UGFyYW17RmllbGRPcmRlcn0sCiAgICAgICAgRmllbGRUeXBlICA9PiAkRHluYW1pY0ZpZWxkRGF0YS0+e0ZpZWxkVHlwZX0sCiAgICAgICAgT2JqZWN0VHlwZSA9PiAkRHluYW1pY0ZpZWxkRGF0YS0+e09iamVjdFR5cGV9LAogICAgICAgIENvbmZpZyAgICAgPT4gJEZpZWxkQ29uZmlnLAogICAgICAgIFZhbGlkSUQgICAgPT4gJEdldFBhcmFte1ZhbGlkSUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICEkVXBkYXRlU3VjY2VzcyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gIkNvdWxkIG5vdCB1cGRhdGUgdGhlIGZpZWxkICRHZXRQYXJhbXtOYW1lfSIsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pbkR5bmFtaWNGaWVsZCIsCiAgICApOwp9CgpzdWIgX1Nob3dTY3JlZW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkUGFyYW17RGlzcGxheUZpZWxkTmFtZX0gPSAnTmV3JzsKCiAgICBpZiAoICRQYXJhbXtNb2RlfSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICAkUGFyYW17U2hvd1dhcm5pbmd9ICAgICAgPSAnU2hvd1dhcm5pbmcnOwogICAgICAgICRQYXJhbXtEaXNwbGF5RmllbGROYW1lfSA9ICRQYXJhbXtOYW1lfTsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgaGVhZGVyCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIGdldCBhbGwgZmllbGRzCiAgICBteSAkRHluYW1pY0ZpZWxkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICAjIGdldCB0aGUgbGlzdCBvZiBvcmRlciBudW1iZXJzIChpcyBhbHJlYWR5IHNvcnRlZCkuCiAgICBteSBARHluYW1pY2ZpZWxkT3JkZXJMaXN0OwogICAgbXkgJUR5bmFtaWNmaWVsZE5hbWVzTGlzdDsKICAgIGZvciBteSAkRHluYW1pY2ZpZWxkICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CiAgICAgICAgcHVzaCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0LCAkRHluYW1pY2ZpZWxkLT57RmllbGRPcmRlcn07CiAgICAgICAgJER5bmFtaWNmaWVsZE5hbWVzTGlzdHsgJER5bmFtaWNmaWVsZC0+e0ZpZWxkT3JkZXJ9IH0gPSAkRHluYW1pY2ZpZWxkLT57TGFiZWx9OwogICAgfQoKICAgICMgd2hlbiBhZGRpbmcgd2UgbmVlZCB0byBjcmVhdGUgYW4gZXh0cmEgb3JkZXIgbnVtYmVyIGZvciB0aGUgbmV3IGZpZWxkCiAgICBpZiAoICRQYXJhbXtNb2RlfSBlcSAnQWRkJyApIHsKCiAgICAgICAgIyBnZXQgdGhlIGxhc3QgZWxlbWVudCBmb3JtIHRoZSBvcmRlciBsaXN0IGFuZCBhZGQgMQogICAgICAgIG15ICRMYXN0T3JkZXJOdW1iZXIgPSAkRHluYW1pY2ZpZWxkT3JkZXJMaXN0Wy0xXTsKICAgICAgICAkTGFzdE9yZGVyTnVtYmVyKys7CgogICAgICAgICMgYWRkIHRoaXMgbmV3IG9yZGVyIG51bWJlciB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CiAgICAgICAgcHVzaCBARHluYW1pY2ZpZWxkT3JkZXJMaXN0LCAkTGFzdE9yZGVyTnVtYmVyOwogICAgfQoKICAgICMgc2hvdyB0aGUgbmFtZXMgb2YgdGhlIG90aGVyIGZpZWxkcyB0byBlYXNlIG9yZGVyaW5nCiAgICBteSAlT3JkZXJOYW1lc0xpc3Q7CiAgICBteSAkQ3VycmVudGx5VGV4dCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ3VycmVudGx5JykgLiAnOiAnOwogICAgZm9yIG15ICRPcmRlck51bWJlciAoIHNvcnQgQER5bmFtaWNmaWVsZE9yZGVyTGlzdCApIHsKICAgICAgICAkT3JkZXJOYW1lc0xpc3R7JE9yZGVyTnVtYmVyfSA9ICRPcmRlck51bWJlcjsKICAgICAgICBpZiAoICREeW5hbWljZmllbGROYW1lc0xpc3R7JE9yZGVyTnVtYmVyfSAmJiAkT3JkZXJOdW1iZXIgbmUgJFBhcmFte0ZpZWxkT3JkZXJ9ICkgewogICAgICAgICAgICAkT3JkZXJOYW1lc0xpc3R7JE9yZGVyTnVtYmVyfSA9ICRPcmRlck51bWJlciAuICcgLSAnCiAgICAgICAgICAgICAgICAuICRDdXJyZW50bHlUZXh0CiAgICAgICAgICAgICAgICAuICREeW5hbWljZmllbGROYW1lc0xpc3R7JE9yZGVyTnVtYmVyfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkT3JkZXJTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJU9yZGVyTmFtZXNMaXN0LAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0ZpZWxkT3JkZXInLAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmFte0ZpZWxkT3JkZXJ9IHx8IDEsCiAgICAgICAgUG9zc2libGVOb25lICA9PiAwLAogICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMCwKICAgICAgICBTb3J0ICAgICAgICAgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBDbGFzcyAgICAgICAgID0+ICdXNzVwYyBWYWxpZGF0ZV9OdW1iZXInLAogICAgKTsKCiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwoKICAgICMgY3JlYXRlIHRoZSBWYWxpZGl0eSBzZWxlY3QKICAgIG15ICRWYWxpZGl0eVN0cmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVWYWxpZExpc3QsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte1ZhbGlkSUR9IHx8IDEsCiAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdXNTBwYycsCiAgICApOwoKICAgICMgY3JlYXRlIHRoZSBwb3NzaWJsZSB2YWx1ZXMgdGVtcGxhdGUKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1ZhbHVlVGVtcGxhdGUnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFJlYWRvbmx5SW50ZXJuYWxGaWVsZCA9ICcnOwoKICAgICMgSW50ZXJuYWwgZmllbGRzIGNhbiBub3QgYmUgZGVsZXRlZCBhbmQgbmFtZSBzaG91bGQgbm90IGNoYW5nZS4KICAgIGlmICggJFBhcmFte0ludGVybmFsRmllbGR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdJbnRlcm5hbEZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRSZWFkb25seUludGVybmFsRmllbGQgPSAncmVhZG9ubHk9InJlYWRvbmx5Iic7CiAgICB9CgogICAgIyBnZW5lcmF0ZSBvdXRwdXQKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5EeW5hbWljRmllbGRNYXN0ZXJTbGF2ZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBWYWxpZGl0eVN0cmcgICAgICAgICAgPT4gJFZhbGlkaXR5U3RyZywKICAgICAgICAgICAgRHluYW1pY0ZpZWxkT3JkZXJTdHJnID0+ICREeW5hbWljRmllbGRPcmRlclN0cmcsCiAgICAgICAgICAgIFJlYWRvbmx5SW50ZXJuYWxGaWVsZCA9PiAkUmVhZG9ubHlJbnRlcm5hbEZpZWxkLAogICAgICAgIH0sCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFByZU1hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBwcmV2ZW50IHVzZWQgb25jZSB3YXJuaW5nCnVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkbyBvbmx5IHVzZSB0aGlzIGluIHBob25lIGFuZCBlbWFpbCB0aWNrZXQKICAgIHJldHVybiBpZiAoICRTZWxmLT57QWN0aW9ufSAhfiAvXkFnZW50VGlja2V0KEVtYWlsfFBob25lKSQvICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgbWFzdGVyL3NsYXZlIGR5bmFtaWMgZmllbGQKICAgIG15ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OkR5bmFtaWNGaWVsZCcpIHx8ICcnOwoKICAgICMgcmV0dXJuIGlmIG5vIGNvbmZpZyBvcHRpb24gaXMgdXNlZAogICAgcmV0dXJuIGlmICEkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQ7CgogICAgIyBzZXQgZHluYW1pYyBmaWVsZCBhcyBzaG93bgogICAgJENvbmZpZ09iamVjdC0+eyJUaWNrZXQ6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0ifS0+e0R5bmFtaWNGaWVsZH0tPnskTWFzdGVyU2xhdmVEeW5hbWljRmllbGR9ID0gMTsKCiAgICByZXR1cm47Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojICRvcmlnaW46IGh0dHBzOi8vZ2l0aHViLmNvbS9PVFJTL290cnMvYmxvYi8xMjEyYTJlMGM2ZTIyYzc2OWVmYmY0ZGJhZGYzYmNmNDRiNjFiODY4L0tlcm5lbC9Nb2R1bGVzL0FnZW50VGlja2V0QWN0aW9uQ29tbW9uLnBtCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgojIC0tLQojIE1hc3RlclNsYXZlCiMgLS0tCiMgVGhpcyBtb2R1bGUgdXNlcyBBZ2VudFRpY2tldEFjdGlvbkNvbW1vbiBhcyBhIGJhc2UsIGZvciBlYXN5IHVwZGF0ZSBhbmQgZnJhbWV3b3JrIGNvbXBhdGliaWxpdHkKIyBzcGVjaWFsIG1hcmtlcnMgaGFzIGJlZW4gc2V0IGFsb25nIHRoZSBmaWxlIHRvIGVhc3kgc3BvdCB0aGUgZGlmZmVyZW5jZXMgaW50cm9kdWNlZCBieQojIE9UUlNNYXN0ZXJTbGF2ZSBwYWNrYWdlCiMgcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFnZW50VGlja2V0QWN0aW9uQ29tbW9uOwpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaWNrZXRNYXN0ZXJTbGF2ZTsKIyAtLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RW1haWxQYXJzZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgYXJ0aWNsZSBmb3Igd2hvbSB0aGlzIHNob3VsZCBiZSBhIHJlcGx5LCBpZiBhdmFpbGFibGUKICAgIG15ICRSZXBseVRvQXJ0aWNsZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdSZXBseVRvQXJ0aWNsZScgKSB8fCAiIjsKCiAgICAjIGNoZWNrIGlmIFJlcGx5VG9BcnRpY2xlIHJlYWxseSBiZWxvbmdzIHRvIHRoZSB0aWNrZXQKICAgIG15ICVSZXBseVRvQXJ0aWNsZUNvbnRlbnQ7CiAgICBteSBAUmVwbHlUb0FkcmVzc2VzOwogICAgaWYgKCRSZXBseVRvQXJ0aWNsZSkgewogICAgICAgICVSZXBseVRvQXJ0aWNsZUNvbnRlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPkFydGljbGVHZXQoCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgPT4gJFJlcGx5VG9BcnRpY2xlLAogICAgICAgICAgICBEeW5hbWljRmllbGRzID0+IDAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICRTZWxmLT57UmVwbHlUb0FydGljbGV9ICAgICAgICA9ICRSZXBseVRvQXJ0aWNsZTsKICAgICAgICAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlQ29udGVudH0gPSBcJVJlcGx5VG9BcnRpY2xlQ29udGVudDsKCiAgICAgICAgIyBnZXQgc2VuZGVyIG9mIG9yaWdpbmFsIG5vdGUgKHRvIGluZm9ybSBzZW5kZXIgYWJvdXQgYW5zd2VyKQogICAgICAgIGlmICggJFJlcGx5VG9BcnRpY2xlQ29udGVudHtDcmVhdGVkQnl9ICkgewogICAgICAgICAgICBteSBAUmVwbHlUb1NlbmRlcklEID0gKCAkUmVwbHlUb0FydGljbGVDb250ZW50e0NyZWF0ZWRCeX0gKTsKICAgICAgICAgICAgJFNlbGYtPntSZXBseVRvU2VuZGVyVXNlcklEfSA9IFxAUmVwbHlUb1NlbmRlcklEOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBhcnRpY2xlIGJlbG9uZ3MgdG8gb3RoZXIgdGlja2V0LCBkb24ndCB1c2UgaXQgYXMgcmVwbHkKICAgICAgICBpZiAoICRSZXBseVRvQXJ0aWNsZUNvbnRlbnR7VGlja2V0SUR9IG5lICRTZWxmLT57VGlja2V0SUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSA9ICIiOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBhcnRpY2xlIGlzIG5vdCBvZiB0eXBlIG5vdGUtaW50ZXJuYWwsIGRvbid0IHVzZSBpdCBhcyByZXBseQogICAgICAgIGlmICggJFJlcGx5VG9BcnRpY2xlQ29udGVudHtBcnRpY2xlVHlwZX0gIX4gL15ub3RlLShpbnRlcm5hbHxleHRlcm5hbCkkL2kgKSB7CiAgICAgICAgICAgICRTZWxmLT57UmVwbHlUb0FydGljbGV9ID0gIiI7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkU2VsZi0+e1RpY2tldElEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJ05vIFRpY2tldElEIGlzIGdpdmVuIScsCiAgICAgICAgICAgIENvbW1lbnQgPT4gJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiVGlja2V0OjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJENvbmZpZy0+e1Blcm1pc3Npb259LAogICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfQogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbiwgZG9uJ3Qgc2hvdyB0aWNrZXQKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiAiWW91IG5lZWQgJENvbmZpZy0+e1Blcm1pc3Npb259IHBlcm1pc3Npb25zISIsCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBBQ0wgcmVzdHJpY3Rpb25zCiAgICBteSAlUG9zc2libGVBY3Rpb25zID0gKCAxID0+ICRTZWxmLT57QWN0aW9ufSApOwoKICAgIG15ICRBQ0wgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2woCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJVBvc3NpYmxlQWN0aW9ucywKICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgIFJldHVyblR5cGUgICAgPT4gJ0FjdGlvbicsCiAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnLScsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgbXkgJUFjbEFjdGlvbiA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbEFjdGlvbkRhdGEoKTsKCiAgICAjIGNoZWNrIGlmIEFDTCByZXN0cmljdGlvbnMgZXhpc3QKICAgIGlmICggJEFDTCB8fCBJc0hhc2hSZWZXaXRoRGF0YSggXCVBY2xBY3Rpb24gKSApIHsKCiAgICAgICAgbXkgJUFjbEFjdGlvbkxvb2t1cCA9IHJldmVyc2UgJUFjbEFjdGlvbjsKCiAgICAgICAgIyBzaG93IGVycm9yIHNjcmVlbiBpZiBBQ0wgcHJvaGliaXRzIHRoaXMgYWN0aW9uCiAgICAgICAgaWYgKCAhJEFjbEFjdGlvbkxvb2t1cHsgJFNlbGYtPntBY3Rpb259IH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oIFdpdGhIZWFkZXIgPT4gJ3llcycgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICk7CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgZm9ybSBpZAogICAgbXkgJEZvcm1JRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGb3JtSUQnICk7CgogICAgIyBnZXQgdXBsb2FkIGNhY2hlIG9iamVjdAogICAgbXkgJFVwbG9hZENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKTsKCiAgICAjIGNyZWF0ZSBmb3JtIGlkCiAgICBpZiAoICEkRm9ybUlEICkgewogICAgICAgICRGb3JtSUQgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JRENyZWF0ZSgpOwogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1Byb3BlcnRpZXMnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBGb3JtSUQgICAgICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICBSZXBseVRvQXJ0aWNsZSA9PiAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSwKICAgICAgICAgICAgJVRpY2tldCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2hvdyByaWdodCBoZWFkZXIKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0hlYWRlcicgLiAkU2VsZi0+e0FjdGlvbn0sCiAgICApOwoKICAgICMgZ2V0IGxvY2sgc3RhdGUKICAgIGlmICggJENvbmZpZy0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgaWYgKCAhJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja0dldCggVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0gKSApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2hvdyBsb2NrIHN0YXRlCiAgICAgICAgICAgIGlmICgkU3VjY2VzcykgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHJvcGVydGllc0xvY2snLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkQWNjZXNzT2sgPSAkVGlja2V0T2JqZWN0LT5Pd25lckNoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBPd25lcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdTbWFsbCcsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgID0+ICRUaWNrZXR7TnVtYmVyfSwKICAgICAgICAgICAgICAgICAgICBCb2R5Q2xhc3MgPT4gJ1BvcHVwJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPldhcm5pbmcoCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAgICAgICAgIC0+R2V0KCdTb3JyeSwgeW91IG5lZWQgdG8gYmUgdGhlIHRpY2tldCBvd25lciB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLicpLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdTbWFsbCcsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2hvdyBiYWNrIGxpbmsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdUaWNrZXRCYWNrJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RpY2tldEJhY2snLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICVUaWNrZXQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBwYXJhbXMKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkS2V5ICgKICAgICAgICBxdygKICAgICAgICBOZXdTdGF0ZUlEIE5ld1ByaW9yaXR5SUQgVGltZVVuaXRzIEFydGljbGVUeXBlSUQgVGl0bGUgQm9keSBTdWJqZWN0IE5ld1F1ZXVlSUQKICAgICAgICBZZWFyIE1vbnRoIERheSBIb3VyIE1pbnV0ZSBOZXdPd25lcklEIE5ld1Jlc3BvbnNpYmxlSUQgVHlwZUlEIFNlcnZpY2VJRCBTTEFJRAogICAgICAgIEV4cGFuZCBSZXBseVRvQXJ0aWNsZSBTdGFuZGFyZFRlbXBsYXRlSUQgQ3JlYXRlQXJ0aWNsZQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRLZXl9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEtleSApOwogICAgfQoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgdmFsdWVzIGZvcm0gaHR0cCByZXF1ZXN0CiAgICBteSAlRHluYW1pY0ZpZWxkVmFsdWVzOwoKICAgICMgZGVmaW5lIHRoZSBkeW5hbWljIGZpZWxkcyB0byBzaG93IGJhc2VkIG9uIHRoZSBvYmplY3QgdHlwZQogICAgbXkgJE9iamVjdFR5cGUgPSBbJ1RpY2tldCddOwojIC0tLQojIE1hc3RlclNsYXZlCiMgLS0tCiAgICAjIGdldCBtYXN0ZXIvc2xhdmUgZHluYW1pYyBmaWVsZAogICAgbXkgJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkID0gJENvbmZpZ09iamVjdC0+R2V0KCdNYXN0ZXJTbGF2ZTo6RHluYW1pY0ZpZWxkJykgfHwgJyc7CiAgICBteSAkTWFzdGVyU2xhdmVBZHZhbmNlZEVuYWJsZWQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ01hc3RlclNsYXZlOjpBZHZhbmNlZEVuYWJsZWQnKSB8fCAwOwojIC0tLQoKICAgICMgb25seSBzY3JlZW5zIHRoYXQgYWRkIG5vdGVzIGNhbiBtb2RpZnkgQXJ0aWNsZSBkeW5hbWljIGZpZWxkcwogICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gKSB7CiAgICAgICAgJE9iamVjdFR5cGUgPSBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXTsKIyAtLS0KIyBNYXN0ZXJTbGF2ZQojIC0tLQogICAgICAgIGlmICgkTWFzdGVyU2xhdmVBZHZhbmNlZEVuYWJsZWQpIHsKICAgICAgICAgICAgJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0tPnskTWFzdGVyU2xhdmVEeW5hbWljRmllbGR9ID0gMTsKICAgICAgICB9CiMtLS0KICAgIH0KCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJE9iamVjdFR5cGUsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSB0aGUgd2ViIHJlcXVlc3QKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICk7CiAgICB9CgogICAgIyBjb252ZXJ0IGR5bmFtaWMgZmllbGQgdmFsdWVzIGludG8gYSBzdHJ1Y3R1cmUgZm9yIEFDTHMKICAgIG15ICVEeW5hbWljRmllbGRBQ0xQYXJhbWV0ZXJzOwogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRJdGVtICggc29ydCBrZXlzICVEeW5hbWljRmllbGRWYWx1ZXMgKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRJdGVtOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkVmFsdWVzeyREeW5hbWljRmllbGRJdGVtfTsKCiAgICAgICAgJER5bmFtaWNGaWVsZEFDTFBhcmFtZXRlcnN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRJdGVtIH0gPSAkRHluYW1pY0ZpZWxkVmFsdWVzeyREeW5hbWljRmllbGRJdGVtfTsKICAgIH0KICAgICRHZXRQYXJhbXtEeW5hbWljRmllbGR9ID0gXCVEeW5hbWljRmllbGRBQ0xQYXJhbWV0ZXJzOwoKICAgICMgdHJhbnNmb3JtIHBlbmRpbmcgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgaWYgKAogICAgICAgIGRlZmluZWQgJEdldFBhcmFte1llYXJ9CiAgICAgICAgJiYgZGVmaW5lZCAkR2V0UGFyYW17TW9udGh9CiAgICAgICAgJiYgZGVmaW5lZCAkR2V0UGFyYW17RGF5fQogICAgICAgICYmIGRlZmluZWQgJEdldFBhcmFte0hvdXJ9CiAgICAgICAgJiYgZGVmaW5lZCAkR2V0UGFyYW17TWludXRlfQogICAgICAgICkKICAgIHsKICAgICAgICAlR2V0UGFyYW0gPSAkTGF5b3V0T2JqZWN0LT5UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJld3JhcCBib2R5IGlmIG5vIHJpY2ggdGV4dCBpcyB1c2VkCiAgICBpZiAoICRHZXRQYXJhbXtCb2R5fSAmJiAhJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgJEdldFBhcmFte0JvZHl9ID0gJExheW91dE9iamVjdC0+V3JhcFBsYWluVGV4dCgKICAgICAgICAgICAgTWF4Q2hhcmFjdGVycyA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZScpLAogICAgICAgICAgICBQbGFpblRleHQgICAgID0+ICRHZXRQYXJhbXtCb2R5fSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdG9yZScgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgc3RvcmUgYWN0aW9uCiAgICAgICAgbXkgJUVycm9yOwoKICAgICAgICAjIElmIGlzIGFuIGFjdGlvbiBhYm91dCBhdHRhY2htZW50cwogICAgICAgIG15ICRJc1VwbG9hZCA9IDA7CgogICAgICAgICMgYXR0YWNobWVudCBkZWxldGUKICAgICAgICBteSBAQXR0YWNobWVudElEcyA9IG1hcCB7CiAgICAgICAgICAgIG15ICgkSUQpID0gJF8gPX4gbXsgXEEgQXR0YWNobWVudERlbGV0ZSAoXGQrKSBceiB9eG1zOwogICAgICAgICAgICAkSUQgPyAkSUQgOiAoKTsKICAgICAgICB9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW1OYW1lcygpOwoKICAgICAgICBDT1VOVDoKICAgICAgICBmb3IgbXkgJENvdW50ICggcmV2ZXJzZSBzb3J0IEBBdHRhY2htZW50SURzICkgewogICAgICAgICAgICBteSAkRGVsZXRlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIkF0dGFjaG1lbnREZWxldGUkQ291bnQiICk7CiAgICAgICAgICAgIG5leHQgQ09VTlQgaWYgISREZWxldGU7CiAgICAgICAgICAgICVFcnJvciA9ICgpOwogICAgICAgICAgICAkRXJyb3J7QXR0YWNobWVudERlbGV0ZX0gPSAxOwogICAgICAgICAgICAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JRFJlbW92ZUZpbGUoCiAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgIEZpbGVJRCA9PiAkQ291bnQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRJc1VwbG9hZCA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIGF0dGFjaG1lbnQgdXBsb2FkCiAgICAgICAgaWYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQXR0YWNobWVudFVwbG9hZCcgKSApIHsKICAgICAgICAgICAgJElzVXBsb2FkICAgICAgICAgICAgICAgID0gMTsKICAgICAgICAgICAgJUVycm9yICAgICAgICAgICAgICAgICAgID0gKCk7CiAgICAgICAgICAgICRFcnJvcntBdHRhY2htZW50VXBsb2FkfSA9IDE7CiAgICAgICAgICAgIG15ICVVcGxvYWRTdHVmZiA9ICRQYXJhbU9iamVjdC0+R2V0VXBsb2FkQWxsKAogICAgICAgICAgICAgICAgUGFyYW0gPT4gJ0ZpbGVVcGxvYWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREFkZEZpbGUoCiAgICAgICAgICAgICAgICBGb3JtSUQgICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICAgICAgRGlzcG9zaXRpb24gPT4gJ2F0dGFjaG1lbnQnLAogICAgICAgICAgICAgICAgJVVwbG9hZFN0dWZmLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIG1ldGEgZGF0YQogICAgICAgIG15IEBBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNNZXRhKAogICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzdGF0ZSBvYmplY3QKICAgICAgICBteSAkU3RhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhdGUnKTsKCiAgICAgICAgIyBjaGVjayBwZW5kaW5nIHRpbWUKICAgICAgICBpZiAoICRHZXRQYXJhbXtOZXdTdGF0ZUlEfSApIHsKICAgICAgICAgICAgbXkgJVN0YXRlRGF0YSA9ICRTdGF0ZU9iamVjdC0+U3RhdGVHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkR2V0UGFyYW17TmV3U3RhdGVJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkSXNVcGxvYWQgKSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBzdGF0ZSB0eXBlCiAgICAgICAgICAgICAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewoKICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkTmVlZGVkIChxdyhZZWFyIE1vbnRoIERheSBIb3VyIE1pbnV0ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3J7J0RhdGVJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIGdldCB0aW1lIG9iamVjdAogICAgICAgICAgICAgICAgICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBkYXRlCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFRpbWVPYmplY3QtPkRhdGUyU3lzdGVtVGltZSggJUdldFBhcmFtLCBTZWNvbmQgPT4gMCApICkgewogICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3J7J0RhdGVJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoICVHZXRQYXJhbSwgU2Vjb25kID0+IDAgKQogICAgICAgICAgICAgICAgICAgICAgICA8ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yeydEYXRlSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggISRJc1VwbG9hZCApIHsKICAgICAgICAgICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gJiYgJENvbmZpZy0+e05vdGVNYW5kYXRvcnl9ICkgewoKICAgICAgICAgICAgICAgICMgY2hlY2sgc3ViamVjdAogICAgICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte1N1YmplY3R9ICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnsnU3ViamVjdEludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBjaGVjayBib2R5CiAgICAgICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17Qm9keX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yeydCb2R5SW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBvd25lcgogICAgICAgICAgICBpZiAoICRDb25maWctPntPd25lcn0gJiYgJENvbmZpZy0+e093bmVyTWFuZGF0b3J5fSApIHsKICAgICAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXtOZXdPd25lcklEfSApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3J7J05ld093bmVySW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayB0aXRsZQogICAgICAgICAgICBpZiAoICRDb25maWctPntUaXRsZX0gJiYgISRHZXRQYXJhbXtUaXRsZX0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7J1RpdGxlSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayB0eXBlCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlR5cGUnKSApCiAgICAgICAgICAgICAgICAmJgogICAgICAgICAgICAgICAgKCAkQ29uZmlnLT57VGlja2V0VHlwZX0gKSAmJgogICAgICAgICAgICAgICAgKCAhJEdldFBhcmFte1R5cGVJRH0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkRXJyb3J7J1R5cGVJREludmFsaWQnfSA9ICcgU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIHNlcnZpY2UKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKQogICAgICAgICAgICAgICAgJiYgJENvbmZpZy0+e1NlcnZpY2V9CiAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17U0xBSUR9CiAgICAgICAgICAgICAgICAmJiAhJEdldFBhcmFte1NlcnZpY2VJRH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEVycm9yeydTZXJ2aWNlSW52YWxpZCd9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgbWFuZGF0b3J5IHNlcnZpY2UKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKQogICAgICAgICAgICAgICAgJiYgJENvbmZpZy0+e1NlcnZpY2V9CiAgICAgICAgICAgICAgICAmJiAkQ29uZmlnLT57U2VydmljZU1hbmRhdG9yeX0KICAgICAgICAgICAgICAgICYmICEkR2V0UGFyYW17U2VydmljZUlEfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkRXJyb3J7J1NlcnZpY2VJbnZhbGlkJ30gPSAnIFNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBtYW5kYXRvcnkgc2xhCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykKICAgICAgICAgICAgICAgICYmICRDb25maWctPntTZXJ2aWNlfQogICAgICAgICAgICAgICAgJiYgJENvbmZpZy0+e1NMQU1hbmRhdG9yeX0KICAgICAgICAgICAgICAgICYmICEkR2V0UGFyYW17U0xBSUR9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRFcnJvcnsnU0xBSW52YWxpZCd9ID0gJyBTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgdGltZSB1bml0cywgYnV0IG9ubHkgaWYgdGhlIGN1cnJlbnQgc2NyZWVuIGhhcyBhIG5vdGUKICAgICAgICAgICAgIyAgIChhY2NvdW50ZWQgdGltZSBjYW4gb25seSBiZSBzdG9yZWQgaWYgYW5kIGFydGljbGUgaXMgZ2VuZXJhdGVkKQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJykKICAgICAgICAgICAgICAgICYmICRDb25maWctPntOb3RlfQogICAgICAgICAgICAgICAgJiYgJEdldFBhcmFte1RpbWVVbml0c30gZXEgJycKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJEVycm9yeydUaW1lVW5pdHNJbnZhbGlkJ30gPSAnIFNlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBleHBhbmQKICAgICAgICBpZiAoICRHZXRQYXJhbXtFeHBhbmR9ICkgewogICAgICAgICAgICAlRXJyb3IgPSAoKTsKICAgICAgICAgICAgJEVycm9ye0V4cGFuZH0gPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgaHRtbCBzdHJpbmdzIGZvciBhbGwgZHluYW1pYyBmaWVsZHMKICAgICAgICBteSAlRHluYW1pY0ZpZWxkSFRNTDsKCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiMgLS0tCiMgTWFzdGVyU2xhdmUKIyAtLS0KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRNYXN0ZXJTbGF2ZUFkdmFuY2VkRW5hYmxlZAogICAgICAgICAgICAgICAgJiYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IGVxICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRDsKICAgICAgICAgICAgfQojIC0tLQoKICAgICAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzRmlsdGVyOwoKICAgICAgICAgICAgbXkgJElzQUNMUmVkdWNpYmxlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzQUNMUmVkdWNpYmxlJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkSXNBQ0xSZWR1Y2libGUpIHsKCiAgICAgICAgICAgICAgICAjIGdldCBQb3NzaWJsZVZhbHVlcwogICAgICAgICAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlBvc3NpYmxlVmFsdWVzR2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIGZpZWxkIGhhcyBQb3NzaWJsZVZhbHVlcyBwcm9wZXJ0eSBpbiBpdHMgY29uZmlndXJhdGlvbgogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkUG9zc2libGVWYWx1ZXMpICkgewoKICAgICAgICAgICAgICAgICAgICAjIGNvbnZlcnQgcG9zc2libGUgdmFsdWVzIGtleSA9PiB2YWx1ZSB0byBrZXkgPT4ga2V5IGZvciBBQ0xzIHVzaW5nIGEgSGFzaCBzbGljZQogICAgICAgICAgICAgICAgICAgIG15ICVBY2xEYXRhID0gJXskUG9zc2libGVWYWx1ZXN9OwogICAgICAgICAgICAgICAgICAgIEBBY2xEYXRheyBrZXlzICVBY2xEYXRhIH0gPSBrZXlzICVBY2xEYXRhOwoKICAgICAgICAgICAgICAgICAgICAjIHNldCBwb3NzaWJsZSB2YWx1ZXMgZmlsdGVyIGZyb20gQUNMcwogICAgICAgICAgICAgICAgICAgIG15ICRBQ0wgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2woCiAgICAgICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uICAgICAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVyblR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVyblN1YlR5cGUgPT4gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFwlQWNsRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJEFDTCkgewogICAgICAgICAgICAgICAgICAgICAgICBteSAlRmlsdGVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsRGF0YSgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IEZpbGVyIGtleSA9PiBrZXkgYmFjayB0byBrZXkgPT4gdmFsdWUgdXNpbmcgbWFwCiAgICAgICAgICAgICAgICAgICAgICAgICV7JFBvc3NpYmxlVmFsdWVzRmlsdGVyfSA9IG1hcCB7ICRfID0+ICRQb3NzaWJsZVZhbHVlcy0+eyRffSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzICVGaWx0ZXI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkVmFsaWRhdGlvblJlc3VsdDsKIyAtLS0KIyBNYXN0ZXJTbGF2ZQojIC0tLQogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBlcSAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgKSB7CiAgICAgICAgICAgICAgICRQb3NzaWJsZVZhbHVlc0ZpbHRlciA9ICRTZWxmLT5fR2V0TWFzdGVyU2xhdmVEYXRhKAogICAgICAgICAgICAgICAgVGlja2V0ID0+IFwlVGlja2V0LAogICAgICAgICAgICAgICAgTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgPT4gJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiMgLS0tCgogICAgICAgICAgICAjIGRvIG5vdCB2YWxpZGF0ZSBvbiBhdHRhY2htZW50IHVwbG9hZAogICAgICAgICAgICBpZiAoICEkSXNVcGxvYWQgKSB7CgogICAgICAgICAgICAgICAgJFZhbGlkYXRpb25SZXN1bHQgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+ICRQb3NzaWJsZVZhbHVlc0ZpbHRlciwKICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+CiAgICAgICAgICAgICAgICAgICAgICAgICRDb25maWctPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgcGVyZm9ybSB2YWxpZGF0aW9uIG9uIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0hIiwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiAnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yIHRvIHRoZSBFcnJvciB2YXJpYWJsZSB0byBiZSBkZXRlY3RlZCBieSB0aGUgZnJvbnRlbmQKICAgICAgICAgICAgICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICcgU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCBmaWVsZCBodG1sCiAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9CiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+ICRQb3NzaWJsZVZhbHVlc0ZpbHRlciwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PgogICAgICAgICAgICAgICAgICAgICRDb25maWctPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gIHx8ICcnLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRWYWxpZGF0aW9uUmVzdWx0LT57RXJyb3JNZXNzYWdlfSB8fCAnJywKICAgICAgICAgICAgICAgIExheW91dE9iamVjdCA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgIEFKQVhVcGRhdGUgICA9PiAxLAogICAgICAgICAgICAgICAgVXBkYXRhYmxlRmllbGRzID0+ICRTZWxmLT5fR2V0RmllbGRzVG9VcGRhdGUoKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGVycm9ycwogICAgICAgIGlmICglRXJyb3IpIHsKCiAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1NtYWxsJywKICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PiAkVGlja2V0e1RpY2tldE51bWJlcn0sCiAgICAgICAgICAgICAgICBCb2R5Q2xhc3MgPT4gJ1BvcHVwJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X01hc2soCiAgICAgICAgICAgICAgICBBdHRhY2htZW50cyAgICAgICA9PiBcQEF0dGFjaG1lbnRzLAogICAgICAgICAgICAgICAgVGltZVVuaXRzUmVxdWlyZWQgPT4gKAogICAgICAgICAgICAgICAgICAgICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUnKQogICAgICAgICAgICAgICAgICAgID8gJ1ZhbGlkYXRlX1JlcXVpcmVkJwogICAgICAgICAgICAgICAgICAgIDogJycKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkSFRNTCA9PiBcJUR5bmFtaWNGaWVsZEhUTUwsCiAgICAgICAgICAgICAgICBJc1VwbG9hZCAgICAgICAgID0+ICRJc1VwbG9hZCwKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoCiAgICAgICAgICAgICAgICBUeXBlID0+ICdTbWFsbCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgbmV3IHRpdGxlCiAgICAgICAgaWYgKCAkQ29uZmlnLT57VGl0bGV9ICkgewogICAgICAgICAgICBpZiAoIGRlZmluZWQgJEdldFBhcmFte1RpdGxlfSApIHsKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFRpdGxlVXBkYXRlKAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgID0+ICRHZXRQYXJhbXtUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzZXQgbmV3IHR5cGUKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpUeXBlJykgJiYgJENvbmZpZy0+e1RpY2tldFR5cGV9ICkgewogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtUeXBlSUR9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0VHlwZVNldCgKICAgICAgICAgICAgICAgICAgICBUeXBlSUQgICA9PiAkR2V0UGFyYW17VHlwZUlEfSwKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCBuZXcgc2VydmljZQogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKSAmJiAkQ29uZmlnLT57U2VydmljZX0gKSB7CiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkR2V0UGFyYW17U2VydmljZUlEfSApIHsKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFNlcnZpY2VTZXQoCiAgICAgICAgICAgICAgICAgICAgU2VydmljZUlEICAgICAgPT4gJEdldFBhcmFte1NlcnZpY2VJRH0sCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIGRlZmluZWQgJEdldFBhcmFte1NMQUlEfSApIHsKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFNMQVNldCgKICAgICAgICAgICAgICAgICAgICBTTEFJRCAgICA9PiAkR2V0UGFyYW17U0xBSUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRVbmxvY2tPbkF3YXkgPSAxOwoKICAgICAgICAjIHNldCBuZXcgb3duZXIKICAgICAgICBteSBATm90aWZ5RG9uZTsKICAgICAgICBpZiAoICRDb25maWctPntPd25lcn0gKSB7CiAgICAgICAgICAgIG15ICRCb2R5VGV4dCA9ICRMYXlvdXRPYmplY3QtPlJpY2hUZXh0MkFzY2lpKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRHZXRQYXJhbXtCb2R5fSB8fCAnJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17TmV3T3duZXJJRH0gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJEdldFBhcmFte05ld093bmVySUR9LAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgICA9PiAkQm9keVRleHQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFVubG9ja09uQXdheSA9IDA7CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IG93bmVyIHR3aWNlCiAgICAgICAgICAgICAgICBpZiAoICRTdWNjZXNzICYmICRTdWNjZXNzIGVxIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5RG9uZSwgJEdldFBhcmFte05ld093bmVySUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNldCBuZXcgcmVzcG9uc2libGUKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICYmICRDb25maWctPntSZXNwb25zaWJsZX0gKSB7CiAgICAgICAgICAgIGlmICggJEdldFBhcmFte05ld1Jlc3BvbnNpYmxlSUR9ICkgewogICAgICAgICAgICAgICAgbXkgJEJvZHlUZXh0ID0gJExheW91dE9iamVjdC0+UmljaFRleHQyQXNjaWkoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRHZXRQYXJhbXtCb2R5fSB8fCAnJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkR2V0UGFyYW17TmV3UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5VGV4dCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IHJlc3BvbnNpYmxlIHR3aWNlCiAgICAgICAgICAgICAgICBpZiAoICRTdWNjZXNzICYmICRTdWNjZXNzIGVxIDEgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5RG9uZSwgJEdldFBhcmFte05ld1Jlc3BvbnNpYmxlSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG1vdmUgdGlja2V0IHRvIGEgbmV3IHF1ZXVlLCBidXQgb25seSBpZiB0aGUgcXVldWUgd2FzIGNoYW5nZWQKICAgICAgICBpZiAoCiAgICAgICAgICAgICRDb25maWctPntRdWV1ZX0KICAgICAgICAgICAgJiYgJEdldFBhcmFte05ld1F1ZXVlSUR9CiAgICAgICAgICAgICYmICRHZXRQYXJhbXtOZXdRdWV1ZUlEfSBuZSAkVGlja2V0e1F1ZXVlSUR9CiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIG1vdmUgdGlja2V0IChzZW5kIG5vdGlmaWNhdGlvbiBpZiBubyBuZXcgb3duZXIgaXMgc2VsZWN0ZWQpCiAgICAgICAgICAgIG15ICRCb2R5QXNUZXh0ID0gJyc7CiAgICAgICAgICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgICAgICAkQm9keUFzVGV4dCA9ICRMYXlvdXRPYmplY3QtPlJpY2hUZXh0MkFzY2lpKAogICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkR2V0UGFyYW17Qm9keX0gfHwgMCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkQm9keUFzVGV4dCA9ICRHZXRQYXJhbXtCb2R5fSB8fCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRNb3ZlID0gJFRpY2tldE9iamVjdC0+VGlja2V0UXVldWVTZXQoCiAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgPT4gJEdldFBhcmFte05ld1F1ZXVlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFNlbmROb05vdGlmaWNhdGlvbiA9PiAkR2V0UGFyYW17TmV3VXNlcklEfSwKICAgICAgICAgICAgICAgIENvbW1lbnQgICAgICAgICAgICA9PiAkQm9keUFzVGV4dCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJE1vdmUgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBhZGQgbm90ZQogICAgICAgIG15ICRBcnRpY2xlSUQgPSAnJzsKICAgICAgICBteSAkUmV0dXJuVVJMOwoKICAgICAgICAjIHNldCBwcmlvcml0eQogICAgICAgIGlmICggJENvbmZpZy0+e1ByaW9yaXR5fSAmJiAkR2V0UGFyYW17TmV3UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFByaW9yaXR5U2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFByaW9yaXR5SUQgPT4gJEdldFBhcmFte05ld1ByaW9yaXR5SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBzdGF0ZQogICAgICAgIGlmICggJENvbmZpZy0+e1N0YXRlfSAmJiAkR2V0UGFyYW17TmV3U3RhdGVJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBTdGF0ZUlEICA9PiAkR2V0UGFyYW17TmV3U3RhdGVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHVubG9jayB0aGUgdGlja2V0IGFmdGVyIGNsb3NlCiAgICAgICAgICAgIG15ICVTdGF0ZURhdGEgPSAkU3RhdGVPYmplY3QtPlN0YXRlR2V0KAogICAgICAgICAgICAgICAgSUQgPT4gJEdldFBhcmFte05ld1N0YXRlSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgdW5sb2NrIG9uIGNsb3NlIHN0YXRlCiAgICAgICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUgb24gcGVuZGluZyBzdGF0ZQogICAgICAgICAgICBlbHNpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewoKICAgICAgICAgICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVkaXJlY3QgcGFyZW50IHdpbmRvdyB0byBsYXN0IHNjcmVlbiBvdmVydmlldyBvbiBjbG9zZWQgdGlja2V0cwogICAgICAgICAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9eY2xvc2UvaSApIHsKICAgICAgICAgICAgICAgICRSZXR1cm5VUkwgPSAkU2VsZi0+e0xhc3RTY3JlZW5PdmVydmlld30gfHwgJ0FjdGlvbj1BZ2VudERhc2hib2FyZCc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgJEdldFBhcmFte0NyZWF0ZUFydGljbGV9CiAgICAgICAgICAgICYmICRDb25maWctPntOb3RlfQogICAgICAgICAgICAmJiAoICRHZXRQYXJhbXtTdWJqZWN0fSB8fCAkR2V0UGFyYW17Qm9keX0gKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFte1N1YmplY3R9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkQ29uZmlnLT57U3ViamVjdH0gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFN1YmplY3QgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlID0+ICRDb25maWctPntTdWJqZWN0fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtTdWJqZWN0fSA9ICRTdWJqZWN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJEdldFBhcmFte1N1YmplY3R9ID0gJEdldFBhcmFte1N1YmplY3R9CiAgICAgICAgICAgICAgICAgICAgfHwgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdObyBzdWJqZWN0Jyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgdGhlcmUgaXMgbm8gQXJ0aWNsZVR5cGVJRCwgdXNlIHRoZSBkZWZhdWx0IHZhbHVlCiAgICAgICAgICAgIGlmICggIWRlZmluZWQgJEdldFBhcmFte0FydGljbGVUeXBlSUR9ICkgewogICAgICAgICAgICAgICAgJEdldFBhcmFte0FydGljbGVUeXBlfSA9ICRDb25maWctPntBcnRpY2xlVHlwZURlZmF1bHR9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CiAgICAgICAgICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgICAgICAkTWltZVR5cGUgPSAndGV4dC9odG1sJzsKCiAgICAgICAgICAgICAgICAjIHZlcmlmeSBodG1sIGRvY3VtZW50CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17Qm9keX0gPSAkTGF5b3V0T2JqZWN0LT5SaWNoVGV4dERvY3VtZW50Q29tcGxldGUoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRHZXRQYXJhbXtCb2R5fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRGcm9tID0gIlwiJFNlbGYtPntVc2VyRmlyc3RuYW1lfSAkU2VsZi0+e1VzZXJMYXN0bmFtZX1cIiA8JFNlbGYtPntVc2VyRW1haWx9PiI7CiAgICAgICAgICAgIG15IEBOb3RpZnlVc2VySURzOwoKICAgICAgICAgICAgIyBnZXQgbGlzdCBvZiB1c2VycyB0aGF0IHdpbGwgYmUgaW5mb3JtZWQgd2l0aG91dCBzZWxlY3Rpb24gaW4gaW5mb3JtZWQvaW52b2x2ZWQgbGlzdAogICAgICAgICAgICBteSBAVXNlckxpc3RXaXRob3V0U2VsZWN0aW9uCiAgICAgICAgICAgICAgICA9IHNwbGl0KCAnLCcsICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyTGlzdFdpdGhvdXRTZWxlY3Rpb24nICkgfHwgIiIgKTsKCiAgICAgICAgICAgICMgZ2V0IGluZm9ybSB1c2VyIGxpc3QKICAgICAgICAgICAgbXkgQEluZm9ybVVzZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdJbmZvcm1Vc2VySUQnICk7CgogICAgICAgICAgICAjIGdldCBpbnZvbHZlZCB1c2VyIGxpc3QKICAgICAgICAgICAgbXkgQEludm9sdmVkVXNlcklEID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ0ludm9sdmVkVXNlcklEJyApOwoKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSApIHsKICAgICAgICAgICAgICAgIEBOb3RpZnlVc2VySURzID0gKAogICAgICAgICAgICAgICAgICAgIEBVc2VyTGlzdFdpdGhvdXRTZWxlY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgQEluZm9ybVVzZXJJRCwKICAgICAgICAgICAgICAgICAgICBASW52b2x2ZWRVc2VySUQsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgQE5vdGlmeVVzZXJJRHMgPSAoIEBJbmZvcm1Vc2VySUQsIEBJbnZvbHZlZFVzZXJJRCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRBcnRpY2xlSUQgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJ2FnZW50JywKICAgICAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJEZyb20sCiAgICAgICAgICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRNaW1lVHlwZSwKICAgICAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiAkQ29uZmlnLT57SGlzdG9yeVR5cGV9LAogICAgICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgICAgICAgICAgICAgICAgICA9PiAkQ29uZmlnLT57SGlzdG9yeUNvbW1lbnR9LAogICAgICAgICAgICAgICAgRm9yY2VOb3RpZmljYXRpb25Ub1VzZXJJRCAgICAgICA9PiBcQE5vdGlmeVVzZXJJRHMsCiAgICAgICAgICAgICAgICBFeGNsdWRlTXV0ZU5vdGlmaWNhdGlvblRvVXNlcklEID0+IFxATm90aWZ5RG9uZSwKICAgICAgICAgICAgICAgIFVubG9ja09uQXdheSAgICAgICAgICAgICAgICAgICAgPT4gJFVubG9ja09uQXdheSwKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHRpbWUgYWNjb3VudGluZwogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXtUaW1lVW5pdHN9ICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgICAgIFRpbWVVbml0ICA9PiAkR2V0UGFyYW17VGltZVVuaXRzfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgcHJlIGxvYWRlZCBhdHRhY2htZW50CiAgICAgICAgICAgIG15IEBBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNEYXRhKAogICAgICAgICAgICAgICAgRm9ybUlEID0+ICRGb3JtSUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBzdWJtaXQgYXR0YWNobWVudAogICAgICAgICAgICBteSAlVXBsb2FkU3R1ZmYgPSAkUGFyYW1PYmplY3QtPkdldFVwbG9hZEFsbCgKICAgICAgICAgICAgICAgIFBhcmFtID0+ICdGaWxlVXBsb2FkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCVVcGxvYWRTdHVmZikgewogICAgICAgICAgICAgICAgcHVzaCBAQXR0YWNobWVudHMsIFwlVXBsb2FkU3R1ZmY7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgd3JpdGUgYXR0YWNobWVudHMKICAgICAgICAgICAgQVRUQUNITUVOVDoKICAgICAgICAgICAgZm9yIG15ICRBdHRhY2htZW50IChAQXR0YWNobWVudHMpIHsKCiAgICAgICAgICAgICAgICAjIHNraXAsIGRlbGV0ZWQgbm90IHVzZWQgaW5saW5lIGltYWdlcwogICAgICAgICAgICAgICAgbXkgJENvbnRlbnRJRCA9ICRBdHRhY2htZW50LT57Q29udGVudElEfTsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkQ29udGVudElECiAgICAgICAgICAgICAgICAgICAgJiYgJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0KICAgICAgICAgICAgICAgICAgICAmJiAoICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9ID1+IC9pbWFnZS9pICkKICAgICAgICAgICAgICAgICAgICAmJiAoICRBdHRhY2htZW50LT57RGlzcG9zaXRpb259IGVxICdpbmxpbmUnICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJENvbnRlbnRJREhUTUxRdW90ZSA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgPT4gJENvbnRlbnRJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIHdvcmthcm91bmQgZm9yIGxpbmsgZW5jb2RlIG9mIHJpY2ggdGV4dCBlZGl0b3IsIHNlZSBidWcjNTA1MwogICAgICAgICAgICAgICAgICAgIG15ICRDb250ZW50SURMaW5rRW5jb2RlID0gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkQ29udGVudElEKTsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17Qm9keX0gPX4gcy8oQ29udGVudElEPSkkQ29udGVudElETGlua0VuY29kZS8kMSRDb250ZW50SUQvZzsKCiAgICAgICAgICAgICAgICAgICAgIyBpZ25vcmUgYXR0YWNobWVudCBpZiBub3QgbGlua2VkIGluIGJvZHkKICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQKICAgICAgICAgICAgICAgICAgICAgICAgaWYgJEdldFBhcmFte0JvZHl9ICF+IC8oXFEkQ29udGVudElESFRNTFF1b3RlXEV8XFEkQ29udGVudElEXEUpL2k7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyB3cml0ZSBleGlzdGluZyBmaWxlIHRvIGJhY2tlbmQKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPkFydGljbGVXcml0ZUF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICAgICAgJXskQXR0YWNobWVudH0sCiAgICAgICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVtb3ZlIHByZSBzdWJtaXR0ZWQgYXR0YWNobWVudHMKICAgICAgICAgICAgJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURSZW1vdmUoIEZvcm1JRCA9PiAkRm9ybUlEICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBkeW5hbWljIGZpZWxkcwogICAgICAgICMgY3ljbGUgdGhyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKIyAtLS0KIyBNYXN0ZXJTbGF2ZQojIC0tLQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhJE1hc3RlclNsYXZlQWR2YW5jZWRFbmFibGVkCiAgICAgICAgICAgICAgICAmJiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gZXEgJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEOwogICAgICAgICAgICB9CiMgLS0tCgogICAgICAgICAgICAjIHNldCB0aGUgb2JqZWN0IElEIChUaWNrZXRJRCBvciBBcnRpY2xlSUQpIGRlcGVuZGluZyBvbiB0aGUgZmllbGQgY29uZmlncmF0aW9uCiAgICAgICAgICAgIG15ICRPYmplY3RJRCA9ICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnQXJ0aWNsZScgPyAkQXJ0aWNsZUlEIDogJFNlbGYtPntUaWNrZXRJRH07CgogICAgICAgICAgICAjIHNldCB0aGUgdmFsdWUKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkT2JqZWN0SUQsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBsb2FkIG5ldyBVUkwgaW4gcGFyZW50IHdpbmRvdyBhbmQgY2xvc2UgcG9wdXAKICAgICAgICAkUmV0dXJuVVJMIHx8PSAiQWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD0kU2VsZi0+e1RpY2tldElEfTtBcnRpY2xlSUQ9JEFydGljbGVJRCI7CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Qb3B1cENsb3NlKAogICAgICAgICAgICBVUkwgPT4gJFJldHVyblVSTCwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FKQVhVcGRhdGUnICkgewogICAgICAgIG15ICVUaWNrZXQgICAgICAgICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0gKTsKICAgICAgICBteSAkQ3VzdG9tZXJVc2VyICAgPSAkVGlja2V0e0N1c3RvbWVyVXNlcklEfTsKICAgICAgICBteSAkRWxlbWVudENoYW5nZWQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRWxlbWVudENoYW5nZWQnICkgfHwgJyc7CgogICAgICAgIG15ICRTZXJ2aWNlSUQ7CgogICAgICAgICMgZ2V0IHNlcnZpY2UgdmFsdWUgZnJvbSBwYXJhbSBpZiBmaWVsZCBpcyB2aXNpYmxlIGluIHRoZSBzY3JlZW4KICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJENvbmZpZy0+e1NlcnZpY2V9ICkgewogICAgICAgICAgICAkU2VydmljZUlEID0gJEdldFBhcmFte1NlcnZpY2VJRH0gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSB1c2UgdGlja2V0IHNlcnZpY2UgdmFsdWUgc2luY2UgaXQgY2FuJ3QgYmUgY2hhbmdlZAogICAgICAgIGVsc2lmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKSApIHsKICAgICAgICAgICAgJFNlcnZpY2VJRCA9ICRUaWNrZXR7U2VydmljZUlEfSB8fCAnJzsKICAgICAgICB9CgogICAgICAgIG15ICRRdWV1ZUlEID0gJEdldFBhcmFte05ld1F1ZXVlSUR9IHx8ICRUaWNrZXR7UXVldWVJRH07CgogICAgICAgICMgY29udmVydCBkeW5hbWljIGZpZWxkIHZhbHVlcyBpbnRvIGEgc3RydWN0dXJlIGZvciBBQ0xzCiAgICAgICAgbXkgJUR5bmFtaWNGaWVsZEFDTFBhcmFtZXRlcnM7CiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkSXRlbSAoIHNvcnQga2V5cyAlRHluYW1pY0ZpZWxkVmFsdWVzICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZEl0ZW07CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkVmFsdWVzeyREeW5hbWljRmllbGRJdGVtfTsKCiAgICAgICAgICAgICREeW5hbWljRmllbGRBQ0xQYXJhbWV0ZXJzeyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkSXRlbSB9ID0gJER5bmFtaWNGaWVsZFZhbHVlc3skRHluYW1pY0ZpZWxkSXRlbX07CiAgICAgICAgfQoKICAgICAgICAjIGdldCBsaXN0IHR5cGUKICAgICAgICBteSAkVHJlZVZpZXcgPSAwOwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpMaXN0VHlwZScpIGVxICd0cmVlJyApIHsKICAgICAgICAgICAgJFRyZWVWaWV3ID0gMTsKICAgICAgICB9CgogICAgICAgIG15ICRPd25lcnMgPSAkU2VsZi0+X0dldE93bmVycygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgQWxsVXNlcnMgPT4gJEdldFBhcmFte093bmVyQWxsfSwKICAgICAgICApOwogICAgICAgIG15ICRPbGRPd25lcnMgPSAkU2VsZi0+X0dldE9sZE93bmVycygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgQWxsVXNlcnMgPT4gJEdldFBhcmFte093bmVyQWxsfSwKICAgICAgICApOwogICAgICAgIG15ICRSZXNwb25zaWJsZVVzZXJzID0gJFNlbGYtPl9HZXRSZXNwb25zaWJsZSgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgQWxsVXNlcnMgPT4gJEdldFBhcmFte093bmVyQWxsfSwKICAgICAgICApOwogICAgICAgIG15ICRQcmlvcml0aWVzID0gJFNlbGYtPl9HZXRQcmlvcml0aWVzKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICBteSAkU2VydmljZXMgPSAkU2VsZi0+X0dldFNlcnZpY2VzKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICRDdXN0b21lclVzZXIsCiAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICRRdWV1ZUlELAogICAgICAgICk7CiAgICAgICAgbXkgJFR5cGVzID0gJFNlbGYtPl9HZXRUeXBlcygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAkQ3VzdG9tZXJVc2VyLAogICAgICAgICAgICBRdWV1ZUlEICAgICAgICA9PiAkUXVldWVJRCwKICAgICAgICApOwoKICAgICAgICAjIHJlc2V0IHByZXZpb3VzIFNlcnZpY2VJRCB0byByZXNldCBTTEEtTGlzdCBpZiBubyBzZXJ2aWNlIGlzIHNlbGVjdGVkCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkU2VydmljZUlEIHx8ICEkU2VydmljZXMtPnskU2VydmljZUlEfSApIHsKICAgICAgICAgICAgJFNlcnZpY2VJRCA9ICcnOwogICAgICAgIH0KICAgICAgICBteSAkU0xBcyA9ICRTZWxmLT5fR2V0U0xBcygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAkQ3VzdG9tZXJVc2VyLAogICAgICAgICAgICBRdWV1ZUlEICAgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgU2VydmljZUlEICAgICAgPT4gJFNlcnZpY2VJRCwKICAgICAgICApOwogICAgICAgIG15ICROZXh0U3RhdGVzID0gJFNlbGYtPl9HZXROZXh0U3RhdGVzKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICRDdXN0b21lclVzZXIgfHwgJycsCiAgICAgICAgICAgIFF1ZXVlSUQgPT4gJFF1ZXVlSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUgRHluYW1pYyBGaWVsZHMgUG9zc2libGUgVmFsdWVzIHZpYSBBSkFYCiAgICAgICAgbXkgQER5bmFtaWNGaWVsZEFKQVg7CgogICAgICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gbmUgJ1RpY2tldCc7CgogICAgICAgICAgICBteSAkSXNBQ0xSZWR1Y2libGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNBQ0xSZWR1Y2libGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzQUNMUmVkdWNpYmxlOwoKICAgICAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlBvc3NpYmxlVmFsdWVzR2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNvbnZlcnQgcG9zc2libGUgdmFsdWVzIGtleSA9PiB2YWx1ZSB0byBrZXkgPT4ga2V5IGZvciBBQ0xzIHVzaW5nIGEgSGFzaCBzbGljZQogICAgICAgICAgICBteSAlQWNsRGF0YSA9ICV7JFBvc3NpYmxlVmFsdWVzfTsKICAgICAgICAgICAgQEFjbERhdGF7IGtleXMgJUFjbERhdGEgfSA9IGtleXMgJUFjbERhdGE7CgogICAgICAgICAgICAjIHNldCBwb3NzaWJsZSB2YWx1ZXMgZmlsdGVyIGZyb20gQUNMcwogICAgICAgICAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgICAgIFJldHVyblR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXCVBY2xEYXRhLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkQUNMKSB7CiAgICAgICAgICAgICAgICBteSAlRmlsdGVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsRGF0YSgpOwoKICAgICAgICAgICAgICAgICMgY29udmVydCBGaWxlciBrZXkgPT4ga2V5IGJhY2sgdG8ga2V5ID0+IHZhbHVlIHVzaW5nIG1hcAogICAgICAgICAgICAgICAgJXskUG9zc2libGVWYWx1ZXN9ID0gbWFwIHsgJF8gPT4gJFBvc3NpYmxlVmFsdWVzLT57JF99IH0ga2V5cyAlRmlsdGVyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkRGF0YVZhbHVlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5CdWlsZFNlbGVjdGlvbkRhdGFHZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICkgfHwgJFBvc3NpYmxlVmFsdWVzOwoKICAgICAgICAgICAgIyBhZGQgZHluYW1pYyBmaWVsZCB0byB0aGUgbGlzdCBvZiBmaWVsZHMgdG8gdXBkYXRlCiAgICAgICAgICAgIHB1c2goCiAgICAgICAgICAgICAgICBARHluYW1pY0ZpZWxkQUpBWCwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gJERhdGFWYWx1ZXMsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30tPntUcmFuc2xhdGFibGVWYWx1ZXN9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgPT4gMTAwLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVzID0gJFNlbGYtPl9HZXRTdGFuZGFyZFRlbXBsYXRlcygKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBRdWV1ZUlEID0+ICRRdWV1ZUlEIHx8ICcnLAogICAgICAgICk7CgogICAgICAgIG15IEBUZW1wbGF0ZUFKQVg7CgogICAgICAgICMgdXBkYXRlIHRpY2tldCBib2R5IGFuZCBhdHRhY2hlbWVudHMgaWYgbmVlZGVkLgogICAgICAgIGlmICggJEVsZW1lbnRDaGFuZ2VkIGVxICdTdGFuZGFyZFRlbXBsYXRlSUQnICkgewogICAgICAgICAgICBteSBAVGlja2V0QXR0YWNobWVudHM7CiAgICAgICAgICAgIG15ICRUZW1wbGF0ZVRleHQ7CgogICAgICAgICAgICAjIHJlbW92ZSBhbGwgYXR0YWNobWVudHMgZnJvbSB0aGUgVXBsb2FkIGNhY2hlCiAgICAgICAgICAgIG15ICRSZW1vdmVTdWNjZXNzID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURSZW1vdmUoCiAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJFJlbW92ZVN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGb3JtIGF0dGFjaG1lbnRzIGNvdWxkIG5vdCBiZSBkZWxldGVkISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCB0aGUgdGVtcGxhdGUgdGV4dCBhbmQgc2V0IG5ldyBhdHRhY2htZW50cyBpZiBhIHRlbXBsYXRlIGlzIHNlbGVjdGVkCiAgICAgICAgICAgIGlmICggSXNQb3NpdGl2ZUludGVnZXIoICRHZXRQYXJhbXtTdGFuZGFyZFRlbXBsYXRlSUR9ICkgKSB7CiAgICAgICAgICAgICAgICBteSAkVGVtcGxhdGVHZW5lcmF0b3IgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGVtcGxhdGVHZW5lcmF0b3InKTsKCiAgICAgICAgICAgICAgICAjIHNldCB0ZW1wbGF0ZSB0ZXh0LCByZXBsYWNlIHNtYXJ0IHRhZ3MgKGxpbWl0ZWQgYXMgdGlja2V0IGlzIG5vdCBjcmVhdGVkKQogICAgICAgICAgICAgICAgJFRlbXBsYXRlVGV4dCA9ICRUZW1wbGF0ZUdlbmVyYXRvci0+VGVtcGxhdGUoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVJRCA9PiAkR2V0UGFyYW17U3RhbmRhcmRUZW1wbGF0ZUlEfSwKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGlmIFJlcGx5VG9BcnRpY2xlIGlzIGdpdmVuLCBnZXQgdGhpcyBhcnRpY2xlIHRvIGdlbmVyYXRlCiAgICAgICAgICAgICAgICAjIHRoZSBxdW90ZWQgYXJ0aWNsZSBjb250ZW50CiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57UmVwbHlUb0FydGljbGV9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIGdldCBhcnRpY2xlIHRvIHF1b3RlCiAgICAgICAgICAgICAgICAgICAgbXkgJEJvZHkgPSAkTGF5b3V0T2JqZWN0LT5BcnRpY2xlUXVvdGUoCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICA9PiAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSwKICAgICAgICAgICAgICAgICAgICAgICAgRm9ybUlEICAgICAgICAgICAgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkQ2FjaGVPYmplY3QgPT4gJFVwbG9hZENhY2hlT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgcHJlcGFyZSBxdW90ZWQgYm9keSBjb250ZW50CiAgICAgICAgICAgICAgICAgICAgJEJvZHkgPSAkU2VsZi0+X0dldFF1b3RlZFJlcGx5Qm9keSgKICAgICAgICAgICAgICAgICAgICAgICAgJXsgJFNlbGYtPntSZXBseVRvQXJ0aWNsZUNvbnRlbnR9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIEJvZHkgPT4gJEJvZHksCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRlbXBsYXRlVGV4dCA9ICRUZW1wbGF0ZVRleHQgLiAnPGJyPjxicj4nIC4gJEJvZHk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkVGVtcGxhdGVUZXh0ID0gJFRlbXBsYXRlVGV4dCAuICJcblxuIiAuICRCb2R5OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSBTdGRBdHRhY2htZW50T2JqZWN0CiAgICAgICAgICAgICAgICBteSAkU3RkQXR0YWNobWVudE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGRBdHRhY2htZW50Jyk7CgogICAgICAgICAgICAgICAgIyBhZGQgc3RkLiBhdHRhY2htZW50cyB0byB0aWNrZXQKICAgICAgICAgICAgICAgIG15ICVBbGxTdGRBdHRhY2htZW50cyA9ICRTdGRBdHRhY2htZW50T2JqZWN0LT5TdGRBdHRhY2htZW50U3RhbmRhcmRUZW1wbGF0ZU1lbWJlckxpc3QoCiAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmRUZW1wbGF0ZUlEID0+ICRHZXRQYXJhbXtTdGFuZGFyZFRlbXBsYXRlSUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciAoIHNvcnQga2V5cyAlQWxsU3RkQXR0YWNobWVudHMgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJUF0dGFjaG1lbnRzRGF0YSA9ICRTdGRBdHRhY2htZW50T2JqZWN0LT5TdGRBdHRhY2htZW50R2V0KCBJRCA9PiAkXyApOwogICAgICAgICAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQWRkRmlsZSgKICAgICAgICAgICAgICAgICAgICAgICAgRm9ybUlEICAgICAgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgICAgICAgICAgRGlzcG9zaXRpb24gPT4gJ2F0dGFjaG1lbnQnLAogICAgICAgICAgICAgICAgICAgICAgICAlQXR0YWNobWVudHNEYXRhLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBzZW5kIGEgbGlzdCBvZiBhdHRhY2htZW50cyBpbiB0aGUgdXBsb2FkIGNhY2hlIGJhY2sgdG8gdGhlIGNsaWVudHNpZGUgSmF2YVNjcmlwdAogICAgICAgICAgICAgICAgIyB3aGljaCByZW5kZXJzIHRoZW4gdGhlIGxpc3Qgb2YgY3VycmVudGx5IHVwbG9hZGVkIGF0dGFjaG1lbnRzCiAgICAgICAgICAgICAgICBAVGlja2V0QXR0YWNobWVudHMgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREdldEFsbEZpbGVzTWV0YSgKICAgICAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEBUZW1wbGF0ZUFKQVggPSAoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlVGVtcGxhdGVOb3RlJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICcwJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmljaFRleHQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gJFRlbXBsYXRlVGV4dCB8fCAnJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1RpY2tldEF0dGFjaG1lbnRzJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICA9PiBcQFRpY2tldEF0dGFjaG1lbnRzLAogICAgICAgICAgICAgICAgICAgIEtlZXBEYXRhID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJEpTT04gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbkpTT04oCiAgICAgICAgICAgIFsKCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdPd25lcklEJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJE93bmVycywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte05ld093bmVySUR9LAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnTmV3UmVzcG9uc2libGVJRCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRSZXNwb25zaWJsZVVzZXJzLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17TmV3UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdTdGF0ZUlEJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJE5leHRTdGF0ZXMsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtOZXdTdGF0ZUlEfSwKICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gJENvbmZpZy0+e1N0YXRlRGVmYXVsdH0gPyAwIDogMSwKICAgICAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMTAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ05ld1ByaW9yaXR5SUQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkUHJpb3JpdGllcywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte05ld1ByaW9yaXR5SUR9LAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAxLAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnU2VydmljZUlEJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJFNlcnZpY2VzLAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkR2V0UGFyYW17U2VydmljZUlEfSwKICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBUcmVlVmlldyAgICAgPT4gJFRyZWVWaWV3LAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnU0xBSUQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkU0xBcywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte1NMQUlEfSwKICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMTAwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ1N0YW5kYXJkVGVtcGxhdGVJRCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRTdGFuZGFyZFRlbXBsYXRlcywKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZElEICAgPT4gJEdldFBhcmFte1N0YW5kYXJkVGVtcGxhdGVJRH0sCiAgICAgICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTWF4ICAgICAgICAgID0+IDEwMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdUeXBlSUQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiAkVHlwZXMsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRHZXRQYXJhbXtUeXBlSUR9LAogICAgICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICAgICAgICAgICAgIE1heCAgICAgICAgICA9PiAxMDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgQER5bmFtaWNGaWVsZEFKQVgsCiAgICAgICAgICAgICAgICBAVGVtcGxhdGVBSkFYLAogICAgICAgICAgICBdLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRKU09OLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgIG15ICRCb2R5ID0gJyc7CgogICAgICAgICMgaWYgUmVwbHlUb0FydGljbGUgaXMgZ2l2ZW4sIGdldCB0aGlzIGFydGljbGUgdG8gZ2VuZXJhdGUKICAgICAgICAjIHRoZSBxdW90ZWQgYXJ0aWNsZSBjb250ZW50CiAgICAgICAgaWYgKCAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSApIHsKCiAgICAgICAgICAgICMgZ2V0IGFydGljbGUgdG8gcXVvdGUKICAgICAgICAgICAgJEJvZHkgPSAkTGF5b3V0T2JqZWN0LT5BcnRpY2xlUXVvdGUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgID0+ICRTZWxmLT57UmVwbHlUb0FydGljbGV9LAogICAgICAgICAgICAgICAgRm9ybUlEICAgICAgICAgICAgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgIFVwbG9hZENhY2hlT2JqZWN0ID0+ICRVcGxvYWRDYWNoZU9iamVjdCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcHJlcGFyZSBxdW90ZWQgYm9keSBjb250ZW50CiAgICAgICAgICAgICRCb2R5ID0gJFNlbGYtPl9HZXRRdW90ZWRSZXBseUJvZHkoCiAgICAgICAgICAgICAgICAleyAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlQ29udGVudH0gfSwKICAgICAgICAgICAgICAgIEJvZHkgPT4gJEJvZHksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGlmIGEgYm9keSBjb250ZW50IHdhcyBwcmUgZGVmaW5lZCwgYWRkIHRoaXMgYmVmb3JlIHRoZSBxdW90ZWQgYXJ0aWNsZSBjb250ZW50CiAgICAgICAgaWYgKCAkR2V0UGFyYW17Qm9keX0gKSB7CgogICAgICAgICAgICAjIG1ha2Ugc3VyZSBib2R5IGlzIHJpY2ggdGV4dAogICAgICAgICAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICAgICAgICAgJEdldFBhcmFte0JvZHl9ID0gJExheW91dE9iamVjdC0+QXNjaWkyUmljaFRleHQoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRHZXRQYXJhbXtCb2R5fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRCb2R5ID0gJEdldFBhcmFte0JvZHl9IC4gJEJvZHk7CiAgICAgICAgfQoKICAgICAgICAjIGZpbGx1cCBjb25maWd1cmVkIGRlZmF1bHQgdmFycwogICAgICAgIGlmICggJEJvZHkgZXEgJycgJiYgJENvbmZpZy0+e0JvZHl9ICkgewogICAgICAgICAgICAkQm9keSA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgIFRlbXBsYXRlID0+ICRDb25maWctPntCb2R5fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgbWFrZSBzdXJlIGJvZHkgaXMgcmljaCB0ZXh0CiAgICAgICAgICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgICAgICAkQm9keSA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMlJpY2hUZXh0KAogICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkQm9keSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc2V0IEJvZHkgdmFyIHRvIGNhbGN1bGF0ZWQgY29udGVudAogICAgICAgICRHZXRQYXJhbXtCb2R5fSA9ICRCb2R5OwoKICAgICAgICBpZiAoICRTZWxmLT57UmVwbHlUb0FydGljbGV9ICYmICRDb25maWctPntTdWJqZWN0fSApIHsKICAgICAgICAgICAgbXkgJFRpY2tldFN1YmplY3RSZSA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTdWJqZWN0UmUnKTsKICAgICAgICAgICAgaWYgKCRUaWNrZXRTdWJqZWN0UmUpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtTdWJqZWN0fSA9ICRUaWNrZXRTdWJqZWN0UmUgLiAnOiAnIC4gJFNlbGYtPntSZXBseVRvQXJ0aWNsZUNvbnRlbnR9e1N1YmplY3R9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEdldFBhcmFte1N1YmplY3R9ID0gJ1JlOiAnIC4gJFNlbGYtPntSZXBseVRvQXJ0aWNsZUNvbnRlbnR9e1N1YmplY3R9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2lmICggIWRlZmluZWQgJEdldFBhcmFte1N1YmplY3R9ICYmICRDb25maWctPntTdWJqZWN0fSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1N1YmplY3R9ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGUgPT4gJENvbmZpZy0+e1N1YmplY3R9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgaHRtbCBzdHJpbmdzIGZvciBhbGwgZHluYW1pYyBmaWVsZHMKICAgICAgICBteSAlRHluYW1pY0ZpZWxkSFRNTDsKCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiMgLS0tCiMgTWFzdGVyU2xhdmUKIyAtLS0KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRNYXN0ZXJTbGF2ZUFkdmFuY2VkRW5hYmxlZAogICAgICAgICAgICAgICAgJiYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IGVxICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRDsKICAgICAgICAgICAgfQojLS0tCgogICAgICAgICAgICBteSAkUG9zc2libGVWYWx1ZXNGaWx0ZXI7CgogICAgICAgICAgICBteSAkSXNBQ0xSZWR1Y2libGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNBQ0xSZWR1Y2libGUnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRJc0FDTFJlZHVjaWJsZSkgewoKICAgICAgICAgICAgICAgICMgZ2V0IFBvc3NpYmxlVmFsdWVzCiAgICAgICAgICAgICAgICBteSAkUG9zc2libGVWYWx1ZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+UG9zc2libGVWYWx1ZXNHZXQoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgZmllbGQgaGFzIFBvc3NpYmxlVmFsdWVzIHByb3BlcnR5IGluIGl0cyBjb25maWd1cmF0aW9uCiAgICAgICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CgogICAgICAgICAgICAgICAgICAgICMgY29udmVydCBwb3NzaWJsZSB2YWx1ZXMga2V5ID0+IHZhbHVlIHRvIGtleSA9PiBrZXkgZm9yIEFDTHMgdXNpbmcgYSBIYXNoIHNsaWNlCiAgICAgICAgICAgICAgICAgICAgbXkgJUFjbERhdGEgPSAleyRQb3NzaWJsZVZhbHVlc307CiAgICAgICAgICAgICAgICAgICAgQEFjbERhdGF7IGtleXMgJUFjbERhdGEgfSA9IGtleXMgJUFjbERhdGE7CgogICAgICAgICAgICAgICAgICAgICMgc2V0IHBvc3NpYmxlIHZhbHVlcyBmaWx0ZXIgZnJvbSBBQ0xzCiAgICAgICAgICAgICAgICAgICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXCVBY2xEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICgkQUNMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICVGaWx0ZXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNvbnZlcnQgRmlsZXIga2V5ID0+IGtleSBiYWNrIHRvIGtleSA9PiB2YWx1ZSB1c2luZyBtYXAKICAgICAgICAgICAgICAgICAgICAgICAgJXskUG9zc2libGVWYWx1ZXNGaWx0ZXJ9ID0gbWFwIHsgJF8gPT4gJFBvc3NpYmxlVmFsdWVzLT57JF99IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMgJUZpbHRlcjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KIyAtLS0KIyBNYXN0ZXJTbGF2ZQojIC0tLQogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBlcSAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgKSB7CiAgICAgICAgICAgICAgICRQb3NzaWJsZVZhbHVlc0ZpbHRlciA9ICAkU2VsZi0+X0dldE1hc3RlclNsYXZlRGF0YSgKICAgICAgICAgICAgICAgIFRpY2tldCA9PiBcJVRpY2tldCwKICAgICAgICAgICAgICAgIE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkID0+ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCwKICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQojIC0tLQoKICAgICAgICAgICAgIyB0byBzdG9yZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gZGF0YWJhc2UgKG9yIHVuZGVmaW5lZCkKICAgICAgICAgICAgbXkgJFZhbHVlOwoKICAgICAgICAgICAgIyBvbmx5IGdldCB2YWx1ZXMgZm9yIFRpY2tldCBmaWVsZHMgKGFsbCBzY3JlZW5zIGJhc2VkIG9uIEFnZW50VGlja2VBY3Rpb25Db21tb24KICAgICAgICAgICAgIyBnZW5lcmF0ZXMgYSBuZXcgYXJ0aWNsZSwgdGhlbiBhcnRpY2xlIGZpZWxkcyB3aWxsIGJlIGFsd2F5cyBlbXB0eSBhdCB0aGUgYmVnaW5uaW5nKQogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnVGlja2V0JyApIHsKCiAgICAgICAgICAgICAgICAjIGdldCB2YWx1ZSBzdG9yZWQgb24gdGhlIGRhdGFiYXNlIGZyb20gVGlja2V0CiAgICAgICAgICAgICAgICAkVmFsdWUgPSAkVGlja2V0eyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgZmllbGQgaHRtbAogICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTHsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPQogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFJlbmRlcigKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBQb3NzaWJsZVZhbHVlc0ZpbHRlciA9PiAkUG9zc2libGVWYWx1ZXNGaWx0ZXIsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4KICAgICAgICAgICAgICAgICAgICAkQ29uZmlnLT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICAgICAgQUpBWFVwZGF0ZSAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVcGRhdGFibGVGaWVsZHMgPT4gJFNlbGYtPl9HZXRGaWVsZHNUb1VwZGF0ZSgpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcHJpbnQgZm9ybSAuLi4KICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBUeXBlICAgICAgPT4gJ1NtYWxsJywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRUaWNrZXR7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgQm9keUNsYXNzID0+ICdQb3B1cCcsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgVGltZVVuaXRzUmVxdWlyZWQgPT4gKAogICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScpCiAgICAgICAgICAgICAgICA/ICdWYWxpZGF0ZV9SZXF1aXJlZCcKICAgICAgICAgICAgICAgIDogJycKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICBEeW5hbWljRmllbGRIVE1MID0+IFwlRHluYW1pY0ZpZWxkSFRNTCwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgICAgICBUeXBlID0+ICdTbWFsbCcsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KfQoKc3ViIF9NYXNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGlzdCB0eXBlCiAgICBteSAkVHJlZVZpZXcgPSAwOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpMaXN0VHlwZScpIGVxICd0cmVlJyApIHsKICAgICAgICAkVHJlZVZpZXcgPSAxOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0gKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgV2lkZ2V0IFRpY2tldCBBY3Rpb25zCiAgICBpZiAoCiAgICAgICAgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRDb25maWctPntUaWNrZXRUeXBlfSApCiAgICAgICAgfHwKICAgICAgICAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgICAgICYmICRDb25maWctPntTZXJ2aWNlfSApICAgICB8fAogICAgICAgICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgJiYgJENvbmZpZy0+e1Jlc3BvbnNpYmxlfSApIHx8CiAgICAgICAgJENvbmZpZy0+e1RpdGxlfSB8fAogICAgICAgICRDb25maWctPntRdWV1ZX0gfHwKICAgICAgICAkQ29uZmlnLT57T3duZXJ9IHx8CiAgICAgICAgJENvbmZpZy0+e1N0YXRlfSB8fAogICAgICAgICRDb25maWctPntQcmlvcml0eX0KICAgICAgICApCiAgICB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1dpZGdldFRpY2tldEFjdGlvbnMnLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkQ29uZmlnLT57VGl0bGV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUaXRsZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgIG15ICREeW5hbWljRmllbGROYW1lcyA9ICRTZWxmLT5fR2V0RmllbGRzVG9VcGRhdGUoCiAgICAgICAgT25seUR5bmFtaWNGaWVsZHMgPT4gMSwKICAgICk7CgogICAgIyBjcmVhdGUgYSBzdHJpbmcgd2l0aCB0aGUgcXVvdGVkIGR5bmFtaWMgZmllbGQgbmFtZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcwogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZE5hbWVzKSApIHsKICAgICAgICBmb3IgbXkgJEZpZWxkICggQHskRHluYW1pY0ZpZWxkTmFtZXN9ICkgewogICAgICAgICAgICAkUGFyYW17RHluYW1pY0ZpZWxkTmFtZXNTdHJnfSAuPSAiLCAnIiAuICRGaWVsZCAuICInIjsKICAgICAgICB9CiAgICB9CgogICAgIyB0eXBlcwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRDb25maWctPntUaWNrZXRUeXBlfSApIHsKICAgICAgICBteSAlVHlwZSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFR5cGVMaXN0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VHlwZVN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIENsYXNzID0+ICdWYWxpZGF0ZV9SZXF1aXJlZCBNb2Rlcm5pemUgJyAuICggJFBhcmFte0Vycm9yc30tPntUeXBlSURJbnZhbGlkfSB8fCAnICcgKSwKICAgICAgICAgICAgRGF0YSAgPT4gXCVUeXBlLAogICAgICAgICAgICBOYW1lICA9PiAnVHlwZUlEJywKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtUeXBlSUR9LAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1R5cGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXJ2aWNlcwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6U2VydmljZScpICYmICRDb25maWctPntTZXJ2aWNlfSApIHsKICAgICAgICBteSAkU2VydmljZXMgPSAkU2VsZi0+X0dldFNlcnZpY2VzKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEFjdGlvbiAgICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHJlc2V0IHByZXZpb3VzIFNlcnZpY2VJRCB0byByZXNldCBTTEEtTGlzdCBpZiBubyBzZXJ2aWNlIGlzIHNlbGVjdGVkCiAgICAgICAgaWYgKCAhJFBhcmFte1NlcnZpY2VJRH0gfHwgISRTZXJ2aWNlcy0+eyAkUGFyYW17U2VydmljZUlEfSB9ICkgewogICAgICAgICAgICAkUGFyYW17U2VydmljZUlEfSA9ICcnOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkQ29uZmlnLT57U2VydmljZU1hbmRhdG9yeX0gKSB7CgogICAgICAgICAgICAkUGFyYW17U2VydmljZVN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJFNlcnZpY2VzLAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdTZXJ2aWNlSUQnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtTZXJ2aWNlSUR9LAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdWYWxpZGF0ZV9SZXF1aXJlZCBNb2Rlcm5pemUgJyAuICggJFBhcmFte1NlcnZpY2VJbnZhbGlkfSB8fCAnICcgKSwKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgVHJlZVZpZXcgICAgID0+ICRUcmVlVmlldywKICAgICAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnVHJlZVZpZXcnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTZXJ2aWNlTWFuZGF0b3J5JywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgJFBhcmFte1NlcnZpY2VTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+ICRTZXJ2aWNlcywKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnU2VydmljZUlEJywKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17U2VydmljZUlEfSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplICcgLiAkUGFyYW17U2VydmljZUludmFsaWR9IHx8ICcgJywKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgVHJlZVZpZXcgICAgID0+ICRUcmVlVmlldywKICAgICAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnVHJlZVZpZXcnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTZXJ2aWNlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlU0xBID0gJFRpY2tldE9iamVjdC0+VGlja2V0U0xBTGlzdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggJENvbmZpZy0+e1NMQU1hbmRhdG9yeX0gKSB7CgogICAgICAgICAgICAkUGFyYW17U0xBU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVNMQSwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnU0xBSUQnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtTTEFJRH0sCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1ZhbGlkYXRlX1JlcXVpcmVkIE1vZGVybml6ZSAnIC4gKCAkUGFyYW17U0xBSW52YWxpZH0gfHwgJyAnICksCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTTEFNYW5kYXRvcnknLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAkUGFyYW17U0xBU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVNMQSwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnU0xBSUQnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtTTEFJRH0sCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTTEEnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkQ29uZmlnLT57UXVldWV9ICkgewoKICAgICAgICAjIGZldGNoIGFsbCBxdWV1ZXMKICAgICAgICBteSAlTW92ZVF1ZXVlcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldE1vdmVMaXN0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdtb3ZlX2ludG8nLAogICAgICAgICk7CgogICAgICAgICMgc2V0IG1vdmUgcXVldWVzCiAgICAgICAgJFBhcmFte1F1ZXVlc1N0cmd9ID0gJExheW91dE9iamVjdC0+QWdlbnRRdWV1ZUxpc3RPcHRpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICAgID0+IHsgJU1vdmVRdWV1ZXMsICcnID0+ICctJyB9LAogICAgICAgICAgICBNdWx0aXBsZSAgICAgICA9PiAwLAogICAgICAgICAgICBTaXplICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICAgICA9PiAnTmV3UXVldWVJRCBNb2Rlcm5pemUnLAogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnTmV3UXVldWVJRCcsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICAgID0+ICRQYXJhbXtOZXdRdWV1ZUlEfSwKICAgICAgICAgICAgVHJlZVZpZXcgICAgICAgPT4gJFRyZWVWaWV3LAogICAgICAgICAgICBDdXJyZW50UXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0sCiAgICAgICAgICAgIE9uQ2hhbmdlU3VibWl0ID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1F1ZXVlJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkUXVldWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKICAgIG15ICRVc2VyT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICBpZiAoICRDb25maWctPntPd25lcn0gKSB7CgogICAgICAgICMgZ2V0IHVzZXIgb2Ygb3duIGdyb3VwcwogICAgICAgIG15ICVTaG93blVzZXJzOwogICAgICAgIG15ICVBbGxHcm91cHNNZW1iZXJzID0gJFVzZXJPYmplY3QtPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpDaGFuZ2VPd25lclRvRXZlcnlvbmUnKSApIHsKICAgICAgICAgICAgJVNob3duVXNlcnMgPSAlQWxsR3JvdXBzTWVtYmVyczsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICRHSUQgPSAkUXVldWVPYmplY3QtPkdldFF1ZXVlR3JvdXBJRCggUXVldWVJRCA9PiAkVGlja2V0e1F1ZXVlSUR9ICk7CiAgICAgICAgICAgIG15ICVNZW1iZXJMaXN0ID0gJEdyb3VwT2JqZWN0LT5QZXJtaXNzaW9uR3JvdXBHZXQoCiAgICAgICAgICAgICAgICBHcm91cElEID0+ICRHSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdvd25lcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVNZW1iZXJMaXN0ICkgewogICAgICAgICAgICAgICAgJFNob3duVXNlcnN7JFVzZXJJRH0gPSAkQWxsR3JvdXBzTWVtYmVyc3skVXNlcklEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICAgICAgJVRpY2tldCwKICAgICAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgUmV0dXJuU3ViVHlwZSA9PiAnTmV3T3duZXInLAogICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRBQ0wpIHsKICAgICAgICAgICAgJVNob3duVXNlcnMgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBvbGQgb3duZXIKICAgICAgICBteSBAT2xkVXNlckluZm8gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lckxpc3QoIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9ICk7CiAgICAgICAgbXkgQE9sZE93bmVyczsKICAgICAgICBteSAlT2xkT3duZXJzU2hvd247CiAgICAgICAgbXkgJVNlZW5PbGRPd25lcjsKICAgICAgICBpZiAoQE9sZFVzZXJJbmZvKSB7CiAgICAgICAgICAgIG15ICRDb3VudGVyID0gMTsKICAgICAgICAgICAgVVNFUjoKICAgICAgICAgICAgZm9yIG15ICRVc2VyICggcmV2ZXJzZSBAT2xkVXNlckluZm8gKSB7CgogICAgICAgICAgICAgICAgIyBza2lwIGlmIG9sZCBvd25lciBpcyBhbHJlYWR5IGluIHRoZSBsaXN0CiAgICAgICAgICAgICAgICBuZXh0IFVTRVIgaWYgJFNlZW5PbGRPd25lcnsgJFVzZXItPntVc2VySUR9IH07CiAgICAgICAgICAgICAgICAkU2Vlbk9sZE93bmVyeyAkVXNlci0+e1VzZXJJRH0gfSA9IDE7CiAgICAgICAgICAgICAgICBteSAkS2V5ICAgPSAkVXNlci0+e1VzZXJJRH07CiAgICAgICAgICAgICAgICBteSAkVmFsdWUgPSAiJENvdW50ZXI6ICRVc2VyLT57VXNlckZ1bGxuYW1lfSI7CiAgICAgICAgICAgICAgICBwdXNoIEBPbGRPd25lcnMsIHsKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAkT2xkT3duZXJzU2hvd257JEtleX0gPSAkVmFsdWU7CiAgICAgICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkT2xkT3duZXJTZWxlY3RlZElEID0gJyc7CiAgICAgICAgaWYgKCAkUGFyYW17T2xkT3duZXJJRH0gKSB7CiAgICAgICAgICAgICRPbGRPd25lclNlbGVjdGVkSUQgPSAkUGFyYW17T2xkT3duZXJJRH07CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJE9sZFVzZXJJbmZvWzBdLT57VXNlcklEfSApIHsKICAgICAgICAgICAgJE9sZE93bmVyU2VsZWN0ZWRJRCA9ICRPbGRVc2VySW5mb1swXS0+e1VzZXJJRH0gLiAnMSc7CiAgICAgICAgfQoKICAgICAgICBteSAkT2xkT3duZXJBQ0wgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2woCiAgICAgICAgICAgICVUaWNrZXQsCiAgICAgICAgICAgIFJldHVyblR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgIFJldHVyblN1YlR5cGUgPT4gJ09sZE93bmVyJywKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJU9sZE93bmVyc1Nob3duLAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJE9sZE93bmVyQUNMKSB7CiAgICAgICAgICAgICVPbGRPd25lcnNTaG93biA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKTsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgc3RyaW5nCiAgICAgICAgJFBhcmFte093bmVyU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVNob3duVXNlcnMsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte05ld093bmVySUR9LAogICAgICAgICAgICBOYW1lICAgICAgID0+ICdOZXdPd25lcklEJywKICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplICcKICAgICAgICAgICAgICAgIC4gKCAkQ29uZmlnLT57T3duZXJNYW5kYXRvcnl9ID8gJ1ZhbGlkYXRlX1JlcXVpcmVkICcgOiAnJyApCiAgICAgICAgICAgICAgICAuICggJFBhcmFte05ld093bmVySW52YWxpZH0gfHwgJycgKSwKICAgICAgICAgICAgU2l6ZSAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBGaWx0ZXJzICAgICAgPT4gewogICAgICAgICAgICAgICAgT2xkT3duZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdQcmV2aW91cyBPd25lcicpLAogICAgICAgICAgICAgICAgICAgIFZhbHVlcyA9PiBcJU9sZE93bmVyc1Nob3duLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkQ29uZmlnLT57T3duZXJNYW5kYXRvcnl9ID8gJ093bmVyTWFuZGF0b3J5JyA6ICdPd25lcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgJiYgJENvbmZpZy0+e1Jlc3BvbnNpYmxlfSApIHsKCiAgICAgICAgIyBnZXQgdXNlciBvZiBvd24gZ3JvdXBzCiAgICAgICAgbXkgJVNob3duVXNlcnM7CiAgICAgICAgbXkgJUFsbEdyb3Vwc01lbWJlcnMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkNoYW5nZU93bmVyVG9FdmVyeW9uZScpICkgewogICAgICAgICAgICAlU2hvd25Vc2VycyA9ICVBbGxHcm91cHNNZW1iZXJzOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEdJRCA9ICRRdWV1ZU9iamVjdC0+R2V0UXVldWVHcm91cElEKCBRdWV1ZUlEID0+ICRUaWNrZXR7UXVldWVJRH0gKTsKICAgICAgICAgICAgbXkgJU1lbWJlckxpc3QgPSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Hcm91cEdldCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ3Jlc3BvbnNpYmxlJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgICAgICAkU2hvd25Vc2Vyc3skVXNlcklEfSA9ICRBbGxHcm91cHNNZW1iZXJzeyRVc2VySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICAgICAlVGlja2V0LAogICAgICAgICAgICBSZXR1cm5UeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdSZXNwb25zaWJsZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJEFDTCkgewogICAgICAgICAgICAlU2hvd25Vc2VycyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHJlc3BvbnNpYmxlCiAgICAgICAgJFBhcmFte1Jlc3BvbnNpYmxlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtOZXdSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdSZXNwb25zaWJsZUlEJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgU2l6ZSAgICAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUmVzcG9uc2libGUnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRDb25maWctPntTdGF0ZX0gKSB7CgogICAgICAgIG15ICVTdGF0ZTsKICAgICAgICBteSAlU3RhdGVMaXN0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U3RhdGVMaXN0KAogICAgICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkUGFyYW17TmV3U3RhdGVJRH0gKSB7CiAgICAgICAgICAgIGlmICggJENvbmZpZy0+e1N0YXRlRGVmYXVsdH0gKSB7CiAgICAgICAgICAgICAgICAkU3RhdGV7U2VsZWN0ZWRWYWx1ZX0gPSAkQ29uZmlnLT57U3RhdGVEZWZhdWx0fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFN0YXRle1NlbGVjdGVkSUR9ID0gJFBhcmFte05ld1N0YXRlSUR9OwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBuZXh0IHN0YXRlcyBzdHJpbmcKICAgICAgICAkUGFyYW17U3RhdGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVTdGF0ZUxpc3QsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnTmV3U3RhdGVJRCcsCiAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgUG9zc2libGVOb25lID0+ICRDb25maWctPntTdGF0ZURlZmF1bHR9ID8gMCA6IDEsCiAgICAgICAgICAgICVTdGF0ZSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTdGF0ZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICBTVEFURUlEOgogICAgICAgIGZvciBteSAkU3RhdGVJRCAoIHNvcnQga2V5cyAlU3RhdGVMaXN0ICkgewoKICAgICAgICAgICAgbmV4dCBTVEFURUlEIGlmICEkU3RhdGVJRDsKCiAgICAgICAgICAgICMgZ2V0IHN0YXRlIGRhdGEKICAgICAgICAgICAgbXkgJVN0YXRlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScpLT5TdGF0ZUdldCggSUQgPT4gJFN0YXRlSUQgKTsKCiAgICAgICAgICAgIG5leHQgU1RBVEVJRCBpZiAkU3RhdGVEYXRhe1R5cGVOYW1lfSAhfiAvcGVuZGluZy9pOwoKICAgICAgICAgICAgIyBnZXQgdXNlZCBjYWxlbmRhcgogICAgICAgICAgICBteSAkQ2FsZW5kYXIgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDYWxlbmRhckdldCgKICAgICAgICAgICAgICAgICVUaWNrZXQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUGFyYW17RGF0ZVN0cmluZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBGb3JtYXQgICAgICAgICAgID0+ICdEYXRlSW5wdXRGb3JtYXRMb25nJywKICAgICAgICAgICAgICAgIFllYXJQZXJpb2RQYXN0ICAgPT4gMCwKICAgICAgICAgICAgICAgIFllYXJQZXJpb2RGdXR1cmUgPT4gNSwKICAgICAgICAgICAgICAgIERpZmZUaW1lICAgICAgICAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpQZW5kaW5nRGlmZlRpbWUnKQogICAgICAgICAgICAgICAgICAgIHx8IDAsCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAkUGFyYW17RGF0ZUludmFsaWR9IHx8ICcgJywKICAgICAgICAgICAgICAgIFZhbGlkYXRlICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBWYWxpZGF0ZURhdGVJbkZ1dHVyZSA9PiAxLAogICAgICAgICAgICAgICAgQ2FsZW5kYXIgICAgICAgICAgICAgPT4gJENhbGVuZGFyLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGF0ZVBlbmRpbmcnLAogICAgICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbGFzdCBTVEFURUlEOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBwcmlvcml0eQogICAgaWYgKCAkQ29uZmlnLT57UHJpb3JpdHl9ICkgewoKICAgICAgICBteSAlUHJpb3JpdHk7CiAgICAgICAgbXkgJVByaW9yaXR5TGlzdCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFByaW9yaXR5TGlzdCgKICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkU2VsZi0+e1RpY2tldElEfSwKICAgICAgICApOwogICAgICAgIGlmICggISRDb25maWctPntQcmlvcml0eURlZmF1bHR9ICkgewogICAgICAgICAgICAkUHJpb3JpdHlMaXN0eycnfSA9ICctJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJFBhcmFte05ld1ByaW9yaXR5SUR9ICkgewogICAgICAgICAgICBpZiAoICRDb25maWctPntQcmlvcml0eURlZmF1bHR9ICkgewogICAgICAgICAgICAgICAgJFByaW9yaXR5e1NlbGVjdGVkVmFsdWV9ID0gJENvbmZpZy0+e1ByaW9yaXR5RGVmYXVsdH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQcmlvcml0eXtTZWxlY3RlZElEfSA9ICRQYXJhbXtOZXdQcmlvcml0eUlEfTsKICAgICAgICB9CiAgICAgICAgJFByaW9yaXR5e1NlbGVjdGVkSUR9IHx8PSAkUGFyYW17UHJpb3JpdHlJRH07CiAgICAgICAgJFBhcmFte1ByaW9yaXR5U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgPT4gXCVQcmlvcml0eUxpc3QsCiAgICAgICAgICAgIE5hbWUgID0+ICdOZXdQcmlvcml0eUlEJywKICAgICAgICAgICAgQ2xhc3MgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICVQcmlvcml0eSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgRW5kIFdpZGdldCBUaWNrZXQgQWN0aW9ucwoKICAgICMgZGVmaW5lIHRoZSBkeW5hbWljIGZpZWxkcyB0byBzaG93IGJhc2VkIG9uIHRoZSBvYmplY3QgdHlwZQogICAgbXkgJE9iamVjdFR5cGUgPSBbJ1RpY2tldCddOwoKICAgICMgb25seSBzY3JlZW5zIHRoYXQgYWRkIG5vdGVzIGNhbiBtb2RpZnkgQXJ0aWNsZSBkeW5hbWljIGZpZWxkcwogICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gKSB7CiAgICAgICAgJE9iamVjdFR5cGUgPSBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXTsKICAgIH0KCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJE9iamVjdFR5cGUsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICMgV2lkZ2V0IER5bmFtaWMgRmllbGRzCiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnV2lkZ2V0RHluYW1pY0ZpZWxkcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIER5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgc2tpcCBmaWVsZHMgdGhhdCBIVE1MIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoCiAgICAgICAgICAgICRQYXJhbXtEeW5hbWljRmllbGRIVE1MfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRoZSBodG1sIHN0cmluZ3MgZm9ybSAkUGFyYW0KICAgICAgICBteSAkRHluYW1pY0ZpZWxkSFRNTCA9ICRQYXJhbXtEeW5hbWljRmllbGRIVE1MfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgTGFiZWwgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICBGaWVsZCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgIEZpZWxkID0+ICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBFbmQgV2lkZ2V0IER5bmFtaWMgRmllbGRzCgogICAgIyBXaWRnZXQgQXJ0aWNsZQogICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gKSB7CgogICAgICAgICRQYXJhbXtXaWRnZXRTdGF0dXN9ID0gJ0NvbGxhcHNlZCc7CgogICAgICAgIGlmICgKICAgICAgICAgICAgJENvbmZpZy0+e05vdGVNYW5kYXRvcnl9CiAgICAgICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUnKQogICAgICAgICAgICB8fCAkUGFyYW17SXNVcGxvYWR9CiAgICAgICAgICAgIHx8ICRTZWxmLT57UmVwbHlUb0FydGljbGV9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtXaWRnZXRTdGF0dXN9ID0gJ0V4cGFuZGVkJzsKICAgICAgICB9CgogICAgICAgIGlmICgKICAgICAgICAgICAgJENvbmZpZy0+e05vdGVNYW5kYXRvcnl9CiAgICAgICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUnKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17U3ViamVjdFJlcXVpcmVkfSA9ICdWYWxpZGF0ZV9SZXF1aXJlZCc7CiAgICAgICAgICAgICRQYXJhbXtCb2R5UmVxdWlyZWR9ICAgID0gJ1ZhbGlkYXRlX1JlcXVpcmVkJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQYXJhbXtTdWJqZWN0UmVxdWlyZWR9ID0gJ1ZhbGlkYXRlX0RlcGVuZGluZ1JlcXVpcmVkQU5EIFZhbGlkYXRlX0RlcGVuZGluZ19DcmVhdGVBcnRpY2xlJzsKICAgICAgICAgICAgJFBhcmFte0JvZHlSZXF1aXJlZH0gICAgPSAnVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX0NyZWF0ZUFydGljbGUnOwogICAgICAgIH0KCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1dpZGdldEFydGljbGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGFsbCB1c2VyIGlkcyBvZiBhZ2VudHMsIHRoYXQgY2FuIGJlIHNob3duIGluIHRoaXMgZGlhbG9nCiAgICAgICAgIyBiYXNlZCBvbiBxdWV1ZSByaWdodHMKICAgICAgICBteSAlU2hvd25Vc2VyczsKICAgICAgICBteSAlQWxsR3JvdXBzTWVtYmVycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJEdJRCA9ICRRdWV1ZU9iamVjdC0+R2V0UXVldWVHcm91cElEKCBRdWV1ZUlEID0+ICRUaWNrZXR7UXVldWVJRH0gKTsKICAgICAgICBteSAlTWVtYmVyTGlzdCA9ICRHcm91cE9iamVjdC0+UGVybWlzc2lvbkdyb3VwR2V0KAogICAgICAgICAgICBHcm91cElEID0+ICRHSUQsCiAgICAgICAgICAgIFR5cGUgICAgPT4gJ25vdGUnLAogICAgICAgICk7CiAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgICRTaG93blVzZXJzeyRVc2VySUR9ID0gJEFsbEdyb3Vwc01lbWJlcnN7JFVzZXJJRH07CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSBlbWFpbCBwYXJzZXIgb2JqZWN0CiAgICAgICAgbXkgJEVtYWlsUGFyc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVtYWlsUGFyc2VyLT5uZXcoCiAgICAgICAgICAgIE1vZGUgID0+ICdTdGFuZGFsb25lJywKICAgICAgICAgICAgRGVidWcgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGFuZCByZXRyaWV2ZSBpbnZvbHZlZCBhbmQgaW5mb3JtZWQgYWdlbnRzIG9mIFJlcGx5VG8gTm90ZQogICAgICAgIG15IEBSZXBseVRvVXNlcnM7CiAgICAgICAgbXkgJVJlcGx5VG9Vc2Vyc0hhc2g7CiAgICAgICAgbXkgJVJlcGx5VG9Vc2VySURzOwogICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CiAgICAgICAgICAgIG15IEBSZXBseVRvUGFydHMgPSAkRW1haWxQYXJzZXJPYmplY3QtPlNwbGl0QWRkcmVzc0xpbmUoCiAgICAgICAgICAgICAgICBMaW5lID0+ICRTZWxmLT57UmVwbHlUb0FydGljbGVDb250ZW50fS0+e1RvfSB8fCAnJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIFJFUExZVE9QQVJUOgogICAgICAgICAgICBmb3IgbXkgJFNpbmdsZVJlcGx5VG9QYXJ0IChAUmVwbHlUb1BhcnRzKSB7CiAgICAgICAgICAgICAgICBteSAkUmVwbHlUb0FkZHJlc3MgPSAkRW1haWxQYXJzZXJPYmplY3QtPkdldEVtYWlsQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICBFbWFpbCA9PiAkU2luZ2xlUmVwbHlUb1BhcnQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgUkVQTFlUT1BBUlQgaWYgISRSZXBseVRvQWRkcmVzczsKICAgICAgICAgICAgICAgIHB1c2ggQFJlcGx5VG9Vc2VycywgJFJlcGx5VG9BZGRyZXNzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUmVwbHlUb1VzZXJzSGFzaHskX30rKyBmb3IgQFJlcGx5VG9Vc2VyczsKCiAgICAgICAgICAgICMgZ2V0IHVzZXIgaWRzIG9mIGF2YWlsYWJsZSB1c2VycwogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJFVzZXJFbWFpbCA9ICRVc2VyRGF0YXtVc2VyRW1haWx9OwogICAgICAgICAgICAgICAgaWYgKCAkUmVwbHlUb1VzZXJzSGFzaHskVXNlckVtYWlsfSApIHsKICAgICAgICAgICAgICAgICAgICAkUmVwbHlUb1VzZXJJRHN7JFVzZXJJRH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBvcmlnaW5hbCBub3RlIHNlbmRlciB0byBsaXN0IG9mIHVzZXIgaWRzCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBAeyAkU2VsZi0+e1JlcGx5VG9TZW5kZXJVc2VySUR9IH0gKSB7CgogICAgICAgICAgICAgICAgIyBpZiBzZW5kZXIgcmVwbGllcyB0byBoaW1zZWxmLCBkbyBub3QgaW5jbHVkZSBzZW5kZXIgaW4gbGlzdAogICAgICAgICAgICAgICAgaWYgKCAkVXNlcklEIG5lICRTZWxmLT57VXNlcklEfSApIHsKICAgICAgICAgICAgICAgICAgICAkUmVwbHlUb1VzZXJJRHN7JFVzZXJJRH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHJlbW92ZSB1c2VyIGlkIG9mIGFjdGl2ZSB1c2VyCiAgICAgICAgICAgIGRlbGV0ZSAkUmVwbHlUb1VzZXJJRHN7ICRTZWxmLT57VXNlcklEfSB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkQ29uZmlnLT57SW5mb3JtQWdlbnR9IHx8ICRDb25maWctPntJbnZvbHZlZEFnZW50fSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvcm1BZGRpdGlvbmFsQWdlbnRzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAgICAgIyBnZXQgYWxsIGFnZW50cyBmb3IgImludm9sdmVkIGFnZW50cyIKICAgICAgICBpZiAoICRDb25maWctPntJbnZvbHZlZEFnZW50fSApIHsKCiAgICAgICAgICAgIG15IEBVc2VySURzID0gJFRpY2tldE9iamVjdC0+VGlja2V0SW52b2x2ZWRBZ2VudHNMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSBASW52b2x2ZWRBZ2VudHM7CiAgICAgICAgICAgIG15ICRDb3VudGVyID0gMTsKCiAgICAgICAgICAgICMgZ2V0IGludm9sdmVkIHVzZXIgbGlzdAogICAgICAgICAgICBteSBASW52b2x2ZWRVc2VySUQgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnSW52b2x2ZWRVc2VySUQnICk7CgogICAgICAgICAgICBVU0VSOgogICAgICAgICAgICBmb3IgbXkgJFVzZXIgKCByZXZlcnNlIEBVc2VySURzICkgewoKICAgICAgICAgICAgICAgIG15ICRWYWx1ZSA9ICIkQ291bnRlcjogJFVzZXItPntVc2VyRnVsbG5hbWV9IjsKICAgICAgICAgICAgICAgIGlmICggJFVzZXItPntPdXRPZk9mZmljZU1lc3NhZ2V9ICkgewogICAgICAgICAgICAgICAgICAgICRWYWx1ZSAuPSAiICRVc2VyLT57T3V0T2ZPZmZpY2VNZXNzYWdlfSI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcHVzaCBASW52b2x2ZWRBZ2VudHMsIHsKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkVXNlci0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICRDb3VudGVyKys7CgogICAgICAgICAgICAgICAgIyBhZGQgaW52b2x2ZWQgdXNlciBhcyBzZWxlY3RlZCBlbnRyaWVzLCBpZiBhdmFpbGFibGUgaW4gUmVwbHlUb0FkZHJlc3NlcyBsaXN0CiAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57UmVwbHlUb0FydGljbGV9ICYmICRSZXBseVRvVXNlcklEc3sgJFVzZXItPntVc2VySUR9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBASW52b2x2ZWRVc2VySUQsICRVc2VyLT57VXNlcklEfTsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJFJlcGx5VG9Vc2VySURzeyAkVXNlci0+e1VzZXJJRH0gfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJEludm9sdmVkQWdlbnRTaXplID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpJbnZvbHZlZEFnZW50TWF4U2l6ZScpIHx8IDM7CiAgICAgICAgICAgICRQYXJhbXtJbnZvbHZlZEFnZW50U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4gXEBJbnZvbHZlZEFnZW50cywKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gXEBJbnZvbHZlZFVzZXJJRCwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ0ludm9sdmVkVXNlcklEJywKICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgICAgICAgICBTaXplICAgICAgID0+ICRJbnZvbHZlZEFnZW50U2l6ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgYmxvY2sgaXMgY2FsbGVkIGJlbG93ICJpbmZvcm0gYWdlbnRzIgogICAgICAgIH0KCiAgICAgICAgIyBhZ2VudCBsaXN0CiAgICAgICAgaWYgKCAkQ29uZmlnLT57SW5mb3JtQWdlbnR9ICkgewoKICAgICAgICAgICAgIyBnZXQgaW5mb3JtIHVzZXIgbGlzdAogICAgICAgICAgICBteSBASW5mb3JtVXNlcklEID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ0luZm9ybVVzZXJJRCcgKTsKCiAgICAgICAgICAgIGlmICggJFNlbGYtPntSZXBseVRvQXJ0aWNsZX0gKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgZW1haWwgYWRkcmVzcyBvZiBhbGwgdXNlcnMgYW5kIGNvbXBhcmUgdG8gcmVwbHl0by1hZGRyZXNzZXMKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVTaG93blVzZXJzICkgewogICAgICAgICAgICAgICAgICAgIGlmICggJFJlcGx5VG9Vc2VySURzeyRVc2VySUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBJbmZvcm1Vc2VySUQsICRVc2VySUQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkUmVwbHlUb1VzZXJJRHN7JFVzZXJJRH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkSW5mb3JtQWdlbnRTaXplID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpJbmZvcm1BZ2VudE1heFNpemUnKQogICAgICAgICAgICAgICAgfHwgMzsKICAgICAgICAgICAgJFBhcmFte09wdGlvblN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU2hvd25Vc2VycywKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gXEBJbmZvcm1Vc2VySUQsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICdJbmZvcm1Vc2VySUQnLAogICAgICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICAgICAgICAgIFNpemUgICAgICAgPT4gJEluZm9ybUFnZW50U2l6ZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvcm1BZ2VudCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBpbnZvbHZlZAogICAgICAgIGlmICggJENvbmZpZy0+e0ludm9sdmVkQWdlbnR9ICkgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbnZvbHZlZEFnZW50JywKICAgICAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdyBsaXN0IG9mIGFnZW50cywgdGhhdCByZWNlaXZlIHRoaXMgbm90ZSAoUmVwbHlUb05vdGUpCiAgICAgICAgIyBhdCBsZWFzdCBzZW5kZXIgb2Ygb3JpZ2luYWwgbm90ZSBhbmQgYWxsIHJlY2VwaWVudHMgb2YgdGhlIG9yaWdpbmFsIG5vdGUKICAgICAgICAjIHRoYXQgY291bGRuJ3QgYmUgc2VsZWN0ZWQgd2l0aCBpbnZvbHZlZC9pbmZvcm0gYWdlbnRzCiAgICAgICAgaWYgKCAkU2VsZi0+e1JlcGx5VG9BcnRpY2xlfSApIHsKCiAgICAgICAgICAgIG15ICRVc2Vyc0hhc2hTaXplID0ga2V5cyAlUmVwbHlUb1VzZXJJRHM7CiAgICAgICAgICAgIG15ICRDb3VudGVyICAgICAgID0gMDsKICAgICAgICAgICAgJFBhcmFte1VzZXJMaXN0V2l0aG91dFNlbGVjdGlvbn0gPSBqb2luKCAnLCcsIGtleXMgJVJlcGx5VG9Vc2VySURzICk7CgogICAgICAgICAgICBpZiAoICRVc2Vyc0hhc2hTaXplID4gMCApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luZm9ybUFnZW50c1dpdGhvdXRTZWxlY3Rpb24nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJVJlcGx5VG9Vc2VySURzICkgewogICAgICAgICAgICAgICAgICAgICRDb3VudGVyKys7CgogICAgICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luZm9ybUFnZW50c1dpdGhvdXRTZWxlY3Rpb25TaW5nbGVVc2VyJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiBcJVVzZXJEYXRhLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgb3V0cHV0IGEgc2VwYXJhdG9yIChJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlclNlcGFyYXRvciksCiAgICAgICAgICAgICAgICAgICAgIyBpZiBub3QgbGFzdCBlbnRyeQogICAgICAgICAgICAgICAgICAgIGlmICggJENvdW50ZXIgPCAkVXNlcnNIYXNoU2l6ZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlclNlcGFyYXRvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlVXNlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGFkZCByaWNoIHRleHQgZWRpdG9yCiAgICAgICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSApIHsKCiAgICAgICAgICAgICMgdXNlIGhlaWdodC93aWR0aCBkZWZpbmVkIGZvciB0aGlzIHNjcmVlbgogICAgICAgICAgICAkUGFyYW17UmljaFRleHRIZWlnaHR9ID0gJENvbmZpZy0+e1JpY2hUZXh0SGVpZ2h0fSB8fCAwOwogICAgICAgICAgICAkUGFyYW17UmljaFRleHRXaWR0aH0gID0gJENvbmZpZy0+e1JpY2hUZXh0V2lkdGh9ICB8fCAwOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdSaWNoVGV4dCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRDb25maWctPntOb3RlTWFuZGF0b3J5fQogICAgICAgICAgICB8fCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJykKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdWJqZWN0TGFiZWxNYW5kYXRvcnknLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JpY2hUZXh0TGFiZWxNYW5kYXRvcnknLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdWJqZWN0TGFiZWwnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JpY2hUZXh0TGFiZWwnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzaG93IHNwZWxsIGNoZWNrCiAgICAgICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclNwZWxsQ2hlY2tlcn0gKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVGlja2V0T3B0aW9ucycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3BlbGxDaGVjaycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIHRleHQgdGVtcGxhdGUgc3RyaW5nCiAgICAgICAgbXkgJVN0YW5kYXJkVGVtcGxhdGVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YW5kYXJkVGVtcGxhdGUnKS0+U3RhbmRhcmRUZW1wbGF0ZUxpc3QoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIFR5cGUgID0+ICdOb3RlJywKICAgICAgICApOwoKICAgICAgICBteSAkUXVldWVTdGFuZGFyZFRlbXBsYXRlcyA9ICRTZWxmLT5fR2V0U3RhbmRhcmRUZW1wbGF0ZXMoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0gfHwgJycsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0hhc2hSZWZXaXRoRGF0YSgKICAgICAgICAgICAgICAgICRRdWV1ZVN0YW5kYXJkVGVtcGxhdGVzCiAgICAgICAgICAgICAgICAgICAgfHwgKCAkQ29uZmlnLT57UXVldWV9ICYmIElzSGFzaFJlZldpdGhEYXRhKCBcJVN0YW5kYXJkVGVtcGxhdGVzICkgKQogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtTdGFuZGFyZFRlbXBsYXRlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgIERhdGEgICAgICAgPT4gJFF1ZXVlU3RhbmRhcmRUZW1wbGF0ZXMgICAgfHwge30sCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICdTdGFuZGFyZFRlbXBsYXRlSUQnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17U3RhbmRhcmRUZW1wbGF0ZUlEfSB8fCAnJywKICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIFNvcnQgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICAgICAgICAgICAgICBNYXggICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N0YW5kYXJkVGVtcGxhdGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdyBhdHRhY2htZW50cwogICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgZm9yIG15ICRBdHRhY2htZW50ICggQHsgJFBhcmFte0F0dGFjaG1lbnRzfSB9ICkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkQXR0YWNobWVudC0+e0NvbnRlbnRJRH0KICAgICAgICAgICAgICAgICYmICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9CiAgICAgICAgICAgICAgICAmJiAoICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9ID1+IC9pbWFnZS9pICkKICAgICAgICAgICAgICAgICYmICggJEF0dGFjaG1lbnQtPntEaXNwb3NpdGlvbn0gZXEgJ2lubGluZScgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBdHRhY2htZW50JywKICAgICAgICAgICAgICAgIERhdGEgPT4gJEF0dGFjaG1lbnQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIEFydGljbGVUeXBlSUQgc3RyaW5nCiAgICAgICAgbXkgJUFydGljbGVUeXBlOwoKICAgICAgICAjIHNldCBhcnRpY2xlIHR5cGUgb2YgdGhpcyBub3RlIHRvIHRoZSBzYW1lIHR5cGUgYXMgdGhlIGFydGljbGUgZm9yIHdob20gdGhpcyBpcyB0aGUgcmVwbHkKICAgICAgICBpZiAoICRTZWxmLT57UmVwbHlUb0FydGljbGV9ICYmICEkUGFyYW17QXJ0aWNsZVR5cGVJRH0gKSB7CiAgICAgICAgICAgICRBcnRpY2xlVHlwZXtTZWxlY3RlZElEfSA9ICRTZWxmLT57UmVwbHlUb0FydGljbGVDb250ZW50fXtBcnRpY2xlVHlwZUlEfTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAhJFBhcmFte0FydGljbGVUeXBlSUR9ICkgewogICAgICAgICAgICAkQXJ0aWNsZVR5cGV7U2VsZWN0ZWRWYWx1ZX0gPSAkQ29uZmlnLT57QXJ0aWNsZVR5cGVEZWZhdWx0fTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRBcnRpY2xlVHlwZXtTZWxlY3RlZElEfSA9ICRQYXJhbXtBcnRpY2xlVHlwZUlEfTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHBvc3NpYmxlIG5vdGVzCiAgICAgICAgaWYgKCAkQ29uZmlnLT57QXJ0aWNsZVR5cGVzfSApIHsKICAgICAgICAgICAgbXkgJURlZmF1bHROb3RlVHlwZXMgPSAleyAkQ29uZmlnLT57QXJ0aWNsZVR5cGVzfSB9OwogICAgICAgICAgICBteSAlTm90ZVR5cGVzID0gJFRpY2tldE9iamVjdC0+QXJ0aWNsZVR5cGVMaXN0KCBSZXN1bHQgPT4gJ0hBU0gnICk7CiAgICAgICAgICAgIGZvciBteSAkS2V5Tm90ZVR5cGUgKCBzb3J0IGtleXMgJU5vdGVUeXBlcyApIHsKICAgICAgICAgICAgICAgIGlmICggISREZWZhdWx0Tm90ZVR5cGVzeyAkTm90ZVR5cGVzeyRLZXlOb3RlVHlwZX0gfSApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJE5vdGVUeXBlc3skS2V5Tm90ZVR5cGV9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17QXJ0aWNsZVR5cGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgRGF0YSAgPT4gXCVOb3RlVHlwZXMsCiAgICAgICAgICAgICAgICBOYW1lICA9PiAnQXJ0aWNsZVR5cGVJRCcsCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgICAgICVBcnRpY2xlVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBcnRpY2xlVHlwZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgdGltZSBhY2NvdW50aW5nIGJveAogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpBY2NvdW50VGltZScpICkgewogICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmVlZEFjY291bnRlZFRpbWUnKSApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1RpbWVVbml0c0xhYmVsTWFuZGF0b3J5JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVGltZVVuaXRzTGFiZWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdUaW1lVW5pdHMnLAogICAgICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIEVuZCBXaWRnZXQgQXJ0aWNsZQoKICAgICMgZ2V0IG91dHB1dCBiYWNrCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0KICAgICk7Cn0KCnN1YiBfR2V0TmV4dFN0YXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVOZXh0U3RhdGVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5UaWNrZXRTdGF0ZUxpc3QoCiAgICAgICAgVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0sCiAgICAgICAgQWN0aW9uICAgPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgIHJldHVybiBcJU5leHRTdGF0ZXM7Cn0KCnN1YiBfR2V0UmVzcG9uc2libGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15ICVTaG93blVzZXJzOwogICAgbXkgJUFsbEdyb3Vwc01lbWJlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CgogICAgIyBzaG93IGFsbCB1c2VycwogICAgaWYgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpY2tldDo6Q2hhbmdlT3duZXJUb0V2ZXJ5b25lJykgKSB7CiAgICAgICAgJVNob3duVXNlcnMgPSAlQWxsR3JvdXBzTWVtYmVyczsKICAgIH0KCiAgICAjIHNob3cgb25seSB1c2VycyB3aXRoIHJlc3BvbnNpYmxlIG9yIHJ3IHBlbWlzc2lvbnMgaW4gdGhlIHF1ZXVlCiAgICBlbHNpZiAoICRQYXJhbXtRdWV1ZUlEfSAmJiAhJFBhcmFte0FsbFVzZXJzfSApIHsKICAgICAgICBteSAkR0lEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyktPkdldFF1ZXVlR3JvdXBJRCgKICAgICAgICAgICAgUXVldWVJRCA9PiAkUGFyYW17TmV3UXVldWVJRH0gfHwgJFBhcmFte1F1ZXVlSUR9CiAgICAgICAgKTsKICAgICAgICBteSAlTWVtYmVyTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5QZXJtaXNzaW9uR3JvdXBHZXQoCiAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgVHlwZSAgICA9PiAncmVzcG9uc2libGUnLAogICAgICAgICk7CiAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgICRTaG93blVzZXJzeyRVc2VySUR9ID0gJEFsbEdyb3Vwc01lbWJlcnN7JFVzZXJJRH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyB3b3JrZmxvdwogICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICAlUGFyYW0sCiAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdSZXNwb25zaWJsZScsCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJVNob3duVXNlcnMsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiB7ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKSB9IGlmICRBQ0w7CgogICAgcmV0dXJuIFwlU2hvd25Vc2VyczsKfQoKc3ViIF9HZXRPd25lcnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15ICVTaG93blVzZXJzOwogICAgbXkgJUFsbEdyb3Vwc01lbWJlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CgogICAgIyBzaG93IGFsbCB1c2VycwogICAgaWYgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpY2tldDo6Q2hhbmdlT3duZXJUb0V2ZXJ5b25lJykgKSB7CiAgICAgICAgJVNob3duVXNlcnMgPSAlQWxsR3JvdXBzTWVtYmVyczsKICAgIH0KCiAgICAjIHNob3cgb25seSB1c2VycyB3aXRoIG93bmVyIG9yIHJ3IHBlbWlzc2lvbnMgaW4gdGhlIHF1ZXVlCiAgICBlbHNpZiAoICRQYXJhbXtRdWV1ZUlEfSAmJiAhJFBhcmFte0FsbFVzZXJzfSApIHsKICAgICAgICBteSAkR0lEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyktPkdldFF1ZXVlR3JvdXBJRCgKICAgICAgICAgICAgUXVldWVJRCA9PiAkUGFyYW17TmV3UXVldWVJRH0gfHwgJFBhcmFte1F1ZXVlSUR9CiAgICAgICAgKTsKICAgICAgICBteSAlTWVtYmVyTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5QZXJtaXNzaW9uR3JvdXBHZXQoCiAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgVHlwZSAgICA9PiAnb3duZXInLAogICAgICAgICk7CiAgICAgICAgZm9yIG15ICRVc2VySUQgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgICRTaG93blVzZXJzeyRVc2VySUR9ID0gJEFsbEdyb3Vwc01lbWJlcnN7JFVzZXJJRH07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyB3b3JrZmxvdwogICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICAlUGFyYW0sCiAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdOZXdPd25lcicsCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJVNob3duVXNlcnMsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiB7ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKSB9IGlmICRBQ0w7CgogICAgcmV0dXJuIFwlU2hvd25Vc2VyczsKfQoKc3ViIF9HZXRPbGRPd25lcnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgIG15IEBPbGRVc2VySW5mbyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldE93bmVyTGlzdCggVGlja2V0SUQgPT4gJFNlbGYtPntUaWNrZXRJRH0gKTsKICAgIG15ICVVc2VySGFzaDsKICAgIGlmIChAT2xkVXNlckluZm8pIHsKICAgICAgICBteSAkQ291bnRlciA9IDE7CiAgICAgICAgVVNFUjoKICAgICAgICBmb3IgbXkgJFVzZXIgKCByZXZlcnNlIEBPbGRVc2VySW5mbyApIHsKCiAgICAgICAgICAgIG5leHQgVVNFUiBpZiAkVXNlckhhc2h7ICRVc2VyLT57VXNlcklEfSB9OwoKICAgICAgICAgICAgJFVzZXJIYXNoeyAkVXNlci0+e1VzZXJJRH0gfSA9ICIkQ291bnRlcjogJFVzZXItPntVc2VyRnVsbG5hbWV9IjsKICAgICAgICAgICAgJENvdW50ZXIrKzsKICAgICAgICB9CiAgICB9CgogICAgIyB3b3JrZmxvdwogICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICAlUGFyYW0sCiAgICAgICAgUmV0dXJuVHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBSZXR1cm5TdWJUeXBlID0+ICdPbGRPd25lcicsCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJVVzZXJIYXNoLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4geyAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2xEYXRhKCkgfSBpZiAkQUNMOwoKICAgIHJldHVybiBcJVVzZXJIYXNoOwp9CgpzdWIgX0dldFNlcnZpY2VzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgc2VydmljZQogICAgbXkgJVNlcnZpY2U7CgogICAgIyBnZXQgb3B0aW9ucyBmb3IgZGVmYXVsdCBzZXJ2aWNlcyBmb3IgdW5rbm93biBjdXN0b21lcnMKICAgIG15ICREZWZhdWx0U2VydmljZVVua25vd25DdXN0b21lcgogICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdUaWNrZXQ6OlNlcnZpY2U6OkRlZmF1bHQ6OlVua25vd25DdXN0b21lcicpOwoKICAgICMgY2hlY2sgaWYgbm8gQ3VzdG9tZXJVc2VySUQgaXMgc2VsZWN0ZWQKICAgICMgaWYgJERlZmF1bHRTZXJ2aWNlVW5rbm93bkN1c3RvbWVyID0gMCBsZWF2ZSBDdXN0b21lclVzZXJJRCBlbXB0eSwgaXQgd2lsbCBub3QgZ2V0IGFueSBzZXJ2aWNlcwogICAgIyBpZiAkRGVmYXVsdFNlcnZpY2VVbmtub3duQ3VzdG9tZXIgPSAxIHNldCBDdXN0b21lclVzZXJJRCB0byBnZXQgZGVmYXVsdCBzZXJ2aWNlcwogICAgaWYgKCAhJFBhcmFte0N1c3RvbWVyVXNlcklEfSAmJiAkRGVmYXVsdFNlcnZpY2VVbmtub3duQ3VzdG9tZXIgKSB7CiAgICAgICAgJFBhcmFte0N1c3RvbWVyVXNlcklEfSA9ICc8REVGQVVMVD4nOwogICAgfQoKICAgICMgZ2V0IHNlcnZpY2UgbGlzdAogICAgaWYgKCAkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICVTZXJ2aWNlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5UaWNrZXRTZXJ2aWNlTGlzdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gXCVTZXJ2aWNlOwp9CgpzdWIgX0dldFNMQXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGlmIG5vbiBzZXQgY3VzdG9tZXJzIGNhbiBnZXQgZGVmYXVsdCBzZXJ2aWNlcyB0aGVuIHRoZXkgc2hvdWxkIGFsc28gYmUgYWJsZSB0byBnZXQgdGhlIFNMQXMKICAgICMgIGZvciB0aG9zZSBzZXJ2aWNlcyAodGhpcyB3b3JrcyBkdXJpbmcgdGlja2V0IGNyZWF0aW9uKS4KICAgICMgaWYgbm8gQ3VzdG9tZXJVc2VySUQgaXMgc2V0LCBUaWNrZXRTTEFMaXN0IHdpbGwgY29tcGxhaW4gZHVyaW5nIEFKQVggdXBkYXRlcyBhcyBVc2VySUQgaXMgbm90CiAgICAjICBwYXNzZWQuIFNlZSBidWcgMTExNDcuCgogICAgIyBnZXQgb3B0aW9ucyBmb3IgZGVmYXVsdCBzZXJ2aWNlcyBmb3IgdW5rbm93biBjdXN0b21lcnMKICAgIG15ICREZWZhdWx0U2VydmljZVVua25vd25DdXN0b21lcgogICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdUaWNrZXQ6OlNlcnZpY2U6OkRlZmF1bHQ6OlVua25vd25DdXN0b21lcicpOwoKICAgICMgY2hlY2sgaWYgbm8gQ3VzdG9tZXJVc2VySUQgaXMgc2VsZWN0ZWQKICAgICMgaWYgJERlZmF1bHRTZXJ2aWNlVW5rbm93bkN1c3RvbWVyID0gMCBsZWF2ZSBDdXN0b21lclVzZXJJRCBlbXB0eSwgaXQgd2lsbCBub3QgZ2V0IGFueSBzZXJ2aWNlcwogICAgIyBpZiAkRGVmYXVsdFNlcnZpY2VVbmtub3duQ3VzdG9tZXIgPSAxIHNldCBDdXN0b21lclVzZXJJRCB0byBnZXQgZGVmYXVsdCBzZXJ2aWNlcwogICAgaWYgKCAhJFBhcmFte0N1c3RvbWVyVXNlcklEfSAmJiAkRGVmYXVsdFNlcnZpY2VVbmtub3duQ3VzdG9tZXIgKSB7CiAgICAgICAgJFBhcmFte0N1c3RvbWVyVXNlcklEfSA9ICc8REVGQVVMVD4nOwogICAgfQoKICAgIG15ICVTTEE7CiAgICBpZiAoICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICVTTEEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldFNMQUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlU0xBOwp9CgpzdWIgX0dldFByaW9yaXRpZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlUHJpb3JpdGllcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0UHJpb3JpdHlMaXN0KAogICAgICAgICVQYXJhbSwKICAgICAgICBBY3Rpb24gICA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIFRpY2tldElEID0+ICRTZWxmLT57VGlja2V0SUR9LAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJUaWNrZXQ6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICBpZiAoICEkQ29uZmlnLT57UHJpb3JpdHlEZWZhdWx0fSApIHsKICAgICAgICAkUHJpb3JpdGllc3snJ30gPSAnLSc7CiAgICB9CiAgICByZXR1cm4gXCVQcmlvcml0aWVzOwp9CgpzdWIgX0dldEZpZWxkc1RvVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFVwZGF0YWJsZUZpZWxkczsKCiAgICAjIHNldCB0aGUgZmllbGRzIHRoYXQgY2FuIGJlIHVwZGF0ZWFibGUgdmlhIEFKQVhVcGRhdGUKICAgIGlmICggISRQYXJhbXtPbmx5RHluYW1pY0ZpZWxkc30gKSB7CiAgICAgICAgQFVwZGF0YWJsZUZpZWxkcyA9IHF3KAogICAgICAgICAgICBUeXBlSUQgU2VydmljZUlEIFNMQUlEIE5ld093bmVySUQgTmV3UmVzcG9uc2libGVJRCBOZXdTdGF0ZUlECiAgICAgICAgICAgIE5ld1ByaW9yaXR5SUQKICAgICAgICApOwogICAgfQoKICAgICMgZGVmaW5lIHRoZSBkeW5hbWljIGZpZWxkcyB0byBzaG93IGJhc2VkIG9uIHRoZSBvYmplY3QgdHlwZQogICAgbXkgJE9iamVjdFR5cGUgPSBbJ1RpY2tldCddOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpY2tldDo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgb25seSBzY3JlZW5zIHRoYXQgYWRkIG5vdGVzIGNhbiBtb2RpZnkgQXJ0aWNsZSBkeW5hbWljIGZpZWxkcwogICAgaWYgKCAkQ29uZmlnLT57Tm90ZX0gKSB7CiAgICAgICAgJE9iamVjdFR5cGUgPSBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXTsKICAgIH0KCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJE9iamVjdFR5cGUsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICMgY3ljbGUgdGhyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgbXkgJElzQUNMUmVkdWNpYmxlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpLT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNBQ0xSZWR1Y2libGUnLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0FDTFJlZHVjaWJsZTsKCiAgICAgICAgcHVzaCBAVXBkYXRhYmxlRmllbGRzLCAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CiAgICB9CgogICAgcmV0dXJuIFxAVXBkYXRhYmxlRmllbGRzOwp9CgpzdWIgX0dldFF1b3RlZFJlcGx5Qm9keSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSApIHsKCiAgICAgICAgIyByZXdyYXAgYm9keSBpZiBleGlzdHMKICAgICAgICBpZiAoICRQYXJhbXtCb2R5fSApIHsKICAgICAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvXHQvIC9nOwogICAgICAgICAgICBteSAkUXVvdGUgPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgVGV4dCA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OlF1b3RlJykgfHwgJycsCiAgICAgICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJFF1b3RlKSB7CgogICAgICAgICAgICAgICAgIyBxdW90ZSB0ZXh0CiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAiPGJsb2NrcXVvdGUgdHlwZT1cImNpdGVcIj4kUGFyYW17Qm9keX08L2Jsb2NrcXVvdGU+XG4iOwoKICAgICAgICAgICAgICAgICMgY2xlYW51cCBub3QgY29tcGF0LiB0YWdzCiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAkTGF5b3V0T2JqZWN0LT5SaWNoVGV4dERvY3VtZW50Q2xlYW51cCgKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte0JvZHl9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkUmVzcG9uc2VGb3JtYXQKICAgICAgICAgICAgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPkZvcm1hdFRpbWVTdHJpbmcoICRQYXJhbXtDcmVhdGVkfSwgJ0RhdGVGb3JtYXQnLCAnTm9TZWNvbmRzJyApOwogICAgICAgICAgICAgICAgJFJlc3BvbnNlRm9ybWF0IC49ICcgLSAnIC4gJFBhcmFte0Zyb219IC4gJyAnOwogICAgICAgICAgICAgICAgJFJlc3BvbnNlRm9ybWF0CiAgICAgICAgICAgICAgICAgICAgLj0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCd3cm90ZScpIC4gJzonOwoKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRSZXNwb25zZUZvcm1hdCAuICRQYXJhbXtCb2R5fTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAiPGJyLz4iIC4gJFBhcmFte0JvZHl9OwoKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0NyZWF0ZWR9ICkgewogICAgICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRGF0ZScpIC4KICAgICAgICAgICAgICAgICAgICAgICAgIjogJFBhcmFte0NyZWF0ZWR9PGJyLz4iIC4gJFBhcmFte0JvZHl9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGZvciAocXcoU3ViamVjdCBSZXBseVRvIFJlcGx5LVRvIENjIFRvIEZyb20pKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17JF99ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJF8pIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6ICRQYXJhbXskX308YnIvPiIgLiAkUGFyYW17Qm9keX07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRGcm9tID0gJExheW91dE9iamVjdC0+QXNjaWkyUmljaFRleHQoCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtGcm9tfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJE1lc3NhZ2VGcm9tID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdNZXNzYWdlIGZyb20nKTsKICAgICAgICAgICAgICAgIG15ICRFbmRNZXNzYWdlICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRW5kIG1lc3NhZ2UnKTsKCiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAiPGJyLz4tLS0tICRNZXNzYWdlRnJvbSAkRnJvbSAtLS08YnIvPjxici8+IiAuICRQYXJhbXtCb2R5fTsKICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSAuPSAiPGJyLz4tLS0tICRFbmRNZXNzYWdlIC0tLTxici8+IjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHByZXBhcmUgYm9keSwgc3ViamVjdCwgUmVwbHlUbyAuLi4KICAgICAgICAjIHJld3JhcCBib2R5IGlmIGV4aXN0cwogICAgICAgIGlmICggJFBhcmFte0JvZHl9ICkgewogICAgICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy9cdC8gL2c7CiAgICAgICAgICAgIG15ICRRdW90ZSA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UXVvdGUnKTsKICAgICAgICAgICAgaWYgKCRRdW90ZSkgewogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvXG4vXG4kUXVvdGUgL2c7CiAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAiXG4kUXVvdGUgIiAuICRQYXJhbXtCb2R5fTsKCiAgICAgICAgICAgICAgICBteSAkUmVzcG9uc2VGb3JtYXQKICAgICAgICAgICAgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPkZvcm1hdFRpbWVTdHJpbmcoICRQYXJhbXtDcmVhdGVkfSwgJ0RhdGVGb3JtYXQnLCAnTm9TZWNvbmRzJyApOwogICAgICAgICAgICAgICAgJFJlc3BvbnNlRm9ybWF0IC49ICcgLSAnIC4gJFBhcmFte0Zyb219IC4gJyAnOwogICAgICAgICAgICAgICAgJFJlc3BvbnNlRm9ybWF0CiAgICAgICAgICAgICAgICAgICAgLj0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCd3cm90ZScpIC4gIjpcbiI7CgogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9ID0gJFJlc3BvbnNlRm9ybWF0IC4gJFBhcmFte0JvZHl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9ID0gIlxuIiAuICRQYXJhbXtCb2R5fTsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0NyZWF0ZWR9ICkgewogICAgICAgICAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRGF0ZScpIC4KICAgICAgICAgICAgICAgICAgICAgICAgIjogJFBhcmFte0NyZWF0ZWR9XG4iIC4gJFBhcmFte0JvZHl9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGZvciAocXcoU3ViamVjdCBSZXBseVRvIFJlcGx5LVRvIENjIFRvIEZyb20pKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17JF99ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJF8pIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6ICRQYXJhbXskX31cbiIgLiAkUGFyYW17Qm9keX07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRNZXNzYWdlRnJvbSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTWVzc2FnZSBmcm9tJyk7CiAgICAgICAgICAgICAgICBteSAkRW5kTWVzc2FnZSAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0VuZCBtZXNzYWdlJyk7CgogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9ID0gIlxuLS0tLSAkTWVzc2FnZUZyb20gJFBhcmFte0Zyb219IC0tLVxuXG4iIC4gJFBhcmFte0JvZHl9OwogICAgICAgICAgICAgICAgJFBhcmFte0JvZHl9IC49ICJcbi0tLS0gJEVuZE1lc3NhZ2UgLS0tXG4iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkUGFyYW17Qm9keX07Cn0KCnN1YiBfR2V0U3RhbmRhcmRUZW1wbGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjcmVhdGUgdGVtcGxhdGVzCiAgICBteSAlVGVtcGxhdGVzOwoKICAgICMgY2hlY2sgbmVlZGVkCiAgICByZXR1cm4gXCVUZW1wbGF0ZXMgaWYgISRQYXJhbXtRdWV1ZUlEfSAmJiAhJFBhcmFte1RpY2tldElEfTsKCiAgICBteSAkUXVldWVJRCA9ICRQYXJhbXtRdWV1ZUlEfSB8fCAnJzsKICAgIGlmICggISRQYXJhbXtRdWV1ZUlEfSAmJiAkUGFyYW17VGlja2V0SUR9ICkgewoKICAgICAgICAjIGdldCBRdWV1ZUlEIGZyb20gdGhlIHRpY2tldAogICAgICAgIG15ICVUaWNrZXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBEeW5hbWljRmllbGRzID0+IDAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJFF1ZXVlSUQgPSAkVGlja2V0e1F1ZXVlSUR9IHx8ICcnOwogICAgfQoKICAgICMgZmV0Y2ggYWxsIHN0ZC4gdGVtcGxhdGVzCiAgICBteSAlU3RhbmRhcmRUZW1wbGF0ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKS0+UXVldWVTdGFuZGFyZFRlbXBsYXRlTWVtYmVyTGlzdCgKICAgICAgICBRdWV1ZUlEICAgICAgID0+ICRRdWV1ZUlELAogICAgICAgIFRlbXBsYXRlVHlwZXMgPT4gMSwKICAgICk7CgogICAgIyByZXR1cm4gZW1wdHkgaGFzaCBpZiB0aGVyZSBhcmUgbm8gdGVtcGxhdGVzIGZvciB0aGlzIHNjcmVlbgogICAgcmV0dXJuIFwlVGVtcGxhdGVzIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJFN0YW5kYXJkVGVtcGxhdGVze05vdGV9ICk7CgogICAgIyByZXR1cm4ganVzdCB0aGUgdGVtcGxhdGVzIGZvciB0aGlzIHNjcmVlbgogICAgcmV0dXJuICRTdGFuZGFyZFRlbXBsYXRlc3tOb3RlfTsKfQoKc3ViIF9HZXRUeXBlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHR5cGUKICAgIG15ICVUeXBlOwogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gfHwgJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAlVHlwZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0VHlwZUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlVHlwZTsKfQojIC0tLQojIE1hc3RlclNsYXZlCiMgLS0tCnN1YiBfR2V0TWFzdGVyU2xhdmVEYXRhIHsKICAgIG15ICgkU2VsZiwgJVBhcmFtKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRVbnNldE1hc3RlclNsYXZlICA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OlVuc2V0TWFzdGVyU2xhdmUnKSB8fCAwOwogICAgbXkgJFVwZGF0ZU1hc3RlclNsYXZlID0gJENvbmZpZ09iamVjdC0+R2V0KCdNYXN0ZXJTbGF2ZTo6VXBkYXRlTWFzdGVyU2xhdmUnKSB8fCAwOwoKICAgIG15ICVUaWNrZXQgPSAleyAkUGFyYW17VGlja2V0fSB9OwogICAgbXkgJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkID0gJFBhcmFte01hc3RlclNsYXZlRHluYW1pY0ZpZWxkfTsKCiAgICBteSAkRmllbGRWYWx1ZSA9ICRUaWNrZXR7ICdEeW5hbWljRmllbGRfJyAuICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCB9IHx8ICcnOwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJURhdGEgPSAoCiAgICAgICAgJycgPT4gJy0nLAogICAgKTsKCiAgICBpZiAoICRGaWVsZFZhbHVlIG5lICdNYXN0ZXInICkgewogICAgICAgICREYXRhe01hc3Rlcn0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ05ldyBNYXN0ZXIgVGlja2V0Jyk7CiAgICB9CiAgICBpZiAoICRVbnNldE1hc3RlclNsYXZlICYmICRGaWVsZFZhbHVlIGVxICdNYXN0ZXInICkgewogICAgICAgICREYXRhe1Vuc2V0TWFzdGVyfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnVW5zZXQgTWFzdGVyIFRpY2tldCcpOwogICAgfQogICAgaWYgKCAkVW5zZXRNYXN0ZXJTbGF2ZSAmJiAkRmllbGRWYWx1ZSA9fiBte15TbGF2ZU9mOiguKj8pJH14bXMgKSB7CiAgICAgICAgJERhdGF7VW5zZXRTbGF2ZX0gID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdVbnNldCBTbGF2ZSBUaWNrZXQnKTsKICAgIH0KCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgIGlmICggJFVwZGF0ZU1hc3RlclNsYXZlICkgewogICAgICAgIG15IEBUaWNrZXRJRHMgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAoKICAgICAgICAgICAgIyBtYXN0ZXIgc2xhdmUgZHluYW1pYyBmaWVsZAogICAgICAgICAgICAnRHluYW1pY0ZpZWxkXycgLiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+ICdNYXN0ZXInLAogICAgICAgICAgICB9LAoKICAgICAgICAgICAgU3RhdGVUeXBlICA9PiAnT3BlbicsCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gNjAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgKTsKCiAgICAgICAgVElDS0VUSUQ6CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAlQ3VycmVudFRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISVDdXJyZW50VGlja2V0OwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICRGaWVsZFZhbHVlIGVxICJTbGF2ZU9mOiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0iOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICRGaWVsZFZhbHVlICYmICRUaWNrZXR7VGlja2V0SUR9IGVxICRDdXJyZW50VGlja2V0e1RpY2tldElEfTsKCiAgICAgICAgICAgICREYXRheyJTbGF2ZU9mOiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0ifQogICAgICAgICAgICAgICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1NsYXZlIG9mIFRpY2tldCMnKQogICAgICAgICAgICAgICAgLiIkQ3VycmVudFRpY2tldHtUaWNrZXROdW1iZXJ9OiAkQ3VycmVudFRpY2tldHtUaXRsZX0iOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVEYXRhOwp9CiMgLS0tCgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRpY2tldEJ1bGs6Ok1hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBtYXN0ZXIvc2xhdmUgZHluYW1pYyBmaWVsZAogICAgJFNlbGYtPntNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZH0gICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ01hc3RlclNsYXZlOjpEeW5hbWljRmllbGQnKSAgICB8fCAnJzsKICAgICRTZWxmLT57TWFzdGVyU2xhdmVBZHZhbmNlZEVuYWJsZWR9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdNYXN0ZXJTbGF2ZTo6QWR2YW5jZWRFbmFibGVkJykgfHwgMDsKCiAgICBpZiAoICRTZWxmLT57TWFzdGVyU2xhdmVEeW5hbWljRmllbGR9ICkgewogICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkR2V0KAogICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57TWFzdGVyU2xhdmVEeW5hbWljRmllbGR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgRGlzcGxheSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaWYgdGhlcmUgaXMgbm8gY29uZmlndXJlZCBkeW5hbWljIGZpZWxkIG9yIGlmIGFkdmFuY2VkIG1vZGUgaXMgbm90IGVuYWJsZSwgdGhlcmUgaXMgbm90aGluZyB0byBkbwogICAgcmV0dXJuIGlmICEkU2VsZi0+e01hc3RlclNsYXZlRHluYW1pY0ZpZWxkfTsKICAgIHJldHVybiBpZiAhJFNlbGYtPntNYXN0ZXJTbGF2ZUFkdmFuY2VkRW5hYmxlZH07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKICAgIGlmICggZXhpc3RzICRQYXJhbXtFcnJvcnN9LT57ICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9IH0gKSB7CiAgICAgICAgJFNlcnZlckVycm9yICA9IDE7CiAgICAgICAgJEVycm9yTWVzc2FnZSA9ICRQYXJhbXtFcnJvcnN9LT57ICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9IH07CiAgICB9CgogICAgbXkgJFBvc3NpYmxlVmFsdWVzRmlsdGVyID0gJFNlbGYtPl9HZXRNYXN0ZXJTbGF2ZURhdGEoCiAgICAgICAgJVBhcmFtLAogICAgICAgIE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkID0+ICRTZWxmLT57TWFzdGVyU2xhdmVEeW5hbWljRmllbGR9LAogICAgKTsKCiAgICAjIGdldCBmaWVsZCBIVE1MCiAgICBteSAkRHluYW1pY0ZpZWxkSFRNTCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfSwKICAgICAgICBQb3NzaWJsZVZhbHVlc0ZpbHRlciA9PiAkUG9zc2libGVWYWx1ZXNGaWx0ZXIsCiAgICAgICAgU2VydmVyRXJyb3IgICAgICAgICAgPT4gJFNlcnZlckVycm9yIHx8ICcnLAogICAgICAgIEVycm9yTWVzc2FnZSAgICAgICAgID0+ICRFcnJvck1lc3NhZ2UgfHwgJycsCiAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLAogICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICAgID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKSwKICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAwLAogICAgKTsKCiAgICAjIGluZGVudGF0aW9uIGhlcmUgaXMgb24gcHVycG9zZSBzbyB0aGUgSFRNTCB3aWxsIGxvb2sgYWNjb3JkaW5nIHRvIHRoZSBmcmFtZXdvcmsKICAgIG15ICRIVE1MU3RyaW5nID0gPDwiRU9GIjsKICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTC0+e0xhYmVsfQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEhUTUwtPntGaWVsZH0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CkVPRgoKICAgIHJldHVybiAkSFRNTFN0cmluZzsKfQoKc3ViIFZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBpZiB0aGVyZSBpcyBubyBjb25maWd1cmVkIGR5bmFtaWMgZmllbGQgb3IgaWYgYWR2YW5jZWQgbW9kZSBpcyBub3QgZW5hYmxlLCB0aGVyZSBpcyBub3RoaW5nIHRvIGRvCiAgICByZXR1cm4gaWYgISRTZWxmLT57TWFzdGVyU2xhdmVEeW5hbWljRmllbGR9OwogICAgcmV0dXJuIGlmICEkU2VsZi0+e01hc3RlclNsYXZlQWR2YW5jZWRFbmFibGVkfTsKCiAgICBteSAkUG9zc2libGVWYWx1ZXNGaWx0ZXIgPSAkU2VsZi0+X0dldE1hc3RlclNsYXZlRGF0YSgKICAgICAgICAlUGFyYW0sCiAgICAgICAgTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgPT4gJFNlbGYtPntNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZH0sCiAgICApOwoKICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpLT5FZGl0RmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkQ29uZmlnfSwKICAgICAgICBQb3NzaWJsZVZhbHVlc0ZpbHRlciA9PiAkUG9zc2libGVWYWx1ZXNGaWx0ZXIsCiAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLAogICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDAsCiAgICApOwoKICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRXJyb3JLZXkgICA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfSwKICAgICAgICAgICAgICAgIEVycm9yVmFsdWUgPT4gJFZhbGlkYXRpb25SZXN1bHQtPntFcnJvck1lc3NhZ2V9LAogICAgICAgICAgICB9CiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBTdG9yZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaWYgdGhlcmUgaXMgbm8gY29uZmlndXJlZCBkeW5hbWljIGZpZWxkIG9yIGlmIGFkdmFuY2VkIG1vZGUgaXMgbm90IGVuYWJsZSwgdGhlcmUgaXMgbm90aGluZyB0byBkbwogICAgcmV0dXJuIDEgaWYgISRTZWxmLT57TWFzdGVyU2xhdmVEeW5hbWljRmllbGR9OwogICAgcmV0dXJuIDEgaWYgISRTZWxmLT57TWFzdGVyU2xhdmVBZHZhbmNlZEVuYWJsZWR9OwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSB0aGUgd2ViIHJlcXVlc3QKICAgIG15ICREeW5hbWljRmllbGRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFNlbGYtPntEeW5hbWljRmllbGRDb25maWd9LAogICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyksCiAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKSwKICAgICk7CgogICAgIyBzZXQgdGhlIHZhbHVlCiAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFNlbGYtPntEeW5hbWljRmllbGRDb25maWd9LAogICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWUsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9HZXRNYXN0ZXJTbGF2ZURhdGEgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBtYXN0ZXIgc2xhdmUgY29uZmlnCiAgICBteSAkVW5zZXRNYXN0ZXJTbGF2ZSAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ01hc3RlclNsYXZlOjpVbnNldE1hc3RlclNsYXZlJykgIHx8IDA7CiAgICBteSAkVXBkYXRlTWFzdGVyU2xhdmUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ01hc3RlclNsYXZlOjpVcGRhdGVNYXN0ZXJTbGF2ZScpIHx8IDA7CgogICAgbXkgJURhdGEgPSAoCiAgICAgICAgJycgICAgID0+ICctJywKICAgICAgICBNYXN0ZXIgPT4gJ05ldyBNYXN0ZXIgVGlja2V0JywKICAgICk7CgogICAgaWYgKCRVbnNldE1hc3RlclNsYXZlKSB7CiAgICAgICAgJERhdGF7VW5zZXRNYXN0ZXJ9ID0gJ1Vuc2V0IE1hc3RlciBUaWNrZXRzJzsKICAgICAgICAkRGF0YXtVbnNldFNsYXZlfSAgPSAnVW5zZXQgU2xhdmUgVGlja2V0cyc7CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIGlmICgkVXBkYXRlTWFzdGVyU2xhdmUpIHsKCiAgICAgICAgbXkgQFRpY2tldElEcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCgogICAgICAgICAgICAjIG1hc3RlciBzbGF2ZSBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZH0gPT4gewogICAgICAgICAgICAgICAgRXF1YWxzID0+ICdNYXN0ZXInLAogICAgICAgICAgICB9LAoKICAgICAgICAgICAgU3RhdGVUeXBlICA9PiAnT3BlbicsCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gNjAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICApOwoKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVGlja2V0SURzKSB7CgogICAgICAgICAgICAjIGdldCBlYWNoIHRpY2tldCBmcm9tIHRoZSBzZWFyY2ggcmVzdWx0cwogICAgICAgICAgICBteSAlQ3VycmVudFRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICElQ3VycmVudFRpY2tldDsKCiAgICAgICAgICAgICREYXRheyJTbGF2ZU9mOiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0ifQogICAgICAgICAgICAgICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1NsYXZlIG9mIFRpY2tldCMnKQogICAgICAgICAgICAgICAgLiAiJEN1cnJlbnRUaWNrZXR7VGlja2V0TnVtYmVyfTogJEN1cnJlbnRUaWNrZXR7VGl0bGV9IjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gXCVEYXRhOwoKfQoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxPlslIFRyYW5zbGF0ZSgiRHluYW1pYyBGaWVsZHMiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5Nb2RlKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKERhdGEuRmllbGRUeXBlTmFtZSkgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiRmllbGQiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5EeW5hbWljRmllbGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIGJhY2sgdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IkFkbWluRHluYW1pY0ZpZWxkTWFzdGVyU2xhdmUiIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuTW9kZSB8IGh0bWwgJV1BY3Rpb24iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9iamVjdFR5cGUiIHZhbHVlPSJbJSBEYXRhLk9iamVjdFR5cGUgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJGaWVsZFR5cGUiIHZhbHVlPSJbJSBEYXRhLkZpZWxkVHlwZSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IklEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iIC8+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJHZW5lcmFsIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTaXplMW9mMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iTmFtZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik5hbWUiIGNsYXNzPSJXNTBwYyBbJSBEYXRhLk5hbWVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0gWyUgRGF0YS5TaG93V2FybmluZyB8IGh0bWwgJV0gIFZhbGlkYXRlX0FscGhhbnVtZXJpYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBuYW1lPSJOYW1lIiBbJSBEYXRhLlJlYWRvbmx5SW50ZXJuYWxGaWVsZCB8IGh0bWwgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLCBhbmQgdGhlIHZhbHVlIHNob3VsZCBiZSBhbHBoYWJldGljIGFuZCBudW1lcmljIGNoYXJhY3RlcnMgb25seS4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZShEYXRhLk5hbWVTZXJ2ZXJFcnJvck1lc3NhZ2UpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiTXVzdCBiZSB1bmlxdWUgYW5kIG9ubHkgYWNjZXB0IGFscGhhYmV0aWMgYW5kIG51bWVyaWMgY2hhcmFjdGVycy4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJXYXJuaW5nIEhpZGRlbiI+WyUgVHJhbnNsYXRlKCJDaGFuZ2luZyB0aGlzIHZhbHVlIHdpbGwgcmVxdWlyZSBtYW51YWwgY2hhbmdlcyBpbiB0aGUgc3lzdGVtLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkxhYmVsIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkxhYmVsIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkxhYmVsIiBjbGFzcz0iVzUwcGMgWyUgRGF0YS5MYWJlbFNlcnZlckVycm9yIHwgaHRtbCAlXSBWYWxpZGF0ZV9SZXF1aXJlZCIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBEYXRhLkxhYmVsIHwgaHRtbCAlXSIgbmFtZT0iTGFiZWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGFiZWxFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxhYmVsU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbFNlcnZlckVycm9yTWVzc2FnZSkgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGlzIGlzIHRoZSBuYW1lIHRvIGJlIHNob3duIG9uIHRoZSBzY3JlZW5zIHdoZXJlIHRoZSBmaWVsZCBpcyBhY3RpdmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iRmllbGRPcmRlciI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJGaWVsZCBvcmRlciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EeW5hbWljRmllbGRPcmRlclN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRmllbGRPcmRlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIG51bWVyaWMuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJGaWVsZE9yZGVyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoRGF0YS5GaWVsZE9yZGVyU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIlRoaXMgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHRoaXMgZmllbGQgd2lsbCBiZSBzaG93biBvbiB0aGUgc2NyZWVucyB3aGVyZSBpcyBhY3RpdmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTaXplMW9mMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWRJRCI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZGl0eVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkZpZWxkVHlwZU5hbWUiPlslIFRyYW5zbGF0ZSgiRmllbGQgdHlwZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJGaWVsZFR5cGVOYW1lIiByZWFkb25seSBjbGFzcz0iVzUwcGMiIHR5cGU9InRleHQiIG1heGxlbmd0aD0iMjAwIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKERhdGEuRmllbGRUeXBlTmFtZSkgfCBodG1sICVdIiBuYW1lPSJGaWVsZFR5cGVOYW1lIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT2JqZWN0VHlwZU5hbWUiPlslIFRyYW5zbGF0ZSgiT2JqZWN0IHR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iT2JqZWN0VHlwZU5hbWUiIHJlYWRvbmx5IGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIyMDAiIHZhbHVlPSJbJSBUcmFuc2xhdGUoRGF0YS5PYmplY3RUeXBlTmFtZSkgfCBodG1sICVdIiBuYW1lPSJPYmplY3RUeXBlTmFtZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbnRlcm5hbEZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJJbnRlcm5hbEZpZWxkIj5bJSBUcmFuc2xhdGUoIkludGVybmFsIGZpZWxkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9IkludGVybmFsRmllbGQiIHJlYWRvbmx5IGNsYXNzPSJXNTBwYyIgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIxIiB2YWx1ZT0iWyUgRGF0YS5JbnRlcm5hbEZpZWxkIHwgaHRtbCAlXSIgbmFtZT0iSW50ZXJuYWxGaWVsZCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcHJvdGVjdGVkIGFuZCBjYW4ndCBiZSBkZWxldGVkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkludGVybmFsRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5EeW5hbWljRmllbGQiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcuU2hvd1dhcm5pbmcnKS5iaW5kKCdjaGFuZ2Uga2V5dXAnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICQoJ3AuV2FybmluZycpLnJlbW92ZUNsYXNzKCdIaWRkZW4nKTsKfSk7CgpDb3JlLkFnZW50LkFkbWluLkR5bmFtaWNGaWVsZC5WYWxpZGF0aW9uSW5pdCgpOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojICRvcmlnaW46IGh0dHBzOi8vZ2l0aHViLmNvbS9PVFJTL290cnMvYmxvYi8xMjEyYTJlMGM2ZTIyYzc2OWVmYmY0ZGJhZGYzYmNmNDRiNjFiODY4L0tlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvQWdlbnRUaWNrZXRBY3Rpb25Db21tb24udHQKIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMgLS0tCiMgTWFzdGVyU2xhdmUKIyAtLS0KIyBUaGlzIG1vZHVsZSB1c2VzIEFnZW50VGlja2V0QWN0aW9uQ29tbW9uIGFzIGEgYmFzZSwgZm9yIGVhc3kgdXBkYXRlIGFuZCBmcmFtZXdvcmsgY29tcGF0aWJpbGl0eQojIHNwZWNpYWwgbWFya2VycyBoYXMgYmVlbiBzZXQgYWxvbmcgdGhlIGZpbGUgdG8gZWFzeSBzcG90IHRoZSBkaWZmZXJlbmNlcyBpbnRyb2R1Y2VkIGJ5CiMgT1RSU01hc3RlclNsYXZlIHBhY2thZ2UKIyAtLS0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvcGVydGllcyIpICVdCgo8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iY29tcG9zZSIgaWQ9IkNvbXBvc2UiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlN0b3JlIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUaWNrZXRJRCIgdmFsdWU9IlslIERhdGEuVGlja2V0SUQgfCBodG1sICVdIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJSZXBseVRvQXJ0aWNsZSIgdmFsdWU9IlslIERhdGEuUmVwbHlUb0FydGljbGUgfCBodG1sICVdIi8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJFeHBhbmQiIGlkPSJFeHBhbmQiIHZhbHVlPSIiLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkZvcm1JRCIgdmFsdWU9IlslIERhdGEuRm9ybUlEIHwgaHRtbCAlXSIvPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZ2VudFRpY2tldEZyZWVUZXh0IikgJV0KWyUgVHJhbnNsYXRlKCJDaGFuZ2UgRnJlZSBUZXh0IG9mIFRpY2tldCIpIHwgaHRtbCAlXToKWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFnZW50VGlja2V0RnJlZVRleHQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZ2VudFRpY2tldE93bmVyIikgJV0KWyUgVHJhbnNsYXRlKCJDaGFuZ2UgT3duZXIgb2YgVGlja2V0IikgfCBodG1sICVdOgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyQWdlbnRUaWNrZXRPd25lciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFnZW50VGlja2V0Q2xvc2UiKSAlXQpbJSBUcmFuc2xhdGUoIkNsb3NlIFRpY2tldCIpIHwgaHRtbCAlXToKWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFnZW50VGlja2V0Q2xvc2UiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZ2VudFRpY2tldE5vdGUiKSAlXQpbJSBUcmFuc2xhdGUoIkFkZCBOb3RlIHRvIFRpY2tldCIpIHwgaHRtbCAlXToKWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFnZW50VGlja2V0Tm90ZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFnZW50VGlja2V0UGVuZGluZyIpICVdClslIFRyYW5zbGF0ZSgiU2V0IFBlbmRpbmciKSB8IGh0bWwgJV06ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZ2VudFRpY2tldFBlbmRpbmciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZ2VudFRpY2tldFByaW9yaXR5IikgJV0KWyUgVHJhbnNsYXRlKCJDaGFuZ2UgUHJpb3JpdHkgb2YgVGlja2V0IikgfCBodG1sICVdOgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyQWdlbnRUaWNrZXRQcmlvcml0eSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFnZW50VGlja2V0UmVzcG9uc2libGUiKSAlXQpbJSBUcmFuc2xhdGUoIkNoYW5nZSBSZXNwb25zaWJsZSBvZiBUaWNrZXQiKSB8IGh0bWwgJV06ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZ2VudFRpY2tldFJlc3BvbnNpYmxlIikgJV0KIyAtLS0KIyBNYXN0ZXJTbGF2ZQojIC0tLQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZ2VudFRpY2tldE1hc3RlclNsYXZlIikgJV0KWyUgVHJhbnNsYXRlKCJNYW5hZ2UgTWFzdGVyL1NsYXZlIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZ2VudFRpY2tldE1hc3RlclNsYXZlIikgJV0KIyAtLS0KWyUgRGF0YS5UaWNrZXROdW1iZXIgJV0gLSBbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXQogICAgICAgICAgICA8L2gxPgogICAgICAgICAgICA8cCBjbGFzcz0iQXN0ZXJpc2tFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJBbGwgZmllbGRzIG1hcmtlZCB3aXRoIGFuIGFzdGVyaXNrICgqKSBhcmUgbWFuZGF0b3J5LiIpIHwgaHRtbCAlXTwvcD4KClslIFJlbmRlckJsb2NrU3RhcnQoIlRpY2tldEJhY2siKSAlXQogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIiBocmVmPSIjIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICA8L3A+ClslIFJlbmRlckJsb2NrRW5kKCJUaWNrZXRCYWNrIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvcGVydGllc0xvY2siKSAlXQogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhlIHRpY2tldCBoYXMgYmVlbiBsb2NrZWQiKSB8IGh0bWwgJV0uCiAgICAgICAgICAgICAgICA8YSBjbGFzcz0iVW5kb0Nsb3NlUG9wdXAiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpY2tldExvY2s7U3ViYWN0aW9uPVVubG9jaztUaWNrZXRJRD1bJSBEYXRhLlRpY2tldElEICVdO1slIEVudigiQ2hhbGxlbmdlVG9rZW5QYXJhbSIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJVbmRvICYgY2xvc2UiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvcGVydGllc0xvY2siKSAlXQoKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIldpZGdldFRpY2tldEFjdGlvbnMiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgRXhwYW5kZWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiVG9nZ2xlIHRoaXMgd2lkZ2V0IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJUaWNrZXQgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVGl0bGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUaXRsZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iVGl0bGUiIG5hbWU9IlRpdGxlIiB2YWx1ZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLlRpdGxlSW52YWxpZCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaXRsZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSIgPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaXRsZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRpdGxlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlR5cGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUeXBlSUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJUeXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5UeXBlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVHlwZUlERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVHlwZUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwokKCcjVHlwZUlEJykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ29tcG9zZScpLCAnQUpBWFVwZGF0ZScsICdUeXBlSUQnLCBbICdTZXJ2aWNlSUQnLCAnU0xBSUQnLCAnTmV3T3duZXJJRCcsICdOZXdSZXNwb25zaWJsZUlEJywgJ05ld1N0YXRlSUQnLCAnTmV3UHJpb3JpdHlJRCcgWyUgRGF0YS5EeW5hbWljRmllbGROYW1lc1N0cmcgJV0gXSk7Cn0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlR5cGUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUXVldWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdRdWV1ZUlEIj5bJSBUcmFuc2xhdGUoIlF1ZXVlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUXVldWVzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3UXVldWVJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSIgPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXdRdWV1ZUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI05ld1F1ZXVlSUQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ29tcG9zZScpLCAnQUpBWFVwZGF0ZScsICdOZXdRdWV1ZUlEJywgWyAnVHlwZUlEJywgJ1NlcnZpY2VJRCcsICdOZXdPd25lcklEJywgJ05ld1Jlc3BvbnNpYmxlSUQnLCAnTmV3U3RhdGVJRCcsICdOZXdQcmlvcml0eUlEJywgJ1N0YW5kYXJkVGVtcGxhdGVJRCcgWyUgRGF0YS5EeW5hbWljRmllbGROYW1lc1N0cmcgJV0gXSk7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJRdWV1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXJ2aWNlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2VydmljZUlEIj5bJSBUcmFuc2xhdGUoIlNlcnZpY2UiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TZXJ2aWNlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU2VydmljZUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlNlcnZpY2UgaW52YWxpZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAkKCcjU2VydmljZUlEJykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgQ29yZS5BSkFYLkZvcm1VcGRhdGUoJCgnI0NvbXBvc2UnKSwgJ0FKQVhVcGRhdGUnLCAnU2VydmljZUlEJywgWyAnVHlwZUlEJywgJ1NMQUlEJywgJ05ld093bmVySUQnLCAnTmV3UmVzcG9uc2libGVJRCcsICdOZXdTdGF0ZUlEJywgJ05ld1ByaW9yaXR5SUQnIFslIERhdGEuRHluYW1pY0ZpZWxkTmFtZXNTdHJnICVdIF0pOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiU2VydmljZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXJ2aWNlTWFuZGF0b3J5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU2VydmljZUlEIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiU2VydmljZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNlcnZpY2VTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTZXJ2aWNlSURFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTZXJ2aWNlSURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiU2VydmljZSBpbnZhbGlkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICQoJyNTZXJ2aWNlSUQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ29tcG9zZScpLCAnQUpBWFVwZGF0ZScsICdTZXJ2aWNlSUQnLCBbICdUeXBlSUQnLCAnU0xBSUQnLCAnTmV3T3duZXJJRCcsICdOZXdSZXNwb25zaWJsZUlEJywgJ05ld1N0YXRlSUQnLCAnTmV3UHJpb3JpdHlJRCcgWyUgRGF0YS5EeW5hbWljRmllbGROYW1lc1N0cmcgJV0gXSk7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJTZXJ2aWNlTWFuZGF0b3J5IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlNMQSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNMQUlEIj5bJSBUcmFuc2xhdGUoIlNlcnZpY2UgTGV2ZWwgQWdyZWVtZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU0xBU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI1NMQUlEJykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgQ29yZS5BSkFYLkZvcm1VcGRhdGUoJCgnI0NvbXBvc2UnKSwgJ0FKQVhVcGRhdGUnLCAnU0xBSUQnLCBbICdUeXBlSUQnLCAnU2VydmljZUlEJywgJ05ld093bmVySUQnLCAnTmV3UmVzcG9uc2libGVJRCcsICdOZXdTdGF0ZUlEJywgJ05ld1ByaW9yaXR5SUQnIFslIERhdGEuRHluYW1pY0ZpZWxkTmFtZXNTdHJnICVdIF0pOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiU0xBIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlNMQU1hbmRhdG9yeSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlNMQUlEIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPlslIFRyYW5zbGF0ZSgiU2VydmljZSBMZXZlbCBBZ3JlZW1lbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TTEFTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTTEFJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNMQUlEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI1NMQUlEJykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgQ29yZS5BSkFYLkZvcm1VcGRhdGUoJCgnI0NvbXBvc2UnKSwgJ0FKQVhVcGRhdGUnLCAnU0xBSUQnLCBbICdUeXBlSUQnLCAnU2VydmljZUlEJywgJ05ld093bmVySUQnLCAnTmV3UmVzcG9uc2libGVJRCcsICdOZXdTdGF0ZUlEJywgJ05ld1ByaW9yaXR5SUQnIFslIERhdGEuRHluYW1pY0ZpZWxkTmFtZXNTdHJnICVdIF0pOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiU0xBTWFuZGF0b3J5IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk93bmVyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3T3duZXJJRCI+WyUgVHJhbnNsYXRlKCJOZXcgT3duZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Pd25lclN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5ld093bmVySURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGxlYXNlIHNldCBhIG5ldyBvd25lciEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI05ld093bmVySUQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ29tcG9zZScpLCAnQUpBWFVwZGF0ZScsICdOZXdPd25lcklEJywgWyAnVHlwZUlEJywgJ1NlcnZpY2VJRCcsICdTTEFJRCcsICdOZXdSZXNwb25zaWJsZUlEJywgJ05ld1N0YXRlSUQnLCAnTmV3UHJpb3JpdHlJRCcgWyUgRGF0YS5EeW5hbWljRmllbGROYW1lc1N0cmcgJV0gXSk7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJPd25lciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPd25lck1hbmRhdG9yeSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5ld093bmVySUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJOZXcgT3duZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Pd25lclN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5ld093bmVySURFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGxlYXNlIHNldCBhIG5ldyBvd25lciEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXdPd25lcklEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBzZXQgYSBuZXcgb3duZXIhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICQoJyNOZXdPd25lcklEJykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgQ29yZS5BSkFYLkZvcm1VcGRhdGUoJCgnI0NvbXBvc2UnKSwgJ0FKQVhVcGRhdGUnLCAnTmV3T3duZXJJRCcsIFsgJ1R5cGVJRCcsICdTZXJ2aWNlSUQnLCAnU0xBSUQnLCAnTmV3UmVzcG9uc2libGVJRCcsICdOZXdTdGF0ZUlEJywgJ05ld1ByaW9yaXR5SUQnIFslIERhdGEuRHluYW1pY0ZpZWxkTmFtZXNTdHJnICVdIF0pOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiT3duZXJNYW5kYXRvcnkiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVzcG9uc2libGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdSZXNwb25zaWJsZUlEIj5bJSBUcmFuc2xhdGUoIk5ldyBSZXNwb25zaWJsZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlJlc3BvbnNpYmxlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI05ld1Jlc3BvbnNpYmxlSUQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ29tcG9zZScpLCAnQUpBWFVwZGF0ZScsICdOZXdSZXNwb25zaWJsZUlEJywgWyAnVHlwZUlEJywgJ1NlcnZpY2VJRCcsICdTTEFJRCcsICdOZXdPd25lcklEJywgJ05ld1N0YXRlSUQnLCAnTmV3UHJpb3JpdHlJRCcgWyUgRGF0YS5EeW5hbWljRmllbGROYW1lc1N0cmcgJV0gXSk7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJSZXNwb25zaWJsZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGF0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1N0YXRlSUQiPlslIFRyYW5zbGF0ZSgiTmV4dCBzdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0ZVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgV1JBUFBFUiBKU09uRG9jdW1lbnRDb21wbGV0ZSAlXQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICQoJyNOZXdTdGF0ZUlEJykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgQ29yZS5BSkFYLkZvcm1VcGRhdGUoJCgnI0NvbXBvc2UnKSwgJ0FKQVhVcGRhdGUnLCAnTmV3U3RhdGVJRCcsIFsnVHlwZUlEJywgJ1NlcnZpY2VJRCcsICdTTEFJRCcsICdOZXdPd25lcklEJywgJ05ld1Jlc3BvbnNpYmxlSUQnLCAnTmV3UHJpb3JpdHlJRCcgWyUgRGF0YS5EeW5hbWljRmllbGROYW1lc1N0cmcgJV0gXSk7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGF0ZVBlbmRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJQZW5kaW5nIGRhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuRGF0ZVN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkRhdGUgaW52YWxpZCEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJIb3VyU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIkRhdGUgaW52YWxpZCEiKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJGb3IgYWxsIHBlbmRpbmcqIHN0YXRlcy4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTdGF0ZVBlbmRpbmciKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhdGUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJpb3JpdHkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdQcmlvcml0eUlEIj5bJSBUcmFuc2xhdGUoIlByaW9yaXR5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByaW9yaXR5U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI05ld1ByaW9yaXR5SUQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBDb3JlLkFKQVguRm9ybVVwZGF0ZSgkKCcjQ29tcG9zZScpLCAnQUpBWFVwZGF0ZScsICdOZXdQcmlvcml0eUlEJywgWydUeXBlSUQnLCAnU2VydmljZUlEJywgJ1NMQUlEJywgJ05ld093bmVySUQnLCAnTmV3UmVzcG9uc2libGVJRCcsICdOZXdTdGF0ZUlEJyBbJSBEYXRhLkR5bmFtaWNGaWVsZE5hbWVzU3RyZyAlXSBdKTsKICAgIH0pOwovL11dPjwvc2NyaXB0PgpbJSBFTkQgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByaW9yaXR5IikgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiV2lkZ2V0VGlja2V0QWN0aW9ucyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJXaWRnZXREeW5hbWljRmllbGRzIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBFeHBhbmRlZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJUb2dnbGUgdGhpcyB3aWRnZXQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KIyAtLS0KIyBNYXN0ZXJTbGF2ZQojIC0tLQojICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRHluYW1pYyBGaWVsZHMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTZXQgTWFzdGVyL1NsYXZlIFZhbHVlIikgfCBodG1sICVdPC9oMj4KIyAtLS0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFiZWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5GaWVsZCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkIikgJV0KCiMgZXhhbXBsZSBvZiBob3cgdG8gdXNlIGZpeGVkIGR5bmFtaWMgZmllbGQgYmxvY2tzIGZvciBjdXN0b21pemF0aW9ucwojIE5vdGU6IEZpZWxkMSBhbmQgRmllbGQyIGFyZSB0aGUgbmFtZXMgb2YgdGhlIGZpZWxkcyBhbmQgaGFkIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGFjdHVhbAojIGZpZWxkIG5hbWVzCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRfRmllbGQxIikgJV0KIyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQojICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiMgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiMgICAgICAgICAgICAgICAgICAgIDwvZGl2PgojICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiMgICAgICAgICAgICAgICAgPC9kaXY+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGRfRmllbGQyIikgJV0KIyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSb3cgUm93X0R5bmFtaWNGaWVsZF9bJSBEYXRhLk5hbWUgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQojICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiMgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiMgICAgICAgICAgICAgICAgICAgIDwvZGl2PgojICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiMgICAgICAgICAgICAgICAgPC9kaXY+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIldpZGdldER5bmFtaWNGaWVsZHMiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiV2lkZ2V0QXJ0aWNsZSIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgWyUgRGF0YS5XaWRnZXRTdGF0dXMgfCBodG1sICVdIiBpZD0iV2lkZ2V0QXJ0aWNsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJUb2dnbGUgdGhpcyB3aWRnZXQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWRkIEFydGljbGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+ClslIElGIERhdGEuV2lkZ2V0U3RhdHVzID09ICdFeHBhbmRlZCcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJDcmVhdGVBcnRpY2xlIiBuYW1lPSJDcmVhdGVBcnRpY2xlIiB2YWx1ZT0iMSIgLz4KWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ3JlYXRlQXJ0aWNsZSI+WyUgVHJhbnNsYXRlKCJDcmVhdGUgYW4gQXJ0aWNsZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkNyZWF0ZUFydGljbGUiIG5hbWU9IkNyZWF0ZUFydGljbGUiIHZhbHVlPSIxIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIEVORCAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdWJqZWN0TGFiZWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU3ViamVjdCI+WyUgVHJhbnNsYXRlKCJTdWJqZWN0IikgfCBodG1sICVdOjwvbGFiZWw+ClslIFJlbmRlckJsb2NrRW5kKCJTdWJqZWN0TGFiZWwiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdWJqZWN0TGFiZWxNYW5kYXRvcnkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU3ViamVjdCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlN1YmplY3QiKSB8IGh0bWwgJV06PC9sYWJlbD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN1YmplY3RMYWJlbE1hbmRhdG9yeSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJTdWJqZWN0IiBuYW1lPSJTdWJqZWN0IiB2YWx1ZT0iWyUgRGF0YS5TdWJqZWN0IHwgaHRtbCAlXSIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlIFslIERhdGEuU3ViamVjdEludmFsaWQgJV0gWyUgRGF0YS5TdWJqZWN0UmVxdWlyZWQgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTdWJqZWN0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN1YmplY3RTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVGlja2V0T3B0aW9ucyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJPcHRpb25zIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+Cgo8IS0tIE91dHB1dEZpbHRlckhvb2tfVGlja2V0T3B0aW9uc0JlZ2luIC0tPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU3BlbGxDaGVjayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik9wdGlvblNwZWxsQ2hlY2siPlsgWyUgVHJhbnNsYXRlKCJTcGVsbCBjaGVjayIpIHwgaHRtbCAlXSBdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3BlbGxDaGVjayIpICVdCgo8IS0tIE91dHB1dEZpbHRlckhvb2tfVGlja2V0T3B0aW9uc0VuZCAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRpY2tldE9wdGlvbnMiKSAlXQoKPCEtLSBPdXRwdXRGaWx0ZXJIb29rX05vVGlja2V0T3B0aW9uc0ZhbGxiYWNrIC0tPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhbmRhcmRUZW1wbGF0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTdGFuZGFyZFRlbXBsYXRlSUQiPlslIFRyYW5zbGF0ZSgiVGV4dCBUZW1wbGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhbmRhcmRUZW1wbGF0ZVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJTZXR0aW5nIGEgdGVtcGxhdGUgd2lsbCBvdmVyd3JpdGUgYW55IHRleHQgb3IgYXR0YWNobWVudC4iKSAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI1N0YW5kYXJkVGVtcGxhdGVJRCcpLmJpbmQoJ2NoYW5nZScsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgIENvcmUuQUpBWC5Gb3JtVXBkYXRlKCQoJyNDb21wb3NlJyksICdBSkFYVXBkYXRlJywgJ1N0YW5kYXJkVGVtcGxhdGVJRCcsIFsnUmljaFRleHRGaWVsZCddKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrRW5kKCJTdGFuZGFyZFRlbXBsYXRlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlJpY2hUZXh0TGFiZWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUmljaFRleHQiPlslIFRyYW5zbGF0ZSgiVGV4dCIpIHwgaHRtbCAlXTo8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmljaFRleHRMYWJlbCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJpY2hUZXh0TGFiZWxNYW5kYXRvcnkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iUmljaFRleHQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+WyUgVHJhbnNsYXRlKCJUZXh0IikgfCBodG1sICVdOjwvbGFiZWw+ClslIFJlbmRlckJsb2NrRW5kKCJSaWNoVGV4dExhYmVsTWFuZGF0b3J5IikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSaWNoVGV4dEZpZWxkIiBjbGFzcz0iUmljaFRleHRGaWVsZCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJpY2hUZXh0IikgJV0KWyUgSW5zZXJ0VGVtcGxhdGUoIlJpY2hUZXh0RWRpdG9yLnR0IikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlJpY2hUZXh0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IlJpY2hUZXh0IiBjbGFzcz0iUmljaFRleHQgVmFsaWRhdGUgWyUgRGF0YS5Cb2R5SW52YWxpZCAlXSBbJSBEYXRhLkJvZHlSZXF1aXJlZCAlXSIgbmFtZT0iQm9keSIgcm93cz0iMTUiIGNvbHM9IlslIENvbmZpZygiVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIikgJV0iPlslIERhdGEuQm9keSB8IGh0bWwgJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJpY2hUZXh0RXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlJpY2hUZXh0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQXR0YWNobWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQXR0YWNobWVudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5GaWxlbmFtZSB8IGh0bWwgJV0gKFslIERhdGEuRmlsZXNpemUgfCBodG1sICVdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJBdHRhY2htZW50RGVsZXRlQnV0dG9uWyUgRGF0YS5GaWxlSUQgfCBodG1sICVdIiBuYW1lPSJBdHRhY2htZW50RGVsZXRlQnV0dG9uWyUgRGF0YS5GaWxlSUQgfCBodG1sICVdIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV0iIGNsYXNzPSJTcGFjaW5nTGVmdCI+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBdHRhY2htZW50RGVsZXRlWyUgRGF0YS5GaWxlSUQgfCBodG1sICVdIiBuYW1lPSJBdHRhY2htZW50RGVsZXRlWyUgRGF0YS5GaWxlSUQgfCBodG1sICVdIiAvPgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI0F0dGFjaG1lbnREZWxldGVCdXR0b25bJSBEYXRhLkZpbGVJRCB8IGh0bWwgJV0nKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgJEZvcm0gPSAkKCcjQXR0YWNobWVudERlbGV0ZUJ1dHRvblslIERhdGEuRmlsZUlEIHwgaHRtbCAlXScpLmNsb3Nlc3QoJ2Zvcm0nKTsKICAgICAgICAkKCcjQXR0YWNobWVudERlbGV0ZVslIERhdGEuRmlsZUlEIHwgaHRtbCAlXScpLnZhbCgxKTsKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuRGlzYWJsZVZhbGlkYXRpb24oJEZvcm0pOwogICAgICAgICRGb3JtLnRyaWdnZXIoJ3N1Ym1pdCcpOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+ClslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQXR0YWNobWVudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSJGaWxlVXBsb2FkIiBpZD0iRmlsZVVwbG9hZCIgdHlwZT0iZmlsZSIgc2l6ZT0iNDAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBdHRhY2htZW50VXBsb2FkIiBuYW1lPSJBdHRhY2htZW50VXBsb2FkIiB2YWx1ZT0iMCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgpbJSBXUkFQUEVSIEpTT25Eb2N1bWVudENvbXBsZXRlICVdCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI0ZpbGVVcGxvYWQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICB2YXIgJEZvcm0gPSAkKCcjRmlsZVVwbG9hZCcpLmNsb3Nlc3QoJ2Zvcm0nKTsKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuRGlzYWJsZVZhbGlkYXRpb24oJEZvcm0pOwogICAgICAgICRGb3JtLmZpbmQoJyNBdHRhY2htZW50VXBsb2FkJykudmFsKCcxJykuZW5kKCkuc3VibWl0KCk7CiAgICB9KTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkFydGljbGVUeXBlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkFydGljbGVUeXBlSUQiPlslIFRyYW5zbGF0ZSgiTm90ZSB0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkFydGljbGVUeXBlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBcnRpY2xlVHlwZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUaW1lVW5pdHNMYWJlbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUaW1lVW5pdHMiPlslIFRyYW5zbGF0ZSgiVGltZSB1bml0cyIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoQ29uZmlnKCJUaWNrZXQ6OkZyb250ZW5kOjpUaW1lVW5pdHMiKSkgfCBodG1sICVdOjwvbGFiZWw+ClslIFJlbmRlckJsb2NrRW5kKCJUaW1lVW5pdHNMYWJlbCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlRpbWVVbml0c0xhYmVsTWFuZGF0b3J5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRpbWVVbml0cyI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj5bJSBUcmFuc2xhdGUoIlRpbWUgdW5pdHMiKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKENvbmZpZygiVGlja2V0OjpGcm9udGVuZDo6VGltZVVuaXRzIikpIHwgaHRtbCAlXTo8L2xhYmVsPgpbJSBSZW5kZXJCbG9ja0VuZCgiVGltZVVuaXRzTGFiZWxNYW5kYXRvcnkiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUaW1lVW5pdHMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJUaW1lVW5pdHMiIGlkPSJUaW1lVW5pdHMiIHZhbHVlPSJbJSBEYXRhLlRpbWVVbml0cyB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9UaW1lVW5pdHMgWyUgRGF0YS5UaW1lVW5pdHNSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5UaW1lVW5pdHNJbnZhbGlkIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVVbml0c0Vycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHRpbWUhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVVbml0c1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGltZVVuaXRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5mb3JtQWRkaXRpb25hbEFnZW50cyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmZvcm1BZ2VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJJbmZvcm1Vc2VySUQiPlslIFRyYW5zbGF0ZSgiSW5mb3JtIEFnZW50IikgfCBodG1sICVdOiAoWyUgVHJhbnNsYXRlKCJPcHRpb25hbCIpIHwgaHRtbCAlXSk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5PcHRpb25TdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluZm9ybUFnZW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW52b2x2ZWRBZ2VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJJbnZvbHZlZFVzZXJJRCI+WyUgVHJhbnNsYXRlKCJJbmZvcm0gaW52b2x2ZWQgQWdlbnRzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkludm9sdmVkQWdlbnRTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkludm9sdmVkQWdlbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJIZXJlIHlvdSBjYW4gc2VsZWN0IGFkZGl0aW9uYWwgYWdlbnRzIHdoaWNoIHNob3VsZCByZWNlaXZlIGEgbm90aWZpY2F0aW9uIHJlZ2FyZGluZyB0aGUgbmV3IGFydGljbGUuIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KWyUgUmVuZGVyQmxvY2tFbmQoIkluZm9ybUFkZGl0aW9uYWxBZ2VudHMiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJOb3RlIHdpbGwgYmUgKGFsc28pIHJlY2VpdmVkIGJ5OiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VyTGlzdFdpdGhvdXRTZWxlY3Rpb24iIHZhbHVlPSJbJSBEYXRhLlVzZXJMaXN0V2l0aG91dFNlbGVjdGlvbiAgfCBodG1sICVdIiAvPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVXNlckVtYWlsICVdIj5bJSBEYXRhLlVzZXJGdWxsbmFtZSAlXTwvc3Bhbj5bJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlclNlcGFyYXRvciIpICVdLFslIFJlbmRlckJsb2NrRW5kKCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlclNlcGFyYXRvciIpICVdClslIFJlbmRlckJsb2NrRW5kKCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uU2luZ2xlVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+ClslIFJlbmRlckJsb2NrRW5kKCJJbmZvcm1BZ2VudHNXaXRob3V0U2VsZWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiV2lkZ2V0QXJ0aWNsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9InN1Ym1pdFJpY2hUZXh0IiBhY2Nlc3NrZXk9ImciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSAoZykiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9mb3JtPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvcGVydGllcyIpICVdCgojTGF5ZXJzClslIFdSQVBQRVIgSlNPbkRvY3VtZW50Q29tcGxldGUgJV0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICBDb3JlLkNvbmZpZy5TZXQoJ0xvY2FsaXphdGlvbi5EZWxldGUnLCAnWyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV0nKTsKICAgIENvcmUuQWdlbnQuVGlja2V0QWN0aW9uLkluaXQoKTsKLy9dXT48L3NjcmlwdD4KWyUgRU5EICVdCg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpNYXN0ZXJTbGF2ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBiYXNlIHF3KEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6QmFzZVNlbGVjdCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6TWFzdGVyU2xhdmUKCj1oZWFkMSBTWU5PUFNJUwoKRHluYW1pY0ZpZWxkcyBNYXN0ZXJTbGF2ZSBEcml2ZXIgZGVsZWdhdGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWl0ZW0gbmV3KCkKCnVzdWFsbHksIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGlzCmJ5IHVzaW5nIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldygpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCBmaWVsZCBiZWhhdmlvcnMKICAgICRTZWxmLT57QmVoYXZpb3JzfSA9IHsKICAgICAgICAnSXNBQ0xSZWR1Y2libGUnICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAnSXNOb3RpZmljYXRpb25FdmVudENvbmRpdGlvbicgPT4gMSwKICAgICAgICAnSXNTb3J0YWJsZScgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnSXNGaWx0cmFibGUnICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnSXNTdGF0c0NvbmRpdGlvbicgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUnICAgPT4gMCwKICAgIH07CgogICAgIyBnZXQgdGhlIER5bmFtaWMgRmllbGQgQmFja2VuZCBjdXN0b20gZXh0ZW5zaW9ucwogICAgbXkgJER5bmFtaWNGaWVsZERyaXZlckV4dGVuc2lvbnMKICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6Ok1hc3RlclNsYXZlJyk7CgogICAgRVhURU5TSU9OOgogICAgZm9yIG15ICRFeHRlbnNpb25LZXkgKCBzb3J0IGtleXMgJXskRHluYW1pY0ZpZWxkRHJpdmVyRXh0ZW5zaW9uc30gKSB7CgogICAgICAgICMgc2tpcCBpbnZhbGlkIGV4dGVuc2lvbnMKICAgICAgICBuZXh0IEVYVEVOU0lPTiBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGREcml2ZXJFeHRlbnNpb25zLT57JEV4dGVuc2lvbktleX0gKTsKCiAgICAgICAgIyBjcmVhdGUgYSBleHRlbnNpb24gY29uZmlnIHNob3J0Y3V0CiAgICAgICAgbXkgJEV4dGVuc2lvbiA9ICREeW5hbWljRmllbGREcml2ZXJFeHRlbnNpb25zLT57JEV4dGVuc2lvbktleX07CgogICAgICAgICMgY2hlY2sgaWYgZXh0ZW5zaW9uIGhhcyBhIG5ldyBtb2R1bGUKICAgICAgICBpZiAoICRFeHRlbnNpb24tPntNb2R1bGV9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBtb2R1bGUgY2FuIGJlIGxvYWRlZAogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZUJhc2VDbGFzcyggJEV4dGVuc2lvbi0+e01vZHVsZX0gKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaWUgIkNhbid0IGxvYWQgZHluYW1pYyBmaWVsZHMgYmFja2VuZCBtb2R1bGUiCiAgICAgICAgICAgICAgICAgICAgLiAiICRFeHRlbnNpb24tPntNb2R1bGV9ISAkQCI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgZXh0ZW5zaW9uIGNvbnRhaW5zIG1vcmUgYmVoYXZpb3JzCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJEV4dGVuc2lvbi0+e0JlaGF2aW9yc30gKSApIHsKCiAgICAgICAgICAgICV7ICRTZWxmLT57QmVoYXZpb3JzfSB9ID0gKAogICAgICAgICAgICAgICAgJXsgJFNlbGYtPntCZWhhdmlvcnN9IH0sCiAgICAgICAgICAgICAgICAleyAkRXh0ZW5zaW9uLT57QmVoYXZpb3JzfSB9CiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFZhbHVlU2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+X0hhbmRsZUxpbmtzKAogICAgICAgIEZpZWxkTmFtZSAgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfSwKICAgICAgICBGaWVsZFZhbHVlID0+ICRQYXJhbXtWYWx1ZX0sCiAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHRoZSBsaW5rcyBmb3IgbWFzdGVyL3NsYXZlLCB2YWx1ZSBjb3VsZCBub3QgYmUgc2V0IiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSAhfiAvXig/OlVuc2V0TWFzdGVyfFVuc2V0U2xhdmUpJC8gPyAkUGFyYW17VmFsdWV9IDogJyc7CgogICAgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnKS0+VmFsdWVTZXQoCiAgICAgICAgRmllbGRJRCAgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntJRH0sCiAgICAgICAgT2JqZWN0SUQgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICBWYWx1ZSAgICA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZhbHVlVGV4dCA9PiAkVmFsdWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgXSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAkU3VjY2VzczsKfQoKc3ViIEVkaXRGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSB0aGUgaHR0cCByZXF1ZXN0CiAgICBteSAkVmFsdWUgPSAkU2VsZi0+RWRpdEZpZWxkVmFsdWVHZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LAogICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW17UGFyYW1PYmplY3R9LAoKICAgICAgICAjIG5vdCBuZWNlc3NhcnkgZm9yIHRoaXMgRHJpdmVyIGJ1dCBwbGFjZSBpdCBmb3IgY29uc2lzdGVuY3kgcmVhc29ucwogICAgICAgIFJldHVyblZhbHVlU3RydWN0dXJlID0+IDEsCiAgICApOwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAhJFZhbHVlICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IDEsCiAgICAgICAgfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICBteSAkUG9zc2libGVWYWx1ZXM7CgogICAgICAgICMgdXNlIFBvc3NpYmxlVmFsdWVzRmlsdGVyIGlmIHNlbnQKICAgICAgICBpZiAoIGRlZmluZWQgJFBhcmFte1Bvc3NpYmxlVmFsdWVzRmlsdGVyfSApIHsKICAgICAgICAgICAgJFBvc3NpYmxlVmFsdWVzID0gJFBhcmFte1Bvc3NpYmxlVmFsdWVzRmlsdGVyfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgZ2V0IHBvc3NpYmxlIHZhbHVlcyBsaXN0CiAgICAgICAgICAgICRQb3NzaWJsZVZhbHVlcyA9ICRTZWxmLT5Qb3NzaWJsZVZhbHVlc0dldCgKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgdmFsaWRhdGUgaWYgdmFsdWUgaXMgaW4gcG9zc2libGUgdmFsdWVzIGxpc3QgKGJ1dCBsZXQgcGFzcyBlbXB0eSB2YWx1ZXMpCiAgICAgICAgaWYgKCAkVmFsdWUgJiYgISRQb3NzaWJsZVZhbHVlcy0+eyRWYWx1ZX0gKSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvciAgPSAxOwogICAgICAgICAgICAkRXJyb3JNZXNzYWdlID0gJ1RoZSBmaWVsZCBjb250ZW50IGlzIGludmFsaWQnOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgpzdWIgUG9zc2libGVWYWx1ZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRvIHN0b3JlIHRoZSBwb3NzaWJsZSB2YWx1ZXMKICAgIG15ICVQb3NzaWJsZVZhbHVlcyA9ICgKICAgICAgICAnJyA9PiAnLScsCiAgICApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGZpbmQgYWxsIGN1cnJlbnQgb3BlbiBtYXN0ZXIgc2xhdmUgdGlja2V0cwogICAgbXkgQFRpY2tldElEcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKCiAgICAgICAgIyBtYXN0ZXIgc2xhdmUgZHluYW1pYyBmaWVsZAogICAgICAgICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0gPT4gewogICAgICAgICAgICBFcXVhbHMgPT4gJ01hc3RlcicsCiAgICAgICAgfSwKCiAgICAgICAgU3RhdGVUeXBlICA9PiAnT3BlbicsCiAgICAgICAgTGltaXQgICAgICA9PiA2MCwKICAgICAgICBVc2VySUQgICAgID0+ICRMYXlvdXRPYmplY3QtPntVc2VySUR9LAogICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICk7CgogICAgIyBzZXQgZHluYW1pYyBmaWVsZCBwb3NzaWJsZSB2YWx1ZXMKICAgICRQb3NzaWJsZVZhbHVlc3tNYXN0ZXJ9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdOZXcgTWFzdGVyIFRpY2tldCcpOwoKICAgIFRJQ0tFVDoKICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICBteSAlQ3VycmVudFRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICApOwoKICAgICAgICBuZXh0IFRJQ0tFVCBpZiAhJUN1cnJlbnRUaWNrZXQ7CgogICAgICAgICMgc2V0IGR5bmFtaWMgZmllbGQgcG9zc2libGUgdmFsdWVzCiAgICAgICAgJFBvc3NpYmxlVmFsdWVzeyJTbGF2ZU9mOiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn0ifQogICAgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnU2xhdmUgb2YgVGlja2V0IycpCiAgICAgICAgICAgIC4gIiRDdXJyZW50VGlja2V0e1RpY2tldE51bWJlcn06ICRDdXJyZW50VGlja2V0e1RpdGxlfSI7CiAgICB9CgogICAgIyByZXR1cm4gdGhlIHBvc3NpYmxlIHZhbHVlcyBoYXNoIGFzIGEgcmVmZXJlbmNlCiAgICByZXR1cm4gXCVQb3NzaWJsZVZhbHVlczsKfQoKc3ViIF9IYW5kbGVMaW5rcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRmllbGROYW1lIEZpZWxkVmFsdWUgVGlja2V0SUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgbXkgJEZpZWxkTmFtZSA9ICRQYXJhbXtGaWVsZE5hbWV9OwoKICAgIG15ICVUaWNrZXQgPSAkUGFyYW17VGlja2V0fQogICAgICAgID8gJXsgJFBhcmFte1RpY2tldH0gfQogICAgICAgIDogJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBEeW5hbWljRmllbGRzID0+IDEKICAgICAgICApOwoKICAgIG15ICRPbGRWYWx1ZSA9ICRUaWNrZXR7ICdEeW5hbWljRmllbGRfJyAuICRGaWVsZE5hbWUgfTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBtYXN0ZXIgc2xhdmUgY29uZmlnCiAgICBteSAkTWFzdGVyU2xhdmVLZWVwUGFyZW50Q2hpbGRBZnRlclVuc2V0ICA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OktlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQnKSAgfHwgMDsKICAgIG15ICRNYXN0ZXJTbGF2ZUZvbGxvd1VwZGF0ZWRNYXN0ZXIgICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdNYXN0ZXJTbGF2ZTo6Rm9sbG93VXBkYXRlZE1hc3RlcicpICAgICAgICB8fCAwOwogICAgbXkgJE1hc3RlclNsYXZlS2VlcFBhcmVudENoaWxkQWZ0ZXJVcGRhdGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ01hc3RlclNsYXZlOjpLZWVwUGFyZW50Q2hpbGRBZnRlclVwZGF0ZScpIHx8IDA7CgogICAgbXkgJE5ld1ZhbHVlID0gJFBhcmFte0ZpZWxkVmFsdWV9OwoKICAgICMgZ2V0IGxpbmsgb2JqZWN0CiAgICBteSAkTGlua09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0Jyk7CgogICAgIyBzZXQgYSBuZXcgbWFzdGVyIHRpY2tldAogICAgIyBjaGVjayBpZiBpdCBpcyBhbHJlYWR5IGEgbWFzdGVyIHRpY2tldAogICAgaWYgKAogICAgICAgICROZXdWYWx1ZSBlcSAnTWFzdGVyJwogICAgICAgICYmICggISRPbGRWYWx1ZSB8fCAkT2xkVmFsdWUgbmUgJE5ld1ZhbHVlICkKICAgICAgICApCiAgICB7CgogICAgICAgICMgY2hlY2sgaWYgaXQgd2FzIGEgc2xhdmUgdGlja2V0IGJlZm9yZSBhbmQgaWYgd2UgaGF2ZSB0byBkZWxldGUKICAgICAgICAjIHRoZSBvbGQgcGFyZW50IGNoaWxkIGxpbmsgKE1hc3RlclNsYXZlS2VlcFBhcmVudENoaWxkQWZ0ZXJVbnNldCkKICAgICAgICBpZiAoCiAgICAgICAgICAgICRPbGRWYWx1ZQogICAgICAgICAgICAmJiAkT2xkVmFsdWUgPX4gL15TbGF2ZU9mOiguKj8pJC8KICAgICAgICAgICAgJiYgISRNYXN0ZXJTbGF2ZUtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFNvdXJjZUtleSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldElETG9va3VwKAogICAgICAgICAgICAgICAgVGlja2V0TnVtYmVyID0+ICQxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJExpbmtPYmplY3QtPkxpbmtEZWxldGUoCiAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgS2V5MSAgICA9PiAkU291cmNlS2V5LAogICAgICAgICAgICAgICAgT2JqZWN0MiA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgIEtleTIgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ1BhcmVudENoaWxkJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGEgbmV3IHNsYXZlIHRpY2tldAogICAgIyBjaGVjayBpZiBpdCdzIGFscmVhZHkgdGhlIHNsYXZlIG9mIHRoZSB3aXNoZWQgbWFzdGVyIHRpY2tldAogICAgZWxzaWYgKAogICAgICAgICROZXdWYWx1ZSA9fiAvXlNsYXZlT2Y6KC4qPykkLwogICAgICAgICYmICggISRPbGRWYWx1ZSB8fCAkT2xkVmFsdWUgbmUgJE5ld1ZhbHVlICkKICAgICAgICApCiAgICB7CiAgICAgICAgbXkgJFNvdXJjZUtleSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldElETG9va3VwKAogICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkTGlua09iamVjdC0+TGlua0FkZCgKICAgICAgICAgICAgU291cmNlT2JqZWN0ID0+ICdUaWNrZXQnLAogICAgICAgICAgICBTb3VyY2VLZXkgICAgPT4gJFNvdXJjZUtleSwKICAgICAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdUaWNrZXQnLAogICAgICAgICAgICBUYXJnZXRLZXkgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVHlwZSAgICAgICAgID0+ICdQYXJlbnRDaGlsZCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJUxpbmtzID0gJExpbmtPYmplY3QtPkxpbmtLZXlMaXN0KAogICAgICAgICAgICBPYmplY3QxICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgIEtleTEgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBPYmplY3QyICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgIFN0YXRlICAgICA9PiAnVmFsaWQnLAogICAgICAgICAgICBUeXBlICAgICAgPT4gJ1BhcmVudENoaWxkJywgICAgICAjIChvcHRpb25hbCkKICAgICAgICAgICAgRGlyZWN0aW9uID0+ICdUYXJnZXQnLCAgICAgICAgICAgIyAob3B0aW9uYWwpIGRlZmF1bHQgQm90aCAoU291cmNlfFRhcmdldHxCb3RoKQogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgQFNsYXZlVGlja2V0SURzOwoKICAgICAgICBMSU5LRURUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJExpbmtlZFRpY2tldElEICggc29ydCBrZXlzICVMaW5rcyApIHsKICAgICAgICAgICAgbmV4dCBMSU5LRURUSUNLRVRJRCBpZiAhJExpbmtzeyRMaW5rZWRUaWNrZXRJRH07CgogICAgICAgICAgICAjIGp1c3QgdGFrZSB0aWNrZXQgd2l0aCBzbGF2ZSBhdHRyaWJ1dGVzIGZvciBhY3Rpb24KICAgICAgICAgICAgbXkgJUxpbmtlZFRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgPT4gJExpbmtlZFRpY2tldElELAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJExpbmtlZFRpY2tldFZhbHVlID0gJFRpY2tldHsgJ0R5bmFtaWNGaWVsZF8nIC4gJEZpZWxkTmFtZSB9OwoKICAgICAgICAgICAgbmV4dCBMSU5LRURUSUNLRVRJRCBpZiAhJExpbmtlZFRpY2tldFZhbHVlOwogICAgICAgICAgICBuZXh0IExJTktFRFRJQ0tFVElEIGlmICRMaW5rZWRUaWNrZXRWYWx1ZSAhfiAvXlNsYXZlT2Y6KC4qPykkLzsKCiAgICAgICAgICAgICMgcmVtZW1iZXIgbGlua2VkIHRpY2tldCBpZAogICAgICAgICAgICBwdXNoIEBTbGF2ZVRpY2tldElEcywgJExpbmtlZFRpY2tldElEOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkT2xkVmFsdWUgJiYgJE9sZFZhbHVlIGVxICdNYXN0ZXInICkgewoKICAgICAgICAgICAgaWYgKCAkTWFzdGVyU2xhdmVGb2xsb3dVcGRhdGVkTWFzdGVyICYmIEBTbGF2ZVRpY2tldElEcyApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkTGlua2VkVGlja2V0SUQgKEBTbGF2ZVRpY2tldElEcykgewogICAgICAgICAgICAgICAgICAgICRMaW5rT2JqZWN0LT5MaW5rQWRkKAogICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VPYmplY3QgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZUtleSAgICA9PiAkU291cmNlS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRPYmplY3QgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldEtleSAgICA9PiAkTGlua2VkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggISRNYXN0ZXJTbGF2ZUtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQgKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJExpbmtlZFRpY2tldElEIChAU2xhdmVUaWNrZXRJRHMpIHsKICAgICAgICAgICAgICAgICAgICAkTGlua09iamVjdC0+TGlua0RlbGV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0MSA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgICAgICAgICAgS2V5MSAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QyID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgICAgICBLZXkyICAgID0+ICRMaW5rZWRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkT2xkVmFsdWUKICAgICAgICAgICAgJiYgJE9sZFZhbHVlID1+IC9eU2xhdmVPZjooLio/KSQvCiAgICAgICAgICAgICYmICEkTWFzdGVyU2xhdmVLZWVwUGFyZW50Q2hpbGRBZnRlclVwZGF0ZQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkU291cmNlS2V5ID0gJFRpY2tldE9iamVjdC0+VGlja2V0SURMb29rdXAoCiAgICAgICAgICAgICAgICBUaWNrZXROdW1iZXIgPT4gJDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGlua09iamVjdC0+TGlua0RlbGV0ZSgKICAgICAgICAgICAgICAgIE9iamVjdDEgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICBLZXkxICAgID0+ICRTb3VyY2VLZXksCiAgICAgICAgICAgICAgICBPYmplY3QyID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgS2V5MiAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnUGFyZW50Q2hpbGQnLAogICAgICAgICAgICAgICAgVXNlcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICROZXdWYWx1ZSA9fiAvXig/OlVuc2V0TWFzdGVyfFVuc2V0U2xhdmUpJC8gJiYgJE9sZFZhbHVlICkgewoKICAgICAgICBpZiAoICROZXdWYWx1ZSBlcSAnVW5zZXRNYXN0ZXInICYmICEkTWFzdGVyU2xhdmVLZWVwUGFyZW50Q2hpbGRBZnRlclVuc2V0ICkgewogICAgICAgICAgICBteSAlTGlua3MgPSAkTGlua09iamVjdC0+TGlua0tleUxpc3QoCiAgICAgICAgICAgICAgICBPYmplY3QxICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICBLZXkxICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIE9iamVjdDIgICA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgIFN0YXRlICAgICA9PiAnVmFsaWQnLAogICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdQYXJlbnRDaGlsZCcsICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgICAgICAgICBEaXJlY3Rpb24gPT4gJ1RhcmdldCcsICAgICAgICAgICAjIChvcHRpb25hbCkgZGVmYXVsdCBCb3RoIChTb3VyY2V8VGFyZ2V0fEJvdGgpCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSBAU2xhdmVUaWNrZXRJRHM7CgogICAgICAgICAgICBMSU5LRURUSUNLRVRJRDoKICAgICAgICAgICAgZm9yIG15ICRMaW5rZWRUaWNrZXRJRCAoIHNvcnQga2V5cyAlTGlua3MgKSB7CiAgICAgICAgICAgICAgICBuZXh0IExJTktFRFRJQ0tFVElEIGlmICEkTGlua3N7JExpbmtlZFRpY2tldElEfTsKCiAgICAgICAgICAgICAgICAjIGp1c3QgdGFrZSB0aWNrZXQgd2l0aCBzbGF2ZSBhdHRyaWJ1dGVzIGZvciBhY3Rpb24KICAgICAgICAgICAgICAgIG15ICVMaW5rZWRUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkTGlua2VkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkTGlua2VkVGlja2V0VmFsdWUgPSAkVGlja2V0eyAnRHluYW1pY0ZpZWxkXycgLiAkRmllbGROYW1lIH07CiAgICAgICAgICAgICAgICBuZXh0IExJTktFRFRJQ0tFVElEIGlmICEkTGlua2VkVGlja2V0VmFsdWU7CiAgICAgICAgICAgICAgICBuZXh0IExJTktFRFRJQ0tFVElEIGlmICRMaW5rZWRUaWNrZXRWYWx1ZSAhfiAvXlNsYXZlT2Y6KC4qPykkLzsKCiAgICAgICAgICAgICAgICAjIHJlbWVtYmVyIHRpY2tldCBpZAogICAgICAgICAgICAgICAgcHVzaCBAU2xhdmVUaWNrZXRJRHMsICRMaW5rZWRUaWNrZXRJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIG15ICRMaW5rZWRUaWNrZXRJRCAoQFNsYXZlVGlja2V0SURzKSB7CiAgICAgICAgICAgICAgICAkTGlua09iamVjdC0+TGlua0RlbGV0ZSgKICAgICAgICAgICAgICAgICAgICBPYmplY3QxID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgIEtleTEgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBPYmplY3QyID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgIEtleTIgICAgPT4gJExpbmtlZFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ1BhcmVudENoaWxkJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICROZXdWYWx1ZSBlcSAnVW5zZXRTbGF2ZScKICAgICAgICAgICAgJiYgISRNYXN0ZXJTbGF2ZUtlZXBQYXJlbnRDaGlsZEFmdGVyVW5zZXQKICAgICAgICAgICAgJiYgJE9sZFZhbHVlID1+IC9eU2xhdmVPZjooLio/KSQvCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRTb3VyY2VLZXkgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRJRExvb2t1cCgKICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlKAogICAgICAgICAgICAgICAgT2JqZWN0MSA9PiAnVGlja2V0JywKICAgICAgICAgICAgICAgIEtleTEgICAgPT4gJFNvdXJjZUtleSwKICAgICAgICAgICAgICAgIE9iamVjdDIgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICBLZXkyICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdQYXJlbnRDaGlsZCcsCiAgICAgICAgICAgICAgICBVc2VySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6RXZlbnQ6Ok1hc3RlclNsYXZlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZScsCik7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KERhdGEgRXZlbnQgQ29uZmlnKSkgewogICAgICAgIGlmICggISRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRfISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBpZiAoICEkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIERhdGEtPntUaWNrZXRJRH0hIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgZ2V0IHRpY2tldCBhdHRyaWJ1dGVzCiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgbWFzdGVyL3NsYXZlIGR5bmFtaWMgZmllbGQKICAgIG15ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OkR5bmFtaWNGaWVsZCcpOwoKICAgICMgY2hlY2sgaWYgaXQncyBhIG1hc3Rlci9zbGF2ZSB0aWNrZXQKICAgIHJldHVybiAxIGlmICEkVGlja2V0eyAnRHluYW1pY0ZpZWxkXycgLiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgfTsKICAgIHJldHVybiAxIGlmICRUaWNrZXR7ICdEeW5hbWljRmllbGRfJyAuICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCB9ICF+IC9eKG1hc3Rlcnx5ZXMpJC9pOwoKICAgICMgZ2V0IGxpbmsgb2JqZWN0CiAgICBteSAkTGlua09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0Jyk7CgogICAgIyBmaW5kIHNsYXZlcwogICAgbXkgJUxpbmtzID0gJExpbmtPYmplY3QtPkxpbmtLZXlMaXN0KAogICAgICAgIE9iamVjdDEgICA9PiAnVGlja2V0JywKICAgICAgICBLZXkxICAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgIE9iamVjdDIgICA9PiAnVGlja2V0JywKICAgICAgICBTdGF0ZSAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBUeXBlICAgICAgPT4gJ1BhcmVudENoaWxkJywgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIERpcmVjdGlvbiA9PiAnVGFyZ2V0JywgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIGRlZmF1bHQgQm90aCAoU291cmNlfFRhcmdldHxCb3RoKQogICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiAgICBteSBAVGlja2V0SURzOwogICAgVElDS0VUSUQ6CiAgICBmb3IgbXkgJFRpY2tldElEICggc29ydCBrZXlzICVMaW5rcyApIHsKICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkTGlua3N7JFRpY2tldElEfTsKCiAgICAgICAgIyBqdXN0IHRha2UgdGlja2V0IHdpdGggc2xhdmUgYXR0cmlidXRlcyBmb3IgYWN0aW9uCiAgICAgICAgbXkgJVRpY2tldCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSAkVGlja2V0VmFsdWUgPSAkVGlja2V0eyAnRHluYW1pY0ZpZWxkXycgLiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgfTsKICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkVGlja2V0VmFsdWU7CiAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAkVGlja2V0VmFsdWUgIX4gL15TbGF2ZU9mOiguKj8pJC87CgogICAgICAgICMgcmVtZW1iZXIgdGlja2V0IGlkCiAgICAgICAgcHVzaCBAVGlja2V0SURzLCAkVGlja2V0SUQ7CiAgICB9CgogICAgIyBubyBzbGF2ZXMKICAgIGlmICggIUBUaWNrZXRJRHMgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gU2xhdmVzIG9mIHRpY2tldCAkVGlja2V0e1RpY2tldElEfSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyk7CgogICAgIyBhdXRvIHJlc3BvbnNlIGFjdGlvbgogICAgaWYgKCAkUGFyYW17RXZlbnR9IGVxICdBcnRpY2xlU2VuZCcgKSB7CiAgICAgICAgbXkgQEluZGV4ID0gJFRpY2tldE9iamVjdC0+QXJ0aWNsZUluZGV4KCBUaWNrZXRJRCA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0gKTsKCiAgICAgICAgcmV0dXJuIDEgaWYgIUBJbmRleDsKCiAgICAgICAgbXkgJUFydGljbGUgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlR2V0KCBBcnRpY2xlSUQgPT4gJEluZGV4Wy0xXSApOwoKICAgICAgICAjIGNoZWNrIGlmIHRoZSBzZW5kIG1haWwgaXMgb2YgdHlwZSBmb3J3YXJkCiAgICAgICAgbXkgJElzRm9yd2FyZCA9ICRTZWxmLT5fQXJ0aWNsZUhpc3RvcnlUeXBlR2l2ZW4oCiAgICAgICAgICAgIFRpY2tldElEICAgID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgPT4gJEFydGljbGV7QXJ0aWNsZUlEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgPT4gJ0ZvcndhcmQnLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGlmIHRoZSBTeXNDb25maWcgaXMgZGlzYWJsZWQgYW5kIHRoZSBuZXcgYXJ0aWNsZSBpcyBhbiBmb3J3YXJkIGFydGljbGUKICAgICAgICAjIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBoYXZlIHRoZSBmb3J3YXJkIGZvciB0aGUgc2xhdmUgdGlja2V0cwogICAgICAgIG15ICRGb3J3YXJkU2xhdmVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdNYXN0ZXJTbGF2ZTo6Rm9yd2FyZFNsYXZlcycpOwoKICAgICAgICByZXR1cm4gMSBpZiAkSXNGb3J3YXJkICYmICEkRm9yd2FyZFNsYXZlczsKCiAgICAgICAgIyBtYXJrIHRpY2tldCB0byBwcmV2ZW50IGEgbG9vcAogICAgICAgICRUaWNrZXRPYmplY3QtPkhpc3RvcnlBZGQoCiAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17RGF0YX0tPntUaWNrZXRJRH0sCiAgICAgICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdNYXN0ZXJUaWNrZXRBY3Rpb246IEFydGljbGVTZW5kJywKICAgICAgICApOwoKICAgICAgICAjIGp1c3QgYSBmbGFnIGZvciBrbm93IHdoZW4gdGhlIGZpcnN0IHNsYXZlIHRpY2tldCBpcyBwcmVzZW50CiAgICAgICAgbXkgJEZpcnN0U2xhdmVUaWNrZXQgPSAxOwogICAgICAgIG15ICRUbXBBcnRpY2xlQm9keTsKCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnTWFzdGVyVGlja2V0QWN0aW9uOiBBcnRpY2xlU2VuZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISRDaGVja1N1Y2Nlc3M7CgogICAgICAgICAgICBteSAlVGlja2V0U2xhdmUgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHRyeSB0byBnZXQgdGhlIGN1c3RvbWVyIGRhdGEgb2YgdGhlIHNsYXZlIHRpY2tldAogICAgICAgICAgICBteSAlQ3VzdG9tZXI7CiAgICAgICAgICAgIGlmICggJFRpY2tldFNsYXZle0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAgICAgICAgICVDdXN0b21lciA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgICAgICAgICAgVXNlciA9PiAkVGlja2V0U2xhdmV7Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiB3ZSBjYW4ndCBmaW5kIGEgdmFsaWQgVXNlckVtYWlsIGluIEN1c3RvbWVyRGF0YQogICAgICAgICAgICAjIHdlIGhhdmUgdG8gZ2V0IHRoZSBsYXN0IEFydGljbGUgd2l0aCBTZW5kZXJUeXBlICdjdXN0b21lcicKICAgICAgICAgICAgIyBhbmQgZ2V0IHRoZSBVc2VyRW1haWwKICAgICAgICAgICAgaWYgKCAhJEN1c3RvbWVye1VzZXJFbWFpbH0gKSB7CiAgICAgICAgICAgICAgICBteSBASW5kZXggPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlR2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlU2VuZGVyVHlwZSA9PiBbJ2N1c3RvbWVyJ10sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmIChASW5kZXgpIHsKICAgICAgICAgICAgICAgICAgICAkQ3VzdG9tZXJ7VXNlckVtYWlsfSA9ICRJbmRleFstMV17RnJvbX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgd2Ugc3RpbGwgaGF2ZSBubyBVc2VyRW1haWwsIGRyb3AgYW4gZXJyb3IKICAgICAgICAgICAgaWYgKCAhJEN1c3RvbWVye1VzZXJFbWFpbH0gKSB7CiAgICAgICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAiTWFzdGVyVGlja2V0OiBubyBjdXN0b21lciBlbWFpbCBmb3VuZCwgc2VuZCBubyBtYXN0ZXIgbWVzc2FnZSB0byBjdXN0b21lci4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG5leHQgVElDS0VUSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2V0IHRoZSBuZXcgVG8gZm9yIEFydGljbGVTZW5kCiAgICAgICAgICAgICRBcnRpY2xle1RvfSA9ICRDdXN0b21lcntVc2VyRW1haWx9OwoKICAgICAgICAgICAgIyByZWJ1aWxkIHN1YmplY3QKICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+U2V0KAogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ1RpY2tldDo6U3ViamVjdENsZWFuQWxsTnVtYmVycycsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkU3ViamVjdCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN1YmplY3RCdWlsZCgKICAgICAgICAgICAgICAgIFRpY2tldE51bWJlciA9PiAkVGlja2V0U2xhdmV7VGlja2V0TnVtYmVyfSwKICAgICAgICAgICAgICAgIFN1YmplY3QgICAgICA9PiAkQXJ0aWNsZXtTdWJqZWN0fSB8fCAnJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZXhjaGFuZ2UgQ3VzdG9tZXIgZnJvbSBNYXN0ZXJUaWNrZXQgZm9yIHRoZSBvbmUgaW50byB0aGUgU2xhdmVUaWNrZXQKICAgICAgICAgICAgbXkgJFJlcGxhY2VPbk5vdGVUeXBlcyA9ICRDb25maWdPYmplY3QtPkdldCgnUmVwbGFjZUN1c3RvbWVyUmVhbE5hbWVPblNsYXZlQXJ0aWNsZVR5cGVzJyk7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIGRlZmluZWQgJFJlcGxhY2VPbk5vdGVUeXBlcy0+eyAkQXJ0aWNsZXtBcnRpY2xlVHlwZX0gfSAmJgogICAgICAgICAgICAgICAgJFJlcGxhY2VPbk5vdGVUeXBlcy0+eyAkQXJ0aWNsZXtBcnRpY2xlVHlwZX0gfSBlcSAnMScKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKCRGaXJzdFNsYXZlVGlja2V0KSB7CiAgICAgICAgICAgICAgICAgICAgJEZpcnN0U2xhdmVUaWNrZXQgPSAwOwogICAgICAgICAgICAgICAgICAgICRUbXBBcnRpY2xlQm9keSAgID0gJEFydGljbGV7Qm9keX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAjIGdldCBib2R5IGZyb20gdGVtcG9yYWwgaW4gb2RlciB0byBnZXQgaXQKICAgICAgICAgICAgICAgICAgICAjIHdpdGhvdXQgY2hhbmdlcyBmcm9tIHByZXZpb3VzIHNsYXZlIHRpY2tldHMKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZXtCb2R5fSA9ICRUbXBBcnRpY2xlQm9keTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSAkU2VhcmNoID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJOYW1lKAogICAgICAgICAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkQXJ0aWNsZXtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICApIHx8ICcnOwogICAgICAgICAgICAgICAgbXkgJFJlcGxhY2UgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lck5hbWUoCiAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUaWNrZXRTbGF2ZXtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICApIHx8ICcnOwogICAgICAgICAgICAgICAgaWYgKCAkU2VhcmNoICYmICRSZXBsYWNlICkgewogICAgICAgICAgICAgICAgICAgICRBcnRpY2xle0JvZHl9ID1+IHN7IFxRJFNlYXJjaFxFIH17JFJlcGxhY2V9eG1zZzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZW5kIGFydGljbGUgYWdhaW4KICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+QXJ0aWNsZVNlbmQoCiAgICAgICAgICAgICAgICAlQXJ0aWNsZSwKICAgICAgICAgICAgICAgIFN1YmplY3QgICAgICAgID0+ICRTdWJqZWN0LAogICAgICAgICAgICAgICAgQ2MgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgICAgICBCY2MgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdTZW5kQW5zd2VyJywKICAgICAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICJTZW50IGFuc3dlciB0byAnJEFydGljbGV7VG99JyBiYXNlZCBvbiBtYXN0ZXIgdGlja2V0LiIsCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBhcnRpY2xlIGNyZWF0ZQogICAgZWxzaWYgKCAkUGFyYW17RXZlbnR9IGVxICdBcnRpY2xlQ3JlYXRlJyApIHsKICAgICAgICBteSBASW5kZXggPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlSW5kZXgoIFRpY2tldElEID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSApOwoKICAgICAgICByZXR1cm4gMSBpZiAhQEluZGV4OwoKICAgICAgICBteSAlQXJ0aWNsZSA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVHZXQoIEFydGljbGVJRCA9PiAkSW5kZXhbLTFdICk7CgogICAgICAgICMgbWFyayB0aWNrZXQgdG8gcHJldmVudCBhIGxvb3AKICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiTWFzdGVyVGlja2V0QWN0aW9uOiBBcnRpY2xlQ3JlYXRlIiwKICAgICAgICApOwoKICAgICAgICAjIGRvIG5vdCBwcm9jZXNzIGVtYWlsIGFydGljbGVzIChhbHJlYWR5IGRvbmUgaW4gQXJ0aWNsZVNlbmQgZXZlbnQhKQogICAgICAgIGlmICggJEFydGljbGV7U2VuZGVyVHlwZX0gZXEgJ2FnZW50JyAmJiAkQXJ0aWNsZXtBcnRpY2xlVHlwZX0gZXEgJ2VtYWlsLWV4dGVybmFsJyApIHsKCiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUsIGJ1dCBvbmx5IGZvciBub3RlcwogICAgICAgIGlmICggJEFydGljbGV7QXJ0aWNsZVR5cGV9ICF+IC9ebm90ZS0vaSApIHsKCiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnTWFzdGVyVGlja2V0QWN0aW9uOiBBcnRpY2xlQ3JlYXRlJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJENoZWNrU3VjY2VzczsKCiAgICAgICAgICAgICMgYXJ0aWNsZSBjcmVhdGUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICAgICAgICAgICVBcnRpY2xlLAogICAgICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJ0FkZE5vdGUnLAogICAgICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJ0FkZGVkIGFydGljbGUgYmFzZWQgb24gbWFzdGVyIHRpY2tldC4nLAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHN0YXRlIGFjdGlvbgogICAgZWxzaWYgKCAkUGFyYW17RXZlbnR9IGVxICdUaWNrZXRTdGF0ZVVwZGF0ZScgKSB7CgogICAgICAgICMgbWFyayB0aWNrZXQgdG8gcHJldmVudCBhIGxvb3AKICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiTWFzdGVyVGlja2V0QWN0aW9uOiBUaWNrZXRTdGF0ZVVwZGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnTWFzdGVyVGlja2V0QWN0aW9uOiBUaWNrZXRTdGF0ZVVwZGF0ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISRDaGVja1N1Y2Nlc3M7CgogICAgICAgICAgICAjIHNldCB0aGUgc2FtZSBzdGF0ZQogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRTdGF0ZVNldCgKICAgICAgICAgICAgICAgIFN0YXRlSUQgID0+ICRUaWNrZXR7U3RhdGVJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgZWxzaWYgKCAkUGFyYW17RXZlbnR9IGVxICdUaWNrZXRQZW5kaW5nVGltZVVwZGF0ZScgKSB7CgogICAgICAgICMgbWFyayB0aWNrZXQgdG8gcHJldmVudCBhIGxvb3AKICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiTWFzdGVyVGlja2V0QWN0aW9uOiBUaWNrZXRQZW5kaW5nVGltZVVwZGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnTWFzdGVyVGlja2V0QWN0aW9uOiBUaWNrZXRQZW5kaW5nVGltZVVwZGF0ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgcGVuZGluZyB0aW1lCiAgICAgICAgICAgIG15ICRUaW1lU3RhbXAgPSAnMDAwMC0wMC0wMCAwMDowMDowMCc7CiAgICAgICAgICAgIGlmICggJFRpY2tldHtSZWFsVGlsbFRpbWVOb3RVc2VkfSApIHsKICAgICAgICAgICAgICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKQogICAgICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgICAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpY2tldHtSZWFsVGlsbFRpbWVOb3RVc2VkfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFRpbWVTdGFtcCA9ICIkWWVhci0kTW9udGgtJERheSAkSG91cjokTWluOiRTZWMiOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJFRpbWVTdGFtcCwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIHByaW9yaXR5IGFjdGlvbgogICAgZWxzaWYgKCAkUGFyYW17RXZlbnR9IGVxICdUaWNrZXRQcmlvcml0eVVwZGF0ZScgKSB7CgogICAgICAgICMgbWFyayB0aWNrZXQgdG8gcHJldmVudCBhIGxvb3AKICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiTWFzdGVyVGlja2V0QWN0aW9uOiBUaWNrZXRQcmlvcml0eVVwZGF0ZSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIGFjdGlvbiBvbiBsaW5rZWQgdGlja2V0cwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJENoZWNrU3VjY2VzcyA9ICRTZWxmLT5fTG9vcENoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAnTWFzdGVyVGlja2V0QWN0aW9uOiBUaWNrZXRQcmlvcml0eVVwZGF0ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISRDaGVja1N1Y2Nlc3M7CgogICAgICAgICAgICAjIHNldCB0aGUgc2FtZSBzdGF0ZQogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRQcmlvcml0eVNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkVGlja2V0e1ByaW9yaXR5SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBvd25lciBhY3Rpb24KICAgIGVsc2lmICggJFBhcmFte0V2ZW50fSBlcSAnVGlja2V0T3duZXJVcGRhdGUnICkgewoKICAgICAgICAjIG1hcmsgdGlja2V0IHRvIHByZXZlbnQgYSBsb29wCiAgICAgICAgJFRpY2tldE9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgVGlja2V0SUQgICAgID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIk1hc3RlclRpY2tldEFjdGlvbjogVGlja2V0T3duZXJVcGRhdGUiLAogICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSBhY3Rpb24gb24gbGlua2VkIHRpY2tldHMKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVGlja2V0SURzKSB7CiAgICAgICAgICAgIG15ICRDaGVja1N1Y2Nlc3MgPSAkU2VsZi0+X0xvb3BDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJ01hc3RlclRpY2tldEFjdGlvbjogVGlja2V0T3duZXJVcGRhdGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTmV3VXNlcklEICAgICAgICAgID0+ICRUaWNrZXR7T3duZXJJRH0sCiAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyByZXNwb25zaWJsZSBhY3Rpb24KICAgIGVsc2lmICggJFBhcmFte0V2ZW50fSBlcSAnVGlja2V0UmVzcG9uc2libGVVcGRhdGUnICkgewoKICAgICAgICAjIG1hcmsgdGlja2V0IHRvIHByZXZlbnQgYSBsb29wCiAgICAgICAgJFRpY2tldE9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgVGlja2V0SUQgICAgID0+ICRQYXJhbXtEYXRhfS0+e1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIk1hc3RlclRpY2tldEFjdGlvbjogVGlja2V0UmVzcG9uc2libGVVcGRhdGUiLAogICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSBhY3Rpb24gb24gbGlua2VkIHRpY2tldHMKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVGlja2V0SURzKSB7CiAgICAgICAgICAgIG15ICRDaGVja1N1Y2Nlc3MgPSAkU2VsZi0+X0xvb3BDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJ01hc3RlclRpY2tldEFjdGlvbjogVGlja2V0UmVzcG9uc2libGVVcGRhdGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UmVzcG9uc2libGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTmV3VXNlcklEICAgICAgICAgID0+ICRUaWNrZXR7UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gMCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyB1bmxvY2svbG9jayBhY3Rpb24KICAgIGVsc2lmICggJFBhcmFte0V2ZW50fSBlcSAnVGlja2V0TG9ja1VwZGF0ZScgKSB7CgogICAgICAgICMgbWFyayB0aWNrZXQgdG8gcHJldmVudCBhIGxvb3AKICAgICAgICAkVGlja2V0T2JqZWN0LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte0RhdGF9LT57VGlja2V0SUR9LAogICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiTWFzdGVyVGlja2V0QWN0aW9uOiBUaWNrZXRMb2NrVXBkYXRlIiwKICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gYWN0aW9uIG9uIGxpbmtlZCB0aWNrZXRzCiAgICAgICAgVElDS0VUSUQ6CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewogICAgICAgICAgICBteSAkQ2hlY2tTdWNjZXNzID0gJFNlbGYtPl9Mb29wQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFN0cmluZyAgID0+ICdNYXN0ZXJUaWNrZXRBY3Rpb246IFRpY2tldExvY2tVcGRhdGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkQ2hlY2tTdWNjZXNzOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHNhbWUgc3RhdGUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICA9PiAkVGlja2V0e0xvY2t9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFNlbmROb05vdGlmaWNhdGlvbiA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIHJldHVybiAxOwp9CgpzdWIgX0xvb3BDaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoVGlja2V0SUQgU3RyaW5nIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgIG15IEBMaW5lcyA9ICRUaWNrZXRPYmplY3QtPkhpc3RvcnlHZXQoCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBmb3IgbXkgJERhdGEgKCByZXZlcnNlIEBMaW5lcyApIHsKICAgICAgICBpZiAoICREYXRhLT57SGlzdG9yeVR5cGV9IGVxICdNaXNjJyAmJiAkRGF0YS0+e05hbWV9IGVxICRQYXJhbXtTdHJpbmd9ICkgewogICAgICAgICAgICBteSAkVGltZUNyZWF0ZWQgPSAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJERhdGEtPntDcmVhdGVUaW1lfQogICAgICAgICAgICApICsgMTU7CiAgICAgICAgICAgIG15ICRUaW1lQ3VycmVudCA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCk7CiAgICAgICAgICAgIGlmICggJFRpbWVDcmVhdGVkID4gJFRpbWVDdXJyZW50ICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+SGlzdG9yeUFkZCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gIk1hc3RlclRpY2tldExvb3A6IHN0b3BwZWQiLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX0FydGljbGVIaXN0b3J5VHlwZUdpdmVuKCkKCkNoZWNrIGlmIGhpc3RvcnkgdHlwZSBmb3IgYXJ0aWNsZSBpcyBnaXZlbgoKICAgIG15ICRJc0hpc3RvcnlUeXBlID0gJEV2ZW50T2JqZWN0LT5fQXJ0aWNsZUhpc3RvcnlUeXBlR2l2ZW4oCiAgICAgICAgVGlja2V0SUQgICAgPT4gJFRpY2tldElELAogICAgICAgIEFydGljbGVJRCAgID0+ICRBcnRpY2xlSUQsCiAgICAgICAgSGlzdG9yeVR5cGUgPT4gJ0ZvcndhcmQnLAogICAgICAgIFVzZXJJRCAgICAgID0+ICRVc2VySUQsCiAgICApOwoKUmV0dXJucwoKICAgbXkgJElzSGlzdG9yeVR5cGUgPSAxOwoKPWN1dAoKc3ViIF9BcnRpY2xlSGlzdG9yeVR5cGVHaXZlbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoVGlja2V0SUQgQXJ0aWNsZUlEIEhpc3RvcnlUeXBlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgbXkgJFRpY2tldElEICAgID0gJFBhcmFte1RpY2tldElEfTsKICAgIG15ICRBcnRpY2xlSUQgICA9ICRQYXJhbXtBcnRpY2xlSUR9OwogICAgbXkgJEhpc3RvcnlUeXBlID0gJFBhcmFte0hpc3RvcnlUeXBlfTsKICAgIG15ICRVc2VySUQgICAgICA9ICRQYXJhbXtVc2VySUR9OwoKICAgIG15IEBMaW5lcyA9ICRUaWNrZXRPYmplY3QtPkhpc3RvcnlHZXQoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgIFVzZXJJRCAgID0+ICRVc2VySUQsCiAgICApOwoKICAgIG15ICRNYXRjaGVkID0gMDsKCiAgICByZXR1cm4gJE1hdGNoZWQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSggXEBMaW5lcyApOwoKICAgIEhJU1RPUllEQVRBOgogICAgZm9yIG15ICRIaXN0b3J5RGF0YSAoIHJldmVyc2UgQExpbmVzICkgewogICAgICAgIG5leHQgSElTVE9SWURBVEEgaWYgJEhpc3RvcnlEYXRhLT57QXJ0aWNsZUlEfSAhPSAkQXJ0aWNsZUlEOwogICAgICAgIG5leHQgSElTVE9SWURBVEEgaWYgJEhpc3RvcnlEYXRhLT57SGlzdG9yeVR5cGV9IG5lICRIaXN0b3J5VHlwZTsKCiAgICAgICAgJE1hdGNoZWQgPSAxOwoKICAgICAgICBsYXN0IEhJU1RPUllEQVRBOwogICAgfQoKICAgIHJldHVybiAkTWF0Y2hlZDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBTeXNDb25maWcgb2JqZWN0CiAgICAgICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICAgICAgIyBlbmFibGUgdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlCiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ01hc3RlclNsYXZlOjpBZHZhbmNlZEVuYWJsZWQnLAogICAgICAgICAgICBWYWx1ZSA9PiAxCiAgICAgICAgKTsKCiAgICAgICAgIyBkbyBub3QgY2hlY2sgUmljaFRleHQKICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywKICAgICAgICAgICAgVmFsdWUgPT4gMAogICAgICAgICk7CgogICAgICAgICMgZG8gbm90IGNoZWNrIHNlcnZpY2UgYW5kIHR5cGUKICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpTZXJ2aWNlJywKICAgICAgICAgICAgVmFsdWUgPT4gMAogICAgICAgICk7CiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpY2tldDo6VHlwZScsCiAgICAgICAgICAgIFZhbHVlID0+IDAKICAgICAgICApOwogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdDaGVja0VtYWlsQWRkcmVzc2VzJywKICAgICAgICAgICAgVmFsdWUgPT4gMAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0ZXN0IGN1c3RvbWVyIGZvciB0ZXN0aW5nCiAgICAgICAgbXkgJFRlc3RDdXN0b21lckxvZ2luUGhvbmUgPSAkSGVscGVyLT5UZXN0Q3VzdG9tZXJVc2VyQ3JlYXRlKCk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpY2tldFBob25lIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldFBob25lIik7CgogICAgICAgICMgd2FpdCB1bnRpbCBmb3JtIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJyNEeW5hbWljRmllbGRfTWFzdGVyU2xhdmUnKS5sZW5ndGgiCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgbWFzdGVyIHRlc3QgcGhvbmUgdGlja2V0CiAgICAgICAgbXkgJEF1dG9Db21wbGV0ZVN0cmluZ1Bob25lCiAgICAgICAgICAgID0gIlwiJFRlc3RDdXN0b21lckxvZ2luUGhvbmUgJFRlc3RDdXN0b21lckxvZ2luUGhvbmVcIiA8JFRlc3RDdXN0b21lckxvZ2luUGhvbmVcQGxvY2FsdW5pdHRlc3QuY29tPiAoJFRlc3RDdXN0b21lckxvZ2luUGhvbmUpIjsKICAgICAgICBteSAkTWFzdGVyVGlja2V0U3ViamVjdCA9ICJNYXN0ZXIgVGlja2V0IjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNGcm9tQ3VzdG9tZXIiLCAnY3NzJyApLT5zZW5kX2tleXMoJFRlc3RDdXN0b21lckxvZ2luUGhvbmUpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJsaS51aS1tZW51LWl0ZW06dmlzaWJsZSIpLmxlbmd0aCcgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy8qW3RleHQoKT0nJEF1dG9Db21wbGV0ZVN0cmluZ1Bob25lJ10iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0Rlc3QnKS52YWwoJzJ8fFJhdycpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICAnY3NzJyApLT5zZW5kX2tleXMoJE1hc3RlclRpY2tldFN1YmplY3QpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1JpY2hUZXh0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCdTZWxlbml1bSBib2R5IHRlc3QnKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNEeW5hbWljRmllbGRfTWFzdGVyU2xhdmUnKS52YWwoJ01hc3RlcicpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmljaFRleHQiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAgJ2NzcycgKS0+c3VibWl0KCk7CgogICAgICAgICMgV2FpdCB1bnRpbCBmb3JtIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJmb3JtIikubGVuZ3RoJyApOwoKICAgICAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICAgICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAgICAgIyBnZXQgbWFzdGVyIHRlc3QgcGhvbmUgdGlja2V0IGRhdGEKICAgICAgICBteSAoICRNYXN0ZXJUaWNrZXRJRCwgJE1hc3RlclRpY2tldE51bWJlciApID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgICA9PiAnSEFTSCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlckxvZ2luID0+ICRUZXN0Q3VzdG9tZXJMb2dpblBob25lLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5Jc05vdCgKICAgICAgICAgICAgJE1hc3RlclRpY2tldElELAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgIk1hc3RlciBUaWNrZXRJRCBzaG91bGQgbm90IGJlIHVuZGVmIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5Jc05vdCgKICAgICAgICAgICAgJE1hc3RlclRpY2tldE51bWJlciwKICAgICAgICAgICAgdW5kZWYsCiAgICAgICAgICAgICJNYXN0ZXIgVGlja2V0TnVtYmVyIHNob3VsZCBub3QgYmUgdW5kZWYiLAogICAgICAgICk7CgogICAgICAgICMgYWRkIG5ldyB0ZXN0IGN1c3RvbWVyIGZvciB0ZXN0aW5nCiAgICAgICAgbXkgJFRlc3RDdXN0b21lckxvZ2luc0VtYWlsID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50VGlja2V0RW1haWwgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5nZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0RW1haWwiKTsKCiAgICAgICAgIyB3YWl0IHVudGlsIGZvcm0gaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI0R5bmFtaWNGaWVsZF9NYXN0ZXJTbGF2ZScpLmxlbmd0aCIKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBzbGF2ZSB0ZXN0IGVtYWlsIHRpY2tldAogICAgICAgIG15ICRBdXRvQ29tcGxldGVTdHJpbmdFbWFpbAogICAgICAgICAgICA9ICJcIiRUZXN0Q3VzdG9tZXJMb2dpbnNFbWFpbCAkVGVzdEN1c3RvbWVyTG9naW5zRW1haWxcIiA8JFRlc3RDdXN0b21lckxvZ2luc0VtYWlsXEBsb2NhbHVuaXR0ZXN0LmNvbT4gKCRUZXN0Q3VzdG9tZXJMb2dpbnNFbWFpbCkiOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjRGVzdCcpLnZhbCgnMnx8UmF3JykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUb0N1c3RvbWVyIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRUZXN0Q3VzdG9tZXJMb2dpbnNFbWFpbCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoImxpLnVpLW1lbnUtaXRlbTp2aXNpYmxlIikubGVuZ3RoJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvLypbdGV4dCgpPSckQXV0b0NvbXBsZXRlU3RyaW5nRW1haWwnXSIpLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAgJ2NzcycgKS0+c2VuZF9rZXlzKCdTbGF2ZSBUaWNrZXQnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dCIsICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW0gYm9keSB0ZXN0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjRHluYW1pY0ZpZWxkX01hc3RlclNsYXZlJykudmFsKCdTbGF2ZU9mOiRNYXN0ZXJUaWNrZXROdW1iZXInKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1JpY2hUZXh0IiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgICdjc3MnICktPnN1Ym1pdCgpOwoKICAgICAgICAjIFdhaXQgdW50aWwgZm9ybSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiZm9ybSIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyBnZXQgc2xhdmUgdGVzdCBlbWFpbCB0aWNrZXQgZGF0YQogICAgICAgIG15ICggJFNsYXZlVGlja2V0SUQsICRTbGF2ZVRpY2tldE51bWJlciApID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgICA9PiAnSEFTSCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlckxvZ2luID0+ICRUZXN0Q3VzdG9tZXJMb2dpbnNFbWFpbCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+SXNOb3QoCiAgICAgICAgICAgICRTbGF2ZVRpY2tldElELAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgIlNsYXZlIFRpY2tldElEIHNob3VsZCBub3QgYmUgdW5kZWYiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzTm90KAogICAgICAgICAgICAkU2xhdmVUaWNrZXROdW1iZXIsCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAiU2xhdmUgVGlja2V0TnVtYmVyIHNob3VsZCBub3QgYmUgdW5kZWYiLAogICAgICAgICk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gdGlja2V0IHpvb20gcGFnZSBvZiBjcmVhdGVkIG1hc3RlciB0ZXN0IHRpY2tldAogICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9JE1hc3RlclRpY2tldElEIik7CgogICAgICAgICMgV2FpdCB1bnRpbCBmb3JtIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJmb3JtIikubGVuZ3RoJyApOwoKICAgICAgICAjIHZlcmlmeSBtYXN0ZXItc2xhdmUgdGlja2V0IGxpbmsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRTbGF2ZVRpY2tldE51bWJlciApID4gLTEsCiAgICAgICAgICAgICJTbGF2ZSB0aWNrZXQgbnVtYmVyOiAkU2xhdmVUaWNrZXROdW1iZXIgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBoaXN0b3J5IHZpZXcgb2YgY3JlYXRlZCBtYXN0ZXIgdGVzdCB0aWNrZXQKICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaWNrZXRIaXN0b3J5O1RpY2tldElEPSRNYXN0ZXJUaWNrZXRJRCIpOwoKICAgICAgICAjIHZlcmlmeSBkeW5hbWljIGZpZWxkIG1hc3RlciB0aWNrZXQgdXBkYXRlCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnRmllbGROYW1lPU1hc3RlclNsYXZlO1ZhbHVlPU1hc3RlcicgKSA+IC0xLAogICAgICAgICAgICAiTWFzdGVyIGR5bmFtaWMgZmllbGQgdXBkYXRlIHZhbHVlIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gdGlja2V0IHpvb20gcGFnZSBvZiBjcmVhdGVkIHNsYXZlIHRlc3QgdGlja2V0CiAgICAgICAgJFNlbGVuaXVtLT5nZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0Wm9vbTtUaWNrZXRJRD0kU2xhdmVUaWNrZXRJRCIpOwoKICAgICAgICAjIFdhaXQgdW50aWwgZm9ybSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiZm9ybSIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyB2ZXJpZnkgc2xhdmUtbWFzdGVyIHRpY2tldCBsaW5rCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkTWFzdGVyVGlja2V0TnVtYmVyICkgPiAtMSwKICAgICAgICAgICAgIk1hc3RlciB0aWNrZXQgbnVtYmVyOiAkTWFzdGVyVGlja2V0TnVtYmVyIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gaGlzdG9yeSB2aWV3IG9mIGNyZWF0ZWQgc2xhdmUgdGVzdCB0aWNrZXQKICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaWNrZXRIaXN0b3J5O1RpY2tldElEPSRTbGF2ZVRpY2tldElEIik7CgogICAgICAgICMgdmVyaWZ5IGR5bmFtaWMgZmllbGQgc2xhdmUgdGlja2V0IHVwZGF0ZQogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIkZpZWxkTmFtZT1NYXN0ZXJTbGF2ZTtWYWx1ZT1TbGF2ZU9mOiRNYXN0ZXJUaWNrZXROdW1iZXIiICkgPiAtMSwKICAgICAgICAgICAgIlNsYXZlIGR5bmFtaWMgZmllbGQgdXBkYXRlIHZhbHVlIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIGNyZWF0ZWQgdGVzdCB0aWNrZXRzCiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoICRNYXN0ZXJUaWNrZXRJRCwgJFNsYXZlVGlja2V0SUQgKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0RGVsZXRlKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIC0gZGVsZXRlZCIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICdUaWNrZXQnLAogICAgICAgICk7CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBTeXNDb25maWcgb2JqZWN0CiAgICAgICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICAgICAgIyBlbmFibGUgdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlCiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ01hc3RlclNsYXZlOjpBZHZhbmNlZEVuYWJsZWQnLAogICAgICAgICAgICBWYWx1ZSA9PiAxCiAgICAgICAgKTsKCiAgICAgICAgIyBlbmFibGUgY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldAogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdNYXN0ZXJTbGF2ZTo6VXBkYXRlTWFzdGVyU2xhdmUnLAogICAgICAgICAgICBWYWx1ZSA9PiAxCiAgICAgICAgKTsKCiAgICAgICAgIyBkbyBub3QgY2hlY2sgUmljaFRleHQKICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywKICAgICAgICAgICAgVmFsdWUgPT4gMAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgICAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICAgICAjIGNyZWF0ZSB0d28gdGVzdCB0aWNrZXRzCiAgICAgICAgbXkgQFRpY2tldElEczsKICAgICAgICBteSBAVGlja2V0TnVtYmVyczsKICAgICAgICBmb3IgbXkgJFRpY2tldENyZWF0ZSAoIDEgLi4gMiApIHsKICAgICAgICAgICAgbXkgJFRpY2tldE51bWJlciA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZU51bWJlcigpOwogICAgICAgICAgICBteSAkVGlja2V0SUQgICAgID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlKAogICAgICAgICAgICAgICAgVE4gICAgICAgICAgID0+ICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJ1NlbGVuaXVtIFRpY2tldCcsCiAgICAgICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVHlwZUlEICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgPT4gJ1NlbGVuaXVtQ3VzdG9tZXInLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdjdXN0b21lckBleGFtcGxlLmNvbScsCiAgICAgICAgICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIC0gY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBUaWNrZXRJRHMsICAgICAkVGlja2V0SUQ7CiAgICAgICAgICAgIHB1c2ggQFRpY2tldE51bWJlcnMsICRUaWNrZXROdW1iZXI7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIHRpY2tldCB6b29tIHBhZ2Ugb2YgZmlyc3QgY3JlYXRlZCB0ZXN0IHRpY2tldAogICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9JFRpY2tldElEc1swXSIpOwoKICAgICAgICAjIGNsaWNrIG9uIE1hc3RlclNsYXZlIGFuZCBzd2l0Y2ggd2luZG93CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50VGlja2V0TWFzdGVyU2xhdmUnICldIiktPmNsaWNrKCk7CgogICAgICAgIG15ICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBjaGVjayBBZ2VudFRpY2tldE1hc3RlclNsYXZlIHNjcmVlbgogICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICBxdyhEeW5hbWljRmllbGRfTWFzdGVyU2xhdmUgU3ViamVjdCBSaWNoVGV4dCBGaWxlVXBsb2FkIEFydGljbGVUeXBlSURfU2VhcmNoIHN1Ym1pdFJpY2hUZXh0KQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGZpcnN0IHRlc3QgdGlja2V0IGFzIG1hc3RlciB0aWNrZXQKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNEeW5hbWljRmllbGRfTWFzdGVyU2xhdmUnKS52YWwoJ01hc3RlcicpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmljaFRleHQiLCAnY3NzJyApLT5zZW5kX2tleXMoJ1NlbGVuaXVtIE1hc3RlciBUaWNrZXQnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEBpZD0nc3VibWl0UmljaFRleHQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlswXSApOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIGhpc3RvcnkgdmlldyBvZiBjcmVhdGVkIG1hc3RlciB0ZXN0IHRpY2tldAogICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldEhpc3Rvcnk7VGlja2V0SUQ9JFRpY2tldElEc1swXSIpOwoKICAgICAgICAjIHZlcmlmeSBkeW5hbWljIGZpZWxkIG1hc3RlciB0aWNrZXQgdXBkYXRlCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnRmllbGROYW1lPU1hc3RlclNsYXZlO1ZhbHVlPU1hc3RlcicgKSA+IC0xLAogICAgICAgICAgICAiTWFzdGVyIGR5bmFtaWMgZmllbGQgdXBkYXRlIHZhbHVlIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gdGlja2V0IHpvb20gcGFnZSBvZiBzZWNvbmQgY3JlYXRlZCB0ZXN0IHRpY2tldAogICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9JFRpY2tldElEc1sxXSIpOwoKICAgICAgICAjIGNsaWNrIG9uIE1hc3RlclNsYXZlIGFuZCBzd2l0Y2ggd2luZG93CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50VGlja2V0TWFzdGVyU2xhdmUnICldIiktPmNsaWNrKCk7CgogICAgICAgICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjRHluYW1pY0ZpZWxkX01hc3RlclNsYXZlJykudmFsKCdTbGF2ZU9mOiRUaWNrZXROdW1iZXJzWzBdJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNSaWNoVGV4dCIsICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW0gU2xhdmUgVGlja2V0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAaWQ9J3N1Ym1pdFJpY2hUZXh0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBoaXN0b3J5IHZpZXcgb2YgY3JlYXRlZCBzbGF2ZSB0ZXN0IHRpY2tldAogICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldEhpc3Rvcnk7VGlja2V0SUQ9JFRpY2tldElEc1sxXSIpOwoKICAgICAgICAjIHZlcmlmeSBkeW5hbWljIGZpZWxkIHNsYXZlIHRpY2tldCB1cGRhdGUKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJGaWVsZE5hbWU9TWFzdGVyU2xhdmU7VmFsdWU9U2xhdmVPZjokVGlja2V0TnVtYmVyc1swXSIgKSA+IC0xLAogICAgICAgICAgICAiU2xhdmUgZHluYW1pYyBmaWVsZCB1cGRhdGUgdmFsdWUgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgY3JlYXRlZCB0ZXN0IHRpY2tldHMKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVGlja2V0SURzKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0RGVsZXRlKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIC0gZGVsZXRlZCIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICdUaWNrZXQnLAogICAgICAgICk7CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCiMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUV4cGxpY2l0UGFja2FnZSkKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBnZXQgc2VsZW5pdW0gb2JqZWN0Cm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgICMgZ2V0IGhlbHBlciBvYmplY3QKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgICAgICAgICAgUmVzdG9yZVN5c3RlbUNvbmZpZ3VyYXRpb24gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBTeXNDb25maWcgb2JqZWN0CiAgICAgICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICAgICAgIyBlbmFibGUgdGhlIGFkdmFuY2VkIE1hc3RlclNsYXZlCiAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ01hc3RlclNsYXZlOjpBZHZhbmNlZEVuYWJsZWQnLAogICAgICAgICAgICBWYWx1ZSA9PiAxCiAgICAgICAgKTsKCiAgICAgICAgIyBlbmFibGUgY2hhbmdlIHRoZSBNYXN0ZXJTbGF2ZSBzdGF0ZSBvZiBhIHRpY2tldAogICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdNYXN0ZXJTbGF2ZTo6VXBkYXRlTWFzdGVyU2xhdmUnLAogICAgICAgICAgICBWYWx1ZSA9PiAxCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgICAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICAgICAjIGNyZWF0ZSB0aHJlZSB0ZXN0IHRpY2tldHMKICAgICAgICBteSBAVGlja2V0SURzOwogICAgICAgIG15IEBUaWNrZXROdW1iZXJzOwogICAgICAgIG15ICRUaWNrZXRUaXRsZSA9ICdNYXN0ZXJTbGF2ZSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBmb3IgbXkgJFRpY2tldENyZWF0ZSAoIDEgLi4gMyApIHsKICAgICAgICAgICAgbXkgJFRpY2tldE51bWJlciA9ICRUaWNrZXRPYmplY3QtPlRpY2tldENyZWF0ZU51bWJlcigpOwogICAgICAgICAgICBteSAkVGlja2V0SUQgICAgID0gJFRpY2tldE9iamVjdC0+VGlja2V0Q3JlYXRlKAogICAgICAgICAgICAgICAgVE4gICAgICAgICAgID0+ICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJFRpY2tldFRpdGxlLAogICAgICAgICAgICAgICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgICAgICAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFR5cGVJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgID0+ICdTZWxlbml1bUN1c3RvbWVyJywKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnY3VzdG9tZXJAZXhhbXBsZS5jb20nLAogICAgICAgICAgICAgICAgT3duZXJJRCAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICJUaWNrZXQgSUQgJFRpY2tldElEIC0gY3JlYXRlZCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBUaWNrZXRJRHMsICAgICAkVGlja2V0SUQ7CiAgICAgICAgICAgIHB1c2ggQFRpY2tldE51bWJlcnMsICRUaWNrZXROdW1iZXI7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaWNrZXRTZWFyY2gKICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaWNrZXRTZWFyY2giKTsKCiAgICAgICAgIyB3YWl0IHVudGlsIGZvcm0gaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI1NlYXJjaFByb2ZpbGUnKS5sZW5ndGgiICk7CgogICAgICAgICMgc2VhcmNoIHRlc3QgY3JlYXRlZCB0aWNrZXRzIGJ5IHRpdGxlCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNBdHRyaWJ1dGUnKS52YWwoJ1RpdGxlJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIi5BZGRCdXR0b24iLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiVGl0bGUiLCAgICAgICduYW1lJyApLT5zZW5kX2tleXMoJFRpY2tldFRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEBpZD0nU2VhcmNoRm9ybVN1Ym1pdCddW1xAdmFsdWU9J1J1biBzZWFyY2gnXSIpLT5jbGljaygpOwoKICAgICAgICAjIHNlbGVjdCBmaXJzdCB0ZXN0IGNyZWF0ZWQgdGlja2V0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vaW5wdXRbXEB2YWx1ZT0nJFRpY2tldElEc1swXSddIiktPmNsaWNrKCk7CgogICAgICAgICMgY2xpY2sgb24gYnVsayBhbmQgc3dpdGNoIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiQnVsayIsICdsaW5rX3RleHQnICktPmNsaWNrKCk7CgogICAgICAgIG15ICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKTsKCiAgICAgICAgIyB3YWl0IHVudGlsIGZvcm0gaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnI0R5bmFtaWNGaWVsZF9NYXN0ZXJTbGF2ZScpLmxlbmd0aCIKICAgICAgICApOwoKICAgICAgICAjIHNldCB0ZXN0IHRpY2tldCBhcyBtYXN0ZXIgdGlja2V0CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjRHluYW1pY0ZpZWxkX01hc3RlclNsYXZlJykudmFsKCdNYXN0ZXInKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQGlkPSdzdWJtaXRSaWNoVGV4dCddW1xAdHlwZT0nc3VibWl0J10iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAxICk7CgogICAgICAgICMgc2VsZWN0IHNlY29uZCBhbmQgdGhpcmQgdGVzdCBjcmVhdGVkIHRpY2tldAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2lucHV0W1xAdmFsdWU9JyRUaWNrZXRJRHNbMV0nXSIpLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2lucHV0W1xAdmFsdWU9JyRUaWNrZXRJRHNbMl0nXSIpLT5jbGljaygpOwoKICAgICAgICAjIGNsaWNrIG9uIGJ1bGsgYW5kIHN3aXRjaCBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIkJ1bGsiLCAnbGlua190ZXh0JyApLT5jbGljaygpOwoKICAgICAgICAkSGFuZGxlcyA9ICRTZWxlbml1bS0+Z2V0X3dpbmRvd19oYW5kbGVzKCk7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzFdICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CgogICAgICAgICMgd2FpdCB1bnRpbCBmb3JtIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeQogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJyNEeW5hbWljRmllbGRfTWFzdGVyU2xhdmUnKS5sZW5ndGgiCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgdGVzdCB0aWNrZXRzIGFzIHNsYXZlIHRpY2tldHMKICAgICAgICBteSAkU2xhdmVBdXRvQ29tcGxldGUgPSAiU2xhdmUgb2YgVGlja2V0IyRUaWNrZXROdW1iZXJzWzBdOiAkVGlja2V0VGl0bGUiOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI0R5bmFtaWNGaWVsZF9NYXN0ZXJTbGF2ZScpLnZhbCgnU2xhdmVPZjokVGlja2V0TnVtYmVyc1swXScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAaWQ9J3N1Ym1pdFJpY2hUZXh0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBtYXN0ZXIgdGlja2V0IHpvb20gdmlldwogICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9JFRpY2tldElEc1swXSIpOwoKICAgICAgICAjIHZlcmlmeSBtYXN0ZXItc2xhdmUgdGlja2V0IGxpbmsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRUaWNrZXROdW1iZXJzWzFdICkgPiAtMSwKICAgICAgICAgICAgIlNsYXZlIHRpY2tldCBudW1iZXI6ICRUaWNrZXROdW1iZXJzWzFdIC0gZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGlja2V0TnVtYmVyc1syXSApID4gLTEsCiAgICAgICAgICAgICJTbGF2ZSB0aWNrZXQgbnVtYmVyOiAkVGlja2V0TnVtYmVyc1syXSAtIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSBjcmVhdGVkIHRlc3QgdGlja2V0cwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBUaWNrZXRJRHMpIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXREZWxldGUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRpY2tldCBJRCAkVGlja2V0SUQgLSBkZWxldGVkIgogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgICAgIFR5cGUgPT4gJ1RpY2tldCcsCiAgICAgICAgKTsKICAgIH0KCik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE2IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgdmFyOjpwYWNrYWdlc2V0dXA6Ok9UUlNNYXN0ZXJTbGF2ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcsCik7Cgo9aGVhZDEgTkFNRQoKT1RSU01hc3RlclNsYXZlLnBtIC0gY29kZSB0byBleGVjdXRlIGR1cmluZyBwYWNrYWdlIGluc3RhbGxhdGlvbgoKPWhlYWQxIFNZTk9QU0lTCgpGdW5jdGlvbnMgZm9yIGluc3RhbGxpbmcgdGhlIE9UUlNNYXN0ZXJTbGF2ZSBwYWNrYWdlLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0LiBEbyBub3QgdXNlIGl0IGRpcmVjdGx5LCBpbnN0ZWFkIHVzZToKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgndmFyOjpwYWNrYWdlc2V0dXA6Ok9UUlNNYXN0ZXJTbGF2ZScpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHJlYnVpbGQgWlpaKiBmaWxlcwogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Xcml0ZURlZmF1bHQoKTsKCiAgICAjIGRlZmluZSB0aGUgWlpaIGZpbGVzCiAgICBteSBAWlpaRmlsZXMgPSAoCiAgICAgICAgJ1paWkFBdXRvLnBtJywKICAgICAgICAnWlpaQXV0by5wbScsCiAgICApOwoKICAgICMgcmVsb2FkIHRoZSBaWlogZmlsZXMgKG1vZF9wZXJsIHdvcmthcm91bmQpCiAgICBmb3IgbXkgJFpaWkZpbGUgKEBaWlpGaWxlcykgewoKICAgICAgICBQUkVGSVg6CiAgICAgICAgZm9yIG15ICRQcmVmaXggKEBJTkMpIHsKICAgICAgICAgICAgbXkgJEZpbGUgPSAkUHJlZml4IC4gJy9LZXJuZWwvQ29uZmlnL0ZpbGVzLycgLiAkWlpaRmlsZTsKICAgICAgICAgICAgbmV4dCBQUkVGSVggaWYgIS1mICRGaWxlOwogICAgICAgICAgICBkbyAkRmlsZTsKICAgICAgICAgICAgbGFzdCBQUkVGSVg7CiAgICAgICAgfQogICAgfQoKICAgICMgYWx3YXlzIGRpc2NhcmQgdGhlIGNvbmZpZyBvYmplY3QgYmVmb3JlIHBhY2thZ2UgY29kZSBpcyBleGVjdXRlZCwKICAgICMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNvbmZpZyBvYmplY3Qgd2lsbCBiZSBjcmVhdGVkIG5ld2x5LCBzbyB0aGF0IGl0CiAgICAjIHdpbGwgdXNlIHRoZSByZWNlbnRseSB3cml0dGVuIG5ldyBjb25maWcgZnJvbSB0aGUgcGFja2FnZQogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWydLZXJuZWw6OkNvbmZpZyddLAogICAgKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkcyBsaXN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZHNMaXN0fSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgID0+IDAsCiAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ1RpY2tldCddLAogICAgKTsKCiAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRTZWxmLT57RHluYW1pY0ZpZWxkc0xpc3R9ICkgKSB7CiAgICAgICAgJFNlbGYtPntEeW5hbWljRmllbGRzTGlzdH0gPSBbXTsKICAgIH0KCiAgICAjIGNyZWF0ZSBhIGR5bmFtaWMgZmllbGQgbG9va3VwIHRhYmxlIChieSBuYW1lKQogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZHNMaXN0fSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZC0+e05hbWV9OwogICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGQ7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBpZiB3ZSBnb3QgYW4gaW5zdGFsbGVkIHZlcnNpb24gb2YgTWFzdGVyU2xhdmUsIG1pZ3JhdGUgdGhlIGRhdGEKICAgICMgb3RoZXJ3aXNlIHNldCB0aGUgZHluYW1pYyBmaWVsZHMKICAgIG15ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZElEID0gJFNlbGYtPl9DaGVja01hc3RlclNsYXZlRGF0YSgpOwogICAgaWYgKCRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZElEKSB7CgogICAgICAgICRTZWxmLT5fTWlncmF0ZU9UUlNNYXN0ZXJTbGF2ZSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkSUQgPT4gJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkSUQsCiAgICAgICAgICAgIE1hc3RlclNsYXZlICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5fU2V0RHluYW1pY0ZpZWxkcygpOwogICAgfQoKICAgICMgc2V0IGRhc2hib2FyZCBjb25maWcgaWYgbmVlZGVkCiAgICAkU2VsZi0+X1NldERhc2hib2FyZENvbmZpZygpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlUmVpbnN0YWxsKCkKCnJ1biB0aGUgY29kZSByZWluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVJlaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVSZWluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fU2V0RHluYW1pY0ZpZWxkcygpOwoKICAgICMgc2V0IGRhc2hib2FyZCBjb25maWcgaWYgbmVlZGVkCiAgICAkU2VsZi0+X1NldERhc2hib2FyZENvbmZpZygpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVXBncmFkZTEyNSgpCgpydW4gdGhlIGNvZGUgdXBncmFkZSBwYXJ0IGZvciB2ZXJzaW9ucyBwcmlvciB0byAxLjIuNQoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUxMjUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZTEyNSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdXBncmFkZS9taWdyYXRlIG9ubHkgaW4gY2FzZSB0aGVyZSBpcyBhIGluc3RhbGxlZAogICAgIyB2ZXJzaW9uIG9mIE9UUlNNYXN0ZXJTbGF2ZSB2ZXJzaW9uIDwgMS4yLjUKICAgICRTZWxmLT5fTWlncmF0ZU9UUlNNYXN0ZXJTbGF2ZSgpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiA0LjAuOTEuCgpteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxIHsgICAgIyMgbm8gY3JpdGljCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlncygpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+X1JlbW92ZUR5bmFtaWNGaWVsZHMoKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9TZXREeW5hbWljRmllbGRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBuYW1lcyBmcm9tIFN5c0NvbmZpZwogICAgbXkgJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkID0gJENvbmZpZ09iamVjdC0+R2V0KCdNYXN0ZXJTbGF2ZTo6RHluYW1pY0ZpZWxkJykgfHwgJ01hc3RlclNsYXZlJzsKCiAgICAjIHNldCBhdHRyaWJ1dGVzIG9mIG5ldyBkeW5hbWljIGZpZWxkcwogICAgbXkgJU5ld0R5bmFtaWNGaWVsZHMgPSAoCiAgICAgICAgJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQsCiAgICAgICAgICAgIExhYmVsICAgICAgPT4gJ01hc3RlciBUaWNrZXQnLAogICAgICAgICAgICBGaWVsZFR5cGUgID0+ICdNYXN0ZXJTbGF2ZScsCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAxLAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2V0IE1heEZpZWxkT3JkZXIgKG5lZWRlZCBmb3IgYWRkaW5nIG5ldyBkeW5hbWljIGZpZWxkcykKICAgIG15ICRNYXhGaWVsZE9yZGVyID0gMDsKICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggJFNlbGYtPntEeW5hbWljRmllbGRzTGlzdH0gKSApIHsKICAgICAgICAkTWF4RmllbGRPcmRlciA9IDE7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZHNMaXN0fSB9ICkgewogICAgICAgICAgICBpZiAoIGludCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57RmllbGRPcmRlcn0gPiBpbnQgJE1heEZpZWxkT3JkZXIgKSB7CiAgICAgICAgICAgICAgICAkTWF4RmllbGRPcmRlciA9ICREeW5hbWljRmllbGRDb25maWctPntGaWVsZE9yZGVyfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgIGZvciBteSAkTmV3RmllbGROYW1lICggc29ydCBrZXlzICVOZXdEeW5hbWljRmllbGRzICkgewoKICAgICAgICAjIGNoZWNrIGlmIGR5bmFtaWMgZmllbGQgYWxyZWFkeSBleGlzdHMKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0R5bmFtaWNGaWVsZExvb2t1cH0tPnskTmV3RmllbGROYW1lfSApICkgewoKICAgICAgICAgICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGQgY29uZmlndXJhdGlvbgogICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJFNlbGYtPntEeW5hbWljRmllbGRMb29rdXB9LT57JE5ld0ZpZWxkTmFtZX07CgogICAgICAgICAgICBteSAkVXBkYXRlOwoKICAgICAgICAgICAgIyB1cGRhdGUgZmllbGQgY29uZmlndXJhdGlvbiBpZiBpdCB3YXMgb3RoZXIgdGhhbiBNYXN0ZXJTbGF2ZSAoZS5nLiBEcm9wZG93bikKICAgICAgICAgICAgaWYgKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57RmllbGRUeXBlfSBuZSAnTWFzdGVyU2xhdmUnICkgewogICAgICAgICAgICAgICAgbXkgJElEID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0lEfTsKICAgICAgICAgICAgICAgICV7JER5bmFtaWNGaWVsZENvbmZpZ30gPSAoICV7JER5bmFtaWNGaWVsZENvbmZpZ30sICV7ICROZXdEeW5hbWljRmllbGRzeyROZXdGaWVsZE5hbWV9IH0gKTsKICAgICAgICAgICAgICAgICRVcGRhdGUgPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIGR5bmFtaWMgZmllbGQgZXhpc3RzIG1ha2Ugc3VyZSBpcyB2YWxpZAogICAgICAgICAgICBpZiAoICREeW5hbWljRmllbGRDb25maWctPntWYWxpZElEfSBuZSAnMScgKSB7CiAgICAgICAgICAgICAgICAkVXBkYXRlID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCRVcGRhdGUpIHsKCiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZFVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAleyREeW5hbWljRmllbGRDb25maWd9LAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgICAgICAgICBSZW9yZGVyID0+IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBzZXQgZHluYW1pYyBmaWVsZCAnJE5ld0ZpZWxkTmFtZScgdG8gdmFsaWQhIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJER5bmFtaWNGaWVsZENvbmZpZy0+e0ludGVybmFsRmllbGR9IG5lICcxJyApIHsKCiAgICAgICAgICAgICAgICAjIHVwZGF0ZSBJbnRlcm5hbEZpZWxkIHZhbHVlIG1hbnVhbGx5IHNpbmNlIEFQSSBkb2VzIG5vdCBzdXBwb3J0CiAgICAgICAgICAgICAgICAjIGludGVybmFsX2ZpZWxkIHVwZGF0ZQogICAgICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgICAgICAgICAgVVBEQVRFIGR5bmFtaWNfZmllbGQKICAgICAgICAgICAgICAgICAgICAgICAgU0VUIGludGVybmFsX2ZpZWxkID0gMQogICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJER5bmFtaWNGaWVsZENvbmZpZy0+e0lEfSBdLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHNldCBkeW5hbWljIGZpZWxkICckTmV3RmllbGROYW1lJyBhcyBpbnRlcm5hbCEiLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBjbGVhbiBkeW5hbWljIGZpZWxkIGNhY2hlCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBvdGhlcndpc2UgY3JlYXRlIGl0CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRNYXhGaWVsZE9yZGVyKys7CiAgICAgICAgICAgIG15ICRJRCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEFkZCgKICAgICAgICAgICAgICAgICV7ICROZXdEeW5hbWljRmllbGRzeyROZXdGaWVsZE5hbWV9IH0sCiAgICAgICAgICAgICAgICBGaWVsZE9yZGVyID0+ICRNYXhGaWVsZE9yZGVyLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJElEICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IGFkZCBkeW5hbWljIGZpZWxkICckTmV3RmllbGROYW1lJyEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGVuYWJsZSBkeW5hbWljIGZpZWxkIGZvciB0aWNrZXQgem9vbQogICAgIyBnZXQgb2xkIGNvbmZpZ3VyYXRpb24KICAgIG15ICRXaW5kb3dDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Wm9vbScpOwogICAgbXkgJUR5bmFtaWNGaWVsZHMgPSAleyAkV2luZG93Q29uZmlnLT57RHluYW1pY0ZpZWxkfSB8fCB7fSB9OwoKICAgICREeW5hbWljRmllbGRzeyRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZH0gPQogICAgICAgIGRlZmluZWQgJER5bmFtaWNGaWVsZHN7JE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkfQogICAgICAgID8gJER5bmFtaWNGaWVsZHN7JE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkfQogICAgICAgIDogMTsKCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRab29tIyMjRHluYW1pY0ZpZWxkJywKICAgICAgICBWYWx1ZSA9PiBcJUR5bmFtaWNGaWVsZHMsCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX01pZ3JhdGVPVFJTTWFzdGVyU2xhdmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIG5hbWVzIGZyb20gU3lzQ29uZmlnCiAgICBteSAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ01hc3RlclNsYXZlOjpEeW5hbWljRmllbGQnKQogICAgICAgIHx8ICdNYXN0ZXJTbGF2ZSc7CgogICAgIyBjaGVjayBpZiB0aGVyZSBpc24ndCBhbHJlYWR5IGEgZHluYW1pYyBmaWVsZCB3aXRoIHRoZSBkZXN0aW5lZCBuYW1lCiAgICByZXR1cm4gMSBpZiBJc0hhc2hSZWZXaXRoRGF0YSggJFNlbGYtPntEeW5hbWljRmllbGRMb29rdXB9LT57JE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkfSApOwoKICAgIG15ICRPbGRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZElEOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBjaGVjayBpZiB3ZSBnb3QgYSBEeW5hbWljRmllbGRJRAogICAgaWYgKCAkUGFyYW17RHluYW1pY0ZpZWxkSUR9ICkgewogICAgICAgICRPbGRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZElEID0gJFBhcmFte0R5bmFtaWNGaWVsZElEfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGlmIG5vdDogZ2V0IHRoZSBtaWdyYXRlZCBmaWVsZCBJRCBieSBzZWFyY2hpbmcgZm9yIHBvc3NpYmxlIGRhdGEKICAgICAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAiU0VMRUNUIGRmdi5maWVsZF9pZCBGUk9NIGR5bmFtaWNfZmllbGRfdmFsdWUgZGZ2ICIKICAgICAgICAgICAgICAgIC4gIldIRVJFIGRmdi52YWx1ZV90ZXh0IExJS0UgJ1NsYXZlT2Y6JScgT1IgZGZ2LnZhbHVlX3RleHQgPSAnTWFzdGVyJyIsCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRPbGRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZElEID0gJFJvd1swXTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiB3ZSBmb3VuZCBhIHZhbGlkIElECiAgICByZXR1cm4gMCBpZiAhJE9sZE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkSUQ7CgogICAgaWYgKCAkUGFyYW17TWFzdGVyU2xhdmV9ICkgewogICAgICAgICRTZWxmLT5fTWlncmF0ZU1hc3RlclNsYXZlRGF0YSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkSUQgPT4gJE9sZE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkSUQsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKCiAgICAjIHRyeSB0byBnZXQgdGhlIGR5bmFtaWMgZmllbGQgIGRhdGEgKGZvciBmaWVsZCBvcmRlciBldGMuKQogICAgbXkgJE9sZER5bmFtaWNGaWVsZCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICBJRCA9PiAkT2xkTWFzdGVyU2xhdmVEeW5hbWljRmllbGRJRCwKICAgICk7CgogICAgcmV0dXJuIDAgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRPbGREeW5hbWljRmllbGQpOwoKICAgICMgdXBkYXRlIHRoZSBuYW1lIG9mIHRoZSBkeW5hbWljIGZpZWxkIHRvIE1hc3RlclNsYXZlIGFuZCBzdG9yZSBpdAogICAgIyBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbgogICAgcmV0dXJuIDAgaWYgISREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZFVwZGF0ZSgKICAgICAgICAleyRPbGREeW5hbWljRmllbGR9LAogICAgICAgIE5hbWUgICAgICAgPT4gJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkLAogICAgICAgIExhYmVsICAgICAgPT4gJ01hc3RlciBUaWNrZXQnLAogICAgICAgIEZpZWxkVHlwZSAgPT4gJ01hc3RlclNsYXZlJywKICAgICAgICBPYmplY3RUeXBlID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAxLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICB9LAogICAgICAgIEludGVybmFsRmllbGQgPT4gMSwKICAgICAgICBWYWxpZElEICAgICAgID0+IDEsCiAgICAgICAgUmVvcmRlciAgICAgICA9PiAwLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyB1cGRhdGUgSW50ZXJuYWxGaWVsZCB2YWx1ZSBtYW51YWxseSBzaW5jZSBBUEkgZG9lcyBub3Qgc3VwcG9ydCBpbnRlcm5hbF9maWVsZCB1cGRhdGUKICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgZHluYW1pY19maWVsZAogICAgICAgICAgICBTRVQgaW50ZXJuYWxfZmllbGQgPSAxCiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkT2xkTWFzdGVyU2xhdmVEeW5hbWljRmllbGRJRC0+e0lEfSBdLAogICAgKTsKICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHNldCBkeW5hbWljIGZpZWxkICckTWFzdGVyU2xhdmVEeW5hbWljRmllbGQnIGFzIGludGVybmFsISIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNsZWFuIGR5bmFtaWMgZmllbGQgY2FjaGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgIFR5cGUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICApOwoKICAgICMgYWN0aXZhdGUgdGhlIER5bmFtaWNGaWVsZCBpbiB0aWNrZXQgZGV0YWlscyBibG9jawogICAgbXkgJEtleVN0cmluZyAgICAgICA9ICJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFpvb20iOwogICAgbXkgJEV4aXN0aW5nU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgkS2V5U3RyaW5nKSB8fCB7fTsKICAgIG15ICVWYWx1ZXNUb1NldCAgICAgPSAleyAkRXhpc3RpbmdTZXR0aW5nLT57RHluYW1pY0ZpZWxkfSB8fCB7fSB9OwogICAgJFZhbHVlc1RvU2V0e01hc3RlclNsYXZlfSA9IDE7CiAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgS2V5ICAgPT4gJEtleVN0cmluZyAuICIjIyNEeW5hbWljRmllbGQiLAogICAgICAgIFZhbHVlID0+IFwlVmFsdWVzVG9TZXQsCiAgICApOwp9CgpzdWIgX0NoZWNrTWFzdGVyU2xhdmVEYXRhIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGlmIG5vdDogZ2V0IHRoZSBtaWdyYXRlZCBmaWVsZCBJRCBieSBzZWFyY2hpbmcgZm9yIHBvc3NpYmxlIGRhdGEKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAiU0VMRUNUIGRmdi5maWVsZF9pZCBGUk9NIGR5bmFtaWNfZmllbGRfdmFsdWUgZGZ2IFdIRVJFIGRmdi52YWx1ZV90ZXh0ID0gJ1NsYXZlJyIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgbXkgJE9sZE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkSUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkT2xkTWFzdGVyU2xhdmVEeW5hbWljRmllbGRJRCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRPbGRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZElEOwp9CgpzdWIgX01pZ3JhdGVNYXN0ZXJTbGF2ZURhdGEgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkSUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBEeW5hbWljRmllbGRJRCBmb3IgTWFzdGVyU2xhdmUgZGF0YSBtaWdyYXRpb24hIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IGFsbCB0aGUgc2xhdmUgdGlja2V0IGlkcyB3ZSBoYXZlIHRvIHVwZGF0ZQogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiCiAgICAgICAgICAgIFNFTEVDVCBkZnYub2JqZWN0X2lkCiAgICAgICAgICAgIEZST00gZHluYW1pY19maWVsZF92YWx1ZSBkZnYKICAgICAgICAgICAgV0hFUkUgZGZ2LnZhbHVlX3RleHQgPSAnU2xhdmUnCiAgICAgICAgICAgICAgICBBTkQgZGZ2LmZpZWxkX2lkID0gPyIsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte0R5bmFtaWNGaWVsZElEfSBdLAogICAgICAgIExpbWl0ID0+IDUwLAogICAgKTsKCiAgICBteSBARHluYW1pY0ZpZWxkRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2goIEBEeW5hbWljRmllbGREYXRhLCAkUm93WzBdICk7CiAgICB9CgogICAgIyB0cnkgdG8gZ2V0IHRoZSBkeW5hbWljIGZpZWxkIGRhdGEgZm9yIHNldHRpbmcgbmV3IHZhbHVlCiAgICBteSAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgSUQgPT4gJFBhcmFte0R5bmFtaWNGaWVsZElEfSwKICAgICk7CgogICAgcmV0dXJuIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAjIGxvb3Agb3ZlciB0aGUgdGlja2V0IGlkcyB3ZSBoYXZlIHRvIHVwZGF0ZQogICAgT0xEU0xBVkVTVFlMRToKICAgIGZvciBteSAkVGlja2V0SUQgKEBEeW5hbWljRmllbGREYXRhKSB7CgogICAgICAgICMgZ2V0IGxpbmtlZCBvYmplY3RzCiAgICAgICAgbXkgJExpbmtMaXN0V2l0aERhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdCcpLT5MaW5rTGlzdFdpdGhEYXRhKAogICAgICAgICAgICBPYmplY3QgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgIEtleSAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIFN0YXRlICAgICA9PiAnVmFsaWQnLAogICAgICAgICAgICBUeXBlICAgICAgPT4gJ1BhcmVudENoaWxkJywKICAgICAgICAgICAgRGlyZWN0aW9uID0+ICdTb3VyY2UnLAogICAgICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIHdoYXQgdGlja2V0cyBtaWdodCBiZSB0aGUgbWFzdGVyCiAgICAgICAgbXkgQFBhcmVudFRpY2tldElEcyA9IGtleXMgJXsgJExpbmtMaXN0V2l0aERhdGEtPntUaWNrZXR9LT57UGFyZW50Q2hpbGR9LT57U291cmNlfSB9OwoKICAgICAgICBteSAkVGlja2V0TnVtYmVyOwoKICAgICAgICAjIGlmIHdlIGdvdCBtb3JlIHRoYW4gb25lIHBvc3NpYmxlIG1hc3RlciB0aWNrZXQsIHRyeSB0byBkZXRlcm1pbmUgd2hpY2gKICAgICAgICAjIG9uZSBpcyB0aGUgbWFzdGVyIHdlIGFyZSBsb29raW5nIGZvcgogICAgICAgIGlmICgkI1BhcmVudFRpY2tldElEcykgewoKICAgICAgICAgICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICAgICAgU1FMID0+ICIKICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgZGZ2Lm9iamVjdF9pZAogICAgICAgICAgICAgICAgICAgIEZST00gZHluYW1pY19maWVsZF92YWx1ZSBkZnYKICAgICAgICAgICAgICAgICAgICBXSEVSRSBkZnYudmFsdWVfdGV4dCA9ICdNYXN0ZXInCiAgICAgICAgICAgICAgICAgICAgICAgIEFORCBkZnYuZmllbGRfaWQgPSA/CiAgICAgICAgICAgICAgICAgICAgICAgIEFORCBkZnYub2JqZWN0X2lkIElOICgiCiAgICAgICAgICAgICAgICAgICAgLiBqb2luKCAnLCcsIG1hcCB7ICREQk9iamVjdC0+UXVvdGUoJF8pIH0gQFBhcmVudFRpY2tldElEcyApCiAgICAgICAgICAgICAgICAgICAgLiAnKScsCiAgICAgICAgICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17RHluYW1pY0ZpZWxkSUR9IF0sCiAgICAgICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgQFBhcmVudFRpY2tldElEczsKICAgICAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICAgICBwdXNoKCBAUGFyZW50VGlja2V0SURzLCAkUm93WzBdICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkI1BhcmVudFRpY2tldElEcykgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBkZXRlcm1pbmUgTWFzdGVyVGlja2V0IGZvciBUaWNrZXRJRCAkVGlja2V0SUQgKFBvc3NpYmxlIE1hc3RlcnM6ICIKICAgICAgICAgICAgICAgICAgICAgICAgLiBqb2luICcsICcsIEBQYXJlbnRUaWNrZXRJRHMKICAgICAgICAgICAgICAgICAgICAgICAgLiAiKSEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFRpY2tldE51bWJlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0TnVtYmVyTG9va3VwKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmVudFRpY2tldElEc1swXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGlja2V0TnVtYmVyCiAgICAgICAgICAgICAgICA9ICRMaW5rTGlzdFdpdGhEYXRhLT57VGlja2V0fS0+e1BhcmVudENoaWxkfS0+e1NvdXJjZX0tPnsgJFBhcmVudFRpY2tldElEc1swXSB9LT57VGlja2V0TnVtYmVyfTsKICAgICAgICB9CgogICAgICAgICMgdXBkYXRlIHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIHRvIHZhbGlkCiAgICAgICAgIyBkYXRhIGZvciBPVFJTTWFzdGVyU2xhdmUKICAgICAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJ1NsYXZlT2Y6JyAuICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3Igd2hpbGUgbWlncmF0aW5nIE1hc3RlclNsYXZlIER5bmFtaWNGaWVsZCAnIgogICAgICAgICAgICAgICAgICAgIC4gJFBhcmFte0R5bmFtaWNGaWVsZElEfQogICAgICAgICAgICAgICAgICAgIC4gIicgZm9yIFRpY2tldElEICciCiAgICAgICAgICAgICAgICAgICAgLiAkVGlja2V0SUQKICAgICAgICAgICAgICAgICAgICAuICInISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkbyBzb21lIHJlY3Vyc2lvbiBpZiB3ZSBnb3QgbW9yZSB0aGFuIDUwIHNsYXZlIHRpY2tldHMgaW4gdGhpcyBydW4KICAgICMgZG9pbmcgdGhpcyB0byBoYXZlIGEgYmV0dGVyIHBlcmZvcm1hbmNlCiAgICBpZiAoIDUwID09IHNjYWxhciBARHluYW1pY0ZpZWxkRGF0YSApIHsKICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT5fTWlncmF0ZU1hc3RlclNsYXZlRGF0YSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkSUQgPT4gJFBhcmFte0R5bmFtaWNGaWVsZElEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIHdoaWxlIG1pZ3JhdGluZyBNYXN0ZXJTbGF2ZSBkYXRhISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfUmVtb3ZlRHluYW1pY0ZpZWxkcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgbmFtZXMgZnJvbSBTeXNDb25maWcKICAgIG15ICRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZCA9ICRDb25maWdPYmplY3QtPkdldCgnTWFzdGVyU2xhdmU6OkR5bmFtaWNGaWVsZCcpIHx8ICdNYXN0ZXJTbGF2ZSc7CgogICAgIyBjaGVjayBpZiBkeW5hbWljIGZpZWxkIGFscmVhZHkgZXhpc3RzCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkU2VsZi0+e0R5bmFtaWNGaWVsZExvb2t1cH0tPnskTWFzdGVyU2xhdmVEeW5hbWljRmllbGR9ICkgKSB7CgogICAgICAgICMgZ2V0IHRoZSBmaWVsZCBJRAogICAgICAgIG15ICREeW5hbWljRmllbGRJRCA9ICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZH0tPntJRH07CgogICAgICAgICMgZGVsZXRlIGFsbCBmaWVsZCB2YWx1ZXMKICAgICAgICBteSAkVmFsdWVzRGVsZXRlU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGRWYWx1ZScpLT5BbGxWYWx1ZXNEZWxldGUoCiAgICAgICAgICAgIEZpZWxkSUQgPT4gJER5bmFtaWNGaWVsZElELAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRWYWx1ZXNEZWxldGVTdWNjZXNzKSB7CgogICAgICAgICAgICAjIGRlbGV0ZSBmaWVsZAogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkRGVsZXRlKAogICAgICAgICAgICAgICAgSUQgICAgICA9PiAkRHluYW1pY0ZpZWxkSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgICAgICAgICBSZW9yZGVyID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBkZWxldGUgZHluYW1pYyBmaWVsZCAnJE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkJyEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBkZWxldGUgdmFsdWVzIGZvciBkeW5hbWljIGZpZWxkICckTWFzdGVyU2xhdmVEeW5hbWljRmllbGQnISIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZGlzYWJsZSBTeXNDb25maWcgc2V0dGluZ3MKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKS0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICBWYWxpZCA9PiAwLAogICAgICAgIEtleSAgID0+ICdEeW5hbWljRmllbGRzOjpEcml2ZXIjIyNNYXN0ZXJTbGF2ZScsCiAgICAgICAgVmFsdWUgPT4gewogICAgICAgICAgICBEaXNwbGF5TmFtZSAgPT4gJ01hc3RlciAvIFNsYXZlJywKICAgICAgICAgICAgTW9kdWxlICAgICAgID0+ICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6Ok1hc3RlclNsYXZlJywKICAgICAgICAgICAgQ29uZmlnRGlhbG9nID0+ICdBZG1pbkR5bmFtaWNGaWVsZE1hc3RlclNsYXZlJywKICAgICAgICAgICAgRGlzYWJsZWRBZGQgID0+IDEsCiAgICAgICAgfSwKICAgICk7CiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICAgICBLZXkgICA9PiAnUHJlQXBwbGljYXRpb25Nb2R1bGUjIyNBZ2VudFByZU1hc3RlclNsYXZlJywKICAgICAgICBWYWx1ZSA9PiAnS2VybmVsOjpNb2R1bGVzOjpBZ2VudFByZU1hc3RlclNsYXZlJywKICAgICk7CgogICAgIyBkaXNjYXJkIGNvbmZpZyBvYmplY3QgYW5kIGR5bmFtaWMgZmllbGQgYmFja2VuZCB0byBwcmV2ZW50IGVycm9yIG1lc3NhZ2VzIGR1ZSBtaXNzaW5nIGRyaXZlcgogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWyAnS2VybmVsOjpDb25maWcnLCAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcgXSwKICAgICk7CgogICAgIyBkaXNhYmxlIGR5bmFtaWMgZmllbGQgZm9yIHRpY2tldCB6b29tCiAgICAjIGdldCBvbGQgY29uZmlndXJhdGlvbgogICAgbXkgJFdpbmRvd0NvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6QWdlbnRUaWNrZXRab29tJyk7CiAgICBteSAlRHluYW1pY0ZpZWxkcyA9ICV7ICRXaW5kb3dDb25maWctPntEeW5hbWljRmllbGR9IHx8IHt9IH07CgogICAgaWYgKCBkZWZpbmVkICREeW5hbWljRmllbGRzeyRNYXN0ZXJTbGF2ZUR5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgJER5bmFtaWNGaWVsZHN7JE1hc3RlclNsYXZlRHluYW1pY0ZpZWxkfSA9IDA7CiAgICB9CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgS2V5ICAgPT4gJ1RpY2tldDo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Wm9vbSMjI0R5bmFtaWNGaWVsZCcsCiAgICAgICAgVmFsdWUgPT4gXCVEeW5hbWljRmllbGRzLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9TZXREYXNoYm9hcmRDb25maWcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIG5hbWVzIGZyb20gU3lzQ29uZmlnCiAgICBteSAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ01hc3RlclNsYXZlOjpEeW5hbWljRmllbGQnKSB8fCAnTWFzdGVyU2xhdmUnOwoKICAgICMgaWYgTWFzdGVyU2xhdmUgZHluYW1pYyBmaWVsZCBpcyAnTWFzdGVyU2xhdmUnIHRoZSBjb25maWcgaXMgYWxyZWFkeSBzZXQsIG5vdGhpbmcgZWxzZSB0byBkbwogICAgcmV0dXJuIDEgaWYgKCAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgZXEgJ01hc3RlclNsYXZlJyApOwoKICAgICMgb3RoZXJ3aXNlIHNldCB0aGUgbmV3IGNvbmZpZwogICAgIyBhdHRyaWJ1dGVzIGNvbW1vbiBmb3IgYm90aCBNYXN0ZXIgYW5kIFNsYXZlIHdpZGdldHMKICAgIG15ICVDb21tb25Db25maWcgPSAoCiAgICAgICAgTW9kdWxlICAgICAgICA9PiAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkRhc2hib2FyZFRpY2tldEdlbmVyaWMnLAogICAgICAgIEZpbHRlciAgICAgICAgPT4gJ0FsbCcsCiAgICAgICAgVGltZSAgICAgICAgICA9PiAnQWdlJywKICAgICAgICBMaW1pdCAgICAgICAgID0+IDEwLAogICAgICAgIFBlcm1pc3Npb24gICAgPT4gJ3J3JywKICAgICAgICBCbG9jayAgICAgICAgID0+ICdDb250ZW50TGFyZ2UnLAogICAgICAgIEdyb3VwICAgICAgICAgPT4gJycsCiAgICAgICAgRGVmYXVsdCAgICAgICA9PiAxLAogICAgICAgIENhY2hlVFRMTG9jYWwgPT4gMC41LAogICAgKTsKCiAgICAjIGF0dHJpYnV0ZXMgZm9yIE1hc3RlciB3aWRnZXQKICAgIG15ICVNYXN0ZXJDb25maWcgPSAoCiAgICAgICAgVGl0bGUgICAgICAgPT4gJ01hc3RlciBUaWNrZXRzJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAnQWxsIG1hc3RlciB0aWNrZXRzJywKICAgICAgICBBdHRyaWJ1dGVzICA9PiAnRHluYW1pY0ZpZWxkXycgLiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgLiAnX0VxdWFscz1NYXN0ZXI7JywKICAgICk7CgogICAgIyBhdHRyaWJ1dGVzIGZvciBTbGF2ZSB3aWRnZXQKICAgIG15ICVTbGF2ZUNvbmZpZyA9ICgKICAgICAgICBUaXRsZSAgICAgICA9PiAnU2xhdmUgVGlja2V0cycsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gJ0FsbCBzbGF2ZSB0aWNrZXRzJywKICAgICAgICBBdHRyaWJ1dGVzICA9PiAnRHluYW1pY0ZpZWxkXycgLiAkTWFzdGVyU2xhdmVEeW5hbWljRmllbGQgLiAnX0xpa2U9U2xhdmUqOycsCiAgICApOwoKICAgICMgZ2V0IFN5c0NvbmZpZyBvYmplY3QKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgIyB3cml0ZSBjb25maWd1cmF0aW9ucwogICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgIEtleSAgID0+ICdEYXNoYm9hcmRCYWNrZW5kIyMjMDkwMC1UaWNrZXRNYXN0ZXInLAogICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgJUNvbW1vbkNvbmZpZywKICAgICAgICAgICAgJU1hc3RlckNvbmZpZywKICAgICAgICB9LAogICAgKTsKICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICBLZXkgICA9PiAnRGFzaGJvYXJkQmFja2VuZCMjIzA5MTAtVGlja2V0U2xhdmUnLAogICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgJUNvbW1vbkNvbmZpZywKICAgICAgICAgICAgJVNsYXZlQ29uZmlnLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX01pZ3JhdGVDb25maWdzIHsKCiAgICAjIGNyZWF0ZSBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgIG15ICRDb25maWdPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgbWlncmF0ZSBtYXN0ZXIgc2xhdmUgdGlja2V0IG1lbnUgU3lzQ29uZmlnCiAgICAjIGdldCBzZXR0aW5nIGNvbnRlbnQgZm9yIG1hc3RlciBzbGF2ZSBTeXNDb25maWcKICAgIG15ICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpNZW51TW9kdWxlJyk7CgogICAgaWYgKCAkU2V0dGluZy0+eyc0ODAtTWFzdGVyU2xhdmUnfS0+e01vZHVsZX0gKSB7CgogICAgICAgICMgdXBkYXRlIG1vZHVsZSBsb2NhdGlvbgogICAgICAgICRTZXR0aW5nLT57JzQ4MC1NYXN0ZXJTbGF2ZSd9LT57TW9kdWxlfSA9ICJLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VGlja2V0TWVudTo6R2VuZXJpYyI7CgogICAgICAgICMgc2V0IG5ldyBzZXR0aW5nCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzQ4MC1NYXN0ZXJTbGF2ZScsCiAgICAgICAgICAgIFZhbHVlID0+ICRTZXR0aW5nLT57JzQ4MC1NYXN0ZXJTbGF2ZSd9LAogICAgICAgICk7CiAgICB9CgogICAgIyBtaWdyYXRlIG1hc3RlciBzbGF2ZSBkYXNoYm9hcmQgU3lzQ29uZmlnCiAgICAjIGdldCBzZXR0aW5nIGNvbnRlbnQgZm9yIG1hc3RlciBzbGF2ZSBTeXNDb25maWcKICAgICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdEYXNoYm9hcmRCYWNrZW5kJyk7CgogICAgQkFDS0VORDoKICAgIGZvciBteSAkQmFja2VuZCAocXcoMDkwMC1UaWNrZXRNYXN0ZXIgMDkxMC1UaWNrZXRTbGF2ZSkpIHsKICAgICAgICBuZXh0IEJBQ0tFTkQgaWYgISRTZXR0aW5nLT57JEJhY2tlbmR9LT57TW9kdWxlfTsKCiAgICAgICAgIyB1cGRhdGUgbW9kdWxlIGxvY2F0aW9uCiAgICAgICAgJFNldHRpbmctPnskQmFja2VuZH0tPntNb2R1bGV9ID0gIktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OlRpY2tldEdlbmVyaWMiOwoKICAgICAgICAjIHNldCBuZXcgc2V0dGluZwogICAgICAgIG15ICRTdWNjZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlnSXRlbVVwZGF0ZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gIkRhc2hib2FyZEJhY2tlbmQjIyMkQmFja2VuZCIsCiAgICAgICAgICAgIFZhbHVlID0+ICRTZXR0aW5nLT57JEJhY2tlbmR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMS4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTYwMTE0MDUzODQzKzAxJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+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+MjAxNi0wMS0xNFQwNTozODo0MyswMTowMDwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAxLjE8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTAxLTE0VDA1OjM4OjQzKzAxOjAwPC94bXA6Q3JlYXRlRGF0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L0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjI3OCA2NzkuNjI5IDU0Mi45NTggNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY2Ny42MjkgMTUzLjgxMSA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zMzggNjY3LjYyOSA1NDIuNjk4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjU1LjYyOSAxNzYuMjE2IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjMyMiA2NTUuNjI5IDU0Mi42ODIgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NiAwIFIKL0ggL0kKCj4+CmVuZG9iago2OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDQxMS4zNDYgbnVsbF0KPj4KZW5kb2JqCjcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0My42MjkgMTk4Ljk0NiA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4xNDIgNjQzLjYyOSA1NDIuNTAyIDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAxMDkuODkyIG51bGxdCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MzEuNjI5IDI1MS4zOTMgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MiAwIFIKL0ggL0kKCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuODU5IDYzMS42MjkgNTQyLjIxOSA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNjU3LjIgbnVsbF0KPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYxOS42MjkgMjA5LjAyMiA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4yMTggNjE5LjYyOSA1NDIuNTc4IDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA2MDUuMiBudWxsXQo+PgplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjA3LjYyOSAzMTMuMzI3IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjU4OCA2MDcuNjI5IDU0MS45NDggNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3OCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDU5NS42MjkgMjA0LjkyOSA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS45NTYgNTk1LjYyOSA1NDIuMzE2IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKODQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTgzLjYyOSAxNzMuMzgzIDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM0NCA1ODMuNjI5IDU0Mi43MDQgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NCAwIFIKL0ggL0kKCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDYyNi40IG51bGxdCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzEuNjI5IDE2NC44ODggNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNTgzIDU3MS42MjkgNTQyLjk0MyA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNTU4LjAgbnVsbF0KPj4KZW5kb2JqCjkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1OS42MjkgMjA5LjUwMyA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4wNiA1NTkuNjI5IDU0Mi40MiA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNDg5LjYgbnVsbF0KPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU0Ny42MjkgMjIxLjcxOSA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS45NjIgNTQ3LjYyOSA1NDIuMzIyIDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1MzUuNjI5IDE0OS4zNjcgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NiAwIFIKL0ggL0kKCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMzcyIDUzNS42MjkgNTQyLjczMiA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjEwMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjMuNjI5IDE5OC45NTYgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjE0MiA1MjMuNjI5IDU0Mi41MDIgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA2MDIuNCBudWxsXQo+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxMS42MjkgMTk0LjU5MSA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjE3OCA1MTEuNjI5IDU0Mi41MzggNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ5OS42MjkgMTYxLjc2IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMjc4IDQ5OS42MjkgNTQyLjYzOCA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA2NjcuNTUyIG51bGxdCj4+CmVuZG9iagoxMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDg3LjYyOSAzNzUuMzYzIDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNzQzIDQ4Ny42MjkgNTQxLjEwMyA0OTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA2MDUuMTA3IG51bGxdCj4+CmVuZG9iagoxMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDc1LjYyOSAzMzQuMjM5IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTExIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuNzc1IDQ3NS42MjkgNTQyLjEzNSA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA0OTQuNjYyIG51bGxdCj4+CmVuZG9iagoxMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDYzLjYyOSAzMjguMzQyIDQ3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuODIxIDQ2My42MjkgNTQyLjE4MSA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzODQuMjE3IG51bGxdCj4+CmVuZG9iagoxMTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDUxLjYyOSAzMTYuOTY0IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMjA2IDQ1MS42MjkgNTQxLjU2NiA0NjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzMjEuNzcyIG51bGxdCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDM5LjYyOSAzOTIuOTkzIDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjAzIDQzOS42MjkgNTQwLjk2MyA0NDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAyNTkuMzI3IG51bGxdCj4+CmVuZG9iagoxMjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDI3LjYyOSAzNTMuMzMgNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC45MTggNDI3LjYyOSA1NDEuMjc4IDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDE5Ni44ODIgbnVsbF0KPj4KZW5kb2JqCjEyNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MTUuNjI5IDI3OC42NDYgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS41MSA0MTUuNjI5IDU0MS44NyA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAxMzQuNDM3IG51bGxdCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAyNTYuMTQ1IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuNjg4IDQwMy42MjkgNTQyLjA0OCA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTMzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM5MS42MjkgMjk1LjkyOCA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjM3MyAzOTEuNjI5IDU0MS43MzMgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNjQ5LjU2NCBudWxsXQo+PgplbmRvYmoKMTM2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgMjY4LjAxOCAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjU5NCAzNzkuNjI5IDU0MS45NTQgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNTYxLjExNyBudWxsXQo+PgplbmRvYmoKMTM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2Ny42MjkgMzI5LjkyMyAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjEwMyAzNjcuNjI5IDU0MS40NjMgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNDg0LjY3IG51bGxdCj4+CmVuZG9iagoxNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzU1LjYyOSAzMzcuMTY0IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuMDQ2IDM1NS42MjkgNTQxLjQwNiAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCA0MDguMjIzIG51bGxdCj4+CmVuZG9iagoxNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQzLjYyOSAyODUuNTg5IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuNDU1IDM0My42MjkgNTQxLjgxNSAzNTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDYgMCBSIC9YWVogNzIuMCAzMzEuNzc2IG51bGxdCj4+CmVuZG9iagoxNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzMxLjYyOSAyOTIuODMgMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4zOTcgMzMxLjYyOSA1NDEuNzU3IDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDI1NS4zMjkgbnVsbF0KPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTkuNjI5IDM2Ni44NTcgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44MTEgMzE5LjYyOSA1NDEuMTcxIDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDE5MC44ODIgbnVsbF0KPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDcuNjI5IDM2Ny41OTQgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44MDUgMzA3LjYyOSA1NDEuMTY1IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDExNC40MzUgbnVsbF0KPj4KZW5kb2JqCjE1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyOTUuNjI5IDMzNS42MDEgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4wNTkgMjk1LjYyOSA1NDEuNDE5IDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoxNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjgzLjYyOSA0NTAuNzg0IDI5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMTQ1IDI4My42MjkgNTQwLjUwNSAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA2MzIuMjUgbnVsbF0KPj4KZW5kb2JqCjE2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNzEuNjI5IDQxOS41OTggMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4zOTMgMjcxLjYyOSA1NDAuNzUzIDI4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDU2OC41IG51bGxdCj4+CmVuZG9iagoxNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjU5LjYyOSAzODMuMzQxIDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjggMjU5LjYyOSA1NDEuMDQgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNDkyLjc1IG51bGxdCj4+CmVuZG9iagoxNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjQ3LjYyOSA0NDMuODAyIDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMjAxIDI0Ny42MjkgNTQwLjU2MSAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA0MTcuMCBudWxsXQo+PgplbmRvYmoKMTcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIzNS42MjkgNDE3Ljg4NSAyNDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjQwNyAyMzUuNjI5IDU0MC43NjcgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMzQxLjI1IG51bGxdCj4+CmVuZG9iagoxNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjIzLjYyOSA0MjEuNTUgMjMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4zNzcgMjIzLjYyOSA1NDAuNzM3IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDI1My41IG51bGxdCj4+CmVuZG9iagoxNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjExLjYyOSA0MzEuMzkxIDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMjk5IDIxMS42MjkgNTQwLjY1OSAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCAxNzcuNzUgbnVsbF0KPj4KZW5kb2JqCjE4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxOTkuNjI5IDM4My4yMDIgMjA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42ODEgMTk5LjYyOSA1NDEuMDQxIDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDExNC4wIG51bGxdCj4+CmVuZG9iagoxODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTg3LjYyOSA0MzUuMTU2IDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMjY5IDE4Ny42MjkgNTQwLjYyOSAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTIgMCBSIC9YWVogNzIuMCA2OTYuMCBudWxsXQo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE3NS42MjkgMzkxLjIzIDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjE3IDE3NS42MjkgNTQwLjk3NyAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTIgMCBSIC9YWVogNzIuMCA2MTguMDAxIG51bGxdCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTYzLjYyOSA0NDQuMDkxIDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMTk5IDE2My42MjkgNTQwLjU1OSAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTIgMCBSIC9YWVogNzIuMCA1NTIuMDAyIG51bGxdCj4+CmVuZG9iagoxOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTUxLjYyOSA0MTMuMzEzIDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNDQzIDE1MS42MjkgNTQwLjgwMyAxNjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTIgMCBSIC9YWVogNzIuMCA0NzQuMDAzIG51bGxdCj4+CmVuZG9iagoxOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTM5LjYyOSAzOTMuNjQxIDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNTk5IDEzOS42MjkgNTQwLjk1OSAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTIgMCBSIC9YWVogNzIuMCAzOTYuMDA0IG51bGxdCj4+CmVuZG9iagoxOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTI3LjYyOSA0MzEuNDIxIDEzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMjk5IDEyNy42MjkgNTQwLjY1OSAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTIgMCBSIC9YWVogNzIuMCAzMTguMDA1IG51bGxdCj4+CmVuZG9iagoyMDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTE1LjYyOSA0MjYuNjQgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4zMzcgMTE1LjYyOSA1NDAuNjk3IDEyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MiAwIFIgL1hZWiA3Mi4wIDIyOC4wMDYgbnVsbF0KPj4KZW5kb2JqCjIwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMDMuNjI5IDQxOS4yNTkgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4zOTUgMTAzLjYyOSA1NDAuNzU1IDExMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MiAwIFIgL1hZWiA3Mi4wIDE1MC4wMDcgbnVsbF0KPj4KZW5kb2JqCjIwOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA5MS42MjkgMzk2LjQxIDEwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNTc3IDkxLjYyOSA1NDAuOTM3IDEwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIxMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyMTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzkuNjI5IDM4NS45ODEgODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9C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IFIKNzkgMCBSCjgwIDAgUgo4MiAwIFIKODMgMCBSCjg1IDAgUgo4NiAwIFIKODggMCBSCjg5IDAgUgo5MSAwIFIKOTIgMCBSCjk0IDAgUgo5NSAwIFIKOTcgMCBSCjk4IDAgUgoxMDAgMCBSCjEwMSAwIFIKMTAzIDAgUgoxMDQgMCBSCjEwNiAwIFIKMTA3IDAgUgoxMDkgMCBSCjExMCAwIFIKMTEyIDAgUgoxMTMgMCBSCjExNSAwIFIKMTE2IDAgUgoxMTggMCBSCjExOSAwIFIKMTIxIDAgUgoxMjIgMCBSCjEyNCAwIFIKMTI1IDAgUgoxMjcgMCBSCjEyOCAwIFIKMTMwIDAgUgoxMzEgMCBSCjEzMyAwIFIKMTM0IDAgUgoxMzYgMCBSCjEzNyAwIFIKMTM5IDAgUgoxNDAgMCBSCjE0MiAwIFIKMTQzIDAgUgoxNDUgMCBSCjE0NiAwIFIKMTQ4IDAgUgoxNDkgMCBSCjE1MSAwIFIKMTUyIDAgUgoxNTQgMCBSCjE1NSAwIFIKMTU3IDAgUgoxNTggMCBSCjE2MCAwIFIKMTYxIDAgUgoxNjMgMCBSCjE2NCAwIFIKMTY2IDAgUgoxNjcgMCBSCjE2OSAwIFIKMTcwIDAgUgoxNzIgMCBSCjE3MyAwIFIKMTc1IDAgUgoxNzYgMCBSCjE3OCAwIFIKMTc5IDAgUgoxODEgMCBSCjE4MiAwIFIKMTg0IDAgUgoxODUgMCBSCjE4NyAwIFIKMTg4IDAgUgoxOTAgMCBSCjE5MSAwIFIKMTkzIDAgUgoxOTQgMCBSCjE5NiAwIFIKMTk3IDAgUgoxOTkgMCBSCjIwMCAwIFIKMjAyIDAgUgoyMDMgMCBSCjIwNSAwIFIKMjA2IDAgUgoyMDggMCBSCjIwOSAwIFIKMjExIDAgUgoyMTIgMCBSCl0KZW5kb2JqCjU4IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxIDAgUgogIC9Bbm5vdHMgNjEgMCBSCiAg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Y2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0NvbnRlbnRzIDIzMSAwIFIKPj4KCmVuZG9iagoyMzIgMCBvYmoKNjA3CmVuZG9iagoyMzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTUgMCBSIC9YWVogNzIuMCA2NDkuNiBudWxsXQo+PgplbmRvYmoKMjM1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDcwOS4wMDUgNDIyLjM0NyA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjM3MSA3MDkuMDA1IDU0MC43MzEgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU1IDAgUiAvWFlaIDcyLjAgNTczLjIgbnVsbF0KPj4KZW5kb2JqCjIzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDQwOC44NCA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjQ3OCA2OTcuMDA1IDU0MC44MzggNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU1IDAgUiAvWFlaIDcyLjAgNDk2LjggbnVsbF0KPj4KZW5kb2JqCjI0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2ODUuMDA1IDM5Ni44MjggNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41NzMgNjg1LjAwNSA1NDAuOTMzIDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NSAwIFIgL1hZWiA3Mi4wIDQyMC40IG51bGxdCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjczLjAwNSA0MTEuOTQ4IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNDUzIDY3My4wMDUgNTQwLjgxMyA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTUgMCBSIC9YWVogNzIuMCAzNDQuMCBudWxsXQo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY2MS4wMDUgMzgwLjk2MSA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjY5OSA2NjEuMDA1IDU0MS4wNTkgNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU1IDAgUiAvWFlaIDcyLjAgMjY3LjYgbnVsbF0KPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDM4MS4xNSA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjY5NyA2NDkuMDA1IDU0MS4wNTcgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU1IDAgUiAvWFlaIDcyLjAgMjAzLjIgbnVsbF0KPj4KZW5kb2JqCjI1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDM4Ni44MDggNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42NTMgNjM3LjAwNSA1NDEuMDEzIDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjI1LjAwNSAxMjUuMjUzIDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzAuMTQ0IDYyNS4wMDUgNTQyLjg2NCA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE1IDAgUiAvWFlaIDcyLjAgNjA2LjcyOSBudWxsXQo+PgplbmRvYmoKMjYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxMy4wMDUgMjMzLjk1NCA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI5LjgwOCA2MTMuMDA1IDU0Mi41MjggNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNSAwIFIgL1hZWiA3Mi4wIDQ0Ni4xNzYgbnVsbF0KPj4KZW5kb2JqCjI2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDIyNy45MzkgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOS44NTYgNjAxLjAwNSA1NDIuNTc2IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTUgMCBSIC9YWVogNzIuMCAyOTEuNDc3IG51bGxdCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTg5LjAwNSAzMzkuNDQgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC45NzIgNTg5LjAwNSA1NDEuNjkyIDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTggMCBSIC9YWVogNzIuMCA2NDMuMDgzIG51bGxdCj4+CmVuZG9iagoyNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAyODMuOTA4IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjkuMDYgNTc3LjAwNSA1NDEuNzggNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1NjUuMDA1IDI2MS42MzIgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOS4xMjQgNTY1LjAwNSA1NDEuODQ0IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjQgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTUzLjAwNSAxMzAuMDgxIDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzAuMTA4IDU1My4wMDUgNTQyLjgyOCA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDU0MS4wMDUgMTE5LjAzNiA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMwLjE5IDU0MS4wMDUgNTQyLjkxIDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjcgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKMjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUyOS4wMDUgMTcxLjg3IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjkuOTQ2IDUyOS4wMDUgNTQyLjY2NiA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI3IDAgUiAvWFlaIDcyLjAgNjI0LjQgbnVsbF0KPj4KZW5kb2JqCjI4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTcuMDA1IDE2Ny43ODMgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOS45OCA1MTcuMDA1IDU0Mi43IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAg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G+rvWVJvqL+bot5gZ1Il9QY7ky6pN9iZDEm9of6uVd9Qf8+KejPsPJLU26y//+Er+3V1etbfr6nJJ+x3LJ3bUb/89u1P/r9/A7dol3gKZW5kc3RyZWFtCmVuZG9iagoyMzYgMCBvYmoKWwoyMzUgMCBSCjIzNyAwIFIKMjM5IDAgUgoyNDAgMCBSCjI0MiAwIFIKMjQzIDAgUgoyNDUgMCBSCjI0NiAwIFIKMjQ4IDAgUgoyNDkgMCBSCjI1MSAwIFIKMjUyIDAgUgoyNTQgMCBSCjI1NSAwIFIKMjU3IDAgUgoyNTggMCBSCjI2MCAwIFIKMjYxIDAgUgoyNjMgMCBSCjI2NCAwIFIKMjY2IDAgUgoyNjcgMCBSCjI2OSAwIFIKMjcwIDAgUgoyNzIgMCBSCjI3MyAwIFIKMjc1IDAgUgoyNzYgMCBSCjI3OCAwIFIKMjc5IDAgUgoyODEgMCBSCjI4MiAwIFIKMjg0IDAgUgoyODUgMCBSCjI4NyAwIFIKMjg4IDAgUgpdCmVuZG9iagoyMzMgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0Fubm90cyAyMzYgMCBSCiAgL0NvbnRlbnRzIDI4OSAwIFIKPj4KCmVuZG9iagoyOTAgMCBvYmoKMTA0MjIKZW5kb2JqCjI5MSAwIG9iago8PAogIC9UeXBlIC9Gb250RGVzY3JpcHRvcgogIC9Gb250TmFtZSAvRUFBQUFBK0RlamFWdVNhbnNNb25vCiAgL0ZvbnRCQm94IFstNTU3IC0zNzQgNzE3IDEwNDFdCiAgL0ZsYWdzIDM1CiAgL0NhcEhlaWdodCA3MjkKICAvQXNjZW50IDEwNDEKICAvRGVzY2VudCAtMzc0CiAgL0l0YWxpY0FuZ2xlIDAKICAvU3RlbVYgMAogIC9NaXNzaW5nV2lkdGggNTAwCiAgL0ZvbnRGaWxlMiAyOTIgMCBSCiAgL0NJRFNldCAyOTMgMCBSCj4+CgplbmRv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NyAwIFIgNDMgMCBSIDQ2IDAgUiA0OSAwIFIgNTIgMCBSIDU1IDAgUiAyMTUgMCBSIDIxOCAwIFIgMjIxIDAgUiAyMjQgMCBSIDIyNyAwIFIgMjMwIDAgUiBdID4+CmVuZG9iagoyIDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMSAwIFIKICAvTGFuZyAoZW4pCiAgL01ldGFkYXRhIDcgMCBSCiAgL1BhZ2VMYWJlbHMgOSAwIFIKPj4KCmVuZG9iagozIDAgb2JqCjw8CiAgL0ZvbnQgPDwKICAvRjE5IDI5NCAwIFIKICAvRjE1IDMwMCAwIFIKICAvRjE2IDMwNiAwIFIKPj4KCiAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvSW1hZ2VDIC9UZXh0XQogIC9YT2JqZWN0IDw8CiAgL0ltMSAxMCAwIFIKICAvSW0yIDExIDAgUgogIC9JbTMgMTkgMCBSCiAgL0ltNCAyMCAwIFIKPj4KCiAgL0NvbG9yU3BhY2UgPDwgL0RlZmF1bHRSR0IgNiAwIFIgPj4KCj4+CgplbmRvYmoKOSAwIG9iago8PCAvTnVtcyBbMCA8PCAvUCAoMSkgPj4KIDEgPDwgL1AgKGlpKSA+PgogMiA8PCAvUCAoaWlpKSA+PgogMyA8PCAvUCAoaXYpID4+CiA0IDw8IC9QICgxKSA+PgogNSA8PCAvUCAoMikgPj4KIDYgPDwgL1AgKDMpID4+CiA3IDw8IC9QICg0KSA+PgogOCA8PCAvUCAoNSkgPj4KIDkgPDwgL1AgKDYpID4+CiAxMCA8PCAvUCAoNykgPj4KIDExIDw8IC9QICg4KSA+PgogMTIgPDwgL1AgKDkpID4+CiAxMyA8PCAvUCAoMTApID4+CiAxNCA8PCAvUCAoMTEpID4+CiAxNSA8PCAvUCAoMTIpID4+CiAxNiA8PCAvUCAoMTMpID4+CiAxNyA8PCAvUCAoMTQpID4+CiAxOCA8PCAvUCAoMTUpID4+Cl0gPj4KCmVuZG9iagp4cmVmCjAgMzE4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDI1NDYwOSAwMDAwMCBuIAowMDAwMjU0ODAxIDAwMDAwIG4gCjAwMDAyNTQ5MDYgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTQ1IDAwMDAwIG4gCjAwMDAwMDI4MjMgMDAwMDAgbiAKMDAwMDAwMjg1NiAwMDAwMCBuIAowMDAwMTA2MjA1IDAwMDAwIG4gCjAwMDAyNTUxNDEgMDAwMDAgbiAKMDAwMDAwMzgwNCAwMDAwMCBuIAowMDAwMDUyMzMxIDAwMDAwIG4gCjAwMDAxMDU1OTMgMDAwMDAgbiAKMDAwMDEwNTYxNCAwMDAwMCBuIAowMDAwMTA1NjM0IDAwMDAwIG4gCjAwMDAxMDU2NTYgMDAwMDAgbiAKMDAwMDEwNTY3OCAwMDAwMCBuIAowMDAwMTA2Mzk3IDAwMDAwIG4gCjAwMDAxMjA5NDggMDAwMDAgbiAKMDAwMDEwNjQxNyAwMDAwMCBuIAowMDAwMTEyNTg4IDAwMDAwIG4gCjAwMDAxMTk3NjggMDAwMDAgbiAKMDAwMDExOTc4OSAwMDAwMCBuIAowMDAwMTE5ODEwIDAwMDAwIG4gCjAwMDAxMTk4OTUgMDAwMDAgbiAKMDAwMDEyMDkyMSAwMDAwMCBuIAowMDAwMTIwMDMzIDAwMDAwIG4gCjAwMDAxMjExNTggMDAwMDAgbiAKMDAwMDEyMjg0MiAwMDAwMCBuIAowMDAwMTIxMTc4IDAwMDAwIG4gCjAwMDAxMjMwMzUgMDAwMDAgbiAKMDAwMDEyNDI3NiAwMDAwMCBuIAowMDAwMTIzMDU2IDAwMDAwIG4gCjAwMDAxMjQ0NjkgMDAwMDAgbiAKMDAwMDEyNTM1MSAwMDAwMCBuIAowMDAwMTI0NDkwIDAwMDAwIG4gCjAwMDAxMjU1NDQgMDAwMDAgbiAKMDAwMDEyNzEwOCAwMDAwMCBuIAowMDAwMTI1NTY0IDAwMDAwIG4gCjAwMDAxMjU2NTkgMDAwMDAgbiAKMDAwMDEyNzA4MSAwMDAwMCBuIAowMDAwMTI1Nzk1IDAwMDAwIG4gCjAwMDAxMjczMTggMDAwMDAgbiAKMDAwMDEyOTM3NCAwMDAwMCBuIAowMDAwMTI3MzM5IDAwMDAwIG4gCjAwMDAxMjk1NjcgMDAwMDAgbiAKMDAwMDEzMTQ1NSAwMDAwMCBuIAowMDAwMTI5NTg4IDAwMDAwIG4gCjAwMDAxMzE2NDggMDAwMDAgbiAKMDAwMDEzMzQyMSAwMDAwMCBuIAowMDAwMTMxNjY5IDAwMDAwIG4gCjAwMDAxMzM2MTQgMDAwMDAgbiAKMDAwMDEzNTQ3OSAwMDAwMCBuIAowMDAwMTMzNjM1IDAwMDAwIG4gCjAwMDAxMzU2NzIgMDAwMDAgbiAKMDAwMDEzNzI5OSAwMDAwMCBuIAowMDAwMTM1NjkzIDAwMDAwIG4gCjAwMDAxMzc0OTIgMDAwMDAgbiAKMDAwMDE4MDcxOCAwMDAwMCBuIAowMDAwMTM3NTEzIDAwMDAwIG4gCjAwMDAxMzc1OTEgMDAwMDAgbiAKMDAwMDE3OTkwOCAwMDAwMCBuIAowMDAwMTM3NzI3IDAwMDAwIG4gCjAwMDAxMzc4NjcgMDAwMDAgbiAKMDAwMDEzNzk0NSAwMDAwMCBuIAowMDAwMTM4MDgyIDAwMDAwIG4gCjAwMDAxMzgyMjIgMDAwMDAgbiAKMDAwMDEzODMwMCAwMDAwMCBuIAowMDAwMTM4NDM4IDAwMDAwIG4gCjAwMDAxMzg1NzggMDAwMDAgbiAKMDAwMDEzODY1OCAwMDAwMCBuIAowMDAwMTM4Nzk2IDAwMDAwIG4gCjAwMDAxMzg5MzYgMDAwMDAgbiAKMDAwMDEzOTAxNiAwMDAwMCBuIAowMDAwMTM5MTU0IDAwMDAwIG4gCjAwMDAxMzkyOTQgMDAwMDAgbiAKMDAwMDEzOTM3MiAwMDAwMCBuIAowMDAwMTM5NTEwIDAwMDAwIG4gCjAwMDAxMzk2NTAgMDAwMDAgbiAKMDAwMDEzOTcyOCAwMDAwMCBuIAowMDAwMTM5ODY2IDAwMDAwIG4gCjAwMDAxNDAwMDYgMDAwMDAgbiAKMDAwMDE0MDA4NCAwMDAwMCBuIAowMDAwMTQwMjIxIDAwMDAwIG4gCjAwMDAxNDAzNjEgMDAwMDAgbiAKMDAwMDE0MDQzOSAwMDAwMCBuIAowMDAwMTQwNTc3IDAwMDAwIG4gCjAwMDAxNDA3MTcgMDAwMDAgbiAKMDAwMDE0MDc5NSAwMDAwMCBuIAowMDAwMTQwOTMzIDAwMDAwIG4gCjAwMDAxNDEwNzMgMDAwMDAgbiAKMDAwMDE0MTE1MSAwMDAwMCBuIAowMDAwMTQxMjg5IDAwMDAwIG4gCjAwMDAxNDE0MjcgMDAwMDAgbiAKMDAwMDE0MTUwNSAwMDAwMCBuIAowMDAwMTQxNjQzIDAwMDAwIG4gCjAwMDAxNDE3ODMgMDAwMDAgbiAKMDAwMDE0MTg2MSAwMDAwMCBuIAowMDAwMTQxOTk4IDAwMDAwIG4gCjAwMDAxNDIxMzggMDAwMDAgbiAKMDAwMDE0MjIxNiAwMDAwMCBuIAowMDAwMTQyMzU1IDAwMDAwIG4gCjAwMDAxNDI0OTYgMDAwMDAgbiAKMDAwMDE0MjU3NSAwMDAwMCBuIAowMDAwMTQyNzE1IDAwMDAwIG4gCjAwMDAxNDI4NTcgMDAwMDAgbiAKMDAwMDE0MjkzNiAwMDAwMCBuIAowMDAwMTQzMDc0IDAwMDAwIG4gCjAwMDAxNDMyMTYgMDAwMDAgbiAKMDAwMDE0MzI5NyAwMDAwMCBuIAowMDAwMTQzNDM3IDAwMDAwIG4gCjAwMDAxNDM1NzkgMDAwMDAgbiAKMDAwMDE0MzY2MCAwMDAwMCBuIAowMDAwMTQzODAwIDAwMDAwIG4gCjAwMDAxNDM5NDIgMDAwMDAgbiAKMDAwMDE0NDAyMyAwMDAwMCBuIAowMDAwMTQ0MTYzIDAwMDAwIG4gCjAwMDAxNDQzMDUgMDAwMDAgbiAKMDAwMDE0NDM4NiAwMDAwMCBuIAowMDAwMTQ0NTI2IDAwMDAwIG4gCjAwMDAxNDQ2NjggMDAwMDAgbiAKMDAwMDE0NDc0OSAwMDAwMCBuIAowMDAwMTQ0ODg5IDAwMDAwIG4gCjAwMDAxNDUwMzEgMDAwMDAgbiAKMDAwMDE0NTExMiAwMDAwMCBuIAowMDAwMTQ1MjUxIDAwMDAwIG4gCjAwMDAxNDUzOTMgMDAwMDAgbiAKMDAwMDE0NTQ3NCAwMDAwMCBuIAowMDAwMTQ1NjE0IDAwMDAwIG4gCjAwMDAxNDU3NTQgMDAwMDAgbiAKMDAwMDE0NTgzNSAwMDAwMCBuIAowMDAwMTQ1OTc1IDAwMDAwIG4gCjAwMDAxNDYxMTcgMDAwMDAgbiAKMDAwMDE0NjE5NiAwMDAwMCBuIAowMDAwMTQ2MzM2IDAwMDAwIG4gCjAwMDAxNDY0NzggMDAwMDAgbiAKMDAwMDE0NjU1OSAwMDAwMCBuIAowMDAwMTQ2Njk5IDAwMDAwIG4gCjAwMDAxNDY4NDEgMDAwMDAgbiAKMDAwMDE0NjkyMiAwMDAwMCBuIAowMDAwMTQ3MDYyIDAwMDAwIG4gCjAwMDAxNDcyMDQgMDAwMDAgbiAKMDAwMDE0NzI4NCAwMDAwMCBuIAowMDAwMTQ3NDI0IDAwMDAwIG4gCjAwMDAxNDc1NjYgMDAwMDAgbiAKMDAwMDE0NzY0NyAwMDAwMCBuIAowMDAwMTQ3Nzg3IDAwMDAwIG4gCjAwMDAxNDc5MjkgMDAwMDAgbiAKMDAwMDE0ODAxMCAwMDAwMCBuIAowMDAwMTQ4MTQ5IDAwMDAwIG4gCjAwMDAxNDgyOTEgMDAwMDAgbiAKMDAwMDE0ODM3MiAwMDAwMCBuIAowMDAwMTQ4NTEyIDAwMDAwIG4gCjAwMDAxNDg2NTQgMDAwMDAgbiAKMDAwMDE0ODczNSAwMDAwMCBuIAowMDAwMTQ4ODc1IDAwMDAwIG4gCjAwMDAxNDkwMTcgMDAwMDAgbiAKMDAwMDE0OTA5OCAwMDAwMCBuIAowMDAwMTQ5MjM4IDAwMDAwIG4gCjAwMDAxNDkzODAgMDAwMDAgbiAKMDAwMDE0OTQ1OSAwMDAwMCBuIAowMDAwMTQ5NTk5IDAwMDAwIG4gCjAwMDAxNDk3NDEgMDAwMDAgbiAKMDAwMDE0OTgyMSAwMDAwMCBuIAowMDAwMTQ5OTYxIDAwMDAwIG4gCjAwMDAxNTAxMDMgMDAwMDAgbiAKMDAwMDE1MDE4MiAwMDAwMCBuIAowMDAwMTUwMzIyIDAwMDAwIG4gCjAwMDAxNTA0NjIgMDAwMDAgbiAKMDAwMDE1MDU0MiAwMDAwMCBuIAowMDAwMTUwNjgyIDAwMDAwIG4gCjAwMDAxNTA4MjQgMDAwMDAgbiAKMDAwMDE1MDkwMyAwMDAwMCBuIAowMDAwMTUxMDQzIDAwMDAwIG4gCjAwMDAxNTExODUgMDAwMDAgbiAKMDAwMDE1MTI2NSAwMDAwMCBuIAowMDAwMTUxNDA0IDAwMDAwIG4gCjAwMDAxNTE1NDYgMDAwMDAgbiAKMDAwMDE1MTYyNSAwMDAwMCBuIAowMDAwMTUxNzY1IDAwMDAwIG4gCjAwMDAxNTE5MDcgMDAwMDAgbiAKMDAwMDE1MTk4NyAwMDAwMCBuIAowMDAwMTUyMTI3IDAwMDAwIG4gCjAwMDAxNTIyNjkgMDAwMDAgbiAKMDAwMDE1MjM0OCAwMDAwMCBuIAowMDAwMTUyNDg4IDAwMDAwIG4gCjAwMDAxNTI2MzAgMDAwMDAgbiAKMDAwMDE1MjcwOSAwMDAwMCBuIAowMDAwMTUyODQ4IDAwMDAwIG4gCjAwMDAxNTI5OTAgMDAwMDAgbiAKMDAwMDE1MzA3MSAwMDAwMCBuIAowMDAwMTUzMjExIDAwMDAwIG4gCjAwMDAxNTMzNTMgMDAwMDAgbiAKMDAwMDE1MzQzNCAwMDAwMCBuIAowMDAwMTUzNTc0IDAwMDAwIG4gCjAwMDAxNTM3MTYgMDAwMDAgbiAKMDAwMDE1Mzc5NyAwMDAwMCBuIAowMDAwMTUzOTM3IDAwMDAwIG4gCjAwMDAxNTQwNzkgMDAwMDAgbiAKMDAwMDE1NDE2MCAwMDAwMCBuIAowMDAwMTU0MzAwIDAwMDAwIG4gCjAwMDAxNTQ0NDIgMDAwMDAgbiAKMDAwMDE1NDUyMyAwMDAwMCBuIAowMDAwMTU0NjYyIDAwMDAwIG4gCjAwMDAxNTQ4MDQgMDAwMDAgbiAKMDAwMDE1NDg4NSAwMDAwMCBuIAowMDAwMTU1MDI1IDAwMDAwIG4gCjAwMDAxNTUxNjcgMDAwMDAgbiAKMDAwMDE1NTI0OCAwMDAwMCBuIAowMDAwMTU1Mzg2IDAwMDAwIG4gCjAwMDAxNTU1MjcgMDAwMDAgbiAKMDAwMDE1NTYwNiAwMDAwMCBuIAowMDAwMTU1NzQ0IDAwMDAwIG4gCjAwMDAxNTU4ODQgMDAwMDAgbiAKMDAwMDE4MDkyOSAwMDAwMCBuIAowMDAwMTgzMDUyIDAwMDAwIG4gCjAwMDAxODA5NTIgMDAwMDAgbiAKMDAwMDE4MzI0NyAwMDAwMCBuIAowMDAwMTg1MjYyIDAwMDAwIG4gCjAwMDAxODMyNjkgMDAwMDAgbiAKMDAwMDE4NTQ1NyAwMDAwMCBuIAowMDAwMTg2NTExIDAwMDAwIG4gCjAwMDAxODU0NzkgMDAwMDAgbiAKMDAwMDE4NjcwNiAwMDAwMCBuIAowMDAwMTg3ODc5IDAwMDAwIG4gCjAwMDAxODY3MjcgMDAwMDAgbiAKMDAwMDE4ODA3NCAwMDAwMCBuIAowMDAwMTg5ODc2IDAwMDAwIG4gCjAwMDAxODgwOTYgMDAwMDAgbiAKMDAwMDE5MDA3MSAwMDAwMCBuIAowMDAwMTkwNzc4IDAwMDAwIG4gCjAwMDAxOTAwOTMgMDAwMDAgbiAKMDAwMDE5MDk3MyAwMDAwMCBuIAowMDAwMjA4MzA0IDAwMDAwIG4gCjAwMDAxOTA5OTQgMDAwMDAgbiAKMDAwMDE5MTA3MyAwMDAwMCBuIAowMDAwMjA3OTk1IDAwMDAwIG4gCjAwMDAxOTEyMTMgMDAwMDAgbiAKMDAwMDE5MTM1NSAwMDAwMCBuIAowMDAwMTkxNDM0IDAwMDAwIG4gCjAwMDAxOTE1NzMgMDAwMDAgbiAKMDAwMDE5MTcxNSAwMDAwMCBuIAowMDAwMTkxNzk0IDAwMDAwIG4gCjAwMDAxOTE5MzQgMDAwMDAgbiAKMDAwMDE5MjA3NiAwMDAwMCBuIAowMDAwMTkyMTU1IDAwMDAwIG4gCjAwMDAxOTIyOTUgMDAwMDAgbiAKMDAwMDE5MjQzNyAwMDAwMCBuIAowMDAwMTkyNTE2IDAwMDAwIG4gCjAwMDAxOTI2NTYgMDAwMDAgbiAKMDAwMDE5Mjc5OCAwMDAwMCBuIAowMDAwMTkyODc3IDAwMDAwIG4gCjAwMDAxOTMwMTYgMDAwMDAgbiAKMDAwMDE5MzE1OCAwMDAwMCBuIAowMDAwMTkzMjM3IDAwMDAwIG4gCjAwMDAxOTMzNzcgMDAwMDAgbiAKMDAwMDE5MzUxOSAwMDAwMCBuIAowMDAwMTkzNTk5IDAwMDAwIG4gCjAwMDAxOTM3MzggMDAwMDAgbiAKMDAwMDE5Mzg4MCAwMDAwMCBuIAowMDAwMTkzOTYyIDAwMDAwIG4gCjAwMDAxOTQxMDIgMDAwMDAgbiAKMDAwMDE5NDI0NCAwMDAwMCBuIAowMDAwMTk0MzI2IDAwMDAwIG4gCjAwMDAxOTQ0NjYgMDAwMDAgbiAKMDAwMDE5NDYwOCAwMDAwMCBuIAowMDAwMTk0NjkwIDAwMDAwIG4gCjAwMDAxOTQ4MjkgMDAwMDAgbiAKMDAwMDE5NDk3MSAwMDAwMCBuIAowMDAwMTk1MDUzIDAwMDAwIG4gCjAwMDAxOTUxOTMgMDAwMDAgbiAKMDAwMDE5NTMzMyAwMDAwMCBuIAowMDAwMTk1NDEzIDAwMDAwIG4gCjAwMDAxOTU1NTIgMDAwMDAgbiAKMDAwMDE5NTY5NCAwMDAwMCBuIAowMDAwMTk1Nzc0IDAwMDAwIG4gCjAwMDAxOTU5MTMgMDAwMDAgbiAKMDAwMDE5NjA1NSAwMDAwMCBuIAowMDAwMTk2MTM1IDAwMDAwIG4gCjAwMDAxOTYyNzQgMDAwMDAgbiAKMDAwMDE5NjQxNCAwMDAwMCBuIAowMDAwMTk2NDk0IDAwMDAwIG4gCjAwMDAxOTY2MzMgMDAwMDAgbiAKMDAwMDE5Njc3NSAwMDAwMCBuIAowMDAwMTk2ODU1IDAwMDAwIG4gCjAwMDAxOTY5OTUgMDAwMDAgbiAKMDAwMDE5NzEzNCAwMDAwMCBuIAowMDAwMTk3MjE0IDAwMDAwIG4gCjAwMDAxOTczNTMgMDAwMDAgbiAKMDAwMDE5NzQ5NSAwMDAwMCBuIAowMDAwMjA4NTE3IDAwMDAwIG4gCjAwMDAyMDg1NDAgMDAwMDAgbiAKMDAwMDIwODgwMyAwMDAwMCBuIAowMDAwMjE5MDM5IDAwMDAwIG4gCjAwMDAyMTkxMzcgMDAwMDAgbiAKMDAwMDIxOTMwMiAwMDAwMCBuIAowMDAwMjE5Njk3IDAwMDAwIG4gCjAwMDAyMjAxOTAgMDAwMDAgbiAKMDAwMDIyMDQ1MSAwMDAwMCBuIAowMDAwMjM3MDQwIDAwMDAwIG4gCjAwMDAyMzcxNDUgMDAwMDAgbiAKMDAwMDIzNzMwNiAwMDAwMCBuIAowMDAwMjM3ODUzIDAwMDAwIG4gCjAwMDAyMzg1MDYgMDAwMDAgbiAKMDAwMDIzODc3MiAwMDAwMCBuIAowMDAwMjUzMDgzIDAwMDAwIG4gCjAwMDAyNTMxODMgMDAwMDAgbiAKMDAwMDI1MzM0OSAwMDAwMCBuIAowMDAwMjUzODM1IDAwMDAwIG4gCjAwMDAyNTQ0MTcgMDAwMDAgbiAKMDAwMDI1NDQ0MCAwMDAwMCBuIAowMDAwMjU0NDYwIDAwMDAwIG4gCjAwMDAyNTQ0ODEgMDAwMDAgbiAKMDAwMDI1NDUwNCAwMDAwMCBuIAowMDAwMjU0NTI0IDAwMDAwIG4gCjAwMDAyNTQ1NDUgMDAwMDAgbiAKMDAwMDI1NDU2OCAwMDAwMCBuIAowMDAwMjU0NTg4IDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvUm9vdCAyIDAgUgogIC9JbmZvIDQgMCBSCiAgL0lEIFs8NzgwNjlBNEIyQjIyQTU3QUZDRjE1MzYzOEY0QkFDRDQ+IDw3ODA2OUE0QjJCMjJBNTdBRkNGMTUzNjM4RjRCQUNEND5dCiAgL1NpemUgMzE4Cj4+CnN0YXJ0eHJlZgoyNTU0OTQKJSVFT0YK