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 PD9waHAKCnNldF90aW1lX2xpbWl0KDApOwplcnJvcl9yZXBvcnRpbmcoMCk7CmRhdGVfZGVmYXVsdF90aW1..

Decoded Output download

<?php 
PD9waHAKCnNldF90aW1lX2xpbWl0KDApOwplcnJvcl9yZXBvcnRpbmcoMCk7CmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ0FzaWEvSmFrYXJ0YScpOwoKCnJlcXVpcmUoImNvbmZpZy5waHAiKTsKCgovKiBTVEFSVCBDT0xPUiAqLwokcmVzPSJcMDMzWzBtIjsKJGhpdGFtPSJcMDMzWzA7MzBtIjsKJGFidTI9IlwwMzNbMTszMG0iOwokcHV0aWg9IlwwMzNbMDszN20iOwokcHV0aWgyPSJcMDMzWzE7MzdtIjsKJHJlZD0iXDAzM1swOzMxbSI7CiRyZWQyPSJcMDMzWzE7MzFtIjsKJGdyZWVuPSJcMDMzWzA7MzJtIjsKJGdyZWVuMj0iXDAzM1sxOzMybSI7CiR5ZWxsb3c9IlwwMzNbMDszM20iOwokeWVsbG93Mj0iXDAzM1sxOzMzbSI7CiRibHVlPSJcMDMzWzA7MzRtIjsKJGJsdWUyPSJcMDMzWzE7MzRtIjsKJHB1cnBsZT0iXDAzM1swOzM1bSI7CiRwdXJwbGUyPSJcMDMzWzE7MzVtIjsKJGxibHVlPSJcMDMzWzA7MzZtIjsgCiRsYmx1ZTI9IlwwMzNbMTszNm0iOwovKiBFTkQgQ09MT1IgKi8KJGZhbHNlID0gInskYWJ1Mn1beyRyZWR9eHskYWJ1Mn1deyRyZWQyfSI7CiR0cnVlID0gInskYWJ1Mn1beyRncmVlbn0reyRhYnUyfV17JGdyZWVuMn0iOwokcGVudHVuZyA9ICJ7JGFidTJ9W3skeWVsbG93fSF7JGFidTJ9XXskeWVsbG93Mn0iOwokdGl0aWsgPSAieyRhYnUyfVt7JGdyZWVuMn3inJN7JGFidTJ9XSI7CiRkZXMgPSAieyRncmVlbjJ9PnskcmVkMn1YeyRncmVlbjJ9PCI7CiRkZXMxID0gInskeWVsbG93Mn0qIjsKCiRiYW5uZXIgPSAieyRwdXRpaDJ9Ciog4pmlLiDigKIgwrTCuC4g4oCiICogwrTinLbCtCDimaEgwrguIOKAoiAqIMK0wrQg4pmhIPCfjLzwn42D8J+MvPCfjYMgKgoqIF/wn4yIIOKXiyDwn5KZXyBQb2xvIGtpbmcgYm904p2k8J+MuSAqCiog8J+Smi4g4oCiIMK0wrguIOKAoiAqIMK04py2wrQg4pmhIMK4LiDigKIgKiDCtMK0IOKZoSDim4UgKgoqIMKwIOKYhiDCsCDLmyAqIMubIOKYhiBfzqAgX19fXyAq44CCICogy5og4piGICoKKiDLmiDLmyDimIUgy5sg4oCiIMuaICogLyBfX19fX18gLyB+IO+8vOOAgsuaIMuaIMubICoKKiDLmiDLmyDigKIgy5sg4oCiIMuaIO+9nCDnlLDnlLAg772cIOmWgCDvvZwgy5ogKgoqIPCfjLTilazilZDwn4y04pWs4pWs8J+MtOKVrOKVrPCfjLTilZDilazilazilZDwn4y0ICoKICAgICAgICAgICAgICAgICAgICAgICAgICB7JHllbGxvdzJ98J2UjvCdlKLwnZSx8J2UnvCdlKXwnZSy8J2UpvCdlKnwnZSe8J2UpSDwnZSh8J2UpiDwnZSe8J2UsfCdlJ7wnZSwIPCdlKnwnZSe8J2Uq/CdlKTwnZSm8J2UsQogICAgICAgICAgICAgICDwnZSq8J2UnvCdlLDwnZSm8J2UpSDwnZSe8J2UofCdlJ4g8J2UqfCdlJ7wnZSr8J2UpPCdlKbwnZSxCiDwnZS28J2UpCDwnZSf8J2UpvCdlLDwnZSeLvCdlJ4g8J2UoPCdlLLwnZSq8J2UniDwnZSv8J2UovCdlKDwnZSs8J2UoSDwnZSw8J2UoPCdlK/wnZSm8J2UrfCdlLEg8J2UrPCdlK/wnZSe8J2Uq/CdlKQuLi4KICAgICAgeyRncmVlbjJ98J2UofCdlJ7wnZSrIPCdlKrwnZSi8J2Uq/CdlKTwnZSe8J2UqPCdlLLwnZSmIPCdlJ/wnZSe8J2UpfCdlLTwnZSeIPCdlLDwnZSg8J2Ur/CdlKbwnZStIPCdlKnwnZSyIPCdlLDwnZSi8J2Uq/CdlKHwnZSm8J2Ur/CdlKYgLi4uLj8/P+KEjPCdlKLwnZSp8J2UqfCdlKnwnZSs8J2UtCcpCiAgICAgICAgICAgICAgICAgICAgICDwnZSF8J2UpvCdlLDwnZSeIPCdlKHwnZSm8J2UqPCdlJ7wnZSx8J2UnvCdlKjwnZSe8J2Uqz09PT7wnZSX8J2UovCdlKrwnZSf8J2UovCdlKnwnZSi8J2UqCDwnZS08J2UovCdlKHwnZSy8J2UsCAuLi4uLvCdlInwnZSy8J2UoPCdlKgKyobGoMaY0ITGpiA9PT0+IMqG0ITKhsabxpjGmyDGrMayxqbGrMagxqbGlsab1LwgIAogICAgICAgICAgICDGpNOHxpbUvMaW04fGm8amTcagxp3GlsaHIMaixrLQhMadxqzGltCExp3GrCAKICAgICAgxp3GssamxqfGm8aRxrLGisaWxp0gCiAgICDGitCExorGsyDGp8ay04fGm8amxpvGrCAKICDGm8adxpvGmCDGncaK0ITGp8agCmdyb3VwID09PT09PT50Lm1lL2Nvb3hpZQriiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqMiOwpzeXN0ZW0gKCJjbGVhciIpOwoKZWNobyAkYmFubmVyOwoKZnVuY3Rpb24gdG9rZW4oJGRhdGEpewogICRjaCA9IGN1cmxfaW5pdCgpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZWFwaXMuY29tL3YxL3Rva2VuP2tleT1BSXphU3lDaGVGdWJpNTFSY01nMF9UX1NlVThmNkZiOFhobE5YRTgnKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICRoZWFkZXJzID0gYXJyYXkoKTsKICAkaGVhZGVyc1tdID0gJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJ2dyYW50X3R5cGU9cmVmcmVzaF90b2tlbiZyZWZyZXNoX3Rva2VuPScuJGRhdGEpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogIGN1cmxfY2xvc2UgKCRjaCk7CiAgcmV0dXJuICRyZXN1bHQ7Cn0KCgpmdW5jdGlvbiBjdXJsKCR1cmwsJGhlYWRlcnMsJGRhdGEpewogICRjaCA9IGN1cmxfaW5pdCgpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkZGF0YSk7CiAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogIGN1cmxfY2xvc2UoJGNoKTsKICByZXR1cm4gJHJlc3VsdDsKfQoKCmZ1bmN0aW9uIHByb2ZpbGUoJHVpZCwkY3JlZCwkZXJjKSB7CiAgd2hpbGUgKFRydWUpewogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9wb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbS8nLiRlcmMuJy8nLiR1aWQuJy9hMjZmMjBhYTY0M2UxMTRlLy5qc29uP3ByaW50PXByZXR0eSZhdXRoPScuJGNyZWQpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9FTkNPRElORywgJ2d6aXAsIGRlZmxhdGUnKTsKICAgICRoZWFkZXJzID0gYXJyYXkoCiAgICAiVXNlci1BZ2VudDogRmlyZWJhc2UvNS8zLjAuMC8yOC9BbmRyb2lkIgogICAgKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7CiAgICBjdXJsX2Nsb3NlICgkY2gpOwogICAgaWYgKCRyZXN1bHQgPT0gbnVsbCl7CiAgICAgIGNvbnRpbnVlOwogICAgfWVsc2V7CiAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICBicmVhazsKICAgIH0KIH0KfQoKZnVuY3Rpb24gbG9naW4oJHVpZCwkY3JlZCkgewogIHdoaWxlIChUcnVlKXsKICAgICRjaCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vcG9sb2tpbmctYzE4MmYuZmlyZWJhc2Vpby5jb20vZWFybmluZ3Byb2ZpbGUvJy4kdWlkLicvLmpzb24/cHJpbnQ9cHJldHR5JmF1dGg9Jy4kY3JlZCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0VOQ09ESU5HLCAnZ3ppcCwgZGVmbGF0ZScpOwogICAgJGhlYWRlcnMgPSBhcnJheSgKICAgICJVc2VyLUFnZW50OiBGaXJlYmFzZS81LzMuMC4wLzI4L0FuZHJvaWQiCiAgICApOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hUVFBIRUFERVIsICRoZWFkZXJzKTsKICAgICRyZXN1bHQgPSBjdXJsX2V4ZWMoJGNoKTsKICAgIGN1cmxfY2xvc2UgKCRjaCk7CiAgICBpZiAoJHJlc3VsdCA9PSBudWxsKXsKICAgICAgY29udGludWU7CiAgICB9ZWxzZXsKICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgIGJyZWFrOwogICAgfQogfQp9CgpmdW5jdGlvbiBwb2ludCgkdWlkLCRjcmVkLCRkYXRhcG9pbnQpIHsKICB3aGlsZShUcnVlKXsKICAgICRjaCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vc3VucGxheS1hZWZlMS5maXJlYmFzZWlvLmNvbS9lYXJuaW5ncHJvZmlsZS8nLiR1aWQuJy9lcmMvLmpzb24/cHJpbnQ9cHJldHR5JmF1dGg9Jy4kY3JlZCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGFwb2ludCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ1VTVE9NUkVRVUVTVCwgJ1BVVCcpOwogICAgJGhlYWRlcnMgPSBhcnJheSgpOwogICAgJGhlYWRlcnNbXSA9ICdBY2NlcHQ6ICovKic7CiAgICAkaGVhZGVyc1tdID0gJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlJzsKICAgICRoZWFkZXJzW10gPSAnQ29ubmVjdGlvbjoga2VlcC1hbGl2ZSc7CiAgICAkaGVhZGVyc1tdID0gJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKICAgICRoZWFkZXJzW10gPSAnSG9zdDogcG9sb2tpbmctYzE4MmYuZmlyZWJhc2Vpby5jb20nOwogICAgJGhlYWRlcnNbXSA9ICdVc2VyLUFnZW50OiBGaXJlYmFzZS81LzMuMC4wLzI4L0FuZHJvaWQnOwogICAgJGhlYWRlcnNbXSA9ICdjYWNoZS1jb250cm9sOiBuby1jYWNoZSc7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgY3VybF9jbG9zZSAoJGNoKTsKICAgIGlmICgkcmVzdWx0ID09IG51bGwpewogICAgICBjb250aW51ZTsKICAgIH1lbHNlewogICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgYnJlYWs7CiAgICB9CiB9Cn0KZnVuY3Rpb24gdWRzKCR1aWQsJGNyZWQsJGRhdGFwb2ludCkgewogIHdoaWxlKFRydWUpewogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9wb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbS91c2VycHJvZmlsZXMvJy4kdWlkLicvYTI2ZjIwYWE2NDNlMTE0ZS91ZHMvLmpzb24/cHJpbnQ9cHJldHR5JmF1dGg9Jy4kY3JlZCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGFwb2ludCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ1VTVE9NUkVRVUVTVCwgJ1BVVCcpOwogICAgJGhlYWRlcnMgPSBhcnJheSgpOwogICAgJGhlYWRlcnNbXSA9ICdBY2NlcHQ6ICovKic7CiAgICAkaGVhZGVyc1tdID0gJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlJzsKICAgICRoZWFkZXJzW10gPSAnQ29ubmVjdGlvbjoga2VlcC1hbGl2ZSc7CiAgICAkaGVhZGVyc1tdID0gJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKICAgICRoZWFkZXJzW10gPSAnSG9zdDogcG9sb2tpbmctYzE4MmYuZmlyZWJhc2Vpby5jb20nOwogICAgJGhlYWRlcnNbXSA9ICdVc2VyLUFnZW50OiBGaXJlYmFzZS81LzMuMC4wLzI4L0FuZHJvaWQnOwogICAgJGhlYWRlcnNbXSA9ICdjYWNoZS1jb250cm9sOiBuby1jYWNoZSc7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgY3VybF9jbG9zZSAoJGNoKTsKICAgIGlmICgkcmVzdWx0ID09IG51bGwpewogICAgICBjb250aW51ZTsKICAgIH1lbHNlewogICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgYnJlYWs7CiAgICB9CiB9Cn0KCmZ1bmN0aW9uIGF2KCR1aWQsJGNyZWQsJGRhdGFwb2ludCkgewogIHdoaWxlKFRydWUpewogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9wb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbS91c2VycHJvZmlsZXMvJy4kdWlkLicvYTI2ZjIwYWE2NDNlMTE0ZS9hdi8uanNvbj9wcmludD1wcmV0dHkmYXV0aD0nLiRjcmVkKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkZGF0YXBvaW50KTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAnUFVUJyk7CiAgICAkaGVhZGVycyA9IGFycmF5KCk7CiAgICAkaGVhZGVyc1tdID0gJ0FjY2VwdDogKi8qJzsKICAgICRoZWFkZXJzW10gPSAnQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUnOwogICAgJGhlYWRlcnNbXSA9ICdDb25uZWN0aW9uOiBrZWVwLWFsaXZlJzsKICAgICRoZWFkZXJzW10gPSAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOwogICAgJGhlYWRlcnNbXSA9ICdIb3N0OiBwb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbSc7CiAgICAkaGVhZGVyc1tdID0gJ1VzZXItQWdlbnQ6IEZpcmViYXNlLzUvMy4wLjAvMjgvQW5kcm9pZCc7CiAgICAkaGVhZGVyc1tdID0gJ2NhY2hlLWNvbnRyb2w6IG5vLWNhY2hlJzsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7CiAgICBjdXJsX2Nsb3NlICgkY2gpOwogICAgaWYgKCRyZXN1bHQgPT0gbnVsbCl7CiAgICAgIGNvbnRpbnVlOwogICAgfWVsc2V7CiAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICBicmVhazsKICAgIH0KIH0KfQpmdW5jdGlvbiBlZWIoJHVpZCwkY3JlZCwkZGF0YXBvaW50KSB7CiAgd2hpbGUoVHJ1ZSl7CiAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL3BvbG9raW5nLWMxODJmLmZpcmViYXNlaW8uY29tL2Vhcm5pbmdwcm9maWxlLycuJHVpZC4nL2VlYi8uanNvbj9wcmludD1wcmV0dHkmYXV0aD0nLiRjcmVkKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkZGF0YXBvaW50KTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAnUFVUJyk7CiAgICAkaGVhZGVycyA9IGFycmF5KCk7CiAgICAkaGVhZGVyc1tdID0gJ0FjY2VwdDogKi8qJzsKICAgICRoZWFkZXJzW10gPSAnQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUnOwogICAgJGhlYWRlcnNbXSA9ICdDb25uZWN0aW9uOiBrZWVwLWFsaXZlJzsKICAgICRoZWFkZXJzW10gPSAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOwogICAgJGhlYWRlcnNbXSA9ICdIb3N0OiBwb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbSc7CiAgICAkaGVhZGVyc1tdID0gJ1VzZXItQWdlbnQ6IEZpcmViYXNlLzUvMy4wLjAvMjgvQW5kcm9pZCc7CiAgICAkaGVhZGVyc1tdID0gJ2NhY2hlLWNvbnRyb2w6IG5vLWNhY2hlJzsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7CiAgICBjdXJsX2Nsb3NlICgkY2gpOwogICAgaWYgKCRyZXN1bHQgPT0gbnVsbCl7CiAgICAgIGNvbnRpbnVlOwogICAgfWVsc2V7CiAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICBicmVhazsKICAgIH0KIH0KfQoKZWNobyAiXG5cbnskcmVkMn0gVHJ5IFRvIEdldCBDcmVkIEZyb20gU2VydmVyIjsKc2xlZXAoMSk7CmVjaG8gIi4iOwpzbGVlcCgxKTsKZWNobyAiLiI7CnNsZWVwKDEpOwplY2hvICIuXG4iOwpzbGVlcCgxKTsKJGdldF90b2tlbiA9IGpzb25fZGVjb2RlKHRva2VuKCRyZWZyZXNoX3Rva2VuKSk7CmlmKCRnZXRfdG9rZW4tPnVzZXJfaWQgPT0gVHJ1ZSl7CiAgICBlY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgZWNobyAiXHJ7JHRydWV9IFN1Y2Nlc3MgR2V0IENyZWQhIVxuIjsKICAgICRjcmVkID0gJGdldF90b2tlbi0+aWRfdG9rZW47CiAgICAkdWlkID0gJGdldF90b2tlbi0+dXNlcl9pZDsKICAgICRqc29uID0ganNvbl9kZWNvZGUobG9naW4oJHVpZCwkY3JlZCkpOwp9ZWxzZXsKCWVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgICBlY2hvICJccnskZmFsc2V9ICRnZXRfdG9rZW4tPmVycm9yXG4iOwogICAgZXhpdCgpOwp9CgokZXJjPSJ1c2VycHJvZmlsZXMiOwogICRqcyA9IGpzb25fZGVjb2RlKHByb2ZpbGUoJHVpZCwkY3JlZCwkZXJjKSx0cnVlKTsKJGpzID0ganNvbl9kZWNvZGUobG9naW4oJHVpZCwkY3JlZCksdHJ1ZSk7CmVjaG8gJHllbGxvdzIuIlxuTmFtYSA6ICRibHVlIi4gJGpzWyJldW4iXTsKICBlY2hvICR5ZWxsb3cyLiJcbkJhbGFuY2UgOiAkYmx1ZSIuICRqc1siZXQiXS4iIEJUQyI7CiAgCiAgZWNobyAiXG4iOwogIGVjaG8gIlxuIjsKICAKCndoaWxlIChUcnVlKXsKCiAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICBlY2hvICJccnskcHV0aWgyfSBUcnkgVG8gR2V0IERhdGEgRnJvbSBTZXJ2ZXIiOwogICRqcyA9IGpzb25fZGVjb2RlKGxvZ2luKCR1aWQsJGNyZWQpKTsKICBpZiAoJGpzLT5lcnJvciA9PSBUcnVlKXsKICAgICBlY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgIGVjaG8gIlxyeyRmYWxzZX0gQ3JlZWQgU3VkYWggRXhwaXJlZFxuIjsKICAgICAkZ2V0X3Rva2VuID0ganNvbl9kZWNvZGUodG9rZW4oJHJlZnJlc2hfdG9rZW4pKTsKaWYoJGdldF90b2tlbi0+dXNlcl9pZCA9PSBUcnVlKXsKICAgIGVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgICBlY2hvICJccnskdHJ1ZX0gU3VjY2VzcyBHZXQgQ3JlZCEhXG4iOwogICAgJGNyZWQgPSAkZ2V0X3Rva2VuLT5pZF90b2tlbjsKICAgICR1aWQgPSAkZ2V0X3Rva2VuLT51c2VyX2lkOwogICAgJGpzb24gPSBqc29uX2RlY29kZShsb2dpbigkdWlkLCRjcmVkKSk7Cn1lbHNlewoJZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgIGVjaG8gIlxyeyRmYWxzZX0gJGdldF90b2tlbi0+ZXJyb3JcbiI7CiAgICBleGl0KCk7Cn0KCgogICRqc29uID0ganNvbl9kZWNvZGUobG9naW4oJHVpZCwkY3JlZCkpOwogICBpZigkanNvbi0+ZXJyb3IgPT0gIkF1dGggdG9rZW4gaXMgZXhwaXJlZCIpewogICAgICBlY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgICBlY2hvICJccnskZmFsc2V9ICRqc29uLT5lcnJvclxuIjsKICAgICAgc2xlZXAoMSk7CiAgICAgIGVjaG8gInskcGVudHVuZ30gVHJ5IFRvIEdldCBOZXcgQ3JlZCBGcm9tIFNlcnZlciI7CiAgICAgIHNsZWVwKDEpOwogICAgICBlY2hvICIuIjsKICAgICAgc2xlZXAoMSk7CiAgICAgIGVjaG8gIi4iOwogICAgICBzbGVlcCgxKTsKICAgICAgZWNobyAiLlxuIjsKICAgICAgc2xlZXAoMSk7CiAgICAgICRnZXRfdG9rZW4gPSBqc29uX2RlY29kZSh0b2tlbigkcmVmcmVzaF90b2tlbikpOwogICAgICBpZigkZ2V0X3Rva2VuLT51c2VyX2lkID09IFRydWUpewogICAgICAgICAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgICAgICAgIGVjaG8gIlxyeyR0cnVlfSBTdWtzZXMgR2V0IE5ldyBDcmVkISFcbiI7CiAgICAgICAgICAkY3JlZCA9ICRnZXRfdG9rZW4tPmlkX3Rva2VuOwogICAgICAgICAgJHVpZCA9ICRnZXRfdG9rZW4tPnVzZXJfaWQ7CiAgICAgICAgICAkanNvbiA9IGpzb25fZGVjb2RlKGxvZ2luKCR1aWQsJGNyZWQpKTsKICAgICAgfWVsc2V7CiAgICAgIAllY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgICAgICAgZWNobyAiXHJ7JGZhbHNlfSAkZ2V0X3Rva2VuLT5tZXNzYWdlXG4iOwogICAgICAgICAgZXhpdCgpOwogICAgICB9CiAgIH0KICB9CiAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICBlY2hvICJccnskZmFsc2V9IFRyeSBUbyBDbGFpbWluZyBGYXVjZXQiOwogIHVkcygkdWlkLCRjcmVkLCJ0cnVlIik7CiAgdWRzKCR1aWQsJGNyZWQsImZhbHNlIik7CiAgYXYoJHVpZCwkY3JlZCwiMiIpOwogIGVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgZWNobyAiXHJ7JGZhbHNlfSBUcnkgVG8gSW5qZWN0aW5nIFBvaW50IjsKICBwb2ludCgkdWlkLCRjcmVkLCRqcy0+ZXJjKzEpOwogIGVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgZWNobyAi4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqjClxuIjsgCiAgCiAgCgoKCiAgaWYgKCRqcy0+ZXJyb3IgPT0gVHJ1ZSl7CiAgICAgICRnZXRfdG9rZW4gPSBqc29uX2RlY29kZSh0b2tlbigkcmVmcmVzaF90b2tlbikpOwogICAgICBpZigkZ2V0X3Rva2VuLT51c2VyX2lkID09IFRydWUpewogICAgICAgICAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgICAgICAgIGVjaG8gIlxyeyR0cnVlfSBTdWtzZXMgR2V0IE5ldyBDcmVkISFcbiI7CiAgICAgICAgICAkY3JlZCA9ICRnZXRfdG9rZW4tPmlkX3Rva2VuOwogICAgICAgICAgJHVpZCA9ICRnZXRfdG9rZW4tPnVzZXJfaWQ7CiAgICAgICAgICAkanNvbiA9IGpzb25fZGVjb2RlKGxvZ2luKCR1aWQsJGNyZWQpKTsKICAgICAgfWVsc2V7CiAgICAgIAllY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgICAgICAgZWNobyAiXHJ7JGZhbHNlfSAkZ2V0X3Rva2VuLT5tZXNzYWdlXG4iOwogICAgICAgICAgZXhpdCgpOwogICAgICB9CiAgIH0KICAKICAKICAKICBlY2hvICJccnskcHV0aWgyfSRwdXRpaDIgWW91ciBCYWxhbmNleyRncmVlbjJ9ICI7CiAgcHJpbnRfcigkanMtPmV0KTsKICBlY2hvICIgeyRwdXRpaDJ9QnRjIOKHqOKHqOKHqOKHqOKHqCRwdXRpaDIgRW5lcmdpIDokcmVkMiAkanMtPmVlYnxcbiI7CiAgZWNobyAiXHJ7JHBlbnR1bmd9IHskcmVzfTA1OjAwIHskeWVsbG93Mn1SZW1haW5pbmciOwogIGlmICgkanMtPmVlYiA8IDEpewogICAgZWViKCR1aWQsJGNyZWQsIjUwIik7CiAgfQogIAogIHNsZWVwKDEpOwogIGZvciAoJG1pbnV0ZT00OyRtaW51dGU+LTE7JG1pbnV0ZS0tKXsKICAgIGZvciAoJHNlY29uZDE9NTskc2Vjb25kMT4tMTskc2Vjb25kMS0tKXsKICAgICAgZm9yICgkc2Vjb25kMj05OyRzZWNvbmQyPi0xOyRzZWNvbmQyLS0pewogICAgICAgIGVjaG8gIlxyeyRwdXRpaDJ9IHskcmVzfTAiLiRtaW51dGUuIjoiLiRzZWNvbmQxLiRzZWNvbmQyLiIgeyR5ZWxsb3cyfVJlbWFpbmluZyI7CiAgICAgICAgc2xlZXAoMSk7CiAgICAgICAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgICAgfQogICAgfQogIH0KfQoK ?>

