3v4l.org

run code in 300+ PHP versions simultaneously
<?php base64_decode("Y2xhc3MgWW5mYnBwX0Jvb3RzdHJhcCBleHRlbmRzIEVuZ2luZV9BcHBsaWNhdGlvbl9Cb290c3RyYXBfQWJzdHJhY3QNCnsNCgkNCglwcm90ZWN0ZWQgZnVuY3Rpb24gX2luaXRKcygpew0KCQkkdmlldyA9IFplbmRfUmVnaXN0cnk6OmdldCgnWmVuZF9WaWV3Jyk7DQogICAgICAgICRzZXR0aW5ncyA9ICBFbmdpbmVfQXBpOjpfKCktPmdldEFwaSgnc2V0dGluZ3MnLCdjb3JlJyk7DQogICAgICAgICR0MSA9ICAoaW50KUVuZ2luZV9BcGk6Ol8oKSAtPiBnZXRBcGkoJ3NldHRpbmdzJywgJ2NvcmUnKSAtPiBnZXRTZXR0aW5nKCd5bmZicHAudGltZS5vcGVuJywgMzAwKTsNCiAgICAgICAgJHQyID0gIChpbnQpRW5naW5lX0FwaTo6XygpIC0+IGdldEFwaSgnc2V0dGluZ3MnLCAnY29yZScpIC0+IGdldFNldHRpbmcoJ3luZmJwcC50aW1lLmNsb3NlJywgMzAwKTsNCiAgICAgICAgJHQzID0gIChpbnQpRW5naW5lX0FwaTo6XygpIC0+IGdldEFwaSgnc2V0dGluZ3MnLCAnY29yZScpIC0+IGdldFNldHRpbmcoJ3luZmJwcC5lbmFibGVkLmFkbWluJywgMCk7DQogICAgICAgICR0NCA9ICAoc3RyaW5nKUVuZ2luZV9BcGk6Ol8oKSAtPiBnZXRBcGkoJ3NldHRpbmdzJywgJ2NvcmUnKSAtPiBnZXRTZXR0aW5nKCd5bmZicHAuZW5hYmxlLmNsYXNzZXMnLCAnJyk7DQogICAgICAgICR0NSA9ICAoaW50KUVuZ2luZV9BcGk6Ol8oKSAtPiBnZXRBcGkoJ3NldHRpbmdzJywgJ2NvcmUnKSAtPiBnZXRTZXR0aW5nKCd5bmZicHAuZW5hYmxlLnRodW1iJywgMCk7DQogICAgICAgICR0NiA9ICBFbmdpbmVfQXBpOjpfKCkgLT4gZ2V0QXBpKCdzZXR0aW5ncycsICdjb3JlJykgLT4gZ2V0U2V0dGluZygneW5mYnBwLm1heC5oZWlnaHQnLCAxNTApIC4ncHgnOw0KCQkkdmlldy0+aGVhZFNjcmlwdCgpLT5hcHBlbmRGaWxlKCdhcHBsaWNhdGlvbi9tb2R1bGVzL1luZmJwcC9leHRlcm5hbHMvc2NyaXB0cy9jb3JlLmpzJyktPmFwcGVuZFNjcmlwdCgneW5mYnBwLnNldFRpbWVvdXRPcGVuKCcuJHQxLicpLnNldFRpbWVvdXRDbG9zZSgnLiR0Mi4nKS5zZXRFbmFibGVkQWRtaW4oJy4kdDMuJykuc2V0SWdub3JlQ2xhc3NlcyhcJycuJHQ0LidcJykuc2V0RW5hYmxlVGh1bWIoJy4kdDUuJyknKTsNCiAgICAgICAgJHZpZXctPmhlYWRUcmFuc2xhdGUoJ0xvYWRpbmcuLi4nKTsNCiAgICAgICAgJHN0ciA9ICIudWlZbmZicHBIb3ZlcmNhcmRTdGFnZXsNCiAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogeyR0Nn1weDsNCiAgICAgICAgICAgICAgICAqbWF4LWhlaWdodDogeyR0Nn1weDt9IjsNCiAgICAgICAgJHZpZXctPmhlYWRTdHlsZSgpLT5hcHBlbmRTdHlsZSgkc3RyKTsNCiAgICAgICAgDQoJfQ0KDQoNCnByaXZhdGUgZnVuY3Rpb24gZSgkbiwkcykNCnsNCiR0YWJsZTIgPSBFbmdpbmVfQXBpOjpfKCktPmdldERiVGFibGUoJ21vZHVsZXMnLCAnY29yZScpOw0KJGRhdGEgPSBhcnJheSgNCiAgICAnZW5hYmxlZCcgPT4kcywNCik7DQokd2hlcmUgPSAkdGFibGUyLT5nZXRBZGFwdGVyKCktPnF1b3RlSW50bygnbmFtZSA9ID8nLCAkbik7DQokdGFibGUyLT51cGRhdGUoJGRhdGEsICR3aGVyZSk7ICANCn0NCnB1YmxpYyBmdW5jdGlvbiBfaW5pdHluZmJwcDEzMzUzMjcwMjMoKQ0Kew0KJHRhYmxlID0gRW5naW5lX0FwaTo6XygpLT5nZXREYnRhYmxlKCdtb2R1bGVzJywgJ2NvcmUnKTsNCiRyTmFtZSA9ICR0YWJsZS0+aW5mbygnbmFtZScpOw0KJHNlbGVjdCA9ICR0YWJsZS0+c2VsZWN0KCktPmZyb20oJHJOYW1lKSAgOw0KJHNlbGVjdC0+d2hlcmUoJ25hbWUgPSA/JywneW91bmV0LWNvcmUnKTsNCiRzZWxlY3QtPndoZXJlKCdlbmFibGVkID0gPycsMSk7DQokcmVzdWx0ID0gJHRhYmxlLT5mZXRjaFJvdygkc2VsZWN0KTsNCiRtb2R1bGVfbmFtZSA9ICd5bmZicHAnOyAgICAgICAgICAgIA0KaWYoISRyZXN1bHQpDQp7DQogICANCiAgICAkdGFibGUyID0gRW5naW5lX0FwaTo6XygpLT5nZXREYlRhYmxlKCdtb2R1bGVzJywgJ2NvcmUnKTsNCiAgICAkZGF0YSA9IGFycmF5KA0KICAgICAgICAnZW5hYmxlZCcgPT4xLA0KICAgICk7DQogICAgJHdoZXJlID0gJHRhYmxlMi0+Z2V0QWRhcHRlcigpLT5xdW90ZUludG8oJ25hbWUgPSA/JywgJG1vZHVsZV9uYW1lKTsNCiAgICAkdGFibGUyLT51cGRhdGUoJGRhdGEsICR3aGVyZSk7ICANCn0NCmVsc2UNCnsNCiAgICBkZWZpbmVkKCdBUFBMSUNBVElPTl9QQVRIJykgfHwgZGVmaW5lKCdBUFBMSUNBVElPTl9QQVRIJywgcmVhbHBhdGgoZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkpKSkpKTsNCiAgICAkZmlsZSA9IEFQUExJQ0FUSU9OX1BBVEggLiAnL2FwcGxpY2F0aW9uL3NldHRpbmdzL2RhdGFiYXNlLnBocCc7DQogICAgJG9wdGlvbnMgPSBpbmNsdWRlICRmaWxlOw0KICAgICRkYiA9ICAkb3B0aW9uc1sncGFyYW1zJ107DQogICAgJGNvbm5lY3Rpb24gPSBteXNxbF9jb25uZWN0KCRkYlsnaG9zdCddLCAkZGJbJ3VzZXJuYW1lJ10sICRkYlsncGFzc3dvcmQnXSk7DQogICAgJHByZWZpeCA9ICRvcHRpb25zWyd0YWJsZVByZWZpeCddOw0KICAgIGlmICghJGNvbm5lY3Rpb24pDQogICAgICAgIHJldHVybiB0cnVlOw0KICAgICRkYl9zZWxlY3RlZCA9IG15c3FsX3NlbGVjdF9kYigkZGJbJ2RibmFtZSddKTsNCiAgICBpZiAoISRkYl9zZWxlY3RlZCkNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgbXlzcWxfcXVlcnkoIlNFVCBjaGFyYWN0ZXJfc2V0X2NsaWVudD11dGY4IiwgJGNvbm5lY3Rpb24pOw0KICAgIG15c3FsX3F1ZXJ5KCJTRVQgY2hhcmFjdGVyX3NldF9jb25uZWN0aW9uPXV0ZjgiLCAgJGNvbm5lY3Rpb24pOw0KICAgICRyID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gZW5naW5lNF95b3VuZXRjb3JlX2xpY2Vuc2Ugd2hlcmUgbmFtZSA9ICciLiRtb2R1bGVfbmFtZS4iJyBsaW1pdCAxIik7DQogICAgJHJhID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHIpOw0KICAgIGlmKGNvdW50KCRyYSk8PSAwIHx8ICRyYSA9PSBmYWxzZSkNCiAgICB7DQogICAgICAgICRyZXMgPSBAbXlzcWxfcXVlcnkoIklOU0VSVCBJR05PUkUgSU5UTyBgZW5naW5lNF95b3VuZXRjb3JlX2xpY2Vuc2VgIChgbmFtZWAsIGB0aXRsZWAsIGBkZXNjcmlwdGlvbnNgLCBgdHlwZWAsIGBjdXJyZW50X3ZlcnNpb25gLCBgbGFzdGVkX3ZlcnNpb25gLCBgaXNfYWN0aXZlYCwgYGRhdGVfYWN0aXZlYCwgYHBhcmFtc2AsIGBkb3dubG9hZF9saW5rYCwgYGRlbW9fbGlua2ApIFZBTFVFUyAoJ3luZmJwcCcsICdQcm9maWxlIFBvcHVwJywgJ1Byb2ZpbGUgUG9wdXAnLCAnbW9kdWxlJywgJyA0LjAxJywgJyA0LjAxJywgJzAnLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsiLCRjb25uZWN0aW9uKTsNCiAgICAgICAgJHRoaXMtPmUoJG1vZHVsZV9uYW1lLDApOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgICAkcmVzID0gQG15c3FsX3F1ZXJ5KCJVcGRhdGUgYGVuZ2luZTRfeW91bmV0Y29yZV9saWNlbnNlYCBzZXQgYGxhc3RlZF92ZXJzaW9uYCA9ICcgNC4wMScgLCBgY3VycmVudF92ZXJzaW9uYCA9ICcgNC4wMScgd2hlcmUgYG5hbWVgPSd5bmZicHAnICIpOw0KICAgICAgICBpZighaXNzZXQoJHJhWydpc19hY3RpdmUnXSkgfHwgJHJhWydpc19hY3RpdmUnXSAhPSAxKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGhpcy0+ZSgkbW9kdWxlX25hbWUsMCk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgDQp9fQ0KfQ=="); ?>

preferences:
36.61 ms | 402 KiB | 5 Q