Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php $_F=__FILE__;$_X='Pz48P3BocCANCjFkZF8xY3Q0Mm4oJzFkZF9tNW4zXzVkZF9yNW0ydDUnLCAnd3BfN..

Decoded Output download

<?php 
$_F=__FILE__;$_X='Pz48P3BocCANCjFkZF8xY3Q0Mm4oJzFkZF9tNW4zXzVkZF9yNW0ydDUnLCAnd3BfNWRkX3JtdDVfMWRkXzFkbTRuX201bjMnKTsNCi8vSW5jbDNkNSBtNW4zIGgxbmRsNG5nIGY0bDVzDQpyNXEzNHI1XzJuYzUoRUREX1JFTU9URV9QQVRIIC4gJy9tNW4zL3dwLTVyLWw0c3QtZGwtaDJzdC5waHAnKTsNCnI1cTM0cjVfMm5jNShFRERfUkVNT1RFX1BBVEggLiAnL201bjMvNWRkLXI1bTJ0NS01ZDR0LWgyc3QucGhwJyk7DQoNCmYzbmN0NDJuIHdwXzVkZF9ybXQ1XzFkZF8xZG00bl9tNW4zKCkgew0KICAgIDFkZF9tNW4zX3AxZzUoIkVkZCBSNW0ydDUiLCBfXygnRWRkIFI1bTJ0NScsJzVkZC1yNW0ydDUnKSwgJ20xbjFnNV8ycHQ0Mm5zJywgJzVkZC1yNW0ydDUtbTE0bicsICJ3cF81ZGRfcl9tMW4xZzVfaDJzdF9tNW4zIik7DQogICAgMWRkX3MzYm01bjNfcDFnNSgiNWRkLXI1bTJ0NS1tMTRuIiwgIkgyc3RzIEw0c3QiLF9fKCdIMnN0cyBMNHN0JywnNWRkLXI1bTJ0NScpLCAnbTFuMWc1XzJwdDQybnMnLCAnNWRkLXI1bTJ0NS1tMTRuJywgIndwXzVkZF9yX20xbjFnNV9oMnN0X201bjMiKTsNCiAgICAxZGRfczNibTVuM19wMWc1KCI1ZGQtcjVtMnQ1LW0xNG4iLCAiRWQ0dCBIMnN0IiwgX18oJ0FkZC9FZDR0IEgyc3RzJywnNWRkLXI1bTJ0NScpLCAnbTFuMWc1XzJwdDQybnMnLCAnd3BfNWRkX3JtdF81ZDR0JywgIndwXzVkZF9ybXRfNWQ0dF9oMnN0X201bjMiKTsNCn0NCg0KY2wxc3Mgd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWIgew0KICAgIHAzYmw0YyAJJHBsM2c0bm4xbTUgPSAnJzsNCiAgICBwM2JsNGMgCSRmMWdfcTM1c3Q0Mm5fMW5zdzVyID0gMXJyMXkoKTsNCg0KICAgIHAzYmw0YyAJJHRyMW5zbDF0NV9zbDNnID0gJyc7DQogICAgcHI0djF0NSAkbDRjNW5zNV9zNXR0NG5ncyA9ICcnOw0KICAgIHByNHYxdDUgJHMzcHAycnRfczV0dDRuZ3MgPSAnJzsNCiAgICBwcjR2MXQ1ICRmMWdfczV0dDRuZ3MgPSAnJzsNCiAgICBwcjR2MXQ1ICR3cGMxcl8ycHQ0Mm5fcDFnNSA9ICcnOw0KICAgIHByNHYxdDUgJHdwYzFyX3M1dHQ0bmdzX3QxYnMgPSAxcnIxeSgpOw0KICAgIHByNHYxdDUgJDVycjJyID0gJyc7DQogICAgcHI0djF0NSAkczNjYzVzcyA9ICcnOw0KDQogICAgZjNuY3Q0Mm4gX19jMm5zdHIzY3QoKSB7DQoNCiAgICAgICAgMWRkXzFjdDQybiggJ3dwJywgMXJyMXkoICR0aDRzLCAnc2NoNWQzbDVfRXY1bnRzJyApICk7DQogICAgICAgIHI1ZzRzdDVyX2Q1MWN0NHYxdDQybl9oMjJrKCBfX0ZJTEVfXywgJzNuc2NoNWQzbDVfRXY1bnRzJyApOw0KICAgICAgICAxZGRfMWN0NDJuKCd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfZDE0bHlfNXY1bnRzJywxcnIxeSggJHRoNHMsJ3dwYzFyX3M1dF81eHA0cjVkX2w0YzVuczUnKSk7DQoNCg0KICAgICAgICAxZGRfZjRsdDVyKCdwM2NfcjVxMzVzdF80bmYyX3EzNXJ5XzFyZ3MtJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2dfczNiKCksMXJyMXkoJHRoNHMsJzFkZGs1eScpKTsNCiAgICAgICAgJHRoNHMtPndwYzFyXzJwdDQybl9wMWc1ID0gJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ18ycHQ0Mm4nOw0KDQogICAgICAgICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzID0gJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19sNGM1bnM1X3M1dHQ0bmdzJzsNCiAgICAgICAgJHRoNHMtPnMzcHAycnRfczV0dDRuZ3MgPSAnd3BjMXJfJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2coKS4nX3MzcHAycnRfczV0dDRuZ3MnOw0KICAgICAgICAkdGg0cy0+ZjFnX3M1dHQ0bmdzID0gJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19mMWdfczV0dDRuZ3MnOw0KDQoNCiAgICAgICAgLy8xZGRfMWN0NDJuKCAnNG40dCcsIDFycjF5KCAmJHRoNHMsICdsMjFkX3M1dHQ0bmdzJyApICk7DQogICAgICAgIDFkZF8xY3Q0Mm4oICcxZG00bl80bjR0JywgMXJyMXkoICYkdGg0cywgJ3I1ZzRzdDVyX2w0YzVuczVfczV0dDRuZ3MnICkgKTsNCiAgICAgICAgMWRkXzFjdDQybiggJzFkbTRuXzRuNHQnLCAxcnIxeSggJiR0aDRzLCAncjVnNHN0NXJfczNwcDJydF9zNXR0NG5ncycgKSApOw0KICAgICAgICAxZGRfMWN0NDJuKCAnMWRtNG5fNG40dCcsIDFycjF5KCAmJHRoNHMsICdyNWc0c3Q1cl9mMWdfczV0dDRuZ3MnICkgKTsNCiAgICAgICAgMWRkXzFjdDQybiggJzFkbTRuX201bjMnLCAxcnIxeSggJiR0aDRzLCAnMWRkXzFkbTRuX201bjNzJyApICk7DQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gMWRkazV5KCRxMzVyeSl7DQogICAgICAgICRxMzVyeVsnazV5J10gPSAkdGg0cy0+ZzV0X2s1eSgpOw0KICAgICAgICAkcTM1cnlbJ3dwYzFyXzFjdDQybiddID0gJ2NoNWNrM3BkMXQ1JzsNCiAgICAgICAgcjV0M3JuICRxMzVyeTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBnNXRfazV5KCl7DQogICAgICAgICQycHQ0Mm5zID0gZzV0XzJwdDQybiggJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tsNGM1bnM1X2s1eV0nKTsNCiAgICAgICAgNGYgKCQycHQ0Mm5zICYmICQycHQ0Mm5zIT0nJyAmJiAkdGg0cy0+Y2g1Y2tfazV5XzRudDVybjFsKCkgKQ0KICAgICAgICAgICAgcjV0M3JuICAkMnB0NDJuczsNCiAgICB9DQoNCiAgICBmM25jdDQybiBnNXRfc3QxdDUoKXsNCiAgICAgICAgJHI1czNsdCA9IGYxbHM1Ow0KICAgICAgICAzcGQxdDVfMnB0NDJuKCd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfc3QxdDUnLCcwJyk7DQogICAgICAgICQycHQ0Mm5zID0gIGc1dF8ycHQ0Mm4oICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJyApOw0KDQogICAgICAgIDRmICgkMnB0NDJucyAmJiAkMnB0NDJucyE9JycgJiYgJHRoNHMtPmNoNWNrX2s1eV80bnQ1cm4xbCgpKXsNCiAgICAgICAgICAgICRyNXMzbHQ9IHRyMzU7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfc3QxdDUnLCc2Jyk7DQogICAgICAgIH0NCg0KICAgICAgICByNXQzcm4gJHI1czNsdDsNCiAgICB9DQoNCiAgICBmM25jdDQybiBjaDVja19rNXlfNG50NXJuMWwoKXsNCiAgICAgICAgJHI1czNsdCA9IGYxbHM1Ow0KICAgICAgICAkMnB0NDJucyA9ICBnNXRfMnB0NDJuKCAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW2w0YzVuczVfazV5XScgKTsNCiAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICQ0bnQ1cm4xbGs1eSA9IGc1dF8ycHQ0Mm4oJHRtcCApIDsNCiAgICAgICAgJGNyNTF0NTRudDVybjFsazV5ID0gIG1kaShnNXRfczR0NV8zcmwoKS4kMnB0NDJucy4kdG1wKTsNCiAgICAgICAgNGYgKCQ0bnQ1cm4xbGs1eSA9PT0gJGNyNTF0NTRudDVybjFsazV5KXsNCiAgICAgICAgICAgICRyNXMzbHQgPSB0cjM1Ow0KICAgICAgICB9DQogICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHM1dF9rNXkoJGw0YzVuczVfazV5KXsNCg0KDQogICAgICAgICQxcDRfcDFyMW1zID0gMXJyMXkoDQogICAgICAgICAgICAnd3BjMXJfMWN0NDJuJyA9PiAnMWN0NHY1JywNCiAgICAgICAgICAgICdrNXknID0+ICRsNGM1bnM1X2s1eSwNCiAgICAgICAgKTsNCg0KICAgICAgICAvLyBTNW5kIHEzNXJ5IHQyIHRoNSBsNGM1bnM1IG0xbjFnNXIgczVydjVyDQogICAgICAgICRyNXNwMm5zNSA9IHdwX3I1bTJ0NV9nNXQoMWRkX3EzNXJ5XzFyZygkMXA0X3AxcjFtcywgJ2h0dHA6Ly93cGMxci40ci8/MWN0NDJuPWc1dF9tNXQxZDF0MSZzbDNnPScuJHRoNHMtPndwYzFyX2c1dF9zbDNnX3MzYigpKSwgMXJyMXkoJ3Q0bTUyM3QnID0+IDZhMCwgJ3NzbHY1cjRmeScgPT4gZjFsczUpKTsNCg0KICAgICAgICAvLyBDaDVjayBmMnIgNXJyMnIgNG4gdGg1IHI1c3AybnM1DQogICAgICAgIDRmICg0c193cF81cnIycigkcjVzcDJuczUpKXsNCiAgICAgICAgICAgICR0aDRzLT41cnIyciA9IF9fKCdVbjV4cDVjdDVkIEVycjJyISBUaDUgcTM1cnkgcjV0M3JuNWQgdzR0aCAxbiA1cnIyci4nLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQogICAgICAgIH0NCg0KICAgICAgICAkbDRjNW5zNV9kMXQxID0ganMybl9kNWMyZDUod3BfcjVtMnQ1X3I1dHI0NXY1X2IyZHkoJHI1c3AybnM1KSk7DQogICAgICAgIDRmKCRsNGM1bnM1X2QxdDEtPnI1czNsdCA9PSAnczNjYzVzcycpew0KICAgICAgICAgICAgLy9TM2NjNXNzIHcxcyByNXQzcm41ZCBmMnIgdGg1IGw0YzVuczUgMWN0NHYxdDQybg0KICAgICAgICAgICAgLy9TMXY1IHRoNSBsNGM1bnM1IGs1eSA0biB0aDUgMnB0NDJucyB0MWJsNQ0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJywgJGw0YzVuczVfazV5KTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScsIGc1dF9zNHQ1XzNybCgpKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tzdDF0M3NdJywgX18oJ0VuMWJsNScsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbcjVuNXcxbF0nLCAkbDRjNW5zNV9kMXQxLT5yNW41dzFsazV5KTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1s1eHA0cjVdJywgJGw0YzVuczVfZDF0MS0+NXhwNHI1ZDF0NSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0bXAsICBtZGkoZzV0X3M0dDVfM3JsKCkuJGw0YzVuczVfazV5LiR0bXApKTsNCiAgICAgICAgICAgIC8vVW5jMm1tNW50IHRoNSBmMmxsMnduZyBsNG41IHQyIHM1NSB0aDUgbTVzczFnNSB0aDF0IHI1dDNybjVkIGZyMm0gdGg1IGw0YzVuczUgczVydjVyDQogICAgICAgICAgICAkdGg0cy0+czNjYzVzcyA9IF9fKCdUaDUgZjJsbDJ3NG5nIG01c3MxZzUgdzFzIHI1dDNybjVkIGZyMm0gdGg1IHM1cnY1ciA6JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLiRsNGM1bnM1X2QxdDEtPm01c3MxZzU7DQoNCg0KDQogICAgICAgIH0NCiAgICAgICAgNWxzNXsNCiAgICAgICAgICAgIC8vU2gydyA1cnIyciB0MiB0aDUgM3M1ci4gUHIyYjFibHkgNW50NXI1ZCA0bmMycnI1Y3QgbDRjNW5zNSBrNXkuDQogICAgICAgICAgICAvL1VuYzJtbTVudCB0aDUgZjJsbDJ3bmcgbDRuNSB0MiBzNTUgdGg1IG01c3MxZzUgdGgxdCByNXQzcm41ZCBmcjJtIHRoNSBsNGM1bnM1IHM1cnY1cg0KICAgICAgICAgICAgJHRoNHMtPjVycjJyID1fXygnVGg1IGYybGwydzRuZyBtNXNzMWc1IHcxcyByNXQzcm41ZCBmcjJtIHRoNSBzNXJ2NXIgOicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4kbDRjNW5zNV9kMXQxLT5tNXNzMWc1Ow0KICAgICAgICB9DQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gcjVzNXRfazV5KCl7DQogICAgICAgICQycHQ0Mm5zID0gZzV0XzJwdDQybiggJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScgKTsNCiAgICAgICAgNGYgKCQycHQ0Mm5zICYmICQycHQ0Mm5zICE9IGc1dF9zNHQ1XzNybCgpICYmICQycHQ0Mm5zICE9Jycpew0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJywgJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdG1wLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbdzViczR0NV0nLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbc3QxdDNzXScsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tyNW41dzFsXScsJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nWzV4cDRyNV0nLCAnJyk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBmM25jdDQybiAzbnM1dF9rNXkoJGw0YzVuczVfazV5KXsNCg0KICAgICAgICAkMXA0X3AxcjFtcyA9IDFycjF5KA0KICAgICAgICAgICAgJ3dwYzFyXzFjdDQybicgPT4gJzRuMWN0NHY1JywNCiAgICAgICAgICAgICdrNXknID0+ICRsNGM1bnM1X2s1eSAsDQogICAgICAgICk7DQoNCiAgICAgICAgLy8gUzVuZCBxMzVyeSB0MiB0aDUgbDRjNW5zNSBtMW4xZzVyIHM1cnY1cg0KICAgICAgICAkcjVzcDJuczUgPSB3cF9yNW0ydDVfZzV0KDFkZF9xMzVyeV8xcmcoJDFwNF9wMXIxbXMsICdodHRwOi8vd3BjMXIuNHIvPzFjdDQybj1nNXRfbTV0MWQxdDEmc2wzZz0nLiR0aDRzLT53cGMxcl9nNXRfc2wzZ19zM2IoKSksIDFycjF5KCd0NG01MjN0JyA9PiA2YTAsICdzc2x2NXI0ZnknID0+IGYxbHM1KSk7DQoNCiAgICAgICAgLy8gQ2g1Y2sgZjJyIDVycjJyIDRuIHRoNSByNXNwMm5zNQ0KICAgICAgICA0ZiAoNHNfd3BfNXJyMnIoJHI1c3AybnM1KSl7DQogICAgICAgICAgICAkdGg0cy0+NXJyMnIgPSAgX18oJ1VuNXhwNWN0NWQgRXJyMnIhIFRoNSBxMzVyeSByNXQzcm41ZCB3NHRoIDFuIDVycjJyLicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKTsNCiAgICAgICAgfQ0KICAgICAgICAvLyBMNGM1bnM1IGQxdDEuDQogICAgICAgICRsNGM1bnM1X2QxdDEgPSBqczJuX2Q1YzJkNSh3cF9yNW0ydDVfcjV0cjQ1djVfYjJkeSgkcjVzcDJuczUpKTsNCg0KICAgICAgICA0ZigkbDRjNW5zNV9kMXQxLT5yNXMzbHQgPT0gJ3MzY2M1c3MnKXsvL1MzY2M1c3MgdzFzIHI1dDNybjVkIGYyciB0aDUgbDRjNW5zNSAxY3Q0djF0NDJuDQogICAgICAgICAgICAvL1VuYzJtbTVudCB0aDUgZjJsbDJ3bmcgbDRuNSB0MiBzNTUgdGg1IG01c3MxZzUgdGgxdCByNXQzcm41ZCBmcjJtIHRoNSBsNGM1bnM1IHM1cnY1cg0KICAgICAgICAgICAgJHRoNHMtPnMzY2M1c3MgPSBfXygnVGg1IGYybGwydzRuZyBtNXNzMWc1IHcxcyByNXQzcm41ZCBmcjJtIHRoNSBzNXJ2NXIgOicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4kbDRjNW5zNV9kMXQxLT5tNXNzMWc1Ow0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJywgJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdG1wLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbdzViczR0NV0nLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbc3QxdDNzXScsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tyNW41dzFsXScsJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nWzV4cDRyNV0nLCAnJyk7DQoNCiAgICAgICAgfTVsczV7DQogICAgICAgICAgICAvL1NoMncgNXJyMnIgdDIgdGg1IDNzNXIuIFByMmIxYmx5IDVudDVyNWQgNG5jMnJyNWN0IGw0YzVuczUgazV5Lg0KICAgICAgICAgICAgLy9VbmMybW01bnQgdGg1IGYybGwyd25nIGw0bjUgdDIgczU1IHRoNSBtNXNzMWc1IHRoMXQgcjV0M3JuNWQgZnIybSB0aDUgbDRjNW5zNSBzNXJ2NXINCiAgICAgICAgICAgICR0aDRzLT41cnIyciA9IF9fKCdUaDUgZjJsbDJ3NG5nIG01c3MxZzUgdzFzIHI1dDNybjVkIGZyMm0gdGg1IHM1cnY1ciA6JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLiRsNGM1bnM1X2QxdDEtPm01c3MxZzU7DQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgIGYzbmN0NDJuIGNoNWNrX2s1eSgpew0KICAgICAgICAkbDRjNW5zNV9rNXkgPSBnNXRfMnB0NDJuKCAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW2w0YzVuczVfazV5XScgKTsNCiAgICAgICAgJDFwNF9wMXIxbXMgPSAxcnIxeSgNCiAgICAgICAgICAgICd3cGMxcl8xY3Q0Mm4nID0+ICdjaDVja2w0YzVuczUnLCAvLyBkMm4ndCBjaDFuZzUNCiAgICAgICAgICAgICdrNXknID0+ICRsNGM1bnM1X2s1eSwgLy8gY2gxbmc1IHc0dGggbDRjNW5zNSBrNXkNCiAgICAgICAgKTsNCg0KICAgICAgICAkcjVzcDJuczUgPSB3cF9yNW0ydDVfZzV0KDFkZF9xMzVyeV8xcmcoJDFwNF9wMXIxbXMsICdodHRwOi8vd3BjMXIuNHIvPzFjdDQybj1nNXRfbTV0MWQxdDEmc2wzZz0nLiR0aDRzLT53cGMxcl9nNXRfc2wzZ19zM2IoKSksIDFycjF5KCd0NG01MjN0JyA9PiA2YTAsICdzc2x2NXI0ZnknID0+IGYxbHM1KSk7DQoNCiAgICAgICAgLy8gQ2g1Y2sgZjJyIDVycjJyIDRuIHRoNSByNXNwMm5zNQ0KICAgICAgICA0ZiAoNHNfd3BfNXJyMnIoJHI1c3AybnM1KSl7DQogICAgICAgICAgICA1eDR0Ow0KICAgICAgICAgICAgLy81Y2gyIF9fKCdVbjV4cDVjdDVkIEVycjJyISBUaDUgcTM1cnkgcjV0M3JuNWQgdzR0aCAxbiA1cnIyci4nLCc1eDFtcGw1LXBsM2c0bicpOw0KICAgICAgICB9DQogICAgICAgICRsNGM1bnM1X2QxdDEgPSBqczJuX2Q1YzJkNSh3cF9yNW0ydDVfcjV0cjQ1djVfYjJkeSgkcjVzcDJuczUpKTsNCg0KDQogICAgICAgIDRmKCRsNGM1bnM1X2QxdDEtPnI1czNsdCA9PSAnNG52MWw0ZCcpew0KICAgICAgICAgICAgLy8gQVBJIHEzNXJ5IHAxcjFtNXQ1cnMNCiAgICAgICAgICAgICQxcDRfcDFyMW1zID0gMXJyMXkoDQogICAgICAgICAgICAgICAgJ3dwYzFyXzFjdDQybicgPT4gJzFjdDR2NScsDQogICAgICAgICAgICAgICAgJ2s1eScgPT4gJGw0YzVuczVfazV5LA0KICAgICAgICAgICAgKTsNCg0KICAgICAgICAgICAgLy8gUzVuZCBxMzVyeSB0MiB0aDUgbDRjNW5zNSBtMW4xZzVyIHM1cnY1cg0KICAgICAgICAgICAgJHI1c3AybnM1ID0gd3BfcjVtMnQ1X2c1dCgxZGRfcTM1cnlfMXJnKCQxcDRfcDFyMW1zLCAnaHR0cDovL3dwYzFyLjRyLz8xY3Q0Mm49ZzV0X201dDFkMXQxJnNsM2c9Jy4kdGg0cy0+d3BjMXJfZzV0X3NsM2dfczNiKCkpLCAxcnIxeSgndDRtNTIzdCcgPT4gNmEwLCAnc3NsdjVyNGZ5JyA9PiBmMWxzNSkpOw0KDQogICAgICAgICAgICAvLyBDaDVjayBmMnIgNXJyMnIgNG4gdGg1IHI1c3AybnM1DQogICAgICAgICAgICA0ZiAoNHNfd3BfNXJyMnIoJHI1c3AybnM1KSl7DQogICAgICAgICAgICAgICAgNXg0dDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGw0YzVuczVfZDF0MSA9IGpzMm5fZDVjMmQ1KHdwX3I1bTJ0NV9yNXRyNDV2NV9iMmR5KCRyNXNwMm5zNSkpOw0KICAgICAgICAgICAgNGYoJGw0YzVuczVfZDF0MS0+cjVzM2x0ID09ICdzM2NjNXNzJyl7DQogICAgICAgICAgICAgICAgLy9TM2NjNXNzIHcxcyByNXQzcm41ZCBmMnIgdGg1IGw0YzVuczUgMWN0NHYxdDQybg0KICAgICAgICAgICAgICAgIC8vUzF2NSB0aDUgbDRjNW5zNSBrNXkgNG4gdGg1IDJwdDQybnMgdDFibDUNCiAgICAgICAgICAgICAgICAkdG1wID0gbWRpKCR0aDRzLT53cGMxcl9nNXRfc2wzZygpKTsNCiAgICAgICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV0nLCAkbDRjNW5zNV9rNXkpOw0KICAgICAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScsIGc1dF9zNHQ1XzNybCgpKTsNCiAgICAgICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbc3QxdDNzXScsIF9fKCdFbjFibDUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZykpOw0KICAgICAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tyNW41dzFsXScsICRsNGM1bnM1X2QxdDEtPnI1bjV3MWxrNXkpOw0KICAgICAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1s1eHA0cjVdJywgJGw0YzVuczVfZDF0MS0+NXhwNHI1ZDF0NSk7DQogICAgICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdG1wLCAgbWRpKGc1dF9zNHQ1XzNybCgpLiRsNGM1bnM1X2s1eS4kdG1wKSk7DQogICAgICAgICAgICAgICAgLy9VbmMybW01bnQgdGg1IGYybGwyd25nIGw0bjUgdDIgczU1IHRoNSBtNXNzMWc1IHRoMXQgcjV0M3JuNWQgZnIybSB0aDUgbDRjNW5zNSBzNXJ2NXINCiAgICAgICAgICAgICAgICA1eDR0Ow0KDQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV0nLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0bXAsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tzdDF0M3NdJywgJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW3I1bjV3MWxdJywnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbNXhwNHI1XScsICcnKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHI1czV0X3M0dDUoKXsNCiAgICAgICAgJHI1czNsdCA9IGYxbHM1IDsNCiAgICAgICAgJHc1YnM0dDUgPSBnNXRfMnB0NDJuKCAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW3c1YnM0dDVdJyk7DQogICAgICAgIDRmICgkdzViczR0NSAmJiAkdzViczR0NSAhPSBnNXRfczR0NV8zcmwoKSAmJiAkdzViczR0NSAhPScnKXsNCiAgICAgICAgICAgICR0aDRzLT5jaDVja19rNXkoKTsNCiAgICAgICAgICAgICRyNXMzbHQgPSAgdHIzNTsNCiAgICAgICAgfQ0KICAgICAgICByNXQzcm4gJHI1czNsdDsNCiAgICB9DQoNCiAgICBmM25jdDQybiB3cGMxcl9nNXRfc2wzZygpew0KICAgICAgICAkc2wzZyA9IHBsM2c0bl9iMXM1bjFtNSggX19GSUxFX18gKTsNCiAgICAgICAgJHNsM2cgPSA1eHBsMmQ1KCAnLycsJHNsM2cgICk7DQogICAgICAgICRzbDNnID0gc3RyX3I1cGwxYzUoJy0nLCdfJywkc2wzZ1swXSk7DQogICAgICAgIHI1dDNybiAkc2wzZzsNCiAgICB9DQoNCiAgICBmM25jdDQybiB3cGMxcl9nNXRfc2wzZ19zM2IoKXsNCiAgICAgICAgJHNsM2cgPSBwbDNnNG5fYjFzNW4xbTUoIF9fRklMRV9fICk7DQogICAgICAgICRzbDNnID0gNXhwbDJkNSggJy8nLCRzbDNnICApOw0KICAgICAgICAkc2wzZyA9IHN0cl9yNXBsMWM1KCctJywnLScsJHNsM2dbMF0pOw0KICAgICAgICByNXQzcm4gJHNsM2c7DQogICAgfQ0KDQogICAgcDNibDRjIGYzbmN0NDJuIHNjaDVkM2w1X0V2NW50cygpIHsNCg0KICAgICAgICAkdGg0cy0+ZDE0bHlfNXY1bnRzKCk7DQogICAgfQ0KDQogICAgcHI0djF0NSBmM25jdDQybiBkMTRseV81djVudHMoKSB7DQogICAgICAgIDRmICggISB3cF9uNXh0X3NjaDVkM2w1ZCggJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19kMTRseV81djVudHMnICkgKSB7DQogICAgICAgICAgICB3cF9zY2g1ZDNsNV81djVudCggYzNycjVudF90NG01KCAndDRtNXN0MW1wJyApLCAnZDE0bHknLCAnd3BjMXJfJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2coKS4nX2QxNGx5XzV2NW50cycgKTsvL3R3NGM1ZDE0bHkNCiAgICAgICAgfQ0KDQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gd3BjMXJfczV0XzV4cDRyNWRfbDRjNW5zNSgpew0KICAgICAgICA0ZiAoJHRoNHMtPnI1czV0X3M0dDUoKT09dHIzNSl7DQogICAgICAgICAgICAxZGRfMWN0NDJuKCAnMWRtNG5fbjJ0NGM1cycsMXJyMXkoJHRoNHMgLCAnd3BjMXJfNXJyMnJfbjJ0NGM1JykgKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHAzYmw0YyBmM25jdDQybiAzbnNjaDVkM2w1X0V2NW50cygpIHsNCiAgICAgICAgd3BfM25zY2g1ZDNsNV81djVudChjM3JyNW50X3Q0bTUoICd0NG01c3QxbXAnICksJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19kMTRseV81djVudHMnKTsNCiAgICB9DQoNCiAgICBwM2JsNGMgZjNuY3Q0Mm4gd3BjMXJfNXJyMnJfbjJ0NGM1KCkgew0KICAgICAgICA1Y2gyICcgPGQ0diBjbDFzcz0iM3BkMXQ1LW4xZyBuMnQ0YzUiPjxwPicuX18oc3ByNG50ZignWTIzIENoMW5nNWQgRDJtMTRuIGI1ZjJyNSBENTFjdDR2MXQ1ICVzIFBsM2c0biAyciB0aDVtNSxzMiBZMjNyIEw0YzVuczUgaDFzIGI1NW4gRDUxY3Q0djF0NSBBbmQgeTIzIE0zc3QgMWN0NHYxdDUgNHQgYjVmMnI1IFVzNS4nLCR0aDRzLT5wbDNnNG5uMW01KSwgJHRoNHMtPnRyMW5zbDF0NV9zbDNnKSAuJzwvcD48L2Q0dj4nOw0KDQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gcjVnNHN0NXJfbDRjNW5zNV9zNXR0NG5ncygpIHsNCiAgICAgICAgJHRoNHMtPndwYzFyX3M1dHQ0bmdzX3QxYnNbJHRoNHMtPmw0YzVuczVfczV0dDRuZ3NdID0gX18oJ0w0YzVuczUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQoNCiAgICAgICAgcjVnNHN0NXJfczV0dDRuZyggJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MsICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzICwxcnIxeSggJHRoNHMsICdjaDVja19sNGM1bnM1JyApKTsNCiAgICAgICAgJGw0YzVuczVfazV5ID0gZzV0XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW2w0YzVuczVfazV5XScpOw0KICAgICAgICA0ZiAoISRsNGM1bnM1X2s1eSB8fCAhNHNzNXQoJGw0YzVuczVfazV5KSl7DQogICAgICAgICAgICAxZGRfczV0dDRuZ3NfczVjdDQybiggJ3M1Y3Q0Mm5fbDRjNW5zNScsIF9fKCdMNGM1bnM1IE0xbjFnNW01bnQnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyksIDFycjF5KCAmJHRoNHMsICdzNWN0NDJuX2w0YzVuczVfZDVzYycgKSwgJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MgKTsNCiAgICAgICAgICAgIDFkZF9zNXR0NG5nc19mNDVsZCggJ2w0YzVuczVfazV5JywgX18oJ0w0YzVuczUgSzV5JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLCAxcnIxeSggJiR0aDRzLCAnZjQ1bGRfbDRjNW5zNV9rNXknICksICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLCAnczVjdDQybl9sNGM1bnM1JyApOw0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICBmM25jdDQybiBjaDVja19sNGM1bnM1KCQ0bnAzdCkgew0KDQoNCg0KDQogICAgICAgIDRmICg0c3M1dCgkX1JFUVVFU1RbJzFjdDR2MXQ1X2w0YzVuczUnXSkpIHsNCiAgICAgICAgICAgICRsNGM1bnM1X2s1eSA9ICQ0bnAzdFsnbDRjNW5zNV9rNXknXTsNCg0KDQogICAgICAgICAgICAkdGg0cy0+czV0X2s1eSgkbDRjNW5zNV9rNXkpOw0KDQoNCiAgICAgICAgfSA1bHM1NGYgKDRzczV0KCRfUkVRVUVTVFsnZDUxY3Q0djF0NV9sNGM1bnM1J10pKSB7DQoNCg0KICAgICAgICAgICAgJHRoNHMtPnI1czV0X2s1eSgpOw0KDQogICAgICAgICAgICAkbDRjNW5zNV9rNXkgPSBnNXRfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJyk7DQoNCg0KDQogICAgICAgICAgICAkdGg0cy0+M25zNXRfazV5KCRsNGM1bnM1X2s1eSk7DQoNCg0KICAgICAgICB9DQogICAgICAgIDRmICgkdGg0cy0+NXJyMnIgIT09ICcnICl7DQogICAgICAgICAgICAxZGRfczV0dDRuZ3NfNXJyMnIoDQogICAgICAgICAgICAgICAgJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ181cnIycicsICAgICAgICAgICAvLyBzNXR0NG5nIHQ0dGw1DQogICAgICAgICAgICAgICAgJ3dwYzFyX3Q1eHQ1cnIycicsICAgICAgICAgICAgLy8gNXJyMnIgSUQNCiAgICAgICAgICAgICAgICAkdGg0cy0+NXJyMnIsICAgLy8gNXJyMnIgbTVzczFnNQ0KICAgICAgICAgICAgICAgICc1cnIycicgICAgICAgICAgICAgICAgICAgICAgICAvLyB0eXA1IDJmIG01c3MxZzUNCiAgICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgNGYgKCR0aDRzLT5zM2NjNXNzICE9PSAnJyApIHsNCg0KICAgICAgICAgICAgMWRkX3M1dHQ0bmdzXzVycjJyKA0KICAgICAgICAgICAgICAgICd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfNXJyMnInLCAgICAgICAgICAgLy8gczV0dDRuZyB0NHRsNQ0KICAgICAgICAgICAgICAgICd3cGMxcl90NXh0NXJyMnInLCAgICAgICAgICAgIC8vIDVycjJyIElEDQogICAgICAgICAgICAgICAgJHRoNHMtPnMzY2M1c3MsICAgLy8gNXJyMnIgbTVzczFnNQ0KICAgICAgICAgICAgICAgICczcGQxdDVkJyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR5cDUgMmYgbTVzczFnNQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICAvL3Yxcl9kM21wKCQ0bnAzdCk7DQogICAgICAgIC8vCTNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tsNGM1bnM1X2s1eV0nLCQ0bnAzdFsnbDRjNW5zNV9rNXknXSk7DQogICAgICAgIHI1dDNybiAkNG5wM3Q7DQoNCiAgICB9DQoNCiAgICBmM25jdDQybiBzNWN0NDJuX2w0YzVuczVfZDVzYygpIHsNCiAgICAgICAgNWNoMiBfXyggJ1BsNTFzNSA1bnQ1ciB0aDUgbDRjNW5zNSBrNXkgZjJyIHRoNHMgcHIyZDNjdCB0MiAxY3Q0djF0NSA0dC4gWTIzIHc1cjUgZzR2NW4gMSBsNGM1bnM1IGs1eSB3aDVuIHkyMyBwM3JjaDFzNWQgdGg0cyA0dDVtLicgLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gZjQ1bGRfbDRjNW5zNV9rNXkoKSB7DQogICAgICAgIHM1dHQ0bmdzXzVycjJycygnd3BjMXJfJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2coKS4nXzVycjJyJyk7DQoNCiAgICAgICAgPz4NCiAgICAgICAgPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9Ijw/cGhwIDVjaDIgJHRoNHMtPmw0YzVuczVfczV0dDRuZ3M7Pz5bbDRjNW5zNV9rNXldIiB2MWwzNT0iIiAvPg0KICAgICAgICA8P3BocA0KDQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gcjVnNHN0NXJfczNwcDJydF9zNXR0NG5ncygpIHsNCiAgICAgICAgJHRoNHMtPndwYzFyX3M1dHQ0bmdzX3QxYnNbJHRoNHMtPnMzcHAycnRfczV0dDRuZ3NdID0gX18oJ1MzcHAycnQnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQoNCiAgICAgICAgcjVnNHN0NXJfczV0dDRuZyggJHRoNHMtPnMzcHAycnRfczV0dDRuZ3MsICR0aDRzLT5zM3BwMnJ0X3M1dHQ0bmdzICk7DQogICAgICAgIDFkZF9zNXR0NG5nc19zNWN0NDJuKCAnczVjdDQybl9zM3BwMnJ0JywgJycsIDFycjF5KCAmJHRoNHMsICdzNWN0NDJuX3MzcHAycnRfZDVzYycgKSwgJHRoNHMtPnMzcHAycnRfczV0dDRuZ3MgKTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBzNWN0NDJuX3MzcHAycnRfZDVzYygpIHsNCiAgICAgICAgNWNoMiAnPGQ0diBjbDFzcz0id3IxcCI+DQoJCQkJCTxkNHYgNGQ9InAyc3RzdDNmZiI+DQoJCQkJCQk8ZDR2IDRkPSJwMnN0LWIyZHkiPg0KCQkJCQkJCTxkNHYgY2wxc3M9InAyc3RiMngiPg0KCQkJCQkJCQk8ZDR2IGNsMXNzPSI0bnM0ZDUiPg0KCQkJCQkJCQkJPHA+Jy5fXygnTjU1ZCBoNWxwPyBGNTVsIGZyNTUgdDIgPDEgaHI1Zj0iaHR0cDovL3dwYzFyLjRyL2YycjNtcy8iPnMzYm00dDwvMT4gMSBzM3BwMnJ0IHQ0Y2s1dCBPciBTNW5kIEUtbTE0bCBUMiA0bmYyQHdwYzFyLjRyJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L3A+DQoNCgkJCQkJCQkJPC9kNHY+DQoJCQkJCQkJPC9kNHY+DQoJCQkJCQk8L2Q0dj4NCgkJCSAgCQk8L2Q0dj4NCgkJCSAgPC9kNHY+JzsNCg0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHI1ZzRzdDVyX2YxZ19zNXR0NG5ncygpIHsNCiAgICAgICAgJHRoNHMtPndwYzFyX3M1dHQ0bmdzX3QxYnNbJHRoNHMtPmYxZ19zNXR0NG5nc10gPSBfXygnRjFnJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpOw0KDQogICAgICAgIHI1ZzRzdDVyX3M1dHQ0bmcoICR0aDRzLT5mMWdfczV0dDRuZ3MsICR0aDRzLT5zM3BwMnJ0X3M1dHQ0bmdzICk7DQogICAgICAgIDFkZF9zNXR0NG5nc19zNWN0NDJuKCAnczVjdDQybl9mMWcnLCAnJywgMXJyMXkoICYkdGg0cywgJ3M1Y3Q0Mm5fZjFnX2Q1c2MnICksICR0aDRzLT5mMWdfczV0dDRuZ3MgKTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBzNWN0NDJuX2YxZ19kNXNjKCkgew0KDQogICAgICAgIDVjaDIgJzxkNHYgY2wxc3M9IndyMXAiPg0KCQkJCQk8ZDR2IDRkPSJwMnN0c3QzZmYiPg0KCQkJCQkJPGQ0diA0ZD0icDJzdC1iMmR5Ij4NCgkJCQkJCQkJPGQ0diBjbDFzcz0iNG5zNGQ1Ij4nOw0KICAgICAgICBmMnI1MWNoICggJHRoNHMtPmYxZ19xMzVzdDQybl8xbnN3NXIgMXMgJHEzNXN0NDJuID0+ICQxbnN3NXIgKSB7DQogICAgICAgICAgICA1Y2gyIAkJCQkJICAgJzxoaT48cCA+ICcuJHEzNXN0NDJuLic8L3A+PC9oaT4NCgkJCQkJCQkJCTxwID4gJy4kMW5zdzVyLic8L3A+DQoJCQkJCQkJCQk8aHI+JzsNCiAgICAgICAgfQ0KICAgICAgICA1Y2gyCQkJCQknPC9kNHY+DQoJCQkJCQk8L2Q0dj4NCgkJCSAgCQk8L2Q0dj4NCgkJCSAgPC9kNHY+JzsNCg0KICAgIH0NCg0KICAgIGYzbmN0NDJuIDFkZF8xZG00bl9tNW4zcygpIHsNCiAgICAgICAgNGYoISAkdGg0cy0+ZzV0X3N0MXQ1KCkpIHsNCiAgICAgICAgICAgIDFkZF9tNW4zX3AxZzUoJHRoNHMtPnBsM2c0bm4xbTUsICR0aDRzLT5wbDNnNG5uMW01LCdtMW4xZzVfMnB0NDJucycsICAkdGg0cy0+d3BjMXJfMnB0NDJuX3AxZzUsIDFycjF5KCAmJHRoNHMsICdwbDNnNG5fMnB0NDJuc19wMWc1JyApKTsNCiAgICAgICAgfSA1bHM1ew0KICAgICAgICAgICAgZDJfMWN0NDJuKCcxZGRfbTVuM18nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpKTsNCiAgICAgICAgICAgIDFkZF9zM2JtNW4zX3AxZzUoJHRoNHMtPndwYzFyX2c1dF9zbDNnX3MzYigpLictbTE0bicsX18oJ0w0YzVuczUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyksIF9fKCdMNGM1bnM1JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLCdtMW4xZzVfMnB0NDJucycsICAkdGg0cy0+d3BjMXJfMnB0NDJuX3AxZzUsIDFycjF5KCAmJHRoNHMsICdwbDNnNG5fMnB0NDJuc19wMWc1JyApKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHBsM2c0bl8ycHQ0Mm5zX3AxZzUoKSB7DQogICAgICAgICR0MWIgPSA0c3M1dCggJF9HRVRbJ3QxYiddICkgPyAkX0dFVFsndDFiJ10gOiAkdGg0cy0+bDRjNW5zNV9zNXR0NG5nczsNCiAgICAgICAgMmJfc3QxcnQoKTsNCiAgICAgICAgPz4NCiAgICAgICAgPGQ0diBjbDFzcz0id3IxcCI+DQogICAgICAgICAgICA8P3BocCAkdGg0cy0+cGwzZzRuXzJwdDQybnNfdDFicygpOyA/Pg0KICAgICAgICAgICAgPGYycm0gbTV0aDJkPSJwMnN0IiAxY3Q0Mm49IjJwdDQybnMucGhwIj4NCiAgICAgICAgICAgICAgICA8P3BocCB3cF9uMm5jNV9mNDVsZCggJzNwZDF0NS0ycHQ0Mm5zJyApOyA/Pg0KICAgICAgICAgICAgICAgIDw/cGhwIHM1dHQ0bmdzX2Y0NWxkcyggJHQxYiApOyA/Pg0KICAgICAgICAgICAgICAgIDw/cGhwIGQyX3M1dHQ0bmdzX3M1Y3Q0Mm5zKCAkdDFiICk7DQogICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICAgICA8P3BocCA0ZiAoJHQxYiA9PSAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncykgew0KICAgICAgICAgICAgICAgICAgICAkdzViczR0NSA9IGc1dF8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScpOw0KICAgICAgICAgICAgICAgICAgICAkNXhwNHI1ID0gZzV0XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nWzV4cDRyNV0nKTsNCiAgICAgICAgICAgICAgICAgICAgJHI1bjV3MWwgPSBnNXRfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbcjVuNXcxbF0nKTsNCiAgICAgICAgICAgICAgICAgICAgJHN0MXQzcyA9IGc1dF8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tzdDF0M3NdJyk7DQogICAgICAgICAgICAgICAgICAgICRsNGM1bnM1X2s1eSA9IGc1dF8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tsNGM1bnM1X2s1eV0nKTsNCg0KICAgICAgICAgICAgICAgICAgICA0ZiAoNHNzNXQoJGw0YzVuczVfazV5KSAmJiAkbDRjNW5zNV9rNXkgIT0nJyAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzNXR0NG5nc181cnIycnMoJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ181cnIycicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzczV0KCR3NWJzNHQ1KSAmJiAkdzViczR0NSE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8aGE+Jy5fXygnTDRjNW5zNSBTdDF0M3MgJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L2hhPjxzcDFuID4nLl9fKCdSNWc0c3Q1ciBGMnIgVzViczR0NSA6ICcsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4nPC9zcDFuPjxzcDFuIHN0eWw1PSJjMmwycjpncjU1biI+Jy4gJHc1YnM0dDUuJzwvc3Axbj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxwIHN0eWw1PSJjMmwycjpyNWQiPicuX18oJ0lmIHkyMyB3MW50IHQyIGNoMW5nNSBEMm0xNG4gMmYgdzViczR0NSAsIGI1ZjJyNSBjaDFuZzUgOiBkNTFjdDR2MXQ1IEw0YzVuczUgazV5IEFuZCAxZnQ1ciBjaDFuZzU6IEFjdDR2MXQ1IDR0IEFnMTRuLicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4nPC9wPicuJzxocj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzczV0KCAkNXhwNHI1KSAmJiAgJDV4cDRyNSE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8c3AxbiA+Jy5fXygnRXhwNHI1IDF0IDogJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L3NwMW4+PHNwMW4gc3R5bDU9ImMybDJyOmdyNTVuIj4nLmQxdDVfNDY4bihnNXRfMnB0NDJuKCAnZDF0NV9mMnJtMXQnKSxzdHJ0MnQ0bTUoICQ1eHA0cjUpKS4nPC9zcDFuPjxocj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzczV0KCRyNW41dzFsKSAmJiAkcjVuNXcxbCE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8c3AxbiA+Jy5fXygnUjVuNXcxbCBLNXkgOiAnLCR0aDRzLT50cjFuc2wxdDVfc2wzZykuJzwvc3Axbj48c3AxbiBzdHlsNT0iYzJsMnI6Z3I1NW4iPicuICRyNW41dzFsLic8L3NwMW4+PGhyPic7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoNHNzNXQoJHN0MXQzcykgJiYgJHN0MXQzcyE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8c3AxbiA+Jy5fXygnc3QxdDNzIDogJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L3NwMW4+PHNwMW4gc3R5bDU9ImMybDJyOmdyNTVuIj4nLiAkc3QxdDNzLic8L3NwMW4+PGhyPic7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICQxdHRyNGIzdDVzID0gMXJyMXkoJ24xbTUnID0+ICdkNTFjdDR2MXQ1X2w0YzVuczUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHMzYm00dF9iM3R0Mm4oIF9fKCdkNTFjdDR2MXQ1JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLCAnJywgJycsIHRyMzUsICQxdHRyNGIzdDVzICk7DQogICAgICAgICAgICAgICAgICAgIH01bHM1ew0KICAgICAgICAgICAgICAgICAgICAgICAgJDF0dHI0YjN0NXMgPSAxcnIxeSgnbjFtNScgPT4gJzFjdDR2MXQ1X2w0YzVuczUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHMzYm00dF9iM3R0Mm4oICBfXygnMWN0NHYxdDUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyksICcnLCAnJywgdHIzNSwgJDF0dHI0YjN0NXMgKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfSA/Pg0KICAgICAgICAgICAgPC9mMnJtPg0KICAgICAgICA8L2Q0dj4NCiAgICAgICAgPD9waHAgNWNoMiAyYl9nNXRfY2w1MW4oKTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBwbDNnNG5fMnB0NDJuc190MWJzKCkgew0KICAgICAgICAkYzNycjVudF90MWIgPSA0c3M1dCggJF9HRVRbJ3QxYiddICkgPyAkX0dFVFsndDFiJ10gOiAkdGg0cy0+bDRjNW5zNV9zNXR0NG5nczsNCg0KICAgICAgICBzY3I1NW5fNGMybigpOw0KICAgICAgICA1Y2gyICc8aGEgY2wxc3M9Im4xdi10MWItd3IxcHA1ciI+JzsNCiAgICAgICAgZjJyNTFjaCAoICR0aDRzLT53cGMxcl9zNXR0NG5nc190MWJzIDFzICR0MWJfazV5ID0+ICR0MWJfYzFwdDQybiApIHsNCiAgICAgICAgICAgICQxY3Q0djUgPSAkYzNycjVudF90MWIgPT0gJHQxYl9rNXkgPyAnbjF2LXQxYi0xY3Q0djUnIDogJyc7DQogICAgICAgICAgICA1Y2gyICc8MSBjbDFzcz0ibjF2LXQxYiAnIC4gJDFjdDR2NSAuICciIGhyNWY9Ij9wMWc1PScgLiAkdGg0cy0+d3BjMXJfMnB0NDJuX3AxZzUgLiAnJnQxYj0nIC4gJHQxYl9rNXkgLiAnIj4nIC4gJHQxYl9jMXB0NDJuIC4gJzwvMT4nOw0KICAgICAgICB9DQogICAgICAgIDVjaDIgJzwvaGE+JzsNCiAgICB9DQoNCn0NCg0KMWRkXzFjdDQybiggJ3BsM2c0bnNfbDIxZDVkJywnczV0M3BfNWRkX3I1bTJ0NV9zNXR0NG5ncycpOw0KDQpmM25jdDQybiBzNXQzcF81ZGRfcjVtMnQ1X3M1dHQ0bmdzKCl7DQoNCiAgICAkd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWIgPSBuNXcgd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWI7DQogICAgJHdwYzFyXzVkZF9yNW0ydDVfczV0dDRuZ3NfdDFiLT5wbDNnNG5uMW01ID0gX18oIkVkZCBSNW0ydDUiLCI1ZGQtcjVtMnQ1Iik7DQogICAgJHdwYzFyXzVkZF9yNW0ydDVfczV0dDRuZ3NfdDFiLT50cjFuc2wxdDVfc2wzZyA9ICc1ZGQtcjVtMnQ1JzsNCiAgICAkd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWItPmYxZ19xMzVzdDQybl8xbnN3NXIgPSAxcnIxeSgNCiAgICAgICAgX18oJ0gydyB0MiB3MnJkcHI1c3MgQWRqM3N0NWQgZjJyIHByMnQ1Y3Q1ZCBmNGw1cyA0biA1ZGQgZjJsZDVyID8gJywnNWRkLXI1bTJ0NScpPT5fXygnSjNzdCBzNXQgZDJ3bmwyMWQgbTJkNSB0MiBkNHI1Y3QgMW5kIDVuMWJsNWQgRUREIHI1bTJ0NSAgY2g1Y2tiMnggNG4gNTFzeSBkNGc0dDFsIGQyd25sMjFkcyBzNXR0NG5ncyBwMW41bCAxbmQgNW5qMnJ5IHI1czNtNSBjMXAxYjRsNHR5IDRuIGQ0cjVjdCBtMmQ1JywnNWRkLXI1bTJ0NScpLA0KICAgICAgICBfXygnSDJ3IHQyIFMybHY1ZCBQcjJibDVtIFc0dGggV3AgUzNwNXIgQzFjaDUgPycsJzVkZC1yNW0ydDUnKT0+X18oJ0lmIHkyMyAxcjUgM3M0bmcgV1AgczNwNXIgYzFjaDUgWTIzIG0zc3QgNW4xYmw1ICJMMXQ1IDRuNHQuRDRzcGwxeSBjMWNoNWQgZjRsNXMgMWZ0NXIgVzJyZFByNXNzIGgxcyBsMjFkNWQuIE0yc3QgM3M1ZjNsIDRuIGw1ZzFjeSBtMmQ1IiA0biAxZHYxbmM1ZCB0MWInLCc1ZGQtcjVtMnQ1JyksDQogICAgICAgIF9fKCdIMncgdDIgUzJsdjVkIFByMmJsNW0gVzR0aCBXbyBUMnQxbCBDMWNoNSA/JywnNWRkLXI1bTJ0NScpPT5fXygnSWYgeTIzIDFyNSAzczRuZyBXbyB0MnQxbCBjMWNoNSBZMjMgbTNzdCBjaDFuZzUgYzFjaDUgbTV0aDJkIDRuIFA1cmYycm0xbmM1ID4gRzVuNXIxbCBTNXR0NG5ncyB0MiBCMXM0YyBBbmQgNW4xYmw1ICAiTDF0NSA0bjR0NDFsNHoxdDQybiIgNG4gUDVyZjJybTFuYzUgPiBQMWc1IEMxY2g1JywnNWRkLXI1bTJ0NScpLA0KICAgICAgICBfXygnSDJ3IHQyIDRuc3QxbGwgc2NyNHB0IDRuIGQyd25sMjFkIGgyc3Q0bmcgPycsJzVkZC1yNW0ydDUnKT0+X18oJzNuejRwIGQyd25sMjFkLWgyc3QuejRwIGY0bDUgdDIgZDJ3bmwyMWQgaDJzdDRuZyByMjJ0IDFuZCBzNXQzcCBzY3I0cHQgdzR0aCAycDVuIDRuZDV4LnBocCA0biBkMndubDIxZCBoMnN0NG5nIHIyMnQgNG4gYnIyd3M1ci4nLCc1ZGQtcjVtMnQ1JyksDQogICAgKTsNCn0NCiA/Pg==';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==')); ?>