Did this file decode correctly?

Original Code

<?php
PD9waHAKCnNldF90aW1lX2xpbWl0KDApOwplcnJvcl9yZXBvcnRpbmcoMCk7CmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ0FzaWEvSmFrYXJ0YScpOwoKCnJlcXVpcmUoImNvbmZpZy5waHAiKTsKCgovKiBTVEFSVCBDT0xPUiAqLwokcmVzPSJcMDMzWzBtIjsKJGhpdGFtPSJcMDMzWzA7MzBtIjsKJGFidTI9IlwwMzNbMTszMG0iOwokcHV0aWg9IlwwMzNbMDszN20iOwokcHV0aWgyPSJcMDMzWzE7MzdtIjsKJHJlZD0iXDAzM1swOzMxbSI7CiRyZWQyPSJcMDMzWzE7MzFtIjsKJGdyZWVuPSJcMDMzWzA7MzJtIjsKJGdyZWVuMj0iXDAzM1sxOzMybSI7CiR5ZWxsb3c9IlwwMzNbMDszM20iOwokeWVsbG93Mj0iXDAzM1sxOzMzbSI7CiRibHVlPSJcMDMzWzA7MzRtIjsKJGJsdWUyPSJcMDMzWzE7MzRtIjsKJHB1cnBsZT0iXDAzM1swOzM1bSI7CiRwdXJwbGUyPSJcMDMzWzE7MzVtIjsKJGxibHVlPSJcMDMzWzA7MzZtIjsgCiRsYmx1ZTI9IlwwMzNbMTszNm0iOwovKiBFTkQgQ09MT1IgKi8KJGZhbHNlID0gInskYWJ1Mn1beyRyZWR9eHskYWJ1Mn1deyRyZWQyfSI7CiR0cnVlID0gInskYWJ1Mn1beyRncmVlbn0reyRhYnUyfV17JGdyZWVuMn0iOwokcGVudHVuZyA9ICJ7JGFidTJ9W3skeWVsbG93fSF7JGFidTJ9XXskeWVsbG93Mn0iOwokdGl0aWsgPSAieyRhYnUyfVt7JGdyZWVuMn3inJN7JGFidTJ9XSI7CiRkZXMgPSAieyRncmVlbjJ9PnskcmVkMn1YeyRncmVlbjJ9PCI7CiRkZXMxID0gInskeWVsbG93Mn0qIjsKCiRiYW5uZXIgPSAieyRwdXRpaDJ9Ciog4pmlLiDigKIgwrTCuC4g4oCiICogwrTinLbCtCDimaEgwrguIOKAoiAqIMK0wrQg4pmhIPCfjLzwn42D8J+MvPCfjYMgKgoqIF/wn4yIIOKXiyDwn5KZXyBQb2xvIGtpbmcgYm904p2k8J+MuSAqCiog8J+Smi4g4oCiIMK0wrguIOKAoiAqIMK04py2wrQg4pmhIMK4LiDigKIgKiDCtMK0IOKZoSDim4UgKgoqIMKwIOKYhiDCsCDLmyAqIMubIOKYhiBfzqAgX19fXyAq44CCICogy5og4piGICoKKiDLmiDLmyDimIUgy5sg4oCiIMuaICogLyBfX19fX18gLyB+IO+8vOOAgsuaIMuaIMubICoKKiDLmiDLmyDigKIgy5sg4oCiIMuaIO+9nCDnlLDnlLAg772cIOmWgCDvvZwgy5ogKgoqIPCfjLTilazilZDwn4y04pWs4pWs8J+MtOKVrOKVrPCfjLTilZDilazilazilZDwn4y0ICoKICAgICAgICAgICAgICAgICAgICAgICAgICB7JHllbGxvdzJ98J2UjvCdlKLwnZSx8J2UnvCdlKXwnZSy8J2UpvCdlKnwnZSe8J2UpSDwnZSh8J2UpiDwnZSe8J2UsfCdlJ7wnZSwIPCdlKnwnZSe8J2Uq/CdlKTwnZSm8J2UsQogICAgICAgICAgICAgICDwnZSq8J2UnvCdlLDwnZSm8J2UpSDwnZSe8J2UofCdlJ4g8J2UqfCdlJ7wnZSr8J2UpPCdlKbwnZSxCiDwnZS28J2UpCDwnZSf8J2UpvCdlLDwnZSeLvCdlJ4g8J2UoPCdlLLwnZSq8J2UniDwnZSv8J2UovCdlKDwnZSs8J2UoSDwnZSw8J2UoPCdlK/wnZSm8J2UrfCdlLEg8J2UrPCdlK/wnZSe8J2Uq/CdlKQuLi4KICAgICAgeyRncmVlbjJ98J2UofCdlJ7wnZSrIPCdlKrwnZSi8J2Uq/CdlKTwnZSe8J2UqPCdlLLwnZSmIPCdlJ/wnZSe8J2UpfCdlLTwnZSeIPCdlLDwnZSg8J2Ur/CdlKbwnZStIPCdlKnwnZSyIPCdlLDwnZSi8J2Uq/CdlKHwnZSm8J2Ur/CdlKYgLi4uLj8/P+KEjPCdlKLwnZSp8J2UqfCdlKnwnZSs8J2UtCcpCiAgICAgICAgICAgICAgICAgICAgICDwnZSF8J2UpvCdlLDwnZSeIPCdlKHwnZSm8J2UqPCdlJ7wnZSx8J2UnvCdlKjwnZSe8J2Uqz09PT7wnZSX8J2UovCdlKrwnZSf8J2UovCdlKnwnZSi8J2UqCDwnZS08J2UovCdlKHwnZSy8J2UsCAuLi4uLvCdlInwnZSy8J2UoPCdlKgKyobGoMaY0ITGpiA9PT0+IMqG0ITKhsabxpjGmyDGrMayxqbGrMagxqbGlsab1LwgIAogICAgICAgICAgICDGpNOHxpbUvMaW04fGm8amTcagxp3GlsaHIMaixrLQhMadxqzGltCExp3GrCAKICAgICAgxp3GssamxqfGm8aRxrLGisaWxp0gCiAgICDGitCExorGsyDGp8ay04fGm8amxpvGrCAKICDGm8adxpvGmCDGncaK0ITGp8agCmdyb3VwID09PT09PT50Lm1lL2Nvb3hpZQriiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqPiiL3iiL7iiqMiOwpzeXN0ZW0gKCJjbGVhciIpOwoKZWNobyAkYmFubmVyOwoKZnVuY3Rpb24gdG9rZW4oJGRhdGEpewogICRjaCA9IGN1cmxfaW5pdCgpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZWFwaXMuY29tL3YxL3Rva2VuP2tleT1BSXphU3lDaGVGdWJpNTFSY01nMF9UX1NlVThmNkZiOFhobE5YRTgnKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICRoZWFkZXJzID0gYXJyYXkoKTsKICAkaGVhZGVyc1tdID0gJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJ2dyYW50X3R5cGU9cmVmcmVzaF90b2tlbiZyZWZyZXNoX3Rva2VuPScuJGRhdGEpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogIGN1cmxfY2xvc2UgKCRjaCk7CiAgcmV0dXJuICRyZXN1bHQ7Cn0KCgpmdW5jdGlvbiBjdXJsKCR1cmwsJGhlYWRlcnMsJGRhdGEpewogICRjaCA9IGN1cmxfaW5pdCgpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7CiAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsKICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkZGF0YSk7CiAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogIGN1cmxfY2xvc2UoJGNoKTsKICByZXR1cm4gJHJlc3VsdDsKfQoKCmZ1bmN0aW9uIHByb2ZpbGUoJHVpZCwkY3JlZCwkZXJjKSB7CiAgd2hpbGUgKFRydWUpewogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9wb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbS8nLiRlcmMuJy8nLiR1aWQuJy9hMjZmMjBhYTY0M2UxMTRlLy5qc29uP3ByaW50PXByZXR0eSZhdXRoPScuJGNyZWQpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9FTkNPRElORywgJ2d6aXAsIGRlZmxhdGUnKTsKICAgICRoZWFkZXJzID0gYXJyYXkoCiAgICAiVXNlci1BZ2VudDogRmlyZWJhc2UvNS8zLjAuMC8yOC9BbmRyb2lkIgogICAgKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7CiAgICBjdXJsX2Nsb3NlICgkY2gpOwogICAgaWYgKCRyZXN1bHQgPT0gbnVsbCl7CiAgICAgIGNvbnRpbnVlOwogICAgfWVsc2V7CiAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICBicmVhazsKICAgIH0KIH0KfQoKZnVuY3Rpb24gbG9naW4oJHVpZCwkY3JlZCkgewogIHdoaWxlIChUcnVlKXsKICAgICRjaCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vcG9sb2tpbmctYzE4MmYuZmlyZWJhc2Vpby5jb20vZWFybmluZ3Byb2ZpbGUvJy4kdWlkLicvLmpzb24/cHJpbnQ9cHJldHR5JmF1dGg9Jy4kY3JlZCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0VOQ09ESU5HLCAnZ3ppcCwgZGVmbGF0ZScpOwogICAgJGhlYWRlcnMgPSBhcnJheSgKICAgICJVc2VyLUFnZW50OiBGaXJlYmFzZS81LzMuMC4wLzI4L0FuZHJvaWQiCiAgICApOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hUVFBIRUFERVIsICRoZWFkZXJzKTsKICAgICRyZXN1bHQgPSBjdXJsX2V4ZWMoJGNoKTsKICAgIGN1cmxfY2xvc2UgKCRjaCk7CiAgICBpZiAoJHJlc3VsdCA9PSBudWxsKXsKICAgICAgY29udGludWU7CiAgICB9ZWxzZXsKICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgIGJyZWFrOwogICAgfQogfQp9CgpmdW5jdGlvbiBwb2ludCgkdWlkLCRjcmVkLCRkYXRhcG9pbnQpIHsKICB3aGlsZShUcnVlKXsKICAgICRjaCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vc3VucGxheS1hZWZlMS5maXJlYmFzZWlvLmNvbS9lYXJuaW5ncHJvZmlsZS8nLiR1aWQuJy9lcmMvLmpzb24/cHJpbnQ9cHJldHR5JmF1dGg9Jy4kY3JlZCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGFwb2ludCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ1VTVE9NUkVRVUVTVCwgJ1BVVCcpOwogICAgJGhlYWRlcnMgPSBhcnJheSgpOwogICAgJGhlYWRlcnNbXSA9ICdBY2NlcHQ6ICovKic7CiAgICAkaGVhZGVyc1tdID0gJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlJzsKICAgICRoZWFkZXJzW10gPSAnQ29ubmVjdGlvbjoga2VlcC1hbGl2ZSc7CiAgICAkaGVhZGVyc1tdID0gJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKICAgICRoZWFkZXJzW10gPSAnSG9zdDogcG9sb2tpbmctYzE4MmYuZmlyZWJhc2Vpby5jb20nOwogICAgJGhlYWRlcnNbXSA9ICdVc2VyLUFnZW50OiBGaXJlYmFzZS81LzMuMC4wLzI4L0FuZHJvaWQnOwogICAgJGhlYWRlcnNbXSA9ICdjYWNoZS1jb250cm9sOiBuby1jYWNoZSc7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgY3VybF9jbG9zZSAoJGNoKTsKICAgIGlmICgkcmVzdWx0ID09IG51bGwpewogICAgICBjb250aW51ZTsKICAgIH1lbHNlewogICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgYnJlYWs7CiAgICB9CiB9Cn0KZnVuY3Rpb24gdWRzKCR1aWQsJGNyZWQsJGRhdGFwb2ludCkgewogIHdoaWxlKFRydWUpewogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9wb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbS91c2VycHJvZmlsZXMvJy4kdWlkLicvYTI2ZjIwYWE2NDNlMTE0ZS91ZHMvLmpzb24/cHJpbnQ9cHJldHR5JmF1dGg9Jy4kY3JlZCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJGRhdGFwb2ludCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ1VTVE9NUkVRVUVTVCwgJ1BVVCcpOwogICAgJGhlYWRlcnMgPSBhcnJheSgpOwogICAgJGhlYWRlcnNbXSA9ICdBY2NlcHQ6ICovKic7CiAgICAkaGVhZGVyc1tdID0gJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlJzsKICAgICRoZWFkZXJzW10gPSAnQ29ubmVjdGlvbjoga2VlcC1hbGl2ZSc7CiAgICAkaGVhZGVyc1tdID0gJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKICAgICRoZWFkZXJzW10gPSAnSG9zdDogcG9sb2tpbmctYzE4MmYuZmlyZWJhc2Vpby5jb20nOwogICAgJGhlYWRlcnNbXSA9ICdVc2VyLUFnZW50OiBGaXJlYmFzZS81LzMuMC4wLzI4L0FuZHJvaWQnOwogICAgJGhlYWRlcnNbXSA9ICdjYWNoZS1jb250cm9sOiBuby1jYWNoZSc7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSFRUUEhFQURFUiwgJGhlYWRlcnMpOwogICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgY3VybF9jbG9zZSAoJGNoKTsKICAgIGlmICgkcmVzdWx0ID09IG51bGwpewogICAgICBjb250aW51ZTsKICAgIH1lbHNlewogICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgYnJlYWs7CiAgICB9CiB9Cn0KCmZ1bmN0aW9uIGF2KCR1aWQsJGNyZWQsJGRhdGFwb2ludCkgewogIHdoaWxlKFRydWUpewogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9wb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbS91c2VycHJvZmlsZXMvJy4kdWlkLicvYTI2ZjIwYWE2NDNlMTE0ZS9hdi8uanNvbj9wcmludD1wcmV0dHkmYXV0aD0nLiRjcmVkKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkZGF0YXBvaW50KTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAnUFVUJyk7CiAgICAkaGVhZGVycyA9IGFycmF5KCk7CiAgICAkaGVhZGVyc1tdID0gJ0FjY2VwdDogKi8qJzsKICAgICRoZWFkZXJzW10gPSAnQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUnOwogICAgJGhlYWRlcnNbXSA9ICdDb25uZWN0aW9uOiBrZWVwLWFsaXZlJzsKICAgICRoZWFkZXJzW10gPSAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOwogICAgJGhlYWRlcnNbXSA9ICdIb3N0OiBwb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbSc7CiAgICAkaGVhZGVyc1tdID0gJ1VzZXItQWdlbnQ6IEZpcmViYXNlLzUvMy4wLjAvMjgvQW5kcm9pZCc7CiAgICAkaGVhZGVyc1tdID0gJ2NhY2hlLWNvbnRyb2w6IG5vLWNhY2hlJzsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7CiAgICBjdXJsX2Nsb3NlICgkY2gpOwogICAgaWYgKCRyZXN1bHQgPT0gbnVsbCl7CiAgICAgIGNvbnRpbnVlOwogICAgfWVsc2V7CiAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICBicmVhazsKICAgIH0KIH0KfQpmdW5jdGlvbiBlZWIoJHVpZCwkY3JlZCwkZGF0YXBvaW50KSB7CiAgd2hpbGUoVHJ1ZSl7CiAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICdodHRwczovL3BvbG9raW5nLWMxODJmLmZpcmViYXNlaW8uY29tL2Vhcm5pbmdwcm9maWxlLycuJHVpZC4nL2VlYi8uanNvbj9wcmludD1wcmV0dHkmYXV0aD0nLiRjcmVkKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgdHJ1ZSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkZGF0YXBvaW50KTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DVVNUT01SRVFVRVNULCAnUFVUJyk7CiAgICAkaGVhZGVycyA9IGFycmF5KCk7CiAgICAkaGVhZGVyc1tdID0gJ0FjY2VwdDogKi8qJzsKICAgICRoZWFkZXJzW10gPSAnQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUnOwogICAgJGhlYWRlcnNbXSA9ICdDb25uZWN0aW9uOiBrZWVwLWFsaXZlJzsKICAgICRoZWFkZXJzW10gPSAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOwogICAgJGhlYWRlcnNbXSA9ICdIb3N0OiBwb2xva2luZy1jMTgyZi5maXJlYmFzZWlvLmNvbSc7CiAgICAkaGVhZGVyc1tdID0gJ1VzZXItQWdlbnQ6IEZpcmViYXNlLzUvMy4wLjAvMjgvQW5kcm9pZCc7CiAgICAkaGVhZGVyc1tdID0gJ2NhY2hlLWNvbnRyb2w6IG5vLWNhY2hlJzsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCAkaGVhZGVycyk7CiAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7CiAgICBjdXJsX2Nsb3NlICgkY2gpOwogICAgaWYgKCRyZXN1bHQgPT0gbnVsbCl7CiAgICAgIGNvbnRpbnVlOwogICAgfWVsc2V7CiAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICBicmVhazsKICAgIH0KIH0KfQoKZWNobyAiXG5cbnskcmVkMn0gVHJ5IFRvIEdldCBDcmVkIEZyb20gU2VydmVyIjsKc2xlZXAoMSk7CmVjaG8gIi4iOwpzbGVlcCgxKTsKZWNobyAiLiI7CnNsZWVwKDEpOwplY2hvICIuXG4iOwpzbGVlcCgxKTsKJGdldF90b2tlbiA9IGpzb25fZGVjb2RlKHRva2VuKCRyZWZyZXNoX3Rva2VuKSk7CmlmKCRnZXRfdG9rZW4tPnVzZXJfaWQgPT0gVHJ1ZSl7CiAgICBlY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgZWNobyAiXHJ7JHRydWV9IFN1Y2Nlc3MgR2V0IENyZWQhIVxuIjsKICAgICRjcmVkID0gJGdldF90b2tlbi0+aWRfdG9rZW47CiAgICAkdWlkID0gJGdldF90b2tlbi0+dXNlcl9pZDsKICAgICRqc29uID0ganNvbl9kZWNvZGUobG9naW4oJHVpZCwkY3JlZCkpOwp9ZWxzZXsKCWVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgICBlY2hvICJccnskZmFsc2V9ICRnZXRfdG9rZW4tPmVycm9yXG4iOwogICAgZXhpdCgpOwp9CgokZXJjPSJ1c2VycHJvZmlsZXMiOwogICRqcyA9IGpzb25fZGVjb2RlKHByb2ZpbGUoJHVpZCwkY3JlZCwkZXJjKSx0cnVlKTsKJGpzID0ganNvbl9kZWNvZGUobG9naW4oJHVpZCwkY3JlZCksdHJ1ZSk7CmVjaG8gJHllbGxvdzIuIlxuTmFtYSA6ICRibHVlIi4gJGpzWyJldW4iXTsKICBlY2hvICR5ZWxsb3cyLiJcbkJhbGFuY2UgOiAkYmx1ZSIuICRqc1siZXQiXS4iIEJUQyI7CiAgCiAgZWNobyAiXG4iOwogIGVjaG8gIlxuIjsKICAKCndoaWxlIChUcnVlKXsKCiAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICBlY2hvICJccnskcHV0aWgyfSBUcnkgVG8gR2V0IERhdGEgRnJvbSBTZXJ2ZXIiOwogICRqcyA9IGpzb25fZGVjb2RlKGxvZ2luKCR1aWQsJGNyZWQpKTsKICBpZiAoJGpzLT5lcnJvciA9PSBUcnVlKXsKICAgICBlY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgIGVjaG8gIlxyeyRmYWxzZX0gQ3JlZWQgU3VkYWggRXhwaXJlZFxuIjsKICAgICAkZ2V0X3Rva2VuID0ganNvbl9kZWNvZGUodG9rZW4oJHJlZnJlc2hfdG9rZW4pKTsKaWYoJGdldF90b2tlbi0+dXNlcl9pZCA9PSBUcnVlKXsKICAgIGVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgICBlY2hvICJccnskdHJ1ZX0gU3VjY2VzcyBHZXQgQ3JlZCEhXG4iOwogICAgJGNyZWQgPSAkZ2V0X3Rva2VuLT5pZF90b2tlbjsKICAgICR1aWQgPSAkZ2V0X3Rva2VuLT51c2VyX2lkOwogICAgJGpzb24gPSBqc29uX2RlY29kZShsb2dpbigkdWlkLCRjcmVkKSk7Cn1lbHNlewoJZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgIGVjaG8gIlxyeyRmYWxzZX0gJGdldF90b2tlbi0+ZXJyb3JcbiI7CiAgICBleGl0KCk7Cn0KCgogICRqc29uID0ganNvbl9kZWNvZGUobG9naW4oJHVpZCwkY3JlZCkpOwogICBpZigkanNvbi0+ZXJyb3IgPT0gIkF1dGggdG9rZW4gaXMgZXhwaXJlZCIpewogICAgICBlY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgICBlY2hvICJccnskZmFsc2V9ICRqc29uLT5lcnJvclxuIjsKICAgICAgc2xlZXAoMSk7CiAgICAgIGVjaG8gInskcGVudHVuZ30gVHJ5IFRvIEdldCBOZXcgQ3JlZCBGcm9tIFNlcnZlciI7CiAgICAgIHNsZWVwKDEpOwogICAgICBlY2hvICIuIjsKICAgICAgc2xlZXAoMSk7CiAgICAgIGVjaG8gIi4iOwogICAgICBzbGVlcCgxKTsKICAgICAgZWNobyAiLlxuIjsKICAgICAgc2xlZXAoMSk7CiAgICAgICRnZXRfdG9rZW4gPSBqc29uX2RlY29kZSh0b2tlbigkcmVmcmVzaF90b2tlbikpOwogICAgICBpZigkZ2V0X3Rva2VuLT51c2VyX2lkID09IFRydWUpewogICAgICAgICAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgICAgICAgIGVjaG8gIlxyeyR0cnVlfSBTdWtzZXMgR2V0IE5ldyBDcmVkISFcbiI7CiAgICAgICAgICAkY3JlZCA9ICRnZXRfdG9rZW4tPmlkX3Rva2VuOwogICAgICAgICAgJHVpZCA9ICRnZXRfdG9rZW4tPnVzZXJfaWQ7CiAgICAgICAgICAkanNvbiA9IGpzb25fZGVjb2RlKGxvZ2luKCR1aWQsJGNyZWQpKTsKICAgICAgfWVsc2V7CiAgICAgIAllY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgICAgICAgZWNobyAiXHJ7JGZhbHNlfSAkZ2V0X3Rva2VuLT5tZXNzYWdlXG4iOwogICAgICAgICAgZXhpdCgpOwogICAgICB9CiAgIH0KICB9CiAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICBlY2hvICJccnskZmFsc2V9IFRyeSBUbyBDbGFpbWluZyBGYXVjZXQiOwogIHVkcygkdWlkLCRjcmVkLCJ0cnVlIik7CiAgdWRzKCR1aWQsJGNyZWQsImZhbHNlIik7CiAgYXYoJHVpZCwkY3JlZCwiMiIpOwogIGVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgZWNobyAiXHJ7JGZhbHNlfSBUcnkgVG8gSW5qZWN0aW5nIFBvaW50IjsKICBwb2ludCgkdWlkLCRjcmVkLCRqcy0+ZXJjKzEpOwogIGVjaG8gIlxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcciI7CiAgZWNobyAi4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqj4oi94oi+4oqjClxuIjsgCiAgCiAgCgoKCiAgaWYgKCRqcy0+ZXJyb3IgPT0gVHJ1ZSl7CiAgICAgICRnZXRfdG9rZW4gPSBqc29uX2RlY29kZSh0b2tlbigkcmVmcmVzaF90b2tlbikpOwogICAgICBpZigkZ2V0X3Rva2VuLT51c2VyX2lkID09IFRydWUpewogICAgICAgICAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgICAgICAgIGVjaG8gIlxyeyR0cnVlfSBTdWtzZXMgR2V0IE5ldyBDcmVkISFcbiI7CiAgICAgICAgICAkY3JlZCA9ICRnZXRfdG9rZW4tPmlkX3Rva2VuOwogICAgICAgICAgJHVpZCA9ICRnZXRfdG9rZW4tPnVzZXJfaWQ7CiAgICAgICAgICAkanNvbiA9IGpzb25fZGVjb2RlKGxvZ2luKCR1aWQsJGNyZWQpKTsKICAgICAgfWVsc2V7CiAgICAgIAllY2hvICJcciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHIiOwogICAgICAgICAgZWNobyAiXHJ7JGZhbHNlfSAkZ2V0X3Rva2VuLT5tZXNzYWdlXG4iOwogICAgICAgICAgZXhpdCgpOwogICAgICB9CiAgIH0KICAKICAKICAKICBlY2hvICJccnskcHV0aWgyfSRwdXRpaDIgWW91ciBCYWxhbmNleyRncmVlbjJ9ICI7CiAgcHJpbnRfcigkanMtPmV0KTsKICBlY2hvICIgeyRwdXRpaDJ9QnRjIOKHqOKHqOKHqOKHqOKHqCRwdXRpaDIgRW5lcmdpIDokcmVkMiAkanMtPmVlYnxcbiI7CiAgZWNobyAiXHJ7JHBlbnR1bmd9IHskcmVzfTA1OjAwIHskeWVsbG93Mn1SZW1haW5pbmciOwogIGlmICgkanMtPmVlYiA8IDEpewogICAgZWViKCR1aWQsJGNyZWQsIjUwIik7CiAgfQogIAogIHNsZWVwKDEpOwogIGZvciAoJG1pbnV0ZT00OyRtaW51dGU+LTE7JG1pbnV0ZS0tKXsKICAgIGZvciAoJHNlY29uZDE9NTskc2Vjb25kMT4tMTskc2Vjb25kMS0tKXsKICAgICAgZm9yICgkc2Vjb25kMj05OyRzZWNvbmQyPi0xOyRzZWNvbmQyLS0pewogICAgICAgIGVjaG8gIlxyeyRwdXRpaDJ9IHskcmVzfTAiLiRtaW51dGUuIjoiLiRzZWNvbmQxLiRzZWNvbmQyLiIgeyR5ZWxsb3cyfVJlbWFpbmluZyI7CiAgICAgICAgc2xlZXAoMSk7CiAgICAgICAgZWNobyAiXHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyIjsKICAgICAgfQogICAgfQogIH0KfQoK

Function Calls

None

Variables

None

Stats

MD5 c77d38ad9c374f6fdf9257129c63fd55
Eval Count 0
Decode Time 345 ms