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

Signing you up...

Thank you for signing up!

PHP Decode

PD9waHANCiAgICByZXF1aXJlX29uY2UoImNvbmV4YW8ucGhwIik7DQoNCiAgICBmdW5jdGlvbiBsaXN0YXJMaXN0YX..

Decoded Output download

<?  PD9waHANCiAgICByZXF1aXJlX29uY2UoImNvbmV4YW8ucGhwIik7DQoNCiAgICBmdW5jdGlvbiBsaXN0YXJMaXN0YXMoKSB7DQogICAgICAgICRsaXN0YXMgPSBhcnJheSgpOw0KICAgICAgICBnbG9iYWwgJGNvbmV4YW87DQogICAgICAgIGlmKCRfU0VTU0lPTlsnYWRtaW4nXSl7DQogICAgICAgICAgICAkcXVlcnkgPSAic2VsZWN0ICogZnJvbSBsaXN0YSI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcXVlcnkgPSAic2VsZWN0ICogZnJvbSBsaXN0YSBsIHdoZXJlIGwuaWRfbGlzdGEgaW4gKHNlbGVjdCBsdS5pZF9saXN0YSBmcm9tIGxpc3RhX3VzdWFyaW8gbHUgd2hlcmUgbHUuaWRfdXN1YXJpbyA9ICIuJF9TRVNTSU9OWydpZF91c3VhcmlvJ10uIikiOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkcmVzdWx0YWRvID0gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAkcXVlcnkpOw0KICAgICAgICB3aGlsZSgkbGlzdGEgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdGFkbykpIHsNCiAgICAgICAgICAgIGFycmF5X3B1c2goJGxpc3RhcywgJGxpc3RhKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJGxpc3RhczsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBhZGljaW9uYXJMaXN0YSgkbm9tZSwgJGxpc3RhKSB7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gImluc2VydCBpbnRvIGxpc3RhIChub21lX2xpc3RhLCBsaXN0YSwgaWRfdXN1YXJpbykgdmFsdWVzICgnJG5vbWUnLCAnJGxpc3RhJywgIi4kX1NFU1NJT05bJ2lkX3VzdWFyaW8nXS4iKSI7DQogICAgICAgIHJldHVybiBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICRxdWVyeSk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gYWRpY2lvbmFyTGlzdGFHbG9iYWwoJG5vbWUsICRjYXRlZ29yaWEpIHsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcXVlcnkgPSAiaW5zZXJ0IGludG8gbGlzdGEgKG5vbWVfbGlzdGEsIGdsb2JhbCkgdmFsdWVzICgnJG5vbWUnLCAxKSI7DQogICAgICAgICRyZXN1bHRhZG8gPSBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICRxdWVyeSk7DQogICAgICAgICRpZCA9IG15c3FsaV9pbnNlcnRfaWQoJGNvbmV4YW8pOw0KICAgICAgICBpZiAoY291bnQoJGNhdGVnb3JpYSkgPiAwKSB7DQogICAgICAgICAgICBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICJkZWxldGUgZnJvbSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIHdoZXJlIGlkX2xpc3RhPSAkaWQiKTsNCiAgICAgICAgICAgIGZvciAoJGkgPTA7ICRpIDwgY291bnQoJGNhdGVnb3JpYSk7ICRpKyspIHsNCiAgICAgICAgICAgICAgICBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICJpbnNlcnQgaW50byBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIChpZF9jYXRlZ29yaWEsIGlkX2xpc3RhKSB2YWx1ZXMgKCRjYXRlZ29yaWFbJGldLCAkaWQpIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRyZXN1bHRhZG87DQogICAgfQ0KDQogICAgZnVuY3Rpb24gZWRpdGFyTGlzdGFHbG9iYWwoJGlkLCAkbm9tZSwgJGNhdGVnb3JpYSkgew0KICAgICAgICBnbG9iYWwgJGNvbmV4YW87DQogICAgICAgICRxdWVyeSA9ICJ1cGRhdGUgbGlzdGEgc2V0IG5vbWVfbGlzdGE9ICckbm9tZScgd2hlcmUgaWRfbGlzdGE9JGlkIjsNCiAgICAgICAgDQogICAgICAgIGlmIChjb3VudCgkY2F0ZWdvcmlhKSA+IDApIHsNCiAgICAgICAgICAgIG15c3FsaV9xdWVyeSgkY29uZXhhbywgImRlbGV0ZSBmcm9tIGxpc3RhX2dsb2JhbF9jYXRlZ29yaWEgd2hlcmUgaWRfbGlzdGE9ICRpZCIpOw0KICAgICAgICAgICAgZm9yICgkaSA9MDsgJGkgPCBjb3VudCgkY2F0ZWdvcmlhKTsgJGkrKykgew0KICAgICAgICAgICAgICAgIGlmIChteXNxbGlfbnVtX3Jvd3MobXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAic2VsZWN0ICogZnJvbSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIHdoZXJlIGlkX2xpc3RhPSAkaWQgYW5kIGlkX2NhdGVnb3JpYSA9ICRjYXRlZ29yaWFbJGldIikpID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAiaW5zZXJ0IGludG8gbGlzdGFfZ2xvYmFsX2NhdGVnb3JpYSAoaWRfY2F0ZWdvcmlhLCBpZF9saXN0YSkgdmFsdWVzICgkY2F0ZWdvcmlhWyRpXSwgJGlkKSIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIG15c3FsaV9xdWVyeSgkY29uZXhhbywgImRlbGV0ZSBmcm9tIGxpc3RhX2dsb2JhbF9jYXRlZ29yaWEgd2hlcmUgaWRfbGlzdGE9ICRpZCIpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjYXRlZ29yaWFzTGlzdGEoJGlkKSB7DQogICAgICAgICRjYXRlZ29yaWFzID0gYXJyYXkoKTsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcXVlcnkgPSAic2VsZWN0IGNhdGVnb3JpYS4qIEZST00gbGlzdGFfZ2xvYmFsX2NhdGVnb3JpYSBJTk5FUiBKT0lOIGxpc3RhIE9OIChsaXN0YS5pZF9saXN0YSA9IGxpc3RhX2dsb2JhbF9jYXRlZ29yaWEuaWRfbGlzdGEpIElOTkVSIEpPSU4gY2F0ZWdvcmlhIE9OIChjYXRlZ29yaWEuaWQgPSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhLmlkX2NhdGVnb3JpYSkgd2hlcmUgbGlzdGEuaWRfbGlzdGEgPSAkaWQiOw0KICAgICAgICAkcmVzdWx0YWRvID0gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAkcXVlcnkpOw0KICAgICAgICB3aGlsZSgkY2F0ZWdvcmlhID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHRhZG8pKSB7DQogICAgICAgICAgICBhcnJheV9wdXNoKCRjYXRlZ29yaWFzLCAkY2F0ZWdvcmlhKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJGNhdGVnb3JpYXM7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcmVtb3Zlckxpc3RhKCRpZCkgew0KICAgICAgICBnbG9iYWwgJGNvbmV4YW87DQogICAgICAgICRxdWVyeSA9ICJkZWxldGUgZnJvbSBsaXN0YSB3aGVyZSBpZF9saXN0YT0kaWQiOw0KICAgICAgICByZXR1cm4gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAkcXVlcnkpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIG9idGVyTGlzdGEoJGlkKSB7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCBsaXN0YS5saXN0YSBmcm9tIGxpc3RhIHdoZXJlIGlkX2xpc3RhID0gJGlkIjsNCiAgICAgICAgJHJlc3VsdGFkbyA9IG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICAgICAgcmV0dXJuIG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0YWRvKVsnbGlzdGEnXTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBlZGl0YXJMaXN0YSgkaWQsICRub21lLCAkbGlzdGEpIHsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcXVlcnkgPSAidXBkYXRlIGxpc3RhIHNldCBub21lX2xpc3RhPSAnJG5vbWUnLCBsaXN0YSA9ICckbGlzdGEnIHdoZXJlIGlkX2xpc3RhPSRpZCI7DQogICAgICAgIHJldHVybiBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICRxdWVyeSk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gb2J0ZXJMaXN0YVVzdWFyaW9zKCRpZCkgew0KICAgICAgICAkdXN1YXJpb3MgPSBhcnJheSgpOw0KICAgICAgICBzZXNzaW9uX3N0YXJ0KCk7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCB1LmlkX3VzdWFyaW8sIHUubm9tZV91c3VhcmlvIGZyb20gdXN1YXJpbyB1IGlubmVyIGpvaW4gbGlzdGFfdXN1YXJpbyBsdSBvbiBsdS5pZF91c3VhcmlvID0gdS5pZF91c3VhcmlvIGFuZCBsdS5pZF9saXN0YSA9ICIuJGlkLiIgYW5kIGx1LmlkX3VzdWFyaW8gIT0gIi4kX1NFU1NJT05bJ2lkX3VzdWFyaW8nXS4iIHdoZXJlIHUuaWRfY3JpYWRvciA9ICIuJF9TRVNTSU9OWydpZF91c3VhcmlvJ10uIiBncm91cCBieSB1LmlkX3VzdWFyaW8iOw0KICAgICAgICBpZigkX1NFU1NJT05bJ2FkbWluJ10pew0KICAgICAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCB1LmlkX3VzdWFyaW8sIHUubm9tZV91c3VhcmlvIGZyb20gdXN1YXJpbyB1IGlubmVyIGpvaW4gbGlzdGFfdXN1YXJpbyBsdSBvbiBsdS5pZF91c3VhcmlvID0gdS5pZF91c3VhcmlvIGFuZCBsdS5pZF9saXN0YSA9ICIuJGlkLiIgYW5kIGx1LmlkX3VzdWFyaW8gIT0gIi4kX1NFU1NJT05bJ2lkX3VzdWFyaW8nXS4iIGdyb3VwIGJ5IHUuaWRfdXN1YXJpbyI7DQogICAgICAgIH0NCiAgICAgICAgJHJlc3VsdGFkbyA9IG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICAgICAgd2hpbGUgKCR1c3VhcmlvID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHRhZG8pKSB7DQogICAgICAgICAgICBhcnJheV9wdXNoKCR1c3VhcmlvcywkdXN1YXJpbyk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICR1c3VhcmlvczsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBvYnRlckxpbmtMaXN0YSgkaWRMaXN0YSwkaWRVc3VhcmlvKSB7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCBhY2Vzc28gZnJvbSB1c3VhcmlvIHdoZXJlIGlkX3VzdWFyaW89ICRpZFVzdWFyaW8iOw0KICAgICAgICAkcmVzdWx0YWRvVXN1YXJpbyA9IG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICAgICAgJHVzdWFyaW8gPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdGFkb1VzdWFyaW8pOw0KICAgICAgICByZXR1cm4gcHJlZ19yZXBsYWNlKCcvY29udHJvbGVzXC9vYnRlci1saW5rLWxpc3RhLnBocC8nLCAnJywgKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSAmJiAkX1NFUlZFUlsnSFRUUFMnXSA9PT0gJ29uJyA/ICJodHRwcyIgOiAiaHR0cCIpIC4gIjovLyRfU0VSVkVSW0hUVFBfSE9TVF0kX1NFUlZFUltSRVFVRVNUX1VSSV1leGliaXIucGhwP3VzdWFyaW89eyR1c3VhcmlvWydhY2Vzc28nXX0mbGlzdGE9eyRpZExpc3RhfSZ0aXBvPW0zdV9wbHVzIik7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gbGlzdGFHbG9iYWwoJGlkbGlzdGEpIHsNCiAgICAgICAgJGxpbmtzID0gYXJyYXkoKTsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcmVzdWx0YWRvID0gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAic2VsZWN0IGRpc3RpbmN0IGxpbmsuaWRfbGluaywgbGluay5ub21lX2xpbmssIGxpbmsubGlua19saW5rLCBsaW5rLmxvZ28sIGxpbmsuYWNlc3NvTGluaywgDQogICAgICAgIGxpbmsuaWRfY2F0ZWdvcmlhLCBjYXRlZ29yaWEubm9tZSBmcm9tIGxpbmsgaW5uZXIgam9pbiBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIG9uIA0KICAgICAgICAobGluay5pZF9jYXRlZ29yaWEgPSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhLmlkX2NhdGVnb3JpYSkgaW5uZXIgam9pbiBjYXRlZ29yaWEgb24gDQogICAgICAgIChsaW5rLmlkX2NhdGVnb3JpYSA9IGNhdGVnb3JpYS5pZCkgd2hlcmUgbGlzdGFfZ2xvYmFsX2NhdGVnb3JpYS5pZF9saXN0YSA9ICRpZGxpc3RhIG9yZGVyIGJ5IGNhdGVnb3JpYS5ub21lIGFzYyIpOw0KICAgICAgICB3aGlsZSgkbGluayA9IG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0YWRvKSkgew0KICAgICAgICAgICAgYXJyYXlfcHVzaCgkbGlua3MsJGxpbmspOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkbGlua3M7DQogICAgfQ0KPz4= ?>

