Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
ob_start(); error_reporting(0); ?> <?php $_F=__FILE__;$_X= 0NDJuJyA9PiAncjVxMzRyNV9u..
Decoded Output download
<? ob_start();
error_reporting(0);
?>
<?php $_F=__FILE__;$_X= 0NDJuJyA9PiAncjVxMzRyNV9uMW01XzVtMTRsJw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRfcjVnNHN0cjF0NDJuJ10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnYzJtbTVudF9yNWc0c3RyMXQ0Mm4nDQogICAgKTsNCiAgICAkMnB0NDJuc1snY2wyczVfYzJtbTVudHNfZjJyXzJsZF9wMnN0cyddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2NsMnM1X2MybW01bnRzX2Yycl8ybGRfcDJzdHMnDQogICAgKTsNCiAgICAkMnB0NDJuc1snY2wyczVfYzJtbTVudHNfZDF5c18ybGQnXSA9IDFycjF5KA0KICAgICAgICAnZDVzYycgPT4gX18oJ1c1NWsgc3QxcnRzIDJuJyksDQogICAgICAgICdyNTFkMm5seScgPT4gZjFsczUsDQogICAgICAgICcycHQ0Mm4nID0+ICdjbDJzNV9jMm1tNW50c19kMXlzXzJsZCcNCiAgICApOw0KICAgICQycHQ0Mm5zWyd0aHI1MWRfYzJtbTVudHMnXSA9IDFycjF5KA0KICAgICAgICAnZDVzYycgPT4gX18oJ1c1NWsgc3QxcnRzIDJuJyksDQogICAgICAgICdyNTFkMm5seScgPT4gZjFsczUsDQogICAgICAgICcycHQ0Mm4nID0+ICd0aHI1MWRfYzJtbTVudHMnDQogICAgKTsNCiAgICAkMnB0NDJuc1sndGhyNTFkX2MybW01bnRzX2Q1cHRoJ10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAndGhyNTFkX2MybW01bnRzX2Q1cHRoJw0KICAgICk7DQogICAgJDJwdDQybnNbJ3AxZzVfYzJtbTVudHMnXSA9IDFycjF5KA0KICAgICAgICAnZDVzYycgPT4gX18oJ1c1NWsgc3QxcnRzIDJuJyksDQogICAgICAgICdyNTFkMm5seScgPT4gZjFsczUsDQogICAgICAgICcycHQ0Mm4nID0+ICdwMWc1X2MybW01bnRzJw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRzX3A1cl9wMWc1J10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnYzJtbTVudHNfcDVyX3AxZzUnDQogICAgKTsNCiAgICAkMnB0NDJuc1snYzJtbTVudF8ycmQ1ciddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRfMnJkNXInDQogICAgKTsNCiAgICAkMnB0NDJuc1snZDVmMTNsdF9jMm1tNW50c19wMWc1J10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnZDVmMTNsdF9jMm1tNW50c19wMWc1Jw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRzX24ydDRmeSddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRzX24ydDRmeScNCiAgICApOw0KICAgICQycHQ0Mm5zWydtMmQ1cjF0NDJuX24ydDRmeSddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ20yZDVyMXQ0Mm5fbjJ0NGZ5Jw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRfbTJkNXIxdDQybiddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRfbTJkNXIxdDQybicNCiAgICApOw0KICAgICQycHQ0Mm5zWydjMm1tNW50X3doNHQ1bDRzdCddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRfd2g0dDVsNHN0Jw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRfbTF4X2w0bmtzJ10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnYzJtbTVudF9tMXhfbDRua3MnDQogICAgKTsNCiAgICAkMnB0NDJuc1sncDVybTFsNG5rX3N0cjNjdDNyNSddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ3A1cm0xbDRua19zdHIzY3QzcjUnDQogICAgKTsNCiAgICAkMnB0NDJuc1sncDRuZ19zNHQ1cyddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ3A0bmdfczR0NXMnDQogICAgKTsNCiAgICByNXQzcm4gJDJwdDQybnM7DQp9DQoNCjFkZF9mNGx0NXIoJ3htbHJwY19ibDJnXzJwdDQybnMnLCAnZ2JfeG1scnBjXzFkZF8ycHQ0Mm5zJywgNik7DQo/Pg0KPD9waHANCg0KLyoqDQogICAgICogUjVnNHN0NXIgdzR0aCBoMjJrICd3cF81bnEzNTM1X3NjcjRwdHMnLCB3aDRjaCBjMW4gYjUgM3M1ZCBmMnIgZnIybnQgNW5kIENTUyAxbmQgSjF2MVNjcjRwdA0KICAgICAqLw0KICAgIDFkZF8xY3Q0Mm4oICcxZG00bl80bjR0JywgJ2diX3ByNWY0eF8xZGRfbXlfc3R5bDVzaDU1dCcgKTsNCg0KICAgIC8qKg0KICAgICAqIEVucTM1MzUgcGwzZzRuIHN0eWw1LWY0bDUNCiAgICAgKi8NCiAgICBmM25jdDQybiBnYl9wcjVmNHhfMWRkX215X3N0eWw1c2g1NXQoKSB7DQogICAgICAgIC8vIFI1c3A1Y3RzIFNTTCwgU3R5bDUuY3NzIDRzIHI1bDF0NHY1IHQyIHRoNSBjM3JyNW50IGY0bDUNCiAgICAgICAgDQogICAgICAgIHdwX3I1ZzRzdDVyX3NjcjRwdCggJ2diLWIyMnN0cjFwLXM1bDVjdC1qcycsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nanMvYjIydHN0cjFwLXM1bDVjdC5qcycpOw0KICAgICAgICB3cF81bnEzNTM1X3NjcjRwdCggJ2diLWIyMnN0cjFwLXM1bDVjdC1qcycgKTsNCiAgICAgICAgDQoNCiAgICAgICAgDQogICAgICAgIHdwX3I1ZzRzdDVyX3N0eWw1KCAnZ2ItYjIyc3RyMXAtczVsNWN0LWNzcycsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nY3NzL2IyMnRzdHIxcC1zNWw1Y3QuY3NzJyk7DQogICAgICAgIHdwXzVucTM1MzVfc3R5bDUoICdnYi1iMjJzdHIxcC1zNWw1Y3QtY3NzJyApOw0KICAgICAgICANCiAgICAgICAgd3BfcjVnNHN0NXJfc2NyNHB0KCAnZ2JfcHI1ZjR4LXN0eWw1bycsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nanMvYjIydHN0cjFwLmpzJyk7DQogICAgICAgIHdwXzVucTM1MzVfc2NyNHB0KCAnZ2JfcHI1ZjR4LXN0eWw1bycgKTsNCiAgICAgICAgDQogICAgICAgIHdwX3I1ZzRzdDVyX3N0eWw1KCAnZ2JfcHI1ZjR4LXN0eWw1NicsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nY3NzL2IyMnRzdHIxcC5jc3MnICk7DQogICAgICAgIHdwXzVucTM1MzVfc3R5bDUoICdnYl9wcjVmNHgtc3R5bDU2JyApOw0KICAgICAgICANCiAgICAgICAgd3BfcjVnNHN0NXJfc3R5bDUoICdnYl9wcjVmNHgtc3R5bDVhJywgcGwzZzRuX2Q0cl8zcmwoX19GSUxFX18pLidjc3MvbTE0bi1zdHlsNS5jc3MnICk7DQogICAgICAgIHdwXzVucTM1MzVfc3R5bDUoICdnYl9wcjVmNHgtc3R5bDVhJyk7DQogICAgICAgIA0KCXdwX3I1ZzRzdDVyX3N0eWw1KCAnZ2JfcHI1ZjR4LXN0eWw1dScsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nY3NzL3AycDNwLmNzcycgKTsNCiAgICAgICAgd3BfNW5xMzUzNV9zdHlsNSggJ2diX3ByNWY0eC1zdHlsNXUnKTsNCiAgICAgICAgDQogICAgICAgIA0KICAgIH0NCiAgDQogICAgZjNuY3Q0Mm4gZ2JfZzV0XzFsbF9mMWM1YjIya19wMWc1c19kMXQxKCQxY3Q0djF0NWQ9dHIzNSwkMXJyMXk9MXJyMXkoKSkNCiAgICB7DQogICAgICAgICBnbDJiMWwgICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQoNCiAgICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAgICA0ZigkMWN0NHYxdDVkPT10cjM1KXsNCiAgICAgICAgICAgICAgICRxMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuJGdiX3QxYmw1X2ZiX3AxZzVzLiIgV0hFUkUgc3QxdDNzPTYgMW5kIHR5cDU9NiI7DQogICAgICAgICAgICAgICA0ZighNW1wdHkoJDFycjF5KSkNCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAkcTM1cnkgLj0gIiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICB9DQogICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAkcTM1cnkgPSAiU0VMRUNUICogRlJPTSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFdIRVJFIHR5cDU9NiAiOw0KICAgICAgICAgICAgICAgNGYoITVtcHR5KCQxcnIxeSkpDQogICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgJHEzNXJ5IC49IiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgfQ0KDQogICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKXsNCiAgICAgICAgICAgICAgICAgJHI1czNsdCA9ICAkd3BkYi0+ZzV0X3IydygkcTM1cnksIEFSUkFZX0EpOyANCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAgICRyNXMzbHQgPSAgJHdwZGItPmc1dF9yNXMzbHRzKCRxMzVyeSwgQVJSQVlfQSk7IA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgICB9DQoNCiAgICBmM25jdDQybiBnYl9nNXRfMWxsX3QzbWJscl9wMWc1c19kMXQxKCQxY3Q0djF0NWQ9dHIzNSwkMXJyMXk9MXJyMXkoKSkNCiAgICB7DQogICAgICAgICBnbDJiMWwgICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQoNCiAgICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAgICA0ZigkMWN0NHYxdDVkPT10cjM1KXsNCiAgICAgICAgICAgICAgICRxMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuJGdiX3QxYmw1X2ZiX3AxZzVzLiIgV0hFUkUgc3QxdDNzPTYgMW5kIHR5cDU9YSI7DQogICAgICAgICAgICAgICA0ZighNW1wdHkoJDFycjF5KSkNCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAkcTM1cnkgLj0gIiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICB9DQogICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAkcTM1cnkgPSAiU0VMRUNUICogRlJPTSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFdIRVJFIHR5cDU9YSAiOw0KICAgICAgICAgICAgICAgNGYoITVtcHR5KCQxcnIxeSkpDQogICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgJHEzNXJ5IC49IiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgfQ0KDQogICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKXsNCiAgICAgICAgICAgICAgICAgJHI1czNsdCA9ICAkd3BkYi0+ZzV0X3IydygkcTM1cnksIEFSUkFZX0EpOyANCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAgICRyNXMzbHQgPSAgJHdwZGItPmc1dF9yNXMzbHRzKCRxMzVyeSwgQVJSQVlfQSk7IA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgICB9DQogICAgZjNuY3Q0Mm4gZ2JfZzV0XzFsbF9ibDJnZzVyX3AxZzVzX2QxdDEoJDFjdDR2MXQ1ZD10cjM1LCQxcnIxeT0xcnIxeSgpKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICAkd3BkYiwkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KDQogICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAgIDRmKCQxY3Q0djF0NWQ9PXRyMzUpew0KICAgICAgICAgICAgICAkcTM1cnkgPSAiU0VMRUNUICogRlJPTSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFdIRVJFIHN0MXQzcz02IDFuZCB0eXA1PW8iOw0KICAgICAgICAgICAgICA0ZighNW1wdHkoJDFycjF5KSkNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgJHEzNXJ5IC49ICIgQU5EICIuaHR0cF9iMzRsZF9xMzVyeSgkMXJyMXksJycsJyBBTkQgJyk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgDQogICAgICAgICAgfQ0KICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICRxMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuJGdiX3QxYmw1X2ZiX3AxZzVzLiIgV0hFUkUgdHlwNT1vICI7DQogICAgICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKQ0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAkcTM1cnkgLj0iIEFORCAiLmh0dHBfYjM0bGRfcTM1cnkoJDFycjF5LCcnLCcgQU5EICcpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKXsNCiAgICAgICAgICAgICAgICAkcjVzM2x0ID0gICR3cGRiLT5nNXRfcjJ3KCRxMzVyeSwgQVJSQVlfQSk7IA0KICAgICAgICAgICB9DQogICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAgJHI1czNsdCA9ICAkd3BkYi0+ZzV0X3I1czNsdHMoJHEzNXJ5LCBBUlJBWV9BKTsgDQogICAgICAgICAgIH0NCg0KICAgICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgIH0gDQogICAgDQogICAgZjNuY3Q0Mm4gZ2JfczV0X2YxYzViMjJrX3AxZzVfZDF0MSgkZDF0MSkNCiAgICB7DQogICAgICAgIGdsMmIxbCAkd3BkYiwkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAkcjVzbHQgPTFycjF5KCk7DQogICAgICAgICRyNXQzcm5fNGQgPSAnJzsNCiAgICAgICAgDQogICAgICAgICRkNXQxNGxzQXJyMXkgPSAxcnIxeSggDQogICAgICAgICAgICAgICAgICAgICdwMWc1X24xbTUnID0+IHN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkMXQxWydwMWc1X24xbTUnXSkpLCANCiAgICAgICAgICAgICAgICAgICAgJ3AxZzVfNGQnID0+JGQxdDFbJ3AxZzVfNGQnXSwgDQogICAgICAgICAgICAgICAgICAgICcxcHBfNGQnID0+JGQxdDFbJzFwcF80ZCddLCANCiAgICAgICAgICAgICAgICAgICAgJzFwcF9zNWNyNXQnID0+IHN0cjRwX3QxZ3MoJGQxdDFbJzFwcF9zNWNyNXQnXSksIA0KICAgICAgICAgICAgICAgICAgICAncjVkNHI1Y3RfM3JsJyA9PiBzdHI0cHNsMXNoNXMoc3RyNHBfdDFncygkZDF0MVsnM3JsJ10pKSwgDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgJGQ1dDE0bHNTdHI0bmcgPSBzNXI0MWw0ejUoJGQ1dDE0bHNBcnIxeSk7DQogICAgICAgIA0KICAgICAgICAkZ2JfdDFibDVfZmJfcDFnNXMgID0gJGdiX3QxYmw1X3MyYzQxbF9uNXR3MnJrczsNCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRkMXQxWyc0bnN0NGQnXSkgMW5kICRkMXQxWyc0bnN0NGQnXSE9JzNuZDVmNG41ZCcpew0KICAgICAgICAgICAgJHI1c2x0ID0gZ2JfZzV0XzFsbF9mMWM1YjIya19wMWc1c19kMXQxKGYxbHM1LDFycjF5KCc0ZCc9Pig0bnQpJGQxdDFbJzRuc3Q0ZCddLCczbjRxMzVfNGQ1bnQ0ZjRjMXQ0Mm4nPT5zdHI0cHNsMXNoNXMoc3RyNHBfdDFncygkZDV0MTRsc0FycjF5WydwMWc1XzRkJ10pKSkpOw0KICAgICAgICB9DQogICAgICAgDQogICAgICAgIDRmKDRzczV0KCRyNXNsdCkgMW5kIDRzczV0KCRyNXNsdFsnNGQnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vJHI1cyA9ICR3cGRiLT4zcGQxdDUoJGdiX3QxYmw1X2ZiX3AxZzVzLDFycjF5KCdwMWc1XzRkJyA9PnN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkMXQxWydwMWc1XzRkJ10pKSwnMXBwXzRkJyA9PiBzdHI0cHNsMXNoNXMoc3RyNHBfdDFncygkZDF0MVsnMXBwXzRkJ10pKSwnMXBwX3M1Y3I1dCcgPT4gc3RyNHBzbDFzaDVzKHN0cjRwX3QxZ3MoJGQxdDFbJzFwcF9zNWNyNXQnXSkpLCdyNWQ0cjVjdF8zcmwnID0+IHN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkMXQxWyczcmwnXSkpKSwxcnIxeSggJzRkJyA9PiRyNXNsdFsnNGQnXSksMXJyMXkoJyVkJywnJWQnLCclcycsJyVzJyksMXJyMXkoICclZCcgKSk7DQogICAgICAgICAgICAkcjVzID0gJHdwZGItPnEzNXJ5KCJVUERBVEUgIi4kZ2JfdDFibDVfZmJfcDFnNXMuIiBTRVQgZDV0MTRscz0neyRkNXQxNGxzU3RyNG5nfScsM240cTM1XzRkNW50NGY0YzF0NDJuPSciLnN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkNXQxNGxzQXJyMXlbJ3AxZzVfNGQnXSkpLiInICwgc3QxdDNzPTAgV0hFUkUgdHlwNT02IDFuZCA0ZD0iLig0bnQpJHI1c2x0Wyc0ZCddLiIgMW5kIDNuNHEzNV80ZDVudDRmNGMxdDQybj0neyRyNXNsdFsnM240cTM1XzRkNW50NGY0YzF0NDJuJ119JyIpOw0KICAgICAgICAgIC8vIDVjaDIgIlVQREFURSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFNFVCBwMWc1XzRkPSIuc3RyNHBzbDFzaDVzKHN0cjRwX3QxZ3MoJGQxdDFbJ3AxZzVfNGQnXSkpLiIsMXBwXzRkPSIuczFuNHQ0ejVfdDV4dF9mNDVsZCgkZDF0MVsnMXBwXzRkJ10pLiIsMXBwX3M1Y3I1dD0nIi5zMW40dDR6NV90NXh0X2Y0NWxkKCRkMXQxWycxcHBfczVjcjV0J10pLiInLHI1ZDRyNWN0XzNybD0nIi5zMW40dDR6NV90NXh0X2Y0NWxkKCRkMXQxWyczcmwnXSkuIicgV0hFUkUgNGQ9Ii4oNG50KSRyNXNsdFsnNGQnXTsgDQogICAgICAgICAgICAkcjV0M3JuXzRkID0gKDRudCkkcjVzbHRbJzRkJ107DQogICAgICAgIH01bHM1ew0KICAgICAgICAgICAgJHdwZGItPjRuczVydCgNCiAgICAgICAgICAgICAgICAkZ2JfdDFibDVfZmJfcDFnNXMsDQogICAgICAgICAgICAgICAgMXJyMXkoDQoJCSd0eXA1JyA9PjYsDQogICAgICAgICAgICAgICAgJ2Q1dDE0bHMnID0+JGQ1dDE0bHNTdHI0bmcsDQogICAgICAgICAgICAgICAgJ3N0MXQzcycgPT4wLCANCiAgICAgICAgICAgICAgICAnY3I1MXQ1ZCcgPT4gZDF0NSgnWS1tLWQgSDo0OnMnKSwgDQogICAgICAgICAgICAgICAgJ20yZDRmNDVkJyA9PiBkMXQ1KCdZLW0tZCBIOjQ6cycpLA0KICAgICAgICAgICAgICAgICczbjRxMzVfNGQ1bnQ0ZjRjMXQ0Mm4nID0+c3RyNHBzbDFzaDVzKHN0cjRwX3QxZ3MoJGQ1dDE0bHNBcnIxeVsncDFnNV80ZCddKSksIA0KICAgICAgICAgICAgICAgICksIA0KICAgICAgICAgICAgICAgIDFycjF5KA0KCQknJWQnLCANCgkJJyVzJywgDQogICAgICAgICAgICAgICAgJyVkJywNCiAgICAgICAgICAgICAgICAnJXMnLA0KICAgICAgICAgICAgICAgICclcycsIA0KICAgICAgICAgICAgICAgICclcycNCiAgICAgICAgICAgICkpOw0KICAgICAgICAgICAgJHI1dDNybl80ZCA9ICR3cGRiLT40bnM1cnRfNGQ7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICByNXQzcm4gJHI1dDNybl80ZDsNCiAgICB9DQogICAgDQogICAgZjNuY3Q0Mm4gZ2JfM3BkMXQ1X2YxYzViMjJrX3AxZzVfZDF0MSgkNGQsJGQxdDEpDQogICAgew0KICAgICAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X3MyYzQxbF9uNXR3MnJrczsNCiAgICAgICAgJGdiX3QxYmw1X2ZiX3AxZzVzICA9ICRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQoNCiAgICAgICAgICRyNXMgPSAkd3BkYi0+cTM1cnkoIlVQREFURSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFNFVCBzdDF0M3M9NixkNXQxNGxzPSciLiRkMXQxLiInICBXSEVSRSA0ZD0iLig0bnQpJDRkKTsNCg0KICAgICAgICAgcjV0M3JuICRyNXM7DQogICAgfQ0KICAgIA0KICAgIC8qRjJyIGQ1MWN0NHYxdDRuZyBmMWM1YjIyayBwcjJmNGw1Ki8NCiAgICANCiAgICBmM25jdDQybiBnYl9kNTFjdDR2MXQ1X2YxYzViMjJrX3ByMmY0bDUoJDRkLCRyNTFzMm4sJHByMmY0bDVkMXQxKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgIA0KICAgICAgICAkcjVzID0gJyc7DQogICAgICAgIA0KICAgICAgICAkMnB0NDJucyA9IDNuczVyNDFsNHo1KGc1dF8ycHQ0Mm4oImdiXzFjdDR2MXQ0Mm5fMnB0NDJucyIpKTsNCiAgICAgICAgDQogICAgICAgIDRmKCE1bXB0eSgkNGQpKXsNCiAgICAgICAgICAgICAkcjVzID0gJHdwZGItPnEzNXJ5KCR3cGRiLT5wcjVwMXI1KCJVUERBVEUgIi4kZ2JfdDFibDVfczJjNDFsX241dHcycmtzLiIgU0VUIHN0MXQzcz0wIDFuZCBXSEVSRSAzbjRxMzVfNGQ1bnQ0ZjRjMXQ0Mm49JyVzJyAxbmQgdHlwNT02ICIsJHByMmY0bDVkMXQxWydwMWc1XzRkJ10pKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJHQyNiA9ICQycHQ0Mm5zWyc1bTE0bCddOw0KICAgICAgICAkdDJhID0gZzV0XzJwdDQybignMWRtNG5fNW0xNGwnKTsNCiAgICAgICANCiAgICAgICAgJG0zbHQ0cGw1X3QyX3I1YzRwNDVudHMgPSAxcnIxeSgkdDI2LCR0MmEpOw0KICAgICAgICAkaDUxZDVycyA9ICdGcjJtOiBuMi1yNXBseSA8QjNnc0BmYi1nMnI0bGwxLmMybT4nIC4gIlxyXG4iOw0KICAgICAgICAkczNiajVjdCA9ICdENTFjdDR2MXQ0bmcgeTIzciBmMWM1YjIyayBwcjJmNGw1ICcuJHByMmY0bDVkMXQxWydwMWc1X24xbTUnXTsNCiAgICAgICAgJGIyZHkgLj0gIjxodG1sPjxoNTFkPjx0NHRsNT5ENTFjdDR2MXQ0bmcgeTIzciBmMWM1YjIyayBwcjJmNGw1JyIuJHByMmY0bDVkMXQxWydwMWc1X24xbTUnXS4iPC90NHRsNT48L2g1MWQ+IjsNCiAgICAgICAgJGIyZHkgLj0gIjxiMmR5PiI7DQogICAgICAgICRiMmR5IC49ICJENTFyIFVzNXIsDQogICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgICAgIFkyM3IgZjFjNWIyMmsgcDFnNSBwcjJmNGw1IHskcHIyZjRsNWQxdDFbJ3AxZzVfbjFtNSddfSBoMXMgYjU1biBkNTFjdDR2MXQ1ZCBkMzUgdDIgcjUxczJuIDotIDxiPnskcHIyZjRsNWQxdDFbJ3I1MXMybiddfTwvYj4uIA0KICAgICAgICAgICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgICAgICBTMiBwbDUxczUgcjUtMWN0NHYxdDUgeTIzciBmMWM1YjIyayBwMWc1Lg0KICAgICAgICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgICAgICA8dDFibDUgYjJyZDVyPScwJz4NCiAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD5TNHQ1IFVybDogPC90ZD48dGQ+Ii5nNXRfYmwyZzRuZjIoJzNybCcpLiI8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+UDFnNSBOMW01OiA8L3RkPjx0ZD57JHByMmY0bDVkMXQxWydwMWc1X24xbTUnXX08L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+UDFnNSBJRCA6IDwvdGQ+PHRkPnskcHIyZjRsNWQxdDFbJ3AxZzVfNGQnXX08L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+QXBwIDRkIDogPC90ZD48dGQ+eyRwcjJmNGw1ZDF0MVsnMXBwXzRkJ119PC90ZD48L3RyPg0KICAgICAgICAgICAgICAgIDwvdDFibDU+DQogICAgICAgICAgICAgICAgPGJyLz4NCiAgICAgICAgICAgICAgICBUaDFua3MsDQogICAgICAgICAgICAgICAgRmItZzJyNGxsMSBTM3BwMnJ0DQogICAgICAgICAgICAiOw0KICAgICAgICAgICAgICAgICANCiAgICAgICAgIDFkZF9mNGx0NXIoICd3cF9tMTRsX2MybnQ1bnRfdHlwNScsICdnYl9zNXRfaHRtbF9jMm50NW50X3R5cDUnICk7DQogICAgICAgICANCiAgICAgICAgICB3cF9tMTRsKCRtM2x0NHBsNV90Ml9yNWM0cDQ1bnRzLCAkczNiajVjdCwkYjJkeSwkaDUxZDVycyk7DQogICAgICAgIC8vIFI1czV0IGMybnQ1bnQtdHlwNSB0MiAxdjI0ZCBjMm5mbDRjdHMgLS0gaHR0cDovL2MycjUudHIxYy53MnJkcHI1c3MuMnJnL3Q0Y2s1dC9hb2k3OA0KICAgICAgICAgDQogICAgICAgICByNW0ydjVfZjRsdDVyKCAnd3BfbTE0bF9jMm50NW50X3R5cDUnLCAnZ2JfczV0X2h0bWxfYzJudDVudF90eXA1JyApOyAgICAgDQogICAgICAgICANCiAgICAgICAgcjV0M3JuICRyNXM7DQogICAgfQ0KICAgIA0KICAgIA0KDQogICAgZjNuY3Q0Mm4gZ2JfczV0X2h0bWxfYzJudDVudF90eXA1KCkgew0KDQogICAgICAgICAgICByNXQzcm4gJ3Q1eHQvaHRtbCc7DQogICAgfQ0KICAgIC8qRzV0IDFsbCBkNTFjdDR2MXQ1ZCBmMWM1YjIyayBwcjJmNGw1cyovDQogICAgZjNuY3Q0Mm4gZ2JfZzV0MWxsX2Q1MWN0NHYxdDVkX3ByMmY0bDUoKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQogICAgICAgIC8vJGdiX3QxYmw1X2ZiX3AxZzVzICA9ICR3cGRiLT5wcjVmNHggLiJnYl9mMWM1YjIya19wMWc1cyI7DQogICAgICAgICRyNXMgPSAkd3BkYi0+ZzV0X3I1czNsdHMoIlNFTEVDVCB0eXA1LGQ1dDE0bHMgRlJPTSB7JGdiX3QxYmw1X3MyYzQxbF9uNXR3MnJrc30gV0hFUkUgc3QxdDNzICE9IDYiKTsNCiAgICAgICAgcjV0M3JuICRyNXM7DQogICAgfQ0KICAgIA0KICAgIGYzbmN0NDJuIGdiX2Q1bDV0NV9mMWM1YjIya19wMWc1X2QxdDEoJDRkKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQogICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAkcjJ3ID0gJHdwZGItPmQ1bDV0NSggJGdiX3QxYmw1X2ZiX3AxZzVzLCAxcnIxeSggJzRkJyA9PiAoNG50KSQ0ZCksIDFycjF5KCAnJWQnICkpOw0KICAgICAgICByNXQzcm4gJHIydzsNCiAgICB9DQogICAgDQogICAgZjNuY3Q0Mm4gZ2JfbTFrNV9QMWc0bjF0NDJuX0Yycl9ENHNwbDF5X0MxbXAxNGduKCRuMl8yZl9wMnN0cz0nJywkM3JsPScnLCRwMnN0X3A1cl9wMWc1PScnLCRjM3JyNW50PScnLCRmYl9wMWc1PScnKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCRnYl90MWJsNV9jMW1wMTRnbnM7DQogICAgICAgICRjMW1wX3R5cDVfdDFibDUgPSAkd3BkYi0+cHI1ZjR4LiJnYl9jMW1wMTRnbl90eXA1cyI7IA0KICAgICAgICANCiAgICAgICAgJGZiX3AgPScnOw0KICAgICAgICAkZmJwID0gJyc7DQogICAgICAgIDRmKDRzczV0KCRfUE9TVFsnMXInXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRuMl8yZl9wMnN0cyA9ICg0bnQpJF9QT1NUWyd0cCddOw0KICAgICAgICAgICAgJHAyc3RfcDVyX3AxZzUgPSAoNG50KSRfUE9TVFsncHAnXTsNCiAgICAgICAgICAgICRjM3JyNW50ID0gKDRudCkkX1BPU1RbJ2NydCddOw0KICAgICAgICAgICAgJDNybCA9IDNybGQ1YzJkNSgkX1BPU1RbJ3BfM3JsJ10pOw0KICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnZnAnXSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJGZicCA9ICg0bnQpJF9QT1NUWydmcCddOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIDVsczV7DQogICAgICAgICAgICAkbjJfMmZfcDJzdHMgPSAoNG50KSRuMl8yZl9wMnN0czsNCiAgICAgICAgICAgICRwMnN0X3A1cl9wMWc1ID0gKDRudCkkcDJzdF9wNXJfcDFnNTsNCiAgICAgICAgICAgICRjM3JyNW50ID0gKDRudCkkYzNycjVudDsNCiAgICAgICAgICAgICRmYnAgPSAoNG50KSRmYl9wMWc1Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICA0ZighNW1wdHkoJGZicCkgMW5kICRmYnA+MCkNCiAgICAgICAgew0KICAgICAgICAgICAgJGZiX3AgID0gIiZmcD0iLiRmYnA7DQogICAgICAgICAgICAkd2hyICA9ICcnOw0KICAgICAgICAgICAgLy8kd2hyID0gIiBJTk5FUiBKT0lOICIuJGMxbXBfdHlwNV90MWJsNS4iIHRhIE9OIHQ2LjRkPXRhLmMxbXAxNGduXzRkIEFORCB0YS5wMnN0X3QyPSIuJGZicC4iICI7DQogICAgICAgICAgICAkbjJfMmZfcDJzdHMgPSAkd3BkYi0+ZzV0X3YxcigiU0VMRUNUIENPVU5UKHQ2LjRkKSBGUk9NICIgLiAkZ2JfdDFibDVfYzFtcDE0Z25zIC4gIiB0NiAiLiR3aHIuIiA7Iik7DQogICAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgNGYoJG4yXzJmX3Ayc3RzPiRwMnN0X3A1cl9wMWc1IDFuZCAkcDJzdF9wNXJfcDFnNT4wKQ0KICAgICAgICB7DQogICAgICAgICAgICAkbDIycCA9IGM1NGwoJG4yXzJmX3Ayc3RzLyRwMnN0X3A1cl9wMWc1KTsNCiAgICAgICAgICAgDQogICAgICAgID8+DQogICAgICAgICAgPGQ0diBjbDFzcz0icDFnNG4xdDQybiBwMWc0bjF0NDJuLWM1bnQ1cjVkIHI0Z2h0IDRubjVyX3AxZCI+DQogICAgICAgICAgPDNsPg0KICAgICAgICAgICAgPGw0IDw/cGhwIDRmKCRjM3JyNW50PT09Nil7ID8+IGNsMXNzPSJkNHMxYmw1ZCIgPD9waHAgfSA/Pj48MSBocjVmPSI8P3BocCA1Y2gyICQzcmwuIiZwMWc1bjI9NiZwcD0iLiRwMnN0X3A1cl9wMWc1LiRmYl9wOyA/PiI+PD9waHAgNWNoMiAiJkx0OyIgPz48LzE+PC9sND4NCiAgICAgICAgICAgIDw/cGhwICBmMnIoJDQ9NjskNDw9JGwyMnA7JDQrKykNCiAgICAgICAgICAgIHsgPz4NCiAgICAgICAgICAgIDxsNCA8P3BocCA0ZigkYzNycjVudD09PSQ0KXsgPz4gY2wxc3M9IjFjdDR2NSIgPD9waHAgfSA/Pj48MSBocjVmPSI8P3BocCA1Y2gyICQzcmwuIiZwMWc1bjI9Ii4kNC4iJnBwPSIuJHAyc3RfcDVyX3AxZzUuJGZiX3A7ID8+Ij48P3BocCA1Y2gyICQ0OyA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgPGw0IDw/cGhwIDRmKCRjM3JyNW50PT0kbDIycCl7ID8+IGNsMXNzPSJkNHMxYmw1ZCIgPD9waHAgfSA/PiA+PDEgaHI1Zj0iPD9waHAgNWNoMiAkM3JsLiImcDFnNW4yPSIuJGwyMnAuIiZwcD0iLiRwMnN0X3A1cl9wMWc1LiRmYl9wOyA/PiI+PD9waHAgNWNoMiAiJkdnOyIgPz48LzE+PC9sND4NCiAgICAgICAgICA8LzNsPg0KICAgICAgICA8L2Q0dj4NCiAgICA8P3BocA0KICAgICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICA0Zig0c3M1dCgkX1BPU1RbJzFyJ10pKXsNCiAgICAgICAgICAgICA1Y2gyIGQ0NSgpOw0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIDFkZF8xY3Q0Mm4oJ3dwXzFqMXhfZ2JfZDRzcGwxeV8xbGxfYzFtcDE0Z25fbDRzdCcsJ2diX2Q0c3BsMXlfMWxsX2MxbXAxNGduX2w0c3QnKTsNCiAgICANCiAgICAxZGRfMWN0NDJuKCd3cF8xajF4X2diX20xazVfUDFnNG4xdDQybl9GMnJfRDRzcGwxeV9DMW1wMTRnbicsJ2diX20xazVfUDFnNG4xdDQybl9GMnJfRDRzcGwxeV9DMW1wMTRnbicpOw0KICAgIA0KICAgIGYzbmN0NDJuIGdiX2Q0c3BsMXlfMWxsX2MxbXAxNGduX2w0c3QoKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCAkZ2JfdDFibDVfYzFtcDE0Z25zLCAkZ2JfdDFibDVfYzFtcF9rNXl3MnJkczsNCiAgICAgICAgDQogICAgICAgICRzdDFydD0nJzsNCiAgICAgICAgJDVuZD0nJzsNCiAgICAgICAgJHAyc3RfcDVyX3AxZzUgPScnOw0KICAgICAgICAkd2hyID0gJyc7DQogICAgICAgICRmYl9wMWc1ID0gJyc7DQogICAgICAgICRwNXI0MmRBcnIxeSA9IDFycjF5KDY9PidoMjNycycsYT0+J2QxeXMnKTsNCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRfUkVRVUVTVFsncHAnXSkgMW5kICE1bXB0eSgkX1JFUVVFU1RbJ3BwJ10pKQ0KICAgICAgICB7DQogICAgICAgICAgICAkcDJzdF9wNXJfcDFnNSA9ICg0bnQpJF9SRVFVRVNUWydwcCddOw0KICAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICA1bHM1ew0KICAgICAgICAgICAgICRwMnN0X3A1cl9wMWc1PWk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRfUkVRVUVTVFsnZnAnXSkgMW5kICE1bXB0eSgkX1JFUVVFU1RbJ2ZwJ10pIDFuZCAoNG50KSRfUkVRVUVTVFsnZnAnXT4wKQ0KICAgICAgICB7DQogICAgICAgICAgICAkZmJfcDFnNSA9ICg0bnQpJF9SRVFVRVNUWydmcCddOw0KICAgICAgICAgICAgJHdociA9ICIgSU5ORVIgSk9JTiAiLiRjMW1wX3R5cDVfdDFibDUuIiB0YSBPTiB0Ni40ZD10YS5jMW1wMTRnbl80ZCBBTkQgdGEucDJzdF90Mj0iLiRmYl9wMWc1LiIgIjsNCiAgICAgICAgfQ0KICAgICAgICAvLyRfUkVRVUVTVFsncHAnXSA9ICAkcDJzdF9wNXJfcDFnNTsNCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRfR0VUWydwMWc1bjInXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICQzcHQyID0gKDRudCkkX0dFVFsncDFnNW4yJ10qJHAyc3RfcDVyX3AxZzU7DQogICAgICAgICAgICAkc3QxcnQgPSAkM3B0Mi0kcDJzdF9wNXJfcDFnNTsNCiAgICAgICAgfQ0KICAgICAgICA1bHM1ew0KICAgICAgICAgICAgJHN0MXJ0ID0wOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkUzJjNDFsTjV0dzJya1R5cDVzPSAxcnIxeSgnNic9PidGMWM1YjIyaycsJ2EnPT4nVDNtYmxyJywnbyc9PidCbDJnZzVyJyk7DQogICAgICAgIA0KICAgICAgICAkNW5kPSRwMnN0X3A1cl9wMWc1Ow0KICAgICAgICAkcTM1cnkgPSAiU0VMRUNUIEMxbXAxNGduLjRkLCBDMW1wMTRnbi5uMW01LCBDMW1wMTRnbi50eXA1LCBDMW1wMTRnbi50NW1wbDF0NSwgQzFtcDE0Z24ucDJzdF80bnQ1cnYxbCwgQzFtcDE0Z24ucDJzdF80bnQ1cnYxbF90eXA1LCBDMW1wMTRnbi5kNWwxeVN0MXJ0LEMxbXAxNGduLmYyclcycmRwcjVzcyxDMW1wMTRnbi5jcjUxdDVkLCBDMW1wMTRnbi5tMmQ0ZjQ1ZCwgQzFtcDE0Z24ubDFzdF9wMnN0LCBDMW1wMTRnbi5uNXh0X3Ayc3QsIEMxbXAxNGduLmwxc3RfcDJzdF9zdDF0M3MsIEMxbXAxNGduLnN0MXQzcywgQzFtcDE0Z24ucDJzdF9jcjUxdDVkLCBDMW1wMTRnbks1eXcycmQuazV5dzJyZCBGUk9NIHskZ2JfdDFibDVfYzFtcDE0Z25zfSBBUyBDMW1wMTRnbiBMRUZUIEpPSU4geyRnYl90MWJsNV9jMW1wX2s1eXcycmRzfSBBUyBDMW1wMTRnbks1eXcycmQgT04gKEMxbXAxNGduSzV5dzJyZC5jMW1wMTRnbl80ZCA9IEMxbXAxNGduLjRkKSBPUkRFUiBCWSBDMW1wMTRnbi40ZCBERVNDICBMSU1JVCAgJHN0MXJ0LCAkNW5kICI7DQogICAgICAgICRyNWMycmRzID0gJHdwZGItPmc1dF9yNXMzbHRzKCRxMzVyeSk7DQogICAgICAgDQogICAgICAgICRyNWMycmRJZHMgPSAxcnIxeSgpOw0KICAgICAgICAkdDVtcGwxdDVUeXA1cyA9IDFycjF5KCk7DQogICAgICAgICRDMW1wUzJjNDFsTjV0dzJya1R5cDUgPSAxcnIxeSgpOw0KICAgICAgICAkcjVjMnJkSWRzU3RyNG5nID0gJyc7DQogICAgICAgIDRmKCE1bXB0eSgkcjVjMnJkcykpDQogICAgICAgIHsNCiAgICAgICAgICAgZjJyNTFjaCgkcjVjMnJkcyAxcyAkazV5PT4kdjFsKQ0KICAgICAgICAgICB7DQogICAgICAgICAgICAgICAkcjVjMnJkSWRzW10gPSAkdjFsLT40ZDsNCiAgICAgICAgICAgICAgICRFbXB0eXQ1bXBsMXQ1ID0gdHI0bSgkdjFsLT50NW1wbDF0NSk7DQogICAgICAgICAgICAgICA0ZighNW1wdHkoJEVtcHR5dDVtcGwxdDUpKXsNCiAgICAgICAgICAgICAgICAgICAgJHQ1bXBsMXQxdDVzID0gM25zNXI0MWw0ejUoJHYxbC0+dDVtcGwxdDUpOw0KICAgICAgICAgICAgICAgICAgICA0Zig0c3M1dCgkdDVtcGwxdDF0NXNbJ3Q1bXBsMXQ1cyddKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAkdDVtcGwxdDVLNXl3cyA9IDFycjF5X2s1eXMoJHQ1bXBsMXQxdDVzWyd0NW1wbDF0NXMnXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAkdDVtcGwxdDVUeXA1c1skdjFsLT40ZF0gPSAkdDVtcGwxdDVLNXl3czsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICB9DQogICAgICAgICAgICRyNWMycmRJZHNTdHI0bmcgPSA0bXBsMmQ1KCIsICIsICRyNWMycmRJZHMpOw0KICAgICAgICB9DQogICAgICAgDQogICAgICAgICR0NW1wbDF0NU4xbTVzID0gZ2JfZzV0XzFsbF9jMW1wMTRnbl90eXA1cygpOw0KICAgICAgICANCiAgICAgICAgJEFsbFMyYzQxbE41dHcycmsgICA9IGdiX2c1dF8xbGxfczJjNDFsX241dHcycmsoMXJyMXkoJzRkLHR5cDUnKSk7DQogICAgICAgIDRmKCE1bXB0eSgkQWxsUzJjNDFsTjV0dzJyaykpDQogICAgICAgIHsNCiAgICAgICAgICAgICRBbGxTMmM0MWxONXR3MnJrVzR0aFR5cDUgPSAxcnIxeSgpOw0KICAgICAgICAgICAgZjJyNTFjaCgkQWxsUzJjNDFsTjV0dzJyayAxcyAkazV5PT4kdjFsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRBbGxTMmM0MWxONXR3MnJrVzR0aFR5cDVbJHYxbC0+NGRdID0gJHYxbC0+dHlwNTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJEFsbEcxbTVzRDF0MSAgICAgID0gZ2JfcjVxMzVzdF8xbGxfZzFtNXNfZDF0MSgxcnIxeSgnKicpKTsNCg0KICAgICAgICAkQWxsQzFtcDE0Z25TMmM0MWxONXR3MnJrID0gZ2JfZzV0XzFsbF9jMW1wMTRuZ25fczJjNDFsX241dHcycmsoMXJyMXkoJyonKSwxcnIxeSgiYzFtcDE0Z25fNGQgSU4gKHskcjVjMnJkSWRzU3RyNG5nfSkiKSk7DQogICAgICAgIA0KICAgICAgICA0ZighNW1wdHkoJEFsbEMxbXAxNGduUzJjNDFsTjV0dzJyaykpDQogICAgICAgIHsNCiAgICAgICAgICAgIGYycjUxY2goJEFsbEMxbXAxNGduUzJjNDFsTjV0dzJyayAxcyAkazV5PT4kdjFsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRDMW1wUzJjNDFsTjV0dzJya1R5cDVzWyR2MWwtPmMxbXAxNGduXzRkXVtdID0gJFMyYzQxbE41dHcycmtUeXA1c1skQWxsUzJjNDFsTjV0dzJya1c0dGhUeXA1WyR2MWwtPnMyYzQxbF9uNXR3MnJrXzRkXV07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRBbGxDMW1wNGduRzFtNXMgICAgPSAgICAgZ2JfZzV0XzFsbF9jMW1wMTRnbl9nMW01c19kNXQxNGxzKCRyNWMycmRJZHNTdHI0bmcpOw0KDQogICAgICAgIDRmICgkcjVjMnJkcykgew0KICAgICAgICAgICAgICAgICAgJHI1ZCA9IDA7DQogICAgICAgICAgICAgICAgICAkdDJ0MWxfcjVjMnJkcyA9IGMyM250KCRyNWMycmRzKTsNCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2ggKCRyNWMycmRzIDFzICRrNXk9PiRyNWMycmQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBJRCA9ICRyNWMycmQtPjRkOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfdHlwNSA9ICRyNWMycmQtPnR5cDU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYzFtcF90eXA1X24xbTVzICA9IDFycjF5KCk7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkcjVjMnJkLT50eXA1PT0nYScgMnIgJHI1YzJyZC0+dHlwNT09YSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfdHlwNV9uMW01c1tdID0gJ2cxbTVzJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIH01bHM1NGYoKCRyNWMycmQtPnR5cDU9PSc2JyAyciAkcjVjMnJkLT50eXA1PT02KSAxbmQgITVtcHR5KCR0NW1wbDF0NVR5cDVzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Zig0c3M1dCgkdDVtcGwxdDVUeXA1c1skYzFtcElEXSkgMW5kICE1bXB0eSgkdDVtcGwxdDVUeXA1c1skYzFtcElEXSkpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCR0NW1wbDF0NVR5cDVzWyRjMW1wSURdIDFzICRrPT4kVDRkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYzFtcF90eXA1X24xbTVzW10gPSAkdDVtcGwxdDVOMW01c1skVDRkXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHI1YzJyZC0+dHlwNT09JzYnIDJyICRyNWMycmQtPnR5cDU9PTYpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRrNXl3MnJkc0FycjF5ID0gM25zNXI0MWw0ejUoJHI1YzJyZC0+azV5dzJyZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGs1eXcycmRzID0gJGs1eXcycmRzQXJyMXlbJ2s1eXcycmRzJ107DQogICAgICAgICAgICAgICAgICAgICAgICB9NWxzNXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkazV5dzJyZHNBcnIxeSA9ICRBbGxDMW1wNGduRzFtNXM7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkdDRtNSA9ICRyNWMycmQtPnAyc3RfNG50NXJ2MWw7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzczV0KCRwNXI0MmRBcnIxeVskcjVjMnJkLT5wMnN0XzRudDVydjFsX3R5cDVdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3AxbiA9ICRwNXI0MmRBcnIxeVskcjVjMnJkLT5wMnN0XzRudDVydjFsX3R5cDVdOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcDFuID0gJyc7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzczV0KCRDMW1wUzJjNDFsTjV0dzJya1R5cDVzWyRjMW1wSURdKSAxbmQgITVtcHR5KCRDMW1wUzJjNDFsTjV0dzJya1R5cDVzWyRjMW1wSURdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMXJyMXlfM240cSA9IDFycjF5XzNuNHEzNSgkQzFtcFMyYzQxbE41dHcycmtUeXA1c1skYzFtcElEXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfcDJzdF90MiA9IDRtcGwyZDUoJywgJywkMXJyMXlfM240cSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfcDJzdF90MiAuPSAkcjVjMnJkLT5mMnJXMnJkcHI1c3M/ICcsIFcycmRwcjVzcyc6Jyc7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjMW1wX3Ayc3RfdDIgPSAkcjVjMnJkLT5mMnJXMnJkcHI1c3M/ICdXMnJkcHI1c3MnOicnOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw0bnAzdCBjbDFzcz0iY2hrIiB0eXA1PSJjaDVja2IyeCIgdjFsMzU9Ijw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+IiBuMW01PSJkNWw1dDVbXSIvPiA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxkNHYgY2wxc3M9ImMxbXBfcDJzdCI+PHNwMW4gY2wxc3M9ImMxbXAxNGduX24xbTUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgNGYoJGMxbXBfdHlwNSA9PSdhJyl7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8MSB0NHRsNT0iVjQ1dyBENXQxNGxzIiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1nMW01LXM0bmdsNSY0ZD08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgNWNoMiAkcjVjMnJkLT5uMW01OyA/PjwvMT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH01bHM1eyAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8MSB0NHRsNT0iVjQ1dyBENXQxNGxzIiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1zNG5nbDUmNGQ9PD9waHAgNWNoMiAkcjVjMnJkLT40ZDsgPz4iPjw/cGhwIDVjaDIgJHI1YzJyZC0+bjFtNTsgPz48LzE+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIDRmKCRjMW1wX3R5cDUgIT0nYScpeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDEgY2wxc3M9InByNXY0NXciIDJuY2w0Y2s9InI1dDNybiBQcjV2NDV3KDw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7Pz4pOyIgIHQ0dGw1PSI8P3BocCBfNSgiUHI1djQ1dyBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IiMiPjw/cGhwIF81KCJQcjV2NDV3IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgNGYoJGMxbXBfdHlwNSAhPSdhJyl7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8M2w+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsNCBjbDFzcz0iZjRyc3QiPjwxIHQ0dGw1PSI8P3BocCBfNSgiRWQ0dCBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLTFkZCY1ZDR0PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiRWQ0dCIsICJnMnI0bGwxNXYybDN0NDJuIikgPz48LzE+PC9sND4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgNGYgKCRyNWMycmQtPnN0MXQzcyA9PSA2KSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsND48MSB0NHRsNT0iPD9waHAgXzUoIlAxM3M1IEMxbXAxNGduIiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PiIgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItYzFtcDE0Z25zJnAxM3M1PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiUDEzczUiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gNWxzNSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bDQ+PDEgdDR0bDU9Ijw/cGhwIF81KCJDMm50NG4zNSBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWMxbXAxNGducyYzbnAxM3M1PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiQzJudDRuMzUiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGw0PjwxIGNsMXNzPSJzM2JtNHRkNWw1dDUiIDJuY2w0Y2s9InI1dDNybiBjMm5mNHJtKCc8P3BocCBfNSgiQXI1IHkyMyBzM3I1IHkyMyB3MW50IHQyIGQ1bDV0NSB0aDRzIGMxbXAxNGduPyIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4nKSIgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItYzFtcDE0Z25zJmQ1bDV0NT08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiIgdDR0bDU9Ijw/cGhwIF81KCJENWw1dDUgdGg0cyBjMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iPjw/cGhwIF81KCJENWw1dDUiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsNCBjbDFzcz0ibDFzdCI+PDEgcjVsPSJwNXJtMWw0bmsiIHQ0dGw1PSI8P3BocCBfNSgiQ3I1MXQ1IFAyc3QiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+IiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1jMW1wMTRnbnMmZ2JfcjNubjJ3PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiUDJzdCBOMnciLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LzNsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9NWxzNTRmKCRjMW1wX3R5cDUgPT0nYScpeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8M2w+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsNCBjbDFzcz0iZjRyc3QiPjwxIHQ0dGw1PSI8P3BocCBfNSgiRWQ0dCBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWcxbTVzJmdfNWQ0dD08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgXzUoIkVkNHQiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIDRmICgkcjVjMnJkLT5zdDF0M3MgPT0gNikgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bDQ+PDEgdDR0bDU9Ijw/cGhwIF81KCJQMTNzNSBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWMxbXAxNGducyZwMTNzNT08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgXzUoIlAxM3M1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9IDVsczUgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGw0PjwxIHQ0dGw1PSI8P3BocCBfNSgiQzJudDRuMzUgQzFtcDE0Z24iLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+IiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1jMW1wMTRnbnMmM25wMTNzNT08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgXzUoIkMybnQ0bjM1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsND48MSBjbDFzcz0iczNibTR0ZDVsNXQ1IiAybmNsNGNrPSJyNXQzcm4gYzJuZjRybSgnPD9waHAgXzUoIkFyNSB5MjMgczNyNSB5MjMgdzFudCB0MiBkNWw1dDUgdGg0cyBjMW1wMTRnbj8iLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+JykiIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWMxbXAxNGducyZkNWw1dDU9PD9waHAgNWNoMiAkcjVjMnJkLT40ZDsgPz4iIHQ0dGw1PSI8P3BocCBfNSgiRDVsNXQ1IHRoNHMgYzFtcDE0Z24iLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+Ij48P3BocCBfNSgiRDVsNXQ1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bDQgY2wxc3M9Imwxc3QiPjwxIHI1bD0icDVybTFsNG5rIiB0NHRsNT0iPD9waHAgXzUoIkNyNTF0NSBQMnN0IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PiIgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItYzFtcDE0Z25zJmdiX2dfcjNubjJ3PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiUDJzdCBOMnciLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LzNsPg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kNHY+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkYzFtcF90eXA1PT0nNicpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoITVtcHR5KCRrNXl3MnJkcykpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGt3bjNtID0gYzIzbnQoJGs1eXcycmRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtMXggPSBvOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0ycjUgPSAka3duM20gLSAkbTF4Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEt3eUFycjF5Q2gzbmsgPSAxcnIxeV9jaDNuaygkazV5dzJyZHMsbyx0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgNG1wbDJkNSgnLCAnLCRLd3lBcnIxeUNoM25rWzBdKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTJyNSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnIDwxIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLXM0bmdsNSY0ZD0nIC4gJHI1YzJyZC0+NGQgLiAnIj4nIC4gJG0ycjUgLiAnICcgLiBfXygibTJyNSBrNXl3MnJkcyIsICJnMnI0bGwxNXYybDN0NDJuIikgLiAnPC8xPic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH01bHM1ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzczV0KCRrNXl3MnJkc0FycjF5WyRyNWMycmQtPjRkXSkpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGt3bjNtID0gYzIzbnQoJGs1eXcycmRzQXJyMXlbJHI1YzJyZC0+NGRdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnMW01c1QyUHI0bnQgPSAxcnIxeSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0xeCA9IG87DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbTJyNSA9ICRrd24zbSAtICRtMXg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkS3d5QXJyMXlDaDNuayA9IDFycjF5X2NoM25rKCRrNXl3MnJkc0FycjF5WyRyNWMycmQtPjRkXSxvLHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoNHNzNXQoJEt3eUFycjF5Q2gzbmtbMF0pIDFuZCAhNW1wdHkoJEt3eUFycjF5Q2gzbmtbMF0pKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCRLd3lBcnIxeUNoM25rWzBdIDFzICRreT0+JHYxbCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnMW01c1QyUHI0bnRbXSA9ICR2MWwtPm4xbTU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgNG1wbDJkNSgiLCAiLCAkZzFtNXNUMlByNG50KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTJyNSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICcgPDEgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItZzFtNS1zNG5nbDUmNGQ9JyAuICRyNWMycmQtPjRkIC4gJyI+JyAuICRtMnI1IC4gJyAnIC4gX18oIm0ycjUgZzFtNXMiLCAiZzJyNGxsMTV2MmwzdDQybiIpIC4gJzwvMT4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbDFzcz0iYzVudDVyNGMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZighNW1wdHkoJGMxbXBfdHlwNV9uMW01cykpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAka3duM20gPSBjMjNudCgkYzFtcF90eXA1X24xbTVzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0xeCA9IG87DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtMnI1ID0gJGt3bjNtIC0gJG0xeDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFycjF5Q2gzbmtzID0gMXJyMXlfY2gzbmsoJGMxbXBfdHlwNV9uMW01cywgbywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJEFycjF5Q2gzbmtzWzBdIDFzICRrNXk9PiRjMW1wX3R5cDVfbjFtNSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnIDxjNW50NXI+PGQ0diBjbDFzcz0iJy4kYzFtcF90eXA1X24xbTUuJ19zbTFsbF80YzJuIj48L2Q0dj48L2M1bnQ1cj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgM2N3MnJkcyhzdHJfcjVwbDFjNSgiXyIsIiAiLCRjMW1wX3R5cDVfbjFtNSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vNWNoMiA0bXBsMmQ1KCIsICIsICRBcnIxeUNoM25rc1swXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRjMW1wX3R5cDU9PSc2Jyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJG0ycjUgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnIDwxIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLXM0bmdsNSY0ZD0nIC4gJHI1YzJyZC0+NGQgLiAnIj4nIC4gJG0ycjUgLiAnICcgLiBfXygibTJyNSB0eXA1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSAuICc8LzE+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsMXNzPSJjNW50NXI0YyI+PD9waHAgNWNoMiAnPHN0cjJuZz4nIC4gJHI1YzJyZC0+cDJzdF9jcjUxdDVkIC4gJzwvc3RyMm5nPic7ID8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJnYl9sNHN0X2MxbXBfcDJzdF90MiI+IDw/cGhwIDVjaDIgJGMxbXBfcDJzdF90MjsgPz48L2Q0dj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkcjVjMnJkLT5zdDF0M3MgPT0gNikgeyAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCA0ZigkcjVjMnJkLT50eXA1PT0nYScpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXAgPSB3cF9uNXh0X3NjaDVkM2w1ZCgnZzJyNGxsMTV2MmwzdDQybmcxbTVoMjJrJywgMXJyMXkoKDRudCkkcjVjMnJkLT40ZCkpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkdDRtNXN0MW1wPT1mMWxzNSl7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDRtNXN0MW1wID0gd3BfbjV4dF9zY2g1ZDNsNWQoJ2cycjRsbDE1djJsM3Q0Mm5nMW01aDIyaycsIDFycjF5KCRyNWMycmQtPjRkKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR0NG01c3QxbXA9PWYxbHM1KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZighNHNzNXQoJHQ0bTUpIDJyIDVtcHR5KCR0NG01KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl9zNXRfc2NoNWQzbDUoNiwgJ2gyM3JzJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Bfc2NoNWQzbDVfNXY1bnQodDRtNSgpICsgb2UwMCwgImdiXzZfaDIzcnMiLCAiZzJyNGxsMTV2MmwzdDQybmcxbTVoMjJrIiwgMXJyMXkoJHI1YzJyZC0+NGQpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDRtNSA9IDY7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwMW4gPSAnaDIzcnMnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdiXzNwZDF0NV9wMnN0XzRudDVydjFsKCRyNWMycmQtPjRkLCAkdDRtNSwgNik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9NWxzNTRmKCE1bXB0eSgkdDRtNSkpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl9zNXRfc2NoNWQzbDUoJHQ0bTUsJHNwMW4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcDJzdHNwMW4gPSAiZ2JfIiAuICR0NG01IC4gIl8iIC4gJHNwMW47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsMWcgPSAkdDRtNSpvZTAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cF9zY2g1ZDNsNV81djVudCh0NG01KCkgKyAkbDFnLCAkcDJzdHNwMW4sICJnMnI0bGwxNXYybDN0NDJuZzFtNWgyMmsiLCAxcnIxeSgkcjVjMnJkLT40ZCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl8zcGQxdDVfcDJzdF80bnQ1cnYxbCgkcjVjMnJkLT40ZCwgJHQ0bTUsICRyNWMycmQtPnAyc3RfNG50NXJ2MWxfdHlwNSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDRtNXN0MW1wID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5nMW01aDIyayIsIDFycjF5KCRyNWMycmQtPjRkKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCA0ZigkdDRtNXN0MW1wKXsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCA1Y2gyIGQxdDUoJ2QvbS9ZIEg6NDpzJywgJHQ0bTVzdDFtcCk7ID8+PGJyLz48c3AxbiBzdHlsNT0iYzJsMnI6I2VlZTsiPig8P3BocCBfNSgiNXY1cnkiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+IDw/cGhwIDVjaDIgJHQ0bTUgLiAiICIgLiAkc3AxbjsgPz4pPC9zcDFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH01bHM1eyA/PiA8MSBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1nMW01LXM0bmdsNSY0ZD08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiIgc3R5bDU9ImMybDJyOiNFb2E2bzYiPkYyM25kIEVycjJyPC8xPjw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA1bHM1eyAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXBhID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5oMjJrIiwgMXJyMXkoKDRudCkkcjVjMnJkLT40ZCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHQ0bTVzdDFtcGE9PWYxbHM1KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXBhID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5oMjJrIiwgMXJyMXkoJHI1YzJyZC0+NGQpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkdDRtNXN0MW1wYT09ZjFsczUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZighNHNzNXQoJHQ0bTUpIDJyIDVtcHR5KCR0NG01KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2JfczV0X3NjaDVkM2w1KDYsICdoMjNycycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Bfc2NoNWQzbDVfNXY1bnQodDRtNSgpICsgb2UwMCwgImdiXzZfaDIzcnMiLCAiZzJyNGxsMTV2MmwzdDQybmgyMmsiLCAxcnIxeSgkcjVjMnJkLT40ZCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHQ0bTUgPSA2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwMW4gPSAnaDIzcnMnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2JfM3BkMXQ1X3Ayc3RfNG50NXJ2MWwoJHI1YzJyZC0+NGQsICR0NG01LCA2KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTVsczU0ZighNW1wdHkoJHQ0bTUpKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl9zNXRfc2NoNWQzbDUoJHQ0bTUsJHNwMW4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwMnN0c3AxbiA9ICJnYl8iIC4gJHQ0bTUgLiAiXyIgLiAkc3AxbjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDFnID0gJHQ0bTUqb2UwMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cF9zY2g1ZDNsNV81djVudCh0NG01KCkgKyAkbDFnLCAkcDJzdHNwMW4sICJnMnI0bGwxNXYybDN0NDJuaDIyayIsIDFycjF5KCRyNWMycmQtPjRkKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2JfM3BkMXQ1X3Ayc3RfNG50NXJ2MWwoJHI1YzJyZC0+NGQsICR0NG01LCAkcjVjMnJkLT5wMnN0XzRudDVydjFsX3R5cDUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXBhID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5oMjJrIiwgMXJyMXkoJHI1YzJyZC0+NGQpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkdDRtNXN0MW1wYSl7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZDF0NSgnZC9tL1kgSDo0OnMnLCR0NG01c3QxbXBhKTsgPz48YnIvPjxzcDFuIHN0eWw1PSJjMmwycjojZWVlOyI+KDw/cGhwIF81KCI1djVyeSIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4gPD9waHAgNWNoMiAkdDRtNSAuICIgIiAuICRzcDFuOyA/Pik8L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9NWxzNXsgPz48MSBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1zNG5nbDUmNGQ9PD9waHAgNWNoMiAkcjVjMnJkLT40ZDsgPz4iIHN0eWw1PSJjMmwycjojRW9hNm82Ij5GMjNuZCBFcnIycjwvMT48P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSB9IDVsczUgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIF81KCJDMW1wMTRnbiA8Yj5wMTNzNWQ8L2I+IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICAgICAgICA8P3BocA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIDRmKCE0c3M1dCgkX1BPU1RbJzFqMXhfcjVxNXN0J10pKQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICByNXQzcm4gdHIzNTsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgNWxzNTRmKCE0c3M1dCgkX1BPU1RbJzFqMXhfcjVxNXN0J10pKXsNCiAgICAgICAgICAgICAgICA1Y2gyICI8dHI+PHRkIGMybHNwMW49JzcnPjxiPk4yIFI1YzJyZCBGMjNuZDwvYj48L3RkPjwvdHI+IjsNCiAgICAgICAgICAgICAgICByNXQzcm4gZjFsczU7ICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXhfcjVxNXN0J10pKXsNCiAgICAgICAgICAgICA1Y2gyICJmMWxzNSI7DQogICAgICAgICAgICAgNWNoMiBkNDUoKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICANCiAgICANCmYzbmN0NDJuIGdiXzNwZDF0NV9wMnN0XzRudDVydjFsKCRjbXA0ZCwkdDRtNSwkc3AxbikNCnsNCiAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X2MxbXAxNGduczsNCiAgICAkcjVzcCA9ICR3cGRiLT4zcGQxdDUoDQogICAgICAgICAgICAgICAgJGdiX3QxYmw1X2MxbXAxNGducywgDQogICAgICAgICAgICAgICAgMXJyMXkoIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Ayc3RfNG50NXJ2MWwnID0+ICR0NG01LA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Ayc3RfNG50NXJ2MWxfdHlwNScgPT4gJHNwMW4NCiAgICAgICAgICAgICAgICApLCANCiAgICAgICAgICAgICAgICAxcnIxeSggJzRkJyA9PiAkY21wNGQgKSwgDQogICAgICAgICAgICAgICAgMXJyMXkoIA0KICAgICAgICAgICAgICAgICAgICAgICAgJyVkJywJLy8gdjFsMzU2DQogICAgICAgICAgICAgICAgICAgICAgICAnJWQnCS8vIHYxbDM1YQ0KICAgICAgICAgICAgICAgICksIA0KICAgICAgICAgICAgICAgIDFycjF5KCAnJWQnICkgDQogICAgICAgICk7DQogICAgcjV0M3JuICRyNXNwOw0KfQ0KICAgIA0KMWRkXzFjdDQybignd3BfMWoxeF9nYl9nNXRfZzFtNV9sNHN0c19ieV8xajF4JywnZ2JfZzV0X2cxbTVfbDRzdHNfYnlfMWoxeCcpOyAgDQoNCmYzbmN0NDJuIGdiX2c1dF9nMW01X2w0c3RzX2J5XzFqMXgoKQ0Kew0KDQogICAgJGMxbXBfNGQgID0gITVtcHR5KCRfUE9TVFsnY180ZCddKT8gKDRudCkkX1BPU1RbJ2NfNGQnXTogJyc7DQogICAgJGcxbTVfYzF0ID0gITVtcHR5KCRfUE9TVFsnZ2MnXSk/IDFkZHNsMXNoNXMoJF9QT1NUWydnYyddKTogJyc7DQogICAgJGcxbTVfYzF0ID0gJGcxbTVfYzF0PT0nMWxsJz8gJyc6JGcxbTVfYzF0Ow0KDQogICAgJGcxbTVzID0gZ2JfZzV0XzFsbF9nMW01X2w0c3QoJGMxbXBfNGQsJGcxbTVfYzF0KTsNCiAgICANCiAgICAkczVsNWN0NWQgPSAxcnIxeSgpOw0KICAgIA0KICAgIDRmKDRzczV0KCRnMW01c1sncjVzM2x0J10pIDFuZCAhNW1wdHkoJGcxbTVzWydyNXMzbHQnXSkpew0KICAgICAgICAkdDJ0MWxfZzFtNXMgPSBjMjNudCgkZzFtNXNbJ3I1czNsdCddKTsNCiAgID8+DQoNCiAgICAgICAgICAgIDw/cGhwICAgDQogICAgICAgICAgICANCiAgICAgICAgICAgICAgIDRmKDRzczV0KCRfUE9TVFsnZ181ZDR0J10pIDFuZCAhNW1wdHkoJF9QT1NUWydnXzVkNHQnXSkpew0KICAgICAgICAgICAgICAgICAgJHM1bDVjdDVkID0gJGcxbTVzWydzNWw1Y3Q1ZCddWydnMW01cyddOw0KICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICBmMnI1MWNoKCRnMW01c1sncjVzM2x0J10gMXMgJGs1eT0+JGcxbTUpew0KDQogICAgICAgICAgICAgICAgIDRmKDRuXzFycjF5KChzdHI0bmcpJGcxbTUtPjRkLCAkczVsNWN0NWQpPT1mMWxzNSl7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJ0MnBfY2g1Y2tiMnggaDRkZDVuIiAgPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwMW4+PDRucDN0IHR5cDU9ImNoNWNrYjJ4IiBjbDFzcz0iY2g1Y2tfczVsNWN0IiA0ZD0iZzFtNV80ZF88P3BocCA1Y2gyICRnMW01LT40ZDsgPz5fY2g1a2NiMngiIG4xbTU9InM1bDVjdDVkX2cxbTVbXSIgIHYxbDM1PSI8P3BocCA1Y2gyICRnMW01LT40ZDsgPz4iIDw/cGhwIDRmKDRuXzFycjF5KCRnMW01LT40ZCwgJHM1bDVjdDVkKSl7IDVjaDIgImNoNWNrNWQiOyB9ID8+IC8+PC9zcDFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IDRkPSJnMW01XzRkXzw/cGhwIDVjaDIgJGcxbTUtPjRkOyA/PiIgY2wxc3M9ImcxbTVfNGRfPD9waHAgNWNoMiAkZzFtNS0+NGQ7ID8+X2NoNWtjYjJ4IGdiX3M0bmdsNV9nMW01X3dyMXBwNXIgNG0xZzVfd3IxcHA1ciA8P3BocCA0Zig0bl8xcnIxeSgkZzFtNS0+NGQsICRzNWw1Y3Q1ZCkpeyA1Y2gyICIgczVsNWN0NWRfZDR2IjsgfSA/PiIgdDR0bDU9IkNsNGNrIGg1cjUgdDIgczVsNWN0LiIgPg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YzVudDVyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkNHYgY2wxc3M9IjRtMWc1X2M1bnQ1ciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDRtZyBzcmM9Ijw/cGhwIDVjaDIgJGcxbTUtPjRtMWc1XzNybDsgPz4iIHc0ZHRoPSJhMGVweCIgaDU0Z2h0PSI2NmkiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kNHY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2M1bnQ1cj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iZDRzY3I0cHQ0Mm4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcDFuIGNsMXNzPSI0bmYyIj48IS0tVDIybHQ0cC0tPjwxIGNsMXNzPSJ0MjJsdDRwYSIgaHI1Zj0iIyI+PHNwMW4+PD9waHAgNWNoMiAiQzJudHIybHM6IDxici8+Ii4kZzFtNS0+YzJudHIybHMuIiA8YnIvPiBENXNjcjRwdDQybjogPGJyLz4iLiRnMW01LT5kNXNjcjRwdDQybjsgID8+PC9zcDFuPjwvMT48L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJ0NHRsNSI+PHN0cjJuZz48P3BocCA1Y2gyICRnMW01LT5uMW01OyA/Pjwvc3RyMm5nPjwvbDFiNWw+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iZDV0MTRscyI+IDw/cGhwIDVjaDIgJGcxbTUtPmMybnRyMmxzOyA/PjwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kNHY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJzaDJ3X3M1bDVjdDVkX3NwMW4iPjwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iY2xrX2g1cjVfdF9zNWxjdCI+PC9kNHY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICA8P3BocCANCiAgICAgICAgICAgICAgICAgICAgICAgfSB9Pz4NCiAgICAgICAgICAgICAgICAgICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSJnYl9nMW01X2MxdCIgdjFsMzU9Ijw/cGhwIDVjaDIgJGcxbTVfYzF0OyA/PiIgLz4NCiAgICAgICAgICA8P3BocA0KICAgIH0NCiAgICAgICAgICAgIGQ0NSgpOw0KfQ0KDQpmM25jdDQybiBnYl8xbGxfZmJfcDFnNV9wcjJmNGw1X2w0c3QoKQ0Kew0KICAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X2MxbXAxNGduczsNCiAgICAgJGdiX2ZiX3QxYmw1PSAkd3BkYi0+cHI1ZjR4LiJnYl9mMWM1YjIya19wMWc1cyI7DQogICAgICRzcWwgPSAiU0VMRUNUIDRkLHAxZzVfbjFtNSBGUk9NICIuJGdiX2ZiX3QxYmw1LiIgV0hFUkUgMWN0NHY1X3N0MXQzcz02IjsNCiAgICAgJHI1czNsdHM9ICR3cGRiLT5nNXRfcjVzM2x0cygkc3FsKTsNCiAgICAgJGh0bWwgPSAnJzsNCiAgICAgNGYoITVtcHR5KCRyNXMzbHRzKSAxbmQgJHI1czNsdHMgIT0gZjFsczUpew0KICAgICAgICRodG1sIC49IiBGMWM1YjIyayBQMWc1OiA8czVsNWN0IDRkPSdnYl9mYl9wMWc1c19sNHN0Jz4iOw0KICAgICAgICRodG1sIC49IjwycHQ0Mm4gdjFsMzU9Jyc+LS1TNWw1Y3QgUDFnNS0tPC8ycHQ0Mm4+IjsNCiAgICAgICAgZjJyNTFjaCgkcjVzM2x0cyAxcyAkaz0+JHYxbCkNCiAgICAgICAgew0KICAgICAgICAgICAgJGh0bWwgLj0gIjwycHQ0Mm4gdjFsMzU9JyIuJHYxbC0+NGQuIiciOw0KICAgICAgICAgICAgNGYoNHNzNXQoJF9SRVFVRVNUWydmcCddKSAxbmQgJF9SRVFVRVNUWydmcCddPT0kdjFsLT40ZCl7ICRodG1sIC49ICIgczVsNWN0NWQ9J3M1bDVjdDVkJyAiOyB9DQogICAgICAgICAgICAkaHRtbCAuPSI+Ii4kdjFsLT5wMWc1X24xbTUuIjwvMnB0NDJuPiI7DQogICAgICAgIH0NCiAgICAgICAgJGh0bWwgLj0iIDwvczVsNWN0PiI7DQogICAgIH0NCg0KICAgICA1Y2gyICRodG1sOw0KfQ0KDQoNCmYzbmN0NDJuIGdiX2c1dF9jMW1wMTRnbl9wMnN0X2Yycl9mMWM1YjIya19uMW01cygkYzFtcDRkKXsNCiAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X2MxbXAxNGduczsNCiAgICAkYzFtcF90eXA1X3Ayc3RfZjJyID0gJHdwZGItPnByNWY0eC4iZ2JfYzFtcDE0Z25fdHlwNXMiOyANCiAgICAkYzFtcF9mYl9wMWc1cyA9ICAgJHdwZGItPnByNWY0eC4iZ2JfZjFjNWIyMmtfcDFnNXMiOw0KICAgIA0KICAgICRzcWwgPSAiU0VMRUNUIHQ2LnAxZzVfbjFtNSBGUk9NICIuJGMxbXBfZmJfcDFnNXMuIiB0NiBJTk5FUiBKT0lOICIuJGMxbXBfdHlwNV9wMnN0X2Yyci4iIHRhIE9OIHQ2LjRkPXRhLnAyc3RfdDIgMW5kIHRhLmMxbXAxNGduXzRkPSIuJGMxbXA0ZDsNCiAgIA0KICAgICRyNXNsM3RzID0gJHdwZGItPmc1dF9yNXMzbHRzKCRzcWwpOw0KICAgICRwMWc1X24xbTU9IDFycjF5KCk7DQogICAgZjJyNTFjaCgkcjVzbDN0cyAxcyAkazV5PT4kdjFsKQ0KICAgIHsNCiAgICAgICAgJHAxZzVfbjFtNVtdPSAzY2Y0cnN0KHN0cnQybDJ3NXIoJHYxbC0+cDFnNV9uMW01KSk7DQogICAgfQ0KICAgIHI1dDNybiA0bXBsMmQ1KCIsICIsICRwMWc1X24xbTUpOw0KfQ0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Did this file decode correctly?
Original Code
ob_start();
error_reporting(0);
?>
<?php $_F=__FILE__;$_X= 0NDJuJyA9PiAncjVxMzRyNV9uMW01XzVtMTRsJw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRfcjVnNHN0cjF0NDJuJ10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnYzJtbTVudF9yNWc0c3RyMXQ0Mm4nDQogICAgKTsNCiAgICAkMnB0NDJuc1snY2wyczVfYzJtbTVudHNfZjJyXzJsZF9wMnN0cyddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2NsMnM1X2MybW01bnRzX2Yycl8ybGRfcDJzdHMnDQogICAgKTsNCiAgICAkMnB0NDJuc1snY2wyczVfYzJtbTVudHNfZDF5c18ybGQnXSA9IDFycjF5KA0KICAgICAgICAnZDVzYycgPT4gX18oJ1c1NWsgc3QxcnRzIDJuJyksDQogICAgICAgICdyNTFkMm5seScgPT4gZjFsczUsDQogICAgICAgICcycHQ0Mm4nID0+ICdjbDJzNV9jMm1tNW50c19kMXlzXzJsZCcNCiAgICApOw0KICAgICQycHQ0Mm5zWyd0aHI1MWRfYzJtbTVudHMnXSA9IDFycjF5KA0KICAgICAgICAnZDVzYycgPT4gX18oJ1c1NWsgc3QxcnRzIDJuJyksDQogICAgICAgICdyNTFkMm5seScgPT4gZjFsczUsDQogICAgICAgICcycHQ0Mm4nID0+ICd0aHI1MWRfYzJtbTVudHMnDQogICAgKTsNCiAgICAkMnB0NDJuc1sndGhyNTFkX2MybW01bnRzX2Q1cHRoJ10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAndGhyNTFkX2MybW01bnRzX2Q1cHRoJw0KICAgICk7DQogICAgJDJwdDQybnNbJ3AxZzVfYzJtbTVudHMnXSA9IDFycjF5KA0KICAgICAgICAnZDVzYycgPT4gX18oJ1c1NWsgc3QxcnRzIDJuJyksDQogICAgICAgICdyNTFkMm5seScgPT4gZjFsczUsDQogICAgICAgICcycHQ0Mm4nID0+ICdwMWc1X2MybW01bnRzJw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRzX3A1cl9wMWc1J10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnYzJtbTVudHNfcDVyX3AxZzUnDQogICAgKTsNCiAgICAkMnB0NDJuc1snYzJtbTVudF8ycmQ1ciddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRfMnJkNXInDQogICAgKTsNCiAgICAkMnB0NDJuc1snZDVmMTNsdF9jMm1tNW50c19wMWc1J10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnZDVmMTNsdF9jMm1tNW50c19wMWc1Jw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRzX24ydDRmeSddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRzX24ydDRmeScNCiAgICApOw0KICAgICQycHQ0Mm5zWydtMmQ1cjF0NDJuX24ydDRmeSddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ20yZDVyMXQ0Mm5fbjJ0NGZ5Jw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRfbTJkNXIxdDQybiddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRfbTJkNXIxdDQybicNCiAgICApOw0KICAgICQycHQ0Mm5zWydjMm1tNW50X3doNHQ1bDRzdCddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ2MybW01bnRfd2g0dDVsNHN0Jw0KICAgICk7DQogICAgJDJwdDQybnNbJ2MybW01bnRfbTF4X2w0bmtzJ10gPSAxcnIxeSgNCiAgICAgICAgJ2Q1c2MnID0+IF9fKCdXNTVrIHN0MXJ0cyAybicpLA0KICAgICAgICAncjUxZDJubHknID0+IGYxbHM1LA0KICAgICAgICAnMnB0NDJuJyA9PiAnYzJtbTVudF9tMXhfbDRua3MnDQogICAgKTsNCiAgICAkMnB0NDJuc1sncDVybTFsNG5rX3N0cjNjdDNyNSddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ3A1cm0xbDRua19zdHIzY3QzcjUnDQogICAgKTsNCiAgICAkMnB0NDJuc1sncDRuZ19zNHQ1cyddID0gMXJyMXkoDQogICAgICAgICdkNXNjJyA9PiBfXygnVzU1ayBzdDFydHMgMm4nKSwNCiAgICAgICAgJ3I1MWQybmx5JyA9PiBmMWxzNSwNCiAgICAgICAgJzJwdDQybicgPT4gJ3A0bmdfczR0NXMnDQogICAgKTsNCiAgICByNXQzcm4gJDJwdDQybnM7DQp9DQoNCjFkZF9mNGx0NXIoJ3htbHJwY19ibDJnXzJwdDQybnMnLCAnZ2JfeG1scnBjXzFkZF8ycHQ0Mm5zJywgNik7DQo/Pg0KPD9waHANCg0KLyoqDQogICAgICogUjVnNHN0NXIgdzR0aCBoMjJrICd3cF81bnEzNTM1X3NjcjRwdHMnLCB3aDRjaCBjMW4gYjUgM3M1ZCBmMnIgZnIybnQgNW5kIENTUyAxbmQgSjF2MVNjcjRwdA0KICAgICAqLw0KICAgIDFkZF8xY3Q0Mm4oICcxZG00bl80bjR0JywgJ2diX3ByNWY0eF8xZGRfbXlfc3R5bDVzaDU1dCcgKTsNCg0KICAgIC8qKg0KICAgICAqIEVucTM1MzUgcGwzZzRuIHN0eWw1LWY0bDUNCiAgICAgKi8NCiAgICBmM25jdDQybiBnYl9wcjVmNHhfMWRkX215X3N0eWw1c2g1NXQoKSB7DQogICAgICAgIC8vIFI1c3A1Y3RzIFNTTCwgU3R5bDUuY3NzIDRzIHI1bDF0NHY1IHQyIHRoNSBjM3JyNW50IGY0bDUNCiAgICAgICAgDQogICAgICAgIHdwX3I1ZzRzdDVyX3NjcjRwdCggJ2diLWIyMnN0cjFwLXM1bDVjdC1qcycsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nanMvYjIydHN0cjFwLXM1bDVjdC5qcycpOw0KICAgICAgICB3cF81bnEzNTM1X3NjcjRwdCggJ2diLWIyMnN0cjFwLXM1bDVjdC1qcycgKTsNCiAgICAgICAgDQoNCiAgICAgICAgDQogICAgICAgIHdwX3I1ZzRzdDVyX3N0eWw1KCAnZ2ItYjIyc3RyMXAtczVsNWN0LWNzcycsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nY3NzL2IyMnRzdHIxcC1zNWw1Y3QuY3NzJyk7DQogICAgICAgIHdwXzVucTM1MzVfc3R5bDUoICdnYi1iMjJzdHIxcC1zNWw1Y3QtY3NzJyApOw0KICAgICAgICANCiAgICAgICAgd3BfcjVnNHN0NXJfc2NyNHB0KCAnZ2JfcHI1ZjR4LXN0eWw1bycsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nanMvYjIydHN0cjFwLmpzJyk7DQogICAgICAgIHdwXzVucTM1MzVfc2NyNHB0KCAnZ2JfcHI1ZjR4LXN0eWw1bycgKTsNCiAgICAgICAgDQogICAgICAgIHdwX3I1ZzRzdDVyX3N0eWw1KCAnZ2JfcHI1ZjR4LXN0eWw1NicsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nY3NzL2IyMnRzdHIxcC5jc3MnICk7DQogICAgICAgIHdwXzVucTM1MzVfc3R5bDUoICdnYl9wcjVmNHgtc3R5bDU2JyApOw0KICAgICAgICANCiAgICAgICAgd3BfcjVnNHN0NXJfc3R5bDUoICdnYl9wcjVmNHgtc3R5bDVhJywgcGwzZzRuX2Q0cl8zcmwoX19GSUxFX18pLidjc3MvbTE0bi1zdHlsNS5jc3MnICk7DQogICAgICAgIHdwXzVucTM1MzVfc3R5bDUoICdnYl9wcjVmNHgtc3R5bDVhJyk7DQogICAgICAgIA0KCXdwX3I1ZzRzdDVyX3N0eWw1KCAnZ2JfcHI1ZjR4LXN0eWw1dScsIHBsM2c0bl9kNHJfM3JsKF9fRklMRV9fKS4nY3NzL3AycDNwLmNzcycgKTsNCiAgICAgICAgd3BfNW5xMzUzNV9zdHlsNSggJ2diX3ByNWY0eC1zdHlsNXUnKTsNCiAgICAgICAgDQogICAgICAgIA0KICAgIH0NCiAgDQogICAgZjNuY3Q0Mm4gZ2JfZzV0XzFsbF9mMWM1YjIya19wMWc1c19kMXQxKCQxY3Q0djF0NWQ9dHIzNSwkMXJyMXk9MXJyMXkoKSkNCiAgICB7DQogICAgICAgICBnbDJiMWwgICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQoNCiAgICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAgICA0ZigkMWN0NHYxdDVkPT10cjM1KXsNCiAgICAgICAgICAgICAgICRxMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuJGdiX3QxYmw1X2ZiX3AxZzVzLiIgV0hFUkUgc3QxdDNzPTYgMW5kIHR5cDU9NiI7DQogICAgICAgICAgICAgICA0ZighNW1wdHkoJDFycjF5KSkNCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAkcTM1cnkgLj0gIiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICB9DQogICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAkcTM1cnkgPSAiU0VMRUNUICogRlJPTSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFdIRVJFIHR5cDU9NiAiOw0KICAgICAgICAgICAgICAgNGYoITVtcHR5KCQxcnIxeSkpDQogICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgJHEzNXJ5IC49IiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgfQ0KDQogICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKXsNCiAgICAgICAgICAgICAgICAgJHI1czNsdCA9ICAkd3BkYi0+ZzV0X3IydygkcTM1cnksIEFSUkFZX0EpOyANCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAgICRyNXMzbHQgPSAgJHdwZGItPmc1dF9yNXMzbHRzKCRxMzVyeSwgQVJSQVlfQSk7IA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgICB9DQoNCiAgICBmM25jdDQybiBnYl9nNXRfMWxsX3QzbWJscl9wMWc1c19kMXQxKCQxY3Q0djF0NWQ9dHIzNSwkMXJyMXk9MXJyMXkoKSkNCiAgICB7DQogICAgICAgICBnbDJiMWwgICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQoNCiAgICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAgICA0ZigkMWN0NHYxdDVkPT10cjM1KXsNCiAgICAgICAgICAgICAgICRxMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuJGdiX3QxYmw1X2ZiX3AxZzVzLiIgV0hFUkUgc3QxdDNzPTYgMW5kIHR5cDU9YSI7DQogICAgICAgICAgICAgICA0ZighNW1wdHkoJDFycjF5KSkNCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAkcTM1cnkgLj0gIiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICB9DQogICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAkcTM1cnkgPSAiU0VMRUNUICogRlJPTSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFdIRVJFIHR5cDU9YSAiOw0KICAgICAgICAgICAgICAgNGYoITVtcHR5KCQxcnIxeSkpDQogICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgJHEzNXJ5IC49IiBBTkQgIi5odHRwX2IzNGxkX3EzNXJ5KCQxcnIxeSwnJywnIEFORCAnKTsNCiAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgfQ0KDQogICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKXsNCiAgICAgICAgICAgICAgICAgJHI1czNsdCA9ICAkd3BkYi0+ZzV0X3IydygkcTM1cnksIEFSUkFZX0EpOyANCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAgICRyNXMzbHQgPSAgJHdwZGItPmc1dF9yNXMzbHRzKCRxMzVyeSwgQVJSQVlfQSk7IA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgICB9DQogICAgZjNuY3Q0Mm4gZ2JfZzV0XzFsbF9ibDJnZzVyX3AxZzVzX2QxdDEoJDFjdDR2MXQ1ZD10cjM1LCQxcnIxeT0xcnIxeSgpKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICAkd3BkYiwkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KDQogICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAgIDRmKCQxY3Q0djF0NWQ9PXRyMzUpew0KICAgICAgICAgICAgICAkcTM1cnkgPSAiU0VMRUNUICogRlJPTSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFdIRVJFIHN0MXQzcz02IDFuZCB0eXA1PW8iOw0KICAgICAgICAgICAgICA0ZighNW1wdHkoJDFycjF5KSkNCiAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgJHEzNXJ5IC49ICIgQU5EICIuaHR0cF9iMzRsZF9xMzVyeSgkMXJyMXksJycsJyBBTkQgJyk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgDQogICAgICAgICAgfQ0KICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICRxMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuJGdiX3QxYmw1X2ZiX3AxZzVzLiIgV0hFUkUgdHlwNT1vICI7DQogICAgICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKQ0KICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAkcTM1cnkgLj0iIEFORCAiLmh0dHBfYjM0bGRfcTM1cnkoJDFycjF5LCcnLCcgQU5EICcpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgIDRmKCE1bXB0eSgkMXJyMXkpKXsNCiAgICAgICAgICAgICAgICAkcjVzM2x0ID0gICR3cGRiLT5nNXRfcjJ3KCRxMzVyeSwgQVJSQVlfQSk7IA0KICAgICAgICAgICB9DQogICAgICAgICAgIDVsczV7DQogICAgICAgICAgICAgICAgJHI1czNsdCA9ICAkd3BkYi0+ZzV0X3I1czNsdHMoJHEzNXJ5LCBBUlJBWV9BKTsgDQogICAgICAgICAgIH0NCg0KICAgICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgIH0gDQogICAgDQogICAgZjNuY3Q0Mm4gZ2JfczV0X2YxYzViMjJrX3AxZzVfZDF0MSgkZDF0MSkNCiAgICB7DQogICAgICAgIGdsMmIxbCAkd3BkYiwkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAkcjVzbHQgPTFycjF5KCk7DQogICAgICAgICRyNXQzcm5fNGQgPSAnJzsNCiAgICAgICAgDQogICAgICAgICRkNXQxNGxzQXJyMXkgPSAxcnIxeSggDQogICAgICAgICAgICAgICAgICAgICdwMWc1X24xbTUnID0+IHN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkMXQxWydwMWc1X24xbTUnXSkpLCANCiAgICAgICAgICAgICAgICAgICAgJ3AxZzVfNGQnID0+JGQxdDFbJ3AxZzVfNGQnXSwgDQogICAgICAgICAgICAgICAgICAgICcxcHBfNGQnID0+JGQxdDFbJzFwcF80ZCddLCANCiAgICAgICAgICAgICAgICAgICAgJzFwcF9zNWNyNXQnID0+IHN0cjRwX3QxZ3MoJGQxdDFbJzFwcF9zNWNyNXQnXSksIA0KICAgICAgICAgICAgICAgICAgICAncjVkNHI1Y3RfM3JsJyA9PiBzdHI0cHNsMXNoNXMoc3RyNHBfdDFncygkZDF0MVsnM3JsJ10pKSwgDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAgJGQ1dDE0bHNTdHI0bmcgPSBzNXI0MWw0ejUoJGQ1dDE0bHNBcnIxeSk7DQogICAgICAgIA0KICAgICAgICAkZ2JfdDFibDVfZmJfcDFnNXMgID0gJGdiX3QxYmw1X3MyYzQxbF9uNXR3MnJrczsNCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRkMXQxWyc0bnN0NGQnXSkgMW5kICRkMXQxWyc0bnN0NGQnXSE9JzNuZDVmNG41ZCcpew0KICAgICAgICAgICAgJHI1c2x0ID0gZ2JfZzV0XzFsbF9mMWM1YjIya19wMWc1c19kMXQxKGYxbHM1LDFycjF5KCc0ZCc9Pig0bnQpJGQxdDFbJzRuc3Q0ZCddLCczbjRxMzVfNGQ1bnQ0ZjRjMXQ0Mm4nPT5zdHI0cHNsMXNoNXMoc3RyNHBfdDFncygkZDV0MTRsc0FycjF5WydwMWc1XzRkJ10pKSkpOw0KICAgICAgICB9DQogICAgICAgDQogICAgICAgIDRmKDRzczV0KCRyNXNsdCkgMW5kIDRzczV0KCRyNXNsdFsnNGQnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vJHI1cyA9ICR3cGRiLT4zcGQxdDUoJGdiX3QxYmw1X2ZiX3AxZzVzLDFycjF5KCdwMWc1XzRkJyA9PnN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkMXQxWydwMWc1XzRkJ10pKSwnMXBwXzRkJyA9PiBzdHI0cHNsMXNoNXMoc3RyNHBfdDFncygkZDF0MVsnMXBwXzRkJ10pKSwnMXBwX3M1Y3I1dCcgPT4gc3RyNHBzbDFzaDVzKHN0cjRwX3QxZ3MoJGQxdDFbJzFwcF9zNWNyNXQnXSkpLCdyNWQ0cjVjdF8zcmwnID0+IHN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkMXQxWyczcmwnXSkpKSwxcnIxeSggJzRkJyA9PiRyNXNsdFsnNGQnXSksMXJyMXkoJyVkJywnJWQnLCclcycsJyVzJyksMXJyMXkoICclZCcgKSk7DQogICAgICAgICAgICAkcjVzID0gJHdwZGItPnEzNXJ5KCJVUERBVEUgIi4kZ2JfdDFibDVfZmJfcDFnNXMuIiBTRVQgZDV0MTRscz0neyRkNXQxNGxzU3RyNG5nfScsM240cTM1XzRkNW50NGY0YzF0NDJuPSciLnN0cjRwc2wxc2g1cyhzdHI0cF90MWdzKCRkNXQxNGxzQXJyMXlbJ3AxZzVfNGQnXSkpLiInICwgc3QxdDNzPTAgV0hFUkUgdHlwNT02IDFuZCA0ZD0iLig0bnQpJHI1c2x0Wyc0ZCddLiIgMW5kIDNuNHEzNV80ZDVudDRmNGMxdDQybj0neyRyNXNsdFsnM240cTM1XzRkNW50NGY0YzF0NDJuJ119JyIpOw0KICAgICAgICAgIC8vIDVjaDIgIlVQREFURSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFNFVCBwMWc1XzRkPSIuc3RyNHBzbDFzaDVzKHN0cjRwX3QxZ3MoJGQxdDFbJ3AxZzVfNGQnXSkpLiIsMXBwXzRkPSIuczFuNHQ0ejVfdDV4dF9mNDVsZCgkZDF0MVsnMXBwXzRkJ10pLiIsMXBwX3M1Y3I1dD0nIi5zMW40dDR6NV90NXh0X2Y0NWxkKCRkMXQxWycxcHBfczVjcjV0J10pLiInLHI1ZDRyNWN0XzNybD0nIi5zMW40dDR6NV90NXh0X2Y0NWxkKCRkMXQxWyczcmwnXSkuIicgV0hFUkUgNGQ9Ii4oNG50KSRyNXNsdFsnNGQnXTsgDQogICAgICAgICAgICAkcjV0M3JuXzRkID0gKDRudCkkcjVzbHRbJzRkJ107DQogICAgICAgIH01bHM1ew0KICAgICAgICAgICAgJHdwZGItPjRuczVydCgNCiAgICAgICAgICAgICAgICAkZ2JfdDFibDVfZmJfcDFnNXMsDQogICAgICAgICAgICAgICAgMXJyMXkoDQoJCSd0eXA1JyA9PjYsDQogICAgICAgICAgICAgICAgJ2Q1dDE0bHMnID0+JGQ1dDE0bHNTdHI0bmcsDQogICAgICAgICAgICAgICAgJ3N0MXQzcycgPT4wLCANCiAgICAgICAgICAgICAgICAnY3I1MXQ1ZCcgPT4gZDF0NSgnWS1tLWQgSDo0OnMnKSwgDQogICAgICAgICAgICAgICAgJ20yZDRmNDVkJyA9PiBkMXQ1KCdZLW0tZCBIOjQ6cycpLA0KICAgICAgICAgICAgICAgICczbjRxMzVfNGQ1bnQ0ZjRjMXQ0Mm4nID0+c3RyNHBzbDFzaDVzKHN0cjRwX3QxZ3MoJGQ1dDE0bHNBcnIxeVsncDFnNV80ZCddKSksIA0KICAgICAgICAgICAgICAgICksIA0KICAgICAgICAgICAgICAgIDFycjF5KA0KCQknJWQnLCANCgkJJyVzJywgDQogICAgICAgICAgICAgICAgJyVkJywNCiAgICAgICAgICAgICAgICAnJXMnLA0KICAgICAgICAgICAgICAgICclcycsIA0KICAgICAgICAgICAgICAgICclcycNCiAgICAgICAgICAgICkpOw0KICAgICAgICAgICAgJHI1dDNybl80ZCA9ICR3cGRiLT40bnM1cnRfNGQ7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICByNXQzcm4gJHI1dDNybl80ZDsNCiAgICB9DQogICAgDQogICAgZjNuY3Q0Mm4gZ2JfM3BkMXQ1X2YxYzViMjJrX3AxZzVfZDF0MSgkNGQsJGQxdDEpDQogICAgew0KICAgICAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X3MyYzQxbF9uNXR3MnJrczsNCiAgICAgICAgJGdiX3QxYmw1X2ZiX3AxZzVzICA9ICRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQoNCiAgICAgICAgICRyNXMgPSAkd3BkYi0+cTM1cnkoIlVQREFURSAiLiRnYl90MWJsNV9mYl9wMWc1cy4iIFNFVCBzdDF0M3M9NixkNXQxNGxzPSciLiRkMXQxLiInICBXSEVSRSA0ZD0iLig0bnQpJDRkKTsNCg0KICAgICAgICAgcjV0M3JuICRyNXM7DQogICAgfQ0KICAgIA0KICAgIC8qRjJyIGQ1MWN0NHYxdDRuZyBmMWM1YjIyayBwcjJmNGw1Ki8NCiAgICANCiAgICBmM25jdDQybiBnYl9kNTFjdDR2MXQ1X2YxYzViMjJrX3ByMmY0bDUoJDRkLCRyNTFzMm4sJHByMmY0bDVkMXQxKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgIA0KICAgICAgICAkcjVzID0gJyc7DQogICAgICAgIA0KICAgICAgICAkMnB0NDJucyA9IDNuczVyNDFsNHo1KGc1dF8ycHQ0Mm4oImdiXzFjdDR2MXQ0Mm5fMnB0NDJucyIpKTsNCiAgICAgICAgDQogICAgICAgIDRmKCE1bXB0eSgkNGQpKXsNCiAgICAgICAgICAgICAkcjVzID0gJHdwZGItPnEzNXJ5KCR3cGRiLT5wcjVwMXI1KCJVUERBVEUgIi4kZ2JfdDFibDVfczJjNDFsX241dHcycmtzLiIgU0VUIHN0MXQzcz0wIDFuZCBXSEVSRSAzbjRxMzVfNGQ1bnQ0ZjRjMXQ0Mm49JyVzJyAxbmQgdHlwNT02ICIsJHByMmY0bDVkMXQxWydwMWc1XzRkJ10pKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJHQyNiA9ICQycHQ0Mm5zWyc1bTE0bCddOw0KICAgICAgICAkdDJhID0gZzV0XzJwdDQybignMWRtNG5fNW0xNGwnKTsNCiAgICAgICANCiAgICAgICAgJG0zbHQ0cGw1X3QyX3I1YzRwNDVudHMgPSAxcnIxeSgkdDI2LCR0MmEpOw0KICAgICAgICAkaDUxZDVycyA9ICdGcjJtOiBuMi1yNXBseSA8QjNnc0BmYi1nMnI0bGwxLmMybT4nIC4gIlxyXG4iOw0KICAgICAgICAkczNiajVjdCA9ICdENTFjdDR2MXQ0bmcgeTIzciBmMWM1YjIyayBwcjJmNGw1ICcuJHByMmY0bDVkMXQxWydwMWc1X24xbTUnXTsNCiAgICAgICAgJGIyZHkgLj0gIjxodG1sPjxoNTFkPjx0NHRsNT5ENTFjdDR2MXQ0bmcgeTIzciBmMWM1YjIyayBwcjJmNGw1JyIuJHByMmY0bDVkMXQxWydwMWc1X24xbTUnXS4iPC90NHRsNT48L2g1MWQ+IjsNCiAgICAgICAgJGIyZHkgLj0gIjxiMmR5PiI7DQogICAgICAgICRiMmR5IC49ICJENTFyIFVzNXIsDQogICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgICAgIFkyM3IgZjFjNWIyMmsgcDFnNSBwcjJmNGw1IHskcHIyZjRsNWQxdDFbJ3AxZzVfbjFtNSddfSBoMXMgYjU1biBkNTFjdDR2MXQ1ZCBkMzUgdDIgcjUxczJuIDotIDxiPnskcHIyZjRsNWQxdDFbJ3I1MXMybiddfTwvYj4uIA0KICAgICAgICAgICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgICAgICBTMiBwbDUxczUgcjUtMWN0NHYxdDUgeTIzciBmMWM1YjIyayBwMWc1Lg0KICAgICAgICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgICAgICA8dDFibDUgYjJyZDVyPScwJz4NCiAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD5TNHQ1IFVybDogPC90ZD48dGQ+Ii5nNXRfYmwyZzRuZjIoJzNybCcpLiI8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+UDFnNSBOMW01OiA8L3RkPjx0ZD57JHByMmY0bDVkMXQxWydwMWc1X24xbTUnXX08L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+UDFnNSBJRCA6IDwvdGQ+PHRkPnskcHIyZjRsNWQxdDFbJ3AxZzVfNGQnXX08L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+QXBwIDRkIDogPC90ZD48dGQ+eyRwcjJmNGw1ZDF0MVsnMXBwXzRkJ119PC90ZD48L3RyPg0KICAgICAgICAgICAgICAgIDwvdDFibDU+DQogICAgICAgICAgICAgICAgPGJyLz4NCiAgICAgICAgICAgICAgICBUaDFua3MsDQogICAgICAgICAgICAgICAgRmItZzJyNGxsMSBTM3BwMnJ0DQogICAgICAgICAgICAiOw0KICAgICAgICAgICAgICAgICANCiAgICAgICAgIDFkZF9mNGx0NXIoICd3cF9tMTRsX2MybnQ1bnRfdHlwNScsICdnYl9zNXRfaHRtbF9jMm50NW50X3R5cDUnICk7DQogICAgICAgICANCiAgICAgICAgICB3cF9tMTRsKCRtM2x0NHBsNV90Ml9yNWM0cDQ1bnRzLCAkczNiajVjdCwkYjJkeSwkaDUxZDVycyk7DQogICAgICAgIC8vIFI1czV0IGMybnQ1bnQtdHlwNSB0MiAxdjI0ZCBjMm5mbDRjdHMgLS0gaHR0cDovL2MycjUudHIxYy53MnJkcHI1c3MuMnJnL3Q0Y2s1dC9hb2k3OA0KICAgICAgICAgDQogICAgICAgICByNW0ydjVfZjRsdDVyKCAnd3BfbTE0bF9jMm50NW50X3R5cDUnLCAnZ2JfczV0X2h0bWxfYzJudDVudF90eXA1JyApOyAgICAgDQogICAgICAgICANCiAgICAgICAgcjV0M3JuICRyNXM7DQogICAgfQ0KICAgIA0KICAgIA0KDQogICAgZjNuY3Q0Mm4gZ2JfczV0X2h0bWxfYzJudDVudF90eXA1KCkgew0KDQogICAgICAgICAgICByNXQzcm4gJ3Q1eHQvaHRtbCc7DQogICAgfQ0KICAgIC8qRzV0IDFsbCBkNTFjdDR2MXQ1ZCBmMWM1YjIyayBwcjJmNGw1cyovDQogICAgZjNuY3Q0Mm4gZ2JfZzV0MWxsX2Q1MWN0NHYxdDVkX3ByMmY0bDUoKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQogICAgICAgIC8vJGdiX3QxYmw1X2ZiX3AxZzVzICA9ICR3cGRiLT5wcjVmNHggLiJnYl9mMWM1YjIya19wMWc1cyI7DQogICAgICAgICRyNXMgPSAkd3BkYi0+ZzV0X3I1czNsdHMoIlNFTEVDVCB0eXA1LGQ1dDE0bHMgRlJPTSB7JGdiX3QxYmw1X3MyYzQxbF9uNXR3MnJrc30gV0hFUkUgc3QxdDNzICE9IDYiKTsNCiAgICAgICAgcjV0M3JuICRyNXM7DQogICAgfQ0KICAgIA0KICAgIGYzbmN0NDJuIGdiX2Q1bDV0NV9mMWM1YjIya19wMWc1X2QxdDEoJDRkKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCRnYl90MWJsNV9zMmM0MWxfbjV0dzJya3M7DQogICAgICAgICRnYl90MWJsNV9mYl9wMWc1cyAgPSAkZ2JfdDFibDVfczJjNDFsX241dHcycmtzOw0KICAgICAgICAkcjJ3ID0gJHdwZGItPmQ1bDV0NSggJGdiX3QxYmw1X2ZiX3AxZzVzLCAxcnIxeSggJzRkJyA9PiAoNG50KSQ0ZCksIDFycjF5KCAnJWQnICkpOw0KICAgICAgICByNXQzcm4gJHIydzsNCiAgICB9DQogICAgDQogICAgZjNuY3Q0Mm4gZ2JfbTFrNV9QMWc0bjF0NDJuX0Yycl9ENHNwbDF5X0MxbXAxNGduKCRuMl8yZl9wMnN0cz0nJywkM3JsPScnLCRwMnN0X3A1cl9wMWc1PScnLCRjM3JyNW50PScnLCRmYl9wMWc1PScnKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCRnYl90MWJsNV9jMW1wMTRnbnM7DQogICAgICAgICRjMW1wX3R5cDVfdDFibDUgPSAkd3BkYi0+cHI1ZjR4LiJnYl9jMW1wMTRnbl90eXA1cyI7IA0KICAgICAgICANCiAgICAgICAgJGZiX3AgPScnOw0KICAgICAgICAkZmJwID0gJyc7DQogICAgICAgIDRmKDRzczV0KCRfUE9TVFsnMXInXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRuMl8yZl9wMnN0cyA9ICg0bnQpJF9QT1NUWyd0cCddOw0KICAgICAgICAgICAgJHAyc3RfcDVyX3AxZzUgPSAoNG50KSRfUE9TVFsncHAnXTsNCiAgICAgICAgICAgICRjM3JyNW50ID0gKDRudCkkX1BPU1RbJ2NydCddOw0KICAgICAgICAgICAgJDNybCA9IDNybGQ1YzJkNSgkX1BPU1RbJ3BfM3JsJ10pOw0KICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsnZnAnXSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJGZicCA9ICg0bnQpJF9QT1NUWydmcCddOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIDVsczV7DQogICAgICAgICAgICAkbjJfMmZfcDJzdHMgPSAoNG50KSRuMl8yZl9wMnN0czsNCiAgICAgICAgICAgICRwMnN0X3A1cl9wMWc1ID0gKDRudCkkcDJzdF9wNXJfcDFnNTsNCiAgICAgICAgICAgICRjM3JyNW50ID0gKDRudCkkYzNycjVudDsNCiAgICAgICAgICAgICRmYnAgPSAoNG50KSRmYl9wMWc1Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICA0ZighNW1wdHkoJGZicCkgMW5kICRmYnA+MCkNCiAgICAgICAgew0KICAgICAgICAgICAgJGZiX3AgID0gIiZmcD0iLiRmYnA7DQogICAgICAgICAgICAkd2hyICA9ICcnOw0KICAgICAgICAgICAgLy8kd2hyID0gIiBJTk5FUiBKT0lOICIuJGMxbXBfdHlwNV90MWJsNS4iIHRhIE9OIHQ2LjRkPXRhLmMxbXAxNGduXzRkIEFORCB0YS5wMnN0X3QyPSIuJGZicC4iICI7DQogICAgICAgICAgICAkbjJfMmZfcDJzdHMgPSAkd3BkYi0+ZzV0X3YxcigiU0VMRUNUIENPVU5UKHQ2LjRkKSBGUk9NICIgLiAkZ2JfdDFibDVfYzFtcDE0Z25zIC4gIiB0NiAiLiR3aHIuIiA7Iik7DQogICAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgNGYoJG4yXzJmX3Ayc3RzPiRwMnN0X3A1cl9wMWc1IDFuZCAkcDJzdF9wNXJfcDFnNT4wKQ0KICAgICAgICB7DQogICAgICAgICAgICAkbDIycCA9IGM1NGwoJG4yXzJmX3Ayc3RzLyRwMnN0X3A1cl9wMWc1KTsNCiAgICAgICAgICAgDQogICAgICAgID8+DQogICAgICAgICAgPGQ0diBjbDFzcz0icDFnNG4xdDQybiBwMWc0bjF0NDJuLWM1bnQ1cjVkIHI0Z2h0IDRubjVyX3AxZCI+DQogICAgICAgICAgPDNsPg0KICAgICAgICAgICAgPGw0IDw/cGhwIDRmKCRjM3JyNW50PT09Nil7ID8+IGNsMXNzPSJkNHMxYmw1ZCIgPD9waHAgfSA/Pj48MSBocjVmPSI8P3BocCA1Y2gyICQzcmwuIiZwMWc1bjI9NiZwcD0iLiRwMnN0X3A1cl9wMWc1LiRmYl9wOyA/PiI+PD9waHAgNWNoMiAiJkx0OyIgPz48LzE+PC9sND4NCiAgICAgICAgICAgIDw/cGhwICBmMnIoJDQ9NjskNDw9JGwyMnA7JDQrKykNCiAgICAgICAgICAgIHsgPz4NCiAgICAgICAgICAgIDxsNCA8P3BocCA0ZigkYzNycjVudD09PSQ0KXsgPz4gY2wxc3M9IjFjdDR2NSIgPD9waHAgfSA/Pj48MSBocjVmPSI8P3BocCA1Y2gyICQzcmwuIiZwMWc1bjI9Ii4kNC4iJnBwPSIuJHAyc3RfcDVyX3AxZzUuJGZiX3A7ID8+Ij48P3BocCA1Y2gyICQ0OyA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgPGw0IDw/cGhwIDRmKCRjM3JyNW50PT0kbDIycCl7ID8+IGNsMXNzPSJkNHMxYmw1ZCIgPD9waHAgfSA/PiA+PDEgaHI1Zj0iPD9waHAgNWNoMiAkM3JsLiImcDFnNW4yPSIuJGwyMnAuIiZwcD0iLiRwMnN0X3A1cl9wMWc1LiRmYl9wOyA/PiI+PD9waHAgNWNoMiAiJkdnOyIgPz48LzE+PC9sND4NCiAgICAgICAgICA8LzNsPg0KICAgICAgICA8L2Q0dj4NCiAgICA8P3BocA0KICAgICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICA0Zig0c3M1dCgkX1BPU1RbJzFyJ10pKXsNCiAgICAgICAgICAgICA1Y2gyIGQ0NSgpOw0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIDFkZF8xY3Q0Mm4oJ3dwXzFqMXhfZ2JfZDRzcGwxeV8xbGxfYzFtcDE0Z25fbDRzdCcsJ2diX2Q0c3BsMXlfMWxsX2MxbXAxNGduX2w0c3QnKTsNCiAgICANCiAgICAxZGRfMWN0NDJuKCd3cF8xajF4X2diX20xazVfUDFnNG4xdDQybl9GMnJfRDRzcGwxeV9DMW1wMTRnbicsJ2diX20xazVfUDFnNG4xdDQybl9GMnJfRDRzcGwxeV9DMW1wMTRnbicpOw0KICAgIA0KICAgIGYzbmN0NDJuIGdiX2Q0c3BsMXlfMWxsX2MxbXAxNGduX2w0c3QoKQ0KICAgIHsNCiAgICAgICAgZ2wyYjFsICR3cGRiLCAkZ2JfdDFibDVfYzFtcDE0Z25zLCAkZ2JfdDFibDVfYzFtcF9rNXl3MnJkczsNCiAgICAgICAgDQogICAgICAgICRzdDFydD0nJzsNCiAgICAgICAgJDVuZD0nJzsNCiAgICAgICAgJHAyc3RfcDVyX3AxZzUgPScnOw0KICAgICAgICAkd2hyID0gJyc7DQogICAgICAgICRmYl9wMWc1ID0gJyc7DQogICAgICAgICRwNXI0MmRBcnIxeSA9IDFycjF5KDY9PidoMjNycycsYT0+J2QxeXMnKTsNCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRfUkVRVUVTVFsncHAnXSkgMW5kICE1bXB0eSgkX1JFUVVFU1RbJ3BwJ10pKQ0KICAgICAgICB7DQogICAgICAgICAgICAkcDJzdF9wNXJfcDFnNSA9ICg0bnQpJF9SRVFVRVNUWydwcCddOw0KICAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICA1bHM1ew0KICAgICAgICAgICAgICRwMnN0X3A1cl9wMWc1PWk7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRfUkVRVUVTVFsnZnAnXSkgMW5kICE1bXB0eSgkX1JFUVVFU1RbJ2ZwJ10pIDFuZCAoNG50KSRfUkVRVUVTVFsnZnAnXT4wKQ0KICAgICAgICB7DQogICAgICAgICAgICAkZmJfcDFnNSA9ICg0bnQpJF9SRVFVRVNUWydmcCddOw0KICAgICAgICAgICAgJHdociA9ICIgSU5ORVIgSk9JTiAiLiRjMW1wX3R5cDVfdDFibDUuIiB0YSBPTiB0Ni40ZD10YS5jMW1wMTRnbl80ZCBBTkQgdGEucDJzdF90Mj0iLiRmYl9wMWc1LiIgIjsNCiAgICAgICAgfQ0KICAgICAgICAvLyRfUkVRVUVTVFsncHAnXSA9ICAkcDJzdF9wNXJfcDFnNTsNCiAgICAgICAgDQogICAgICAgIDRmKDRzczV0KCRfR0VUWydwMWc1bjInXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICQzcHQyID0gKDRudCkkX0dFVFsncDFnNW4yJ10qJHAyc3RfcDVyX3AxZzU7DQogICAgICAgICAgICAkc3QxcnQgPSAkM3B0Mi0kcDJzdF9wNXJfcDFnNTsNCiAgICAgICAgfQ0KICAgICAgICA1bHM1ew0KICAgICAgICAgICAgJHN0MXJ0ID0wOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkUzJjNDFsTjV0dzJya1R5cDVzPSAxcnIxeSgnNic9PidGMWM1YjIyaycsJ2EnPT4nVDNtYmxyJywnbyc9PidCbDJnZzVyJyk7DQogICAgICAgIA0KICAgICAgICAkNW5kPSRwMnN0X3A1cl9wMWc1Ow0KICAgICAgICAkcTM1cnkgPSAiU0VMRUNUIEMxbXAxNGduLjRkLCBDMW1wMTRnbi5uMW01LCBDMW1wMTRnbi50eXA1LCBDMW1wMTRnbi50NW1wbDF0NSwgQzFtcDE0Z24ucDJzdF80bnQ1cnYxbCwgQzFtcDE0Z24ucDJzdF80bnQ1cnYxbF90eXA1LCBDMW1wMTRnbi5kNWwxeVN0MXJ0LEMxbXAxNGduLmYyclcycmRwcjVzcyxDMW1wMTRnbi5jcjUxdDVkLCBDMW1wMTRnbi5tMmQ0ZjQ1ZCwgQzFtcDE0Z24ubDFzdF9wMnN0LCBDMW1wMTRnbi5uNXh0X3Ayc3QsIEMxbXAxNGduLmwxc3RfcDJzdF9zdDF0M3MsIEMxbXAxNGduLnN0MXQzcywgQzFtcDE0Z24ucDJzdF9jcjUxdDVkLCBDMW1wMTRnbks1eXcycmQuazV5dzJyZCBGUk9NIHskZ2JfdDFibDVfYzFtcDE0Z25zfSBBUyBDMW1wMTRnbiBMRUZUIEpPSU4geyRnYl90MWJsNV9jMW1wX2s1eXcycmRzfSBBUyBDMW1wMTRnbks1eXcycmQgT04gKEMxbXAxNGduSzV5dzJyZC5jMW1wMTRnbl80ZCA9IEMxbXAxNGduLjRkKSBPUkRFUiBCWSBDMW1wMTRnbi40ZCBERVNDICBMSU1JVCAgJHN0MXJ0LCAkNW5kICI7DQogICAgICAgICRyNWMycmRzID0gJHdwZGItPmc1dF9yNXMzbHRzKCRxMzVyeSk7DQogICAgICAgDQogICAgICAgICRyNWMycmRJZHMgPSAxcnIxeSgpOw0KICAgICAgICAkdDVtcGwxdDVUeXA1cyA9IDFycjF5KCk7DQogICAgICAgICRDMW1wUzJjNDFsTjV0dzJya1R5cDUgPSAxcnIxeSgpOw0KICAgICAgICAkcjVjMnJkSWRzU3RyNG5nID0gJyc7DQogICAgICAgIDRmKCE1bXB0eSgkcjVjMnJkcykpDQogICAgICAgIHsNCiAgICAgICAgICAgZjJyNTFjaCgkcjVjMnJkcyAxcyAkazV5PT4kdjFsKQ0KICAgICAgICAgICB7DQogICAgICAgICAgICAgICAkcjVjMnJkSWRzW10gPSAkdjFsLT40ZDsNCiAgICAgICAgICAgICAgICRFbXB0eXQ1bXBsMXQ1ID0gdHI0bSgkdjFsLT50NW1wbDF0NSk7DQogICAgICAgICAgICAgICA0ZighNW1wdHkoJEVtcHR5dDVtcGwxdDUpKXsNCiAgICAgICAgICAgICAgICAgICAgJHQ1bXBsMXQxdDVzID0gM25zNXI0MWw0ejUoJHYxbC0+dDVtcGwxdDUpOw0KICAgICAgICAgICAgICAgICAgICA0Zig0c3M1dCgkdDVtcGwxdDF0NXNbJ3Q1bXBsMXQ1cyddKSl7DQogICAgICAgICAgICAgICAgICAgICAgICAkdDVtcGwxdDVLNXl3cyA9IDFycjF5X2s1eXMoJHQ1bXBsMXQxdDVzWyd0NW1wbDF0NXMnXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAkdDVtcGwxdDVUeXA1c1skdjFsLT40ZF0gPSAkdDVtcGwxdDVLNXl3czsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICB9DQogICAgICAgICAgICRyNWMycmRJZHNTdHI0bmcgPSA0bXBsMmQ1KCIsICIsICRyNWMycmRJZHMpOw0KICAgICAgICB9DQogICAgICAgDQogICAgICAgICR0NW1wbDF0NU4xbTVzID0gZ2JfZzV0XzFsbF9jMW1wMTRnbl90eXA1cygpOw0KICAgICAgICANCiAgICAgICAgJEFsbFMyYzQxbE41dHcycmsgICA9IGdiX2c1dF8xbGxfczJjNDFsX241dHcycmsoMXJyMXkoJzRkLHR5cDUnKSk7DQogICAgICAgIDRmKCE1bXB0eSgkQWxsUzJjNDFsTjV0dzJyaykpDQogICAgICAgIHsNCiAgICAgICAgICAgICRBbGxTMmM0MWxONXR3MnJrVzR0aFR5cDUgPSAxcnIxeSgpOw0KICAgICAgICAgICAgZjJyNTFjaCgkQWxsUzJjNDFsTjV0dzJyayAxcyAkazV5PT4kdjFsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRBbGxTMmM0MWxONXR3MnJrVzR0aFR5cDVbJHYxbC0+NGRdID0gJHYxbC0+dHlwNTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgJEFsbEcxbTVzRDF0MSAgICAgID0gZ2JfcjVxMzVzdF8xbGxfZzFtNXNfZDF0MSgxcnIxeSgnKicpKTsNCg0KICAgICAgICAkQWxsQzFtcDE0Z25TMmM0MWxONXR3MnJrID0gZ2JfZzV0XzFsbF9jMW1wMTRuZ25fczJjNDFsX241dHcycmsoMXJyMXkoJyonKSwxcnIxeSgiYzFtcDE0Z25fNGQgSU4gKHskcjVjMnJkSWRzU3RyNG5nfSkiKSk7DQogICAgICAgIA0KICAgICAgICA0ZighNW1wdHkoJEFsbEMxbXAxNGduUzJjNDFsTjV0dzJyaykpDQogICAgICAgIHsNCiAgICAgICAgICAgIGYycjUxY2goJEFsbEMxbXAxNGduUzJjNDFsTjV0dzJyayAxcyAkazV5PT4kdjFsKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICRDMW1wUzJjNDFsTjV0dzJya1R5cDVzWyR2MWwtPmMxbXAxNGduXzRkXVtdID0gJFMyYzQxbE41dHcycmtUeXA1c1skQWxsUzJjNDFsTjV0dzJya1c0dGhUeXA1WyR2MWwtPnMyYzQxbF9uNXR3MnJrXzRkXV07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRBbGxDMW1wNGduRzFtNXMgICAgPSAgICAgZ2JfZzV0XzFsbF9jMW1wMTRnbl9nMW01c19kNXQxNGxzKCRyNWMycmRJZHNTdHI0bmcpOw0KDQogICAgICAgIDRmICgkcjVjMnJkcykgew0KICAgICAgICAgICAgICAgICAgJHI1ZCA9IDA7DQogICAgICAgICAgICAgICAgICAkdDJ0MWxfcjVjMnJkcyA9IGMyM250KCRyNWMycmRzKTsNCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGYycjUxY2ggKCRyNWMycmRzIDFzICRrNXk9PiRyNWMycmQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBJRCA9ICRyNWMycmQtPjRkOw0KICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfdHlwNSA9ICRyNWMycmQtPnR5cDU7DQogICAgICAgICAgICAgICAgICAgICAgICAkYzFtcF90eXA1X24xbTVzICA9IDFycjF5KCk7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkcjVjMnJkLT50eXA1PT0nYScgMnIgJHI1YzJyZC0+dHlwNT09YSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfdHlwNV9uMW01c1tdID0gJ2cxbTVzJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIH01bHM1NGYoKCRyNWMycmQtPnR5cDU9PSc2JyAyciAkcjVjMnJkLT50eXA1PT02KSAxbmQgITVtcHR5KCR0NW1wbDF0NVR5cDVzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Zig0c3M1dCgkdDVtcGwxdDVUeXA1c1skYzFtcElEXSkgMW5kICE1bXB0eSgkdDVtcGwxdDVUeXA1c1skYzFtcElEXSkpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCR0NW1wbDF0NVR5cDVzWyRjMW1wSURdIDFzICRrPT4kVDRkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYzFtcF90eXA1X24xbTVzW10gPSAkdDVtcGwxdDVOMW01c1skVDRkXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHI1YzJyZC0+dHlwNT09JzYnIDJyICRyNWMycmQtPnR5cDU9PTYpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRrNXl3MnJkc0FycjF5ID0gM25zNXI0MWw0ejUoJHI1YzJyZC0+azV5dzJyZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGs1eXcycmRzID0gJGs1eXcycmRzQXJyMXlbJ2s1eXcycmRzJ107DQogICAgICAgICAgICAgICAgICAgICAgICB9NWxzNXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkazV5dzJyZHNBcnIxeSA9ICRBbGxDMW1wNGduRzFtNXM7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkdDRtNSA9ICRyNWMycmQtPnAyc3RfNG50NXJ2MWw7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzczV0KCRwNXI0MmRBcnIxeVskcjVjMnJkLT5wMnN0XzRudDVydjFsX3R5cDVdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3AxbiA9ICRwNXI0MmRBcnIxeVskcjVjMnJkLT5wMnN0XzRudDVydjFsX3R5cDVdOw0KICAgICAgICAgICAgICAgICAgICAgICAgNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcDFuID0gJyc7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzczV0KCRDMW1wUzJjNDFsTjV0dzJya1R5cDVzWyRjMW1wSURdKSAxbmQgITVtcHR5KCRDMW1wUzJjNDFsTjV0dzJya1R5cDVzWyRjMW1wSURdKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMXJyMXlfM240cSA9IDFycjF5XzNuNHEzNSgkQzFtcFMyYzQxbE41dHcycmtUeXA1c1skYzFtcElEXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfcDJzdF90MiA9IDRtcGwyZDUoJywgJywkMXJyMXlfM240cSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGMxbXBfcDJzdF90MiAuPSAkcjVjMnJkLT5mMnJXMnJkcHI1c3M/ICcsIFcycmRwcjVzcyc6Jyc7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICA1bHM1ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjMW1wX3Ayc3RfdDIgPSAkcjVjMnJkLT5mMnJXMnJkcHI1c3M/ICdXMnJkcHI1c3MnOicnOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw0bnAzdCBjbDFzcz0iY2hrIiB0eXA1PSJjaDVja2IyeCIgdjFsMzU9Ijw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+IiBuMW01PSJkNWw1dDVbXSIvPiA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxkNHYgY2wxc3M9ImMxbXBfcDJzdCI+PHNwMW4gY2wxc3M9ImMxbXAxNGduX24xbTUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgNGYoJGMxbXBfdHlwNSA9PSdhJyl7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8MSB0NHRsNT0iVjQ1dyBENXQxNGxzIiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1nMW01LXM0bmdsNSY0ZD08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgNWNoMiAkcjVjMnJkLT5uMW01OyA/PjwvMT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH01bHM1eyAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8MSB0NHRsNT0iVjQ1dyBENXQxNGxzIiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1zNG5nbDUmNGQ9PD9waHAgNWNoMiAkcjVjMnJkLT40ZDsgPz4iPjw/cGhwIDVjaDIgJHI1YzJyZC0+bjFtNTsgPz48LzE+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIDRmKCRjMW1wX3R5cDUgIT0nYScpeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDEgY2wxc3M9InByNXY0NXciIDJuY2w0Y2s9InI1dDNybiBQcjV2NDV3KDw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7Pz4pOyIgIHQ0dGw1PSI8P3BocCBfNSgiUHI1djQ1dyBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IiMiPjw/cGhwIF81KCJQcjV2NDV3IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgNGYoJGMxbXBfdHlwNSAhPSdhJyl7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8M2w+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsNCBjbDFzcz0iZjRyc3QiPjwxIHQ0dGw1PSI8P3BocCBfNSgiRWQ0dCBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLTFkZCY1ZDR0PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiRWQ0dCIsICJnMnI0bGwxNXYybDN0NDJuIikgPz48LzE+PC9sND4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgNGYgKCRyNWMycmQtPnN0MXQzcyA9PSA2KSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsND48MSB0NHRsNT0iPD9waHAgXzUoIlAxM3M1IEMxbXAxNGduIiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PiIgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItYzFtcDE0Z25zJnAxM3M1PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiUDEzczUiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gNWxzNSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bDQ+PDEgdDR0bDU9Ijw/cGhwIF81KCJDMm50NG4zNSBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWMxbXAxNGducyYzbnAxM3M1PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiQzJudDRuMzUiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGw0PjwxIGNsMXNzPSJzM2JtNHRkNWw1dDUiIDJuY2w0Y2s9InI1dDNybiBjMm5mNHJtKCc8P3BocCBfNSgiQXI1IHkyMyBzM3I1IHkyMyB3MW50IHQyIGQ1bDV0NSB0aDRzIGMxbXAxNGduPyIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4nKSIgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItYzFtcDE0Z25zJmQ1bDV0NT08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiIgdDR0bDU9Ijw/cGhwIF81KCJENWw1dDUgdGg0cyBjMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iPjw/cGhwIF81KCJENWw1dDUiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsNCBjbDFzcz0ibDFzdCI+PDEgcjVsPSJwNXJtMWw0bmsiIHQ0dGw1PSI8P3BocCBfNSgiQ3I1MXQ1IFAyc3QiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+IiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1jMW1wMTRnbnMmZ2JfcjNubjJ3PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiUDJzdCBOMnciLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LzNsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9NWxzNTRmKCRjMW1wX3R5cDUgPT0nYScpeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8M2w+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsNCBjbDFzcz0iZjRyc3QiPjwxIHQ0dGw1PSI8P3BocCBfNSgiRWQ0dCBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWcxbTVzJmdfNWQ0dD08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgXzUoIkVkNHQiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIDRmICgkcjVjMnJkLT5zdDF0M3MgPT0gNikgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bDQ+PDEgdDR0bDU9Ijw/cGhwIF81KCJQMTNzNSBDMW1wMTRnbiIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4iIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWMxbXAxNGducyZwMTNzNT08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgXzUoIlAxM3M1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9IDVsczUgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGw0PjwxIHQ0dGw1PSI8P3BocCBfNSgiQzJudDRuMzUgQzFtcDE0Z24iLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+IiBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1jMW1wMTRnbnMmM25wMTNzNT08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiI+PD9waHAgXzUoIkMybnQ0bjM1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsND48MSBjbDFzcz0iczNibTR0ZDVsNXQ1IiAybmNsNGNrPSJyNXQzcm4gYzJuZjRybSgnPD9waHAgXzUoIkFyNSB5MjMgczNyNSB5MjMgdzFudCB0MiBkNWw1dDUgdGg0cyBjMW1wMTRnbj8iLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+JykiIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLWMxbXAxNGducyZkNWw1dDU9PD9waHAgNWNoMiAkcjVjMnJkLT40ZDsgPz4iIHQ0dGw1PSI8P3BocCBfNSgiRDVsNXQ1IHRoNHMgYzFtcDE0Z24iLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+Ij48P3BocCBfNSgiRDVsNXQ1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PjwvMT48L2w0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bDQgY2wxc3M9Imwxc3QiPjwxIHI1bD0icDVybTFsNG5rIiB0NHRsNT0iPD9waHAgXzUoIkNyNTF0NSBQMnN0IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/PiIgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItYzFtcDE0Z25zJmdiX2dfcjNubjJ3PTw/cGhwIDVjaDIgJHI1YzJyZC0+NGQ7ID8+Ij48P3BocCBfNSgiUDJzdCBOMnciLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+PC8xPjwvbDQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LzNsPg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kNHY+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkYzFtcF90eXA1PT0nNicpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoITVtcHR5KCRrNXl3MnJkcykpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGt3bjNtID0gYzIzbnQoJGs1eXcycmRzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtMXggPSBvOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0ycjUgPSAka3duM20gLSAkbTF4Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEt3eUFycjF5Q2gzbmsgPSAxcnIxeV9jaDNuaygkazV5dzJyZHMsbyx0cjM1KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgNG1wbDJkNSgnLCAnLCRLd3lBcnIxeUNoM25rWzBdKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTJyNSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnIDwxIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLXM0bmdsNSY0ZD0nIC4gJHI1YzJyZC0+NGQgLiAnIj4nIC4gJG0ycjUgLiAnICcgLiBfXygibTJyNSBrNXl3MnJkcyIsICJnMnI0bGwxNXYybDN0NDJuIikgLiAnPC8xPic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH01bHM1ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKDRzczV0KCRrNXl3MnJkc0FycjF5WyRyNWMycmQtPjRkXSkpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGt3bjNtID0gYzIzbnQoJGs1eXcycmRzQXJyMXlbJHI1YzJyZC0+NGRdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnMW01c1QyUHI0bnQgPSAxcnIxeSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0xeCA9IG87DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbTJyNSA9ICRrd24zbSAtICRtMXg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkS3d5QXJyMXlDaDNuayA9IDFycjF5X2NoM25rKCRrNXl3MnJkc0FycjF5WyRyNWMycmQtPjRkXSxvLHRyMzUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoNHNzNXQoJEt3eUFycjF5Q2gzbmtbMF0pIDFuZCAhNW1wdHkoJEt3eUFycjF5Q2gzbmtbMF0pKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMnI1MWNoKCRLd3lBcnIxeUNoM25rWzBdIDFzICRreT0+JHYxbCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnMW01c1QyUHI0bnRbXSA9ICR2MWwtPm4xbTU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgNG1wbDJkNSgiLCAiLCAkZzFtNXNUMlByNG50KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkbTJyNSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICcgPDEgaHI1Zj0iMWRtNG4ucGhwP3AxZzU9Z2ItZzFtNS1zNG5nbDUmNGQ9JyAuICRyNWMycmQtPjRkIC4gJyI+JyAuICRtMnI1IC4gJyAnIC4gX18oIm0ycjUgZzFtNXMiLCAiZzJyNGxsMTV2MmwzdDQybiIpIC4gJzwvMT4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbDFzcz0iYzVudDVyNGMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZighNW1wdHkoJGMxbXBfdHlwNV9uMW01cykpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAka3duM20gPSBjMjNudCgkYzFtcF90eXA1X24xbTVzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0xeCA9IG87DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtMnI1ID0gJGt3bjNtIC0gJG0xeDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFycjF5Q2gzbmtzID0gMXJyMXlfY2gzbmsoJGMxbXBfdHlwNV9uMW01cywgbywgdHIzNSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYycjUxY2goJEFycjF5Q2gzbmtzWzBdIDFzICRrNXk9PiRjMW1wX3R5cDVfbjFtNSl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnIDxjNW50NXI+PGQ0diBjbDFzcz0iJy4kYzFtcF90eXA1X24xbTUuJ19zbTFsbF80YzJuIj48L2Q0dj48L2M1bnQ1cj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgM2N3MnJkcyhzdHJfcjVwbDFjNSgiXyIsIiAiLCRjMW1wX3R5cDVfbjFtNSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vNWNoMiA0bXBsMmQ1KCIsICIsICRBcnIxeUNoM25rc1swXSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRjMW1wX3R5cDU9PSc2Jyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZiAoJG0ycjUgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAnIDwxIGhyNWY9IjFkbTRuLnBocD9wMWc1PWdiLXM0bmdsNSY0ZD0nIC4gJHI1YzJyZC0+NGQgLiAnIj4nIC4gJG0ycjUgLiAnICcgLiBfXygibTJyNSB0eXA1IiwgImcycjRsbDE1djJsM3Q0Mm4iKSAuICc8LzE+JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsMXNzPSJjNW50NXI0YyI+PD9waHAgNWNoMiAnPHN0cjJuZz4nIC4gJHI1YzJyZC0+cDJzdF9jcjUxdDVkIC4gJzwvc3RyMm5nPic7ID8+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJnYl9sNHN0X2MxbXBfcDJzdF90MiI+IDw/cGhwIDVjaDIgJGMxbXBfcDJzdF90MjsgPz48L2Q0dj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmICgkcjVjMnJkLT5zdDF0M3MgPT0gNikgeyAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCA0ZigkcjVjMnJkLT50eXA1PT0nYScpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXAgPSB3cF9uNXh0X3NjaDVkM2w1ZCgnZzJyNGxsMTV2MmwzdDQybmcxbTVoMjJrJywgMXJyMXkoKDRudCkkcjVjMnJkLT40ZCkpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkdDRtNXN0MW1wPT1mMWxzNSl7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDRtNXN0MW1wID0gd3BfbjV4dF9zY2g1ZDNsNWQoJ2cycjRsbDE1djJsM3Q0Mm5nMW01aDIyaycsIDFycjF5KCRyNWMycmQtPjRkKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR0NG01c3QxbXA9PWYxbHM1KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZighNHNzNXQoJHQ0bTUpIDJyIDVtcHR5KCR0NG01KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl9zNXRfc2NoNWQzbDUoNiwgJ2gyM3JzJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Bfc2NoNWQzbDVfNXY1bnQodDRtNSgpICsgb2UwMCwgImdiXzZfaDIzcnMiLCAiZzJyNGxsMTV2MmwzdDQybmcxbTVoMjJrIiwgMXJyMXkoJHI1YzJyZC0+NGQpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDRtNSA9IDY7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwMW4gPSAnaDIzcnMnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdiXzNwZDF0NV9wMnN0XzRudDVydjFsKCRyNWMycmQtPjRkLCAkdDRtNSwgNik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9NWxzNTRmKCE1bXB0eSgkdDRtNSkpew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl9zNXRfc2NoNWQzbDUoJHQ0bTUsJHNwMW4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcDJzdHNwMW4gPSAiZ2JfIiAuICR0NG01IC4gIl8iIC4gJHNwMW47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsMWcgPSAkdDRtNSpvZTAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cF9zY2g1ZDNsNV81djVudCh0NG01KCkgKyAkbDFnLCAkcDJzdHNwMW4sICJnMnI0bGwxNXYybDN0NDJuZzFtNWgyMmsiLCAxcnIxeSgkcjVjMnJkLT40ZCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl8zcGQxdDVfcDJzdF80bnQ1cnYxbCgkcjVjMnJkLT40ZCwgJHQ0bTUsICRyNWMycmQtPnAyc3RfNG50NXJ2MWxfdHlwNSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdDRtNXN0MW1wID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5nMW01aDIyayIsIDFycjF5KCRyNWMycmQtPjRkKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCA0ZigkdDRtNXN0MW1wKXsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCA1Y2gyIGQxdDUoJ2QvbS9ZIEg6NDpzJywgJHQ0bTVzdDFtcCk7ID8+PGJyLz48c3AxbiBzdHlsNT0iYzJsMnI6I2VlZTsiPig8P3BocCBfNSgiNXY1cnkiLCAiZzJyNGxsMTV2MmwzdDQybiIpID8+IDw/cGhwIDVjaDIgJHQ0bTUgLiAiICIgLiAkc3AxbjsgPz4pPC9zcDFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH01bHM1eyA/PiA8MSBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1nMW01LXM0bmdsNSY0ZD08P3BocCA1Y2gyICRyNWMycmQtPjRkOyA/PiIgc3R5bDU9ImMybDJyOiNFb2E2bzYiPkYyM25kIEVycjJyPC8xPjw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA1bHM1eyAgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXBhID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5oMjJrIiwgMXJyMXkoKDRudCkkcjVjMnJkLT40ZCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGYoJHQ0bTVzdDFtcGE9PWYxbHM1KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXBhID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5oMjJrIiwgMXJyMXkoJHI1YzJyZC0+NGQpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkdDRtNXN0MW1wYT09ZjFsczUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZighNHNzNXQoJHQ0bTUpIDJyIDVtcHR5KCR0NG01KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2JfczV0X3NjaDVkM2w1KDYsICdoMjNycycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Bfc2NoNWQzbDVfNXY1bnQodDRtNSgpICsgb2UwMCwgImdiXzZfaDIzcnMiLCAiZzJyNGxsMTV2MmwzdDQybmgyMmsiLCAxcnIxeSgkcjVjMnJkLT40ZCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHQ0bTUgPSA2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNwMW4gPSAnaDIzcnMnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2JfM3BkMXQ1X3Ayc3RfNG50NXJ2MWwoJHI1YzJyZC0+NGQsICR0NG01LCA2KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTVsczU0ZighNW1wdHkoJHQ0bTUpKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYl9zNXRfc2NoNWQzbDUoJHQ0bTUsJHNwMW4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwMnN0c3AxbiA9ICJnYl8iIC4gJHQ0bTUgLiAiXyIgLiAkc3AxbjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbDFnID0gJHQ0bTUqb2UwMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cF9zY2g1ZDNsNV81djVudCh0NG01KCkgKyAkbDFnLCAkcDJzdHNwMW4sICJnMnI0bGwxNXYybDN0NDJuaDIyayIsIDFycjF5KCRyNWMycmQtPjRkKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2JfM3BkMXQ1X3Ayc3RfNG50NXJ2MWwoJHI1YzJyZC0+NGQsICR0NG01LCAkcjVjMnJkLT5wMnN0XzRudDVydjFsX3R5cDUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0NG01c3QxbXBhID0gd3BfbjV4dF9zY2g1ZDNsNWQoImcycjRsbDE1djJsM3Q0Mm5oMjJrIiwgMXJyMXkoJHI1YzJyZC0+NGQpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ZigkdDRtNXN0MW1wYSl7IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgZDF0NSgnZC9tL1kgSDo0OnMnLCR0NG01c3QxbXBhKTsgPz48YnIvPjxzcDFuIHN0eWw1PSJjMmwycjojZWVlOyI+KDw/cGhwIF81KCI1djVyeSIsICJnMnI0bGwxNXYybDN0NDJuIikgPz4gPD9waHAgNWNoMiAkdDRtNSAuICIgIiAuICRzcDFuOyA/Pik8L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9NWxzNXsgPz48MSBocjVmPSIxZG00bi5waHA/cDFnNT1nYi1zNG5nbDUmNGQ9PD9waHAgNWNoMiAkcjVjMnJkLT40ZDsgPz4iIHN0eWw1PSJjMmwycjojRW9hNm82Ij5GMjNuZCBFcnIycjwvMT48P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSB9IDVsczUgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIF81KCJDMW1wMTRnbiA8Yj5wMTNzNWQ8L2I+IiwgImcycjRsbDE1djJsM3Q0Mm4iKSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICAgICAgICA8P3BocA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIDRmKCE0c3M1dCgkX1BPU1RbJzFqMXhfcjVxNXN0J10pKQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICByNXQzcm4gdHIzNTsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgNWxzNTRmKCE0c3M1dCgkX1BPU1RbJzFqMXhfcjVxNXN0J10pKXsNCiAgICAgICAgICAgICAgICA1Y2gyICI8dHI+PHRkIGMybHNwMW49JzcnPjxiPk4yIFI1YzJyZCBGMjNuZDwvYj48L3RkPjwvdHI+IjsNCiAgICAgICAgICAgICAgICByNXQzcm4gZjFsczU7ICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICA0Zig0c3M1dCgkX1BPU1RbJzFqMXhfcjVxNXN0J10pKXsNCiAgICAgICAgICAgICA1Y2gyICJmMWxzNSI7DQogICAgICAgICAgICAgNWNoMiBkNDUoKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICANCiAgICANCmYzbmN0NDJuIGdiXzNwZDF0NV9wMnN0XzRudDVydjFsKCRjbXA0ZCwkdDRtNSwkc3AxbikNCnsNCiAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X2MxbXAxNGduczsNCiAgICAkcjVzcCA9ICR3cGRiLT4zcGQxdDUoDQogICAgICAgICAgICAgICAgJGdiX3QxYmw1X2MxbXAxNGducywgDQogICAgICAgICAgICAgICAgMXJyMXkoIA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Ayc3RfNG50NXJ2MWwnID0+ICR0NG01LA0KICAgICAgICAgICAgICAgICAgICAgICAgJ3Ayc3RfNG50NXJ2MWxfdHlwNScgPT4gJHNwMW4NCiAgICAgICAgICAgICAgICApLCANCiAgICAgICAgICAgICAgICAxcnIxeSggJzRkJyA9PiAkY21wNGQgKSwgDQogICAgICAgICAgICAgICAgMXJyMXkoIA0KICAgICAgICAgICAgICAgICAgICAgICAgJyVkJywJLy8gdjFsMzU2DQogICAgICAgICAgICAgICAgICAgICAgICAnJWQnCS8vIHYxbDM1YQ0KICAgICAgICAgICAgICAgICksIA0KICAgICAgICAgICAgICAgIDFycjF5KCAnJWQnICkgDQogICAgICAgICk7DQogICAgcjV0M3JuICRyNXNwOw0KfQ0KICAgIA0KMWRkXzFjdDQybignd3BfMWoxeF9nYl9nNXRfZzFtNV9sNHN0c19ieV8xajF4JywnZ2JfZzV0X2cxbTVfbDRzdHNfYnlfMWoxeCcpOyAgDQoNCmYzbmN0NDJuIGdiX2c1dF9nMW01X2w0c3RzX2J5XzFqMXgoKQ0Kew0KDQogICAgJGMxbXBfNGQgID0gITVtcHR5KCRfUE9TVFsnY180ZCddKT8gKDRudCkkX1BPU1RbJ2NfNGQnXTogJyc7DQogICAgJGcxbTVfYzF0ID0gITVtcHR5KCRfUE9TVFsnZ2MnXSk/IDFkZHNsMXNoNXMoJF9QT1NUWydnYyddKTogJyc7DQogICAgJGcxbTVfYzF0ID0gJGcxbTVfYzF0PT0nMWxsJz8gJyc6JGcxbTVfYzF0Ow0KDQogICAgJGcxbTVzID0gZ2JfZzV0XzFsbF9nMW01X2w0c3QoJGMxbXBfNGQsJGcxbTVfYzF0KTsNCiAgICANCiAgICAkczVsNWN0NWQgPSAxcnIxeSgpOw0KICAgIA0KICAgIDRmKDRzczV0KCRnMW01c1sncjVzM2x0J10pIDFuZCAhNW1wdHkoJGcxbTVzWydyNXMzbHQnXSkpew0KICAgICAgICAkdDJ0MWxfZzFtNXMgPSBjMjNudCgkZzFtNXNbJ3I1czNsdCddKTsNCiAgID8+DQoNCiAgICAgICAgICAgIDw/cGhwICAgDQogICAgICAgICAgICANCiAgICAgICAgICAgICAgIDRmKDRzczV0KCRfUE9TVFsnZ181ZDR0J10pIDFuZCAhNW1wdHkoJF9QT1NUWydnXzVkNHQnXSkpew0KICAgICAgICAgICAgICAgICAgJHM1bDVjdDVkID0gJGcxbTVzWydzNWw1Y3Q1ZCddWydnMW01cyddOw0KICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICBmMnI1MWNoKCRnMW01c1sncjVzM2x0J10gMXMgJGs1eT0+JGcxbTUpew0KDQogICAgICAgICAgICAgICAgIDRmKDRuXzFycjF5KChzdHI0bmcpJGcxbTUtPjRkLCAkczVsNWN0NWQpPT1mMWxzNSl7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJ0MnBfY2g1Y2tiMnggaDRkZDVuIiAgPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwMW4+PDRucDN0IHR5cDU9ImNoNWNrYjJ4IiBjbDFzcz0iY2g1Y2tfczVsNWN0IiA0ZD0iZzFtNV80ZF88P3BocCA1Y2gyICRnMW01LT40ZDsgPz5fY2g1a2NiMngiIG4xbTU9InM1bDVjdDVkX2cxbTVbXSIgIHYxbDM1PSI8P3BocCA1Y2gyICRnMW01LT40ZDsgPz4iIDw/cGhwIDRmKDRuXzFycjF5KCRnMW01LT40ZCwgJHM1bDVjdDVkKSl7IDVjaDIgImNoNWNrNWQiOyB9ID8+IC8+PC9zcDFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IDRkPSJnMW01XzRkXzw/cGhwIDVjaDIgJGcxbTUtPjRkOyA/PiIgY2wxc3M9ImcxbTVfNGRfPD9waHAgNWNoMiAkZzFtNS0+NGQ7ID8+X2NoNWtjYjJ4IGdiX3M0bmdsNV9nMW01X3dyMXBwNXIgNG0xZzVfd3IxcHA1ciA8P3BocCA0Zig0bl8xcnIxeSgkZzFtNS0+NGQsICRzNWw1Y3Q1ZCkpeyA1Y2gyICIgczVsNWN0NWRfZDR2IjsgfSA/PiIgdDR0bDU9IkNsNGNrIGg1cjUgdDIgczVsNWN0LiIgPg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YzVudDVyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkNHYgY2wxc3M9IjRtMWc1X2M1bnQ1ciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDRtZyBzcmM9Ijw/cGhwIDVjaDIgJGcxbTUtPjRtMWc1XzNybDsgPz4iIHc0ZHRoPSJhMGVweCIgaDU0Z2h0PSI2NmkiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kNHY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2M1bnQ1cj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iZDRzY3I0cHQ0Mm4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcDFuIGNsMXNzPSI0bmYyIj48IS0tVDIybHQ0cC0tPjwxIGNsMXNzPSJ0MjJsdDRwYSIgaHI1Zj0iIyI+PHNwMW4+PD9waHAgNWNoMiAiQzJudHIybHM6IDxici8+Ii4kZzFtNS0+YzJudHIybHMuIiA8YnIvPiBENXNjcjRwdDQybjogPGJyLz4iLiRnMW01LT5kNXNjcjRwdDQybjsgID8+PC9zcDFuPjwvMT48L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJ0NHRsNSI+PHN0cjJuZz48P3BocCA1Y2gyICRnMW01LT5uMW01OyA/Pjwvc3RyMm5nPjwvbDFiNWw+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iZDV0MTRscyI+IDw/cGhwIDVjaDIgJGcxbTUtPmMybnRyMmxzOyA/PjwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kNHY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJzaDJ3X3M1bDVjdDVkX3NwMW4iPjwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iY2xrX2g1cjVfdF9zNWxjdCI+PC9kNHY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZDR2Pg0KICAgICAgICAgICAgICAgICAgICA8P3BocCANCiAgICAgICAgICAgICAgICAgICAgICAgfSB9Pz4NCiAgICAgICAgICAgICAgICAgICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSJnYl9nMW01X2MxdCIgdjFsMzU9Ijw/cGhwIDVjaDIgJGcxbTVfYzF0OyA/PiIgLz4NCiAgICAgICAgICA8P3BocA0KICAgIH0NCiAgICAgICAgICAgIGQ0NSgpOw0KfQ0KDQpmM25jdDQybiBnYl8xbGxfZmJfcDFnNV9wcjJmNGw1X2w0c3QoKQ0Kew0KICAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X2MxbXAxNGduczsNCiAgICAgJGdiX2ZiX3QxYmw1PSAkd3BkYi0+cHI1ZjR4LiJnYl9mMWM1YjIya19wMWc1cyI7DQogICAgICRzcWwgPSAiU0VMRUNUIDRkLHAxZzVfbjFtNSBGUk9NICIuJGdiX2ZiX3QxYmw1LiIgV0hFUkUgMWN0NHY1X3N0MXQzcz02IjsNCiAgICAgJHI1czNsdHM9ICR3cGRiLT5nNXRfcjVzM2x0cygkc3FsKTsNCiAgICAgJGh0bWwgPSAnJzsNCiAgICAgNGYoITVtcHR5KCRyNXMzbHRzKSAxbmQgJHI1czNsdHMgIT0gZjFsczUpew0KICAgICAgICRodG1sIC49IiBGMWM1YjIyayBQMWc1OiA8czVsNWN0IDRkPSdnYl9mYl9wMWc1c19sNHN0Jz4iOw0KICAgICAgICRodG1sIC49IjwycHQ0Mm4gdjFsMzU9Jyc+LS1TNWw1Y3QgUDFnNS0tPC8ycHQ0Mm4+IjsNCiAgICAgICAgZjJyNTFjaCgkcjVzM2x0cyAxcyAkaz0+JHYxbCkNCiAgICAgICAgew0KICAgICAgICAgICAgJGh0bWwgLj0gIjwycHQ0Mm4gdjFsMzU9JyIuJHYxbC0+NGQuIiciOw0KICAgICAgICAgICAgNGYoNHNzNXQoJF9SRVFVRVNUWydmcCddKSAxbmQgJF9SRVFVRVNUWydmcCddPT0kdjFsLT40ZCl7ICRodG1sIC49ICIgczVsNWN0NWQ9J3M1bDVjdDVkJyAiOyB9DQogICAgICAgICAgICAkaHRtbCAuPSI+Ii4kdjFsLT5wMWc1X24xbTUuIjwvMnB0NDJuPiI7DQogICAgICAgIH0NCiAgICAgICAgJGh0bWwgLj0iIDwvczVsNWN0PiI7DQogICAgIH0NCg0KICAgICA1Y2gyICRodG1sOw0KfQ0KDQoNCmYzbmN0NDJuIGdiX2c1dF9jMW1wMTRnbl9wMnN0X2Yycl9mMWM1YjIya19uMW01cygkYzFtcDRkKXsNCiAgICBnbDJiMWwgJHdwZGIsJGdiX3QxYmw1X2MxbXAxNGduczsNCiAgICAkYzFtcF90eXA1X3Ayc3RfZjJyID0gJHdwZGItPnByNWY0eC4iZ2JfYzFtcDE0Z25fdHlwNXMiOyANCiAgICAkYzFtcF9mYl9wMWc1cyA9ICAgJHdwZGItPnByNWY0eC4iZ2JfZjFjNWIyMmtfcDFnNXMiOw0KICAgIA0KICAgICRzcWwgPSAiU0VMRUNUIHQ2LnAxZzVfbjFtNSBGUk9NICIuJGMxbXBfZmJfcDFnNXMuIiB0NiBJTk5FUiBKT0lOICIuJGMxbXBfdHlwNV9wMnN0X2Yyci4iIHRhIE9OIHQ2LjRkPXRhLnAyc3RfdDIgMW5kIHRhLmMxbXAxNGduXzRkPSIuJGMxbXA0ZDsNCiAgIA0KICAgICRyNXNsM3RzID0gJHdwZGItPmc1dF9yNXMzbHRzKCRzcWwpOw0KICAgICRwMWc1X24xbTU9IDFycjF5KCk7DQogICAgZjJyNTFjaCgkcjVzbDN0cyAxcyAkazV5PT4kdjFsKQ0KICAgIHsNCiAgICAgICAgJHAxZzVfbjFtNVtdPSAzY2Y0cnN0KHN0cnQybDJ3NXIoJHYxbC0+cDFnNV9uMW01KSk7DQogICAgfQ0KICAgIHI1dDNybiA0bXBsMmQ1KCIsICIsICRwMWc1X24xbTUpOw0KfQ0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
None |
Stats
MD5 | f91db658196498349d1dfacf92de2b0f |
Eval Count | 0 |
Decode Time | 459 ms |