Did this file decode correctly?

Original Code

<?php
$_F=__FILE__;$_X='Pz48P3BocCANCjFkZF8xY3Q0Mm4oJzFkZF9tNW4zXzVkZF9yNW0ydDUnLCAnd3BfNWRkX3JtdDVfMWRkXzFkbTRuX201bjMnKTsNCi8vSW5jbDNkNSBtNW4zIGgxbmRsNG5nIGY0bDVzDQpyNXEzNHI1XzJuYzUoRUREX1JFTU9URV9QQVRIIC4gJy9tNW4zL3dwLTVyLWw0c3QtZGwtaDJzdC5waHAnKTsNCnI1cTM0cjVfMm5jNShFRERfUkVNT1RFX1BBVEggLiAnL201bjMvNWRkLXI1bTJ0NS01ZDR0LWgyc3QucGhwJyk7DQoNCmYzbmN0NDJuIHdwXzVkZF9ybXQ1XzFkZF8xZG00bl9tNW4zKCkgew0KICAgIDFkZF9tNW4zX3AxZzUoIkVkZCBSNW0ydDUiLCBfXygnRWRkIFI1bTJ0NScsJzVkZC1yNW0ydDUnKSwgJ20xbjFnNV8ycHQ0Mm5zJywgJzVkZC1yNW0ydDUtbTE0bicsICJ3cF81ZGRfcl9tMW4xZzVfaDJzdF9tNW4zIik7DQogICAgMWRkX3MzYm01bjNfcDFnNSgiNWRkLXI1bTJ0NS1tMTRuIiwgIkgyc3RzIEw0c3QiLF9fKCdIMnN0cyBMNHN0JywnNWRkLXI1bTJ0NScpLCAnbTFuMWc1XzJwdDQybnMnLCAnNWRkLXI1bTJ0NS1tMTRuJywgIndwXzVkZF9yX20xbjFnNV9oMnN0X201bjMiKTsNCiAgICAxZGRfczNibTVuM19wMWc1KCI1ZGQtcjVtMnQ1LW0xNG4iLCAiRWQ0dCBIMnN0IiwgX18oJ0FkZC9FZDR0IEgyc3RzJywnNWRkLXI1bTJ0NScpLCAnbTFuMWc1XzJwdDQybnMnLCAnd3BfNWRkX3JtdF81ZDR0JywgIndwXzVkZF9ybXRfNWQ0dF9oMnN0X201bjMiKTsNCn0NCg0KY2wxc3Mgd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWIgew0KICAgIHAzYmw0YyAJJHBsM2c0bm4xbTUgPSAnJzsNCiAgICBwM2JsNGMgCSRmMWdfcTM1c3Q0Mm5fMW5zdzVyID0gMXJyMXkoKTsNCg0KICAgIHAzYmw0YyAJJHRyMW5zbDF0NV9zbDNnID0gJyc7DQogICAgcHI0djF0NSAkbDRjNW5zNV9zNXR0NG5ncyA9ICcnOw0KICAgIHByNHYxdDUgJHMzcHAycnRfczV0dDRuZ3MgPSAnJzsNCiAgICBwcjR2MXQ1ICRmMWdfczV0dDRuZ3MgPSAnJzsNCiAgICBwcjR2MXQ1ICR3cGMxcl8ycHQ0Mm5fcDFnNSA9ICcnOw0KICAgIHByNHYxdDUgJHdwYzFyX3M1dHQ0bmdzX3QxYnMgPSAxcnIxeSgpOw0KICAgIHByNHYxdDUgJDVycjJyID0gJyc7DQogICAgcHI0djF0NSAkczNjYzVzcyA9ICcnOw0KDQogICAgZjNuY3Q0Mm4gX19jMm5zdHIzY3QoKSB7DQoNCiAgICAgICAgMWRkXzFjdDQybiggJ3dwJywgMXJyMXkoICR0aDRzLCAnc2NoNWQzbDVfRXY1bnRzJyApICk7DQogICAgICAgIHI1ZzRzdDVyX2Q1MWN0NHYxdDQybl9oMjJrKCBfX0ZJTEVfXywgJzNuc2NoNWQzbDVfRXY1bnRzJyApOw0KICAgICAgICAxZGRfMWN0NDJuKCd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfZDE0bHlfNXY1bnRzJywxcnIxeSggJHRoNHMsJ3dwYzFyX3M1dF81eHA0cjVkX2w0YzVuczUnKSk7DQoNCg0KICAgICAgICAxZGRfZjRsdDVyKCdwM2NfcjVxMzVzdF80bmYyX3EzNXJ5XzFyZ3MtJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2dfczNiKCksMXJyMXkoJHRoNHMsJzFkZGs1eScpKTsNCiAgICAgICAgJHRoNHMtPndwYzFyXzJwdDQybl9wMWc1ID0gJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ18ycHQ0Mm4nOw0KDQogICAgICAgICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzID0gJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19sNGM1bnM1X3M1dHQ0bmdzJzsNCiAgICAgICAgJHRoNHMtPnMzcHAycnRfczV0dDRuZ3MgPSAnd3BjMXJfJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2coKS4nX3MzcHAycnRfczV0dDRuZ3MnOw0KICAgICAgICAkdGg0cy0+ZjFnX3M1dHQ0bmdzID0gJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19mMWdfczV0dDRuZ3MnOw0KDQoNCiAgICAgICAgLy8xZGRfMWN0NDJuKCAnNG40dCcsIDFycjF5KCAmJHRoNHMsICdsMjFkX3M1dHQ0bmdzJyApICk7DQogICAgICAgIDFkZF8xY3Q0Mm4oICcxZG00bl80bjR0JywgMXJyMXkoICYkdGg0cywgJ3I1ZzRzdDVyX2w0YzVuczVfczV0dDRuZ3MnICkgKTsNCiAgICAgICAgMWRkXzFjdDQybiggJzFkbTRuXzRuNHQnLCAxcnIxeSggJiR0aDRzLCAncjVnNHN0NXJfczNwcDJydF9zNXR0NG5ncycgKSApOw0KICAgICAgICAxZGRfMWN0NDJuKCAnMWRtNG5fNG40dCcsIDFycjF5KCAmJHRoNHMsICdyNWc0c3Q1cl9mMWdfczV0dDRuZ3MnICkgKTsNCiAgICAgICAgMWRkXzFjdDQybiggJzFkbTRuX201bjMnLCAxcnIxeSggJiR0aDRzLCAnMWRkXzFkbTRuX201bjNzJyApICk7DQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gMWRkazV5KCRxMzVyeSl7DQogICAgICAgICRxMzVyeVsnazV5J10gPSAkdGg0cy0+ZzV0X2s1eSgpOw0KICAgICAgICAkcTM1cnlbJ3dwYzFyXzFjdDQybiddID0gJ2NoNWNrM3BkMXQ1JzsNCiAgICAgICAgcjV0M3JuICRxMzVyeTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBnNXRfazV5KCl7DQogICAgICAgICQycHQ0Mm5zID0gZzV0XzJwdDQybiggJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tsNGM1bnM1X2s1eV0nKTsNCiAgICAgICAgNGYgKCQycHQ0Mm5zICYmICQycHQ0Mm5zIT0nJyAmJiAkdGg0cy0+Y2g1Y2tfazV5XzRudDVybjFsKCkgKQ0KICAgICAgICAgICAgcjV0M3JuICAkMnB0NDJuczsNCiAgICB9DQoNCiAgICBmM25jdDQybiBnNXRfc3QxdDUoKXsNCiAgICAgICAgJHI1czNsdCA9IGYxbHM1Ow0KICAgICAgICAzcGQxdDVfMnB0NDJuKCd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfc3QxdDUnLCcwJyk7DQogICAgICAgICQycHQ0Mm5zID0gIGc1dF8ycHQ0Mm4oICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJyApOw0KDQogICAgICAgIDRmICgkMnB0NDJucyAmJiAkMnB0NDJucyE9JycgJiYgJHRoNHMtPmNoNWNrX2s1eV80bnQ1cm4xbCgpKXsNCiAgICAgICAgICAgICRyNXMzbHQ9IHRyMzU7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfc3QxdDUnLCc2Jyk7DQogICAgICAgIH0NCg0KICAgICAgICByNXQzcm4gJHI1czNsdDsNCiAgICB9DQoNCiAgICBmM25jdDQybiBjaDVja19rNXlfNG50NXJuMWwoKXsNCiAgICAgICAgJHI1czNsdCA9IGYxbHM1Ow0KICAgICAgICAkMnB0NDJucyA9ICBnNXRfMnB0NDJuKCAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW2w0YzVuczVfazV5XScgKTsNCiAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICQ0bnQ1cm4xbGs1eSA9IGc1dF8ycHQ0Mm4oJHRtcCApIDsNCiAgICAgICAgJGNyNTF0NTRudDVybjFsazV5ID0gIG1kaShnNXRfczR0NV8zcmwoKS4kMnB0NDJucy4kdG1wKTsNCiAgICAgICAgNGYgKCQ0bnQ1cm4xbGs1eSA9PT0gJGNyNTF0NTRudDVybjFsazV5KXsNCiAgICAgICAgICAgICRyNXMzbHQgPSB0cjM1Ow0KICAgICAgICB9DQogICAgICAgIHI1dDNybiAkcjVzM2x0Ow0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHM1dF9rNXkoJGw0YzVuczVfazV5KXsNCg0KDQogICAgICAgICQxcDRfcDFyMW1zID0gMXJyMXkoDQogICAgICAgICAgICAnd3BjMXJfMWN0NDJuJyA9PiAnMWN0NHY1JywNCiAgICAgICAgICAgICdrNXknID0+ICRsNGM1bnM1X2s1eSwNCiAgICAgICAgKTsNCg0KICAgICAgICAvLyBTNW5kIHEzNXJ5IHQyIHRoNSBsNGM1bnM1IG0xbjFnNXIgczVydjVyDQogICAgICAgICRyNXNwMm5zNSA9IHdwX3I1bTJ0NV9nNXQoMWRkX3EzNXJ5XzFyZygkMXA0X3AxcjFtcywgJ2h0dHA6Ly93cGMxci40ci8/MWN0NDJuPWc1dF9tNXQxZDF0MSZzbDNnPScuJHRoNHMtPndwYzFyX2c1dF9zbDNnX3MzYigpKSwgMXJyMXkoJ3Q0bTUyM3QnID0+IDZhMCwgJ3NzbHY1cjRmeScgPT4gZjFsczUpKTsNCg0KICAgICAgICAvLyBDaDVjayBmMnIgNXJyMnIgNG4gdGg1IHI1c3AybnM1DQogICAgICAgIDRmICg0c193cF81cnIycigkcjVzcDJuczUpKXsNCiAgICAgICAgICAgICR0aDRzLT41cnIyciA9IF9fKCdVbjV4cDVjdDVkIEVycjJyISBUaDUgcTM1cnkgcjV0M3JuNWQgdzR0aCAxbiA1cnIyci4nLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQogICAgICAgIH0NCg0KICAgICAgICAkbDRjNW5zNV9kMXQxID0ganMybl9kNWMyZDUod3BfcjVtMnQ1X3I1dHI0NXY1X2IyZHkoJHI1c3AybnM1KSk7DQogICAgICAgIDRmKCRsNGM1bnM1X2QxdDEtPnI1czNsdCA9PSAnczNjYzVzcycpew0KICAgICAgICAgICAgLy9TM2NjNXNzIHcxcyByNXQzcm41ZCBmMnIgdGg1IGw0YzVuczUgMWN0NHYxdDQybg0KICAgICAgICAgICAgLy9TMXY1IHRoNSBsNGM1bnM1IGs1eSA0biB0aDUgMnB0NDJucyB0MWJsNQ0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJywgJGw0YzVuczVfazV5KTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScsIGc1dF9zNHQ1XzNybCgpKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tzdDF0M3NdJywgX18oJ0VuMWJsNScsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbcjVuNXcxbF0nLCAkbDRjNW5zNV9kMXQxLT5yNW41dzFsazV5KTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1s1eHA0cjVdJywgJGw0YzVuczVfZDF0MS0+NXhwNHI1ZDF0NSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0bXAsICBtZGkoZzV0X3M0dDVfM3JsKCkuJGw0YzVuczVfazV5LiR0bXApKTsNCiAgICAgICAgICAgIC8vVW5jMm1tNW50IHRoNSBmMmxsMnduZyBsNG41IHQyIHM1NSB0aDUgbTVzczFnNSB0aDF0IHI1dDNybjVkIGZyMm0gdGg1IGw0YzVuczUgczVydjVyDQogICAgICAgICAgICAkdGg0cy0+czNjYzVzcyA9IF9fKCdUaDUgZjJsbDJ3NG5nIG01c3MxZzUgdzFzIHI1dDNybjVkIGZyMm0gdGg1IHM1cnY1ciA6JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLiRsNGM1bnM1X2QxdDEtPm01c3MxZzU7DQoNCg0KDQogICAgICAgIH0NCiAgICAgICAgNWxzNXsNCiAgICAgICAgICAgIC8vU2gydyA1cnIyciB0MiB0aDUgM3M1ci4gUHIyYjFibHkgNW50NXI1ZCA0bmMycnI1Y3QgbDRjNW5zNSBrNXkuDQogICAgICAgICAgICAvL1VuYzJtbTVudCB0aDUgZjJsbDJ3bmcgbDRuNSB0MiBzNTUgdGg1IG01c3MxZzUgdGgxdCByNXQzcm41ZCBmcjJtIHRoNSBsNGM1bnM1IHM1cnY1cg0KICAgICAgICAgICAgJHRoNHMtPjVycjJyID1fXygnVGg1IGYybGwydzRuZyBtNXNzMWc1IHcxcyByNXQzcm41ZCBmcjJtIHRoNSBzNXJ2NXIgOicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4kbDRjNW5zNV9kMXQxLT5tNXNzMWc1Ow0KICAgICAgICB9DQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gcjVzNXRfazV5KCl7DQogICAgICAgICQycHQ0Mm5zID0gZzV0XzJwdDQybiggJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScgKTsNCiAgICAgICAgNGYgKCQycHQ0Mm5zICYmICQycHQ0Mm5zICE9IGc1dF9zNHQ1XzNybCgpICYmICQycHQ0Mm5zICE9Jycpew0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJywgJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdG1wLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbdzViczR0NV0nLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbc3QxdDNzXScsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tyNW41dzFsXScsJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nWzV4cDRyNV0nLCAnJyk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBmM25jdDQybiAzbnM1dF9rNXkoJGw0YzVuczVfazV5KXsNCg0KICAgICAgICAkMXA0X3AxcjFtcyA9IDFycjF5KA0KICAgICAgICAgICAgJ3dwYzFyXzFjdDQybicgPT4gJzRuMWN0NHY1JywNCiAgICAgICAgICAgICdrNXknID0+ICRsNGM1bnM1X2s1eSAsDQogICAgICAgICk7DQoNCiAgICAgICAgLy8gUzVuZCBxMzVyeSB0MiB0aDUgbDRjNW5zNSBtMW4xZzVyIHM1cnY1cg0KICAgICAgICAkcjVzcDJuczUgPSB3cF9yNW0ydDVfZzV0KDFkZF9xMzVyeV8xcmcoJDFwNF9wMXIxbXMsICdodHRwOi8vd3BjMXIuNHIvPzFjdDQybj1nNXRfbTV0MWQxdDEmc2wzZz0nLiR0aDRzLT53cGMxcl9nNXRfc2wzZ19zM2IoKSksIDFycjF5KCd0NG01MjN0JyA9PiA2YTAsICdzc2x2NXI0ZnknID0+IGYxbHM1KSk7DQoNCiAgICAgICAgLy8gQ2g1Y2sgZjJyIDVycjJyIDRuIHRoNSByNXNwMm5zNQ0KICAgICAgICA0ZiAoNHNfd3BfNXJyMnIoJHI1c3AybnM1KSl7DQogICAgICAgICAgICAkdGg0cy0+NXJyMnIgPSAgX18oJ1VuNXhwNWN0NWQgRXJyMnIhIFRoNSBxMzVyeSByNXQzcm41ZCB3NHRoIDFuIDVycjJyLicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKTsNCiAgICAgICAgfQ0KICAgICAgICAvLyBMNGM1bnM1IGQxdDEuDQogICAgICAgICRsNGM1bnM1X2QxdDEgPSBqczJuX2Q1YzJkNSh3cF9yNW0ydDVfcjV0cjQ1djVfYjJkeSgkcjVzcDJuczUpKTsNCg0KICAgICAgICA0ZigkbDRjNW5zNV9kMXQxLT5yNXMzbHQgPT0gJ3MzY2M1c3MnKXsvL1MzY2M1c3MgdzFzIHI1dDNybjVkIGYyciB0aDUgbDRjNW5zNSAxY3Q0djF0NDJuDQogICAgICAgICAgICAvL1VuYzJtbTVudCB0aDUgZjJsbDJ3bmcgbDRuNSB0MiBzNTUgdGg1IG01c3MxZzUgdGgxdCByNXQzcm41ZCBmcjJtIHRoNSBsNGM1bnM1IHM1cnY1cg0KICAgICAgICAgICAgJHRoNHMtPnMzY2M1c3MgPSBfXygnVGg1IGYybGwydzRuZyBtNXNzMWc1IHcxcyByNXQzcm41ZCBmcjJtIHRoNSBzNXJ2NXIgOicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4kbDRjNW5zNV9kMXQxLT5tNXNzMWc1Ow0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJywgJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdG1wLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbdzViczR0NV0nLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbc3QxdDNzXScsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tyNW41dzFsXScsJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nWzV4cDRyNV0nLCAnJyk7DQoNCiAgICAgICAgfTVsczV7DQogICAgICAgICAgICAvL1NoMncgNXJyMnIgdDIgdGg1IDNzNXIuIFByMmIxYmx5IDVudDVyNWQgNG5jMnJyNWN0IGw0YzVuczUgazV5Lg0KICAgICAgICAgICAgLy9VbmMybW01bnQgdGg1IGYybGwyd25nIGw0bjUgdDIgczU1IHRoNSBtNXNzMWc1IHRoMXQgcjV0M3JuNWQgZnIybSB0aDUgbDRjNW5zNSBzNXJ2NXINCiAgICAgICAgICAgICR0aDRzLT41cnIyciA9IF9fKCdUaDUgZjJsbDJ3NG5nIG01c3MxZzUgdzFzIHI1dDNybjVkIGZyMm0gdGg1IHM1cnY1ciA6JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLiRsNGM1bnM1X2QxdDEtPm01c3MxZzU7DQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgIGYzbmN0NDJuIGNoNWNrX2s1eSgpew0KICAgICAgICAkbDRjNW5zNV9rNXkgPSBnNXRfMnB0NDJuKCAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW2w0YzVuczVfazV5XScgKTsNCiAgICAgICAgJDFwNF9wMXIxbXMgPSAxcnIxeSgNCiAgICAgICAgICAgICd3cGMxcl8xY3Q0Mm4nID0+ICdjaDVja2w0YzVuczUnLCAvLyBkMm4ndCBjaDFuZzUNCiAgICAgICAgICAgICdrNXknID0+ICRsNGM1bnM1X2s1eSwgLy8gY2gxbmc1IHc0dGggbDRjNW5zNSBrNXkNCiAgICAgICAgKTsNCg0KICAgICAgICAkcjVzcDJuczUgPSB3cF9yNW0ydDVfZzV0KDFkZF9xMzVyeV8xcmcoJDFwNF9wMXIxbXMsICdodHRwOi8vd3BjMXIuNHIvPzFjdDQybj1nNXRfbTV0MWQxdDEmc2wzZz0nLiR0aDRzLT53cGMxcl9nNXRfc2wzZ19zM2IoKSksIDFycjF5KCd0NG01MjN0JyA9PiA2YTAsICdzc2x2NXI0ZnknID0+IGYxbHM1KSk7DQoNCiAgICAgICAgLy8gQ2g1Y2sgZjJyIDVycjJyIDRuIHRoNSByNXNwMm5zNQ0KICAgICAgICA0ZiAoNHNfd3BfNXJyMnIoJHI1c3AybnM1KSl7DQogICAgICAgICAgICA1eDR0Ow0KICAgICAgICAgICAgLy81Y2gyIF9fKCdVbjV4cDVjdDVkIEVycjJyISBUaDUgcTM1cnkgcjV0M3JuNWQgdzR0aCAxbiA1cnIyci4nLCc1eDFtcGw1LXBsM2c0bicpOw0KICAgICAgICB9DQogICAgICAgICRsNGM1bnM1X2QxdDEgPSBqczJuX2Q1YzJkNSh3cF9yNW0ydDVfcjV0cjQ1djVfYjJkeSgkcjVzcDJuczUpKTsNCg0KDQogICAgICAgIDRmKCRsNGM1bnM1X2QxdDEtPnI1czNsdCA9PSAnNG52MWw0ZCcpew0KICAgICAgICAgICAgLy8gQVBJIHEzNXJ5IHAxcjFtNXQ1cnMNCiAgICAgICAgICAgICQxcDRfcDFyMW1zID0gMXJyMXkoDQogICAgICAgICAgICAgICAgJ3dwYzFyXzFjdDQybicgPT4gJzFjdDR2NScsDQogICAgICAgICAgICAgICAgJ2s1eScgPT4gJGw0YzVuczVfazV5LA0KICAgICAgICAgICAgKTsNCg0KICAgICAgICAgICAgLy8gUzVuZCBxMzVyeSB0MiB0aDUgbDRjNW5zNSBtMW4xZzVyIHM1cnY1cg0KICAgICAgICAgICAgJHI1c3AybnM1ID0gd3BfcjVtMnQ1X2c1dCgxZGRfcTM1cnlfMXJnKCQxcDRfcDFyMW1zLCAnaHR0cDovL3dwYzFyLjRyLz8xY3Q0Mm49ZzV0X201dDFkMXQxJnNsM2c9Jy4kdGg0cy0+d3BjMXJfZzV0X3NsM2dfczNiKCkpLCAxcnIxeSgndDRtNTIzdCcgPT4gNmEwLCAnc3NsdjVyNGZ5JyA9PiBmMWxzNSkpOw0KDQogICAgICAgICAgICAvLyBDaDVjayBmMnIgNXJyMnIgNG4gdGg1IHI1c3AybnM1DQogICAgICAgICAgICA0ZiAoNHNfd3BfNXJyMnIoJHI1c3AybnM1KSl7DQogICAgICAgICAgICAgICAgNXg0dDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJGw0YzVuczVfZDF0MSA9IGpzMm5fZDVjMmQ1KHdwX3I1bTJ0NV9yNXRyNDV2NV9iMmR5KCRyNXNwMm5zNSkpOw0KICAgICAgICAgICAgNGYoJGw0YzVuczVfZDF0MS0+cjVzM2x0ID09ICdzM2NjNXNzJyl7DQogICAgICAgICAgICAgICAgLy9TM2NjNXNzIHcxcyByNXQzcm41ZCBmMnIgdGg1IGw0YzVuczUgMWN0NHYxdDQybg0KICAgICAgICAgICAgICAgIC8vUzF2NSB0aDUgbDRjNW5zNSBrNXkgNG4gdGg1IDJwdDQybnMgdDFibDUNCiAgICAgICAgICAgICAgICAkdG1wID0gbWRpKCR0aDRzLT53cGMxcl9nNXRfc2wzZygpKTsNCiAgICAgICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV0nLCAkbDRjNW5zNV9rNXkpOw0KICAgICAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScsIGc1dF9zNHQ1XzNybCgpKTsNCiAgICAgICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbc3QxdDNzXScsIF9fKCdFbjFibDUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZykpOw0KICAgICAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tyNW41dzFsXScsICRsNGM1bnM1X2QxdDEtPnI1bjV3MWxrNXkpOw0KICAgICAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1s1eHA0cjVdJywgJGw0YzVuczVfZDF0MS0+NXhwNHI1ZDF0NSk7DQogICAgICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdG1wLCAgbWRpKGc1dF9zNHQ1XzNybCgpLiRsNGM1bnM1X2s1eS4kdG1wKSk7DQogICAgICAgICAgICAgICAgLy9VbmMybW01bnQgdGg1IGYybGwyd25nIGw0bjUgdDIgczU1IHRoNSBtNXNzMWc1IHRoMXQgcjV0M3JuNWQgZnIybSB0aDUgbDRjNW5zNSBzNXJ2NXINCiAgICAgICAgICAgICAgICA1eDR0Ow0KDQoNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJHRtcCA9IG1kaSgkdGg0cy0+d3BjMXJfZzV0X3NsM2coKSk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV0nLCAnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0bXAsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScsICcnKTsNCiAgICAgICAgICAgIDNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tzdDF0M3NdJywgJycpOw0KICAgICAgICAgICAgM3BkMXQ1XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW3I1bjV3MWxdJywnJyk7DQogICAgICAgICAgICAzcGQxdDVfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbNXhwNHI1XScsICcnKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHI1czV0X3M0dDUoKXsNCiAgICAgICAgJHI1czNsdCA9IGYxbHM1IDsNCiAgICAgICAgJHc1YnM0dDUgPSBnNXRfMnB0NDJuKCAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW3c1YnM0dDVdJyk7DQogICAgICAgIDRmICgkdzViczR0NSAmJiAkdzViczR0NSAhPSBnNXRfczR0NV8zcmwoKSAmJiAkdzViczR0NSAhPScnKXsNCiAgICAgICAgICAgICR0aDRzLT5jaDVja19rNXkoKTsNCiAgICAgICAgICAgICRyNXMzbHQgPSAgdHIzNTsNCiAgICAgICAgfQ0KICAgICAgICByNXQzcm4gJHI1czNsdDsNCiAgICB9DQoNCiAgICBmM25jdDQybiB3cGMxcl9nNXRfc2wzZygpew0KICAgICAgICAkc2wzZyA9IHBsM2c0bl9iMXM1bjFtNSggX19GSUxFX18gKTsNCiAgICAgICAgJHNsM2cgPSA1eHBsMmQ1KCAnLycsJHNsM2cgICk7DQogICAgICAgICRzbDNnID0gc3RyX3I1cGwxYzUoJy0nLCdfJywkc2wzZ1swXSk7DQogICAgICAgIHI1dDNybiAkc2wzZzsNCiAgICB9DQoNCiAgICBmM25jdDQybiB3cGMxcl9nNXRfc2wzZ19zM2IoKXsNCiAgICAgICAgJHNsM2cgPSBwbDNnNG5fYjFzNW4xbTUoIF9fRklMRV9fICk7DQogICAgICAgICRzbDNnID0gNXhwbDJkNSggJy8nLCRzbDNnICApOw0KICAgICAgICAkc2wzZyA9IHN0cl9yNXBsMWM1KCctJywnLScsJHNsM2dbMF0pOw0KICAgICAgICByNXQzcm4gJHNsM2c7DQogICAgfQ0KDQogICAgcDNibDRjIGYzbmN0NDJuIHNjaDVkM2w1X0V2NW50cygpIHsNCg0KICAgICAgICAkdGg0cy0+ZDE0bHlfNXY1bnRzKCk7DQogICAgfQ0KDQogICAgcHI0djF0NSBmM25jdDQybiBkMTRseV81djVudHMoKSB7DQogICAgICAgIDRmICggISB3cF9uNXh0X3NjaDVkM2w1ZCggJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19kMTRseV81djVudHMnICkgKSB7DQogICAgICAgICAgICB3cF9zY2g1ZDNsNV81djVudCggYzNycjVudF90NG01KCAndDRtNXN0MW1wJyApLCAnZDE0bHknLCAnd3BjMXJfJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2coKS4nX2QxNGx5XzV2NW50cycgKTsvL3R3NGM1ZDE0bHkNCiAgICAgICAgfQ0KDQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gd3BjMXJfczV0XzV4cDRyNWRfbDRjNW5zNSgpew0KICAgICAgICA0ZiAoJHRoNHMtPnI1czV0X3M0dDUoKT09dHIzNSl7DQogICAgICAgICAgICAxZGRfMWN0NDJuKCAnMWRtNG5fbjJ0NGM1cycsMXJyMXkoJHRoNHMgLCAnd3BjMXJfNXJyMnJfbjJ0NGM1JykgKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHAzYmw0YyBmM25jdDQybiAzbnNjaDVkM2w1X0V2NW50cygpIHsNCiAgICAgICAgd3BfM25zY2g1ZDNsNV81djVudChjM3JyNW50X3Q0bTUoICd0NG01c3QxbXAnICksJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ19kMTRseV81djVudHMnKTsNCiAgICB9DQoNCiAgICBwM2JsNGMgZjNuY3Q0Mm4gd3BjMXJfNXJyMnJfbjJ0NGM1KCkgew0KICAgICAgICA1Y2gyICcgPGQ0diBjbDFzcz0iM3BkMXQ1LW4xZyBuMnQ0YzUiPjxwPicuX18oc3ByNG50ZignWTIzIENoMW5nNWQgRDJtMTRuIGI1ZjJyNSBENTFjdDR2MXQ1ICVzIFBsM2c0biAyciB0aDVtNSxzMiBZMjNyIEw0YzVuczUgaDFzIGI1NW4gRDUxY3Q0djF0NSBBbmQgeTIzIE0zc3QgMWN0NHYxdDUgNHQgYjVmMnI1IFVzNS4nLCR0aDRzLT5wbDNnNG5uMW01KSwgJHRoNHMtPnRyMW5zbDF0NV9zbDNnKSAuJzwvcD48L2Q0dj4nOw0KDQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gcjVnNHN0NXJfbDRjNW5zNV9zNXR0NG5ncygpIHsNCiAgICAgICAgJHRoNHMtPndwYzFyX3M1dHQ0bmdzX3QxYnNbJHRoNHMtPmw0YzVuczVfczV0dDRuZ3NdID0gX18oJ0w0YzVuczUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQoNCiAgICAgICAgcjVnNHN0NXJfczV0dDRuZyggJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MsICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzICwxcnIxeSggJHRoNHMsICdjaDVja19sNGM1bnM1JyApKTsNCiAgICAgICAgJGw0YzVuczVfazV5ID0gZzV0XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nW2w0YzVuczVfazV5XScpOw0KICAgICAgICA0ZiAoISRsNGM1bnM1X2s1eSB8fCAhNHNzNXQoJGw0YzVuczVfazV5KSl7DQogICAgICAgICAgICAxZGRfczV0dDRuZ3NfczVjdDQybiggJ3M1Y3Q0Mm5fbDRjNW5zNScsIF9fKCdMNGM1bnM1IE0xbjFnNW01bnQnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyksIDFycjF5KCAmJHRoNHMsICdzNWN0NDJuX2w0YzVuczVfZDVzYycgKSwgJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MgKTsNCiAgICAgICAgICAgIDFkZF9zNXR0NG5nc19mNDVsZCggJ2w0YzVuczVfazV5JywgX18oJ0w0YzVuczUgSzV5JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLCAxcnIxeSggJiR0aDRzLCAnZjQ1bGRfbDRjNW5zNV9rNXknICksICR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLCAnczVjdDQybl9sNGM1bnM1JyApOw0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICBmM25jdDQybiBjaDVja19sNGM1bnM1KCQ0bnAzdCkgew0KDQoNCg0KDQogICAgICAgIDRmICg0c3M1dCgkX1JFUVVFU1RbJzFjdDR2MXQ1X2w0YzVuczUnXSkpIHsNCiAgICAgICAgICAgICRsNGM1bnM1X2s1eSA9ICQ0bnAzdFsnbDRjNW5zNV9rNXknXTsNCg0KDQogICAgICAgICAgICAkdGg0cy0+czV0X2s1eSgkbDRjNW5zNV9rNXkpOw0KDQoNCiAgICAgICAgfSA1bHM1NGYgKDRzczV0KCRfUkVRVUVTVFsnZDUxY3Q0djF0NV9sNGM1bnM1J10pKSB7DQoNCg0KICAgICAgICAgICAgJHRoNHMtPnI1czV0X2s1eSgpOw0KDQogICAgICAgICAgICAkbDRjNW5zNV9rNXkgPSBnNXRfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbbDRjNW5zNV9rNXldJyk7DQoNCg0KDQogICAgICAgICAgICAkdGg0cy0+M25zNXRfazV5KCRsNGM1bnM1X2s1eSk7DQoNCg0KICAgICAgICB9DQogICAgICAgIDRmICgkdGg0cy0+NXJyMnIgIT09ICcnICl7DQogICAgICAgICAgICAxZGRfczV0dDRuZ3NfNXJyMnIoDQogICAgICAgICAgICAgICAgJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ181cnIycicsICAgICAgICAgICAvLyBzNXR0NG5nIHQ0dGw1DQogICAgICAgICAgICAgICAgJ3dwYzFyX3Q1eHQ1cnIycicsICAgICAgICAgICAgLy8gNXJyMnIgSUQNCiAgICAgICAgICAgICAgICAkdGg0cy0+NXJyMnIsICAgLy8gNXJyMnIgbTVzczFnNQ0KICAgICAgICAgICAgICAgICc1cnIycicgICAgICAgICAgICAgICAgICAgICAgICAvLyB0eXA1IDJmIG01c3MxZzUNCiAgICAgICAgICAgICk7DQogICAgICAgIH0NCiAgICAgICAgNGYgKCR0aDRzLT5zM2NjNXNzICE9PSAnJyApIHsNCg0KICAgICAgICAgICAgMWRkX3M1dHQ0bmdzXzVycjJyKA0KICAgICAgICAgICAgICAgICd3cGMxcl8nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpLidfNXJyMnInLCAgICAgICAgICAgLy8gczV0dDRuZyB0NHRsNQ0KICAgICAgICAgICAgICAgICd3cGMxcl90NXh0NXJyMnInLCAgICAgICAgICAgIC8vIDVycjJyIElEDQogICAgICAgICAgICAgICAgJHRoNHMtPnMzY2M1c3MsICAgLy8gNXJyMnIgbTVzczFnNQ0KICAgICAgICAgICAgICAgICczcGQxdDVkJyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHR5cDUgMmYgbTVzczFnNQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgICAgICAvL3Yxcl9kM21wKCQ0bnAzdCk7DQogICAgICAgIC8vCTNwZDF0NV8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tsNGM1bnM1X2s1eV0nLCQ0bnAzdFsnbDRjNW5zNV9rNXknXSk7DQogICAgICAgIHI1dDNybiAkNG5wM3Q7DQoNCiAgICB9DQoNCiAgICBmM25jdDQybiBzNWN0NDJuX2w0YzVuczVfZDVzYygpIHsNCiAgICAgICAgNWNoMiBfXyggJ1BsNTFzNSA1bnQ1ciB0aDUgbDRjNW5zNSBrNXkgZjJyIHRoNHMgcHIyZDNjdCB0MiAxY3Q0djF0NSA0dC4gWTIzIHc1cjUgZzR2NW4gMSBsNGM1bnM1IGs1eSB3aDVuIHkyMyBwM3JjaDFzNWQgdGg0cyA0dDVtLicgLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gZjQ1bGRfbDRjNW5zNV9rNXkoKSB7DQogICAgICAgIHM1dHQ0bmdzXzVycjJycygnd3BjMXJfJy4kdGg0cy0+d3BjMXJfZzV0X3NsM2coKS4nXzVycjJyJyk7DQoNCiAgICAgICAgPz4NCiAgICAgICAgPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9Ijw/cGhwIDVjaDIgJHRoNHMtPmw0YzVuczVfczV0dDRuZ3M7Pz5bbDRjNW5zNV9rNXldIiB2MWwzNT0iIiAvPg0KICAgICAgICA8P3BocA0KDQogICAgfQ0KDQogICAgZjNuY3Q0Mm4gcjVnNHN0NXJfczNwcDJydF9zNXR0NG5ncygpIHsNCiAgICAgICAgJHRoNHMtPndwYzFyX3M1dHQ0bmdzX3QxYnNbJHRoNHMtPnMzcHAycnRfczV0dDRuZ3NdID0gX18oJ1MzcHAycnQnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyk7DQoNCiAgICAgICAgcjVnNHN0NXJfczV0dDRuZyggJHRoNHMtPnMzcHAycnRfczV0dDRuZ3MsICR0aDRzLT5zM3BwMnJ0X3M1dHQ0bmdzICk7DQogICAgICAgIDFkZF9zNXR0NG5nc19zNWN0NDJuKCAnczVjdDQybl9zM3BwMnJ0JywgJycsIDFycjF5KCAmJHRoNHMsICdzNWN0NDJuX3MzcHAycnRfZDVzYycgKSwgJHRoNHMtPnMzcHAycnRfczV0dDRuZ3MgKTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBzNWN0NDJuX3MzcHAycnRfZDVzYygpIHsNCiAgICAgICAgNWNoMiAnPGQ0diBjbDFzcz0id3IxcCI+DQoJCQkJCTxkNHYgNGQ9InAyc3RzdDNmZiI+DQoJCQkJCQk8ZDR2IDRkPSJwMnN0LWIyZHkiPg0KCQkJCQkJCTxkNHYgY2wxc3M9InAyc3RiMngiPg0KCQkJCQkJCQk8ZDR2IGNsMXNzPSI0bnM0ZDUiPg0KCQkJCQkJCQkJPHA+Jy5fXygnTjU1ZCBoNWxwPyBGNTVsIGZyNTUgdDIgPDEgaHI1Zj0iaHR0cDovL3dwYzFyLjRyL2YycjNtcy8iPnMzYm00dDwvMT4gMSBzM3BwMnJ0IHQ0Y2s1dCBPciBTNW5kIEUtbTE0bCBUMiA0bmYyQHdwYzFyLjRyJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L3A+DQoNCgkJCQkJCQkJPC9kNHY+DQoJCQkJCQkJPC9kNHY+DQoJCQkJCQk8L2Q0dj4NCgkJCSAgCQk8L2Q0dj4NCgkJCSAgPC9kNHY+JzsNCg0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHI1ZzRzdDVyX2YxZ19zNXR0NG5ncygpIHsNCiAgICAgICAgJHRoNHMtPndwYzFyX3M1dHQ0bmdzX3QxYnNbJHRoNHMtPmYxZ19zNXR0NG5nc10gPSBfXygnRjFnJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpOw0KDQogICAgICAgIHI1ZzRzdDVyX3M1dHQ0bmcoICR0aDRzLT5mMWdfczV0dDRuZ3MsICR0aDRzLT5zM3BwMnJ0X3M1dHQ0bmdzICk7DQogICAgICAgIDFkZF9zNXR0NG5nc19zNWN0NDJuKCAnczVjdDQybl9mMWcnLCAnJywgMXJyMXkoICYkdGg0cywgJ3M1Y3Q0Mm5fZjFnX2Q1c2MnICksICR0aDRzLT5mMWdfczV0dDRuZ3MgKTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBzNWN0NDJuX2YxZ19kNXNjKCkgew0KDQogICAgICAgIDVjaDIgJzxkNHYgY2wxc3M9IndyMXAiPg0KCQkJCQk8ZDR2IDRkPSJwMnN0c3QzZmYiPg0KCQkJCQkJPGQ0diA0ZD0icDJzdC1iMmR5Ij4NCgkJCQkJCQkJPGQ0diBjbDFzcz0iNG5zNGQ1Ij4nOw0KICAgICAgICBmMnI1MWNoICggJHRoNHMtPmYxZ19xMzVzdDQybl8xbnN3NXIgMXMgJHEzNXN0NDJuID0+ICQxbnN3NXIgKSB7DQogICAgICAgICAgICA1Y2gyIAkJCQkJICAgJzxoaT48cCA+ICcuJHEzNXN0NDJuLic8L3A+PC9oaT4NCgkJCQkJCQkJCTxwID4gJy4kMW5zdzVyLic8L3A+DQoJCQkJCQkJCQk8aHI+JzsNCiAgICAgICAgfQ0KICAgICAgICA1Y2gyCQkJCQknPC9kNHY+DQoJCQkJCQk8L2Q0dj4NCgkJCSAgCQk8L2Q0dj4NCgkJCSAgPC9kNHY+JzsNCg0KICAgIH0NCg0KICAgIGYzbmN0NDJuIDFkZF8xZG00bl9tNW4zcygpIHsNCiAgICAgICAgNGYoISAkdGg0cy0+ZzV0X3N0MXQ1KCkpIHsNCiAgICAgICAgICAgIDFkZF9tNW4zX3AxZzUoJHRoNHMtPnBsM2c0bm4xbTUsICR0aDRzLT5wbDNnNG5uMW01LCdtMW4xZzVfMnB0NDJucycsICAkdGg0cy0+d3BjMXJfMnB0NDJuX3AxZzUsIDFycjF5KCAmJHRoNHMsICdwbDNnNG5fMnB0NDJuc19wMWc1JyApKTsNCiAgICAgICAgfSA1bHM1ew0KICAgICAgICAgICAgZDJfMWN0NDJuKCcxZGRfbTVuM18nLiR0aDRzLT53cGMxcl9nNXRfc2wzZygpKTsNCiAgICAgICAgICAgIDFkZF9zM2JtNW4zX3AxZzUoJHRoNHMtPndwYzFyX2c1dF9zbDNnX3MzYigpLictbTE0bicsX18oJ0w0YzVuczUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyksIF9fKCdMNGM1bnM1JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLCdtMW4xZzVfMnB0NDJucycsICAkdGg0cy0+d3BjMXJfMnB0NDJuX3AxZzUsIDFycjF5KCAmJHRoNHMsICdwbDNnNG5fMnB0NDJuc19wMWc1JyApKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIGYzbmN0NDJuIHBsM2c0bl8ycHQ0Mm5zX3AxZzUoKSB7DQogICAgICAgICR0MWIgPSA0c3M1dCggJF9HRVRbJ3QxYiddICkgPyAkX0dFVFsndDFiJ10gOiAkdGg0cy0+bDRjNW5zNV9zNXR0NG5nczsNCiAgICAgICAgMmJfc3QxcnQoKTsNCiAgICAgICAgPz4NCiAgICAgICAgPGQ0diBjbDFzcz0id3IxcCI+DQogICAgICAgICAgICA8P3BocCAkdGg0cy0+cGwzZzRuXzJwdDQybnNfdDFicygpOyA/Pg0KICAgICAgICAgICAgPGYycm0gbTV0aDJkPSJwMnN0IiAxY3Q0Mm49IjJwdDQybnMucGhwIj4NCiAgICAgICAgICAgICAgICA8P3BocCB3cF9uMm5jNV9mNDVsZCggJzNwZDF0NS0ycHQ0Mm5zJyApOyA/Pg0KICAgICAgICAgICAgICAgIDw/cGhwIHM1dHQ0bmdzX2Y0NWxkcyggJHQxYiApOyA/Pg0KICAgICAgICAgICAgICAgIDw/cGhwIGQyX3M1dHQ0bmdzX3M1Y3Q0Mm5zKCAkdDFiICk7DQogICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICAgICA8P3BocCA0ZiAoJHQxYiA9PSAkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncykgew0KICAgICAgICAgICAgICAgICAgICAkdzViczR0NSA9IGc1dF8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1t3NWJzNHQ1XScpOw0KICAgICAgICAgICAgICAgICAgICAkNXhwNHI1ID0gZzV0XzJwdDQybigkdGg0cy0+bDRjNW5zNV9zNXR0NG5ncy4nWzV4cDRyNV0nKTsNCiAgICAgICAgICAgICAgICAgICAgJHI1bjV3MWwgPSBnNXRfMnB0NDJuKCR0aDRzLT5sNGM1bnM1X3M1dHQ0bmdzLidbcjVuNXcxbF0nKTsNCiAgICAgICAgICAgICAgICAgICAgJHN0MXQzcyA9IGc1dF8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tzdDF0M3NdJyk7DQogICAgICAgICAgICAgICAgICAgICRsNGM1bnM1X2s1eSA9IGc1dF8ycHQ0Mm4oJHRoNHMtPmw0YzVuczVfczV0dDRuZ3MuJ1tsNGM1bnM1X2s1eV0nKTsNCg0KICAgICAgICAgICAgICAgICAgICA0ZiAoNHNzNXQoJGw0YzVuczVfazV5KSAmJiAkbDRjNW5zNV9rNXkgIT0nJyAgKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzNXR0NG5nc181cnIycnMoJ3dwYzFyXycuJHRoNHMtPndwYzFyX2c1dF9zbDNnKCkuJ181cnIycicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzczV0KCR3NWJzNHQ1KSAmJiAkdzViczR0NSE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8aGE+Jy5fXygnTDRjNW5zNSBTdDF0M3MgJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L2hhPjxzcDFuID4nLl9fKCdSNWc0c3Q1ciBGMnIgVzViczR0NSA6ICcsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4nPC9zcDFuPjxzcDFuIHN0eWw1PSJjMmwycjpncjU1biI+Jy4gJHc1YnM0dDUuJzwvc3Axbj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgJzxwIHN0eWw1PSJjMmwycjpyNWQiPicuX18oJ0lmIHkyMyB3MW50IHQyIGNoMW5nNSBEMm0xNG4gMmYgdzViczR0NSAsIGI1ZjJyNSBjaDFuZzUgOiBkNTFjdDR2MXQ1IEw0YzVuczUgazV5IEFuZCAxZnQ1ciBjaDFuZzU6IEFjdDR2MXQ1IDR0IEFnMTRuLicsJHRoNHMtPnRyMW5zbDF0NV9zbDNnKS4nPC9wPicuJzxocj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzczV0KCAkNXhwNHI1KSAmJiAgJDV4cDRyNSE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8c3AxbiA+Jy5fXygnRXhwNHI1IDF0IDogJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L3NwMW4+PHNwMW4gc3R5bDU9ImMybDJyOmdyNTVuIj4nLmQxdDVfNDY4bihnNXRfMnB0NDJuKCAnZDF0NV9mMnJtMXQnKSxzdHJ0MnQ0bTUoICQ1eHA0cjUpKS4nPC9zcDFuPjxocj4nOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgNGYgKDRzczV0KCRyNW41dzFsKSAmJiAkcjVuNXcxbCE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8c3AxbiA+Jy5fXygnUjVuNXcxbCBLNXkgOiAnLCR0aDRzLT50cjFuc2wxdDVfc2wzZykuJzwvc3Axbj48c3AxbiBzdHlsNT0iYzJsMnI6Z3I1NW4iPicuICRyNW41dzFsLic8L3NwMW4+PGhyPic7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAoNHNzNXQoJHN0MXQzcykgJiYgJHN0MXQzcyE9JycgKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Y2gyICc8c3AxbiA+Jy5fXygnc3QxdDNzIDogJywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLic8L3NwMW4+PHNwMW4gc3R5bDU9ImMybDJyOmdyNTVuIj4nLiAkc3QxdDNzLic8L3NwMW4+PGhyPic7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICQxdHRyNGIzdDVzID0gMXJyMXkoJ24xbTUnID0+ICdkNTFjdDR2MXQ1X2w0YzVuczUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHMzYm00dF9iM3R0Mm4oIF9fKCdkNTFjdDR2MXQ1JywkdGg0cy0+dHIxbnNsMXQ1X3NsM2cpLCAnJywgJycsIHRyMzUsICQxdHRyNGIzdDVzICk7DQogICAgICAgICAgICAgICAgICAgIH01bHM1ew0KICAgICAgICAgICAgICAgICAgICAgICAgJDF0dHI0YjN0NXMgPSAxcnIxeSgnbjFtNScgPT4gJzFjdDR2MXQ1X2w0YzVuczUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHMzYm00dF9iM3R0Mm4oICBfXygnMWN0NHYxdDUnLCR0aDRzLT50cjFuc2wxdDVfc2wzZyksICcnLCAnJywgdHIzNSwgJDF0dHI0YjN0NXMgKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfSA/Pg0KICAgICAgICAgICAgPC9mMnJtPg0KICAgICAgICA8L2Q0dj4NCiAgICAgICAgPD9waHAgNWNoMiAyYl9nNXRfY2w1MW4oKTsNCiAgICB9DQoNCiAgICBmM25jdDQybiBwbDNnNG5fMnB0NDJuc190MWJzKCkgew0KICAgICAgICAkYzNycjVudF90MWIgPSA0c3M1dCggJF9HRVRbJ3QxYiddICkgPyAkX0dFVFsndDFiJ10gOiAkdGg0cy0+bDRjNW5zNV9zNXR0NG5nczsNCg0KICAgICAgICBzY3I1NW5fNGMybigpOw0KICAgICAgICA1Y2gyICc8aGEgY2wxc3M9Im4xdi10MWItd3IxcHA1ciI+JzsNCiAgICAgICAgZjJyNTFjaCAoICR0aDRzLT53cGMxcl9zNXR0NG5nc190MWJzIDFzICR0MWJfazV5ID0+ICR0MWJfYzFwdDQybiApIHsNCiAgICAgICAgICAgICQxY3Q0djUgPSAkYzNycjVudF90MWIgPT0gJHQxYl9rNXkgPyAnbjF2LXQxYi0xY3Q0djUnIDogJyc7DQogICAgICAgICAgICA1Y2gyICc8MSBjbDFzcz0ibjF2LXQxYiAnIC4gJDFjdDR2NSAuICciIGhyNWY9Ij9wMWc1PScgLiAkdGg0cy0+d3BjMXJfMnB0NDJuX3AxZzUgLiAnJnQxYj0nIC4gJHQxYl9rNXkgLiAnIj4nIC4gJHQxYl9jMXB0NDJuIC4gJzwvMT4nOw0KICAgICAgICB9DQogICAgICAgIDVjaDIgJzwvaGE+JzsNCiAgICB9DQoNCn0NCg0KMWRkXzFjdDQybiggJ3BsM2c0bnNfbDIxZDVkJywnczV0M3BfNWRkX3I1bTJ0NV9zNXR0NG5ncycpOw0KDQpmM25jdDQybiBzNXQzcF81ZGRfcjVtMnQ1X3M1dHQ0bmdzKCl7DQoNCiAgICAkd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWIgPSBuNXcgd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWI7DQogICAgJHdwYzFyXzVkZF9yNW0ydDVfczV0dDRuZ3NfdDFiLT5wbDNnNG5uMW01ID0gX18oIkVkZCBSNW0ydDUiLCI1ZGQtcjVtMnQ1Iik7DQogICAgJHdwYzFyXzVkZF9yNW0ydDVfczV0dDRuZ3NfdDFiLT50cjFuc2wxdDVfc2wzZyA9ICc1ZGQtcjVtMnQ1JzsNCiAgICAkd3BjMXJfNWRkX3I1bTJ0NV9zNXR0NG5nc190MWItPmYxZ19xMzVzdDQybl8xbnN3NXIgPSAxcnIxeSgNCiAgICAgICAgX18oJ0gydyB0MiB3MnJkcHI1c3MgQWRqM3N0NWQgZjJyIHByMnQ1Y3Q1ZCBmNGw1cyA0biA1ZGQgZjJsZDVyID8gJywnNWRkLXI1bTJ0NScpPT5fXygnSjNzdCBzNXQgZDJ3bmwyMWQgbTJkNSB0MiBkNHI1Y3QgMW5kIDVuMWJsNWQgRUREIHI1bTJ0NSAgY2g1Y2tiMnggNG4gNTFzeSBkNGc0dDFsIGQyd25sMjFkcyBzNXR0NG5ncyBwMW41bCAxbmQgNW5qMnJ5IHI1czNtNSBjMXAxYjRsNHR5IDRuIGQ0cjVjdCBtMmQ1JywnNWRkLXI1bTJ0NScpLA0KICAgICAgICBfXygnSDJ3IHQyIFMybHY1ZCBQcjJibDVtIFc0dGggV3AgUzNwNXIgQzFjaDUgPycsJzVkZC1yNW0ydDUnKT0+X18oJ0lmIHkyMyAxcjUgM3M0bmcgV1AgczNwNXIgYzFjaDUgWTIzIG0zc3QgNW4xYmw1ICJMMXQ1IDRuNHQuRDRzcGwxeSBjMWNoNWQgZjRsNXMgMWZ0NXIgVzJyZFByNXNzIGgxcyBsMjFkNWQuIE0yc3QgM3M1ZjNsIDRuIGw1ZzFjeSBtMmQ1IiA0biAxZHYxbmM1ZCB0MWInLCc1ZGQtcjVtMnQ1JyksDQogICAgICAgIF9fKCdIMncgdDIgUzJsdjVkIFByMmJsNW0gVzR0aCBXbyBUMnQxbCBDMWNoNSA/JywnNWRkLXI1bTJ0NScpPT5fXygnSWYgeTIzIDFyNSAzczRuZyBXbyB0MnQxbCBjMWNoNSBZMjMgbTNzdCBjaDFuZzUgYzFjaDUgbTV0aDJkIDRuIFA1cmYycm0xbmM1ID4gRzVuNXIxbCBTNXR0NG5ncyB0MiBCMXM0YyBBbmQgNW4xYmw1ICAiTDF0NSA0bjR0NDFsNHoxdDQybiIgNG4gUDVyZjJybTFuYzUgPiBQMWc1IEMxY2g1JywnNWRkLXI1bTJ0NScpLA0KICAgICAgICBfXygnSDJ3IHQyIDRuc3QxbGwgc2NyNHB0IDRuIGQyd25sMjFkIGgyc3Q0bmcgPycsJzVkZC1yNW0ydDUnKT0+X18oJzNuejRwIGQyd25sMjFkLWgyc3QuejRwIGY0bDUgdDIgZDJ3bmwyMWQgaDJzdDRuZyByMjJ0IDFuZCBzNXQzcCBzY3I0cHQgdzR0aCAycDVuIDRuZDV4LnBocCA0biBkMndubDIxZCBoMnN0NG5nIHIyMnQgNG4gYnIyd3M1ci4nLCc1ZGQtcjVtMnQ1JyksDQogICAgKTsNCn0NCiA/Pg==';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

Function Calls

strtr 1
ereg_replace 1
base64_decode 2

Variables

$_F index.php
$_X ?><?php add_action('add_menu_edd_remote', 'wp_edd_rmte_add..

Stats

MD5 28d800c3a480263f4e01d4aa388ef8a3
Eval Count 1
Decode Time 301 ms