Did this file decode correctly?

Original Code

PD9waHANCiAgICByZXF1aXJlX29uY2UoImNvbmV4YW8ucGhwIik7DQoNCiAgICBmdW5jdGlvbiBsaXN0YXJMaXN0YXMoKSB7DQogICAgICAgICRsaXN0YXMgPSBhcnJheSgpOw0KICAgICAgICBnbG9iYWwgJGNvbmV4YW87DQogICAgICAgIGlmKCRfU0VTU0lPTlsnYWRtaW4nXSl7DQogICAgICAgICAgICAkcXVlcnkgPSAic2VsZWN0ICogZnJvbSBsaXN0YSI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcXVlcnkgPSAic2VsZWN0ICogZnJvbSBsaXN0YSBsIHdoZXJlIGwuaWRfbGlzdGEgaW4gKHNlbGVjdCBsdS5pZF9saXN0YSBmcm9tIGxpc3RhX3VzdWFyaW8gbHUgd2hlcmUgbHUuaWRfdXN1YXJpbyA9ICIuJF9TRVNTSU9OWydpZF91c3VhcmlvJ10uIikiOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkcmVzdWx0YWRvID0gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAkcXVlcnkpOw0KICAgICAgICB3aGlsZSgkbGlzdGEgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdGFkbykpIHsNCiAgICAgICAgICAgIGFycmF5X3B1c2goJGxpc3RhcywgJGxpc3RhKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJGxpc3RhczsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBhZGljaW9uYXJMaXN0YSgkbm9tZSwgJGxpc3RhKSB7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gImluc2VydCBpbnRvIGxpc3RhIChub21lX2xpc3RhLCBsaXN0YSwgaWRfdXN1YXJpbykgdmFsdWVzICgnJG5vbWUnLCAnJGxpc3RhJywgIi4kX1NFU1NJT05bJ2lkX3VzdWFyaW8nXS4iKSI7DQogICAgICAgIHJldHVybiBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICRxdWVyeSk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gYWRpY2lvbmFyTGlzdGFHbG9iYWwoJG5vbWUsICRjYXRlZ29yaWEpIHsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcXVlcnkgPSAiaW5zZXJ0IGludG8gbGlzdGEgKG5vbWVfbGlzdGEsIGdsb2JhbCkgdmFsdWVzICgnJG5vbWUnLCAxKSI7DQogICAgICAgICRyZXN1bHRhZG8gPSBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICRxdWVyeSk7DQogICAgICAgICRpZCA9IG15c3FsaV9pbnNlcnRfaWQoJGNvbmV4YW8pOw0KICAgICAgICBpZiAoY291bnQoJGNhdGVnb3JpYSkgPiAwKSB7DQogICAgICAgICAgICBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICJkZWxldGUgZnJvbSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIHdoZXJlIGlkX2xpc3RhPSAkaWQiKTsNCiAgICAgICAgICAgIGZvciAoJGkgPTA7ICRpIDwgY291bnQoJGNhdGVnb3JpYSk7ICRpKyspIHsNCiAgICAgICAgICAgICAgICBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICJpbnNlcnQgaW50byBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIChpZF9jYXRlZ29yaWEsIGlkX2xpc3RhKSB2YWx1ZXMgKCRjYXRlZ29yaWFbJGldLCAkaWQpIik7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRyZXN1bHRhZG87DQogICAgfQ0KDQogICAgZnVuY3Rpb24gZWRpdGFyTGlzdGFHbG9iYWwoJGlkLCAkbm9tZSwgJGNhdGVnb3JpYSkgew0KICAgICAgICBnbG9iYWwgJGNvbmV4YW87DQogICAgICAgICRxdWVyeSA9ICJ1cGRhdGUgbGlzdGEgc2V0IG5vbWVfbGlzdGE9ICckbm9tZScgd2hlcmUgaWRfbGlzdGE9JGlkIjsNCiAgICAgICAgDQogICAgICAgIGlmIChjb3VudCgkY2F0ZWdvcmlhKSA+IDApIHsNCiAgICAgICAgICAgIG15c3FsaV9xdWVyeSgkY29uZXhhbywgImRlbGV0ZSBmcm9tIGxpc3RhX2dsb2JhbF9jYXRlZ29yaWEgd2hlcmUgaWRfbGlzdGE9ICRpZCIpOw0KICAgICAgICAgICAgZm9yICgkaSA9MDsgJGkgPCBjb3VudCgkY2F0ZWdvcmlhKTsgJGkrKykgew0KICAgICAgICAgICAgICAgIGlmIChteXNxbGlfbnVtX3Jvd3MobXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAic2VsZWN0ICogZnJvbSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIHdoZXJlIGlkX2xpc3RhPSAkaWQgYW5kIGlkX2NhdGVnb3JpYSA9ICRjYXRlZ29yaWFbJGldIikpID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAiaW5zZXJ0IGludG8gbGlzdGFfZ2xvYmFsX2NhdGVnb3JpYSAoaWRfY2F0ZWdvcmlhLCBpZF9saXN0YSkgdmFsdWVzICgkY2F0ZWdvcmlhWyRpXSwgJGlkKSIpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIG15c3FsaV9xdWVyeSgkY29uZXhhbywgImRlbGV0ZSBmcm9tIGxpc3RhX2dsb2JhbF9jYXRlZ29yaWEgd2hlcmUgaWRfbGlzdGE9ICRpZCIpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjYXRlZ29yaWFzTGlzdGEoJGlkKSB7DQogICAgICAgICRjYXRlZ29yaWFzID0gYXJyYXkoKTsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcXVlcnkgPSAic2VsZWN0IGNhdGVnb3JpYS4qIEZST00gbGlzdGFfZ2xvYmFsX2NhdGVnb3JpYSBJTk5FUiBKT0lOIGxpc3RhIE9OIChsaXN0YS5pZF9saXN0YSA9IGxpc3RhX2dsb2JhbF9jYXRlZ29yaWEuaWRfbGlzdGEpIElOTkVSIEpPSU4gY2F0ZWdvcmlhIE9OIChjYXRlZ29yaWEuaWQgPSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhLmlkX2NhdGVnb3JpYSkgd2hlcmUgbGlzdGEuaWRfbGlzdGEgPSAkaWQiOw0KICAgICAgICAkcmVzdWx0YWRvID0gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAkcXVlcnkpOw0KICAgICAgICB3aGlsZSgkY2F0ZWdvcmlhID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHRhZG8pKSB7DQogICAgICAgICAgICBhcnJheV9wdXNoKCRjYXRlZ29yaWFzLCAkY2F0ZWdvcmlhKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJGNhdGVnb3JpYXM7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcmVtb3Zlckxpc3RhKCRpZCkgew0KICAgICAgICBnbG9iYWwgJGNvbmV4YW87DQogICAgICAgICRxdWVyeSA9ICJkZWxldGUgZnJvbSBsaXN0YSB3aGVyZSBpZF9saXN0YT0kaWQiOw0KICAgICAgICByZXR1cm4gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAkcXVlcnkpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIG9idGVyTGlzdGEoJGlkKSB7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCBsaXN0YS5saXN0YSBmcm9tIGxpc3RhIHdoZXJlIGlkX2xpc3RhID0gJGlkIjsNCiAgICAgICAgJHJlc3VsdGFkbyA9IG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICAgICAgcmV0dXJuIG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0YWRvKVsnbGlzdGEnXTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBlZGl0YXJMaXN0YSgkaWQsICRub21lLCAkbGlzdGEpIHsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcXVlcnkgPSAidXBkYXRlIGxpc3RhIHNldCBub21lX2xpc3RhPSAnJG5vbWUnLCBsaXN0YSA9ICckbGlzdGEnIHdoZXJlIGlkX2xpc3RhPSRpZCI7DQogICAgICAgIHJldHVybiBteXNxbGlfcXVlcnkoJGNvbmV4YW8sICRxdWVyeSk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gb2J0ZXJMaXN0YVVzdWFyaW9zKCRpZCkgew0KICAgICAgICAkdXN1YXJpb3MgPSBhcnJheSgpOw0KICAgICAgICBzZXNzaW9uX3N0YXJ0KCk7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCB1LmlkX3VzdWFyaW8sIHUubm9tZV91c3VhcmlvIGZyb20gdXN1YXJpbyB1IGlubmVyIGpvaW4gbGlzdGFfdXN1YXJpbyBsdSBvbiBsdS5pZF91c3VhcmlvID0gdS5pZF91c3VhcmlvIGFuZCBsdS5pZF9saXN0YSA9ICIuJGlkLiIgYW5kIGx1LmlkX3VzdWFyaW8gIT0gIi4kX1NFU1NJT05bJ2lkX3VzdWFyaW8nXS4iIHdoZXJlIHUuaWRfY3JpYWRvciA9ICIuJF9TRVNTSU9OWydpZF91c3VhcmlvJ10uIiBncm91cCBieSB1LmlkX3VzdWFyaW8iOw0KICAgICAgICBpZigkX1NFU1NJT05bJ2FkbWluJ10pew0KICAgICAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCB1LmlkX3VzdWFyaW8sIHUubm9tZV91c3VhcmlvIGZyb20gdXN1YXJpbyB1IGlubmVyIGpvaW4gbGlzdGFfdXN1YXJpbyBsdSBvbiBsdS5pZF91c3VhcmlvID0gdS5pZF91c3VhcmlvIGFuZCBsdS5pZF9saXN0YSA9ICIuJGlkLiIgYW5kIGx1LmlkX3VzdWFyaW8gIT0gIi4kX1NFU1NJT05bJ2lkX3VzdWFyaW8nXS4iIGdyb3VwIGJ5IHUuaWRfdXN1YXJpbyI7DQogICAgICAgIH0NCiAgICAgICAgJHJlc3VsdGFkbyA9IG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICAgICAgd2hpbGUgKCR1c3VhcmlvID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHRhZG8pKSB7DQogICAgICAgICAgICBhcnJheV9wdXNoKCR1c3VhcmlvcywkdXN1YXJpbyk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICR1c3VhcmlvczsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBvYnRlckxpbmtMaXN0YSgkaWRMaXN0YSwkaWRVc3VhcmlvKSB7DQogICAgICAgIGdsb2JhbCAkY29uZXhhbzsNCiAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCBhY2Vzc28gZnJvbSB1c3VhcmlvIHdoZXJlIGlkX3VzdWFyaW89ICRpZFVzdWFyaW8iOw0KICAgICAgICAkcmVzdWx0YWRvVXN1YXJpbyA9IG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHF1ZXJ5KTsNCiAgICAgICAgJHVzdWFyaW8gPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdGFkb1VzdWFyaW8pOw0KICAgICAgICByZXR1cm4gcHJlZ19yZXBsYWNlKCcvY29udHJvbGVzXC9vYnRlci1saW5rLWxpc3RhLnBocC8nLCAnJywgKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSAmJiAkX1NFUlZFUlsnSFRUUFMnXSA9PT0gJ29uJyA/ICJodHRwcyIgOiAiaHR0cCIpIC4gIjovLyRfU0VSVkVSW0hUVFBfSE9TVF0kX1NFUlZFUltSRVFVRVNUX1VSSV1leGliaXIucGhwP3VzdWFyaW89eyR1c3VhcmlvWydhY2Vzc28nXX0mbGlzdGE9eyRpZExpc3RhfSZ0aXBvPW0zdV9wbHVzIik7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gbGlzdGFHbG9iYWwoJGlkbGlzdGEpIHsNCiAgICAgICAgJGxpbmtzID0gYXJyYXkoKTsNCiAgICAgICAgZ2xvYmFsICRjb25leGFvOw0KICAgICAgICAkcmVzdWx0YWRvID0gbXlzcWxpX3F1ZXJ5KCRjb25leGFvLCAic2VsZWN0IGRpc3RpbmN0IGxpbmsuaWRfbGluaywgbGluay5ub21lX2xpbmssIGxpbmsubGlua19saW5rLCBsaW5rLmxvZ28sIGxpbmsuYWNlc3NvTGluaywgDQogICAgICAgIGxpbmsuaWRfY2F0ZWdvcmlhLCBjYXRlZ29yaWEubm9tZSBmcm9tIGxpbmsgaW5uZXIgam9pbiBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhIG9uIA0KICAgICAgICAobGluay5pZF9jYXRlZ29yaWEgPSBsaXN0YV9nbG9iYWxfY2F0ZWdvcmlhLmlkX2NhdGVnb3JpYSkgaW5uZXIgam9pbiBjYXRlZ29yaWEgb24gDQogICAgICAgIChsaW5rLmlkX2NhdGVnb3JpYSA9IGNhdGVnb3JpYS5pZCkgd2hlcmUgbGlzdGFfZ2xvYmFsX2NhdGVnb3JpYS5pZF9saXN0YSA9ICRpZGxpc3RhIG9yZGVyIGJ5IGNhdGVnb3JpYS5ub21lIGFzYyIpOw0KICAgICAgICB3aGlsZSgkbGluayA9IG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0YWRvKSkgew0KICAgICAgICAgICAgYXJyYXlfcHVzaCgkbGlua3MsJGxpbmspOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkbGlua3M7DQogICAgfQ0KPz4=

Function Calls

None

Variables

None

Stats

MD5 061d5896a842de30aff3c1be5b4fa3aa
Eval Count 0
Decode Time 224 ms