Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php goto cAlTG; W7QUt: function ob_gzencode($P) { return gzencode($P); } goto r0isG; D..

Decoded Output download

<?php 
 goto cAlTG; W7QUt: function ob_gzencode($P) { return gzencode($P); } goto r0isG; Dc8hs: if (isset($_GET["mssql"])) { $hg = array("SQLSRV", "MSSQL", "PDO_DBLIB"); define("DRIVER", "mssql"); if (extension_loaded("sqlsrv")) { class Min_DB { var $extension = "sqlsrv", $_link, $_result, $server_info, $affected_rows, $errno, $error; function _get_error() { $this->error = ''; foreach (sqlsrv_errors() as $n) { $this->errno = $n["code"]; $this->error .= "{$n["message"]}\xa"; } $this->error = rtrim($this->error); } function connect($M, $V, $E) { global $b; $l = $b->database(); $yb = array("UID" => $V, "PWD" => $E, "CharacterSet" => "UTF-8"); if ($l != '') { $yb["Database"] = $l; } $this->_link = @sqlsrv_connect(preg_replace("~:~", ",", $M), $yb); if ($this->_link) { $Pd = sqlsrv_server_info($this->_link); $this->server_info = $Pd["SQLServerVersion"]; } else { $this->_get_error(); } return (bool) $this->_link; } function quote($P) { return "'" . str_replace("'", "''", $P) . "'"; } function select_db($j) { return $this->query("USE " . idf_escape($j)); } function query($F, $Ci = false) { $G = sqlsrv_query($this->_link, $F); $this->error = ''; if (!$G) { $this->_get_error(); return false; } return $this->store_result($G); } function multi_query($F) { $this->_result = sqlsrv_query($this->_link, $F); $this->error = ''; if (!$this->_result) { $this->_get_error(); return false; } return true; } function store_result($G = null) { if (!$G) { $G = $this->_result; } if (!$G) { return false; } if (sqlsrv_field_metadata($G)) { return new Min_Result($G); } $this->affected_rows = sqlsrv_rows_affected($G); return true; } function next_result() { return $this->_result ? sqlsrv_next_result($this->_result) : null; } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } $I = $G->fetch_row(); return $I[$o]; } } class Min_Result { var $_result, $_offset = 0, $_fields, $num_rows; function __construct($G) { $this->_result = $G; } function _convert($I) { foreach ((array) $I as $y => $X) { if (is_a($X, "DateTime")) { $I[$y] = $X->format("Y-m-d H:i:s"); } } return $I; } function fetch_assoc() { return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_ASSOC)); } function fetch_row() { return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_NUMERIC)); } function fetch_field() { if (!$this->_fields) { $this->_fields = sqlsrv_field_metadata($this->_result); } $o = $this->_fields[$this->_offset++]; $H = new stdClass(); $H->name = $o["Name"]; $H->orgname = $o["Name"]; $H->type = $o["Type"] == 1 ? 254 : 0; return $H; } function seek($C) { for ($s = 0; $s < $C; $s++) { sqlsrv_fetch($this->_result); } } function __destruct() { sqlsrv_free_stmt($this->_result); } } } elseif (extension_loaded("mssql")) { class Min_DB { var $extension = "MSSQL", $_link, $_result, $server_info, $affected_rows, $error; function connect($M, $V, $E) { $this->_link = @mssql_connect($M, $V, $E); if ($this->_link) { $G = $this->query("SELECT SERVERPROPERTY('ProductLevel'), SERVERPROPERTY('Edition')"); if ($G) { $I = $G->fetch_row(); $this->server_info = $this->result("sp_server_info 2", 2) . " [{$I["0"]}] {$I["1"]}"; } } else { $this->error = mssql_get_last_message(); } return (bool) $this->_link; } function quote($P) { return "'" . str_replace("'", "''", $P) . "'"; } function select_db($j) { return mssql_select_db($j); } function query($F, $Ci = false) { $G = @mssql_query($F, $this->_link); $this->error = ''; if (!$G) { $this->error = mssql_get_last_message(); return false; } if ($G === true) { $this->affected_rows = mssql_rows_affected($this->_link); return true; } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return mssql_next_result($this->_result->_result); } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } return mssql_result($G->_result, 0, $o); } } class Min_Result { var $_result, $_offset = 0, $_fields, $num_rows; function __construct($G) { $this->_result = $G; $this->num_rows = mssql_num_rows($G); } function fetch_assoc() { return mssql_fetch_assoc($this->_result); } function fetch_row() { return mssql_fetch_row($this->_result); } function num_rows() { return mssql_num_rows($this->_result); } function fetch_field() { $H = mssql_fetch_field($this->_result); $H->orgtable = $H->table; $H->orgname = $H->name; return $H; } function seek($C) { mssql_data_seek($this->_result, $C); } function __destruct() { mssql_free_result($this->_result); } } } elseif (extension_loaded("pdo_dblib")) { class Min_DB extends Min_PDO { var $extension = "PDO_DBLIB"; function connect($M, $V, $E) { $this->dsn("dblib:charset=utf8;host=" . str_replace(":", ";unix_socket=", preg_replace("~:(\d)~", ";port=\1", $M)), $V, $E); return true; } function select_db($j) { return $this->query("USE " . idf_escape($j)); } } } class Min_Driver extends Min_SQL { function insertUpdate($Q, $J, $kg) { foreach ($J as $N) { $Ji = array(); $Z = array(); foreach ($N as $y => $X) { $Ji[] = "{$y} = {$X}"; if (isset($kg[idf_unescape($y)])) { $Z[] = "{$y} = {$X}"; } } if (!queries("MERGE " . table($Q) . " USING (VALUES(" . implode(", ", $N) . ")) AS source (c" . implode(", c", range(1, count($N))) . ") ON " . implode(" AND ", $Z) . " WHEN MATCHED THEN UPDATE SET " . implode(", ", $Ji) . " WHEN NOT MATCHED THEN INSERT (" . implode(", ", array_keys($N)) . ") VALUES (" . implode(", ", $N) . ");")) { return false; } } return true; } function begin() { return queries("BEGIN TRANSACTION"); } } function idf_escape($u) { return "[" . str_replace("]", "]]", $u) . "]"; } function table($u) { return ($_GET["ns"] != '' ? idf_escape($_GET["ns"]) . "." : '') . idf_escape($u); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases() { return get_vals("SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')"); } function limit($F, $Z, $z, $C = 0, $L = " ") { return ($z !== null ? " TOP (" . ($z + $C) . ")" : '') . " {$F}{$Z}"; } function limit1($Q, $F, $Z, $L = "\xa") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { global $g; return $g->result("SELECT collation_name FROM sys.databases WHERE name = " . q($l)); } function engines() { return array(); } function logged_user() { global $g; return $g->result("SELECT SUSER_NAME()"); } function tables_list() { return get_key_vals("SELECT name, type_desc FROM sys.all_objects WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V') ORDER BY name"); } function count_tables($k) { global $g; $H = array(); foreach ($k as $l) { $g->select_db($l); $H[$l] = $g->result("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES"); } return $H; } function table_status($B = '') { $H = array(); foreach (get_rows("SELECT ao.name AS Name, ao.type_desc AS Engine, (SELECT value FROM fn_listextendedproperty(default, 'SCHEMA', schema_name(schema_id), 'TABLE', ao.name, null, null)) AS Comment FROM sys.all_objects AS ao WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V') " . ($B != '' ? "AND name = " . q($B) : "ORDER BY name")) as $I) { if ($B != '') { return $I; } $H[$I["Name"]] = $I; } return $H; } function is_view($R) { return $R["Engine"] == "VIEW"; } function fk_support($R) { return true; } function fields($Q) { $vb = get_key_vals("SELECT objname, cast(value as varchar) FROM fn_listextendedproperty('MS_DESCRIPTION', 'schema', " . q(get_schema()) . ", 'table', " . q($Q) . ", 'column', NULL)"); $H = array(); foreach (get_rows("SELECT c.max_length, c.precision, c.scale, c.name, c.is_nullable, c.is_identity, c.collation_name, t.name type, CAST(d.definition as text) [default]
FROM sys.all_columns c
JOIN sys.all_objects o ON c.object_id = o.object_id
JOIN sys.types t ON c.user_type_id = t.user_type_id\xaLEFT JOIN sys.default_constraints d ON c.default_object_id = d.parent_column_id\xaWHERE o.schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND o.type IN ('S', 'U', 'V') AND o.name = " . q($Q)) as $I) { $T = $I["type"]; $te = preg_match("~char|binary~", $T) ? $I["max_length"] : ($T == "decimal" ? "{$I["precision"]},{$I["scale"]}" : ''); $H[$I["name"]] = array("field" => $I["name"], "full_type" => $T . ($te ? "({$te})" : ''), "type" => $T, "length" => $te, "default" => $I["default"], "null" => $I["is_nullable"], "auto_increment" => $I["is_identity"], "collation" => $I["collation_name"], "privileges" => array("insert" => 1, "select" => 1, "update" => 1), "primary" => $I["is_identity"], "comment" => $vb[$I["name"]]); } return $H; } function indexes($Q, $h = null) { $H = array(); foreach (get_rows("SELECT i.name, key_ordinal, is_unique, is_primary_key, c.name AS column_name, is_descending_key
FROM sys.indexes i\xaINNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
INNER JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
WHERE OBJECT_NAME(i.object_id) = " . q($Q), $h) as $I) { $B = $I["name"]; $H[$B]["type"] = $I["is_primary_key"] ? "PRIMARY" : ($I["is_unique"] ? "UNIQUE" : "INDEX"); $H[$B]["lengths"] = array(); $H[$B]["columns"][$I["key_ordinal"]] = $I["column_name"]; $H[$B]["descs"][$I["key_ordinal"]] = $I["is_descending_key"] ? "1" : null; } return $H; } function view($B) { global $g; return array("select" => preg_replace("~^(?:[^[]|\[[^]]*])*\s+AS\s+~isU", '', $g->result("SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = SCHEMA_NAME() AND TABLE_NAME = " . q($B)))); } function collations() { $H = array(); foreach (get_vals("SELECT name FROM fn_helpcollations()") as $d) { $H[preg_replace("~_.*~", '', $d)][] = $d; } return $H; } function information_schema($l) { return false; } function error() { global $g; return nl_br(h(preg_replace("~^(\[[^]]*])+~m", '', $g->error))); } function create_database($l, $d) { return queries("CREATE DATABASE " . idf_escape($l) . (preg_match("~^[a-z0-9_]+$~i", $d) ? " COLLATE {$d}" : '')); } function drop_databases($k) { return queries("DROP DATABASE " . implode(", ", array_map("idf_escape", $k))); } function rename_database($B, $d) { if (preg_match("~^[a-z0-9_]+$~i", $d)) { queries("ALTER DATABASE " . idf_escape(DB) . " COLLATE {$d}"); } queries("ALTER DATABASE " . idf_escape(DB) . " MODIFY NAME = " . idf_escape($B)); return true; } function auto_increment() { return " IDENTITY" . ($_POST["Auto_increment"] != '' ? "(" . number($_POST["Auto_increment"]) . ",1)" : '') . " PRIMARY KEY"; } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = array(); $vb = array(); foreach ($p as $o) { $e = idf_escape($o[0]); $X = $o[1]; if (!$X) { $c["DROP"][] = " COLUMN {$e}"; } else { $X[1] = preg_replace("~( COLLATE )'(\w+)'~", "\1\2", $X[1]); $vb[$o[0]] = $X[5]; unset($X[5]); if ($o[0] == '') { $c["ADD"][] = "
  " . implode('', $X) . ($Q == '' ? substr($cd[$X[0]], 16 + strlen($X[0])) : ''); } else { unset($X[6]); if ($e != $X[0]) { queries("EXEC sp_rename " . q(table($Q) . ".{$e}") . ", " . q(idf_unescape($X[0])) . ", 'COLUMN'"); } $c["ALTER COLUMN " . implode('', $X)][] = ''; } } } if ($Q == '') { return queries("CREATE TABLE " . table($B) . " (" . implode(",", (array) $c["ADD"]) . "\xa)"); } if ($Q != $B) { queries("EXEC sp_rename " . q(table($Q)) . ", " . q($B)); } if ($cd) { $c[''] = $cd; } foreach ($c as $y => $X) { if (!queries("ALTER TABLE " . idf_escape($B) . " {$y}" . implode(",", $X))) { return false; } } foreach ($vb as $y => $X) { $ub = substr($X, 9); queries("EXEC sp_dropextendedproperty @name = N'MS_Description', @level0type = N'Schema', @level0name = " . q(get_schema()) . ", @level1type = N'Table',  @level1name = " . q($B) . ", @level2type = N'Column', @level2name = " . q($y)); queries("EXEC sp_addextendedproperty @name = N'MS_Description', @value = " . $ub . ", @level0type = N'Schema', @level0name = " . q(get_schema()) . ", @level1type = N'Table',  @level1name = " . q($B) . ", @level2type = N'Column', @level2name = " . q($y)); } return true; } function alter_indexes($Q, $c) { $v = array(); $fc = array(); foreach ($c as $X) { if ($X[2] == "DROP") { if ($X[0] == "PRIMARY") { $fc[] = idf_escape($X[1]); } else { $v[] = idf_escape($X[1]) . " ON " . table($Q); } } elseif (!queries(($X[0] != "PRIMARY" ? "CREATE {$X["0"]} " . ($X[0] != "INDEX" ? "INDEX " : '') . idf_escape($X[1] != '' ? $X[1] : uniqid($Q . "_")) . " ON " . table($Q) : "ALTER TABLE " . table($Q) . " ADD PRIMARY KEY") . " (" . implode(", ", $X[2]) . ")")) { return false; } } return (!$v || queries("DROP INDEX " . implode(", ", $v))) && (!$fc || queries("ALTER TABLE " . table($Q) . " DROP " . implode(", ", $fc))); } function last_id() { global $g; return $g->result("SELECT SCOPE_IDENTITY()"); } function explain($g, $F) { $g->query("SET SHOWPLAN_ALL ON"); $H = $g->query($F); $g->query("SET SHOWPLAN_ALL OFF"); return $H; } function found_rows($R, $Z) { } function foreign_keys($Q) { $H = array(); foreach (get_rows("EXEC sp_fkeys @fktable_name = " . q($Q)) as $I) { $q =& $H[$I["FK_NAME"]]; $q["db"] = $I["PKTABLE_QUALIFIER"]; $q["table"] = $I["PKTABLE_NAME"]; $q["source"][] = $I["FKCOLUMN_NAME"]; $q["target"][] = $I["PKCOLUMN_NAME"]; } return $H; } function truncate_tables($S) { return apply_queries("TRUNCATE TABLE", $S); } function drop_views($aj) { return queries("DROP VIEW " . implode(", ", array_map("table", $aj))); } function drop_tables($S) { return queries("DROP TABLE " . implode(", ", array_map("table", $S))); } function move_tables($S, $aj, $Xh) { return apply_queries("ALTER SCHEMA " . idf_escape($Xh) . " TRANSFER", array_merge($S, $aj)); } function trigger($B) { if ($B == '') { return array(); } $J = get_rows("SELECT s.name [Trigger],\xaCASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(s.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(s.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing],
c.text\xaFROM sysobjects s\xaJOIN syscomments c ON s.id = c.id\xaWHERE s.xtype = 'TR' AND s.name = " . q($B)); $H = reset($J); if ($H) { $H["Statement"] = preg_replace("~^.+\s+AS\s+~isU", '', $H["text"]); } return $H; } function triggers($Q) { $H = array(); foreach (get_rows("SELECT sys1.name,
CASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],\xaCASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing]
FROM sysobjects sys1
JOIN sysobjects sys2 ON sys1.parent_obj = sys2.id\xaWHERE sys1.xtype = 'TR' AND sys2.name = " . q($Q)) as $I) { $H[$I["name"]] = array($I["Timing"], $I["Event"]); } return $H; } function trigger_options() { return array("Timing" => array("AFTER", "INSTEAD OF"), "Event" => array("INSERT", "UPDATE", "DELETE"), "Type" => array("AS")); } function schemas() { return get_vals("SELECT name FROM sys.schemas"); } function get_schema() { global $g; if ($_GET["ns"] != '') { return $_GET["ns"]; } return $g->result("SELECT SCHEMA_NAME()"); } function set_schema($ah) { return true; } function use_sql($j) { return "USE " . idf_escape($j); } function show_variables() { return array(); } function show_status() { return array(); } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function support($Pc) { return preg_match("~^(comment|columns|database|drop_col|indexes|descidx|scheme|sql|table|trigger|view|view_trigger)$~", $Pc); } $x = "mssql"; $U = array(); $Hh = array(); foreach (array("Numbers" => array("tinyint" => 3, "smallint" => 5, "int" => 10, "bigint" => 20, "bit" => 1, "decimal" => 0, "real" => 12, "float" => 53, "smallmoney" => 10, "money" => 20), "Date and time" => array("date" => 10, "smalldatetime" => 19, "datetime" => 19, "datetime2" => 19, "time" => 8, "datetimeoffset" => 10), "Strings" => array("char" => 8000, "varchar" => 8000, "text" => 2147483647, "nchar" => 4000, "nvarchar" => 4000, "ntext" => 1073741823), "Binary" => array("binary" => 8000, "varbinary" => 8000, "image" => 2147483647)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array(); $vf = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); $kd = array("len", "lower", "round", "upper"); $qd = array("avg", "count", "count distinct", "max", "min", "sum"); $mc = array(array("date|time" => "getdate"), array("int|decimal|real|float|money|datetime" => "+/-", "char|text" => "+")); } goto Pg0y8; Fg6cl: if (!defined("SID")) { session_cache_limiter(''); session_name("adminer_sid"); $Of = array(0, preg_replace("~\?.*~", '', $_SERVER["REQUEST_URI"]), '', $ba); if (version_compare(PHP_VERSION, "5.2.0") >= 0) { $Of[] = true; } call_user_func_array("session_set_cookie_params", $Of); session_start(); } goto MRnk7; t00RN: function get_file($y, $Sb = false) { $Tc = $_FILES[$y]; if (!$Tc) { return null; } foreach ($Tc as $y => $X) { $Tc[$y] = (array) $X; } $H = ''; foreach ($Tc["error"] as $y => $n) { if ($n) { return $n; } $B = $Tc["name"][$y]; $mi = $Tc["tmp_name"][$y]; $_b = file_get_contents($Sb && preg_match("~\.gz$~", $B) ? "compress.zlib://{$mi}" : $mi); if ($Sb) { $Dh = substr($_b, 0, 3); if (function_exists("iconv") && preg_match("~^\xfe\xff|^\xff\xfe~", $Dh, $Hg)) { $_b = iconv("utf-16", "utf-8", $_b); } elseif ($Dh == "\357\xbb\277") { $_b = substr($_b, 3); } $H .= $_b . "\xa\xa"; } else { $H .= $_b; } } return $H; } goto wRDyw; dwO29: function tar_file($Uc, $li) { $H = pack("a100a8a8a8a12a12", $Uc, 644, 0, 0, decoct($li->size), decoct(time())); $hb = 8 * 32; for ($s = 0; $s < strlen($H); $s++) { $hb += ord($H[$s]); } $H .= sprintf("%06o", $hb) . "\x0 "; echo $H, str_repeat("\x0", 512 - strlen($H)); $li->send(); echo str_repeat("\x0", 511 - ($li->size + 511) % 512); } goto SbgqV; iVM3J: function format_time($Dh) { return sprintf("%.3f s", max(0, microtime(true) - $Dh)); } goto UQSAZ; DmlqK: function cookie($B, $Y, $ve = 2592000) { global $ba; return header("Set-Cookie: {$B}=" . urlencode($Y) . ($ve ? "; expires=" . gmdate("D, d M Y H:i:s", time() + $ve) . " GMT" : '') . "; path=" . preg_replace("~\?.*~", '', $_SERVER["REQUEST_URI"]) . ($ba ? "; secure" : '') . "; HttpOnly; SameSite=lax", false); } goto fVj0g; kEVQv: $Vc = !preg_match("~^(unsafe_raw)?$~", ini_get("filter.default")); goto mQOC3; wdE6o: if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) { $hg = array(isset($_GET["sqlite"]) ? "SQLite3" : "SQLite", "PDO_SQLite"); define("DRIVER", isset($_GET["sqlite"]) ? "sqlite" : "sqlite2"); if (class_exists(isset($_GET["sqlite"]) ? "SQLite3" : "SQLiteDatabase")) { if (isset($_GET["sqlite"])) { class Min_SQLite { var $extension = "SQLite3", $server_info, $affected_rows, $errno, $error, $_link; function __construct($Uc) { $this->_link = new SQLite3($Uc); $Yi = $this->_link->version(); $this->server_info = $Yi["versionString"]; } function query($F) { $G = @$this->_link->query($F); $this->error = ''; if (!$G) { $this->errno = $this->_link->lastErrorCode(); $this->error = $this->_link->lastErrorMsg(); return false; } elseif ($G->numColumns()) { return new Min_Result($G); } $this->affected_rows = $this->_link->changes(); return true; } function quote($P) { return is_utf8($P) ? "'" . $this->_link->escapeString($P) . "'" : "x'" . reset(unpack("H*", $P)) . "'"; } function store_result() { return $this->_result; } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } $I = $G->_result->fetchArray(); return $I[$o]; } } class Min_Result { var $_result, $_offset = 0, $num_rows; function __construct($G) { $this->_result = $G; } function fetch_assoc() { return $this->_result->fetchArray(SQLITE3_ASSOC); } function fetch_row() { return $this->_result->fetchArray(SQLITE3_NUM); } function fetch_field() { $e = $this->_offset++; $T = $this->_result->columnType($e); return (object) array("name" => $this->_result->columnName($e), "type" => $T, "charsetnr" => $T == SQLITE3_BLOB ? 63 : 0); } function __desctruct() { return $this->_result->finalize(); } } } else { class Min_SQLite { var $extension = "SQLite", $server_info, $affected_rows, $error, $_link; function __construct($Uc) { $this->server_info = sqlite_libversion(); $this->_link = new SQLiteDatabase($Uc); } function query($F, $Ci = false) { $Re = $Ci ? "unbufferedQuery" : "query"; $G = @$this->_link->{$Re}($F, SQLITE_BOTH, $n); $this->error = ''; if (!$G) { $this->error = $n; return false; } elseif ($G === true) { $this->affected_rows = $this->changes(); return true; } return new Min_Result($G); } function quote($P) { return "'" . sqlite_escape_string($P) . "'"; } function store_result() { return $this->_result; } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } $I = $G->_result->fetch(); return $I[$o]; } } class Min_Result { var $_result, $_offset = 0, $num_rows; function __construct($G) { $this->_result = $G; if (method_exists($G, "numRows")) { $this->num_rows = $G->numRows(); } } function fetch_assoc() { $I = $this->_result->fetch(SQLITE_ASSOC); if (!$I) { return false; } $H = array(); foreach ($I as $y => $X) { $H[$y[0] == """ ? idf_unescape($y) : $y] = $X; } return $H; } function fetch_row() { return $this->_result->fetch(SQLITE_NUM); } function fetch_field() { $B = $this->_result->fieldName($this->_offset++); $ag = "(\[.*]|"(?:[^"]|"")*"|(.+))"; if (preg_match("~^({$ag}\.)?{$ag}$~", $B, $A)) { $Q = $A[3] != '' ? $A[3] : idf_unescape($A[2]); $B = $A[5] != '' ? $A[5] : idf_unescape($A[4]); } return (object) array("name" => $B, "orgname" => $B, "orgtable" => $Q); } } } } elseif (extension_loaded("pdo_sqlite")) { class Min_SQLite extends Min_PDO { var $extension = "PDO_SQLite"; function __construct($Uc) { $this->dsn(DRIVER . ":{$Uc}", '', ''); } } } if (class_exists("Min_SQLite")) { class Min_DB extends Min_SQLite { function __construct() { parent::__construct(":memory:"); $this->query("PRAGMA foreign_keys = 1"); } function select_db($Uc) { if (is_readable($Uc) && $this->query("ATTACH " . $this->quote(preg_match("~(^[/\\]|:)~", $Uc) ? $Uc : dirname($_SERVER["SCRIPT_FILENAME"]) . "/{$Uc}") . " AS a")) { parent::__construct($Uc); $this->query("PRAGMA foreign_keys = 1"); return true; } return false; } function multi_query($F) { return $this->_result = $this->query($F); } function next_result() { return false; } } } class Min_Driver extends Min_SQL { function insertUpdate($Q, $J, $kg) { $Vi = array(); foreach ($J as $N) { $Vi[] = "(" . implode(", ", $N) . ")"; } return queries("REPLACE INTO " . table($Q) . " (" . implode(", ", array_keys(reset($J))) . ") VALUES\xa" . implode(",
", $Vi)); } function tableHelp($B) { if ($B == "sqlite_sequence") { return "fileformat2.html#seqtab"; } if ($B == "sqlite_master") { return "fileformat2.html#{$B}"; } } } function idf_escape($u) { return """ . str_replace(""", """", $u) . """; } function table($u) { return idf_escape($u); } function connect() { global $b; list(, , $E) = $b->credentials(); if ($E != '') { return "Database does not support password."; } return new Min_DB(); } function get_databases() { return array(); } function limit($F, $Z, $z, $C = 0, $L = " ") { return " {$F}{$Z}" . ($z !== null ? $L . "LIMIT {$z}" . ($C ? " OFFSET {$C}" : '') : ''); } function limit1($Q, $F, $Z, $L = "
") { global $g; return preg_match("~^INTO~", $F) || $g->result("SELECT sqlite_compileoption_used('ENABLE_UPDATE_DELETE_LIMIT')") ? limit($F, $Z, 1, 0, $L) : " {$F} WHERE rowid = (SELECT rowid FROM " . table($Q) . $Z . $L . "LIMIT 1)"; } function db_collation($l, $pb) { global $g; return $g->result("PRAGMA encoding"); } function engines() { return array(); } function logged_user() { return get_current_user(); } function tables_list() { return get_key_vals("SELECT name, type FROM sqlite_master WHERE type IN ('table', 'view') ORDER BY (name = 'sqlite_sequence'), name"); } function count_tables($k) { return array(); } function table_status($B = '') { global $g; $H = array(); foreach (get_rows("SELECT name AS Name, type AS Engine, 'rowid' AS Oid, '' AS Auto_increment FROM sqlite_master WHERE type IN ('table', 'view') " . ($B != '' ? "AND name = " . q($B) : "ORDER BY name")) as $I) { $I["Rows"] = $g->result("SELECT COUNT(*) FROM " . idf_escape($I["Name"])); $H[$I["Name"]] = $I; } foreach (get_rows("SELECT * FROM sqlite_sequence", null, '') as $I) { $H[$I["name"]]["Auto_increment"] = $I["seq"]; } return $B != '' ? $H[$B] : $H; } function is_view($R) { return $R["Engine"] == "view"; } function fk_support($R) { global $g; return !$g->result("SELECT sqlite_compileoption_used('OMIT_FOREIGN_KEY')"); } function fields($Q) { global $g; $H = array(); $kg = ''; foreach (get_rows("PRAGMA table_info(" . table($Q) . ")") as $I) { $B = $I["name"]; $T = strtolower($I["type"]); $Tb = $I["dflt_value"]; $H[$B] = array("field" => $B, "type" => preg_match("~int~i", $T) ? "integer" : (preg_match("~char|clob|text~i", $T) ? "text" : (preg_match("~blob~i", $T) ? "blob" : (preg_match("~real|floa|doub~i", $T) ? "real" : "numeric"))), "full_type" => $T, "default" => preg_match("~'(.*)'~", $Tb, $A) ? str_replace("''", "'", $A[1]) : ($Tb == "NULL" ? null : $Tb), "null" => !$I["notnull"], "privileges" => array("select" => 1, "insert" => 1, "update" => 1), "primary" => $I["pk"]); if ($I["pk"]) { if ($kg != '') { $H[$kg]["auto_increment"] = false; } elseif (preg_match("~^integer$~i", $T)) { $H[$B]["auto_increment"] = true; } $kg = $B; } } $zh = $g->result("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = " . q($Q)); preg_match_all("~(("[^"]*+")+|[a-z0-9_]+)\s+text\s+COLLATE\s+('[^']+'|\S+)~i", $zh, $De, PREG_SET_ORDER); foreach ($De as $A) { $B = str_replace("""", """, preg_replace("~^"|"$~", '', $A[1])); if ($H[$B]) { $H[$B]["collation"] = trim($A[3], "'"); } } return $H; } function indexes($Q, $h = null) { global $g; if (!is_object($h)) { $h = $g; } $H = array(); $zh = $h->result("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = " . q($Q)); if (preg_match("~\bPRIMARY\s+KEY\s*\((([^)"]+|"[^"]*"|`[^`]*`)++)~i", $zh, $A)) { $H[''] = array("type" => "PRIMARY", "columns" => array(), "lengths" => array(), "descs" => array()); preg_match_all("~((("[^"]*+")+|(?:`[^`]*+`)+)|(\S+))(\s+(ASC|DESC))?(,\s*|$)~i", $A[1], $De, PREG_SET_ORDER); foreach ($De as $A) { $H['']["columns"][] = idf_unescape($A[2]) . $A[4]; $H['']["descs"][] = preg_match("~DESC~i", $A[5]) ? "1" : null; } } if (!$H) { foreach (fields($Q) as $B => $o) { if ($o["primary"]) { $H[''] = array("type" => "PRIMARY", "columns" => array($B), "lengths" => array(), "descs" => array(null)); } } } $Bh = get_key_vals("SELECT name, sql FROM sqlite_master WHERE type = 'index' AND tbl_name = " . q($Q), $h); foreach (get_rows("PRAGMA index_list(" . table($Q) . ")", $h) as $I) { $B = $I["name"]; $v = array("type" => $I["unique"] ? "UNIQUE" : "INDEX"); $v["lengths"] = array(); $v["descs"] = array(); foreach (get_rows("PRAGMA index_info(" . idf_escape($B) . ")", $h) as $Xg) { $v["columns"][] = $Xg["name"]; $v["descs"][] = null; } if (preg_match("~^CREATE( UNIQUE)? INDEX " . preg_quote(idf_escape($B) . " ON " . idf_escape($Q), "~") . " \((.*)\)$~i", $Bh[$B], $Hg)) { preg_match_all("/("[^"]*+")+( DESC)?/", $Hg[2], $De); foreach ($De[2] as $y => $X) { if ($X) { $v["descs"][$y] = "1"; } } } if (!$H[''] || $v["type"] != "UNIQUE" || $v["columns"] != $H['']["columns"] || $v["descs"] != $H['']["descs"] || !preg_match("~^sqlite_~", $B)) { $H[$B] = $v; } } return $H; } function foreign_keys($Q) { $H = array(); foreach (get_rows("PRAGMA foreign_key_list(" . table($Q) . ")") as $I) { $q =& $H[$I["id"]]; if (!$q) { $q = $I; } $q["source"][] = $I["from"]; $q["target"][] = $I["to"]; } return $H; } function view($B) { global $g; return array("select" => preg_replace("~^(?:[^`"[]+|`[^`]*`|"[^"]*")* AS\s+~iU", '', $g->result("SELECT sql FROM sqlite_master WHERE name = " . q($B)))); } function collations() { return isset($_GET["create"]) ? get_vals("PRAGMA collation_list", 1) : array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function check_sqlite_name($B) { global $g; $Kc = "db|sdb|sqlite"; if (!preg_match("~^[^\0]*\.({$Kc})$~", $B)) { $g->error = sprintf("Please use one of the extensions %s.", str_replace("|", ", ", $Kc)); return false; } return true; } function create_database($l, $d) { global $g; if (file_exists($l)) { $g->error = "File exists."; return false; } if (!check_sqlite_name($l)) { return false; } try { $_ = new Min_SQLite($l); } catch (Exception $Ac) { $g->error = $Ac->getMessage(); return false; } $_->query("PRAGMA encoding = "UTF-8""); $_->query("CREATE TABLE adminer (i)"); $_->query("DROP TABLE adminer"); return true; } function drop_databases($k) { global $g; $g->__construct(":memory:"); foreach ($k as $l) { if (!@unlink($l)) { $g->error = "File exists."; return false; } } return true; } function rename_database($B, $d) { global $g; if (!check_sqlite_name($B)) { return false; } $g->__construct(":memory:"); $g->error = "File exists."; return @rename(DB, $B); } function auto_increment() { return " PRIMARY KEY" . (DRIVER == "sqlite" ? " AUTOINCREMENT" : ''); } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { global $g; $Oi = $Q == '' || $cd; foreach ($p as $o) { if ($o[0] != '' || !$o[1] || $o[2]) { $Oi = true; break; } } $c = array(); $If = array(); foreach ($p as $o) { if ($o[1]) { $c[] = $Oi ? $o[1] : "ADD " . implode($o[1]); if ($o[0] != '') { $If[$o[0]] = $o[1][0]; } } } if (!$Oi) { foreach ($c as $X) { if (!queries("ALTER TABLE " . table($Q) . " {$X}")) { return false; } } if ($Q != $B && !queries("ALTER TABLE " . table($Q) . " RENAME TO " . table($B))) { return false; } } elseif (!recreate_table($Q, $B, $c, $If, $cd, $Ma)) { return false; } if ($Ma) { queries("BEGIN"); queries("UPDATE sqlite_sequence SET seq = {$Ma} WHERE name = " . q($B)); if (!$g->affected_rows) { queries("INSERT INTO sqlite_sequence (name, seq) VALUES (" . q($B) . ", {$Ma})"); } queries("COMMIT"); } return true; } function recreate_table($Q, $B, $p, $If, $cd, $Ma, $w = array()) { global $g; if ($Q != '') { if (!$p) { foreach (fields($Q) as $y => $o) { if ($w) { $o["auto_increment"] = 0; } $p[] = process_field($o, $o); $If[$y] = idf_escape($y); } } $lg = false; foreach ($p as $o) { if ($o[6]) { $lg = true; } } $hc = array(); foreach ($w as $y => $X) { if ($X[2] == "DROP") { $hc[$X[1]] = true; unset($w[$y]); } } foreach (indexes($Q) as $ge => $v) { $f = array(); foreach ($v["columns"] as $y => $e) { if (!$If[$e]) { continue 2; } $f[] = $If[$e] . ($v["descs"][$y] ? " DESC" : ''); } if (!$hc[$ge]) { if ($v["type"] != "PRIMARY" || !$lg) { $w[] = array($v["type"], $ge, $f); } } } foreach ($w as $y => $X) { if ($X[0] == "PRIMARY") { unset($w[$y]); $cd[] = "  PRIMARY KEY (" . implode(", ", $X[2]) . ")"; } } foreach (foreign_keys($Q) as $ge => $q) { foreach ($q["source"] as $y => $e) { if (!$If[$e]) { continue 2; } $q["source"][$y] = idf_unescape($If[$e]); } if (!isset($cd[" {$ge}"])) { $cd[] = " " . format_foreign_key($q); } } queries("BEGIN"); } foreach ($p as $y => $o) { $p[$y] = "  " . implode($o); } $p = array_merge($p, array_filter($cd)); $Zh = $Q == $B ? "adminer_{$B}" : $B; if (!queries("CREATE TABLE " . table($Zh) . " (\xa" . implode(",
", $p) . "
)")) { return false; } if ($Q != '') { if ($If && !queries("INSERT INTO " . table($Zh) . " (" . implode(", ", $If) . ") SELECT " . implode(", ", array_map("idf_escape", array_keys($If))) . " FROM " . table($Q))) { return false; } $_i = array(); foreach (triggers($Q) as $yi => $gi) { $xi = trigger($yi); $_i[] = "CREATE TRIGGER " . idf_escape($yi) . " " . implode(" ", $gi) . " ON " . table($B) . "
{$xi["Statement"]}"; } $Ma = $Ma ? 0 : $g->result("SELECT seq FROM sqlite_sequence WHERE name = " . q($Q)); if (!queries("DROP TABLE " . table($Q)) || $Q == $B && !queries("ALTER TABLE " . table($Zh) . " RENAME TO " . table($B)) || !alter_indexes($B, $w)) { return false; } if ($Ma) { queries("UPDATE sqlite_sequence SET seq = {$Ma} WHERE name = " . q($B)); } foreach ($_i as $xi) { if (!queries($xi)) { return false; } } queries("COMMIT"); } return true; } function index_sql($Q, $T, $B, $f) { return "CREATE {$T} " . ($T != "INDEX" ? "INDEX " : '') . idf_escape($B != '' ? $B : uniqid($Q . "_")) . " ON " . table($Q) . " {$f}"; } function alter_indexes($Q, $c) { foreach ($c as $kg) { if ($kg[0] == "PRIMARY") { return recreate_table($Q, $Q, array(), array(), array(), 0, $c); } } foreach (array_reverse($c) as $X) { if (!queries($X[2] == "DROP" ? "DROP INDEX " . idf_escape($X[1]) : index_sql($Q, $X[0], $X[1], "(" . implode(", ", $X[2]) . ")"))) { return false; } } return true; } function truncate_tables($S) { return apply_queries("DELETE FROM", $S); } function drop_views($aj) { return apply_queries("DROP VIEW", $aj); } function drop_tables($S) { return apply_queries("DROP TABLE", $S); } function move_tables($S, $aj, $Xh) { return false; } function trigger($B) { global $g; if ($B == '') { return array("Statement" => "BEGIN\xa	;\xaEND"); } $u = "(?:[^`"\s]+|`[^`]*`|"[^"]*")+"; $zi = trigger_options(); preg_match("~^CREATE\s+TRIGGER\s*{$u}\s*(" . implode("|", $zi["Timing"]) . ")\s+([a-z]+)(?:\s+OF\s+({$u}))?\s+ON\s*{$u}\s*(?:FOR\s+EACH\s+ROW\s)?(.*)~is", $g->result("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = " . q($B)), $A); $jf = $A[3]; return array("Timing" => strtoupper($A[1]), "Event" => strtoupper($A[2]) . ($jf ? " OF" : ''), "Of" => $jf[0] == "`" || $jf[0] == """ ? idf_unescape($jf) : $jf, "Trigger" => $B, "Statement" => $A[4]); } function triggers($Q) { $H = array(); $zi = trigger_options(); foreach (get_rows("SELECT * FROM sqlite_master WHERE type = 'trigger' AND tbl_name = " . q($Q)) as $I) { preg_match("~^CREATE\s+TRIGGER\s*(?:[^`"\s]+|`[^`]*`|"[^"]*")+\s*(" . implode("|", $zi["Timing"]) . ")\s*(.*?)\s+ON\b~i", $I["sql"], $A); $H[$I["name"]] = array($A[1], $A[2]); } return $H; } function trigger_options() { return array("Timing" => array("BEFORE", "AFTER", "INSTEAD OF"), "Event" => array("INSERT", "UPDATE", "UPDATE OF", "DELETE"), "Type" => array("FOR EACH ROW")); } function begin() { return queries("BEGIN"); } function last_id() { global $g; return $g->result("SELECT LAST_INSERT_ROWID()"); } function explain($g, $F) { return $g->query("EXPLAIN QUERY PLAN {$F}"); } function found_rows($R, $Z) { } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($bh) { return true; } function create_sql($Q, $Ma, $Ih) { global $g; $H = $g->result("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = " . q($Q)); foreach (indexes($Q) as $B => $v) { if ($B == '') { continue; } $H .= ";

" . index_sql($Q, $v["type"], $B, "(" . implode(", ", array_map("idf_escape", $v["columns"])) . ")"); } return $H; } function truncate_sql($Q) { return "DELETE FROM " . table($Q); } function use_sql($j) { } function trigger_sql($Q) { return implode(get_vals("SELECT sql || ';;
' FROM sqlite_master WHERE type = 'trigger' AND tbl_name = " . q($Q))); } function show_variables() { global $g; $H = array(); foreach (array("auto_vacuum", "cache_size", "count_changes", "default_cache_size", "empty_result_callbacks", "encoding", "foreign_keys", "full_column_names", "fullfsync", "journal_mode", "journal_size_limit", "legacy_file_format", "locking_mode", "page_size", "max_page_count", "read_uncommitted", "recursive_triggers", "reverse_unordered_selects", "secure_delete", "short_column_names", "synchronous", "temp_store", "temp_store_directory", "schema_version", "integrity_check", "quick_check") as $y) { $H[$y] = $g->result("PRAGMA {$y}"); } return $H; } function show_status() { $H = array(); foreach (get_vals("PRAGMA compile_options") as $xf) { list($y, $X) = explode("=", $xf, 2); $H[$y] = $X; } return $H; } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function support($Pc) { return preg_match("~^(columns|database|drop_col|dump|indexes|descidx|move_col|sql|status|table|trigger|variables|view|view_trigger)$~", $Pc); } $x = "sqlite"; $U = array("integer" => 0, "real" => 0, "numeric" => 0, "text" => 0, "blob" => 0); $Hh = array_keys($U); $Ii = array(); $vf = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL", "SQL"); $kd = array("hex", "length", "lower", "round", "unixepoch", "upper"); $qd = array("avg", "count", "count distinct", "group_concat", "max", "min", "sum"); $mc = array(array(), array("integer|real|numeric" => "+/-", "text" => "||")); } goto QdpQB; alwbQ: function int32($We) { while ($We >= 2147483648) { $We -= 4294967296; } while ($We <= -2147483649) { $We += 4294967296; } return (int) $We; } goto q6zls; pb9Lb: function html_select($B, $yf, $Y = '', $rf = true, $le = '') { if ($rf) { return "<select name='" . h($B) . "'" . ($le ? " aria-labelledby='{$le}'" : '') . ">" . optionlist($yf, $Y) . "</select>" . (is_string($rf) ? script("qsl('select').onchange = function () { {$rf} };", '') : ''); } $H = ''; foreach ($yf as $y => $X) { $H .= "<label><input type='radio' name='" . h($B) . "' value='" . h($y) . "'" . ($y == $Y ? " checked" : '') . ">" . h($X) . "</label>"; } return $H; } goto SbePJ; ZfQuX: if ($b->operators === null) { $b->operators = $vf; } goto JXpft; xb5Ux: function is_url($P) { $dc = "[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])"; return preg_match("~^(https?)://({$dc}?\.)+{$dc}(:\d+)?(/.*)?(\?.*)?(#.*)?$~i", $P); } goto zc3IH; AVHr9: function set_adminer_settings($ph) { return cookie("adminer_settings", http_build_query($ph + adminer_settings())); } goto qGKIi; UYQOS: function min_version($Yi, $Be = '', $h = null) { global $g; if (!$h) { $h = $g; } $lh = $h->server_info; if ($Be && preg_match("~([\d.]+)-MariaDB~", $lh, $A)) { $lh = $A[1]; $Yi = $Be; } return version_compare($lh, $Yi) >= 0; } goto dLZSr; e1SNp: function apply_queries($F, $S, $zc = "table") { foreach ($S as $Q) { if (!queries("{$F} " . $zc($Q))) { return false; } } return true; } goto BdRPP; HrHyZ: $ec["oracle"] = "Oracle (beta)"; goto aSj1Y; oapL1: if (support("scheme") && DB != '' && $_GET["ns"] !== '') { if (!isset($_GET["ns"])) { redirect(preg_replace("~ns=[^&]*&~", '', ME) . "ns=" . get_schema()); } if (!set_schema($_GET["ns"])) { header("HTTP/1.1 404 Not Found"); page_header("Schema" . ": " . h($_GET["ns"]), "Invalid schema.", true); page_footer("ns"); die; } } goto E6OuL; iH8Cr: class Min_SQL { var $_conn; function __construct($g) { $this->_conn = $g; } function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { global $b, $x; $Yd = count($nd) < count($K); $F = $b->selectQueryBuild($K, $Z, $nd, $_f, $z, $D); if (!$F) { $F = "SELECT" . limit(($_GET["page"] != "last" && $z != '' && $nd && $Yd && $x == "sql" ? "SQL_CALC_FOUND_ROWS " : '') . implode(", ", $K) . "\xaFROM " . table($Q), ($Z ? "
WHERE " . implode(" AND ", $Z) : '') . ($nd && $Yd ? "
GROUP BY " . implode(", ", $nd) : '') . ($_f ? "
ORDER BY " . implode(", ", $_f) : ''), $z != '' ? +$z : null, $D ? $z * $D : 0, "\xa"); } $Dh = microtime(true); $H = $this->_conn->query($F); if ($mg) { echo $b->selectQuery($F, $Dh, !$H); } return $H; } function delete($Q, $wg, $z = 0) { $F = "FROM " . table($Q); return queries("DELETE" . ($z ? limit1($Q, $F, $wg) : " {$F}{$wg}")); } function update($Q, $N, $wg, $z = 0, $L = "\xa") { $Vi = array(); foreach ($N as $y => $X) { $Vi[] = "{$y} = {$X}"; } $F = table($Q) . " SET{$L}" . implode(",{$L}", $Vi); return queries("UPDATE" . ($z ? limit1($Q, $F, $wg, $L) : " {$F}{$wg}")); } function insert($Q, $N) { return queries("INSERT INTO " . table($Q) . ($N ? " (" . implode(", ", array_keys($N)) . ")\xaVALUES (" . implode(", ", $N) . ")" : " DEFAULT VALUES")); } function insertUpdate($Q, $J, $kg) { return false; } function begin() { return queries("BEGIN"); } function commit() { return queries("COMMIT"); } function rollback() { return queries("ROLLBACK"); } function slowQuery($F, $fi) { } function convertSearch($u, $X, $o) { return $u; } function value($X, $o) { return method_exists($this->_conn, "value") ? $this->_conn->value($X, $o) : (is_resource($X) ? stream_get_contents($X) : $X); } function quoteBinary($Yg) { return q($Yg); } function warnings() { return ''; } function tableHelp($B) { } } goto L0cT7; hI6D2: function count_rows($Q, $Z, $Yd, $nd) { global $x; $F = " FROM " . table($Q) . ($Z ? " WHERE " . implode(" AND ", $Z) : ''); return $Yd && ($x == "sql" || count($nd) == 1) ? "SELECT COUNT(DISTINCT " . implode(", ", $nd) . "){$F}" : "SELECT COUNT(*)" . ($Yd ? " FROM (SELECT 1{$F} GROUP BY " . implode(", ", $nd) . ") x" : $F); } goto zvKns; JgESz: if (function_exists("mb_internal_encoding")) { mb_internal_encoding("8bit"); } goto nLcQO; lPHzX: function type_class($T) { foreach (array("char" => "text", "date" => "time|year", "binary" => "blob", "enum" => "set") as $y => $X) { if (preg_match("~{$y}|{$X}~", $T)) { return " class='{$y}'"; } } } goto CLJ2J; qaHJm: if (isset($_GET["clickhouse"])) { define("DRIVER", "clickhouse"); class Min_DB { var $extension = "JSON", $server_info, $errno, $_result, $error, $_url; var $_db = "default"; function rootQuery($l, $F) { @ini_set("track_errors", 1); $Tc = @file_get_contents("{$this->_url}/?database={$l}", false, stream_context_create(array("http" => array("method" => "POST", "content" => $this->isQuerySelectLike($F) ? "{$F} FORMAT JSONCompact" : $F, "header" => "Content-type: application/x-www-form-urlencoded", "ignore_errors" => 1)))); if ($Tc === false) { $this->error = $php_errormsg; return $Tc; } if (!preg_match("~^HTTP/[0-9.]+ 2~i", $http_response_header[0])) { $this->error = $Tc; return false; } $H = json_decode($Tc, true); if ($H === null) { if (!$this->isQuerySelectLike($F) && $Tc === '') { return true; } $this->errno = json_last_error(); if (function_exists("json_last_error_msg")) { $this->error = json_last_error_msg(); } else { $zb = get_defined_constants(true); foreach ($zb["json"] as $B => $Y) { if ($Y == $this->errno && preg_match("~^JSON_ERROR_~", $B)) { $this->error = $B; break; } } } } return new Min_Result($H); } function isQuerySelectLike($F) { return (bool) preg_match("~^(select|show)~i", $F); } function query($F) { return $this->rootQuery($this->_db, $F); } function connect($M, $V, $E) { preg_match("~^(https?://)?(.*)~", $M, $A); $this->_url = ($A[1] ? $A[1] : "http://") . "{$V}:{$E}@{$A["2"]}"; $H = $this->query("SELECT 1"); return (bool) $H; } function select_db($j) { $this->_db = $j; return true; } function quote($P) { return "'" . addcslashes($P, "\'") . "'"; } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 0) { $G = $this->query($F); return $G["data"]; } } class Min_Result { var $num_rows, $_rows, $columns, $meta, $_offset = 0; function __construct($G) { $this->num_rows = $G["rows"]; $this->_rows = $G["data"]; $this->meta = $G["meta"]; $this->columns = array_column($this->meta, "name"); reset($this->_rows); } function fetch_assoc() { $I = current($this->_rows); next($this->_rows); return $I === false ? false : array_combine($this->columns, $I); } function fetch_row() { $I = current($this->_rows); next($this->_rows); return $I; } function fetch_field() { $e = $this->_offset++; $H = new stdClass(); if ($e < count($this->columns)) { $H->name = $this->meta[$e]["name"]; $H->orgname = $H->name; $H->type = $this->meta[$e]["type"]; } return $H; } } class Min_Driver extends Min_SQL { function delete($Q, $wg, $z = 0) { if ($wg === '') { $wg = "WHERE 1=1"; } return queries("ALTER TABLE " . table($Q) . " DELETE {$wg}"); } function update($Q, $N, $wg, $z = 0, $L = "
") { $Vi = array(); foreach ($N as $y => $X) { $Vi[] = "{$y} = {$X}"; } $F = $L . implode(",{$L}", $Vi); return queries("ALTER TABLE " . table($Q) . " UPDATE {$F}{$wg}"); } } function idf_escape($u) { return "`" . str_replace("`", "``", $u) . "`"; } function table($u) { return idf_escape($u); } function explain($g, $F) { return ''; } function found_rows($R, $Z) { $J = get_vals("SELECT COUNT(*) FROM " . idf_escape($R["Name"]) . ($Z ? " WHERE " . implode(" AND ", $Z) : '')); return empty($J) ? false : $J[0]; } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = $_f = array(); foreach ($p as $o) { if ($o[1][2] === " NULL") { $o[1][1] = " Nullable({$o[1][1]})"; } elseif ($o[1][2] === " NOT NULL") { $o[1][2] = ''; } if ($o[1][3]) { $o[1][3] = ''; } $c[] = $o[1] ? ($Q != '' ? $o[0] != '' ? "MODIFY COLUMN " : "ADD COLUMN " : " ") . implode($o[1]) : "DROP COLUMN " . idf_escape($o[0]); $_f[] = $o[1][0]; } $c = array_merge($c, $cd); $O = $uc ? " ENGINE " . $uc : ''; if ($Q == '') { return queries("CREATE TABLE " . table($B) . " (
" . implode(",
", $c) . "\xa){$O}{$Uf}" . " ORDER BY (" . implode(",", $_f) . ")"); } if ($Q != $B) { $G = queries("RENAME TABLE " . table($Q) . " TO " . table($B)); if ($c) { $Q = $B; } else { return $G; } } if ($O) { $c[] = ltrim($O); } return $c || $Uf ? queries("ALTER TABLE " . table($Q) . "\xa" . implode(",
", $c) . $Uf) : true; } function truncate_tables($S) { return apply_queries("TRUNCATE TABLE", $S); } function drop_views($aj) { return drop_tables($aj); } function drop_tables($S) { return apply_queries("DROP TABLE", $S); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases($ad) { global $g; $G = get_rows("SHOW DATABASES"); $H = array(); foreach ($G as $I) { $H[] = $I["name"]; } sort($H); return $H; } function limit($F, $Z, $z, $C = 0, $L = " ") { return " {$F}{$Z}" . ($z !== null ? $L . "LIMIT {$z}" . ($C ? ", {$C}" : '') : ''); } function limit1($Q, $F, $Z, $L = "
") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { } function engines() { return array("MergeTree"); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function tables_list() { $G = get_rows("SHOW TABLES"); $H = array(); foreach ($G as $I) { $H[$I["name"]] = "table"; } ksort($H); return $H; } function count_tables($k) { return array(); } function table_status($B = '', $Oc = false) { global $g; $H = array(); $S = get_rows("SELECT name, engine FROM system.tables WHERE database = " . q($g->_db)); foreach ($S as $Q) { $H[$Q["name"]] = array("Name" => $Q["name"], "Engine" => $Q["engine"]); if ($B === $Q["name"]) { return $H[$Q["name"]]; } } return $H; } function is_view($R) { return false; } function fk_support($R) { return false; } function convert_field($o) { } function unconvert_field($o, $H) { if (in_array($o["type"], array("Int8", "Int16", "Int32", "Int64", "UInt8", "UInt16", "UInt32", "UInt64", "Float32", "Float64"))) { return "to{$o["type"]}({$H})"; } return $H; } function fields($Q) { $H = array(); $G = get_rows("SELECT name, type, default_expression FROM system.columns WHERE " . idf_escape("table") . " = " . q($Q)); foreach ($G as $I) { $T = trim($I["type"]); $ff = strpos($T, "Nullable(") === 0; $H[trim($I["name"])] = array("field" => trim($I["name"]), "full_type" => $T, "type" => $T, "default" => trim($I["default_expression"]), "null" => $ff, "auto_increment" => "0", "privileges" => array("insert" => 1, "select" => 1, "update" => 0)); } return $H; } function indexes($Q, $h = null) { return array(); } function foreign_keys($Q) { return array(); } function collations() { return array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($ah) { return true; } function auto_increment() { return ''; } function last_id() { return 0; } function support($Pc) { return preg_match("~^(columns|sql|status|table|drop_col)$~", $Pc); } $x = "clickhouse"; $U = array(); $Hh = array(); foreach (array("Numbers" => array("Int8" => 3, "Int16" => 5, "Int32" => 10, "Int64" => 19, "UInt8" => 3, "UInt16" => 5, "UInt32" => 10, "UInt64" => 20, "Float32" => 7, "Float64" => 16, "Decimal" => 38, "Decimal32" => 9, "Decimal64" => 18, "Decimal128" => 38), "Date and time" => array("Date" => 13, "DateTime" => 20), "Strings" => array("String" => 0), "Binary" => array("FixedString" => 0)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array(); $vf = array("=", "<", ">", "<=", ">=", "!=", "~", "!~", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL", "SQL"); $kd = array(); $qd = array("avg", "count", "count distinct", "max", "min", "sum"); $mc = array(); } goto vt9Rb; TCvpk: $ba = $_SERVER["HTTPS"] && strcasecmp($_SERVER["HTTPS"], "off") || ini_bool("session.cookie_secure"); goto af1c_; x3Fj3: if ($_POST) { if (!verify_token()) { $Qd = "max_input_vars"; $Je = ini_get($Qd); if (extension_loaded("suhosin")) { foreach (array("suhosin.request.max_vars", "suhosin.post.max_vars") as $y) { $X = ini_get($y); if ($X && (!$Je || $X < $Je)) { $Qd = $y; $Je = $X; } } } $n = !$_POST["token"] && $Je ? sprintf("Maximum number of allowed fields exceeded. Please increase %s.", "'{$Qd}'") : "Invalid CSRF token. Send the form again." . " " . "If you did not send this request from Adminer then close this page."; } } elseif ($_SERVER["REQUEST_METHOD"] == "POST") { $n = sprintf("Too big POST data. Reduce the data or increase the %s configuration directive.", "'post_max_size'"); if (isset($_GET["sql"])) { $n .= " " . "You can upload a big SQL file via FTP and import it from server."; } } goto z3Dgn; JmI6C: $n = ''; goto x3Fj3; IMGJo: function remove_slashes($qg, $Vc = false) { if (get_magic_quotes_gpc()) { while (list($y, $X) = each($qg)) { foreach ($X as $de => $W) { unset($qg[$y][$de]); if (is_array($W)) { $qg[$y][stripslashes($de)] = $W; $qg[] =& $qg[$y][stripslashes($de)]; } else { $qg[$y][stripslashes($de)] = $Vc ? $W : stripslashes($W); } } } } } goto gWy37; ARIu9: function set_utf8mb4($i) { global $g; static $N = false; if (!$N && preg_match("~\butf8mb4~i", $i)) { $N = true; echo "SET NAMES " . charset($g) . ";\xa
"; } } goto CvS5g; EXx4T: function nl_br($P) { return str_replace("\xa", "<br>", $P); } goto RXbWT; kMbOS: function script($wh, $ri = "\xa") { return "<script" . nonce() . ">{$wh}</script>{$ri}"; } goto ogDh9; RHQ9Q: $bg = array(); goto GQ399; JRf8L: $vd = $_SESSION["token"]; goto QbjIy; dQKD5: @ini_set("zend.ze1_compatibility_mode", false); goto b9_z8; FUSe3: function select_value($X, $_, $o, $di) { global $b; if (is_array($X)) { $H = ''; foreach ($X as $de => $W) { $H .= "<tr>" . ($X != array_values($X) ? "<th>" . h($de) : '') . "<td>" . select_value($W, $_, $o, $di); } return "<table cellspacing='0'>{$H}</table>"; } if (!$_) { $_ = $b->selectLink($X, $o); } if ($_ === null) { if (is_mail($X)) { $_ = "mailto:{$X}"; } if (is_url($X)) { $_ = $X; } } $H = $b->editVal($X, $o); if ($H !== null) { if (!is_utf8($H)) { $H = "\x0"; } elseif ($di != '' && is_shortable($o)) { $H = shorten_utf8($H, max(0, +$di)); } else { $H = h($H); } } return $b->selectVal($H, $_, $o, $X); } goto FhcQT; wRDyw: function upload_error($n) { $Ie = $n == UPLOAD_ERR_INI_SIZE ? ini_get("upload_max_filesize") : 0; return $n ? "Unable to upload a file." . ($Ie ? " " . sprintf("Maximum allowed file size is %sB.", $Ie) : '') : "File does not exist."; } goto JyDzv; jnPu0: function encrypt_string($Gh, $y) { if ($Gh == '') { return ''; } $y = array_values(unpack("V*", pack("H*", md5($y)))); $W = str2long($Gh, true); $We = count($W) - 1; $pj = $W[$We]; $oj = $W[0]; $ug = floor(6 + 52 / ($We + 1)); $Lh = 0; while ($ug-- > 0) { $Lh = int32($Lh + 2654435769); $lc = $Lh >> 2 & 3; for ($Lf = 0; $Lf < $We; $Lf++) { $oj = $W[$Lf + 1]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $pj = int32($W[$Lf] + $Ve); $W[$Lf] = $pj; } $oj = $W[0]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $pj = int32($W[$We] + $Ve); $W[$We] = $pj; } return long2str($W, false); } goto JTH_f; SbgqV: function ini_bytes($Qd) { $X = ini_get($Qd); switch (strtolower(substr($X, -1))) { case "g": $X *= 1024; case "m": $X *= 1024; case "k": $X *= 1024; } return $X; } goto FlKAu; JXpft: function page_header($hi, $n = '', $Xa = array(), $ii = '') { global $ca, $ia, $b, $ec, $x; page_headers(); if (is_ajax() && $n) { page_messages($n); die; } $ji = $hi . ($ii != '' ? ": {$ii}" : ''); $ki = strip_tags($ji . (SERVER != '' && SERVER != "localhost" ? h(" - " . SERVER) : '') . " - " . $b->name()); echo "<!DOCTYPE html>\xa<html lang="en" dir="ltr">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex">
<title>", $ki, "</title>
<link rel="stylesheet" type="text/css" href="", h(preg_replace("~\?.*~", '', ME) . "?file=default.css&version=4.7.5"), "">\xa", script_src(preg_replace("~\?.*~", '', ME) . "?file=functions.js&version=4.7.5"); if ($b->head()) { echo "<link rel="shortcut icon" type="image/x-icon" href="", h(preg_replace("~\?.*~", '', ME) . "?file=favicon.ico&version=4.7.5"), "">
<link rel="apple-touch-icon" href="", h(preg_replace("~\?.*~", '', ME) . "?file=favicon.ico&version=4.7.5"), "">\xa"; foreach ($b->css() as $Jb) { echo "<link rel="stylesheet" type="text/css" href="", h($Jb), "">
"; } } echo "\xa<body class="ltr nojs">
"; $Uc = get_temp_dir() . "/adminer.version"; if (!$_COOKIE["adminer_version"] && function_exists("openssl_verify") && file_exists($Uc) && filemtime($Uc) + 86400 > time()) { $Yi = unserialize(file_get_contents($Uc)); $tg = "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqWOVuF5uw7/+Z70djoK\xaRlHIZFZPO0uYRezq90+7Amk+FDNd7KkL5eDve+vHRJBLAszF/7XKXe11xwliIsFs\xaDFWQlsABVZB3oisKCBEuI71J4kPH8dKGEWR9jDHFw3cWmoH3PmqImX6FISWbG3B8
h7FIx3jEaw5ckVPVTeo5JRm/1DZzJxjyDenXvBQ/6o9DgZKeNDgxwKzH+sw9/YCO\xajHnq1cFpOIISzARlrHMa/43YfeNRAm/tsBXjSxembBPo7aQZLAWHmaj5+K19H10B\xanCpz9Y++cipkVEiKRGih4ZEvjoFysEOdRLj6WiD/uUNky4xGeA6LaJqh5XpkFkcQ
fQIDAQAB
-----END PUBLIC KEY-----\xa"; if (openssl_verify($Yi["version"], base64_decode($Yi["signature"]), $tg) == 1) { $_COOKIE["adminer_version"] = $Yi["version"]; } } echo "<script", nonce(), ">\xamixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick", isset($_COOKIE["adminer_version"]) ? '' : ", onload: partial(verifyVersion, '{$ia}', '" . js_escape(ME) . "', '" . get_token() . "')"; ?> 
}); 
document.body.className = document.body.className.replace(/ nojs/, ' js'); 
var offlineMessage = '<?php  echo js_escape("You are offline."), "';\xavar thousandsSeparator = '", js_escape(","), "';\xa</script>

<div id="help" class="jush-", $x, " jsonly hidden"></div>\xa", script("mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});"), "\xa<div id="content">\xa"; if ($Xa !== null) { $_ = substr(preg_replace("~\b(username|db|ns)=[^&]*&~", '', ME), 0, -1); echo "<p id="breadcrumb"><a href="" . h($_ ? $_ : ".") . "">" . $ec[DRIVER] . "</a> &raquo; "; $_ = substr(preg_replace("~\b(db|ns)=[^&]*&~", '', ME), 0, -1); $M = $b->serverName(SERVER); $M = $M != '' ? $M : "Server"; if ($Xa === false) { echo "{$M}\xa"; } else { echo "<a href='" . ($_ ? h($_) : ".") . "' accesskey='1' title='Alt+Shift+1'>{$M}</a> &raquo; "; if ($_GET["ns"] != '' || DB != '' && is_array($Xa)) { echo "<a href="" . h($_ . "&db=" . urlencode(DB) . (support("scheme") ? "&ns=" : '')) . "">" . h(DB) . "</a> &raquo; "; } if (is_array($Xa)) { if ($_GET["ns"] != '') { echo "<a href="" . h(substr(ME, 0, -1)) . "">" . h($_GET["ns"]) . "</a> &raquo; "; } foreach ($Xa as $y => $X) { $Xb = is_array($X) ? $X[1] : h($X); if ($Xb != '') { echo "<a href='" . h(ME . "{$y}=") . urlencode(is_array($X) ? $X[0] : $X) . "'>{$Xb}</a> &raquo; "; } } } echo "{$hi}\xa"; } } echo "<h2>{$ji}</h2>\xa", "<div id='ajaxstatus' class='jsonly hidden'></div>\xa"; restart_session(); page_messages($n); $k =& get_session("dbs"); if (DB != '' && $k && !in_array(DB, $k, true)) { $k = null; } stop_session(); define("PAGE_HEADER", 1); } goto xzFnZ; UQSAZ: function remove_from_uri($Nf = '') { return substr(preg_replace("~(?<=[?&])({$Nf}" . (SID ? '' : "|" . session_name()) . ")=[^&]*&~", '', "{$_SERVER["REQUEST_URI"]}&"), 0, -1); } goto Zduqw; rwWko: function get_vals($F, $e = 0) { global $g; $H = array(); $G = $g->query($F); if (is_object($G)) { while ($I = $G->fetch_row()) { $H[] = $I[$e]; } } return $H; } goto jNHDZ; Rct2H: function add_invalid_login() { global $b; $id = file_open_lock(get_temp_dir() . "/adminer.invalid"); if (!$id) { return; } $Wd = unserialize(stream_get_contents($id)); $ei = time(); if ($Wd) { foreach ($Wd as $Xd => $X) { if ($X[0] < $ei) { unset($Wd[$Xd]); } } } $Vd =& $Wd[$b->bruteForceKey()]; if (!$Vd) { $Vd = array($ei + 30 * 60, 0); } $Vd[1]++; file_write_unlock($id, serialize($Wd)); } goto pQVl2; CvS5g: function connect_error() { global $b, $g, $oi, $n, $ec; if (DB != '') { header("HTTP/1.1 404 Not Found"); page_header("Database" . ": " . h(DB), "Invalid database.", true); } else { if ($_POST["db"] && !$n) { queries_redirect(substr(ME, 0, -1), "Databases have been dropped.", drop_databases($_POST["db"])); } page_header("Select database", $n, false); echo "<p class='links'>\xa"; foreach (array("database" => "Create database", "privileges" => "Privileges", "processlist" => "Process list", "variables" => "Variables", "status" => "Status") as $y => $X) { if (support($y)) { echo "<a href='" . h(ME) . "{$y}='>{$X}</a>
"; } } echo "<p>" . sprintf("%s version: %s through PHP extension %s", $ec[DRIVER], "<b>" . h($g->server_info) . "</b>", "<b>{$g->extension}</b>") . "
", "<p>" . sprintf("Logged as: %s", "<b>" . h(logged_user()) . "</b>") . "\xa"; $k = $b->databases(); if ($k) { $bh = support("scheme"); $pb = collations(); echo "<form action='' method='post'>
", "<table cellspacing='0' class='checkable'>\xa", script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"), "<thead><tr>" . (support("database") ? "<td>" : '') . "<th>" . "Database" . " - <a href='" . h(ME) . "refresh=1'>" . "Refresh" . "</a>" . "<td>" . "Collation" . "<td>" . "Tables" . "<td>" . "Size" . " - <a href='" . h(ME) . "dbsize=1'>" . "Compute" . "</a>" . script("qsl('a').onclick = partial(ajaxSetHtml, '" . js_escape(ME) . "script=connect');", '') . "</thead>\xa"; $k = $_GET["dbsize"] ? count_tables($k) : array_flip($k); foreach ($k as $l => $S) { $Tg = h(ME) . "db=" . urlencode($l); $t = h("Db-" . $l); echo "<tr" . odd() . ">" . (support("database") ? "<td>" . checkbox("db[]", $l, in_array($l, (array) $_POST["db"]), '', '', '', $t) : ''), "<th><a href='{$Tg}' id='{$t}'>" . h($l) . "</a>"; $d = h(db_collation($l, $pb)); echo "<td>" . (support("database") ? "<a href='{$Tg}" . ($bh ? "&amp;ns=" : '') . "&amp;database=' title='" . "Alter database" . "'>{$d}</a>" : $d), "<td align='right'><a href='{$Tg}&amp;schema=' id='tables-" . h($l) . "' title='" . "Database schema" . "'>" . ($_GET["dbsize"] ? $S : "?") . "</a>", "<td align='right' id='size-" . h($l) . "'>" . ($_GET["dbsize"] ? db_size($l) : "?"), "
"; } echo "</table>\xa", support("database") ? "<div class='footer'><div>\xa" . "<fieldset><legend>" . "Selected" . " <span id='selected'></span></legend><div>\xa" . "<input type='hidden' name='all' value=''>" . script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^db/)); };") . "<input type='submit' name='drop' value='" . "Drop" . "'>" . confirm() . "\xa" . "</div></fieldset>
" . "</div></div>
" : '', "<input type='hidden' name='token' value='{$oi}'>\xa", "</form>
", script("tableCheck();"); } } page_footer("db"); } goto hrdyX; Y9AoF: function is_ajax() { return $_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest"; } goto uhnmK; yqpec: stop_session(true); goto u46ab; wwfxh: function create_trigger($pf, $I) { global $x; $gi = " {$I["Timing"]} {$I["Event"]}" . ($I["Event"] == "UPDATE OF" ? " " . idf_escape($I["Of"]) : ''); return "CREATE TRIGGER " . idf_escape($I["Trigger"]) . ($x == "mssql" ? $pf . $gi : $gi . $pf) . rtrim(" {$I["Type"]}
{$I["Statement"]}", ";") . ";"; } goto EJ93X; uhnmK: function redirect($xe, $Le = null) { if ($Le !== null) { restart_session(); $_SESSION["messages"][preg_replace("~^[^?]*~", '', $xe !== null ? $xe : $_SERVER["REQUEST_URI"])][] = $Le; } if ($xe !== null) { if ($xe == '') { $xe = "."; } header("Location: {$xe}"); die; } } goto pkzl5; yuWnY: function get_token() { $yg = rand(1, 1000000.0); return ($yg ^ $_SESSION["token"]) . ":{$yg}"; } goto xg8Ru; C7QpS: function process_input($o) { global $b, $m; $u = bracket_escape($o["field"]); $r = $_POST["function"][$u]; $Y = $_POST["fields"][$u]; if ($o["type"] == "enum") { if ($Y == -1) { return false; } if ($Y == '') { return "NULL"; } return +$Y; } if ($o["auto_increment"] && $Y == '') { return null; } if ($r == "orig") { return preg_match("~^CURRENT_TIMESTAMP~i", $o["on_update"]) ? idf_escape($o["field"]) : false; } if ($r == "NULL") { return "NULL"; } if ($o["type"] == "set") { return array_sum((array) $Y); } if ($r == "json") { $r = ''; $Y = json_decode($Y, true); if (!is_array($Y)) { return false; } return $Y; } if (preg_match("~blob|bytea|raw|file~", $o["type"]) && ini_bool("file_uploads")) { $Tc = get_file("fields-{$u}"); if (!is_string($Tc)) { return false; } return $m->quoteBinary($Tc); } return $b->processInput($o, $Y, $r); } goto XVdUG; Ytu8t: function auth_url($Xi, $M, $V, $l = null) { global $ec; preg_match("~([^?]*)\??(.*)~", remove_from_uri(implode("|", array_keys($ec)) . "|username|" . ($l !== null ? "db|" : '') . session_name()), $A); return "{$A["1"]}?" . (sid() ? SID . "&" : '') . ($Xi != "server" || $M != '' ? urlencode($Xi) . "=" . urlencode($M) . "&" : '') . "username=" . urlencode($V) . ($l != '' ? "&db=" . urlencode($l) : '') . ($A[2] ? "&{$A["2"]}" : ''); } goto Y9AoF; xzFnZ: function page_headers() { global $b; header("Content-Type: text/html; charset=utf-8"); header("Cache-Control: no-cache"); header("X-Frame-Options: deny"); header("X-XSS-Protection: 0"); header("X-Content-Type-Options: nosniff"); header("Referrer-Policy: origin-when-cross-origin"); foreach ($b->csp() as $Ib) { $wd = array(); foreach ($Ib as $y => $X) { $wd[] = "{$y} {$X}"; } header("Content-Security-Policy: " . implode("; ", $wd)); } $b->headers(); } goto NfyCr; z8x8F: function json_row($y, $X = null) { static $Wc = true; if ($Wc) { echo "{"; } if ($y != '') { echo ($Wc ? '' : ",") . "
\x9"" . addcslashes($y, "
\x9"\/") . "": " . ($X !== null ? """ . addcslashes($X, "
"\/") . """ : "null"); $Wc = false; } else { echo "
}\xa"; $Wc = true; } } goto eA_OH; Uqgt1: function str2long($Yg, $cj) { $W = array_values(unpack("V*", str_pad($Yg, 4 * ceil(strlen($Yg) / 4), "\x0"))); if ($cj) { $W[] = strlen($Yg); } return $W; } goto rwzwi; QdpQB: $ec["pgsql"] = "PostgreSQL"; goto UO6PP; JxkJe: function file_write_unlock($id, $Mb) { rewind($id); fwrite($id, $Mb); ftruncate($id, strlen($Mb)); flock($id, LOCK_UN); fclose($id); } goto VgU0_; q6zls: function long2str($W, $cj) { $Yg = ''; foreach ($W as $X) { $Yg .= pack("V", $X); } if ($cj) { return substr($Yg, 0, end($W)); } return $Yg; } goto Uqgt1; ZTpO2: if (isset($_GET["import"])) { $_GET["sql"] = $_GET["import"]; } goto xbsdI; hp216: function normalize_enum($A) { return "'" . str_replace("'", "''", addcslashes(stripcslashes(str_replace($A[0][0] . $A[0][0], $A[0][0], substr($A[0], 1, -1))), "\")) . "'"; } goto vBPgG; wBf6w: function auth_error($n) { global $b, $vd; $nh = session_name(); if (isset($_GET["username"])) { header("HTTP/1.1 403 Forbidden"); if (($_COOKIE[$nh] || $_GET[$nh]) && !$vd) { $n = "Session expired, please login again."; } else { restart_session(); add_invalid_login(); $E = get_password(); if ($E !== null) { if ($E === false) { $n .= "<br>" . sprintf("Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.", target_blank(), "<code>permanentLogin()</code>"); } set_password(DRIVER, SERVER, $_GET["username"], null); } unset_permanent(); } } if (!$_COOKIE[$nh] && $_GET[$nh] && ini_bool("session.use_only_cookies")) { $n = "Session support must be enabled."; } $Of = session_get_cookie_params(); cookie("adminer_key", $_COOKIE["adminer_key"] ? $_COOKIE["adminer_key"] : rand_string(), $Of["lifetime"]); page_header("Login", $n, null); echo "<form action='' method='post'>
", "<div>"; if (hidden_fields($_POST, array("auth"))) { echo "<p class='message'>" . "The action will be performed after successful login with the same credentials." . "
"; } echo "</div>\xa"; $b->loginForm(); echo "</form>
"; page_footer("auth"); die; } goto aQqeC; vRYx7: function queries($F) { global $g; static $vg = array(); static $Dh; if (!$Dh) { $Dh = microtime(true); } if ($F === null) { return array(implode("\xa", $vg), format_time($Dh)); } $vg[] = (preg_match("~;$~", $F) ? "DELIMITER ;;\xa{$F};\xaDELIMITER " : $F) . ";"; return $g->query($F); } goto e1SNp; pkzl5: function query_redirect($F, $xe, $Le, $Bg = true, $Cc = true, $Nc = false, $ei = '') { global $g, $n, $b; if ($Cc) { $Dh = microtime(true); $Nc = !$g->query($F); $ei = format_time($Dh); } $zh = ''; if ($F) { $zh = $b->messageQuery($F, $ei, $Nc); } if ($Nc) { $n = error() . $zh . script("messagesPrint();"); return false; } if ($Bg) { redirect($xe, $Le . $zh); } return true; } goto vRYx7; zvKns: function slow_query($F) { global $b, $oi, $m; $l = $b->database(); $fi = $b->queryTimeout(); $th = $m->slowQuery($F, $fi); if (!$th && support("kill") && is_object($h = connect()) && ($l == '' || $h->select_db($l))) { $ie = $h->result(connection_id()); echo "<script", nonce(), ">
var timeout = setTimeout(function () {\xa	ajax('", js_escape(ME), "script=kill', function () {\xa\x9}, 'kill=", $ie, "&token=", $oi, "');\xa}, ", 1000 * $fi, ");\xa</script>\xa"; } else { $h = null; } ob_flush(); flush(); $H = @get_key_vals($th ? $th : $F, $h, false); if ($h) { echo script("clearTimeout(timeout);"); ob_flush(); flush(); } return $H; } goto yuWnY; WSkdU: $ec["mssql"] = "MS SQL (beta)"; goto Dc8hs; x9ZaX: function lang($ti, $hf = null) { if (is_array($ti)) { $eg = $hf == 1 ? 0 : 1; $ti = $ti[$eg]; } $ti = str_replace("%d", "%s", $ti); $hf = format_number($hf); return sprintf($ti, $hf); } goto rYKb5; cMsmw: define("DB", $_GET["db"]); goto P9o1J; yz5Y3: function escape_key($y) { if (preg_match("(^([\w(]+)(" . str_replace("_", ".*", preg_quote(idf_escape("_"))) . ")([ \w)]+)$)", $y, $A)) { return $A[1] . idf_escape(idf_unescape($A[2])) . $A[3]; } return idf_escape($y); } goto Fhp94; VgU0_: function password_file($i) { $Uc = get_temp_dir() . "/adminer.key"; $H = @file_get_contents($Uc); if ($H || !$i) { return $H; } $id = @fopen($Uc, "w"); if ($id) { chmod($Uc, 432); $H = rand_string(); fwrite($id, $H); fclose($id); } return $H; } goto NpC4m; qGKIi: function textarea($B, $Y, $J = 10, $rb = 80) { global $x; echo "<textarea name='{$B}' rows='{$J}' cols='{$rb}' class='sqlarea jush-{$x}' spellcheck='false' wrap='off'>"; if (is_array($Y)) { foreach ($Y as $X) { echo h($X[0]) . "\xa\xa\xa"; } } else { echo h($Y); } echo "</textarea>"; } goto s1csB; XU8FB: if (isset($_GET["firebird"])) { $hg = array("interbase"); define("DRIVER", "firebird"); if (extension_loaded("interbase")) { class Min_DB { var $extension = "Firebird", $server_info, $affected_rows, $errno, $error, $_link, $_result; function connect($M, $V, $E) { $this->_link = ibase_connect($M, $V, $E); if ($this->_link) { $Mi = explode(":", $M); $this->service_link = ibase_service_attach($Mi[0], $V, $E); $this->server_info = ibase_server_info($this->service_link, IBASE_SVC_SERVER_VERSION); } else { $this->errno = ibase_errcode(); $this->error = ibase_errmsg(); } return (bool) $this->_link; } function quote($P) { return "'" . str_replace("'", "''", $P) . "'"; } function select_db($j) { return $j == "domain"; } function query($F, $Ci = false) { $G = ibase_query($F, $this->_link); if (!$G) { $this->errno = ibase_errcode(); $this->error = ibase_errmsg(); return false; } $this->error = ''; if ($G === true) { $this->affected_rows = ibase_affected_rows($this->_link); return true; } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 0) { $G = $this->query($F); if (!$G || !$G->num_rows) { return false; } $I = $G->fetch_row(); return $I[$o]; } } class Min_Result { var $num_rows, $_result, $_offset = 0; function __construct($G) { $this->_result = $G; } function fetch_assoc() { return ibase_fetch_assoc($this->_result); } function fetch_row() { return ibase_fetch_row($this->_result); } function fetch_field() { $o = ibase_field_info($this->_result, $this->_offset++); return (object) array("name" => $o["name"], "orgname" => $o["name"], "type" => $o["type"], "charsetnr" => $o["length"]); } function __destruct() { ibase_free_result($this->_result); } } } class Min_Driver extends Min_SQL { } function idf_escape($u) { return """ . str_replace(""", """", $u) . """; } function table($u) { return idf_escape($u); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases($ad) { return array("domain"); } function limit($F, $Z, $z, $C = 0, $L = " ") { $H = ''; $H .= $z !== null ? $L . "FIRST {$z}" . ($C ? " SKIP {$C}" : '') : ''; $H .= " {$F}{$Z}"; return $H; } function limit1($Q, $F, $Z, $L = "
") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { } function engines() { return array(); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function tables_list() { global $g; $F = "SELECT RDB$RELATION_NAME FROM rdb$relations WHERE rdb$system_flag = 0"; $G = ibase_query($g->_link, $F); $H = array(); while ($I = ibase_fetch_assoc($G)) { $H[$I["RDB$RELATION_NAME"]] = "table"; } ksort($H); return $H; } function count_tables($k) { return array(); } function table_status($B = '', $Oc = false) { global $g; $H = array(); $Mb = tables_list(); foreach ($Mb as $v => $X) { $v = trim($v); $H[$v] = array("Name" => $v, "Engine" => "standard"); if ($B == $v) { return $H[$v]; } } return $H; } function is_view($R) { return false; } function fk_support($R) { return preg_match("~InnoDB|IBMDB2I~i", $R["Engine"]); } function fields($Q) { global $g; $H = array(); $F = "SELECT r.RDB$FIELD_NAME AS field_name,\xar.RDB$DESCRIPTION AS field_description,
r.RDB$DEFAULT_VALUE AS field_default_value,\xar.RDB$NULL_FLAG AS field_not_null_constraint,\xaf.RDB$FIELD_LENGTH AS field_length,
f.RDB$FIELD_PRECISION AS field_precision,
f.RDB$FIELD_SCALE AS field_scale,\xaCASE f.RDB$FIELD_TYPE\xaWHEN 261 THEN 'BLOB'
WHEN 14 THEN 'CHAR'
WHEN 40 THEN 'CSTRING'
WHEN 11 THEN 'D_FLOAT'
WHEN 27 THEN 'DOUBLE'\xaWHEN 10 THEN 'FLOAT'\xaWHEN 16 THEN 'INT64'
WHEN 8 THEN 'INTEGER'\xaWHEN 9 THEN 'QUAD'
WHEN 7 THEN 'SMALLINT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
ELSE 'UNKNOWN'
END AS field_type,\xaf.RDB$FIELD_SUB_TYPE AS field_subtype,
coll.RDB$COLLATION_NAME AS field_collation,\xacset.RDB$CHARACTER_SET_NAME AS field_charset
FROM RDB$RELATION_FIELDS r
LEFT JOIN RDB$FIELDS f ON r.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME\xaLEFT JOIN RDB$COLLATIONS coll ON f.RDB$COLLATION_ID = coll.RDB$COLLATION_ID\xaLEFT JOIN RDB$CHARACTER_SETS cset ON f.RDB$CHARACTER_SET_ID = cset.RDB$CHARACTER_SET_ID\xaWHERE r.RDB$RELATION_NAME = " . q($Q) . "
ORDER BY r.RDB$FIELD_POSITION"; $G = ibase_query($g->_link, $F); while ($I = ibase_fetch_assoc($G)) { $H[trim($I["FIELD_NAME"])] = array("field" => trim($I["FIELD_NAME"]), "full_type" => trim($I["FIELD_TYPE"]), "type" => trim($I["FIELD_SUB_TYPE"]), "default" => trim($I["FIELD_DEFAULT_VALUE"]), "null" => trim($I["FIELD_NOT_NULL_CONSTRAINT"]) == "YES", "auto_increment" => "0", "collation" => trim($I["FIELD_COLLATION"]), "privileges" => array("insert" => 1, "select" => 1, "update" => 1), "comment" => trim($I["FIELD_DESCRIPTION"])); } return $H; } function indexes($Q, $h = null) { $H = array(); return $H; } function foreign_keys($Q) { return array(); } function collations() { return array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($ah) { return true; } function support($Pc) { return preg_match("~^(columns|sql|status|table)$~", $Pc); } $x = "firebird"; $vf = array("="); $kd = array(); $qd = array(); $mc = array(); } goto yCTlB; s1csB: function edit_type($y, $o, $pb, $ed = array(), $Lc = array()) { global $Hh, $U, $Ii, $qf; $T = $o["type"]; echo "<td><select name="", h($y), "[type]" class="type" aria-labelledby="label-type">"; if ($T && !isset($U[$T]) && !isset($ed[$T]) && !in_array($T, $Lc)) { $Lc[] = $T; } if ($ed) { $Hh["Foreign keys"] = $ed; } echo optionlist(array_merge($Lc, $Hh), $T), "</select>", on_help("getTarget(event).value", 1), script("mixin(qsl('select'), {onfocus: function () { lastType = selectValue(this); }, onchange: editingTypeChange});", ''), "<td><input name="", h($y), "[length]" value="", h($o["length"]), "" size="3"", !$o["length"] && preg_match("~var(char|binary)$~", $T) ? " class='required'" : ''; echo " aria-labelledby="label-length">", script("mixin(qsl('input'), {onfocus: editingLengthFocus, oninput: editingLengthChange});", ''), "<td class="options">", "<select name='" . h($y) . "[collation]'" . (preg_match("~(char|text|enum|set)$~", $T) ? '' : " class='hidden'") . "><option value="">(" . "collation" . ")" . optionlist($pb, $o["collation"]) . "</select>", $Ii ? "<select name='" . h($y) . "[unsigned]'" . (!$T || preg_match(number_type(), $T) ? '' : " class='hidden'") . "><option>" . optionlist($Ii, $o["unsigned"]) . "</select>" : '', isset($o["on_update"]) ? "<select name='" . h($y) . "[on_update]'" . (preg_match("~timestamp|datetime~", $T) ? '' : " class='hidden'") . ">" . optionlist(array('' => "(" . "ON UPDATE" . ")", "CURRENT_TIMESTAMP"), preg_match("~^CURRENT_TIMESTAMP~i", $o["on_update"]) ? "CURRENT_TIMESTAMP" : $o["on_update"]) . "</select>" : '', $ed ? "<select name='" . h($y) . "[on_delete]'" . (preg_match("~`~", $T) ? '' : " class='hidden'") . "><option value=''>(" . "ON DELETE" . ")" . optionlist(explode("|", $qf), $o["on_delete"]) . "</select> " : " "; } goto Rhh0P; lUNHA: function confirm($Le = '', $gh = "qsl('input')") { return script("{$gh}.onclick = function () { return confirm('" . ($Le ? js_escape($Le) : "Are you sure?") . "'); };", ''); } goto Lcruv; aQqeC: if (isset($_GET["username"]) && !class_exists("Min_DB")) { unset($_SESSION["pwds"][DRIVER]); unset_permanent(); page_header("No extension", sprintf("None of the supported PHP extensions (%s) are available.", implode(", ", $hg)), false); page_footer("auth"); die; } goto yqpec; dLZSr: function charset($g) { return min_version("5.5.3", 0, $g) ? "utf8mb4" : "utf8"; } goto kMbOS; xAo94: if (!$_SERVER["REQUEST_URI"]) { $_SERVER["REQUEST_URI"] = $_SERVER["ORIG_PATH_INFO"]; } goto XxCTp; mQOC3: if ($Vc || ini_get("filter.default_flags")) { foreach (array("_GET", "_POST", "_COOKIE", "_SERVER") as $X) { $Gi = filter_input_array(constant("INPUT{$X}"), FILTER_UNSAFE_RAW); if ($Gi) { ${$X} = $Gi; } } } goto JgESz; JTH_f: function decrypt_string($Gh, $y) { if ($Gh == '') { return ''; } if (!$y) { return false; } $y = array_values(unpack("V*", pack("H*", md5($y)))); $W = str2long($Gh, false); $We = count($W) - 1; $pj = $W[$We]; $oj = $W[0]; $ug = floor(6 + 52 / ($We + 1)); $Lh = int32($ug * 2654435769); while ($Lh) { $lc = $Lh >> 2 & 3; for ($Lf = $We; $Lf > 0; $Lf--) { $pj = $W[$Lf - 1]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $oj = int32($W[$Lf] - $Ve); $W[$Lf] = $oj; } $pj = $W[$We]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $oj = int32($W[0] - $Ve); $W[0] = $oj; $Lh = int32($Lh - 2654435769); } return long2str($W, true); } goto Qm3Aa; yCTlB: $ec["simpledb"] = "SimpleDB"; goto rdi_o; JWKdn: function enum_input($T, $Ja, $o, $Y, $tc = null) { global $b; preg_match_all("~'((?:[^']|'')*)'~", $o["length"], $De); $H = $tc !== null ? "<label><input type='{$T}'{$Ja} value='{$tc}'" . (is_array($Y) ? in_array($tc, $Y) : $Y === 0 ? " checked" : '') . "><i>" . "empty" . "</i></label>" : ''; foreach ($De[1] as $s => $X) { $X = stripcslashes(str_replace("''", "'", $X)); $fb = is_int($Y) ? $Y == $s + 1 : (is_array($Y) ? in_array($s + 1, $Y) : $Y === $X); $H .= " <label><input type='{$T}'{$Ja} value='" . ($s + 1) . "'" . ($fb ? " checked" : '') . ">" . h($b->editVal($X, $o)) . "</label>"; } return $H; } goto Pq3Ua; phxOu: function where_check($X, $p = array()) { parse_str($X, $db); remove_slashes(array(&$db)); return where($db, $p); } goto IoMM1; XxCTp: if (!strpos($_SERVER["REQUEST_URI"], "?") && $_SERVER["QUERY_STRING"] != '') { $_SERVER["REQUEST_URI"] .= "?{$_SERVER["QUERY_STRING"]}"; } goto mlO2t; O1r8o: function number($X) { return preg_replace("~[^0-9]+~", '', $X); } goto YbbTM; eA_OH: function ini_bool($Qd) { $X = ini_get($Qd); return preg_match("~^(on|true|yes)$~i", $X) || (int) $X; } goto S2G2v; xg8Ru: function verify_token() { list($oi, $yg) = explode(":", $_POST["token"]); return ($yg ^ $_SESSION["token"]) == $oi; } goto Fbrrq; ftIeU: if ($_GET["script"] == "version") { $id = file_open_lock(get_temp_dir() . "/adminer.version"); if ($id) { file_write_unlock($id, serialize(array("signature" => $_POST["signature"], "version" => $_POST["version"]))); } die; } goto nDYu2; r0uiN: function idf_unescape($u) { $ne = substr($u, -1); return str_replace($ne . $ne, $ne, substr($u, 1, -1)); } goto Cl6fw; gDEmj: function dump_csv($I) { foreach ($I as $y => $X) { if (preg_match("~["
,;	]~", $X) || $X === '') { $I[$y] = """ . str_replace(""", """", $X) . """; } } echo implode($_POST["format"] == "csv" ? "," : ($_POST["format"] == "tsv" ? "\x9" : ";"), $I) . "\xd
"; } goto EuRDS; RDo24: class Adminer { var $operators; function name() { return "<a href='https://www.adminer.org/'" . target_blank() . " id='h1'>Adminer</a>"; } function credentials() { return array(SERVER, $_GET["username"], get_password()); } function connectSsl() { } function permanentLogin($i = false) { return password_file($i); } function bruteForceKey() { return $_SERVER["REMOTE_ADDR"]; } function serverName($M) { return h($M); } function database() { return DB; } function databases($ad = true) { return get_databases($ad); } function schemas() { return schemas(); } function queryTimeout() { return 2; } function headers() { } function csp() { return csp(); } function head() { return true; } function css() { $H = array(); $Uc = "adminer.css"; if (file_exists($Uc)) { $H[] = "{$Uc}?v=" . crc32(file_get_contents($Uc)); } return $H; } function loginForm() { global $ec; echo "<table cellspacing='0' class='layout'>
", $this->loginFormField("driver", "<tr><th>" . "System" . "<td>", html_select("auth[driver]", $ec, DRIVER, "loginDriver(this);") . "\xa"), $this->loginFormField("server", "<tr><th>" . "Server" . "<td>", "<input name="auth[server]" value="" . h(SERVER) . "" title="hostname[:port]" placeholder="localhost" autocapitalize="off">" . "\xa"), $this->loginFormField("username", "<tr><th>" . "Username" . "<td>", "<input name="auth[username]" id="username" value="" . h($_GET["username"]) . "" autocomplete="username" autocapitalize="off">" . script("focus(qs('#username')); qs('#username').form['auth[driver]'].onchange();")), $this->loginFormField("password", "<tr><th>" . "Password" . "<td>", "<input type="password" name="auth[password]" autocomplete="current-password">" . "
"), $this->loginFormField("db", "<tr><th>" . "Database" . "<td>", "<input name="auth[db]" value="" . h($_GET["db"]) . "" autocapitalize="off">" . "\xa"), "</table>\xa", "<p><input type='submit' value='" . "Login" . "'>
", checkbox("auth[permanent]", 1, $_COOKIE["adminer_permanent"], "Permanent login") . "
"; } function loginFormField($B, $xd, $Y) { return $xd . $Y; } function login($ye, $E) { if ($E == '') { return sprintf("Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.", target_blank()); } return true; } function tableName($Oh) { return h($Oh["Name"]); } function fieldName($o, $_f = 0) { return "<span title="" . h($o["full_type"]) . "">" . h($o["field"]) . "</span>"; } function selectLinks($Oh, $N = '') { global $x, $m; echo "<p class="links">"; $we = array("select" => "Select data"); if (support("table") || support("indexes")) { $we["table"] = "Show structure"; } if (support("table")) { if (is_view($Oh)) { $we["view"] = "Alter view"; } else { $we["create"] = "Alter table"; } } if ($N !== null) { $we["edit"] = "New item"; } $B = $Oh["Name"]; foreach ($we as $y => $X) { echo " <a href='" . h(ME) . "{$y}=" . urlencode($B) . ($y == "edit" ? $N : '') . "'" . bold(isset($_GET[$y])) . ">{$X}</a>"; } echo doc_link(array($x => $m->tableHelp($B)), "?"), "
"; } function foreignKeys($Q) { return foreign_keys($Q); } function backwardKeys($Q, $Nh) { return array(); } function backwardKeysPrint($Pa, $I) { } function selectQuery($F, $Dh, $Nc = false) { global $x, $m; $H = "</p>
"; if (!$Nc && ($dj = $m->warnings())) { $t = "warnings"; $H = ", <a href='#{$t}'>" . "Warnings" . "</a>" . script("qsl('a').onclick = partial(toggle, '{$t}');", '') . "{$H}<div id='{$t}' class='hidden'>
{$dj}</div>\xa"; } return "<p><code class='jush-{$x}'>" . h(str_replace("\xa", " ", $F)) . "</code> <span class='time'>(" . format_time($Dh) . ")</span>" . (support("sql") ? " <a href='" . h(ME) . "sql=" . urlencode($F) . "'>" . "Edit" . "</a>" : '') . $H; } function sqlCommandQuery($F) { return shorten_utf8(trim($F), 1000); } function rowDescription($Q) { return ''; } function rowDescriptions($J, $dd) { return $J; } function selectLink($X, $o) { } function selectVal($X, $_, $o, $Hf) { $H = $X === null ? "<i>NULL</i>" : (preg_match("~char|binary|boolean~", $o["type"]) && !preg_match("~var~", $o["type"]) ? "<code>{$X}</code>" : $X); if (preg_match("~blob|bytea|raw|file~", $o["type"]) && !is_utf8($X)) { $H = "<i>" . lang(array("%d byte", "%d bytes"), strlen($Hf)) . "</i>"; } if (preg_match("~json~", $o["type"])) { $H = "<code class='jush-js'>{$H}</code>"; } return $_ ? "<a href='" . h($_) . "'" . (is_url($_) ? target_blank() : '') . ">{$H}</a>" : $H; } function editVal($X, $o) { return $X; } function tableStructurePrint($p) { echo "<div class='scrollable'>\xa", "<table cellspacing='0' class='nowrap'>
", "<thead><tr><th>" . "Column" . "<td>" . "Type" . (support("comment") ? "<td>" . "Comment" : '') . "</thead>\xa"; foreach ($p as $o) { echo "<tr" . odd() . "><th>" . h($o["field"]), "<td><span title='" . h($o["collation"]) . "'>" . h($o["full_type"]) . "</span>", $o["null"] ? " <i>NULL</i>" : '', $o["auto_increment"] ? " <i>" . "Auto Increment" . "</i>" : '', isset($o["default"]) ? " <span title='" . "Default value" . "'>[<b>" . h($o["default"]) . "</b>]</span>" : '', support("comment") ? "<td>" . h($o["comment"]) : '', "\xa"; } echo "</table>
", "</div>
"; } function tableIndexesPrint($w) { echo "<table cellspacing='0'>
"; foreach ($w as $B => $v) { ksort($v["columns"]); $mg = array(); foreach ($v["columns"] as $y => $X) { $mg[] = "<i>" . h($X) . "</i>" . ($v["lengths"][$y] ? "(" . $v["lengths"][$y] . ")" : '') . ($v["descs"][$y] ? " DESC" : ''); } echo "<tr title='" . h($B) . "'><th>{$v["type"]}<td>" . implode(", ", $mg) . "
"; } echo "</table>\xa"; } function selectColumnsPrint($K, $f) { global $kd, $qd; print_fieldset("select", "Select", $K); $s = 0; $K[''] = array(); foreach ($K as $y => $X) { $X = $_GET["columns"][$y]; $e = select_input(" name='columns[{$s}][col]'", $f, $X["col"], $y !== '' ? "selectFieldChange" : "selectAddRow"); echo "<div>" . ($kd || $qd ? "<select name='columns[{$s}][fun]'>" . optionlist(array(-1 => '') + array_filter(array("Functions" => $kd, "Aggregation" => $qd)), $X["fun"]) . "</select>" . on_help("getTarget(event).value && getTarget(event).value.replace(/ |$/, '(') + ')'", 1) . script("qsl('select').onchange = function () { helpClose();" . ($y !== '' ? '' : " qsl('select, input', this.parentNode).onchange();") . " };", '') . "({$e})" : $e) . "</div>
"; $s++; } echo "</div></fieldset>\xa"; } function selectSearchPrint($Z, $f, $w) { print_fieldset("search", "Search", $Z); foreach ($w as $s => $v) { if ($v["type"] == "FULLTEXT") { echo "<div>(<i>" . implode("</i>, <i>", array_map("h", $v["columns"])) . "</i>) AGAINST", " <input type='search' name='fulltext[{$s}]' value='" . h($_GET["fulltext"][$s]) . "'>", script("qsl('input').oninput = selectFieldChange;", ''), checkbox("boolean[{$s}]", 1, isset($_GET["boolean"][$s]), "BOOL"), "</div>\xa"; } } $bb = "this.parentNode.firstChild.onchange();"; foreach (array_merge((array) $_GET["where"], array(array())) as $s => $X) { if (!$X || "{$X["col"]}{$X["val"]}" != '' && in_array($X["op"], $this->operators)) { echo "<div>" . select_input(" name='where[{$s}][col]'", $f, $X["col"], $X ? "selectFieldChange" : "selectAddRow", "(" . "anywhere" . ")"), html_select("where[{$s}][op]", $this->operators, $X["op"], $bb), "<input type='search' name='where[{$s}][val]' value='" . h($X["val"]) . "'>", script("mixin(qsl('input'), {oninput: function () { {$bb} }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});", ''), "</div>
"; } } echo "</div></fieldset>
"; } function selectOrderPrint($_f, $f, $w) { print_fieldset("sort", "Sort", $_f); $s = 0; foreach ((array) $_GET["order"] as $y => $X) { if ($X != '') { echo "<div>" . select_input(" name='order[{$s}]'", $f, $X, "selectFieldChange"), checkbox("desc[{$s}]", 1, isset($_GET["desc"][$y]), "descending") . "</div>\xa"; $s++; } } echo "<div>" . select_input(" name='order[{$s}]'", $f, '', "selectAddRow"), checkbox("desc[{$s}]", 1, false, "descending") . "</div>
", "</div></fieldset>\xa"; } function selectLimitPrint($z) { echo "<fieldset><legend>" . "Limit" . "</legend><div>"; echo "<input type='number' name='limit' class='size' value='" . h($z) . "'>", script("qsl('input').oninput = selectFieldChange;", ''), "</div></fieldset>
"; } function selectLengthPrint($di) { if ($di !== null) { echo "<fieldset><legend>" . "Text length" . "</legend><div>", "<input type='number' name='text_length' class='size' value='" . h($di) . "'>", "</div></fieldset>\xa"; } } function selectActionPrint($w) { echo "<fieldset><legend>" . "Action" . "</legend><div>", "<input type='submit' value='" . "Select" . "'>", " <span id='noindex' title='" . "Full table scan" . "'></span>", "<script" . nonce() . ">\xa", "var indexColumns = "; $f = array(); foreach ($w as $v) { $Lb = reset($v["columns"]); if ($v["type"] != "FULLTEXT" && $Lb) { $f[$Lb] = 1; } } $f[''] = 1; foreach ($f as $y => $X) { json_row($y); } echo ";\xa", "selectFieldChange.call(qs('#form')['select']);
", "</script>
", "</div></fieldset>
"; } function selectCommandPrint() { return !information_schema(DB); } function selectImportPrint() { return !information_schema(DB); } function selectEmailPrint($rc, $f) { } function selectColumnsProcess($f, $w) { global $kd, $qd; $K = array(); $nd = array(); foreach ((array) $_GET["columns"] as $y => $X) { if ($X["fun"] == "count" || $X["col"] != '' && (!$X["fun"] || in_array($X["fun"], $kd) || in_array($X["fun"], $qd))) { $K[$y] = apply_sql_function($X["fun"], $X["col"] != '' ? idf_escape($X["col"]) : "*"); if (!in_array($X["fun"], $qd)) { $nd[] = $K[$y]; } } } return array($K, $nd); } function selectSearchProcess($p, $w) { global $g, $m; $H = array(); foreach ($w as $s => $v) { if ($v["type"] == "FULLTEXT" && $_GET["fulltext"][$s] != '') { $H[] = "MATCH (" . implode(", ", array_map("idf_escape", $v["columns"])) . ") AGAINST (" . q($_GET["fulltext"][$s]) . (isset($_GET["boolean"][$s]) ? " IN BOOLEAN MODE" : '') . ")"; } } foreach ((array) $_GET["where"] as $y => $X) { if ("{$X["col"]}{$X["val"]}" != '' && in_array($X["op"], $this->operators)) { $ig = ''; $wb = " {$X["op"]}"; if (preg_match("~IN$~", $X["op"])) { $Hd = process_length($X["val"]); $wb .= " " . ($Hd != '' ? $Hd : "(NULL)"); } elseif ($X["op"] == "SQL") { $wb = " {$X["val"]}"; } elseif ($X["op"] == "LIKE %%") { $wb = " LIKE " . $this->processInput($p[$X["col"]], "%{$X["val"]}%"); } elseif ($X["op"] == "ILIKE %%") { $wb = " ILIKE " . $this->processInput($p[$X["col"]], "%{$X["val"]}%"); } elseif ($X["op"] == "FIND_IN_SET") { $ig = "{$X["op"]}(" . q($X["val"]) . ", "; $wb = ")"; } elseif (!preg_match("~NULL$~", $X["op"])) { $wb .= " " . $this->processInput($p[$X["col"]], $X["val"]); } if ($X["col"] != '') { $H[] = $ig . $m->convertSearch(idf_escape($X["col"]), $X, $p[$X["col"]]) . $wb; } else { $rb = array(); foreach ($p as $B => $o) { if ((preg_match("~^[-\d." . (preg_match("~IN$~", $X["op"]) ? "," : '') . "]+$~", $X["val"]) || !preg_match("~" . number_type() . "|bit~", $o["type"])) && (!preg_match("~[\x80-\xff]~", $X["val"]) || preg_match("~char|text|enum|set~", $o["type"]))) { $rb[] = $ig . $m->convertSearch(idf_escape($B), $X, $o) . $wb; } } $H[] = $rb ? "(" . implode(" OR ", $rb) . ")" : "1 = 0"; } } } return $H; } function selectOrderProcess($p, $w) { $H = array(); foreach ((array) $_GET["order"] as $y => $X) { if ($X != '') { $H[] = (preg_match("~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~", $X) ? $X : idf_escape($X)) . (isset($_GET["desc"][$y]) ? " DESC" : ''); } } return $H; } function selectLimitProcess() { return isset($_GET["limit"]) ? $_GET["limit"] : "50"; } function selectLengthProcess() { return isset($_GET["text_length"]) ? $_GET["text_length"] : "100"; } function selectEmailProcess($Z, $dd) { return false; } function selectQueryBuild($K, $Z, $nd, $_f, $z, $D) { return ''; } function messageQuery($F, $ei, $Nc = false) { global $x, $m; restart_session(); $yd =& get_session("queries"); if (!$yd[$_GET["db"]]) { $yd[$_GET["db"]] = array(); } if (strlen($F) > 1000000.0) { $F = preg_replace("~[\x80-\xFF]+$~", '', substr($F, 0, 1000000.0)) . "
\xc3\xa2\xe2\202\xac\302\xa6"; } $yd[$_GET["db"]][] = array($F, time(), $ei); $Ah = "sql-" . count($yd[$_GET["db"]]); $H = "<a href='#{$Ah}' class='toggle'>" . "SQL command" . "</a>
"; if (!$Nc && ($dj = $m->warnings())) { $t = "warnings-" . count($yd[$_GET["db"]]); $H = "<a href='#{$t}' class='toggle'>" . "Warnings" . "</a>, {$H}<div id='{$t}' class='hidden'>
{$dj}</div>
"; } return " <span class='time'>" . @date("H:i:s") . "</span>" . " {$H}<div id='{$Ah}' class='hidden'><pre><code class='jush-{$x}'>" . shorten_utf8($F, 1000) . "</code></pre>" . ($ei ? " <span class='time'>({$ei})</span>" : '') . (support("sql") ? "<p><a href="" . h(str_replace("db=" . urlencode(DB), "db=" . urlencode($_GET["db"]), ME) . "sql=&history=" . (count($yd[$_GET["db"]]) - 1)) . "">" . "Edit" . "</a>" : '') . "</div>"; } function editFunctions($o) { global $mc; $H = $o["null"] ? "NULL/" : ''; foreach ($mc as $y => $kd) { if (!$y || !isset($_GET["call"]) && (isset($_GET["select"]) || where($_GET))) { foreach ($kd as $ag => $X) { if (!$ag || preg_match("~{$ag}~", $o["type"])) { $H .= "/{$X}"; } } if ($y && !preg_match("~set|blob|bytea|raw|file~", $o["type"])) { $H .= "/SQL"; } } } if ($o["auto_increment"] && !isset($_GET["select"]) && !where($_GET)) { $H = "Auto Increment"; } return explode("/", $H); } function editInput($Q, $o, $Ja, $Y) { if ($o["type"] == "enum") { return (isset($_GET["select"]) ? "<label><input type='radio'{$Ja} value='-1' checked><i>" . "original" . "</i></label> " : '') . ($o["null"] ? "<label><input type='radio'{$Ja} value=''" . ($Y !== null || isset($_GET["select"]) ? '' : " checked") . "><i>NULL</i></label> " : '') . enum_input("radio", $Ja, $o, $Y, 0); } return ''; } function editHint($Q, $o, $Y) { return ''; } function processInput($o, $Y, $r = '') { if ($r == "SQL") { return $Y; } $B = $o["field"]; $H = q($Y); if (preg_match("~^(now|getdate|uuid)$~", $r)) { $H = "{$r}()"; } elseif (preg_match("~^current_(date|timestamp)$~", $r)) { $H = $r; } elseif (preg_match("~^([+-]|\|\|)$~", $r)) { $H = idf_escape($B) . " {$r} {$H}"; } elseif (preg_match("~^[+-] interval$~", $r)) { $H = idf_escape($B) . " {$r} " . (preg_match("~^(\d+|'[0-9.: -]') [A-Z_]+$~i", $Y) ? $Y : $H); } elseif (preg_match("~^(addtime|subtime|concat)$~", $r)) { $H = "{$r}(" . idf_escape($B) . ", {$H})"; } elseif (preg_match("~^(md5|sha1|password|encrypt)$~", $r)) { $H = "{$r}({$H})"; } return unconvert_field($o, $H); } function dumpOutput() { $H = array("text" => "open", "file" => "save"); if (function_exists("gzencode")) { $H["gz"] = "gzip"; } return $H; } function dumpFormat() { return array("sql" => "SQL", "csv" => "CSV,", "csv;" => "CSV;", "tsv" => "TSV"); } function dumpDatabase($l) { } function dumpTable($Q, $Ih, $ae = 0) { if ($_POST["format"] != "sql") { echo "\xef\273\xbf"; if ($Ih) { dump_csv(array_keys(fields($Q))); } } else { if ($ae == 2) { $p = array(); foreach (fields($Q) as $B => $o) { $p[] = idf_escape($B) . " {$o["full_type"]}"; } $i = "CREATE TABLE " . table($Q) . " (" . implode(", ", $p) . ")"; } else { $i = create_sql($Q, $_POST["auto_increment"], $Ih); } set_utf8mb4($i); if ($Ih && $i) { if ($Ih == "DROP+CREATE" || $ae == 1) { echo "DROP " . ($ae == 2 ? "VIEW" : "TABLE") . " IF EXISTS " . table($Q) . ";\xa"; } if ($ae == 1) { $i = remove_definer($i); } echo "{$i};

"; } } } function dumpData($Q, $Ih, $F) { global $g, $x; $Fe = $x == "sqlite" ? 0 : 1048576; if ($Ih) { if ($_POST["format"] == "sql") { if ($Ih == "TRUNCATE+INSERT") { echo truncate_sql($Q) . ";
"; } $p = fields($Q); } $G = $g->query($F, 1); if ($G) { $Td = ''; $Ya = ''; $he = array(); $Kh = ''; $Qc = $Q != '' ? "fetch_assoc" : "fetch_row"; while ($I = $G->{$Qc}()) { if (!$he) { $Vi = array(); foreach ($I as $X) { $o = $G->fetch_field(); $he[] = $o->name; $y = idf_escape($o->name); $Vi[] = "{$y} = VALUES({$y})"; } $Kh = ($Ih == "INSERT+UPDATE" ? "
ON DUPLICATE KEY UPDATE " . implode(", ", $Vi) : '') . ";\xa"; } if ($_POST["format"] != "sql") { if ($Ih == "table") { dump_csv($he); $Ih = "INSERT"; } dump_csv($I); } else { if (!$Td) { $Td = "INSERT INTO " . table($Q) . " (" . implode(", ", array_map("idf_escape", $he)) . ") VALUES"; } foreach ($I as $y => $X) { $o = $p[$y]; $I[$y] = $X !== null ? unconvert_field($o, preg_match(number_type(), $o["type"]) && !preg_match("~\[~", $o["full_type"]) && is_numeric($X) ? $X : q($X === false ? 0 : $X)) : "NULL"; } $Yg = ($Fe ? "
" : " ") . "(" . implode(",\x9", $I) . ")"; if (!$Ya) { $Ya = $Td . $Yg; } elseif (strlen($Ya) + 4 + strlen($Yg) + strlen($Kh) < $Fe) { $Ya .= ",{$Yg}"; } else { echo $Ya . $Kh; $Ya = $Td . $Yg; } } } if ($Ya) { echo $Ya . $Kh; } } elseif ($_POST["format"] == "sql") { echo "-- " . str_replace("
", " ", $g->error) . "\xa"; } } } function dumpFilename($Cd) { return friendly_url($Cd != '' ? $Cd : (SERVER != '' ? SERVER : "localhost")); } function dumpHeaders($Cd, $Ue = false) { $Kf = $_POST["output"]; $Ic = preg_match("~sql~", $_POST["format"]) ? "sql" : ($Ue ? "tar" : "csv"); header("Content-Type: " . ($Kf == "gz" ? "application/x-gzip" : ($Ic == "tar" ? "application/x-tar" : ($Ic == "sql" || $Kf != "file" ? "text/plain" : "text/csv") . "; charset=utf-8"))); if ($Kf == "gz") { ob_start("ob_gzencode", 1000000.0); } return $Ic; } function importServerPath() { return "adminer.sql"; } function homepage() { echo "<p class="links">" . ($_GET["ns"] == '' && support("database") ? "<a href="" . h(ME) . "database=">" . "Alter database" . "</a>
" : ''), support("scheme") ? "<a href='" . h(ME) . "scheme='>" . ($_GET["ns"] != '' ? "Alter schema" : "Create schema") . "</a>
" : '', $_GET["ns"] !== '' ? "<a href="" . h(ME) . "schema=">" . "Database schema" . "</a>\xa" : '', support("privileges") ? "<a href='" . h(ME) . "privileges='>" . "Privileges" . "</a>\xa" : ''; return true; } function navigation($Te) { global $ia, $x, $ec, $g; echo "<h1>
", $this->name(), " <span class="version">", $ia, "</span>
<a href="https://www.adminer.org/#download"", target_blank(), " id="version">", version_compare($ia, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : '', "</a>\xa</h1>\xa"; if ($Te == "auth") { $Kf = ''; foreach ((array) $_SESSION["pwds"] as $Xi => $mh) { foreach ($mh as $M => $Si) { foreach ($Si as $V => $E) { if ($E !== null) { $Rb = $_SESSION["db"][$Xi][$M][$V]; foreach ($Rb ? array_keys($Rb) : array('') as $l) { $Kf .= "<li><a href='" . h(auth_url($Xi, $M, $V, $l)) . "'>({$ec[$Xi]}) " . h($V . ($M != '' ? "@" . $this->serverName($M) : '') . ($l != '' ? " - {$l}" : '')) . "</a>\xa"; } } } } } if ($Kf) { echo "<ul id='logins'>
{$Kf}</ul>\xa" . script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});"); } } else { if ($_GET["ns"] !== '' && !$Te && DB != '') { $g->select_db(DB); $S = table_status('', true); } echo script_src(preg_replace("~\?.*~", '', ME) . "?file=jush.js&version=4.7.5"); if (support("sql")) { echo "<script", nonce(), ">
"; if ($S) { $we = array(); foreach ($S as $Q => $T) { $we[] = preg_quote($Q, "/"); } echo "var jushLinks = { {$x}: [ '" . js_escape(ME) . (support("table") ? "table=" : "select=") . "$&', /\b(" . implode("|", $we) . ")\b/g ] };
"; foreach (array("bac", "bra", "sqlite_quo", "mssql_bra") as $X) { echo "jushLinks.{$X} = jushLinks.{$x};
"; } } $lh = $g->server_info; echo "bodyLoad('", is_object($g) ? preg_replace("~^(\d\.?\d).*~s", "\1", $lh) : '', "'", preg_match("~MariaDB~", $lh) ? ", true" : '', ");\xa</script>
"; } $this->databasesPrint($Te); if (DB == '' || !$Te) { echo "<p class='links'>" . (support("sql") ? "<a href='" . h(ME) . "sql='" . bold(isset($_GET["sql"]) && !isset($_GET["import"])) . ">" . "SQL command" . "</a>
<a href='" . h(ME) . "import='" . bold(isset($_GET["import"])) . ">" . "Import" . "</a>\xa" : '') . ''; if (support("dump")) { echo "<a href='" . h(ME) . "dump=" . urlencode(isset($_GET["table"]) ? $_GET["table"] : $_GET["select"]) . "' id='dump'" . bold(isset($_GET["dump"])) . ">" . "Export" . "</a>
"; } } if ($_GET["ns"] !== '' && !$Te && DB != '') { echo "<a href="" . h(ME) . "create="" . bold($_GET["create"] === '') . ">" . "Create table" . "</a>\xa"; if (!$S) { echo "<p class='message'>" . "No tables." . "\xa"; } else { $this->tablesPrint($S); } } } } function databasesPrint($Te) { global $b, $g; $k = $this->databases(); if ($k && !in_array(DB, $k)) { array_unshift($k, DB); } echo "<form action="">
<p id="dbs">
"; hidden_fields_get(); $Pb = script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});"); echo "<span title='" . "database" . "'>" . "DB" . "</span>: " . ($k ? "<select name='db'>" . optionlist(array('' => '') + $k, DB) . "</select>{$Pb}" : "<input name='db' value='" . h(DB) . "' autocapitalize='off'>
"), "<input type='submit' value='" . "Use" . "'" . ($k ? " class='hidden'" : '') . ">\xa"; if ($Te != "db" && DB != '' && $g->select_db(DB)) { if (support("scheme")) { echo "<br>" . "Schema" . ": <select name='ns'>" . optionlist(array('' => '') + $b->schemas(), $_GET["ns"]) . "</select>{$Pb}"; if ($_GET["ns"] != '') { set_schema($_GET["ns"]); } } } foreach (array("import", "sql", "schema", "dump", "privileges") as $X) { if (isset($_GET[$X])) { echo "<input type='hidden' name='{$X}' value=''>"; break; } } echo "</p></form>
"; } function tablesPrint($S) { echo "<ul id='tables'>" . script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});"); foreach ($S as $Q => $O) { $B = $this->tableName($O); if ($B != '') { echo "<li><a href="" . h(ME) . "select=" . urlencode($Q) . """ . bold($_GET["select"] == $Q || $_GET["edit"] == $Q, "select") . ">" . "select" . "</a> ", (support("table") || support("indexes") ? "<a href="" . h(ME) . "table=" . urlencode($Q) . """ . bold(in_array($Q, array($_GET["table"], $_GET["create"], $_GET["indexes"], $_GET["foreign"], $_GET["trigger"])), is_view($O) ? "view" : "structure") . " title='" . "Show structure" . "'>{$B}</a>" : "<span>{$B}</span>") . "
"; } } echo "</ul>
"; } } goto CSO6b; FC3fb: function shorten_utf8($P, $te = 80, $Kh = '') { if (!preg_match("(^(" . repeat_pattern("[	\xd\xa -\x{10FFFF}]", $te) . ")($)?)u", $P, $A)) { preg_match("(^(" . repeat_pattern("[	\xd
 -~]", $te) . ")($)?)", $P, $A); } return h($A[1]) . $Kh . (isset($A[2]) ? '' : "<i>\xc3\xa2\342\202\254\302\xa6</i>"); } goto hv8UT; GQ399: if ($_COOKIE["adminer_permanent"]) { foreach (explode(" ", $_COOKIE["adminer_permanent"]) as $X) { list($y) = explode(":", $X); $bg[$y] = $X; } } goto Rct2H; VfLYj: function dump_headers($Cd, $Ue = false) { global $b; $H = $b->dumpHeaders($Cd, $Ue); $Kf = $_POST["output"]; if ($Kf != "text") { header("Content-Disposition: attachment; filename=" . $b->dumpFilename($Cd) . ".{$H}" . ($Kf != "file" && !preg_match("~[^0-9a-z]~", $Kf) ? ".{$Kf}" : '')); } session_write_close(); ob_flush(); flush(); return $H; } goto gDEmj; Pg0y8: $ec["firebird"] = "Firebird (alpha)"; goto XU8FB; dPQQO: function unset_permanent() { global $bg; foreach ($bg as $y => $X) { list($Xi, $M, $V, $l) = array_map("base64_decode", explode("-", $y)); if ($Xi == DRIVER && $M == SERVER && $V == $_GET["username"] && $l == DB) { unset($bg[$y]); } } cookie("adminer_permanent", implode(" ", $bg)); } goto wBf6w; NfyCr: function csp() { return array(array("script-src" => "'self' 'unsafe-inline' 'nonce-" . get_nonce() . "' 'strict-dynamic'", "connect-src" => "'self'", "frame-src" => "https://www.adminer.org", "object-src" => "'none'", "base-uri" => "'none'", "form-action" => "'self'")); } goto NS6t5; tpzzL: function search_tables() { global $b, $g; $_GET["where"][0]["val"] = $_POST["query"]; $ih = "<ul>
"; foreach (table_status('', true) as $Q => $R) { $B = $b->tableName($R); if (isset($R["Engine"]) && $B != '' && (!$_POST["tables"] || in_array($Q, $_POST["tables"]))) { $G = $g->query("SELECT" . limit("1 FROM " . table($Q), " WHERE " . implode(" AND ", $b->selectSearchProcess(fields($Q), array())), 1)); if (!$G || $G->fetch_row()) { $mg = "<a href='" . h(ME . "select=" . urlencode($Q) . "&where[0][op]=" . urlencode($_GET["where"][0]["op"]) . "&where[0][val]=" . urlencode($_GET["where"][0]["val"])) . "'>{$B}</a>"; echo "{$ih}<li>" . ($G ? $mg : "<p class='error'>{$mg}: " . error()) . "\xa"; $ih = ''; } } } echo ($ih ? "<p class='message'>" . "No tables." : "</ul>") . "
"; } goto VfLYj; MS2ZE: $ia = "4.7.5"; goto RDo24; Rhh0P: function process_length($te) { global $wc; return preg_match("~^\s*\(?\s*{$wc}(?:\s*,\s*{$wc})*+\s*\)?\s*$~", $te) && preg_match_all("~{$wc}~", $te, $De) ? "(" . implode(",", $De[0]) . ")" : preg_replace("~^[0-9].*~", "(\0)", preg_replace("~[^-0-9,+()[\]]~", '', $te)); } goto tSE5C; Pq3Ua: function input($o, $Y, $r) { global $U, $b, $x; $B = h(bracket_escape($o["field"])); echo "<td class='function'>"; if (is_array($Y) && !$r) { $Ea = array($Y); if (version_compare(PHP_VERSION, 5.4) >= 0) { $Ea[] = JSON_PRETTY_PRINT; } $Y = call_user_func_array("json_encode", $Ea); $r = "json"; } $Lg = $x == "mssql" && $o["auto_increment"]; if ($Lg && !$_POST["save"]) { $r = null; } $kd = (isset($_GET["select"]) || $Lg ? array("orig" => "original") : array()) + $b->editFunctions($o); $Ja = " name='fields[{$B}]'"; if ($o["type"] == "enum") { echo h($kd['']) . "<td>" . $b->editInput($_GET["edit"], $o, $Ja, $Y); } else { $ud = in_array($r, $kd) || isset($kd[$r]); echo (count($kd) > 1 ? "<select name='function[{$B}]'>" . optionlist($kd, $r === null || $ud ? $r : '') . "</select>" . on_help("getTarget(event).value.replace(/^SQL$/, '')", 1) . script("qsl('select').onchange = functionChange;", '') : h(reset($kd))) . "<td>"; $Sd = $b->editInput($_GET["edit"], $o, $Ja, $Y); if ($Sd != '') { echo $Sd; } elseif (preg_match("~bool~", $o["type"])) { echo "<input type='hidden'{$Ja} value='0'>" . "<input type='checkbox'" . (preg_match("~^(1|t|true|y|yes|on)$~i", $Y) ? " checked='checked'" : '') . "{$Ja} value='1'>"; } elseif ($o["type"] == "set") { preg_match_all("~'((?:[^']|'')*)'~", $o["length"], $De); foreach ($De[1] as $s => $X) { $X = stripcslashes(str_replace("''", "'", $X)); $fb = is_int($Y) ? $Y >> $s & 1 : in_array($X, explode(",", $Y), true); echo " <label><input type='checkbox' name='fields[{$B}][{$s}]' value='" . (1 << $s) . "'" . ($fb ? " checked" : '') . ">" . h($b->editVal($X, $o)) . "</label>"; } } elseif (preg_match("~blob|bytea|raw|file~", $o["type"]) && ini_bool("file_uploads")) { echo "<input type='file' name='fields-{$B}'>"; } elseif (($ci = preg_match("~text|lob|memo~i", $o["type"])) || preg_match("~
~", $Y)) { if ($ci && $x != "sqlite") { $Ja .= " cols='50' rows='12'"; } else { $J = min(12, substr_count($Y, "\xa") + 1); $Ja .= " cols='30' rows='{$J}'" . ($J == 1 ? " style='height: 1.2em;'" : ''); } echo "<textarea{$Ja}>" . h($Y) . "</textarea>"; } elseif ($r == "json" || preg_match("~^jsonb?$~", $o["type"])) { echo "<textarea{$Ja} cols='50' rows='12' class='jush-js'>" . h($Y) . "</textarea>"; } else { $Ke = !preg_match("~int~", $o["type"]) && preg_match("~^(\d+)(,(\d+))?$~", $o["length"], $A) ? (preg_match("~binary~", $o["type"]) ? 2 : 1) * $A[1] + ($A[3] ? 1 : 0) + ($A[2] && !$o["unsigned"] ? 1 : 0) : ($U[$o["type"]] ? $U[$o["type"]] + ($o["unsigned"] ? 0 : 1) : 0); if ($x == "sql" && min_version(5.6) && preg_match("~time~", $o["type"])) { $Ke += 7; } echo "<input" . ((!$ud || $r === '') && preg_match("~(?<!o)int(?!er)~", $o["type"]) && !preg_match("~\[\]~", $o["full_type"]) ? " type='number'" : '') . " value='" . h($Y) . "'" . ($Ke ? " data-maxlength='{$Ke}'" : '') . (preg_match("~char|binary~", $o["type"]) && $Ke > 20 ? " size='40'" : '') . "{$Ja}>"; } echo $b->editHint($_GET["edit"], $o, $Y); $Wc = 0; foreach ($kd as $y => $X) { if ($y === '' || !$X) { break; } $Wc++; } if ($Wc) { echo script("mixin(qsl('td'), {onchange: partial(skipOriginal, {$Wc}), oninput: function () { this.onchange(); }});"); } } } goto C7QpS; duH0c: if (!defined("DRIVER")) { $hg = array("MySQLi", "MySQL", "PDO_MySQL"); define("DRIVER", "server"); if (extension_loaded("mysqli")) { class Min_DB extends MySQLi { var $extension = "MySQLi"; function __construct() { parent::init(); } function connect($M = '', $V = '', $E = '', $j = null, $dg = null, $uh = null) { global $b; mysqli_report(MYSQLI_REPORT_OFF); list($Ad, $dg) = explode(":", $M, 2); $Ch = $b->connectSsl(); if ($Ch) { $this->ssl_set($Ch["key"], $Ch["cert"], $Ch["ca"], '', ''); } $H = @$this->real_connect($M != '' ? $Ad : ini_get("mysqli.default_host"), $M . $V != '' ? $V : ini_get("mysqli.default_user"), $M . $V . $E != '' ? $E : ini_get("mysqli.default_pw"), $j, is_numeric($dg) ? $dg : ini_get("mysqli.default_port"), !is_numeric($dg) ? $dg : $uh, $Ch ? 64 : 0); $this->options(MYSQLI_OPT_LOCAL_INFILE, false); return $H; } function set_charset($cb) { if (parent::set_charset($cb)) { return true; } parent::set_charset("utf8"); return $this->query("SET NAMES {$cb}"); } function result($F, $o = 0) { $G = $this->query($F); if (!$G) { return false; } $I = $G->fetch_array(); return $I[$o]; } function quote($P) { return "'" . $this->escape_string($P) . "'"; } } } elseif (extension_loaded("mysql") && !((ini_bool("sql.safe_mode") || ini_bool("mysql.allow_local_infile")) && extension_loaded("pdo_mysql"))) { class Min_DB { var $extension = "MySQL", $server_info, $affected_rows, $errno, $error, $_link, $_result; function connect($M, $V, $E) { if (ini_bool("mysql.allow_local_infile")) { $this->error = sprintf("Disable %s or enable %s or %s extensions.", "'mysql.allow_local_infile'", "MySQLi", "PDO_MySQL"); return false; } $this->_link = @mysql_connect($M != '' ? $M : ini_get("mysql.default_host"), "{$M}{$V}" != '' ? $V : ini_get("mysql.default_user"), "{$M}{$V}{$E}" != '' ? $E : ini_get("mysql.default_password"), true, 131072); if ($this->_link) { $this->server_info = mysql_get_server_info($this->_link); } else { $this->error = mysql_error(); } return (bool) $this->_link; } function set_charset($cb) { if (function_exists("mysql_set_charset")) { if (mysql_set_charset($cb, $this->_link)) { return true; } mysql_set_charset("utf8", $this->_link); } return $this->query("SET NAMES {$cb}"); } function quote($P) { return "'" . mysql_real_escape_string($P, $this->_link) . "'"; } function select_db($j) { return mysql_select_db($j, $this->_link); } function query($F, $Ci = false) { $G = @($Ci ? mysql_unbuffered_query($F, $this->_link) : mysql_query($F, $this->_link)); $this->error = ''; if (!$G) { $this->errno = mysql_errno($this->_link); $this->error = mysql_error($this->_link); return false; } if ($G === true) { $this->affected_rows = mysql_affected_rows($this->_link); $this->info = mysql_info($this->_link); return true; } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 0) { $G = $this->query($F); if (!$G || !$G->num_rows) { return false; } return mysql_result($G->_result, 0, $o); } } class Min_Result { var $num_rows, $_result, $_offset = 0; function __construct($G) { $this->_result = $G; $this->num_rows = mysql_num_rows($G); } function fetch_assoc() { return mysql_fetch_assoc($this->_result); } function fetch_row() { return mysql_fetch_row($this->_result); } function fetch_field() { $H = mysql_fetch_field($this->_result, $this->_offset++); $H->orgtable = $H->table; $H->orgname = $H->name; $H->charsetnr = $H->blob ? 63 : 0; return $H; } function __destruct() { mysql_free_result($this->_result); } } } elseif (extension_loaded("pdo_mysql")) { class Min_DB extends Min_PDO { var $extension = "PDO_MySQL"; function connect($M, $V, $E) { global $b; $yf = array(PDO::MYSQL_ATTR_LOCAL_INFILE => false); $Ch = $b->connectSsl(); if ($Ch) { if (!empty($Ch["key"])) { $yf[PDO::MYSQL_ATTR_SSL_KEY] = $Ch["key"]; } if (!empty($Ch["cert"])) { $yf[PDO::MYSQL_ATTR_SSL_CERT] = $Ch["cert"]; } if (!empty($Ch["ca"])) { $yf[PDO::MYSQL_ATTR_SSL_CA] = $Ch["ca"]; } } $this->dsn("mysql:charset=utf8;host=" . str_replace(":", ";unix_socket=", preg_replace("~:(\d)~", ";port=\1", $M)), $V, $E, $yf); return true; } function set_charset($cb) { $this->query("SET NAMES {$cb}"); } function select_db($j) { return $this->query("USE " . idf_escape($j)); } function query($F, $Ci = false) { $this->setAttribute(1000, !$Ci); return parent::query($F, $Ci); } } } class Min_Driver extends Min_SQL { function insert($Q, $N) { return $N ? parent::insert($Q, $N) : queries("INSERT INTO " . table($Q) . " ()\xaVALUES ()"); } function insertUpdate($Q, $J, $kg) { $f = array_keys(reset($J)); $ig = "INSERT INTO " . table($Q) . " (" . implode(", ", $f) . ") VALUES\xa"; $Vi = array(); foreach ($f as $y) { $Vi[$y] = "{$y} = VALUES({$y})"; } $Kh = "\xaON DUPLICATE KEY UPDATE " . implode(", ", $Vi); $Vi = array(); $te = 0; foreach ($J as $N) { $Y = "(" . implode(", ", $N) . ")"; if ($Vi && strlen($ig) + $te + strlen($Y) + strlen($Kh) > 1000000.0) { if (!queries($ig . implode(",\xa", $Vi) . $Kh)) { return false; } $Vi = array(); $te = 0; } $Vi[] = $Y; $te += strlen($Y) + 2; } return queries($ig . implode(",\xa", $Vi) . $Kh); } function slowQuery($F, $fi) { if (min_version("5.7.8", "10.1.2")) { if (preg_match("~MariaDB~", $this->_conn->server_info)) { return "SET STATEMENT max_statement_time={$fi} FOR {$F}"; } elseif (preg_match("~^(SELECT\b)(.+)~is", $F, $A)) { return "{$A["1"]} /*+ MAX_EXECUTION_TIME(" . $fi * 1000 . ") */ {$A["2"]}"; } } } function convertSearch($u, $X, $o) { return preg_match("~char|text|enum|set~", $o["type"]) && !preg_match("~^utf8~", $o["collation"]) && preg_match("~[\x80-\xFF]~", $X["val"]) ? "CONVERT({$u} USING " . charset($this->_conn) . ")" : $u; } function warnings() { $G = $this->_conn->query("SHOW WARNINGS"); if ($G && $G->num_rows) { ob_start(); select($G); return ob_get_clean(); } } function tableHelp($B) { $Ae = preg_match("~MariaDB~", $this->_conn->server_info); if (information_schema(DB)) { return strtolower($Ae ? "information-schema-{$B}-table/" : str_replace("_", "-", $B) . "-table.html"); } if (DB == "mysql") { return $Ae ? "mysql{$B}-table/" : "system-database.html"; } } } function idf_escape($u) { return "`" . str_replace("`", "``", $u) . "`"; } function table($u) { return idf_escape($u); } function connect() { global $b, $U, $Hh; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { $g->set_charset(charset($g)); $g->query("SET sql_quote_show_create = 1, autocommit = 1"); if (min_version("5.7.8", 10.2, $g)) { $Hh["Strings"][] = "json"; $U["json"] = 4294967295; } return $g; } $H = $g->error; if (function_exists("iconv") && !is_utf8($H) && strlen($Yg = iconv("windows-1250", "utf-8", $H)) > strlen($H)) { $H = $Yg; } return $H; } function get_databases($ad) { $H = get_session("dbs"); if ($H === null) { $F = min_version(5) ? "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME" : "SHOW DATABASES"; $H = $ad ? slow_query($F) : get_vals($F); restart_session(); set_session("dbs", $H); stop_session(); } return $H; } function limit($F, $Z, $z, $C = 0, $L = " ") { return " {$F}{$Z}" . ($z !== null ? $L . "LIMIT {$z}" . ($C ? " OFFSET {$C}" : '') : ''); } function limit1($Q, $F, $Z, $L = "
") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { global $g; $H = null; $i = $g->result("SHOW CREATE DATABASE " . idf_escape($l), 1); if (preg_match("~ COLLATE ([^ ]+)~", $i, $A)) { $H = $A[1]; } elseif (preg_match("~ CHARACTER SET ([^ ]+)~", $i, $A)) { $H = $pb[$A[1]][-1]; } return $H; } function engines() { $H = array(); foreach (get_rows("SHOW ENGINES") as $I) { if (preg_match("~YES|DEFAULT~", $I["Support"])) { $H[] = $I["Engine"]; } } return $H; } function logged_user() { global $g; return $g->result("SELECT USER()"); } function tables_list() { return get_key_vals(min_version(5) ? "SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME" : "SHOW TABLES"); } function count_tables($k) { $H = array(); foreach ($k as $l) { $H[$l] = count(get_vals("SHOW TABLES IN " . idf_escape($l))); } return $H; } function table_status($B = '', $Oc = false) { $H = array(); foreach (get_rows($Oc && min_version(5) ? "SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() " . ($B != '' ? "AND TABLE_NAME = " . q($B) : "ORDER BY Name") : "SHOW TABLE STATUS" . ($B != '' ? " LIKE " . q(addcslashes($B, "%_\")) : '')) as $I) { if ($I["Engine"] == "InnoDB") { $I["Comment"] = preg_replace("~(?:(.+); )?InnoDB free: .*~", "\1", $I["Comment"]); } if (!isset($I["Engine"])) { $I["Comment"] = ''; } if ($B != '') { return $I; } $H[$I["Name"]] = $I; } return $H; } function is_view($R) { return $R["Engine"] === null; } function fk_support($R) { return preg_match("~InnoDB|IBMDB2I~i", $R["Engine"]) || preg_match("~NDB~i", $R["Engine"]) && min_version(5.6); } function fields($Q) { $H = array(); foreach (get_rows("SHOW FULL COLUMNS FROM " . table($Q)) as $I) { preg_match("~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~", $I["Type"], $A); $H[$I["Field"]] = array("field" => $I["Field"], "full_type" => $I["Type"], "type" => $A[1], "length" => $A[2], "unsigned" => ltrim($A[3] . $A[4]), "default" => $I["Default"] != '' || preg_match("~char|set~", $A[1]) ? $I["Default"] : null, "null" => $I["Null"] == "YES", "auto_increment" => $I["Extra"] == "auto_increment", "on_update" => preg_match("~^on update (.+)~i", $I["Extra"], $A) ? $A[1] : '', "collation" => $I["Collation"], "privileges" => array_flip(preg_split("~, *~", $I["Privileges"])), "comment" => $I["Comment"], "primary" => $I["Key"] == "PRI", "generated" => preg_match("~^(VIRTUAL|PERSISTENT|STORED)~", $I["Extra"])); } return $H; } function indexes($Q, $h = null) { $H = array(); foreach (get_rows("SHOW INDEX FROM " . table($Q), $h) as $I) { $B = $I["Key_name"]; $H[$B]["type"] = $B == "PRIMARY" ? "PRIMARY" : ($I["Index_type"] == "FULLTEXT" ? "FULLTEXT" : ($I["Non_unique"] ? $I["Index_type"] == "SPATIAL" ? "SPATIAL" : "INDEX" : "UNIQUE")); $H[$B]["columns"][] = $I["Column_name"]; $H[$B]["lengths"][] = $I["Index_type"] == "SPATIAL" ? null : $I["Sub_part"]; $H[$B]["descs"][] = null; } return $H; } function foreign_keys($Q) { global $g, $qf; static $ag = "(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")"; $H = array(); $Fb = $g->result("SHOW CREATE TABLE " . table($Q), 1); if ($Fb) { preg_match_all("~CONSTRAINT ({$ag}) FOREIGN KEY ?\(((?:{$ag},? ?)+)\) REFERENCES ({$ag})(?:\.({$ag}))? \(((?:{$ag},? ?)+)\)(?: ON DELETE ({$qf}))?(?: ON UPDATE ({$qf}))?~", $Fb, $De, PREG_SET_ORDER); foreach ($De as $A) { preg_match_all("~{$ag}~", $A[2], $wh); preg_match_all("~{$ag}~", $A[5], $Xh); $H[idf_unescape($A[1])] = array("db" => idf_unescape($A[4] != '' ? $A[3] : $A[4]), "table" => idf_unescape($A[4] != '' ? $A[4] : $A[3]), "source" => array_map("idf_unescape", $wh[0]), "target" => array_map("idf_unescape", $Xh[0]), "on_delete" => $A[6] ? $A[6] : "RESTRICT", "on_update" => $A[7] ? $A[7] : "RESTRICT"); } } return $H; } function view($B) { global $g; return array("select" => preg_replace("~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU", '', $g->result("SHOW CREATE VIEW " . table($B), 1))); } function collations() { $H = array(); foreach (get_rows("SHOW COLLATION") as $I) { if ($I["Default"]) { $H[$I["Charset"]][-1] = $I["Collation"]; } else { $H[$I["Charset"]][] = $I["Collation"]; } } ksort($H); foreach ($H as $y => $X) { asort($H[$y]); } return $H; } function information_schema($l) { return min_version(5) && $l == "information_schema" || min_version(5.5) && $l == "performance_schema"; } function error() { global $g; return h(preg_replace("~^You have an error.*syntax to use~U", "Syntax error", $g->error)); } function create_database($l, $d) { return queries("CREATE DATABASE " . idf_escape($l) . ($d ? " COLLATE " . q($d) : '')); } function drop_databases($k) { $H = apply_queries("DROP DATABASE", $k, "idf_escape"); restart_session(); set_session("dbs", null); return $H; } function rename_database($B, $d) { $H = false; if (create_database($B, $d)) { $Kg = array(); foreach (tables_list() as $Q => $T) { $Kg[] = table($Q) . " TO " . idf_escape($B) . "." . table($Q); } $H = !$Kg || queries("RENAME TABLE " . implode(", ", $Kg)); if ($H) { queries("DROP DATABASE " . idf_escape(DB)); } restart_session(); set_session("dbs", null); } return $H; } function auto_increment() { $Na = " PRIMARY KEY"; if ($_GET["create"] != '' && $_POST["auto_increment_col"]) { foreach (indexes($_GET["create"]) as $v) { if (in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"], $v["columns"], true)) { $Na = ''; break; } if ($v["type"] == "PRIMARY") { $Na = " UNIQUE"; } } } return " AUTO_INCREMENT{$Na}"; } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = array(); foreach ($p as $o) { $c[] = $o[1] ? ($Q != '' ? $o[0] != '' ? "CHANGE " . idf_escape($o[0]) : "ADD" : " ") . " " . implode($o[1]) . ($Q != '' ? $o[2] : '') : "DROP " . idf_escape($o[0]); } $c = array_merge($c, $cd); $O = ($ub !== null ? " COMMENT=" . q($ub) : '') . ($uc ? " ENGINE=" . q($uc) : '') . ($d ? " COLLATE " . q($d) : '') . ($Ma != '' ? " AUTO_INCREMENT={$Ma}" : ''); if ($Q == '') { return queries("CREATE TABLE " . table($B) . " (
" . implode(",
", $c) . "
){$O}{$Uf}"); } if ($Q != $B) { $c[] = "RENAME TO " . table($B); } if ($O) { $c[] = ltrim($O); } return $c || $Uf ? queries("ALTER TABLE " . table($Q) . "
" . implode(",
", $c) . $Uf) : true; } function alter_indexes($Q, $c) { foreach ($c as $y => $X) { $c[$y] = $X[2] == "DROP" ? "
DROP INDEX " . idf_escape($X[1]) : "\xaADD {$X["0"]} " . ($X[0] == "PRIMARY" ? "KEY " : '') . ($X[1] != '' ? idf_escape($X[1]) . " " : '') . "(" . implode(", ", $X[2]) . ")"; } return queries("ALTER TABLE " . table($Q) . implode(",", $c)); } function truncate_tables($S) { return apply_queries("TRUNCATE TABLE", $S); } function drop_views($aj) { return queries("DROP VIEW " . implode(", ", array_map("table", $aj))); } function drop_tables($S) { return queries("DROP TABLE " . implode(", ", array_map("table", $S))); } function move_tables($S, $aj, $Xh) { $Kg = array(); foreach (array_merge($S, $aj) as $Q) { $Kg[] = table($Q) . " TO " . idf_escape($Xh) . "." . table($Q); } return queries("RENAME TABLE " . implode(", ", $Kg)); } function copy_tables($S, $aj, $Xh) { queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'"); foreach ($S as $Q) { $B = $Xh == DB ? table("copy_{$Q}") : idf_escape($Xh) . "." . table($Q); if ($_POST["overwrite"] && !queries("\xaDROP TABLE IF EXISTS {$B}") || !queries("CREATE TABLE {$B} LIKE " . table($Q)) || !queries("INSERT INTO {$B} SELECT * FROM " . table($Q))) { return false; } foreach (get_rows("SHOW TRIGGERS LIKE " . q(addcslashes($Q, "%_\"))) as $I) { $xi = $I["Trigger"]; if (!queries("CREATE TRIGGER " . ($Xh == DB ? idf_escape("copy_{$xi}") : idf_escape($Xh) . "." . idf_escape($xi)) . " {$I["Timing"]} {$I["Event"]} ON {$B} FOR EACH ROW\xa{$I["Statement"]};")) { return false; } } } foreach ($aj as $Q) { $B = $Xh == DB ? table("copy_{$Q}") : idf_escape($Xh) . "." . table($Q); $Zi = view($Q); if ($_POST["overwrite"] && !queries("DROP VIEW IF EXISTS {$B}") || !queries("CREATE VIEW {$B} AS {$Zi["select"]}")) { return false; } } return true; } function trigger($B) { if ($B == '') { return array(); } $J = get_rows("SHOW TRIGGERS WHERE `Trigger` = " . q($B)); return reset($J); } function triggers($Q) { $H = array(); foreach (get_rows("SHOW TRIGGERS LIKE " . q(addcslashes($Q, "%_\"))) as $I) { $H[$I["Trigger"]] = array($I["Timing"], $I["Event"]); } return $H; } function trigger_options() { return array("Timing" => array("BEFORE", "AFTER"), "Event" => array("INSERT", "UPDATE", "DELETE"), "Type" => array("FOR EACH ROW")); } function routine($B, $T) { global $g, $wc, $Rd, $U; $Ca = array("bool", "boolean", "integer", "double precision", "real", "dec", "numeric", "fixed", "national char", "national varchar"); $xh = "(?:\s|/\*[\s\S]*?\*/|(?:#|-- )[^\xa]*
?|--\xd?\xa)"; $Bi = "((" . implode("|", array_merge(array_keys($U), $Ca)) . ")\b(?:\s*\(((?:[^'")]|{$wc})++)\))?\s*(zerofill\s*)?(unsigned(?:\s+zerofill)?)?)(?:\s*(?:CHARSET|CHARACTER\s+SET)\s*['"]?([^'"\s,]+)['"]?)?"; $ag = "{$xh}*(" . ($T == "FUNCTION" ? '' : $Rd) . ")?\s*(?:`((?:[^`]|``)*)`\s*|\b(\S+)\s+){$Bi}"; $i = $g->result("SHOW CREATE {$T} " . idf_escape($B), 2); preg_match("~\(((?:{$ag}\s*,?)*)\)\s*" . ($T == "FUNCTION" ? "RETURNS\s+{$Bi}\s+" : '') . "(.*)~is", $i, $A); $p = array(); preg_match_all("~{$ag}\s*,?~is", $A[1], $De, PREG_SET_ORDER); foreach ($De as $Nf) { $p[] = array("field" => str_replace("``", "`", $Nf[2]) . $Nf[3], "type" => strtolower($Nf[5]), "length" => preg_replace_callback("~{$wc}~s", "normalize_enum", $Nf[6]), "unsigned" => strtolower(preg_replace("~\s+~", " ", trim("{$Nf["8"]} {$Nf["7"]}"))), "null" => 1, "full_type" => $Nf[4], "inout" => strtoupper($Nf[1]), "collation" => strtolower($Nf[9])); } if ($T != "FUNCTION") { return array("fields" => $p, "definition" => $A[11]); } return array("fields" => $p, "returns" => array("type" => $A[12], "length" => $A[13], "unsigned" => $A[15], "collation" => $A[16]), "definition" => $A[17], "language" => "SQL"); } function routines() { return get_rows("SELECT ROUTINE_NAME AS SPECIFIC_NAME, ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = " . q(DB)); } function routine_languages() { return array(); } function routine_id($B, $I) { return idf_escape($B); } function last_id() { global $g; return $g->result("SELECT LAST_INSERT_ID()"); } function explain($g, $F) { return $g->query("EXPLAIN " . (min_version(5.1) ? "PARTITIONS " : '') . $F); } function found_rows($R, $Z) { return $Z || $R["Engine"] != "InnoDB" ? null : $R["Rows"]; } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($ah, $h = null) { return true; } function create_sql($Q, $Ma, $Ih) { global $g; $H = $g->result("SHOW CREATE TABLE " . table($Q), 1); if (!$Ma) { $H = preg_replace("~ AUTO_INCREMENT=\d+~", '', $H); } return $H; } function truncate_sql($Q) { return "TRUNCATE " . table($Q); } function use_sql($j) { return "USE " . idf_escape($j); } function trigger_sql($Q) { $H = ''; foreach (get_rows("SHOW TRIGGERS LIKE " . q(addcslashes($Q, "%_\")), null, "-- ") as $I) { $H .= "
CREATE TRIGGER " . idf_escape($I["Trigger"]) . " {$I["Timing"]} {$I["Event"]} ON " . table($I["Table"]) . " FOR EACH ROW
{$I["Statement"]};;
"; } return $H; } function show_variables() { return get_key_vals("SHOW VARIABLES"); } function process_list() { return get_rows("SHOW FULL PROCESSLIST"); } function show_status() { return get_key_vals("SHOW STATUS"); } function convert_field($o) { if (preg_match("~binary~", $o["type"])) { return "HEX(" . idf_escape($o["field"]) . ")"; } if ($o["type"] == "bit") { return "BIN(" . idf_escape($o["field"]) . " + 0)"; } if (preg_match("~geometry|point|linestring|polygon~", $o["type"])) { return (min_version(8) ? "ST_" : '') . "AsWKT(" . idf_escape($o["field"]) . ")"; } } function unconvert_field($o, $H) { if (preg_match("~binary~", $o["type"])) { $H = "UNHEX({$H})"; } if ($o["type"] == "bit") { $H = "CONV({$H}, 2, 10) + 0"; } if (preg_match("~geometry|point|linestring|polygon~", $o["type"])) { $H = (min_version(8) ? "ST_" : '') . "GeomFromText({$H}, SRID({$o["field"]}))"; } return $H; } function support($Pc) { return !preg_match("~scheme|sequence|type|view_trigger|materializedview" . (min_version(8) ? '' : "|descidx" . (min_version(5.1) ? '' : "|event|partitioning" . (min_version(5) ? '' : "|routine|trigger|view"))) . "~", $Pc); } function kill_process($X) { return queries("KILL " . number($X)); } function connection_id() { return "SELECT CONNECTION_ID()"; } function max_connections() { global $g; return $g->result("SELECT @@max_connections"); } $x = "sql"; $U = array(); $Hh = array(); foreach (array("Numbers" => array("tinyint" => 3, "smallint" => 5, "mediumint" => 8, "int" => 10, "bigint" => 20, "decimal" => 66, "float" => 12, "double" => 21), "Date and time" => array("date" => 10, "datetime" => 19, "timestamp" => 19, "time" => 10, "year" => 4), "Strings" => array("char" => 255, "varchar" => 65535, "tinytext" => 255, "text" => 65535, "mediumtext" => 16777215, "longtext" => 4294967295), "Lists" => array("enum" => 65535, "set" => 64), "Binary" => array("bit" => 20, "binary" => 255, "varbinary" => 65535, "tinyblob" => 255, "blob" => 65535, "mediumblob" => 16777215, "longblob" => 4294967295), "Geometry" => array("geometry" => 0, "point" => 0, "linestring" => 0, "polygon" => 0, "multipoint" => 0, "multilinestring" => 0, "multipolygon" => 0, "geometrycollection" => 0)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array("unsigned", "zerofill", "unsigned zerofill"); $vf = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "REGEXP", "IN", "FIND_IN_SET", "IS NULL", "NOT LIKE", "NOT REGEXP", "NOT IN", "IS NOT NULL", "SQL"); $kd = array("char_length", "date", "from_unixtime", "lower", "round", "floor", "ceil", "sec_to_time", "time_to_sec", "upper"); $qd = array("avg", "count", "count distinct", "group_concat", "max", "min", "sum"); $mc = array(array("char" => "md5/sha1/password/encrypt/uuid", "binary" => "md5/sha1", "date|time" => "now"), array(number_type() => "+/-", "date" => "+ interval/- interval", "time" => "addtime/subtime", "char|text" => "concat")); } goto LUb8G; u46ab: if (isset($_GET["username"]) && is_string(get_password())) { list($Ad, $dg) = explode(":", SERVER, 2); if (is_numeric($dg) && $dg < 1024) { auth_error("Connecting to privileged ports is not allowed."); } check_invalid_login(); $g = connect(); $m = new Min_Driver($g); } goto RWxgJ; scVB7: if (isset($_GET["mongo"])) { $hg = array("mongo", "mongodb"); define("DRIVER", "mongo"); if (class_exists("MongoDB")) { class Min_DB { var $extension = "Mongo", $server_info = MongoClient::VERSION, $error, $last_id, $_link, $_db; function connect($Ki, $yf) { return @new MongoClient($Ki, $yf); } function query($F) { return false; } function select_db($j) { try { $this->_db = $this->_link->selectDB($j); return true; } catch (Exception $Ac) { $this->error = $Ac->getMessage(); return false; } } function quote($P) { return $P; } } class Min_Result { var $num_rows, $_rows = array(), $_offset = 0, $_charset = array(); function __construct($G) { foreach ($G as $be) { $I = array(); foreach ($be as $y => $X) { if (is_a($X, "MongoBinData")) { $this->_charset[$y] = 63; } $I[$y] = is_a($X, "MongoId") ? "ObjectId("" . strval($X) . "")" : (is_a($X, "MongoDate") ? gmdate("Y-m-d H:i:s", $X->sec) . " GMT" : (is_a($X, "MongoBinData") ? $X->bin : (is_a($X, "MongoRegex") ? strval($X) : (is_object($X) ? get_class($X) : $X)))); } $this->_rows[] = $I; foreach ($I as $y => $X) { if (!isset($this->_rows[0][$y])) { $this->_rows[0][$y] = null; } } } $this->num_rows = count($this->_rows); } function fetch_assoc() { $I = current($this->_rows); if (!$I) { return $I; } $H = array(); foreach ($this->_rows[0] as $y => $X) { $H[$y] = $I[$y]; } next($this->_rows); return $H; } function fetch_row() { $H = $this->fetch_assoc(); if (!$H) { return $H; } return array_values($H); } function fetch_field() { $he = array_keys($this->_rows[0]); $B = $he[$this->_offset++]; return (object) array("name" => $B, "charsetnr" => $this->_charset[$B]); } } class Min_Driver extends Min_SQL { public $kg = "_id"; function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { $K = $K == array("*") ? array() : array_fill_keys($K, true); $vh = array(); foreach ($_f as $X) { $X = preg_replace("~ DESC$~", '', $X, 1, $Eb); $vh[$X] = $Eb ? -1 : 1; } return new Min_Result($this->_conn->_db->selectCollection($Q)->find(array(), $K)->sort($vh)->limit($z != '' ? +$z : 0)->skip($D * $z)); } function insert($Q, $N) { try { $H = $this->_conn->_db->selectCollection($Q)->insert($N); $this->_conn->errno = $H["code"]; $this->_conn->error = $H["err"]; $this->_conn->last_id = $N["_id"]; return !$H["err"]; } catch (Exception $Ac) { $this->_conn->error = $Ac->getMessage(); return false; } } } function get_databases($ad) { global $g; $H = array(); $Rb = $g->_link->listDBs(); foreach ($Rb["databases"] as $l) { $H[] = $l["name"]; } return $H; } function count_tables($k) { global $g; $H = array(); foreach ($k as $l) { $H[$l] = count($g->_link->selectDB($l)->getCollectionNames(true)); } return $H; } function tables_list() { global $g; return array_fill_keys($g->_db->getCollectionNames(true), "table"); } function drop_databases($k) { global $g; foreach ($k as $l) { $Mg = $g->_link->selectDB($l)->drop(); if (!$Mg["ok"]) { return false; } } return true; } function indexes($Q, $h = null) { global $g; $H = array(); foreach ($g->_db->selectCollection($Q)->getIndexInfo() as $v) { $Yb = array(); foreach ($v["key"] as $e => $T) { $Yb[] = $T == -1 ? "1" : null; } $H[$v["name"]] = array("type" => $v["name"] == "_id_" ? "PRIMARY" : ($v["unique"] ? "UNIQUE" : "INDEX"), "columns" => array_keys($v["key"]), "lengths" => array(), "descs" => $Yb); } return $H; } function fields($Q) { return fields_from_edit(); } function found_rows($R, $Z) { global $g; return $g->_db->selectCollection($_GET["select"])->count($Z); } $vf = array("="); } elseif (class_exists("MongoDB\Driver\Manager")) { class Min_DB { var $extension = "MongoDB", $server_info = MONGODB_VERSION, $error, $last_id; var $_link; var $_db, $_db_name; function connect($Ki, $yf) { $kb = "MongoDB\Driver\Manager"; return new $kb($Ki, $yf); } function query($F) { return false; } function select_db($j) { $this->_db_name = $j; return true; } function quote($P) { return $P; } } class Min_Result { var $num_rows, $_rows = array(), $_offset = 0, $_charset = array(); function __construct($G) { foreach ($G as $be) { $I = array(); foreach ($be as $y => $X) { if (is_a($X, "MongoDB\BSON\Binary")) { $this->_charset[$y] = 63; } $I[$y] = is_a($X, "MongoDB\BSON\ObjectID") ? "MongoDB\BSON\ObjectID("" . strval($X) . "")" : (is_a($X, "MongoDB\BSON\UTCDatetime") ? $X->toDateTime()->format("Y-m-d H:i:s") : (is_a($X, "MongoDB\BSON\Binary") ? $X->bin : (is_a($X, "MongoDB\BSON\Regex") ? strval($X) : (is_object($X) ? json_encode($X, 256) : $X)))); } $this->_rows[] = $I; foreach ($I as $y => $X) { if (!isset($this->_rows[0][$y])) { $this->_rows[0][$y] = null; } } } $this->num_rows = $G->count; } function fetch_assoc() { $I = current($this->_rows); if (!$I) { return $I; } $H = array(); foreach ($this->_rows[0] as $y => $X) { $H[$y] = $I[$y]; } next($this->_rows); return $H; } function fetch_row() { $H = $this->fetch_assoc(); if (!$H) { return $H; } return array_values($H); } function fetch_field() { $he = array_keys($this->_rows[0]); $B = $he[$this->_offset++]; return (object) array("name" => $B, "charsetnr" => $this->_charset[$B]); } } class Min_Driver extends Min_SQL { public $kg = "_id"; function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { global $g; $K = $K == array("*") ? array() : array_fill_keys($K, 1); if (count($K) && !isset($K["_id"])) { $K["_id"] = 0; } $Z = where_to_query($Z); $vh = array(); foreach ($_f as $X) { $X = preg_replace("~ DESC$~", '', $X, 1, $Eb); $vh[$X] = $Eb ? -1 : 1; } if (isset($_GET["limit"]) && is_numeric($_GET["limit"]) && $_GET["limit"] > 0) { $z = $_GET["limit"]; } $z = min(200, max(1, (int) $z)); $sh = $D * $z; $kb = "MongoDB\Driver\Query"; $F = new $kb($Z, array("projection" => $K, "limit" => $z, "skip" => $sh, "sort" => $vh)); $Pg = $g->_link->executeQuery("{$g->_db_name}.{$Q}", $F); return new Min_Result($Pg); } function update($Q, $N, $wg, $z = 0, $L = "\xa") { global $g; $l = $g->_db_name; $Z = sql_query_where_parser($wg); $kb = "MongoDB\Driver\BulkWrite"; $Za = new $kb(array()); if (isset($N["_id"])) { unset($N["_id"]); } $Jg = array(); foreach ($N as $y => $Y) { if ($Y == "NULL") { $Jg[$y] = 1; unset($N[$y]); } } $Ji = array("$set" => $N); if (count($Jg)) { $Ji["$unset"] = $Jg; } $Za->update($Z, $Ji, array("upsert" => false)); $Pg = $g->_link->executeBulkWrite("{$l}.{$Q}", $Za); $g->affected_rows = $Pg->getModifiedCount(); return true; } function delete($Q, $wg, $z = 0) { global $g; $l = $g->_db_name; $Z = sql_query_where_parser($wg); $kb = "MongoDB\Driver\BulkWrite"; $Za = new $kb(array()); $Za->delete($Z, array("limit" => $z)); $Pg = $g->_link->executeBulkWrite("{$l}.{$Q}", $Za); $g->affected_rows = $Pg->getDeletedCount(); return true; } function insert($Q, $N) { global $g; $l = $g->_db_name; $kb = "MongoDB\Driver\BulkWrite"; $Za = new $kb(array()); if (isset($N["_id"]) && empty($N["_id"])) { unset($N["_id"]); } $Za->insert($N); $Pg = $g->_link->executeBulkWrite("{$l}.{$Q}", $Za); $g->affected_rows = $Pg->getInsertedCount(); return true; } } function get_databases($ad) { global $g; $H = array(); $kb = "MongoDB\Driver\Command"; $sb = new $kb(array("listDatabases" => 1)); $Pg = $g->_link->executeCommand("admin", $sb); foreach ($Pg as $Rb) { foreach ($Rb->databases as $l) { $H[] = $l->name; } } return $H; } function count_tables($k) { $H = array(); return $H; } function tables_list() { global $g; $kb = "MongoDB\Driver\Command"; $sb = new $kb(array("listCollections" => 1)); $Pg = $g->_link->executeCommand($g->_db_name, $sb); $qb = array(); foreach ($Pg as $G) { $qb[$G->name] = "table"; } return $qb; } function drop_databases($k) { return false; } function indexes($Q, $h = null) { global $g; $H = array(); $kb = "MongoDB\Driver\Command"; $sb = new $kb(array("listIndexes" => $Q)); $Pg = $g->_link->executeCommand($g->_db_name, $sb); foreach ($Pg as $v) { $Yb = array(); $f = array(); foreach (get_object_vars($v->key) as $e => $T) { $Yb[] = $T == -1 ? "1" : null; $f[] = $e; } $H[$v->name] = array("type" => $v->name == "_id_" ? "PRIMARY" : (isset($v->unique) ? "UNIQUE" : "INDEX"), "columns" => $f, "lengths" => array(), "descs" => $Yb); } return $H; } function fields($Q) { $p = fields_from_edit(); if (!count($p)) { global $m; $G = $m->select($Q, array("*"), null, null, array(), 10); while ($I = $G->fetch_assoc()) { foreach ($I as $y => $X) { $I[$y] = null; $p[$y] = array("field" => $y, "type" => "string", "null" => $y != $m->primary, "auto_increment" => $y == $m->primary, "privileges" => array("insert" => 1, "select" => 1, "update" => 1)); } } } return $p; } function found_rows($R, $Z) { global $g; $Z = where_to_query($Z); $kb = "MongoDB\Driver\Command"; $sb = new $kb(array("count" => $R["Name"], "query" => $Z)); $Pg = $g->_link->executeCommand($g->_db_name, $sb); $ni = $Pg->toArray(); return $ni[0]->n; } function sql_query_where_parser($wg) { $wg = trim(preg_replace("/WHERE[\s]?[(]?\(?/", '', $wg)); $wg = preg_replace("/\)\)\)$/", ")", $wg); $kj = explode(" AND ", $wg); $lj = explode(") OR (", $wg); $Z = array(); foreach ($kj as $ij) { $Z[] = trim($ij); } if (count($lj) == 1) { $lj = array(); } elseif (count($lj) > 1) { $Z = array(); } return where_to_query($Z, $lj); } function where_to_query($gj = array(), $hj = array()) { global $b; $Mb = array(); foreach (array("and" => $gj, "or" => $hj) as $T => $Z) { if (is_array($Z)) { foreach ($Z as $Hc) { list($nb, $tf, $X) = explode(" ", $Hc, 3); if ($nb == "_id") { $X = str_replace("MongoDB\BSON\ObjectID("", '', $X); $X = str_replace("")", '', $X); $kb = "MongoDB\BSON\ObjectID"; $X = new $kb($X); } if (!in_array($tf, $b->operators)) { continue; } if (preg_match("~^\(f\)(.+)~", $tf, $A)) { $X = (double) $X; $tf = $A[1]; } elseif (preg_match("~^\(date\)(.+)~", $tf, $A)) { $Ob = new DateTime($X); $kb = "MongoDB\BSON\UTCDatetime"; $X = new $kb($Ob->getTimestamp() * 1000); $tf = $A[1]; } switch ($tf) { case "=": $tf = "$eq"; break; case "!=": $tf = "$ne"; break; case ">": $tf = "$gt"; break; case "<": $tf = "$lt"; break; case ">=": $tf = "$gte"; break; case "<=": $tf = "$lte"; break; case "regex": $tf = "$regex"; break; default: continue 2; } if ($T == "and") { $Mb["$and"][] = array($nb => array($tf => $X)); } elseif ($T == "or") { $Mb["$or"][] = array($nb => array($tf => $X)); } } } } return $Mb; } $vf = array("=", "!=", ">", "<", ">=", "<=", "regex", "(f)=", "(f)!=", "(f)>", "(f)<", "(f)>=", "(f)<=", "(date)=", "(date)!=", "(date)>", "(date)<", "(date)>=", "(date)<="); } function table($u) { return $u; } function idf_escape($u) { return $u; } function table_status($B = '', $Oc = false) { $H = array(); foreach (tables_list() as $Q => $T) { $H[$Q] = array("Name" => $Q); if ($B == $Q) { return $H[$Q]; } } return $H; } function create_database($l, $d) { return true; } function last_id() { global $g; return $g->last_id; } function error() { global $g; return h($g->error); } function collations() { return array(); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function connect() { global $b; $g = new Min_DB(); list($M, $V, $E) = $b->credentials(); $yf = array(); if ($V . $E != '') { $yf["username"] = $V; $yf["password"] = $E; } $l = $b->database(); if ($l != '') { $yf["db"] = $l; } if ($La = getenv("MONGO_AUTH_SOURCE")) { $yf["authSource"] = $La; } try { $g->_link = $g->connect("mongodb://{$M}", $yf); if ($E != '') { $yf["password"] = ''; try { $g->connect("mongodb://{$M}", $yf); return "Database does not support password."; } catch (Exception $Ac) { } } return $g; } catch (Exception $Ac) { return $Ac->getMessage(); } } function alter_indexes($Q, $c) { global $g; foreach ($c as $X) { list($T, $B, $N) = $X; if ($N == "DROP") { $H = $g->_db->command(array("deleteIndexes" => $Q, "index" => $B)); } else { $f = array(); foreach ($N as $e) { $e = preg_replace("~ DESC$~", '', $e, 1, $Eb); $f[$e] = $Eb ? -1 : 1; } $H = $g->_db->selectCollection($Q)->ensureIndex($f, array("unique" => $T == "UNIQUE", "name" => $B)); } if ($H["errmsg"]) { $g->error = $H["errmsg"]; return false; } } return true; } function support($Pc) { return preg_match("~database|indexes|descidx~", $Pc); } function db_collation($l, $pb) { } function information_schema() { } function is_view($R) { } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function foreign_keys($Q) { return array(); } function fk_support($R) { } function engines() { return array(); } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { global $g; if ($Q == '') { $g->_db->createCollection($B); return true; } } function drop_tables($S) { global $g; foreach ($S as $Q) { $Mg = $g->_db->selectCollection($Q)->drop(); if (!$Mg["ok"]) { return false; } } return true; } function truncate_tables($S) { global $g; foreach ($S as $Q) { $Mg = $g->_db->selectCollection($Q)->remove(); if (!$Mg["ok"]) { return false; } } return true; } $x = "mongo"; $kd = array(); $qd = array(); $mc = array(array("json")); } goto pRcnJ; AiVu3: function on_help($sb, $qh = 0) { return script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, {$sb}, {$qh}) }, onmouseout: helpMouseout});", ''); } goto G0CT2; pVXc_: if (isset($_GET["function"])) { $_GET["procedure"] = $_GET["function"]; } goto AYrEe; RX6lf: if (get_magic_quotes_runtime()) { set_magic_quotes_runtime(false); } goto xasIE; TmWkI: if ($Ka && $_POST["token"]) { $_POST["token"] = $oi; } goto JmI6C; geZPx: $ec["mongo"] = "MongoDB"; goto scVB7; cAlTG: error_reporting(6135); goto kEVQv; nLcQO: function connection() { global $g; return $g; } goto de3G4; dGFvA: function column_foreign_keys($Q) { global $b; $H = array(); foreach ($b->foreignKeys($Q) as $q) { foreach ($q["source"] as $X) { $H[$X][] = $q; } } return $H; } goto JWKdn; Lcruv: function print_fieldset($t, $se, $bj = false) { echo "<fieldset><legend>", "<a href='#fieldset-{$t}'>{$se}</a>", script("qsl('a').onclick = partial(toggle, 'fieldset-{$t}');", ''), "</legend>", "<div id='fieldset-{$t}'" . ($bj ? '' : " class='hidden'") . ">\xa"; } goto S6Tp1; EJ93X: function create_routine($Ug, $I) { global $Rd, $x; $N = array(); $p = (array) $I["fields"]; ksort($p); foreach ($p as $o) { if ($o["field"] != '') { $N[] = (preg_match("~^({$Rd})$~", $o["inout"]) ? "{$o["inout"]} " : '') . idf_escape($o["field"]) . process_type($o, "CHARACTER SET"); } } $Ub = rtrim("
{$I["definition"]}", ";"); return "CREATE {$Ug} " . idf_escape(trim($I["name"])) . " (" . implode(", ", $N) . ")" . (isset($_GET["function"]) ? " RETURNS" . process_type($I["returns"], "CHARACTER SET") : '') . ($I["language"] ? " LANGUAGE {$I["language"]}" : '') . ($x == "pgsql" ? " AS " . q($Ub) : "{$Ub};"); } goto MDkDi; z3Dgn: function select($G, $h = null, $Cf = array(), $z = 0) { global $x; $we = array(); $w = array(); $f = array(); $Ua = array(); $U = array(); $H = array(); odd(''); for ($s = 0; (!$z || $s < $z) && ($I = $G->fetch_row()); $s++) { if (!$s) { echo "<div class='scrollable'>\xa", "<table cellspacing='0' class='nowrap'>
", "<thead><tr>"; for ($ce = 0; $ce < count($I); $ce++) { $o = $G->fetch_field(); $B = $o->name; $Bf = $o->orgtable; $Af = $o->orgname; $H[$o->table] = $Bf; if ($Cf && $x == "sql") { $we[$ce] = $B == "table" ? "table=" : ($B == "possible_keys" ? "indexes=" : null); } elseif ($Bf != '') { if (!isset($w[$Bf])) { $w[$Bf] = array(); foreach (indexes($Bf, $h) as $v) { if ($v["type"] == "PRIMARY") { $w[$Bf] = array_flip($v["columns"]); break; } } $f[$Bf] = $w[$Bf]; } if (isset($f[$Bf][$Af])) { unset($f[$Bf][$Af]); $w[$Bf][$Af] = $ce; $we[$ce] = $Bf; } } if ($o->charsetnr == 63) { $Ua[$ce] = true; } $U[$ce] = $o->type; echo "<th" . ($Bf != '' || $o->name != $Af ? " title='" . h(($Bf != '' ? "{$Bf}." : '') . $Af) . "'" : '') . ">" . h($B) . ($Cf ? doc_link(array("sql" => "explain-output.html#explain_" . strtolower($B), "mariadb" => "explain/#the-columns-in-explain-select")) : ''); } echo "</thead>\xa"; } echo "<tr" . odd() . ">"; foreach ($I as $y => $X) { if ($X === null) { $X = "<i>NULL</i>"; } elseif ($Ua[$y] && !is_utf8($X)) { $X = "<i>" . lang(array("%d byte", "%d bytes"), strlen($X)) . "</i>"; } else { $X = h($X); if ($U[$y] == 254) { $X = "<code>{$X}</code>"; } } if (isset($we[$y]) && !$f[$we[$y]]) { if ($Cf && $x == "sql") { $Q = $I[array_search("table=", $we)]; $_ = $we[$y] . urlencode($Cf[$Q] != '' ? $Cf[$Q] : $Q); } else { $_ = "edit=" . urlencode($we[$y]); foreach ($w[$we[$y]] as $nb => $ce) { $_ .= "&where" . urlencode("[" . bracket_escape($nb) . "]") . "=" . urlencode($I[$ce]); } } $X = "<a href='" . h(ME . $_) . "'>{$X}</a>"; } echo "<td>{$X}"; } } echo ($s ? "</table>\xa</div>" : "<p class='message'>" . "No rows.") . "
"; return $H; } goto VBuZg; rdi_o: if (isset($_GET["simpledb"])) { $hg = array("SimpleXML + allow_url_fopen"); define("DRIVER", "simpledb"); if (class_exists("SimpleXMLElement") && ini_bool("allow_url_fopen")) { class Min_DB { var $extension = "SimpleXML", $server_info = "2009-04-15", $error, $timeout, $next, $affected_rows, $_result; function select_db($j) { return $j == "domain"; } function query($F, $Ci = false) { $Of = array("SelectExpression" => $F, "ConsistentRead" => "true"); if ($this->next) { $Of["NextToken"] = $this->next; } $G = sdb_request_all("Select", "Item", $Of, $this->timeout); $this->timeout = 0; if ($G === false) { return $G; } if (preg_match("~^\s*SELECT\s+COUNT\(~i", $F)) { $Lh = 0; foreach ($G as $be) { $Lh += $be->Attribute->Value; } $G = array((object) array("Attribute" => array((object) array("Name" => "Count", "Value" => $Lh)))); } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function quote($P) { return "'" . str_replace("'", "''", $P) . "'"; } } class Min_Result { var $num_rows, $_rows = array(), $_offset = 0; function __construct($G) { foreach ($G as $be) { $I = array(); if ($be->Name != '') { $I["itemName()"] = (string) $be->Name; } foreach ($be->Attribute as $Ia) { $B = $this->_processValue($Ia->Name); $Y = $this->_processValue($Ia->Value); if (isset($I[$B])) { $I[$B] = (array) $I[$B]; $I[$B][] = $Y; } else { $I[$B] = $Y; } } $this->_rows[] = $I; foreach ($I as $y => $X) { if (!isset($this->_rows[0][$y])) { $this->_rows[0][$y] = null; } } } $this->num_rows = count($this->_rows); } function _processValue($pc) { return is_object($pc) && $pc["encoding"] == "base64" ? base64_decode($pc) : (string) $pc; } function fetch_assoc() { $I = current($this->_rows); if (!$I) { return $I; } $H = array(); foreach ($this->_rows[0] as $y => $X) { $H[$y] = $I[$y]; } next($this->_rows); return $H; } function fetch_row() { $H = $this->fetch_assoc(); if (!$H) { return $H; } return array_values($H); } function fetch_field() { $he = array_keys($this->_rows[0]); return (object) array("name" => $he[$this->_offset++]); } } } class Min_Driver extends Min_SQL { public $kg = "itemName()"; function _chunkRequest($Ed, $va, $Of, $Ec = array()) { global $g; foreach (array_chunk($Ed, 25) as $ib) { $Pf = $Of; foreach ($ib as $s => $t) { $Pf["Item.{$s}.ItemName"] = $t; foreach ($Ec as $y => $X) { $Pf["Item.{$s}.{$y}"] = $X; } } if (!sdb_request($va, $Pf)) { return false; } } $g->affected_rows = count($Ed); return true; } function _extractIds($Q, $wg, $z) { $H = array(); if (preg_match_all("~itemName\(\) = (('[^']*+')+)~", $wg, $De)) { $H = array_map("idf_unescape", $De[1]); } else { foreach (sdb_request_all("Select", "Item", array("SelectExpression" => "SELECT itemName() FROM " . table($Q) . $wg . ($z ? " LIMIT 1" : ''))) as $be) { $H[] = $be->Name; } } return $H; } function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { global $g; $g->next = $_GET["next"]; $H = parent::select($Q, $K, $Z, $nd, $_f, $z, $D, $mg); $g->next = 0; return $H; } function delete($Q, $wg, $z = 0) { return $this->_chunkRequest($this->_extractIds($Q, $wg, $z), "BatchDeleteAttributes", array("DomainName" => $Q)); } function update($Q, $N, $wg, $z = 0, $L = "
") { $Vb = array(); $Td = array(); $s = 0; $Ed = $this->_extractIds($Q, $wg, $z); $t = idf_unescape($N["`itemName()`"]); unset($N["`itemName()`"]); foreach ($N as $y => $X) { $y = idf_unescape($y); if ($X == "NULL" || $t != '' && array($t) != $Ed) { $Vb["Attribute." . count($Vb) . ".Name"] = $y; } if ($X != "NULL") { foreach ((array) $X as $de => $W) { $Td["Attribute.{$s}.Name"] = $y; $Td["Attribute.{$s}.Value"] = is_array($X) ? $W : idf_unescape($W); if (!$de) { $Td["Attribute.{$s}.Replace"] = "true"; } $s++; } } } $Of = array("DomainName" => $Q); return (!$Td || $this->_chunkRequest($t != '' ? array($t) : $Ed, "BatchPutAttributes", $Of, $Td)) && (!$Vb || $this->_chunkRequest($Ed, "BatchDeleteAttributes", $Of, $Vb)); } function insert($Q, $N) { $Of = array("DomainName" => $Q); $s = 0; foreach ($N as $B => $Y) { if ($Y != "NULL") { $B = idf_unescape($B); if ($B == "itemName()") { $Of["ItemName"] = idf_unescape($Y); } else { foreach ((array) $Y as $X) { $Of["Attribute.{$s}.Name"] = $B; $Of["Attribute.{$s}.Value"] = is_array($Y) ? $X : idf_unescape($Y); $s++; } } } } return sdb_request("PutAttributes", $Of); } function insertUpdate($Q, $J, $kg) { foreach ($J as $N) { if (!$this->update($Q, $N, "WHERE `itemName()` = " . q($N["`itemName()`"]))) { return false; } } return true; } function begin() { return false; } function commit() { return false; } function rollback() { return false; } function slowQuery($F, $fi) { $this->_conn->timeout = $fi; return $F; } } function connect() { global $b; list(, , $E) = $b->credentials(); if ($E != '') { return "Database does not support password."; } return new Min_DB(); } function support($Pc) { return preg_match("~sql~", $Pc); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function get_databases() { return array("domain"); } function collations() { return array(); } function db_collation($l, $pb) { } function tables_list() { global $g; $H = array(); foreach (sdb_request_all("ListDomains", "DomainName") as $Q) { $H[(string) $Q] = "table"; } if ($g->error && defined("PAGE_HEADER")) { echo "<p class='error'>" . error() . "
"; } return $H; } function table_status($B = '', $Oc = false) { $H = array(); foreach ($B != '' ? array($B => true) : tables_list() as $Q => $T) { $I = array("Name" => $Q, "Auto_increment" => ''); if (!$Oc) { $Qe = sdb_request("DomainMetadata", array("DomainName" => $Q)); if ($Qe) { foreach (array("Rows" => "ItemCount", "Data_length" => "ItemNamesSizeBytes", "Index_length" => "AttributeValuesSizeBytes", "Data_free" => "AttributeNamesSizeBytes") as $y => $X) { $I[$y] = (string) $Qe->{$X}; } } } if ($B != '') { return $I; } $H[$Q] = $I; } return $H; } function explain($g, $F) { } function error() { global $g; return h($g->error); } function information_schema() { } function is_view($R) { } function indexes($Q, $h = null) { return array(array("type" => "PRIMARY", "columns" => array("itemName()"))); } function fields($Q) { return fields_from_edit(); } function foreign_keys($Q) { return array(); } function table($u) { return idf_escape($u); } function idf_escape($u) { return "`" . str_replace("`", "``", $u) . "`"; } function limit($F, $Z, $z, $C = 0, $L = " ") { return " {$F}{$Z}" . ($z !== null ? $L . "LIMIT {$z}" : ''); } function unconvert_field($o, $H) { return $H; } function fk_support($R) { } function engines() { return array(); } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { return $Q == '' && sdb_request("CreateDomain", array("DomainName" => $B)); } function drop_tables($S) { foreach ($S as $Q) { if (!sdb_request("DeleteDomain", array("DomainName" => $Q))) { return false; } } return true; } function count_tables($k) { foreach ($k as $l) { return array($l => count(tables_list())); } } function found_rows($R, $Z) { return $Z ? null : $R["Rows"]; } function last_id() { } function hmac($Ba, $Mb, $y, $_g = false) { $Va = 64; if (strlen($y) > $Va) { $y = pack("H*", $Ba($y)); } $y = str_pad($y, $Va, "\0"); $ee = $y ^ str_repeat("6", $Va); $fe = $y ^ str_repeat("\", $Va); $H = $Ba($fe . pack("H*", $Ba($ee . $Mb))); if ($_g) { $H = pack("H*", $H); } return $H; } function sdb_request($va, $Of = array()) { global $b, $g; list($Ad, $Of["AWSAccessKeyId"], $dh) = $b->credentials(); $Of["Action"] = $va; $Of["Timestamp"] = gmdate("Y-m-d\TH:i:s+00:00"); $Of["Version"] = "2009-04-15"; $Of["SignatureVersion"] = 2; $Of["SignatureMethod"] = "HmacSHA1"; ksort($Of); $F = ''; foreach ($Of as $y => $X) { $F .= "&" . rawurlencode($y) . "=" . rawurlencode($X); } $F = str_replace("%7E", "~", substr($F, 1)); $F .= "&Signature=" . urlencode(base64_encode(hmac("sha1", "POST\xa" . preg_replace("~^https?://~", '', $Ad) . "\xa/
{$F}", $dh, true))); @ini_set("track_errors", 1); $Tc = @file_get_contents(preg_match("~^https?://~", $Ad) ? $Ad : "http://{$Ad}", false, stream_context_create(array("http" => array("method" => "POST", "content" => $F, "ignore_errors" => 1)))); if (!$Tc) { $g->error = $php_errormsg; return false; } libxml_use_internal_errors(true); $nj = simplexml_load_string($Tc); if (!$nj) { $n = libxml_get_last_error(); $g->error = $n->message; return false; } if ($nj->Errors) { $n = $nj->Errors->Error; $g->error = "{$n->Message} ({$n->Code})"; return false; } $g->error = ''; $Wh = $va . "Result"; return $nj->{$Wh} ? $nj->{$Wh} : true; } function sdb_request_all($va, $Wh, $Of = array(), $fi = 0) { $H = array(); $Dh = $fi ? microtime(true) : 0; $z = preg_match("~LIMIT\s+(\d+)\s*$~i", $Of["SelectExpression"], $A) ? $A[1] : 0; do { $nj = sdb_request($va, $Of); if (!$nj) { break; } foreach ($nj->{$Wh} as $pc) { $H[] = $pc; } if ($z && count($H) >= $z) { $_GET["next"] = $nj->NextToken; break; } if ($fi && microtime(true) - $Dh > $fi) { return false; } $Of["NextToken"] = $nj->NextToken; if ($z) { $Of["SelectExpression"] = preg_replace("~\d+\s*$~", $z - count($H), $Of["SelectExpression"]); } } while ($nj->NextToken); return $H; } $x = "simpledb"; $vf = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "IS NOT NULL"); $kd = array(); $qd = array("count"); $mc = array(array("json")); } goto geZPx; Zduqw: function pagination($D, $Kb) { return " " . ($D == $Kb ? $D + 1 : "<a href="" . h(remove_from_uri("page") . ($D ? "&page={$D}" . ($_GET["next"] ? "&next=" . urlencode($_GET["next"]) : '') : '')) . "">" . ($D + 1) . "</a>"); } goto t00RN; KQ53I: function is_utf8($X) { return preg_match("~~u", $X) && !preg_match("~[\0-\x8\xB\xC\xE-\x1F]~", $X); } goto FC3fb; prqzq: function odd($H = " class="odd"") { static $s = 0; if (!$H) { $s = -1; } return $s++ % 2 ? $H : ''; } goto BN2q6; JyDzv: function repeat_pattern($ag, $te) { return str_repeat("{$ag}{0,65535}", $te / 65535) . "{$ag}{0," . $te % 65535 . "}"; } goto KQ53I; MRnk7: remove_slashes(array(&$_GET, &$_POST, &$_COOKIE), $Vc); goto RX6lf; RWxgJ: $ye = null; goto p4jCj; hv8UT: function format_number($X) { return strtr(number_format($X, 0, ".", ","), preg_split("~~u", "0123456789", -1, PREG_SPLIT_NO_EMPTY)); } goto sfE5t; FlKAu: function doc_link($Zf, $ci = "<sup>?</sup>") { global $x, $g; $lh = $g->server_info; $Yi = preg_replace("~^(\d\.?\d).*~s", "\1", $lh); $Ni = array("sql" => "https://dev.mysql.com/doc/refman/{$Yi}/en/", "sqlite" => "https://www.sqlite.org/", "pgsql" => "https://www.postgresql.org/docs/{$Yi}/", "mssql" => "https://msdn.microsoft.com/library/", "oracle" => "https://www.oracle.com/pls/topic/lookup?ctx=db" . preg_replace("~^.* (\d+)\.(\d+)\.\d+\.\d+\.\d+.*~s", "\1\2", $lh) . "&id="); if (preg_match("~MariaDB~", $lh)) { $Ni["sql"] = "https://mariadb.com/kb/en/library/"; $Zf["sql"] = isset($Zf["mariadb"]) ? $Zf["mariadb"] : str_replace(".html", "/", $Zf["sql"]); } return $Zf[$x] ? "<a href='{$Ni[$x]}{$Zf[$x]}'" . target_blank() . ">{$ci}</a>" : ''; } goto W7QUt; de3G4: function adminer() { global $b; return $b; } goto u7zDi; r1Zy_: function q($P) { global $g; return $g->quote($P); } goto rwWko; pz3Oi: $Rd = "IN|OUT|INOUT"; goto Au5Hf; SbePJ: function select_input($Ja, $yf, $Y = '', $rf = '', $cg = '') { $Wh = $yf ? "select" : "input"; return "<{$Wh}{$Ja}" . ($yf ? "><option value=''>{$cg}" . optionlist($yf, $Y, true) . "</select>" : " size='10' value='" . h($Y) . "' placeholder='{$cg}'>") . ($rf ? script("qsl('{$Wh}').onchange = {$rf};", '') : ''); } goto lUNHA; ogDh9: function script_src($Li) { return "<script src='" . h($Li) . "'" . nonce() . "></script>
"; } goto aDTTC; Wu_3O: function h($P) { return str_replace("\x0", "&#0;", htmlspecialchars($P, ENT_QUOTES, "utf-8")); } goto EXx4T; aSj1Y: if (isset($_GET["oracle"])) { $hg = array("OCI8", "PDO_OCI"); define("DRIVER", "oracle"); if (extension_loaded("oci8")) { class Min_DB { var $extension = "oci8", $_link, $_result, $server_info, $affected_rows, $errno, $error; function _error($xc, $n) { if (ini_bool("html_errors")) { $n = html_entity_decode(strip_tags($n)); } $n = preg_replace("~^[^:]*: ~", '', $n); $this->error = $n; } function connect($M, $V, $E) { $this->_link = @oci_new_connect($V, $E, $M, "AL32UTF8"); if ($this->_link) { $this->server_info = oci_server_version($this->_link); return true; } $n = oci_error(); $this->error = $n["message"]; return false; } function quote($P) { return "'" . str_replace("'", "''", $P) . "'"; } function select_db($j) { return true; } function query($F, $Ci = false) { $G = oci_parse($this->_link, $F); $this->error = ''; if (!$G) { $n = oci_error($this->_link); $this->errno = $n["code"]; $this->error = $n["message"]; return false; } set_error_handler(array($this, "_error")); $H = @oci_execute($G); restore_error_handler(); if ($H) { if (oci_num_fields($G)) { return new Min_Result($G); } $this->affected_rows = oci_num_rows($G); } return $H; } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 1) { $G = $this->query($F); if (!is_object($G) || !oci_fetch($G->_result)) { return false; } return oci_result($G->_result, $o); } } class Min_Result { var $_result, $_offset = 1, $num_rows; function __construct($G) { $this->_result = $G; } function _convert($I) { foreach ((array) $I as $y => $X) { if (is_a($X, "OCI-Lob")) { $I[$y] = $X->load(); } } return $I; } function fetch_assoc() { return $this->_convert(oci_fetch_assoc($this->_result)); } function fetch_row() { return $this->_convert(oci_fetch_row($this->_result)); } function fetch_field() { $e = $this->_offset++; $H = new stdClass(); $H->name = oci_field_name($this->_result, $e); $H->orgname = $H->name; $H->type = oci_field_type($this->_result, $e); $H->charsetnr = preg_match("~raw|blob|bfile~", $H->type) ? 63 : 0; return $H; } function __destruct() { oci_free_statement($this->_result); } } } elseif (extension_loaded("pdo_oci")) { class Min_DB extends Min_PDO { var $extension = "PDO_OCI"; function connect($M, $V, $E) { $this->dsn("oci:dbname=//{$M};charset=AL32UTF8", $V, $E); return true; } function select_db($j) { return true; } } } class Min_Driver extends Min_SQL { function begin() { return true; } } function idf_escape($u) { return """ . str_replace(""", """", $u) . """; } function table($u) { return idf_escape($u); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases() { return get_vals("SELECT tablespace_name FROM user_tablespaces"); } function limit($F, $Z, $z, $C = 0, $L = " ") { return $C ? " * FROM (SELECT t.*, rownum AS rnum FROM (SELECT {$F}{$Z}) t WHERE rownum <= " . ($z + $C) . ") WHERE rnum > {$C}" : ($z !== null ? " * FROM (SELECT {$F}{$Z}) WHERE rownum <= " . ($z + $C) : " {$F}{$Z}"); } function limit1($Q, $F, $Z, $L = "
") { return " {$F}{$Z}"; } function db_collation($l, $pb) { global $g; return $g->result("SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'"); } function engines() { return array(); } function logged_user() { global $g; return $g->result("SELECT USER FROM DUAL"); } function tables_list() { return get_key_vals("SELECT table_name, 'table' FROM all_tables WHERE tablespace_name = " . q(DB) . "
UNION SELECT view_name, 'view' FROM user_views
ORDER BY 1"); } function count_tables($k) { return array(); } function table_status($B = '') { $H = array(); $ch = q($B); foreach (get_rows("SELECT table_name "Name", 'table' "Engine", avg_row_len * num_rows "Data_length", num_rows "Rows" FROM all_tables WHERE tablespace_name = " . q(DB) . ($B != '' ? " AND table_name = {$ch}" : '') . "\xaUNION SELECT view_name, 'view', 0, 0 FROM user_views" . ($B != '' ? " WHERE view_name = {$ch}" : '') . "\xaORDER BY 1") as $I) { if ($B != '') { return $I; } $H[$I["Name"]] = $I; } return $H; } function is_view($R) { return $R["Engine"] == "view"; } function fk_support($R) { return true; } function fields($Q) { $H = array(); foreach (get_rows("SELECT * FROM all_tab_columns WHERE table_name = " . q($Q) . " ORDER BY column_id") as $I) { $T = $I["DATA_TYPE"]; $te = "{$I["DATA_PRECISION"]},{$I["DATA_SCALE"]}"; if ($te == ",") { $te = $I["DATA_LENGTH"]; } $H[$I["COLUMN_NAME"]] = array("field" => $I["COLUMN_NAME"], "full_type" => $T . ($te ? "({$te})" : ''), "type" => strtolower($T), "length" => $te, "default" => $I["DATA_DEFAULT"], "null" => $I["NULLABLE"] == "Y", "privileges" => array("insert" => 1, "select" => 1, "update" => 1)); } return $H; } function indexes($Q, $h = null) { $H = array(); foreach (get_rows("SELECT uic.*, uc.constraint_type
FROM user_ind_columns uic
LEFT JOIN user_constraints uc ON uic.index_name = uc.constraint_name AND uic.table_name = uc.table_name
WHERE uic.table_name = " . q($Q) . "
ORDER BY uc.constraint_type, uic.column_position", $h) as $I) { $Id = $I["INDEX_NAME"]; $H[$Id]["type"] = $I["CONSTRAINT_TYPE"] == "P" ? "PRIMARY" : ($I["CONSTRAINT_TYPE"] == "U" ? "UNIQUE" : "INDEX"); $H[$Id]["columns"][] = $I["COLUMN_NAME"]; $H[$Id]["lengths"][] = $I["CHAR_LENGTH"] && $I["CHAR_LENGTH"] != $I["COLUMN_LENGTH"] ? $I["CHAR_LENGTH"] : null; $H[$Id]["descs"][] = $I["DESCEND"] ? "1" : null; } return $H; } function view($B) { $J = get_rows("SELECT text "select" FROM user_views WHERE view_name = " . q($B)); return reset($J); } function collations() { return array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function explain($g, $F) { $g->query("EXPLAIN PLAN FOR {$F}"); return $g->query("SELECT * FROM plan_table"); } function found_rows($R, $Z) { } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = $fc = array(); foreach ($p as $o) { $X = $o[1]; if ($X && $o[0] != '' && idf_escape($o[0]) != $X[0]) { queries("ALTER TABLE " . table($Q) . " RENAME COLUMN " . idf_escape($o[0]) . " TO {$X["0"]}"); } if ($X) { $c[] = ($Q != '' ? $o[0] != '' ? "MODIFY (" : "ADD (" : "  ") . implode($X) . ($Q != '' ? ")" : ''); } else { $fc[] = idf_escape($o[0]); } } if ($Q == '') { return queries("CREATE TABLE " . table($B) . " (
" . implode(",
", $c) . "
)"); } return (!$c || queries("ALTER TABLE " . table($Q) . "\xa" . implode("\xa", $c))) && (!$fc || queries("ALTER TABLE " . table($Q) . " DROP (" . implode(", ", $fc) . ")")) && ($Q == $B || queries("ALTER TABLE " . table($Q) . " RENAME TO " . table($B))); } function foreign_keys($Q) { $H = array(); $F = "SELECT c_list.CONSTRAINT_NAME as NAME,
c_src.COLUMN_NAME as SRC_COLUMN,\xac_dest.OWNER as DEST_DB,\xac_dest.TABLE_NAME as DEST_TABLE,\xac_dest.COLUMN_NAME as DEST_COLUMN,\xac_list.DELETE_RULE as ON_DELETE\xaFROM ALL_CONSTRAINTS c_list, ALL_CONS_COLUMNS c_src, ALL_CONS_COLUMNS c_dest
WHERE c_list.CONSTRAINT_NAME = c_src.CONSTRAINT_NAME
AND c_list.R_CONSTRAINT_NAME = c_dest.CONSTRAINT_NAME\xaAND c_list.CONSTRAINT_TYPE = 'R'
AND c_src.TABLE_NAME = " . q($Q); foreach (get_rows($F) as $I) { $H[$I["NAME"]] = array("db" => $I["DEST_DB"], "table" => $I["DEST_TABLE"], "source" => array($I["SRC_COLUMN"]), "target" => array($I["DEST_COLUMN"]), "on_delete" => $I["ON_DELETE"], "on_update" => null); } return $H; } function truncate_tables($S) { return apply_queries("TRUNCATE TABLE", $S); } function drop_views($aj) { return apply_queries("DROP VIEW", $aj); } function drop_tables($S) { return apply_queries("DROP TABLE", $S); } function last_id() { return 0; } function schemas() { return get_vals("SELECT DISTINCT owner FROM dba_segments WHERE owner IN (SELECT username FROM dba_users WHERE default_tablespace NOT IN ('SYSTEM','SYSAUX'))"); } function get_schema() { global $g; return $g->result("SELECT sys_context('USERENV', 'SESSION_USER') FROM dual"); } function set_schema($bh, $h = null) { global $g; if (!$h) { $h = $g; } return $h->query("ALTER SESSION SET CURRENT_SCHEMA = " . idf_escape($bh)); } function show_variables() { return get_key_vals("SELECT name, display_value FROM v$parameter"); } function process_list() { return get_rows("SELECT sess.process AS "process", sess.username AS "user", sess.schemaname AS "schema", sess.status AS "status", sess.wait_class AS "wait_class", sess.seconds_in_wait AS "seconds_in_wait", sql.sql_text AS "sql_text", sess.machine AS "machine", sess.port AS "port"\xaFROM v$session sess LEFT OUTER JOIN v$sql sql\xaON sql.sql_id = sess.sql_id
WHERE sess.type = 'USER'
ORDER BY PROCESS\xa"); } function show_status() { $J = get_rows("SELECT * FROM v$instance"); return reset($J); } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function support($Pc) { return preg_match("~^(columns|database|drop_col|indexes|descidx|processlist|scheme|sql|status|table|variables|view|view_trigger)$~", $Pc); } $x = "oracle"; $U = array(); $Hh = array(); foreach (array("Numbers" => array("number" => 38, "binary_float" => 12, "binary_double" => 21), "Date and time" => array("date" => 10, "timestamp" => 29, "interval year" => 12, "interval day" => 28), "Strings" => array("char" => 2000, "varchar2" => 4000, "nchar" => 2000, "nvarchar2" => 4000, "clob" => 4294967295, "nclob" => 4294967295), "Binary" => array("raw" => 2000, "long raw" => 2147483648, "blob" => 4294967295, "bfile" => 4294967296)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array(); $vf = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT REGEXP", "NOT IN", "IS NOT NULL", "SQL"); $kd = array("length", "lower", "round", "upper"); $qd = array("avg", "count", "count distinct", "max", "min", "sum"); $mc = array(array("date" => "current_date", "timestamp" => "current_timestamp"), array("number|float|double" => "+/-", "date|timestamp" => "+ interval/- interval", "char|clob" => "||")); } goto WSkdU; af1c_: @ini_set("session.use_trans_sid", false); goto Fg6cl; vBPgG: function grant($ld, $pg, $f, $pf) { if (!$pg) { return true; } if ($pg == array("ALL PRIVILEGES", "GRANT OPTION")) { return $ld == "GRANT" ? queries("{$ld} ALL PRIVILEGES{$pf} WITH GRANT OPTION") : queries("{$ld} ALL PRIVILEGES{$pf}") && queries("{$ld} GRANT OPTION{$pf}"); } return queries("{$ld} " . preg_replace("~(GRANT OPTION)\([^)]*\)~", "\1", implode("{$f}, ", $pg) . $f) . $pf); } goto YNUkN; EuRDS: function apply_sql_function($r, $e) { return $r ? $r == "unixepoch" ? "DATETIME({$e}, '{$r}')" : ($r == "count distinct" ? "COUNT(DISTINCT " : strtoupper("{$r}(")) . "{$e})" : $e; } goto oYEPf; rwzwi: function xxtea_mx($pj, $oj, $Lh, $de) { return int32(($pj >> 5 & 134217727 ^ $oj << 2) + ($oj >> 3 & 536870911 ^ $pj << 4)) ^ int32(($Lh ^ $oj) + ($de ^ $pj)); } goto jnPu0; S6Tp1: function bold($Wa, $kb = '') { return $Wa ? " class='active {$kb}'" : ($kb ? " class='{$kb}'" : ''); } goto prqzq; LUb8G: define("SERVER", $_GET[DRIVER]); goto cMsmw; zc3IH: function is_shortable($o) { return preg_match("~char|text|json|lob|geometry|point|linestring|polygon|string|bytea~", $o["type"]); } goto hI6D2; H8TqD: function hidden_fields_get() { echo sid() ? "<input type="hidden" name="" . session_name() . "" value="" . h(session_id()) . "">" : '', SERVER !== null ? "<input type="hidden" name="" . DRIVER . "" value="" . h(SERVER) . "">" : '', "<input type="hidden" name="username" value="" . h($_GET["username"]) . "">"; } goto pc6xU; pQVl2: function check_invalid_login() { global $b; $Wd = unserialize(@file_get_contents(get_temp_dir() . "/adminer.invalid")); $Vd = $Wd[$b->bruteForceKey()]; $cf = $Vd[1] > 29 ? $Vd[0] - time() : 0; if ($cf > 0) { auth_error(lang(array("Too many unsuccessful logins, try again in %d minute.", "Too many unsuccessful logins, try again in %d minutes."), ceil($cf / 60))); } } goto Gmlbt; sfE5t: function friendly_url($X) { return preg_replace("~[^a-z0-9_]~i", "-", $X); } goto xXrKo; tJ9g_: function target_blank() { return " target="_blank" rel="noreferrer noopener""; } goto Wu_3O; iEKwQ: function optionlist($yf, $fh = null, $Qi = false) { $H = ''; foreach ($yf as $de => $W) { $zf = array($de => $W); if (is_array($W)) { $H .= "<optgroup label="" . h($de) . "">"; $zf = $W; } foreach ($zf as $y => $X) { $H .= "<option" . ($Qi || is_string($y) ? " value="" . h($y) . """ : '') . (($Qi || is_string($y) ? (string) $y : $X) === $fh ? " selected" : '') . ">" . h($X); } if (is_array($W)) { $H .= "</optgroup>"; } } return $H; } goto pb9Lb; Fhp94: function where($Z, $p = array()) { global $g, $x; $H = array(); foreach ((array) $Z["where"] as $y => $X) { $y = bracket_escape($y, 1); $e = escape_key($y); $H[] = $e . ($x == "sql" && is_numeric($X) && preg_match("~\.~", $X) ? " LIKE " . q($X) : ($x == "mssql" ? " LIKE " . q(preg_replace("~[_%[]~", "[\0]", $X)) : " = " . unconvert_field($p[$y], q($X)))); if ($x == "sql" && preg_match("~char|text~", $p[$y]["type"]) && preg_match("~[^ -@]~", $X)) { $H[] = "{$e} = " . q($X) . " COLLATE " . charset($g) . "_bin"; } } foreach ((array) $Z["null"] as $y) { $H[] = escape_key($y) . " IS NULL"; } return implode(" AND ", $H); } goto phxOu; NW1i_: if (isset($_GET["callf"])) { $_GET["call"] = $_GET["callf"]; } goto pVXc_; wDmEv: $wc = "'(?:''|[^'\\]|\\.)*'"; goto pz3Oi; L0cT7: $ec["sqlite"] = "SQLite 3"; goto p2_YQ; r0isG: function db_size($l) { global $g; if (!$g->select_db($l)) { return "?"; } $H = 0; foreach (table_status() as $R) { $H += $R["Data_length"] + $R["Index_length"]; } return format_number($H); } goto ARIu9; Gmlbt: $Ka = $_POST["auth"]; goto vpMHl; VutEe: $ec = array(); goto iH8Cr; S2G2v: function sid() { static $H; if ($H === null) { $H = SID && !($_COOKIE && ini_bool("session.use_cookies")); } return $H; } goto Ey1Pj; IoMM1: function where_link($s, $e, $Y, $uf = "=") { return "&where%5B{$s}%5D%5Bcol%5D=" . urlencode($e) . "&where%5B{$s}%5D%5Bop%5D=" . urlencode($Y !== null ? $uf : "IS NULL") . "&where%5B{$s}%5D%5Bval%5D=" . urlencode($Y); } goto PjHvS; MDkDi: function remove_definer($F) { return preg_replace("~^([A-Z =]+) DEFINER=`" . preg_replace("~@(.*)~", "`@`(%|\1)", logged_user()) . "`~", "\1", $F); } goto Zf_P8; vpMHl: if ($Ka) { session_regenerate_id(); $Xi = $Ka["driver"]; $M = $Ka["server"]; $V = $Ka["username"]; $E = (string) $Ka["password"]; $l = $Ka["db"]; set_password($Xi, $M, $V, $E); $_SESSION["db"][$Xi][$M][$V][$l] = true; if ($Ka["permanent"]) { $y = base64_encode($Xi) . "-" . base64_encode($M) . "-" . base64_encode($V) . "-" . base64_encode($l); $ng = $b->permanentLogin(true); $bg[$y] = "{$y}:" . base64_encode($ng ? encrypt_string($E, $ng) : ''); cookie("adminer_permanent", implode(" ", $bg)); } if (count($_POST) == 1 || DRIVER != $Xi || SERVER != $M || $_GET["username"] !== $V || DB != $l) { redirect(auth_url($Xi, $M, $V, $l)); } } elseif ($_POST["logout"]) { if ($vd && !verify_token()) { page_header("Logout", "Invalid CSRF token. Send the form again."); page_footer("db"); die; } else { foreach (array("pwds", "db", "dbs", "queries") as $y) { set_session($y, null); } unset_permanent(); redirect(substr(preg_replace("~\b(username|db|ns)=[^&]*&~", '', ME), 0, -1), "Logout successful." . " " . "Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>."); } } elseif ($bg && !$_SESSION["pwds"]) { session_regenerate_id(); $ng = $b->permanentLogin(); foreach ($bg as $y => $X) { list(, $jb) = explode(":", $X); list($Xi, $M, $V, $l) = array_map("base64_decode", explode("-", $y)); set_password($Xi, $M, $V, decrypt_string(base64_decode($jb), $ng)); $_SESSION["db"][$Xi][$M][$V][$l] = true; } } goto dPQQO; vt9Rb: $ec = array("server" => "MySQL") + $ec; goto duH0c; uWK50: function file_open_lock($Uc) { $id = @fopen($Uc, "r+"); if (!$id) { $id = @fopen($Uc, "w"); if (!$id) { return; } chmod($Uc, 432); } flock($id, LOCK_EX); return $id; } goto JxkJe; hrdyX: if (isset($_GET["status"])) { $_GET["variables"] = $_GET["status"]; } goto ZTpO2; NpC4m: function rand_string() { return md5(uniqid(mt_rand(), true)); } goto FUSe3; pc6xU: function table_status1($Q, $Oc = false) { $H = table_status($Q, $Oc); return $H ? $H : array("Name" => $Q); } goto dGFvA; UY9S3: if (isset($_GET["elastic"])) { $hg = array("json + allow_url_fopen"); define("DRIVER", "elastic"); if (function_exists("json_decode") && ini_bool("allow_url_fopen")) { class Min_DB { var $extension = "JSON", $server_info, $errno, $error, $_url; function rootQuery($Yf, $_b = array(), $Re = "GET") { @ini_set("track_errors", 1); $Tc = @file_get_contents("{$this->_url}/" . ltrim($Yf, "/"), false, stream_context_create(array("http" => array("method" => $Re, "content" => $_b === null ? $_b : json_encode($_b), "header" => "Content-Type: application/json", "ignore_errors" => 1)))); if (!$Tc) { $this->error = $php_errormsg; return $Tc; } if (!preg_match("~^HTTP/[0-9.]+ 2~i", $http_response_header[0])) { $this->error = $Tc; return false; } $H = json_decode($Tc, true); if ($H === null) { $this->errno = json_last_error(); if (function_exists("json_last_error_msg")) { $this->error = json_last_error_msg(); } else { $zb = get_defined_constants(true); foreach ($zb["json"] as $B => $Y) { if ($Y == $this->errno && preg_match("~^JSON_ERROR_~", $B)) { $this->error = $B; break; } } } } return $H; } function query($Yf, $_b = array(), $Re = "GET") { return $this->rootQuery(($this->_db != '' ? "{$this->_db}/" : "/") . ltrim($Yf, "/"), $_b, $Re); } function connect($M, $V, $E) { preg_match("~^(https?://)?(.*)~", $M, $A); $this->_url = ($A[1] ? $A[1] : "http://") . "{$V}:{$E}@{$A["2"]}"; $H = $this->query(''); if ($H) { $this->server_info = $H["version"]["number"]; } return (bool) $H; } function select_db($j) { $this->_db = $j; return true; } function quote($P) { return $P; } } class Min_Result { var $num_rows, $_rows; function __construct($J) { $this->num_rows = count($J); $this->_rows = $J; reset($this->_rows); } function fetch_assoc() { $H = current($this->_rows); next($this->_rows); return $H; } function fetch_row() { return array_values($this->fetch_assoc()); } } } class Min_Driver extends Min_SQL { function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { global $b; $Mb = array(); $F = "{$Q}/_search"; if ($K != array("*")) { $Mb["fields"] = $K; } if ($_f) { $vh = array(); foreach ($_f as $nb) { $nb = preg_replace("~ DESC$~", '', $nb, 1, $Eb); $vh[] = $Eb ? array($nb => "desc") : $nb; } $Mb["sort"] = $vh; } if ($z) { $Mb["size"] = +$z; if ($D) { $Mb["from"] = $D * $z; } } foreach ($Z as $X) { list($nb, $tf, $X) = explode(" ", $X, 3); if ($nb == "_id") { $Mb["query"]["ids"]["values"][] = $X; } elseif ($nb . $X != '') { $ai = array("term" => array($nb != '' ? $nb : "_all" => $X)); if ($tf == "=") { $Mb["query"]["filtered"]["filter"]["and"][] = $ai; } else { $Mb["query"]["filtered"]["query"]["bool"]["must"][] = $ai; } } } if ($Mb["query"] && !$Mb["query"]["filtered"]["query"] && !$Mb["query"]["ids"]) { $Mb["query"]["filtered"]["query"] = array("match_all" => array()); } $Dh = microtime(true); $ch = $this->_conn->query($F, $Mb); if ($mg) { echo $b->selectQuery("{$F}: " . json_encode($Mb), $Dh, !$ch); } if (!$ch) { return false; } $H = array(); foreach ($ch["hits"]["hits"] as $_d) { $I = array(); if ($K == array("*")) { $I["_id"] = $_d["_id"]; } $p = $_d["_source"]; if ($K != array("*")) { $p = array(); foreach ($K as $y) { $p[$y] = $_d["fields"][$y]; } } foreach ($p as $y => $X) { if ($Mb["fields"]) { $X = $X[0]; } $I[$y] = is_array($X) ? json_encode($X) : $X; } $H[] = $I; } return new Min_Result($H); } function update($T, $Ag, $wg, $z = 0, $L = "
") { $Wf = preg_split("~ *= *~", $wg); if (count($Wf) == 2) { $t = trim($Wf[1]); $F = "{$T}/{$t}"; return $this->_conn->query($F, $Ag, "POST"); } return false; } function insert($T, $Ag) { $t = ''; $F = "{$T}/{$t}"; $Mg = $this->_conn->query($F, $Ag, "POST"); $this->_conn->last_id = $Mg["_id"]; return $Mg["created"]; } function delete($T, $wg, $z = 0) { $Ed = array(); if (is_array($_GET["where"]) && $_GET["where"]["_id"]) { $Ed[] = $_GET["where"]["_id"]; } if (is_array($_POST["check"])) { foreach ($_POST["check"] as $db) { $Wf = preg_split("~ *= *~", $db); if (count($Wf) == 2) { $Ed[] = trim($Wf[1]); } } } $this->_conn->affected_rows = 0; foreach ($Ed as $t) { $F = "{$T}/{$t}"; $Mg = $this->_conn->query($F, "{}", "DELETE"); if (is_array($Mg) && $Mg["found"] == true) { $this->_conn->affected_rows++; } } return $this->_conn->affected_rows; } } function connect() { global $b; $g = new Min_DB(); list($M, $V, $E) = $b->credentials(); if ($E != '' && $g->connect($M, $V, '')) { return "Database does not support password."; } if ($g->connect($M, $V, $E)) { return $g; } return $g->error; } function support($Pc) { return preg_match("~database|table|columns~", $Pc); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function get_databases() { global $g; $H = $g->rootQuery("_aliases"); if ($H) { $H = array_keys($H); sort($H, SORT_STRING); } return $H; } function collations() { return array(); } function db_collation($l, $pb) { } function engines() { return array(); } function count_tables($k) { global $g; $H = array(); $G = $g->query("_stats"); if ($G && $G["indices"]) { $Md = $G["indices"]; foreach ($Md as $Ld => $Eh) { $Kd = $Eh["total"]["indexing"]; $H[$Ld] = $Kd["index_total"]; } } return $H; } function tables_list() { global $g; $H = $g->query("_mapping"); if ($H) { $H = array_fill_keys(array_keys($H[$g->_db]["mappings"]), "table"); } return $H; } function table_status($B = '', $Oc = false) { global $g; $ch = $g->query("_search", array("size" => 0, "aggregations" => array("count_by_type" => array("terms" => array("field" => "_type")))), "POST"); $H = array(); if ($ch) { $S = $ch["aggregations"]["count_by_type"]["buckets"]; foreach ($S as $Q) { $H[$Q["key"]] = array("Name" => $Q["key"], "Engine" => "table", "Rows" => $Q["doc_count"]); if ($B != '' && $B == $Q["key"]) { return $H[$B]; } } } return $H; } function error() { global $g; return h($g->error); } function information_schema() { } function is_view($R) { } function indexes($Q, $h = null) { return array(array("type" => "PRIMARY", "columns" => array("_id"))); } function fields($Q) { global $g; $G = $g->query("{$Q}/_mapping"); $H = array(); if ($G) { $_e = $G[$Q]["properties"]; if (!$_e) { $_e = $G[$g->_db]["mappings"][$Q]["properties"]; } if ($_e) { foreach ($_e as $B => $o) { $H[$B] = array("field" => $B, "full_type" => $o["type"], "type" => $o["type"], "privileges" => array("insert" => 1, "select" => 1, "update" => 1)); if ($o["properties"]) { unset($H[$B]["privileges"]["insert"]); unset($H[$B]["privileges"]["update"]); } } } } return $H; } function foreign_keys($Q) { return array(); } function table($u) { return $u; } function idf_escape($u) { return $u; } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function fk_support($R) { } function found_rows($R, $Z) { return null; } function create_database($l) { global $g; return $g->rootQuery(urlencode($l), null, "PUT"); } function drop_databases($k) { global $g; return $g->rootQuery(urlencode(implode(",", $k)), array(), "DELETE"); } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { global $g; $sg = array(); foreach ($p as $Mc) { $Rc = trim($Mc[1][0]); $Sc = trim($Mc[1][1] ? $Mc[1][1] : "text"); $sg[$Rc] = array("type" => $Sc); } if (!empty($sg)) { $sg = array("properties" => $sg); } return $g->query("_mapping/{$B}", $sg, "PUT"); } function drop_tables($S) { global $g; $H = true; foreach ($S as $Q) { $H = $H && $g->query(urlencode($Q), array(), "DELETE"); } return $H; } function last_id() { global $g; return $g->last_id; } $x = "elastic"; $vf = array("=", "query"); $kd = array(); $qd = array(); $mc = array(array("json")); $U = array(); $Hh = array(); foreach (array("Numbers" => array("long" => 3, "integer" => 5, "short" => 8, "byte" => 10, "double" => 20, "float" => 66, "half_float" => 12, "scaled_float" => 21), "Date and time" => array("date" => 10), "Strings" => array("string" => 65535, "text" => 65535), "Binary" => array("binary" => 255)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } } goto eqoen; BdRPP: function queries_redirect($xe, $Le, $Bg) { list($vg, $ei) = queries(null); return query_redirect($vg, $xe, $Le, $Bg, false, !$Bg, $ei); } goto iVM3J; mlO2t: if ($_SERVER["HTTP_X_FORWARDED_PREFIX"]) { $_SERVER["REQUEST_URI"] = $_SERVER["HTTP_X_FORWARDED_PREFIX"] . $_SERVER["REQUEST_URI"]; } goto TCvpk; CSO6b: $b = function_exists("adminer_object") ? adminer_object() : new Adminer(); goto ZfQuX; E6OuL: $qf = "RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT"; goto w7nJV; E01kY: function adminer_setting($y) { $ph = adminer_settings(); return $ph[$y]; } goto AVHr9; hfdDf: function get_password() { $H = get_session("pwds"); if (is_array($H)) { $H = $_COOKIE["adminer_key"] ? decrypt_string($H[0], $_COOKIE["adminer_key"]) : false; } return $H; } goto r1Zy_; kwocG: if (isset($_GET["file"])) { if ($_SERVER["HTTP_IF_MODIFIED_SINCE"]) { header("HTTP/1.1 304 Not Modified"); die; } header("Expires: " . gmdate("D, d M Y H:i:s", time() + 365 * 24 * 60 * 60) . " GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: immutable"); if ($_GET["file"] == "favicon.ico") { header("Content-Type: image/x-icon"); echo lzw_decompress("\0\x0\x0` \x0\xe2\x80\236\26\x6\x4\0\xa @\0\xc2\264\x2\23\xe\x8C\xe2\200\236\x10\xc3\xa8\x14"\34\0`E\303\243Q\302\270\303\240\x1\xc3\xbf\37\342\x80\241?\303\x80\6\22tvM'\xe2\x80\235Jd\xc3\201\31d\\2\23\31\xc5\x92b0\x0\10\xc3\x84"\23\xe2\204\242\xc3\x80f\xc3\x93\313\206\302\xa4\xc3\256s5\342\x80\xba\303\x8f\xc3\247\303\x91A\302\x9d\x16X\21\x8P\x2a\21\x8J\xe2\x80\x9c0\30\xe2\200\236\xc2\xa5\xe2\x80\x98\328\xe2\x80\236#R\305\240T\302\251\xe2\x80\x98z`\313\x86#.\xc2\251\xc3\x87c\303\xadX\xc3\x83\303\276\303\210\xe2\202\254?\xc3\200-\xf\0\x5\302\241Im?\302\240.\x16\xc2\xabM\302\xb6\26\342\x82\254\x0\xc3\x88\302\257\x12(\303\214\342\x80\260\303\xbd\36\303\x80\x2/(\33%\305\222\0"); } elseif ($_GET["file"] == "default.css") { header("Content-Type: text/css; charset=utf-8"); echo lzw_decompress("\xa1\33\303\214\342\200\xa1\xe2\200\234\xc3\231\xc5\x92\303\x9el7\305\223\xe2\200\241B1\xe2\x80\x9e4vb0\xcb\234\303\x8dfs\342\200\x98\302\xbc\xc3\252n2B\303\214\303\221\302\xb1\xc3\231\xcb\234\303\236n:\xe\342\200\xa1#\1(\xc2\274b.\31\xdD\x5c)\303\x88\303\210a7\x18E\342\200\x9e\23\342\x80\x98\xc2\xa4\303\x82l\26\22\xc\xc2\xa6\xc3\x83\302\261\xe2\x80\235\303\xa8i1\xc3\x8c\305\275s\x3\xcb\x9c\xc2\xb4\303\247-4\xe2\x84\xa2\xe2\200\241f\xc3\223	\303\210\xc3\216i7\16\342\200\240\x3\302\263\xc2\xb9\xc2\244\303\x88t4\xe\342\200\xa6\xc2\246\xc3\223y\xc3\xa8Zf4\xc2\235\x5\302\260i\x1\342\x80\x93AT\302\253V\x7V\xb\25\302\220\xc3\xa9f:\xe\xc3\217\xc2\xa6\30,\36\22:1\33\16\xc2\xa6Q\303\x9d\xc2\274\xc3\261b2\x19`\xc3\x87#\xc\303\276>:7G\xc3\257\xe2\x80\x941\xc3\221\xc3\x98\xc3\x92s\302\xb0\xe2\x84\xa2L\xe2\x80\x94XD*bv<\xc3\234\305\x92#\302\xa3e@\xc3\226:4\x1b\xc3\xa7\xc2\247!fo\x1d\302\220\xc2\xb7\xc3\206t:<\302\xa5\303\x9c\303\xa5\xe2\200\x99\xc2\276\342\204\242o\303\242\303\234\xe\17\xai\xc3\x83\xc3\205\xc3\260',\303\xa9\xc2\xbb\x16a\x17_\302\244:\302\xb9i\303\xaf\xe2\200\246\302\264\xc3\201Bv\xc3\270|N\xc3\2734.5\x1dNf\xc2\201i\xc2\242vp\303\220h\xc2\xb8\302\260l\302\250\303\252\xc2\241\xc3\x96\305\xa1\303\x9cO\302\246\xc2\201\342\x80\260\303\256= \302\243\32OFQ\303\x90\303\204k$\xc2\xa5\xc3\x93i\xc3\xb5\x1a\342\204\242\303\x80\303\x82d2T\303\243\xc2\xa1p\303\240\303\2126\342\x80\236\1\xe2\200\xb9\303\xbe\xe2\x80\241\xc2\241-\xc3\230Z\342\202\xac\305\xbd\xc6\222\xc2\xa0\xc3\2366\xc2\275\302\xa3\342\x82\xac\xc3\xb0\x10\16h:\302\254\20\x4a\303\x8c,\xc5\xbd\302\243\xc3\253\20\303\2562\302\215#8\xc3\220\302\x90\xc2\261#\342\x80\x99\313\2346\x7n\xc3\xa2\303\xae\21\342\200\xa0\xc3\261J\36\xcb\206\302\xa2h\302\xabt\342\200\246\xc5\x92\302\xb1\305\xa0\303\2444\6O42\303\xb4\302\275ok\303\236\22\302\xbe*r\302\xa0\302\251\4\1\xe2\x82\254@\x19\x6\x10p@\x16\342\200\240!\xc3\x84\x1c\x1d\xc2\xbe\xc3\x8f\xc3\203\303\264\303\xbe?\303\220\x4\x46\xc3\x80\xe2\x80\xb0r[\x3\xc2\x8d\303\260L\27\6\xc3\x81\303\260\342\x80\xb9:2B\313\206j\302\xa7\23!Hb\34\303\263\xc3\203P\xc3\xa4=\x10!1\x1cV\xe2\200\260"\xcb\206\xc2\xb20\xe2\200\xa6\302\277
S\xc3\x86\31\303\x86\xc3\217D7\16\xc3\x83\303\254D\303\x9a\xe2\200\xba\xc3\203\xfC!\x1c\342\200\240!\342\200\xba\303\240\302\246G\xc3\x8a\305\x92\302\xa7 \xc3\210+\342\200\x99=\x11\17tC\xc3\246\xc2\251.C\302\244\303\200:\xc+\303\x88\303\212=\xc2\xaa\302\252\302\272\xc2\262\x18\xc2\241\xc2\261\303\xa5%\x1f\302\xaac\303\xad1MR/\342\x80\235\177E\xc3\210\342\200\x994\xe2\x80\x9e\302\xa9\xc2\2402\xc2\xb0\303\xa4\xc2\xb1\xc2\240\303\xa3`\303\2028(\xc3\241\xc3\223\302\xb9[W\xb\xc3\xa4\303\x91\34=\342\x80\260\34yS\302\x81b\xc2\xb0=\303\226-\xc3\234\xc2\xb9\10BS\4+\xc3\211\xc2\257\xc3\x88\xc3\234\xc3\275\302\xa5\17\303\270@\x17\6p\x1dL4Y\21d\303\xa3\x17\342\200\x9eq\305\xa0\303\xb8\303\243\302\xa6\303\260\303\xaa\xc2\2426\302\xa33\303\204\xc2\xac\xc\302\xaf\302\270Ac\303\x9c\xc5\x92\xc3\250\303\216\xc2\250\305\222k\xe2\x80\x9a[&>\303\266\342\x80\xa2\xc2\250\31Z\xc3\201pkm]\xe2\x80\x94u-c:\303\230\x15\302\xb8\313\x86N\21t\303\xa6\21\303\216\xc2\xb4p\303\x92\302\x9d\xc5\222\305\2408\xc3\xa8=\302\xbf#\313\x9c\303\241[\xf.\xc3\260\xc3\234\303\x9e\302\xaf\xc2\215\32~\xc2\240\302\215\xc2\x81m\303\x8by\342\x80\241PP\xc3\xa1|I\303\x96\342\x80\xba\303\271\177\xc3\200\xf\xc3\xac\7Q\xc2\2529v[\xe2\x80\223Q\342\200\xa2\xe2\200\236\xa\xe2\200\x93\303\231r\xc3\xb4'g\xe2\x80\xa1+\302\x90\303\241T\303\2212\xe2\x80\246\302\xadV\xc3\201\303\xb5z\xc3\2444\302\215\xc2\xa38\xc3\267\xc2\x8f(	\xc2\276Ey*#j\302\2542]\22\302\255\342\200\242R\xc3\x92\303\x81\x6\xe2\200\230\302\xa5)\xc6\x92\xc3\200[N\302\255R$\xc5\240<>:\xc3\xb3\xc2\xad>$;\x14\342\x80\223>\xc2\240\xc3\x8c
\302\xbb\342\x80\236\303\x8eH\303\215\xc3\x83\31T\303\210\xa\7w\302\xa1N \xc3\xa5w\303\x98\302\243\xc2\246\xc3\254<\xc3\xaf\xe\303\213Gw\xc3\240\303\xb6\303\266\x15\xc2\271\Y\303\263_\302\240Rt^\305\222>\305\275
}\xc5\x92\303\x99S\xdz\xc3\xa94=\xc2\265\xaL\xe2\x80\x9d%J\303\243\23\xe2\x80\271",Z\xc2\2408\16\302\270\305\xbe\342\204\xa2\xc2\220i\xc3\2670u\xc2\251?\x1a\xc2\xa8\xc3\273\xc3\x91\303\264\xc2\241s\23\xc#\xc2\xa8\303\231\xe2\200\260\xc2\240:\303\263\302\246\xc3\273\xc2\x8d\xc3\243\302\275\xe2\200\x93\30\303\x88\303\x9e\4\x1f\x14E]x\303\x9d\303\222\16\302\201s^8\xc5\275\xc2\243K^\xc3\211\303\xb7*0\xc3\221\303\236w\303\x9e\x14\3\303\240\xc3\210\xc3\x9e~\xc2\x8f\303\243\303\266:\xc3\255\xc3\221i\xc3\230\303\xbe\302\x8fv2w\xc2\xbd\303\277\xc2\261\x7\xc3\xbb^7\302\x90\x17\xe\xc3\243\10\xc3\xb27\xc2\243c\xc3\235\xc3\x91u+U\2\33%\xc5\275\x3{P\xc3\x9c*4\303\x8c\302\xbc\xc3\xa9LX./!\302\274\xe2\x80\xb01C\x1e\303\205\xc3\237qx!\x4H\xc2\271\x2\xc3\243Fd\x8\303\271\302\xadL\xc2\xa8\302\xa4\x1b\xc2\250\x12\xc3\x84\xc2\240\xc3\217`6\6\303\253\xc\xc3\xa8\75\xc2\256\32\x1a\342\x84\242f\x5\342\x82\xac\xc2\xb8\xc3\204\xe2\x80\xa0\xc2\xa8=\7H\303\xb8l \xc5\x92V\41\xe2\200\234\342\x80\xba\x0a2\xc3\x97;\302\201\xc3\x946\xe2\200\xa0\303\xa0\303\xb6\303\xbe_\xc3\x99\342\x80\241\177\303\x84\36\0&\303\264Z\xc3\x9cS\xc2\240d)KE'\xe2\x80\231\342\202\xacn\xc2\265\302\x90\x12\xf[X\xc2\xa9\xc2\xb3\x0Z\303\x89\xc5\xa0\xc3\224F[P\xe2\200\x98\303\236\313\x9c@\xc3\240\xc3\x9f!\31\342\x80\260\xe\303\xb1Y\xc3\x82,`\xc3\211\x15"\303\x9a\xc2\xb7\x5\302\x81\303\x820Ee9\x8yF>\303\213\xc3\224\x1d9\x18\3\30b\xc2\xba\342\200\x93\xc5\222\xc3\xa6F5:\24\xc3\xbc\313\x86\342\200\235\0}\x5\303\204\302\xb4\xc5\xa0\342\200\241($\xe\xc5\276\xc3\x93\x8\xe2\x80\241\xc3\xab\xe2\x82\25437H\303\xb6\34\xc2\xa3\303\xa8 \xcM\302\276A\302\xb0\302\xb26R\xe2\x80\xa2\303\xba{Mq\xc3\x9d7G\xc2\240\xc3\232\31C\xe2\x84\242C\303\xaam2\3\xc2\242(\xc5\222Ct>[\303\xac-t\xc3\200\31/&C\xc\xe2\200\xba]\xc3\252etG\303\xb4\xc3\214\xc2\xac\x1c4@\x4r>\x6\xc3\x87\303\202\x13\x8\303\245<\305\241Sq\x11\342\x80\xa2/\xc3\xa5\303\xba\xe2\200\x9dQ\xc3\253\302\x8dhm\xc2\215\305\241\303\200\xc3\220\xc3\206\xc3\xb4\303\xa3\303\xb4\xc2\235L\303\200\303\x9c#\20\303\250\303\264K\xc3\x8b|\xc2\256\342\204\xa2\xe2\x80\2366fKP\xc3\x9d
%t\303\224\10\303\223V=\6"\xc2\240SH$\302\235} \xc2\270\302\x81)w\302\241,W\0F\x6\302\263\302\xaau@\xc3\230b\xb\xc2\xa69\xe2\200\x9a
r\xc2\2602\303\x83#\302\254D\305\x92\342\200\x9dX\306\222\xc2\xb3\xc3\232yOI\303\xb9>\x14\302\273\xe2\x80\246n\xc2\x81\342\200\240\xc3\207\xc2\242\177%\xc3\243\xc3\271\xc2\x90'\342\x80\271\xc3\235_\xc3\201\342\x82\xact\xd\xc3\x8f\xe2\200\x9ez\xc\303\204\1\xcb\234hl\xc2\xbc]Q5Mp6k\xe2\x80\xa0\303\x90\303\x84qh\xc3\203$\302\243H~\x6\xc3\x8d\2|\303\x92\x14\xc3\235!*4\305\222\303\xb1\34\x10\303\262\34\x14\303\x9b`S\xc3\xab\303\xbd\xc2\xb2S t\303\255PP\g\302\xb1\xc3\2507\342\200\241
-\x7\xc5\240:\xc3\250\xc2\xa2\xc2\xaap\xc2\264\342\x80\xa2\xe2\x80\x9d\313\x86l\xe2\200\271B\xc5\276\xc2\246\xc3\256\xe2\x80\x9d7\xc3\223\xc2\xa8\x1ac\306\x92(wO0\:\x7\xe2\200\242\303\220w\xe2\x80\235\xc3\201\302\235\xcp4\313\x86\342\200\234\xc3\xb2{T\303\232\303\xbajO\xc2\xa4\x46\x6H\x1a\x1c\xc3\x83\xc5\240\302\266r\303\225\x12\xc2\xa5\3\302\x90q\x7\xa\x4\21\302\246\303\211%%\302\266y']\x1b$\342\200\x9a\xe2\200\235a\342\x80\x98Z\35\303\223.fc\303\225q*-\xc3\252FW\302\xba\xc3\272k\302\215\342\200\x9ez\306\222\25\302\xb0\xc2\xb5\x3j\xe2\200\230\x1e\305\275\302\xb0lg\303\241\xc5\x92:\xe2\200\xa1$"\xc3\236N\xc2\274\xd#\303\211d\xc3\xa2\xc3\203\342\200\232\303\x82\303\xbf\1\xc3\220sc\xc3\xa1\302\254\303\214\xc2\xa0\xe2\200\x9e\x14\xc6\x92"j\302\252\xd\303\x80\xc2\266\342\200\223\25\302\xa6\xcb\206\303\225\342\200\231\xc2\274Ph\xe2\x80\xb91/\xe2\x80\x9a\2\305\223D\x1A)\x6\302\240\xc2\262\xc3\x9d[\xc3\200kn\303\201p7\56\xc3\x81Y\302\264\xe2\x80\260R{\x18\303\241M\x5\xc2\244P\303\xbb\302\260\xc3\262@\xa-\302\xb8a\xc2\2676\xc3\276\303\x9f[\302\xbbzJ\x1H,\342\200\x93dl\x14\302\xa0\25B\302\243h\xc2\220o\xc2\xb3\xc2\215\303\254\x1f\2\x3\303\262\35\302\254+\342\x80\241#Dr^\37\xc2\265^\302\xb5\303\231e\305\241\xc2\274E\302\xbd\302\275\xe2\x80\x93\6 \xc3\204\305\x93aP\xe2\200\xb0\303\264\303\xb5JG\302\243z\x1a\303\xa0\303\261t\xe\xc3\261\xc2\2402\303\207X\303\231\26\302\xa2\xc2\264\xc3\201\302\xbfV\xc2\xb6\xc3\x97\303\x9f\303\xa0\303\236\x19\xc3\210\302\xb3\x13\xe2\200\xb0\303\221B_%K=E\302\251\302\270b\x7f\303\xa5\xc2\274\xc2\276\xc3\x9f\303\202\302\247kU(.!\x7\303\x9c\xc2\xae8\302\270\xc5\x93\xc3\xbc\303\x89\xcI.@\xc5\275K\303\215xn\303\xbe\302\254\xc3\xbc:\xc3\x83P\303\xb3\163\x72\xc2\253\342\x80\235m\xc3\xadH	\x9C*\xc3\254:v\27\xc3\242T\xc3\205
R\xc2\xb9\306\222\xe2\200\242\xc2\265\xe2\x80\xb90u\x4\x1\303\x82\xc3\xad\20\306\x92\303\246\x1c\303\xae\xc3\x92\xc2\247]\1\303\x8e\33\xc2\257\313\234\305\240\xe2\x80\235P\xb/\302\265JQd\xc2\245{L\342\200\223\303\236\xc2\263:Y\303\201\302\2172b\xc2\274\xc5\x93T \xc3\xb1\xc2\235\303\x8a3\303\2234\xe2\x80\240\xe2\200\224\303\xa4c\xc3\xaa\xc2\xa5V=\302\220\xc2\277\x15\xe2\x80\xa0L4\36\303\216\303\x90r\303\x84!\303\237B\3\xc3\260Y\xc2\2636\17\xc3\215\x19\302\255MeL\7\x1d\35\x6\7\305\240\302\252\xc3\x9c\x1d\xc3\247\305\223\xc3\266\303\271i\xc3\200o\303\2209<\x10\23 G\342\x80\x9d\302\xa4\303\x86\xe2\x80\242\xc3\x90\xe2\x84\242M\x8\37hm^\302\xafU\xc3\x9bN\xc3\200\xc5\222\xc2\xb7\x17\xc3\xb2Tr5HiM\xe2\200\x9d/\xc2\xacn\306\222\303\xad\302\x9d\xc2\xb3T\302\240\xc2\215[-<_\xe_\303\2563/Xr(\x15<\342\200\xa1\302\xaf\xc5\240\xe2\x80\240\5\xc2\256\303\211\xc3\264\xe2\x80\234\303\x8c\xcu\22\303\x92\342\x80\x93GNX2\x60\303\245\xd$^\xe2\200\241\xc2\215:'9\xc3\250\302\266O\342\200\xa6\xc3\255\x4;\xc3\227k\302\217\xf\3\302\274\342\200\240\xc2\265f\xc2\xa0\xe2\x80\223N'a\302\xb6\xe2\200\x9d\6\303\207\16\302\255b\xc3\x85,\xc3\213V\xc2\xa4\xc3\xb4\xe2\200\246\302\xab1\xc2\265\303\xafHI!%6@\303\xba\10\xc3\217$\xc3\222EG\x1c\xc3\x9a\xc5\x93\xc2\xac1\302\x9d(mU\302\xaa\303\245\342\200\246r\303\x95\xc2\xbd\xc3\257\3\xc3\x9f\303\xa5`\xc2\241\xc3\x90i\x1eN+\22\x8\xc3\203\305\223\xc3\xb1)\305\241\305\x93\26\303\2440l\xc3\230\303\222f0\xc3\203\6\xc2\275[U\xc3\242\303\270V\xc3\x8a\303\250-:I^\302\240\313\234$\303\230s\302\253\x8b
e\342\200\241\342\200\x98\x14ug\303\x89h\302\xaa~9\303\x9b\xc3\x9f\xcb\x86\302\x9db\313\234\302\265\303\264\303\202\303\x88f\xc3\244+0\xc2\xac\xc3\224 \32hXr\303\235\302\254\xc2\xa9!\x3$\342\200\x94e,\302\xb1w+\xe2\x80\x9e\303\267\xc5\x92\303\xab\305\2223\342\x80\240\303\x8c_\x10\303\242A\xe2\200\246k\305\241\303\xb9\xak\xc3\x83r\xc3\265\xc3\212\342\200\xbac\31uWdY\303\xbf\\303\x97={.\303\263\303\204\302\x8d\313\x9c\302\x90\xc2\xa2\x16g\xc2\273\342\x80\xb0p8\xc5\x93t
RZ\302\xbfv\302\x8dJ\25:\302\xb2>\xc3\xbe\xc2\243Y|+\303\x85@\303\x80\342\x80\241\xc6\x92\xc3\x9b\3C\xc2\x90t
\342\202\xac\302\201\x1ajt\xc2\x81\302\275\226\xc2\xb2\303\xb0\36%\303\x82?\x3\303\240\303\264\xc3\x87\305\xbd\303\261\342\200\231\x1e>\xc3\xb9/\x6\xb\302\xa5\xc3\x8d\xc3\x87\xc3\xb0\xc3\2169F`\303\x97\xe2\200\242\303\244\xc3\xb2v\x11~K\302\244\302\x90\303\xa1\xc3\xb6\303\221R\303\220W\342\200\xb9\303\xb0z\342\x80\x98\xc3\xaalm\xc2\252w\x4L\303\x879Y\xe2\x80\xa2*q\302\254x\xc3\x84z\xc3\xb1\303\250Se\302\256\303\235\xe2\x80\272\xc2\xb3\303\250\303\xb7\302\xa3~\305\xa1D\x1d\303\240\303\215\xc3\xa1\342\x80\223\xc3\267\xc2\235x\xcb\234\xc2\276\303\253\xc3\211\305\xb8i7\xe2\200\2422\37\xc3\204\xc3\xb8\xc3\221O\xc3\235\302\xbb\x7\xe2\200\231\xc3\xbb_{\xc3\xb1\xc3\27253\303\242\xc3\xbat\xc2\220\xcb\x9c\xe2\200\xba_\305\xb8\303\xb5z\303\2243\303\xb9d)\342\x80\xb9C\302\xaf\303\202$?K\303\x93\302\252P\xc2\x81%\303\217\xc3\217T&\303\276\xcb\x9c&\x0P\xc3\x97NA\xc5\xbd^\302\255~\xc2\xa2\xc6\222\xc2\xa0p\x7\x6\xc3\x86\x5 \xc3\xb6\x5\xc3\217\xc5\223\342\200\x9c\17\303\224\xc3\265
$\303\x9e\xc3\xaf\303\220\303\x96\303\254b*+D6\xc3\252\302\xb6\xc2\xa6\303\x8f\xcb\206\303\x9e\303\255J$\xe(\303\210ol\xc3\x9e\303\x8dh&\6\342\200\x9d\303\254KBS\6>\xc2\270\xe2\200\271\303\266;\16z\xc2\266\302\xa6x\303\205oz>\303\xad\305\223\303\x9a\20\17\x2o\303\204Z\xc3\260
\303\212\342\x80\xb9[\x5\xc3\217v\303\xb5\342\x80\232\xc3\213\2\303\210\305\223\xc2\265\xc2\xb02\303\265Ox\303\231\xc2\x90V\303\xb80f\303\xbb\xe2\x82\xac\303\272\xf\302\xaf\xc3\2362Bl\xc3\211bk\x2\xc3\2206Zk\302\xb5\1hXc\16d\303\2520*\xc3\x82KT\303\242\xc2\xafH=\302\xad\342\200\xa2\x7\303\217\342\x82\xac\xe2\x80\230p0\305\xa0l\20V\303\xa9\xc3\265\xb\xc3\250\xc3\242
\10\xc2\xbc\xc5\x92\xc2\xa5n\xc5\xbdm\302\xa6\303\257)(\xc2\x8f(\xc3\xb4:#\302\246\302\217\xc3\xa2\xc3\262E\xe2\200\260\xc3\x9c:C\xc2\250C\303\xa0\303\x9a\xb\303\xa2\xc\xd\302\250G
\303\x83\xc2\251\xf0\303\267\16\xe2\200\xa6i\16\xc3\xa6\303\232\302\xb0\303\276:`Z1Q
:\xe2\x82\254\xc3\xa0
\x0\xc3\240\xb\xc3\xa7\xc3\210q\x12\5\xc2\xb1\27\x11\xc2\260\xc3\274:\x11\1\22`\302\xbf\x11\21-\x10\xc3\210M\23#}\221;\x11\xc3\xa8\xc3\xbe\xc2\271\342\200\xb9\1\23q\x15\21\342\200\230#\23\3|\xe\303\261S\x11\xe2\x82\xac\302\276\xc2\242hl\xe2\204\242D\303\204\6\x0f\x6iDp\303\xab\xeL\302\xa0\302\215\x17``\xe2\204\242\302\xb0\303\xa7\20\xc3\x910y\342\202\xac\303\x9f\x121\342\x80\246\x18\xe2\202\xac\xc3\252
\303\261=\20\xe2\200\230M\x12Q\\xc\302\244\xc2\263\x12%o\x18q\xe2\200\223\xc2\xad\x0\303\x98\xc3\xb1\xc2\243\221\xc2\xa821\302\254\1771\xc2\260\xc2\255 \xc2\xbf\30\302\261\xc2\247\33\303\x91\xc5\x93bi:\xe2\200\234\303\xad\1
\xc2\xb1/\25\xc3\x91\302\242\xe2\x80\xba `\7)\305\241\xc3\x840\303\xb9\x19\xe2\200\230\33\30@\xc2\276\16\xc3\x82\342\x80\xba\x15\302\261\33\x1e\xc3\203I\341\xc2\253\x1fN\x14\xc3\240C\303\230\xc3\240\305\240\302\265\x17\xc3\xb1O\21\xc2\xb1\302\xa2Z\303\261\303\xa3\301\xc2\217\36\302\261\303\xaf\x19q1 \303\xb2\x1d\x15\xc3\221\303\xbc\xc3\240,\303\245\xddI\35\x11\xc2\x81\25\303\207\xc2\xa6v\xc3\244j\xc3\xad\xe2\200\2321\27 t\xc3\x9aB\303\xb8\xe2\x80\234\302\260\xc3\242\xc2\x81\342\x80\x990:\342\x80\2460\303\260\303\260\xe2\x80\x9c1\xc2\240A2V\342\200\236\xc3\xb1\xc3\2420\xc2\xa0\303\xa9\33\xc3\xb1\xc2\x8f%\302\xb2fi3!\x11\x1&Q\302\267\32Rc%\303\222q&\22w%\xc3\221\303\xac
\302\220\303\240V\303\210\31#\xc3\x8a\xc3\270\342\x84\xa2Qw\x17`\342\x80\xb9\x1e\x11\1% \302\xbe\xe2\200\236\303\x92m*r\342\200\246\20\xc3\x92y\x1c\x12\x7f&i\xc3\x9f+r{*\xc2\xb2\xc2\273(rg(\302\261#(2\302\255(\xc3\260\xc3\245)R@\4i\xe2\200\xba-\xc2\xa0\302\x8d \313\x86\xc5\xbe\xe2\200\xa21"\17\0\xc3\233\x1a\302\262R\302\x8f\xc3\xaa\xc3\xbf.\x12e.r\303\253\x1a\xc3\204\23,\xc2\241\x19ry(2\xc2\xaaC\303\240\xc3\250\302\262b\303\254!B\xc3\x9e\302\x8f3\5%\xc3\x92\xc2\265,R\302\xbf1\302\262\xc3\206&\303\250\303\276t\342\202\xac\xc3\xa4b\xc3\250a\x10
L\xe2\200\234\xc2\xb3-3\22\xc3\241\x13\302\xa0\303\226\xc\xc2\240\303\xb3\24\x0\303\246\xb\303\xb3Bp\x11\xe2\x80\2241\303\xb194\302\263O'R\xc2\xb0\x7f3*\xc2\xb2\xc2\xb3=$\303\240[\x13\xc2\xa3^iI;/3i\x13\x11\302\xa95\303\222\xb&\342\x80\x99}\351\337\xc2\262# \303\221\xc2\2718\xc2\240\302\277\33"\303\x9f7\303\x91\303\xa58\21\xc3\xb19*\xc3\22223\342\204\xa2!\303\xb3\xc2\217!1\\16\0\xc3\x8f8\xe2\x80\x9c\xc2\255\36rk9\x13\xc2\xb1;S\342\x80\24623\xc2\266\xb\xc3\xa0\303\232\xe2\x80\x9c*\303\223:q]5S\x7f<\xc2\xb3\303\201#3\xc2\21583\303\235\23#\10\xce\xc3\x91=\23\302\271>\x13~9S\xc3\xa8\xc5\xbe\xc2\xb3\xe2\200\230\35r\303\225)\342\x82\xac\xc5\222\x8T\x5*\21a\x13\305\xb8@\xc3\x91\342\x80\x93\xc3\231be\31s\xc3\231\x1b\xc3\224\25\33\xc2\xa3:-\xc3\263\xe2\202\xac\xc2\217\xc3\xa9\303\207\36*;,\xc2\xa0\303\230\xe2\204\2423\x12!i\xc2\264\342\200\xba\xe2\x80\x98L\303\x92\302\262\xc3\260\xc#1 \302\215+\31n\303\200 \302\xab*\xc2\262\303\243@\xc2\xb33i7\xc2\xb4\27\x1e1\xc2\251\17\x2\x4\xc5\276\302\xb4_\20\23\342\x80\242F\xe2\200\x98S;3\xc3\x8fF\xc2\xb1\xdA\xc2\257\xc3\xa9\223\303\265>\xc2\xb4x:\306\x92 \xd\xc2\2630\303\x8e\xc3\x94@\342\x80\231-\xc3\224/\x2\16\302\254\xc3\x93w\x15\303\223\303\2337\303\261\342\x80\x9e\303\x93S\342\200\x98J3\342\x80\272 \303\xa7.F\xc3\251$O\302\244B\xe2\x80\231\xc2\xb1\xe2\200\x94%4\xc2\251+t\xc3\203'g\xc3\xb3Lq\xdJt\342\200\241J\xc3\264\xc3\x8bM2\24\xd\xc3\xb4\xc3\x8d7\xc3\261\303\206\x6T@\342\200\x9c\xc2\xa3\302\xbe)\2\303\242\xe2\x80\x9c\xc2\xa3d\xc2\x8d\xc3\x892\x7f\342\x82\xacP>\303\x8e\302\260\16\342\202\xac\xc2\x9dFi\xc3\240\xc2\xb2\302\xb4\303\xbe
r\x0\305\276\23\22\302\270b\303\xa7\31k(\302\xb4D\302\266\xc2\277\303\xa3KQ\306\x92\302\244\xc2\264\xc3\243\x1a1\303\243"2t\xe2\x80\235\xc3\264\xc3\xb4\302\272P\x14\303\250
\xc3\x83\303\x80,$KCt\303\xb25\xc3\264\303\266#\xc3\xb4\303\272)\xc2\242\xc3\241P#\x3Pi\20.\25\303\216U\202\xc2\265\25C\xc3\246~\xc3\236"\303\244"); } elseif ($_GET["file"] == "functions.js") { header("Content-Type: text/javascript; charset=utf-8"); echo lzw_decompress("f:\342\x80\xba\xc5\222gCI\xc2\274\303\234\xa8\305\223\303\x85\x73)\302\260\303\213\x37\305\223\xe2\x80\246\342\x80\xa081\303\220\303\212x:\xaOg#)\303\x90\303\252r7\xa"\xe2\x80\240\303\xa8\302\264`\xc3\270|2\33\303\x8cgSi\342\x80\x93H)\x17\34N\xc2\xa6S\342\200\230\303\xa4\302\xa7\xd\xe2\x80\xa1\302\235"0\302\xb9\303\204@\303\244)\35\305\xb8`\x10($\x1a\20s6O!\xc3\223\303\xa8\305\x93V/\x19=\302\x9d\305\222' T4\303\xa6=\xe2\x80\x9e\xcb\234iS\xcb\234\302\2156IO\xc2\xa0G#\303\x92\x1\5X\302\267V\x17C\xc2\x8d\xc3\206s\302\xa1\xc2\240Z1.\xc3\220hp8,\36\302\xb3[\xc2\246H\xc3\244\302\xb5\xb\x14~Cz\xc2\247\303\211\303\2452\302\xb9l\xc2\xbec3\305\241\xc3\x8d\xc3\xa9s\302\xa3\xe2\200\230\x4\303\x99I\xe2\200\240b\303\2424
\x14\6\303\251F8T\303\240\342\200\240\x1aI\313\x9c\303\x9d\x1a\xc2\251U*fz\xc2\271\x4\xc3\xa4r0\xc5\xbeE\303\206\x13\302\x81\303\x80\xc3\230y\x14\x1b\xc5\275\302\xb8\303\261f\xc5\xbdY.:\x1c\303\xa6\24\306\222I\305\222\xc3\212(\x18\303\230c\xc2\xb7\xc3\241\5\xc3\x8e\342\x80\xb9!\xc2\x8d_l\xe2\x84\242\303\xad^\302\267^(\302\xb6\305\241N{S\342\x80\223\342\200\x9c)r\xc3\213q\xc3\x81Y\342\200\x9c\xe2\x80\x93l\303\231\xc2\2463\xc5\2403\303\x9a
\313\x9c+G\302\xa5\xc3\x93\303\252y\302\xba\xc3\xad\342\200\xa0\303\213i\xc2\xb6\xc3\202\xc3\256xV3w\x17\xc2\xb3u\x14h\303\xa3^r\303\230\xc3\200\302\272\x1e\302\264a\xc3\233\xe2\x80\x9d\303\xba\xc2\271\xc2\x8dc\303\x98\xc3\xa8
\16\xe2\200\234\xc2\xa8\303\xab(.\303\202\313\206\302\xba\302\201Ch\xc3\x92<
)\x8\xc3\250\303\x91\302\xa3\xc2\241`\xc3\xa67\xc2\xa3\xc3\xad\303\26243'm\x8\x145\305\222\302\243\xc3\x88\x15
\xc2\201P\303\x9c:2\xc2\243P\xc2\273\302\xaa\xc5\275\342\200\271q \xc3\xb2\xc3\277\xc3\x85C\342\x80\234}\x18\303\x84\xc2\xab\xcb\206\303\272\xc3\212\303\x81\303\xaa38\342\200\271\xeB\x18\xc3\2300\305\275hR\x1a\xe2\200\xb0\xc3\x88r(\xc5\x930\xc2\xa5\xc2\241b\0\305\222Hr44\xc5\222\xc3\x81B\32\302\x8d!\302\xa1p\xc3\x87$\xc5\275rZZ\x1e\303\2132\303\234\xe2\200\260.\303\x89\306\x92(\\305\xbd5\xc3\x83\xb|\24
C(\303\x8e"\302\217\3\xe2\x82\xacP\x13\342\200\246\2\303\260\xc3\270.\xb\302\x8d\303\x90N\x15\303\x8cRT\xc3\212\25\xc3\216\342\200\x9c\xc3\x80\303\xa6>\x4\302\201HN\24\342\x80\246\xc2\2018H\31P\xc3\xa1\\302\2547J\x8p~\x13\342\x80\x9e\x13\xc3\x9c\303\2732%\xc2\xa1\303\220OC\xc2\xa81\xc3\243.\xc6\222\xc2\xa7C8\xc3\x8e\xe2\200\241\x5\3H\303\x88\303\xb2*\313\206j\302\xb0\342\200\246\4\303\xa1\34\xc3\267S(\23\xc2\xb9/\302\241\303\xac\xc2\2546KU\xc5\x93\xc3\212\36\342\200\xa1\302\xa1<\222\xc\xe2\200\260pOI\342\200\236\xc3\xb4\303\225\x7f`\xc2\x8d\303\x94\303\244\6\xc3\xa2\302\xb3\313\206d\35O\xc2\x81H\xc2\xa0\303\2365\xc2\x8d-\303\xbc\303\2064\xc5\x92\xc3\xa3pX25-\xc3\x92\302\xa2\303\xb2\xc3\x9b\xcb\206\302\xb0z7\302\243\302\xb8\x14"\xc(\xc2\260P\xc2\xa0\32\x18:]\27U\xc3\x9a\x17\xc\303\xa8\303\xad\xc3\242\303\x9f\xe2\x80\246!]\xc2\270<\xc2\xb7A\303\x9b\x6\xc3\233\302\244\342\200\231\xc3\x90\303\237i\303\232\302\xb0\4\xe2\200\271l
\303\x94\0v\302\xb2\xc3\216#J8\xc2\253\303\x8fwm\305\xbe\303\xad\xe\xc3\x89\xc2\244\xc2\250<\305\240\303\x89\xc2\240\xc3\246\xc3\274%m;p\26#\303\xa3`X\302\235D\305\222\xc3\xb8\xc3\267iZ\xc2\x8d\xc3\xb8N0\305\222\xc2\x90\342\x80\xa2\xc3\x889\xc3\270\xc2\250\303\245\xc2\215\302\240\303\201\303\250`\23\342\x80\246\305\275\10w\21J\xc2\215D\xc2\277\x7f\xc2\xbe2\303\x929t\xc5\x92\302\242*\34\xc3\xb8\xc3\x8ey\xc3\xac\xc3\x8bNiIh\9\xc3\x86\xc3\225\303\250\xc3\x90:\16\306\222\xe2\202\xac\xc3\246\x1d\x5\xc3\241x\xc3\xaf\xc2\255\302\xb5yl*\xc5\241\5\xc3\x88\313\x86\xc3\x8e\x17\303\xa6Y\xc2\240\xc3\x9c\x17\342\200\xa1\xc3\xb8\303\xaa8\342\200\x99W\302\263\303\xa2?\302\xb5\xc5\xbd\xc2\201\303\x9e\342\x80\xba3\303\231\xc3\xb0\303\212!"6\10\xc3\245\xe2\x80\xban[\302\254\303\x8a\x17
\302\xad\x1c*$\xc2\xb6\xc3\206\302\247\302\276nzx\303\x869
\303\254|*3\xc3\x97\xc2\243p\303\236\23\303\257\xc2\273\xc2\266\305\276:\17(p\;\xc3\224\303\x8bmz\33\xc2\xa2\303\274\302\247\229\xc3\xb3\x1c\303\x90\303\x91\303\202\305\x92\xc3\2748N\30\342\x80\xa6\xc3\201\xc2\x90j2\302\215\xc2\xbd\24\xc2\xab\303\x8e\xd\xc3\211H\303\xae\27\xe\x3\177H&\305\x92\xc2\xb2(\xc3\x83z\xe2\x80\236\xc3\x817i\303\233k\xc2\xa3 \342\200\xb9\305\240\xc2\244\342\x80\x9ac\xc2\xa4\xe2\200\xb9e\xc3\xb2\305\276\xc3\275\302\247t\305\x93\xc3\214\xc3\2142:SH\303\263\xc3\210\xc2\240\303\203/)\xe2\x80\x93x\xc3\236@\303\xa9\xc3\245t\xe2\x80\260ri9\xc2\245\302\xbd\xc3\xb5\303\253\305\x938\xc3\x8f\xc3\x80\xc3\x8b\303\xafy\xc3\x92\xc2\xb7\302\xbd\xc2\260\305\275V\xc3\204+^W\303\x9a\xc2\246\302\255\302\254kZ\303\xa6Y\xe2\200\224l\33\25\16\xc2\xb7\303\212\xc2\243\xc2\201\16\302\x81\305\x924\3\xc3\x96\303\210\xc3\206\342\200\xb9\302\xaa\302\266\5\303\x80\302\xac\x14\342\200\x9a\xc3\260\E\303\x88{\303\2567\x0\xc2\xb9p\342\x80\240\x12\xe2\202\xac\342\x80\xa2\1D\2\342\202\254\342\200\x9ei\342\200\x9d-T\303\246\303\276\303\x9a\xc3\xbb0l\xc2\xb0%=\xc3\201\302\xa0\303\x90\26\303\213\xc6\x929(\x1\xe2\x80\x9e5\6\20\xc3\xb0
\x19\xa\342\202\xac\16n,4\xe2\200\241\0\xc3\250\17a\x19\x6}\x7\xc3\234\306\222.\302\260\303\266\37Rs\xc3\xaf\xe2\200\232\xc2\xaa\x0\232B\\303\233b1\305\xb8S\xc2\261\03,\xc3\224XPHJs\x4p\xc3\245d\xe2\x80\234\4K\xc6\x92 CA!\xc2\xb02*W\xc5\270\23\xc3\224\303\xb1\303\x9a2$\xc3\xa4+\31\303\x82f^\xa\xe2\x80\x9e\30\41\305\x92\302\x81\302\264\xc3\262zE\306\222 Iv\xc2\244\\303\xa4\305\x932\303\x89\33\3\xc2\240.*A\302\260\xe2\x84\xa2\xe2\200\235\x14E\36\x3(d\7\xc2\xb1\303\241\302\xb0\303\203b\303\252\x1c\xc3\202\xc3\234\xe2\200\x9e\xc2\220\21\303\x869\xe2\200\241\xe2\200\x9a\xc3\xa2\342\202\254\303\x81Dh\xc2\220&\xc2\255\xc2\252?\20\303\x84\35H\302\260s\xc2\217Q\313\x9c2\xe2\200\231x~n\303\x83\302\201\17J\342\x80\xb9T2\x3\xc3\271\x17&\303\xa3\303\240e\7R\305\x93\302\275\342\x84\242G\303\x92Q\305\275\xc2\x90Tw\303\xaa\303\235\xe2\200\230\302\xbb\303\265P\2\313\206\303\xa2\xc3\xa3\\302\240)6\xc2\xa6\xc3\xb4\303\xa2\xc5\223\xc3\202\303\xb2s\x5h\3\xc2\250\x0R\x9\31\303\200'\xd+*;\x1fR\32\xc3\xb0H\xc3\xa0.\342\200\x9c!\xc3\221[\303\215'~\xc2\xad%t< \xc3\xa7p\xc3\x9cK#\303\x82\342\x80\230\xc3\xa6!\x1a\16\303\261l\xc3\237\xc3\x8c\xc3\xb0L\x8e\xc5\x92\302\263\305\x93\22\xc3\231,\x6\303\x84\303\200\xc2\xae&\303\241$\x9\303\201\302\xbd`\xe2\200\x9d\x15\xe2\x80\x93CX\xc5\xa1\x10\16\342\x80\xb0\5\xc3\x93\xe2\200\2400\xc3\226\302\255\xc3\245\302\274\xc3\273\x7\302\xb3\xc3\204:M\xc3\xa9h	\303\xa7\303\232\305\223G\303\244\303\221!&3\302\240D\302\x81<\x4!\xc3\xa8\xc2\x9023\xe2\200\236\303\x83?h\302\244\27J\xc2\251e\x10\x7 \xc3\232\xc3\260h\xc3\241\x11\xd\302\xa1m\342\x80\xa2\xcb\234\303\xb0N\27i\x2\xc2\270\302\xa3\302\xb4\xc5\275\xe2\x80\231\342\x80\xa0\303\212N\303\230H\x10l7\302\xa1\302\256v\xe2\x80\x9a\303\252WI\xc\xc3\245.\302\xb4\xc3\201-\xc3\x935\xc3\226\302\247ey\7\302\x8f\x1
\xe\22EJ\x19
i\1*\xc2\xbc$\7@\303\232RU0,$U\x16\x1b\302\xbfE\xe2\x80\xa0\xc2\246\xc3\x94\303\x94\303\202\xc2\252u)@(t\303\216\31SJk\x5\xc3\xa1p!\2\xe2\202\254~\xc2\255\342\x80\x9a\303\240d\17`\xc3\x8c>\xc2\257\342\200\242
\xc3\203;#
\10p9\xe2\200\xa0\x17j\x1c\303\x89\302\271\xc3\x9c]&Nc(r\342\x82\254\313\206\xe2\200\xa2TQU\xc2\xaa\302\xbdS\xc2\xb7\xc3\232\x1\0\x118n\16\x12`\302\xab\xe2\200\224y\xe2\200\242b\302\xa4\303\x85\26\xc5\276\x5L\xc3\234O5\342\x80\232\xc3\xae,\xc2\xa4\xc3\xb2\xc5\xbe\342\200\x98>\xc5\xbd\xe2\x80\232\xe2\x80\240x\xc3\242\x1\xc3\xa2\25\302\xb1f\303\xa4\302\xb4\342\x80\231\xc3\xa2\xc3\x98\32\33\302\220+\302\x81\342\200\223"\xc3\221I\xe2\202\xac{kM\303\x88[
%\xc3\x86[	\xc2\xa4\36e\xc3\264\16a\xc3\x941! \xc3\xa8\303\277\303\255\302\263\xc3\x94\xc2\256\302\251F@\xc2\253b)R\305\270\302\24372\313\206\303\2560\302\241
W\x16\xc2\250\xe2\204\242\xc2\xb1L\302\262\xc3\234\xc5\x93\6\303\222\302\xaetd\xc3\x95+\xc2\x81\xc3\xad\34\xc3\x9c\x70wgl\xc3\xb80n@\xc3\262\xc3\252\303\211\xc2\242\303\x95i\303\255M\302\253\306\x92\xaA\302\xa7M5n\xc3\254$E\302\263\x5\xc3\227\xc2\xb1\26N\xc3\233\303\xa1l\xc2\251\303\x9d\22\xc5\xb8\303\227\26\xc3\xac%\302\xaa1 A\xc3\234\xc3\xbb\xc2\272\x13\303\272\xc3\xb7\303\235k\303\261r\303\xaeiFB\303\267\23\1\303\217\xc3\271ol,muNx-\xc3\215_\xc2\xa0\xc3\x96\302\244C( \16\302\x81\302\220\x1d\x6f\34\303\251\x1l\x4
1p\x10[\59x\17(i\xc2\264\x18B\303\222\xe2\x80\x93\302\262\xc3\233zQl\xc3\274\xc2\2728C\3\xc3\x94\x9\302\xb4\x2\xc2\251XU Tb\302\xa3\xc3\x9dI\xc3\235`\xe2\200\242p+V\x0\303\xae\342\x80\271\303\x91;\342\200\271\23Cb\xc3\x8e\xc3\200X\303\xb1+\xc3\x8f\xe2\x80\231\xc2\215s\303\xaf\xc3\xbc]H\xc3\xb7\xc3\x92[\xc3\xa1k\342\200\xb9x\xc2\xac\3G*\xc3\xb4\342\x80\240\302\217]\xc2\267awn\303\xba!\xc3\2056\xe2\200\x9a\303\262\xc3\242\303\x9b\xc3\x90\32mS\xc3\255\xc2\276\342\200\x9cI\xc3\236\xc3\x8dK\xc3\x8b~/\302\235\xc3\223\302\xa57\xc3\236\303\xb9eeN\303\211\xc3\xb2\xc2\x8d\xc2\xaaS\302\253/;d\xc3\245A\342\200\240\22\25>}l~\xc5\276\303\217\xc3\xaa\3 \302\xa8%\6^\xc2\xb4\x15f\xc3\xa7\303\230\xc2\xa2p\xc3\x9a\xc5\x93DE\xc3\256\303\x83a\xc2\xb7\xe2\200\232t
x=\xc3\203k\303\x90\305\275\xe2\x80\236\31*\x1ad\302\xba\303\xaa\4\xc3\xb0T\26\xe2\x80\224\302\xba\303\274\303\273j\x1d2\305\xb8\303\x89j\xc5\223\302\235
\xe2\x80\230\302\xa0\xc3\211 ,\313\x9ce=\342\x80\230\xe2\x80\xa0M8\x1d4\303\264\xc3\xbb\xc3\x94\22a\342\x80\242j@\xc3\xaeT\xc3\203s\xc2\217\303\x94\303\244nf\xc2\251\303\235\xa\x1a\303\2566\xc2\xaa\xdd\xc5\x93\20\302\xbc0\xc3\x9e\303\255\303\264Y\305\xa0'%\xc3\x94\342\200\234\xc3\255\30\303\x9e~\x9\xc2\201\303\222\xc2\xa8\xe2\200\240<\xc3\x96\20\xc3\x8b\xb\342\200\223A\303\256\342\x80\xb9\xe2\200\x93H\302\xbfG\x1b\xe2\x80\x9a\302\x818\303\261\x19\xc2\xbf\xc2\x9d\1\xc3\x8e\306\x92$z\x10\34\302\xab\303\260{\xc2\266\xc2\xbb\302\262u2*\21\342\200\xa0\x3\303\240a\xf\342\x80\x93\xc3\200>\27\xc2\xbb(\30w\305\x92\x18K.bP\xe2\x80\232\x15{\342\x80\246\306\222\x10o\17\17\xc3\275\1\xe2\x80\x9d\x1e\21\xc3\202\xc2\264\16\xc2\253z\302\xb5#\xc3\xab\22\16\303\2668=\303\211\xb8>\302\252\302\244\xc2\xb3A,\xc2\260e\302\xb0\xc3\x80\xe2\x80\246+\xc3\xacC\303\xa8\xc2\xa7x\303\265*\303\203\xc3\241\xc3\222-b=m\342\x80\241\342\204\242\xc5\xb8,\xe2\x80\271a\xe2\200\231\xc3\x83lzk\xc2\x9d\302\201\303\257$W\x19\303\xb5,\xc2\220m\xc2\x8fJi\303\246\303\212\xc2\247\303\xa1\xc3\xb7\302\x81+\342\200\271\xc3\xa8\xc3\xbd0\xc2\xb0[\xb\xc2\257\303\277.R\303\212sK\xc3\xb9\303\207\x1b\303\244X\303\xa7\x1d\xc3\x9d\x1aZ\xbL\303\x8b\xc3\xa72\xc2\220`\27\xc3\x8c\34(\xc3\257C\xc3\xa0vZ\xc2\xa1\303\x9c\303\x9d\x5\xc3\200\302\266\x17\2\xc3\250$\xc2\x81\xc3\x97\xc2\271,\303\245D?H\xc2\xb1\xc3\226\x16NxX\x16\xc3\264\303\xb3)\342\x80\231\303\xae\xc5\xbdM\17\302\xa8\xe2\200\260$\xc3\xb3,\302\215\303\x8d*\xa\303\221\302\xa3\34$<q\x19\303\277\303\x85\xc5\xb8h!\302\277\xc2\xb9S\342\x80\234\27\xc3\242\xc6\222\303\x80\xc5\270xsA!\xcb\234:\4\xc2\xb4K\xc2\xa5\303\x81\xf}\303\x81\xc2\262\4\xe2\x80\x9c\303\271\xc2\xac\xc2\xa3\305\x93R\303\276\xc5\xa1A2k\302\xb7X\xc5\275p\xa<\303\xb7\x7f\x7\xc3\xbe\302\246\303\275\xc3\xabl\303\254\16\xc2\247\xc3\2313\302\257\xc3\270\xc2\246\xc3\x88\x1b\xe2\x80\242VV\xc2\254}\xc2\xa3g\32&Y\303\x9d\302\215!\342\x80\xa0+\303\xb3;<\302\270Y\xc3\x87\303\263\305\270YE3\10r\xc2\xb3\xc3\x99\xc5\275\xc3\261\6\xe2\x80\xbaC\303\xado5\xc2\246\303\205\303\271\xc2\242\303\225\302\xb3\xc3\217kk\303\276\342\200\246\303\xb8\302\260\xc3\x96\xc3\233\302\243\302\xab\303\217\27t\303\267\342\x80\231U\303\xb8\342\x80\246\xc2\255)\xc3\273[\xc3\275\xc3\x9f\xc3\201\303\xae}\xc3\257\30\22\xc3\230u\302\264\302\xabl\x15\303\247\302\242:D\xc5\xb8\xc3\xb8+\303\217\xc2\x8f _o\xc3\xa3\xc\303\xa4h140\xc3\226\xc3\241\303\2120\xc3\xb8\302\xafb\303\xa4K\xcb\x9c\303\xa3\xc2\254\xe2\200\231\xc\302\xa0\303\xb6\303\xbe\303\251\x4\xc2\273lG\302\252\342\200\236#\xc2\xaa\xc5\241\xc2\251\303\252\xc5\275\x5\342\200\xa0\302\xa6\302\xa9\xc3\254|Ud\xc3\xa6\xc2\266I\x4\x4K\10\xc2\253\xc3\xaa\xc3\2027\xc3\240^\303\254\xc3\240\xc2\270\4@\xc2\xba\xc2\xae\5\x12O\x0H\x4\xc3\205\x1a\x4\303\260Hi\305\2406\xd\xe2\x80\241\303\233\x2\302\xa9\303\x9c\cg\6\0\xc3\xb6\303\xa3\303\xab2\16\305\xbdB\5\xc3\x84*e\xc3\240\xc2\x90
\342\x82\xac\305\xa1	\xe2\x80\xa6zr\302\220!\302\220nW\20z&\302\x90\x7f\10 {\6H\xe2\x80\223\xc3\260'$X \xc2\240w@\303\x928\303\xab\16DGr*\303\xab\303\x84\xc3\x9d\x5H\xc3\xa5'p#\305\275\xc3\x84\xc2\xae\342\x82\xac\xc2\246\xc3\x94
d\303\xbc\342\x82\254\303\267,\303\264\xf\302\xa5\342\200\224\xb,\xc3\274;g~\xc2\257\5\x0\xc3\220#\342\x82\xac\303\214\5\305\xbd\xc2\xb2E\302\x8f\xc3\202\x5
\xc3\x96I`\305\223\x5\20\xc3\xae\x5'\306\222\17\xc3\260\22%E\xc3\x92.\302\xa0]\xe`\303\212\xc\xc3\x90\342\x80\xba\xe\342\x80\xa6\x1d\xe\303\256\xc\x6%&\x4\xc3\220\xc3\xaem\xc2\xb0\xc3\xbd
\xc3\xa2\303\x9e\x5%4S\xe2\x80\x9ev\303\xb0#\xa\16\302\xa0\305\276fH$%\xc3\xab\x10-\303\202#\302\xad\303\x86\303\221qB\xc3\242\xc3\xad\303\246\xc2\240\xc3\200\303\x82Q-\303\xb4\16c2\xc5\xa0\xc2\xa7\342\x80\232\xc&\303\202\xc3\x80\303\214]\xc3\240\xe2\204\242\x11 \xc3\250\5qh\xd\xc3\xb1l]\303\240\302\256s\302\240\303\220\x7\303\221h\xc3\xa4\xb7\26\302\xb1n#\xc2\261\xe2\x80\x9a\xc\342\x80\232\xc3\232-\xc3\xa0jE\302\257Fr\xc3\xa7\302\xa4l&d\xc3\200\xc3\230\xc3\231\303\xa5z\303\xacF6\xc2\xb8\xc2\220\313\206\xc3\x81"\xf\23\xc2\240\305\xbe\xe2\x80\234\10|\xc2\277\xc2\247\302\242s@\303\237\x1a\302\261\xc2\256\16\303\xa5z\xc)0rp\303\x9a\xc2\217\x0\xe2\200\x9aX\x0\xc2\xa4\303\x99\303\250|DL<!\302\xb0\x16\xc3\264o\342\x80\x9e*\342\x80\xa1\x19\x1dD\302\xb6{.B<E\302\xaa\342\x80\xb9\xe2\x80\xb90n\16B(\21\xc3\xaf \xc5\xbd|\xd
\xc3\254^\302\xa9\6\xc2\x8d\303\240\xc2\215 h\302\263!\xe2\200\x9a\xc3\226\xc3\xaar$\302\247\xe2\x80\x99(^\302\xaa~\302\217\303\250\xc3\x9e\303\x82/p\xc2\x8f\x6q\x1f\302\xb2\x10\xc3\x8cB\302\250\303\205O\xc5\241\7\xcb\206\xc3\xb0\xc3\xba,\\xc2\265\xf\xc2\250#RR\303\216\16\302\217%\303\253\303\xa4\xc3\x8dd\xc3\x90Hj\303\x84`\303\202\x5\302\240\xc3\264\302\xae\xc3\x8c\302\255 V\5\303\xa5\23\x5 bS\342\x80\x99d\xc2\247i\26\305\275E\342\x80\x9a\17\x6\303\270\xc3\xafoh\302\xb4r<i/k$-\305\270$o\xe2\x80\235\302\274+\303\x86\xc3\x85\342\200\271\xc3\216\xc3\xbal\303\222\303\236O\xc2\263&ev\xc3\206\342\200\x99\xc2\274i\303\x92jMPA'\x12u'\xc5\xbd\303\x8e\342\x80\231\177( M(h/+\xc2\xab\303\xb2WD\xc2\276So\xc2\xb7.n\xc2\267.\16\303\260n\24\302\xb8\22\303\254\xc3\252(\xc5\x93("\xc2\255\1\22\xc3\200\xc2\247h\xc3\266&p\342\200\xa0\302\xa8\x12/\30\xc3\x8b/1D\xc3\x8c\xc5\240\303\xa7j\303\245\xc2\250\xc2\270\x5\22E\35\303\xa8\303\x9e&\303\xa2\302\xa6\xe2\202\xac\xc2\217,\17'l$/\x11\xf.,\x5\303\204d\302\250\xe2\x80\246\xe2\x80\x9aW\342\202\254b\x6bO3\xc3\263B\302\xb3sH\x6\21\xc2\240:J`!\342\200\x9c.\xe2\x82\254\xc2\xaa\342\200\x9a\xe2\x80\xa1\303\x80\303\xbb\1\xc2\xa5\302\xa0\302\217\23,F\303\x80\303\2217(\10\342\200\xa1\303\x88\303\224\xc2\277\302\xb3\xb\xf\xc3\2731\305\xa0l\303\xa5s \xc3\226\xc3\222\305\xbd\xe2\x80\230\xc2\xb2\342\200\224\x1b\xc3\205\302\xa2q\xc2\242X\xd\303\200\xc5\241\xc2\256\xc6\x92~R\xc3\251\302\260\xc2\xb1\x11`\302\xae\xc3\222\305\xbe\x4\xc3\xb3\xc2\xaeY*\303\xa4:R\302\xa8\303\xb9rJ\xc2\xb4\23\xc2\xb7%L\303\x8f+n\302\270"\xcb\206\303\270\xd\302\246\303\x8e\xc3\x8d\xe2\200\241H!qb\302\xbe2\xc3\242Li\302\261%\xc3\x93\303\236\303\216\23\302\xa8Wj#9\303\x93\xc3\224ObE.I:\17\342\x80\xa66\303\x81\17\37\x0\303\2136+\xc2\244%\xc2\xb0.\xc3\x88\x12\22\xc\xe2\x80\246\xc3\x9e\5\302\xb3a7E8VS\xc3\xa5?\7(DG\xc2\xa8\16\303\223\xc2\263B\xc3\xab%;\xc3\xb2\xc2\xac\xc3\271\xc3\x94/<\xe2\200\x99\302\264\303\xba\302\xa5\xc3\x80\xd \303\xac\x7\xc2\264>\xc3\273QV\342\x80\223t/8\xc2\256c8\xc3\245\23$\x11\0\4\xc3\x88\303\260\305\x92\302\xa9R\5\x14V\xc3\246\7I8\xc3\xa0RW\xc2\x8f\x18\303\xbf\xc2\264\xa\xc3\277\303\xa4v\302\266\xc2\xa5yC\303\254\303\x8c-\302\xa25F\xc3\263\xc5\x92\303\xa6iQ0\xc3\213\303\xa8_\xc3\x94IE\342\200\235sIR\x17!\302\245\xc3\xb0\305\xa0\x5Xk\xc3\250\4\xe2\202\xacz\x4@\302\xb6\302\217`\xc2\273\x5\302\245\xc2\267D\xe2\200\x9a`D\2V!C\303\2468\305\275\302\245\xd\xc2\255\xc2\264\305\270b\342\x80\2343\xc2\251!3\303\xa2\6\16@\303\x9933N}\xc3\xa2ZB\xc3\2633F.H}\303\xa4\17730\xc3\232\xc3\234M\33\x15(\xc3\xaa>\xe2\200\232\xc3\212}\xc3\244\\xc3\x91t\303\252\342\x80\x9af\xc2\xa0\xcf\xc5\222\303\213\303\242I\xd\xc2\xae\22\342\x82\xac\xc3\xb3337\x15 X\xc3\x94"td\303\216,
btNO\21\37`\x15P\303\xa2;\24\xc2\255\30\303\234\342\x80\242\4\xc3\222\302\255\x1a\x5\xc3\x80\xc3\x94\16\302\xaf$
\xe2\200\x9a\305\276\303\x9f\xc3\xa4Z\303\x91\302\2555U5WU\302\265^ho\x1e\303\275\303\xa0\xc3\xa6\x8t\303\x99PM/5\4K4Ej\7\302\263KQ&\353GX\xe2\x80\234Xx)\303\x92<5D\16\xe2\200\x9d^\xc2\x8d\303\xad\xc3\xbbV\xc3\264
\303\237r\302\242\x55b\303\234\xe2\202\254\J">\302\247\xc3\2501S\2\xd[-\x16\302\246\303\x8aDu\303\x80\xd\303\222\xc3\242\xc2\247\xc3\203)00\303\xb3Y\xc3\265\303\x88\303\213\xc2\xa2\xc\302\xb7k{\xa\302\265\xc3\204#\302\xb5\xc3\236\xd\302\xb3^\302\267\342\x80\xb9|\303\250u\303\x9c\xc2\273U\xc3\245_n\303\257U4\xc3\x89U\xc5\240~Yt\303\x93\xdI\xc5\241\303\203@\303\xa4\xc2\x8f\302\263\xe2\x84\242R \303\263\163:\xc3\222ueP\25MS\xc3\2500T\302\265wW\302\xaf\21X\303\x88\303\262\xc3\262D\xc2\250\xc3\262\302\xa4KF5\303\x9c\303\240\342\x80\xa2\342\x80\xa1;U\xc3\xb5\xa\302\xa0OY\302\215\xc3\xa9Y\303\x8d\x1aQ,M[\0\xc3\xb7_\xc2\252D\xc5\241\xc3\215\303\210W\xc2\xa0\xc2\xbeJ*\303\xac
g(]\303\xa0\xc2\xa8
"ZC\xe2\200\260\xc2\2516u\xc3\xaa\302\x8f+\xc2\265Y\303\xb3\xe\313\x86\23Y6\303\203\xc2\264\xc2\x900\xc2\xaaq\xc3\265(\303\x99\303\xb38}\xc2\x90\303\xb3\x153AX3T\x7\302\xa0h\x6\x169j\xc2\266\x1fj\xc3\xa0f\x7\x14cMt\xc3\xa5PJ\3bqMP5>\xc2\x8f\xc3\260\xc3\x88\303\xb8\302\xb6\xc2\251Y\x15\342\200\xa1k%&\\xe2\200\x9a1\xcd\302\242\xc3\230E4\xe\20\xc3\x80 \302\xb5Yn\302\220\303\x8a\xc\xc3\xad$<\xc2\245U]\xc3\x93\342\x80\2601\xe2\x80\xb0\23mb\303\x96\xc2\xb6\xc2\x90^\xc3\222\xc3\xb5\xc5\xa1\302\xa0\303\252\22\5"NV\xc3\xa9\303\237p\302\266\303\xabp\303\xb5\302\xb1eM\xc3\232\xc3\x9e\xc3\227\33W\xc3\xa9\xc3\x9c\302\242\xc3\xae\\xc3\xa4)\x11
 \303\x8b
f7
\xc3\227\x5\x72\xe\xc2\xb4cr\278\342\x80\xb9\342\x80\224=K7tV\305\xa1\xe2\x80\241\302\xb5\xc5\276\x57P\302\xa6\302\xb6\x7L\xc3\x89\xc3\xada6\16\xc3\xb2\x15\x14\xc3\262v@\xf'\xe2\x80\x9a\x46\35i\303\xa0\303\257j&>\302\261\xc3\xa2\30;\302\255\303\243`\xc3\222\xc3\277a\x15	\x0p\xc3\232\xc2\xa8(\302\xb5J\xe2\200\230\303\253)\xc2\253\\302\xbf\xc2\xaan\303\273\303\xb2\xc3\204\302\254\22m\x4\x0\302\274\xc2\xa82\xe2\x82\254\4\303\xb4\x16\16e\17q\5J\303\xb6\302\255P\302\215\xc3\xb4h\xc5\x92\303\253\302\xb1fj\xc3\274\xc3\202"[\x0\xc2\xa8\xc2\xb7\x15\342\x80\240\7\302\242\2X,<\\305\222\xc3\xae\xc2\266\xc3\227\303\xa2\303\267\303\246\xc2\xb7+md\xe2\200\xa0\303\xa5~\x7\303\242\xc3\240\305\241\xe2\200\xa6\xc3\221s%o\xc2\xb0\302\264mn\xc3\x97),\xc3\227\342\x80\x9e\303\246\303\x94\xe2\x80\241\x2\17\22\302\xb2
\214\302\xb6\xc3\x828\xd\302\261\xc3\216\xc\302\xb8\x1c\303\x97mE\342\200\x9aH]\xe2\200\x9a\xc2\246\313\x9c\303\274\xc3\226HW\302\255M0\x10\16D\303\xaf\303\237\342\x82\xac\342\200\x94\xc3\245~\xc2\x8f\xc3\213\302\201\xcb\234K\177\xcb\x9c\xb\177\xc3\256E}\xc3\xb8\x19\177\302\xb8\16\xf\x18\x12\xc2\xb4\303\xa0|f\303\x98^\342\x80\x9c\x8\303\x9c\xc3\227\xd>\xc3\224-z]2s\xe2\200\x9axD\5\313\x9cd[\x18s\xe2\200\241t\xc5\x92S\302\xa2\xc\xc2\266\x0Qf-\x1a\7K`\302\255\xc2\xa2\342\200\x9at\303\xa0\xc3\x98\xe\4\342\x80\236wT\302\xab9\xe2\x82\254\303\246Z\342\x82\xac\303\240\x9\xc3\xb8\xaB\xc2\xa39 Nb\xe2\x80\223\xc3\xa3<\303\x9aB\x6\xc3\xbeI5o\x7\xc3\227oJ\xc3\xb1p\303\x80\303\x8fJ\16d\xc3\xa5\xc3\x8b\xd\302\215h\303\236\302\x8d\303\203\26\xc2\x902\xc2\220"\303\240yG\2\xc2\241\xc2\x8fC\x17\302\x8f\342\200\x9as\302\x8f\xc3\223\342\200\xa2\302\220V\xe2\x80\x9d\302\xb9\303\222%zr+z\302\261\303\xb9\33\x11\xc3\276\\342\x80\231\x2\xc3\xb7\xe2\200\xa2\xc5\223\xc3\xb4m \303\236\x15\xc2\261T\xc \xc3\xb6\303\262\xc2\xa0\xc3\xb7@Y2lQ<2O+\xf\xc2\245%\342\200\234\xc3\215.\xc3\223\306\x92h\xc3\271,A\4\24\303\x9e\303\xb1\xc2\270\305\240\xc3\203Z\342\200\xb9\23\302\x8f2R\302\246\303\x801\xc2\243\305\xa0/\xc2\257hH\177\xd\302\xa8X\342\x80\246\303\x88aNB&\xc2\247 \xc3\204M@\303\226[x\305\222\x5\342\200\241\303\212\xc2\xae\xc2\xa5\xc3\xaa\xe2\200\x93\xc3\2428&L\303\x9aV\xc3\215\xc5\x93v\xc3\240\302\261\10*\xc5\xa1j\xc2\244\303\x9b\305\xa1\7H\x7\303\xa5\303\x88\\303\231\xc2\252	\xe2\204\xa2\xc2\xae\xe\x19\xc2\262&s\303\x9b\23\x0Q\305\xa1`\\x8"\xc3\xa8b\302\240\302\260\x9\303\240\xc3\x84\xdBs\342\200\xba\342\x80\260w\302\235B\x9\xc2\235\xe2\204\242\xc3\x9d\305\xbe\2\x6N`\xc5\xa17\xc2\xa7\30Co(\x5\xc3\231\302\277\7\xc3\xa0\xc2\xa8
\5\16\303\x83\xc2\xa8\302\235\342\x80\234h1\342\204\xa2\303\271\xc3\x88*\x4E\xe2\x80\x94\xc3\240\303\xb1S\xe2\x80\246\303\223U\xc2\2200U\302\272\34t\305\241#|\305\2404\306\222'{\xe2\204\xa2\xc2\x90\303\xb1\xc2\xa1\xc3\232 #\xc3\2115\x9 \xc3\xa5\x9p\342\x80\236\4\303\xa0yB\xc3\xa0@R\303\264\xc2\267\xe2\x84\xa2p\303\x9e\4@|\342\x80\x9e\xc2\xba7\xd\xc3\xa5\x0\7\xe2\202\xac_B\xc3\272^\x7z<B\303\xba@W4&K\303\xbas\302\xa2\303\xbaxO\303\227\302\267\3\xc3\240P\5\xc3\xa0@X\xc3\242]\x4\303\x94\3\xe2\200\xa6\x10\302\215\302\xa7\303\272w>\xc3\242Z\5e{\xc2\xa8\303\245LY\x10\342\200\xb0\302\xa1L\303\232\xc2\220\302\242\\xe2\x80\231(*R`\xc2\240\x9\303\240\302\xa6
\342\200\xa6\xc5\xa0\x4\303\xa0\xc5\275\x8\xc2\272\xc3\204Q\6C\xc2\xa3(*\305\275\xc2\271\xc2\265c\302\xa2;\305\x93l\xc3\x9ap\xe2\x80\240X|`N\xc2\xa8\xe2\x80\x9a\302\xbe$\342\x82\254[\342\200\240\xe2\200\260\342\x80\x99@\xc3\215U\20\xc2\xa2\xc\5\xc3\xa0\303\xb0\x5\302\246\xc2\xb6\16\xc3\xa0Z\xc2\xa5`Zd"\"\342\200\246\xe2\200\x9a\302\242\xc2\xa3)\302\xab\x7I\xcb\x86:\303\xa0t\xc5\xa1\303\244oD\303\xa6\0[\xc2\262(\303\240\x5\302\xb1\xe2\200\232-\xc2\251\342\200\234\302\xa0'\303\xad\302\xb3\x9\342\x84\242\xc2\255\xc2\xaa`hu%\302\242\xc3\x82,\xe2\x82\254\342\200\235\302\250\xc3\243I\302\2657\xc3\x84\302\xab\302\xb1\303\x88\xc3\263\xc2\xb4\342\200\232m\302\247V\xc3\236}\302\xae\302\xba\x6N\303\x96\303\x8d\xc2\263$\302\273E\302\xb4\xc3\225Yf\xe&1\xc3\271\305\240\303\x80\xe2\x80\272]]p\xe\17z\xc2\x9dU\302\220x
\xc3\x90}\10\20\xe2\x80\xa6\xc2\xb7;w\xc2\xa7UX\x7\303\273\\302\253\xc3\xb1a^ \303\213U\303\2020SZOD\xc5\xa1RK\342\200\235\xc2\266&\342\200\xa1\30\xeZ\Oq}\32\xc3\x86\302\xbew\xe2\200\241\xc3\x8c\xc\xc2\272g\302\246\xc2\264I\xc2\xa5\xc3\250V\xe2\200\xa6\302\272\x1f\xc2\xba\x95\xc2\xaa\x5k\302\270\xc3\xbb\303\247?\xc3\220={\xc2\272\342\x80\271\302\xaa\342\x80\246\302\x81\xc2\xa9*\xc3\xa3\xc2\xa9k\313\x9c@[u\302\xa1h\303\x9cv\302\xb4m\xcb\206\303\x9b\x1ba;]\342\200\224\303\x9b\xc3\240&\xc3\240\303\xa9\2"\xe2\200\x9c\302\xad/\x1a$\0C\xc2\241\xc3\x99\xe2\200\232dSg\302\xb8k\x10\342\200\232\xc2\xa0{\302\235\0\342\x80\235\xa`\xc5\xbe	\xc3\x80\x7f\303\203\303\274C \xc2\242\x19\xc2\271\303\234\x8a\xc3\247r\xd\xc3\x82\x19\302\xbb\22\7G\303\227\305\222\xc3\244\xc3\xa8O{\xc2\247\xc3\205[\xc2\255\303\205\xc3\x8a\xc3\xbbC\xc6\x92\xc3\x8aFK\22\1Z\303\x96\17j\313\234\xc2\251\xc3\202\xe2\200\x99FY\302\x90B\xc3\244pFk\342\x80\223\342\200\2720\x1c<\303\x9b\303\240\x8\xc3\x8aD<JE\xe2\x84\xa2Zb^\xc2\265.\342\200\234\x152\xe2\x80\223\303\xbc8\xc3\xa9U@*\xc3\2165fk\302\252\303\x8c\31FD\303\254\303\x88\xc3\2114\xe2\x80\271\342\x80\xa2\24DU76\xc3\x894Q\5\303\257@\302\267\xe2\x80\x9aK+\xe2\x80\x9e\xc3\203\27\303\266J\xc2\xae\302\xba\303\203\303\x82\x1c\303\xad@\xc3\223=\305\x92\303\x9cW\26IF$\xc2\xb385\7M\x17\xc5\241\xc2\x8dN\302\272$R\xc3\xb4\17\x0\xc3\2705\7\302\250\xd\xc3\240\xc3\271_\303\260\xc2\xaa\17\305\x93\xc3\254E\305\x93\xc3\xb1\xc3\217I\xc2\xab\303\x8f\xc2\xb3N\xc3\xa7l\302\243\303\x92\303\xa5y\\303\xb4\xc2\x8f\313\x86\303\207qU\xe2\202\254\303\220Q\303\273\24\xc2\xa0\302\xaa
@\xe2\x80\x99\xc2\xa8\342\x82\xac\xc3\233\303\x85cp\xc5\241\302\xac\302\250P\x6\xc3\x9b\302\261+7\303\224\302\xbdN
\303\xbdR{*\xc2\x8dqm\xc3\235F	M}I8\xc2\xa0\x1c`W\35\x0\303\x81\x1c8\xe2\200\x9a\302\xb5T\xd\xc3\244*NpT\303\266b\xc2\250d<\302\272\xc3\x8b\xc2\244\303\x948\xc3\xaeF\x5\xc3\xb0\302\262\16\342\x82\254_\303\x8f+\xc3\234\xc2\273T\xc3\256\xc2\xaeeN#]\xcb\234d;\303\xb3,\xc5\241\xc5\xa0\xb\342\202\xac~\5\303\x80U|0VRe\xc3\265\xcb\206\xc3\x85\xc3\275\313\x86\xc3\226\305\xbdY|,d Y\303\x83<\x6\303\215\xc2\xb2]\x2\x1c\xe2\200\236\306\222\303\273\303\xa1\302\xb7\342\x80\x94\303\211\xe2\200\x9d=\xc3\xa7\xc2\261\303\274m\xc3\205\342\200\272\xc2\256,\xb
\302\x9d\25j\xd\25\303\xa0\xc2\261\xep\xc3\x8adu \303\250\xc3\xa9\313\206\x5\x1d\xc3\x94fp\303\210\x1a+\302\xbeJ\xc3\274\5\xe2\200\223\342\x80\231\17\302\xbaX^\xc2\240\xc3\xa6
\x7\xc3\xa2\xc2\xa8\303\236)\xc3\237>-\342\x80\x9ch\342\x82\xac\xe2\200\x9a\xc2\xbc\xc2\245\302\xbd<\342\x80\2426\xc3\xa8\xc3\x9fb\x7\302\xbcdmh\xc3\227\303\242@q\xc3\255\xf\302\215\303\x95Ah\xc3\226)\25\x16,J\xc2\xad\303\x97W\342\200\x93\303\207cm\xc3\267em]\305\xbd\xc3\224\\xc3\xb7)1Zb0\xc3\237\xc3\xa5\16\xc3\xbe\xc5\276\302\x81Y\303\261]ym\xc5\xa0\303\250\342\200\241f\xc3\x98\x1ee\xc2\xb8\303\x82\34;\xc2\xb9\303\217\xc3\252O\xc3\211\303\200W\305\270ap\x8DW\303\xbb\305\222\303\x89\xc3\234\xc3\x93zE\xc2\xa4\305\x92\x2\303\223"\303\xb6$\xc3\252\xc3\207=k\303\235\303\xab\303\245!\x6\x198\xc3\272\303\246\342\202\254\342\x80\232g\27@\xc2\xa2-Q\302\xa6\302\220/e&\303\237\xc3\x86\xe2\200\xa1\xc2\254v_\xe2\202\254xn\xd\xc3\x84e3{U\x1\303\x95\x5\174\303\266\303\234\xc3\220n{\303\x9c:B\302\247\313\206\303\242\xc3\x95sm\xc2\266\xc2\255Y d\x6\303\274\303\x9e\303\2627}3?*\342\x80\x9at\xc3\xba\303\xb2\xc3\251\xc3\x8flT\303\x9a}\xcb\x9c~\16\342\202\254\xe2\200\236\302\x8f\342\202\xac\303\244=c\xc5\xbe\xc3\275\302\254\x2\xc3\x96\xc3\236\303\207\xc2\271\342\202\xac{\303\xad\306\2228S\302\265A$\xc3\x80}\xc3\243Q"\302\240\305\270\27\303\xa2;T\31W\303\2509\x58\xc3\xa7\xe2\200\x9a\303\x93\x7f{ID\177q\303\215\303\xba\xc3\x96\303\x82\303\xb7\xc2\xae\303\x87\xcb\x9c\16\342\x80\232O\xc3\254[\342\x80\235&\xc5\223]\303\257\303\230\xc2\x81\x1c\xc2\xa4\303\x8cs\342\x80\x98\xcb\x9c\342\202\xac\xc2\xb8\xe-\xc2\xa7\x1\xcb\234\xd6\302\247\302\xa3q\x19q\xc5\xa1\x6 h\x5\342\202\254e5\xe2\200\246\x0\16\16\x16\303\222\xc2\242\303\x80\302\xb1\x11\303\272*\303\240b\xc3\xb8IS\xc3\x9b\xc3\252\303\204\xb\xe2\x80\240\xc3\216\302\xae9y\303\275p\303\223-\xc3\xb8\x19\xc3\275`{\xc3\275\177\x1e\xc2\xb1\xc3\211\342\200\223kP\313\2340T<\342\x80\x9e\xc2\xa9Z9\6\x1e\303\xa20\x12<\x5\xc3\225\xe2\204\xa2\303\x8d\xc2\251\xe2\202\254;[\xc6\x92\x16\313\206g\302\xb9\302\215\20\xaK\303\x94
\342\200\242\7\0\xc3\201\xc2\xb0*\x1\302\xbd
b\x157(\303\x80_\xc2\xb8\22@,\21\5\xc3\xaeE2\xd\303\200\26]\xe2\x80\x9dK\xe2\200\246*\x0\303\x89\xc3\277p\x16\x3 \35C\\x1b\303\221\302\xa2,\26\50\27\30\302\xac\6^\xc3\254M\303\220\302\247\305\241\xc2\xba\2\302\251\x15\x1\342\x80\x9c\x10@\305\xa0;X
\xe2\200\xa2\30\4\xc3\260?\x3$\xd\342\x80\241j\342\200\x99\25*\5\1\303\266O\302\265\27\302\254\17B\xc3\266\xc3\246P\xc2\240\302\2771\302\xb9hLK\302\241\xc2\246\303\223\x1c\342\200\2303\342\200\224/\305\x93\302\xb4a@\x17|\xb\xe2\x82\254\xc2\246\302\262w\7\302\xbc(p\303\x84\xc3\2240\303\x9b\303\xbe\30\xe2\202\xac\302\xbbuo	T/b\xc2\xbc\x1\342\200\x9c\302\xa0B\xc3\210\303\xa1dk\305\x93L8\xc3\250\342\x80\xa1Db\303\x8aD\303\266\xc3\xab\x1`\302\xba\xc3\211\303\x95\xe\xc2\252*3\303\x98\xe2\x80\xa6N\303\252\xc3\xa2\x1d\xc2\xbe\21\303\203M\x9w\xc3\xabk\xc3\207z\303\xa2\302\xb7\26\302\xbf\xc2\244\xc2\xb6\xc3\214\302\xabq\xc2\xac!\xc3\x9cn\24\xc3\xb7\303\250\21\303\244\xc3\250\xc3\xb0~\24\xc3\251\303\226\303\x8f\xc3\x8c\xc3\x8a\302\264\303\240\303\x82E\303\215\302\246\305\241}Q\xc3\x8dm\0\302\x90\xc6\x924@;\xc2\xa5\x3\35\xc3\x94&\xc2\241@\x6\xc3\250"B\xc2\220\302\273\303\220\x6\x9P\xc3\200 \34m5p\xc2\277\302\xaa\1\xc2\220\302\xad\32\xc)\303\x86\xe2\200\236\xc3\267@2\xc3\200M\342\x80\x98\xc3\xb0;\27\xc2\254
\6\305\240\xc3\240b\xcb\206\xc2\xa405\1\3\x9\302\xa0\xc3\x8e\x0[\x8\302\262N9\xe2\x80\x9d\5hY\342\x80\246\303\xa0\xc2\273\xcb\x86\303\236t1e\xc2\xafA\305\x92\x4o\2`\33\xc3\206X\xc2\x9d\20\305\xbd\x1e\302\241g\303\x88U\x1b5\xc3\x86X\303\2656\xe2\200\240\302\274\xc3\220\303\x92hU\10p\342\x82\254\x1b\342\x80\x9c\x50&*\302\x81\21\x8\305\xa0E\302\244:\xc3\x9aq\16t%>\xc2\262\x1b\xc3\203\303\224\xbYa\xc2\241\xc3\226\37\302\262\xc2\257\302\xb0hb\302\254\35b \xc5\x93\303\241\xc3\226L\303\x80\xc3\2728U\xc2\xbe\x8rC\302\243\xc2\274[V\xc3\241\xc2\243I\302\2549D\303\x90\302\xb4{\302\x90\303\x90\303\x9e\303\xaa]\303\210!\x1\303\x91a\xc3\202\xc5\x93\313\x86\342\x80\x98=\x3T\xc3\272\302\264&B5\xc2\xba\xc2\xaf\0~y\302\x90\16\302\xbeU\xc3\xa8+\xc2\262\xc3\226"\302\xaa\xe2\200\x99h\303\x8cH\303\203Tb".
\xc2\255\xc3\214\302\240<)\xe2\x80\230o\302\xa1\xc3\xb0\305\x93F\302\260m\xe2\200\x93\xc2\xa4\26jb\x2!\303\x9a\342\200\xa1DE\302\242%\xc3\xbe\x8 I\xc3\xb1\303\232\302\xa2\xc3\270DA\x8\16\x19m2\177k\26\x11i\21\xe2\x80\x9e!\4\x10\xe\302\201\xe\xe2\x80\236\302\xab"\xc3\x82\xc5\222\xc2\xa9\xc2\xb5N\302\xbe\25w\xc2\220\x8T\303\253\303\207\342\x82\xac\303\x9eu\xe2\x80\x93\302\277*h\xc3\xb21U\34dV\20\302\254\303\x9cD#)\303\x80\302\256\303\x81\xc2\xbe\3`\x10\342\x80\271x\CM=r)\xc3\x88\xf\10\xc3\260\34 \302\xbe\xc2\25780\xc5\xbd\302\245\303\xa1cSD\xc2\xa8\303\234\xe\303\x9e\xe2\x80\xa2W\35\313\x86\xe2\x80\235\302\xb1)\-\x18\xe\342\x82\xacb!\xc2\xa27\xc3\205\303\271\xc3\245\303\x8fG\32\x1c_\305\xa0\303\232Z\303\x83\xc3\xa82y\303\210\xe2\200\xa6\x4q\xc3\x93)\x12\xc2\xae}\10($\xc2\xb5\303\x88\1\303\203\xe2\x80\271t\x18\0\342\200\230\6'\342\x80\240\21\303\210\xc2\xb4pZ,a\302\x81\xc3\x8b\xcb\x9c\302\2408\303\212E\xc2\274\xc2\267\303\221\342\200\224\342\200\271\xe2\200\x9d\x18\303\2434\305\xbd#\303\266\302\276\30\x5\303\xae\xc5\xbd~R\xc3\217\302\x90\xc3\x9e\303\xa9\x3t\302\266\xc3\x9d=\302\254\1ap~\xc3\205\342\x82\xac<wU\342\x80\223\303\x80Q+\302\267\x19\xc3\201l\34\305\x93\xc2\246R\x15\xc3\206\303\234{\303\x91\305\x93V\342\202\254\x9\xc3\225\302\xb8o\x6%\x1e\xc3\225\303\264a\37.Y\xc3\xa0c}\xa\303\2253'Z\xc\x7\32|`\x11\x11\22\305\275\xc3\x806\1\303\x924HUep\302\277H1\x1a\303\x80\xc3\xbd\303\207d\302\241\xe2\200\232\\x8\\30\x5\x12\xc2\xbf\313\x86\xc3\xac\x16\xc3\274do\\305\xbdi\xc2\215\xc3\x8ba\x1c\302\xb3\xc3\245\22\xc3\2365\342\x80\x98\303\224\x1d\302\254u\xcb\206\xc5\241\x1b8\303\xadA\xe2\x80\232;\302\255\x19\302\217\x3\303\x95\x4\342\202\xacP\303\221"\xc3\207\xe2\x80\223.\21\303\xa7\xc5\xbd\302\274~\214\xc5\223\xc3\x85\xc3\xbc\302\x81\342\x80\231>\303\221\xc3\251\305\xbd\xc3\233\xc5\xbe\303\x87\303\232%\342\200\224\xe2\200\232\302\xb8\xc2\xb9V\x8G'z\302\252\302\235A!%\=A\xfGM\xc6\222p}C\303\234\6\xc3\x82?/X\xc3\xb6\303\x8f\303\xbeJ\xcb\206\xe2\200\234\xc5\xa0TR(\xc3\x86\302\271\342\200\xb0\xe2\x80\x9d\xc2\261\302\220`\xc2\251\xc5\222#\x10Z6\5\xc3\x86t\xc2\xb6iua\xe2\x80\x9a\303\275u\6\5\342\200\235\302\276t\xc3\xbc\303\217\xc3\222\x1p\36\313\234\303\276\7\xe2\x80\xb0\xe\313\234\342\x80\235\303\266\xc2\xa8O1\302\xb8\303\267#pTa#\302\xbb<.\xc2\xa8\24+\302\260\31\x1e\302\253 \xc3\261\I\30{\303\x83\xc3\xa0\36`M
k% \xc3\234IP|G\303\x8a\xe2\x80\231PA\xc2\xa4\xcb\234;W\302\xaa\xc2\xbb\303\x85\xc2\xa0\xc3\xb15B9%\x4.@I#\xe2\200\234P\4\303\244:E\303\240\xc2\247\303\xa4\xc2\277$\303\xa9+E\xc2\xac\303\x87\21\303\x90,:\303\217\26|\x6U\xc2\xa0\x7\342\200\xb0\xc2\xb5k\302\xb6\xe2\200\x9c\302\240e\x1e0\xc3\262\302\220\303\xad2L\xc\xc2\xa9\x19)\342\200\223`T+$\xe2\202\xac\x16l\302\241\xc3\247\302\xb2U\1\x1e\x2"+\303\x98\303\x9d\x0\302\201$\xa\xc2\xa0_\303\xa8\303\x91\xe2\x80\x99\xc5\xb8(\303\xa0\xe2\x80\260\314DR\xe2\200\232\342\x80\x9d\xc2\xb3'\302\2451"h6\305\xb8%<\x12*/\34\302\xa5\\xc3\211"\xc3\x98\xc3\211=y\342\202\254\xc2\xa3F}l\302\xaa\xc3\234\xc3\x95#70\xc2\270\xc3\260E\22\302\xa6m\302\240\27\xc5\xa1\303\xbe\303\xa9A\31(\303\x86T\xc3\x8eG]@\303\x89\303\221\xc2\xae.IK\27\xc3\242W\342\200\x99\xc2\255\26\303\200\303\x91\302\xa5xD\xc2\xb8.\303\x86V.\21\302\244\x3D\\xc3\234\303\267*\22{\302\x81\xc2\xb0\x6AAe\xc3\x94\305\222\x13f\302\xb1\20\303\262\xc2\255\x193\303\xaa\xc3\x8fU\x3\4\xc3\x98\xc5\223@Uw\x1a.\37\305\222\205\33\21\342\x82\xacZ\303\204\xe2\x80\240S\342\x80\x9d*<BA\xc2\217#\303\x93\x0O.\342\x80\x9e\xe2\x80\xa2\xc5\x92\xc3\241]\303\211\303\x81\x1e\xc\xc2\267\xe2\x84\242Npi\17\xc2\276\303\275U)\xc3\201s(\17\302\245\xc3\xac\342\x80\x99\xc2\260\303\253\xc5\xbe\5a\303\220\xc3\x95\x19ag\313\206\x11%\xc3\xa1\xc3\x80\302\217\303\x84\342\200\x9a\xc3\210yx#\xc2\250\x1e\xe\xc3\252\x8[\xc2\215\x10\xb\303\250e\3X\xc3\x84\xc4\302\xab \21,\xc3\234Ho\342\x82\254\x1\x10\x8\x28N\303\240\21\16I\xe\302\x8d\xc3\240	\302\240\10\7%\x15y-\xc2\xa0p\xc2\xb0\xc3\x84T\342\200\271\xc2\274\302\250\xc3\245d\x10w\342\200\x9e\xc\342\200\236[\303\x8f^gx\xffb\302\xa7(U\303\x81\xc2\xa9~\xcb\x86\302\276\x0P\33\303\x99\303\237+\xc3\x83\306\222'h\xc3\x97Ak\37\303\274\303\217\342\202\xac\xc3\224\303\272\303\231\305\270\xcb\x86\303\210."2\34@\xe2\200\xa2f\22\6\xe2\x84\xa2\xe2\200\246\302\xb9\342\x80\236\303\x85O\303\255>t\xc3\x91\xc2\243"\xe2\200\xa2\302\xb9\xc2\xa3\27\303\242i\0j3\342\200\x9aX\303\237\xc3\xa2\313\206w!/\xe2\200\x9e\x5\303\xa5^\305\xa1\303\262\x8\x3b\33q\303\270\xc2\201\xc5\x92\x5 (5*\xc3\275\x0Z\xc3\201\302\xb09\x1d\313\206\\302\xa4
J\10@ZAQE\303\215\xe2\x80\x98{\305\275\xc3\xa0\1x\x8\xc3\233L\32\20/\302\273\xe2\x80\x98| #\1 \x9\22\303\234D\302\271\302\254\303\215*kr\302\xbc\342\x80\xb0\303\x9bQE\xe2\x80\232\x7`.\xe\x0_\342\202\254q\3d\xc3\xa4B(\x6\303\220.4\xc3\224%S\342\x84\242\3l\303\244\303\xa7*\x2\303\xb0\342\200\x94Ne(\4\31
\xc5\223\xc3\224\x5'4\xc3\261\342\200\x93\x1\xcb\206`@m\1x\x1a\303\200\xc3\205:\x1\302\263\342\200\x9d\xc3\210\303\277\302\xa1S\x3\303\x8c\303\230\xc3\2054\xe2\200\232\xe2\200\231\302\xbfN4\xc2\254s\305\241\3\x1c\xc3\247'=6 \303\201\342\x82\254\xc2\xbd\xe\xc6\x92\302\x81\338\xc5\276\303\246Y;\xc2\xa9\xc3\x8c\342\x80\xa0\16s\xe2\204\242\33Pn'\342\x82\xac\22\302\2409\xc3\215\xc5\x92\5s,\24\xc3\xa9\x6&\32y!\xc3\xa5>\x0[\303\x8f\x8S(N\xe2\202\254\303\x9b11
\xc3\214Vf\xc3\216\302\240\305\xbe\303\214\303\205B\xe2\200\x9a\xc3\260\302\201\x4\xc3\206\342\x80\xa2\303\241\xc2\217\16%\xc5\xa1~E\xe2\200\x9a3\342\x80\246\xc2\244\302\xacH4\305\222\xc5\276(B\302\xb5\xe\x1"\342\x80\x9d\342\200\x9c\x17\xc5\222\xcb\234\xc5\xa0 s3m\x4\303\xaa'p\303\x9d<\24\x5\xc2\261\302\xb2\xc6\x92 \xc3\xaf\303\223\xc3\240\303\224\x11L\27\303\x94\302\xb1p\305\xb8\31\xc3\244\xc5\222\xc3\x99\30E\2\342\200\xa1B\xe2\x82\xac\303\x865 \303\x83\x1c\x1d\303\xab\x16\303\231\6\303\x8b2Y\xc3\221\xc2\xa7&\302\245\5\xcb\x86\342\x80\223\342\200\260\302\xb3\33\342\x80\235\302\xad"(\303\270r\302\201G\xe2\202\254Xx\xc3\211\xc2\251\26\xe2\202\254\xc2\xbbR\xc2\xa8O0\xe2\200\xa2Jn\342\200\223\x15a\xc5\xbe1`\303\212\xc3\245\342\200\x98\305\223g\303\x8cn\xc2\xb2@(\x9\xc5\x92\16\303\243y%\xc2\243\xc5\x93K\xcb\x86c\20<\xc3\x89\xe2\200\xa2\xe2\200\236\xc2\xaa6\xe\342\200\x98\xe2\x80\240\x1e\303\262\x14\303\266\xc2\261\342\x80\xa0dH\xc2\264;\3\xe2\x80\234c\xe\34.\342\200\x9d\303\x9e\302\241\303\xa2\xe2\200\236\xeKx\xc3\230\303\xaf^=\1\xc3\x84+\302\256\x0\xc3\x893\xc3\xb4&\302\220\x1b\xc3\205D\x10\303\xa5\xd\303\x8a\342\x80\xb0C\xc2\245\303\xa4\xe2\x80\xa2;)\xc3\244\\x16b\303\271\34\303\270\303\x99E\x3\xc\xc3\x94\303\224\x2\xe2\200\231*\21Q\xc2\x81\xe2\200\x93D\xc3\224\x7\xe2\x80\x94\x13\x10\xc3\xa5\xc3\211\xf\xc3\260\303\x9d\342\200\223\303\xb0t\342\200\241\xc3\212\xe{\\342\200\x93\xc2\x8dp3\xcb\x86T\10\306\x92\xc3\xb1E\x0\x19)	%b\xc3\204\x13\xc3\xac*\xc3\xac\302\255\302\2442\xe2\x80\260\2h{\xc3\xb6X\342\x80\xb0\xc5\x93\303\x99\303\245\xc3\236P\xc2\xb5\21K\313\206H(\xc3\x95\xc3\216Q\xa\302\240e\xc2\xa0!\x1a\x17\xc3\226\33\xc3\272F\xc5\222\xc3\211\xe2\200\234e\342\200\224aC\302\xa9\x14B\xe2\202\254.\xc5\240%\xc2\xa9\x9\303\234\xc2\241\xc3\xb0C\xe2\x80\271\xbJp\xc2\270\x1a\xc3\236\x6\303\241$\3\313\234\x10\342\x82\254\xc3\262M\xc3\xa1Z2|\302\xb2 )\xf\303\251N\xc3\251Z\Z_\xc5\x93\xc3\x91)\302\201T\3 \x18\xc5\xbey"\5\x1\xe2\x80\xb0\303\xa3\xc3\x8cq+\xc2\240\17Yzx\x1ab\302\xa7EU\342\x82\254e\2"\xc3\x94\x1fLZc\xe2\x80\223\xc2\xbdc/=\37aa\302\xa9\342\200\271L\xc2\xb40\302\252\xc2\260k\xc3\232\x3(\x7f\303\227\xc3\254G5\xc3\xbc\305\270\303\xa0\xft\303\x9f[\xc3\x89])\303\x86\302\x8d\22\xc3\272\x7\303\xbd8\4\xc5\x93\xe2\200\x9c\xe2\x80\2426\222/\342\200\236<\xc3\x93aM\342\200\xb0\302\255.\303\x8a\xc3\x8c\303\x96\305\x92\x2y\302\x8d,\303\245\x8\342\x80\271\303\x98Y\305\x93k
\177PC.\xc3\223\xc3\xbcvJ6\302\xa62\342\x80\xba\7\306\x92N\xc3\212fS\xc5\xa0\305\x93\xe2\202\xac]82\303\xbd\303\221\225\303\xb3;\303\223\303\x8e\0\xe2\200\xa2\x10\302\xa7	"*&/\xc3\252eS\302\266\xc2\242T\303\260\x13(\177\xc3\252-N\xc5\241aCL1t#"\xc3\243#\342\x80\x994\xc3\x86\302\xa2\342\x80\x981\302\271^\303\xb2\xe2\x80\x9d6D\305\xbe\xc5\270\x8`\303\xb8\xc3\204\xc3\x88\xe2\200\x98\342\200\x9d\5+\xc5\270\303\201\xc5\240\xc3\xa4YFh\xc3\2110\303\x9aFI\342\200\x9e$\303\xa0\303\260\\xc3\xaa\306\222P\302\xbd\303\222u0nmY\342\x80\2364b\xc3\224#\302\xb7\xc2\xaf\x1b"\342\x80\xa6p\303\233#\xc3\214&R8\30\302\264\303\254\xc2\xa4\302\201\303\2362(U\0\31\303\207\31\x2\xc3\243\xc2\x8d%\303\xbeSi\xc3\272qe3\xe2\x80\x9ckB\xe2\200\x9d\342\200\234\302\xa4\xc2\xa6j\303\xaeg\x11I\33\xc3\x92\37U\xc6\222\303\255U\xc5\222\xc2\235\303\x8a3u\303\251\36 NBb\3\23\4\305\223a4\231\x3\23\xc3\x90v\xe2\x80\232\x7\20@dh\302\xaaaa\xcb\x86LKx\xc2\xab\xc3\225\302\274\305\222\305\xbd\xc2\275)\302\271\x9\302\xa9P(\10\302\xab\302\x9d-u\17\xc2\xba\xc\xc3\xa3\302\263JGX\xc3\xa0\xc2\270
\1K\xc3\x85/\342\x80\x9e\303\211\x6\x13\xc3\x90\303\xa3\303\x97\303\206\x4\\303\233i\303\217\3\342\x84\242\303\246\0^\4\303\x80$\302\x81,\x8\xc2\xa0|\x2\302\x90\x11Z\303\212\5\xe2\202\254(Rv*\xc3\257\303\x84\x1EbE{Z\305\xa0\303\225H\xc3\244\xc2\217e\303\xbe\xa\342\204\xa2\302\xa7\xe2\x82\254P\xc5\241\303\211\302\xa0\xe2\x82\254\xe2\x80\x9d\xc3\230uNXb`XTU06\4\305\223\xc2\x8fa\x1a\x16\302\235XP\17=Q*\303\216\xc2\220\342\202\254d\x5t*z+H@\302\260\24\xe2\x80\246\xe\xc2\xb0\x4\17\3\xc3\201\x4I\10v\303\251Z\xe2\x80\241\xc3\244\xe\303\x80g\3\303\xa1q\303\202I^R\302\xaa\0\342\202\xac\xc2\xb8A\4\xa \x1f*\xc2\274!\xc3\2008\1|$pr\3\xc3\243\4\xc3\253\xc3\252!WF\xe2\x80\x9e\xc2\260\xcb\234\xc3\xb4\302\x9dOB\xc3\214+\xc3\237V\10i\10\313\206\302\x8fu\xc5\xa0\x8\x1d'\303\250KYz(\20\xc5\276\302\xb3)\xc3\xb9\3ed\xc5\xa13\\xc2\xb1\342\200\234\xc3\225\302\x90\342\200\x98\x9\303\250\x1e\xaz&\306\x92^b\xc3\x9f\xe2\x80\xb9\x10\x7J^V%t+\xe2\200\x98Ti[Q4&\342\200\x9d\302\x9d\302\xae\xc3\xb9t\xc3\217\x13\\305\240\xc3\x90\x126\302\264i\xc3\xaa
\xc3\x95s*\xc2\244\xc2\xbc\303\225\x1f\x1\342\200\xa6H\22\32\302\xaf\xc3\270\x1c&[W'\36\xc3\227Z\303\x85\xe2\x80\x93'\xc2\254\xc3\xb8\305\xa0+Bx[	,\303\x82\302\271\xc2\253\7\21\xc3\230\302\xb2\303\205\xc2\xa6\24\31\302\265\303\x81q\303\236\303\210\22\18\303\xa4\xc2\xac~3\xc5\240\303\x9a\xc2\x81\xc2\256\303\203@'\x1	\xc3\xb0i\342\200\240\x1ef\303\276\xe2\200\231\x8\x4\xc3\xa0.J\xc2\220\35\303\x8a\xcb\206T\xc2\xa2\xc3\xaf\313\x9c\303\x9cX1-\xc2\xa4\xc3\x98\34\342\x82\xac\305\240\23&3\342\200\x98\xc3\2546\302\xaa\342\x80\x94\xc2\220\xc3\251\xc3\262\xc3\x90f\x6\x11@\x1|O`b\302\256UeD\x0\x2\xc2\273:\35\342\200\xa0\303\x8e\303\226p\xc2\235Sj\x3\x1aMD\303\226Qt
\302\xac\xc2\xb3\22\10\342\x80\x98\x5\303\261g\xc2\201\302\xa7\303\221\303\250\305\xb8a\303\x80y$s\xe2\x82\254\xc3\210\6`"\xc2\x90\xc3\x8c5\xc2\201\302\xbf\x16\xc3\xb0\302\xb2\xc3\x8956V\xc2\242\302\201\xc2\201| `\x3\x2&\xc2\x8f\2\302\xb4\303\x8a\xc3\266\1\302\x9d\xc3\xa5\xc2\x8f\xcb\x867\x3\xc3\x8d\xc3\202:\xc2\xaar5:\303\xa0\303\x9e\xc3\x8b/'m\33\x6\303\240Piw	\xcA\xdP\342\200\271\xc5\241G\xe2\x80\x9aX#\x13H\313\234\303\275\xc3\224Y
\xc2\241\xc3\x91\303\216\xc3\x9a&R\xc3\x83\x1dt{\xe2\200\xa1f\302\244\303\xa9\xc3\xa9m@8\xc3\xb4x\302\201\342\200\x98\36c\xc2\xb7m\303\xba\xe2\x80\272FD3\302\xa4"\302\201\342\200\x93\302\xb8\xc3\xa7]\xc2\x81u\302\xb1\35)la\xc3\252Z\xe2\200\246:#\x15\302\266Y\302\253\x3\x1eKKhW\x18\xc3\xab\xe2\x82\254^L\303\x9d\302\xb5\342\x80\271\303\235m\xe2\200\246\302\xa6\342\x80\xa6\302\xae\303\x9bp\xc2\xb96}\xc2\xb7\302\255\xc2\235\26\xbi[\xc5\xbd\302\x90\303\221W\xc2\257\xc2\x90\303\xa3m\xc3\x8c\303\x9b\342\x80\xb9tZ\342\x80\x9eM\302\xb0\xc3\272\xc2\267e\302\xb3\16(oe\303\xb1\302\201rp\xc3\x80[PY\xc3\222\303\255\xc3\240\342\200\xa1\xe2\200\234\xc3\256\305\222\xc2\xad\35\xc2\240_\x10\xc2\xab\xc3\x9c\303\x83\303\243oR\342\x80\2241\xc2\251"R\25)\302\xba\303\270\342\200\231$H\313\206;\xc2\xbb\0\342\200\234\342\x80\232\xe2\x82\xac\x2\xc3\255\xc3\201\22%Y#\xe2\200\x98\302\xa8-Ihx\xc2\271\x13*\xc3\x89\342\200\235QR\xc3\257\xc2\244^Z\302\xa8\303\xa2.Y\xc3\203W\xc5\x93\303\250*\xc3\247\303\x91LZ\26\xc3\207\xb]\x7\37\xbjU\302\263\302\xacV\342\200\272\302\247\;4z#\303\260v\xc6\222\302\265:R\xc3\x97\303\252\10)\302\xab\x1c*:\xc2\267\303\201\xc3\207\305\xb8\305\x93\303\265\xc2\xb1iXbs.h\6qZT\302\272\305\xb8\2"\342\200\236\302\x9dI\x7\xc2\xa1h\302\xa3\303\xa5\x0\xc3\x81;\302\xa7\xc2\244\33\303\273\x5@Z\3x\x13\xc2\260\xe2\200\x93\xe2\200\x9eI\22\305\275\303\252\302\xbd\xc3\xa8N'\303\260\23\xc3\223\xc2\215~\xe2\x80\224\x6\xe2\x80\235\xc2\241\xd\xe2\200\xb9\xc2\xae\302\xbfBB\xe2\200\xa1\x1e\xe2\x80\231\342\200\xa1\xc3\203\xe2\x80\x99h\302\251\xe2\x80\xa0\342\200\260YG\302\260\xc2\243F\234)\xc5\xa0\xc2\271i%P\x2\xc3\x90\x16\xe2\202\254\xc3\254\xe2\200\x93\xc3\265x\x1x\xa+\302\xb0\6\xb\303\203\x102\302\xb05\303\x9d\302\xac\x1d\303\237h\16\xc3\xa8\3\xe2\200\x98\303\x96\x1d\xf'\23\35\xc2\255\xc3\x9d\342\200\232,\302\254\303\x81^^9\xc3\x8c\xc2\xa0-\x1\302\x90\303\260l\6\303\xba\xc3\233\302\xb7\1n\xc3\262\xc6\222\303\224\27mQ\x1f\303\x9fi\xe2\200\232\x7\0\302\256\xc3\223B\342\200\260\x148\xc3\260n\22\xc2\xbe:T\x1c1\303\xa9\303\2661R\2\303\204\302\242\303\x91Y\342\x82\254\xc2\270\303\x95\303\2119\xc3\240=\302\xacp\xc2\xafs-\xe2\x80\x9c\xc\x5^\305\x93f\x18%\xc2\251q't\x78\305\270(\x6\303\270\302\xa3\xc5\xa1\302\275@\303\257o\342\x80\231\302\276Z1\x7\xe2\x80\223h\303\xa5\xc3\242\3P\xf\16\xc2\277?\303\200\35\302\201\302\251+g_U\xe2\x84\xa2q\x9\x10\6\xc2\245\xc3\263^~\303\x87@n\302\xb3\302\xaa\xc3\x8e\302\xbe\x18 \xe2\200\240\303\225P&\342\x80\x93g\x3\xc2\255\305\xa1C9|\302\xba9_\xc2\x8d\xc3\xb8\xe2\x80\223c\xc2\xbfU\342\204\242\xc2\254\303\x90\x14\xe2\x80\xba5_\xc5\275\303\276\xb\303\256?\x15\xc3\x9dE\303\x9b!\xc3\232'\xc3\x9eT]\302\xa5\xc2\257\x1\303\235\303\xad\10\342\200\x94Y\303\253\303\277\xd\x10E\xc2\xb7pNJRO\xc3\223\xe2\202\254\xc2\x90\342\200\271\x18\x6\303\xae
S\xe2\x80\246\303\234\xc5\223\xc2\xae\305\xb8l\342\200\272e\302\xb9B8\x5\xcb\x86\302\274 \xa\x12}6\302\271\xc3\x88\xc3\xa0|\x7\303\267\xe2\x80\271 \xc2\2159 N\342\x80\235\302\252\xc3\207\7\xc3\270Q\303\x97\xc2\275\2\303\250\xf\xc3\x87\302\270I5yQ\xc3\256\xc2\xbaD\x4\x2\xc3\235\303\257\305\x93\303\x8a\342\x80\260\xc5\x92\27\303\201\303\xbcuj\25\17*?m\M\303\x93\303\236\302\xb2`\303\x9d\303\253\x7fd\xcb\x86\x1d\xc3\xa0U($\342\202\xac\302\246N~UY#}\342\200\x94n\xc3\203@h\x15\26:\xc2\253H\303\xbd\xe2\x80\xa2
Z'\xc3\265@j\xc2\xb5\xc2\252\xc3\2044\xe2\x82\xac2I\xe2\x82\xac\xc2\xae\303\247\303\xb7\xe2\200\246\303\226\302\241\xc2\267\xc3\xa9\4 0\x1h\16@\\x5\xc3\224\302\xb5\xc3\211\0\xc3\2008P3\xe2\200\xa0\3B.\xc2\2530\303\222a\xc2\264\302\215\xc3\254\313\206JL\x14h
?K\\302\246N\x7fxQ0\342\x80\x9c\303\221#\xc3\x95\xe2\x80\246H\23\xc5\270\xc3\203\xft\xc2\275\xc2\276\xc5\x92c\302\217\302\x9d?\302\274,\302\253\xc2\266\342\200\x9at0\x1f\302\242;\x2up\303\200\xc2\x810d7\27\20\x1f\xc3\276 \303\213\xc3\xa4\303\x8a\302\xb0<a\xc2\257i\303\xb62\xc2\x8ds\xc5\xbd9\342\200\xb0b\xc2\235\303\x82O\21x\302\xa1\33\xc3\xbd\xc3\252\x0P\x1f\303\2342\303\241\305\276\303\xb1@,\xc3\x83U\xc3\x8f\x0\302\xb7[V\x2\xc3\x86\303\201\x1f\x15\303\xa8\x3h|BQ X\303\xac\xc2\x905\xc3\x92\xcb\x9c_\xc2\xa1\342\x80\x9a\xc3\x8c1Ar8\2\xc2\271\303\220\303\xac\xc3\210r\22 \27\303\256}\xe2\200\271\305\241N\303\242\303\263\x14\xe2\200\224Db\xc2\xa6&\xc3\214\303\253\xe2\x80\260\xc3\x9b"a|?\xc3\x850?\xe2\x80\xa6\xc3\223\xc3\xae\302\xa3Oq\1[\302\2658\xe2\200\x9a\25^K\xc3\250\342\200\x98\x12\x11\20\xc3\237\303\xa1Q\xe2\200\x9d6\xc3\xad[\xe2\200\235v\313\x9c\xc3\xa8\303\x91\xe2\x80\xa2\303\x9b\xc2\xbe\xe2\x80\241\x1a\342\200\241\303\227\303\x86\302\xb0\342\204\xa2n\xc2\xa5\x9\xc2\xa84\6S\x7-R\18\xc3\215\xc3\xb1\302\263e\303\242\xc2\xaa\31\303\xa9y\xe2\x80\x941\302\264\xc3\275\302\xb6G\x1fo\xc2\xb6
\303\240d\xc3\261\313\206\303\xb6\xc2\xb8\302\235\303\230\303\xa8IP\xe2\202\2546\xc3\235m\303\215\xc2\xb3\xc2\272\x2\xc3\230\27\305\xbd\303\x8d\342\x80\xa0\342\x80\271\303\204\303\x8d\xc3\x90\xc3\xad\303\x97)G\xc3\202AK*\305\x92x\xcb\x9c\305\x92U\342\x80\223\302\xaa\342\200\x9aR\16ma\xe2\200\x9e%\303\206\302\243HsE\xc3\202\36\302\xb0\xc3\266\x5\xc3\2109L}\305\223s\x1f\302\xb6\xc3\xa9`6@Q\xc3\251\2\xc3\xa6g#a\342\x80\242\302\xa7\xc2\276\xc3\x82\x1bF@B'<r\303\x92\xc3\x8f\34\303\213\xe2\x80\x9c[\xc3\260\xc5\xa0\22E$\30i#\xc3\267"\303\205\xc5\xa1,\302\2767\2i\302\x8d\303\xa2\xc5\275\303\243\342\200\236\303\231\303\243 \x3\xc6\222t\xc2\xb1\xc2\xb5R 9\303\xa4\303\252\303\xa9\1k\1\xc3\226P\xc2\262s\x11\xc\xc2\235\xc2\xad\303\267)\303\x83\302\267\303\x8a\xc2\272\xc2\243\302\262\xc2\xb3t\xc5\223\xc2\256\xe2\200\241\xc3\x87*`g\303\x8a\xc2\xae6\xe2\200\x94L\xc5\222w\303\xa0\xc5\223\xc2\xb9L\xc3\241\xc3\213^i\xc3\237\x4\xcb\x86PY\33%\xc3\x93%v\xc2\241a\xc2\245\303\224\xe2\x84\242 \xc2\252\31\33 2\303\252\xcb\234^\302\273\302\x81\xc5\241\303\260ch\xc2\273\302\255,\342\200\234!w^\x1\302\xb5\xc3\230M3WE\32\xc2\xb9\303\267\20\302\262\xc2\244\303\204=\xc3\x9c\xc2\xb4\303\245\303\xbaZb$\303\234\x19\342\200\x9a\xc3\214~V\x13\xc3\xa0Xk\xc2\xa1\303\220\303\x86\xc3\xad\x0[`\302\255\303\x81\xc5\270\xcI\x1b\303\x82\xc3\231\303\270\xf\342\x82\xacbc0Mk\xc3\xb6\303\xa9C\302\xbe\xc2\xb0\xc3\221F9\xc2\xa1\342\x80\240\26h\xc3\xb3J\x7\305\x93\303\223\xe2\200\224\xc2\270\342\200\242\xc2\xb5\302\xb4\302\274(K\342\200\x9aX\xc3\xa8\xc3\x90\xc5\275\xc3\246\xc3\x85\302\xb7\x19\xc2\xa9auQ\xe2\x80\xa6\x1f\xe2\200\xbaqw\303\246\303\xa9=\xc2\271\xc2\xb3Y\xc6\x92\305\xb8\303\x898\xc2\264s\xc5\276\342\x80\xba\x4\303\274\xc3\x8d|\xd\xc2\x81\xc3\236\xcb\x861\342\x80\xba\xc3\204\302\274\24"N\303\255\26uL\305\275s2\xc2\243\303\214\xc3\x8d\302\xa40\xex\303\x86\303\205\303\200\35\16\xe2\x80\224T`\342\x80\x9a\17\xe2\x80\x9dB\303\xae\xc2\xa9v\xc2\253\302\xa52\xe2\x84\242\34\xc3\2129D\302\276\342\x80\232\342\202\254\2\303\2361\xc3\263\302\274U\xc3\xa7`\303\211\342\200\xa2/\303\2271:,&\303\x85\xc3\x87\xe2\x84\xa2\302\264\303\264\x98\xc3\271\xc5\276\302\xa5$\342\x82\254\4\305\222ojU\305\x92\xc3\240\49\302\254
\342\200\272\303\x91\xc5\270\342\200\xa2\xe2\200\272`6\xc3\xa6\xc3\xa0#7A\303\x8d\302\220X-w\xc2\x9d|\xc3\273\302\xb5F\303\255!\x1\x18\xc3\230\302\266I\3\305\270\xc3\x89u\303\247\303\xb8\xc2\xa0\xc3\xba\x1\x1f\342\x82\xac\xc3\xa7\303\xbf\xc2\220\xc3\2207\xc2\256\xc2\242\342\x80\271\x0?9 O\xc3\x80\xc3\270\x1b \342\200\223\303\215\302\245\303\221*\5\302\xaeJ5\xc2\xa1\302\xac\303\274\xc2\240\xe2\x80\235\342\200\223\303\xb0!\303\x98\302\267\x3\x1ck\302\253\342\200\231\xc3\201\302\241rN\xc3\227\x17z\xe|~\342\x80\x9e3\303\x97v\xc2\220\306\x92\x1~\5\xc3\x97\xc2\245\x1f\303\xbe\177c\303\x88n\303\255\16h\17<&m\22`\34\x2P4M%\303\243'G\342\200\x99\32\303\221\303\xb6f\303\xb4\306\x92f0\xc5\275\xc3\x93\xe2\200\x94H\302\272\31\303\x92>\342\202\254\32\302\xaa,-\xe\342\202\xac\xc2\xbe\xc3\223Z;\10\303\x83\xc3\x89\x0\303\xba\xc3\205\302\246.#]\303\x84\xc3\xb2\342\x82\xac\20\342\200\246\xc3\223\303\245\xc2\xbf\342\x80\224h\303\xb0\303\207\xc3\xbe]\xc2\xb8BhP\303\x83\342\200\260\3\xc2\xa0*\302\215\4\xc3\x8d\303\x8c\xc2\xb5F
\xc2\xa1\xc2\xb4\xb\xc5\241AHf\342\x80\xbaA\xc2\x8d\302\270\303\214B\xc3\273\21\302\xa2\302\270<\302\xa8e\302\x8d\303\250G3V\xc3\x86\xe2\x80\xba"\xc5\270\302\x8f\303\240\xc2\265\303\213~7\xc3\xab\x4y\305\xa1p\xc3\262\303\x8eOS\xc2\256f\303\277A9\303\x81\xc3\224\x1a{u\xa\x1b\303\263M\303\x9d\x19\xc5\xbdZ\xc5\240\303\x8bI\275\x1aX\342\200\271P4L\x4z\10\1m\xc2\xa8\x14#m\305\x93`h"\xe2\200\234\xc3\xa1\xa\xc3\223\xc3\211\x13\303\xa0\302\254\303\2134\303\207\305\223\xc3\x8cJ\303\226\xc3\231
\x29\7J=1\xc3\252\xe2\200\260\xcz\303\xb6M\36\xc3\210\303\245-A\342\x80\231-`"\xc3\203XR\302\220\3r\31G\302\264dMXc\303\x87\x2\303\232(\xc3\225\313\234B\xc3\x99\305\x93+[\xc3\202\xe2\200\xb0\303\230\x5\xe2\x82\254)\23\xc3\210\xa\xe2\200\x9e\303\251\xc5\240|\342\200\241\x1p\xc2\xa4\303\xa2w\xc5\x93\xc5\240\xe2\202\254\x5\xe\x2\302\241Ckt\302\256
\302\240\30|~\0z\xc3\245\xc2\247\xc2\257>\303\xa0\xe2\x80\xa0\xc3\xa6X\xf)	\xe2\x82\254v\xe2\200\xa6\xc3\x80\303\x9f\303\x95\303\240\305\2415\xe2\x80\x9a\303\x96\xc2\xb0\303\273[\xc3\212.\303\263\xc6\222\x10\xe2\204\xa2\302\xb9)I?\xc3\241\303\xbf\xe2\x80\x94r[\xc2\xb8\303\xac\xc2\xba|\xc3\262X3!>\xd\302\xafP\303\2435\303\x87	\xc3\xa2\303\260\xc3\x84
o\xc3\274\303\241\xc2\xa6\303\262\303\x89\302\275\x7f\xe2\200\236u\xc2\xaaX))\303\x9c\xe2\x80\271n^\22\xa\xc3\x9a\303\xab\xc3\x88W\xe2\200\x9c\xc3\274n\xc2\x90\xc3\xafc\303\xb0\xc3\xacWc\xe2\202\xac\302\235\303\xbeM\5\x17\xc3\xad\303\x93\302\xb5 \6yo\303\x87\xc3\203.\xc3\xaa\302\xa9\342\x80\x99q5JsK\x1VWV\xc2\xb9\24H#\xc3\xae\303\x8e\302\xbbv\305\223\xe2\200\241+\xc2\240P\32\302\x9d&\302\245r\303\200~G\302\273
\342\x80\240px(\34\x1\24\xc3\264\303\x839<\302\201\xe2\x80\236\303\x9f<&\33\17A2\x7\20Y\xc2\2659\302\275\302\277\xc3\x86s-\xc3\277\x13\303\200\305\xbe&\xc3\xb4\303\224G\302\264\303\xadT\xe2\x84\xa2 "\27\303\x8e\xc3\223\x12\20\342\x80\x98y\x1ed\xe2\200\x9cYe\302\x8f\303\226p\303\xa55|\xc2\215=\xc2\xb5\6\302\xa7$\xc3\x9a\303\x8fNe\xc3\270\xc3\x80\xc2\xa6W0;\xc2\272\x18\303\257\303\xa1MOH\xc3\x89\xc2\x8d&39\303\xba\x14$\x5\342\200\240@\302\265\x3an.|\34+b\x1cfx\342\200\xb0\303\2221C\xe2\x80\271\x1ci\x18\303\265\xc2\247\xc3\202\xe2\200\224\xe2\200\x94\303\243\302\245H\xc2\257\xc2\xb4\302\276\xc2\235\xc3\x80\20\xe2\x84\242\xc3\x9a\xc2\x8f\303\202\xc3\220\xe\303\xa4R\xe2\200\232\303\xabKm8P.\xc2\x8d\302\xa1\303\x87%\xe2\x80\x9dZ\x0^\x5  \xc2\2019\xc2\254\xc2\xa0|\xc2\xadCXlH\xc3\253\303\214\303\x84\305\276\305\xbd\342\x80\x9dz\\xc2\xa524n+\xc2\xb9\xc3\x95\xc3\x98\xc2\xb8\302\xb0\xc2\244\xc3\264\xc2\252\303\234\xc2\271\303\xae\xc3\267F\x17]\303\x92\xc3\xa8\303\x8c\17\342\200\241\305\240F\xc5\xbd\x1b\302\260\303\x95\xc2\xb8\xc3\231\0\xe2\x84\242\x3w\x1\303\x875)\xc3\260\x5\21\xc2\271f\xc3\xbe\303\xaecy{\303\2000\303\x80P4\303\220\xc3\205\xc3\x9d5\xc2\xa1\302\xb7za\6\303\x86\302\274\5\x1f\303\224\xc3\211)_\303\x8a\xeQY3\303\211\x3&\xe2\200\x9a\303\203n\xc3\235\xe2\200\xba\xc3\252,\303\xa5\303\230\303\x80K\xc2\246\303\271\x19_\21\303\266Y\22\342\200\xa1W0Y\303\203\xc3\x93.s\xe2\x80\242-i=\xc2\xb2\xc3\xb7e\303\231,u@|Uvt!#\xc3\243\xc2\244\303\xb4\303\216\xc2\xb4\xf\xc2\x8d\303\205\25\xc3\212\xc3\227^\x2\6\xc3\xa0\xc2\xa4\xc3\xa7\30\302\xab&\303\x9d\303\221\303\250dS\xc3\226\xe2\202\xac\xc2\xb30\xc2\xad8\303\x9d\302\xa4\xe2\x82\254g.\x1f\35\303\x9eoG@\\20(\xc3\213\36c\xc2\xa0t
\xc3\x8dXG\26\xc2\xa4\x13\303\x96\xe2\200\xa2\303\214\306\222\302\265\2\xc3\227T\303\232\302\x8d\24F\303\xa0em\302\251\xc2\240:\21\xe2\x80\230D\xc3\x9a\303\212\xc3\x96\302\x8d\x199)`EYk\xe2\204\242Mk\303\226\xc3\201$\x6\303\210\xc5\240ON\303\x93\342\x80\232J\303\x81\xc3\xa6e\xc2\xa37\342\200\x998y\303\xa1M\342\200\xa2n\303\xa2Z*|\303\252\342\x80\xa1r\xe2\200\xa0	D\303\200ZB[\4\xc3\x92\xc2\241@T!\303\207\x0\303\20200\xc2\217L\313\x9c\302\xa3\303\273|,\xe2\200\xa2\xc3\x88\303\266\20w\303\x9f\302\xbef\&\302\273\x2\xe2\x80\260\16e\xc3\242mj\xc2\256\x13\xc5\x93&\x6/	\303\231\xe2\200\271\xc5\xb8\303\x89\xc3\xb3\302\xaa\303\225B\303\202\xc3\x95\xc2\245\26\x13|rI\302\xa6\303\226bx\xe2\200\232QD\342\202\xac\xc3\x86w\x16J\302\xab\302\201|\302\267\305\x92\342\x80\235\xc2\xbd\xc3\xb7\7M\342\200\223\x14`\xc3\237\xe2\200\xb9-5t\342\204\xa24\xc3\xa6X\303\xbcw\302\xbcW\303\233\303\217\x16O\303\223\303\x85\302\275\303\xb1\xc3\xb1u\xe2\x80\231\303\274_>	\177x\xc3\x86+^2\303\2125#\302\263\303\264\303\202\xe2\200\272-\303\267\22\342\x80\231\xe2\200\x9e\xc5\xbd\xc3\242'\305\275\xe2\x80\x9a\xc2\273\xc3\245\36\30f\xc3\271\303\x88\xc2\xa9\xc3\245\302\245\302\245-b\305\xa0KjQ\x12;\xe2\200\xa1&>\xe2\200\2313\x1\xc3\205\303\242\302\262\xc2\273'jtY\x1cq\xc2\x81\303\x9e\xc2\xa7\xc2\xb2+Jv"j\342\200\223t~_\303\xa2\342\200\x94\305\xbd\303\x8dE\303\245BOR\303\224\xc2\xbe\24\xc2\2410\302\x8d)\xc3\206p\xc2\2712\x119\x3I\xeB\x7\xc2\xaf\302\x90\xc3\x9b\303\xb4e\302\277"I\32;\303\233\302\251X\xc2\254$,p0\xc3\264\xc2\220\xb\x10_K\xc3\241\5\xc3\x85\303\214$\xc3\x84\xe2\200\271\xc3\x9av\302\xb0\xe2\200\272\30,?\x14\61\xe2\200\241\xc2\275\303\225\xe2\200\xb9\x19<LD;rJ;\xc2\xa6\302\220lg.\xc3\x8b\xc3\x87~;\303\xacU\7\x18W\xc2\242\xc2\260\xe2\x80\242v\xc3\x8b\303\x9d\xc3\217\305\2220P+g0\4\xc3\224\xc3\275r+IAA*\302\xba\0\17|\303\xa0\303\x98S\xc2\xa8o \342\202\xac\\342\x80\236S\302\2755\xc3\x9cu\xc3\x9b\1\xc3\x9a'\4(\xe2\200\272\xc5\275\xc3\x93\303\x85|\302\xb8\xc3\200\xc3\246\303\240\342\200\x9e\303\200W\xc3\x90\xc3\x805;\30$5\0\302\xb4\xc3\264{\xc2\xb9\xc2\256\7;d\xc3\263i\xf\xc3\210t\x10\xc2\235\303\x84\342\x80\230\xc3\xb1\16 \303\262\342\x80\x98\xc3\xa2:\xe2\x84\xa2\25)\302\275\xc3\210\302\xba)\xe2\x80\240.\xe2\x80\271;\342\x80\224\302\243\x17j%
\xc3\x81\xe2\200\x94\303\x8cF\302\266=\xc3\xaf\x18\305\223D\303\xa4\302\244\303\xb5]H\303\236\2\342\x80\x9c\xc6\222\0\xcb\x86	 N\x2 \x11@\xc2\260\2!\303\xa0\342\200\231+\16|\302\262d\1!.\xc3\272H|\x1b\303\206M\302\x90\302\273\xc3\x86COU\305\x92w\x1I\x10\xe2\200\246R\303\274|\xc2\x8f\342\x80\x9dH\302\260R\x5\xe2\x80\x98T\xc3\x86@\302\235%<\305\x93\303\202n\303\x9f\23\305\xb8\xc3\217n7r\xe2\200\xa1\xc5\275\xe\303\265]\302\x81\xbc#;\22\xe2\200\xb0\x7f\302\257"f\302\xbdA\303\x9a9\302\215\xc3\x8a\xc2\xbed\303\261\xc3\260',\342\200\240\342\x80\240'U\x12\xe2\x80\xa2\303\213K\342\200\x98r^\xc3\225\xc3\x81\303\x9e_:Ry\xc2\xb1O~m!\303\233\xc2\245\xcb\234j>\xc2\xb2S\302\xb0\xc3\261"[\xc3\271q\302\262\xc2\247\303\234\xc2\xbd\303\xab\xc5\x93\xe2\x80\271\303\213\\xcb\x9c8Ms\x0\xc3\xbc\xc3\x9d7\xe2\200\xba\xc3\247_\302\271U\303\x8c\xc5\xbdV\xc2\xb4f6\xe2\200\241\5K\xc3\211D\xc3\217\10\xe2\x80\x94\xc3\206\6s4S\xc2\xac\302\255P_="A\xc2\253\xcb\206,&G\xc2\263=\342\200\xb0\xc3\xaa\xc3\276\x5X\xc3\2019I\x6\303\x98\x1f\x1c`o#IF\303\x82\x4\303\xab\27SA\xc3\xad\303\x96\xc3\x8bA\303\xa0;4\2kY\xc3\202N@\5\342\x80\235\303\240<\x1\302\x90\31@g\x17u|It
\xc3\217\xc3\273\x18\32.\xc3\226R\x79\303\x8a:\302\xbf\302\xb8\xc3\xb0y\303\xaeK\302\xad \xc3\271\xc3\234\303\x82\302\x8f\x14\342\x80\234\xc2\xb9\xc3\x80y\xc3\xae\302\x81*E\303\263`r\xe2\200\x99Y\302\220\302\267\xc3\xb7\xc2\xa6	\xc5\241${\303\2446\xc3\x90\x5\0\302\256\303\xa2\302\xbd\303\262\303\257hL\303\2213\xc3\x9e\303\xbb\xc5\xa0\302\xb7\342\x82\xac" _\35$U\303\x97\303\210_\xe2\200\234(\302\242G\xc3\200C0\303\260(\xc3\225\342\x80\242\313\x86\303\x961F\xc3\xb7\xc3\202Mz\xc3\215\3\xc3\210\x17\303\274\x17\303\240{\302\xa5\x14Q\x12!\x6\xd\x7f\xe2\200\xa6\xc6\222N\21\x17\303\266xCsa\xc3\x9a5\303\220\xc2\250\xc5\240\31Oz	\27\x10M\xc2\xb7\xc3\xb0\302\xaa\xc3\x99G\302\252`Q\303\xa94\303\265\303\232\xc3\200\303\x97\25\342\x80\234II\303\242Ja\302\2016\xc3\247\342\200\xba\342\202\254\303\240T`(\xc2\275M\303\xa1\xc3\x9fJ\5\W\xc3\x87\342\x80\232\xc3\x98\xc3\261\xc3\xb7\177Eju\303\2738\302\247\xc3\263\302\xa0\302\xbeB\xe2\200\240\xc3\234\xc3\x91\27Q[\xc3\213?\303\226\xc3\xbc_%+\xe2\x80\x9cO\xe2\x80\x9d+|\305\xa1\xc3\200\xcb\x9c\4\xc3\252\x1a\302\xa0w(e\xc2\241\xc5\275\342\x80\241\xc2\xbc\342\x82\254\xe2\x80\xa6\U\xc3\266\xc3\xbb\xc2\xbb\303\236\306\x92U\xc2\xbcZ\6\xc3\2314\xc3\215\x4
\xc2\xa0P\x2 \20@\302\xa8\4P\20\x1<\x8\xc3\210\xc5\2414\xc5\xa1C\25\302\xa0\x7\342\x82\254\26\1\xc3\xa6\303\x8c.K!\313\x9c\xc3\251\303\x87\3M#oSY3\302\xab\27L\303\271\xc2\xba\10\10\3\xc3\xbfB\313\x86$\xe2\x82\254\305\xbd0\37{\xc2\xa7\x13H\302\215\x1t\302\xbc\xc3\221)Jp\xc2\201$\10\xdJ\303\213\xc2\235y"\xc3\244\303\262\342\x82\xac;\36\xc2\277\302\245\5\xc2\xaa\22@,\303\272_\xc5\x92Z\303\xb2\342\202\xac\xc3\x88\34$\303\245\303\xa7\303\221\xc3\x98\1\342\x80\xa1\xc3\x90\x3\302\260`\xc3\x9cT\xc2\240\303\225\xc3\xa7c\xc6\222S\xc2\x9d\x7f\x15\30%\xc2\270C\302\x8f(+oO\6\303\241\xc2\262\xc3\222@\xc2\x9d\0\x1b^kX\342\x80\242\xc2\xaa@|\16\305\276\302\241\303\x8d\342\x80\241\302\257U@\xc2\xa1\xc3\xb9\303\xba(h\302\xaeB\xc3\xa9\302\201>\xc2\263\xc5\223\35Vn\303\x8d$\302\x9dH\xc2\x9d\302\235\xe2\x82\xac2\342\200\xb0(\16\303\237A\303\272L\xc5\x92ma\xc2\276h\xc3\x83\xe2\x80\240\303\x94I\342\x80\xa1\303\x84\xc\xc5\240\xe2\x84\242Ki\303\xbc:\xc3\xaa\35'\xc2\242\303\xa9E\x13\xe2\x80\224\303\210V\2\342\x80\234C\302\xa1EE5\xc3\xaeaF\303\273\xc2\244\xc2\247b\302\xa6\302\264H\30\xc2\xb0d\3A|\302\xa0\xc2\xb2\xc3\xad\342\x80\x9a"\342\200\260\xc3\x87\xc5\240B\x1c\302\272,\303\xb6\303\xbbX\xc3\216\x11J\10vN\xc2\277\xc3\260\xfy\23J\34\342\x80\x9d\xc3\245\x1\303\x97\303\200@\303\xad\x3\xc3\x94\xc3\xa2ld\302\240\302\xb1W\303\265\xc3\253\xc3\x86+&w\xc3\x84]\0\xc3\x84\x7\xc2\xa1od\xc3\xa1 \xc2\276\23\303\xafK\303\x94\1y\xe\342\x82\xac.\xc3\x88\313\206H\27\303\214\xe2\200\xb0\303\203\303\xbbUC\x6pLa\xc3\201\xe2\200\235/\303\xb1\xdK\xc2\xa1\303\xa3\303\x96\xc3\x80t\xc3\xb8\xc3\223\303\265\303\x80\xc3\x908\7c\303\235i\16\xe2\x80\x9d\xc2\xa8\1o\303\x8c\303\x80S\303\261\xc3\x8f\xe2\x80\236\xc3\x88\303\263\303\xa6`=\xc3\xb9\xcb\x9cE\0;\x1\xc3\212|'\302\275ll\xcc\x4THU\303\xa9\x1e?Ps\303\x9f=\xc3\xb8\303\x8f\303\x91\xc3\207b\xc2\252\17\342\204\xa2\303\200\xc2\xab\303\246\xc3\x9f8\x9\xd\303\x96\302\xbef\x2\303\x9f\302\235\xe2\200\246\303\203\303\247\303\257\xc3\255\303\271~\302\xb2K\303\253\x7f\xc2\xac\xc3\275[\303\251>\303\x9f8M\x2lF\303\260\xc2\235\xc5\241\xc2\217\303\xa9\xc3\xa1\xc2\273\xc3\225\303\xb8\303\246\303\x91\xe2\x80\246\xc3\261\xc2\xbf\302\264\xe2\202\xac\305\xb8\xc3\xa9\xf\xc2\217<\303\210\303\227\xc3\x9c\34\xc2\x81\302\xa9^\302\x9d\303\xb0k\xc3\xad\x13@\xc3\x97\xc2\xb8\303\205\xc3\265\xc3\260/u\32\303\x9b\303\244 .\303\274g\303\x89+\302\261\303\262`\25\303\x9f%\16\xe2\x82\254l\xc5\2232\xa\303\220[v\x18\xc2\253\303\274iS\xc2\xbf\xe2\x80\241\303\271]\32}I\xc3\261A\303\x98z\303\274\16\20*\xc3\xbc\303\237\303\x99~%\xc3\252_c|\302\252\xe2\202\xac\303\xbf-Q7\303\x9b:\303\222\xc2\xb3\30\xc2\253\xe2\x82\254\xc3\x89\302\252_;\17\xc3\xb1\xc2\xa9b\xc2\256\x3\302\275g}\302\xb41?p>W\xc3\x9c\342\x82\xac\303\255\303\xb5\17\302\xba\305\275\305\276`=\303\xba\303\x98\xe2\200\x9d5i\303\271\305\270\303\233~\xc2\x8f\xc3\237?{\3\xc3\xaf\xc3\256~\342\x80\236\xe2\200\xb9\xc2\xa1[|\xc3\x8c\x5\x7fE\303\xbe_\xc3\225\xc3\xbf\xc2\x9d\xc3\267UN\xc3\xbf\x10]?7\31pt?22?\303\230\303\277Tr\xc5\276\xc3\216\21\xe2\202\254\302\xa9\302\xa9\303\245T\303\261\35\xe2\x80\246\302\xb4]?f\303\272\37\303\264\xc2\xbe\xc3\xb5\303\265\177\303\xb5,w\303\273\x15\342\200\260\303\xbc\303\237\xc3\xbb\303\x91\302\272\xc2\2402\xe2\200\xb0y\xc3\275:P.T\xc2\2651G\303\x9a\303\277\xe2\200\271\xc3\226*\xe2\x80\x9c\xc2\275hb\xc2\xa0\302\xb8\302\217\xe2\x82\254?\xc3\242\xc3\x9fQ \302\x8d\xc3\264\xc2\267\303\x92 \xc2\xa8?\303\254W\xc2\275r\xc3\265\0\5\xc2\xafb\342\200\241`*\xe2\x80\235\x1\xc3\xa0:=v hv\x0\xc2\270\xc2\277\303\242\303\265\342\200\231\302\xa2\303\245\303\275%\x1aL:V(\302\xbd\4P\303\2708wD\342\200\x941\xc3\250\xc2\xb3\xc2\x90\5a\31\5\0\24\xc3\x90\x5o\302\255\302\xaa\302\276p4\x4\xe2\200\232D&\xe2\x80\x9d\xc2\245\xc3\250\x5@\30\xe2\x82\xaca\1\xc2\xb95\342\202\254\x17\xc3\x80m\1\303\x80P\3\342\200\xa6\303\x80Z\xc3\276\303\x9a\xe2\200\x99E\xc3\xbb\302\275\303\274]\10wI^)Q\x1\302\xac\x7\20\x1c\xc3\200w\x1\xc2\xb8(#-\302\273\xc3\206u#\xc2\xbc\xc2\247Z\342\x80\xa6\xc3\x88*0\342\200\234L\xc2\277\xc2\xa8\xc3\xb8d\xc3\x9b\303\xb0G\xc3\2005T\303\265@p/\xc5\xbe\302\xa7\xc3\x82\x14\xc3\242b\xcb\206:\21\x12\303\272"|01\x0\303\x8c\xc3\210`\303\200\x1e\302\260\303\220\303\x9a\302\x90\x5b\303\257\10:\x19P\342\x80\x9e\1\342\x80\x94\302\xbc\10\xc3\xbf\xc3\211'!\313\206\xe2\x82\xac\303\204\xe2\200\x9e\4\xd\xc2\240\x16\0fx\xc3\x8a\303\x8a\303\xad4\x0\305\xbe\303\237\xe2\x80\230\2\xe2\x82\xac\xe2\x80\xa0\342\x82\254\303\240\2H[,p<\xc3\xb6\x16\xc6\222M\17U\302\246\303\240T\xc2\xb0/a\xd\5LC\xc3\x81bE\xc5\241\xc2\xb8\\302\265A\xc3\247BV\xe2\202\xac\xc3\xb6\xc3\x9e\302\xbbMF/\302\xad\303\x84\35\xe2\204\xa2\xc3\261\342\x80\xb9v\305\xbe\xa<\xc3\203M\x10B&DO\xc3\270\xc2\273\x3\xc6\x92\x17f\x8\xc3\224\17\303\215\303\271,:\21\x13M
U4\xc3\x90\x14\303\243M\10x\32F}`\xc3\x92\xe2\x80\260\303\xb4#0\x1a\305\241}\xe2\x82\254\xc3\260\342\202\xac\xc2\xb6\xc3\x93B\xc2\262o0\x10\xc3\xa5\x4\23\xc6\x92&\302\253 N\10\xc3\241\xc2\x8d\xc2\251p\342\x80\x9a:\33\xc3\x81~\xc3\241\303\207\xc2\x8d\2
\303\x80M\xc2\xa6|\xc2\xa0N\xcb\206R\x1\302\242
"\x18	#'@\35\303\201b\342\200\230\303\xa3\303\273 \24\26\x1c\x1cPq\xe2\x82\xac\xc3\x87\xc2\275J\1\\30\xe2\x80\232<\342\200\242:\1h!pG\342\202\254\x7f\5\303\xb9\342\200\xb9dd
\313\x9c\35@jm\xc3\246\342\200\242\302\264\303\xb8\302\x90p\xcb\x861\xcb\x86\x1a\1\302\x90\7PX\303\201\xc3\xa1\x7`#/|\305\270\303\x8c\34\302\xa4\x1a\xc3\257\xc2\xba\302\276\xe2\200\xa1\6\303\222"\303\220n\7\x1a\3c\303\223D]\303\201\303\202\303\2738\16\302\x90r\66\26\10\x7\xc3\260{5\303\xa4~\xc3\260\xd\x0\35A\303\x90\x3\xe2\200\x9e\35De\21\342\x80\xa6\7q\o\xe2\x80\xb0B!\x7\xe2\x84\xa2[\x7\303\262\xc5\xb8\303\x8e\303\2410B\20D\342\200\234\xc2\xa4\342\200\x9c\303\x893\xc2\xb0T\313\206\xc5\xbd/\x14\x140B\xe2\x80\xb0r\xc5\275\xc3\xa8\xc3\xa0\xc3\220I\xc2\217\x10\302\xb2P\302\xa0\302\xa9;\302\xa4\xc3\xb2e\xc3\240\xc2\215P\342\x80\x9c\6M\4\303\x81\342\200\271\303\x83\xc2\xa1\313\x86\xe2\202\254\x7f\x19\xc3\243#\303\200\303\x82p\303\223Z?\xc3\210\303\261\302\267\34\x15`\x4pW\xc2\xb7\xc5\xbe\xc3\220\xc3\241\0`\303\212\x0"); } elseif ($_GET["file"] == "jush.js") { header("Content-Type: text/javascript; charset=utf-8"); echo lzw_decompress("v0\xc5\x93\xc2\x81F\302\xa3\302\251\xc3\x8c\xc3\220==\313\x9c\xc3\216FS\x9\303\220\xc3\x8a_6\32M\303\206\302\263\313\234\xc3\xa8\xc3\xa8r:\342\204\xa2E\xe2\200\241CI\xc2\264\xc3\x8ao:\xc2\235\x7C\x11\xe2\x80\x9e\342\200\x9dXc\xe2\200\232\xc2\235\xd\xc3\246\xc3\230\342\x80\x9eJ(:=\305\270E\342\x80\240\x13\xc2\201\302\xa6a28\x1a\xe\3\302\xa1x\303\xb0\xc2\270?\x14\17\303\x84'\xc6\222i\302\260SA\35NN\x2\342\x80\x98\303\xb9\303\260xs\xe2\200\xa6\32N\7B\303\xa1\xc3\214Vl0\xe2\200\xba\xc5\x92\xc3\xa7S	\xc5\223\xc3\213U\25\xfl\24\xc2\201\25(D|\23\xc3\x92\342\x80\x9e\xc3\xa7\xc3\x8aP\xc2\246\303\200>\x17\305\xa1E\xe2\x80\xa0\303\xa3\xc2\xa9\302\xb6yH\30\36c\x1h\303\244\xc3\202-3\x17Eb\xe2\x80\x9c\xc3\245 \302\270b\302\275\303\x9fpE\xc3\201p\xc3\277\229.\xc5\240\302\x8f\313\234\303\x8c~\xa\305\xbd?\x1d\31Kb\302\261iw\x1d|\303\210`\303\207\303\xb7\21d.\302\274x8EN\xc2\xa6\xc3\243!\xe2\200\235\303\x8d\222\342\204\242\5\xe2\x80\2413\302\251\313\x86\xc3\xa1
\342\200\241\34\302\215\303\x91Y\305\xbd\303\x8c\xc3\xa8y6\x19GFmY\305\xbd8o7\xa
\20\xc2\2630\302\244\xc3\267\0\xc2\201Dbc\303\223!\xc2\276Q\x1e7\x1d\x5\303\x90\302\xa8d8\xe2\200\xb9\xc3\x81\xc3\xac\35\5\2~\xe2\200\230\xc2\xacN)\35\303\xb9E\303\x90\xc2\xb3`\xc3\264Ns\xc3\x9f\303\xb0`\xc3\x86S)\xc3\220O\303\251\xe2\200\x94\xc2\xb7\xc3\xa7\3/\302\xba\34<\xe\302\201x\xc3\x869\305\xbdo\xc2\273\303\224\xc3\245\302\265\303\x81\303\254\203\x7n\302\xab\302\2562\xc2\273!r\302\xbc:;\303\243+\303\2029\xcb\x86C\xc3\x88\302\xa8\302\256\342\200\xb0\303\203\xa<\303\261\302\215\x8`\303\210\303\263\xc2\257b\303\250\\305\241?\302\215`\xe2\x80\xa04\xd#`\303\210\24<\xc2\xafBe\x16\xc3\xa3B#\x1a\xc2\xa4N \303\x9c\xc3\xa3
.D`\302\xac\xc2\253j\xc3\2524\xc3\xbf\xc5\xbd\305\xbdp\xc3\251\26\xear\xc2\xb0\303\xb8\303\243\xc2\242\302\272\xc3\267>\xc3\xb28\303\223$\303\x89c\xc2\xa0\xc2\xbe1\xc3\x89c\305\223\xc2\xa0\x1d\302\241c\xc2\240\303\xaa\xc3\x9d\x4\xc3\252{n7\4\x12\303\200\303\x83\x2\7\xc2\xa1\x12\x8\306\222\4A\303\260N\x15\xc3\212RLi\x1b
1\xc3\200\302\xbe\xc3\270!\xc2\xa3(\303\xa6\x14j\xc3\x82\xc2\264\302\256+\xc3\x82\xc3\25262\xc3\200\xfX\303\2128+\x3\30\xc3\212\x14\5\303\xa2\303\xa0\xc3\xa4.\xd\xc3\x8d\30\xc3\x8e\26\4\303\xb4\xc6\x92\303\x8e\26\4!x\xc2\274\xc3\xa5\16\xc6\x92h\303\271'\xc\xc3\243\303\242\xcb\2066S\xc3\xb0\x0R\22\x5\xc3\257\303\x94\303\xb4\xc3\261O\xc3\222\xa\302\274\24\xe2\200\xa61(W0\342\200\246\xc3\xa3\xc5\223\303\x877\7q\xc5\223\xc3\253:N\303\x83E:68n+\xc5\275\xc3\244\xc3\x95\302\264\x25_(\302\256s\302\240\x5
\303\xa3\xe2\x80\x9d\303\252\xe2\200\260\xc/m\xc2\x906P\303\224@\xc3\203EQ\xc2\x81\xc3\240\xc3\2049\5\xa\302\xa8V-\342\200\xb9\303\x81\303\263"\302\xa6.\3:\303\245J\302\215\303\x8f8we\303\216q\xc2\275|\xc3\x98\342\200\241\xc2\xb3X\303\x90\x17]\302\xb5\xc3\x9dY X\303\201e\303\245zW\303\242\xc3\274 \305\xbd7\303\242\303\xbbZ1\xc2\x8d\xc3\255hQf\xc3\231\xc3\xa3u\302\xa3j\303\2214Z{p\AU\xc3\213J<\303\265\xe2\200\xa0\31k\303\xa1\xc3\201@\xc2\274\xc3\x89\xc2\x8d\303\x83\303\xa0@\x14\342\x80\236\x1}&\23\xe2\200\236\xc2\x81\xcb\206L7\xcU\302\260wuYh\xc2\x90\xc3\2242\302\xb8\xc3\210@\xc3\xbbu\xc2\xa0 P\xc3\2407\xc3\213A\342\x80\xa0h\xc3\250\303\214\303\xb2\xc2\260\303\x9e3\xc\xc3\x83\342\200\272\303\xaa\x1e\xc3\247XE\xc3\215\342\x80\xa6Z\313\x86]\xc2\255l\x5\xc3\xa1@Mp\x7l\20v\xc3\202)\x1\303\246 \303\x81\7\303\x81HW\xe2\200\230\x5\xe2\200\x98\xc3\224y\37>\3\xc2\220Y\177\302\215-\303\xb8Y\xc5\270\303\xa8/\xc2\xab\xc2\x9d\xe2\200\xba\xc2\252\303\x81\303\256\xf\xc2\240hC\302\240[*\xe2\200\xb9\303\273F\303\xa3\302\255\x5\33#~\37\xe2\x80\xa0!\303\x90`\303\xb4
#0P\x10\xc3\257C\xc3\x8b\302\235\xe2\200\x94f\x3\302\240\xc2\267\xc2\266\302\xa1\xc3\256\xc3\x83\\xc3\xae\342\x80\xba\302\xb6\xe2\200\241\xc3\x89\xe\xc2\201^\xc3\203%B\3<\xc2\217\\302\275\x1bf\xcb\206\35\303\236\302\xb1\303\205\303\xa1\303\x90\xc3\235\303\xa3&/\302\xa6O\xe2\x80\232\xc3\260L\x1e\jF\xc2\235\xc2\250jZ\xc2\xa31\xc2\xab\:\303\x86\302\xb4>\4\xc2\x81N\302\xb9\xc2\257XaF\xc3\x83A\303\x80\33\33\xc2\xb3\302\xb2\xc3\260\303\203\xc3\x98\303\215f\xe2\x80\xa6\x19h{"s
\303\x9764\342\x80\xa1\303\x9c\xc3\270\303\x92\x16\342\200\246\xc2\xbc?\x5\303\x848\xc3\x9c^p\25\xc2\215"\xc3\253\302\235\xc2\xb0\xc3\xb1\303\210\302\xb8\\303\232e(\302\270P\30\x5\xc6\x92N\302\xb5\xc3\xacq[g\302\xb8\xc3\201r\303\277&\xc3\x82\x14}Ph\xc3\212\303\240\302\241\xc3\200W\xc3\x99\xc3\255*\xc3\236\xc3\xadr\37_s\xc3\x8bP\342\x80\xa1h\xc3\xa0\302\274\303\xa0\303\x90\xa\xc3\x9b\303\213\303\203om\303\265\302\xbf\xc2\xa5\xc3\x83\303\xaa\xe2\x80\x94\303\x93#\302\217\17\302\247\302\241.\xc3\x81\0@\xc3\xa9\x8pdW \xc2\262\xc$\303\222\xc2\xba\xc2\xb0Q\xc3\233\xc2\275T\x4l0\342\x80\240 \302\276\x1d\303\203HdH\303\253)\305\xa1\342\200\241\2\26\xc3\233\302\217\xc3\231\37\xc\xc3\x80)P\3\xc3\223\303\234\xc3\230H\xc2\x90g\4\xc3\xa0\303\xbd\7\27U\xc3\276\xe2\x80\236\302\x8f\302\252\25B\303\xa8e\xd\342\200\240t:\xe2\x80\241\xc3\225\x0)"\303\x85t\303\xb4,\xc2\xb4\xc5\x93\x18\342\200\x99\xc3\233\303\207[\302\217(\24D\xc3\xb8O\xaR8!\342\x80\xa0\xc3\206\xc2\xac\303\x96\305\xa1\xc3\260\xc3\234lA\303\274V\xe2\x80\xa6\x10\xc2\xa84\x3\302\xa0h\xc3\xa0\36\xc2\243S\xfq<\x15\305\xbe\xc3\240@}\303\x83\303\xab\xc3\x8agK\xc2\261]\302\256\303\xa0\xc3\xa8\17]\xc3\242=90\xc2\xb0\xc2\x81'\342\202\xac\303\xa5\x1d\303\242\303\270w\1A\21<\342\x80\x9a\306\222\xc3\220\35\xc3\221a\303\x81~\xe2\x82\254\303\xb2\x17\x6W\xc5\241\xc3\xa6\306\x92D|\1A\xc2\xb4\xe2\200\240\xe2\200\2402\xe\303\x93X\xc3\x99U2\303\xa0\303\xa9y\x7\xc3\x85\xc5\240\xc2\220\305\xa0\10=\x5\xc2\241p)\xc2\xab\0P	\xc\313\x9cs\xf\342\202\254\302\xb5n\xe2\200\2463\x6\xc3\256\xc2\x81r\xe2\200\x9ef\x0\xc2\xa2F\342\x80\xa6\302\267\xc2\xbav\303\222\xc3\214G\302\xae\1\303\x81I@\303\xa9%\302\244\342\200\235\xc5\xb8+\xc3\200\303\266_I`\xc2\xb6\303\x8c\xc3\264\xc3\x85
\23\34.\306\x92\302\xa0N\xc2\xb2\17\xc2\xba\303\213KI\xe2\x80\246[\25\xe2\200\x9d\xc3\212\xe2\x80\x93SJ\xc3\262\5\302\251\302\276a\6Uf\xe2\200\xbaSz\xc3\273\xc6\222\302\xabM\x1f\xc2\247\303\264\342\x80\236\xb%\xc2\xac\xc2\267"Q|9\4\xe2\x82\254\xc2\250\23Bc\302\247a\xc3\201q\0\xc2\xa98\305\xb8#\xc3\x92<a\xe2\200\x9e\xc2\263:z1Uf\xf\25\xc2\xaa\302\267>\xc3\256\x6Z\x10\302\xb9l\342\x80\260\342\x80\260\1\302\xb9\xc2\235\xc3\x93\xc3\200\23\2e5#U@iUG\xc3\x82\342\200\x9a\xe2\204\xa2\xc2\xa9n\302\250%\303\x92\302\260\17s\302\xa6\xe2\x80\236\x12\x10\xc3\x8b;gxL\x7\302\264p\x17P\305\241?B\xc3\xa7\xc5\222\xc3\x8aQ\xc2\x8d\\x15\342\200\x94\5b\x1f\342\200\236\303\277\5\xc3\251\302\xbe\342\200\231Q\342\x80\236=7\302\x81:\302\xb8\xf\xc2\257\303\235\xc2\241Q\302\xba\xd:\306\x92t\303\xac\302\xa5\16:y(\xc3\x85 \xc3\x97\x13
\303\233d)\302\271\31\x7\xc3\220\xc3\x92\xa\xc3\201X;\xc2\xa0\xe2\x80\xb9\xc3\254\305\275\21\303\252\x13CaA\302\xac\xd\xc3\241\xc3\235\303\xb1\xc5\270P\302\xa8GH\303\271!\302\xa1\302\xa0\xc2\242@\303\2109

Al~H\302\240\xc3\272\302\252V
\22s\302\xaa\303\x89\303\x95\xc2\253\xc2\x8d\xc3\206\302\257\xc3\x95bBr\xc2\xa3\xc2\252\xc3\266\5\342\200\236\xe2\200\231\x6\302\xad\302\262\30\32\xc3\x9f\303\2733\306\222\22\x1a
\xc5\276P\302\277%\302\242\xc3\x91\xe2\x80\236
}b/\342\x80\xb0\xc3\216\342\200\x98$\xe2\x80\x9c\45\xc2\247P\303\xabC\303\244"w\23\303\x8cB_\xc3\xa7\xc5\xbd\303\x89\x6U\303\x95gAt\303\xab\302\244\303\264\342\200\246\303\245\xc2\xa4\xe2\x80\xa6\303\251^Q\xc3\204\xc3\245U\303\211\16\1\303\204\xc3\x96j\xe2\x84\xa2\303\201\303\255\xc2\240Bvh\xc3\xac\302\xa1\342\x80\2364\342\x80\xa1)\302\271\xc3\243+\302\xaa)<\342\200\x93j\32^\302\x90<L\xc3\263\303\xa04U*\xc2\xa0\xc3\xb5\xc2\201Bg\302\xa0\xc3\253\303\x90\xc3\xa6\x1c\303\250*n\302\x81\x5\303\212\342\200\x93\303\250-\303\277\303\234\xc3\xb5\xc3\223\34\x99O$\xc2\264\342\x80\xb0\303\x98\xc2\xb7zyM\xe2\204\xa23\16\342\x80\x9e\9\xc3\x9c\303\250\x1e\313\x9c.\22o\xc5\240\xc2\266\xc5\241\303\214\x10\303\xab\302\270E(i\303\245\x7\303\240\xc5\xbe\xb\305\223\303\x84\xc3\x937\x9t\xc3\x9f\xc5\241\303\xa9\xc2\x9d-&\xc2\242
\x1a\1j!\xd\xc2\201\303\x80\x11\2y\xc5\x93y\303\xa0D1g\303\xb0\303\x92\303\xb6]\302\xab\xc3\234yR\xc3\2247"\xc3\260\303\246\35\302\xa7\x13\xc2\xb7\306\x92\xcb\206~\20\303\200\xc3\255\xc3\xa0\303\x9c\x7)TZ0E9M\303\245YZ\6\x1at\x3Xe\xf!\xc3\235f\342\200\240@\303\xa7{\xc3\210\xc2\254yl	8\xe2\x80\241\x1b;\302\220\xc2\246\306\x92R{\xe2\x80\x9e\303\xab8\xe2\x80\xa1\x7\303\204\302\xae\303\201e\303\230+U\x14L\xc3\xb1'\342\x80\232\35F\xc2\2621\xc3\275\4\303\270\303\xa68PE5-\x9\xc3\220_\16!\303\2247\xe2\x80\xa6\303\263\302\xa0[2\342\x80\xb0J\xc3\213\x1\303\x81;\342\200\241\x15HR\xc2\xb2\xc3\xa9\21\xc3\x87\xc2\271\xe2\202\2548\6p\303\247\xe2\x80\224\302\xb2\303\235\xe2\200\xa1@\342\204\xa2\xc2\2430,\303\225\302\xaepsK0\xd\1\302\xbf4\342\200\235\xc2\242$\32sJ\302\276\xe\xc2\201\xc3\x834\xc3\x89DZ\302\xa9\303\225I\xe\302\xa2\342\x84\242'$cL\342\x80\235R\xc2\201\342\200\223MpY&\33\36\xc3\xbc\xc2\275\xc2\x8f\303\x8di\303\247\xfz3G\6\xc3\215\x15z\xc3\x92\xc5\xa1J%\303\x81\xc3\x8c\x19P\303\x9c-\xe2\x80\x9e\x1\xc2\x90[\303\211/x\303\xa7\xc2\263T\xc2\276{p\302\xb6\302\xa7\xez\342\x80\271C\x5\xc3\x96v\x2\xc2\xb5\5\xc2\245\xc3\223:\xc6\x92V'\302\x9d\\342\200\223\342\x80\231KJa\xc2\xa8\303\x83M\306\x92&\xc2\272\xc2\xb0\302\243\303\223\xc2\xbe"\303\240\xc2\xb2e\x3\x13\xc2\x9do^Q\1+h^\303\242\x2\303\220iT\302\x81\303\xb01\xc2\252OR\303\244l\302\253,\355[\303\x9d\313\234$\xc2\271\xc2\267)\xc2\xac\303\xb4jL\303\x86\xc2\x81U`\xc2\xa3S\xc3\x8b`Z\xc^\303\260|\xf\342\202\xac\342\x80\xa1r\302\xbd=\303\220\17\xc3\xb7n\xc3\247\xe2\x84\xa2\xc2\273\xe2\200\223\xcb\234TU\32	1Hyk\xe2\x80\xba\xc3\x87t+\x0v\34\303\241D\xc2\xbf
\33\x9<\xc5\223\303\240\303\x86\342\204\242\xc3\xac\xc3\261j\7G\xe2\x80\x9d\36\xc5\276\302\xadt\303\206*3%k\342\x80\272Y\303\234\302\xb2T\x13*\xc3\235\x1f\x8|"C\36\xc5\xa0\303\274\30l\x7\x7hE\xc2\247(\xc3\210\34\xd\xc3\x838r\xe2\200\241\303\227{\303\234\30\xc3\2610\xc3\xa5\302\xb2\303\x97\303\276\xc3\231D\303\234_\xc5\222\342\200\xa1.6\xc3\220\xc2\xb8\303\xa8;\303\243\303\274\342\200\xa1\xe2\x80\x9erBj\x1b\306\x92O'\xc3\233\xc5\223\302\245\xc2\xa5\xc3\x8f>$\xc2\244\xc3\x94`^6\xe2\204\242\xc3\2149\xe2\200\x98#\x19\302\xb8\302\250\302\xa7\x14\303\2464\35X\3\303\276\302\xa5mh8:\xc3\xaa\xc3\273c\xe2\x80\271\6\xc3\xbe0\35\xc3\270\303\227\34\5;\xc3\x98/\xc3\224\342\x80\xb0\xc2\xb7\xc2\277\302\271\303\x98;\303\244\'(\302\xa0\xc3\256\342\x80\x9et\xc3\272'+\xb\xc2\235\x1c\xe2\x84\242\xc3\xb2\303\275\xc2\xaf\xc3\214\302\267\302\xb0^\302\201]\302\xad\xc2\xb1N\303\x91v\xc2\xb9\303\xa7#\xc3\x87,\10\303\xabv\303\xb0\xc3\227\xc3\203O\303\217\xfi\302\x9d\xc3\x8f\342\200\223\xc2\251>\302\267\xc3\x9e<S\16\303\xafA\\x15\2\342\202\xac\\xc3\xae\302\xb5\303\274!\303\2303*tl`\xc3\267u\302\x81\0p\x6'\xc3\2507\342\x80\246P\xc3\240\1779\xc2\xb7bs\305\223{\xc3\200v\302\256{\302\xb7\xc3\xbc7\xcb\206"{\303\233\xc3\x86r\xc3\xaea\303\x96(\xc2\xbf^\xc3\xa6\302\274\303\x9dE\303\267\xc3\272\xc3\277\303\xab\xc2\xb9\x1eg\303\x92\xc3\234/\302\241\303\270\xc5\276U\303\2049g\xc2\266\xc3\256\xc3\267/\303\210\xc3\x94`\303\204\xa\2\x8L
\302\201\x14)\7\xc3\x80\342\200\240\x14\xe2\x80\x9a(A\xc3\xbaa\303\260"\x5 \xc5\276\24\x3\303\xa7\303\x98	\xc3\201\4&\342\x80\x9eP\xc3\270\x14\xc3\202@O\xa\xc3\xa5\302\270\xc2\253\x50\342\x80\xa0\22\2(M\10&\34\x17\302\xa9FJ\10\2'\xc3\232\x8!\x8 \xe2\x80\xa60\xc5\240<\xc3\257H\303\xab\xc3\256\303\202\xc3\247\xe\xc3\x86\303\271\302\245\x1a*\xc3\214|\xc3\254\303\206*\xc3\xa7OZ\xc3\xadm*n/b\xc3\256/\xc2\x90\303\xb6\302\xae\xc2\220\303\224\313\206\302\271.\303\254\303\xa2\xc2\xa9o\0\303\x8e\xc3\x8adn\303\216)\302\x8f\x1e\xc3\271\302\217\305\xbdi\302\220:R\xc5\xbd\xc3\x8e\xc3\253P2\xc3\xaam\302\xb5\x0/v\303\xacOX\303\xb7\xc3\xb0\34\303\270F\xc3\212\xc2\263\303\217\313\x86\303\xae\xf\xc5\222\xc3\250\xc2\xae"\xc3\xb1\302\xae\303\252\303\xb6\303\xae\302\270\303\xb70\x4\303\xb50\x8\xc3\xb6\342\x80\232\302\254\302\xa9\20\x16\303\2550b\303\213\xc3\220g\2\x10j\xc3\260\xc3\260$\xc3\xb1n\xc3\xa9\40}\5\xc2\xb0\x9\x5\xc3\xae@\303\xb8\xb=\6M\4\303\206\xe2\x80\x9a\x20n\xc3\256P\305\xb8\5/p\xc3\xa6ot\303\254\20\xe2\x82\xac\xc3\xb7\302\xb0\xc2\250\303\260.\22\303\x8c\xc3\x8c\302\xbd\302\x8fg\x0\303\x90)\7o\342\200\224
0\xc3\x88\xc3\267\342\200\xb0\xd\x8F\xc2\266\303\xa9\xb\xe2\202\254\x7\xc2\240b\xc2\xbei\xc2\xb6\303\203o}\xa\xc2\260\34\303\214\xc2\xaf\xe2\x80\xa6\x9NQ\xc2\260'\303\260x\303\262\20Fa\303\220J\4\303\256\xc3\x8e\xc3\xb4\302\x8fL\303\265\x10\303\251\xf\303\xb0\xc3\x90\4\xc3\xa0\303\206\xd\xc3\x80\xc3\215
\xe2\202\254\303\x96\xc3\266\xe2\200\x98\x11\160\303\x85\x7\xc3\xb1'\xc\303\260\302\254\303\211d\xb	oe\23p\303\x9d\23\xc2\xb04D\xc3\220\xc3\x9c\x5\303\212\xc2\220\302\xa6q(~\303\200\xc3\214\xc \xc3\xaa\xd\342\200\232E\20\xc2\xb0\xc3\x9b\21pr\303\xb9QVFH\xc5\223l\xc2\xa3\342\200\x9aKj\302\246\302\277\xc3\244N&\302\xadj!\303\x8dH`\21\342\x80\232_bh\xd1\xc5\275\xc2\xa0\302\xba\xbn\10!\303\x8d\x1a\xc3\x89\305\xbd\xc2\255\xc\x10z\xe2\x84\xa2\302\xb0\302\xa1\23\303\260\302\xa5\xc\xc3\215\\17\xc2\253\xc2\254\5\xd\305\240\x7\xc3\255\xc5\240\xc3\203`V_k\303\232\xc3\203"\\303\227\342\x80\232'\16\21V\5\xcb\206\xc2\xab\x18\0\303\212\302\276`A\31C\xc3\xba\303\x80\xc2\xb1\xc3\217\30\xe2\200\xa6\xc2\246V\xc3\206`\xd%\xc2\xa2\xe2\x80\x99\xc3\202\x2\xc3\x85\xc3\254\xc2\246
\303\261\303\242\16\306\x92\342\x80\x9ak@N\xc3\x80\302\xb0\303\274\302\201\20B\303\xb1\xc3\xad\305\xa1\xe2\x84\242\21\302\257\21 \xc2\267!\xc3\x88\xa\342\200\231\x0Z\342\x84\xa26\302\260$d\xc2\240\xc5\x92,%\x3\303\240%la\31\xc3\255H\303\x97
\342\200\271#\xc2\242S$\xc!$@\302\266\xc3\235\172\xc2\xb1\302\x8d\xe2\200\x9e\xeI$r\xe2\x82\254{!\302\261\302\xb0J\342\x80\xa12H\303\xa0Z\x6M\\xc3\211\303\207hb,\xe2\200\241'||cj~g\303\220r\xe2\200\xa6`\302\xbc\303\x84\302\274\xc2\xba\10$\302\272\303\204\303\x82+\xc3\252A1\303\260\305\223E\x7f\x1f\342\x82\254\xc3\207\x1f\xc3\200\303\x99 \xc<\xc3\212L\xc2\250\5\x11\xc3\221$\xc3\xa2Y%-FD\xc2\252\305\240d\342\x82\xacL\4\303\xa7\xe2\200\x9e\302\263\302\240\302\xaa
@\342\200\231\10bVf\xc3\xa8\302\xbe;2_(\303\xab\xc3\264L\303\204\xc3\220\xc2\xbf\xc3\202\x5\302\262<%@\303\x9a\305\223\x7,"\303\xaad\303\204\xc3\x80N\xe2\200\232er\303\xb4\x0\303\246\306\x92`\xc3\x84\16\xc2\xa4Z\xe2\202\254\xc2\2764\xc3\x85\10'ld9-\303\xb2#`\xc3\xa4\xc3\263\xc3\x85\xe2\200\223\xe2\200\xa6\303\240\xc2\266\xc3\226\xc3\243j6\xc3\253\303\206\xc2\243\xc3\243v\x7\xc2\240\xc2\266\x4\xc3\xa0N\xc3\225\303\x8d\xc2\220f\302\240\xc3\226\177@\xc3\234\xe2\x80\240\xe2\200\234&\xe2\x80\231B$\303\245\xc2\266(\xc3\260Z&\342\x80\236\xc3\237\xc3\xb327\238I \xc3\240\xc2\277\303\240P\xdk\\302\x8f\302\247\342\x80\2242`\xc2\266
dL\xeb@\16E\24\303\xb6\306\222\302`P( B'\303\xa3\10\xe2\x82\xac\xc2\xb6\xf\342\202\254\302\2720\302\262&\x5\xc2\xa0\303\xb4{\303\202\302\220\xe2\x80\xa2\xe2\200\x9c\302\xa7:\302\256\xc2\xaadB\303\xa51\303\xb2^\303\x98\xe2\x80\260*\xd\x0c<\16\4\6K\302\220|\6\xc3\2355sZ\302\276`\xc2\272\xc3\200\xc3\200O3\xc3\2525=@\303\xa55\xc3\x80C>@\xc3\x82W*	=\x0N<g\xc2\xbf6s67Sm7\x13u?	{<&L\x4\303\x82.\x63~D\xc3\x84\xc3\xaa\xd\xc3\x85\xc5\xa1\xc2\xafx\xc2\xb9\23\xc3\255)\x8,r\303\xaei\16n\xc3\205/\302\240\303\245\x12\xfO\0o{0k\xc3\216]3>\x5m\xe2\200\xb9\x5\xe2\x80\2351\x0\xe2\200\x9dI@\xc3\x949\x12T34+\xc3\x94\xe2\x84\242@e\17\xe2\x80\x9dGF\24MC\xc3\211
E3\xc3\x8bEtm!\x13\xc3\233#1\xc3\x81D @\342\200\x9aH(\342\200\x98\303\x93n \xc3\x83\303\x86<g,V`R]@\303\272\xc3\x82\303\207\xc3\2113Cr7s~\xc3\x85G\33I\xc3\263i@\0v\303\202\303\x93\x185\xdV\xc3\x9f'\x1a\xc2\xac\xc2\xa0\xc2\244\xc\302\240\303\216\10\302\243P\x5\x2\26\5\303\200\xc3\224
\303\242$<b\xc3\x90\5%(\342\x80\241Dd\xc6\222\342\200\xb9PW\303\204\303\256\303\220\303\214b\xc3\x98fO \303\246x\0\xc3\250} \303\x9c\xb\303\xa2\342\x80\x9dlb\xc2\240&\xe2\200\xb0v\xfj\x8\44\xc2\265LS\32\xc2\xbc\302\250\xc3\226\xc2\264\xc3\x94\xc2\xb65&d\x7sF M\303\xb34\303\214\30\303\x93".H\303\x8bM0\xc3\xb3\x131u\x15L\302\263"\xc3\x82\xc3\x82/J`\303\xb2{\xc3\207\xc3\276\302\xa7\342\x82\254\xc3\212x\xc3\x87\xc2\220Yu*"U.I53Q\xc2\xad3Q\303\264\xc2\273J\xe2\200\x9e\xe2\200\235g\302\240\xe2\200\2315\xe2\x80\xa6\x8s\xc3\xa0\xc3\272\305\xbd&j\303\221\305\222\xe2\200\231\303\x95u\xe2\x80\x9a\303\231\302\xad\xc3\220\302\xaaG\5Q\xbMTmGB\xc6\222t\xbl-\37c\303\271*\xc2\xb1\xc3\276\xd\22\2\305\240\xc2\xabZ7\303\224\xc3\265\x1b\xc3\xb3*hs/RUV\xc2\xb7\xc3\xb0\303\264\xc2\252B\xc5\xb8N\303\x8b\xcb\206\302\270\xc3\x83\x6\xc3\263\303\243\xc3\252\x5\xc3\224\305\240\xc3\240i\xc2\250Lk\303\267.\302\xa9\xc2\xb4\303\x84t\xc3\xac\302\240\xc3\xa9\xc2\276\302\251\xe2\x80\xa6rYi\xe2\x80\235\303\225\xc3\xa9-S\302\xb5\306\x923\xc3\x8d\\xc5\xa1T\303\xabOM^\302\xadG>\342\200\x98\4ZQj\303\224\7\342\200\xa1\xe2\204\242"\302\xa4\xc5\275\xc2\xaci\342\200\x9d\303\226MsS\xc3\xa3S$Ib\xf\x9f\302\xb2\23\xc3\242\xc3\221u\303\xa6\xc2\246\10\302\xb4\342\x84\xa2\303\245:\4\xc3\xaa\x1aSB|i\xc2\242\302\240Y\303\202\xc2\xa6\xf\xc6\x92\xc3\2408\x9v\x7\xc3\x8a#\2\xc3\xa9\342\200\235D\302\2524`\342\200\241\xe2\x80\240.\342\202\xac\303\x8b^\303\263H\xc3\205M\342\x80\xb0_\xc3\225\xc2\274\305\240u\xc3\200\xe2\204\xa2U\xc3\x8az`Z\302\x8dJ	e\xc3\247\xc2\xba\xc3\x9d@Ce\303\xad\303\253a\xe2\200\xb0"\xfm\303\xb3b\x12\xe2\x80\2366\xc3\x94\xc2\xafJR\xc3\202\x7f\xc3\226\xc\342\200\230T\xc2\x9d?\303\x94\302\243XMZ\xc3\234\xc3\215\xc3\x90\xe2\200\240\xc3\x8d\xc3\xb2p\xc3\250\xc3\x92\xf\xc2\xb6\302\xaaQv\xc2\xafj\23\xc3\xbfjV\xc2\xb6{\302\266\xc2\274\303\205C\xc5\x93
\302\265\xc3\x957\26\xe2\x80\xb0T\xc3\x8a\305\xbe\302\xaa \xc3\272\303\xad5{P\303\xb6\302\xbf]\x12\xe2\x80\231
\xc3\x93?Q\xc3\240AA\xc3\x80\303\xa8\4\x7\xc5\xbd\342\200\xb9\342\200\231\xc3\2152\xc3\xb1\302\xbe\xc2\xa0\xe2\200\234V)J\33i\xc2\243\303\x9c-N9\29f\342\200\223l J\x12m\303\215\xc3\262;u\302\xa8\xe@\xe2\200\232<F\303\276\xc3\221\xc2\240\302\xbee\342\x80\240j\342\x82\xac\303\x92\16\xc3\x84\xc2\246\xc2\217I\xe2\200\260<+CW@\303\xb0\xc2\x81\x17\30\xc3\247\xc3\200\302\xbfZ\xe2\x80\230l\303\x911\xc3\211<2\xc3\x85iF\303\xbd7`\24KG\313\234~L&+N\10\302\217\xc3\240YtWH\xc3\xa9\302\243\342\x80\230w	\32\16\xc3\x96\x3\32\xe2\x80\242\306\222\x19\xc3\262l\xe2\202\xac\303\x92s'g\4\303\x89\303\xa3q+L\303\xa9zbiz\xc2\253\xc3\206\xc3\x8a\xc3\x85\xc2\242\303\x90\x10.\303\x90\305\xa0\303\x87zW\xc2\xb2\303\207 \xc3\271zd\6\342\200\xa2W\302\xa6\xc3\x9b\xc3\xb7\302\xb9(\27\xc2\x8fy)v\xc3\235E4,\0\303\224"\1d\xc2\xa2\302\xa4$B\303\xa3{\xc2\xb2\305\xbd!)\x131U\xe2\x80\xa05bp#\303\205}m\x18=\xc3\227\303\210@\313\x86w\22\xc3\204	P\0\303\xa4\xd\303\254\xc2\242\xc2\xb7\342\200\230\342\202\254`O|\xc3\253\xc3\x86\16\30\16\xc3\266	\305\x93\303\x89\xc2\215\303\274\303\205\303\265\xc3\xbbY\xc3\xb4\xc3\xa6J\303\225\342\200\x9a\5\25\xc3\266E\303\227\xc3\x99Ou\305\xbe_\302\247
`F`\xc3\210\x7}M\xc3\202.#1\xc3\xa1\342\200\232\x17\xc2\xacf\xc3\xac*\302\xb4\xc3\225\xc2\241\37\xc2\xb5\302\247  \302\277z\xc3\xa0u\x1ac\xc3\xbb\342\202\xac\342\200\x94\302\xb3 xf\xc3\x938kZR\302\xafs2\x4\303\x8a\xe2\200\x9a-\342\200\xa0\xe2\x80\231\302\xa7Z2\xc2\255+\x18\305\275\xc3\212\302\267\xc2\xaf(\xc3\xa5sU\x7\303\265cD\xc3\xb2\303\221\xc2\xb7\303\212\xb\303\xac\xcb\234\303\235X!\x12\xc3\xa0\xc3\215u\xc3\270&-vP\303\220\xc3\x98\xc2\xb1\23\25\x0'L\303\257\xc5\222X \xc3\xb8L\xc3\203\x2\30\xc2\xb9\xc5\222\xcb\206o	\303\235\xb\x4\303\xb4>\302\270\303\x95\305\275\2\xc3\223
@\303\231P\x18\303\265\2\16\xd\177xF\x5\303\x97\303\xbcE\xe2\202\xac\303\x8c\303\x88\xc2\xad\xc\xc3\257%\303\x80\xb\303\xa3\4\303\xac\xc2\xae\303\xbc=\x185N\303\226\xc5\x93\xc6\222\xc2\270?\xe2\x80\2367\xc3\271N\xc3\213\xc3\203\342\x80\246\xc2\251w\xc5\xa0`\303\x98hX\xc2\xab98 \xc3\x8c\x18\xc2\201\302\215\xc3\xb8\302\257q\xc2\xac\302\243z\303\243\xc3\217d%6\xc3\x8c\xe2\200\x9at\xc3\215/\342\200\xa6\xe2\200\xa2\313\x9c\xc3\244\xc2\254\303\xab\302\x8fL\xc3\272\xc3\215l\xc2\xbe\xc3\212,\xc3\234K\x19a\342\200\242N~\xc3\x8f\xc\303\x80\xc3\x9b\303\254\303\xba\xc,\xc3\xbf'\xc3\xad\xc3\x87\xe2\x82\xacM
f9\1\x7f\xc2\xa3w\xc2\x90\xcb\234\x2!x\37\302\x90\303\267x[\xcb\x86\xc3\x8f\342\200\x98\303\x98G\342\200\x998;\xe2\200\x9exA\xcb\x9c\xc3\271-I\303\214&5$\xe2\x80\223D$\xc3\xb6\xc2\xbc\302\xb3%\xe2\200\246\303\x98x\xc3\221\xc2\254\303\x81\xe2\200\x9d\xc3\210\303\202\xc2\xb4\303\200\xc3\x82\xc\xc5\x92]\xe2\200\xba\302\244\303\xb5\xe2\200\241&o\xe2\x80\260-3\302\x9d9\xc3\x96L\303\271\xc2\xbdz\302\215\xc3\274\302\xa7y6\xc\302\xb9;u\xc2\271zZ \xc3\xa8\303\x918\xc3\277_\xe2\x80\242\303\211\302\x90x\0D\x16?\305\xa1X7\xe2\200\240\342\204\xa2\302\xab\342\x80\231y\xc2\261OY.#\x193\305\270\x198\302\xa0\342\204\242\xc3\207\342\202\254\313\234e\342\200\235Q\302\xa8=\xc3\x98\xe2\202\xac\5*\33\xcb\x9c\xe2\204\242G\24\305\x92w\6m \xc2\xb3\xc3\x9a\x3\342\x80\x9eY\342\200\x98\x7f\xc3\xb9\xb\302\xa0\xc3\200\xc3\x9a]Y\x1fOY\302\250F\302\xa8\xc3\255\305\xa1\xc3\x99)\xe2\x80\236z\36#$e\305\xa0\xc5\241)\342\200\xa0\x1a/\305\222z?\302\243z;\xe2\204\xa2\342\x80\x94\303\231\32\302\xac^\xc3\x9b\xc3\xbaF\303\x92Zg\302\xa4\xc3\271\342\x80\xa2\302\xa0\303\214\303\267\302\245\342\204\242\xc2\xa7\xc6\x92\305\xa1`^\303\x9ae\302\241\302\255\5\302\xa6\xc2\xba#\302\xa7\x7\x5\xe2\200\234\xc3\230\303\xb1\xe2\x80\x9d\xc\xc2\251\xc5\xbd\303\xba?\305\x93\302\xb8e\302\xa3\342\x82\254M\xc2\243\303\2323u\303\x8c\303\xa5\xc2\x81\306\x92\100\302\xb9>\303\212"?\xc5\270\xc3\266@\x4\xc3\x97\342\x80\224Xv\342\200\xa2"\303\247\33\xe2\200\x9d\305\222\302\xb9\xc2\xac\302\xa6*\303\x94\xc2\242\4\xd6v~\342\200\241\303\203OV~\302\215&\303\x97\xc2\250\x15\xc2\201^g\303\274\302\240\xc5\241\303\204\342\200\230\303\231\xc5\276\xe2\200\xa1'\xc3\216\x5\xe2\x82\254f\56:-Z~\xc\302\xb9\xc5\xa1O6;zx\xc2\201\302\xb2;&!\xc3\x9b+{9M\302\263\27\xc3\x99\302\xb3d\xc2\xac \xd,9\xc3\x96\303\xad\302\xb0\303\244\302\267W\303\x82\x4\xc\xc3\x86\xc3\235\xc2\255:\303\xaa\xd\303\272\303\231\305\223\xc3\271\xc3\243\xc2\235@\xc3\xa7\302\x9d\342\x80\232+\302\242\302\267]\305\x93\xc3\214-\305\276[g\305\xbe\xe2\x84\242\xc3\233\xe2\200\xa1[s\xc2\xb6[i\xc5\276\xc3\231\35i\303\210q\xe2\x80\272\xe2\200\xbay\342\200\xba\303\251x\xc3\xa9+\xe2\200\x9c|7\xc3\215{7\xc3\x8b|w\xc2\xb3}\x19\342\200\236\302\xa2\xe2\200\272\16\xc2\243E\342\x80\223\xc3\xbbW\xc2\xb0\342\x82\xacWk\302\270|J\xc3\230\302\201\302\266\x4\xc3\xa5\342\200\xb0xm\313\206\302\xb8q xwyj\xc5\270\xc2\xbb\xcb\234#\xc2\xb3\313\x9ce\302\xbc\x5\xc3\270(\xc2\262\xc2\251\342\200\xb0\xc2\270\302\x8d\xc2\x9d\303\200\303\x9f\305\276\x1b\303\x83\302\xbe\x18\xe2\x84\242\xe2\x80\xa0\xc3\262\302\263 {\xc3\250\303\237\303\232\xc2\x8f\302\240y\342\x80\234\xc2\240\xc2\273M\xc2\273\xc2\xb8\xc2\264@\302\xab\xc3\xa6\xc3\x89\342\200\232\342\x80\234\302\260Y\xc2\235(g\303\215\305\241-\303\xbf\302\251\xc2\272\x15\xc2\xa9\xc3\244\xc3\255\xc2\xa1\305\241\5\xc2\241\xc3\x98J(\xc2\245\xc3\274\302\201@\303\263\xe2\200\xa6\xb;\342\200\xa6y\303\202#S\302\274\xe2\x80\xa1\2\xc2\265Y\342\x80\x9e\xc3\x88p@\xc3\x8f%\303\250s\305\xbe\xc3\272o\xc5\xb89;\xc2\xb0\303\xaa\x1b\302\xbf\303\xb4\303\265\302\xa4\xc2\271+\302\257\303\x9a	\302\245;\xc2\253\xc3\x81\303\272\23\313\x86Z\27N\303\x99\xc2\xaf\303\x82\302\xba\xc2\xa7\342\200\x9e\xc5\241 k\302\xbcV\xc2\xa7\302\xb7u\342\200\260[\xc3\xb1\302\274x\xc2\235\342\200\246|q\342\200\231\21\xc2\xa4ON\xe?\xe2\202\254\177\xc3\211\xc3\x95	\342\200\xa6`u\305\x93\x7\x6\302\2416\302\x8d|\x4\302\xad|X\xc2\271\302\xa4\302\255\342\x80\224\303\230\302\xb3|O\6\16\xc3\254x!\303\253:\xf\302\217\x7\302\250\xc5\x93\303\217\342\x80\x94Y]\342\200\x93\xc2\254\xc2\xb9\305\275\xe2\x84\xa2c\xe2\200\242\302\254\xc3\200\xd\xc2\xb9h\xc3\2159n\xc3\216\xc\xc3\x81\xc2\xac\302\254\303\xab\xc2\x8d\xe\xe2\202\254\303\x8f8'\342\200\x94\xc3\271\342\200\x9a\303\252\31\xc\303\240\xc2\240\177\303\x86\xd\x4\7S.\x51\302\277\302\242US\xc3\x88\xc2\xb8\342\x80\xa6\302\274X\xe2\x80\260\xc3\x89+\303\x8b\303\211z]\303\x89\xc2\xb5\x7\xc3\212\x1c\302\xa4?\305\x93\xc2\xa9\xc3\x8a\xc3\x80C\xc3\213\xd\303\227\xc3\x8b\\xc2\272\x4\xc2\255\xc2\271\xc3\xb8$\xc3\217`\303\xb9\303\214)U\xc3\214|\xc3\x8b\302\xa4|\xc3\x91\302\xa8x'\303\225\305\223\303\230\303\x8c\34\xc3\xa4\303\212<\xc3\xa0\303\214\xe2\x84\242e\303\x8e|\303\xaa\303\215\xc2\xb3\xc3\xa7\xe2\200\x94\303\242\xe2\200\231\xc3\214\xc3\xa9\xe2\x80\224L\303\xaf\303\x8f\303\235M\303\x8ey\xe2\x82\254(\303\233\xc2\xa7\xc3\220l\302\x8f\303\x90\xc2\xba\xc2\xa4O]\20{\303\221\302\276\xc3\227\30FD\302\xae\xc3\x95\303\231}\302\241yu\342\x80\xb9\303\221\303\204\xe2\200\231\303\237,X\xeL\\303\206\30x\xc3\x86\xc3\210\x1c;U\303\227\303\x89Wt\342\x82\xacv\xc5\270\xc3\204\OxWJ9\x13\303\210\342\x80\231\303\x97R5\302\xb7Wi\x4Mi[\342\200\xa1\34K\xcb\206\x7\342\202\xacf(\0\303\246\xc2\276d\303\204\xc5\241\303\222\xc3\250\302\xbf\xc2\xa9\302\xb4
\xc3\254\10M\303\x84\xc3\xa1\303\x88\303\2317\xc2\xbf;\303\x88\xc3\x83\xc3\x86\xc3\xb3\303\x92\xc3\261\303\247\xc3\2236\20\342\200\260K\xc3\212\302\xa6I\302\xaa\xd\303\x84\xc3\x9c\xc3\x83xv\xd\xc2\262V3\xc3\x95\303\x9b\xc3\x9f\xc3\211\302\xb1.\303\x8c\x1\xc3\240R\303\271\303\202\303\276\xf\303\211\x18\302\x8d\303\241|\xc5\xb8\xc3\241\xc2\276\x19\34^2\342\200\260^0\xc3\237\xc2\xbe$\302\240Q\xc3\x8d\xc3\244[\303\xa3\xc2\xbfD\xc3\267\xc3\241\303\x9c\302\xa3\303\xa5>1'^X\xb~t\302\x81\x1e1"\x1e6L\xc2\x9d\303\276\342\x80\272+\xc3\276\x5\xc2\276A\xc3\240\305\xbee\xc3\xa1\x1c\342\x80\x9c\303\246\303\x9e\x1d\xc3\245I\xe2\x80\x98\xc3\247~\xc5\270\303\245\303\242\xc2\xb3\303\xa2\xc2\xb3@\xc3\237\xc3\x95\16\302\255\303\265pM>\xc3\223m<\xc2\264\303\x92SK\303\212\33\303\xa7-H\xc3\211\xc3\200\302\xbcT\x1d\x576\303\x99SMfg\xc2\250=\xc2\xbb\x1e\303\205GP\303\x8a\302\260\342\x80\272P\303\226
\xc2\xb8\xc3\251>\303\x8d\2\xc3\266\xc2\xbe\xc2\241\xc2\xa52Sb$\xe2\200\242C[\xc3\230\xc3\x97\xc3\xaf(\x1e\303\204)\305\xbe\303\236%Q#G`u\303\260\xc2\xb0\303\207Gwp\xdk\303\x9eKe\342\x80\x94zhj\xc3\x93\x4\342\x80\x9czi(\303\xb4\xc3\xa8rO\302\xab\xc3\xb3\21\303\x84\xc3\x9e\303\223\303\xbe\303\230T\3=\302\xb77\xc2\263\303\xb2\303\xae~\303\xbf4"ef\xe2\200\xba~\xc3\xadd\xe2\204\242\303\xb4\x1b\303\xadV\xc3\277Z\xe2\200\xb0\xc5\xa1\303\xb7U\xe2\200\242-\xc3\253b'V\xc2\265J\xc2\271\27Z7\x1a\303\233\xc3\266\xc3\202)T\342\x80\230\xc2\2438\20.<\xc2\xbfRM\xc3\xbf$\xe2\200\xb0\305\276\xc3\xb4\xc3\233\xc3\x98'\xc3\x9fby\xc3\257\xa5\xc3\xb8\306\222\303\235\303\xb5_\305\xbd\303\xa0w\xc3\xb1\xc3\216\x18\302\xb0\x16\303\255U\32\303\xb0\xe2\x80\x99`ei\xc3\236\302\xbfJ\342\x80\235\27b\302\251g\303\260u\xc2\215\x1cS\xc3\215\303\253?\xc3\x8d\303\xa5`\xc3\xb6\303\xa1\xc5\276\303\254+\xc2\xbe\303\217\303\257 M\303\257g\xc3\xa87`\xc3\271\303\257\xc3\xad\0\302\242_\4\303\x94-\xc3\xbb\x1c\xc5\xb8\303\265_\xe\303\267\x17\xe2\x80\223?\303\xb5F\xc2\260\0\x11\342\200\x9c\303\xb5\302\215\302\xb8X\2\xe2\x80\x9a\x1b\303\xa5\302\264\x6\342\x80\231[\xc2\262\xc2\257J\305\x938&~\31D#\303\201\303\266{P\342\x80\xa2\36\xc3\230\xc3\xb44\303\x9c\xe2\200\224\302\275\xc3\xb9"\342\200\272\32\x10\x1b\x0\xc3\x8c\x16\xc3\x80\xe2\x82\254\xe2\200\271\303\xbd\302\247\302\x81\x1c\x3\33\xc3\275@\303\x92\342\200\234\5\xe2\x80\223\xc2\xa5\0F ?\xf*\xc2\x8f\xc2\xa0\22^\xc3\xb1\xc3\257\302\x8d\xc2\xb9\303\xa5\302\xaf\x1aw\xc3\xab\xc3\220\305\xbe:\xc3\260\x17\302\x81\xc2\xbeu\303\240\303\2173xK\303\215^\30\303\xb3w\xe2\200\x9c\302\xbc\xc2\xa8\303\x9f\xc2\257\xe2\200\260y[\xc3\x94\xc5\276(\xc5\xbe\303\246\342\x80\x93\x11\302\xb5#\302\246\x18/zr_\342\x80\235g\302\xb7\xc3\246?\302\xbe\x6\x0?\342\x82\2541wMR\x7&M\302\277\1\23\342\200\240\xc3\xb9?\302\254\25St\xe2\x82\254T]\x1b\303\235\xc2\264G\303\265:I\xc2\267\xc3\xa0\302\242\303\xb7\313\x86)\xe2\x80\241\302\251B\xc3\xaf\xcb\206\21\342\200\271 v\xc3\xb4\302\247\342\200\231\xc2\2751\xc3\247\xf<\36\xc3\264\21\x1et\303\x88\303\2426\xc2\275:\x6\302\x8f\x13W{\303\200\x1e\305\xa0\303\264x\x1d:=\xc3\210\xc3\256\xe2\200\x98\xc6\222\xc5\x92\17\xc3\236\305\xa1\xc3\263\xc3\270:\xc3\x82!!\5\x0x\xe2\200\xba\xc3\225\24\xcb\x9c\xc2\xa3\xc3\xb7q&\xc3\241\303\xa80}z"]\303\x84\303\x9eo\xe2\200\xa2z\xc2\xa5\xe2\x84\242\xc3\x92j\xc3\203w\32\303\x97\303\237\xc3\212\xc3\232\303\201\1776\302\270\xc3\222J\xc2\242P\303\233\xc5\xbe[\\3 \x17\1}\303\xbb\302\252`S\22\xe2\204\242\x0\xc3\240\xc2\xa4qH\5\34M\xc3\xab/7B\342\x80\231\xe2\x82\254P\3\xc2\260\37\xc3\202\xc3\x84]F\26T\303\243\10\342\200\242\x1e\368S5\302\xb1\x1e/I\303\221
\xc5\x92\xa\2 \37\xc2\201\xc3\xae\x15O\xc2\xaf\x1f\240aQ
\302\xa0>\xc3\x832\x14\302\xadj\342\200\xa6;=\xc3\232\xc2\254\xc3\x9bdA\32=\302\xadp\xc2\243VL)X\xc3\265\xa\26\x7f\303\202\302\xa6\x15`e$\22\313\x9cT\xc3\x86\302\246QJ\xc2\x9d\303\215\303\263\xc2\256\xc3\246lJ\303\xaf\xc5\xa0\xc3\224\xc3\xae\xc3\x91y\xe2\200\236I\xc3\x9e\x9\x8\2\303\244:\xc6\x92\xc3\x91\303\204\xc3\204B\303\xb9bP\303\200\342\x80\240\303\273Z\xc3\x8d\x12\21\xc2\270n\xc2\xab\302\xaa\x1f\302\xb0\303\225U;>_\xc3\221\xa\x8\x9\xc2\276\xc3\265\xc3\253\xc3\220\27\x12\xc3\214`\xe2\200\223\35\xc3\x94u\x4M\xc3\262\305\222\xe2\200\x9a\xe2\x80\232\xc3\x82\xc3\x96\xc2\x8dm\5\302\263\x15\x1f\303\x95\303\xb3\xc3\202Lw\303\272B\0\b8\1\xc2\xa2M\303\234\20\xc2\220[z\xe2\x80\230\302\x9d&\xc2\xa91\303\xbd\0\303\xb4	\302\241\xd\x17\313\234\33T\xc3\226\xc3\x97\4\xe2\200\272\302\201\xc2\240\5\xe2\202\254+\\302\2733\xc3\200Plb4-\5)\21%Wd#
\4\xc3\210\xc3\xa5r\xc3\x9e\x15\xc3\xa5MX"\xc3\217\xc2\xa1\303\244(E\34\x13\x19i11\x7f(\10b`@f\303\x92\x1e\302\xb4\xf\302\255\xc6\x92S\303\222\303\xb3\x15\xcb\206j\303\xa5D\342\x80\240\302\235bf\xc2\xa3}\342\x82\254\35\x15r\303\xaf\x6\xc2\xbe\342\x80\x98\303\xbdD\20\342\x80\230R1\342\x80\246\302\x9d\302\264b\xc3\223\27\xcb\x9cA\303\233\303\xafIy"\xc2\265Wv\303\xa0\xc3\201gC\xc2\xb8I\xc3\204\177J8z"P\\3i\1\xc2\245\m~ZR\302\271\xc2\xa2v\xc3\xae1ZB5I\xc5\xa0\303\203i@x\xe2\x80\x9d\342\200\xa0\302\267\302\260-\342\x80\xb0uM
j\16K\303\225U\302\260h$o\342\200\x94\xcb\206J\303\217\xc2\xa4!\xc3\x88L\x18"#p7\x0\302\264\x8 P\x2\xe2\x82\xac\23\0\305\xa0\x5D\303\267\x1$	\302\xa0GK4e\303\224\32\x2\xc3\x90$\xc2\x81\x18
G\xc3\244?\xc3\2713\302\xa3E\x1aAJ\xbF4\303\240I\2p\24\0\302\xab\32\10\303\227F\305\xbd4\302\261\xc2\262\x3<f@\xc5\xbe\x4 %\1\24\x8q\xc2\270\1<k\303\xa3w\31\342\x82\254\x16\302\x81\x9\xc3\xa0LOp\25\x0\342\x80\xb0\x1cx\xc3\x93\303\x87(	\xe2\202\xacG>\xc3\260\25@\302\xa1\34\303\x98\xc3\247\xc3\x86\303\2069\0T\2\x10\23\303\200\313\206\5\xcb\x9c\303\xacGB7\302\xa0-\x2\302\240\x11\342\x82\254\xc5\xbe\4\xc3\270\303\242G:<Q\xe2\x84\242\x2\xc2\xa0\22#\303\203\35\302\xa8\xc3\x93\303\207\302\xb4\xc3\xbb1\xc3\x8f&tz\xc2\243\xc3\241\x1e0*\1J=\xc3\240'\x3\21\xe2\x80\xb9J>\2\xc3\x98\xc3\x9f\xc3\207\x68q\302\xa1\302\215\xc3\x90\302\245\x12\xc2\252\20\xc3\xa0\x16\302\201\10\x9\342\202\254O\x2\30\x12\xc3\200\xc2\242\5X\303\264F\xc2\264\4\303\xa0Q\302\x8d,\302\x81\xc3\200\303\x8a\x2\303\x90"\x1\269\342\200\x98\302\256\2p\x14\303\244*\x6\303\2606\xb6A'\xc3\275\2,y\xe2\x82\xac\xc2\x9d\x1cI\23F\342\x82\xacR\xcb\206\302\263\24T\313\206\303\x8f\xc3\xbd"\xe2\x80\235\xc3\267H\303\200R\xe2\200\232!\x17\xc2\264j#k\33y\x2F\303\200\342\x84\xa2\303\xa0e\xe2\x80\230\xc2\254z\xc2\243\303\xab\36\xc3\xa9\x19\303\x88\303\xb0G\x12\0\305\xbd\x4p\302\243\342\x80\260\34aJ\x5`\xcC\303\267\x1i\303\271@\xc5\223\x5T\xc3\267\x1f|\xa\342\x82\xacI\x2x\23\xc2\xa3K"\20\302\xad\x6\302\264*\21\xc2\xa8\302\215Tk$c\32\xc2\263\xc3\xb2\xc3\x86\342\x80\x9daA\x1e\1h\x11\xe2\202\xac\xe2\x80\x9c!\302\xa0"\x1f\303\xbaE\0O\x2\xc2\x90\23d\303\x84Sx\303\xb2\1\x14\xb\0T\2\x9\xc3\266\0\342\200\232\xc5\xbe\303\240!F\xc3\234\xa\xe2\x80\231U\xe2\200\234|\xe2\204\242#S&	\x9IvL"\342\x80\x9d\xe2\x80\x9c\x1c\xe2\200\246\303\xa4\3$h\303\220\303\x88\303\x9eEA\xc3\257N$\xe2\x80\x94%\x1%\303\271/\xaP\xe2\200\2401\305\241\xe2\x80\x9c\xc2\262{\xc2\xa4\xc3\xaf) <\xe2\200\241\303\260\x5\302\240L\302\x8d\302\xa0\x12\xc3\245-\32R1\302\244\303\xa26\342\x80\x98\xc2\xb6\xe2\200\x99<\302\x81@O*\x13\x0J\36@q\xc2\xb9\342\200\230\303\x94\302\xaa#\303\x89\x1f@\23\303\x87\302\2650$\34t\xc6\x92|\xe2\x80\x99\x2]\303\243`\xc2\273\xc2\xa1\xc3\x84\xc5\xa0A]\xc3\250\31\xc3\x8d\303\254P\xc3\xa1\342\200\230\xe2\202\xac\xcb\234C\303\x80p\x19\\x18\20p\23\xc3\222\302\244\0\342\x84\xa2\x16\303\222\303\x857\302\xb0\303\204\xc3\x96@9\xc2\xa9b\302\220m\313\206r\xc2\xb6o\303\x9b\x12\x1cC+\xc3\x99]\302\xa5J\x10r\xc3\x94f\303\xbc\xc2\266\xd\303\254\2)d\xc2\xa4\xe\342\200\x99\303\221\21\xc5\x93\302\255^h\xc3\237I\\30\303\x8e. g\342\x80\x93\303\x8a>\xc2\245\xc3\x8d\x3\xc3\x97\x148\xc5\222\303\236\303\x80'\xe2\x80\x93H\x8\303\x80f\x3\xe2\x84\242rJ\303\x92[r\303\xa7o\xc3\243\16\xc2\xa5\302\257.\302\xb9v\342\200\x9e\31\302\xbd\303\257#\xe2\200\236#yR\302\267+\302\xa9y\303\x8b\xc3\x96^\303\xb2\xc3\xb9\26\xe2\x80\xba\xe2\x80\xa0F\x0\303\xa1\302\261\302\x81\xe2\x84\xa2\x2]!\303\211\xe2\200\xa2\303\222\303\x9e\xe2\x80\235++\303\231_\xc3\213,\302\xa9\x0<@\2\x1\342\202\254M-\x2\302\244\252W\303\xb2\xc3\xa2\x1\303\x99R\xc\xb,c\342\200\242\305\222\xc5\x93e2\303\204*@\x17\0\303\xaa\x12P \342\x82\xac\303\202c\302\260a\x10\10\xc3\x87\\31P\303\201\xc5\240\313\206O\302\201\xc2\xa0\303\270`I_2Qs$\xc2\264w\302\243\xc2\277=\21:\37\303\216z\x0)\303\214`\xc3\x8c\xb\3h\xc5\xa0\303\x82\2\342\200\223\xc3\201\xc6\222\36\313\206\7\303\xa7\xc2\xa2\xaJ@@\303\x8a\302\xab\342\200\x93\0\305\xa1\xc3\270\6 6qT\xc2\xaf\xc3\245\342\x80\2414\x1J%\342\200\242N-\302\xbam\xc2\xa4\xc3\x84\303\245\303\xa3.\xc3\211\342\200\271%*c\10n\x2\303\244\xc3\213N\xc3\2476"\xd\303\x8d\xe2\x80\230\xc2\270\xc3\xb2\303\xa8\xe2\x80\224\xc3\xbb\305\xa0f\303\222A\x19\302\xb5\303\x81\xe2\x80\x9ep\303\265M\xc\303\x9b\342\x82\xacI7\0\342\204\242M\xc3\x88>lO\342\x80\2724\303\x85S	7\xe2\x84\242c\303\x8d\xc3\254\342\x82\xac"\2\xc3\xac\303\x9f\302\247\0\33\xc3\xa5\xe2\x80\x9c6\xc3\256ps\xe2\x80\246\342\x80\x93\303\x84\xc3\x9d\303\245y.\302\xb4\303\xa3\x9\xc3\xb2\36\xc2\xa6\5\36\303\261R\6K\10\303\260\35\xe2\200\xa2P\16A\10o1F\303\x82tI\xc3\x84b*\5\xc3\211\xc3\201<\xe2\200\xa1\302\xa9\303\xbd@\302\2767\303\220\27\xc3\213\342\x80\232p,\303\xaf\xc2\2350N\xc3\205\xc3\xb7:\302\240\xc2\250N\302\262m\xc2\xa0,\302\x9dxO%\xc3\xa8\x13!\xe2\200\x9a\x5\303\x9av\xc2\xb3\302\xa8\xcb\x9c\22\xc2\xa0gz(\xc3\220\x15M\xc2\264\x5\303\263\xc3\200I\x1\x17\xc3\203\303\240\x13	\303\240\xc2\x81~y\303\x8b\xc3\266\342\x80\272h\27\x0U:\xc3\xa9\303\230OZyA8\302\235<2\302\xa7\302\xb2\3\xc3\xb0\302\xb8\4\xc3\x8aus\303\236~l\xc3\xb2\303\x86\303\216E\xc3\xb0\xcb\x9cO\34\xe2\200\x9d0\xc2\xb1\305\2700]'\342\200\246>\xc2\xa1\xc3\x9d\x4\303\x89\xc2\x8d\305\222:\x3\xc3\234\xc3\252\xc3\x85\x1b;\302\xb0/\xe2\202\xac\xc3\202w\303\222\xc3\xb4\xc2\x9d\xc3\xa4\303\xac'~\x1b3G\xc3\216\342\x80\223~\303\223\xc2\255\xc2\x9d\xc3\244\xc3\276\xc2\247c.\x9\xc3\276\xe2\x80\236\xc3\xb2vT\x0c\303\x98t'\xc3\x93;\x2P\302\262$\x5\xc3\200$\303\xb8\36\342\202\xac\xe2\x80\x9a\x2\303\220-\6\342\x80\x9as\xc2\xb3\xc3\262e|\xc2\xba!\342\x80\xa2@d\xc3\220Obw\303\223\303\246c\xc2\xa2\xc3\265'\303\x93@`\21P"x\xc3\xb4\x3\x10\302\265\303\xa8\36\x13\xc3\x800O\342\204\2425\xc2\xb4/\1|\303\243U{:\24b\x1a\xc2\251R"\xc3\2730\xe2\200\246\16\303\x91\xcb\206k\x10\xcb\234\303\220\303\242`BD\xc2\201\xak\342\x82\254P\302\235\xc3\xa3c\302\251\xc3\xa14\xc3\244^\3 \x14\6p6S`\302\x8f\303\234$\303\xab\xc2\220f\x1;\x6\303\x8e7\1\302\265?ls\xc3\205\x1b\x19\xc3\200\xc3\237\xe2\x80\xa0gD\303\x8a'\x1d4Xja	A\xe2\x80\xa1\xe2\x80\xa6\27E%\xe2\x84\xa2	86\x3b\34\302\241:\x6q\30r\xb
\302\261]C8\x15\xc3\212c\xc3\200\25F
'\xc3\221\xc5\222f\x2_9\xc3\x83%(\xc2\246\35\xc5\241*\342\x80\235~\305\240\xc3\xa3iS\303\xa8\xc3\233\xb\xc2\x90\xc3\x89@\27(85\302\240T\xe2\x80\235\303\x8b\17[\32\xc3\276\xe2\x80\xa0J\x10\303\232\302\2154\302\x81I\342\200\xa6\x17\23l=\302\260\x1e\305\xbdQ\xc3\x9c$\x16d\xc3\x80\302\256h\xc3\244@\32D	\21-\302\201\xc3\231!\xc3\274_]\30\303\211\303\232H\342\200\x93\xc3\x86\305\xa0\342\200\235k6:\xc2\267\xc3\232\303\xb2\\32M-\xc3\214\xc3\230\xc3\xb0\303\262\xc2\xa3
\24\3\xe2\200\x98FJ>
.\342\200\230\xe2\x80\x9d\2q\xc2\x90\xeeG\303\xba5QZ\302\x8d\302\264\342\200\240\xe2\x80\271\x1d'\32 \303\211\302\xa2\305\xbe\302\xbd\302\220\5\2\303\x9b\302\x810\35\305\270\xc3\xae\xc2\x81zP\342\x80\223\xc3\xa0#\303\205\x1a\xc2\xa4\xc3\xb8\xc3\266\303\226\303\251\27r\xc3\xa0\303\x92\303\255\177t\xc2\275\342\200\x99\303\x92\303\x8f\303\213\xc5\275\303\276\305\xa0<Q\313\x86\xc2\217T\302\xb8\xc2\xa33\xc2\217D\\xc2\271\xe2\x80\x9e\303\x84\xc3\x93pOE\7\302\xa6\5%)\67\327\x17\xe2\200\x93Wt\302\235[\xc2\xba\303\264@\xc2\274\7\10\x14\xe2\x80\xba\305\xbd\305\xa1$F)\302\2755\x6qG0\302\253-\xc3\221W\xc2\xb4v\302\xa2`\x13\303\xa8\302\xb0\x1e*)R\x1ar\xc3\x95\5\xc2\xa8=9\16qE*K\5$g	\342\200\232\3\xc3\xadA!\303\xa5PjBT:\342\x80\224K\303\273\302\247\302\x8d!\303\227\303\267H\342\200\x9c R0?\xe2\x80\2366\xc2\xa4yA)B@:Q\342\x80\2368B+J\36\302\2155U\30]`\342\200\236\303\222\302\254\302\x9d\xe2\x82\xac:\xc2\243\303\260\303\xa5*%Ip9\xc5\222\xc3\x8c\342\x82\254\x14\303\277\x1b`KcQ\303\272Q.B\xe2\200\235\xc2\xb1Ltb\xc2\xaa\342\x80\223yJ\303\261\xc2\x9dE\xc3\xaa\342\x80\272T\xc3\251\302\245\xc3\2657\xe2\x80\xa2\303\x8e\303\xb6Am\303\223\303\xa4\302\242\342\x80\242K\x11u:\305\275\303\260Sji\342\200\x94 \x45.q%Li\1F\xc2\xba\xc5\241Tr\xc2\246\xc3\x80i\302\251\303\x95K\313\206\303\222\xc2\xa8z\342\x80\x94\245\xf5T\3%U\xe2\x80\xa2\342\x80\xb0U\xc3\232I\xc3\x95\342\200\232\xc2\xa6\xc2\265\x7\1\xc3\225Y"
S\xc3\225m\xe2\200\xa0\303\x91\26\xc3\204x\302\250\302\xbdCh\xc3\xb7NZ\302\266UZ\xc2\x9d\342\200\235\xc3\204( B\xc3\252\xc3\264$Y\xc3\x8bV\x19\x16\302\262\303\xa3\xe2\202\xacu@\303\250\xe2\200\x9d\302\xbb\342\200\231\xc2\xaf\20\302\xa2\xc2\xaa|\36\x10\x19	\xe2\200\x9a$\0\303\277\10\x0\xc2\240oZw2\303\x92\xe2\202\xacx\3\202\342\x80\x98\xc2\x9d\xc3\xbbk\xf$\xc3\x81*I6I\303\x92n\xe2\x80\xa2\302\240\342\200\242\302\241\306\x92\25I,\xe2\x82\xac\xc3\x86QU4\x17\xc3\274
\xe2\200\x9e\x3\xc2\xa2).\xb\xc3\xb8Q\xc2\x90\303\xb4\303\226a\34I\303\241]\xe2\x84\xa2\303\200\302\xa0\xc3\xa8L\303\242h"\303\270f\302\xa2\303\223\27\xc5\xa0>\313\234:Z\302\245>L\xc2\xa1\x2`n\xcb\234\xc3\230\302\266\303\x95\303\xac7\x12\342\x80\235VLZu\xe2\x80\x9d\20\xe2\200\xa6e\302\250\303\xabX\xc3\xba\xc3\250\x14\342\200\xa0\xc2\xbaB\302\277\xc2\xac\xc2\245B\xe2\200\xb0\x1a\302\xba\342\200\231\302\241\x16\302\220Z`;\xc2\256\303\270\xe2\200\xa2J\342\x80\241]\xc3\262\xc3\x91\24\342\x82\254\xc5\276\x15\303\244S8\302\xbc\xc2\xabf 
\303\x9a\302\xb6\xcb\206#$\2\x10\x3\xc3\271j\24M(\302\271\342\200\x98\303\236\xc2\241\342\200\x9d\xe2\x80\x9e\302\xac\302\235a\x18\302\xad\x17G\xc3\255\xc2\247\xc3\214+A\303\275!\xc3\250xL/\21\0)\x9\1C\xc3\266\2\xa\303\261W@\xc3\2514\302\x90\xe2\x82\xac\302\272\xc\302\217\xc3\241\303\x9b\xc2\251\xe2\200\242 \xc5\xa0\xc3\224RZ\306\222\xc2\256\xc3\242\x3\xc2\240=\20\313\234\24\303\x87\303\2568\342\200\x9c`\xc2\xb28~\xc3\xa2\342\200\240\3h\33\303\x80\303\254\x6P \302\201\xc2\xb0
\342\200\x93	\xc2\260\30\305\276\303\xacD-FyX\302\xb0+\xc3\x8af\xc2\260QSj+X\303\263|\xe2\200\xa2\303\2109-\342\x80\231\x17\303\xb8s\xc2\xacx\35\302\x90\36\xc3\x98\303\274\xe\xe2\x80\240\xc3\252+\342\200\260V\303\x89cbp\xc3\xac\xc2\xbf\342\x80\x9do6H\16\xc3\220q\302\240\302\260\x4\302\xb3\25\33\xc2\xaa\303\x88@.\342\202\254\313\x9c\x18l\302\2408g\xc2\275YM\305\270\xc3\x96WMP\x1c\xc3\x80\302\xaaU\xc2\xa1\xc2\267YL\303\2373Pa\xc3\xa8\xeH\x1a2\303\2209\302\xa9\342\x80\x9e:\xc2\xb6a\302\xb2`\xb\xc2\254\xc3\206d\2\x1b\x0\xc3\xa0\x7&\xc3\xaa\302\xb2Y\17\xc3\xac\303\236Y0\36\xc3\231\xcb\234\xc2\xa1\302\xb6S\xc5\x92-\xe2\200\224\33\342\200\231%;/\342\x80\xa1T\xc3\235BS\302\xb3P\33\xc3\224%f\xc2\220\xc3\230\303\232\31\xc3\xbd\x6\x16\27\342\200\242\302\240@\303\x9fF\x16\xc3\xad\302\254(\xc2\264\xc3\x96\xc2\x8d*\303\221q +[\20\xc6\x92Z:\303\x92\x5Q\26Y\x17\x0\xc3\x9e\xc2\264\303\253J\7UY\xc3\x96\xe2\200\234/\303\xbd\302\xa6\xe2\200\xa0pkz\xc3\x88\xcb\206\1\xc3\262\342\x82\xac,\302\264\303\260\302\xaa\342\x80\241\xc6\222j\303\x9a\xc3\xaa\342\x82\254\302\245W\xc2\xb0\xc3\x97\302\264e\xc2\xa9J\xc2\xb5F\x11\xc3\xa8\xc2\215\xc3\275VBI\xc2\265
\xc2\xa3\303\x86pF\342\x80\272N\xc3\231\342\200\x9a\303\x96\302\266\342\204\xa2*\303\x95\302\250\303\x8d3k\303\2320\302\247D\17\xe2\x82\xac{\26\xe2\x84\242\xc2\x81\xc3\224\xc3\xb8`q\342\204\xa2\xe2\x80\xa2\303\x92\302\262Bq\xc2\265e\xc2\245D\xe2\200\xb0\20\xbc\xc3\232\xc3\232\303\x94V\303\203\x3E\xc2\251\xe2\200\232\xc2\254n\302\201\303\261\xc3\227\xc3\xa4FG\xc2\xa0E\342\x80\xba>j\303\xae\xc3\250\303\x90\xc3\xba\302\2010g\302\264a|\302\xa1Sh\xc3\xac7\x1bu\7\xc3\202\xc3\235\342\200\236\xc2\215$\xe2\x80\242\342\200\xa0\303\xac;a\303\264\xe2\200\x947&\x3\302\241\303\xab\xc2\260R[\x3WX\xe2\200\x9e\xc3\x8a\xc3\230(q\xc3\x96#\20\xc2\x9d\xc5\x92\xc2\254P\xc2\xb9\303\206\303\xa4\303\x97\342\200\x93\303\235c8!\xc2\xb0\17H\xc2\270\x1a\303\240\303\x98VX\302\247\xc3\204\305\275\x12\302\xad\30j\303\xb8\x1a\303\212Z\xc5\275\303\xb4\342\x80\x98\xc2\xa1\302\245\302\260Q,DUaQ\302\xb1X0\xe2\200\x98\303\x95\xc3\225\xc2\xa8\303\x80\303\x9d\xc3\213\x3Gb\xc3\201\303\234l\xc5\240B\xc5\240\x2t9-\x1doZ\303\xbc\xe2\200\x9d\302\x8dL\xc3\xb7\x15\xc2\xa3\302\245\303\x82\xc2\xad\xc3\245p\xc3\x8b\xe2\200\241\xe2\x80\230x6&\xc2\257\302\257My\303\224\303\x8fs\xc3\222\302\220\xc2\277\xe2\x80\x93\xc3\xa8\4\303\260"\xc3\x95\303\x8d\xe2\202\254\303\xa8R\342\200\232IWU`c\xc3\267\302\260\xc3\240}l<\34\x1b|\303\x82~\xc3\204w"\302\267\303\260vI%r+\302\201\342\200\271R\303\xa0\xc2\266\xa\\303\230\303\xb9\303\203\303\221][\xe2\200\271\303\x916\302\x8f&\303\201\xc2\xb8\xc3\235\303\210\xc2\255\xc3\x83a\x1a\342\x80\x9d\xc3\x93\302\xba\303\254\303\x85j\xc2\271(\303\232\xe2\x80\234\xc3\xb0T\22\xc3\221\342\x80\x9c\303\200\x7\xc2\267C'\xc5\240\1\342\x80\246\xc2\xb4\7 \37'%de,\32\xc3\x88
\342\200\223FC\xc3\205\303\221\xc2\x8de9C\xc2\271N\xc3\244\303\x90\xc2\215\xe2\200\x9a-\206\x6\xe2\200\x9dUe\xc3\210\302\265\xc5\x92\303\xbdCX\302\xb6\23\303\220V\32\302\xb1\306\222\xc2\235\xc2\xb9\xc3\275\303\234+\xc3\x94R+\xc2\xba\33\303\x98\x7\342\x80\235\303\x8b\3\342\200\xa23B\303\234\x18\xc2\201\xc3\x9a\xc5\x92J\xc3\xb0\xc2\242\xc3\xa8\342\204\242\305\x93\xc2\xb1\303\246T2\302\xa0\x14]\303\254\16\x0P\2\xc3\xa8a\303\207t29\xc3\x8f\303\x97(i\342\200\271#\x3\xe2\x82\254a\303\x86\xc2\2561"S\xe2\x80\xa6:\xc3\xb6\302\267\302\xa0\x18\xcb\206\303\x96oF)k\303\231\xcf\303\264\303\xb2\303\x84\x1a\303\x90\302\xaa\0\303\216\x6\303\x93\xc2\277\x1b\303\276\xc3\225,\303\213\10\303\225w\303\252\xc6\x92J@\xc3\xac\xc3\x96V\303\xb2\xe2\x80\x9e\305\275\xc2\265\303\xa9q.e}KmZ\303\xba\xc3\x9b\303\257\303\xa5\xc2\xb9X\31nZ\7{G-\x1a\xc2\273\xc3\xb7\303\225ZQ\302\xba\302\257\xc3\x87}\342\200\230\303\x85\303\227\xc2\266\xc3\xbb6\xc3\x89\xc2\270\303\xb0\x19\x8\302\265\x16\32\303\204_\xc5\276\303\230\302\201\xc3\x95\xe2\x80\260\303\xa0\xa\x8\303\x96@7\x4\303\237` \xc3\x95\xc3\xaf\342\x80\xb9\xcb\234C\0]_ \302\215\x15\302\251\303\212\xc2\265\xc3\xb9\302\254\xc2\253\16\xc3\257\302\273}\xc3\273G\x1b\xc3\201WW:\x3 fCYk+\xc3\251\xc3\232b\xc3\233\xc2\xb6\xc2\267\302\246\xc2\xb52\25S\177,\x9\xc3\x9a\xe2\x80\271\x3\26\xc3\x9e9\342\x84\xa2\0\303\xaf\302\xaf\302\x81+\xc3\xbeW\303\204Z!\31\xc2\257e\303\xbe\302\2602\6\303\273\303\264\303\240\342\200\xba\3\xe2\200\224\303\xad\xc2\xb2\x8k.Oc\xc6\x92\25\x1\xc3\226(v\303\x8c\xc2\2568\305\223DeG`\xc3\x9b\342\200\241\xc3\202\305\222\xc3\266L\302\xb1\xc3\265\xe2\200\x9c,\306\x92d\303\x8b"C\303\212\303\210\xc3\226B\177-\xe2\200\x9d\xc3\204\302\xb0\x15(\303\276\342\200\236\4\xe2\200\x9e\xe2\x80\x9e\x12p\303\xb7\303\255\303\223p\xc2\xb1=\xc3\xa0\xc3\x99\xc3\xbc\302\xb6\x5!\303\275k\xe2\x80\231\303\230\6\xc3\222\xc3\204\x8\xc2\xbc\4\303\257}(\303\275\303\221\303\x8aB\342\x80\223kr\302\x8d\x8_R\303\256\342\x80\224\xc3\x9c\xc2\xbc0\xc5\x92\21\208a%\xc3\x9b\xcb\234L\3	\x10\0\xc3\251\xe2\x80\240\303\x80\xc3\xb1\342\200\260\20b\302\245\32\302\xb2\xc5\241\xc3\261\xc3\x85\303\276\x4@\xc3\x97"\xc3\x91\x16\xc3\x8fr,\x1d\302\xb5\310T\xc3\233rV>\313\x86\342\x80\246\303\232\33\303\x88Q\305\270\303\x90\x2\33"\xe2\x80\242r\xc3\x9e\xc3\267P\26\x1b\xe2\x80\260\27&3b\27\303\xa1P\302\xb2\xc3\xa6\30-\xc2\240x\342\200\232\303\x92\x10\302\261uW~\302\215"\xc3\xbf\x2*\303\xa8\xcb\206\305\xbe\xc5\222\32N\xc3\242h\342\x80\224%7\xc2\262\10\302\265\35\xc3\276K\xc2\241Y\342\x82\xac\xe2\x82\254^A\303\267\xc2\xae\xc3\272\303\x8aC\xe2\200\x9a\2\303\xa8\xc3\276\xc2\xbbp\302\xa3\xc3\xa1\xc3\256\1\xcb\206\34\0\xc3\260\2..\4\4`c\303\x85\xc3\246+\24\303\217\305\xa0\xc3\242GJ\xc2\243\x14\302\xa4\xc2\xb8\x3H\302\xbf\303\x80\xc2\256E\342\x80\232\x3\xe2\x80\246\xc2\xa4\xf\30\302\276l@|I\35#A\x1cc\17\x8\303\242\303\277\x2D\302\220\342\200\246|+<[c2\xc3\x9c+*WS<\xcb\x86r\36\xc3\xa0\31\xc3\xa3g\x4\xc2\270\303\233\xc3\x85}\342\x80\260\xc5\240>\x6i\x10\xc2\201\xc3\x9d\xe2\202\xac\302\201!`f8\xc3\xb1\342\202\254(c\xc2\xa6\302\x81\303\xa8\303\x89Q\303\xbd\x12=f\xc3\xb1\xa\x2\xc3\xa72\x4\303\x91c\302\xa3h4\342\200\x93+q\xc2\235\xc2\217\xc2\201\x16\x48\xaa\302\267\24R\xc3\xa3B\26\2\xc3\x9c|\302\260R\342\x80\x9c\xc3\227\303\xaa\xc2\xbf\303\235m\xb\xc2\xb5\305\240\q\303\x9a\303\xb5gX\x1b\xc3\x80\302\240\342\200\223\xc2\215\303\x8f\305\xbd0\303\244X\xc3\244\xc2\xab`n\1\xc3\xaeF\xe2\x82\xac\303\xae\6\xc3\254\305\222\4O\6 p\303\210\303\256H\xc3\xb2C\306\222\xe2\x80\235jd\302\xa1f\302\265\xc3\x9f\x11EuDV\xcb\x9c\xc2\220\x14bJ\303\211\302\246\30\302\xbf\xc3\xa5:\xc2\xb1\303\xaf\xe2\x82\254\x3\x7f\\xc2\244!m\xc3\x89\302\xb1\32?,TIa\xcb\234\x1e\x1c\xe2\200\xa0\xc3\x98aT.L\342\202\254]\342\x80\x9c,J\302\217\xc5\x92?\342\204\242?\21\10\x18\xc3\x8f\17\xe2\200\x9dFMct!a\303\x99\302\xa7R\xc3\252F\xe2\200\236G\xc3\260!\6\302\271A\303\xb5\xe2\200\x9c\37\302\273rr\xc5\222-p\305\275X\305\xb8\x12\xc2\xb7\xd\37\xc2\273\303\262C^\34\xc3\x807\xc2\x81\xc3\xa1\303\xb0&\xc3\xa3\30R\303\xa9\x0\xc3\x8e\x10\xc3\221f\xc2\xb2\xb*\303\xa0A\xa\xc3\xb5\303\225\xe2\x80\xba\x2H\xc3\xa1\303\xa3\xc2\244y\xc3\xaeY=\303\207\303\xba\xc3\250\xe2\x80\xa6l\x15\xe2\202\xac<\xe2\200\241\xc2\271A\303\x84_\xf\xc2\271\xc3\250	\x1a+\342\x80\230\303\216\x16\x12tA\303\272\x10\0B\x2\342\200\xa2<Ay\xe2\x80\246(fy\xe2\x80\xb91\xc3\x8ec\xc2\247O;p\xc2\235\xb\xc3\xa8\303\x85\303\xa1\302\246\302\x9d`\x1c\xc3\xa7\342\200\x994\xc3\220\xc2\241M\303\254\5\303\240*\xc5\x93\303\xaef\342\x80\240\xc3\xaa\6 5fvy {?\xc2\xa9\xc3\240\xc3\213:\x17y\xc3\xb8\xc3\x91\x8^c\303\242\xc3\215u\xc5\223'\xe2\x80\241\342\x84\242\xe2\x82\xac8\0\xc2\xb1\xc2\274\303\x93\302\xb1?\xc2\xab\16\305\240g\305\241\303\x93\x17\342\200\241 8B\xc2\215\303\x8e&p\17\x8\69\303\x96O"z\xc3\207\303\265\xc5\276\xers\342\x80\223\x170\xc2\272\xc3\xa6B\342\x80\x98!u\xc3\x8d3\342\204\242\x10f\27{\303\227\0\302\243:\xc3\201\16\xa@\x1b\0\xc3\x9c\x14\xc3\200\302\243\302\201p\302\x90\303\x99\303\x866\303\xbev\17.;\xc3\240\303\272\xc2\xa9\342\200\236\xc3\212b\xc2\xab\xc3\206\302\xab:J>\x7\303\x8b\342\200\232\342\200\xb0\303\xa9-\xc3\x83B\xc3\x8fhkR`-\303\x9c\xc3\261\xc3\216\303\260\x6aw\x1\xc3\246xEj\x15\20\xc2\251\xe2\200\xa6\x1e\303\xb7\303\201r\305\2768\302\270\x0\\x5\xc3\x81\303\xaf\x1\303\xb4\4\342\x82\254\\3\xc2\xb8Uhm\xe2\200\272 \xc3\275(m\303\225H3\303\214\xc2\xb4\xc3\255\xc2\247S\342\204\xa2\342\200\234\xc3\201\303\246q\0\xc3\xb9\305\270NVh\xc2\263Hy\302\x8d	\342\x80\x94\302\2735\xc3\243M\303\215\xc5\xbde\x1d\g\302\xbd
\303\247IP:\31S\26j\302\246\xc3\233\302\xa1\xc3\x99\302\xb6\303\250\x7f<\305\275\xc2\257\303\x91\x1ex\xc3\263&\xc5\x92L\303\232\x18\302\xbf;nf\xc3\x8d\xc2\xb6c\xc3\263q\xe2\x80\272\302\xa6$f\303\260&l\xc3\xaf\xc3\x8d\xc3\276i\302\xb3\xe2\200\246\xc5\223\xc3\xa0\27\xc3\2470%y\303\216\xc5\xbe\xc2\276t\x2\303\xac/\xc2\271\303\xb7gU\xc3\x8c\xc2\263\xc2\254\x14d\xc3\257\0e:\303\x83\xc3\214h\24\303\xafZ\x9\303\220^\306\222@\303\247\302\240\303\275\x131\342\202\xac\303\x8fm#\xc3\x91N\302\x8f\303\xb3w@\305\x92\303\237O\303\260\xc3\xb0zG\303\x8e$\303\262\302\250\302\246\x17m6\303\xa96}\303\x99\303\222\303\222\xe2\200\xb9\305\xa1X'\302\xa5I\xc3\227i\Q\302\272Y\302\235\xe2\x82\254\302\2704\x11k-.\303\xa8:yz\x10\xc3\221\303\x88\xc3\235H\302\xbf\xc2\246]\xb\xc3\xa6\xc3\xa6x\303\245G\xc3\217\xc3\x96\x7f3\xc3\xbc\302\xbfM\x0\342\202\254\xc2\xa3@z7\302\242\36\342\x80\236\xc2\2636\302\246-DO\2734\3\302\x9d\xc3\236\342\x80\xb9\0\xc3\x8e\xc5\241\xc3\204\xc3\271\303\216\xc2\260\xbt"\303\x8e"vC"\x17\x1dJf\303\x8fR\xc3\x8a\305\xbe\xc3\x94\xc3\272ku3\342\x84\xa2\35M\303\216\303\246~\xc3\272\xc2\244\xc3\x93\x6\305\2755V \303\240\342\x80\x9ej/3\xc3\272\306\222\xc3\x93\x8@gG\xe2\x80\xba}D\xc3\251\1\302\276\xc2\272B\303\x93Nq\xc2\xb4\xc3\231=]$\303\xa9\xc2\277I\342\200\xa1\xc3\xb5\xc3\223\305\xbe\xe2\x80\2353\xc2\xa8x=_j\xe2\x80\xb9X\303\x99\302\xa8\302\235fk(\x13C]^j\xc3\231M\31\303\x81\303\215F\xc2\xab\xc3\x95\xc3\225\302\241\305\222\303\xa0\xc3\x8f\xc2\243Cz\xc3\x88\303\x92V\xc5\x93\x2\303\x81=]&\xc5\xbe\xd\302\264A<\x9\303\xa6\302\265\303\x82\303\200\7\303\x9c\xc3\243\33\303\xa76\x1a\xc3\x99\303\x94\302\256\xc2\xb6\303\x97\xc2\264\36\xc3\x9d`jk7:g\303\x8d\303\xae\xe2\200\x984\xc3\225\302\xae\34\xc3\xa1\303\xab\342\200\x9cYZq\303\x96ftu\xc2\235|\302\x8dh\1\xc3\210\16Z\xc3\222\xc3\x926\xc2\265\5\33\xc2\xadi\xc3\243\xe2\x82\xac\xc2\2600\xc2\xa0?\1\303\251\x4\303\xb5\303\251\302\xaa\302\xad{-7_:\xc2\260\xc3\x97\xc3\236\302\x90t\303\x91\xc2\xaf\303\255ck\342\200\271`Y\xc3\215\303\x98&\342\x80\x9c\302\264\303\xa9\xc2\235I\303\xb5lP\xb`:\x3\xc3\xad\x6\303\xb4 j\xc2\255{h\xc3\xac=\303\220f\x9\303\240\xb\303\x83[by\x10\xc5\xbe\xc2\xa2\303\x8a\xe2\202\xaco\x3\xc3\220\342\x80\271B\302\xb0RS\342\x80\224\xe2\202\xac\302\274B\x1b6\16\xc2\260\34\303\200^\x4@'\302\x814\x5\303\246\303\xb81U\4\303\233D\37q}\303\254\303\203N\303\x9a(X\xc3\xb4\246j\x7}\302\xacc\xc3\240\6{@\x38\xc3\243\xc3\262\2\xc3\260,\x13\xc3\200\x9\xc\x13\303\x8fPFC\303\xa0\x2\xc3\xb0\21\xe2\x80\xb0\x1eB\303\xa0$m\x10v\313\234\x7\302\235\302\250P\xc3\xa6"\302\272\xc3\233L\xc3\266\xc3\225CS\302\xb3]\xe2\x80\272\302\x8f\303\x9d\303\240E\x1f\xc3\231\303\236\303\x8flU\xe2\200\xa0\303\221f\xc3\255wh{o\302\x8d(\22\xe2\200\x94\303\244\x6\x10)\xc3\xa8\x0@*a\x31G\xc3\x84 (\302\xa0\x17\302\x81\x1eD4-c\303\x98\23\303\263P8\302\x9d\302\243N|R\xe2\x80\xba\xe2\x80\240\10\6\xc3\242VM\xc2\xb8\xc2\260\303\227n8G`e\1}\342\x80\x9e\2\x1c!}\xc2\xa5\xe2\x82\xac\xc3\207p\xc2\273\342\x80\xa1\303\234\xc3\262\xc3\xbd@_\302\270\xc3\215\xc3\221nCt\xc3\202\x169\305\xbd\xc3\x91\x0]\xc2\xbbu\xc2\261\303\256\302\257s\302\xbb\305\xa0\303\x9d~\xc3\xa8r\302\247\302\xbb#Cn\xc2\240p;\xc2\267%\xe2\200\xb9>wu\xc2\270\302\x8d\xc3\x9en\303\x83w\xc3\xbb\302\xa4\303\x9d\305\xbe\303\xaa\x2.\7\xc2\x9d\303\242\34\34\xc3\xa0[\303\x87\xc3\x9dhT\303\267{\xc2\270\xc3\x9d\xc3\245\342\202\xac\xc2\xbc\x9\303\xa7\xc2\xa8\303\x8b\302\201\xe2\x80\241\302\xb7J\303\260\xc2\x8d\303\x94\303\x86\xe2\x80\x94i\33J\xc3\2126\303\246\xe2\x82\254O\302\276=\xc2\241\x7\342\x82\xac\xe2\x80\xa1\xc3\273\xc3\246\303\237E\xe2\200\x9d\303\267\xc3\231\302\xb4\xc2\x90\27\xe2\x80\230Im\xc3\x9b\xc3\257\xc3\232V'\xc3\x89\35\302\xbf@\x17\303\242&\xe2\200\232{\xc2\xaa\xe2\200\x98\342\x80\xba\303\262\303\xb6\xc2\xaf\302\265\xc2\220;\303\255op;^\x2\xe2\200\x93\303\x986\303\205\xc2\266@2\303\xa7\xc2\xafl\303\xbb\xc3\224\303\x9eN\303\257\xc2\267\37\xc2\xbaM\xc3\211\1\302\xbfr\xe2\x82\254_\303\x9c\302\260\303\x8b\303\x83\302\215\302\264` \xc3\xac(\xc y\303\2376\xc3\2477\xe2\x80\230\xc2\xb9\303\xbd\xc3\xab\303\256\xc3\x87\xe2\200\x9a\33\342\200\234\26\302\217\57/\303\x81p\x17\xc3\260e>|\x1c\303\237\303\xa0\x9\xc3\xb8=\302\xbd]\xc3\220oc\xc2\201\xc3\273\342\200\x98\303\241&\303\xa5xNm\xc2\x8d\302\xa3\xe2\200\xb0\303\xa7\306\x92\302\xbb\302\xac\303\240o\xc2\267G\xc3\x83N\x9p\342\x80\224\342\x80\232\xc2\xbb\xcb\x9c\x1x\21\302\xa8\xe2\x80\xa2\xc3\x83\302\275\303\235\303\xb0\306\222y\3\303\240\xc2\217\x4\xc3\270\xe2\200\xa1\xc3\x82\342\202\254'\5\xc3\226I`r\303\242G\7\xc3\xb7]\xc3\204\xc2\276\37\303\xb17\313\206\7\303\23249\xc2\xa1]\303\x85^\30p\342\200\241{<Z\xc3\241\302\267\x5\xc2\270q4\342\204\xa2u\xc3\216|\xc3\x95\303\x9bQ\xc3\x9b\342\204\242\xc3\xa0\xc3\xb5p\xe2\x84\242\303\275\xc5\241i$\302\xb6@o\x3x\x19\303\xb1_<\x10\x17\xc2\201\303\x80\x5\xc3\2469\20p\xbBU"\05\xc2\x8d\xe2\200\224\177 i\303\244\xe\303\x97\xe2\200\232\302\xbb\xc2\270C\303\xbbp\302\xb4
\x1\1\20\xc3\xb4i@\xe2\200\x9a\7[\xc3\xa3\xc5\x93\303\x864\302\274j\xc3\220\xc2\x81\xe2\x80\2366b\303\246P\342\x80\236\x0\305\xb8&F\62~\xc5\275\xc3\x80\xc3\xb9\xc2\243\302\xbc\xc3\257\x1a\x3U&\305\xa1}\302\xbe\xc2\275\302\x8d\xc2\xbf\303\x89\xcb\x9c\x9\342\204\xa2\303\214Da<\342\x82\xac\xc3\246zx\23\302\266k\xc2\xa3\xcb\x86\xe2\200\271=\303\271\303\261\x15\302\xb0r3\xc3\251\xc3\213(\x14l_\xe2\200\235\xc2\201\x14\xe2\x80\246FeF\xe2\x80\272\xc2\235\xc5\xbe4\x10\xc3\2441\342\x80\x9cK	\\xc3\x93\305\xbdld\3\xc3\256	\303\2441\xc2\201H
\302\275\31\342\202\254\xc3\xb9\x1bp!\342\x80\240\22%bG\303\246Xf\xf\xc3\x8c\x4\xc3\200'\0\xc3\210\17\xc5\x93\xc3\x98	'6\303\x80\305\276\x4p\31s_\xe2\x80\272\303\xa1$?0\24\x0\xe2\200\x99~p(\xc2\x81H\xa\342\202\2541\xe2\200\246W:9\xc3\225\xc3\x8d\302\242\22\302\xaf\313\x9c`\342\x80\271\303\xa6:h\xc3\x87B\x1a\x15\xe2\200\x93\xc3\250\x5g\342\200\272B\xc5\xa0\21k\302\251\303\x86p\7\xc3\x84\303\206\xc2\x81\303\xb3\35\34t\xc2\xbc\xc3\254\xcb\206EBI@<\1\303\262%\xc3\x83\35\31\302\xb8\35\303\200\303\xb9` \303\252\xc5\240y\302\201d\Y@D\xe2\x80\223P\x7\22?\305\240|+!\342\x80\x9e\xc3\241W\6\xc3\x80\303\270\x4.:\7\7\xc5\270\30Le\342\x82\xac\x11v\24,\303\220>q\x18\xc3\xb3A\xc3\x88\3\303\247\x7\302\xba:\7\xc5\xbe\xe2\200\223\303\256\x1c\10bY\303\251\xcb\x86@8\xc5\xb8d>\xfr/)\xc3\x82B\x3\303\2474\xc3\x80\303\x90\7\303\216(\xc2\x81\302\267\305\xa0`|\xc3\251\302\270\x1f:t\x6\302\261!\x12\xc2\xab\xe2\x80\xb9\xc3\201\xc2\250?<\xc2\xaf@\xc3\xb8\xc2\253\xe2\x80\x99/\17\23\302\xa5\xc2\240S\342\x80\x99\302\xafP\x0\xc3\202\4\303\xa0>\\303\xa6\xc3\xa2 |\303\xa93\x2\xc3\257:\x4V\303\221uw\302\xa5\27\x6\303\xab\25\xc3\xa7x\302\260(\xc2\256\302\262\305\270\xc5\x93\174\342\x82\xac\x3\303\x87ZjD\6^\xc2\xb4\xc2\xa5\xc2\246L\303\275'\xc2\xbc\xc3\xac\xc3\x84C[\303\227'\303\272\xc2\xb0\302\247\302\xae\xc3\251j\303\x82\302\xba[\xc2\240E\xc2\xb8\303\263 u\xc3\xa3\xc2\260\x1d{KZ[s\342\200\x9e\35\xc5\xbe\xe2\202\2546\xcb\x86\xf\342\x80\232S\x21\xc2\235\xc3\x8cz%1\xe\xc3\xb5c\xe2\x84\242\xc2\xa3B\24\313\x86B\x1b\2\xa3M`0\xc2\247;\xc3\xa7\xc3\262\xc3\214\xc3\2023\xc3\x90.\xe2\200\235&?\302\xa1\303\xaa!YA\xc3\x80I,)\xc3\xb0\xc3\xa5\342\x80\xa2l\17\xe2\200\xa0W[\x1f'\303\206\303\212I\x10\303\202\xe2\200\241Tj\306\222\302\201\303\xa8\x3>F\302\251\xc2\274\xc3\xb7S\302\247\342\x80\xa1\xc2\xa0B\303\x90\xc2\261P\303\xa1\302\273ca\xc3\xbe\303\x87\305\x92u\xc3\257\302\242N\xc3\235\x18\xc3\217\303\x80\xc3\xb8H\x1e\303\224	LS\xc3\264\302\215\303\xae0\35\342\x80\x9d\303\x95Y`\xc3\202\303\x86\303\x88"il\342\200\x98\xd\xc3\xa7B\302\xb2\xc3\xab\303\xa3\xf/\xc5\x92\xc3\264\303\243\xc3\xb8%P\x18\342\x82\xac\303\x8f\xc3\x9dN\xe2\200\x9dG\xc3\264\xc2\x9d0J\xc3\x86X
?a\xc3\xab!\xc3\x8f\53@M\303\246F&\303\x83\302\xb3\303\226\xc3\276\x7f\1\302\277\302\x90,\xc2\260"\xc3\xae\x1e\xe2\202\xac\303\250\5lb\303\xb4:KJ\xd\303\xaf`k_\xc3\252\35b\x18\303\xb7\xc3\274A\303\241\303\231\xc3\x84\302\xaf\177\xc3\x8c\xc3\2741\xc3\221\xbI,\303\205\xc3\235\x2\303\256\xc3\274\xcb\x86;B,\xc3\x97:\x1\xc3\xb3\32\x2\302\xbe\xc3\xacY%\2\302\274J\302\xa0\xc5\xbd\305\240#v\xe2\x80\x9d\xe2\202\xac\x16\x19'\xe2\200\240{\xc3\237\xc3\x91\303\200\303\xa3\24\xc\342\x80\236\305\xbe\x9wx:
i\xc2\260\302\266\x1\302\263\xe2\x80\231\17}c\303\200\xc2\260eN\xc2\256\303\221\xc3\257`!w\302\235\xc3\x86\0\24\303\204B\37RU#\xc3\x98S\303\xbd!\10\303\xa0\34<`\xe2\200\223\xc2\x90&v\302\xac<\xc2\276&\xc3\xadq\31\x1dO\xc3\x92+\xc3\x8e\xc2\xa3\302\xa5sf\x13L9\302\217Q\303\x92\4B\xc3\x8a\xe2\x80\xa1\xe2\200\x9e\10\xc3\x89\303\xb3\303\244\xc2\x8fb\x11\303\x93\303\xa0_+\303\xaf\302\xab*\xe2\202\254Su>%0\342\x82\254\305\xbd\342\x84\242\xe\302\251\xe2\x80\xa68@l\xc2\261?\xe2\x80\x99L1po.\xc3\204C&\xc2\xbd\303\255\303\x89\xc2\240B\303\200\303\x8a\5qh\xcb\234\302\xa6\xc3\263\302\255\xe2\x80\x99\303\201\x18\305\xbez\0\302\261`1\xc3\xa1_\xb9\303\260"\17\xe2\x80\x93\342\202\xac\303\xa8!\xc2\220$\xc3\xb8\305\x92\xc2\xb6~~-\xc2\261.\xc2\xbc*3r?\303\xb8\xc3\x83\xc2\xb2\303\x80d\2\x7f\342\x84\xa2s\0\x7\xc3\x8c\303\265\302\x81\303\210\xf>z\xa\303\x88\x19\0\305\2400\xc2\xa01\x7\7\303\204~\xe2\x80\230\303\xb4\313\x9cJ\xc3\xb0\xc2\263\25\303\xb0\303\272\342\200\235|S\303\236\xc5\223\303\264\302\xa0k7g\xc3\251\0\xc5\222\xc3\272K\xc3\x94\302\240d\2\302\266\10\xc3\231a\xc3\x89\303\256Pg\x7f\xc2\272%\303\xa3\26w\342\200\234D\xc3\264\303\252zm\xc3\x92\303\xbb\xc3\x88\xc3\xb5\302\267)\302\277\342\200\230\xc3\xb1\xc5\240\35\xc5\223j\xe2\x80\271\303\233\303\227\303\x82\xc3\xbf\x2`k\302\xbb\xc3\222\21\x11\177\302\201Q\xc3\xa0^\xc3\x83\xe\xc3\2161\303\xbc\305\x92\xc2\xba+\xc3\216\303\245\305\x93>\31/\x11wb\xc3\274GwO\17\5k\xc3\x83\303\236\303\223_\303\231'\306\x92\xc2\254-\37CJ\x17\302\270\303\xa57&\302\250\xc2\242\xc2\xba\xc3\xb0E\303\xb1\x0\x1L
>\xe2\204\xa2!\303\217q\303\x8c\302\201\303\256\x1a\302\x90\303\x927\303\235\xc3\x81\302\xad\xc3\xb5o\xc5\xa0\342\204\xa2`9O`\313\x86\xc3\240\xf\306\x92\xe2\x80\235\xc3\xb6+!}\xc3\xb7P~E\303\xa5N\xc3\x88c\342\200\x9d\303\xb6Q\305\270\x7)\303\254\303\xa1#\303\273\303\xaf#\xc3\245\x1f\xc3\xb2\342\x80\xa1\xe2\202\254\303\254\xe2\x80\241\xc3\x8c\xc3\221\x7f\xc3\xb8\303\200\342\200\230\302\241\xc2\xaf\xc3\250J\303\xb1\xc3\x84z\x10_u{\xc2\xb3\303\233K%\xe2\x80\x98\0\33=\xc3\263\xc3\xa1O\305\275X\302\xab\xc3\237\xc2\266C\xc3\271\x8\x1b>\xa\302\262\342\x82\254\342\x80\246|w\303\241\35?\xc3\206\7F\xe2\x82\xac\303\x85\303\xaa\xe\342\200\236\xc3\x95a\342\x80\x93\27\xc3\217\302\251U\302\220\xc3\x99\303\245\303\226\xfb	N\xc2\xa5Y\xc3\xaf\xc3\x89h\305\xa0\xc2\275\xc2\273\303\251\xe2\x80\230/\303\272\303\273)\303\236G\xc3\216\27\xc5\2222\xc3\274\xe2\x84\xa2\302\242K|\303\243\302\xb1\x19y\10/\xc5\xb8\0\303\xa9\xc3\xa4\xc2\277Z\xe2\x80\x9d{\303\251\xc3\x9fP\303\xb7YG\302\244;\xc3\265?Z}T!\303\x9e0\x10\305\xb8\xc3\x95=mN\302\257\xc2\253\xc3\xba\xf\303\x83f\xc3\x98"%4\342\204\xa2a\xc3\266"!\xe2\200\223\303\x9e\305\xb8\xc2\x81\36\xc3\272\302\xba\302\xb5\x0\303\247\303\xb5\xc3\xaf\302\xa9}\302\xbb\xc3\256\37[\303\262\303\247\303\234\302\276\xc2\xb3\303\253bU}\302\273\303\232\342\x80\xa2m\xc3\265\303\x96\x172\xc2\xb1\342\200\xa2\xc2\240\342\200\246\303\xb6/t\xc3\xbe\xc3\256\3\342\x80\x98%\x2#\xc2\x8f.\303\x91\xc3\230\342\200\223\xc3\x84\xc3\xbfse\342\x82\xacB\xc3\277\25p\177&}[\303\213\xc5\xb8\xc5\275\xc3\2077\303\243<a\xc3\xb9K\x13\xc3\275\303\257\303\xb18\303\xa6\xc3\xbaP\35\0\xe2\204\242\303\263\302\xa1\x8g\302\xbc\303\xb2?\305\xa1\303\271,\xc3\x96\0\303\237\xc3\237\xcb\x86r,\xc2\xa0>\302\xbf\305\x92\303\275W\xc3\223\xc3\xbe\xc3\257\303\xb9/\303\226\303\276[\xe2\x84\242\3q\xc3\275\302\220k~\302\256\x1bC\303\223\342\200\2714\xc3\233\36\xc3\xbb\31G\xc5\240\302\257:\x1c\342\x80\236\xe2\202\xacX\xf\303\xb7\xcb\234G\xc3\xba\x18r\x0\303\211\xc3\251\xc5\270\xc3\242\1\xc2\257\303\xb7\xc5\xb8L%VFLUc\302\xaf\xc3\236\x1b\xc3\xa4\xe2\200\230\xc2\242\4\303\276\xc5\xbdH\303\277ybP\342\200\x9a\xc3\232'#\xc3\277\303\227	\0\303\220\302\xbf\37\303\275\xc3\217\303\xac\xc2\xb9`9\37\xc3\230\x1a\x169\302\xbf~\x6\303\257\xc3\262\x1\342\x80\224\x6_\302\xbc\302\2540\x1aq\xc3\2445K-\303\x99E0\xc3\240b\xc3\264\303\217\302\xad\xc3\xbc\xc5\xa1\22\xc2\241\xc5\275\xc5\223\x1ft`l\2\x10m\177\xc3\xaa\303\255\303\x8b\303\277b\22\305\222\303\xa0\xc3\x86\xcb\234; ,=\313\234\3\302\xa0\xb'S\xe2\200\232.\3b\xc3\x8a\303\247S\xe2\x80\236\xc2\276\xc3\xb8\x10Cc\342\200\x94\306\222\303\252\xc3\253\303\212\xc2\215AR,\342\200\236\x2\xc6\222\303\xad\303\206X\x13\32\10\xc5\xa0@\xc3\xa0'\342\200\246\305\x93\328Z0\x8\342\200\236&\xc3\xacX\16nc<<\x3\xc3\210\302\243\xc3\xb0\33\x0(\xc3\xbc\1+*\xc3\200\32\x1a3\xc2\xb7\302\220\x11@&
\xc2\270+\xc3\x90\3@h\x3,\x1 \303\xb6\4\xc3\xb2\3$\x6O\xe2\200\x99\3\xc2\xb8\20\xe2\200\236\x0\xc3\x85\xe2\200\231\306\222\xc3\xa8\3t\x1+>\302\xac\302\xa2\xe2\200\271\xc5\x93\4b\302\252\342\202\xac\303\x8a\xc2\xb0\342\202\254
\302\243><\x2]#\303\265%\306\222;N\xc3\254s\xc3\263\xc2\xae\xc3\205\305\xbd\xe2\x82\xac\3\xc2\242\xc3\x8a\xc3\xb0*\302\273\x1c\303\257c\303\2730-@\302\256\x2\302\252L\xc3\254 \x12>\xc2\275Y\302\x81p\32\2\32#\xc3\x90-\xe2\200\240f0\xc3\256\xc3\x83\303\x8a\xc2\xb1a\302\xaa,>\20\302\xbb\303\234`\302\x8f\27\303\x86\303\205\xc3\240P\xc3\240:9\305\222\33\xc5\222\xeo\16\xc2\xb7\36\303\xb0\xc2\260ov\xc2\xb9R\30)e\0\xc3\x9a\xc2\242\\xc2\262\32\xc2\260\303\201\302\265\3
r{\303\203\xc2\xaeX\xe2\x84\xa2\303\222\x14\303\270\10\xc3\x8e:A\x8*\xc3\x9b\xc3\x87.\xc2\x90\27D\303\xb5\xc2\xba7\xc2\x81\xc5\xbd\302\273\xc2\xbc\303\xb2#\26,\303\xbb\35N\37\302\270\xd\305\275E\xe2\204\242\303\x94\xc3\xb7hQK\252\6\x16\302\xbb\xc3\x9d\302\251\302\xa5\xc2\xbdz\x8\xc3\x80>P@\302\260\xc2\xb0\10\xb\xc2\246\x9T<\xc3\222\x13\303\212=\xc2\241\x11:\303\262\37\xc3\200\302\260X\xc3\201\26GJ<\xc2\260GAf\xc3\265\x17&\xc3\227A^\10p\xc3\xa3`\xc2\xa9\303\x80\303\220{\xc3\xbb\303\x940`\xc2\274:\303\273\303\260\xe\342\x82\xac);U\6 !\303\x90e\0\303\256\x1a\302\xa3\xc2\xbd\xc3\x8fc\xe2\x80\240p\xd\xe2\x80\xb9\302\xb3\xc2\240\342\x80\271\302\xbe:(\303\270\xe2\200\xa2@\xe2\200\xa6%2\x9S\xc2\xaf$Y\xc2\253\x16\xc3\2353\303\251\302\257h\x7\22\30C\303\x96\xc3\254\xe2\204\242:\x4O\xcb\234#\xc3\217\x2\303\201L\x8\xc3\263\xc3\257/\302\235\5\305\xa1\303\251\342\x80\x9a\303\247\xc2\254k,\342\200\240\302\257K\xc3\xa5oo7\xc2\xa5\x3BD0{\xc6\x92\302\x90\302\241j\xc3\263\302\240\303\254\3j\10\16&X2\303\x9a\23\xc2\253{\xc2\xaf}\342\x80\236R\303\217x\302\xa4\xc3\202v\303\x81\303\244\xc3\267\303\x98\302\xa3\303\x809A\xc3\xab\1\302\xb8\302\266\xc2\xbe\36\22\x10\xb0\342\x80\xb0;0\xc2\201\x10\xc3\265\4\303\241\6\342\200\230\x7\xc3\xa0-\xe2\x82\2545\342\200\x9e\6\x1\313\206\x6/\342\200\235<\303\234\303\xa7\302\260 \x1\26\302\xbeN\xc3\2348E\302\257\342\x80\x98\xe2\200\224\303\207\x9+\303\243\xc3\x90\342\x80\xa6\xc3\x82P\x3d\36\302\241\342\x80\232;\xc2\252\xc3\203\xc3\200*n\xc5\270\xc2\274&\xc2\xb2\308/\177\x2jX\xc2\xb0\xd\xc2\220\305\xa1>\22\x9P\xc3\217\302\220W>K\7\303\xa0\342\200\242O\342\200\x99\302\242V\x3\303\x84\x8/\xe2\x80\x9d\xc2\xacU
<\x8\302\xb0\302\xa5\x0\303\x99
I\302\201k\x15@\xc5\xa0\37\xc2\xba\x3\303\xa3\xc2\xa6\xc6\222[\10\303\xa0\xc3\210\303\x8f\302\xa6\303\202\xc2\xb2\3\305\x93#\xc5\275?\xe2\202\254\xc3\231\10\303\243\x11%\303\261\xc6\x92\342\x80\232\303\xa8\xc3\213.\x01\x0\303\xb8\xc2\xa1k\303\250`1\x2T\x3\xb\302\267 \xc2\xa9\342\x80\x9e\xc2\xbe\xc3\253\xe2\x80\x9a\303\211\xc2\220l\302\xbc\xc2\x90\305\xa1\303\200\302\243\303\256\303\205\31p\x8\x8\302\256\xc2\242\xc2\xb0\xc3\x81\302\244\x1a\23\302\263\xc2\xac\302\263\xe2\200\246<\x3 .\302\243>\36\34\303\255\303\2305\xc5\xbd\303\x90\x0\xc3\xa4\3\xc2\xbb\x9O\xc2\254>k\3@Bn\xc2\xbe\xc5\240<\x3"i%\342\x80\xa2>\xc5\x93\302\272z\xc3\204\16\xe2\200\x93\303\247\x3\xe2\200\x9c\xc3\261\xc3\xa1\xc\302\xba\24\xc3\x873\303\x99P\306\x92\x4!\xc\xc3\260\xd\303\x80"\x12\302\254\xc3\xa3\302\254
 \342\x80\xb0>\36\305\xa1ad\xc3\240\xc3\266\2\30\x1a\23\xc3\xb3\xc2\xa2U?\xc3\x9a\xc3\207\342\200\x9d3P\303\227\303\201j3\xc2\xa3\303\xa4\xc2\xb0\xe2\x80\230>;\xc\303\223\xc3\244\302\xa1\xc\302\277>\305\xbet6\303\213\x15\x42\xc3\xa4[\303\202\303\xb0\303\236\xc2\xbeM\xd\302\xa0>\302\xb0\302\xba\x0\xc3\244\xc3\254P\302\xae\342\x80\232\302\xb7\x2B\303\250\xc2\253\x1eOe*R\302\x81\x14n\xc2\xac\302\xa7\xc5\x93y;\302\xab 8\x0\xc3\210\23\xc3\213\xc3\x95o\xc3\xa6\xc2\2750\xc3\xbd\303\223\xc3\270i\x10\xc3\202\xc3\270\xc3\2763\303\x8a\xe2\x82\2542@\xc3\x8a\xc3\275\303\240\302\243\303\256\xc2\257?x\xc3\xb4[\xc3\267\342\x82\xac\xc3\233\303\x83L\xc3\277a\xc5\275\xc2\xaf\302\201\306\222w\xas\xc3\xb7\313\206\xe\342\200\241\x13\xf\305\x92\x10A\xc2\262\xc2\xbfx
[\xc3\221a\xc2\xaa6\xc3\x82\2clc=\302\xb6\xc3\x8a\302\xbcX0\xc2\247z/>\xc+\xc5\241\302\252\xe2\200\260\xc3\270W[\xc2\xb4o2\xc3\x82\xc3\270\xc5\x92)e\20\303\2562\xc3\276\3HQP\xc3\251D\30Y\xe2\x80\x9czG4#\30YD\x3\xe2\200\xa6\303\xb6\342\x80\xa6\302\xba\x1p)\1	\xc2\xbaH\xc3\xbap\302\x90\xc5\xbd\313\x9c\x4&\xc3\2424*@\xe2\x80\240/:\x10\xcb\x9c	\4\xc3\xa1\342\200\xb0T\x10\313\234\x9\302\255\xc5\xb8\x4\302\xa6aH5\342\x80\230\25\xc6\x92\303\xab\21h.\xc6\222A>\xc5\x93\xc3\257`;.\xc5\270\302\xad\303\256Y\342\x80\234\303\201a	\303\202\xc3\262\303\272t/ =3\342\x80\xa6\x8\xc2\xb0BnhD?\22(\xa\342\202\xac!\xc3\204B\303\xbas\xc5\xa1\x11\x12\0\303\230\2\xc3\214D\303\x91&D\xe2\x80\x9c\x11J\xc2\217\xe2\200\230)\x0\342\x80\xa1\x11j\xc3\x85Q\x17\xc3\x84y\21\xc2\x90\xe\xc5\xbdhDh(\xc3\264K\342\x80\230/\x17!\21\303\220>\302\xaeh,=\x12\xc3\x9b\303\265\302\xb1\xf\xe2\200\240\xc3\243\x12tJ\20\xe2\x82\xac+\xc2\xa1\x11S\303\xb5\xc2\xb1,\x2"\x1a\24M\1\302\270\xc3\x84\302\xbf\x11\xc2\264N\303\x911\302\xbf[\x13;\303\270\xc3\220\xc2\xa2\xc5\240\302\274+\3\303\265\302\261#<\303\xac\x1b\305\222I\302\xa4Z\303\x84\xc5\270\22\305\222P\xe2\x80\230)\xc3\x84\303\xa1\24LJ\303\261\27D\xc3\251\23\xc3\xacP1$\xc3\x84\xc3\256\xc3\265\302\xbcQ\342\x80\230\34>\23\x14dO\342\200\230\30\xc2\xbcv\xc3\xa9#\xcb\x9c/m\16h8881N:\302\235\24\xc3\270Z0Z\305\xa0\xc3\201\24\xc3\xa8T \342\x80\242B\xc3\xb3\25C\xc3\x87q3%\302\xb0\x1a\xc2\xa4@\xc2\xa1\24\0\303\x98\xc3\257"\xc3\xb1\x1XD\x9\x10\303\xa03\x0\xe2\200\xa2!\\xc3\2548#\xc2\201h\xc2\xbcv\303\xacib\xc3\x8f\x11\342\x80\232T\2\xe2\x82\254!d\xc2\xaa\342\x80\224\xcb\206\303\x8e\xc3\xbcV\21\\32\xc3\xb3\303\x80S\xc3\xab\xc3\x85\xc3\205\342\x80\231\xaA+\x5\xc3\x8d\xc2\xbdp\305\241x\xc3\210\x11iD(\303\254\302\272(\303\xa0<*\xc\xc3\xb6\xc3\232+\xc3\x85\303\225E\302\267\x7\303\x8cT\302\xae\302\xbe\xc2\240B\xc3\250S\302\267C\xc3\210\xc2\xbfT\x8\xc2\264\303\xa6\303\x99\303\204 e\xe2\200\236A\xc3\xaf\xe2\x80\231"\303\xa1\4\x8|\302\251u\302\274v8\xc3\204T\02\342\200\x98@8D^oo\306\x92\xe2\200\232\x7f\xc3\270\303\xb7\xe2\x80\x98|\342\200\x9dN\303\xb9\313\x9c\303\xb4\xc2\xa5\16\302\x90\303\212J8[\xc2\254\303\2173\xc3\x84\35\303\x82\xc3\265\303\256J\xc2\215z\303\x97\xc2\263W\2L\0\xc2\266\1\0\xc5\276\xe2\x82\254\xc3\210\342\200\xa08\xc3\x97:y,\303\2176&\10@\342\x80\x9d\xc3\x80 \x2\xc2\220E\xc2\243\303\x8a\xc2\257\xc3\x9d\xe2\200\x98h\22;\302\274!f\xcb\x9c\x16\3\xc2\274.B\303\xbe;:\23\xc3\203\303\x8a\303\x8e[\30Z\xe3\302\xa5\5\342\x84\xa2\6\303\202\x3\302\xab\342\200\232\xc3\260n\xc2\273\303\254\303\xab\xc3\210\342\x80\230\302\255\xc3\xa9A\302\xa8\342\x80\x99\303\223qP4,\342\x80\x9e\303\xb3\302\272Xc8\3^\37\xc2\273\xc3\204`\xc3\x97\xc6\222\xe2\200\232\xc3\264l.\xc2\xae\303\274\302\272\4\xc2\242S\302\261h\303\236\342\x80\x9d\x1f\2\xc2\260\302\x9d\342\x80\x9aO+\xc2\252%P#\303\216\xc2\xa1
?\x16\303\x9b\xc3\x9cIB\xc2\xbd\303\212e\303\x8b\342\200\x98\302\201O\10\]\x1b\xc3\x8e\303\202\276\xc3\xb6#\xc3\xbb\302\xa6\x4\303\233\xc2\xbd\xc3\x98\302\201(!c)\xc2\240N\xc3\265\302\xb8\xc2\xba\303\221?E\xc3\230\10\342\200\235B##D \xc3\xadDdo\x1c\302\275\303\245\x10P\xc2\217A\xc2\xaa\0\342\x82\xac:\xc3\234n\303\x82\x1\303\x86\xc5\xb8\x15\342\202\xac\xf`  \xc3\232\26\303\250\xcQ\342\200\236\302\263\26>\20!
6\7\302\xa8\1\0\xf\342\x82\xac\x11\xe2\200\260V%cb\302\x81HF\x10\303\x97)\xc2\244m&\x0B\xc2\xa82I\303\xad5\xe2\x80\231\303\231#]\x3\303\xba\313\234\xc3\230D\30>\xc2\254\303\2543<
:ML\303\260\302\x90\20\35\xc3\x899C\303\261\xc2\217\303\x8a\2\313\x9c0\303\xa3\xc3\253\x0\xc2\220\xe2\200\x9c\302\xa8\10(\xc3\xa1\xc2\217\302\251\x1dH
\3\xc3\276\342\202\254\302\xa6\x2\302\xbaM\342\x82\xac"GR\xa@\10\303\251\x5\302\217\xc3\270\x2`[\xc3\203\xc3\263\xe2\202\254\305\xa0\x2\313\234\xai*\0\305\x93\x16\xc3\xb0)\xcb\x86\303\274\342\202\254\342\x80\232\302\x90\303\254u\xc2\xa9)\302\xa4\xc2\xab\35H\10\x1p\0\xe2\202\254N\xcb\206	\303\200"\342\x82\254\302\xaeN:9q\303\233\xf.\xd!\302\x8d\302\215\32\302\xb4J\xc3\226\303\x94{,\xc3\233'\xc3\xa6\303\231\x2\302\x81\xc5\xa0\234\xe2\x80\xa6\xbB\xe2\x80\xa0\x3\xc3\272\xc3\207\x1lq\21\303\x85\x7\xc2\250\305\xb8Xc\302\xab\xc3\x824\xc3\237\x1c\342\200\xb9N1\303\211\xc2\xa85\34\302\xabWm\xc2\201\303\2073\37\xa\xc2\x81\xc3\x81F\xe2\x82\254\xe2\x80\x9e\2\x3`\302\xad'\xe2\200\230\xcb\206\303\x92\xc5\xa0x\xc3\xa0\x1d\xc6\222&>z>N\xc2\254$4?\303\263\342\x80\xba\303\x83\303\xaf\302\217\xc3\202\2(\xa\x3\303\254\xe2\202\254\xc2\xa8>\303\xa0\x9\303\xab\xc3\217\xc2\265P\xc3\x94!Cq\xc3\x8d\305\x92\xc2\274\x1b\xc5\222p\302\xadqG\xf\34Lqq\303\xb6G\37\x1f\xc2\xb2y\x11\xc3\215H.\xf\xc2\xab^\303\240\xc5\276\0z\xc3\x95$\342\202\254AT9F\37\x14s\xe2\200\xa0\xc3\x90\342\x80\246\xc2\xa2\10D{\xc3\xada\302\247\xc3\270cc_\xe2\202\254\26G\303\210\1z\xe2\200\240)\xc3\263\302\xb3\342\200\xa1 \xc3\234}Q\303\206\x2\xc3\205\37h\303\xb3\x11\303\x8cHB\xc3\x96\302\270\5\xc2\x8d<\342\200\232y!L\177\302\255\342\x80\x9c\342\x82\254\303\x9b!\\xe2\200\x9a\302\262\x11\313\206\303\xae\xc2\xa0\xc3\xb8'\xe2\x80\231\x15H(\x1f\34\342\x80\x9a\xc3\xa4-\x4\xc2\xb5"\306\222in]\x7\303\x84\xc5\276\xcb\x86\xc2\xb3\xc2\255\\302\xa8!\36\303\232`M\xcb\234H,g\xc3\210\xc5\275\xc3\255\302\273\2*\303\x92Kf\xc3\253*\0\303\xb2>\x12\xc3\202\342\x82\2546\302\266\xcb\x86\x3\x18\5\303\xa06\303\210\xc3\x962\xc3\263hJ\xc3\2467\x8\303\231{nq\xc3\x828\303\240\xc3\237\303\xb4\xc2\215\6\xc3\x89H\303\x95#c\xc2\217\x1\7H\xc3\243#\313\x9c
\xe2\x80\x99:\302\266\342\x80\2237\xc3\x8a8\xc3\xa0\303\x9c\xe2\x82\xacZ\302\262\xcb\x9cZrD\xc2\243\xc3\xbe\xc3\237\xc2\xb2`rG\x0\303\xa4\1l
\2\302\256I\x1a\xc2\x8d\313\x86i\x0<\302\xb1\303\244\xc3\243\303\xb4\x0Lg\xe2\200\246~\xc2\x90\xc2\xa8\303\x83\22E\302\254\303\x9b$\302\271\22\xc3\x92P\xe2\x80\x9c\37$\xc5\240@\303\x92P\303\206\302\xbc\x14T0\53\xc3\x89HGH\5\302\xb1l\xc3\211Q%*"\22N?\303\253%\305\x93\xe2\x80\x93\x3	\xe2\x82\xac\303\x8e
\303\261CrW\303\211C$\xc2\254\xe2\x80\x93p\xc3\xb1\36\5%\342\x80\260uR`\xc3\x80\xc3\x8b%\xc2\xb3\x15\xc3\262R$\342\200\223\x1a<\xe2\200\x98`\303\x96Ifx\20\xc2\252\xc2\xaf\303\267$/$\xe2\x80\x9e\xe2\x80\x9d\xc2\201\302\245\31\xc2\x81$\xc5\223\305\241\342\200\231O\342\x80\xa6(\33\xe2\200\xb9\xc2\217\xc3\x8b\1\x0\303\246\xc3\x8b\0\302\217RY\xe2\200\232\xc*\303\x99/\x9\x10\x2\xc3\xaa
\303\x9c\xc5\223C9\342\202\254\xc3\xaf&hh\303\xa1=I\xc3\x93'$\xe2\200\x93RRI\xc3\207'\\xe2\x80\xa2a=E\xc3\224\xf\xe2\x80\x9e\302\235\303\262u\xc3\x82\302\267'\303\214\342\204\242\22wI\303\xa5'T\342\200\231\342\x82\254\342\x82\xac\xe2\x80\230\xc3\xbc\303\xbf\xc2\251\xc2\276\xc3\xa3K9\23%\313\x9cd\xc2\xa2\302\xb4\302\267\xe2\200\x9a!\303\274\xe2\200\235\302\x81\303\x80\xc3\x8a\24\23\303\212\303\200\xc3\x92j\342\200\246\xe\xe\303\254\302\241\xc3\255\303\223\303\212\x19&\303\x90\x4\xc3\246\x16\xe2\x80\236v\23\303\214\xc5\xb8\xc2\262\=<\33,\xc5\223E\303\xb9\5\16\305\222`\xc3\233\x12Y\xc3\x81\303\xb2\3\\xc5\xb8\xc2\xb2\342\x80\232\302\xa4*b0>\302\262r\302\256\303\240,d\xe2\200\x93pd\36\xc5\222\305\x92\xc3\2140\1DD \23\303\214\342\200\x93`\xc3\xa2,T\x12 \302\2551\x13\x1d\xc3\x9d% P\xe2\200\x98\305\276\302\xa4/\x18\303\xb8\xd\xc3\262b\3\xc2\xb9(\xc5\222\xc2\243\16\xc3\265J\5\x8\303\221\xc3\250\303\215\303\256\x2T0\xc3\xb2``\x11\303\x86\xc2\276\303\x9e\xc3\250\303\xad\xc3\xb3J\342\x80\235\x16t\302\xa9\xe2\x80\231\xc2\251\303\212\xc5\270((\4d\303\x87\xc3\x8a\xc2\xaa\xc3\241h+ <\303\x89\xcb\206+H%i\xb\342\x80\241\xc3\210\303\264\342\200\xb9\x18\xc2\262\342\x80\242#\xc2\xb4\3`\xc2\xad \303\232\xc3\x8a\303\221'\303\264\302\243\1B>t\3\313\x9c\x5\xc2\257J\xe2\x82\254Z\\x4\xe2\x80\230`<J\xc3\xa7+hR\xc2\267\303\x8a\xc3\x94\x18\xc3\xae\xe2\200\260\xe2\202\xac\303\xa0\1h\xcR\xc2\xb1,J]\x14g\xc3\262\xc2\xa8I\xc3\244\xe2\200\242\xc3\2500\xa%J\302\271*\303\x90Y\302\262\302\257\302\243JwD\xc5\223\xc2\260&\303\x8a\342\x80\223\xeD\302\261\xc2\xae\xe2\x80\242\xc3\211\xc3\220\26\xc5\x93\xc2\xaaR\302\xa7K"\303\2371Q\xc3\xb2\xc2\xa8\xc3\x8b \3\xe2\200\x9d\302\262AJKC,\xc3\244\xc2\xb4mV\23\32\342\x80\x99\302\xbb\305\275\xc2\262\xe2\x80\xba\303\212\303\x99-\x1c\302\261\303\262\xc3\x8fKI*\xc2\xb1r\x10\302\xa8\306\x92\x0\303\207L\xc2\xb3"\xc3\x86Kb(\303\xbc\302\xaa\xc2\215\303\263J\4\22:\x2q\x8Kr\x16\x1c\302\xb7d\xc3\271\303\212\xc5\xb8-)\22\303\x81\xc5\xbe\xc3\x8b\342\x80\xa0#\xc3\224\302\270\xc2\xb2\303\x9e\xc2\270[\xe\302\xbaA\x12\xc2\273@\342\200\242.[\342\x80\x93\303\x92\302\250\xc3\212\xc2\274\303\2374\xc2\xba\x12\xc2\241\302\xaf\37.\xe2\x84\2421\xc3\262\302\xaeJ\xc2\xbd.\xc3\x8c\302\xae\302\246u#J\342\200\234\x10\342\x80\xa1\xc3\201g\x0\303\206\xc3\xa3\xc3\xb2\xe2\200\230\xc2\247\xc2\xa3<\303\x8b&\x4\xe2\x80\x9d\xe2\x80\x99\xc3\xb0K\302\xa4+\4\xc2\275	M?\303\x8d/d\xc2\xa3\x12\xc3\212%'/\xe2\200\272\xc2\2772Y\303\x88\303\xa4>\20\302\255$\xc3\x8d\x12\xc2\254\x1l\302\xba\0\342\x80\240\xc2\xa9\33+\xc3\xb8\342\200\224\xc3\x81\20\xe2\200\260}-t\302\272\xe2\200\231\303\215\342\200\xa6\x7f*\xc3\xaa\xe2\200\260R\303\244\x2$\303\237\342\200\x9d\xc\303\xb2\303\214K\302\273.\302\264\xc3\201\302\xad\303\263J\x12H\xc3\273\303\212\xe2\200\xb0\xb\342\x80\2412\xd\342\x80\236\302\277B\xc2\x8f\xe2\200\x9a\302\275(P\xc3\215\303\223\xf\303\2146"\303\xbc\xe2\200\223nf\xe2\200\240\0#\303\x90\xe2\x80\xa1 \26\302\xae\303\215%$\xc3\x84\303\x8a[\xe\xe2\x82\xac
\xc3\x90no\xc2\x9dLJ\xc2\260\305\222\303\x85\303\x93\24\303\x82e'<\302\xaf\xc3\xb3\26\xe2\200\xa6\342\x80\2411K\303\xad\303\201y\xc3\214Y1\xc2\244\xc3\207s\30\3\302\xa5\210\xc3\x80&zLf#\xc3\xbc\303\206\xc2\xb3\x18\x17/%y-\xc2\xb2\xc3\x8b\302\xa33-\342\200\236\303\202\xe2\200\x99\xc3\x8dK\302\220\302\xa3L\302\xb6\xc3\216\302\201\303\x89\xc3\2270\xc5\223\xc2\263\xe2\200\231\xc3\253\302\xb8[,\302\xa4\xc3\x8b\23\x5\xc3\x8c\xc2\xb5,\xc5\x93\xc2\261\xe2\200\x99\302\253\xe2\x80\x9e\302\xa70\xe2\x80\x9d\xc2\261\303\x93(\xe2\x80\271\31.D\xc3\x80\302\241@\303\x8f\25\x4\xc3\2012\xc3\xafL+.|\302\xa3\342\x80\x99\xc3\xb7\xc2\244\303\x892\303\xa8(\xc2\xb3\6L\302\245*\xc2\xb4\xc2\271S:\0\303\2313\xc2\264\xc3\x8c\xc3\xad\303\263\5G3l\xc3\214\303\x81a\303\x8b\xc2\x90\x3\20l\xc2\xb3@L\302\xb33z4\xc2\xad\xc3\207\302\275%\x6\x14\xc3\x8c\342\x80\231\xc3\215L\xc3\2353\xc2\273\342\x80\xa6\302\xb3\7\xc2\274!0\xc5\24033=L\xc3\xb94\x13|\303\210\342\200\x94\x2\302\241\x4\303\xa0+"\xc2\260\xc3\x8a\303\2514\xc2\xb4\xc3\213\303\2457\xc3\x8b\5,$\302\xacSPM\x10\xe2\200\x98\\xc2\xb1\303\x8e?J\305\240Y\342\200\234\303\x8c\302\241\xc2\xb9\x2\xc2\275+(\303\202a=K\x8\17\xc2\xa8\xc3\254\x1\10\3\x14\305\x93\xc2\244\302\xb3C\303\214\xc2\xa4\23<\303\220\xc2\201\xe2\x80\246=$\302\x8d,\xc2\xbb\xc2\xb3UJ]5h\x5\xc2\263W\302\240&\x16t\xc3\x96I%\342\202\xac\xc3\xa95\302\xac\303\222\302\xb3\M\x1f38g\xc2\xa2\x1\xc3\x8d\302\2015H\xc5\240N?\5W1H\305\xa1\302\xb1^\303\212\303\x99\x1\xc3\224\xc2\xb8\342\200\234Y\xc3\x8d\342\x80\224\x2\34\xc3\230\xc2\240\xc2\x8f\303\x8d\xc2\x8f.\23\342\x80\x9aN3M\xc5\xb84\xc3\203\342\200\xa6\xc2\263`\342\x80\236\xc5\xbd\10i/\22P\342\x80\xb0\37\xc\xc3\226\x13dM>\305\241d\302\xaf/\302\235LR\xc3\x8e\24\303\234\303\xa2=K\342\200\23060>\xc2\257I\x0[\32\xc3\260\303\265\0\303\237\303\x8d\xd2\xc3\264\303\x94\303\xb2Z@\303\2171\342\x80\236\303\x9b2\xc3\xbf\xc2\xb0\17\303\x889\x12\303\244FG+\xc3\244\302\257\303\x92\xc5\x93\xc3\x85
)\xc3\240hQtL}8$\xc3\x8aBe\23C#\xc3\x81\xe2\200\x9cr*H\xc3\x88\xc3\233\302\xab\xc5\xbd-\342\200\xbaH\303\xbd/\xc3\x98\303\x8b\303\x926\xc3\x88\xc3\237$\x18\xc3\270RC9\20\303\x82\xc3\x98\302\250!\342\x80\232\342\202\254\303\2057\303\xbck/P\xc3\x8b\250X\xer5\xc6\x92\xc2\2413D\302\x90\342\x80\236\302\xbc<T\303\201\303\224\342\200\231q\302\xafK\2\20\303\264\302\251\302\263n\303\x8eH\xc2\xa7<\xc2\265\x13F\x14\303\xbf:\x191SL\303\x8er\x12\303\x80%(\303\277\xc2\x8du)\xc2\xb8Xr\342\200\x941\xc3\221\20\342\202\xacnJ\303\x83I\303\x8c\x16\x1c\xc2\264S\302\xa3\xf$$\xc3\251.\x16\xc3\x8e\xe2\200\xa19\303\224\xc3\xa9\302\xb2I\303\x8e\xc5\xb8\x7\xc3\2223 \xc2\250L\xc\303\203l\342\200\x9d\xe2\200\x9c\302\257\xc3\x8e\xe2\204\2429\xc3\xa4\xc3\205C\342\200\242N\xc2\xa0#\303\x94\xc2\xa1\xc3\xb3$\2\302\265/\303\x94\303\251s\xc2\x9d\xc3\211\259\302\xab\7@6\xc3\212\x2\26t\xe2\200\x9c\302\262\xc2\256N\303\xb19\xc2\xbc\302\264\23\302\267N\xc3\x89:\xc\xc2\xb9\342\x80\x99\xc3\x82\5\302\xa17\xc3\xb3\xc2\xa0\303\223\xc2\xac\303\x8d\x5:D\303\xa1\303\x93\303\x81M)<#\xe2\200\223\xc3\x93\303\x83M}+\x14\xc3\xb12\303\216N\303\xbe\x8\303\261\302\262\xe2\x80\xbaO\7&\xe2\200\x9e\xc3\xb0\xc2\242JNy*\xc5\222\xc3\262\xc3\262\xc3\x99\302\270[;\x1c\xc3\xb1\303\263\303\216O"m\303\x9a\xc3\204\xc3\263\xc3\x85M\303\265<c\xc2\xa0\303\202\302\264\xe2\x80\232\xc2\260\xc2\xb18\x5\xc2\xac\31K\302\262\20,\xc2\xb4\303\223\303\x87N\xc2\243=07s\xc3\227JE=T\303\241\302\xb3\303\206O\3<\303\x94\303\xb4\302\xb3\xc2\243J\xc3\251=D\xe2\200\234\xc3\x93:\303\217C<\xc3\x8c\3\342\x80\x9c\xc3\240\303\213\xe2\x80\260=\303\244\xc3\xa8\xc3\xb3\302\xaeK\xc2\220\303\212\xc2\xbb\303\x8c\302\xb3\303\210L\253\xc2\254\xc3\xb7\23\302\255\xc2\217\xe2\x80\x9eLT\303\220\xe2\x82\2543\303\212S,\xc5\223.\xc2\xa8\303\277\303\x8fq-\305\x92\303\261s\xc3\xa77\303\215>\xe2\200\232?\xc3\263\302\2747O;\303\x9c\xc2\240`\303\271OA9\xc2\264\303\xb3\x13\xc3\261\xc3\x8f\302\xbb$\xc5\223\303\xbc\xc3\201\xbO\303\x91;\xc3\xac\303\xbd`9\xc3\x8en\303\207I\xc2\201A\36\xc5\222xp\303\234\xc3\266E=O\xc2\271\16<\303\274\xc2\2625\303\217\xc3\x8e\16\xe2\200\236\303\xbd2\302\xb8O\302\x8d?d\xc2\xb4\xc5\275\xe2\200\x9e\30\302\264\xc5\x92`N\303\xb2iO\303\xbf>\xc5\222\xc3\xbe3\xc2\xbdP\x9?\xc2\xa4\xc3\262\303\224\x4O\xc5\xbem\xc5\223\xc3\272S\xc3\xb0M\xc3\xb4\xc3\213\xc2\xac\302\267\xe2\200\240=\xc2\271(\303\243d\xc3\243\xc2\244A\303\x88\302\xad9\x4\302\217\xe2\x80\234\342\x80\x98\0\303\xad#\xc3\xbc\xc3\244\302\xb2@\306\x92\302\xad9D\305\275\302\x8d\xc3\x81\303\x89\x11&\xc3\234\xc3\xbd\xc3\262\xc5\240\342\200\x9a\xb?\305\223\xc2\xa0\342\x80\234\303\220\xci9\xc2\273\xa\xc3\xa0/\xe2\202\xac\xc3\xb1A\303\235\1\303\xb3\xc3\xb2\303\210\302\xadA\302\xa4\303\275S\303\213Po?kuN5\302\xa8~4\xc3\234\xc3\xa3\xc3\2066\342\x80\240\xe2\x80\240\x3\xc3\230=\xc3\262\342\x80\x93\xc5\x92\342\x80\x9c*@(\xc2\256N\0\\x1a\xc3\233\xe2\200\235d\xbG\10\303\xa5\xc3\xbcp#\303\250\xf\xc2\xa4>\xc2\2400\303\x80\302\253$2\xe2\200\2344z )\x2\xc3\x80\xb\24`\xc3\202W\x2\313\234\x16\303\xb0\10\xc2\240+\0\xc5\240\342\200\x9880\302\xa3\xc3\xa8\xc2\217\302\246\2\342\x80\242\302\xa0\x15\xc2\xa4\302\252\xe2\x80\235\xc3\xa4z"T\303\x90\xc3\xa4\x20\10\xc3\224:\0\305\xa0
e\xe $\xe2\202\xac\305\275\x2rM\xe2\x80\x9d=\xc2\241r\xa\302\262N\xe2\x80\xb0\5P\xc3\267Cm\xbt8\30\26\xc3\xb0\xc3\272 #\302\xa4\303\x98\x2J=\xc2\240&\xc3\220\xc3\206\303\x0*\342\x82\xac\xc2\235B\303\2726\342\202\254"\342\x82\254\xcb\x86\xc3\251\xc3\250\303\xba\342\202\254#\302\x8f\303\214>\313\234\x9\302\xa0(Q\xa\xc5\222\xc3\260\xc3\252\302\xb48\xc3\x911C\xd\22t2\306\x92EC\xcb\206
`(\xc3\207x?j8N\302\xb9\0\xc2\xa8\x2\xc3\210[\303\200\302\244QN>\xc2\243\xc2\251\xc3\xa0'\0\302\254\x2x\x9c\303\xaa\xe\xc2\xaa\26\xc3\xb0
\xc3\2113\302\x8f\303\227Ch\xc3\xbc`&\x0\302\xb2\x2\303\220\x8\302\2648\xc3\221\x0\2\xc3\xb8
\xc3\244\302\xb5\17\xc2\246\2\xc3\272O`/\342\x82\254\xe2\x80\236\302\x8d\xc2\xa2A`#\303\220\xc3\xac\xc2\220X\x8c\xc3\250\303\220\xc3\217D \303\277tR\3
>\302\xbc\302\201\xc3\224d\303\221\x17B\xc3\262D\xc2\264L\303\x90\xc3\204\303\214\303\xb5\342\200\260\xc3\xa4\303\220\303\x8dD\30\x5t4\303\x90\303\226\2\302\240j\xe2\200\x9dp\17\302\xb5G\20\7AoQoG8,-s\xc3\x91\xc3\x96\x16\303\260\10\xc3\224K#\xe2\x80\xa1\x1e\x15\36);\17\302\247E5\34\302\264TQ\xc3\x91G\xc3\x904Ao\x0\302\xa0>\xc3\260\x8tM\x12\303\223D8\5\24yR\x7G\x1d\xe@'P\xc3\265C\xc2\260\x9\xc3\264<P\xc3\265C\xc3\245"\xe2\200\x9dK\0\xe2\x80\231\302\220x\303\274\xc3\x94~\0\302\252\2ei9\303\220\303\254\2\xc5\x93v))\xc3\221\xc2\265Gb6\xe2\x80\xb0\xc\342\x82\xac\xc2\xb1H
\3448\303\x91@\x2\xe2\200\x9aM\342\200\260:\xe2\x82\254\xc2\263F\xc3\x98\5tQ\303\222!H\342\x80\xa2\36\xe2\200\x9d{R\xb\35} \303\264URp\302\x8f\303\x8d\xf\303\224O\x0\302\xa5I\xe2\x80\246\x1et8\302\244\xc3\230\x16\303\xb0\xc3\xbb\10\303\x8e\303\207[D\25\xe4F\xc3\221\x1fD\xc2\x8d\x15#\303\212\303\221+D\xc2\xbd'\303\264M\xc2\x8f\303\212\x2\342\x80\242\x13\303\x80>RgI\xc3\x95\24\xc2\xb4\xc5\240Q\303\257J\xc2\xa8\342\200\235\xe2\x80\x9dU\xc3\x92)Em\x15\xc3\240\x15\302\217\303\xbc\x2\35\x16TZ\2\302\255E\xc2\xb5'\303\xa3\xc3\xaa\xc2\243iE\303\235\x17\xc2\xb4\302\243\xc3\x92qFzA\302\xaa\17\xc2\272>\303\xbd)T\xe2\x80\xb9Q3H\303\205#TL\xc3\222qIjNT\xc2\275\17\302\xbc\2\342\200\246&C\xc3\270\303\222h\302\x8dX
T\342\x80\272\303\x91\303\x99K\x00\302\xb45\342\202\254\313\x86\x1a\xc2\xa2JH\xc3\x91\0\xe2\x80\234FE\x19@'\303\x91\xe2\x84\xa2Fp\x8\302\264hS5F\xc2\x9d"\xc3\x8eo\xc3\221\xc2\256\302\x90e%aoS \x1E)\xc2\xa0 \342\202\254\342\200\234DU\36\xc2\240\302\xabQ\xe2\x80\224Fm\22\x14\303\216\xc3\x91\302\243M\5\x1a\302\264\xc3\221\303\x91\302\xb2\2e(tn\303\222 \xe2\200\x9cU\161\303\234\xc2\243~>\xc2\215$\xc3\xb1\xc3\x9f\xc3\207\342\x80\x9a\xe2\200\231\xc2\xad(h\xc3\225\303\207\xe2\x80\230G\xc3\274y`\xc2\xab\x0\xe2\200\231\303\252\xc2\xa0\x9\306\x92\303\xadG\xe2\x80\236\x16\xc3\xb23\303\2245Sp(\xc3\275\x3\303\xb5P\303\xa3G\xc3\xad$\xe2\200\235\305\223#\xc2\xa4\2\xc2\250	\xc2\251\16\xe2\x80\240\xc2\xa9N\302\xa8\xa\303\xb4V$\xc3\xb6\302\215]\x13\xc3\224\305\x93P\303\226\x2=\23"R\xc3\x93\302\xa8?Lzt\xc2\xb7\xc6\2221L$\0\xc3\x94\xc3\270G~\x3\303\xa5\27\xc2\xa0,\342\x80\xb0KN\xc3\xbd=\xe2\x80\x9d\xc3\253\303\222GM\303\205\35\342\x80\235\xe2\200\xa6\xc2\xa4\31N\22S\xe2\x82\xac)\303\221\303\241O]:\303\224\xc5\xa0S}\x1d\303\x9d81\303\xa0R\1Ge@C\303\255\0\302\253OP\5\x14\303\xb0S\303\265N\xc3\2151\xc3\xb4\xc3\x9dT!P\342\200\242@\303\x91\xc3\235S\xe2\202\254\x16\xc3\xb0\xc3\277\xc3\225\x5S\342\x80\xb0G`
\303\211:\342\202\xac\xe2\200\234P\302\260j\xe2\200\x9d7R\342\202\xac @3\3\303\xbc\303\x91
\342\x80\230 \xc3\274\303\xa3\303\267\xc2\217\xc3\xa2\x2\xc2\243\342\200\235D\303\x93\xc2\xa0\xc3\246\303\272L\xc3\x88\303\217\5\xc2\274\xc5\275\302\xa0	\xc3\xa8\xc3\xab\0\xc3\xb9Q5\34\303\264\xc2\xb5\17\302\251CP\xc3\xba\xc2\xb5\x1eSMP\302\xb4v4\xe2\x80\xa0\302\272?\35h\x9h\303\xabT\342\x80\xa1D0\303\xba\303\221\xc3\226\302\x8f\303\240\x16\xc3\265>\x15&\303\222I\x1dTx\xc3\xb4O\x5\302\274?\342\x80\xa2@U\x13\xc2\244\xc3\xb7\x1dR8@%\303\224\xe2\x80\223\305\x92\xc3\xb5K\xe2\200\260\x6\xe2\x82\xac\xc2\xa7N\303\245K\xc3\xa3\xc3\xb3RyE\xc2\255E#\xc3\275\xf\303\271 @\303\xbd\303\x83\xc3\xb8\17\303\244\xc%L\xc3\xa0\302\xabQ\302\xabQ\xc2\250\10\302\265\33\302\xa3\xc2\xaa?\x5N5\x1f\x0\xc2\xa5R\0\xc3\xba\303\224\302\x81T\xc3\xabF\xc3\245\20\xc3\x94\342\x80\x9dR\305\270S\303\xad\34!oT\x1fE\303\202C(\xc3\x8f\xf\302\266\302\220\xc3\210\303\275\303\204\xc2\xb5\x0\xe2\x80\236?3i\x3\303\256S\17S@\7U\x15\xf\xc3\267QeM\302\xb5\27\xc6\x92\x9K\xc3\230\xa\244P\xc3\x95CeS\342\x80\235\xe2\x80\230\x0\xc2\x9dNC\302\253\x15P\342\200\x9a\302\xadO\xc3\xb5!\xc2\xa0"R\37T\302\220\303\273\303\xb5\31\342\x82\254\xc2\217S\302\245N\303\225\34\xc2\217\xc3\x81U5OU>UiI\303\225PU#UnKP\10\303\xb4\302\243UYT\xc3\xa8*\303\x95C\302\217\xc2\xabU\xc2\xa5/\x0+\302\272\xc2\xb8\2\xc3\205)\303\210\xc3\x9a:R\x2eA\303\xa0$\x0\303\270\xc5\275\302\xa4x\303\262\7\303\207WD\xc2\2723\303\x83\303\252\302\x8f\303\xa0\x2`\xc3\274\x8\xc3\x9a\17\xc3\xbc\303\247U\x175\6\xc3\x92IHUY\xe2\200\x9d\303\xb4:\xc2\xb0\2P	\xc3\265e\x0\342\200\x93\x2MJi\5\342\202\254\xc6\222\x1d\302\265\xc3\x83\xc3\xbdQ\xc3\xb8>\303\265\x12@\302\253T\302\261C{\342\200\xba\xc3\x95u\303\221\303\xac?\xc3\x95^\xc2\xb5v\x0WR\302\x8d]U}C\303\266\xc3\2521-5+U\303\xa4?\303\255
\xc3\265W<\302\270?\x125\342\200\242JU-SX\303\xbc\303\225L\xc3\224\xc3\237 \t\xc3\x95?\303\x92sM\xc3\x95b\25\xe2\200\x9e\xc3\225\306\x92V\303\234\302\x81t\302\xa7T\305\222>\xc3\202MU+\xc3\226	E\xc3\205c\xcb\206\xc3\217\xc3\x949Nm
R\x5\xc3\207\xc6\x92C\303\xbd8\x15\xc5\xbdS\xc3\x87X\342\200\242'R\5\303\222\xc3\251XjCI#G|\x2\xc2\245!Q\xc3\231Gh\2\342\x80\xa2\x13t\xc3\xb0Q\x18\302\215\xc2\xb8\303\275 )<\xc2\271Y\xc3\220*\303\224\303\x90RmX0\303\274\303\264\303\266\5\302\xbdM\xc2\xa3\342\200\xba\xc3\265OQ\xc3\x9fY\xc3\275h\303\x80\xc2\253\17\303\x9f\x1ddu\303\x95\36\302\244\xc3\225Z(\xc3\275Ao#\xc2\xa5NlyN\302\254V\xe2\x82\254\x1Z9I\23\xc3\225\x1c\302\x8d\302\xbaM\xe2\200\xa2\xc2\246V\302\253ZuO\303\225\342\x80\xa6T\xc3\x95T\xc3\x85E\303\x95\xe2\200\241\303\226\302\267S\303\215e\xc2\xb5\302\xb5\xc3\226\303\x8a\xa\xc2\xb5X\xc2\265\302\252S\303\233QER\xc2\xb5\xc2\263\xc3\x94\303\231[MF\x15\302\261V\303\xa7O=/\303\265\302\255\xc2\x8f\302\xa8>\303\265g\303\225\xc2\271T\303\xadV\302\215oU\302\217T\302\263Z\xe2\200\x99N\xe2\x82\xac*T\x1f\\20*\303\x83\xc3\xaf\xc3\x90\303\227S-p\xc2\265S\303\225\xc3\x83V\303\x95q\342\x82\254\x15\xc3\222\26\2M\x18(\xc3\217Q=\\302\x8d-U\27UUV\xc2\xadC\xe2\200\242\303\204\xc3\227\27Z\303\230\xau\xe2\x80\x99V$?M@U\303\216WJ\x2
\xdU\303\220\303\x94\35\\xc3\245'U\xc3\x97W\25]\xe2\x80\246W\xe2\200\235\xc2\xa3W8\2\xc2\xbaN\302\240'#h\2=oC\xc3\xb3\xc3\x90\303\xbdF(\xc3\274\xc3\xa9:9\xc3\225Y\35u\342\x80\242\342\x80\240\302\xa4\xc3\267V\x5-U\xc3\x939\xc5\270]\xc3\222C\xc2\xa9:U\xc2\277\\302\x90\xa\xc2\265qW\342\200\224\36\x13\xe2\204\242\xc3\240(TT?5P\303\xa1\302\252$\x17 R3\xc3\225\xc3\242\302\272\305\270C}\36`>\0\xc2\256\x2E]\24\313\206#R\xc3\xaa\xc3\240	\306\x92\303\277#R\x1a\302\245)\xc2\262\x7W\342\200\x93\342\x80\231\302\235:`\24#\303\263G\xc3\xb5)4\xc5\240R\xc3\x80\x1\xc3\275;\xc3\265\303\xa1ViD%8\303\200)\303\x87\xe2\x80\x9c^\xc2\xa5Q\303\xb5\303\xa9#\342\x80\235\x2h	\302\264H\xf\303\x82\xc5\xbdX	\306\222\303\276$\x1bN\303\275x\xc2\xb4\xc5\241#i x\xc3\273\303\x94\xe2\x80\x99X\25R\xc3\xb5\20\xe2\202\254'\303\2249`m\\xc2\xa9\23\342\200\xa0\302\250
E\22\xc3\200\xc2\xa6Q\xc2\xb1`\xc2\xa5bu@\xc3\x97\303\261N\302\245dT\303\227#YY\303\275\xe2\200\236\302\xb5\xc2\xaeGV\xc2\215]j5\16#?L\302\xa4xt/#\xc2\xac\xe2\200\235\xc3\xa5\x1b#\xc3\251\342\200\246\xc2\xbdO\302\xadP\303\x95\303\253Q\303\xa6\x1a\302\2426\342\200\242\302\xa3\302\243\xc3\217^\303\xad\342\x80\xa0 \25\xe2\202\254\305\xa1\xc5\275\xc3\xb0\303\274\xc3\226\36\303\230M\R5t\302\264\xc3\x93\305\xa1\2p\10\xc3\xa0*\xe2\x82\xac\xc6\222X\25\xcb\206V"W\xc3\205D\xe2\x82\xac	\x1oRALm
\25dG\xc2\x8fN\30	\xc3\x95\22\xc3\x96\303\200\x2\xc3\xba6\xe2\x80\235p$\302\x9dP\30\5\x14\xc3\xa5\xc2\272\xc5\xb8\x1dE5\303\x94\xc3\275\342\200\xa0\302\251Tx\xa\xe2\202\254+\342\202\254\xe2\x80\271C[\302\250\x8\303\xb4V\xc5\xbd\305\222\xc3\275\302\x8d\xc3\2268U\342\200\242D\5\177u}\xc3\x98\302\273F$\1.\302\252\xf\303\213Q-;4\303\210\xe2\x82\xac\302\261NX\xa\302\217.X\303\261b\303\215\302\220\xe2\x80\xa2\10\0\xc2\257b\302\245)\xe2\x80\223\x4#\xc2\xadN\xc3\xbdG4K\303\230\303\x90\x1ZS\342\x80\235^\303\x97\xc2\264\2M\27\xc2\2668\303\230\xc3\xb3d\xc2\xad"\26C\xe2\x80\x9a\xc2\xac>\303\x85\23\xc3\x95dH\x17e\10
\x15\xc3\xb6Y8\x1a\xc2\xa5\xc2\217\x15\35\303\221.\303\252 \303\xba\xc2\xb0\xcb\206\303\222\302\x8fF\xc3\xbaD\xe2\x80\235\302\275W1cZ6\xe2\x80\x9d\342\200\xbaQ\303\xa2KH\xc3\xbc@*\0\302\277^\xc2\270\xc3\272\xc3\x96\Q\303\x9fF\342\200\2324U3Y|\342\200\x98=\xcb\x9c\x11\303\x93\302\xa4\303\xa9E\xb\xe2\200\272\xc3\x94\303\233\302\xa4\302\xa6?-\xe2\x84\xa247Y\306\x92Pm\xe2\x84\xa2\16hYw_\xd\305\xa1Ve\xc3\x97\xc2\261\22M\313\234\xc2\261\303\237\303\x99\xc2\217e(0\xc2\xb6\7\xc3\224\177F\303\225\xd\xc2\xa0!\xc3\222\x1bPUI\xe2\200\xa2u\xc3\2217Q\303\xa5\xe2\200\xa2C\xc3\250\303\221\305\xbd?0\303\xbf\302\xb5\35\302\217\303\235gu
q\303\xa0\302\244\302\xa7Y-Q\xc3\250\xc3\263\xf\302\260\303\250\303\xba=\x15g\0\342\x80\xa6\x0M\x1b#\xc3\267U\xc3\227S5Zt\302\xae\xc3\226\xc5\270ae^\342\200\xa2\x17$\x1a>\302\xb2Ar\x4V\302\257_
;t\303\256\xc2\217\302\xac\xe2\x80\x99\302\xa8\x8\xe2\200\235HW\302\xa9Z\303\xad@H\xc3\225\xc3\230\37hzD\303\250\303\x9a\0\302\xabS2J\302\265 H\x1fI\303\245O\302\xa0'\303\x87\302\x81e\303\xadg\303\x896\17\302\271[\302\xb5R\26\xe2\x80\x9d<\xc2\270?\xc3\210\xb /\302\217\xc3\x92KM\302\244\303\xb6\xe2\x80\x93\xc3\230
>\302\275\xc2\xa4H\xc3\241Z!i\xcb\206\xb\303\266\x2\302\xa4\xc5\xb8TX\106\342\200\x93\303\222\303\227i\xc2\xbaC !\xc3\223\xe2\200\272g\302\xbd\xb\303\240 \xc3\x92G }Q6\305\xbe\303\x914>\303\244w\xc3\xa0!\303\x9a\xe2\x84\242C}\302\247VB\x12\303\226>\xc3\xa5\302\xaaUQ\303\232\342\x80\230j\302\2528c\xc3\257U\302\215T\303\xa0\303\273\xe2\200\x93'<\342\200\232>\303\x88\xc3\xbd\303\265\303\264H\x11C]\xc2\xa8V\305\241\303\x917jj3v\302\xa5\xc2\244\303\245`0\10\303\x83\303\250\303\x88\x10\223\303\xb6\xc2\260\303\220\xc3\262\x2x\xc3\xbb@\x1aU\342\200\x94k\xc2\240\xa\xe2\202\xac\34:Si5\305\276\303\225#Y\xc3\xac\2-w\303\xae\xe2\x80\x9d\303\x95\xc3\240\xc3\251M?c\xc3\251\303\222MQ\303\205GQ\xc3\225\xc3\x91\306\x92b`\xf\xe2\200\xa2\303\262\0\305\275\x2@\xb\xc3\xb5\xc3\x8b\303\222\302\xa7\0M\302\xa5\xc3\xa0)ZrKX\303\xbb\303\x96\xc5\xb8\xc3\231Wl\302\255\302\xb2\xc3\xb6\xc2\x9d\xc2\217\303\215l\xc3\245\302\263TM\303\x97\x7fD
\274\xe2\200\224QsS\302\xa5\x1740\xc3\221sQ\xc3\x8c\xc2\201\xc3\265mY\xc3\243h\xe2\x80\xa2d\302\266\x7\xc3\x82C`{\xe2\200\272V\x7\xe2\202\xacgE\xc3\210
\342\x80\x93\xc2\xbbX\x1fk\303\225\302\201\303\xa0'\303\223\303\xa8\2,\14\303\xba\302\xbc\302\271^\303\xad\xc2\2426\xc3\206#<\24\xc2\201\303\251NX\xbnM\x13):\302\271\xc2\267OM_6d\342\x82\xac\xe2\x80\223\303\xa6\303\265\302\270\303\203\303\xb5["KU\302\262n\305\276\xc3\x96?l\302\xb4x\0&\x0\302\277R\x256\305\270T~>\xc2\xa0\xb\xc3\264\342\200\xa0\xc3\x95\302\270?\xe2\x80\235Jn\305\xbe\342\x82\254\342\x80\x99\x2 \10\313\x86\xc3\x8fZ/i\xc3\2226\xc3\264\xc3\216\xc3\x9agl\303\x8d\xc2\246\303\226U\xc3\x9b\xc3\241F}\302\xb4.\xc5\276\xc2\xa3\302\xbc\302\x8dJL\xc3\xb6CT\35bM\xc5\2754\xc3\x8d\303\x93cL\xc3\xb5\x1aTjSD\xe2\200\x99}Jt\305\222\xe2\202\254\302\x8dZ\342\200\272\302\252\302\265\303\207:\xc2\xb1L\xc2\xad\342\202\xac\xc2\xb4d:\xe2\x80\260E\x15z\xe2\x80\x9d\303\x8a\xc2\244\302\xaa>\xc2\215\x18\303\226V$2>\xc2\xad\xc2\265\xc5\xbd\xc2\242[\303\243p\303\2426\303\xb6\xc3\x94R\26\305\xbd\x159u\303\xaaW.?\xe2\x80\xa21\xc2\256\302\xa3R\x19Hu\xc5\xbe\303\250\xc3\233R\302\xb8?58\303\224\302\256\xc2\244\303\255D\xc3\x9d\303\x86u\xc6\222\xc2\xa3\303\xa7p\x10\303\273c\xc3\254Z\xc3\240?\x15\305\x93r\x5\303\227\xc2\273 Ea\26f\xf\xc2\260\xc2\220}5w\x18Y\xc2\xb4\303\253\303\xa5\342\200\232\10\xc3\217\xe2\x80\231\xc3\x92\xc3\252\xc3\205W\342\x80\x9awT[Sp\107'\303\224_aEk\xc2\xa0"[/i\302\245\xc2\277#\xc3\277$;m\xe2\x80\xa6f\21\xc3\x98\xc2\243WO\x18\303\xbc\303\264\xe2\x80\x9d\xc3\x94F\303\xb2
%\27\x12$\303\215ju-\16t#<\2\xc3\205!\xc2\xb7
:\302\xabKEA\302\xa3\303\255\xc3\222\303\221]\303\200\xaU\xc3\246Q\302\255KE\303\200\302\xa0#\342\x82\254\xc2\277X\xc3\xa5\302\250\303\xb75[\303\212>\xcb\206\x8`/\xc2\xa3\303\x8dD\302\xb5\303\x8a\303\226\302\xadV\177Ep\xc3\240)\302\217\303\xa5I%\303\x8fq\303\x9f\xc3\x9c\xc3\xbbn\303\xadx):\302\xa4\xc2\xa7le\302\xa2\xc2\264\xc3\225[\37e\303\225\\xe2\x80\xa2eV[j\342\x80\xa6\342\200\x93\302\xa3\xc3\251\xc3\2217 -+\303\226\303\237G\xc2\x8dWEwt\302\257WkE\xc3\205~u\303\xacQ/m\303\xb5#\xc3\224\xc2\x90W\342\200\x94`\303\275yu\342\200\234\303\x87\302\xa3D\xc3\x9dA\xc3\xb6'\xc3\x97\302\xb1\x1e\xd\xc2\261\xe2\x80\xa2\x10\xc3\225\xe2\204\xa2O\302\x9dD )Z\7\36M\27\27^\342\x82\254\302\xb3u-|v8]\342\x80\xb9g\302\275\342\200\230h\xc3\xb6\303\x97\xc3\205L\303\xa0\17\342\200\223W\x0\xc3\270\2\303\210\303\2736\303\213X\342\200\xa0\xe2\200\230=Y\xc3\224d\17\302\xbdQ\302\xad7\xc3\217\xe2\200\234\xe2\x80\235\303\217\x119\302\243\xc3\247\xc3\x8d\10\xc2\262\x19r <\xc3\203\303\226\302\x8f\xc3\xaaD\20\xc2\xb3\302\272B\10`c\302\xa09\302\277\xe\xe2\x80\231\303\x88`\xc2\x8f\27D\302\254=wx\302\xa9I%\303\244,\xc3\xa1\342\x80\x9e\xc2\xac\342\200\240\xc3\250\33\xc2\262\303\xa0\xc3\xaa\306\x92j\xe\10[\xc3\221\305\241\xc2\x9d\xc3\226\x18\303\xad\303\x9fO\xc3\xbf\342\200\xb9\302\264\25 ``\305\xbd\xc3\205|\30\x1b\302\270\xc3\262\303\262\xc3\206\303\x9e\xc3\270\302\244\32\305\x92\313\234\xc2\xbc\xc3\255.\xc3\x8c\x9AO\305\240\xc3\x80\x13\303\x84\x9\xc2\267\342\200\260@\303\245\x1@ 0h\272\xc3\255\\xc3\xa2\303\220\xe2\202\254M{\5e\303\xa3\xe2\x82\xac9^>\xc3\xb4\xe2\200\xa2\303\xa2@7\0\303\xb2\303\264\303\213\342\200\x9aW\xe2\200\x99\342\x82\254\303\xb2\x12$,\303\255\xc3\211\303\x85\305\241\20\x3\xc2\xa1@\xc3\x98\342\202\254\303\222\xc3\242\xe2\200\242\303\245\xc3\x97w^f\x3m\303\xa5\342\x80\260,\x0\303\217yD,\xc3\x97\xc2\x9d^X\20\342\x82\254.\xc2\257\xc3\226\xe2\x80\240\302\2517\303\243\xc2\xb7\1\xe2\200\xba\xc3\203\303\x972\31\303\235\17\26\xc3\x85f\x3;\xc2\xa5\342\202\xac6\xc2\xab\26\xa\342\x80\x9d\302\244\305\275\342\200\246^\305\xb8zC\302\251\303\227\xc2\247\x11mz\342\200\246\xc3\251n\xe2\x80\x93^\xcb\x86\303\xb4\xe2\x80\235&LFF\303\252\xc,\302\xb0\xc3\xb6[\xe2\x82\254\xc2\245e\303\210\xc3\265aXy9h\x8\342\x82\xac!:z\x3\xc3\2159c\xc3\262Q9b\35\xc3\x85 !\xe2\x82\xac\302\xa6\2\xc2\xb5Gw_W\303\x89g\xc2\xa59\302\251\x6\xc2\x8f\303\x93S\x5+t\302\xae\xc3\x9a\xc3\241p\303\235\x1et\xc3\211\306\x92\xa\x2m+\342\x80\x93\xc5\223\xc3\x9e\xc3\231_\303\xb0\x9\xc2\xa1\302\xaa\\302\274\xe2\x80\x99\xc2\235k5\302\xa3\xc3\x92\xc3\x9c\x1]\303\2064\313\206_\x17h\xe2\200\2429 \25\303\x99\303\267N\xe2\200\246\xc2\220\xe2\x80\x94\xc3\x85]%|\302\xa5\313\x867\xc3\x8b\xc3\226\305\x93\305\275];\342\200\235\303\257\x3\xb|\xc2\235\303\261\xc2\xb5\302\xa0\303\x9f\x1f\x1dX\303\275\27\xc3\x8d9\303\x95|\303\245\xc3\xb1\xc3\227\303\214G\302\xa2\xe2\x80\234\xc2\250[\xc3\227\xc3\224\x0\342\200\x98}U\xc3\xb1\xe2\200\x9d\303\247\303\x9fMC\302\x8d\17I:\303\x92qO\xc2\xa8V\x11\xc3\x94\xc6\222\16a\0
\303\261R\xc3\x8d6\xc3\217\xe2\x82\xac\xc3\203\0\xc3\270@H\xc2\xa2\xc3\x85P+\3r\xc3\xacS\302\xa4W\303\243\x7\303\250\xe2\x82\xac\303\xb8p7\303\xa4\x5I~\302\x90p/\xc3\270\x2\302\xa0\x3H\303\x8f\23^\303\x9d\303\252\22\302\262\xc3\274\302\xa4\302\xacE\xc2\xa7-%\303\273\302\xa5\303\214\302\273\xc3\215\x7f\2&.\303\216\xc3\x84+\x16\302\270J\303\221\342\x80\231;:\x3\302\263\xc2\266\xc2\xab!\342\200\x9c\x1a\xc3\xbd\xc3\x90N\xc3\xb0\x9\xc3\x86~\303\266\302\xaa\342\x80\xb0\xe2\202\xac/\342\200\x9cW\x3\303\x84\303\x82!\342\200\x9eB\xc3\250L\31\x10+\6\303\x82$\303\260\xc3\xadq\xc2\247=\xc3\xbc\302\277+\303\x91`/\xc3\206\xe2\x80\x9ee\xe2\200\x9e\\3\36\xc2\261\303\x92\303\217x\303\200pE\342\200\x98l\x16pS\xc3\202JS\177\302\215\xc3\x9d\xc2\xa2\24\302\275\303\266\xe6\2\xc3\240\xe2\200\241_\xc2\271\177(\xc3\205\302\xaf\26\302\251\303\x84\303\xa9b\O\303\x86\xc3\212&\xc3\xac\xc2\274\\303\22059\xc2\x9d\0\303\273\xc3\x82\342\x82\xac9\3n\xc3\xb1\30\xc2\217\xc3\270\10D\32\xc2\270{\302\241$\303\241\x8\302\xb8\xe2\x80\271K\xc2\x90\xe2\x80\x98v2	\x17d]\303\xa8v\342\200\246C\302\x81\303\225\303\276\303\205\xc3\x95\5?\302\201tf\21|\3W\x7f\xc3\234:\xc2\xa3\303\224\6\302\250\33\x8p&\xc2\277\303\xa0\x19L\16n\177\xe2\200\236\xc3\x8e\xc3\250\302\xb3\xc5\xbe\303\256{;\xcb\x86\xc3\xa7\xc3\232G\302\201R9\303\270\16\xc2\220T.y\xc2\271\xc3\xbc\xc3\xafI8\342\202\xac\x19\302\xb9\302\xb4
l\xc2\260 \303\xba	T\xc3\xa8\xc2\xa0n\342\200\x9d3\302\xbc\xc3\xb6\xc3\xb0T.\xc6\2229\xc2\xb4\xc3\xa83\xe2\x80\xba\302\xa0\305\xa1\302\274Z\xc3\xa8s\302\241\302\257\303\221\x19\xc3\222G\303\xb1\xc3\xbe\305\xbd\xcb\x86:\36\x9\x40\302\xa3\302\xa6\xc2\xa3z\303\xa8\xc2\xad\303\x9d.\305\x92]\303\x80\303\247\303\x84\302\243Q\xe2\x80\272?\xc3\xa0gT\302\xbb%\303\261\342\204\xa2\303\225x\xc5\222\303\225\xc5\222.\342\200\236\305\xa1\3\303\224\x1\xc3\207n<\xc3\254\xc2\xa3-\303\2428B\xc3\213\302\263,B\3\303\262\303\xac\xcb\234rgQ\xc3\xbe\xc2\xa2\303\xad\303\x9f\303\263\342\200\236\303\x89\305\xbd`\xc3\232\303\2412\xc3\251\xe2\x80\236:\303\256\302\xb5\302\275{\xe2\x80\246\x8g\303\253\22\303\x84s\342\x80\236\xc3\270g\303\xb3Z\xc2\xbf\xe2\200\242\xe2\x80\xa6 \xc\xc3\x97\305\x92<\303\246\x10\1\303\x97w{\302\xa6\313\234\30\23\xc6\222bU9\xcb\206\x9`5`4\xe2\200\x9e\x1\24\x0Bx\3Mp\303\xb0\342\x80\x988qnah\xc3\xa9\xe2\x80\xa0\x2@\xc3\x98\302\xbc\xc3\255\342\200\240-\303\xa2(\342\x80\x94>S\24|0\xc2\xae\xe2\200\xa6\302\xbe\302\xa5\xe2\200\2463\303\2418h\0\xc3\221\32\xc2\xab\xc2\xb5C\303\x94\4zLQ\305\276@\302\266
?\xe2\200\240\xc2\xb8`A\303\x80\xc2\xa0>2\305\241\xc3\202,\303\xb7\303\xa1\313\234\xc3\261\34N\xc2\201&\305\222\302\253x\313\x86l8sah1\303\xa8|\xcb\234B\342\200\241\xc3\211\xe2\x80\xa1D\xc2\215xB\303\x9e#\x2V\x12\342\200\224\342\x80\xb9\5V\342\x80\223\36\36\303\x97\305\xa0`W\26\25\303\xa2a'@\342\x80\272\xe2\x80\xa1\xc2\xac	X_?
\xc3\xac\xc2\276  \342\200\xa2_\xc3\242\302\x81. \xc3\x98P\xc2\xbcr2\xc2\256\34bUar\x3\303\200I\302\xb8~\303\xa1\xc3\xb1\342\200\246S\xe2\x80\x9c\303\xa0\303\xba\x0\303\227\342\x80\xa6\16"\302\xa02\xe2\x82\xac\303\x96\x19\xc3\276\25\xc3\x80>b;\xe2\200\xa6v\25Ph\6{\x7f[\xb\302\2607a`\303\x8b\x3\x0\20\303\xaa\303\x8b\xc2\262\x15\x18j\342\200\224o\xc5\x92~\302\267\xc3\273\303\276\x6v\xc3\215\x15\x6\303\x99|fv\xe2\200\240\74[\xc2\xbd$\xc2\266\xc2\xab{\303\263\302\xafP
\x4v\303\246BKG\xebp\303\253\xc3\210\303\x85\xc3\xb8\342\204\242\xe2\200\223O\xc5\xa05\303\235\xc2\xa02\0j\xc3\267\303\231\342\200\236L\x1c\305\xbd\x1\xe2\202\xac\xc3\256)\xc3\207m\xc3\xa1\303\x88V\xc2\241e\x5jBB\xe.'R{C\xc2\244\xc3\xafV'`\xc3\230\xe2\200\x9a \342\200\260\xc5\xbd%\xc2\255\xc3\207\xe2\202\254\xc3\x90$\302\240\16O\303\xa5\x18\xc2\x9d\x0\xcb\234`\342\200\x9a\xc2\x8f\xe2\x80\x99\xc2\2534 \303\214N\303\xb2>;4\xc2\243\302\xb3\xc2\xa2/\303\x8c\303\x8f\342\x82\254\302\264\303\x80*\26\xc3\202\303\270\\305\342\200\x9e\xc3\205\xc3\x81!\xe2\x80\xa0\x14\31\x17\xc3\xbb`X*\303\x9e%\xc3\xae\xc3\204N\xc3\2153S\303\xb5A\2M\xc3\264\303\xbe\xc3\x8b\303\206\xe2\200\235\1\4,\x2\303\2761\16\302\xac\xc2\262\302\xae\303\xad\\x1b\x17\302\xaf\302\xb2c\3a\x16\xc3\x8f\302\xa7\2 \xe\302\263\303\271@\303\230\4\302\254\303\213\xc6\222\302\xb8B/\xe2\200\236\xc2\xac\16\303\x8d\303\2700\x12`\xc3\xb3v2\xc3\257\xc2\xa1\342\x80\236\xc2\xa7\xc5\x92`hD\303\x85JO\x17$\xc3\247\xe2\x80\xa6@\x6p!9\313\234!\xc2\245
1\xc3\2707pB,>8F4\302\xaf\303\245\x1bf\17\302\xa0\303\217\342\202\254:\342\200\234\20\xc3\xb1\367\xc3\202\24\xe2\200\x9e\xc3\2563\xe2\x80\272\302\2433\xe2\200\246\xc2\xbf\303\240\3\xc2\260T8\342\x80\224=+~\303\230n\302\xab\xc3\x8e\303\242\\x3\303\x84e\xc2\xb8<br\xc2\267\xc3\276\33\xc2\240\303\xb8F\303\230\302\262\x1c\xc2\xb0 \xc2\220\302\xb9\x7fC\xc2\xa1N\xe2\x80\271:\20c\36\34\xe2\202\254:\31\xc3\x94l\xe2\200\x93<\xd\342\x80\xba\xc3\xa3\3\303\240>\x18\303\xb1\xcb\x9c\x1f\342\200\241\xc3\2006\302\201ONn\xc5\xa0\25\xc3\xa4!;\303\xa1\xc3\xb1@\342\x80\272tw\xc3\xab^F\303\xa9\xe2\x82\xacL\303\xa0;\xe2\x82\xac\xc3\227\x1c\xb\xc2\272,\35^a\302\x8f\303\x88\xda"\303\236\303\200\26\303\x9a\xc2\256'\303\xba:\342\200\x9ev\303\240Je4\303\x83\303\x97\302\x90;\xe2\x80\242\xc3\261_d\17
4\33\xd\xc3\x8c:\x14\x16\xc3\233\xc3\xbc\303\x80\302\xac\x3S\302\x90\xcb\x9c\xc2\217\303\240\302\x902\xc2\201\x1a\xe2\x82\254[c\xe2\202\254\xe2\x80\236X\xc3\xbf\xc3\212\302\xa6Pl\xcb\234\26\20$\34\xc2\271\x4\xc3\x9e\xc2\xa3\302\220i\xe2\x80\x9cw\303\xa5d#\31\xc5\xbdB\xc2\xa0\305\xa1b\x17\x19\302\x81\xe2\200\272\xc3\216\303\x97\4\xc2\244\303\xb5\342\x80\x99\xe2\x84\242`:\342\x80\240\xe2\202\xac\303\217~\x11 <\x0\303\221\242\x4\303\x99\33\xc2\xb7\xe2\x80\x94\342\x80\x98R\305\222\303\202\303\x86\26P\x3\xc3\x88\xd\302\xb8J8D\32\xc2\241t@\303\254E\305\xbd\303\xa8\0
\303\x8d\305\2236\xc3\xb6\xc3\xb3\303\xa4\xc3\2367\xe2\x80\xa2\xc2\275\xc3\xa4\x3\313\234Y\xc3\x8f\21\xc2\243\303\272"\xc3\xa5\xc3\xa4\21\x17\303\x80\xc5\xa1\xd\303\xbc\x4\306\222\xc2\xa6\303\200\xc5\xa13\xc6\x92\302\241.\xcb\x9c+\302\xabz3\302\261\16;_\xc3\212\305\270vL\xc2\x8f\303\235\xc3\xa4\303\223wJ\xc2\27794\xc3\x80I\27\xc2\220Ja,A\xc2\246\303\261\32\313\x86\xc2\xaf;\306\222s?\xc3\226N
R\5\xc2\x9d\x19\x10\xe2\x80\241!\305\275\xc2\xa7\303\235\302\220\xe2\200\xa0Om\xe2\200\246\10s\x6\xc3\210_\xc3\xa6\5\303\240-z\303\233\xc2\255w\342\200\x9e\xe2\202\xac\xc3\233z\303\x9c\302\2557\xc2\241\xc3\x8d\303\205z\xc3\xae\26\303\xb7\xe2\x80\223M\302\215\342\x80\235\313\x86\xe2\x82\xaco\x12\10\302\xbf\xe2\x80\x9d\xc2\xa5\xc3\xa6\0\302\242\306\222a\342\200\x9d\303\x85\xc3\235\xc2\xb94\303\xa58\xc3\xa8Pf\303\xb1Y\303\245?\xe2\x80\x9d\303\262i\342\200\x94\342\x80\223eB\x3\xc3\x8eS\xc3\2401\0\303\211\2jD\31TeK\342\200\235\xc2\256UYS\xc3\xa5?66R	\302\246c\303\2656Ry[c\xc3\xb7\xe2\x80\x9d\302\xb05\xc3\x99]B\xc3\215\xe2\200\x9d\303\226R\xc3\271_eA)&\x16\xc3\xb9[\303\xa5\xe2\x80\xa1\342\200\242\26XYR\2W\342\200\2236VYaeU\342\x80\xa2fY\31e\xc3\xa5w\342\200\242\305\xbdU\xc2\271b\xc3\245w\342\200\235E\303\253\xc2\260\303\212\342\200\240;z\302\xa4^W\xc2\xab\29\342\x80\223\303\xa4\xf\303\227\302\247\xc3\xa4\xc3\x9d\xe2\200\x93\303\xb5\303\253\0<\xc3\x9e\313\x9c\303\250e\303\2529S\xc3\245\303\216\32\302\244da\xc2\252\x9\342\x80\235_\x1b-\303\256\303\xa1\342\200\260L\303\x978\5\21\xc3\x87\342\x80\246\xc3\215\30Q\xc3\xb6\xc3\xa8TH[!<p\0\xc2\243\xe2\x80\x9d\x1aPy5\313\x86|\342\200\224#\xc2\x81\xc3\252\342\x80\230P\302\263	\303\x979v\22\303\xa0\305\2412\303\x82\10|\xc3\x87\xc2\270\36\xc2\x9d\303\241\32fa\xco\5\342\x80\xa0\303\241,j8\303\227$A@k\303\xb1\x19\306\x92\302\277\305\xbda\303\x8b\x1d\342\x80\230\302\275b\xc3\xb3\x1bc\xc3\261\303\210\x11f4!4\302\250\342\200\x98\302\266cr,;\342\x84\xa2\31\342\200\x98\xc3\xa6\x3\342\200\230\303\266b\xc3\x86=\xe2\x82\254\xc3\x82;\x0\302\260\303\xb8\303\x85\xc2\xba\342\x80\xa6\313\x9c\342\200\240cd\303\203\xc3\246X\31\302\xbeb\303\xacx\xe2\x84\xa2a\xe2\204\xa2Rx0A\303\243h\302\243+w\303\xb0xN[\xcb\x9c\303\x9cB\302\x90\7\xc2\267\36p\303\x9a\x4\xc6\222\24\xc2\277w\342\x84\242T\xc3\2008\3\x16\16T\2%\xe2\204\xa2\xc5\241\10M\xc5\xa1l2\xc3\240\xe2\x80\xa1\302\275\302\241\xc5\xa1\302\x90\xc3\xb0\342\x80\x94}\302\241\xc3\x88s.k\4Y\342\200\x9e\313\234\x80$/\xc3\xa8fU\xe2\202\xac=\303\276\xc3\230s\xe2\200\236\x10gK\xc3\203\x19\302\xa1\313\206M\342\x80\xba \xc3\xb5\2\xf?\303\xbf\342\200\xba\x1c\xc3\xa7`4c.\xc3\x94\xc3\xb8!\xc2\241&\xe2\x82\254\xc3\245\xcb\206\xe2\x80\xa0g\xc2\260\xc3\xbbf\xc3\240/\303\xbef1\302\220=\xc2\257\xe2\200\xbaV AE\25<\x18#\xc3\x8c\302\271\302\241f\xa\x12\302\273)\302\xa0\xc5\xa0\2\xc3\253\342\200\272Np\303\xb2\xe2\x80\234\xc3\243`\33.""\302\xbbA\xc3\xa7\xc5\223\x4\xc2\xa4\xc3\243\x17\342\x80\x94\303\274\x3\xbq\xc2\270\302\201\23X\x8\342\x80\234\xc2\xa0\xc3\x99\xc2\254:\xca\xc3\x898\342\204\242\xc2\271f\xc2\257\xe2\x84\xa2Vs\303\xb3\xe2\200\271\27G\xe2\204\242\303\x9er\305\xbd:\xc3\xa6V\xc3\x9e\xc3\206c\31\xc3\x94g\33\302\235Vl\342\204\242\302\235g=\302\x9d\302\x81`\xc3\xa3\x17\342\200\x9cW\305\275\303\213\303\xbdy\xc3\x92gU\302\235\xc3\200\xc3\x8b\342\204\242\xc2\252\303\xa1\302\272\xc2\274\303\xaeeT\5=\302\xa0\x18\xc\6\xc3\xa3\x17\342\x82\254\xc3\241\xe2\202\254\303\x86x 0\303\242 M\302\274\x2@\313\x86\2\302\xbb\xc5\xa1\303\x82%\xc3\216\302\xbab\302\xbd\xc5\x93\xc3\xbew\xe2\x84\242\303\206f\x10\303\x9b\303\231O\xc3\xb8\x3\xc3\247\xc2\255\xcb\234\xc3\x9c*0\302\257\342\x80\246\302\xae|t\xc3\xa1\xc2\260%\x1c\302\xb1\342\204\242P\303\x88\xc3\215p\xc3\246\xc3\272gK\305\276\303\xb9\302\254?p\xc3\264@J\303\x80<B\xc3\231\xc5\270#\xc2\255`1\342\200\236\303\2569\xc3\2762\303\xa7\xc2\x81g\302\xb6!3~\xc3\230\303\x9c\xc3\xa7\xc3\256\22nl\xc3\244\xc3\x85f\305\xa0\303\230Vh\xc3\xb9\xc2\xac\x4\xc5\xbd.\xc3\x91\x7f\xe2\202\254\303\xa0\xe2\200\xa6\xeaC\xc3\x91\xc3\xb9\342\x80\242?\302\263\xc5\240\xc3\xbb-\xc3\xa01\xc5\22368>A\1\xc2\xa4\x7\xcb\206a\xc3\x88
\342\x80\x94\302\246\xcy\xe2\200\xb9\x180\xc2\240\303\x96\3\20\x1i\342\200\x98J\x16\302\253}\302\xa0\303\240\302\xb9\xc2\235\6\xc2\xa9\302\xa0\xc3\220\xbz\20:
\302\241)\xe2\200\x98S\xc3\276\342\x80\232\35\302\xa1@\xc2\242\xc3\245h@\xc3\244\xc3\266\xc6\x92Y\302\xb9\xc3\xa3\31\16\302\264\7mCEg\xc2\241\x1ecy\xc3\x8f\xe2\200\240\xc2\x8d\xe2\200\x9a<\303\265\303\240\303\x8dh@\302\274@\xc2\xabz\26h<W\xc3\x99\xc3\204`\xc3\202\xe2\200\xa2\xc2\xa8\xc2\xb1:zO\xc3\xa3\303\x8e\xc3\226\xd\xc3\x8d\xc3\252W\xc2\253\342\200\234\x16\302\260V08\xc3\x99f7\342\204\xa2(Gy\xc2\220\xc6\x92\xc2\262`St#\xc2\x81\x4\xc3\257\xe2\200\236f\xe2\x80\240#\xc6\222\xc2\xb2\xc2\x81\xc5\x93C(9\303\210\xc3\x82\x5\313\234\xc3\x98\342\x82\xacd\303\xb9\xc3\246\303\xa6\328T:\x18\xc2\257\302\xbb\x7f\xc5\x920\302\xba\x18\xc3\xa8\x16\30 \16\27q\x2\302\xb5\xc2\xa0\xc2\24079\302\267\303\xa1\302\243phA\177g\xc3\234\166\305\240.\xc3\xa3\xc3\xa67Fr\x5\342\204\242b\303\xa4 \303\210j\305\xa1\23\xc3\xa8A5\xc3\xae\xe2\x80\xa6\xe2\200\240\26\xc6\222\303\xa1\302\241a1\303\xba\x16\xb\xc3\x9a\26h\342\200\242ZCh:\10\xe2\200\x93%\xc2\271\303\x8egU\302\xa2\xc3\xb0D9\xc3\226\xc3\205\xc3\211\xcb\x86\342\x80\x9e\xc3\227\302\xb9\303\217\303\2510\x8~vT\5i;\xc2\x9dVvS\305\241\342\200\x9ew\xc5\x93\xc3\230
\xc3\216\xc6\x92?\303\240\xc3\x87f\7\xc2\262\302\243\xe2\200\246\303\277\302\xa5n\xc5\xa0\xc3\x8f\xe2\200\xbaiY\xe2\x84\xa2\3\303\254a\xc2\272\xc2\2543\302\xa0\xc3\x8e\xe2\200\2419\303\x95\x4,
\342\204\xa2\303\203r\xe2\200\x98\342\200\xb0,/,@.:\303\xa8Y>&\342\x80\246\xc5\241\x15F\303\x91)\x18\302\x8f\xc3\xba\x16\xe\342\204\xa2\302\x8d\302\266}\xc5\241\26b\xc2\243\xe2\x82\254\303\xa8iO\303\235i\302\235\16\303\246\xc5\xa1:d\xc3\250A\xc5\222n\xcb\x9c\xc5\241\20c=\302\xa4L9O\342\200\x99h{\xc2\xa6\x1b\xc2\220 8hY\17.\xe2\200\x99\16\xc3\231\303\200\xc2\xae\x13\xc2\276\342\x80\xa1\302\256\342\200\xa1\xe2\200\xa6\x11\305\x93\33\303\xbc\303\x87\xd\302\254\5\xc2\215\xc3\226\342\x80\241\302\xa3\x1f\xc3\200\xe2\200\xba\305\240\303\2511Q\302\257\2U\x9\342\x80\x9dC\x12\342\x80\230h\303\xb4\31\342\x80\240e\xe\xc3\277O\342\200\260\342\200\xba\xc2\260+2o\xc3\x8c\303\x8e\x12\xc3\254\303\x9eN\342\200\271\313\x9c\303\xb7\xc2\xa7\303\270\xezp\xc3\250\xc2\242(\303\xbe]\xc3\x93h\342\202\254\303\245\302\xa2\x12\x1eZ|\xc2\xacO\xc2\xa1c\303\x91zD\xc3\241\xc3\xbe\302\201;\303\265T\x0j\x1f\302\241\x0\342\200\2468#\xc2\x8d\x1f>\303\x8e\xc5\275\xc3\201=bZ8Fj\303\xb3\303\254\xc3\xa9\x13;\303\xad\xc3\x9e\302\272T\303\251\xe2\200\xa6\xc2\241\x6\x13w\302\xae\303\x8d)\302\xa6\x1c\303\275\303\270N`\xc3\xa6\303\xab\302\250\xc\xc2\xa4\303\203\342\x80\246B{\xc3\273\xc6\222z\x16\xd\xc3\263\xc2\241c\342\x80\234\303\223\x11\303\xa8|dTG\342\x80\x9c\27i\xc5\x93/\xc3\273\xc3\xba!i\342\x80\240\xc3\212\40\20\302\xb1\xc2\274\xc3\270'`Z:\305\xa0CH\xc3\257(8\303\x82\xc2\217\303\252`\34V\xc2\xa5\xe2\x84\242\303\232\303\243\x14\x14\xc3\xb6\xc2\xaa\x0\303\x9c\xc3\252\302\247\xc2\251\xe2\x80\xa0\302\xa3W\xc3\xaf\303\x9f\303\207\302\xaa\313\x9c\303\x95z\20gG\x2\302\xbe\xe2\200\230\xe2\200\xa6\306\222\302\xbd\xc2\262-[\xc3\203\303\220	i\xc5\x93\xc3\252N\xd\32q\302\xba\303\xa9\302\253n\xe2\x80\236\x2\xe2\200\236\xe2\x80\234o	\xc3\206\xc2\xa5fEJ\303\275\302\241ap\x1ab\xc2\xb9\303\xaa}6\302\243\xe2\x80\246\303\225=o\xc2\xa4\xe2\x80\x93\342\x80\236,t\xc3\xa8Y+\303\266\xc2\256\x6EC\x10
\303\x96Px4=\302\274\x3\xc2\276\342\x84\xa2\303\x99@\xe2\x80\xa1\xe2\x80\xb0\302\xa6.\xe2\200\240\xe2\200\230\33F\xc2\xa3\xc2\x8d[\302\xa1zq\xc3\247\xc3\x9c\xc3\250X6:\26FG\302\xa8\xc2\xa0#\302\260\303\xbb$@\x3&\302\255a\2b\xc2\244\303\276hE:\xc2\xb2\xc6\x92\303\245\xc2\xac\303\244\x10`\xc2\266\x8S\xc2\xad1\342\200\x941\x7g1\xc2\xa9\xc3\xbe\342\200\2362uhY\342\200\271\xc2\xac_\x11:B\303\x9f\302\xa1dc\303\xaf\xe2\x80\x93*\303\277\xc2\255\xe2\200\xa0\0\xc3\272\xc3\x86\xe2\200\224FYF\xc5\223:\xc3\x8b\24\xc2\243\302\252n\xe2\x80\236\303\230\xc3\x8c=\303\x9b\xc2\xa8H*Z\xc2\274Mh\26k\302\x90/\xc2\215\xc3\xab\306\222\302\241\4\305\xbez\303\x99\302\271\303\257\342\x80\xb9\302\xb4]\xc5\241\303\x81h@\xc3\264\xc3\246\xc2\251\xc3\230\35\303\xa31\x0\313\x9c\303\xb8Z\26K\16\xc3\xb9\305\276\xc2\242\xc3\253\xc3\216\303\206\303\xa8^+\302\272,vf\303\xb3\x7fs\xc2\xae\xc5\241>\xcb\206\302\xa4\xe2\200\x99\21O\303\xa3|\303\250\303\200\xc3\x8as\303\x83\0\xc3\x96\305\2235\177\303\266\x11X\xb\6\303\xa9\xe2\x80\xb9\xc3\xae\2\303\221\302\257F\xe2\x80\236\xc3\xb7n\xc2\xbfA\x16\313\206r]|\x1d\303\x8fIi4\xc3\xa8\xe2\200\xa6\303\276 \xc3\x98\303\202C\302\260 h@\303\x98\302\271\xc2\264\305\xb8\305\xbe\342\200\x93c\x17\xc3\237\302\245\302\xa86smO\xc3\x83\303\245\31\xe2\200\xb0\xc2\x8d\xe2\x84\242\xe2\200\272gX\302\xacV2\302\xa66g?~\xc3\226\303\x83Y\303\225\x6\xc3\221\302\260\xe2\x80\240s\xc3\272cl \\x4R\305\xa0\0\305\222\xc2\250c\xc5\223\xc2\x9dA+\305\x921\302\260\xe2\x80\236\xe2\200\272\303\xb9\xc3\214\303\251\302\x8d
(\xc3\x91\303\xba\303\x83\xc3\214^36\x1f8\x7fcz:\3=z\xc3\xb7\342\x80\x9a(\303\244\303\270 ;\x19\303\250\302\xa3\xc2\xa8\xc3\261\xc2\217s\303\274F\xc2\xb6\30@`;\x17\xc3\254\342\202\254,>yT\5\303\x9f\xc3\257&\342\200\223\xe2\200\xa2d\302\xbdL\xc3\x97\305\xb8\xc5\x93\xc3\xbf%\303\x92\3\306\222\16-\x7\xc3\xabCHL8
\342\200\241\303\207b\xc3\xbb\302\260\302\xb0\xc2\243\303\xbaMj]4\26\xc2\x90Ym9\xc3\274\xc3\233\303\274\303\x90Z\303\x9aB\xc3\xb8\xc3\257P\x7f\23}<\3\305\270\303\273\xc3\240X\x1e\302\262\302\257\342\200\260\xc3\214\302\245\303\241+g\303\205\16^\x12\303\230M\303\236 +\x6 B_Fd\xc2\254X\xe2\x80\x9e\xc3\270\xe2\x80\xb9l\303\263w\303\x88~\303\xae\xd\303\xa2\302\xbd\xe2\x80\xb9\xc3\250":\303\224\303\252q\x1A1X\xc2\276\xc3\254\xc3\xa6\302\xb2\36\xc3\220\303\270\xc2\xaf3\xc3\x96\10\303\x8e\xe2\x80\234E\xc3\241h\xc2\xb1\264\xc3\237ZZ\x3\xc3\202\303\xb3\302\xb8&\302\240\xe2\200\246\303\xa6\303\2461~!N\302\x81f\xc3\243\xc2\xb4\303\xb6o\xe2\x80\224\313\206\342\x84\242\xaMe\303\x9c\xc3\240\302\xac\xe2\x80\236\xc3\xae\303\253XI\303\216\342\200\x9e\xc3\255G@V*X\xc2\xaf\342\x80\xa0;\302\xb5Y5{V\xcb\206\xa\xc3\250\21\302\273\303\x8fT\303\251z
F\xc2\2403}m\xb\17\302\266\xc3\x94p1\303\255[\342\x82\xac>\302\xa9t\16\303\250e\xc2\xb6\6w\342\x84\242\xc5\xb8\xc3\xa6\303\253@V\303\226z#\xe2\x80\232\37\302\x9d2\xc3\x84\303\257	i\303\xb4\xc3\264\303\216{\303\xa39\xc6\222\342\x80\x9ap\303\x8c\302\x9d\xc2\xbbgh\xe2\200\x98\xc5\xa0\xc3\xa6+[elU\342\200\xb0\xc2\xa6\303\x9bA\x1\303\x9f\303\231\xc2\266\303\223\xc2\xbci1\303\x84!\305\x92\302\276\16omm\302\265*\xeK\303\xa0\xe2\200\xa1\xc3\252}\302\xb6\302\260!\303\xad\303\x86\xc2\xb3\303\255\xc2\xa1\xc2\256\xc3\235{me\x11\302\267f`\342\200\x9c\342\x80\x94m\xc3\xa8\x12\313\234C\xc3\233z\2=\305\276n\xc3\236:}g\302\260\x10 T\342\200\272mLu1F\303\234\xc3\x9a}=8\22\302\xb8Z\303\241\x10\303\xad\xc3\xa8O\305\276\x2\xc3\x9bmFFMf\302\xa4\342\200\xa6OO\xe2\x82\254\xc3\260\xc3\xae\303\xa1\303\x80\342\x80\271\306\222\303\xa8\2\303\270\303\237/\xc2\xbc\303\xa9\303\265\302\xb8\6\xc3\236\342\200\x9c\xc5\xa1\xc3\xa5\xe2\202\xac\xc3\xbeV\xe2\x84\xa2oqj\302\263\xc2\262\303\xa8n!+\xc2\275\302\220\xc3\262\xc2\265\xc3\274Z\xc2\250\xc3\x8bI\xc2\xb9.\303\x8c9!nG\302\271\\342\x80\236\342\x80\xba3\31a\xc2\xb9~\2\342\x80\246O+\17\x6\303\x8e\xc3\xa5::\303\256K@\xc5\222
\303\232@\306\x92\xe2\200\230\302\244\x1eH\x12ph\xe2\200\230\302\xb4\B\xc3\204\xc3\xb5dm\302\235fvC\24\xc3\250\xf\xc5\xbe\xc3\x93P\303\x9b\x15" \x3\xc3\xa6\302\xbd\303\x9b.nW&\xe2\x80\x93\xc3\252\x3\25n\x11\xc2\xa2\303\270HY\xc3\276+
\xc2\266\342\200\234\303\x84z\xc3\xb7i>Mfq\303\233\302\244\xc3\256\302\255\302\272\303\xb9\303\x9dQc\xe2\200\x9a[\xc2\255H+\x19\xc3\xa6\xc3\x80o\302\244\303\221*\xc3\2721'\302\xa4\xc3\xb7#\303\x84\302\201E\3w\xe2\x82\254D_X\x1e\303\xad\xc2\x81)>\xc3\x90s\302\xa3\xe2\200\236-\7~
\32T=\xc2\xbd\xc2\243\xc5\276\xc3\xa0\303\267\313\x86\xc3\240\x17- \xc3\255y\xc2\247m\xc2\xa7\xc2\271\303\xa6\303\260{\342\x80\236h\xc3\263\305\xb8\xc3\214j\xc3\x9aM\303\xa8)\xe2\202\xac^\xc5\276\302\271\303\257\xc3\200'@V\303\xa5\302\xa1+i\xc3\210\303\xae\303\x8e\xc3\xb2\xe2\200\xba\xc5\xb8\303\245\302\265\32\xe2\200\xa0\xc3\x89;F\xe2\x80\234\x15\xc2\xa0\x18D[\xc3\216b!\xc2\274\302\xbe\302\x8f\xc2\xb4\x5\x4B	\302\xa6\xc2\244:MP\x15\342\200\xb9\303\256\xc3\xb3\xc3\233\302\xadoC\302\274vAE?\xc3\xa9C\302\262IiY\xc3\x8d\23\xe2\x80\236#\xc3\276\x1dp\xc2\xb6P\24$k\xc3\xa2\6J\xc3\x9eq\302\275.\303\x890\35\x1c7\305\x93\303\276\xc3\266x\xcb\x86l\x12\x8\302\246sC|\303\xaf\x1d\302\275\xc2\276\x3b\x3o\xe2\200\x932\303\244X\302\252>M\xc3\xb4\xdl&\xc2\xbb\xc3\207\5:2\xc3\243~\xc3\233\303\x91cQ\xc2\262\303\256\xc3\262\302\262\303\246o\x1c\xc3\221\xc3\x9ed\xc3\xa1\342\200\x9a-\xc3\xbe\xc3\xa8U\xc3\234Ro\xe2\x80\x9aY\xc5\xa1nM;\xe2\x80\231n\xc2\xa9#\342\x80\x93\303\237\x0\342\x80\223P\x15\302\xbef\xc3\xb0\303\232Po\303\x97\xc2\xbf(C\xc3\232v<\303\212\33\302\254\xc3\270[\xc3\xb2o\xc3\x9b\xc2\xb8\xe2\200\235\xc5\241\303\xbb\303\227f\xc3\221\xc2\277\xc3\x96\xc3\274\303\201;\303\237\xc3\xa1\302\272\342\200\x93\xc3\265[\303\xba\2Y\xc5\270.o\302\xaeUp\x1\302\xbf\302\xae\302\201pU\305\222\303\270\xe2\x80\x9d.\305\276\302\xa0\302\251B\x5!'\x0\342\200\xb9\303\262\303\xa3<T\303\261\xc2\235:1\34\302\261\303\x80\xc2\xbe\xc2\xa0\305\241\x7\xc3\243\xc2\xa4\xc3\256<\342\x80\x9e\xe2\200\xba\303\260n\xcb\x86\xc3\256F\302\263\xc3\xb0\306\x92I\xc2\xa2\xc3\x87\342\x80\235\xc2\xb4\342\200\x9a\x17\3V0\303\212\303\x87\xc2\201RO8\342\x80\xb0w\x5\x17\xc3\270\303\216,aF\303\xba\xc2\274\x17\303\x89\302\245\302\xb9[\xc2\264\xc3\216\xc5\270\342\200\xa6\x10\xc3\261YO\303\xb9\302\253\xe2\200\xb0\33\xe2\x82\254/\0\xe2\x84\242\xc3\x99ox\302\x81\16\xc3\xb7\303\207Q\xc3\xb0?\xc2\xa7\302\260:\xc3\x99\342\x80\xb9\303\xab\xc3\x86\303\xa8`h@:\xc6\222\302\xab\xc2\277\303\xb6\303\x91/M\xc3\xadm\302\274x:\303\233\xc2\260c1\xc2\244\xc3\x96\xc3\240\303\273\302\xaf\xc3\255v\xc2\xb2\x1f;\342\x80\x9e\xe2\200\x9a\36\303\xa8^\303\xa6\xc3\x98\xc3\206@\xc2\xae\303\xb5@\xc2\xa3\xc3\272\x7\xc3\260\xc2\xbd\xc3\x82\xc3\x87\xa{\302\xaf\xc2\xbc\3\303\202\xc3\xae\xe2\x80\xb9\303\xa0;\303\247\34\10\xe2\200\x98\xc2\264B\x14\302\274\303\255\xc2\2708\xe2\200\x98\xc2\xba g\xc3\245\xc2\235\xe2\200\231\xc3\xa4\*g\303\xa5yC)\303\233\1\xe2\x80\x9eE\xc2\x9d^\xc3\275O\303\x84h\x9\xc2\xa1\302\263\xc2\246\34A\306\x92u>\xc3\206\xc3\xa8\303\xbc@\xc3\240D\xc3\214\6\342\200\240Y\xc3\xa6\x2\xc2\xbc\xc3\xad\37\x11\342\x80\272\303\xa2`o\xc2\xbb<>\xc3\200\306\x92p\xe2\x80\260\342\x84\xa2\305\240\303\204\302\xb7\xe2\x80\x99q,\10Y1Q\302\xa8\303\201\xc3\x9f\302\270\xe2\200\xa0\302\x8f/q\x1bg\305\x92\x0+\x0\xc3\242\303\xa6\xc3\xa5\xe2\200\241D\303\277\33\xc6\222\xc3\xa7?\302\xb6\6\xc3\276\x1c \303\256\xc2\xa9\34\xc3\x9a\xc3\x9f\27\303\xaek:\xc3\xb9$\302\xa9\303\273\xc2\254\xc3\xad\303\227\302\xa56~I\302\xa5\xe2\200\246=@\xc5\xbd\xc3\255\xc3\221!\10\xc2\276\xc3\xb9v\xc3\232zO\xc3\xb1\xc2\201\xc5\xa1\xc2\xb2\xc3\xa2\20+\303\215\xc3\xb5\xc3\x86\x16\x7f9\xc3\x87i\x1\xc2\xb3\342\x80\223\xe2\200\272\xc2\xbca\xc3\257\xc3\xb0\x10\342\200\xa0\xc3\xaa\303\273\xe2\200\xa6g\303\xb2\303\xb0\16\303\264\x1c\xc\xc3\xae\302\277\xc2\235\xe2\x80\x94\x1a\xc2\271\xc3\277?\xc2\x81\xc5\xa10Gn\313\x9cq\xc2\262]{\xc3\x92\xc2\270,F\xc3\241\303\x83\xc3\xb8O\xf\302\241\303\242\x3\xe2\x80\236\xc3\236 <_>f+\7\23\xc2\242\302\217\x16,\xc3\261\xc3\x8c	\xc2\273\xc3\224\303\261\302\xb1&\303\264\305\x93\x13\342\200\240\xc3\260\303\255\303\202\xc2\xb7\17\xc2\xbcy\xc3\xaa\3\xc3\x87\302\xa9O\303\xbc:\xc2\xacU\303\x82\xc2\xaf\33\30\313\206L\303\x86\xa\xc3\x83\303\203\302\xba\25I:2\302\263\302\277-\x1d;_\303\x84\302\242\303\210|%\303\251\303\245\xc2\264\xc2\277!\303\216\xc3\265f\xc5\xbe$\xc2\246\xcb\x86\342\200\xa0Xr"Kni\xc3\256\177\303\xb1\342\200\x94\303\200\xc3\x90$8#\xe2\200\272g\302\244t-\342\x80\272\342\x82\xacr@L\xc3\x93\303\xa5\305\223\302\217\xc3\xa8@\24S\302\xa3<\342\200\x98rN\xa\xc2\220D/\x1arLdQk\303\240\xc2\xa3\xe2\x80\234\342\200\235\36\302\252\xc3\265\xc3\x84\303\xaee\xc3\260\xc3\xa5\303\244\303\xa3\303\x90\302\255\xc3\245\303\xb8\xa=\x74)\306\222\xbB\313\x9c\342\x80\x9d\303\x8b\303\227\305\241\303\xb4\xc3\214Z\x1b-|Hb\xc2\241\x1a\302\201\342\200\xa0\342\x80\x98Hk\xc3\212*\34\x9\303\x96\5Q!\xc3\220'\xc2\201\303\xaaG \305\xbe\xe2\x80\272Ybt!\xc2\xbf\xc3\212(n,\xc3\254P\302\263O\x5fq\xc3\x91+X\xb\342\x80\234Y\xc2\261\xc3\277\342\x80\x9a\303\253"b F6\x1a\xc3\226\303\x8cr f\x7f\xc3\xb2\xc2\x9d"\xc3\222\x1b\303\x9c\xc2\xb3!N\302\241\xc3\263^\302\274\xc2\xa6r\302\xb1B_(\303\xad"\xc2\250K\xc3\x8a_-<\xc2\xb5\xc3\xb2\xc2\xa0\x1\x7f*Q\xc3\xb7\303\262\xc2\xa8\303\x99/,)\302\x81H\0\302\235\342\200\236\xe2\200\xb0\x1c\xc2\xb2r\xc3\xa7"z\x7f2(\xc2\xb9t\303\x99\xe2\x80\xa1.F>\xe2\x80\xa0\342\x80\xa1#3\x7f\303\242\302\256\x6\xc3\x98\x3\302\246268\x6\20sh\xc3\x99\xc2\240\5\xc3\xbe\x15\302\xa8\303\206\xe2\200\x98\10I\161Sn20\302\xb6\303\247\xc3\x8a-\4\302\215\xc2\2534\342\x80\231\xc3\x9a\303\2072A\xc5\223s(\302\2544\303\244\xc2\274\303\x8b\xc2\266\305\240\20\x17\x1b\302\201\x0\xc3\x86\303\235#\342\200\236\xc3\245r\xc3\xbe\x6K'\x10\xc3\x8b\303\x8d\302\xb7\17G'\342\x80\2247&\177
>x\21\xc3\237\xc3\xbc\xc3\x9cJ\xc3\x98GO8\1,\303\xb3\xe2\200\2460\x4\xc\xc2\xbc\xc3\xa2\xe2\x80\xb9\303\2718\342\x80\x9d\303\x91\xc3\223\x0\x4\303\263\2W9\xe2\x80\231\303\235I\xcb\x86\36?:3n\xc2\272
-w:\xc2\263\xc3\x82\303\x8c\xc3\x85\10\303\x97;3\xc3\x88\xe2\x80\260\xe2\200\235!\303\x8f;\xc2\xb3\xc3\x9c\xc3\252\xc6\x92\313\x9c\313\234Z\342\200\x99RM\xc6\x92+>\303\x96\303\x9c\xc3\xb0\303\x8a\xc3\xa90/=R\xe2\200\xa6'1\303\2174\xc3\x958\xc3\273\xc2\x9d\xc3\x91\303\x8fm\xc3\277%\303\x88\xc2\xa5}\xc3\x8f\xe2\200\xa19\302\273;\342\x80\x9a=\xc3\x8fnQ\x1c\303\xb6\303\xa3=\303\x8fhhL\xc3\xb5\302\267G\303\x8fkW\303\216
\xc3\264\x9%\xc3\2304\xc3\x92\xc5\x93s\303\xb1\303\216\342\200\x93J\xe2\202\xac3s\xc3\2334\342\x80\224@\342\x84\xa2U\xe2\200\232%$\302\x8d\x8\xc3\x9c\xc3\221N;\xc3\x8c?4\302\xad\302\273\303\xb3N\303\232\xc3\x8f2|\303\212\303\263Z\303\232\173\34\303\x98h\x0\16\303\x8f3\xe2\x80\2345\342\x82\254^\x8\xc3\x80xi2\26d\xd|\303\273M\302\267\303\x8a\xc2\xa3bh\10|\303\235#v\xc3\207` \0\xe2\x80\x9d\x2\303\xaa\xc2\x90\xc2\xae\303\244\303\240\303\273$\xd2h#\302\x8f\xc3\xba\302\xa4?\xc2\xb3\xcb\206\xc2\x8fI\xa\342\200\x99\302\274\302\x8d+o-\xc5\x93\305\xa0?6\1`\303\241\xc2\xb9\302\xbd\302\xbf.$\xc2\xb5\305\xa1\303\xb8KY%\303\x98\303\202\xc2\x81J?\302\246c\xc2\xb0R\xc2\217N#K:\302\260K\xc3\xa1EL\303\x81\3>:\xc3\201\x1\302\245@\26\xc5\x92\xc3\243j\x1eP\342\200\230\xc3\214n_t&slm\24\342\x80\231'\xc3\xa6\xc3\220\302\251\xc3\x89\xc2\xb8\303\x93\xc5\x93\xc2\xb2\305\x92\302\xbd\xe2\x80\x94\303\243;6\x1\303\x9b\xe2\x80\x94HU5#\xc3\254Q7U\302\240\xc3\275WY\303\234U bN\xc2\265\xe2\x80\223W\303\xbb_\303\273\302\252\302\251;T\25C\xc3\xb8[\xc3\235<\303\x9a\xe2\x80\x93>\xc3\x85\xc3\x87\303\265\342\200\xb0W\303\275CU\302\201\xc3\2246X#`MI\35:t\xc3\271\303\223\302\265\342\x82\254\xc3\xb6	u#`\302\255fu\302\xab$\302\253t\xc2\255\302\x81\xc3\266\24X\303\xb3`\xc2\215f\26<\xc3\x94;b\303\xa5gh\303\266\xc3\221\x1e\x2\303\2259\xc3\x977\303\230S\3658\xc3\xb5\xc2\xac\xc3\x9d#^\x1d\177\342\x80\x93-\303\265\x0\xc3\252\xc3\200\303\272\10\xc3\256\xc3\225\xc2\xb9R\20*\xc3\226'\xc2\xa3\xc2\250\2(\x8\303\xb5\303\260\303\xb5qZ\303\245\xc2\xa3\302\xa3\xc3\252X\302\xb9Q\xc3\235FUv\303\x94W GW\303\255\303\xb1\xc3\223T\303\xaa\xc3\207W\303\264~\303\x9a\302\xad^\302\247W\303\xb6\303\204\xf\xc3\x81\303\225\xc3\275J=_\xc3\230\xe2\200\x94bm\303\226\xc3\235bV\l\xc2\201\xc2\267/\xc3\x9aM\303\225\xc3\xbfT\x1dmTOXu\xc3\212=_\xc2\217\303\xbdI\x5Tvvu\xe2\x80\271a\xdL\35_\xc3\x95qR/]]m\303\222su=H=u\303\x91g o\U\x1e\xc3\225\342\x80\xa6gM\x18\xc3\x97\x9X\x3VU\xc2\xa0\xc3\x80%\303\xb5\33h\303\xbd\302\xa153U\342\204\242\=\xc2\241\xc3\xb6\x2Q\xc3\237\303\230M\xc2\xb9v\xe2\x80\xa1\xe2\202\xac\xc2\xa1g\xc3\245m\xc3\xa0\x15\xc3\xb5ue\x5\xc2\241\xc2\x9d\313\x86\303\231\303\xbbh\303\277b\xc3\x9dM\303\235GCeO5\302\xae\xc3\224\302\201\303\x96\35O5\xe2\200\246\xc3\x94Y\303\x99i=e\xc3\x95	G\302\x9dTURvOa\xc2\xb0*\303\235ivWX\342\200\242J5<\303\265\302\xafbu\302\xa0]\xcb\x86\xc3\x97\35\303\226\xc3\xb0\xc3\xba\302\265<\303\265\xc3\x83\xc3\231\303\225$u3v#\303\227'e\303\266\27u\xc3\221R5m\xe2\x80\xa2\xc5\xa0v\xe2\200\271D5\x11\302\x8f.v\305\xbd\xc5\222\xc3\265W=\305\xb8U\xb_\303\xa5(\xc2\xb4\V\303\x98\x2\303\217_\25<\303\265\303\xb7S\303\215n)\xc\303\2341M%Qh\303\241Z\xe2\x80\xa1T\342\200\xa6f5E\xc3\x95'\xc3\225\303\215W\xc2\275\305\xa0v\303\x85Umi\303\x95\342\x80\x9aU\x7f\xc3\x94\xc3\225\27]aW\xc2\251U\302\247dR\x4v\303\241\xc3\231-YUZu\xc2\x9d\303\x99UV\xc2\x9d\xe2\200\224UiR\302\215V\302\235\xe2\x84\xa2\303\xb5\xc2\xb3\303\223\303\x87[\302\xa3\303\255ZMU\xc2\247\=\xc3\x82v{\303\233X\303\275\xc2\265\302\274w\21Q\303\xb7huHv\xc3\207\303\227gq\xc3\x9d\xc2\xb4w!\303\232oqt\302\242U{TGq\303\xbd{\xc3\xb7#^G_ubQ\342\200\236\303\252\xc3\245\xe2\200\242i9Qb>\303\x9aNUd\xc2\xba\xc2\261k\xe2\200\246\302\2755hP\303\231mu[\342\200\242\x0\xc2\217\xc2\xa6\303\252\303\x85_\xc2\266\303\251[\xc3\xb5Y-\302\217\26\xc3\xb0\303\xb4\303\xb7r\303\265\303\210\xc3\225(\303\226CrMe\xc3\275J\303\265!h?Qr\x6X3 x\xc3\xbf\303\210\303\217#\xe2\x80\241\35\xc3\267x\303\x96<\xc3\x9b{u5~\306\222\303\xad\xc3\x91-\xc3\x9du\xc5\xbd\10\xc3\xabYyQ
-\xe2\200\x9d\xc3\256\x0\xc3\271u\xc3\225\302\243u\10u\x7f\303\231\xc2\277pU\x1e\303\232\342\x80\xa6\x1d\xe2\200\xa2)\x1d\342\200\223P\303\xa5\xc3\234
<u\302\253S\xe2\x80\xba\36\50\303\235\xc3\x89w\302\271\xc3\237-i\xc3\x9d\xc3\263\303\x94!\xc3\x8c\xc3\x96\xc5\xa0\303\xb8B\xc3\xb7\xc3\241\xc3\206d\16]\303\xb9\xc3\xa8\303\x85\xe2\200\241\303\x94\x1e\303\x86\x7fE\1\27\x5\xc3\xaa\xc3\xb0vlmQ\xc3\x9d\xc2\2176k\x5\xc2\xbc\2\303\x92J\302\xb4\xcb\x86w\xc3\xad\xc2\246\xc3\204\xc5\276\xc3\x98\303\x83\303\xa3\x1f\305\222ED\302\xb6U\303\x99R\342\x80\234e\302\x8dv:X\303\237c\xc3\230\x5\26NW}`-\302\xa8t\303\x93H#e\342\200\236\xc2\x81\x17b\302\xba\xc2\261u\4\xe2\x82\254\303\xa3\303\xb3\x6\x9~\24B7\303\252 ?\xc6\222	OP\xc5\x93CW\302\220\20\5\26\xc2\265\xc3\227SE\xc3\215\342\x80\xa2V>\xc2\xb6\342\x80\234\303\x97U\xc3\2337\303\237\xf\305\276\xc3\247\xe2\x80\xb0\303\224\303\xa1m\xc2\273\xc3\223\xe2\x80\232\xc2\254\23z\303\xbf=\302\265\xc6\222\x3\303\215\xc3\x981\xc2\272\xe2\204\242\306\x92+\xc2\240\xc2\xb9m\xc3\203I,>\xc2\265X7\xc3\xa0\xc3\244]\x16\302\240.\xe2\200\241\302\275*\x9^\xe\xc3\256\xc5\240\6\303\xa3\xc2\xb0N\x1c\xe2\200\xa6\6\302\xba.\xc3\250\303\x8e\x10/"\342\x80\236\xc2\x8f\313\234\xb)\xc3\x90	\xe2\x80\xa6\xc2\xaf\342\200\x9as\xc5\xbe\302\256|\xc3\xa0\xc2\244\xc3\xa7\303\x93\305\270\303\x90l\303\201}\303\243\302\270\xc5\xbd\xc3\x8d\xc3\xa7!\x7f\xc\303\xb3\x17\xc3\xae\xc6\x92\xe2\x80\x985n\xc2\261p\342\200\x9ej\302\xa3\xc2\276h\342\x80\231\xf}\302\xbd\x1c\xc3\250\xc3\xb0m\342\x80\234\27E\303\241zH\303\202aO0d=A|w\xc3\xab\303\x9f\302\xb3\xc3\xa3\303\xab\xc3\x97\32\305\241\34\303\x8e\xc3\xac\x1eu\x1\302\262\xc5\223\305\xb8\x1av\303\271\303\230\6\xc2\xbcG\342\x82\xacx#\xc2\256\xe2\200\xa6b\xe2\x80\235cS\xc3\260\2o-\342\200\260\303\271tOm`C\342\200\271\xc3\xb2\4^M\305\222\xc3\205@\xc3\253\xc2\264h\302\xadn$\30k\xc2\264`\xc3\276`HD^\302\x9dPE\xc3\240[\303\244\xc5\x92]\302\xb9\xc2\250rR\10\xc2\xb8m\xc5\xbe=\342\x80\232.\xc3\xb1\xc3\231\xe2\200\xa1>Ayi\342\x80\232 "\xc3\xba\342\202\254\xc3\262	\20\xc3\x96\27\302\267o\xc3\xa3-,.\35\305\223
q+\303\200\302\245\xc3\245fXd\xc5\xa0\x1\xc2\xab\xc2\xb6\303\xa3*\xc3\x9f\302\275\313\x86K\303\216\xc3\x98\306\x92'\xc3\234\xc3\xaa\36 \303\220%a\303\xb4\xc3\277\342\x80\xa1\x11\303\2719p\303\xbb\xc3\246\xe2\x80\224\x7f\303\xb8KLM\342\x80\x9e\xc3\240!\303\276,\xc3\250\xc3\212\303\x8b\4\4\305\275\xc2\250\xc5\x92z\23X#\313\234V\303\241\xe2\x80\xa0uH%!\xc3\x80\xc5\22363\305\x93J\xc2\276ry\303\225\302\x81\xc3\255\xc3\xb9q_\x14\x1c\303\250u\x9\xc3\xbaW\xc3\xb9\xc2\xb1\xe2\200\xa1\xc3\206|@3b1\303\xa5\303\x887|~w\xc3\257\302\xb1\xc2\xb3\303\xbe\2\303\xadA7\xe2\200\x9c\303\222\4\303\202\xe2\200\272\xc3\250\342\204\xa2	\xc2\274\4\342\204\2429cS\x1&{\16\303\xa3\303\244\303\x92%Vx\303\260\303\257kZ\21O\342\200\xb0\303\227w\xe2\x80\260U\x5r?\xc2\256\xe2\200\x9e\xe2\200\231\xc2\252N \303\x8e\x6|\xe2\200\246C\303\x89#\303\205\xc2\xb0\xc3\xb5\303\245\303\x95\302\257 \xc2\xb9/\303\xba\31\xe2\x84\xa2\xb9\xc2\201ft\305\275Ew\302\xb8C\xc3\201\x16\302\xbaa\302\xa6^\x18\x0\303\270O<\xc3\xbeW\xc2\xa6{Y\xc3\243=\xc3\251\xc5\xb8\x4\23e\xc3\xab\313\234\303\275n\303\x89\32\xe2\200\236\xc3\255gyf\200h@\36\xc3\254S\xc3\x9d\0:C\302\x90\17\xc2\xa9\xc2\xb4^\342\x82\254\xc2\270VgpE9:85\xc3\2033\303\xa6\303\x9e\302\247\xc3\241\302\272\xc3\xb0\xc2\x8f@\302\273\303\xa1\305\xbdj_\x1f\302\252[\303\x9e+\302\253\303\xaa\xc3\x87\302\251x\xc6\x92^\xe2\x80\x9c\xc3\252\xc2\xae\342\200\240~@\x1d\xc3\x91\xe2\200\241W\xc2\252\302\270\303\243\xc3\xa3\xe2\x80\234\xc5\223\xe2\200\xa09x\xe2\200\224FC\xcb\x9c\302\277\302\255.\xc2\220\xc3\xa3\xc5\241\xc3\xa7\303\xb6\xc3\274k\x1e^I\xc5\275\303\xbb\302\xa1pU9\303\xbc\303\x98S\305\270\xc3\230\xc3\xb7\302\275\xe2\x80\x94\xc5\223$\xc3\xb3\33\xc3\xb3\xc3\270\xd4\xc2\xb4\xe2\200\246\xc3\xb9\x0\303\x8e\303\250O\302\260\6\34\303\243\342\x80\230\xc3\204)L[\303\202p?\303\xac.P\x1ECS\303\254I1nm{\xb\xc3\x85\30?\305\xbeP\xc3\xaeWA\303\237\302\262\xc3\x81;\342\x82\254\303\261\303\xacD\xc2\xb0;S\302\xbaa\302\217Kf\xc3\xb8\xc3\262\xe2\x80\xba%\302\x8f?\302\264X\xc3\xb5\xc3\x9e+\xc2\x8f\xc2\xa4B>\xc2\xbd\303\xb99\xc2\277\302\xaf\xc3\231Gj\xcb\234c\xc5\276\33z\xe2\x80\x98A\xf\303\x8d\xc5\xbd\xc3\xb7:\303\252a\33\xc2\xb3n0bJ{o\302\245\177\xc2\xb7!3\303\x80\302\255!'\xe2\200\x99\303\230K\xc3\203\xc3\205\303\xad\xc3\xb9\303\224}\34\xc3\xa3\\303\xa8\303\x8e3W\303\270\303\2525\xc3\xae\26x\x1c\xb\xc3\217\303\211\xc3\201L;\xc6\2222\303\216\xc2\266\x12n\xe2\x80\x94a;\xc2\262\xc2\x81\303\xad\xc3\x97\xc2\xbaX\303\223\xe2\x80\272]\303\x89o\302\272\305\223x\xc3\273{\xc3\244\302\2465\xc3\x9e\342\204\242j\34X\xe\xc3\xb7\x17\313\x86\303\xb0\xe2\x80\x94\xc2\xb6v\303\223\xc5\xa1\303\xa9\xc3\243q\x1a\303\x9e\303\212EE{\xc3\x91\xe2\202\xac4\303\x81\302\276\xc3\266\x16\17\303\204{\303\255\xc3\231\303\xa7\x9\xc3\214
\303\266\xc3\x8a>\303\xb9\342\204\242a\xc3\xaf\xc2\257\302\xb7\xc2\276\xc3\xbc\xc3\xac\xc2\xa7\xc3\257\xc3\230L\xc3\273\303\x94\303\273\xc3\xa5\303\257\303\277\xc2\275\303\273\303\254\xc3\xb1'\303\xb0\37\xc2\275\xc3\x9e\xc3\xa9{\xc3\xab\xa\xe2\x80\260\xe2\200\x94>J\xc3\270\303\x9f\xc5\x92\305\x92\303\xa1\302\xb8\303\223\xe2\200\x94\342\x80\xa0\xc3\267Y\303\217
O\303\212\xc2\xbd\xc3\260\342\x80\230t\xc2\257\303\xbf\xc3\xbb\xc2\xa5-O\303\203\x3\xc2\246\303\2744\xc3\224\303\xbf9F\4\xc3\274;\xc3\xb0\302\247\303\201\302\273\xc3\224\xc3\274G\303\xb0\xc3\270I\302\252F\xc3\237\303\2541\177\xc3\202o\303\xbf\303\237\xc3\xb3\303\261O\302\xb2\302\xbe\303\251a{\x19w\342\x80\x940\303\x93\10\302\273\xc3\257\6\27\302\xa4\303\x86\302\257;\303\261\xe2\x80\x9d\342\200\x9e\xe2\200\x98l\303\274o\xc3\xb1\303\xa0J\303\220T\3b
w\303\x87\x12\x122\302\xaeJ\xc2\xb5\303\xbe=\x1D#\xc3\262\x6n\303\201:\303\211y\303\xb1\303\xbbS\xc3\xb8^\303\xa3\x11,.\302\xbf?(\xc3\x88I$\xc2\xaf\xc3\212\x1a\302\x90\xc3\206\xc2\257\303\255\302\250\xc3\241\x1e3\x18\xc3\xb7\x19\xc3\x83s\303\xb04M\xc3\212aCR\xf\16\303\211\303\206\303\215G\303\x8c\xe2\x80\230\305\x93\xc3\272I\303\x9f\302\xb0n<\xc3\xbbzy\303\x91XN\302\xbe\xc3\xb0?\xc3\265\x5\xe\xc3\xa2\x1e.\303\x83\xc3\256\xc2\220=\342\x80\x94\xc3\xa0\xc3\261\302\264D\xc3\207\xc2\274\6\5\xc2\215\xd\xe2\x80\272\305\xbe\303\x98\x1e\xc3\251
\303\x95\303\263\302\xa8\xdo\xc3\xb5\xc3\275\x5
\x7\xc3\x90\305\270Cl%\xc3\x81\303\x8d\7Y\xc3\x8e\xc3\273\xc2\xa5\xc3\237\302\260\17\31\303\217\303\240\23\3G\xc3\221\303\xbe\xc3\232}#\xc2\235V\xc3\x90\xc2\235%\303\275(\xc3\224\xc3\xbf\303\222\xc3\2403\xc3\246\303\x89\xc2\215\xcb\x9cr\xc5\276\303\260};\303\264\xc3\273\303\227\xc2\xbfG\303\211\xc3\214\x3n\303\266[\302\xaa{\302\xa5\302\271\xe2\200\x93\xe2\x80\x9c_<m\34\x17\10[\x9I\xc2\245\xc2\xa2\xc3\x80\xc2\274q\302\260\xc2\xb5?\303\xb00c\x1fV\303\275nms\xe2\200\x9e\xc2\263nM\xc3\xb5\303\265\xcb\x86"\x1bNj1\xc3\265w\x3?@\303\xac$1\xc2\246\303\xbe>\xc3\xb0\31\xc3\222^\37\x13\303\270\xc3\x95\xc3\273\xc2\xa5\303\266\\xc3\x8c{\x1n\303\x82\\303\214\32\xc5\276\xc3\2517\xc5\xb8\342\x80\236\xc2\277\303\x99\305\270ic1\xc3\257\x7\303\232\303\277hoo\303\252\xc2\267\37?j<G\xc3\xb6x\xc5\xb8l\303\x8f\303\xb9\xc2\xa9S\303\250\177r}\303\x8d\xc3\x83\x17\xc3\232|"}\342\x80\242\xc3\xb7/\xc3\x9a?s\xc3\xa7\x1d\x15\xc2\xactI\303\244\303\xa5\303\xaa\302\274&^\xc3\2751e\xc3\263\303\x93t\303\243\303\264,\2\302\x8f*'F\xc2\xb8\303\x9f\x5=\302\235/F\xc2\x81k\303\276\4,95rV\xc3\xa2\303\xa1\303\270\7\xc3\240\xc3\x80\xc2\272\xc3\xac\xe2\200\230\313\206\xc2\201\xc3\x9bo9\27\xc3\x8d\303\270/F\xc3\200\xe2\x80\x93\x6\25\6\24\16_\xe2\x80\xa0~*^\303\227\xc3\243{\303\x90I\xc3\206\xc3\266\xc2\xaf\xc3\243_\306\x92\xe2\200\x9a\xc2\262\x16\305\x92\342\200\x9c^n\342\x80\236\x11\303\xb8\303\xbeN\305\270\xc5\xa0~\17\303\xb8\xf\xc3\241\xc3\205A\303\xad\302\xa6\xe2\200\230d\302\251\303\xa5\303\xb1\303\276U\303\xb8w\xc3\xa4qY\xc2\261\xc3\245\xc3\256\xc2\xb4T\302\270\x32\303\x80\xc3\xa9G\xc3\xa4?\342\200\241&\xe2\x80\x93\17\302\xa7\303\246\303\264\x5:y\303\271\xc3\xa8%\xc5\xb8\xe2\x80\223\2X\303\xa7\xcb\x9cJ\303\233C\xc3\xbed	W\303\250\303\x9f\xc5\xbd~\xf\303\272G!\xe2\200\xa0\xc2\xb4J}\342\200\272\xe2\x80\x94\302\xa4\16\xc3\272\xc3\254\303\271\303\265\303\204B-\303\223\303\257\xc2\xb1;\xc3\xae\x6\303\273\305\223h\303\203*\303\263\xc2\274R\302\264\xc3\254\xc3\xb6E\302\xb6\302\240\36~\303\xa2\xc3\xa6\xc3\xb3\x1e.\x1f\xc2\xab~\303\x89\xc3\xa7\303\246\xc2\240SAq\x6\16DVx\303\x82\303\256\303\215='\xc3\xad\xc3\x89\x10E\xc3\x99(^\xc5\xa0\xc3\xbb\xc2\xa2~\342\200\272\303\xb9\303\xb8\xc2\277\xe2\200\xba\303\247\xc3\xb2\xc3\251\xc3\xa7\303\xafo7~\xe2\200\x9aM[\302\xa7\302\201Q\xc3\243\xc3\xae\25\20(\xc2\xb3\303\234y\xc2\xb8\303\xb9nP\6\303\221>[\2W\35X{q\xc3\x94a\303\217\302\244\xc3\x86\xc3\x89\21\303\xbd.&N\xc3\2323]\303\261\xc3\xbaHY\xc3\xaf\xc3\235\xc3\273\306\222\3\303\253\303\x9b[\302\xb6\xc3\201\303\231&\xc3\2748?\xc3\2213\342\x80\x9e\xe2\x80\271\342\x80\272\302\246\33\302\266\302\xa7\303\x9d\xe2\x80\xa0\xc3\232\4\xc2\273\302\xb6\303\xa1#\305\x92\302\246\xc3\x8eB\x1\303\xb0e\302\235\166\302\235\26\37\xc3\xab\342\x80\xa6\26\x19@\342\x80\223\xe2\x80\234[\xc2\xb0\x17\302\244\x1\xc2\xa3\xc3\xbb\xc3\xa0\x3\xc3\220\17G
\303\216+\303\275\xc2\xa7}\303\274\xcb\x9c\xc3\267\303\x81\xc3\277\xc3\x8f_\xc3\235\x13\xc3\xa77\xe2\x80\223\x10|N\xe2\200\236\xc2\xa7\xc2\253\303\2364~(z\303\x81~\xe2\200\x9c\302\xbb\302\271\xc3\xaf\xc2\247%\342\200\xba\xe2\x80\x93\x4?\xc2\261\303\x9f\xc3\x93\xc3\210[\xc2\271\xc3\xb81\305\276\30S\302\252]x\xc3\230k\20\xc3\266\303\221Kx\3O^\xc3\251A\xc2\215\xe2\x82\254\342\x80\260rZ\x1b+\xc2\xba\303\277\302\xbb\302\xbd*\xc3\x82W\303\xb6\xc2\xaf\x8k\xc3\xbewD(\xc2\xb9\303\xb8\xc2\273R:\x7\303\xa6\303\275\x0\xe2\x80\242\6\x7f\xc2\xa7\303\255\302\215\xc3\271'\302\244\xc5\xa0\30\27\xc3\xb3\xe\x1\342\200\x9cm!O\303\x90\xa\177\31\303\xa4\xc3\x85u\303\250\xe2\x80\x9a\35\xc3\x86\xc3\263.\xc2\220\16[ \xc2\201\17P\xc3\x86!\xc2\271\302\262}\303\227\303\217m \xc3\x9b\xc3\2571\17p\x4\xc3\xb1u\xc3\274\303\xa2,T\xc2\251\303\xa7L \xb\x9\303\202\xe2\202\2540\x1}\302\x9d\xc3\xa2\35&\27P\5\303\231\xc2\245
\xe2\x82\xac=D\xc3\xbf=\302\xbe\xc3\xb1\x1f\xc3\x90\xd\303\202\xc5\xa1A/\302\267o@\xc3\244\x12\303\xbc2\303\243t\xc2\xa06\xc3\240DK\x13\xc2\xb3\xc2\266\0\xc3\x88\x19\xc3\202\1\306\222q\342\x80\2407\342\x80\x9el\xc2\xa0\32\xc2\274\303\260B\303\252\xc5\xa0\303\xba\1\303\214\3(\7\xc6\x92;[\xc3\xb1\35\313\206kr\xd\342\x80\x98;#\xe2\200\230\xc3\x83\303\244\xc6\x92l\xc3\x85\342\200\x9d
\xc2\xb3\x15<\x11}zb+\303\224\xc3\x90O\303\261[\xe2\202\254\2WrX\306\x92`\302\201\3Z \xc3\205\xc2\xa3\342\x80\xa0Pm'Fn\302\xa0\xc2\xbc\xe2\x80\260\xc3\xaeS\177p\xc3\x9f-\302\260\05\303\200`d\xc2\250\x1\xc3\230\303\267\x14\6P\342\x80\236\xc3\x81\xc3\232\303\207\302\276\302\267\303\x9b;\302\262\303\x8cn\0\342\200\x9a5f\x6\303\xafP\342\200\x9e\302\217\302\xbfEJ\x4\xc3\244\34w\xc3\xbb\xc3\233 \302\xb9.?\xc3\x80;\xc2\266\302\xa7N\xc3\262\xc3\x9e\302\245,;\23\303\206\302\xa6\303\x8f-[7\xc2\267\303\x9ee\xc3\276\303\232i\xc3\205\303\242-\xe2\200\x9c\xc3\226\xc3\xaed\xc3\231\xc5\xbd<[~\xe2\200\x9d\226\4k:&\xc3\x90.7\342\200\241]\xc2\x81\17\x17\x0\303\263\302\251\xc2\201\303\273\xc3\253\342\200\223\303\271\xc2\x8d\xc2\x8f\37/\302\26559 \1\xc3\xb1\303\201@eT:\303\xa7\342\200\246\313\234\xc2\xaf3\xc3\x85d\302\220s\303\235\302\x9d\xc3\272\165\303\244\302\x8f\305\x93\x1f\xb5f\x0\xc3\220P\302\265\xc3\266HB\342\x80\223\342\200\xa2\303\255\xc2\260\x11\xc2\xbd\1\xc2\2728J\x4\303\x94LS\0vI\x0\313\x86\342\x84\xa2\xc3\x877Dm\302\220\xc3\x86a\305\xbe3e\303\227\xc3\xad\xc5\275?\32B\xc2\xb3\xc2\xaa$\302\xb4.E\342\200\xb9\xc2\x81\303\x90f\302\x8d\x1\302\x8f\xc3\x8b\x15@\xc2\xaan\xc3\xba\306\222\xe2\x80\260\x19b\xc3\262G\x15b\xc3\201\xc3\217q3\xc5\xb8|\303\xbc\xc5\xa1Pa\303\x8b\313\x86\303\270\x1a\xc3\x8f\302\257\x1fX7Tg>\303\x82\x4.\xc3\x9ap\303\x98\32\xc3\xaf\xe2\x84\xa2\xe2\200\x995\302\270\xc2\253AH\303\x85\xc2\xb5\342\200\x99\x1b\305\xa03S\xc3\260,\313\234\xc3\x81@\xc3\x94#&w\302\265\xc3\2563\xe2\x80\xa0\7\303\xb4m[\31\xc3\x8f\xc3\200\xc3\xb2I\303\255\x3\303\221\302\245\xc3\223^\342\x80\x9c\303\x8c\xc2\244\x7fJ1?\xc2\251gT\303\241\302\x81\302\xbd#\303\x8fS\302\xb1\20=_\xe2\x80\x9e\xe2\200\232_\302\x81\xc2\261\4	\xc2\xab\302\243\303\211Vq/C\303\x9b\xc2\xbe\302\xb7\xc3\x9d\342\202\254\x1a\xc3\x8e|\xc3\x8b\303\264\20\xc3\xa1\xc3\xbe\xc2\220D \xc6\x92\36\x1dg>\303\x9c\342\200\x9e\xc3\xb5\xc3\253\xc3\251 6
\26\xf\305\xa07}q\342\200\x9d\xc3\206\303\205\302\xa4\xe2\x80\xb9JG\xc3\xaf\x10B^\303\256\342\x80\xa0\g\302\xb4\xc3\x9d\303\xb5\xc3\xbc\302\x81\xc5\x93&%\302\xad\xc3\x98[\302\2522\x10Ix\303\203\302\xac\xf\xc2\252\303\2616\0\x103\x1e]\303\2013\x3\xc5\222{\303\211@RU\xc3\xa0\xc3\x99M\303\266\xc2\240v<\xc3\2451\305\xa0\302\277\xe2\200\x98\302\xbesz\302\261uP\xe\xe2\200\2315\xc5\270\302\252F:\303\222i\xc3\xae|\x5\xc3\x80`\xc2\255q\303\x93\303\xb7\xe2\x80\xa0V| \302\273\302\246
k\xc2\x90\xc3\242}\xc3\220'\x1c|\xf\xc5\xbdgd\xe2\x80\240!\302\xa88\xc2\xa6 <,\xc3\xabP7\x1e\313\234m\302\246\xc2\273||\302\273\xc3\277\xc2\xb6I\305\275A\303\223\36\xc2\x81]\x5B\x8B\xb \303\x8fF\303\2660X\303\217\303\xba\xc2\263\16\5\x9\x5\xc5\xa0D\x16\303\x96\xc3\237`W\302\xa0\302\265\303\201qm\xc2\xa6OL\342\x80\x98\x9\303\xac\xc2\270.\303\x8d(\16\4\xc3\201p\342\x80\x9a\302\xbc\303\x92\302\x81\xe\303\244\x17\302\266"!\xe2\x80\271\xc2\x8f\xc3\xbd\37\xc2\xaa\0\xc3\242\xc3\x8dA\xc3\257\xc3\203\303\xb4\xe2\200\xa1\xe2\200\260\xc3\x81V\xe2\202\254\xe2\200\x937k\xc6\222\x14\1\305\x92M\302\xb8$\303\x93\x6N0\\xc3\225\16\xc2\xa7\306\222"\xe2\200\271f\xc\xe2\x80\230\xc3\241\302\240\xc3\x87\303\xab\303\261\xc2\240\xc3\210\x0uq\xc5\xbe\xe2\x80\224\x19,\xc5\222\x18\xc2\2405\xc3\206\303\243A\366\xc3\x97p\xc3\216\xc3\216\303\210\xa\xc3\260\7\x10\303\216\302\x90jY\xc2\2637[pK\6\xc2\260\27\303\2604\x4;\302\220l\31\xc5\2235\7n\302\xa9\x6\303\x81@\xc3\xa2\f\xc3\xbb\303\220l\x1b	\302\246\342\200\x9aM\x8\303\xb6\303\xb9\303\273P\xc3\x81\303\xa73\xc2\256\xe2\200\224C\27\xc2\xa0Hb\303\x90\305\x92\xc2\xa9\xc2\xb8cEpP\xe2\200\260\xc3\x9a\xc3\x904\x14eoo\6e\303\xb9{\xb\x14\xd-\xc3\240\305\2412.\21\303\224\xc3\x96\xc2\245\302\xbd\xc5\222\35P50u\xc3\x81\302\262\302\260G}\303\x84\xc3\xa2\x0\303\xae\303\x8b\xc3\265\302\xa8<\xd\303\xb6\xc5\x93!\302\xb8\xc5\223~\xc3\212\xc3\xbd\302\xb5\xc2\276\xc3\xb3\xc3\261\27\x13\x8\xc2\271\x19\x8\3\xa7F\20\302\x9d\302\xaed\x1e\xc2\xb6\xc3\275\xc3\xa0\xe2\x80\234\305\x93>\xc2\xb7\xc3\x94a\xc2\242\xc3\231%\302\xbac6\303\x94\305\xbe\xc2\xa7\xc3\265\34M\303\x80\302\245|\xc3\262\303\240d\10\xe2\x80\xb9\xc3\273\302\267\303\254O\303\223_\xc2\xa8?J\xe2\x80\236\x8\303\xa6\xc2\252C0\303\204>\xc3\220\xc2\x81\xc3\201&7kM4\x12\xc2\xaa\x10`%f\303\xadl\xc3\xb0\303\216\313\234B\x11~\xc2\xa2wx\303\x91\xc3\x9aZG\303\251P\342\x80\xa0\x72\302\257\xc3\xa0\x20\xc3\xbc=\xc5\xbe*\26p\xc\xc3\xb0\xe2\x80\xa0@\313\x86B\37e\303\210\342\200\x9d\xc3\x98\303\x8f|\x1a2\xc3\204\xd\x12\x1\36\xc2\263?q\302\xb8\xc3\x908\303\xad\xc2\xb8\xc3\xab\xc2\xb1\303\261\xc3\x8d\xc3\220\305\240(\x1e\xc2\267yr\303\xa1\xc3\266\21\302\xa00\x16\xc3\xa0\xc3\256>\xc5\223>\xc3\x80E?w\x8\303\x9c|r]\xc3\226%Av\xc3\240\303\xbd\303\201\xc3\205\x11\303\xa4@\305\xbd\16+\xc3\235X\x1a\20\6\303\x81\xc2\252\x3Ag\303\xa2\303\211\x11\303\x9b\303\xbfs\xc3\xbb\302\256C\xc3\x90\xc3\xbbAXmN\xc3\x92\xc2\x9d\3\xc3\2724\30\x0
\xc3\x9a\303\x8d\x1d\302\xbd\x178J\303\235J\x12\303\xb0\xc3\x87\xc2\xb8D\xc2\x8f\xc3\222\xc5\241\xc3\263\302\264\10:=\x9\xe2\200\xa2\303\xb0\xc3\263\5\xe2\200\241\xc3\xab\303\x86S\342\204\2424\xc2\xaf\xc3\xb1F;	\xc2\254\x3\&\303\226\303\xa8\342\200\240P!6%$i\xc3\244xi4\24\x1cc\xc2\2750B\303\241;62=\303\x9a\303\2331\xc3\x82\xc3\xb9\303\214\313\x86P\16C\xc3\x98\303\245\303\x82\306\x92m\x16\303\213\xc3\x8d\x1c\342\200\234dpc+\303\222\x18\24\355\305\xa0\303\245$/rCR\xe2\x80\240`\302\xa3MQ\xc2\2446(\\302\x90\xc3\xa1\372A\xc2\240\5\302\xa6\xc2\271\\302\xaa\305\222lG\303\xb2l\xc2\xac\2\x0\x2Bq\xc2\260\xc2\244\32P\xc\xc2\xafr\302\262\303\273\xc3\270\1B\302\x90\302\xb5\xe2\x80\xb0\xc3\252\xe2\200\272\303\x91\xe2\x80\x9a\302\xb9_6Ll\35\303\x8b!BQ\305\xbd\342\200\260\x6\3I\xc3\202\xc5\275G\xc3\200\303\245\303\234\303\230\303\xb0\x7fXRbs\xc2\241]B\xe2\200\x94Hr\xc2\x8f\305\xbe\x14\303\243\xcb\234\3`\303\x8eX\xe2\x80\xb9\303\244$\1\7p\303\xa5\302\2618\303\xb0\xe2\200\236\xe2\200\xa2	nbR,\303\x82\xc2\261\xe2\x80\xa6L\xc2\xa0\302\215"\xc3\202E%\4\x0\342\x80\231aYB\xc2\246s\36\xc5\x93\342\200\246\303\x8dD,\xc2\x90!\xc3\x86\xc3\227\x1c\xc3\217\xe2\200\272pN9R\24bG\302\2674\xc3\206\303\xbeM\302\xac\305\222t\342\200\xa6\302\270\xc5\223\xc2\xac\x15jU\303\264\xc2\244\xc3\x80\xc2\220\33\302\247\2y\x0\xc3\xac\23\xc3\x9d%$.\xcb\234\x18iL!x\xc3\202\xc3\254\x11\xc3\222\xe2\x80\x9c\xc3\x85(\xc3\x84.\xe2\x80\230\35)6T(\xe2\x80\x99I\xe2\200\246\303\xac\30a%\xc3\x92K\303\x88]m\34\xc3\x84t\xc2\245\303\264\342\200\246\303\xba&\xe2\200\x9a\27\303\263G7\xc3\207ITM\xc3\263B\xc3\xba\x14\36
z\30a\xc3\x82\xc3\x98])va\313\206%\305\x93\xe2\x80\xa0\33\xb\xc2\xb2\xb41T\303\x81j\x7\303\x8d\302\xb9(!\342\200\xa6\xc2\254\21\xc3\x9e\27\23\302\xa1\302\250\\xc2\x81\\xc3\x86W\303\202\xc3\x9c\x8\\x5t$\xc2\xa40\303\x85\5\303\xa6%\xc3\xa1\xe2\x80\x9d\0aK$\303\xa8T\27\305\xa1F(Y\303\240C@\342\200\x9a\xc2\xba\x19H\xc3\x8f\xc\305\275\x16\xc3\220H\303\243\xe2\x82\xacnD\xe2\x80\231d\303\x83\33\342\200\240Wp\xcb\x9c\x11\303\x89hZ\302\257'\303\xa1ZC,/\305\275\302\235\xc2\241$\303\273\xc2\246\302\xa3\xe2\200\x94J\x15\xc2\241FB\xc2\xa8u\xc3\x9c\xc2\xacQ\x1e:\303\216\xc2\245\xc3\x82A\303\266\xe2\x80\260:-a#\xe2\200\x9d\xc3\xac=jb\302\250\xc2\247l\x10\303\x95Ug;{R\xc2\xb0\342\x82\xac\x19U\xc2\272\xc2\261EWn\303\224Ua\xc2\273\302\217V\303\xa2\303\xae\342\x80\xa2Nj\302\254\302\xa7u\342\200\xb9G\303\211*\302\250y\x12\xc3\x96\xc2\xb9%\xc3\x9d\xc3\x92@\xc3\x85\xc3\257*\xc3\x8c\35\xc3\xa4\xc2\xab\xc3\x95Yx\xc3\252\302\xb1_\xc3\263\302\xb2\xc2\247z\342\202\xac\25]\303\253)\x11v"\xc2\243\4\xc3\xa7R\303\225\xc3\xa5L\xc2\257\x4V\1\33Iv\32\xc3\xaa=`\342\200\272\xc2\xbe\x15'\xc2\252\xc2\260U\303\x9d) S\x7
~\x1cR\xcb\x9c\xe2\200\xa2\342\204\xa2
i\342\200\x9d\303\x85)5S\32\xc2\246\xc3\xa5D49\x15~\303\x8ab\xe2\x80\x9d;)3\342\x80\241,\302\2469M3\302\257HsJkT\305\x93\303\203\xc5\223\xe2\x80\241(\xc2\242\xe2\x80\240\34\303\xba\xe2\200\224u\x18J\xe2\200\260][$\xfuf\302\xa8\xc3\255ob\xc2\xa3\xc2\xb5\302\xb9\xa.\27,\303\256Y\xc3\x9c\302\2659j1'\302\265\xc5\222!\xc3\266\261\xc2\235\x1f$J\xc2\266\342\x80\x98g\303\x9a\xc2\244\xc3\x95\305\xb8\xc3\204\342\x80\240U0\302\xad\303\x93Z\32uah\302\xa3\xc2\261\302\267c\xbH\xc2\235\302\xa5,\303\203Yt\xc2\262\303\261Kb\303\xb65\xe2\200\224\303\xab5\xe2\x80\223\xe2\200\231/dY\xc2\xac\xc2\xb3AU\305\241\303\222\xe2\x80\246\302\251\342\x80\271[W>\302\xa8_V\xc3\277\xd\xcb\206\xe2\200\x98*\302\xb7\xc3\xb5\xc2\xa9j\xc2\243\x16\302\xa7-\x11T\4\xc2\xb1\xe2\x80\246 z\xc3\x96\5Y\xc3\x8ad\xe2\x80\xa2c\xc2\xaem\xe2\x80\xa1\xc3\222\xc2\271\xc2\xb1\xc3\230:\xc2\271\342\202\xac\xc3\xbc\303\x8b[Ut-{\xf\xc2\252\302\265\xc3\xbdl	\32\xc2\243i+a\x15)\302\273.[\x14\xc2\xba\342\x80\xa2_:\xc3\x9a5\305\276\303\244h\xc6\222\xc3\xb2\302\xad\21W\303\x82\xc2\247\303\x89m\x12\xc2\xbb\302\xa5%JI\20\x4\342\x80\x98\302\xb4[T\302\253h>\305\241\302\xae\302\265\xc2\267\16\302\260\342\200\242\xe2\204\242;\xc3\x8bX\xc3\214\xc2\xbad\xc3\252\303\x82\xc5\xb8S\342\x80\272d\xe2\x80\xb0V\xc3\246;
\17\xc3\x86\302\xb1!N\2\xcb\206\5\342\200\x9cK&\342\x80\x94\4\x1eA\313\206Ju\20\x24B\342\200\xa6\xc3\201dg\xc3\x8e\xc2\242.\17Vp\302\242\xc3\241mb\342\200\271\xe2\200\xa6)\xc3\x87V!U\x0G\17\303\xa4\302\xb8\302\xa8\xc2\215\22\xe2\x80\234`\xf\342\200\xb9\25\303\220\x4\302\255\26\\xc2\201\xf\xe2\x80\xa6q\303\242\xc5\2707Q\1\303\266b\37\302\253\21VL\302\xa5\x11\xc3\236:\xc3\xa4\xc3\225\342\200\232\1\303\272\306\x92\xc3\263\302\254\x18Z.\xc2\255N\x1c\xc3\xb2\313\x9c\xc3\204\1*\342\200\223\xc3\224\xc2\217\35U]Z\xc2\xb4l\303\xa6z\303\253\342\200\246\x1a\xc3\x8e\xc3\266\24\xc3\xb9\xc2\256\xc3\207R \x4D1I\305\270\x5\303\xa5\xc3\202\xc2\xa3\303\x91r\7\2:\0<1~;#\xc3\x80Jb\303\240\33\7\302\xa6\xc3\x8aM\313\234y\xc3\x9d+\342\x84\xa2\303\x9b\xe2\x80\x9d/\xc2\x81"\x10\xc3\217\xe2\200\272j<\x103\xc3\xa6#\xe2\200\x9c\23\xe2\200\x93\xc3\214\305\222\xc3\xaa\x5\xc3\xb1\xc2\241\342\200\246:P.\x1}\xc3\252\x16e\303\xb7\303\xaf\xe\x1e\x11\302\201\303\262D"q\xc3\231yJ\303\xbd\x16G\305\222\21\32\xc3\273\xc2\xb7sop\xc5\222\302\215\xc2\257\302\262\303\xbeX\305\x92
\303\x9d\34\302\xb3\x1ed\xe2\200\223\303\x9e\xdxJ%\342\x80\223\x1b\xc3\255\342\x80\xb0\303\217\303\x86\302\274O:%\x12yy\xc3\243\xc3\x85\x16\17,\x1e\31\342\x80\xa1\xe2\200\235%{\303\2163<\303\256X\37\303\203\302\xb8\xc3\x8f\37\303\214\303\xb7\302\257\xe\xcz\xc3\202E\xc3\216z(\x0 \342\x82\254D_\xc3\xb7\302\275\xc5\270\2.2\x14+\3\303\226g\xc2\xae\x7b\x1e\xc2\272\35\26c\303\x9ax\xc3\xac\x12p\x14g\xc3\x9e\302\xa8\303\201\303\x9f|9CP\305\xbd\303\xbb\xc3\256\x15\313\x9c48U	Q\37\302\xa7/Aq\302\256\xc3\235Q\xc2\xbc(4 7e\24\x1a$D\342\200\234\xe2\x80\xb0v:\xc5\x92V\302\241b\303\x97\303\273N4[\xc3\271\x1f\313\206iv\xc\5\302\xb0\xc3\x80\303\xaa2\xc3\xb1\xd\342\x80\242X1\302\xbc\xcb\x9cAJ(<Pl\x14F\26\303\220\0\23\x1b\xc2\276\302\xa8\xe2\202\xac\z\xc3\x9d)\xc3\x91\x1\303\xa7\x17\10\x15\xc5\241W\24\xe2\x82\254(\32\303\2744\24\303\xb4\2\303\x88\x16\xc3\x83\36\303\x9a\xc3\257\302\242\x16\10 p\342\200\xa2\xe2\204\242\xc3\223\303\xb5\26\xc3\212`\xc2\265\303\207
\302\263da6\342\x80\x9d\302\235\xc2\257\xc3\274O\xc3\x96\xc3\xadm\xc3\261a\x4\302\xb4}q\6\xc3\x85`\xc3\x82\xc3\2006P\xc6\x92'h\303\xa0\303\2473\xc2\247|\305\xa1\xe2\x80\231\303\xae\x2\303\x83\2f\302\217 j\303\210\303\xbfA\303\xa6\306\222z\xe2\x80\xb0\303\270\302\xa3+\305\222D\x16\305\x92UW\303\270D\xc3\255\x14\xc3\276\303\x9e5\303\x85\303\204%#\xc3\251\302\xb0x\xe2\x80\234\x1f3{\302\xab\24\xc2\266\5L
\26-\303\x8d\342\x84\242\33]\37:jd\xc3\x97P\x9j\303\xbcf\302\275q:Z\303\267"sad\7\303\x92)\303\263G\xc3\2303\x9\xc2\244\xc2\x90+\xe\xc3\260\xc5\240r\xe2\x80\x9eN\xcK\xc2\201\xc3\xb6\1771Q\36\303\276\xc2\xbd\xc3\247\342\x80\xa0x\x4=>\xc3\273"\xc2\244\xc2\260-\x4\303\xa1:\x1f\xc3\x8aF\303\215\x8\xc3\265\305\223I\303\x99\xc6\x92*\303\xad@\36\xc3\224\xc5\270\303\207y\302\273\2T\303\xad\U\xc3\250\xc2\xa8\303\xa3\305\240Y~\xc3\202\xc5\xa0\xe2\200\260\305\xbd\xc3\244\303\242\25\xc5\241\xe2\200\2323D\302\x81\303\245\342\x82\xac\xc3\x81\342\x84\242\303\xa3\37\xc2\xa8f,s\xc2\xa28HV\xc2\xaf'\303\211t9v(:\302\x90\303\x96\26\2B\39\303\261\Z\xc2\x8f\xc5\241\xc2\241\xe2\200\xa6(\342\200\230&\x15\342\x80\232E8\xc2\xaf\xc6\222\36\303\x8dW$X\x0\302\xbb\xa\xc5\x92\xc5\2769\302\253WB\xc3\200\xe2\200\231b\303\x81\xc3\20366j9\303\x90\3 \x6\303\242\xc3\212\xcb\206\342\200\236\31\x11\xc6\222?,\305\xa1\x4\xc2\xac\x1| \27\303\271a\302\276\xc2\235\27\x2g1\302\xb2
Ps\xc2\xa0\x3\20\x7\0\xc@\33\xc2\x81%#K\x16\342\x80\236\1\302\270\3\xe2\x82\254\x6\xc2\240
\x0\x19\303\205\302\xa7\0\303\247\26\313\206\1\xc3\x80\30\6\303\xa4?\xc3\x80\23\xc3\205\302\xa1,\xc3\xa4\x0\xc3\x94\x1\302\x90\3h\xc2\265\303\x91h\342\202\xac\33\08\x0l\x0\xc3\x96-\xc3\234Z\xc2\x90\6\302\261jb\xc3\240\303\205\302\xac\0p\x0\xc3\236-\303\231f`\6ql\302\242\xc3\244\342\x82\2540\0i\x17\x1e-\303\x9c\p\x7\21s\xc2\242\303\xa8\342\202\xac7\xe2\200\271e\27"-\4Z\303\260\7\21lb\xc3\237E\303\221,\xc3\xa4\0\xc3\210\x1\303\x8c]P\7 \xc\302\242\303\x9aE\xc2\xb6\xe2\200\271b\0\xc3\232/,Z\xc3\260\x6\303\xa0
\303\x80\x1b\x00\342\200\271[\27f-\x10\3\x10\6@
\303\223\xc2\xafE\303\232\xe2\x80\xb9\xc3\217\x17\x2/\xe2\200\x9eZ8\xc2\275\342\200\230~"\303\x9a\303\x85\303\232\342\200\xb9\xc2\255\26\303\xb6.^\xc3\x92\xc3\216Qw\xe2\202\xac\x1b\xc3\205\xc3\217\342\200\271\342\x80\232\0\xc3\226/t_\xc3\210\302\xbc\303\200\xc\xc3\242\303\250E\303\260\xe2\200\xb9\xc3\x96\x0\303\2460d]\30\302\xb5\xe2\202\xac\xeb\xc3\272\xc3\x85\xc2\xa4\xe2\x80\271|\0\xc3\x88\x1\xc3\x84\\303\230\302\274\x11\xe2\200\232\302\xa2\303\255E\302\244\0a\30f0tZ\xc3\200\x6\303\x91n\xc2\x81J\37\xc3\264\0l\0\xc3\x8e0L^\313\234\302\xb4Qj@\x18\303\205\xc3\xa1\305\222J\1\xcb\x86\x1\302\xb4^\xc2\xb8\302\xb9q\177#\23F(\305\x921\x18\302\xba/\303\xac[\10\xc2\xb51\305\xa0\xc2\242\303\xa3\xc3\x86\5\305\x92I\30\xc3\xa6.\xc3\x9c^8\xc2\273\x11\302\x90\x0\x18\23[\xc5\222q\26\303\x98\x1\xc3\214[\x18\xc3\203\xe2\x80\x98l"\303\xa5\303\206 \305\222\xe2\x82\xac\x0\xc3\xa60,d\303\xa8\302\xb6\303\x80\xc\xe2\x82\254\x1a\xc3\206\xd\305\x92\302\201\x17\303\x8c\1\342\x80\x9ec\303\270\xc2\265\x11{c\x14E\303\x81\x0o\26\xc3\xa20\302\xac]\xc2\xb0\x6\0\xdc%\xc3\x85\xc3\233\xe2\200\271\342\200\x94\x18\xc3\260\x1\313\206\38\xc2\xbd\x11w\xc2\242\xc3\245\xc3\x86Z\342\x80\xb9\302\xb5\x19\x16-\xc3\204\\30\302\272\xc3\261{\xc3\243\x1c\xc3\x85\303\226\342\x80\xb9G\30\302\252/\bp\6\342\x80\x9e\xe2\x80\xa6@1\303\x86\x18\x0a\27\302\2621\xc3\271\342\x80\271\303\x88\xc3\x8f\303\x91s\303\xa3!\xc3\205\302\250\305\222/\31\xc3\256/\303\214]8\302\271\342\x80\x98~c"\303\205\303\233\xe2\x80\xb9\303\x85\x16\xc3\xbe2\xc3\xb4c\30\303\216\342\x80\230m\xc2\243"\xe2\202\2549\305\222q\x18\305\241/\^\2fQ~c\x18\xc3\x86_\xe2\200\271\xc2\xa3\x17\303\x8e-$i\20\7\21\xc5\xbe"\xc3\x96\x03\xc5\222\303\x8b\27\xc2\xac\x1\302\244fX\xc2\xbaqx#\2\09\305\x92\xe2\x80\x94\27Z.\xc2\xb4i\302\270\xc3\210\21\xc5\x92@\x1bF\xcb\206\305\x92\xe2\200\xb0\31\x163tZH\xc3\x89 \xdcK\xe2\202\xacb\0j\x4\342\x80\x99/Dj\xc3\270\xc3\2111\302\xa8\303\242\303\xa2\xc3\x86I\xc2\215\xb\27h\x1\xc2\xb4a\x8\xc3\210\xc3\261v\xe2\202\254\34\xc3\206\xc2\251\302\215O\32Z4\305\223Z\303\xb2\303\214\303\x91\342\200\x9a#YE\xc2\250\0i\32\xe2\200\x93.h\3H\xc3\222\303\x91sX/F<\342\200\xb9\xc3\217\31\xe2\200\240.\303\xa4j\303\xb8\xc3\213\xc3\261\xc2\xadb\303\250\303\206\303\x8d\0m\x18V/d\\xc3\250\xc3\230\xc3\xb1\342\200\271b\xc3\xb7E\xc2\xb3\342\x80\xb9\xc2\xa3\30\305\xbe3T^(\303\235\xc3\x91\313\x86cKFR\342\x80\271\xc3\225\x16\xc3\xb9\342\x80\232\xc3\264]X\xc2\266q\302\275\xc2\xa2\xc3\270\xc3\205\xc3\xa0\xc2\x8d\342\200\224\x16\xe2\x80\2316\xc3\x94]h\303\x93\303\261\xc5\276c6E\303\204\xe2\200\xb9\303\263\3366\xc3\x9ch\xc2\220\x6\342\200\x98\305\xb8\303\243n\x05\xc2\215s\27n/dn\302\xb8\303\x94`
"\xc3\221F\x7\xc5\x92\302\xb3\32\xc3\232-D`\303\210\xc3\225\342\x80\x98\342\x80\xb9\xc3\243N\342\202\xac2\342\200\xb9Y\33\342\x80\235\x1\xc2\244bx\303\200\xc3\xb1\xe2\200\235#\\303\205\xc3\253\342\200\271\342\200\241\x1bV3x\3\x8\xc2\2671x\342\x82\254\x1aFx\305\x92\302\xbe\0\xc3\x8a6\xc5\x92b\302\xb0\x6q\302\201\302\243\xc6\x92\303\207!\305\xbd\37\27\305\2768|^\xe2\200\x9a\303\x8c\xc3\221ub\xc3\245\xc3\206\xc3\xa0\302\x8d\303\225\27\6-\303\xb4r\xc3\230\xc3\xa4q\302\xbc\303\243:\303\x86\xc3\251\305\xbd%\x16\xc3\2660\xc5\222pp\6\xc3\xb1\xe2\x80\x9d#\302\x81\xc3\x87\24\xe2\x80\xb9\xc2\242\0\xc3\x866\xc3\224f\30\303\225\xc3\221\303\x87\xc2\242\xc3\xa2\xc3\205\xc2\254\xc2\215d\x7f\xc3\x920\xe2\x80\236qH\302\264\302\xb1\302\276\302\xa3$\xc3\207@\342\200\271q\x1b\303\262-\302\274^B4\302\261\xc2\xa6"\xc3\272\08\305\2751\27\xc2\252/lnx\xc3\x8f\342\200\230\xc2\xa0\xc3\242\xc3\252G\x1c\302\2153\35:0tjh\xc3\222\21~@\x18\303\x86\xc2\xbc\xc5\275\302\245\x1a\xc2\xa63\xc2\xa4vH\303\206\303\xb1\xc2\xb9b\xc3\x9cG(\305\xbde\32\342\200\236\302\2204g\xc3\x98\xc2\272q\303\x82\303\2432\xc3\2061\305\x92\xc3\x89\30\x12-\xc5\222nX\xc3\213\xc3\261\xc2\xba"\xc3\243F<\xc2\x8dQ\x1d\xc5\2761\j\302\270\302\xb81\xc2\256\xc3\xa3\xc3\x88E\xc3\207\342\x80\xb9\303\x87\32\xc3\xa4\xc2\xb34m\302\xa8\xc3\225\xc3\261\xc2\xaa\xc3\243[\x1f\303\264\xe2\200\xb9n\xc3\201z7\xc3\xbcyh\303\x9e1\xc2\247#\x2\xc3\206\303\236\xc5\xbd/\x1c\342\200\2323\x\30\303\x90q\xc3\x8d\x4KG\xe2\200\232\305\x92\303\277\30\xc3\2066\303\244o\xcb\234\xc3\x911{\xc2\243\xc2\xb0FJ\302\215\303\x97\34\305\xa16\302\274lX\303\xa9q\xc3\242\xc2\243\342\x80\x9e\xc3\x86u\xc2\x8d\302\251\36\xc3\2369\xc5\x93r(\302\xbf1\xc3\222\xc3\xa3\342\200\241Gc\x0\xc3\205\x1df:\342\x80\x9erX\xc2\xbd\xc2\xa0#\303\220\303\205\xc2\xbd\x0i\x1e\303\x9e<\}\10\xc3\x97\303\xb1\303\245b\303\256F\xc2\xbd\0s\x1a\xc3\2267\xc3\x9cy2\xc3\x8c\303\221\xc3\xa6#uFe\302\x8d\342\200\xba\x18">4i\xc3\x98\xc3\205\x11\302\277\303\xa2\303\224\303\x86\xc3\247\xc5\x92\303\xa9\32
<\34{\xc2\270\xc3\xa3\xe2\200\230\302\x8d\xc2\xa3\xc3\xa2\303\x86\xe2\200\xb0\305\x92\xb\x1cJ;\302\254]\xc3\x98\303\2041\303\205#\303\216\303\2060\xc2\x8f\303\x99\34J;4^\303\xa8\xc3\x82D\xc2\xbd\303\243\xc3\263\303\207\302\256\xe2\x80\xb9\xc5\270\x18\xc2\250\xc2\xb34i\302\250\303\x80(H#\303\x9a\303\206E\305\222x\x4\342\x80\223/\xc2\244n\303\xb8\303\xbb1\xc3\260\xc3\243/\xc3\x87\302\241\xe2\200\271\xc3\xa5\x1bj6,l\xcb\x9c\303\x9b1t\xc3\243/\05%\xc3\257\x1f\x1a0\342\x80\x9e]x\303\274\342\200\x98\xc2\266\xc2\xa3GG5\302\220!\36\xe2\x80\2310\302\xa4\342\x82\xac\xc2\250\xc3\x97\xc3\xb1\303\232\303\xa2\303\251\342\x80\x93r\xc5\x92q\37\xc2\2422\303\214\177\xc2\250\303\236\342\x80\x98\xc3\x8e\303\xa3NFP\302\217o\x18"4\303\xb4_\313\234\302\xb71\303\x97d\25\xc3\207%\342\x80\271e \xc2\xb23\xc2\xacs8\303\251\xe2\x80\230\303\xbc\xc3\xa3\342\200\xa0G5\305\275\342\x80\x9c \xc3\2466\303\224[H\xc3\xab\x11\xe2\200\x9cc\303\x98H\36\xc2\217jY\305\241;\303\xb4[\xc3\xa8\302\276\342\x80\x98\313\x9cb\xc3\xab! \xc5\xbdy\x1a\xc3\262@\xc3\204\\302\xb8\xc2\xbdq\303\x98#WHN\302\217\xe2\200\241\27\305\xbd;\303\x8cc\10\303\x86Q\xc3\250\303\xa3:\xc3\207-\xc2\x90%\36\xc2\xaa.\305\x93kX\xc3\x86\xe2\x80\x98\303\275\302\243\xc3\232G\303\215\xc5\x92\303\217\x1f\xe2\200\2401Df\302\xa8\xc3\237\342\200\230\302\272cWFl\302\220\xc2\xa1!\342\200\2320\303\274\342\x82\254\xe2\x84\242\x5\xc2\262\21c E\xc3\234\xc2\220\xc2\xa9\x1a\305\xbd;\4l\xcb\234\xc3\221q\xc2\x90"\303\xabF\xc2\xa9\302\x8d\xc3\x9f\30\302\xa27\\\xc2\250\303\xb9\xc3\261\303\242\302\243\303\224\303\x86O\342\200\xb9q\x1b\xc3\xbe.T|"?\342\x80\x98\xc3\xb1\xc3\243\342\x84\242\xc3\x86E\302\220\302\263\35f9TyY\5\303\221\xc2\251\303\xa3SG1\xc2\x90\303\xbb\34\303\x82A$f9\21R
"\303\236\303\x86x\305\222\302\xb9\x1c>B\xc5\223\342\x80\246H\xc3\232\xc3\261\xc3\x9f\302\xa4\x0\xc3\207\x2\305\222\35\x17\xc2\xb6:$e\xc2\271\51\305\x93\xc2\243\xc2\263F?\xc2\217=\32\302\xba3Tu)
q\302\xb9b\303\xa9\303\x87~\xc2\x8f\xc3\213\x17\303\x8e<T\xc2\201\xc3\xb8\xc3\x8e\302\261\xc3\x90c\xe2\x80\260H.\xe2\x80\230m\31~C\303\xb4wH\xc3\x8a\302\xb1\302\xb8#/\xc3\210I\302\x8d]\x18~3\303\xa4^\313\206\xc2\xba\xc3\221\xe2\x80\x9e#\xc2\xa7\xc3\206>\342\200\x98Y\x16\302\2564\xc5\222^\302\xb8\xc3\216Qjc\xc3\212\xc3\x87K\xc5\x921"\303\x928\xc2\254|6\xc3\x91\303\xa5c"\303\x87B\342\200\x98\xc2\xb5"b4\303\243\x5\xc3\250\303\246%\305\223\302\242\xc3\224\xc3\210G\0e"\xe2\x80\x99/t\342\x80\xb9\xc2\250\xc2\xb41r\302\2431\xc3\206\x4\xc2\217e!v2\xe2\x80\236y\10\xc3\x80\302\xb1\xc3\xb5\303\244<\xc3\207\302\240\xc2\x8f\302\x8d\x1d\xe2\200\xa08\o\302\250\303\212\303\x91\xe2\200\x99#t\xc3\x85\303\x91\302\x90
\37z@\302\264}H\303\x82\342\x80\x98\303\xa8b\303\257\303\206\303\250\302\215y \xc3\xae1\xc3\214\\xc2\xa8\303\xb0\x11\303\xabdeG\305\xbd\xc3\x81\27Z3\xc5\222~\xc3\xa9\x4r)\303\xa31\xc3\210\302\277\xe2\200\271\303\x9b\x1e\342\x80\240Bl~H\xc2\xbd\xc2\xb2:\302\243dF\302\xa3\342\x80\230-\x1c\303\x8e?\xe2\200\x9dk8\xc2\xb4q\303\250c(F\303\x8d\342\200\271\305\240K\xc3\2365|my\x1c\xc3\261\342\x82\xacc1\303\x86<\342\x80\x99\33\36*@\302\264j\xc3\230\303\241\xc3\xb21\303\243\xc3\x9b\xc3\x85\302\xbe\xc5\222\xe2\x80\271\35>I\302\xb4Z\xc3\xa8\303\x8dQj\303\xa4\342\200\xa2\303\2102\xc5\x92\xc3\x89$\x120\xc2\xa4\342\x80\xb9h\xc2\265Q\xcb\x86\xc3\xa4VFT\305\222\x9$\303\x86Al~\10\303\266q\303\232\xc2\243\x10\xc3\210\302\261\xc5\xbd\x1b$\xc3\226>\p\xc3\231\xdq\342\x80\232$/\303\x88u%\303\257!\xc2\256J\34q $\302\240\xc\xc3\xa3tE\xc2\xb2\342\200\271G\36N-Tq)\34\xc3\xb2"\xc2\242\xc3\x9bH\303\212\xc5\222\xc3\213\31\xc2\xa6=\303\254\342\x80\x93X\303\2112-\302\243\x1H\x5\xe2\x80\231\xc2\253\27\305\xa18\n\313\x86\xc2\xb5RW$\5H\35\305\222\xc3\253"\302\242C\_\302\xb9\x0\x11\302\xbbd$\xc3\x87f\xe2\x80\230\xc2\263".D\xe2\200\236u\x9'\22Q\xc2\xa3zE\xc3\xad\305\x92\303\x99\x1e&0to\313\x86\xc3\263qj\xc3\243\xc3\xba\303\x86\xc2\277\305\x92\302\xb3\35R@d\342\x80\x94\xc3\270\303\x89\x11\xc3\xa4\xc2\xa3\xc3\271\303\x87u\302\215##\302\266LLk\xc3\x89*q\303\263$*G\xc3\x84\xe2\x80\x98i\x1c\303\x8e@T\xc5\xa0i\xf\xe2\x80\230l\303\243\303\262E\302\xaa\342\200\x98\xc6\222\32\303\x8e5\x4\305\x92\313\234\xc2\276r\d\xe2\x80\x93I\xe2\200\223\342\x80\x98\xc2\xb5"\16/\xc3\x8cZ\303\x890\xe2\200\x99j$T\303\x85\xc3\xbe\305\x92\x19\37z5Ld3\x17\342\x80\231\x18\302\xa3\xc3\253\303\x89\x16\342\x80\x99o\x17\xc3\202.Tq\302\271!1{\xc2\xa3\x16\xc3\x86\x7\xe2\x80\xb9\xc3\xa5\27\303\x969\305\x93Z\xc2\xb8\xc2\276Q\xc3\x95b\303\223F\xe\305\222w\34J94n\313\x86\303\x92\303\204\xc3\x96\303\244{\xc3\211(\xe2\200\x9c\x5\x1f\xe-\34\305\2758\302\xb72h\xc2\244u\xc3\210\303\xa9\xe2\200\x9c;$\342\200\240-Dk\303\270\303\xa5rs\xc2\243\xe2\200\xa1H\305\276\xc2\217\xe2\204\xa2#\302\xa1\xe2\x80\232\303\264\302\217Y7\xc3\xb2"\xc3\230/E\302\xbf\xe2\x80\231\303\x93\35\xc2\240\x9$j\xc2\xa2^\303\262-\302\xa3]\xc3\2077\xc5\xbd["\6N$\xe2\x80\x99\xc3\xa8\xc3\202\xe2\x80\230\342\200\x9c\302\244W\303\x88\26\342\x80\230\302\xaf\x1c\303\226/\x1c]\303\xa0$\302\xb2+\xe2\202\xac1Ga\xc2\220/\x1a&IDn\303\270\xc3\x82\xe2\200\x99@$\303\xa5\303\x86!\342\200\xb9\303\247$\303\x8e-\305\222k!\xc2\235Q\xc2\xa8\xc3\xa2\xc3\271\xc3\x8a\x1\5)(N/$t\302\270\xc3\235\21\xc2\271\xc3\xa4\xc3\xab\303\206O\xc2\x8fK\x1dzP\302\264tX\xc3\x9c\303\xb2[\x0\xe2\200\231G\xc5\275\xe2\200\231w(*K$v\xcb\206\xc3\2131\xc3\xb3c\xb\303\211'\xe2\200\234\21\x1a\xc3\x9eG\303\214\xc5\276I\35\xc3\262xd\xc2\255\303\x88\xa\342\x80\234A\x1d\303\2228\rX\xc2\xb7\303\222a\xc2\xa3\xc3\267I\x8\xe2\200\x9di\x18\x2N\4\xc5\x93I%$\xc2\xbd\xc3\xa3\342\200\231\303\x86_\xe2\x80\x98\xc3\267\27\xc2\xaa6\302\244f\x18\303\xa7Q\303\276#\342\x80\x93\xc3\x88I\342\x80\x9d5#\xc5\275F\xc2\264\xe2\200\224\xc3\x98\xc2\xba\xc3\261\303\x8f#\xc2\xb3E\xc3\242\342\x80\x99\xe2\200\xa2"\303\2563$\xc2\242I\x19\21\303\234c\xe2\x80\241H\313\x86\xe2\200\271\303\235\x19vR\xc|\xc3\271\x1eQ\342\x82\xac\302\244cE\xc2\xb8\xc2\217\303\261\27:R\xe2\x80\x9ee\30\xc2\xba\xc2\261h\303\xa4\xc2\xb6E\xc3\216\xc2\217\35\x1dfK\4`8\xc3\xber.#\xc2\267E\302\263\xc2\217s\37\302\xae0L\342\200\xa6\xcb\234\303\274R\xc2\x8d\303\244\342\x80\xa0F\302\xa9\342\x80\271\xc2\xb7!
C$`\xc3\x88\303\xb6\xc3\261\xc2\264$\303\264H?\xe2\x80\231\303\213\27nP\303\x9ce\342\204\242!\303\xb1\xc5\xa1\302\xa5@F'\xe2\x80\x9d\302\277\31\342\200\x93/\xc5\x93\xe2\x80\xa1\302\xb8\xc2\266\xc3\x84\303\226\303\xa4\xc3\xbf\xc3\212\x1e\342\x80\x9d\xc2\257%\303\202N,h\303\210\xc3\x8crF$\303\xb6\303\x88\303\xbe\305\222\303\x87\x1e\263\xc2\xb4t\303\270\303\246\xc3\x92\342\x82\254\xc2\xa5\xe\xc3\205\303\246\xe2\200\x99!\35\x21<\342\200\x9e\xc3\211CQ\xc3\x8f%\x3\xc3\211\303\203\xe2\200\x99\xc2\271\x1c\xc3\xa6J\303\244Z\303\230f\x7.\303\x9d6\xc3\205\xc2\215\342\x80\240\xc5\x93\xc2\xb7\302\xb1C\342\200\260\34\xc2\245\22\xc3\212\x1b\303\224\xc5\223.\xc2\262[\xc3\276\x1f\xe2\x84\242B\xc3\x92\xc2\xbf\x14x\303\xab\303\xa0\306\222\303\xa8\0NRn\6\25`\xc5\241\303\210\xc3\xb9Y
\342\x80\x99\x15%+N\xf\xc2\xa8IMs:\303\x83\xc2\271Yd\306\x92ef\302\xacB[\xc2\266\302\260\303\235n\2\303\x86\302\271Y\305\240\xc3\xb2\x15m\302\250\303\x81R\x1a\xc2\256\31\303\227\xe2\200\231\xc3\273\303\x89Y\16\xc2\xaf\10\303\x9aC\342\x80\236X\305\222\xc3\xab\x1\xc3\233j\xc2\263\xc3\xa7U+\x10Vk,\302\xaf\0P\303\253\303\275b@e\32\302\262\302\271\xc2\245x\xc2\254\xe2\x80\x9eV\xc2\276\xc2\272yT\xc2\xa47\xcb\x86u\xc3\xae\302\xab\21[J\xc3\257\342\200\242\xc3\x88\302\261\4
D\xc2\257\302\247eR\xc2\xbf\36\x8\xc2\254mx&\xc2\260l\xc\xc3\200\35\x0)\xc5\x92}\xc3\232J\xc2\xbc,\x0\xe2\200\236I\303\230\2Z\303\x86\302\xb5$k\x8!\302\xb5\xc2\xa8\303\261Yb\xc2\xb2\xc3\x81\x12\xc5\223\302\260\xe2\x82\xac\x7R\303\x82\xe2\200\241e/\x19Q\xc2\xbe\x1f\xc3\x80\302\x90k\302\2605\36.\303\201e\342\200\x98\302\2555\xe2\200\xa2\xc3\200\302\250\xc5\xbeW\22\342\200\230\27`\xc2\xaa\xc2\245\0)\xe2\202\xacYv\x15\x11"V\303\x82\x0\xe2\x80\242\303\x83\xa\xe2\x80\241%\342\x80\x94\7\xc3\xa5\xe2\x80\223`\x5Yn\24\302\257\xc3\x95\xc2\241a\303\264\xc3\224x\303\203\342\200\xa0Q!,\xc3\xb5`"\342\x80\260\x9_.\305\270\303\245\xc2\x81\xc2\xa9\xc3\x86\342\200\x93tm$\342\x80\xa2"\xe2\200\234\xc2\xb2J\302\xab\xc2\244\xc3\226\xc2\215\303\200\302\xa7\xc5\275v\xc3\x86%\342\200\260M9j\xc\x6\xe2\200\232\xc2\xb0	\xc3\xa6\342\x80\223\302\247\x4\303\x84*\302\xb3Kp\5\xe\303\x96\xe2\x80\x9d\xe2\x80\231;\R \302\xbc\x14\xc3\2743(\302\247\303\265\xc5\xa0^\302\x9d\xc2\257:}\342\x80\x93\xc3\210\303\xaf|>\303\202\302\xb5a-'U%w*\342\200\260#>\xc2\244@\302\x90\xc3\x8c\xc2\xace\xe2\200\x93J\303\277\xc2\x9d\xc2\244;Pw/+\302\271\xc3\xa1\x85E
jn\302\241\xc3\220\xc3\x83d\342\200\x93\303\264\xc2\242^[\xc3\272\302\257\302\247c\303\216\302\260\302\xa5u\303\x8bz\\xc3\230\302\x901mi"x\342\x80\232\342\200\x9ep\xc3\xa5\xc3\203;\xc2\xa3\xf\xc3\214\303\xae\313\206\303\246\313\206\x18P)\22\xc3\244\26\303\xb8\xc2\xaa\303\207#\xe2\x80\236\37\302\xb1\303\230\xe2\200\231\xc2\xa1\7\342\x80\246\303\x8b!A\302\xaa;\302\xa8\xf\303\x9f\x94\xc3\254\302\263\33a{`aV{K\xc2\235U\303\xa0\xc3\2128\xc3\xa3\xc2\250\xc5\xb80''o\342\202\254\242\xcb\x86\x6\302\xa8\302\xa2yc\303\214\xc2\2709]K\xc3\xa9@\x15\xc2\272\xc3\x92\342\200\224^\303\260l\x1B\xcb\x86\xc3\242Or\xc3\xab\xc3\x94\303\xa3,du\302\244\xc2\2768\32\302\244?\xc3\265\342\x80\260\xe2\202\254\xc3\225\x1\x16%\302\xbcgB\xc2\xbb\xcb\206\xc3\xae\342\200\x9a\xc3\x86Yn+\303\243%c\302\xace\x0\305\222\302\xb0\xc3\xb1\303\240\302\xa4\xc2\261Yr@f\23\303\254\xe2\200\271(]\303\226\302\xbc\302\xa8\xab\32iz\22\xc3\256\303\x96n\342\x82\xacSS2\xc2\243\303\201GdBPj\xc5\240\302\xb9\xc3\226@\xe2\x82\xac(\xe2\200\224\303\210\xc2\xa5\xc2\246!\xc3\240-\xc3\247v\xc2\262\302\264e\303\232*c\x0\xe2\200\236\xc2\2524\x2J\303\246\303\xa7\342\x80\x9a\xe2\200\x99\303\271\xc3\x95\xc3\x99,\342\200\x9cU\xc3\x88\1	d\302\xba\xc3\211e\303\xb0j'T\313\206\x1H]\xc3\x94\305\240\303\224G!\305\223)u\342\x80\xb9\x10\303\225\xc3\x96\302\xaf\xc5\270\xe2\200\xa2\xc3\x92\302\xaf\xc3\271Z\303\x8bB5\303\273\303\214\342\200\234W\305\275\xe2\x80\xb00\x3\xa\302\261\xc3\xa1\xc2\241\x1b\303\x94\x6R\xc2\xab\xc3\x81\302\x81W\302\201\342\x80\246\\x1c\xc2\246Q j\xc3\x84\25^r\303\x8a%l\303\214\x16\xcb\x9c3,\xc3\x92Yy\303\227\xc3\211f3\6&\x4\303\214\x16\xe2\200\xa2\303\234\xc5\xbd\xc3\x95Q:\xc3\x8f\302\2652\xe2\x80\236m\xc3\211R)\342\x80\235T\342\202\xac\xc2\276(KR\303\201\302\xa00\xc2\xaa\303\212\xe2\x80\x9d@\302\xab\303\254Y\xc2\xb4\xc2\242\6Y:\302\xa3\xc3\x99e3\xd%\xc2\xb4\xc2\250\xc2\260T\xc3\266%\302\xadX\xe2\200\x9d\xc3\201\302\xb9\xe2\200\241S\7T\303\224.J\\303\xab0\303\231h\303\xb4\xc3\x84\342\x80\xa6\27\305\240D!\xc3\204:\342\x80\x94u\xc3\xa6\303\252\303\x89U"\xc2\xbe\xc3\205\302\201\x4\303\x81o+7\xe2\200\223"\x6\x15\x19\x1b\342\x80\x9e\xc2\265\xc2\201\xe2\200\234\1f'\xc2\272\302\255R\x0\xc2\xb0\342\x80\x98\303\236J\302\x9d\303\xb52S\x18\342\x80\x932\7\xc3\xa8#nm \x2\xc2\xbb\303\201I\x7f\xc3\xa5\xc5\xa0\305\223\303\275"\32X\303\xbc\xc2\263\302\xb2[\302\x90\303\x96\xe2\202\254\303\x91\xc3\xac}\36\26 J\x6\xc2\250\302\257\36c\xc2\2749p0\302\xaa\xc3\xbc\xc3\225Q\xc2\273(U\x0\302\xa3x\x1DEW\xe2\x80\x9a\305\222.L\xc3\xb5\303\x81=<B\303\x940\xc+\302\275)ZS V\35;\xc3\xa2\\xc3\xa2\302\xb5I{\xc2\2205I\xe2\200\230A\303\xb4\xc3\x96\303\203,dW\302\xb2\x6\x15u\xc3\2505Ew
$%\303\x92\xc2\x81\342\x80\xa6\313\x86\302\2752i_$\303\x88\x5\303\x99+\xc3\xac\303\xa6O,\305\222\x2\302\xac\xe2\x80\xa1\303\255X\xe2\200\271\xc2\264\xc3\x95\342\200\230Jg&J\302\xa1\303\272G\342\200\x99\302\272%\J\342\200\x9c\302\267b.\303\204\303\235^L\342\x80\xb9T\xc3\262Fl\305\222\xc3\xa8\342\200\x93\xc2\xb9]k#f@L\xc2\xb7G\xe2\x82\254\x1f\303\x84\302\x90T\xc2\xbc\303\231\342\x80\224\xc3\x92\xc3\215H\xc3\217\303\x8c"\xe2\x80\x93q1\21S\xc3\214\302\xb0\303\xb9\xe2\x80\xb0j\xc2\x8fV\xc3\x89(\303\216\342\204\xa2\342\200\236\xc3\254ZVz\303\x9f\303\205\342\200\xa0\302\263,\xc2\235\xc2\xa7\xc3\x8a\303\250G\302\215.1F\xc3\273\302\261gN\xc3\212;\303\x971\xc3\x83\305\xa0V\xc2\254\302\xa65E\21\xc3\215\303\xb25`\x14\x15\xc3\xb2\0Ct\303\xa8\x1=F
\303\xa1\302\xb9\xe2\x80\272\xc3\x8e\302\261\342\200\242K\342\x80\241\303\xbe\342\204\xa2\303\226\x0\302\255\303\x9b\305\xa0\xc2\xb1%\302\xa8\303\213D]Q$
\x0\xe2\200\xa13J\,\xc3\215\342\x84\xa2\305\xa1\xc2\xb3<T4*\302\xa3\342\204\xa2\xc3\x81.\303\222YK\xc2\262\x12D\xc2\xabQ\306\x92\303\251L\303\257S%,\xc5\240g\xc3\x94\303\x87\xc3\245\x1d\302\252\xc2\xa7\xc3\226<\xc3\213\xc3\253\342\204\xa2u0\xe2\200\x93\x1b\303\xb4\303\215U\35\xc3\x84\342\200\260\xc3\226\x17*\x1ex(\302\xa9\303\245N\xc3\202\342\x80\231Yv!\303\xbe\302\xa5y\xc3\215\x9w\303\2054fd\302\xaa\xc2\245\10r\x13G\xe2\x80\xa2\xe2\x80\xb0M $\303\xa4\303\xaa\342\200\260^;\302\xba\xc3\251\xc2\235\303\256\xc3\235\303\xa6\313\x86)<P\xc3\243\x11]D\x14\303\222%%\xc3\x93;\303\x94j\xc3\212\xc3\245\xc5\241I0\303\xa6a\x1c\303\x93u^Jp\xe2\x80\x94[)\xc2\246v\302\2513RhR\303\272E\xc3\xb6\303\x80\xa\xc3\246\342\x80\x93L_\xc5\xa1#5\5|\xc3\234\xc2\276\303\x95m3P\x1d\xc3\261*\xc2\xa8\Y51X\342\x80\x99\xe2\200\231	i\302\xb3N\342\200\224\xc3\x88\7\xc3\261$"\302\xb0\xc2\272a\303\xbc\xc2\255\xc3\xb5h*KU\303\235\xc3\x8c\xc3\xafV8\302\250\xc3\245u\303\xb2\xc2\xb1%&\xe2\200\x9er\xc3\246\302\xaf\21\xc3\x8b\xc5\241\xc2\xa0\302\2625o\305\x92\xc3\x95\xc3\xa7g\302\263;\303\235rMl[\303\206\xc2\250\303\266g\305\x93\xc2\xb3\303\xb9\xc2\252\342\200\x99\302\xb7U\x13\xc3\215q\342\x84\242\xc3\xaa\302\xb9\xc5\xa1h|\303\x94eO2\xc2\267f MlW\x132AP\xe2\200\236\303\x97\xc2\271\xcb\x9c\342\200\231\xc3\x8d\xc3\x80\x15\xc3\x8d\x1v~\x1eD\x4\302\254e\303\2613U\x14\xc3\223\xc2\xabl\342\200\xa1E62i\303\xbc\xc3\x8e\xc3\xb5\303\xac\303\223U\25b\xc3\214\xc3\257\313\234\302\xac\xc2\xab\xc3\xb5U\xc5\222\xc2\254\302\xa9\xc2\250\xc3\256\xc3\270\xc2\x90\xc3\xbd\xc2\xaa\34V\xc3\260\303\xaaiI!$i\302\250\xc3\212\302\xad&Z:\xc2\275\342\200\x93x\6\26m!\31\303\205\xe2\x80\xa0\342\x80\x9c.\303\226O\xc3\215fw\303\x92\302\257!\35\342\x80\235\303\x8c\x5\x18\xc3\223k\xc3\x9d\xc2\244\303\215\xc6\222\xe2\x84\xa2\xc2\2156\26b"\302\xabI\342\204\242J]]:\22T\342\x84\242\xc2\2356\xc3\222Vr\303\272\302\xb9}\342\x80\231\303\234\x1d\xc3\x87\xc2\253]\342\x84\242\302\xae\xc2\261\xe2\x80\x98U\302\242\xc5\275\x9ys7f\303\224M\303\x85\xe2\x84\242\303\2773\313\206\305\222\303\234\xc3\x8eY\305\x93\xc3\xb3:T_M\xc3\x8dw%3\303\x86n\x4\xc3\x8f\5\302\xa5
\303\216\303\xa6z*\34\xe2\x84\242\xc3\xad3\xc3\242h\xc6\x92\302\xb7\x9\302\273`U\342\200\223\xc2\xb2L\xc3\277\305\xa1\xe2\x80\xa1,\302\245\xc3\x9b\342\x80\x9e\xc3\x905\302\250\xc3\263vf\306\222\xc2\273\303\x83\342\x80\xba\xc3\x9942_Q\36\342\200\xb0\xc2\274\23h\xc3\235\303\x87\xc3\x8d\x13uD\xc2\xa7\xao\302\243\xc2\271)\302\244\303\x84\305\223\xc3\225\302\253M\x1c9\302\xbf7fo\303\x9b\302\xbc\xc2\xa9\xc2\244r\xc3\x96\xc3\235\303\207\xc3\216\x1WB\x1f~iT\303\x9dey\x13QT\xc3\xa2N\xa\xc5\xa1d\xc2\xa6\x16pr\xc2\247#\xe2\x80\xba\xc3\xb3M\302\xa7\2;\342\200\231\xcb\x9c\xe2\200\2464\xc3\xa6p\xc2\252\302\274\342\x80\x9et\xc3\252\xc3\xbf\xe2\x80\223(;\305\241\342\x80\272\302\2635	|\302\254\303\240\303\x87\xe2\200\232\305\xa0\xc2\xad'\20,AV\357\x11\xc3\234\xe2\200\235\303\x94\303\xa5UA\303\266&\xc3\254\xc3\x8dR\xc5\x93P\302\xaf"\x1d\xc3\xa4\303\225y\xe2\x80\xa1\xc3\222\302\267\342\x80\242\xe2\x80\260)\xc2\xa0[\305\xa0\1\x1en\xc3\214\303\x95\303\xb1-3V\342\200\xa2\xc3\213,?\305\223s6\302\xbap\305\xa0\303\271\x8\xe2\x80\xa03\305\xbdf\302\xb5\xc3\216A\xc5\xa1\xc3\2339\32k|\303\x9d\303\x89\302\xaeS\342\200\xa0f\xc2\254*@\xc5\x93\342\200\2425\303\236g\xc2\274\xc2\276\303\x89\302\xbf2\302\xb7\25\37\303\215}\xc5\x93\305\x92\xc2\256\xc3\xbeU\xc3\xbc\303\235\342\204\xa2\342\200\x98\303\260\303\xb9\303\246H\303\216F\xe2\200\xbal%\xc2\256p\xc3\x82\302\253Ie\xc2\263be\342\200\x94M\xc3\231SO\xd\305\xbd[\302\274\303\xa6i\xc2\xb23\xc2\x90f\xc3\x89\303\216LV\xc3\241\16\xc2\256r\xc\xc3\x99u\xc2\256\xc5\240\302\xbe\xc2\xa5\xc3\x9bNA\xe2\200\xba:\xc3\xae%r\xe2\x80\x9e\303\232\x7y3Q\xc2\235_\303\x8c\xc2\270\342\200\xbaW.\303\221\xc3\225\2\xc3\x88\x7^Sl@&\303\x8c\303\201\xc2\x9d\55\303\x96Yl\303\202\31\303\x8c\231\xc3\xa5\xc3\246\303\x8e}Vx\303\xaa\305\276g\303\x8a\342\x80\246\xc2\xa7^Sn\xc3\x95\23\xc3\x8c\303\x8dQ!:5\303\x97Z\303\236iZ\23C\303\x94\313\x86:\xc2\xbf\xe2\x80\xba\342\x80\xa23qg\4\303\251%D\xc3\241\xc3\265\303\235\xc2\252\x12{U\xc2\2413\xe2\200\x99tZ\xc2\271`\303\xbb\xc3\x93u%w:\xc3\x89ZQ:\35Q\303\xac\xc3\x8f\303\207W \25f\xc3\256\xe2\200\xa1\303\xad\xe2\200\272\xc2\2779Jpl\xc3\xaa)\xc3\2263x\303\224v\xc3\214\xc3\xbe\302\235K7\305\276b#\xc2\253\xc3\xb9\302\xbd\xc2\253\3\xc3\xa7X+J\305\241(\302\242\xc3\x82h\302\264\xc3\254P*\xc3\223\xc2\201\302\235\302\264\302\253\303\x8e\xe2\200\xba\xc3\276\302\242!\303\x97\xe2\x80\235\303\xac\303\x85\xc2\x8fSL\xc3\247h*'\302\235\302\xa4\302\250
pB\303\xb9\342\x84\xa2\303\x9a\302\xaa\xc2\217g\x11N\xc3\212\302\235\302\2478Bu\303\x92\302\xaa\303\xa9\303\202\xc5\275\xc2\257\303\247\xc3\216\305\x92\xc2\x9d\302\xbd8ni\303\xaa\xcb\x86I\xc3\215s\xc2\270US\303\x8dI\xc5\xa1\xe2\200\xa1;vv\303\x9a\302\xb3U\303\xb5sR\342\x80\2427N\xc2\235u\303\x978\xc2\251H|\xc3\255\303\xa9\303\x85\303\223\302\267\302\xa7\x18\303\x8c\xc5\xbd\xc5\223\xc2\2538\303\262q\302\xb4\303\x95\xc3\231\303\236+'\xc3\x91\xc3\x9f\303\215`\xc5\x93x\xc2\xa29R\x2\313\206\x9\303\225\xc2\xae\302\xba\303\247\35MaR\258\303\xbax\34\303\xa4)\302\220\xe\xc2\270'!\xc3\x8f\x11\305\223\302\217;\xc2\xb1U\302\254\xc3\227Y\xc3\x96\342\x80\x9c\xe2\200\x99\303\235sNI\xc2\235g:\xc3\225KT\303\253y\xc2\2573\xc2\256g\305\275\xc3\x8dY\xc2\235\303\xac\xc3\xab\303\x8ak\303\244\xc3\243\303\211\xc3\234\302\263n'LO(\305\x93\xc2\2773\xc5\xa1w4\303\xb1\x154\xc3\256\xc2\273\xc2\xa6\303\207\xc3\x8f\x18\305\223\xc3\x9a\xc3\252\303\276l\302\254\xc3\xb1\31\xc3\216J\302\xbd\xc2\x9d\xe2\x80\223\xc2\252w\xc2\235\302\xbd9\303\x9d\\xc3\254\303\xa7\342\x80\242\303\xb3\xc3\263hf(\302\242\x3_~\x1f\xc3\254\xc3\xb2\303\xa0}\x29N\303\266\xc2\xa6\xc3\x95\x12\xc\0\342\200\223\xc2\264\303\xa5b"\302\242Y\303\251\302\xa4\xc6\x92Th,\xc3\232\xc5\xbe\302\244\1@\2\xc3\272\302\xb1\x15D\302\xa1\303\xbb\342\x82\254$\xe2\202\254I\xc5\276\xc2\xb7;\305\xbde\303\xbc\xc3\250U\x18\xc3\x8a\177\xc2\235n\xc2\250\xc2\263\305\276\302\267,\xc2\xb9O\302\252\xc3\206	X\302\x81\303\xbfg\xc2\264-\xc3\x80\305\xbe\303\x89+>ti'G\xe2\x80\232\302\201\xc3\266\xc5\xbdl\xc2\xaa%\x0\xc2\xad8\xc3\xa2VB\xc3\x8bU1\302\253ye\302\220\x0KT\303\x86\14\30\xc3\273\303\x81\303\x88m\342\200\231\xc2\xbaV2)\xd]I/\xdF\303\xb9\xe2\x80\246\303\224X\313\x86\303\227\303\200\303\x9f\302\xa8\xc3\261a\24\302\267\302\xadG\xc5\xa0\xc3\202\xc2\xb9\xc3\xb2*\313\x86\302\247\1\302\273\x1\305\276\303\xbf>ER\303\xac\303\267\xc3\260\xb\303\256\302\xae\302\xa5\305\xbe\342\x80\xa1\xc3\x91Z\342\x80\xba-)I$\xc2\xae\302\xb9\xc3\255\xc3\xa7:\xc2\246a\x11\303\x8b\x0\xc2\276Fyba\36\xc3\231g\302\253w\302\xa7\xc2\255(\303\237_@\xc2\xa7v}\34\303\266i\xc3\265\303\212\xc2\263\x14\303\xae\xe2\x82\254S^\303\x8b25D\xc3\224\302\xb3\xc3\220\x9\303\210\303\264URO\xc2\xb1\xc5\xb8JH\xc2\x9d\xc3\x96\\303\230\x19is\303\xb0f\303\206\303\213K\xc5\xa1N\xc2\xb1\xe2\x82\254\x2q\x1ei\303\267S\x12g\303\x97O\303\202\305\270\xa\302\xb2F~|\xc2\253\302\265\xc3\x8f*@gR\xe2\202\xac_Q<\x19s\303\x9c\xc2\2543i+\xc3\x98\342\200\x94\xc2\262.Cw\xc2\262\302\xb2\303\xaa|\xe2\200\232\302\x8d\xc3\270y\xc3\x8b6a\xc3\xacO\303\x9cY\1779\302\266\36\305\x92\xc2\xb6\303\x89\342\x80\223\xa\xc3\xab\303\x94\302\275-([\xc2\256\302\261\xe2\x80\240_\xcb\x86}\x19\303\xadS\xc3\273]c\xc2\xa4\xcS\xf=\xc3\202\x7f\xc2\244\303\x8e\xc3\231\xc3\276\303\x8e\xc3\215\xc3\224Y\303\216\303\240U->\xc2\xa0\2<\303\272\302\251\xc2\265\xa<\303\226sO\303\xb4Q4F\xc2\246^}\x07u\xc3\xa4k(\3/\342\200\xb9\xc5\xb8\303\x9b/5{L\xc3\2779\xc2\265\x0\20\xc2\247\302\xac\xc3\220\xc\302\240&\xc2\263\305\240[<\303\217\303\265\xc5\270s\303\233\0&\303\x8d\xc3\250#\342\200\246@h\2\xc3\214\303\xa9\302\xaa\x33\xc2\xa9V}\303\220\36\302\x9dH\xc2\xa2\305\240\xc2\201*\303\x9c\x8w+]'D\xc3\220&\302\240@\302\247\xc3\x96\xc2\201]\x2)\xc2\xb5\24\x7\303\250\22;TGe3\302\220\302\215\\303\x8e\303\xaa\x6n\302\256\303\221\xc3\x9f\303\213d$:\xc2\xa6uN4\303\205ykt\2\3\303\252-dR!7\342\x80\x93\xc2\201\302\255\x1\xc3\211e4\x12(\24P!\342\x80\242\305\270-\xc3\276\302\x819\x1d\303\x80\xb4\22\xc3\247_PMGb\302\217\x2\302\201\xc3\204\xc2\261w\342\x80\xa6\xc2\xab\xc3\230\303\2116O\302\xa7S\x4\xc2\246F\xe2\x80\232\303\242\xc3\255)\xc2\247\xc5\240yh0+\342\202\xac\305\xbe\xc2\262\302\247qT|\302\xb7\xc5\240+u\xc3\x94\xc3\xbf\303\x8e+\302\xa0\xc2\x8fA\302\254?\303\xb2\xc3\236	\xc3\266T\x16\xc3\xa83.q\302\240\302\21741T\xc2\xb4\302\270e\342\x80\272\xe2\x82\254
\25:P\x12\xc2\240\xc3\xb8\302\xaf\xe2\x80\223{T\xc3\256\xa\xf\302\263\303\253h?\xc2\xab\305\241T\303\257A\xc3\xb9S\xc2\243\xc2\xad*\2\xc2\xab\x1f\303\xa5\303\222+\303\xa5u\302\245>\303\272\\xc3\252\xc2\xbeZ\22\22\xc3\xa9\x15\xc3\xad\303\212\303\xaeY\xc3\xac\302\xb7\xc2\242wE\6J\17\xc2\x81\303\xb6%\302\267\xe2\x80\x99s\342\200\x94L\302\xb1\302\xbed\302\252\305\xa1y\xc3\200+\xdC\303\xa8\xc5\223\xc3\x9f\302\241'A\xc3\xb1l,\xc3\x92y\303\2453\xc3\276\303\247\302\262\303\x8b\303\x8d\342\x80\x94`\302\272	_*\303\x91P\xc3\xbb \23ThKDV\xc2\xb2\xc2\267\342\x80\x93~5	\xc3\xa00\302\264+\303\241\302\274,\5\305\xa1-?\302\xad]\305\x93\302\xba\xc3\xb23\303\253\26\303\x96\xc2\x8dK\303\245\xe2\200\x94`\xc2\257^\342\x80\xa0\22\xc2\270\xc2\xa4I42(]\302\252w\xc5\xbe\x5.\303\246\xe2\200\240r\xc3\204\xc3\x8a\xf\xc3\x8b\303\xaa\26]\302\254
Y\xc3\x86\xc2\xa8B\342\200\xa0\xc2\xa3\302\xad\303\220	\302\263\303\xad\342\200\223}\xc3\x90\xe2\200\271R \302\276\303\211g\303\230}:\x1bH\302\xa7\303\xb0J\xc3\x84WP\302\262\xc3\252\xe2\x80\236"\xc3\x9e\302\xb5\xe2\x80\x94\303\xb0\xc3\264V\\302\254<\342\200\x94\342\200\x94? >\302\275\xe\xc3\xa5\xe2\200\x94\xc3\241\xc3\277\xc2\xa7\xc3\234\302\xac\303\x9d\xe2\x80\xa0\302\xbf=\xc2\246\xe2\200\xa6:\305\xb8\xa\370\xc3\227\303\250\+\303\xb1S\342\200\x93\302\xb4\303\xa6f\x4\xc3\x9dU\xc5\222\xc2\263\303\255\xe2\200\xb0U,\342\x80\xa6W\177C\xc3\x96\xcb\206\32\303\xa8\342\x80\242On\xc2\xa8\3\xc3\262\xc3\x8e\342\200\246\302\242\4\302\247.\342\200\240e\x109|R\303\267I'\302\xa9[\22\xc3\x97/\xc2\215\302\xba\xc2\xb2\xc3\204\303\x99\xc3\2742\xc3\271\xe2\200\272\xc2\253Q\33\xc5\276\xc3\x93B\21n:\xc3\206I\303\xb5\xa\xc3\xb6\xc2\xa7g\xc2\274\259\xc3\x86
\303\xbc,\xc3\223R6\xc2\xb3\303\xbd\xc3\247\xc3\222Q$X\xc3\235+\xc2\270>\302\x90\342\x80\x93\xc2\251\302\261`
\3\xc3\xb9)/_\78Qi\303\x94\303\271\xc2\265\37\303\xaa\32\xe2\x80\224=\xe2\x80\xa1\303\252v?5\31v\xc2\235\x0 \x5
\302\xa8\303\xa7\xc3\211L\xfG\xc2\245Dm\x1e\xcb\206\x5w\\303\xabF\303\x96\305\222\xe2\200\xa1\303\221\xc2\xa2\302\x90\302\257\303\201d\xc3\252\xc5\270\302\xb5}s\x5\342\200\xb0"\342\200\x98\303\203Yv\xc2\xa4\x15|\xc3\242\342\204\242J*\302\2649h\xc2\255\22\2\xc2\241\xc3\221@X\1E\20U\xc3\221*\303\x9e(oQ]$\xc2\x8dB\xc5\276\xcb\206,\303\273\303\251\xc3\x9c\xc6\222\342\200\xa2K\x1dT\xc5\223v\302\244AptC\xc3\x89\xc6\x92\xa\x1a\xc3\227C,/\xcb\234<\302\xa1\302\255\17\303\232\xe2\204\242EW\342\x80\271-V\303\257P\21\302\241\x8\xc2\xa2=W\x14\303\277*%K\xc3\xaa\342\200\x94-Q`9\x16\x9\x1c(\303\212\303\xba59\303\223\342\202\xac\xc3\xa8m)\303\213X\xc2\270\xc2\xa8@\303\xa72\303\270\xc2\240\303\275T@\313\206\xc3\x9b\22
S\xe2\x80\223\xc2\xaf\342\200\x98bd\303\227E\xc3\x8e\xc2\xb4a\342\202\254+\342\x82\254DX\x6\303\256\303\xa1|U\x19\303\232	\xe2\x80\xb9\31\x9\7\xe2\x80\231\x11\xc2\241\x8F\xc2\xae 2\xc3\xba%5\xaj\342\x80\xa2m\302\253\342\x82\254W\303\x99+\16\xc2\215x\4\xc3\252\x8K\xc5\x92\xc3\xa6V\303\2143#\xe2\x80\236\xc2\xb6\1CT\xc3\x83ek\302\xa4\342\204\xa2\xe2\x80\223&\303\216,\302\243l\302\254jbd7)\303\223\xe2\x80\234\x12"\xa+\xc3\xacP\xc3\274\x13\xc2\xbab\xe2\200\231\303\xa8I\xc5\240@\x15\303\xa83\303\x91\xe\xe2\x80\xa2\xc3\x9c\xc2\xb5jU\xc3\222\303\214E\x1as\303\x9e\x14\303\x94)D\302\242f\xc3\253\342\x80\x99\306\x92\303\265\x1d\xc5\240\20\302\x81\303\273\342\200\xa2\xc3\x87P\302\x81Z3A\xc3\x8e\305\x92\303\x95
wTh\xc3\260\xe2\200\224\xc2\xb2\302\252\xc3\x9b\xcb\234\xc3\x854Z\302\217\22\303\244\302\xaa<\xc3\x8au\25\xc3\x9f\xc2\xa9\xc3\x9f\24\32\10d\2\xbq\303\242\xc3\213\xc5\240u(\xc3\xb7\305\276\342\200\234bKG\xc2\261\xc3\xa0\302\245\x16\xc3\251\303\x80n\xc3\223T\303\xaf\302\256\xcb\x86]z\302\xa8\302\x8df%\36#\xc2\x9d3\x19I\x7\xc3\x8bfS\xc2\250\302\256&}\xc2\265\x11\25@D\xe2\200\xa0@++\303\xb9\302\xa4\31A\xc3\255h\xc2\252\302\277\302\220
\302\xaa\x1e\x14\303\xaf\342\x82\254U\342\x80\224\xc3\x9e\xc2\xa5\22|B\302\241\25;\xe2\x80\235\xe2\x80\xa6Um\303\221\303\231U\xe2\200\246E\xe2\200\242N\xc2\245!\xc3\xb4x2\302\xb1\251\303\222\x1d\0\xc2\247GmvH~\xc3\xb5\303\201H\xc3\250T\303\252)\xc3\266W\xc2\256\302\xb3YN\303\275"\303\245\36k5\xc2\251\25\xc3\221vT#=\302\265\303\x9a\302\245\22\xc3\212<
}\xe2\200\x98#R3Y\306\x92H\xc3\x85R\303\x8dI\xc3\215\xc2\263\xc3\x9c\302\246;\xc3\214\303\x91Rl\xc2\xa31l\x2\xc3\251uB\x13%TQJ\303\256\xe2\x84\242*\302\272\xc3\xaa\xcb\206\xc3\x99'\xc2\xbaE\303\2530i\32\xc2\254dw,\302\245\x1az\xc3\x8a\303\215\302\xa5:$\342\x80\xa0\302\246;\xc3\215?\302\240\xc3\274\xc3\256j\xe2\200\230\2\xc2\xbf)\302\247\xc3\xb4)\303\x94\302\x8f\21\303\212$32J}\303\205&\xe2\x80\241[\xc2\263$\302\xa8\303\xb5\303\x8c\xc2\201\xc2\xa4;Dn\302\x90\303\xbd\x8E\303\227\xc2\264\36\xc3\200+0\303\233aZ{\xc2\xa8\xc2\x8d\xc3\xa8\x1b\20C \20\xc3\xa8\xc3\xbb\xe2\x82\xac(\302\xa4\303\xaa:\xe2\200\x9c\xc2\xb8\xc2\240\303\232O@\x1eh\xc3\270\302\262D\xc2\xa3\303\xa6\0\302\xa1\342\x80\xb0`\30PTou\xe2\x80\234\302\xb3\303\x84\xc3\257F\302\xae\xdQv\xe2\x80\232\303\273\302\250\xcb\x9co\302\xbd\xc3\234\xc2\xa1$S\x1c\303\xae\x7\303\266+\313\234\xc3\222#7\303\200\302\244Iz\1r\342\200\246pk\xc2\240DW\xe2\200\235\313\x86Fs\xc3\x8d9\342\x84\xa2\302\240Q\303\252\6 \xc2\xa0\xc3\x90\2\302\2601\342\x82\xacg\303\200\xc3\205#\342\200\242\x0\L\xc3\xa0$\xc3\x98\x19\xc2\2403\342\202\xacg\302\251X\1\305\275y\xc3\264\x6y \xc5\223-3h\1\342\200\xba\xc3\200\303\xbe\303\203!\xe2\200\xa0nX\xc3\xa8\303\xb4]+\302\xb1\xe2\200\x94	\303\211\302\x9d\x10\342\202\xacc\x0\303\x88\0\xc2\274\2\24b\xc3\x98\xc3\x85\0\xd\342\x80\xb0\303\xbc\xe2\200\241-{\xc5\276\x0\302\272Q(\x2\303\xb0\xcQ\xc3\224$s\xe2\x82\2540\xe2\200\246\xc2\xba\xc3\251m(\xc2\260[Ru\303\xb2V\xc3\206\303\267\xc3\x92\303\x98>\303\x86\30\xc2\xbc+\xc3\240\x3J[\302\xa96\303\240\342\x80\x98\303\x92\xc3\xa0\x2J\0\303\x96\xe2\200\x94\30\x1e\303\xba\\xc2\264\xc2\xb6\xc3\xa3,\xc3\x92\xc3\xa9\xe2\x80\x9a\21K\305\2413\xc3\xbd.\xc3\xaa]a_\0\x1cR\303\262J \x1c\303\206\342\200\x94`\3\xc5\241^\xc3\x94\xc2\xb6ClR\303\x9b\2IK\303\256\342\x80\x93\303\xb9
\302\xa0$\xc2\256n\xc3\x85\302\x8f\xc3\222\303\244\302\245\xc3\257Kj\xe2\200\x93\302\xa9\xa\342\x82\xac\xc5\241\24\xc3\x81\xc2\251~\6/\xc2\245\xc2\252mn\313\x9c].\302\xaa`\xc3\264\xc2\xbfij\xc3\222\xc3\xa2\xc2\xa6#K\xc2\276\xcb\234\x14f:`\0\342\x80\xa6\303\xa9\xc5\222\342\202\2546\xc2\2467K\303\xa2\xe2\200\x93\302\250\3zc\xc3\264\xc3\202\x0\342\200\x99\303\222\303\265\302\xa6/K\302\xae\342\200\x93\xc2\255/\xc2\xaad\303\xb4\303\x84\303\xa9\xe2\x80\xa1FE\0aL\xc5\xbd\313\234\302\xa4dZ`\xc6\x92J\xc3\251\342\x80\xa0S\x1\342\200\x98\xc3\217\27\xc3\212\342\x84\242\xe2\200\2462\303\230\303\x8d4\xc3\x8e@/\303\x86(\305\222\342\200\271L\xc3\xb2\342\x84\242\xc3\2650\xc2\xaa`\302\264\xc3\x84\xc2\xa9\342\x80\xa0\xe2\x82\xac_\xc5\275\x17L\303\276\xe2\204\242]4Zh\303\xb4\xc3\x90\302\251\xc5\241SD\302\xa6\3M\36\xcb\x9c\342\200\2464:c\x14\303\x91\xc3\xa9\342\x80\271SR\xc2\245\303\x97M\x1e\xe2\x80\x94E4\305\241i\xc3\262\xe2\x82\254\303\251\305\276SG\302\xa6EMj\313\234\xc3\2454zd\xc3\224\xc3\225\302\xa9\xe2\200\223SF\2KL\302\xaa\xe2\200\272%4\xc2\xaae\xc3\224\303\x8f%$\303\223l\x2KM2\342\200\x93\303\2651\303\210\xc3\x9a\xe2\x80\235\xc3\224i\xc2\246\303\223\30\302\x8d\xc2\251MV\xe2\x80\xba\302\255.\302\270\xc3\232\xe2\x80\x9d\xc3\x96i\xc2\264\303\223\1\302\215\302\251Lz\xe2\200\xba\x5/\313\x86\xc3\267\303\xb4\303\x9b\xc2\xa3\xf\xc3\223\xe2\200\x9e\302\xa6\xc3\x91M\xc3\246\xe2\200\272,`\xc5\240_\303\264\xc3\240imS\xc5\240\302\246gM\303\206\305\223\24\342\202\xacjg\xe2\200\230\303\xb2\xc3\251\303\207\303\2235\302\xa69\x1f.\xe2\200\xba\342\200\xa69j_\x11\xc3\262\303\251\302\272S\xc2\x90\xc2\245\xc2\xb5\x1f.\xe2\200\272\303\2059\303\252_\xc2\xb1\303\262\303\xa9\302\xbeS\313\206\302\246\xe2\x80\xb9\x1f.\305\x93\x57\xc3\x9ar\xc3\xb2\x2)\xc3\x89\xc3\x93%\xc2\247[\372\302\x9dm8\xc2\272uT\303\246\xc3\251\342\204\242S\302\xb1\302\xa73M:\302\235]3\302\xbaq\342\x80\x9d\xc3\xa8\xc3\244n\303\x93\xc2\261\xc2\247KN\313\x861|^\xc3\x92kt\xc3\217"\xc3\222\xc3\x93H\302\xa7gKj\xc5\xbe-;zc\x14\xc3\xb1i\303\216\xc3\223\xc5\xa1\xc2\xa7\302\x90\x4\342\x80\223\302\x9d
<\xc3\xaa_\xc2\xb2-i\303\212\xc3\223\xc2\270\302\245\xc3\xb1"\xc3\x96\xc5\276U.\302\xb9\x16\302\264\xc3\263i\303\xabR\xc3\232\342\200\230kOF\305\276\303\255=:\\303\xb4\303\217$Z\303\x93\xc2\xa9\xc2\xa7ML\x6E\302\xad5\303\xbax\xc3\264\303\270\302\xa9\xc3\x82\xc3\223\302\273_"\xc3\x96\xc5\x93=<\x0\303\261t\303\xa9\303\231S\303\xa7\xc2\xa69O\xc3\x92\305\276\xc2\xad1\xc5\240~\342\200\x9d\xc3\266i\xc2\262\xc3\x93\303\264\xc2\xa7\xc2\xb9O\xc3\252\xc2\x9d\303\xad>\303\252~q\305\x93)\xc3\xb2F\xc2\270\302\250\xb\26\342\200\231\302\xa0=6:~\xc3\224\xc3\xb5\xc3\243J\xc3\x94\5\342\200\x98\303\x8fP:\xc5\xb8\xc3\x8d=\302\xa8\303\245T\303\277)\302\242\303\206\302\xab\302\xa7\303\xbfPJ8\303\265@\xc3\252w\303\xb4\xc3\xb4\302\xa9\xc3\xb7\303\x87*\302\xa7\303\215O\xc3\x8a5]>\xc2\252\xc2\x81t\303\267\xc2\243\xe2\x80\242T
\xc2\247\xc3\245!"\xc2\xa0\xc2\2156Y	\x15\5)\342\202\xac\303\210H\xc2\xa8/P\302\252\305\276\xe2\200\xa63\xc3\x89\x9\x15\x6\303\251\303\xb0\342\x80\240/\xc2\220\xe2\x80\x98P~\xc2\240\303\xa0\x5\xc3\xb9	\25\x8\xc2\252\x13\303\x93\302\256\302\xa8\x5!"\xc5\270\xc2\215C\342\x80\231\xc3\x8c\xc3\x94\xc3\xbdj\x1e\xc2\xa1 \xc2\xa8eNJ\xc2\241\303\274\xcb\206\303\xaa\313\x86\xc3\261\xc3\x94*%\xc3\x944\302\xa61Q\xe\302\xa1\xc3\x85CZ\342\x80\xa1Q\342\x80\x98j\36TB\302\x8d\33Q.\xc2\242\xdE)\x04\xc3\213\xc3\xaa$\342\202\xac2\xc2\250SM\24+\303\xa5<j\342\x80\x9et\302\277j0\303\x94,\302\2469Q\342\200\xa0\302\241}F\x0$\xc2\261s\302\251\305\xbeTa\xc2\xa8\xc2\235K\303\216\302\xa3]E\x1ac\x15\x18j*\342\202\254'K\302\273M\302\xbe\xe2\x80\224MGx\xc2\275\xc3\x95\36R\303\x87T1\xc2\xa6#Q\303\xaa\302\xa1\xc2\xa5G\302\xaa\xc5\xa05\36\xc2\xaa:\303\x94z\xc2\xa8L\xc5\xa1\xc2\2414u6z\302\x8f\xe2\200\242"j"T\xcb\x86KuN\xc3\x96\302\243\xc3\275G\303\x9ag\25$jFS\xc3\234\302\xa8\xc3\257Q2\302\244\xc2\xa5H\xc3\270\xc3\256\302\265"\303\xaaMT\xc6\222\xc2\251%R\26\302\244\xe2\x80\242Hz\xc5\xbd\303\x95$\302\xaa,\303\224w\302\250\37Re.$r\302\xaaz\xc2\xb5)\xc2\xa9\xc3\233\xc3\224\xc2\xa6\302\xa9-Q\303\xb6\xc2\xa0\xc3\x8dJ\xe2\x80\x9e\302\271\xe2\200\x98\xc3\x8a\xc2\xaa@\303\x94\xc2\xb0\302\251=R&/\302\235I\xc3\212\xe2\200\xa21\xe2\200\xa0*]T\xc2\263\xe2\200\271\xc3\2007\302\274\1\x18\6\xcb\x9c\xc2\276Q\xc3\222\303\xa5D&\303\223\302\xa9qN\x1e\302\xa6_(\302\xb4q\302\xb2c[Tw\305\222QR\xc3\264\303\xa5\302\264\305\x93J\xc5\241\0n\303\xa2\303\xb7T\xc2\255\xc2\250\xc3\xbb\x17.\302\246\313\234\79\x1d56c\x4\xc3\x94\303\x9c\xc5\222\303\225Sz\xc2\xa5\5H\xcb\234\303\x81\342\200\xa27\xc2\xaaR\303\x94}\305\275\27Sr8\xc2\xa5N\305\240\xc5\241\xc3\225"b\303\x96T\303\xa8\302\247\303\201Q\xc3\2365MN\305\240\xe2\200\x93\303\xb5#\xc3\243\303\247\303\224\303\250\xc2\xa9ES\xc3\202\302\xa7-H\xcb\234\xc3\201\257"\303\x9cT\303\274\302\xa9_S\303\252\302\xa7}G\xc3\230\303\214\xe2\200\xa2?*y\303\224\302\xa9\342\x80\271\xe2\x80\xa1S\xc3\262\302\247\302\xbdP*\305\2705#\xc3\242\303\266\303\x94\303\234\302\x8d\xc3\217T:\302\xa7]P\303\212\305\270\xc3\xb5C*\xe2\202\254\303\224\xe2\200\xb0\xe2\x80\271\177T:\xc2\xa8-K8\303\2065C\302\xaa\342\200\x9e\303\x95\x16\302\xaa\27R\xc2\246--M\xc3\x88\302\276\342\x80\242H\xc2\xaa\xcb\206\xc3\225 \302\252'T\xe2\200\x9a\302\250\xc2\xadH\xc3\270\xc3\213\303\xb5H\xc2\252\305\x92\xc3\224\xc3\x91\xe2\x80\271\303\227T\xc5\240\302\250\xc3\xadR\302\252\xc2\243\xc3\xb5,\303\xa2\xc3\xa9\303\224\303\x9c\342\200\271GT\303\x9a\xc2\251-SJ\xc2\244\303\xb5M*\xe2\200\235\xc3\x94\xc2\xa9\xe2\200\xb9UT\303\232\302\251mMH\302\270\303\265M\xc2\xaa\313\x9c\xc3\225>\302\252gSD\xc2\2635M\303\x88\303\202\xe2\x80\242R\302\xaa\305\223\xc3\225H\302\xaawU"\302\251\xc3\xadK8\303\x95\303\225R\302\252\302\240\xc3\224\303\232\xc5\x92\302\xa1U*\xc2\252-U*\xc2\250\xc3\240n\xc3\202\302\xbeT\303\x99\x2IR\302\xad,t\302\xa2Z\xc2\xab\303\x95\36\303\xaaY\x1c\302\xb6\x2IUF\302\25351\xc2\xaa\xc2\xac\302\265W)v\303\225k\342\200\xb9_K\303\x86\xc2\253p\x12J\xc2\2535Zj\302\255\303\x85\xc2\xaf\302\xa9\33R\xc2\2154r\22\xa\xc2\xac\25^jI\xc3\x93CK\xc2\272\xe2\x80\236\xe2\x80\x9a\302\252}U\303\212\342\200\234\25_\xc2\252\xc2\260\303\x94\342\200\272\302\252\303\xa3O\16\302\xac=N\24\302\267R\x1*\302\257F-\xc2\252\xc2\275R\xc5\xbe\302\xac%W\xc5\xa1\xe2\200\xb9\303\225c\xc3\xaa\xc2\246\303\x95\\305\275aV>\xc2\253EYj\342\200\x93\xc2\265d\302\xaa\302\252\303\x94\xc3\x83\xc2\xab\37U\xc3\216\302\254\xc2\265WX\303\2155\27*\303\x88\xc3\x95\xe2\200\xb9\xe2\200\x99\302\271Uy\xe2\x80\x9a\xc3\xb5Z\xc5\xa0\xc2\2601k\303\xa3\xe2\x84\242\xc3\225\xc2\250\302\2537V\305\241\xc2\254R\H\xc3\x8d5h*\xc3\x96U\xc2\242\302\251\xc3\x8fU\xc3\x86\302\247M[\305\240\302\262\xc2\261k\303\252v\303\225\xc2\270\302\2533V\303\xb2\302\255}[(\xc3\2445W\302\252z\303\225\xc2\270\302\xabi\35B\xc2\255\25O\302\272\302\2561\302\xaf\xc3\252\xc2\xafT\303\xbd\302\xab\xe2\x80\x94V\302\xae;\xc2\xad[\xc3\xb8\303\xae\302\265pR\xc3\246Gu\302\253;T\x1c\26@\20>\0\342\x80\232\303\xaa/I\302\xb3\302\xaa\303\xbfW`\x14\303\xad]\xc2\xa6\303\xb4\0\x19\xc2\252\303\xae\303\x868\302\253\302\xbfP\xc5\xa0\xc2\257\25]\xc3\210\303\2151m*\303\xaf\xc3\225\303\x87\302\215yUz\302\xa8mW\32\xc2\241\303\265|\xc2\252\303\235\342\x80\234[\xc2\xab\xc2\241\x1a\xc3\x96\302\xaf\xe2\x80\246]J\302\254\303\x91\xcb\206\xc3\252\xc3\270U\xc2\261\xc2\253\xc2\253\x16\xc3\266\xc2\xaf\342\x80\xa6Z*\xc2\xa45\j\xe2\200\230\xc3\226\4\xc2\xab\xc3\xab\27Z\302\252\xc3\xb4`Z\303\x815~\302\xaa\xc2\xaeE\xc3\xac\302\254\x13W\303\272\xc2\xab4Z\xc5\xa1\xc3\x815h\302\xa3Q\303\x95^\342\x80\271cXZ\xc2\256\342\200\xa2S\303\272\xc2\xae1o\302\253\xbV\20\302\xaa\xc2\xb9U&\xc2\xab\xc2\215T\xc2\272\xc3\x845}c\10U^\302\215\xe2\200\xbaX\305\xa1\302\xb0dm*\xc2\263\xc2\xb1\342\200\231k\x13Uu\xc2\245\xc2\253SfG=[\302\271\x1c\303\265j\xc3\244s\xc3\x95\xc2\277\xe2\200\230\303\x8fX\302\xa6K\35c
\302\xae\25iR\xc3\xa2H\xc3\xa7\xc2\253i#\xc5\xbe\xc2\261uWt\302\xbb\xc2\265\x17\xc2\xaa\xc2\275\302\xa5\xc2\272\302\253\302\273X\303\x82\xc2\235\xc3\x95c\xc3\204\xc2\271\xe2\x80\242\27\xc2\253\33U\342\x80\240\xc2\254\342\200\x9dr\xc3\x9a\302\xa2\303\xb5UZ\xe2\x80\271\303\x95\xe2\200\xa1\xc6\x92NE\xc2\242\xc2\254\xe2\x80\230X\xc2\xba\xc2\254\342\x80\xa64\303\x9a\xc3\x88ud\303\xaa\xc2\267E\xc3\xa4\302\254eV^\302\262\303\255K\32\xc3\x89\303\240n\xc3\242\303\262V8\342\x80\271sX\303\x82\xc2\245\303\215f\32\303\207\303\xb5/\xc3\202hJ\302\263\20-J]\xc3\223\xe2\200\x9a\342\200\246\xe2\204\xa2\303\x93\303\216\303\201\xc3\x95zO\x18\342\x80\272\302\261<Eh\342\200\260$\xc3\xa5\xe2\x80\271\342\x80\x9c\302\xb7\xc2\241\xc3\263\x0K\xc5\223\303\253<bw\xe2\200\x9e\xc3\xb1\xe2\200\246>\23\302\xb7\xe2\200\235\303\270N\x1e\305\276"\x1)]b\xc2\xa3	\303\xa2+z\x3\xc3\252.cS.\xc2\xa2iF\4\303\xa7	\xc3\243\x15\xc2\243\4\xc2\xb5QNQ\xc2\220\xc2\253\xc3\251V*\xc2\252\xc3\xa9\xc3\233\xc3\x8e\303\272\303\x9e\10O\x11[X\302\244nx\xc5\xa0\xc2\xa4P	k\xc2\xad\302\xa7oN\xc3\xb8\302\xa3}<aO\303\xb2\xc2\247I\303\x9f\xe2\200\x9c\xc3\201h\xc2\xb7\302\272\305\xa1T\5;\xc3\262r\x4\xc3\xb1\xe2\x80\xb0\342\x80\xb0\302\244\306\x92V\x17D6Q\xc3\237;z\xc5\240]\x4j\303\x97\23~'\xe2\200\x99:\xc3\xab\xe2\200\223[I\x6v\xc3\xb4\xc3\xb37^\xc3\212\342\200\x98\24\xc2\247\303\226\xc3\x81\305\276j\303\xab\xc2\xbaw[\302\253\303\271\xc3\xa6\303\256\xc2\xba\xc3\xa7\305\223\303\x8a\xc3\x85\xe2\x80\xa0\xc2\xa5:u\36\1 \303\x85Ds#\302\xa6\302\xbf\303\216\w\xc2\265<n|*\303\xa1\xe2\x80\260h\x18\xc3\253m\303\x8eKv;Y\303\x92\xcb\x86\23\302\261\xc3\232\x173\xc3\241]\xc5\x92\302\253^#\xe2\x80\224Z\302\xaaj\xc2\xa5gy\xc2\xb3j\303\x84\xc2\xa7Y,\342\x80\x9d%;3\302\xbe\xc2\263\xc3\212\xc3\232\xc3\xb9\xc3\x97.\303\210W"\xe2\x80\x98\xc3\x83$\303\x993>g\xc3\x9a\305\x93\302\xba\xc3\x8f\xc3\223\303\x8f\xc2\xa6\xc2\xaaV\xc2\x81T\303\263Z\16j\xc2\245hY\xc3\235j\305\276kD*!\xc5\xa1h\1&Xz\303\213i\xc2\xaa\xe2\200\xa2\xc2\245+GV\xe2\200\x94\xc2\xad"\xc2\245\xc3\xa6\xc2\270Z\302\217:\xc3\x92\302\244\xc2\247+\xe2\x80\241NoG\302\245Zjj\302\xa5i\303\211]\xc3\212\305\276kO\303\x90_\xc2\xad\xc3\226\302\254\303\x94\302\x90mjI\302\252\342\200\xa2\xc2\xa8\302\xa7t\xc2\257\xe2\200\223#\302\275[\xc3\xa2j\xdn\305\xa0\xc3\xa3\303\252\xc2\251\xc3\x97\25\xc3\220n\342\x84\242\303\x9fZ\xc2\xa5_,\303\225\303\251\342\200\xa0\xc3\xb3\17g\36\303\216\303\x84\305\241\xc2\251:\6\302\271\xc2\274\xc3\x859\xe2\200\260\303\201\303\xbf\302\xab[L2\302\xaeW=\5T\xc3\224\303\2270\x8\302\xae\303\243f\xc2\266\0P\302\256U6\xas%\x137isY\xc3\246?\xc2\xa3\xc2\277u\303\xa13\302\xbe\342\x80\x99\xc2\xbdn\x17b5\302\xa1\302\253\305\270\302\273\xc5\xa1X|G~l\342\x80\242&\xc3\x97k\25\302\xa4\302\xa5\xc2\267M\302\247\302\xa0\xe2\x80\240\302\xaf\xc3\272\xc2\266\xc5\x92\xc3\x8fy\xc2\241S\342\x80\x93\303\x89)\xc3\x8e]\305\x93\xc3\x9c\xc2\255r\302\267\4\xc2\xb6\303\231\302\xb8\xc2\265\xc2\xb8\xc3\246\xc3\xac\303\x96\303\252\342\200\272\303\205?\303\225}u\x4'n\xb0W-\xc3\x8e\xc2\xb9\302\256\303\246\x1fb\302\xb7\xc2\264\303\207\xc2\252\xc3\254\xc3\xb5\305\xb8k?\xc2\273vQ\xc3\xbd7\xe2\x80\xa6\xc3\234}p
\xc3\254\xc3\xb5\303\x80\xe2\x80\231\x6\303\215\xc3\231\xc2\xaeZ*\xc2\2739)\303\x8a\xc3\2415\xc3\x9e\342\200\xa2ZW\xc2\255-ZB\xc2\xb8\302\xb2\xc5\x92:\xc3\254\303\265\xc3\243\xc2\xab\305\xa0W\xc2\220\x0WZfp\342\x80\xa2\35Gp\1\303\265\35\xc3\256\xc3\x8d\xc3\x99\302\xae:\xc2\217Fp\303\272\xc2\244\xc5\xa0\xc3\244U\xc3\231\xc3\253SN/\342\204\242\xc3\x8f\\xc2\xa9\xc3\234%s9\xc2\xacS{\302\247 \xc3\2278\xc2\xae\xc3\217Z\303\x8da\x5s\xc3\212\xc3\233\xe2\200\x9c\xe2\200\x99+\xc2\xa2N^\xc2\xae\342\x80\2349\xe2\x84\242M\303\x95{\342\x80\246P5\xc3\x93\xc3\xa7 \xc3\x97Q\302\256\303\x94\xc3\256J\302\272\xc2\242\xc2\xaby\302\247\303\xb5\303\x95\xc3\250\10;\xc2\x8f\xc5\223\303\x9a\303\256z\xc2\270\306\x92\303\x82\xc3\x95Y\20\xc3\232V \xc3\x843\342\200\x94:\303\257\305\x93\x2D\xc3\x85I\xc2\235\xc5\xa0\xc3\203+\xc3\xa7\342\x80\241\xc3\xbd\302\257\xc2\24319M;\302\xba\xc2\xa5\305\222\xe2\200\x99\303\264\xc2\250\342\200\x9cV\302\xb4\xc2\256\xc5\241
Q{\303\xaa\xc3\211\303\x95\xc2\xae\xe2\x80\xa2\xc2\xb6\x17\xc3\x85+\1\302\xa3\xc6\x92F\xc2\235CL\303\204\xc2\xb9\305\xa0N\xc2\xa5\xe2\200\223\x5\302\251\xc3\224\xcb\206\xc2\235\\303\xb9\xc3\236)$i\xc5\222\xc5\xbd\303\x9b\35N\x12'\0\xc2\246\xc2\260\xc2\215P\xc5\xa0\303\x82\305\241\303\265\303\x8a\xc3\x87]X\303\x8c^\xc2\235s1\303\xb2f\302\x9d&\xc5\240"'<O\303\270\34\xc3\263\x7f\xc5\241\xc3\x8c\xc2\241\x11\303\x8bL\0\302\271"\342\200\xa1@\xc3\x96\xe2\200\235\xc2\xa5\x12\27%\xc3\244\x106\x15\303\272\xc3\x82UA\303\2651\303\xbdi(z\303\214\303\xa8\xc3\x9d\xc2\x81\342\202\254\xd\xc3\x92\xc3\225\xe2\x80\x9a\303\244\xc2\xb1\xc3\x88bZ\303\200\x1c\342\200\235+IQO\xc3\xaf3\xe2\202\xac\302\272\303\x8b
=*\xc3\x84\xe2\x80\260\xc2\xa0\342\200\xb0\x1b)\xc3\261\xc2\xa8!\xc3\201\xc5\xbe\xc2\240\xc3\220`\xc2\xaa\302\274h\302\xb0\xcb\x86,\303\x90\302\xabmGPC\302\x81\303\213A\302\xa0\xc2\235\xc3\231\xc2\262\303\255\xc6\222A\xe2\x80\236\x16\xe\34\x14\xc5\x92\xb(Z\303\x85\xc2\260\x1e%\306\222t\303\xac,\x5\20h/\xc3\x81\342\x80\260\xc\xcb\206i\342\x80\223\303\210\x1ck\x8\302\254\302\253\x1\xc2\241XEJ6\xc3\xb0\302\xb1\xe2\x80\x9eI\x17D\20\xc3\xa8\xc3\210\xc2\xac"\xe2\200\272
\x4\xc3\xafaU- \xe2\x80\272\302\253\xav\2\xc5\275y\302\x9d\xc2\260_\342\x82\xac\303\x84\303\202\303\x82\342\x80\272\xc3\232\302\253\x8\302\257k\x9a\302\xbdB\x2<\xc3\207V\303\x82\xc6\222\xc3\233D\xc2\273/P\xc2\x9d\x11\xc2\xbb\303\xb4a\303\xae\303\x81)\49L\xc3\xa3\xc2\266(Z\xe2\200\232\302\xb08\303\xaa\xc2\201v\26v\303\x83\302\271\xc3\x98k\x9\xc2\xa7o\303\220ZX\17k\303\xa4\303\x91\xc3\xa5\302\247|\xb\302\xb4&\xc2\xb0.\303\202\xc3\xa6\302\x9d\302\xb1C\2\xc2\x81\xc2\xb9\xe2\200\x99\xc3\230\303\xa1\302\260\xb`\x18\xe2\x82\xac1\xe2\202\xac]7&\303\204\xe2\x84\242+\342\204\242H\xc2\xa4CBcX\342\x80\x9cB7xX\303\xb3|\xe1\xe2\200\x9c\xe2\202\xac0\xc2\xa6\xc3\243a\305\xa16\305\241\xc2\260ubpJL\x17\303\x87\xe2\200\246\xe2\x80\223(\20\302\267\xc5\xa1\xc3\xb7\32mbl\xc2\x818\x1f\10I\xc2\266*R\27\x1e\xc3\xb6\342\x80\224@t\x12\x12k0\xe\342\x82\254\x1e\xe2\x80\x94\xc2\xa1\xc2\257\xc3\205xX\xc3\x9b\x16\303\x81\xc3\x93;\303\x81\303\x85 al]4s\xc2\260t\302\277\xc3\255\303\205\xc2\252\303\xb00\xc2\247c\342\x80\241'\xc2\xb4\xc3\xa6l\xc3\x9f`8\26M\305\x928\342\x80\230\xc3\200\x1d\37\303\203\37\xe2\x82\xacD4w\xe`p?@706\36g\xc3\214\313\x86\x4~K\302\261\x10
\342\200\x9a\303\x9b\33 \xe2\200\x9c\30P\xc2\264\342\x80\xa6\x1e\xc3\231bh\21\xe2\x82\xac"&\302\220\xc2\xaf
\xc3\xacq\xe2\x80\x98PD\x2\303\x88\xc3\x90\xc3\x8e\xc3\xb3$\303\220(\xc3\x8d0QP<\xc3\267\xc2\xb0\xc3\240\10\303\200\303\xa3\xc2\254Q\302\215!X\x15\302\xb4\342\200\246x\xc3\xba\xc3\2245\342\202\xac\xc2\x9d\xcb\206R\302\xb7`\x1e\x19w/2\xc2\2602#\305\xa0\xc3\x80\302\270\xc5\275 `\xc2\254\302\273\342\x80\2301\342\x80\xa0/\xcb\x86\303\x9c\xc2\x81
\xc2\xa1\30\x15\xc2\220\xe\303\226:\xc3\202\302\262\4\342\200\223\302\261\xc2\242\22\5\302\xa3\23B7\303\xb6V7Z\xc5\222\xe2\200\xbag\x10MY\303\272H3\6\xc3\210 \342\x80\x9e\x1a\x11\xc3\x99\x16b\303\216\x9Z\303\x81\xc3\223J\xc2\x90\xc3\x85\xc3\266G\xc3\xa2w\xc3\231\35gl\xc2\x81^\xc3\206-\xe2\x80\230R-!\303\215l\xe2\200\2347\xc3\214\xc2\xb2L\xc3\265\xe2\200\xa0\303\x86\xc2\260<1 \303\xad\x6QC/\303\225\302\262h\xc2\274\303\240\30)\303\217W\305\2766C\x9\xc3\267\x1*d\xcb\x86\xc3\xbe6]\x18VK!m\10\xc3\254\xe2\x80\xa6\303\230\x1c\xc\xc3\234\xc3\xa3\342\202\254\1005G$\342\x80\x93R\313\234\302\xb54\xc2\xaf\xc2\xb1\x2\x6\24=Cw&[\303\xa6\302\x8f\xc2\253YP\302\262\342\200\272d\303\x89\305\xa1\xc2\xb3'\33)VK,\302\xa8\x75e\xc3\x88\xd\303\x9e\303\x8a\303\250\342\200\xa0K+\xc3\xaf1\33\342\x80\x9eX)b\xc3\233e)\303\x84\303\242uF2A#E\303\221&g~\xe2\200\230e\xc2\xa1y\342\200\x99fp5\302\xa8\5l\x5Yl\xc2\262\xc3\224\305\x935\x1a\303\265\xc6\222\303\266\xc2\xbf\303\x96\xa\xc3\x82\xc5\240\303\231m}`\342\200\232\x18(\302\254M \xe\302\201Pl9Y\xc2\x81\x5\xc3\277f\24\xc3\xb8\xc2\xb1\xc3\275\303\x96]\xe2\x82\xacVl-\x164\x3\xc5\xbd\303\203\xc2\251\302\xa6\xc2\253\303\x82\303\x81>`\x1d\303\x80\xe2\x80\242/\xc3\xbb\xc2\xb3\27fP\xeE\342\x84\242i\xe2\200\xb9\x0k\xe2\204\242v\x1e\xc3\206\x0\303\237fhS0\xc2\xb1&\xc3\215\303\202\302\246l\xc3\x8d\302\xbc\xc2\xa2\xf#fu\xc3\xa5\20\xc3\x8c\303\xbb5\x9i%\xc3\xbf:Fd\342\x82\254\303\2669\xc5\xbd\342\x84\xa2\xc3\x98\342\202\254\16G<\x18\xc3\244\x1d\x9{\x4\xc3\xb6}\xc3\xac\303\x82s[7\0\303\xa1\302\254\xc3\216\xc5\276\73\303\255ft:+.\xc3\210\xe2\200\235\342\200\x93p\xc2\240>\xc3\x98\xc3\x95\302\xb1\xc2\xa3\22@!P\x1das6q\2,\37\xc3\200\302\263\xe2\x80\x941b\xc3\x87\302\xac\xc3\205\xe2\x80\xb9\x1e\303\xa3Z\4K\xc2\xb0\303\252\xc2\261\303\x9c\x5-\xc3\272\342\x80\x9c\30ar\x16\x1d`\342\200\242?RxX\xc3\x81\xc3\251\xe2\x80\230\xc2\xa1\xc3\217V\x8\xc3\257\303\xba\xcb\234#\xc3\204\xc2\xa4\5\10\303\224z\303\202\302\x90\302\x8d; \303\200D\xe2\x82\xac\342\x80\242\302\276H\x10\302\262\303\x81\341\302\245\xe2\x80\2316D`\xc5\xbe\x18\xc3\276Y\303\xaa`\303\xb7R\xc3\x85P\xc3\x96\342\x80\xb9>-\303\x86!$\303\x99\303\xb9\xc2\xb3\xc3\254\xc3\227~\303\x8f\xe2\x82\254\20\303\x90\xc3\x85\xc3\xa0\x1b`>\303\x99\303\257\302\xb3\303\265h\x8\xc3\2240\20\303\xb41\3\342\200\240\xc3\200\302\xac\342\200\x93&\0\xc3\203h\x6\342\x80\x94\xc3\xab\xc3\273\x10I\342\x80\x93wl\303\xbbZ\x12\xe2\x80\x9e$\xe2\200\234\
\xc2\215\302\xa1\x88\302\266~,\302\220\xa\302\272\23o_\303\xa1\303\200B2D\302\xb4\xe2\200\x93\302\201\306\x92a1\303\xaa\xc2\263\303\240\xc3\x87\302\xa9\xc2\x8f=\xc2\xa2v<\303\217kF\302\xb4\x11p`\xc2\x8f`\xe2\200\x9dkBF\xc2\2666\302\215 \xc3\x84\xc3\x96\xe\33\xc2\262\xe2\x80\224h\xc3\x86\303\x89\x19T T\303\x96\305\xbd\x1\302\x81\x9\xe2\200\xa1@?dr\303\x91\303\245\xe2\200\260\342\x82\254J\303\200H@1\xc2\260G\xc2\264d\5n\303\x81\303\x92w\xe2\x80\xa1\303\x86\x4\xc2\217%\xc3\xa4\xc3\x9aJ\x5G\5\305\xa1\303\x920b\xc3\260Tf]m(\303\230k\302\xb4qg\\xc3\255\xc2\xbd\302\217\303\xb3\xc2\xb8\xe2\x80\223\x17\302\xac\xc3\xab\xc2\260\303\xaa\x2\302\240\xc3\x88\303\x91\313\x863\x1fvk'\303\275^d\xc2\264\xc2\250AX\xc3\xbf\342\x84\xa2~\303\x87W\342\x84\xa2Vs\xc3\x82*\xc2\274\xc3\x8a\xc2\xb1\x1e\6\25\xc3\xa6d\302\264\xc3\xbbM\302\240\303\200\xc2\xac\xc2\235@?\xc2\xb2\30\303\204\x1a\303\x93}\xc2\xa76\\xe2\200\x93\xc2\x8dm9<\xc3\216\x12\302\xb1i\342\x80\235\21\303\x9d\302\xa7\342\x80\xba\4\xcb\206\303\x94\xc2\xach\xc2\275^\10s\x5}\xc3\xa6-\xc2\xa6[K\x16\305\223\30s\xc2\xb1\x12q\303\243b\xc3\216\xc3\223-\342\x80\x9c\303\xb6OORm8$\xc3\x9eyw\10\xc3\x84\xe\xc3\xac#\20#\302\260\xc5\x92@\303\242\302\235\302\xb7\x0\xc3\xb4\303\x92\xc3\x98\xc2\244 5F7\xc3\xb6\xc2\xa8\306\222\xc2\xa0X\22\x3
\303\223\32\303\x80|J\303\x8b\x1a/\3-S\xe2\204\242W\4!f\x16\xc3\207\x5\xe2\x80\xa0 0\xc2\266\x19,w\xc2\275\302\xa8D4\1\xc3\x99\xc2\241\20\30RU\xf\x17\x19\xc2\245\x3T\xc2\xb4\305\xbe\342\200\x99\xc3\256\xc3\x95\xc3\260\24ZX\xc3\x87=\xc3\xad`\xe2\x80\xb0W$@\x6\303\242\303\x94\xc2\245(\xe2\200\271XG\302\xa7\342\200\xb9\36\303\222\xc5\xa0\xc2\265\342\x80\x94a>\303\226*\x6\xc3\273Y\302\xb6\xc2\xb2\313\206\xf
\xf\302\263\303\xbc
\305\222\xc3\xac\xc5\xa1!\302\xab[\x16\x5mj\36\305\x93\xc2\xb5\xc5\2400,mu\xc2\254W@ FX\303\xba\xc3\x9a\xc3\x8e\x19\xc3\262\xc2\235\xc3\260\303\274=\xc2\255\xc2\xa0(\302\246\303\xbd\302\255b\302\xbf\303\275<!\xa"\xe2\200\235\xc2\25283\303\x83'\xc2\xa6\xe2\x80\232(R\342\204\xa2\303\x9d\xa>\xe2\200\x9d\303\xb9@\xc2\xa8W\xc2\246r!L\x1c\xc2\xa3H\xc3\205k\303\x8c
\xcb\206E\xaW\303\x86\xc3\236
\302\242\342\200\232'FH\x8\xc5\223$\xc2\xa3\xe2\200\xb9\xc3\xa4\xc3\xa4\xc3\200\20m\xe2\x80\x9e\xc2\x81\xc3\210=\xc3\x94\xc3\x9b\xc2\245{LY\xe2\x80\x94\342\x80\246&\303\221\303\234\x16\302\xa3_\x0\305\xbd\xc3\206\303\xbc\303\x9d#\xc2\xa2\303\xa4\342\200\235\xe2\x82\xac\x14[\23\342\200\x9e9\x0\302\xa4"\303\224\23\xc3\x92\x19@8\xc3\204iK\xc2\252\302\xb9\xc3\2660\303\231l\342\200\xb0\xc3\x91\xc3\x90\x2p\xag\xc3\xae\342\x80\232\34\xc3\x9b'qbF\342\200\223\303\230y\303\xa1\xc2\253c\302\x8fl@9\303\x9b(#J\1U\302\xab\xc3\235\302\xb2\xc6\x92{io\x12\xc2\xad\342\x80\x98\302\xa5.\xc{\xc3\x94\x8\xc3\x8d\302\2634\303\236V\303\x8d\302\201\xc5\xa0VnF\26\303\211x\303\260\303\x91\303\274z\xc3\x8e Q\303\240\xc3\x9e\305\276$kSa~\xc3\212\xc2\xa80s\x16@\302\xa3\303\200\302\xab%\342\x80\246y\x2@\xe2\x80\242\x19\xc3\x805H\xc5\275\342\x80\240N\xc3\x8e\xc3\x8d\xc2\246\302\xb4@\xe2\x80\xa0x\342\200\x99#	\303\x9c\302\xab /\\302\xa5\xc3\x96?<h\xc3\232\342\200\232\303\271\xe2\x80\246\xc2\xbcI\302\220T\xc5\222\302\240\21:\x18\302\2153\303\203
%\xe2\x80\x94\302\270"); } else { header("Content-Type: image/gif"); switch ($_GET["file"]) { case "plus.gif": echo "GIF89a\x12\0\22\0\302\201\01\xc3\xae\303\xae\xc3\256\x0\x0\xe2\202\254\xe2\204\xa2\342\x84\xa2\342\x84\242\0\0\0!\xc3\271\x4\x1\x0\x0\1\x0,\0\0\0\x0\x12\0\22\0\1\x2!\342\200\x9e\xc2\217\302\251\xc3\x8b\303\255\17M\x8\303\261\303\x8c*)\302\xbeo\303\xba\xc2\xaf) \10q\342\x80\242\31\xc2\241e\313\206\302\265\xc3\xae#\xc3\x84\303\xb2L\303\213\x5\0;"; break; case "cross.gif": echo "GIF89a\x12\x0\x12\0\xc2\201\01\303\256\303\xae\xc3\xae\0\0\xe2\202\254\342\x84\242\xe2\204\xa2\xe2\204\xa2\x0\x0\0!\303\271\4\x1\0\x0\1\0,\0\x0\0\0\x12\0\22\x0\1\2#\xe2\x80\x9e\xc2\217\302\251\xc3\213\303\255\xf#
a\xc3\226Fo~y\xc3\x83.\xc2\201_wa\342\x80\x9d\xc3\xa11\303\xa7\302\261J\xc3\xae\xbG\303\x82L\xc3\x976]\0\x0;"; break; case "up.gif": echo "GIF89a\x12\x0\22\0\xc2\201\01\xc3\xae\303\xae\303\xae\x0\0\342\202\xac\342\x84\242\342\204\242\xe2\204\xa2\x0\x0\0!\303\xb9\4\1\0\0\x1\0,\0\x0\x0\0\22\0\22\x0\1\x2 \xe2\x80\x9e\xc2\217\302\251\xc3\213\xc3\255\17M\x8QN
\xc3\257}\23\303\xb4\305\xbea\258\305\xa0\21y\xc5\xa1a\303\205\302\xb6\302\xae\x0\303\207\303\xb2\x1c\27\x0;"; break; case "down.gif": echo "GIF89a\22\x0\22\x0\302\201\x01\xc3\256\303\256\303\xae\x0\0\xe2\x82\254\342\x84\242\342\x84\242\342\x84\xa2\x0\x0\x0!\xc3\271\4\x1\0\0\x1\0,\x0\0\0\0\x12\0\22\x0\1\x2 \xe2\200\236\302\217\302\251\303\213\303\xad\17M\x8\xc3\xb1\xc3\214*)\302\xbe[W\xc3\xbe\\302\242\xc3\x87L&\303\231\305\x93\35\303\x86\xc2\266\342\x80\242\x0\xc3\207\303\xb2\34\x17\x0;"; break; case "arrow.gif": echo "GIF89a\x8\0\xa\0\342\202\254\x0\0\342\x82\xac\342\x82\xac\xe2\202\xac\303\277\303\xbf\xc3\277!\xc3\271\x4\1\0\x0\x1\x0,\x0\0\x0\x0\10\x0
\0\0\x2\xf\x4\xe2\200\232i\xe2\x80\x93\302\261\342\x80\271\xc5\276\342\200\235\x11\xc2\252\303\223\xc2\xb2\303\236\302\xbb\0\0;"; break; } } die; } goto ftIeU; nNHlA: function process_field($o, $Ai) { return array(idf_escape(trim($o["field"])), process_type($Ai), $o["null"] ? " NULL" : " NOT NULL", default_value($o), preg_match("~timestamp|datetime~", $o["type"]) && $o["on_update"] ? " ON UPDATE {$o["on_update"]}" : '', support("comment") && $o["comment"] != '' ? " COMMENT " . q($o["comment"]) : '', $o["auto_increment"] ? auto_increment() : null); } goto o2ZaO; Fbrrq: function lzw_decompress($Sa) { $ac = 256; $Ta = 8; $mb = array(); $Ng = 0; $Og = 0; for ($s = 0; $s < strlen($Sa); $s++) { $Ng = ($Ng << 8) + ord($Sa[$s]); $Og += 8; if ($Og >= $Ta) { $Og -= $Ta; $mb[] = $Ng >> $Og; $Ng &= (1 << $Og) - 1; $ac++; if ($ac >> $Ta) { $Ta++; } } } $Zb = range("\x0", "\xff"); $H = ''; foreach ($mb as $s => $lb) { $pc = $Zb[$lb]; if (!isset($pc)) { $pc = $mj . $mj[0]; } $H .= $pc; if ($s) { $Zb[] = $mj . $pc[0]; } $mj = $pc; } return $H; } goto AiVu3; PjHvS: function convert_fields($f, $p, $K = array()) { $H = ''; foreach ($f as $y => $X) { if ($K && !in_array(idf_escape($y), $K)) { continue; } $Ga = convert_field($p[$y]); if ($Ga) { $H .= ", {$Ga} AS " . idf_escape($y); } } return $H; } goto DmlqK; p2_YQ: $ec["sqlite2"] = "SQLite 2"; goto wdE6o; nDYu2: global $b, $g, $m, $ec, $mc, $wc, $n, $kd, $qd, $ba, $Rd, $x, $ca, $me, $qf, $bg, $Hh, $vd, $oi, $ui, $U, $Ii, $ia; goto xAo94; VBuZg: function referencable_primary($hh) { $H = array(); foreach (table_status('', true) as $Ph => $Q) { if ($Ph != $hh && fk_support($Q)) { foreach (fields($Ph) as $o) { if ($o["primary"]) { if ($H[$Ph]) { unset($H[$Ph]); break; } $H[$Ph] = $o; } } } } return $H; } goto jHuFN; b9_z8: @ini_set("precision", 15); goto jvVht; YNUkN: function drop_create($fc, $i, $gc, $bi, $ic, $xe, $Oe, $Me, $Ne, $mf, $Ze) { if ($_POST["drop"]) { query_redirect($fc, $xe, $Oe); } elseif ($mf == '') { query_redirect($i, $xe, $Ne); } elseif ($mf != $Ze) { $Gb = queries($i); queries_redirect($xe, $Me, $Gb && queries($fc)); if ($Gb) { queries($gc); } } else { queries_redirect($xe, $Me, queries($bi) && queries($ic) && queries($fc) && queries($i)); } } goto wwfxh; UO6PP: if (isset($_GET["pgsql"])) { $hg = array("PgSQL", "PDO_PgSQL"); define("DRIVER", "pgsql"); if (extension_loaded("pgsql")) { class Min_DB { var $extension = "PgSQL", $_link, $_result, $_string, $_database = true, $server_info, $affected_rows, $error, $timeout; function _error($xc, $n) { if (ini_bool("html_errors")) { $n = html_entity_decode(strip_tags($n)); } $n = preg_replace("~^[^:]*: ~", '', $n); $this->error = $n; } function connect($M, $V, $E) { global $b; $l = $b->database(); set_error_handler(array($this, "_error")); $this->_string = "host='" . str_replace(":", "' port='", addcslashes($M, "'\")) . "' user='" . addcslashes($V, "'\") . "' password='" . addcslashes($E, "'\") . "'"; $this->_link = @pg_connect("{$this->_string} dbname='" . ($l != '' ? addcslashes($l, "'\") : "postgres") . "'", PGSQL_CONNECT_FORCE_NEW); if (!$this->_link && $l != '') { $this->_database = false; $this->_link = @pg_connect("{$this->_string} dbname='postgres'", PGSQL_CONNECT_FORCE_NEW); } restore_error_handler(); if ($this->_link) { $Yi = pg_version($this->_link); $this->server_info = $Yi["server"]; pg_set_client_encoding($this->_link, "UTF8"); } return (bool) $this->_link; } function quote($P) { return "'" . pg_escape_string($this->_link, $P) . "'"; } function value($X, $o) { return $o["type"] == "bytea" ? pg_unescape_bytea($X) : $X; } function quoteBinary($P) { return "'" . pg_escape_bytea($this->_link, $P) . "'"; } function select_db($j) { global $b; if ($j == $b->database()) { return $this->_database; } $H = @pg_connect("{$this->_string} dbname='" . addcslashes($j, "'\") . "'", PGSQL_CONNECT_FORCE_NEW); if ($H) { $this->_link = $H; } return $H; } function close() { $this->_link = @pg_connect("{$this->_string} dbname='postgres'"); } function query($F, $Ci = false) { $G = @pg_query($this->_link, $F); $this->error = ''; if (!$G) { $this->error = pg_last_error($this->_link); $H = false; } elseif (!pg_num_fields($G)) { $this->affected_rows = pg_affected_rows($G); $H = true; } else { $H = new Min_Result($G); } if ($this->timeout) { $this->timeout = 0; $this->query("RESET statement_timeout"); } return $H; } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 0) { $G = $this->query($F); if (!$G || !$G->num_rows) { return false; } return pg_fetch_result($G->_result, 0, $o); } function warnings() { return h(pg_last_notice($this->_link)); } } class Min_Result { var $_result, $_offset = 0, $num_rows; function __construct($G) { $this->_result = $G; $this->num_rows = pg_num_rows($G); } function fetch_assoc() { return pg_fetch_assoc($this->_result); } function fetch_row() { return pg_fetch_row($this->_result); } function fetch_field() { $e = $this->_offset++; $H = new stdClass(); if (function_exists("pg_field_table")) { $H->orgtable = pg_field_table($this->_result, $e); } $H->name = pg_field_name($this->_result, $e); $H->orgname = $H->name; $H->type = pg_field_type($this->_result, $e); $H->charsetnr = $H->type == "bytea" ? 63 : 0; return $H; } function __destruct() { pg_free_result($this->_result); } } } elseif (extension_loaded("pdo_pgsql")) { class Min_DB extends Min_PDO { var $extension = "PDO_PgSQL", $timeout; function connect($M, $V, $E) { global $b; $l = $b->database(); $P = "pgsql:host='" . str_replace(":", "' port='", addcslashes($M, "'\")) . "' options='-c client_encoding=utf8'"; $this->dsn("{$P} dbname='" . ($l != '' ? addcslashes($l, "'\") : "postgres") . "'", $V, $E); return true; } function select_db($j) { global $b; return $b->database() == $j; } function quoteBinary($Yg) { return q($Yg); } function query($F, $Ci = false) { $H = parent::query($F, $Ci); if ($this->timeout) { $this->timeout = 0; parent::query("RESET statement_timeout"); } return $H; } function warnings() { return ''; } function close() { } } } class Min_Driver extends Min_SQL { function insertUpdate($Q, $J, $kg) { global $g; foreach ($J as $N) { $Ji = array(); $Z = array(); foreach ($N as $y => $X) { $Ji[] = "{$y} = {$X}"; if (isset($kg[idf_unescape($y)])) { $Z[] = "{$y} = {$X}"; } } if (!($Z && queries("UPDATE " . table($Q) . " SET " . implode(", ", $Ji) . " WHERE " . implode(" AND ", $Z)) && $g->affected_rows || queries("INSERT INTO " . table($Q) . " (" . implode(", ", array_keys($N)) . ") VALUES (" . implode(", ", $N) . ")"))) { return false; } } return true; } function slowQuery($F, $fi) { $this->_conn->query("SET statement_timeout = " . 1000 * $fi); $this->_conn->timeout = 1000 * $fi; return $F; } function convertSearch($u, $X, $o) { return preg_match("~char|text" . (!preg_match("~LIKE~", $X["op"]) ? "|date|time(stamp)?|boolean|uuid|" . number_type() : '') . "~", $o["type"]) ? $u : "CAST({$u} AS text)"; } function quoteBinary($Yg) { return $this->_conn->quoteBinary($Yg); } function warnings() { return $this->_conn->warnings(); } function tableHelp($B) { $we = array("information_schema" => "infoschema", "pg_catalog" => "catalog"); $_ = $we[$_GET["ns"]]; if ($_) { return "{$_}-" . str_replace("_", "-", $B) . ".html"; } } } function idf_escape($u) { return """ . str_replace(""", """", $u) . """; } function table($u) { return idf_escape($u); } function connect() { global $b, $U, $Hh; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { if (min_version(9, 0, $g)) { $g->query("SET application_name = 'Adminer'"); if (min_version(9.199999999999999, 0, $g)) { $Hh["Strings"][] = "json"; $U["json"] = 4294967295; if (min_version(9.4, 0, $g)) { $Hh["Strings"][] = "jsonb"; $U["jsonb"] = 4294967295; } } } return $g; } return $g->error; } function get_databases() { return get_vals("SELECT datname FROM pg_database WHERE has_database_privilege(datname, 'CONNECT') ORDER BY datname"); } function limit($F, $Z, $z, $C = 0, $L = " ") { return " {$F}{$Z}" . ($z !== null ? $L . "LIMIT {$z}" . ($C ? " OFFSET {$C}" : '') : ''); } function limit1($Q, $F, $Z, $L = "
") { return preg_match("~^INTO~", $F) ? limit($F, $Z, 1, 0, $L) : " {$F}" . (is_view(table_status1($Q)) ? $Z : " WHERE ctid = (SELECT ctid FROM " . table($Q) . $Z . $L . "LIMIT 1)"); } function db_collation($l, $pb) { global $g; return $g->result("SHOW LC_COLLATE"); } function engines() { return array(); } function logged_user() { global $g; return $g->result("SELECT user"); } function tables_list() { $F = "SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = current_schema()"; if (support("materializedview")) { $F .= "
UNION ALL
SELECT matviewname, 'MATERIALIZED VIEW'
FROM pg_matviews
WHERE schemaname = current_schema()"; } $F .= "
ORDER BY 1"; return get_key_vals($F); } function count_tables($k) { return array(); } function table_status($B = '') { $H = array(); foreach (get_rows("SELECT c.relname AS "Name", CASE c.relkind WHEN 'r' THEN 'table' WHEN 'm' THEN 'materialized view' ELSE 'view' END AS "Engine", pg_relation_size(c.oid) AS "Data_length", pg_total_relation_size(c.oid) - pg_relation_size(c.oid) AS "Index_length", obj_description(c.oid, 'pg_class') AS "Comment", " . (min_version(12) ? "''" : "CASE WHEN c.relhasoids THEN 'oid' ELSE '' END") . " AS "Oid", c.reltuples as "Rows", n.nspname\xaFROM pg_class c\xaJOIN pg_namespace n ON(n.nspname = current_schema() AND n.oid = c.relnamespace)\xaWHERE relkind IN ('r', 'm', 'v', 'f')\xa" . ($B != '' ? "AND relname = " . q($B) : "ORDER BY relname")) as $I) { $H[$I["Name"]] = $I; } return $B != '' ? $H[$B] : $H; } function is_view($R) { return in_array($R["Engine"], array("view", "materialized view")); } function fk_support($R) { return true; } function fields($Q) { $H = array(); $Ca = array("timestamp without time zone" => "timestamp", "timestamp with time zone" => "timestamptz"); $Dd = min_version(10) ? "(a.attidentity = 'd')::int" : "0"; foreach (get_rows("SELECT a.attname AS field, format_type(a.atttypid, a.atttypmod) AS full_type, pg_get_expr(d.adbin, d.adrelid) AS default, a.attnotnull::int, col_description(c.oid, a.attnum) AS comment, {$Dd} AS identity\xaFROM pg_class c
JOIN pg_namespace n ON c.relnamespace = n.oid
JOIN pg_attribute a ON c.oid = a.attrelid\xaLEFT JOIN pg_attrdef d ON c.oid = d.adrelid AND a.attnum = d.adnum
WHERE c.relname = " . q($Q) . "\xaAND n.nspname = current_schema()
AND NOT a.attisdropped
AND a.attnum > 0\xaORDER BY a.attnum") as $I) { preg_match("~([^([]+)(\((.*)\))?([a-z ]+)?((\[[0-9]*])*)$~", $I["full_type"], $A); list(, $T, $te, $I["length"], $wa, $Fa) = $A; $I["length"] .= $Fa; $eb = $T . $wa; if (isset($Ca[$eb])) { $I["type"] = $Ca[$eb]; $I["full_type"] = $I["type"] . $te . $Fa; } else { $I["type"] = $T; $I["full_type"] = $I["type"] . $te . $wa . $Fa; } if ($I["identity"]) { $I["default"] = "GENERATED BY DEFAULT AS IDENTITY"; } $I["null"] = !$I["attnotnull"]; $I["auto_increment"] = $I["identity"] || preg_match("~^nextval\(~i", $I["default"]); $I["privileges"] = array("insert" => 1, "select" => 1, "update" => 1); if (preg_match("~(.+)::[^)]+(.*)~", $I["default"], $A)) { $I["default"] = $A[1] == "NULL" ? null : ($A[1][0] == "'" ? idf_unescape($A[1]) : $A[1]) . $A[2]; } $H[$I["field"]] = $I; } return $H; } function indexes($Q, $h = null) { global $g; if (!is_object($h)) { $h = $g; } $H = array(); $Qh = $h->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($Q)); $f = get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = {$Qh} AND attnum > 0", $h); foreach (get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption , (indpred IS NOT NULL)::int as indispartial FROM pg_index i, pg_class ci WHERE i.indrelid = {$Qh} AND ci.oid = i.indexrelid", $h) as $I) { $Ig = $I["relname"]; $H[$Ig]["type"] = $I["indispartial"] ? "INDEX" : ($I["indisprimary"] ? "PRIMARY" : ($I["indisunique"] ? "UNIQUE" : "INDEX")); $H[$Ig]["columns"] = array(); foreach (explode(" ", $I["indkey"]) as $Nd) { $H[$Ig]["columns"][] = $f[$Nd]; } $H[$Ig]["descs"] = array(); foreach (explode(" ", $I["indoption"]) as $Od) { $H[$Ig]["descs"][] = $Od & 1 ? "1" : null; } $H[$Ig]["lengths"] = array(); } return $H; } function foreign_keys($Q) { global $qf; $H = array(); foreach (get_rows("SELECT conname, condeferrable::int AS deferrable, pg_get_constraintdef(oid) AS definition
FROM pg_constraint
WHERE conrelid = (SELECT pc.oid FROM pg_class AS pc INNER JOIN pg_namespace AS pn ON (pn.oid = pc.relnamespace) WHERE pc.relname = " . q($Q) . " AND pn.nspname = current_schema())\xaAND contype = 'f'::char
ORDER BY conkey, conname") as $I) { if (preg_match("~FOREIGN KEY\s*\((.+)\)\s*REFERENCES (.+)\((.+)\)(.*)$~iA", $I["definition"], $A)) { $I["source"] = array_map("trim", explode(",", $A[1])); if (preg_match("~^(("([^"]|"")+"|[^"]+)\.)?"?("([^"]|"")+"|[^"]+)$~", $A[2], $Ce)) { $I["ns"] = str_replace("""", """, preg_replace("~^"(.+)"$~", "\1", $Ce[2])); $I["table"] = str_replace("""", """, preg_replace("~^"(.+)"$~", "\1", $Ce[4])); } $I["target"] = array_map("trim", explode(",", $A[3])); $I["on_delete"] = preg_match("~ON DELETE ({$qf})~", $A[4], $Ce) ? $Ce[1] : "NO ACTION"; $I["on_update"] = preg_match("~ON UPDATE ({$qf})~", $A[4], $Ce) ? $Ce[1] : "NO ACTION"; $H[$I["conname"]] = $I; } } return $H; } function view($B) { global $g; return array("select" => trim($g->result("SELECT pg_get_viewdef(" . $g->result("SELECT oid FROM pg_class WHERE relname = " . q($B)) . ")"))); } function collations() { return array(); } function information_schema($l) { return $l == "information_schema"; } function error() { global $g; $H = h($g->error); if (preg_match("~^(.*\n)?([^\n]*)\n( *)\^(\n.*)?$~s", $H, $A)) { $H = $A[1] . preg_replace("~((?:[^&]|&[^;]*;){" . strlen($A[3]) . "})(.*)~", "\1<b>\2</b>", $A[2]) . $A[4]; } return nl_br($H); } function create_database($l, $d) { return queries("CREATE DATABASE " . idf_escape($l) . ($d ? " ENCODING " . idf_escape($d) : '')); } function drop_databases($k) { global $g; $g->close(); return apply_queries("DROP DATABASE", $k, "idf_escape"); } function rename_database($B, $d) { return queries("ALTER DATABASE " . idf_escape(DB) . " RENAME TO " . idf_escape($B)); } function auto_increment() { return ''; } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = array(); $vg = array(); if ($Q != '' && $Q != $B) { $vg[] = "ALTER TABLE " . table($Q) . " RENAME TO " . table($B); } foreach ($p as $o) { $e = idf_escape($o[0]); $X = $o[1]; if (!$X) { $c[] = "DROP {$e}"; } else { $Ui = $X[5]; unset($X[5]); if (isset($X[6]) && $o[0] == '') { $X[1] = ($X[1] == "bigint" ? " big" : " ") . "serial"; } if ($o[0] == '') { $c[] = ($Q != '' ? "ADD " : "  ") . implode($X); } else { if ($e != $X[0]) { $vg[] = "ALTER TABLE " . table($B) . " RENAME {$e} TO {$X["0"]}"; } $c[] = "ALTER {$e} TYPE{$X["1"]}"; if (!$X[6]) { $c[] = "ALTER {$e} " . ($X[3] ? "SET{$X["3"]}" : "DROP DEFAULT"); $c[] = "ALTER {$e} " . ($X[2] == " NULL" ? "DROP NOT" : "SET") . $X[2]; } } if ($o[0] != '' || $Ui != '') { $vg[] = "COMMENT ON COLUMN " . table($B) . ".{$X["0"]} IS " . ($Ui != '' ? substr($Ui, 9) : "''"); } } } $c = array_merge($c, $cd); if ($Q == '') { array_unshift($vg, "CREATE TABLE " . table($B) . " (
" . implode(",
", $c) . "
)"); } elseif ($c) { array_unshift($vg, "ALTER TABLE " . table($Q) . "
" . implode(",\xa", $c)); } if ($Q != '' || $ub != '') { $vg[] = "COMMENT ON TABLE " . table($B) . " IS " . q($ub); } if ($Ma != '') { } foreach ($vg as $F) { if (!queries($F)) { return false; } } return true; } function alter_indexes($Q, $c) { $i = array(); $fc = array(); $vg = array(); foreach ($c as $X) { if ($X[0] != "INDEX") { $i[] = $X[2] == "DROP" ? "
DROP CONSTRAINT " . idf_escape($X[1]) : "\xaADD" . ($X[1] != '' ? " CONSTRAINT " . idf_escape($X[1]) : '') . " {$X["0"]} " . ($X[0] == "PRIMARY" ? "KEY " : '') . "(" . implode(", ", $X[2]) . ")"; } elseif ($X[2] == "DROP") { $fc[] = idf_escape($X[1]); } else { $vg[] = "CREATE INDEX " . idf_escape($X[1] != '' ? $X[1] : uniqid($Q . "_")) . " ON " . table($Q) . " (" . implode(", ", $X[2]) . ")"; } } if ($i) { array_unshift($vg, "ALTER TABLE " . table($Q) . implode(",", $i)); } if ($fc) { array_unshift($vg, "DROP INDEX " . implode(", ", $fc)); } foreach ($vg as $F) { if (!queries($F)) { return false; } } return true; } function truncate_tables($S) { return queries("TRUNCATE " . implode(", ", array_map("table", $S))); return true; } function drop_views($aj) { return drop_tables($aj); } function drop_tables($S) { foreach ($S as $Q) { $O = table_status($Q); if (!queries("DROP " . strtoupper($O["Engine"]) . " " . table($Q))) { return false; } } return true; } function move_tables($S, $aj, $Xh) { foreach (array_merge($S, $aj) as $Q) { $O = table_status($Q); if (!queries("ALTER " . strtoupper($O["Engine"]) . " " . table($Q) . " SET SCHEMA " . idf_escape($Xh))) { return false; } } return true; } function trigger($B, $Q = null) { if ($B == '') { return array("Statement" => "EXECUTE PROCEDURE ()"); } if ($Q === null) { $Q = $_GET["trigger"]; } $J = get_rows("SELECT t.trigger_name AS "Trigger", t.action_timing AS "Timing", (SELECT STRING_AGG(event_manipulation, ' OR ') FROM information_schema.triggers WHERE event_object_table = t.event_object_table AND trigger_name = t.trigger_name ) AS "Events", t.event_manipulation AS "Event", 'FOR EACH ' || t.action_orientation AS "Type", t.action_statement AS "Statement" FROM information_schema.triggers t WHERE t.event_object_table = " . q($Q) . " AND t.trigger_name = " . q($B)); return reset($J); } function triggers($Q) { $H = array(); foreach (get_rows("SELECT * FROM information_schema.triggers WHERE event_object_table = " . q($Q)) as $I) { $H[$I["trigger_name"]] = array($I["action_timing"], $I["event_manipulation"]); } return $H; } function trigger_options() { return array("Timing" => array("BEFORE", "AFTER"), "Event" => array("INSERT", "UPDATE", "DELETE"), "Type" => array("FOR EACH ROW", "FOR EACH STATEMENT")); } function routine($B, $T) { $J = get_rows("SELECT routine_definition AS definition, LOWER(external_language) AS language, *\xaFROM information_schema.routines\xaWHERE routine_schema = current_schema() AND specific_name = " . q($B)); $H = $J[0]; $H["returns"] = array("type" => $H["type_udt_name"]); $H["fields"] = get_rows("SELECT parameter_name AS field, data_type AS type, character_maximum_length AS length, parameter_mode AS inout\xaFROM information_schema.parameters
WHERE specific_schema = current_schema() AND specific_name = " . q($B) . "\xaORDER BY ordinal_position"); return $H; } function routines() { return get_rows("SELECT specific_name AS "SPECIFIC_NAME", routine_type AS "ROUTINE_TYPE", routine_name AS "ROUTINE_NAME", type_udt_name AS "DTD_IDENTIFIER"
FROM information_schema.routines
WHERE routine_schema = current_schema()
ORDER BY SPECIFIC_NAME"); } function routine_languages() { return get_vals("SELECT LOWER(lanname) FROM pg_catalog.pg_language"); } function routine_id($B, $I) { $H = array(); foreach ($I["fields"] as $o) { $H[] = $o["type"]; } return idf_escape($B) . "(" . implode(", ", $H) . ")"; } function last_id() { return 0; } function explain($g, $F) { return $g->query("EXPLAIN {$F}"); } function found_rows($R, $Z) { global $g; if (preg_match("~ rows=([0-9]+)~", $g->result("EXPLAIN SELECT * FROM " . idf_escape($R["Name"]) . ($Z ? " WHERE " . implode(" AND ", $Z) : '')), $Hg)) { return $Hg[1]; } return false; } function types() { return get_vals("SELECT typname\xaFROM pg_type
WHERE typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema())
AND typtype IN ('b','d','e')
AND typelem = 0"); } function schemas() { return get_vals("SELECT nspname FROM pg_namespace ORDER BY nspname"); } function get_schema() { global $g; return $g->result("SELECT current_schema()"); } function set_schema($ah, $h = null) { global $g, $U, $Hh; if (!$h) { $h = $g; } $H = $h->query("SET search_path TO " . idf_escape($ah)); foreach (types() as $T) { if (!isset($U[$T])) { $U[$T] = 0; $Hh["User types"][] = $T; } } return $H; } function create_sql($Q, $Ma, $Ih) { global $g; $H = ''; $Qg = array(); $kh = array(); $O = table_status($Q); $p = fields($Q); $w = indexes($Q); ksort($w); $Zc = foreign_keys($Q); ksort($Zc); if (!$O || empty($p)) { return false; } $H = "CREATE TABLE " . idf_escape($O["nspname"]) . "." . idf_escape($O["Name"]) . " (\xa    "; foreach ($p as $Rc => $o) { $Rf = idf_escape($o["field"]) . " " . $o["full_type"] . default_value($o) . ($o["attnotnull"] ? " NOT NULL" : ''); $Qg[] = $Rf; if (preg_match("~nextval\('([^']+)'\)~", $o["default"], $De)) { $jh = $De[1]; $yh = reset(get_rows(min_version(10) ? "SELECT *, cache_size AS cache_value FROM pg_sequences WHERE schemaname = current_schema() AND sequencename = " . q($jh) : "SELECT * FROM {$jh}")); $kh[] = ($Ih == "DROP+CREATE" ? "DROP SEQUENCE IF EXISTS {$jh};\xa" : '') . "CREATE SEQUENCE {$jh} INCREMENT {$yh["increment_by"]} MINVALUE {$yh["min_value"]} MAXVALUE {$yh["max_value"]} START " . ($Ma ? $yh["last_value"] : 1) . " CACHE {$yh["cache_value"]};"; } } if (!empty($kh)) { $H = implode("
\xa", $kh) . "
\xa{$H}"; } foreach ($w as $Id => $v) { switch ($v["type"]) { case "UNIQUE": $Qg[] = "CONSTRAINT " . idf_escape($Id) . " UNIQUE (" . implode(", ", array_map("idf_escape", $v["columns"])) . ")"; break; case "PRIMARY": $Qg[] = "CONSTRAINT " . idf_escape($Id) . " PRIMARY KEY (" . implode(", ", array_map("idf_escape", $v["columns"])) . ")"; break; } } foreach ($Zc as $Yc => $Xc) { $Qg[] = "CONSTRAINT " . idf_escape($Yc) . " {$Xc["definition"]} " . ($Xc["deferrable"] ? "DEFERRABLE" : "NOT DEFERRABLE"); } $H .= implode(",
    ", $Qg) . "
) WITH (oids = " . ($O["Oid"] ? "true" : "false") . ");"; foreach ($w as $Id => $v) { if ($v["type"] == "INDEX") { $f = array(); foreach ($v["columns"] as $y => $X) { $f[] = idf_escape($X) . ($v["descs"][$y] ? " DESC" : ''); } $H .= "
\xaCREATE INDEX " . idf_escape($Id) . " ON " . idf_escape($O["nspname"]) . "." . idf_escape($O["Name"]) . " USING btree (" . implode(", ", $f) . ");"; } } if ($O["Comment"]) { $H .= "

COMMENT ON TABLE " . idf_escape($O["nspname"]) . "." . idf_escape($O["Name"]) . " IS " . q($O["Comment"]) . ";"; } foreach ($p as $Rc => $o) { if ($o["comment"]) { $H .= "\xa\xaCOMMENT ON COLUMN " . idf_escape($O["nspname"]) . "." . idf_escape($O["Name"]) . "." . idf_escape($Rc) . " IS " . q($o["comment"]) . ";"; } } return rtrim($H, ";"); } function truncate_sql($Q) { return "TRUNCATE " . table($Q); } function trigger_sql($Q) { $O = table_status($Q); $H = ''; foreach (triggers($Q) as $wi => $vi) { $xi = trigger($wi, $O["Name"]); $H .= "
CREATE TRIGGER " . idf_escape($xi["Trigger"]) . " {$xi["Timing"]} {$xi["Events"]} ON " . idf_escape($O["nspname"]) . "." . idf_escape($O["Name"]) . " {$xi["Type"]} {$xi["Statement"]};;\xa"; } return $H; } function use_sql($j) { return "\connect " . idf_escape($j); } function show_variables() { return get_key_vals("SHOW ALL"); } function process_list() { return get_rows("SELECT * FROM pg_stat_activity ORDER BY " . (min_version(9.199999999999999) ? "pid" : "procpid")); } function show_status() { } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function support($Pc) { return preg_match("~^(database|table|columns|sql|indexes|descidx|comment|view|" . (min_version(9.300000000000001) ? "materializedview|" : '') . "scheme|routine|processlist|sequence|trigger|type|variables|drop_col|kill|dump)$~", $Pc); } function kill_process($X) { return queries("SELECT pg_terminate_backend(" . number($X) . ")"); } function connection_id() { return "SELECT pg_backend_pid()"; } function max_connections() { global $g; return $g->result("SHOW max_connections"); } $x = "pgsql"; $U = array(); $Hh = array(); foreach (array("Numbers" => array("smallint" => 5, "integer" => 10, "bigint" => 19, "boolean" => 1, "numeric" => 0, "real" => 7, "double precision" => 16, "money" => 20), "Date and time" => array("date" => 13, "time" => 17, "timestamp" => 20, "timestamptz" => 21, "interval" => 0), "Strings" => array("character" => 0, "character varying" => 0, "text" => 0, "tsquery" => 0, "tsvector" => 0, "uuid" => 0, "xml" => 0), "Binary" => array("bit" => 0, "bit varying" => 0, "bytea" => 0), "Network" => array("cidr" => 43, "inet" => 43, "macaddr" => 17, "txid_snapshot" => 0), "Geometry" => array("box" => 0, "circle" => 0, "line" => 0, "lseg" => 0, "path" => 0, "point" => 0, "polygon" => 0)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array(); $vf = array("=", "<", ">", "<=", ">=", "!=", "~", "!~", "LIKE", "LIKE %%", "ILIKE", "ILIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); $kd = array("char_length", "lower", "round", "to_hex", "to_timestamp", "upper"); $qd = array("avg", "count", "count distinct", "max", "min", "sum"); $mc = array(array("char" => "md5", "date|time" => "now"), array(number_type() => "+/-", "date|time" => "+ interval/- interval", "char|text" => "||")); } goto HrHyZ; RXbWT: function checkbox($B, $Y, $fb, $ke = '', $sf = '', $kb = '', $le = '') { $H = "<input type='checkbox' name='{$B}' value='" . h($Y) . "'" . ($fb ? " checked" : '') . ($le ? " aria-labelledby='{$le}'" : '') . ">" . ($sf ? script("qsl('input').onclick = function () { {$sf} };", '') : ''); return $ke != '' || $kb ? "<label" . ($kb ? " class='{$kb}'" : '') . ">{$H}" . h($ke) . "</label>" : $H; } goto iEKwQ; xasIE: @set_time_limit(0); goto dQKD5; xr12h: function set_session($y, $X) { $_SESSION[$y][DRIVER][SERVER][$_GET["username"]] = $X; } goto Ytu8t; YbbTM: function number_type() { return "((?<!o)int(?!er)|numeric|real|float|double|decimal|money)"; } goto IMGJo; P9o1J: define("ME", str_replace(":", "%3a", preg_replace("~^[^?]*/([^?]*).*~", "\1", $_SERVER["REQUEST_URI"])) . "?" . (sid() ? SID . "&" : '') . (SERVER !== null ? DRIVER . "=" . urlencode(SERVER) . "&" : '') . (isset($_GET["username"]) ? "username=" . urlencode($_GET["username"]) . "&" : '') . (DB != '' ? "db=" . urlencode(DB) . "&" . (isset($_GET["ns"]) ? "ns=" . urlencode($_GET["ns"]) . "&" : '') : '')); goto MS2ZE; FhcQT: function is_mail($qc) { $Ha = "[-a-z0-9!#$%&'*+/=?^_`{|}~]"; $dc = "[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])"; $ag = "{$Ha}+(\.{$Ha}+)*@({$dc}?\.)+{$dc}"; return is_string($qc) && preg_match("(^{$ag}(,\s*{$ag})*$)i", $qc); } goto xb5Ux; tSE5C: function process_type($o, $ob = "COLLATE") { global $Ii; return " {$o["type"]}" . process_length($o["length"]) . (preg_match(number_type(), $o["type"]) && in_array($o["unsigned"], $Ii) ? " {$o["unsigned"]}" : '') . (preg_match("~char|text|enum|set~", $o["type"]) && $o["collation"] ? " {$ob} " . q($o["collation"]) : ''); } goto nNHlA; Cl6fw: function escape_string($X) { return substr(q($X), 1, -1); } goto O1r8o; pRcnJ: $ec["elastic"] = "Elasticsearch (beta)"; goto UY9S3; Ey1Pj: function set_password($Xi, $M, $V, $E) { $_SESSION["pwds"][$Xi][$M][$V] = $_COOKIE["adminer_key"] && is_string($E) ? array(encrypt_string($E, $_COOKIE["adminer_key"])) : $E; } goto hfdDf; jHuFN: function adminer_settings() { parse_str($_COOKIE["adminer_settings"], $ph); return $ph; } goto E01kY; u7zDi: function version() { global $ia; return $ia; } goto r0uiN; BN2q6: function js_escape($P) { return addcslashes($P, "
\xa'\/"); } goto z8x8F; p4jCj: if (!is_object($g) || ($ye = $b->login($_GET["username"], get_password())) !== true) { $n = is_string($g) ? h($g) : (is_string($ye) ? $ye : "Invalid credentials."); auth_error($n . (preg_match("~^ | $~", get_password()) ? "<br>" . "There is a space in the input password which might be the cause." : '')); } goto TmWkI; I0zsl: function &get_session($y) { return $_SESSION[$y][DRIVER][SERVER][$_GET["username"]]; } goto xr12h; CLJ2J: function edit_fields($p, $pb, $T = "TABLE", $ed = array()) { global $Rd; $p = array_values($p); echo "<thead><tr>\xa"; if ($T == "PROCEDURE") { echo "<td>"; } echo "<th id="label-name">", $T == "TABLE" ? "Column name" : "Parameter name", "<td id="label-type">Type<textarea id="enum-edit" rows="4" cols="12" wrap="off" style="display: none;"></textarea>", script("qs('#enum-edit').onblur = editingLengthBlur;"), "<td id="label-length">Length
<td>", "Options"; if ($T == "TABLE") { echo "<td id="label-null">NULL\xa<td><input type="radio" name="auto_increment_col" value=""><acronym id="label-ai" title="Auto Increment">AI</acronym>", doc_link(array("sql" => "example-auto-increment.html", "mariadb" => "auto_increment/", "sqlite" => "autoinc.html", "pgsql" => "datatype.html#DATATYPE-SERIAL", "mssql" => "ms186775.aspx")), "<td id="label-default">Default value
", support("comment") ? "<td id='label-comment'>" . "Comment" : ''; } echo "<td>", "<input type='image' class='icon' name='add[" . (support("move_col") ? 0 : count($p)) . "]' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=plus.gif&version=4.7.5") . "' alt='+' title='" . "Add next" . "'>" . script("row_count = " . count($p) . ";"), "</thead>\xa<tbody>
", script("mixin(qsl('tbody'), {onclick: editingClick, onkeydown: editingKeydown, oninput: editingInput});"); foreach ($p as $s => $o) { $s++; $Df = $o[$_POST ? "orig" : "field"]; $bc = (isset($_POST["add"][$s - 1]) || isset($o["field"]) && !$_POST["drop_col"][$s]) && (support("drop_col") || $Df == ''); echo "<tr", $bc ? '' : " style='display: none;'", ">
", $T == "PROCEDURE" ? "<td>" . html_select("fields[{$s}][inout]", explode("|", $Rd), $o["inout"]) : '', "<th>"; if ($bc) { echo "<input name="fields[", $s, "][field]" value="", h($o["field"]), "" data-maxlength="64" autocapitalize="off" aria-labelledby="label-name">", script("qsl('input').oninput = function () { editingNameChange.call(this);" . ($o["field"] != '' || count($p) > 1 ? '' : " editingAddRow.call(this);") . " };", ''); } echo "<input type="hidden" name="fields[", $s, "][orig]" value="", h($Df), "">"; edit_type("fields[{$s}]", $o, $pb, $ed); if ($T == "TABLE") { echo "<td>", checkbox("fields[{$s}][null]", 1, $o["null"], '', '', "block", "label-null"), "<td><label class="block"><input type="radio" name="auto_increment_col" value="", $s, """; if ($o["auto_increment"]) { echo " checked"; } echo " aria-labelledby="label-ai"></label><td>", checkbox("fields[{$s}][has_default]", 1, $o["has_default"], '', '', '', "label-default"), "<input name="fields[", $s, "][default]" value="", h($o["default"]), "" aria-labelledby="label-default">", support("comment") ? "<td><input name='fields[{$s}][comment]' value='" . h($o["comment"]) . "' data-maxlength='" . (min_version(5.5) ? 1024 : 255) . "' aria-labelledby='label-comment'>" : ''; } echo "<td>", support("move_col") ? "<input type='image' class='icon' name='add[{$s}]' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=plus.gif&version=4.7.5") . "' alt='+' title='" . "Add next" . "'> " . "<input type='image' class='icon' name='up[{$s}]' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=up.gif&version=4.7.5") . "' alt='\303\242\342\200\xa0\xe2\x80\x98' title='" . "Move up" . "'> " . "<input type='image' class='icon' name='down[{$s}]' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=down.gif&version=4.7.5") . "' alt='\xc3\242\342\200\xa0\342\200\234' title='" . "Move down" . "'> " : '', $Df == '' || support("drop_col") ? "<input type='image' class='icon' name='drop_col[{$s}]' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=cross.gif&version=4.7.5") . "' alt='x' title='" . "Remove" . "'>" : ''; } } goto ixxDq; gWy37: function bracket_escape($u, $Oa = false) { static $si = array(":" => ":1", "]" => ":2", "[" => ":3", """ => ":4"); return strtr($u, $Oa ? array_flip($si) : $si); } goto UYQOS; diSt_: function page_messages($n) { $Ki = preg_replace("~^[^?]*~", '', $_SERVER["REQUEST_URI"]); $Pe = $_SESSION["messages"][$Ki]; if ($Pe) { echo "<div class='message'>" . implode("</div>
<div class='message'>", $Pe) . "</div>" . script("messagesPrint();"); unset($_SESSION["messages"][$Ki]); } if ($n) { echo "<div class='error'>{$n}</div>
"; } } goto i7BLM; ixxDq: function process_fields(&$p) { $C = 0; if ($_POST["up"]) { $ne = 0; foreach ($p as $y => $o) { if (key($_POST["up"]) == $y) { unset($p[$y]); array_splice($p, $ne, 0, array($o)); break; } if (isset($o["field"])) { $ne = $C; } $C++; } } elseif ($_POST["down"]) { $gd = false; foreach ($p as $y => $o) { if (isset($o["field"]) && $gd) { unset($p[key($_POST["down"])]); array_splice($p, $C, 0, array($gd)); break; } if (key($_POST["down"]) == $y) { $gd = $o; } $C++; } } elseif ($_POST["add"]) { $p = array_values($p); array_splice($p, key($_POST["add"]), 0, array(array())); } elseif (!$_POST["drop_col"]) { return false; } return true; } goto hp216; CeOs5: function stop_session($bd = false) { $Pi = ini_bool("session.use_cookies"); if (!$Pi || $bd) { session_write_close(); if ($Pi && @ini_set("session.use_cookies", false) === false) { session_start(); } } } goto I0zsl; NS6t5: function get_nonce() { static $df; if (!$df) { $df = base64_encode(rand_string()); } return $df; } goto diSt_; eqoen: $ec["clickhouse"] = "ClickHouse (alpha)"; goto qaHJm; XVdUG: function fields_from_edit() { global $m; $H = array(); foreach ((array) $_POST["field_keys"] as $y => $X) { if ($X != '') { $X = bracket_escape($X); $_POST["function"][$X] = $_POST["field_funs"][$y]; $_POST["fields"][$X] = $_POST["field_vals"][$y]; } } foreach ((array) $_POST["fields"] as $y => $X) { $B = bracket_escape($y, 1); $H[$B] = array("field" => $B, "privileges" => array("insert" => 1, "update" => 1), "null" => 1, "auto_increment" => $y == $m->primary); } return $H; } goto tpzzL; QbjIy: if (!$vd) { $_SESSION["token"] = rand(1, 1000000.0); } goto PvEHN; AYrEe: if (isset($_GET["download"])) { $a = $_GET["download"]; $p = fields($a); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=" . friendly_url("{$a}-" . implode("_", $_GET["where"])) . "." . friendly_url($_GET["field"])); $K = array(idf_escape($_GET["field"])); $G = $m->select($a, $K, array(where($_GET, $p)), $K); $I = $G ? $G->fetch_row() : array(); echo $m->value($I[0], $p[$_GET["field"]]); die; } elseif (isset($_GET["table"])) { $a = $_GET["table"]; $p = fields($a); if (!$p) { $n = error(); } $R = table_status1($a, true); $B = $b->tableName($R); page_header(($p && is_view($R) ? $R["Engine"] == "materialized view" ? "Materialized view" : "View" : "Table") . ": " . ($B != '' ? $B : h($a)), $n); $b->selectLinks($R); $ub = $R["Comment"]; if ($ub != '') { echo "<p class='nowrap'>" . "Comment" . ": " . h($ub) . "
"; } if ($p) { $b->tableStructurePrint($p); } if (!is_view($R)) { if (support("indexes")) { echo "<h3 id='indexes'>" . "Indexes" . "</h3>\xa"; $w = indexes($a); if ($w) { $b->tableIndexesPrint($w); } echo "<p class="links"><a href="" . h(ME) . "indexes=" . urlencode($a) . "">" . "Alter indexes" . "</a>\xa"; } if (fk_support($R)) { echo "<h3 id='foreign-keys'>" . "Foreign keys" . "</h3>\xa"; $ed = foreign_keys($a); if ($ed) { echo "<table cellspacing='0'>
", "<thead><tr><th>" . "Source" . "<td>" . "Target" . "<td>" . "ON DELETE" . "<td>" . "ON UPDATE" . "<td></thead>
"; foreach ($ed as $B => $q) { echo "<tr title='" . h($B) . "'>", "<th><i>" . implode("</i>, <i>", array_map("h", $q["source"])) . "</i>", "<td><a href='" . h($q["db"] != '' ? preg_replace("~db=[^&]*~", "db=" . urlencode($q["db"]), ME) : ($q["ns"] != '' ? preg_replace("~ns=[^&]*~", "ns=" . urlencode($q["ns"]), ME) : ME)) . "table=" . urlencode($q["table"]) . "'>" . ($q["db"] != '' ? "<b>" . h($q["db"]) . "</b>." : '') . ($q["ns"] != '' ? "<b>" . h($q["ns"]) . "</b>." : '') . h($q["table"]) . "</a>", "(<i>" . implode("</i>, <i>", array_map("h", $q["target"])) . "</i>)", "<td>" . h($q["on_delete"]) . "
", "<td>" . h($q["on_update"]) . "\xa", "<td><a href="" . h(ME . "foreign=" . urlencode($a) . "&name=" . urlencode($B)) . "">" . "Alter" . "</a>"; } echo "</table>\xa"; } echo "<p class="links"><a href="" . h(ME) . "foreign=" . urlencode($a) . "">" . "Add foreign key" . "</a>
"; } } if (support(is_view($R) ? "view_trigger" : "trigger")) { echo "<h3 id='triggers'>" . "Triggers" . "</h3>
"; $_i = triggers($a); if ($_i) { echo "<table cellspacing='0'>
"; foreach ($_i as $y => $X) { echo "<tr valign='top'><td>" . h($X[0]) . "<td>" . h($X[1]) . "<th>" . h($y) . "<td><a href='" . h(ME . "trigger=" . urlencode($a) . "&name=" . urlencode($y)) . "'>" . "Alter" . "</a>
"; } echo "</table>
"; } echo "<p class="links"><a href="" . h(ME) . "trigger=" . urlencode($a) . "">" . "Add trigger" . "</a>\xa"; } } elseif (isset($_GET["schema"])) { page_header("Database schema", '', array(), h(DB . ($_GET["ns"] ? ".{$_GET["ns"]}" : ''))); $Rh = array(); $Sh = array(); $ea = $_GET["schema"] ? $_GET["schema"] : $_COOKIE["adminer_schema-" . str_replace(".", "_", DB)]; preg_match_all("~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~", $ea, $De, PREG_SET_ORDER); foreach ($De as $s => $A) { $Rh[$A[1]] = array($A[2], $A[3]); $Sh[] = "
\x9'" . js_escape($A[1]) . "': [ {$A["2"]}, {$A["3"]} ]"; } $pi = 0; $Ra = -1; $ah = array(); $Fg = array(); $re = array(); foreach (table_status('', true) as $Q => $R) { if (is_view($R)) { continue; } $eg = 0; $ah[$Q]["fields"] = array(); foreach (fields($Q) as $B => $o) { $eg += 1.25; $o["pos"] = $eg; $ah[$Q]["fields"][$B] = $o; } $ah[$Q]["pos"] = $Rh[$Q] ? $Rh[$Q] : array($pi, 0); foreach ($b->foreignKeys($Q) as $X) { if (!$X["db"]) { $pe = $Ra; if ($Rh[$Q][1] || $Rh[$X["table"]][1]) { $pe = min(floatval($Rh[$Q][1]), floatval($Rh[$X["table"]][1])) - 1; } else { $Ra -= 0.1; } while ($re[(string) $pe]) { $pe -= 0.0001; } $ah[$Q]["references"][$X["table"]][(string) $pe] = array($X["source"], $X["target"]); $Fg[$X["table"]][$Q][(string) $pe] = $X["target"]; $re[(string) $pe] = true; } } $pi = max($pi, $ah[$Q]["pos"][0] + 2.5 + $eg); } echo "<div id="schema" style="height: ", $pi, "em;">\xa<script", nonce(), ">
qs('#schema').onselectstart = function () { return false; };\xavar tablePos = {", implode(",", $Sh) . "
", "};\xavar em = qs('#schema').offsetHeight / ", $pi, ";
document.onmousemove = schemaMousemove;
document.onmouseup = partialArg(schemaMouseup, '", js_escape(DB), "');
</script>
"; foreach ($ah as $B => $Q) { echo "<div class='table' style='top: " . $Q["pos"][0] . "em; left: " . $Q["pos"][1] . "em;'>", "<a href="" . h(ME) . "table=" . urlencode($B) . ""><b>" . h($B) . "</b></a>", script("qsl('div').onmousedown = schemaMousedown;"); foreach ($Q["fields"] as $o) { $X = "<span" . type_class($o["type"]) . " title="" . h($o["full_type"] . ($o["null"] ? " NULL" : '')) . "">" . h($o["field"]) . "</span>"; echo "<br>" . ($o["primary"] ? "<i>{$X}</i>" : $X); } foreach ((array) $Q["references"] as $Yh => $Gg) { foreach ($Gg as $pe => $Cg) { $qe = $pe - $Rh[$B][1]; $s = 0; foreach ($Cg[0] as $wh) { echo "
<div class='references' title='" . h($Yh) . "' id='refs{$pe}-" . $s++ . "' style='left: {$qe}" . "em; top: " . $Q["fields"][$wh]["pos"] . "em; padding-top: .5em;'><div style='border-top: 1px solid Gray; width: " . -$qe . "em;'></div></div>"; } } } foreach ((array) $Fg[$B] as $Yh => $Gg) { foreach ($Gg as $pe => $f) { $qe = $pe - $Rh[$B][1]; $s = 0; foreach ($f as $Xh) { echo "\xa<div class='references' title='" . h($Yh) . "' id='refd{$pe}-" . $s++ . "' style='left: {$qe}" . "em; top: " . $Q["fields"][$Xh]["pos"] . "em; height: 1.25em; background: url(" . h(preg_replace("~\?.*~", '', ME) . "?file=arrow.gif) no-repeat right center;&version=4.7.5") . "'><div style='height: .5em; border-bottom: 1px solid Gray; width: " . -$qe . "em;'></div></div>"; } } } echo "
</div>\xa"; } foreach ($ah as $B => $Q) { foreach ((array) $Q["references"] as $Yh => $Gg) { foreach ($Gg as $pe => $Cg) { $Se = $pi; $He = -10; foreach ($Cg[0] as $y => $wh) { $fg = $Q["pos"][0] + $Q["fields"][$wh]["pos"]; $gg = $ah[$Yh]["pos"][0] + $ah[$Yh]["fields"][$Cg[1][$y]]["pos"]; $Se = min($Se, $fg, $gg); $He = max($He, $fg, $gg); } echo "<div class='references' id='refl{$pe}' style='left: {$pe}" . "em; top: {$Se}" . "em; padding: .5em 0;'><div style='border-right: 1px solid Gray; margin-top: 1px; height: " . ($He - $Se) . "em;'></div></div>\xa"; } } } echo "</div>\xa<p class="links"><a href="", h(ME . "schema=" . urlencode($ea)), "" id="schema-link">Permanent link</a>
"; } elseif (isset($_GET["dump"])) { $a = $_GET["dump"]; if ($_POST && !$n) { $Db = ''; foreach (array("output", "format", "db_style", "routines", "events", "table_style", "auto_increment", "triggers", "data_style") as $y) { $Db .= "&{$y}=" . urlencode($_POST[$y]); } cookie("adminer_export", substr($Db, 1)); $S = array_flip((array) $_POST["tables"]) + array_flip((array) $_POST["data"]); $Ic = dump_headers(count($S) == 1 ? key($S) : DB, DB == '' || count($S) > 1); $Zd = preg_match("~sql~", $_POST["format"]); if ($Zd) { echo "-- Adminer {$ia} " . $ec[DRIVER] . " dump\xa\xa"; if ($x == "sql") { echo "SET NAMES utf8;
SET time_zone = '+00:00';\xa" . ($_POST["data_style"] ? "SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
" : '') . "\xa"; $g->query("SET time_zone = '+00:00';"); } } $Ih = $_POST["db_style"]; $k = array(DB); if (DB == '') { $k = $_POST["databases"]; if (is_string($k)) { $k = explode("
", rtrim(str_replace("\xd", '', $k), "
")); } } foreach ((array) $k as $l) { $b->dumpDatabase($l); if ($g->select_db($l)) { if ($Zd && preg_match("~CREATE~", $Ih) && ($i = $g->result("SHOW CREATE DATABASE " . idf_escape($l), 1))) { set_utf8mb4($i); if ($Ih == "DROP+CREATE") { echo "DROP DATABASE IF EXISTS " . idf_escape($l) . ";\xa"; } echo "{$i};
"; } if ($Zd) { if ($Ih) { echo use_sql($l) . ";\xa
"; } $Jf = ''; if ($_POST["routines"]) { foreach (array("FUNCTION", "PROCEDURE") as $Ug) { foreach (get_rows("SHOW {$Ug} STATUS WHERE Db = " . q($l), null, "-- ") as $I) { $i = remove_definer($g->result("SHOW CREATE {$Ug} " . idf_escape($I["Name"]), 2)); set_utf8mb4($i); $Jf .= ($Ih != "DROP+CREATE" ? "DROP {$Ug} IF EXISTS " . idf_escape($I["Name"]) . ";;\xa" : '') . "{$i};;\xa
"; } } } if ($_POST["events"]) { foreach (get_rows("SHOW EVENTS", null, "-- ") as $I) { $i = remove_definer($g->result("SHOW CREATE EVENT " . idf_escape($I["Name"]), 3)); set_utf8mb4($i); $Jf .= ($Ih != "DROP+CREATE" ? "DROP EVENT IF EXISTS " . idf_escape($I["Name"]) . ";;
" : '') . "{$i};;
\xa"; } } if ($Jf) { echo "DELIMITER ;;\xa
{$Jf}" . "DELIMITER ;

"; } } if ($_POST["table_style"] || $_POST["data_style"]) { $aj = array(); foreach (table_status('', true) as $B => $R) { $Q = DB == '' || in_array($B, (array) $_POST["tables"]); $Mb = DB == '' || in_array($B, (array) $_POST["data"]); if ($Q || $Mb) { if ($Ic == "tar") { $li = new TmpFile(); ob_start(array($li, "write"), 100000.0); } $b->dumpTable($B, $Q ? $_POST["table_style"] : '', is_view($R) ? 2 : 0); if (is_view($R)) { $aj[] = $B; } elseif ($Mb) { $p = fields($B); $b->dumpData($B, $_POST["data_style"], "SELECT *" . convert_fields($p, $p) . " FROM " . table($B)); } if ($Zd && $_POST["triggers"] && $Q && ($_i = trigger_sql($B))) { echo "\xaDELIMITER ;;
{$_i}\xaDELIMITER ;\xa"; } if ($Ic == "tar") { ob_end_flush(); tar_file((DB != '' ? '' : "{$l}/") . "{$B}.csv", $li); } elseif ($Zd) { echo "\xa"; } } } foreach ($aj as $Zi) { $b->dumpTable($Zi, $_POST["table_style"], 1); } if ($Ic == "tar") { echo pack("x512"); } } } } if ($Zd) { echo "-- " . $g->result("SELECT NOW()") . "
"; } die; } page_header("Export", $n, $_GET["export"] != '' ? array("table" => $_GET["export"]) : array(), h(DB)); echo "
<form action="" method="post">\xa<table cellspacing="0" class="layout">
"; $Qb = array('', "USE", "DROP+CREATE", "CREATE"); $Th = array('', "DROP+CREATE", "CREATE"); $Nb = array('', "TRUNCATE+INSERT", "INSERT"); if ($x == "sql") { $Nb[] = "INSERT+UPDATE"; } parse_str($_COOKIE["adminer_export"], $I); if (!$I) { $I = array("output" => "text", "format" => "sql", "db_style" => DB != '' ? '' : "CREATE", "table_style" => "DROP+CREATE", "data_style" => "INSERT"); } if (!isset($I["events"])) { $I["routines"] = $I["events"] = $_GET["dump"] == ''; $I["triggers"] = $I["table_style"]; } echo "<tr><th>" . "Output" . "<td>" . html_select("output", $b->dumpOutput(), $I["output"], 0) . "\xa"; echo "<tr><th>" . "Format" . "<td>" . html_select("format", $b->dumpFormat(), $I["format"], 0) . "\xa"; echo $x == "sqlite" ? '' : "<tr><th>" . "Database" . "<td>" . html_select("db_style", $Qb, $I["db_style"]) . (support("routine") ? checkbox("routines", 1, $I["routines"], "Routines") : '') . (support("event") ? checkbox("events", 1, $I["events"], "Events") : ''), "<tr><th>" . "Tables" . "<td>" . html_select("table_style", $Th, $I["table_style"]) . checkbox("auto_increment", 1, $I["auto_increment"], "Auto Increment") . (support("trigger") ? checkbox("triggers", 1, $I["triggers"], "Triggers") : ''), "<tr><th>" . "Data" . "<td>" . html_select("data_style", $Nb, $I["data_style"]), "</table>
<p><input type="submit" value="Export">
<input type="hidden" name="token" value="", $oi, "">\xa\xa<table cellspacing="0">
", script("qsl('table').onclick = dumpClick;"); $jg = array(); if (DB != '') { $fb = $a != '' ? '' : " checked"; echo "<thead><tr>", "<th style='text-align: left;'><label class='block'><input type='checkbox' id='check-tables'{$fb}>" . "Tables" . "</label>" . script("qs('#check-tables').onclick = partial(formCheck, /^tables\[/);", ''), "<th style='text-align: right;'><label class='block'>" . "Data" . "<input type='checkbox' id='check-data'{$fb}></label>" . script("qs('#check-data').onclick = partial(formCheck, /^data\[/);", ''), "</thead>
"; $aj = ''; $Uh = tables_list(); foreach ($Uh as $B => $T) { $ig = preg_replace("~_.*~", '', $B); $fb = $a == '' || $a == (substr($a, -1) == "%" ? "{$ig}%" : $B); $mg = "<tr><td>" . checkbox("tables[]", $B, $fb, $B, '', "block"); if ($T !== null && !preg_match("~table~i", $T)) { $aj .= "{$mg}\xa"; } else { echo "{$mg}<td align='right'><label class='block'><span id='Rows-" . h($B) . "'></span>" . checkbox("data[]", $B, $fb) . "</label>\xa"; } $jg[$ig]++; } echo $aj; if ($Uh) { echo script("ajaxSetHtml('" . js_escape(ME) . "script=db');"); } } else { echo "<thead><tr><th style='text-align: left;'>", "<label class='block'><input type='checkbox' id='check-databases'" . ($a == '' ? " checked" : '') . ">" . "Database" . "</label>", script("qs('#check-databases').onclick = partial(formCheck, /^databases\[/);", ''), "</thead>\xa"; $k = $b->databases(); if ($k) { foreach ($k as $l) { if (!information_schema($l)) { $ig = preg_replace("~_.*~", '', $l); echo "<tr><td>" . checkbox("databases[]", $l, $a == '' || $a == "{$ig}%", $l, '', "block") . "\xa"; $jg[$ig]++; } } } else { echo "<tr><td><textarea name='databases' rows='10' cols='20'></textarea>"; } } echo "</table>
</form>\xa"; $Wc = true; foreach ($jg as $y => $X) { if ($y != '' && $X > 1) { echo ($Wc ? "<p>" : " ") . "<a href='" . h(ME) . "dump=" . urlencode("{$y}%") . "'>" . h($y) . "</a>"; $Wc = false; } } } elseif (isset($_GET["privileges"])) { page_header("Privileges"); echo "<p class="links"><a href="" . h(ME) . "user=">" . "Create user" . "</a>"; $G = $g->query("SELECT User, Host FROM mysql." . (DB == '' ? "user" : "db WHERE " . q(DB) . " LIKE Db") . " ORDER BY Host, User"); $ld = $G; if (!$G) { $G = $g->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host"); } echo "<form action=''><p>
"; hidden_fields_get(); echo "<input type='hidden' name='db' value='" . h(DB) . "'>
", $ld ? '' : "<input type='hidden' name='grant' value=''>
", "<table cellspacing='0'>\xa", "<thead><tr><th>" . "Username" . "<th>" . "Server" . "<th></thead>
"; while ($I = $G->fetch_assoc()) { echo "<tr" . odd() . "><td>" . h($I["User"]) . "<td>" . h($I["Host"]) . "<td><a href="" . h(ME . "user=" . urlencode($I["User"]) . "&host=" . urlencode($I["Host"])) . "">" . "Edit" . "</a>\xa"; } if (!$ld || DB != '') { echo "<tr" . odd() . "><td><input name='user' autocapitalize='off'><td><input name='host' value='localhost' autocapitalize='off'><td><input type='submit' value='" . "Edit" . "'>\xa"; } echo "</table>\xa", "</form>
"; } elseif (isset($_GET["sql"])) { if (!$n && $_POST["export"]) { dump_headers("sql"); $b->dumpTable('', ''); $b->dumpData('', "table", $_POST["query"]); die; } restart_session(); $zd =& get_session("queries"); $yd =& $zd[DB]; if (!$n && $_POST["clear"]) { $yd = array(); redirect(remove_from_uri("history")); } page_header(isset($_GET["import"]) ? "Import" : "SQL command", $n); if (!$n && $_POST) { $id = false; if (!isset($_GET["import"])) { $F = $_POST["query"]; } elseif ($_POST["webfile"]) { $_h = $b->importServerPath(); $id = @fopen(file_exists($_h) ? $_h : "compress.zlib://{$_h}.gz", "rb"); $F = $id ? fread($id, 1000000.0) : false; } else { $F = get_file("sql_file", true); } if (is_string($F)) { if (function_exists("memory_get_usage")) { @ini_set("memory_limit", max(ini_bytes("memory_limit"), 2 * strlen($F) + memory_get_usage() + 8000000.0)); } if ($F != '' && strlen($F) < 1000000.0) { $ug = $F . (preg_match("~;[ \x9
\xa]*$~", $F) ? '' : ";"); if (!$yd || reset(end($yd)) != $ug) { restart_session(); $yd[] = array($ug, time()); set_session("queries", $zd); stop_session(); } } $xh = "(?:\s|/\*[\s\S]*?\*/|(?:#|-- )[^
]*\xa?|--\xd?
)"; $Wb = ";"; $C = 0; $tc = true; $h = connect(); if (is_object($h) && DB != '') { $h->select_db(DB); if ($_GET["ns"] != '') { set_schema($_GET["ns"], $h); } } $tb = 0; $yc = array(); $Qf = "['"" . ($x == "sql" ? "`#" : ($x == "sqlite" ? "`[" : ($x == "mssql" ? "[" : ''))) . "]|/\*|-- |$" . ($x == "pgsql" ? "|\$[^$]*\$" : ''); $qi = microtime(true); parse_str($_COOKIE["adminer_export"], $xa); $kc = $b->dumpFormat(); unset($kc["sql"]); while ($F != '') { if (!$C && preg_match("~^{$xh}*+DELIMITER\s+(\S+)~i", $F, $A)) { $Wb = $A[1]; $F = substr($F, strlen($A[0])); } else { preg_match("(" . preg_quote($Wb) . "\s*|{$Qf})", $F, $A, PREG_OFFSET_CAPTURE, $C); list($gd, $eg) = $A[0]; if (!$gd && $id && !feof($id)) { $F .= fread($id, 100000.0); } else { if (!$gd && rtrim($F) == '') { break; } $C = $eg + strlen($gd); if ($gd && rtrim($gd) != $Wb) { while (preg_match("(" . ($gd == "/*" ? "\*/" : ($gd == "[" ? "]" : (preg_match("~^-- |^#~", $gd) ? "\xa" : preg_quote($gd) . "|\\."))) . "|$)s", $F, $A, PREG_OFFSET_CAPTURE, $C)) { $Yg = $A[0][0]; if (!$Yg && $id && !feof($id)) { $F .= fread($id, 100000.0); } else { $C = $A[0][1] + strlen($Yg); if ($Yg[0] != "\") { break; } } } } else { $tc = false; $ug = substr($F, 0, $eg); $tb++; $mg = "<pre id='sql-{$tb}'><code class='jush-{$x}'>" . $b->sqlCommandQuery($ug) . "</code></pre>\xa"; if ($x == "sqlite" && preg_match("~^{$xh}*+ATTACH\b~i", $ug, $A)) { echo $mg, "<p class='error'>" . "ATTACH queries are not supported." . "
"; $yc[] = " <a href='#sql-{$tb}'>{$tb}</a>"; if ($_POST["error_stops"]) { break; } } else { if (!$_POST["only_errors"]) { echo $mg; ob_flush(); flush(); } $Dh = microtime(true); if ($g->multi_query($ug) && is_object($h) && preg_match("~^{$xh}*+USE\b~i", $ug)) { $h->query($ug); } do { $G = $g->store_result(); if ($g->error) { echo $_POST["only_errors"] ? $mg : '', "<p class='error'>" . "Error in query" . ($g->errno ? " ({$g->errno})" : '') . ": " . error() . "\xa"; $yc[] = " <a href='#sql-{$tb}'>{$tb}</a>"; if ($_POST["error_stops"]) { break 2; } } else { $ei = " <span class='time'>(" . format_time($Dh) . ")</span>" . (strlen($ug) < 1000 ? " <a href='" . h(ME) . "sql=" . urlencode(trim($ug)) . "'>" . "Edit" . "</a>" : ''); $za = $g->affected_rows; $dj = $_POST["only_errors"] ? '' : $m->warnings(); $ej = "warnings-{$tb}"; if ($dj) { $ei .= ", <a href='#{$ej}'>" . "Warnings" . "</a>" . script("qsl('a').onclick = partial(toggle, '{$ej}');", ''); } $Fc = null; $Gc = "explain-{$tb}"; if (is_object($G)) { $z = $_POST["limit"]; $Cf = select($G, $h, array(), $z); if (!$_POST["only_errors"]) { echo "<form action='' method='post'>
"; $gf = $G->num_rows; echo "<p>" . ($gf ? ($z && $gf > $z ? sprintf("%d / ", $z) : '') . lang(array("%d row", "%d rows"), $gf) : ''), $ei; if ($h && preg_match("~^({$xh}|\()*+SELECT\b~i", $ug) && ($Fc = explain($h, $ug))) { echo ", <a href='#{$Gc}'>Explain</a>" . script("qsl('a').onclick = partial(toggle, '{$Gc}');", ''); } $t = "export-{$tb}"; echo ", <a href='#{$t}'>" . "Export" . "</a>" . script("qsl('a').onclick = partial(toggle, '{$t}');", '') . "<span id='{$t}' class='hidden'>: " . html_select("output", $b->dumpOutput(), $xa["output"]) . " " . html_select("format", $kc, $xa["format"]) . "<input type='hidden' name='query' value='" . h($ug) . "'>" . " <input type='submit' name='export' value='" . "Export" . "'><input type='hidden' name='token' value='{$oi}'></span>
" . "</form>
"; } } else { if (preg_match("~^{$xh}*+(CREATE|DROP|ALTER){$xh}++(DATABASE|SCHEMA)\b~i", $ug)) { restart_session(); set_session("dbs", null); stop_session(); } if (!$_POST["only_errors"]) { echo "<p class='message' title='" . h($g->info) . "'>" . lang(array("Query executed OK, %d row affected.", "Query executed OK, %d rows affected."), $za) . "{$ei}
"; } } echo $dj ? "<div id='{$ej}' class='hidden'>\xa{$dj}</div>\xa" : ''; if ($Fc) { echo "<div id='{$Gc}' class='hidden'>\xa"; select($Fc, $h, $Cf); echo "</div>\xa"; } } $Dh = microtime(true); } while ($g->next_result()); } $F = substr($F, $C); $C = 0; } } } } if ($tc) { echo "<p class='message'>" . "No commands to execute." . "\xa"; } elseif ($_POST["only_errors"]) { echo "<p class='message'>" . lang(array("%d query executed OK.", "%d queries executed OK."), $tb - count($yc)), " <span class='time'>(" . format_time($qi) . ")</span>\xa"; } elseif ($yc && $tb > 1) { echo "<p class='error'>" . "Error in query" . ": " . implode('', $yc) . "\xa"; } } else { echo "<p class='error'>" . upload_error($F) . "
"; } } echo "
<form action="" method="post" enctype="multipart/form-data" id="form">
"; $Cc = "<input type='submit' value='" . "Execute" . "' title='Ctrl+Enter'>"; if (!isset($_GET["import"])) { $ug = $_GET["sql"]; if ($_POST) { $ug = $_POST["query"]; } elseif ($_GET["history"] == "all") { $ug = $yd; } elseif ($_GET["history"] != '') { $ug = $yd[$_GET["history"]][0]; } echo "<p>"; textarea("query", $ug, 20); echo script(($_POST ? '' : "qs('textarea').focus();\xa") . "qs('#form').onsubmit = partial(sqlSubmit, qs('#form'), '" . remove_from_uri("sql|limit|error_stops|only_errors") . "');"), "<p>{$Cc}
", "Limit rows" . ": <input type='number' name='limit' class='size' value='" . h($_POST ? $_POST["limit"] : $_GET["limit"]) . "'>\xa"; } else { echo "<fieldset><legend>" . "File upload" . "</legend><div>"; $rd = extension_loaded("zlib") ? "[.gz]" : ''; echo ini_bool("file_uploads") ? "SQL{$rd} (&lt; " . ini_get("upload_max_filesize") . "B): <input type='file' name='sql_file[]' multiple>\xa{$Cc}" : "File uploads are disabled.", "</div></fieldset>\xa"; $Gd = $b->importServerPath(); if ($Gd) { echo "<fieldset><legend>" . "From server" . "</legend><div>", sprintf("Webserver file %s", "<code>" . h($Gd) . "{$rd}</code>"), " <input type="submit" name="webfile" value="" . "Run file" . "">", "</div></fieldset>\xa"; } echo "<p>"; } echo checkbox("error_stops", 1, $_POST ? $_POST["error_stops"] : isset($_GET["import"]), "Stop on error") . "\xa", checkbox("only_errors", 1, $_POST ? $_POST["only_errors"] : isset($_GET["import"]), "Show only errors") . "
", "<input type='hidden' name='token' value='{$oi}'>
"; if (!isset($_GET["import"]) && $yd) { print_fieldset("history", "History", $_GET["history"] != ''); for ($X = end($yd); $X; $X = prev($yd)) { $y = key($yd); list($ug, $ei, $oc) = $X; echo "<a href="" . h(ME . "sql=&history={$y}") . "">" . "Edit" . "</a>" . " <span class='time' title='" . @date("Y-m-d", $ei) . "'>" . @date("H:i:s", $ei) . "</span>" . " <code class='jush-{$x}'>" . shorten_utf8(ltrim(str_replace("
", " ", str_replace("\xd", '', preg_replace("~^(#|-- ).*~m", '', $ug)))), 80, "</code>") . ($oc ? " <span class='time'>({$oc})</span>" : '') . "<br>
"; } echo "<input type='submit' name='clear' value='" . "Clear" . "'>\xa", "<a href='" . h(ME . "sql=&history=all") . "'>" . "Edit all" . "</a>
", "</div></fieldset>\xa"; } echo "</form>\xa"; } elseif (isset($_GET["edit"])) { $a = $_GET["edit"]; $p = fields($a); $Z = isset($_GET["select"]) ? $_POST["check"] && count($_POST["check"]) == 1 ? where_check($_POST["check"][0], $p) : '' : where($_GET, $p); $Ji = isset($_GET["select"]) ? $_POST["edit"] : $Z; foreach ($p as $B => $o) { if (!isset($o["privileges"][$Ji ? "update" : "insert"]) || $b->fieldName($o) == '' || $o["generated"]) { unset($p[$B]); } } if ($_POST && !$n && !isset($_GET["select"])) { $xe = $_POST["referer"]; if ($_POST["insert"]) { $xe = $Ji ? null : $_SERVER["REQUEST_URI"]; } elseif (!preg_match("~^.+&select=.+$~", $xe)) { $xe = ME . "select=" . urlencode($a); } $w = indexes($a); $Ei = unique_array($_GET["where"], $w); $xg = "
WHERE {$Z}"; if (isset($_POST["delete"])) { queries_redirect($xe, "Item has been deleted.", $m->delete($a, $xg, !$Ei)); } else { $N = array(); foreach ($p as $B => $o) { $X = process_input($o); if ($X !== false && $X !== null) { $N[idf_escape($B)] = $X; } } if ($Ji) { if (!$N) { redirect($xe); } queries_redirect($xe, "Item has been updated.", $m->update($a, $N, $xg, !$Ei)); if (is_ajax()) { page_headers(); page_messages($n); die; } } else { $G = $m->insert($a, $N); $oe = $G ? last_id() : 0; queries_redirect($xe, sprintf("Item%s has been inserted.", $oe ? " {$oe}" : ''), $G); } } } $I = null; if ($_POST["save"]) { $I = (array) $_POST["fields"]; } elseif ($Z) { $K = array(); foreach ($p as $B => $o) { if (isset($o["privileges"]["select"])) { $Ga = convert_field($o); if ($_POST["clone"] && $o["auto_increment"]) { $Ga = "''"; } if ($x == "sql" && preg_match("~enum|set~", $o["type"])) { $Ga = "1*" . idf_escape($B); } $K[] = ($Ga ? "{$Ga} AS " : '') . idf_escape($B); } } $I = array(); if (!support("table")) { $K = array("*"); } if ($K) { $G = $m->select($a, $K, array($Z), $K, array(), isset($_GET["select"]) ? 2 : 1); if (!$G) { $n = error(); } else { $I = $G->fetch_assoc(); if (!$I) { $I = false; } } if (isset($_GET["select"]) && (!$I || $G->fetch_assoc())) { $I = null; } } } if (!support("table") && !$p) { if (!$Z) { $G = $m->select($a, array("*"), $Z, array("*")); $I = $G ? $G->fetch_assoc() : false; if (!$I) { $I = array($m->primary => ''); } } if ($I) { foreach ($I as $y => $X) { if (!$Z) { $I[$y] = null; } $p[$y] = array("field" => $y, "null" => $y != $m->primary, "auto_increment" => $y == $m->primary); } } } edit_form($a, $p, $I, $Ji); } elseif (isset($_GET["create"])) { $a = $_GET["create"]; $Sf = array(); foreach (array("HASH", "LINEAR HASH", "KEY", "LINEAR KEY", "RANGE", "LIST") as $y) { $Sf[$y] = $y; } $Eg = referencable_primary($a); $ed = array(); foreach ($Eg as $Ph => $o) { $ed[str_replace("`", "``", $Ph) . "`" . str_replace("`", "``", $o["field"])] = $Ph; } $Ff = array(); $R = array(); if ($a != '') { $Ff = fields($a); $R = table_status($a); if (!$R) { $n = "No tables."; } } $I = $_POST; $I["fields"] = (array) $I["fields"]; if ($I["auto_increment_col"]) { $I["fields"][$I["auto_increment_col"]]["auto_increment"] = true; } if ($_POST) { set_adminer_settings(array("comments" => $_POST["comments"], "defaults" => $_POST["defaults"])); } if ($_POST && !process_fields($I["fields"]) && !$n) { if ($_POST["drop"]) { queries_redirect(substr(ME, 0, -1), "Table has been dropped.", drop_tables(array($a))); } else { $p = array(); $Da = array(); $Oi = false; $cd = array(); $Ef = reset($Ff); $Aa = " FIRST"; foreach ($I["fields"] as $y => $o) { $q = $ed[$o["type"]]; $Ai = $q !== null ? $Eg[$q] : $o; if ($o["field"] != '') { if (!$o["has_default"]) { $o["default"] = null; } if ($y == $I["auto_increment_col"]) { $o["auto_increment"] = true; } $rg = process_field($o, $Ai); $Da[] = array($o["orig"], $rg, $Aa); if ($rg != process_field($Ef, $Ef)) { $p[] = array($o["orig"], $rg, $Aa); if ($o["orig"] != '' || $Aa) { $Oi = true; } } if ($q !== null) { $cd[idf_escape($o["field"])] = ($a != '' && $x != "sqlite" ? "ADD" : " ") . format_foreign_key(array("table" => $ed[$o["type"]], "source" => array($o["field"]), "target" => array($Ai["field"]), "on_delete" => $o["on_delete"])); } $Aa = " AFTER " . idf_escape($o["field"]); } elseif ($o["orig"] != '') { $Oi = true; $p[] = array($o["orig"]); } if ($o["orig"] != '') { $Ef = next($Ff); if (!$Ef) { $Aa = ''; } } } $Uf = ''; if ($Sf[$I["partition_by"]]) { $Vf = array(); if ($I["partition_by"] == "RANGE" || $I["partition_by"] == "LIST") { foreach (array_filter($I["partition_names"]) as $y => $X) { $Y = $I["partition_values"][$y]; $Vf[] = "
  PARTITION " . idf_escape($X) . " VALUES " . ($I["partition_by"] == "RANGE" ? "LESS THAN" : "IN") . ($Y != '' ? " ({$Y})" : " MAXVALUE"); } } $Uf .= "\xaPARTITION BY {$I["partition_by"]}({$I["partition"]})" . ($Vf ? " (" . implode(",", $Vf) . "
)" : ($I["partitions"] ? " PARTITIONS " . +$I["partitions"] : '')); } elseif (support("partitioning") && preg_match("~partitioned~", $R["Create_options"])) { $Uf .= "\xaREMOVE PARTITIONING"; } $Le = "Table has been altered."; if ($a == '') { cookie("adminer_engine", $I["Engine"]); $Le = "Table has been created."; } $B = trim($I["name"]); queries_redirect(ME . (support("table") ? "table=" : "select=") . urlencode($B), $Le, alter_table($a, $B, $x == "sqlite" && ($Oi || $cd) ? $Da : $p, $cd, $I["Comment"] != $R["Comment"] ? $I["Comment"] : null, $I["Engine"] && $I["Engine"] != $R["Engine"] ? $I["Engine"] : '', $I["Collation"] && $I["Collation"] != $R["Collation"] ? $I["Collation"] : '', $I["Auto_increment"] != '' ? number($I["Auto_increment"]) : '', $Uf)); } } page_header($a != '' ? "Alter table" : "Create table", $n, array("table" => $a), h($a)); if (!$_POST) { $I = array("Engine" => $_COOKIE["adminer_engine"], "fields" => array(array("field" => '', "type" => isset($U["int"]) ? "int" : (isset($U["integer"]) ? "integer" : ''), "on_update" => '')), "partition_names" => array('')); if ($a != '') { $I = $R; $I["name"] = $a; $I["fields"] = array(); if (!$_GET["auto_increment"]) { $I["Auto_increment"] = ''; } foreach ($Ff as $o) { $o["has_default"] = isset($o["default"]); $I["fields"][] = $o; } if (support("partitioning")) { $jd = "FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = " . q(DB) . " AND TABLE_NAME = " . q($a); $G = $g->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION {$jd} ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1"); list($I["partition_by"], $I["partitions"], $I["partition"]) = $G->fetch_row(); $Vf = get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION {$jd} AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION"); $Vf[''] = ''; $I["partition_names"] = array_keys($Vf); $I["partition_values"] = array_values($Vf); } } } $pb = collations(); $vc = engines(); foreach ($vc as $uc) { if (!strcasecmp($uc, $I["Engine"])) { $I["Engine"] = $uc; break; } } echo "
<form action="" method="post" id="form">\xa<p>
"; if (support("columns") || $a == '') { echo "Table name: <input name="name" data-maxlength="64" value="", h($I["name"]), "" autocapitalize="off">\xa"; if ($a == '' && !$_POST) { echo script("focus(qs('#form')['name']);"); } echo $vc ? "<select name='Engine'>" . optionlist(array('' => "(" . "engine" . ")") + $vc, $I["Engine"]) . "</select>" . on_help("getTarget(event).value", 1) . script("qsl('select').onchange = helpClose;") : '', " ", $pb && !preg_match("~sqlite|mssql~", $x) ? html_select("Collation", array('' => "(" . "collation" . ")") + $pb, $I["Collation"]) : '', " <input type="submit" value="Save">
"; } echo "\xa"; if (support("columns")) { echo "<div class="scrollable">\xa<table cellspacing="0" id="edit-fields" class="nowrap">\xa"; edit_fields($I["fields"], $pb, "TABLE", $ed); echo "</table>
</div>\xa<p>
Auto Increment: <input type="number" name="Auto_increment" size="6" value="", h($I["Auto_increment"]), "">\xa", checkbox("defaults", 1, $_POST ? $_POST["defaults"] : adminer_setting("defaults"), "Default values", "columnShow(this.checked, 5)", "jsonly"), support("comment") ? checkbox("comments", 1, $_POST ? $_POST["comments"] : adminer_setting("comments"), "Comment", "editingCommentsClick(this, true);", "jsonly") . " <input name="Comment" value="" . h($I["Comment"]) . "" data-maxlength="" . (min_version(5.5) ? 2048 : 60) . "">" : '', "<p>\xa<input type="submit" value="Save">
"; } echo "
"; if ($a != '') { echo "<input type="submit" name="drop" value="Drop">", confirm(sprintf("Drop %s?", $a)); } if (support("partitioning")) { $Tf = preg_match("~RANGE|LIST~", $I["partition_by"]); print_fieldset("partition", "Partition by", $I["partition_by"]); echo "<p>
", "<select name='partition_by'>" . optionlist(array('' => '') + $Sf, $I["partition_by"]) . "</select>" . on_help("getTarget(event).value.replace(/./, 'PARTITION BY $&')", 1) . script("qsl('select').onchange = partitionByChange;"), "(<input name="partition" value="", h($I["partition"]), "">)\xaPartitions: <input type="number" name="partitions" class="size", $Tf || !$I["partition_by"] ? " hidden" : '', "" value="", h($I["partitions"]), "">
<table cellspacing="0" id="partition-table"", $Tf ? '' : " class='hidden'", ">
<thead><tr><th>Partition name<th>Values</thead>\xa"; foreach ($I["partition_names"] as $y => $X) { echo "<tr>", "<td><input name="partition_names[]" value="" . h($X) . "" autocapitalize="off">", $y == count($I["partition_names"]) - 1 ? script("qsl('input').oninput = partitionNameChange;") : '', "<td><input name="partition_values[]" value="" . h($I["partition_values"][$y]) . "">"; } echo "</table>\xa</div></fieldset>
"; } echo "<input type="hidden" name="token" value="", $oi, "">\xa</form>\xa", script("qs('#form')['defaults'].onclick();" . (support("comment") ? " editingCommentsClick(qs('#form')['comments']);" : '')); } elseif (isset($_GET["indexes"])) { $a = $_GET["indexes"]; $Jd = array("PRIMARY", "UNIQUE", "INDEX"); $R = table_status($a, true); if (preg_match("~MyISAM|M?aria" . (min_version(5.6, "10.0.5") ? "|InnoDB" : '') . "~i", $R["Engine"])) { $Jd[] = "FULLTEXT"; } if (preg_match("~MyISAM|M?aria" . (min_version(5.7, "10.2.2") ? "|InnoDB" : '') . "~i", $R["Engine"])) { $Jd[] = "SPATIAL"; } $w = indexes($a); $kg = array(); if ($x == "mongo") { $kg = $w["_id_"]; unset($Jd[0]); unset($w["_id_"]); } $I = $_POST; if ($_POST && !$n && !$_POST["add"] && !$_POST["drop_col"]) { $c = array(); foreach ($I["indexes"] as $v) { $B = $v["name"]; if (in_array($v["type"], $Jd)) { $f = array(); $ue = array(); $Yb = array(); $N = array(); ksort($v["columns"]); foreach ($v["columns"] as $y => $e) { if ($e != '') { $te = $v["lengths"][$y]; $Xb = $v["descs"][$y]; $N[] = idf_escape($e) . ($te ? "(" . +$te . ")" : '') . ($Xb ? " DESC" : ''); $f[] = $e; $ue[] = $te ? $te : null; $Yb[] = $Xb; } } if ($f) { $Dc = $w[$B]; if ($Dc) { ksort($Dc["columns"]); ksort($Dc["lengths"]); ksort($Dc["descs"]); if ($v["type"] == $Dc["type"] && array_values($Dc["columns"]) === $f && (!$Dc["lengths"] || array_values($Dc["lengths"]) === $ue) && array_values($Dc["descs"]) === $Yb) { unset($w[$B]); continue; } } $c[] = array($v["type"], $B, $N); } } } foreach ($w as $B => $Dc) { $c[] = array($Dc["type"], $B, "DROP"); } if (!$c) { redirect(ME . "table=" . urlencode($a)); } queries_redirect(ME . "table=" . urlencode($a), "Indexes have been altered.", alter_indexes($a, $c)); } page_header("Indexes", $n, array("table" => $a), h($a)); $p = array_keys(fields($a)); if ($_POST["add"]) { foreach ($I["indexes"] as $y => $v) { if ($v["columns"][count($v["columns"])] != '') { $I["indexes"][$y]["columns"][] = ''; } } $v = end($I["indexes"]); if ($v["type"] || array_filter($v["columns"], "strlen")) { $I["indexes"][] = array("columns" => array(1 => '')); } } if (!$I) { foreach ($w as $y => $v) { $w[$y]["name"] = $y; $w[$y]["columns"][] = ''; } $w[] = array("columns" => array(1 => '')); $I["indexes"] = $w; } echo "
<form action="" method="post">
<div class="scrollable">\xa<table cellspacing="0" class="nowrap">\xa<thead><tr>\xa<th id="label-type">Index Type
<th><input type="submit" class="wayoff">Column (length)\xa<th id="label-name">Name
<th><noscript>", "<input type='image' class='icon' name='add[0]' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=plus.gif&version=4.7.5") . "' alt='+' title='" . "Add next" . "'>", "</noscript>
</thead>\xa"; if ($kg) { echo "<tr><td>PRIMARY<td>"; foreach ($kg["columns"] as $y => $e) { echo select_input(" disabled", $p, $e), "<label><input disabled type='checkbox'>" . "descending" . "</label> "; } echo "<td><td>\xa"; } $ce = 1; foreach ($I["indexes"] as $v) { if (!$_POST["drop_col"] || $ce != key($_POST["drop_col"])) { echo "<tr><td>" . html_select("indexes[{$ce}][type]", array(-1 => '') + $Jd, $v["type"], $ce == count($I["indexes"]) ? "indexesAddRow.call(this);" : 1, "label-type"), "<td>"; ksort($v["columns"]); $s = 1; foreach ($v["columns"] as $y => $e) { echo "<span>" . select_input(" name='indexes[{$ce}][columns][{$s}]' title='" . "Column" . "'", $p ? array_combine($p, $p) : $p, $e, "partial(" . ($s == count($v["columns"]) ? "indexesAddColumn" : "indexesChangeColumn") . ", '" . js_escape($x == "sql" ? '' : $_GET["indexes"] . "_") . "')"), $x == "sql" || $x == "mssql" ? "<input type='number' name='indexes[{$ce}][lengths][{$s}]' class='size' value='" . h($v["lengths"][$y]) . "' title='" . "Length" . "'>" : '', support("descidx") ? checkbox("indexes[{$ce}][descs][{$s}]", 1, $v["descs"][$y], "descending") : '', " </span>"; $s++; } echo "<td><input name='indexes[{$ce}][name]' value='" . h($v["name"]) . "' autocapitalize='off' aria-labelledby='label-name'>
", "<td><input type='image' class='icon' name='drop_col[{$ce}]' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=cross.gif&version=4.7.5") . "' alt='x' title='" . "Remove" . "'>" . script("qsl('input').onclick = partial(editingRemoveRow, 'indexes$1[type]');"); } $ce++; } echo "</table>\xa</div>\xa<p>
<input type="submit" value="Save">\xa<input type="hidden" name="token" value="", $oi, "">\xa</form>
"; } elseif (isset($_GET["database"])) { $I = $_POST; if ($_POST && !$n && !isset($_POST["add_x"])) { $B = trim($I["name"]); if ($_POST["drop"]) { $_GET["db"] = ''; queries_redirect(remove_from_uri("db|database"), "Database has been dropped.", drop_databases(array(DB))); } elseif (DB !== $B) { if (DB != '') { $_GET["db"] = $B; queries_redirect(preg_replace("~\bdb=[^&]*&~", '', ME) . "db=" . urlencode($B), "Database has been renamed.", rename_database($B, $I["collation"])); } else { $k = explode("
", str_replace("
", '', $B)); $Jh = true; $ne = ''; foreach ($k as $l) { if (count($k) == 1 || $l != '') { if (!create_database($l, $I["collation"])) { $Jh = false; } $ne = $l; } } restart_session(); set_session("dbs", null); queries_redirect(ME . "db=" . urlencode($ne), "Database has been created.", $Jh); } } else { if (!$I["collation"]) { redirect(substr(ME, 0, -1)); } query_redirect("ALTER DATABASE " . idf_escape($B) . (preg_match("~^[a-z0-9_]+$~i", $I["collation"]) ? " COLLATE {$I["collation"]}" : ''), substr(ME, 0, -1), "Database has been altered."); } } page_header(DB != '' ? "Alter database" : "Create database", $n, array(), h(DB)); $pb = collations(); $B = DB; if ($_POST) { $B = $I["name"]; } elseif (DB != '') { $I["collation"] = db_collation(DB, $pb); } elseif ($x == "sql") { foreach (get_vals("SHOW GRANTS") as $ld) { if (preg_match("~ ON (`(([^\\`]|``|\\.)*)%`\.\*)?~", $ld, $A) && $A[1]) { $B = stripcslashes(idf_unescape("`{$A["2"]}`")); break; } } } echo "
<form action="" method="post">
<p>\xa", ($_POST["add_x"] || strpos($B, "\xa") ? "<textarea id="name" name="name" rows="10" cols="40">" . h($B) . "</textarea><br>" : "<input name="name" id="name" value="" . h($B) . "" data-maxlength="64" autocapitalize="off">") . "
" . ($pb ? html_select("collation", array('' => "(" . "collation" . ")") + $pb, $I["collation"]) . doc_link(array("sql" => "charset-charsets.html", "mariadb" => "supported-character-sets-and-collations/", "mssql" => "ms187963.aspx")) : ''), script("focus(qs('#name'));"), "<input type="submit" value="Save">
"; if (DB != '') { echo "<input type='submit' name='drop' value='" . "Drop" . "'>" . confirm(sprintf("Drop %s?", DB)) . "
"; } elseif (!$_POST["add_x"] && $_GET["db"] == '') { echo "<input type='image' class='icon' name='add' src='" . h(preg_replace("~\?.*~", '', ME) . "?file=plus.gif&version=4.7.5") . "' alt='+' title='" . "Add next" . "'>
"; } echo "<input type="hidden" name="token" value="", $oi, "">
</form>
"; } elseif (isset($_GET["scheme"])) { $I = $_POST; if ($_POST && !$n) { $_ = preg_replace("~ns=[^&]*&~", '', ME) . "ns="; if ($_POST["drop"]) { query_redirect("DROP SCHEMA " . idf_escape($_GET["ns"]), $_, "Schema has been dropped."); } else { $B = trim($I["name"]); $_ .= urlencode($B); if ($_GET["ns"] == '') { query_redirect("CREATE SCHEMA " . idf_escape($B), $_, "Schema has been created."); } elseif ($_GET["ns"] != $B) { query_redirect("ALTER SCHEMA " . idf_escape($_GET["ns"]) . " RENAME TO " . idf_escape($B), $_, "Schema has been altered."); } else { redirect($_); } } } page_header($_GET["ns"] != '' ? "Alter schema" : "Create schema", $n); if (!$I) { $I["name"] = $_GET["ns"]; } echo "
<form action="" method="post">\xa<p><input name="name" id="name" value="", h($I["name"]), "" autocapitalize="off">
", script("focus(qs('#name'));"), "<input type="submit" value="Save">\xa"; if ($_GET["ns"] != '') { echo "<input type='submit' name='drop' value='" . "Drop" . "'>" . confirm(sprintf("Drop %s?", $_GET["ns"])) . "\xa"; } echo "<input type="hidden" name="token" value="", $oi, "">\xa</form>\xa"; } elseif (isset($_GET["call"])) { $da = $_GET["name"] ? $_GET["name"] : $_GET["call"]; page_header("Call" . ": " . h($da), $n); $Ug = routine($_GET["call"], isset($_GET["callf"]) ? "FUNCTION" : "PROCEDURE"); $Hd = array(); $Jf = array(); foreach ($Ug["fields"] as $s => $o) { if (substr($o["inout"], -3) == "OUT") { $Jf[$s] = "@" . idf_escape($o["field"]) . " AS " . idf_escape($o["field"]); } if (!$o["inout"] || substr($o["inout"], 0, 2) == "IN") { $Hd[] = $s; } } if (!$n && $_POST) { $ab = array(); foreach ($Ug["fields"] as $y => $o) { if (in_array($y, $Hd)) { $X = process_input($o); if ($X === false) { $X = "''"; } if (isset($Jf[$y])) { $g->query("SET @" . idf_escape($o["field"]) . " = {$X}"); } } $ab[] = isset($Jf[$y]) ? "@" . idf_escape($o["field"]) : $X; } $F = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($da) . "(" . implode(", ", $ab) . ")"; $Dh = microtime(true); $G = $g->multi_query($F); $za = $g->affected_rows; echo $b->selectQuery($F, $Dh, !$G); if (!$G) { echo "<p class='error'>" . error() . "\xa"; } else { $h = connect(); if (is_object($h)) { $h->select_db(DB); } do { $G = $g->store_result(); if (is_object($G)) { select($G, $h); } else { echo "<p class='message'>" . lang(array("Routine has been called, %d row affected.", "Routine has been called, %d rows affected."), $za) . "\xa"; } } while ($g->next_result()); if ($Jf) { select($g->query("SELECT " . implode(", ", $Jf))); } } } echo "
<form action="" method="post">
"; if ($Hd) { echo "<table cellspacing='0' class='layout'>\xa"; foreach ($Hd as $y) { $o = $Ug["fields"][$y]; $B = $o["field"]; echo "<tr><th>" . $b->fieldName($o); $Y = $_POST["fields"][$B]; if ($Y != '') { if ($o["type"] == "enum") { $Y = +$Y; } if ($o["type"] == "set") { $Y = array_sum($Y); } } input($o, $Y, (string) $_POST["function"][$B]); echo "\xa"; } echo "</table>\xa"; } echo "<p>
<input type="submit" value="Call">
<input type="hidden" name="token" value="", $oi, "">\xa</form>\xa"; } elseif (isset($_GET["foreign"])) { $a = $_GET["foreign"]; $B = $_GET["name"]; $I = $_POST; if ($_POST && !$n && !$_POST["add"] && !$_POST["change"] && !$_POST["change-js"]) { $Le = $_POST["drop"] ? "Foreign key has been dropped." : ($B != '' ? "Foreign key has been altered." : "Foreign key has been created."); $xe = ME . "table=" . urlencode($a); if (!$_POST["drop"]) { $I["source"] = array_filter($I["source"], "strlen"); ksort($I["source"]); $Xh = array(); foreach ($I["source"] as $y => $X) { $Xh[$y] = $I["target"][$y]; } $I["target"] = $Xh; } if ($x == "sqlite") { queries_redirect($xe, $Le, recreate_table($a, $a, array(), array(), array(" {$B}" => $_POST["drop"] ? '' : " " . format_foreign_key($I)))); } else { $c = "ALTER TABLE " . table($a); $fc = "
DROP " . ($x == "sql" ? "FOREIGN KEY " : "CONSTRAINT ") . idf_escape($B); if ($_POST["drop"]) { query_redirect($c . $fc, $xe, $Le); } else { query_redirect($c . ($B != '' ? "{$fc}," : '') . "
ADD" . format_foreign_key($I), $xe, $Le); $n = "Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist." . "<br>{$n}"; } } } page_header("Foreign key", $n, array("table" => $a), h($a)); if ($_POST) { ksort($I["source"]); if ($_POST["add"]) { $I["source"][] = ''; } elseif ($_POST["change"] || $_POST["change-js"]) { $I["target"] = array(); } } elseif ($B != '') { $ed = foreign_keys($a); $I = $ed[$B]; $I["source"][] = ''; } else { $I["table"] = $a; $I["source"] = array(''); } echo "\xa<form action="" method="post">
"; $wh = array_keys(fields($a)); if ($I["db"] != '') { $g->select_db($I["db"]); } if ($I["ns"] != '') { set_schema($I["ns"]); } $Dg = array_keys(array_filter(table_status('', true), "fk_support")); $Xh = $a === $I["table"] ? $wh : array_keys(fields(in_array($I["table"], $Dg) ? $I["table"] : reset($Dg))); $rf = "this.form['change-js'].value = '1'; this.form.submit();"; echo "<p>" . "Target table" . ": " . html_select("table", $Dg, $I["table"], $rf) . "\xa"; if ($x == "pgsql") { echo "Schema" . ": " . html_select("ns", $b->schemas(), $I["ns"] != '' ? $I["ns"] : $_GET["ns"], $rf); } elseif ($x != "sqlite") { $Rb = array(); foreach ($b->databases() as $l) { if (!information_schema($l)) { $Rb[] = $l; } } echo "DB" . ": " . html_select("db", $Rb, $I["db"] != '' ? $I["db"] : $_GET["db"], $rf); } echo "<input type="hidden" name="change-js" value="">
<noscript><p><input type="submit" name="change" value="Change"></noscript>
<table cellspacing="0">
<thead><tr><th id="label-source">Source<th id="label-target">Target</thead>\xa"; $ce = 0; foreach ($I["source"] as $y => $X) { echo "<tr>", "<td>" . html_select("source[" . +$y . "]", array(-1 => '') + $wh, $X, $ce == count($I["source"]) - 1 ? "foreignAddRow.call(this);" : 1, "label-source"), "<td>" . html_select("target[" . +$y . "]", $Xh, $I["target"][$y], 1, "label-target"); $ce++; } echo "</table>
<p>
ON DELETE: ", html_select("on_delete", array(-1 => '') + explode("|", $qf), $I["on_delete"]), " ON UPDATE: ", html_select("on_update", array(-1 => '') + explode("|", $qf), $I["on_update"]), doc_link(array("sql" => "innodb-foreign-key-constraints.html", "mariadb" => "foreign-keys/", "pgsql" => "sql-createtable.html#SQL-CREATETABLE-REFERENCES", "mssql" => "ms174979.aspx", "oracle" => "https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm#sthref2903")), "<p>
<input type="submit" value="Save">
<noscript><p><input type="submit" name="add" value="Add column"></noscript>\xa"; if ($B != '') { echo "<input type="submit" name="drop" value="Drop">", confirm(sprintf("Drop %s?", $B)); } echo "<input type="hidden" name="token" value="", $oi, "">\xa</form>
"; } elseif (isset($_GET["view"])) { $a = $_GET["view"]; $I = $_POST; $Gf = "VIEW"; if ($x == "pgsql" && $a != '') { $O = table_status($a); $Gf = strtoupper($O["Engine"]); } if ($_POST && !$n) { $B = trim($I["name"]); $Ga = " AS
{$I["select"]}"; $xe = ME . "table=" . urlencode($B); $Le = "View has been altered."; $T = $_POST["materialized"] ? "MATERIALIZED VIEW" : "VIEW"; if (!$_POST["drop"] && $a == $B && $x != "sqlite" && $T == "VIEW" && $Gf == "VIEW") { query_redirect(($x == "mssql" ? "ALTER" : "CREATE OR REPLACE") . " VIEW " . table($B) . $Ga, $xe, $Le); } else { $Zh = $B . "_adminer_" . uniqid(); drop_create("DROP {$Gf} " . table($a), "CREATE {$T} " . table($B) . $Ga, "DROP {$T} " . table($B), "CREATE {$T} " . table($Zh) . $Ga, "DROP {$T} " . table($Zh), $_POST["drop"] ? substr(ME, 0, -1) : $xe, "View has been dropped.", $Le, "View has been created.", $a, $B); } } if (!$_POST && $a != '') { $I = view($a); $I["name"] = $a; $I["materialized"] = $Gf != "VIEW"; if (!$n) { $n = error(); } } page_header($a != '' ? "Alter view" : "Create view", $n, array("table" => $a), h($a)); echo "\xa<form action="" method="post">
<p>Name: <input name="name" value="", h($I["name"]), "" data-maxlength="64" autocapitalize="off">
", support("materializedview") ? " " . checkbox("materialized", 1, $I["materialized"], "Materialized view") : '', "<p>"; textarea("select", $I["select"]); echo "<p>\xa<input type="submit" value="Save">\xa"; if ($a != '') { echo "<input type="submit" name="drop" value="Drop">", confirm(sprintf("Drop %s?", $a)); } echo "<input type="hidden" name="token" value="", $oi, "">\xa</form>
"; } elseif (isset($_GET["event"])) { $aa = $_GET["event"]; $Ud = array("YEAR", "QUARTER", "MONTH", "DAY", "HOUR", "MINUTE", "WEEK", "SECOND", "YEAR_MONTH", "DAY_HOUR", "DAY_MINUTE", "DAY_SECOND", "HOUR_MINUTE", "HOUR_SECOND", "MINUTE_SECOND"); $Fh = array("ENABLED" => "ENABLE", "DISABLED" => "DISABLE", "SLAVESIDE_DISABLED" => "DISABLE ON SLAVE"); $I = $_POST; if ($_POST && !$n) { if ($_POST["drop"]) { query_redirect("DROP EVENT " . idf_escape($aa), substr(ME, 0, -1), "Event has been dropped."); } elseif (in_array($I["INTERVAL_FIELD"], $Ud) && isset($Fh[$I["STATUS"]])) { $Zg = "
ON SCHEDULE " . ($I["INTERVAL_VALUE"] ? "EVERY " . q($I["INTERVAL_VALUE"]) . " {$I["INTERVAL_FIELD"]}" . ($I["STARTS"] ? " STARTS " . q($I["STARTS"]) : '') . ($I["ENDS"] ? " ENDS " . q($I["ENDS"]) : '') : "AT " . q($I["STARTS"])) . " ON COMPLETION" . ($I["ON_COMPLETION"] ? '' : " NOT") . " PRESERVE"; queries_redirect(substr(ME, 0, -1), $aa != '' ? "Event has been altered." : "Event has been created.", queries(($aa != '' ? "ALTER EVENT " . idf_escape($aa) . $Zg . ($aa != $I["EVENT_NAME"] ? "
RENAME TO " . idf_escape($I["EVENT_NAME"]) : '') : "CREATE EVENT " . idf_escape($I["EVENT_NAME"]) . $Zg) . "
" . $Fh[$I["STATUS"]] . " COMMENT " . q($I["EVENT_COMMENT"]) . rtrim(" DO
{$I["EVENT_DEFINITION"]}", ";") . ";")); } } page_header($aa != '' ? "Alter event" . ": " . h($aa) : "Create event", $n); if (!$I && $aa != '') { $J = get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = " . q(DB) . " AND EVENT_NAME = " . q($aa)); $I = reset($J); } echo "
<form action="" method="post">\xa<table cellspacing="0" class="layout">
<tr><th>Name<td><input name="EVENT_NAME" value="", h($I["EVENT_NAME"]), "" data-maxlength="64" autocapitalize="off">
<tr><th title="datetime">Start<td><input name="STARTS" value="", h("{$I["EXECUTE_AT"]}{$I["STARTS"]}"), "">
<tr><th title="datetime">End<td><input name="ENDS" value="", h($I["ENDS"]), "">
<tr><th>Every<td><input type="number" name="INTERVAL_VALUE" value="", h($I["INTERVAL_VALUE"]), "" class="size"> ", html_select("INTERVAL_FIELD", $Ud, $I["INTERVAL_FIELD"]), "<tr><th>Status<td>", html_select("STATUS", $Fh, $I["STATUS"]), "<tr><th>Comment<td><input name="EVENT_COMMENT" value="", h($I["EVENT_COMMENT"]), "" data-maxlength="64">\xa<tr><th><td>", checkbox("ON_COMPLETION", "PRESERVE", $I["ON_COMPLETION"] == "PRESERVE", "On completion preserve"), "</table>
<p>"; textarea("EVENT_DEFINITION", $I["EVENT_DEFINITION"]); echo "<p>
<input type="submit" value="Save">\xa"; if ($aa != '') { echo "<input type="submit" name="drop" value="Drop">", confirm(sprintf("Drop %s?", $aa)); } echo "<input type="hidden" name="token" value="", $oi, "">
</form>\xa"; } elseif (isset($_GET["procedure"])) { $da = $_GET["name"] ? $_GET["name"] : $_GET["procedure"]; $Ug = isset($_GET["function"]) ? "FUNCTION" : "PROCEDURE"; $I = $_POST; $I["fields"] = (array) $I["fields"]; if ($_POST && !process_fields($I["fields"]) && !$n) { $Df = routine($_GET["procedure"], $Ug); $Zh = "{$I["name"]}_adminer_" . uniqid(); drop_create("DROP {$Ug} " . routine_id($da, $Df), create_routine($Ug, $I), "DROP {$Ug} " . routine_id($I["name"], $I), create_routine($Ug, array("name" => $Zh) + $I), "DROP {$Ug} " . routine_id($Zh, $I), substr(ME, 0, -1), "Routine has been dropped.", "Routine has been altered.", "Routine has been created.", $da, $I["name"]); } page_header($da != '' ? (isset($_GET["function"]) ? "Alter function" : "Alter procedure") . ": " . h($da) : (isset($_GET["function"]) ? "Create function" : "Create procedure"), $n); if (!$_POST && $da != '') { $I = routine($_GET["procedure"], $Ug); $I["name"] = $da; } $pb = get_vals("SHOW CHARACTER SET"); sort($pb); $Vg = routine_languages(); echo "\xa<form action="" method="post" id="form">
<p>Name: <input name="name" value="", h($I["name"]), "" data-maxlength="64" autocapitalize="off">
", $Vg ? "Language" . ": " . html_select("language", $Vg, $I["language"]) . "
" : '', "<input type="submit" value="Save">\xa<div class="scrollable">
<table cellspacing="0" class="nowrap">\xa"; edit_fields($I["fields"], $pb, $Ug); if (isset($_GET["function"])) { echo "<tr><td>" . "Return type"; edit_type("returns", $I["returns"], $pb, array(), $x == "pgsql" ? array("void", "trigger") : array()); } echo "</table>\xa</div>\xa<p>"; textarea("definition", $I["definition"]); echo "<p>\xa<input type="submit" value="Save">\xa"; if ($da != '') { echo "<input type="submit" name="drop" value="Drop">", confirm(sprintf("Drop %s?", $da)); } echo "<input type="hidden" name="token" value="", $oi, "">
</form>\xa"; } elseif (isset($_GET["sequence"])) { $fa = $_GET["sequence"]; $I = $_POST; if ($_POST && !$n) { $_ = substr(ME, 0, -1); $B = trim($I["name"]); if ($_POST["drop"]) { query_redirect("DROP SEQUENCE " . idf_escape($fa), $_, "Sequence has been dropped."); } elseif ($fa == '') { query_redirect("CREATE SEQUENCE " . idf_escape($B), $_, "Sequence has been created."); } elseif ($fa != $B) { query_redirect("ALTER SEQUENCE " . idf_escape($fa) . " RENAME TO " . idf_escape($B), $_, "Sequence has been altered."); } else { redirect($_); } } page_header($fa != '' ? "Alter sequence" . ": " . h($fa) : "Create sequence", $n); if (!$I) { $I["name"] = $fa; } echo "
<form action="" method="post">
<p><input name="name" value="", h($I["name"]), "" autocapitalize="off">\xa<input type="submit" value="Save">\xa"; if ($fa != '') { echo "<input type='submit' name='drop' value='" . "Drop" . "'>" . confirm(sprintf("Drop %s?", $fa)) . "
"; } echo "<input type="hidden" name="token" value="", $oi, "">
</form>\xa"; } elseif (isset($_GET["type"])) { $ga = $_GET["type"]; $I = $_POST; if ($_POST && !$n) { $_ = substr(ME, 0, -1); if ($_POST["drop"]) { query_redirect("DROP TYPE " . idf_escape($ga), $_, "Type has been dropped."); } else { query_redirect("CREATE TYPE " . idf_escape(trim($I["name"])) . " {$I["as"]}", $_, "Type has been created."); } } page_header($ga != '' ? "Alter type" . ": " . h($ga) : "Create type", $n); if (!$I) { $I["as"] = "AS "; } echo "\xa<form action="" method="post">\xa<p>\xa"; if ($ga != '') { echo "<input type='submit' name='drop' value='" . "Drop" . "'>" . confirm(sprintf("Drop %s?", $ga)) . "\xa"; } else { echo "<input name='name' value='" . h($I["name"]) . "' autocapitalize='off'>\xa"; textarea("as", $I["as"]); echo "<p><input type='submit' value='" . "Save" . "'>\xa"; } echo "<input type="hidden" name="token" value="", $oi, "">\xa</form>
"; } elseif (isset($_GET["trigger"])) { $a = $_GET["trigger"]; $B = $_GET["name"]; $zi = trigger_options(); $I = (array) trigger($B) + array("Trigger" => $a . "_bi"); if ($_POST) { if (!$n && in_array($_POST["Timing"], $zi["Timing"]) && in_array($_POST["Event"], $zi["Event"]) && in_array($_POST["Type"], $zi["Type"])) { $pf = " ON " . table($a); $fc = "DROP TRIGGER " . idf_escape($B) . ($x == "pgsql" ? $pf : ''); $xe = ME . "table=" . urlencode($a); if ($_POST["drop"]) { query_redirect($fc, $xe, "Trigger has been dropped."); } else { if ($B != '') { queries($fc); } queries_redirect($xe, $B != '' ? "Trigger has been altered." : "Trigger has been created.", queries(create_trigger($pf, $_POST))); if ($B != '') { queries(create_trigger($pf, $I + array("Type" => reset($zi["Type"])))); } } } $I = $_POST; } page_header($B != '' ? "Alter trigger" . ": " . h($B) : "Create trigger", $n, array("table" => $a)); echo "
<form action="" method="post" id="form">\xa<table cellspacing="0" class="layout">\xa<tr><th>Time<td>", html_select("Timing", $zi["Timing"], $I["Timing"], "triggerChange(/^" . preg_quote($a, "/") . "_[ba][iud]$/, '" . js_escape($a) . "', this.form);"), "<tr><th>Event<td>", html_select("Event", $zi["Event"], $I["Event"], "this.form['Timing'].onchange();"), in_array("UPDATE OF", $zi["Event"]) ? " <input name='Of' value='" . h($I["Of"]) . "' class='hidden'>" : '', "<tr><th>Type<td>", html_select("Type", $zi["Type"], $I["Type"]), "</table>
<p>Name: <input name="Trigger" value="", h($I["Trigger"]), "" data-maxlength="64" autocapitalize="off">\xa", script("qs('#form')['Timing'].onchange();"), "<p>"; textarea("Statement", $I["Statement"]); echo "<p>
<input type="submit" value="Save">\xa"; if ($B != '') { echo "<input type="submit" name="drop" value="Drop">", confirm(sprintf("Drop %s?", $B)); } echo "<input type="hidden" name="token" value="", $oi, "">\xa</form>
"; } elseif (isset($_GET["user"])) { $ha = $_GET["user"]; $pg = array('' => array("All privileges" => '')); foreach (get_rows("SHOW PRIVILEGES") as $I) { foreach (explode(",", $I["Privilege"] == "Grant option" ? '' : $I["Context"]) as $Bb) { $pg[$Bb][$I["Privilege"]] = $I["Comment"]; } } $pg["Server Admin"] += $pg["File access on server"]; $pg["Databases"]["Create routine"] = $pg["Procedures"]["Create routine"]; unset($pg["Procedures"]["Create routine"]); $pg["Columns"] = array(); foreach (array("Select", "Insert", "Update", "References") as $X) { $pg["Columns"][$X] = $pg["Tables"][$X]; } unset($pg["Server Admin"]["Usage"]); foreach ($pg["Tables"] as $y => $X) { unset($pg["Databases"][$y]); } $Ye = array(); if ($_POST) { foreach ($_POST["objects"] as $y => $X) { $Ye[$X] = (array) $Ye[$X] + (array) $_POST["grants"][$y]; } } $md = array(); $nf = ''; if (isset($_GET["host"]) && ($G = $g->query("SHOW GRANTS FOR " . q($ha) . "@" . q($_GET["host"])))) { while ($I = $G->fetch_row()) { if (preg_match("~GRANT (.*) ON (.*) TO ~", $I[0], $A) && preg_match_all("~ *([^(,]*[^ ,(])( *\([^)]+\))?~", $A[1], $De, PREG_SET_ORDER)) { foreach ($De as $X) { if ($X[1] != "USAGE") { $md["{$A["2"]}{$X["2"]}"][$X[1]] = true; } if (preg_match("~ WITH GRANT OPTION~", $I[0])) { $md["{$A["2"]}{$X["2"]}"]["GRANT OPTION"] = true; } } } if (preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~", $I[0], $A)) { $nf = $A[1]; } } } if ($_POST && !$n) { $of = isset($_GET["host"]) ? q($ha) . "@" . q($_GET["host"]) : "''"; if ($_POST["drop"]) { query_redirect("DROP USER {$of}", ME . "privileges=", "User has been dropped."); } else { $af = q($_POST["user"]) . "@" . q($_POST["host"]); $Xf = $_POST["pass"]; if ($Xf != '' && !$_POST["hashed"] && !min_version(8)) { $Xf = $g->result("SELECT PASSWORD(" . q($Xf) . ")"); $n = !$Xf; } $Gb = false; if (!$n) { if ($of != $af) { $Gb = queries((min_version(5) ? "CREATE USER" : "GRANT USAGE ON *.* TO") . " {$af} IDENTIFIED BY " . (min_version(8) ? '' : "PASSWORD ") . q($Xf)); $n = !$Gb; } elseif ($Xf != $nf) { queries("SET PASSWORD FOR {$af} = " . q($Xf)); } } if (!$n) { $Rg = array(); foreach ($Ye as $if => $ld) { if (isset($_GET["grant"])) { $ld = array_filter($ld); } $ld = array_keys($ld); if (isset($_GET["grant"])) { $Rg = array_diff(array_keys(array_filter($Ye[$if], "strlen")), $ld); } elseif ($of == $af) { $lf = array_keys((array) $md[$if]); $Rg = array_diff($lf, $ld); $ld = array_diff($ld, $lf); unset($md[$if]); } if (preg_match("~^(.+)\s*(\(.*\))?$~U", $if, $A) && (!grant("REVOKE", $Rg, $A[2], " ON {$A["1"]} FROM {$af}") || !grant("GRANT", $ld, $A[2], " ON {$A["1"]} TO {$af}"))) { $n = true; break; } } } if (!$n && isset($_GET["host"])) { if ($of != $af) { queries("DROP USER {$of}"); } elseif (!isset($_GET["grant"])) { foreach ($md as $if => $Rg) { if (preg_match("~^(.+)(\(.*\))?$~U", $if, $A)) { grant("REVOKE", array_keys($Rg), $A[2], " ON {$A["1"]} FROM {$af}"); } } } } queries_redirect(ME . "privileges=", isset($_GET["host"]) ? "User has been altered." : "User has been created.", !$n); if ($Gb) { $g->query("DROP USER {$af}"); } } } page_header(isset($_GET["host"]) ? "Username" . ": " . h("{$ha}@{$_GET["host"]}") : "Create user", $n, array("privileges" => array('', "Privileges"))); if ($_POST) { $I = $_POST; $md = $Ye; } else { $I = $_GET + array("host" => $g->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)")); $I["pass"] = $nf; if ($nf != '') { $I["hashed"] = true; } $md[(DB == '' || $md ? '' : idf_escape(addcslashes(DB, "%_\"))) . ".*"] = array(); } echo "<form action="" method="post">
<table cellspacing="0" class="layout">
<tr><th>Server<td><input name="host" data-maxlength="60" value="", h($I["host"]), "" autocapitalize="off">
<tr><th>Username<td><input name="user" data-maxlength="80" value="", h($I["user"]), "" autocapitalize="off">\xa<tr><th>Password<td><input name="pass" id="pass" value="", h($I["pass"]), "" autocomplete="new-password">
"; if (!$I["hashed"]) { echo script("typePassword(qs('#pass'));"); } echo min_version(8) ? '' : checkbox("hashed", 1, $I["hashed"], "Hashed", "typePassword(this.form['pass'], this.checked);"), "</table>
\xa"; echo "<table cellspacing='0'>
", "<thead><tr><th colspan='2'>" . "Privileges" . doc_link(array("sql" => "grant.html#priv_level")); $s = 0; foreach ($md as $if => $ld) { echo "<th>" . ($if != "*.*" ? "<input name='objects[{$s}]' value='" . h($if) . "' size='10' autocapitalize='off'>" : "<input type='hidden' name='objects[{$s}]' value='*.*' size='10'>*.*"); $s++; } echo "</thead>
"; foreach (array('' => '', "Server Admin" => "Server", "Databases" => "Database", "Tables" => "Table", "Columns" => "Column", "Procedures" => "Routine") as $Bb => $Xb) { foreach ((array) $pg[$Bb] as $og => $ub) { echo "<tr" . odd() . "><td" . ($Xb ? ">{$Xb}<td" : " colspan='2'") . " lang="en" title="" . h($ub) . "">" . h($og); $s = 0; foreach ($md as $if => $ld) { $B = "'grants[{$s}][" . h(strtoupper($og)) . "]'"; $Y = $ld[strtoupper($og)]; if ($Bb == "Server Admin" && $if != (isset($md["*.*"]) ? "*.*" : ".*")) { echo "<td>"; } elseif (isset($_GET["grant"])) { echo "<td><select name={$B}><option><option value='1'" . ($Y ? " selected" : '') . ">" . "Grant" . "<option value='0'" . ($Y == "0" ? " selected" : '') . ">" . "Revoke" . "</select>"; } else { echo "<td align='center'><label class='block'>", "<input type='checkbox' name={$B} value='1'" . ($Y ? " checked" : '') . ($og == "All privileges" ? " id='grants-{$s}-all'>" : ">" . ($og == "Grant option" ? '' : script("qsl('input').onclick = function () { if (this.checked) formUncheck('grants-{$s}-all'); };"))), "</label>"; } $s++; } } } echo "</table>
", "<p>\xa<input type="submit" value="Save">\xa"; if (isset($_GET["host"])) { echo "<input type="submit" name="drop" value="Drop">", confirm(sprintf("Drop %s?", "{$ha}@{$_GET["host"]}")); } echo "<input type="hidden" name="token" value="", $oi, "">
</form>\xa"; } elseif (isset($_GET["processlist"])) { if (support("kill") && $_POST && !$n) { $je = 0; foreach ((array) $_POST["kill"] as $X) { if (kill_process($X)) { $je++; } } queries_redirect(ME . "processlist=", lang(array("%d process has been killed.", "%d processes have been killed."), $je), $je || !$_POST["kill"]); } page_header("Process list", $n); echo "
<form action="" method="post">\xa<div class="scrollable">
<table cellspacing="0" class="nowrap checkable">
", script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"); $s = -1; foreach (process_list() as $s => $I) { if (!$s) { echo "<thead><tr lang='en'>" . (support("kill") ? "<th>" : ''); foreach ($I as $y => $X) { echo "<th>{$y}" . doc_link(array("sql" => "show-processlist.html#processlist_" . strtolower($y), "pgsql" => "monitoring-stats.html#PG-STAT-ACTIVITY-VIEW", "oracle" => "REFRN30223")); } echo "</thead>\xa"; } echo "<tr" . odd() . ">" . (support("kill") ? "<td>" . checkbox("kill[]", $I[$x == "sql" ? "Id" : "pid"], 0) : ''); foreach ($I as $y => $X) { echo "<td>" . ($x == "sql" && $y == "Info" && preg_match("~Query|Killed~", $I["Command"]) && $X != '' || $x == "pgsql" && $y == "current_query" && $X != "<IDLE>" || $x == "oracle" && $y == "sql_text" && $X != '' ? "<code class='jush-{$x}'>" . shorten_utf8($X, 100, "</code>") . " <a href="" . h(ME . ($I["db"] != '' ? "db=" . urlencode($I["db"]) . "&" : '') . "sql=" . urlencode($X)) . "">" . "Clone" . "</a>" : h($X)); } echo "
"; } echo "</table>\xa</div>\xa<p>
"; if (support("kill")) { echo $s + 1 . "/" . sprintf("%d in total", max_connections()), "<p><input type='submit' value='" . "Kill" . "'>
"; } echo "<input type="hidden" name="token" value="", $oi, "">\xa</form>
", script("tableCheck();"); } elseif (isset($_GET["select"])) { $a = $_GET["select"]; $R = table_status1($a); $w = indexes($a); $p = fields($a); $ed = column_foreign_keys($a); $kf = $R["Oid"]; parse_str($_COOKIE["adminer_import"], $ya); $Sg = array(); $f = array(); $di = null; foreach ($p as $y => $o) { $B = $b->fieldName($o); if (isset($o["privileges"]["select"]) && $B != '') { $f[$y] = html_entity_decode(strip_tags($B), ENT_QUOTES); if (is_shortable($o)) { $di = $b->selectLengthProcess(); } } $Sg += $o["privileges"]; } list($K, $nd) = $b->selectColumnsProcess($f, $w); $Yd = count($nd) < count($K); $Z = $b->selectSearchProcess($p, $w); $_f = $b->selectOrderProcess($p, $w); $z = $b->selectLimitProcess(); if ($_GET["val"] && is_ajax()) { header("Content-Type: text/plain; charset=utf-8"); foreach ($_GET["val"] as $Fi => $I) { $Ga = convert_field($p[key($I)]); $K = array($Ga ? $Ga : idf_escape(key($I))); $Z[] = where_check($Fi, $p); $H = $m->select($a, $K, $Z, $K); if ($H) { echo reset($H->fetch_row()); } } die; } $kg = $Hi = null; foreach ($w as $v) { if ($v["type"] == "PRIMARY") { $kg = array_flip($v["columns"]); $Hi = $K ? $kg : array(); foreach ($Hi as $y => $X) { if (in_array(idf_escape($y), $K)) { unset($Hi[$y]); } } break; } } if ($kf && !$kg) { $kg = $Hi = array($kf => 0); $w[] = array("type" => "PRIMARY", "columns" => array($kf)); } if ($_POST && !$n) { $jj = $Z; if (!$_POST["all"] && is_array($_POST["check"])) { $gb = array(); foreach ($_POST["check"] as $db) { $gb[] = where_check($db, $p); } $jj[] = "((" . implode(") OR (", $gb) . "))"; } $jj = $jj ? "\xaWHERE " . implode(" AND ", $jj) : ''; if ($_POST["export"]) { cookie("adminer_import", "output=" . urlencode($_POST["output"]) . "&format=" . urlencode($_POST["format"])); dump_headers($a); $b->dumpTable($a, ''); $jd = ($K ? implode(", ", $K) : "*") . convert_fields($f, $p, $K) . "\xaFROM " . table($a); $pd = ($nd && $Yd ? "
GROUP BY " . implode(", ", $nd) : '') . ($_f ? "
ORDER BY " . implode(", ", $_f) : ''); if (!is_array($_POST["check"]) || $kg) { $F = "SELECT {$jd}{$jj}{$pd}"; } else { $Di = array(); foreach ($_POST["check"] as $X) { $Di[] = "(SELECT" . limit($jd, "\xaWHERE " . ($Z ? implode(" AND ", $Z) . " AND " : '') . where_check($X, $p) . $pd, 1) . ")"; } $F = implode(" UNION ALL ", $Di); } $b->dumpData($a, "table", $F); die; } if (!$b->selectEmailProcess($Z, $ed)) { if ($_POST["save"] || $_POST["delete"]) { $G = true; $za = 0; $N = array(); if (!$_POST["delete"]) { foreach ($f as $B => $X) { $X = process_input($p[$B]); if ($X !== null && ($_POST["clone"] || $X !== false)) { $N[idf_escape($B)] = $X !== false ? $X : idf_escape($B); } } } if ($_POST["delete"] || $N) { if ($_POST["clone"]) { $F = "INTO " . table($a) . " (" . implode(", ", array_keys($N)) . ")\xaSELECT " . implode(", ", $N) . "
FROM " . table($a); } if ($_POST["all"] || $kg && is_array($_POST["check"]) || $Yd) { $G = $_POST["delete"] ? $m->delete($a, $jj) : ($_POST["clone"] ? queries("INSERT {$F}{$jj}") : $m->update($a, $N, $jj)); $za = $g->affected_rows; } else { foreach ((array) $_POST["check"] as $X) { $fj = "\xaWHERE " . ($Z ? implode(" AND ", $Z) . " AND " : '') . where_check($X, $p); $G = $_POST["delete"] ? $m->delete($a, $fj, 1) : ($_POST["clone"] ? queries("INSERT" . limit1($a, $F, $fj)) : $m->update($a, $N, $fj, 1)); if (!$G) { break; } $za += $g->affected_rows; } } } $Le = lang(array("%d item has been affected.", "%d items have been affected."), $za); if ($_POST["clone"] && $G && $za == 1) { $oe = last_id(); if ($oe) { $Le = sprintf("Item%s has been inserted.", " {$oe}"); } } queries_redirect(remove_from_uri($_POST["all"] && $_POST["delete"] ? "page" : ''), $Le, $G); if (!$_POST["delete"]) { edit_form($a, $p, (array) $_POST["fields"], !$_POST["clone"]); page_footer(); die; } } elseif (!$_POST["import"]) { if (!$_POST["val"]) { $n = "Ctrl+click on a value to modify it."; } else { $G = true; $za = 0; foreach ($_POST["val"] as $Fi => $I) { $N = array(); foreach ($I as $y => $X) { $y = bracket_escape($y, 1); $N[idf_escape($y)] = preg_match("~char|text~", $p[$y]["type"]) || $X != '' ? $b->processInput($p[$y], $X) : "NULL"; } $G = $m->update($a, $N, " WHERE " . ($Z ? implode(" AND ", $Z) . " AND " : '') . where_check($Fi, $p), !$Yd && !$kg, " "); if (!$G) { break; } $za += $g->affected_rows; } queries_redirect(remove_from_uri(), lang(array("%d item has been affected.", "%d items have been affected."), $za), $G); } } elseif (!is_string($Tc = get_file("csv_file", true))) { $n = upload_error($Tc); } elseif (!preg_match("~~u", $Tc)) { $n = "File must be in UTF-8 encoding."; } else { cookie("adminer_import", "output=" . urlencode($ya["output"]) . "&format=" . urlencode($_POST["separator"])); $G = true; $rb = array_keys($p); preg_match_all("~(?>"[^"]*"|[^"\r\n]+)+~", $Tc, $De); $za = count($De[0]); $m->begin(); $L = $_POST["separator"] == "csv" ? "," : ($_POST["separator"] == "tsv" ? "\x9" : ";"); $J = array(); foreach ($De[0] as $y => $X) { preg_match_all("~((?>"[^"]*")+|[^{$L}]*){$L}~", $X . $L, $Ee); if (!$y && !array_diff($Ee[1], $rb)) { $rb = $Ee[1]; $za--; } else { $N = array(); foreach ($Ee[1] as $s => $nb) { $N[idf_escape($rb[$s])] = $nb == '' && $p[$rb[$s]]["null"] ? "NULL" : q(str_replace("""", """, preg_replace("~^"|"$~", '', $nb))); } $J[] = $N; } } $G = !$J || $m->insertUpdate($a, $J, $kg); if ($G) { $G = $m->commit(); } queries_redirect(remove_from_uri("page"), lang(array("%d row has been imported.", "%d rows have been imported."), $za), $G); $m->rollback(); } } } $Ph = $b->tableName($R); if (is_ajax()) { page_headers(); ob_start(); } else { page_header("Select" . ": {$Ph}", $n); } $N = null; if (isset($Sg["insert"]) || !support("table")) { $N = ''; foreach ((array) $_GET["where"] as $X) { if ($ed[$X["col"]] && count($ed[$X["col"]]) == 1 && ($X["op"] == "=" || !$X["op"] && !preg_match("~[_%]~", $X["val"]))) { $N .= "&set" . urlencode("[" . bracket_escape($X["col"]) . "]") . "=" . urlencode($X["val"]); } } } $b->selectLinks($R, $N); if (!$f && support("table")) { echo "<p class='error'>" . "Unable to select the table" . ($p ? "." : ": " . error()) . "
"; } else { echo "<form action='' id='form'>\xa", "<div style='display: none;'>"; hidden_fields_get(); echo DB != '' ? "<input type="hidden" name="db" value="" . h(DB) . "">" . (isset($_GET["ns"]) ? "<input type="hidden" name="ns" value="" . h($_GET["ns"]) . "">" : '') : ''; echo "<input type="hidden" name="select" value="" . h($a) . "">", "</div>\xa"; $b->selectColumnsPrint($K, $f); $b->selectSearchPrint($Z, $f, $w); $b->selectOrderPrint($_f, $f, $w); $b->selectLimitPrint($z); $b->selectLengthPrint($di); $b->selectActionPrint($w); echo "</form>\xa"; $D = $_GET["page"]; if ($D == "last") { $hd = $g->result(count_rows($a, $Z, $Yd, $nd)); $D = floor(max(0, $hd - 1) / $z); } $eh = $K; $od = $nd; if (!$eh) { $eh[] = "*"; $Cb = convert_fields($f, $p, $K); if ($Cb) { $eh[] = substr($Cb, 2); } } foreach ($K as $y => $X) { $o = $p[idf_unescape($X)]; if ($o && ($Ga = convert_field($o))) { $eh[$y] = "{$Ga} AS {$X}"; } } if (!$Yd && $Hi) { foreach ($Hi as $y => $X) { $eh[] = idf_escape($y); if ($od) { $od[] = idf_escape($y); } } } $G = $m->select($a, $eh, $Z, $od, $_f, $z, $D, true); if (!$G) { echo "<p class='error'>" . error() . "
"; } else { if ($x == "mssql" && $D) { $G->seek($z * $D); } $sc = array(); echo "<form action='' method='post' enctype='multipart/form-data'>\xa"; $J = array(); while ($I = $G->fetch_assoc()) { if ($D && $x == "oracle") { unset($I["RNUM"]); } $J[] = $I; } if ($_GET["page"] != "last" && $z != '' && $nd && $Yd && $x == "sql") { $hd = $g->result(" SELECT FOUND_ROWS()"); } if (!$J) { echo "<p class='message'>" . "No rows." . "\xa"; } else { $Qa = $b->backwardKeys($a, $Ph); echo "<div class='scrollable'>", "<table id='table' cellspacing='0' class='nowrap checkable'>", script("mixin(qs('#table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true), onkeydown: editingKeydown});"), "<thead><tr>" . (!$nd && $K ? '' : "<td><input type='checkbox' id='all-page' class='jsonly'>" . script("qs('#all-page').onclick = partial(formCheck, /check/);", '') . " <a href='" . h($_GET["modify"] ? remove_from_uri("modify") : $_SERVER["REQUEST_URI"] . "&modify=1") . "'>" . "Modify" . "</a>"); $Xe = array(); $kd = array(); reset($K); $zg = 1; foreach ($J[0] as $y => $X) { if (!isset($Hi[$y])) { $X = $_GET["columns"][key($K)]; $o = $p[$K ? $X ? $X["col"] : current($K) : $y]; $B = $o ? $b->fieldName($o, $zg) : ($X["fun"] ? "*" : $y); if ($B != '') { $zg++; $Xe[$y] = $B; $e = idf_escape($y); $Bd = remove_from_uri("(order|desc)[^=]*|page") . "&order%5B0%5D=" . urlencode($y); $Xb = "&desc%5B0%5D=1"; echo "<th>" . script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});", ''), "<a href="" . h($Bd . ($_f[0] == $e || $_f[0] == $y || !$_f && $Yd && $nd[0] == $e ? $Xb : '')) . "">"; echo apply_sql_function($X["fun"], $B) . "</a>"; echo "<span class='column hidden'>", "<a href='" . h($Bd . $Xb) . "' title='" . "descending" . "' class='text'> \303\xa2\342\200\xa0\xe2\x80\x9c</a>"; if (!$X["fun"]) { echo "<a href="#fieldset-search" title="" . "Search" . "" class="text jsonly"> =</a>", script("qsl('a').onclick = partial(selectSearch, '" . js_escape($y) . "');"); } echo "</span>"; } $kd[$y] = $X["fun"]; next($K); } } $ue = array(); if ($_GET["modify"]) { foreach ($J as $I) { foreach ($I as $y => $X) { $ue[$y] = max($ue[$y], min(40, strlen(utf8_decode($X)))); } } } echo ($Qa ? "<th>" . "Relations" : '') . "</thead>
"; if (is_ajax()) { if ($z % 2 == 1 && $D % 2 == 1) { odd(); } ob_end_clean(); } foreach ($b->rowDescriptions($J, $ed) as $We => $I) { $Ei = unique_array($J[$We], $w); if (!$Ei) { $Ei = array(); foreach ($J[$We] as $y => $X) { if (!preg_match("~^(COUNT\((\*|(DISTINCT )?`(?:[^`]|``)+`)\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\(`(?:[^`]|``)+`\))$~", $y)) { $Ei[$y] = $X; } } } $Fi = ''; foreach ($Ei as $y => $X) { if (($x == "sql" || $x == "pgsql") && preg_match("~char|text|enum|set~", $p[$y]["type"]) && strlen($X) > 64) { $y = strpos($y, "(") ? $y : idf_escape($y); $y = "MD5(" . ($x != "sql" || preg_match("~^utf8~", $p[$y]["collation"]) ? $y : "CONVERT({$y} USING " . charset($g) . ")") . ")"; $X = md5($X); } $Fi .= "&" . ($X !== null ? urlencode("where[" . bracket_escape($y) . "]") . "=" . urlencode($X) : "null%5B%5D=" . urlencode($y)); } echo "<tr" . odd() . ">" . (!$nd && $K ? '' : "<td>" . checkbox("check[]", substr($Fi, 1), in_array(substr($Fi, 1), (array) $_POST["check"])) . ($Yd || information_schema(DB) ? '' : " <a href='" . h(ME . "edit=" . urlencode($a) . $Fi) . "' class='edit'>" . "edit" . "</a>")); foreach ($I as $y => $X) { if (isset($Xe[$y])) { $o = $p[$y]; $X = $m->value($X, $o); if ($X != '' && (!isset($sc[$y]) || $sc[$y] != '')) { $sc[$y] = is_mail($X) ? $Xe[$y] : ''; } $_ = ''; if (preg_match("~blob|bytea|raw|file~", $o["type"]) && $X != '') { $_ = ME . "download=" . urlencode($a) . "&field=" . urlencode($y) . $Fi; } if (!$_ && $X !== null) { foreach ((array) $ed[$y] as $q) { if (count($ed[$y]) == 1 || end($q["source"]) == $y) { $_ = ''; foreach ($q["source"] as $s => $wh) { $_ .= where_link($s, $q["target"][$s], $J[$We][$wh]); } $_ = ($q["db"] != '' ? preg_replace("~([?&]db=)[^&]+~", "\1" . urlencode($q["db"]), ME) : ME) . "select=" . urlencode($q["table"]) . $_; if ($q["ns"]) { $_ = preg_replace("~([?&]ns=)[^&]+~", "\1" . urlencode($q["ns"]), $_); } if (count($q["source"]) == 1) { break; } } } } if ($y == "COUNT(*)") { $_ = ME . "select=" . urlencode($a); $s = 0; foreach ((array) $_GET["where"] as $W) { if (!array_key_exists($W["col"], $Ei)) { $_ .= where_link($s++, $W["col"], $W["val"], $W["op"]); } } foreach ($Ei as $de => $W) { $_ .= where_link($s++, $de, $W); } } $X = select_value($X, $_, $o, $di); $t = h("val[{$Fi}][" . bracket_escape($y) . "]"); $Y = $_POST["val"][$Fi][bracket_escape($y)]; $nc = !is_array($I[$y]) && is_utf8($X) && $J[$We][$y] == $I[$y] && !$kd[$y]; $ci = preg_match("~text|lob~", $o["type"]); echo "<td id='{$t}'"; if ($_GET["modify"] && $nc || $Y !== null) { $sd = h($Y !== null ? $Y : $I[$y]); echo ">" . ($ci ? "<textarea name='{$t}' cols='30' rows='" . (substr_count($I[$y], "
") + 1) . "'>{$sd}</textarea>" : "<input name='{$t}' value='{$sd}' size='{$ue[$y]}'>"); } else { $ze = strpos($X, "<i>\303\242\342\202\254\302\246</i>"); echo " data-text='" . ($ze ? 2 : ($ci ? 1 : 0)) . "'" . ($nc ? '' : " data-warning='" . h("Use edit link to modify this value.") . "'") . ">{$X}</td>"; } } } if ($Qa) { echo "<td>"; } $b->backwardKeysPrint($Qa, $J[$We]); echo "</tr>\xa"; } if (is_ajax()) { die; } echo "</table>\xa", "</div>\xa"; } if (!is_ajax()) { if ($J || $D) { $Bc = true; if ($_GET["page"] != "last") { if ($z == '' || count($J) < $z && ($J || !$D)) { $hd = ($D ? $D * $z : 0) + count($J); } elseif ($x != "sql" || !$Yd) { $hd = $Yd ? false : found_rows($R, $Z); if ($hd < max(10000.0, 2 * ($D + 1) * $z)) { $hd = reset(slow_query(count_rows($a, $Z, $Yd, $nd))); } else { $Bc = false; } } } $Mf = $z != '' && ($hd === false || $hd > $z || $D); if ($Mf) { echo ($hd === false ? count($J) + 1 : $hd - $D * $z) > $z ? "<p><a href="" . h(remove_from_uri("page") . "&page=" . ($D + 1)) . "" class="loadmore">" . "Load more data" . "</a>" . script("qsl('a').onclick = partial(selectLoadMore, " . +$z . ", '" . "Loading" . "\xc3\242\342\202\254\302\246');", '') : '', "
"; } } echo "<div class='footer'><div>
"; if ($J || $D) { if ($Mf) { $Ge = $hd === false ? $D + (count($J) >= $z ? 2 : 1) : floor(($hd - 1) / $z); echo "<fieldset>"; if ($x != "simpledb") { echo "<legend><a href='" . h(remove_from_uri("page")) . "'>" . "Page" . "</a></legend>", script("qsl('a').onclick = function () { pageClick(this.href, +prompt('" . "Page" . "', '" . ($D + 1) . "')); return false; };"), pagination(0, $D) . ($D > 5 ? " \xc3\242\342\x82\xac\302\xa6" : ''); for ($s = max(1, $D - 4); $s < min($Ge, $D + 5); $s++) { echo pagination($s, $D); } if ($Ge > 0) { echo $D + 5 < $Ge ? " \303\xa2\xe2\x82\254\302\xa6" : '', $Bc && $hd !== false ? pagination($Ge, $D) : " <a href='" . h(remove_from_uri("page") . "&page=last") . "' title='~{$Ge}'>" . "last" . "</a>"; } } else { echo "<legend>" . "Page" . "</legend>", pagination(0, $D) . ($D > 1 ? " \xc3\xa2\342\202\xac\xc2\246" : ''), $D ? pagination($D, $D) : '', $Ge > $D ? pagination($D + 1, $D) . ($Ge > $D + 1 ? " \303\xa2\xe2\202\xac\302\246" : '') : ''; } echo "</fieldset>
"; } echo "<fieldset>", "<legend>" . "Whole result" . "</legend>"; $cc = ($Bc ? '' : "~ ") . $hd; echo checkbox("all", 1, 0, $hd !== false ? ($Bc ? '' : "~ ") . lang(array("%d row", "%d rows"), $hd) : '', "var checked = formChecked(this, /check/); selectCount('selected', this.checked ? '{$cc}' : checked); selectCount('selected2', this.checked || !checked ? '{$cc}' : checked);") . "\xa", "</fieldset>\xa"; if ($b->selectCommandPrint()) { echo "<fieldset", $_GET["modify"] ? '' : " class="jsonly"", "><legend>Modify</legend><div>
<input type="submit" value="Save"", $_GET["modify"] ? '' : " title="" . "Ctrl+click on a value to modify it." . """, ">\xa</div></fieldset>\xa<fieldset><legend>Selected <span id="selected"></span></legend><div>\xa<input type="submit" name="edit" value="Edit">
<input type="submit" name="clone" value="Clone">
<input type="submit" name="delete" value="Delete">", confirm(), "</div></fieldset>
"; } $fd = $b->dumpFormat(); foreach ((array) $_GET["columns"] as $e) { if ($e["fun"]) { unset($fd["sql"]); break; } } if ($fd) { print_fieldset("export", "Export" . " <span id='selected2'></span>"); $Kf = $b->dumpOutput(); echo $Kf ? html_select("output", $Kf, $ya["output"]) . " " : '', html_select("format", $fd, $ya["format"]), " <input type='submit' name='export' value='" . "Export" . "'>
", "</div></fieldset>\xa"; } $b->selectEmailPrint(array_filter($sc, "strlen"), $f); } echo "</div></div>
"; if ($b->selectImportPrint()) { echo "<div>", "<a href='#import'>" . "Import" . "</a>", script("qsl('a').onclick = partial(toggle, 'import');", ''), "<span id='import' class='hidden'>: ", "<input type='file' name='csv_file'> ", html_select("separator", array("csv" => "CSV,", "csv;" => "CSV;", "tsv" => "TSV"), $ya["format"], 1); echo " <input type='submit' name='import' value='" . "Import" . "'>", "</span>", "</div>"; } echo "<input type='hidden' name='token' value='{$oi}'>
", "</form>
", !$nd && $K ? '' : script("tableCheck();"); } } } if (is_ajax()) { ob_end_clean(); die; } } elseif (isset($_GET["variables"])) { $O = isset($_GET["status"]); page_header($O ? "Status" : "Variables"); $Wi = $O ? show_status() : show_variables(); if (!$Wi) { echo "<p class='message'>" . "No rows." . "\xa"; } else { echo "<table cellspacing='0'>\xa"; foreach ($Wi as $y => $X) { echo "<tr>", "<th><code class='jush-" . $x . ($O ? "status" : "set") . "'>" . h($y) . "</code>", "<td>" . h($X); } echo "</table>\xa"; } } elseif (isset($_GET["script"])) { header("Content-Type: text/javascript; charset=utf-8"); if ($_GET["script"] == "db") { $Mh = array("Data_length" => 0, "Index_length" => 0, "Data_free" => 0); foreach (table_status() as $B => $R) { json_row("Comment-{$B}", h($R["Comment"])); if (!is_view($R)) { foreach (array("Engine", "Collation") as $y) { json_row("{$y}-{$B}", h($R[$y])); } foreach ($Mh + array("Auto_increment" => 0, "Rows" => 0) as $y => $X) { if ($R[$y] != '') { $X = format_number($R[$y]); json_row("{$y}-{$B}", $y == "Rows" && $X && $R["Engine"] == ($zh == "pgsql" ? "table" : "InnoDB") ? "~ {$X}" : $X); if (isset($Mh[$y])) { $Mh[$y] += $R["Engine"] != "InnoDB" || $y != "Data_free" ? $R[$y] : 0; } } elseif (array_key_exists($y, $R)) { json_row("{$y}-{$B}"); } } } } foreach ($Mh as $y => $X) { json_row("sum-{$y}", format_number($X)); } json_row(''); } elseif ($_GET["script"] == "kill") { $g->query("KILL " . number($_POST["kill"])); } else { foreach (count_tables($b->databases()) as $l => $X) { json_row("tables-{$l}", $X); json_row("size-{$l}", db_size($l)); } json_row(''); } die; } else { $Vh = array_merge((array) $_POST["tables"], (array) $_POST["views"]); if ($Vh && !$n && !$_POST["search"]) { $G = true; $Le = ''; if ($x == "sql" && $_POST["tables"] && count($_POST["tables"]) > 1 && ($_POST["drop"] || $_POST["truncate"] || $_POST["copy"])) { queries("SET foreign_key_checks = 0"); } if ($_POST["truncate"]) { if ($_POST["tables"]) { $G = truncate_tables($_POST["tables"]); } $Le = "Tables have been truncated."; } elseif ($_POST["move"]) { $G = move_tables((array) $_POST["tables"], (array) $_POST["views"], $_POST["target"]); $Le = "Tables have been moved."; } elseif ($_POST["copy"]) { $G = copy_tables((array) $_POST["tables"], (array) $_POST["views"], $_POST["target"]); $Le = "Tables have been copied."; } elseif ($_POST["drop"]) { if ($_POST["views"]) { $G = drop_views($_POST["views"]); } if ($G && $_POST["tables"]) { $G = drop_tables($_POST["tables"]); } $Le = "Tables have been dropped."; } elseif ($x != "sql") { $G = $x == "sqlite" ? queries("VACUUM") : apply_queries("VACUUM" . ($_POST["optimize"] ? '' : " ANALYZE"), $_POST["tables"]); $Le = "Tables have been optimized."; } elseif (!$_POST["tables"]) { $Le = "No tables."; } elseif ($G = queries(($_POST["optimize"] ? "OPTIMIZE" : ($_POST["check"] ? "CHECK" : ($_POST["repair"] ? "REPAIR" : "ANALYZE"))) . " TABLE " . implode(", ", array_map("idf_escape", $_POST["tables"])))) { while ($I = $G->fetch_assoc()) { $Le .= "<b>" . h($I["Table"]) . "</b>: " . h($I["Msg_text"]) . "<br>"; } } queries_redirect(substr(ME, 0, -1), $Le, $G); } page_header($_GET["ns"] == '' ? "Database" . ": " . h(DB) : "Schema" . ": " . h($_GET["ns"]), $n, true); if ($b->homepage()) { if ($_GET["ns"] !== '') { echo "<h3 id='tables-views'>" . "Tables and views" . "</h3>
"; $Uh = tables_list(); if (!$Uh) { echo "<p class='message'>" . "No tables." . "
"; } else { echo "<form action='' method='post'>\xa"; if (support("table")) { echo "<fieldset><legend>" . "Search data in tables" . " <span id='selected2'></span></legend><div>", "<input type='search' name='query' value='" . h($_POST["query"]) . "'>", script("qsl('input').onkeydown = partialArg(bodyKeydown, 'search');", ''), " <input type='submit' name='search' value='" . "Search" . "'>\xa", "</div></fieldset>\xa"; if ($_POST["search"] && $_POST["query"] != '') { $_GET["where"][0]["op"] = "LIKE %%"; search_tables(); } } echo "<div class='scrollable'>\xa", "<table cellspacing='0' class='nowrap checkable'>
", script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"), "<thead><tr class="wrap">", "<td><input id="check-all" type="checkbox" class="jsonly">" . script("qs('#check-all').onclick = partial(formCheck, /^(tables|views)\[/);", ''), "<th>" . "Table", "<td>" . "Engine" . doc_link(array("sql" => "storage-engines.html")), "<td>" . "Collation" . doc_link(array("sql" => "charset-charsets.html", "mariadb" => "supported-character-sets-and-collations/")), "<td>" . "Data Length" . doc_link(array("sql" => "show-table-status.html", "pgsql" => "functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT", "oracle" => "REFRN20286")), "<td>" . "Index Length" . doc_link(array("sql" => "show-table-status.html", "pgsql" => "functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT")), "<td>" . "Data Free" . doc_link(array("sql" => "show-table-status.html")), "<td>" . "Auto Increment" . doc_link(array("sql" => "example-auto-increment.html", "mariadb" => "auto_increment/")), "<td>" . "Rows" . doc_link(array("sql" => "show-table-status.html", "pgsql" => "catalog-pg-class.html#CATALOG-PG-CLASS", "oracle" => "REFRN20286")), support("comment") ? "<td>" . "Comment" . doc_link(array("sql" => "show-table-status.html", "pgsql" => "functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE")) : '', "</thead>\xa"; $S = 0; foreach ($Uh as $B => $T) { $Zi = $T !== null && !preg_match("~table~i", $T); $t = h("Table-" . $B); echo "<tr" . odd() . "><td>" . checkbox($Zi ? "views[]" : "tables[]", $B, in_array($B, $Vh, true), '', '', '', $t), "<th>" . (support("table") || support("indexes") ? "<a href='" . h(ME) . "table=" . urlencode($B) . "' title='" . "Show structure" . "' id='{$t}'>" . h($B) . "</a>" : h($B)); if ($Zi) { echo "<td colspan="6"><a href="" . h(ME) . "view=" . urlencode($B) . "" title="" . "Alter view" . "">" . (preg_match("~materialized~i", $T) ? "Materialized view" : "View") . "</a>", "<td align="right"><a href="" . h(ME) . "select=" . urlencode($B) . "" title="" . "Select data" . "">?</a>"; } else { foreach (array("Engine" => array(), "Collation" => array(), "Data_length" => array("create", "Alter table"), "Index_length" => array("indexes", "Alter indexes"), "Data_free" => array("edit", "New item"), "Auto_increment" => array("auto_increment=1&create", "Alter table"), "Rows" => array("select", "Select data")) as $y => $_) { $t = " id='{$y}-" . h($B) . "'"; echo $_ ? "<td align='right'>" . (support("table") || $y == "Rows" || support("indexes") && $y != "Data_length" ? "<a href='" . h(ME . "{$_["0"]}=") . urlencode($B) . "'{$t} title='{$_["1"]}'>?</a>" : "<span{$t}>?</span>") : "<td id='{$y}-" . h($B) . "'>"; } $S++; } echo support("comment") ? "<td id='Comment-" . h($B) . "'>" : ''; } echo "<tr><td><th>" . sprintf("%d in total", count($Uh)), "<td>" . h($x == "sql" ? $g->result("SELECT @@storage_engine") : ''), "<td>" . h(db_collation(DB, collations())); foreach (array("Data_length", "Index_length", "Data_free") as $y) { echo "<td align='right' id='sum-{$y}'>"; } echo "</table>
", "</div>
"; if (!information_schema(DB)) { echo "<div class='footer'><div>
"; $Ti = "<input type='submit' value='" . "Vacuum" . "'> " . on_help("'VACUUM'"); $wf = "<input type='submit' name='optimize' value='" . "Optimize" . "'> " . on_help($x == "sql" ? "'OPTIMIZE TABLE'" : "'VACUUM OPTIMIZE'"); echo "<fieldset><legend>" . "Selected" . " <span id='selected'></span></legend><div>" . ($x == "sqlite" ? $Ti : ($x == "pgsql" ? $Ti . $wf : ($x == "sql" ? "<input type='submit' value='" . "Analyze" . "'> " . on_help("'ANALYZE TABLE'") . $wf . "<input type='submit' name='check' value='" . "Check" . "'> " . on_help("'CHECK TABLE'") . "<input type='submit' name='repair' value='" . "Repair" . "'> " . on_help("'REPAIR TABLE'") : ''))) . "<input type='submit' name='truncate' value='" . "Truncate" . "'> " . on_help($x == "sqlite" ? "'DELETE'" : "'TRUNCATE" . ($x == "pgsql" ? "'" : " TABLE'")) . confirm() . "<input type='submit' name='drop' value='" . "Drop" . "'>" . on_help("'DROP TABLE'") . confirm() . "
"; $k = support("scheme") ? $b->schemas() : $b->databases(); if (count($k) != 1 && $x != "sqlite") { $l = isset($_POST["target"]) ? $_POST["target"] : (support("scheme") ? $_GET["ns"] : DB); echo "<p>" . "Move to other database" . ": ", $k ? html_select("target", $k, $l) : "<input name="target" value="" . h($l) . "" autocapitalize="off">", " <input type='submit' name='move' value='" . "Move" . "'>", support("copy") ? " <input type='submit' name='copy' value='" . "Copy" . "'> " . checkbox("overwrite", 1, $_POST["overwrite"], "overwrite") : '', "\xa"; } echo "<input type='hidden' name='all' value=''>"; echo script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^(tables|views)\[/));" . (support("table") ? " selectCount('selected2', formChecked(this, /^tables\[/) || {$S});" : '') . " }"), "<input type='hidden' name='token' value='{$oi}'>
", "</div></fieldset>
", "</div></div>\xa"; } echo "</form>
", script("tableCheck();"); } echo "<p class="links"><a href="" . h(ME) . "create=">" . "Create table" . "</a>
", support("view") ? "<a href="" . h(ME) . "view=">" . "Create view" . "</a>
" : ''; if (support("routine")) { echo "<h3 id='routines'>" . "Routines" . "</h3>\xa"; $Wg = routines(); if ($Wg) { echo "<table cellspacing='0'>
", "<thead><tr><th>" . "Name" . "<td>" . "Type" . "<td>" . "Return type" . "<td></thead>\xa"; odd(''); foreach ($Wg as $I) { $B = $I["SPECIFIC_NAME"] == $I["ROUTINE_NAME"] ? '' : "&name=" . urlencode($I["ROUTINE_NAME"]); echo "<tr" . odd() . ">", "<th><a href="" . h(ME . ($I["ROUTINE_TYPE"] != "PROCEDURE" ? "callf=" : "call=") . urlencode($I["SPECIFIC_NAME"]) . $B) . "">" . h($I["ROUTINE_NAME"]) . "</a>", "<td>" . h($I["ROUTINE_TYPE"]), "<td>" . h($I["DTD_IDENTIFIER"]), "<td><a href="" . h(ME . ($I["ROUTINE_TYPE"] != "PROCEDURE" ? "function=" : "procedure=") . urlencode($I["SPECIFIC_NAME"]) . $B) . "">" . "Alter" . "</a>"; } echo "</table>
"; } echo "<p class="links">" . (support("procedure") ? "<a href="" . h(ME) . "procedure=">" . "Create procedure" . "</a>" : '') . "<a href="" . h(ME) . "function=">" . "Create function" . "</a>\xa"; } if (support("sequence")) { echo "<h3 id='sequences'>" . "Sequences" . "</h3>\xa"; $kh = get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema() ORDER BY sequence_name"); if ($kh) { echo "<table cellspacing='0'>
", "<thead><tr><th>" . "Name" . "</thead>
"; odd(''); foreach ($kh as $X) { echo "<tr" . odd() . "><th><a href='" . h(ME) . "sequence=" . urlencode($X) . "'>" . h($X) . "</a>
"; } echo "</table>
"; } echo "<p class='links'><a href='" . h(ME) . "sequence='>" . "Create sequence" . "</a>
"; } if (support("type")) { echo "<h3 id='user-types'>" . "User types" . "</h3>
"; $Ri = types(); if ($Ri) { echo "<table cellspacing='0'>
", "<thead><tr><th>" . "Name" . "</thead>
"; odd(''); foreach ($Ri as $X) { echo "<tr" . odd() . "><th><a href='" . h(ME) . "type=" . urlencode($X) . "'>" . h($X) . "</a>\xa"; } echo "</table>
"; } echo "<p class='links'><a href='" . h(ME) . "type='>" . "Create type" . "</a>
"; } if (support("event")) { echo "<h3 id='events'>" . "Events" . "</h3>\xa"; $J = get_rows("SHOW EVENTS"); if ($J) { echo "<table cellspacing='0'>
", "<thead><tr><th>" . "Name" . "<td>" . "Schedule" . "<td>" . "Start" . "<td>" . "End" . "<td></thead>
"; foreach ($J as $I) { echo "<tr>", "<th>" . h($I["Name"]), "<td>" . ($I["Execute at"] ? "At given time" . "<td>" . $I["Execute at"] : "Every" . " " . $I["Interval value"] . " " . $I["Interval field"] . "<td>{$I["Starts"]}"), "<td>{$I["Ends"]}", "<td><a href="" . h(ME) . "event=" . urlencode($I["Name"]) . "">" . "Alter" . "</a>"; } echo "</table>\xa"; $_c = $g->result("SELECT @@event_scheduler"); if ($_c && $_c != "ON") { echo "<p class='error'><code class='jush-sqlset'>event_scheduler</code>: " . h($_c) . "\xa"; } } echo "<p class="links"><a href="" . h(ME) . "event=">" . "Create event" . "</a>
"; } if ($Uh) { echo script("ajaxSetHtml('" . js_escape(ME) . "script=db');"); } } } } goto Fq3l4; w7nJV: class TmpFile { var $handler; var $size; function __construct() { $this->handler = tmpfile(); } function write($Ab) { $this->size += strlen($Ab); fwrite($this->handler, $Ab); } function send() { fseek($this->handler, 0); fpassthru($this->handler); fclose($this->handler); } } goto wDmEv; jvVht: function get_lang() { return "en"; } goto x9ZaX; MbGDB: function get_rows($F, $h = null, $n = "<p class='error'>") { global $g; $xb = is_object($h) ? $h : $g; $H = array(); $G = $xb->query($F); if (is_object($G)) { while ($I = $G->fetch_assoc()) { $H[] = $I; } } elseif (!$G && !is_object($h) && $n && defined("PAGE_HEADER")) { echo $n . error() . "
"; } return $H; } goto cpKn4; fVj0g: function restart_session() { if (!ini_bool("session.use_cookies")) { session_start(); } } goto CeOs5; aDTTC: function nonce() { return " nonce="" . get_nonce() . """; } goto tJ9g_; Qm3Aa: $g = ''; goto JRf8L; jNHDZ: function get_key_vals($F, $h = null, $oh = true) { global $g; if (!is_object($h)) { $h = $g; } $H = array(); $G = $h->query($F); if (is_object($G)) { while ($I = $G->fetch_row()) { if ($oh) { $H[$I[0]] = $I[1]; } else { $H[] = $I[0]; } } } return $H; } goto MbGDB; xXrKo: function hidden_fields($qg, $Fd = array()) { $H = false; while (list($y, $X) = each($qg)) { if (!in_array($y, $Fd)) { if (is_array($X)) { foreach ($X as $de => $W) { $qg[$y . "[{$de}]"] = $W; } } else { $H = true; echo "<input type="hidden" name="" . h($y) . "" value="" . h($X) . "">"; } } } return $H; } goto H8TqD; xbsdI: if (!(DB != '' ? $g->select_db(DB) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["variables"]) || $_GET["script"] == "connect" || $_GET["script"] == "kill")) { if (DB != '' || $_GET["refresh"]) { restart_session(); set_session("dbs", null); } connect_error(); die; } goto oapL1; o2ZaO: function default_value($o) { $Tb = $o["default"]; return $Tb === null ? '' : " DEFAULT " . (preg_match("~char|binary|text|enum|set~", $o["type"]) || preg_match("~^(?![a-z])~i", $Tb) ? q($Tb) : $Tb); } goto lPHzX; rYKb5: if (extension_loaded("pdo")) { class Min_PDO extends PDO { var $_result, $server_info, $affected_rows, $errno, $error; function __construct() { global $b; $eg = array_search("SQL", $b->operators); if ($eg !== false) { unset($b->operators[$eg]); } } function dsn($jc, $V, $E, $yf = array()) { try { parent::__construct($jc, $V, $E, $yf); } catch (Exception $Ac) { auth_error(h($Ac->getMessage())); } $this->setAttribute(13, array("Min_PDOStatement")); $this->server_info = @$this->getAttribute(4); } function query($F, $Ci = false) { $G = parent::query($F); $this->error = ''; if (!$G) { list(, $this->errno, $this->error) = $this->errorInfo(); if (!$this->error) { $this->error = "Unknown error."; } return false; } $this->store_result($G); return $G; } function multi_query($F) { return $this->_result = $this->query($F); } function store_result($G = null) { if (!$G) { $G = $this->_result; if (!$G) { return false; } } if ($G->columnCount()) { $G->num_rows = $G->rowCount(); return $G; } $this->affected_rows = $G->rowCount(); return true; } function next_result() { if (!$this->_result) { return false; } $this->_result->_offset = 0; return @$this->_result->nextRowset(); } function result($F, $o = 0) { $G = $this->query($F); if (!$G) { return false; } $I = $G->fetch(); return $I[$o]; } } class Min_PDOStatement extends PDOStatement { var $_offset = 0, $num_rows; function fetch_assoc() { return $this->fetch(2); } function fetch_row() { return $this->fetch(3); } function fetch_field() { $I = (object) $this->getColumnMeta($this->_offset++); $I->orgtable = $I->table; $I->orgname = $I->name; $I->charsetnr = in_array("blob", (array) $I->flags) ? 63 : 0; return $I; } } } goto VutEe; G0CT2: function edit_form($a, $p, $I, $Ji) { global $b, $x, $oi, $n; $Ph = $b->tableName(table_status1($a, true)); page_header($Ji ? "Edit" : "Insert", $n, array("select" => array($a, $Ph)), $Ph); if ($I === false) { echo "<p class='error'>" . "No rows." . "\xa"; } echo "<form action="" method="post" enctype="multipart/form-data" id="form">\xa"; if (!$p) { echo "<p class='error'>" . "You have no privileges to update this table." . "
"; } else { echo "<table cellspacing='0' class='layout'>" . script("qsl('table').onkeydown = editingKeydown;"); foreach ($p as $B => $o) { echo "<tr><th>" . $b->fieldName($o); $Tb = $_GET["set"][bracket_escape($B)]; if ($Tb === null) { $Tb = $o["default"]; if ($o["type"] == "bit" && preg_match("~^b'([01]*)'$~", $Tb, $Hg)) { $Tb = $Hg[1]; } } $Y = $I !== null ? $I[$B] != '' && $x == "sql" && preg_match("~enum|set~", $o["type"]) ? is_array($I[$B]) ? array_sum($I[$B]) : +$I[$B] : $I[$B] : (!$Ji && $o["auto_increment"] ? '' : (isset($_GET["select"]) ? false : $Tb)); if (!$_POST["save"] && is_string($Y)) { $Y = $b->editVal($Y, $o); } $r = $_POST["save"] ? (string) $_POST["function"][$B] : ($Ji && preg_match("~^CURRENT_TIMESTAMP~i", $o["on_update"]) ? "now" : ($Y === false ? null : ($Y !== null ? '' : "NULL"))); if (preg_match("~time~", $o["type"]) && preg_match("~^CURRENT_TIMESTAMP~i", $Y)) { $Y = ''; $r = "now"; } input($o, $Y, $r); echo "\xa"; } if (!support("table")) { echo "<tr>" . "<th><input name='field_keys[]'>" . script("qsl('input').oninput = fieldChange;") . "<td class='function'>" . html_select("field_funs[]", $b->editFunctions(array("null" => isset($_GET["select"])))) . "<td><input name='field_vals[]'>" . "\xa"; } echo "</table>\xa"; } echo "<p>
"; if ($p) { echo "<input type='submit' value='" . "Save" . "'>
"; if (!isset($_GET["select"])) { echo "<input type='submit' name='insert' value='" . ($Ji ? "Save and continue edit" : "Save and insert next") . "' title='Ctrl+Shift+Enter'>\xa", $Ji ? script("qsl('input').onclick = function () { return !ajaxForm(this.form, '" . "Saving" . "\303\242\xe2\202\254\xc2\xa6', this); };") : ''; } } echo $Ji ? "<input type='submit' name='delete' value='" . "Delete" . "'>" . confirm() . "
" : ($_POST || !$p ? '' : script("focus(qsa('td', qs('#form'))[1].firstChild);")); if (isset($_GET["select"])) { hidden_fields(array("check" => (array) $_POST["check"], "clone" => $_POST["clone"], "all" => $_POST["all"])); } echo "<input type="hidden" name="referer" value="", h(isset($_POST["referer"]) ? $_POST["referer"] : $_SERVER["HTTP_REFERER"]), "">\xa<input type="hidden" name="save" value="1">
<input type="hidden" name="token" value="", $oi, "">\xa</form>
"; } goto kwocG; cpKn4: function unique_array($I, $w) { foreach ($w as $v) { if (preg_match("~PRIMARY|UNIQUE~", $v["type"])) { $H = array(); foreach ($v["columns"] as $y) { if (!isset($I[$y])) { continue 2; } $H[$y] = $I[$y]; } return $H; } } } goto yz5Y3; PvEHN: $oi = get_token(); goto RHQ9Q; Au5Hf: if (isset($_GET["select"]) && ($_POST["edit"] || $_POST["clone"]) && !$_POST["save"]) { $_GET["edit"] = $_GET["select"]; } goto NW1i_; oYEPf: function get_temp_dir() { $H = ini_get("upload_tmp_dir"); if (!$H) { if (function_exists("sys_get_temp_dir")) { $H = sys_get_temp_dir(); } else { $Uc = @tempnam('', ''); if (!$Uc) { return false; } $H = dirname($Uc); unlink($Uc); } } return $H; } goto uWK50; Zf_P8: function format_foreign_key($q) { global $qf; $l = $q["db"]; $ef = $q["ns"]; return " FOREIGN KEY (" . implode(", ", array_map("idf_escape", $q["source"])) . ") REFERENCES " . ($l != '' && $l != $_GET["db"] ? idf_escape($l) . "." : '') . ($ef != '' && $ef != $_GET["ns"] ? idf_escape($ef) . "." : '') . table($q["table"]) . " (" . implode(", ", array_map("idf_escape", $q["target"])) . ")" . (preg_match("~^({$qf})$~", $q["on_delete"]) ? " ON DELETE {$q["on_delete"]}" : '') . (preg_match("~^({$qf})$~", $q["on_update"]) ? " ON UPDATE {$q["on_update"]}" : ''); } goto dwO29; i7BLM: function page_footer($Te = '') { global $b, $oi; echo "</div>\xa
"; if ($Te != "auth") { echo "<form action="" method="post">
<p class="logout">\xa<input type="submit" name="logout" value="Logout" id="logout">
<input type="hidden" name="token" value="", $oi, "">\xa</p>
</form>\xa"; } echo "<div id="menu">
"; $b->navigation($Te); echo "</div>\xa", script("setupSubmitHighlight(document);"); } goto alwbQ; Fq3l4: page_footer(); ?>

Did this file decode correctly?

Original Code

<?php
 goto cAlTG; W7QUt: function ob_gzencode($P) { return gzencode($P); } goto r0isG; Dc8hs: if (isset($_GET["\155\x73\163\161\x6c"])) { $hg = array("\123\121\114\123\122\126", "\x4d\x53\123\121\x4c", "\x50\104\x4f\137\x44\102\x4c\111\x42"); define("\104\x52\111\x56\105\122", "\155\163\163\161\154"); if (extension_loaded("\163\x71\x6c\163\x72\166")) { class Min_DB { var $extension = "\x73\x71\x6c\163\x72\166", $_link, $_result, $server_info, $affected_rows, $errno, $error; function _get_error() { $this->error = ''; foreach (sqlsrv_errors() as $n) { $this->errno = $n["\x63\x6f\144\145"]; $this->error .= "{$n["\x6d\145\x73\163\141\x67\x65"]}\xa"; } $this->error = rtrim($this->error); } function connect($M, $V, $E) { global $b; $l = $b->database(); $yb = array("\125\x49\x44" => $V, "\x50\127\104" => $E, "\103\x68\x61\162\141\143\x74\x65\162\x53\145\164" => "\125\x54\106\x2d\x38"); if ($l != '') { $yb["\x44\x61\x74\x61\x62\x61\x73\145"] = $l; } $this->_link = @sqlsrv_connect(preg_replace("\176\72\x7e", "\54", $M), $yb); if ($this->_link) { $Pd = sqlsrv_server_info($this->_link); $this->server_info = $Pd["\x53\121\x4c\x53\145\x72\x76\145\162\126\145\x72\163\x69\157\x6e"]; } else { $this->_get_error(); } return (bool) $this->_link; } function quote($P) { return "\47" . str_replace("\47", "\47\x27", $P) . "\x27"; } function select_db($j) { return $this->query("\x55\x53\105\40" . idf_escape($j)); } function query($F, $Ci = false) { $G = sqlsrv_query($this->_link, $F); $this->error = ''; if (!$G) { $this->_get_error(); return false; } return $this->store_result($G); } function multi_query($F) { $this->_result = sqlsrv_query($this->_link, $F); $this->error = ''; if (!$this->_result) { $this->_get_error(); return false; } return true; } function store_result($G = null) { if (!$G) { $G = $this->_result; } if (!$G) { return false; } if (sqlsrv_field_metadata($G)) { return new Min_Result($G); } $this->affected_rows = sqlsrv_rows_affected($G); return true; } function next_result() { return $this->_result ? sqlsrv_next_result($this->_result) : null; } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } $I = $G->fetch_row(); return $I[$o]; } } class Min_Result { var $_result, $_offset = 0, $_fields, $num_rows; function __construct($G) { $this->_result = $G; } function _convert($I) { foreach ((array) $I as $y => $X) { if (is_a($X, "\104\141\164\145\124\151\155\145")) { $I[$y] = $X->format("\x59\x2d\x6d\x2d\x64\40\110\x3a\151\x3a\x73"); } } return $I; } function fetch_assoc() { return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_ASSOC)); } function fetch_row() { return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_NUMERIC)); } function fetch_field() { if (!$this->_fields) { $this->_fields = sqlsrv_field_metadata($this->_result); } $o = $this->_fields[$this->_offset++]; $H = new stdClass(); $H->name = $o["\x4e\x61\155\145"]; $H->orgname = $o["\116\141\x6d\145"]; $H->type = $o["\x54\171\160\145"] == 1 ? 254 : 0; return $H; } function seek($C) { for ($s = 0; $s < $C; $s++) { sqlsrv_fetch($this->_result); } } function __destruct() { sqlsrv_free_stmt($this->_result); } } } elseif (extension_loaded("\x6d\163\163\161\154")) { class Min_DB { var $extension = "\115\123\x53\121\114", $_link, $_result, $server_info, $affected_rows, $error; function connect($M, $V, $E) { $this->_link = @mssql_connect($M, $V, $E); if ($this->_link) { $G = $this->query("\123\x45\x4c\x45\x43\124\40\123\105\x52\x56\x45\122\120\122\x4f\x50\105\122\x54\131\x28\47\120\x72\157\x64\x75\x63\164\x4c\145\x76\145\154\x27\51\54\x20\123\105\122\x56\x45\122\120\122\x4f\120\105\122\x54\x59\x28\x27\105\x64\151\x74\x69\x6f\x6e\x27\x29"); if ($G) { $I = $G->fetch_row(); $this->server_info = $this->result("\x73\160\x5f\163\145\x72\166\145\162\x5f\151\x6e\x66\157\x20\62", 2) . "\x20\133{$I["\x30"]}\x5d\x20{$I["\61"]}"; } } else { $this->error = mssql_get_last_message(); } return (bool) $this->_link; } function quote($P) { return "\47" . str_replace("\47", "\x27\x27", $P) . "\x27"; } function select_db($j) { return mssql_select_db($j); } function query($F, $Ci = false) { $G = @mssql_query($F, $this->_link); $this->error = ''; if (!$G) { $this->error = mssql_get_last_message(); return false; } if ($G === true) { $this->affected_rows = mssql_rows_affected($this->_link); return true; } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return mssql_next_result($this->_result->_result); } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } return mssql_result($G->_result, 0, $o); } } class Min_Result { var $_result, $_offset = 0, $_fields, $num_rows; function __construct($G) { $this->_result = $G; $this->num_rows = mssql_num_rows($G); } function fetch_assoc() { return mssql_fetch_assoc($this->_result); } function fetch_row() { return mssql_fetch_row($this->_result); } function num_rows() { return mssql_num_rows($this->_result); } function fetch_field() { $H = mssql_fetch_field($this->_result); $H->orgtable = $H->table; $H->orgname = $H->name; return $H; } function seek($C) { mssql_data_seek($this->_result, $C); } function __destruct() { mssql_free_result($this->_result); } } } elseif (extension_loaded("\160\144\157\137\x64\142\x6c\151\142")) { class Min_DB extends Min_PDO { var $extension = "\120\x44\117\137\x44\102\114\111\x42"; function connect($M, $V, $E) { $this->dsn("\144\142\154\151\142\x3a\x63\150\x61\162\x73\145\x74\75\x75\164\x66\x38\x3b\150\x6f\x73\164\75" . str_replace("\x3a", "\x3b\x75\x6e\x69\170\137\x73\x6f\143\x6b\145\164\x3d", preg_replace("\176\x3a\x28\x5c\144\51\176", "\x3b\160\157\x72\164\75\x5c\61", $M)), $V, $E); return true; } function select_db($j) { return $this->query("\x55\x53\x45\x20" . idf_escape($j)); } } } class Min_Driver extends Min_SQL { function insertUpdate($Q, $J, $kg) { foreach ($J as $N) { $Ji = array(); $Z = array(); foreach ($N as $y => $X) { $Ji[] = "{$y}\40\x3d\x20{$X}"; if (isset($kg[idf_unescape($y)])) { $Z[] = "{$y}\40\x3d\x20{$X}"; } } if (!queries("\x4d\105\x52\107\x45\x20" . table($Q) . "\40\x55\123\x49\116\107\x20\x28\x56\x41\114\125\105\x53\50" . implode("\54\40", $N) . "\x29\51\40\101\123\40\x73\157\x75\x72\143\145\x20\50\143" . implode("\54\x20\x63", range(1, count($N))) . "\x29\x20\x4f\x4e\x20" . implode("\x20\101\116\104\x20", $Z) . "\40\x57\x48\x45\x4e\40\115\101\x54\x43\x48\x45\x44\40\x54\x48\x45\x4e\x20\125\x50\104\x41\124\105\40\123\105\x54\x20" . implode("\54\x20", $Ji) . "\x20\127\110\105\x4e\x20\116\x4f\x54\x20\x4d\101\124\x43\x48\x45\x44\x20\x54\110\x45\116\x20\111\x4e\x53\x45\122\x54\x20\50" . implode("\54\40", array_keys($N)) . "\51\40\x56\x41\114\x55\x45\x53\x20\x28" . implode("\x2c\x20", $N) . "\x29\x3b")) { return false; } } return true; } function begin() { return queries("\x42\105\107\111\116\x20\x54\x52\101\x4e\x53\x41\x43\124\111\117\x4e"); } } function idf_escape($u) { return "\133" . str_replace("\x5d", "\135\135", $u) . "\135"; } function table($u) { return ($_GET["\156\x73"] != '' ? idf_escape($_GET["\x6e\x73"]) . "\56" : '') . idf_escape($u); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases() { return get_vals("\123\x45\x4c\105\103\x54\40\156\141\x6d\x65\40\106\x52\117\115\x20\163\x79\163\56\144\x61\x74\x61\x62\141\163\x65\x73\40\x57\x48\x45\122\105\x20\x6e\x61\155\x65\x20\x4e\x4f\124\40\111\116\40\x28\47\x6d\x61\x73\x74\145\x72\47\x2c\x20\47\x74\145\155\160\x64\142\x27\54\40\x27\155\157\144\x65\x6c\47\x2c\x20\x27\155\163\144\142\x27\51"); } function limit($F, $Z, $z, $C = 0, $L = "\x20") { return ($z !== null ? "\x20\x54\117\120\x20\50" . ($z + $C) . "\x29" : '') . "\40{$F}{$Z}"; } function limit1($Q, $F, $Z, $L = "\xa") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { global $g; return $g->result("\123\105\114\x45\x43\x54\40\x63\157\154\154\x61\164\x69\x6f\156\137\156\141\155\x65\x20\106\122\117\115\40\x73\171\x73\x2e\144\141\x74\x61\142\x61\x73\145\x73\x20\x57\110\x45\122\x45\x20\x6e\141\155\145\40\x3d\40" . q($l)); } function engines() { return array(); } function logged_user() { global $g; return $g->result("\123\x45\114\x45\103\x54\x20\x53\125\123\x45\x52\137\x4e\x41\115\x45\x28\51"); } function tables_list() { return get_key_vals("\123\105\114\x45\x43\124\x20\x6e\141\x6d\x65\x2c\40\164\x79\160\x65\x5f\x64\x65\163\143\x20\x46\122\x4f\115\x20\x73\x79\x73\56\x61\154\x6c\x5f\x6f\142\x6a\x65\143\x74\x73\40\x57\110\x45\122\x45\40\x73\143\x68\145\155\141\137\151\144\x20\75\40\123\x43\x48\105\115\101\137\x49\x44\x28" . q(get_schema()) . "\x29\x20\101\x4e\x44\40\x74\171\160\145\40\111\116\40\50\47\x53\x27\x2c\x20\x27\125\x27\x2c\x20\47\126\x27\51\x20\x4f\122\104\x45\122\40\102\x59\x20\x6e\141\x6d\x65"); } function count_tables($k) { global $g; $H = array(); foreach ($k as $l) { $g->select_db($l); $H[$l] = $g->result("\123\105\x4c\105\x43\124\40\x43\x4f\x55\116\x54\50\x2a\x29\40\x46\122\x4f\x4d\x20\x49\116\x46\117\x52\x4d\x41\x54\111\117\x4e\x5f\123\x43\x48\105\115\101\x2e\124\x41\x42\114\105\123"); } return $H; } function table_status($B = '') { $H = array(); foreach (get_rows("\123\x45\x4c\105\x43\x54\x20\x61\x6f\x2e\x6e\141\155\145\x20\101\x53\40\x4e\141\155\x65\x2c\40\x61\157\x2e\x74\x79\160\145\137\x64\145\163\143\x20\101\123\40\x45\156\x67\151\156\x65\54\x20\50\x53\x45\114\x45\x43\x54\40\x76\x61\x6c\165\x65\40\106\x52\x4f\115\x20\x66\x6e\137\x6c\151\x73\x74\x65\170\x74\145\156\144\145\144\x70\162\157\160\145\x72\164\171\x28\144\x65\146\x61\x75\154\164\x2c\x20\47\123\x43\110\x45\x4d\101\47\x2c\x20\163\143\x68\145\155\141\x5f\156\141\155\145\50\163\143\150\x65\x6d\141\x5f\x69\x64\x29\54\x20\x27\x54\x41\x42\114\x45\47\x2c\40\141\x6f\x2e\x6e\141\x6d\145\x2c\x20\x6e\x75\x6c\154\54\40\156\x75\x6c\x6c\x29\51\40\101\x53\x20\103\x6f\x6d\155\x65\x6e\x74\x20\106\122\117\115\40\163\x79\x73\56\141\154\154\x5f\x6f\x62\x6a\x65\143\164\163\40\x41\123\x20\141\x6f\40\x57\x48\x45\x52\105\x20\x73\143\150\145\x6d\x61\137\151\x64\x20\x3d\x20\x53\x43\110\x45\x4d\x41\x5f\111\104\50" . q(get_schema()) . "\51\x20\x41\116\104\40\164\x79\160\145\x20\x49\116\40\x28\47\x53\x27\x2c\x20\47\125\x27\x2c\40\x27\x56\47\51\40" . ($B != '' ? "\101\x4e\104\40\156\x61\x6d\x65\x20\75\40" . q($B) : "\x4f\x52\104\x45\122\40\102\131\40\156\x61\x6d\145")) as $I) { if ($B != '') { return $I; } $H[$I["\116\141\x6d\x65"]] = $I; } return $H; } function is_view($R) { return $R["\105\x6e\x67\151\x6e\x65"] == "\x56\x49\x45\x57"; } function fk_support($R) { return true; } function fields($Q) { $vb = get_key_vals("\x53\x45\114\x45\x43\124\40\157\x62\152\x6e\141\x6d\x65\x2c\40\143\141\x73\x74\50\166\x61\x6c\x75\145\40\141\163\x20\x76\141\162\x63\150\x61\x72\51\40\x46\122\117\x4d\40\x66\156\137\154\x69\x73\x74\145\170\164\x65\x6e\144\145\144\160\162\157\160\145\x72\164\x79\x28\x27\115\x53\x5f\x44\x45\123\103\122\x49\x50\124\x49\117\x4e\x27\x2c\40\x27\x73\143\150\145\x6d\141\47\54\40" . q(get_schema()) . "\54\40\47\164\x61\142\x6c\x65\47\x2c\x20" . q($Q) . "\x2c\x20\x27\x63\157\x6c\165\x6d\x6e\47\54\x20\x4e\125\114\114\51"); $H = array(); foreach (get_rows("\123\x45\114\x45\103\124\40\x63\x2e\x6d\x61\x78\x5f\154\x65\156\x67\x74\x68\x2c\x20\143\x2e\160\162\145\143\151\163\x69\x6f\156\x2c\40\143\x2e\163\x63\141\154\x65\54\40\x63\x2e\156\141\x6d\x65\x2c\x20\x63\x2e\151\x73\137\x6e\165\154\154\x61\x62\x6c\x65\x2c\40\143\x2e\151\163\x5f\x69\144\145\156\x74\x69\164\171\54\x20\143\56\x63\157\x6c\x6c\141\x74\x69\157\x6e\137\156\x61\x6d\x65\x2c\x20\x74\56\x6e\x61\x6d\145\x20\164\171\160\145\54\40\x43\x41\x53\x54\50\x64\56\144\145\x66\151\x6e\x69\x74\151\x6f\156\40\141\x73\40\x74\x65\x78\164\51\40\133\x64\145\146\x61\x75\x6c\x74\x5d\12\106\122\x4f\x4d\x20\x73\171\163\56\x61\154\x6c\137\x63\157\x6c\165\x6d\156\163\x20\143\12\112\x4f\111\x4e\40\163\171\163\x2e\x61\x6c\x6c\137\157\142\152\145\143\x74\163\40\157\40\117\x4e\x20\x63\x2e\157\x62\x6a\x65\x63\164\137\x69\144\x20\x3d\x20\x6f\x2e\x6f\x62\152\145\143\x74\137\151\x64\12\x4a\117\111\116\40\163\x79\x73\x2e\x74\x79\160\x65\x73\x20\164\x20\x4f\x4e\x20\x63\x2e\165\163\145\162\137\164\171\x70\145\137\151\144\x20\75\40\164\56\165\163\145\162\x5f\x74\171\160\x65\137\151\x64\xa\114\105\106\x54\40\x4a\x4f\111\x4e\40\x73\x79\163\x2e\x64\145\x66\141\x75\154\164\x5f\x63\x6f\x6e\163\164\162\141\x69\156\x74\x73\40\144\40\117\x4e\x20\x63\x2e\144\x65\x66\x61\x75\154\x74\137\157\142\x6a\145\x63\164\137\151\x64\40\x3d\40\x64\56\x70\141\x72\x65\156\x74\137\143\x6f\154\x75\x6d\x6e\x5f\151\144\xa\127\110\105\x52\105\40\157\x2e\163\143\x68\x65\x6d\141\x5f\x69\x64\x20\x3d\40\123\x43\x48\105\x4d\x41\137\x49\104\x28" . q(get_schema()) . "\x29\40\x41\x4e\104\x20\x6f\56\x74\x79\160\x65\x20\111\x4e\x20\50\x27\123\47\54\x20\x27\125\47\x2c\x20\x27\x56\x27\51\x20\x41\116\104\40\x6f\56\x6e\x61\x6d\x65\40\75\40" . q($Q)) as $I) { $T = $I["\x74\x79\160\145"]; $te = preg_match("\176\x63\150\141\x72\x7c\142\151\x6e\141\x72\x79\176", $T) ? $I["\x6d\x61\170\137\x6c\x65\x6e\x67\164\x68"] : ($T == "\x64\145\x63\151\155\141\x6c" ? "{$I["\160\162\145\143\x69\163\x69\157\156"]}\x2c{$I["\163\143\141\154\145"]}" : ''); $H[$I["\x6e\141\155\145"]] = array("\x66\x69\x65\x6c\144" => $I["\x6e\x61\x6d\145"], "\146\165\x6c\154\137\164\171\x70\x65" => $T . ($te ? "\x28{$te}\51" : ''), "\164\x79\160\145" => $T, "\x6c\x65\156\x67\x74\x68" => $te, "\144\145\146\141\x75\x6c\x74" => $I["\144\x65\x66\x61\x75\154\164"], "\156\165\154\154" => $I["\151\163\137\156\x75\x6c\x6c\141\x62\x6c\x65"], "\x61\165\x74\x6f\137\x69\x6e\x63\x72\x65\x6d\145\156\164" => $I["\x69\x73\x5f\x69\x64\x65\156\x74\x69\164\x79"], "\x63\157\x6c\154\141\x74\x69\x6f\156" => $I["\143\x6f\154\154\x61\164\151\157\x6e\137\x6e\141\x6d\145"], "\160\x72\151\166\151\x6c\145\x67\x65\x73" => array("\x69\x6e\163\145\x72\164" => 1, "\x73\145\154\x65\x63\164" => 1, "\x75\x70\144\x61\164\x65" => 1), "\x70\162\151\x6d\141\x72\171" => $I["\x69\x73\137\x69\x64\145\x6e\164\x69\164\x79"], "\143\x6f\x6d\155\145\156\164" => $vb[$I["\x6e\141\x6d\x65"]]); } return $H; } function indexes($Q, $h = null) { $H = array(); foreach (get_rows("\x53\x45\114\105\103\124\40\151\56\x6e\141\155\145\54\40\x6b\x65\171\x5f\x6f\162\x64\151\156\x61\154\54\40\x69\163\x5f\165\x6e\x69\x71\165\x65\54\x20\x69\163\137\160\162\x69\x6d\x61\x72\171\x5f\x6b\x65\171\54\40\x63\x2e\156\141\x6d\145\40\x41\123\40\x63\x6f\154\x75\x6d\x6e\137\x6e\141\155\x65\54\x20\x69\x73\x5f\x64\145\x73\x63\x65\156\x64\x69\x6e\x67\x5f\153\x65\171\12\x46\122\117\115\x20\163\171\163\x2e\151\x6e\x64\x65\x78\x65\x73\x20\x69\xa\x49\x4e\x4e\105\122\40\x4a\x4f\x49\x4e\40\x73\171\x73\x2e\x69\156\x64\145\170\x5f\x63\157\154\x75\x6d\156\163\40\151\143\x20\117\116\40\151\x2e\x6f\142\x6a\x65\x63\x74\x5f\151\144\x20\x3d\40\151\x63\x2e\x6f\142\152\145\x63\x74\x5f\x69\x64\40\x41\x4e\x44\40\x69\56\151\156\144\x65\x78\137\x69\144\x20\75\40\151\x63\56\x69\156\x64\x65\170\137\151\144\12\111\116\x4e\105\x52\x20\x4a\x4f\111\116\40\163\171\x73\x2e\x63\157\x6c\165\x6d\x6e\x73\40\x63\x20\117\x4e\40\151\x63\56\157\142\x6a\145\x63\x74\137\x69\144\x20\x3d\x20\x63\x2e\157\142\152\x65\x63\164\x5f\x69\144\40\101\x4e\104\x20\151\x63\56\x63\157\x6c\x75\155\156\x5f\151\x64\40\x3d\40\143\56\143\x6f\x6c\x75\155\156\137\x69\144\12\x57\x48\x45\x52\x45\40\117\102\112\105\103\124\x5f\116\101\115\x45\x28\151\x2e\x6f\142\152\145\143\x74\x5f\x69\x64\51\40\x3d\40" . q($Q), $h) as $I) { $B = $I["\x6e\x61\155\x65"]; $H[$B]["\164\171\x70\x65"] = $I["\x69\163\137\x70\162\x69\155\141\x72\171\x5f\153\145\x79"] ? "\x50\122\x49\115\x41\122\x59" : ($I["\x69\x73\x5f\x75\156\151\x71\165\145"] ? "\x55\116\x49\121\125\105" : "\x49\x4e\x44\105\x58"); $H[$B]["\x6c\145\x6e\x67\x74\x68\x73"] = array(); $H[$B]["\x63\157\154\x75\x6d\x6e\x73"][$I["\x6b\x65\171\137\x6f\x72\144\151\156\141\x6c"]] = $I["\x63\x6f\154\165\155\156\137\156\141\155\145"]; $H[$B]["\144\x65\163\143\163"][$I["\x6b\x65\171\x5f\x6f\162\144\x69\x6e\141\x6c"]] = $I["\151\x73\137\144\x65\x73\143\x65\156\144\x69\x6e\x67\137\153\145\x79"] ? "\x31" : null; } return $H; } function view($B) { global $g; return array("\163\145\154\145\143\164" => preg_replace("\x7e\x5e\x28\x3f\72\133\x5e\133\135\x7c\134\x5b\x5b\136\x5d\x5d\52\135\x29\x2a\x5c\x73\53\101\x53\x5c\x73\x2b\176\151\x73\x55", '', $g->result("\123\x45\114\x45\103\x54\40\126\x49\105\127\x5f\104\105\x46\x49\116\111\124\111\117\116\40\x46\122\117\115\40\111\116\x46\117\x52\115\101\124\x49\117\116\137\x53\103\x48\105\115\x41\x2e\126\111\x45\x57\123\40\x57\x48\105\x52\x45\40\124\x41\102\x4c\105\x5f\x53\103\110\x45\x4d\101\40\x3d\x20\x53\x43\110\x45\x4d\x41\137\116\x41\115\105\x28\51\x20\101\116\104\x20\x54\101\102\114\x45\x5f\x4e\101\x4d\x45\40\x3d\40" . q($B)))); } function collations() { $H = array(); foreach (get_vals("\123\x45\x4c\x45\103\x54\40\156\141\155\x65\x20\106\122\117\x4d\x20\146\156\137\x68\145\x6c\160\143\x6f\154\x6c\x61\x74\151\x6f\x6e\163\50\x29") as $d) { $H[preg_replace("\x7e\137\56\x2a\176", '', $d)][] = $d; } return $H; } function information_schema($l) { return false; } function error() { global $g; return nl_br(h(preg_replace("\176\x5e\50\134\x5b\x5b\136\x5d\135\x2a\135\51\x2b\176\x6d", '', $g->error))); } function create_database($l, $d) { return queries("\x43\122\105\101\x54\105\40\x44\x41\x54\x41\x42\x41\x53\x45\x20" . idf_escape($l) . (preg_match("\x7e\136\133\141\55\x7a\x30\x2d\x39\x5f\135\53\44\x7e\151", $d) ? "\x20\x43\x4f\x4c\114\101\124\105\x20{$d}" : '')); } function drop_databases($k) { return queries("\x44\122\117\x50\40\104\101\124\x41\x42\101\123\x45\x20" . implode("\x2c\x20", array_map("\151\144\x66\x5f\145\163\143\141\x70\x65", $k))); } function rename_database($B, $d) { if (preg_match("\176\x5e\x5b\141\x2d\x7a\60\x2d\71\x5f\135\53\44\x7e\151", $d)) { queries("\x41\x4c\124\x45\x52\x20\x44\x41\x54\101\102\x41\x53\x45\x20" . idf_escape(DB) . "\40\103\117\114\x4c\101\x54\105\x20{$d}"); } queries("\x41\x4c\124\x45\122\x20\x44\x41\124\x41\102\x41\x53\x45\40" . idf_escape(DB) . "\x20\115\117\x44\x49\x46\x59\40\x4e\101\x4d\x45\x20\75\40" . idf_escape($B)); return true; } function auto_increment() { return "\x20\x49\104\105\116\124\x49\x54\131" . ($_POST["\x41\x75\x74\x6f\x5f\x69\x6e\143\162\145\155\x65\x6e\x74"] != '' ? "\50" . number($_POST["\x41\x75\x74\x6f\137\x69\156\x63\162\x65\x6d\x65\156\164"]) . "\54\x31\x29" : '') . "\x20\x50\122\111\115\x41\122\x59\x20\113\105\131"; } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = array(); $vb = array(); foreach ($p as $o) { $e = idf_escape($o[0]); $X = $o[1]; if (!$X) { $c["\x44\122\117\x50"][] = "\x20\x43\x4f\114\x55\115\x4e\40{$e}"; } else { $X[1] = preg_replace("\x7e\50\40\103\x4f\x4c\x4c\101\x54\x45\x20\51\x27\50\x5c\x77\53\51\47\x7e", "\134\61\134\62", $X[1]); $vb[$o[0]] = $X[5]; unset($X[5]); if ($o[0] == '') { $c["\x41\x44\x44"][] = "\12\x20\x20" . implode('', $X) . ($Q == '' ? substr($cd[$X[0]], 16 + strlen($X[0])) : ''); } else { unset($X[6]); if ($e != $X[0]) { queries("\x45\x58\105\103\40\163\160\x5f\x72\145\156\x61\x6d\145\x20" . q(table($Q) . "\x2e{$e}") . "\x2c\x20" . q(idf_unescape($X[0])) . "\x2c\40\47\x43\x4f\x4c\x55\115\116\x27"); } $c["\x41\114\x54\x45\122\40\103\117\x4c\125\x4d\116\x20" . implode('', $X)][] = ''; } } } if ($Q == '') { return queries("\103\x52\105\101\x54\105\40\x54\x41\102\x4c\x45\x20" . table($B) . "\40\50" . implode("\54", (array) $c["\101\104\104"]) . "\xa\51"); } if ($Q != $B) { queries("\x45\130\105\x43\x20\x73\x70\x5f\162\145\156\x61\x6d\145\40" . q(table($Q)) . "\x2c\40" . q($B)); } if ($cd) { $c[''] = $cd; } foreach ($c as $y => $X) { if (!queries("\101\x4c\124\105\x52\40\x54\101\102\114\x45\x20" . idf_escape($B) . "\40{$y}" . implode("\x2c", $X))) { return false; } } foreach ($vb as $y => $X) { $ub = substr($X, 9); queries("\105\130\105\103\x20\x73\x70\137\144\x72\x6f\x70\x65\170\164\x65\x6e\144\145\144\x70\x72\157\x70\145\x72\164\x79\x20\x40\156\x61\155\x65\40\75\x20\116\47\115\x53\137\x44\145\x73\143\162\151\x70\x74\151\157\x6e\x27\x2c\x20\100\154\x65\x76\145\x6c\60\164\171\x70\145\x20\75\x20\x4e\x27\123\143\x68\x65\x6d\x61\47\x2c\40\100\154\x65\x76\x65\154\x30\156\141\155\x65\x20\x3d\40" . q(get_schema()) . "\54\40\x40\x6c\x65\166\x65\154\x31\x74\x79\x70\x65\x20\75\40\116\x27\x54\141\142\154\145\47\54\40\x20\x40\154\x65\x76\145\154\x31\x6e\141\155\x65\40\x3d\x20" . q($B) . "\x2c\x20\100\154\145\x76\x65\154\x32\164\171\160\x65\40\x3d\40\x4e\47\x43\157\x6c\165\x6d\x6e\x27\x2c\x20\x40\x6c\x65\x76\145\154\x32\156\x61\155\x65\40\x3d\x20" . q($y)); queries("\105\130\x45\103\x20\x73\x70\137\141\x64\144\145\170\164\145\x6e\144\145\144\160\x72\157\160\145\162\164\x79\x20\x40\156\141\x6d\145\40\75\40\x4e\x27\x4d\123\x5f\104\x65\163\143\x72\x69\160\x74\x69\157\x6e\x27\x2c\x20\100\166\141\154\x75\145\x20\x3d\40" . $ub . "\54\x20\x40\154\145\166\145\x6c\60\x74\171\160\145\x20\x3d\x20\116\x27\123\143\150\x65\x6d\141\47\x2c\x20\100\154\145\x76\x65\x6c\60\156\x61\155\x65\x20\x3d\40" . q(get_schema()) . "\x2c\x20\100\154\145\x76\145\x6c\x31\x74\171\x70\x65\x20\x3d\x20\116\47\x54\x61\142\154\145\x27\x2c\x20\40\x40\154\x65\x76\x65\x6c\x31\x6e\141\155\x65\x20\75\40" . q($B) . "\x2c\40\100\154\x65\166\x65\154\x32\x74\171\x70\145\x20\x3d\40\x4e\47\x43\x6f\154\x75\155\156\x27\x2c\40\x40\154\x65\166\145\x6c\x32\156\141\155\145\40\75\x20" . q($y)); } return true; } function alter_indexes($Q, $c) { $v = array(); $fc = array(); foreach ($c as $X) { if ($X[2] == "\104\122\x4f\x50") { if ($X[0] == "\x50\x52\111\115\x41\x52\131") { $fc[] = idf_escape($X[1]); } else { $v[] = idf_escape($X[1]) . "\x20\x4f\116\x20" . table($Q); } } elseif (!queries(($X[0] != "\120\122\111\x4d\101\x52\x59" ? "\103\122\105\x41\124\105\40{$X["\60"]}\x20" . ($X[0] != "\111\x4e\104\x45\x58" ? "\x49\x4e\104\105\130\x20" : '') . idf_escape($X[1] != '' ? $X[1] : uniqid($Q . "\x5f")) . "\40\117\x4e\40" . table($Q) : "\x41\x4c\x54\105\x52\40\124\x41\102\114\x45\x20" . table($Q) . "\40\101\x44\x44\x20\120\x52\111\x4d\101\x52\x59\x20\113\105\x59") . "\x20\x28" . implode("\x2c\40", $X[2]) . "\x29")) { return false; } } return (!$v || queries("\x44\x52\117\x50\40\111\116\x44\x45\130\x20" . implode("\x2c\40", $v))) && (!$fc || queries("\x41\114\124\105\x52\x20\124\101\102\114\105\40" . table($Q) . "\40\104\122\117\x50\x20" . implode("\54\40", $fc))); } function last_id() { global $g; return $g->result("\123\x45\x4c\x45\x43\x54\40\x53\x43\117\120\105\137\x49\104\x45\116\124\x49\x54\131\x28\51"); } function explain($g, $F) { $g->query("\123\x45\124\x20\x53\110\117\x57\x50\114\101\116\137\101\114\114\x20\117\116"); $H = $g->query($F); $g->query("\123\x45\x54\x20\123\110\x4f\127\x50\x4c\101\116\137\x41\x4c\x4c\x20\x4f\106\106"); return $H; } function found_rows($R, $Z) { } function foreign_keys($Q) { $H = array(); foreach (get_rows("\x45\x58\x45\103\x20\163\x70\x5f\146\x6b\x65\171\x73\x20\x40\146\x6b\164\x61\x62\154\145\x5f\x6e\141\155\145\40\75\x20" . q($Q)) as $I) { $q =& $H[$I["\x46\x4b\x5f\116\101\x4d\105"]]; $q["\144\x62"] = $I["\120\113\124\x41\102\114\x45\137\121\x55\101\114\111\106\x49\105\x52"]; $q["\x74\x61\142\154\x65"] = $I["\120\113\124\101\102\114\x45\137\116\x41\115\x45"]; $q["\x73\x6f\x75\x72\x63\x65"][] = $I["\106\113\103\117\x4c\125\x4d\x4e\x5f\116\101\x4d\105"]; $q["\164\x61\162\147\145\164"][] = $I["\x50\113\103\x4f\x4c\x55\115\x4e\x5f\116\x41\115\105"]; } return $H; } function truncate_tables($S) { return apply_queries("\x54\x52\x55\116\103\101\124\x45\40\124\x41\102\x4c\105", $S); } function drop_views($aj) { return queries("\x44\x52\x4f\x50\40\126\111\105\x57\x20" . implode("\x2c\x20", array_map("\x74\141\142\x6c\145", $aj))); } function drop_tables($S) { return queries("\104\x52\x4f\120\40\x54\101\102\114\105\x20" . implode("\x2c\40", array_map("\x74\141\142\154\x65", $S))); } function move_tables($S, $aj, $Xh) { return apply_queries("\101\114\x54\105\122\x20\123\x43\110\x45\x4d\x41\40" . idf_escape($Xh) . "\40\x54\122\101\x4e\x53\106\105\x52", array_merge($S, $aj)); } function trigger($B) { if ($B == '') { return array(); } $J = get_rows("\123\x45\114\105\x43\124\x20\x73\56\x6e\141\x6d\145\40\133\x54\x72\151\147\x67\145\x72\135\x2c\xa\103\x41\123\x45\x20\127\x48\x45\x4e\x20\117\x42\112\x45\x43\x54\x50\122\117\x50\105\122\124\131\x28\x73\56\151\144\x2c\x20\x27\105\x78\145\x63\x49\x73\111\x6e\163\145\162\x74\124\162\x69\x67\147\145\x72\x27\51\40\x3d\40\x31\x20\x54\x48\105\116\x20\47\111\x4e\123\105\122\x54\x27\40\127\110\105\116\x20\117\102\x4a\105\x43\124\120\x52\x4f\x50\105\x52\x54\131\x28\x73\56\x69\x64\54\40\47\105\170\145\x63\111\163\125\x70\x64\141\164\x65\x54\x72\151\147\147\145\162\x27\51\x20\75\x20\x31\40\124\110\105\x4e\x20\47\125\x50\104\x41\x54\105\47\40\127\110\105\116\40\x4f\102\x4a\x45\103\124\120\x52\x4f\x50\x45\122\124\x59\50\163\56\151\144\x2c\40\x27\105\170\x65\143\111\x73\x44\145\154\145\x74\x65\124\x72\x69\x67\147\145\162\47\x29\40\x3d\x20\61\x20\124\110\x45\x4e\x20\47\x44\105\x4c\105\x54\105\x27\x20\105\x4e\104\40\x5b\105\x76\x65\x6e\164\x5d\54\12\x43\x41\x53\105\40\x57\x48\105\116\40\x4f\x42\x4a\105\x43\x54\x50\122\x4f\120\x45\x52\x54\x59\x28\x73\x2e\x69\144\x2c\40\x27\105\x78\x65\143\x49\x73\111\156\x73\164\145\x61\144\x4f\x66\x54\x72\151\x67\147\x65\162\x27\51\x20\75\x20\x31\40\x54\110\x45\116\40\47\x49\x4e\x53\x54\x45\101\104\40\x4f\106\x27\40\x45\x4c\x53\105\x20\47\101\x46\124\x45\122\47\x20\105\116\104\x20\133\124\x69\x6d\151\156\147\135\54\12\143\56\x74\x65\x78\x74\xa\x46\122\x4f\x4d\x20\x73\x79\163\x6f\142\x6a\x65\143\x74\163\x20\163\xa\x4a\x4f\111\x4e\x20\163\x79\163\143\157\x6d\155\145\156\x74\x73\x20\143\x20\x4f\x4e\40\x73\x2e\151\x64\x20\x3d\x20\143\56\x69\x64\xa\127\110\x45\122\x45\x20\x73\x2e\x78\164\x79\x70\145\40\75\x20\47\x54\x52\x27\x20\x41\x4e\104\x20\163\x2e\x6e\x61\155\145\40\75\40" . q($B)); $H = reset($J); if ($H) { $H["\123\164\141\164\x65\155\x65\156\164"] = preg_replace("\x7e\136\x2e\53\x5c\x73\x2b\101\123\x5c\x73\53\x7e\151\163\x55", '', $H["\x74\x65\170\164"]); } return $H; } function triggers($Q) { $H = array(); foreach (get_rows("\x53\x45\114\x45\x43\x54\40\163\x79\163\61\56\156\x61\155\145\x2c\12\x43\x41\x53\x45\40\127\110\x45\116\x20\x4f\x42\112\x45\103\124\x50\x52\117\x50\105\122\124\131\50\x73\171\163\61\x2e\151\144\x2c\40\47\x45\x78\145\x63\111\163\111\156\163\x65\x72\x74\124\x72\x69\147\147\x65\162\47\x29\x20\x3d\x20\61\40\124\110\x45\116\40\x27\x49\116\123\x45\122\124\x27\x20\127\x48\x45\x4e\x20\x4f\x42\x4a\105\x43\124\120\x52\x4f\x50\105\122\x54\x59\50\x73\x79\x73\61\56\x69\144\x2c\x20\47\x45\170\x65\x63\111\x73\125\x70\144\x61\x74\x65\x54\x72\151\x67\147\x65\x72\x27\51\40\x3d\40\61\x20\x54\110\105\x4e\x20\47\125\120\x44\101\124\x45\x27\40\127\110\105\116\40\x4f\x42\112\x45\103\x54\x50\x52\117\120\105\122\x54\x59\50\163\171\x73\61\56\151\x64\x2c\x20\x27\x45\170\145\x63\111\x73\104\145\x6c\x65\164\x65\124\162\x69\x67\x67\145\x72\47\51\40\75\40\x31\40\x54\110\x45\x4e\x20\47\x44\105\x4c\x45\x54\x45\x27\40\x45\116\104\x20\133\105\166\x65\x6e\x74\x5d\x2c\xa\x43\101\123\x45\x20\127\x48\x45\116\40\117\102\x4a\x45\103\x54\x50\x52\x4f\120\x45\x52\x54\x59\x28\x73\171\x73\x31\x2e\151\x64\x2c\40\47\105\x78\145\143\x49\163\111\x6e\x73\x74\x65\x61\x64\x4f\146\x54\162\151\x67\x67\x65\162\47\51\40\75\40\x31\x20\124\110\105\x4e\x20\x27\111\116\x53\x54\x45\101\104\x20\117\x46\47\40\x45\114\123\105\x20\47\101\106\x54\105\x52\47\40\105\116\104\40\x5b\x54\x69\x6d\x69\x6e\x67\x5d\12\x46\x52\x4f\x4d\x20\x73\171\163\157\x62\152\x65\x63\164\163\40\x73\171\163\x31\12\112\x4f\111\116\40\163\x79\163\x6f\x62\x6a\x65\143\x74\163\40\x73\171\x73\62\x20\117\116\40\x73\171\x73\61\x2e\160\x61\162\x65\x6e\x74\x5f\157\142\152\40\x3d\40\x73\x79\163\x32\56\151\x64\xa\127\x48\105\x52\105\x20\x73\171\x73\x31\x2e\x78\164\x79\160\145\x20\75\x20\47\x54\122\47\40\101\x4e\104\40\x73\x79\x73\62\x2e\x6e\x61\x6d\x65\40\75\40" . q($Q)) as $I) { $H[$I["\x6e\x61\x6d\145"]] = array($I["\x54\x69\x6d\x69\156\147"], $I["\x45\166\x65\x6e\x74"]); } return $H; } function trigger_options() { return array("\x54\151\x6d\x69\x6e\x67" => array("\101\x46\x54\x45\122", "\x49\116\x53\x54\105\101\x44\x20\117\106"), "\105\166\x65\x6e\x74" => array("\x49\116\123\x45\122\124", "\x55\120\104\x41\124\x45", "\x44\105\114\105\x54\x45"), "\124\171\160\145" => array("\101\x53")); } function schemas() { return get_vals("\x53\x45\x4c\105\x43\x54\40\156\141\155\x65\40\x46\x52\x4f\x4d\40\x73\171\x73\x2e\x73\143\x68\x65\155\141\x73"); } function get_schema() { global $g; if ($_GET["\156\x73"] != '') { return $_GET["\156\x73"]; } return $g->result("\123\105\x4c\x45\103\x54\x20\x53\103\x48\105\x4d\101\137\x4e\101\115\105\x28\x29"); } function set_schema($ah) { return true; } function use_sql($j) { return "\125\123\x45\40" . idf_escape($j); } function show_variables() { return array(); } function show_status() { return array(); } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function support($Pc) { return preg_match("\176\x5e\50\143\x6f\x6d\155\145\x6e\164\174\x63\x6f\154\x75\155\156\x73\174\144\x61\164\x61\142\x61\163\x65\x7c\x64\x72\x6f\x70\137\143\157\154\174\151\156\x64\x65\170\145\x73\174\x64\x65\x73\x63\x69\x64\170\174\x73\x63\x68\145\155\145\x7c\163\x71\154\174\x74\x61\142\x6c\145\174\164\162\x69\x67\x67\145\x72\x7c\166\151\x65\167\x7c\166\151\145\x77\x5f\x74\162\x69\x67\x67\145\162\51\44\176", $Pc); } $x = "\155\x73\x73\161\154"; $U = array(); $Hh = array(); foreach (array("\x4e\165\155\x62\x65\x72\x73" => array("\164\x69\156\171\x69\156\164" => 3, "\x73\155\x61\x6c\154\x69\x6e\164" => 5, "\x69\156\164" => 10, "\142\151\147\151\x6e\x74" => 20, "\142\151\164" => 1, "\144\145\143\151\155\x61\x6c" => 0, "\x72\145\141\154" => 12, "\x66\x6c\157\x61\164" => 53, "\x73\155\x61\154\x6c\x6d\157\x6e\x65\x79" => 10, "\x6d\x6f\x6e\x65\171" => 20), "\104\141\x74\145\x20\141\156\x64\40\164\151\155\x65" => array("\144\141\164\145" => 10, "\x73\x6d\x61\154\x6c\144\141\x74\x65\x74\x69\155\145" => 19, "\144\141\164\x65\164\x69\x6d\145" => 19, "\x64\x61\164\145\x74\151\155\x65\x32" => 19, "\164\151\x6d\145" => 8, "\144\x61\164\145\x74\x69\x6d\x65\x6f\x66\x66\x73\x65\164" => 10), "\x53\x74\162\151\x6e\147\163" => array("\143\150\x61\x72" => 8000, "\x76\141\162\143\x68\x61\x72" => 8000, "\x74\x65\170\x74" => 2147483647, "\156\x63\150\x61\162" => 4000, "\x6e\166\141\x72\x63\x68\x61\x72" => 4000, "\x6e\x74\x65\x78\x74" => 1073741823), "\102\151\156\x61\x72\171" => array("\142\x69\x6e\x61\x72\x79" => 8000, "\x76\141\x72\x62\x69\x6e\141\162\x79" => 8000, "\x69\x6d\141\x67\x65" => 2147483647)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array(); $vf = array("\75", "\74", "\x3e", "\x3c\x3d", "\76\x3d", "\x21\x3d", "\x4c\x49\113\105", "\x4c\111\x4b\x45\x20\45\45", "\111\x4e", "\x49\x53\x20\116\x55\x4c\x4c", "\x4e\x4f\124\40\x4c\111\x4b\105", "\x4e\x4f\x54\x20\111\116", "\x49\123\x20\x4e\117\x54\40\116\125\114\114"); $kd = array("\x6c\145\156", "\x6c\x6f\167\x65\162", "\x72\x6f\165\x6e\144", "\165\x70\160\145\x72"); $qd = array("\141\166\x67", "\143\157\165\156\x74", "\143\x6f\x75\x6e\x74\40\x64\151\x73\x74\x69\156\x63\x74", "\155\141\170", "\155\x69\x6e", "\163\165\x6d"); $mc = array(array("\144\x61\x74\145\174\164\151\x6d\145" => "\x67\x65\164\144\141\x74\145"), array("\151\x6e\164\174\144\145\143\151\x6d\x61\154\174\x72\x65\x61\154\x7c\146\154\157\141\164\174\155\157\x6e\x65\171\x7c\x64\141\164\x65\x74\151\155\x65" => "\x2b\x2f\x2d", "\143\150\x61\162\174\164\145\x78\164" => "\x2b")); } goto Pg0y8; Fg6cl: if (!defined("\123\111\x44")) { session_cache_limiter(''); session_name("\141\144\x6d\x69\x6e\x65\162\x5f\163\x69\144"); $Of = array(0, preg_replace("\176\134\77\56\x2a\176", '', $_SERVER["\122\x45\121\x55\105\x53\124\x5f\125\122\x49"]), '', $ba); if (version_compare(PHP_VERSION, "\65\56\62\x2e\60") >= 0) { $Of[] = true; } call_user_func_array("\163\x65\163\163\x69\x6f\156\x5f\x73\145\x74\x5f\143\157\157\153\151\x65\x5f\x70\141\x72\141\x6d\x73", $Of); session_start(); } goto MRnk7; t00RN: function get_file($y, $Sb = false) { $Tc = $_FILES[$y]; if (!$Tc) { return null; } foreach ($Tc as $y => $X) { $Tc[$y] = (array) $X; } $H = ''; foreach ($Tc["\145\x72\162\157\162"] as $y => $n) { if ($n) { return $n; } $B = $Tc["\156\x61\x6d\x65"][$y]; $mi = $Tc["\x74\x6d\x70\x5f\x6e\141\155\x65"][$y]; $_b = file_get_contents($Sb && preg_match("\x7e\134\56\x67\172\44\176", $B) ? "\x63\157\155\160\x72\x65\163\163\x2e\x7a\x6c\151\142\72\57\57{$mi}" : $mi); if ($Sb) { $Dh = substr($_b, 0, 3); if (function_exists("\x69\x63\x6f\156\x76") && preg_match("\x7e\x5e\xfe\xff\174\x5e\xff\xfe\176", $Dh, $Hg)) { $_b = iconv("\x75\164\146\x2d\x31\x36", "\165\164\x66\55\x38", $_b); } elseif ($Dh == "\357\xbb\277") { $_b = substr($_b, 3); } $H .= $_b . "\xa\xa"; } else { $H .= $_b; } } return $H; } goto wRDyw; dwO29: function tar_file($Uc, $li) { $H = pack("\x61\x31\60\x30\x61\x38\141\70\x61\x38\141\61\x32\141\x31\x32", $Uc, 644, 0, 0, decoct($li->size), decoct(time())); $hb = 8 * 32; for ($s = 0; $s < strlen($H); $s++) { $hb += ord($H[$s]); } $H .= sprintf("\x25\x30\x36\157", $hb) . "\x0\40"; echo $H, str_repeat("\x0", 512 - strlen($H)); $li->send(); echo str_repeat("\x0", 511 - ($li->size + 511) % 512); } goto SbgqV; iVM3J: function format_time($Dh) { return sprintf("\45\56\x33\146\x20\x73", max(0, microtime(true) - $Dh)); } goto UQSAZ; DmlqK: function cookie($B, $Y, $ve = 2592000) { global $ba; return header("\123\x65\164\x2d\103\x6f\157\x6b\x69\145\x3a\40{$B}\75" . urlencode($Y) . ($ve ? "\x3b\40\x65\x78\160\x69\x72\145\163\75" . gmdate("\104\54\40\144\x20\x4d\x20\131\x20\x48\72\x69\72\163", time() + $ve) . "\x20\x47\x4d\x54" : '') . "\73\40\x70\x61\x74\x68\x3d" . preg_replace("\176\134\x3f\56\52\176", '', $_SERVER["\x52\x45\x51\125\x45\123\124\x5f\125\122\x49"]) . ($ba ? "\73\x20\x73\x65\143\x75\162\x65" : '') . "\x3b\40\110\x74\164\x70\117\x6e\154\171\x3b\x20\x53\x61\155\145\123\151\164\145\75\154\x61\x78", false); } goto fVj0g; kEVQv: $Vc = !preg_match("\176\x5e\50\x75\156\163\x61\146\145\x5f\x72\141\167\51\77\x24\x7e", ini_get("\146\151\154\x74\x65\162\56\x64\145\146\141\165\154\164")); goto mQOC3; wdE6o: if (isset($_GET["\163\161\x6c\151\164\x65"]) || isset($_GET["\x73\161\x6c\x69\164\145\x32"])) { $hg = array(isset($_GET["\163\161\x6c\x69\x74\x65"]) ? "\x53\x51\114\151\164\145\x33" : "\123\x51\114\x69\164\145", "\120\x44\117\x5f\x53\121\114\151\164\x65"); define("\104\x52\x49\126\105\122", isset($_GET["\x73\x71\154\151\164\145"]) ? "\163\x71\154\x69\164\145" : "\163\161\x6c\151\164\145\x32"); if (class_exists(isset($_GET["\163\x71\154\151\164\145"]) ? "\123\x51\x4c\151\164\x65\63" : "\123\x51\x4c\151\x74\145\x44\141\x74\x61\x62\x61\163\x65")) { if (isset($_GET["\163\161\154\151\164\145"])) { class Min_SQLite { var $extension = "\x53\121\114\151\x74\145\x33", $server_info, $affected_rows, $errno, $error, $_link; function __construct($Uc) { $this->_link = new SQLite3($Uc); $Yi = $this->_link->version(); $this->server_info = $Yi["\x76\x65\x72\x73\x69\x6f\x6e\123\x74\162\151\x6e\147"]; } function query($F) { $G = @$this->_link->query($F); $this->error = ''; if (!$G) { $this->errno = $this->_link->lastErrorCode(); $this->error = $this->_link->lastErrorMsg(); return false; } elseif ($G->numColumns()) { return new Min_Result($G); } $this->affected_rows = $this->_link->changes(); return true; } function quote($P) { return is_utf8($P) ? "\x27" . $this->_link->escapeString($P) . "\47" : "\x78\x27" . reset(unpack("\x48\x2a", $P)) . "\x27"; } function store_result() { return $this->_result; } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } $I = $G->_result->fetchArray(); return $I[$o]; } } class Min_Result { var $_result, $_offset = 0, $num_rows; function __construct($G) { $this->_result = $G; } function fetch_assoc() { return $this->_result->fetchArray(SQLITE3_ASSOC); } function fetch_row() { return $this->_result->fetchArray(SQLITE3_NUM); } function fetch_field() { $e = $this->_offset++; $T = $this->_result->columnType($e); return (object) array("\156\x61\x6d\x65" => $this->_result->columnName($e), "\x74\171\160\x65" => $T, "\143\150\x61\162\163\x65\x74\156\162" => $T == SQLITE3_BLOB ? 63 : 0); } function __desctruct() { return $this->_result->finalize(); } } } else { class Min_SQLite { var $extension = "\x53\x51\114\x69\164\x65", $server_info, $affected_rows, $error, $_link; function __construct($Uc) { $this->server_info = sqlite_libversion(); $this->_link = new SQLiteDatabase($Uc); } function query($F, $Ci = false) { $Re = $Ci ? "\165\x6e\x62\165\x66\x66\145\162\145\144\x51\x75\145\162\171" : "\x71\x75\x65\162\x79"; $G = @$this->_link->{$Re}($F, SQLITE_BOTH, $n); $this->error = ''; if (!$G) { $this->error = $n; return false; } elseif ($G === true) { $this->affected_rows = $this->changes(); return true; } return new Min_Result($G); } function quote($P) { return "\47" . sqlite_escape_string($P) . "\47"; } function store_result() { return $this->_result; } function result($F, $o = 0) { $G = $this->query($F); if (!is_object($G)) { return false; } $I = $G->_result->fetch(); return $I[$o]; } } class Min_Result { var $_result, $_offset = 0, $num_rows; function __construct($G) { $this->_result = $G; if (method_exists($G, "\x6e\165\155\x52\x6f\167\163")) { $this->num_rows = $G->numRows(); } } function fetch_assoc() { $I = $this->_result->fetch(SQLITE_ASSOC); if (!$I) { return false; } $H = array(); foreach ($I as $y => $X) { $H[$y[0] == "\42" ? idf_unescape($y) : $y] = $X; } return $H; } function fetch_row() { return $this->_result->fetch(SQLITE_NUM); } function fetch_field() { $B = $this->_result->fieldName($this->_offset++); $ag = "\x28\134\133\56\x2a\135\x7c\42\50\x3f\72\133\x5e\x22\135\x7c\42\42\51\x2a\42\x7c\50\x2e\53\51\x29"; if (preg_match("\176\x5e\50{$ag}\x5c\x2e\51\x3f{$ag}\44\x7e", $B, $A)) { $Q = $A[3] != '' ? $A[3] : idf_unescape($A[2]); $B = $A[5] != '' ? $A[5] : idf_unescape($A[4]); } return (object) array("\x6e\141\155\145" => $B, "\157\162\x67\156\141\155\x65" => $B, "\157\162\147\x74\141\x62\x6c\x65" => $Q); } } } } elseif (extension_loaded("\160\x64\157\x5f\163\x71\x6c\151\164\145")) { class Min_SQLite extends Min_PDO { var $extension = "\x50\104\117\x5f\123\x51\x4c\x69\x74\145"; function __construct($Uc) { $this->dsn(DRIVER . "\72{$Uc}", '', ''); } } } if (class_exists("\115\x69\156\x5f\x53\x51\x4c\x69\x74\x65")) { class Min_DB extends Min_SQLite { function __construct() { parent::__construct("\x3a\x6d\145\155\157\x72\x79\72"); $this->query("\x50\122\101\x47\x4d\x41\40\146\x6f\162\145\x69\x67\156\x5f\x6b\x65\x79\163\40\75\40\x31"); } function select_db($Uc) { if (is_readable($Uc) && $this->query("\x41\x54\124\101\x43\x48\x20" . $this->quote(preg_match("\176\50\136\133\57\134\x5c\135\x7c\72\51\176", $Uc) ? $Uc : dirname($_SERVER["\123\x43\122\111\x50\124\x5f\106\x49\x4c\x45\116\x41\x4d\105"]) . "\x2f{$Uc}") . "\x20\x41\x53\40\x61")) { parent::__construct($Uc); $this->query("\x50\122\101\107\x4d\x41\x20\146\x6f\x72\x65\x69\x67\x6e\137\x6b\x65\171\163\x20\x3d\x20\61"); return true; } return false; } function multi_query($F) { return $this->_result = $this->query($F); } function next_result() { return false; } } } class Min_Driver extends Min_SQL { function insertUpdate($Q, $J, $kg) { $Vi = array(); foreach ($J as $N) { $Vi[] = "\50" . implode("\54\40", $N) . "\51"; } return queries("\x52\x45\x50\114\x41\103\x45\x20\x49\x4e\124\x4f\x20" . table($Q) . "\x20\x28" . implode("\x2c\40", array_keys(reset($J))) . "\x29\x20\126\101\x4c\125\x45\x53\xa" . implode("\x2c\12", $Vi)); } function tableHelp($B) { if ($B == "\163\x71\154\151\164\x65\x5f\163\145\161\x75\145\156\x63\145") { return "\x66\151\x6c\145\x66\157\162\155\x61\x74\62\x2e\150\x74\x6d\154\43\x73\145\161\x74\x61\142"; } if ($B == "\x73\161\x6c\x69\x74\x65\x5f\x6d\x61\163\164\x65\162") { return "\146\151\154\x65\x66\157\x72\155\x61\x74\x32\56\150\164\x6d\x6c\x23{$B}"; } } } function idf_escape($u) { return "\x22" . str_replace("\42", "\x22\42", $u) . "\42"; } function table($u) { return idf_escape($u); } function connect() { global $b; list(, , $E) = $b->credentials(); if ($E != '') { return "\104\x61\164\x61\x62\141\163\x65\40\x64\x6f\x65\163\x20\x6e\x6f\x74\40\163\x75\x70\160\157\x72\x74\x20\160\141\x73\x73\x77\157\x72\144\56"; } return new Min_DB(); } function get_databases() { return array(); } function limit($F, $Z, $z, $C = 0, $L = "\x20") { return "\40{$F}{$Z}" . ($z !== null ? $L . "\114\111\x4d\x49\124\x20{$z}" . ($C ? "\x20\x4f\106\106\123\x45\x54\x20{$C}" : '') : ''); } function limit1($Q, $F, $Z, $L = "\12") { global $g; return preg_match("\x7e\x5e\x49\116\x54\117\x7e", $F) || $g->result("\x53\105\x4c\105\x43\124\x20\163\x71\154\151\164\145\137\x63\157\x6d\160\151\154\145\x6f\x70\164\x69\157\156\137\165\x73\145\144\x28\x27\x45\x4e\101\102\114\x45\x5f\125\x50\104\x41\x54\105\137\x44\x45\114\x45\124\x45\137\x4c\x49\115\111\x54\47\51") ? limit($F, $Z, 1, 0, $L) : "\x20{$F}\x20\x57\110\105\122\x45\x20\162\x6f\x77\151\x64\x20\75\40\x28\x53\x45\114\x45\103\x54\x20\x72\157\167\151\144\x20\106\122\x4f\x4d\40" . table($Q) . $Z . $L . "\x4c\x49\x4d\x49\x54\x20\61\x29"; } function db_collation($l, $pb) { global $g; return $g->result("\x50\x52\x41\x47\115\101\x20\145\x6e\x63\x6f\144\151\x6e\147"); } function engines() { return array(); } function logged_user() { return get_current_user(); } function tables_list() { return get_key_vals("\123\105\114\105\x43\124\x20\156\x61\x6d\x65\54\x20\164\x79\x70\x65\40\x46\x52\x4f\x4d\x20\x73\x71\154\x69\x74\x65\x5f\x6d\x61\x73\164\x65\162\x20\127\x48\105\122\x45\40\x74\171\160\x65\x20\x49\x4e\40\50\x27\164\x61\142\x6c\145\47\x2c\40\x27\166\151\x65\x77\x27\51\x20\117\x52\x44\105\122\x20\x42\131\40\x28\x6e\x61\x6d\x65\x20\x3d\x20\47\163\x71\154\151\164\x65\137\163\x65\161\x75\145\x6e\143\x65\47\51\x2c\40\156\x61\x6d\145"); } function count_tables($k) { return array(); } function table_status($B = '') { global $g; $H = array(); foreach (get_rows("\123\105\x4c\x45\103\x54\40\x6e\x61\x6d\x65\40\x41\x53\x20\116\141\155\x65\x2c\40\x74\171\160\x65\x20\x41\x53\x20\x45\x6e\147\x69\x6e\x65\x2c\40\47\162\157\x77\151\x64\x27\40\x41\x53\40\117\x69\144\54\x20\x27\x27\x20\101\x53\x20\x41\165\x74\157\137\x69\x6e\x63\x72\x65\x6d\x65\156\164\40\x46\122\117\x4d\x20\163\x71\x6c\x69\164\145\x5f\155\x61\163\x74\145\162\40\x57\x48\105\x52\x45\x20\x74\171\160\x65\40\111\116\40\50\x27\164\141\142\x6c\x65\x27\54\40\47\166\x69\145\x77\x27\51\40" . ($B != '' ? "\101\x4e\x44\40\x6e\141\155\x65\x20\75\40" . q($B) : "\117\x52\104\x45\x52\x20\102\x59\x20\x6e\x61\x6d\145")) as $I) { $I["\x52\157\167\x73"] = $g->result("\x53\105\114\105\x43\124\40\x43\x4f\x55\x4e\124\x28\52\x29\40\x46\122\117\115\40" . idf_escape($I["\116\x61\x6d\145"])); $H[$I["\116\x61\x6d\x65"]] = $I; } foreach (get_rows("\123\x45\114\105\103\x54\x20\x2a\40\106\122\117\115\40\x73\161\x6c\151\x74\145\x5f\x73\x65\x71\165\x65\156\x63\x65", null, '') as $I) { $H[$I["\156\x61\x6d\145"]]["\x41\x75\x74\157\x5f\151\x6e\143\x72\145\155\x65\156\x74"] = $I["\x73\x65\x71"]; } return $B != '' ? $H[$B] : $H; } function is_view($R) { return $R["\105\x6e\147\x69\x6e\x65"] == "\166\151\145\167"; } function fk_support($R) { global $g; return !$g->result("\123\x45\x4c\105\103\124\x20\163\161\x6c\151\164\145\x5f\143\157\x6d\160\x69\x6c\145\x6f\x70\x74\x69\x6f\x6e\x5f\x75\163\145\144\50\x27\x4f\x4d\111\124\x5f\x46\117\122\105\x49\107\116\x5f\x4b\105\x59\x27\51"); } function fields($Q) { global $g; $H = array(); $kg = ''; foreach (get_rows("\120\122\x41\x47\115\x41\x20\x74\x61\x62\154\145\x5f\151\x6e\x66\x6f\x28" . table($Q) . "\51") as $I) { $B = $I["\x6e\141\155\145"]; $T = strtolower($I["\164\171\x70\145"]); $Tb = $I["\x64\x66\x6c\x74\137\x76\141\x6c\x75\x65"]; $H[$B] = array("\x66\x69\x65\154\x64" => $B, "\x74\x79\x70\x65" => preg_match("\x7e\151\x6e\x74\x7e\x69", $T) ? "\x69\x6e\x74\x65\147\x65\162" : (preg_match("\176\143\x68\141\162\x7c\143\154\x6f\x62\174\x74\145\170\164\176\151", $T) ? "\x74\x65\x78\164" : (preg_match("\176\x62\154\157\142\176\151", $T) ? "\x62\x6c\157\x62" : (preg_match("\x7e\x72\145\141\x6c\174\x66\x6c\x6f\141\174\x64\157\165\x62\x7e\x69", $T) ? "\162\145\x61\154" : "\x6e\165\x6d\145\162\x69\143"))), "\x66\x75\x6c\154\137\x74\171\160\145" => $T, "\144\145\146\141\165\x6c\164" => preg_match("\x7e\x27\50\x2e\x2a\51\47\176", $Tb, $A) ? str_replace("\47\47", "\x27", $A[1]) : ($Tb == "\116\x55\x4c\x4c" ? null : $Tb), "\156\165\x6c\x6c" => !$I["\156\x6f\164\156\x75\x6c\x6c"], "\160\x72\x69\x76\x69\154\145\x67\145\163" => array("\x73\x65\154\x65\x63\164" => 1, "\151\x6e\163\x65\162\164" => 1, "\165\x70\144\x61\164\x65" => 1), "\x70\x72\151\155\x61\x72\x79" => $I["\x70\153"]); if ($I["\160\x6b"]) { if ($kg != '') { $H[$kg]["\141\165\164\157\x5f\151\x6e\143\x72\145\155\x65\x6e\164"] = false; } elseif (preg_match("\176\136\x69\156\164\145\147\145\x72\44\x7e\151", $T)) { $H[$B]["\x61\x75\164\157\137\151\x6e\x63\162\145\155\x65\x6e\164"] = true; } $kg = $B; } } $zh = $g->result("\123\105\x4c\105\x43\124\40\163\x71\x6c\x20\106\x52\117\x4d\x20\x73\x71\154\x69\x74\145\137\155\x61\x73\x74\145\162\40\x57\x48\x45\x52\105\x20\x74\x79\160\145\x20\x3d\x20\x27\x74\x61\142\154\145\x27\40\x41\x4e\x44\x20\156\x61\x6d\x65\40\x3d\40" . q($Q)); preg_match_all("\x7e\50\x28\x22\x5b\136\42\x5d\52\x2b\42\51\53\174\133\141\55\x7a\x30\55\71\x5f\x5d\53\51\x5c\163\53\x74\x65\170\x74\x5c\x73\x2b\103\x4f\114\x4c\101\124\105\x5c\163\x2b\x28\x27\x5b\x5e\47\x5d\53\47\174\x5c\x53\x2b\x29\x7e\x69", $zh, $De, PREG_SET_ORDER); foreach ($De as $A) { $B = str_replace("\42\x22", "\x22", preg_replace("\176\136\x22\174\x22\x24\176", '', $A[1])); if ($H[$B]) { $H[$B]["\x63\x6f\x6c\x6c\x61\164\x69\x6f\x6e"] = trim($A[3], "\x27"); } } return $H; } function indexes($Q, $h = null) { global $g; if (!is_object($h)) { $h = $g; } $H = array(); $zh = $h->result("\123\x45\114\105\x43\124\x20\163\161\154\x20\x46\122\x4f\115\40\x73\x71\x6c\x69\x74\145\137\x6d\x61\163\x74\145\x72\40\127\110\x45\122\x45\x20\164\x79\160\x65\x20\75\40\47\x74\141\142\x6c\x65\47\x20\101\116\104\40\x6e\x61\155\x65\x20\75\40" . q($Q)); if (preg_match("\176\134\142\x50\x52\x49\115\x41\122\x59\x5c\x73\53\113\105\131\x5c\x73\52\134\50\x28\x28\133\136\x29\x22\135\53\x7c\42\x5b\136\x22\x5d\52\x22\174\140\133\136\x60\x5d\52\x60\x29\x2b\x2b\x29\x7e\x69", $zh, $A)) { $H[''] = array("\164\x79\x70\145" => "\x50\x52\x49\x4d\101\122\131", "\x63\157\154\x75\x6d\x6e\x73" => array(), "\x6c\x65\x6e\x67\164\150\x73" => array(), "\x64\x65\163\x63\x73" => array()); preg_match_all("\176\50\50\x28\42\133\136\x22\135\52\x2b\x22\51\x2b\x7c\x28\77\x3a\x60\x5b\x5e\140\x5d\52\x2b\140\51\53\51\174\x28\x5c\x53\53\x29\x29\x28\x5c\163\x2b\50\x41\x53\x43\174\104\105\x53\103\x29\x29\77\50\54\x5c\163\x2a\174\44\x29\x7e\x69", $A[1], $De, PREG_SET_ORDER); foreach ($De as $A) { $H['']["\143\157\154\165\155\x6e\163"][] = idf_unescape($A[2]) . $A[4]; $H['']["\144\x65\x73\x63\x73"][] = preg_match("\176\x44\105\123\103\x7e\151", $A[5]) ? "\x31" : null; } } if (!$H) { foreach (fields($Q) as $B => $o) { if ($o["\x70\x72\151\155\141\x72\171"]) { $H[''] = array("\x74\171\160\x65" => "\x50\122\111\115\x41\122\131", "\x63\157\154\165\x6d\x6e\x73" => array($B), "\x6c\x65\x6e\x67\164\x68\x73" => array(), "\144\x65\x73\x63\163" => array(null)); } } } $Bh = get_key_vals("\123\105\x4c\x45\x43\124\x20\156\x61\x6d\145\54\40\163\x71\x6c\x20\x46\122\117\x4d\x20\163\x71\154\x69\164\x65\x5f\x6d\141\x73\164\x65\x72\x20\127\x48\105\122\105\40\164\x79\160\x65\x20\75\40\x27\x69\x6e\x64\x65\170\x27\40\101\x4e\104\40\164\142\154\x5f\x6e\x61\155\x65\x20\x3d\x20" . q($Q), $h); foreach (get_rows("\120\122\101\107\x4d\x41\40\151\x6e\144\145\170\137\x6c\x69\x73\x74\50" . table($Q) . "\51", $h) as $I) { $B = $I["\x6e\x61\x6d\145"]; $v = array("\164\x79\x70\x65" => $I["\x75\156\x69\161\x75\x65"] ? "\x55\116\111\121\125\x45" : "\111\116\104\105\x58"); $v["\154\145\x6e\x67\164\x68\163"] = array(); $v["\x64\145\x73\143\x73"] = array(); foreach (get_rows("\120\122\101\x47\x4d\101\40\151\156\x64\145\x78\x5f\x69\156\146\x6f\x28" . idf_escape($B) . "\x29", $h) as $Xg) { $v["\143\157\154\165\x6d\x6e\163"][] = $Xg["\x6e\141\x6d\145"]; $v["\x64\x65\x73\143\163"][] = null; } if (preg_match("\x7e\x5e\103\122\105\101\x54\x45\50\x20\125\x4e\x49\x51\125\x45\51\x3f\x20\x49\116\x44\105\130\x20" . preg_quote(idf_escape($B) . "\x20\x4f\116\x20" . idf_escape($Q), "\x7e") . "\x20\x5c\50\x28\56\52\x29\134\x29\44\x7e\151", $Bh[$B], $Hg)) { preg_match_all("\x2f\x28\42\133\136\42\x5d\x2a\53\42\51\x2b\50\x20\x44\105\x53\x43\51\77\57", $Hg[2], $De); foreach ($De[2] as $y => $X) { if ($X) { $v["\x64\145\163\143\163"][$y] = "\61"; } } } if (!$H[''] || $v["\x74\x79\x70\145"] != "\125\116\111\x51\125\105" || $v["\x63\157\x6c\x75\155\156\163"] != $H['']["\x63\x6f\x6c\165\155\156\163"] || $v["\x64\x65\163\x63\x73"] != $H['']["\x64\145\163\x63\x73"] || !preg_match("\x7e\x5e\163\x71\x6c\151\x74\145\137\x7e", $B)) { $H[$B] = $v; } } return $H; } function foreign_keys($Q) { $H = array(); foreach (get_rows("\120\x52\101\x47\x4d\x41\40\x66\157\162\145\151\147\156\x5f\x6b\x65\171\137\154\x69\x73\164\50" . table($Q) . "\51") as $I) { $q =& $H[$I["\151\144"]]; if (!$q) { $q = $I; } $q["\163\x6f\x75\162\143\x65"][] = $I["\x66\162\x6f\x6d"]; $q["\x74\141\x72\x67\x65\164"][] = $I["\164\157"]; } return $H; } function view($B) { global $g; return array("\x73\x65\154\145\143\x74" => preg_replace("\x7e\x5e\x28\77\72\x5b\136\140\42\133\x5d\x2b\174\x60\x5b\136\x60\135\52\140\174\x22\133\x5e\42\x5d\x2a\42\51\52\x20\101\x53\x5c\163\x2b\x7e\x69\x55", '', $g->result("\123\x45\114\105\x43\124\40\x73\161\x6c\x20\106\x52\117\x4d\40\x73\161\154\151\164\x65\x5f\x6d\141\x73\x74\x65\162\x20\x57\x48\x45\122\105\40\x6e\x61\155\145\40\75\x20" . q($B)))); } function collations() { return isset($_GET["\143\x72\x65\141\164\x65"]) ? get_vals("\120\x52\101\107\115\x41\x20\x63\157\154\154\x61\164\151\157\x6e\x5f\154\x69\163\164", 1) : array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function check_sqlite_name($B) { global $g; $Kc = "\x64\142\174\x73\144\142\174\x73\x71\x6c\x69\x74\145"; if (!preg_match("\x7e\136\133\136\x5c\x30\x5d\52\134\56\x28{$Kc}\51\x24\x7e", $B)) { $g->error = sprintf("\120\154\145\141\x73\145\40\165\x73\x65\x20\x6f\156\x65\x20\x6f\146\40\164\150\x65\x20\x65\170\164\x65\156\x73\x69\157\x6e\x73\40\x25\x73\x2e", str_replace("\x7c", "\x2c\40", $Kc)); return false; } return true; } function create_database($l, $d) { global $g; if (file_exists($l)) { $g->error = "\106\x69\154\145\x20\145\x78\x69\163\164\163\56"; return false; } if (!check_sqlite_name($l)) { return false; } try { $_ = new Min_SQLite($l); } catch (Exception $Ac) { $g->error = $Ac->getMessage(); return false; } $_->query("\x50\x52\x41\x47\x4d\x41\x20\145\156\x63\157\144\x69\156\147\x20\x3d\x20\42\x55\124\106\x2d\70\42"); $_->query("\103\122\x45\x41\x54\105\40\x54\x41\x42\x4c\x45\x20\x61\x64\x6d\x69\156\145\x72\x20\50\x69\51"); $_->query("\x44\x52\117\120\x20\x54\x41\102\x4c\105\x20\x61\144\155\151\x6e\x65\162"); return true; } function drop_databases($k) { global $g; $g->__construct("\x3a\x6d\145\155\x6f\x72\x79\x3a"); foreach ($k as $l) { if (!@unlink($l)) { $g->error = "\106\151\x6c\145\40\145\x78\151\x73\164\x73\56"; return false; } } return true; } function rename_database($B, $d) { global $g; if (!check_sqlite_name($B)) { return false; } $g->__construct("\x3a\x6d\145\155\157\x72\x79\72"); $g->error = "\x46\x69\x6c\x65\x20\145\x78\151\163\164\163\56"; return @rename(DB, $B); } function auto_increment() { return "\x20\x50\x52\111\x4d\101\x52\x59\40\x4b\x45\x59" . (DRIVER == "\x73\161\x6c\151\x74\145" ? "\40\x41\125\124\117\x49\x4e\x43\x52\x45\115\x45\x4e\124" : ''); } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { global $g; $Oi = $Q == '' || $cd; foreach ($p as $o) { if ($o[0] != '' || !$o[1] || $o[2]) { $Oi = true; break; } } $c = array(); $If = array(); foreach ($p as $o) { if ($o[1]) { $c[] = $Oi ? $o[1] : "\101\x44\104\x20" . implode($o[1]); if ($o[0] != '') { $If[$o[0]] = $o[1][0]; } } } if (!$Oi) { foreach ($c as $X) { if (!queries("\101\x4c\x54\x45\x52\40\x54\101\x42\x4c\105\x20" . table($Q) . "\x20{$X}")) { return false; } } if ($Q != $B && !queries("\x41\x4c\124\105\122\40\124\101\x42\x4c\x45\40" . table($Q) . "\40\x52\105\x4e\101\x4d\105\40\x54\117\x20" . table($B))) { return false; } } elseif (!recreate_table($Q, $B, $c, $If, $cd, $Ma)) { return false; } if ($Ma) { queries("\102\105\x47\x49\x4e"); queries("\x55\x50\104\x41\124\105\40\x73\x71\154\151\164\145\137\163\x65\161\x75\x65\156\x63\x65\40\x53\105\x54\x20\163\145\161\x20\75\x20{$Ma}\x20\127\110\x45\122\105\40\x6e\141\155\145\x20\75\x20" . q($B)); if (!$g->affected_rows) { queries("\x49\116\123\x45\122\x54\40\x49\116\x54\x4f\40\x73\x71\x6c\151\x74\x65\x5f\163\x65\161\x75\x65\x6e\x63\x65\40\50\x6e\x61\155\145\x2c\40\x73\x65\x71\51\40\126\x41\114\125\x45\123\x20\50" . q($B) . "\54\x20{$Ma}\x29"); } queries("\103\117\115\x4d\x49\x54"); } return true; } function recreate_table($Q, $B, $p, $If, $cd, $Ma, $w = array()) { global $g; if ($Q != '') { if (!$p) { foreach (fields($Q) as $y => $o) { if ($w) { $o["\141\x75\x74\x6f\137\x69\x6e\x63\x72\x65\x6d\x65\x6e\x74"] = 0; } $p[] = process_field($o, $o); $If[$y] = idf_escape($y); } } $lg = false; foreach ($p as $o) { if ($o[6]) { $lg = true; } } $hc = array(); foreach ($w as $y => $X) { if ($X[2] == "\104\x52\117\120") { $hc[$X[1]] = true; unset($w[$y]); } } foreach (indexes($Q) as $ge => $v) { $f = array(); foreach ($v["\143\157\154\x75\155\x6e\x73"] as $y => $e) { if (!$If[$e]) { continue 2; } $f[] = $If[$e] . ($v["\144\145\163\143\x73"][$y] ? "\40\104\x45\123\103" : ''); } if (!$hc[$ge]) { if ($v["\164\171\x70\x65"] != "\120\122\x49\x4d\x41\122\131" || !$lg) { $w[] = array($v["\164\171\x70\x65"], $ge, $f); } } } foreach ($w as $y => $X) { if ($X[0] == "\120\x52\x49\x4d\101\122\131") { unset($w[$y]); $cd[] = "\x20\40\120\x52\111\115\x41\x52\131\x20\x4b\x45\131\40\50" . implode("\54\40", $X[2]) . "\51"; } } foreach (foreign_keys($Q) as $ge => $q) { foreach ($q["\163\x6f\165\162\x63\145"] as $y => $e) { if (!$If[$e]) { continue 2; } $q["\x73\x6f\x75\162\x63\145"][$y] = idf_unescape($If[$e]); } if (!isset($cd["\x20{$ge}"])) { $cd[] = "\40" . format_foreign_key($q); } } queries("\102\x45\107\x49\x4e"); } foreach ($p as $y => $o) { $p[$y] = "\40\x20" . implode($o); } $p = array_merge($p, array_filter($cd)); $Zh = $Q == $B ? "\x61\144\155\x69\156\145\x72\137{$B}" : $B; if (!queries("\x43\x52\x45\x41\x54\x45\40\124\101\x42\114\x45\x20" . table($Zh) . "\x20\x28\xa" . implode("\54\12", $p) . "\12\51")) { return false; } if ($Q != '') { if ($If && !queries("\111\116\x53\x45\122\124\40\x49\x4e\x54\117\x20" . table($Zh) . "\x20\50" . implode("\54\40", $If) . "\x29\x20\123\105\x4c\105\x43\x54\40" . implode("\54\x20", array_map("\x69\x64\x66\x5f\145\163\x63\141\160\x65", array_keys($If))) . "\40\x46\x52\x4f\x4d\40" . table($Q))) { return false; } $_i = array(); foreach (triggers($Q) as $yi => $gi) { $xi = trigger($yi); $_i[] = "\x43\122\105\101\x54\105\40\x54\122\111\x47\x47\x45\x52\40" . idf_escape($yi) . "\40" . implode("\40", $gi) . "\40\117\116\x20" . table($B) . "\12{$xi["\x53\x74\141\164\145\155\145\156\164"]}"; } $Ma = $Ma ? 0 : $g->result("\123\x45\114\105\x43\x54\x20\x73\145\x71\x20\106\122\117\115\x20\x73\161\x6c\x69\164\145\x5f\x73\145\x71\165\x65\156\x63\145\40\x57\x48\105\122\105\40\156\x61\155\145\40\x3d\40" . q($Q)); if (!queries("\104\122\x4f\120\x20\x54\x41\102\114\x45\x20" . table($Q)) || $Q == $B && !queries("\x41\114\x54\105\x52\40\x54\101\102\x4c\x45\x20" . table($Zh) . "\40\122\105\x4e\x41\x4d\x45\40\x54\x4f\40" . table($B)) || !alter_indexes($B, $w)) { return false; } if ($Ma) { queries("\x55\120\104\101\124\x45\x20\x73\161\x6c\x69\x74\x65\137\x73\145\161\x75\145\x6e\x63\x65\x20\x53\105\124\40\163\x65\x71\40\75\x20{$Ma}\x20\x57\x48\x45\122\x45\40\x6e\x61\155\145\x20\75\40" . q($B)); } foreach ($_i as $xi) { if (!queries($xi)) { return false; } } queries("\103\117\115\115\111\x54"); } return true; } function index_sql($Q, $T, $B, $f) { return "\103\x52\x45\101\124\105\40{$T}\40" . ($T != "\111\x4e\x44\x45\x58" ? "\x49\x4e\104\105\130\40" : '') . idf_escape($B != '' ? $B : uniqid($Q . "\137")) . "\40\117\116\40" . table($Q) . "\40{$f}"; } function alter_indexes($Q, $c) { foreach ($c as $kg) { if ($kg[0] == "\x50\122\x49\x4d\101\122\131") { return recreate_table($Q, $Q, array(), array(), array(), 0, $c); } } foreach (array_reverse($c) as $X) { if (!queries($X[2] == "\x44\x52\117\120" ? "\x44\122\117\x50\40\x49\116\104\x45\x58\40" . idf_escape($X[1]) : index_sql($Q, $X[0], $X[1], "\50" . implode("\54\40", $X[2]) . "\x29"))) { return false; } } return true; } function truncate_tables($S) { return apply_queries("\x44\105\114\x45\x54\x45\40\106\122\x4f\115", $S); } function drop_views($aj) { return apply_queries("\x44\x52\117\x50\40\x56\111\105\x57", $aj); } function drop_tables($S) { return apply_queries("\x44\122\x4f\120\40\x54\x41\102\114\x45", $S); } function move_tables($S, $aj, $Xh) { return false; } function trigger($B) { global $g; if ($B == '') { return array("\x53\164\141\164\145\155\145\x6e\x74" => "\x42\x45\107\x49\116\xa\11\x3b\xa\105\116\x44"); } $u = "\50\77\72\x5b\136\x60\x22\x5c\x73\x5d\53\x7c\x60\133\136\x60\135\52\x60\x7c\42\133\x5e\42\135\x2a\42\51\53"; $zi = trigger_options(); preg_match("\176\136\x43\x52\x45\101\124\105\x5c\x73\53\124\x52\x49\107\x47\x45\x52\134\x73\x2a{$u}\x5c\x73\52\x28" . implode("\x7c", $zi["\x54\151\x6d\x69\x6e\147"]) . "\51\x5c\163\x2b\50\133\x61\x2d\172\135\x2b\51\x28\x3f\72\134\163\53\x4f\106\134\163\x2b\x28{$u}\51\x29\x3f\x5c\x73\53\x4f\x4e\134\x73\x2a{$u}\x5c\163\x2a\50\x3f\72\106\117\x52\x5c\x73\x2b\x45\x41\103\x48\134\x73\53\122\117\127\134\163\51\x3f\x28\x2e\52\51\176\151\163", $g->result("\123\x45\114\x45\103\x54\40\163\x71\154\x20\106\x52\117\x4d\40\163\161\x6c\151\164\145\137\x6d\x61\163\164\x65\x72\40\127\110\x45\122\105\40\x74\x79\x70\x65\x20\75\x20\x27\164\x72\x69\147\147\x65\162\x27\x20\101\116\x44\40\x6e\x61\x6d\145\40\75\x20" . q($B)), $A); $jf = $A[3]; return array("\x54\x69\x6d\151\156\147" => strtoupper($A[1]), "\105\x76\145\x6e\164" => strtoupper($A[2]) . ($jf ? "\40\x4f\x46" : ''), "\117\x66" => $jf[0] == "\140" || $jf[0] == "\x22" ? idf_unescape($jf) : $jf, "\x54\162\x69\x67\x67\x65\162" => $B, "\x53\164\x61\x74\145\x6d\x65\x6e\164" => $A[4]); } function triggers($Q) { $H = array(); $zi = trigger_options(); foreach (get_rows("\123\105\114\105\103\124\40\x2a\40\106\x52\117\115\x20\x73\x71\154\x69\164\x65\137\155\141\x73\164\x65\x72\x20\x57\110\105\x52\x45\40\164\171\160\145\x20\75\x20\x27\164\x72\x69\x67\147\145\x72\x27\40\x41\116\x44\x20\x74\x62\x6c\137\156\141\155\145\40\x3d\40" . q($Q)) as $I) { preg_match("\x7e\x5e\x43\122\x45\x41\124\x45\x5c\x73\53\124\x52\111\107\107\105\x52\134\163\52\50\77\72\133\x5e\140\42\x5c\163\135\53\174\x60\x5b\x5e\140\x5d\52\x60\174\42\x5b\136\x22\x5d\52\x22\51\53\134\x73\x2a\x28" . implode("\x7c", $zi["\x54\151\x6d\151\x6e\147"]) . "\x29\x5c\163\x2a\x28\x2e\x2a\x3f\51\x5c\163\x2b\117\x4e\x5c\142\176\x69", $I["\x73\161\154"], $A); $H[$I["\156\x61\x6d\x65"]] = array($A[1], $A[2]); } return $H; } function trigger_options() { return array("\124\x69\155\151\156\x67" => array("\x42\105\106\x4f\x52\105", "\x41\x46\124\x45\x52", "\111\x4e\x53\x54\x45\x41\104\x20\x4f\106"), "\x45\166\x65\x6e\164" => array("\111\116\123\105\x52\124", "\x55\x50\104\x41\124\x45", "\x55\x50\x44\x41\124\x45\x20\117\106", "\104\105\x4c\x45\x54\x45"), "\x54\x79\x70\145" => array("\x46\x4f\x52\x20\105\x41\x43\x48\40\x52\x4f\x57")); } function begin() { return queries("\x42\105\107\x49\116"); } function last_id() { global $g; return $g->result("\x53\x45\114\x45\103\124\40\114\x41\x53\124\137\111\x4e\123\x45\x52\124\137\122\117\127\111\x44\50\x29"); } function explain($g, $F) { return $g->query("\x45\x58\120\x4c\101\111\116\40\121\x55\105\x52\x59\40\x50\114\101\x4e\x20{$F}"); } function found_rows($R, $Z) { } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($bh) { return true; } function create_sql($Q, $Ma, $Ih) { global $g; $H = $g->result("\x53\105\114\105\103\124\40\163\x71\x6c\40\x46\x52\x4f\115\40\163\x71\154\151\x74\145\x5f\155\x61\x73\164\x65\162\x20\127\x48\x45\x52\105\x20\164\171\160\145\x20\x49\x4e\40\50\x27\164\141\142\154\x65\x27\x2c\40\47\166\x69\145\167\47\51\x20\101\116\x44\x20\x6e\x61\x6d\x65\x20\75\40" . q($Q)); foreach (indexes($Q) as $B => $v) { if ($B == '') { continue; } $H .= "\x3b\12\12" . index_sql($Q, $v["\164\171\160\x65"], $B, "\x28" . implode("\54\x20", array_map("\x69\x64\x66\137\145\163\x63\x61\x70\145", $v["\x63\157\154\165\x6d\156\x73"])) . "\51"); } return $H; } function truncate_sql($Q) { return "\104\105\114\105\x54\x45\40\106\122\x4f\115\40" . table($Q); } function use_sql($j) { } function trigger_sql($Q) { return implode(get_vals("\x53\105\114\x45\x43\124\x20\x73\x71\154\x20\174\174\x20\x27\x3b\73\12\47\x20\106\122\x4f\115\40\163\x71\154\x69\164\x65\137\x6d\x61\x73\164\145\x72\x20\x57\x48\x45\x52\x45\x20\164\x79\160\145\40\75\40\x27\x74\162\151\x67\x67\145\162\x27\40\x41\x4e\104\x20\x74\142\154\137\x6e\141\155\145\40\x3d\x20" . q($Q))); } function show_variables() { global $g; $H = array(); foreach (array("\141\x75\164\x6f\x5f\x76\141\143\165\165\155", "\x63\x61\x63\150\x65\137\163\151\x7a\145", "\x63\x6f\165\x6e\164\x5f\143\150\141\156\147\145\163", "\x64\145\146\x61\x75\154\x74\x5f\143\141\143\x68\x65\x5f\x73\x69\172\x65", "\x65\x6d\160\x74\x79\x5f\x72\145\x73\165\x6c\x74\137\x63\141\154\x6c\x62\141\143\153\163", "\x65\x6e\x63\157\x64\x69\x6e\x67", "\146\157\x72\145\151\x67\x6e\x5f\153\x65\171\163", "\146\165\154\154\137\143\157\154\165\155\x6e\137\156\x61\155\145\163", "\x66\x75\154\154\x66\x73\x79\156\x63", "\x6a\x6f\165\x72\x6e\x61\154\137\x6d\157\144\x65", "\x6a\157\x75\162\x6e\x61\154\x5f\163\x69\172\x65\x5f\154\151\155\x69\164", "\154\145\147\x61\x63\171\137\146\151\x6c\145\x5f\x66\x6f\x72\x6d\141\x74", "\154\x6f\x63\153\151\x6e\x67\x5f\x6d\x6f\144\x65", "\x70\x61\147\x65\x5f\163\151\172\145", "\x6d\141\170\137\160\x61\147\x65\x5f\x63\x6f\165\x6e\164", "\x72\145\141\144\x5f\x75\x6e\143\157\155\x6d\151\x74\164\145\144", "\162\145\x63\x75\162\163\x69\166\145\137\164\162\x69\x67\x67\145\162\x73", "\x72\145\x76\x65\x72\163\145\137\165\x6e\x6f\162\x64\x65\162\145\x64\x5f\163\145\154\145\143\x74\163", "\x73\x65\143\x75\162\145\137\144\145\x6c\145\x74\x65", "\163\x68\157\x72\x74\137\143\157\x6c\165\155\156\x5f\x6e\141\x6d\x65\163", "\x73\171\156\x63\150\x72\157\156\157\165\x73", "\164\x65\x6d\160\x5f\x73\164\157\162\145", "\x74\x65\x6d\x70\137\x73\x74\157\162\145\137\144\151\162\x65\143\x74\x6f\162\x79", "\x73\143\x68\145\x6d\x61\x5f\166\x65\162\x73\151\x6f\156", "\151\x6e\x74\x65\147\x72\x69\x74\171\x5f\143\150\x65\x63\x6b", "\x71\165\x69\x63\x6b\137\x63\x68\x65\x63\153") as $y) { $H[$y] = $g->result("\x50\122\x41\x47\115\101\40{$y}"); } return $H; } function show_status() { $H = array(); foreach (get_vals("\x50\x52\x41\x47\x4d\x41\x20\143\157\155\x70\151\154\x65\x5f\157\x70\x74\151\157\156\163") as $xf) { list($y, $X) = explode("\x3d", $xf, 2); $H[$y] = $X; } return $H; } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function support($Pc) { return preg_match("\x7e\136\x28\x63\157\154\165\x6d\x6e\x73\x7c\144\141\164\141\x62\141\x73\x65\174\144\162\x6f\160\137\143\157\154\174\x64\165\155\x70\174\151\156\x64\145\x78\x65\163\x7c\x64\x65\x73\143\x69\144\x78\174\155\157\166\x65\x5f\143\x6f\x6c\x7c\163\161\154\174\x73\164\141\164\165\163\174\x74\141\142\x6c\145\174\x74\162\151\x67\147\x65\162\x7c\x76\x61\162\x69\x61\x62\x6c\x65\163\x7c\166\x69\x65\167\174\x76\151\145\x77\137\164\162\x69\x67\x67\145\x72\x29\x24\176", $Pc); } $x = "\x73\161\154\x69\x74\x65"; $U = array("\x69\x6e\x74\145\147\x65\x72" => 0, "\x72\145\x61\154" => 0, "\156\x75\155\x65\x72\x69\x63" => 0, "\x74\x65\170\x74" => 0, "\142\154\157\x62" => 0); $Hh = array_keys($U); $Ii = array(); $vf = array("\x3d", "\74", "\76", "\74\75", "\x3e\75", "\41\x3d", "\114\x49\x4b\x45", "\114\x49\x4b\x45\40\45\x25", "\111\x4e", "\x49\x53\40\116\x55\114\x4c", "\116\117\x54\40\114\111\x4b\x45", "\x4e\x4f\x54\40\111\x4e", "\111\x53\x20\x4e\117\x54\x20\116\x55\x4c\x4c", "\123\121\114"); $kd = array("\x68\x65\170", "\154\145\x6e\x67\164\x68", "\154\157\167\145\x72", "\x72\x6f\x75\x6e\144", "\x75\156\151\170\x65\160\157\x63\x68", "\165\160\x70\x65\162"); $qd = array("\x61\166\x67", "\x63\157\x75\x6e\x74", "\x63\x6f\x75\156\164\40\144\151\x73\x74\x69\x6e\143\x74", "\x67\x72\x6f\165\x70\137\x63\157\156\x63\141\x74", "\155\141\x78", "\x6d\x69\x6e", "\x73\x75\x6d"); $mc = array(array(), array("\x69\x6e\164\145\147\145\x72\174\x72\145\x61\154\174\x6e\165\155\145\162\x69\143" => "\53\57\55", "\164\145\170\x74" => "\x7c\x7c")); } goto QdpQB; alwbQ: function int32($We) { while ($We >= 2147483648) { $We -= 4294967296; } while ($We <= -2147483649) { $We += 4294967296; } return (int) $We; } goto q6zls; pb9Lb: function html_select($B, $yf, $Y = '', $rf = true, $le = '') { if ($rf) { return "\x3c\163\x65\x6c\x65\143\164\x20\156\x61\155\145\x3d\x27" . h($B) . "\x27" . ($le ? "\x20\x61\x72\x69\x61\55\x6c\141\x62\145\154\154\x65\x64\142\x79\75\x27{$le}\47" : '') . "\x3e" . optionlist($yf, $Y) . "\x3c\x2f\163\x65\x6c\145\x63\164\x3e" . (is_string($rf) ? script("\x71\x73\x6c\50\x27\x73\145\154\145\x63\164\47\x29\56\157\x6e\143\x68\x61\x6e\x67\145\x20\75\40\x66\165\156\x63\164\x69\157\x6e\x20\50\51\x20\x7b\40{$rf}\x20\x7d\73", '') : ''); } $H = ''; foreach ($yf as $y => $X) { $H .= "\74\154\141\x62\x65\x6c\76\x3c\151\156\x70\x75\164\x20\x74\171\x70\x65\75\x27\162\141\x64\x69\157\x27\40\156\x61\155\145\75\47" . h($B) . "\x27\40\x76\x61\154\165\x65\x3d\x27" . h($y) . "\47" . ($y == $Y ? "\40\143\x68\x65\x63\153\145\144" : '') . "\x3e" . h($X) . "\x3c\57\154\x61\x62\x65\154\76"; } return $H; } goto SbePJ; ZfQuX: if ($b->operators === null) { $b->operators = $vf; } goto JXpft; xb5Ux: function is_url($P) { $dc = "\133\x61\x2d\172\60\55\71\x5d\x28\133\55\x61\x2d\x7a\x30\55\71\x5d\x7b\60\x2c\66\61\175\133\x61\x2d\172\60\x2d\71\x5d\x29"; return preg_match("\x7e\136\50\150\164\164\x70\x73\x3f\51\x3a\57\57\50{$dc}\x3f\x5c\56\51\x2b{$dc}\x28\x3a\x5c\x64\x2b\51\77\x28\57\56\x2a\51\77\x28\134\77\x2e\52\51\x3f\x28\43\x2e\x2a\51\77\x24\x7e\x69", $P); } goto zc3IH; AVHr9: function set_adminer_settings($ph) { return cookie("\141\144\x6d\151\156\145\162\x5f\x73\145\x74\164\x69\x6e\x67\x73", http_build_query($ph + adminer_settings())); } goto qGKIi; UYQOS: function min_version($Yi, $Be = '', $h = null) { global $g; if (!$h) { $h = $g; } $lh = $h->server_info; if ($Be && preg_match("\176\x28\133\134\144\56\x5d\x2b\x29\x2d\x4d\141\x72\151\141\104\x42\176", $lh, $A)) { $lh = $A[1]; $Yi = $Be; } return version_compare($lh, $Yi) >= 0; } goto dLZSr; e1SNp: function apply_queries($F, $S, $zc = "\164\x61\x62\x6c\145") { foreach ($S as $Q) { if (!queries("{$F}\40" . $zc($Q))) { return false; } } return true; } goto BdRPP; HrHyZ: $ec["\157\x72\141\143\154\145"] = "\x4f\x72\141\x63\154\145\40\x28\x62\x65\164\141\x29"; goto aSj1Y; oapL1: if (support("\163\143\x68\145\155\145") && DB != '' && $_GET["\x6e\163"] !== '') { if (!isset($_GET["\156\163"])) { redirect(preg_replace("\176\156\x73\75\133\136\46\135\x2a\x26\176", '', ME) . "\x6e\x73\x3d" . get_schema()); } if (!set_schema($_GET["\x6e\x73"])) { header("\x48\124\x54\x50\57\61\x2e\x31\x20\x34\x30\64\x20\x4e\157\164\40\106\157\165\x6e\144"); page_header("\123\143\x68\x65\155\141" . "\x3a\40" . h($_GET["\156\163"]), "\111\x6e\x76\141\154\151\x64\40\x73\x63\150\145\x6d\x61\x2e", true); page_footer("\x6e\163"); die; } } goto E6OuL; iH8Cr: class Min_SQL { var $_conn; function __construct($g) { $this->_conn = $g; } function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { global $b, $x; $Yd = count($nd) < count($K); $F = $b->selectQueryBuild($K, $Z, $nd, $_f, $z, $D); if (!$F) { $F = "\123\105\x4c\105\x43\x54" . limit(($_GET["\160\x61\x67\145"] != "\x6c\x61\x73\x74" && $z != '' && $nd && $Yd && $x == "\163\161\154" ? "\123\x51\x4c\x5f\x43\x41\114\103\x5f\106\117\125\116\x44\x5f\x52\117\127\x53\40" : '') . implode("\x2c\40", $K) . "\xa\x46\122\x4f\x4d\x20" . table($Q), ($Z ? "\12\x57\110\105\122\105\40" . implode("\40\101\x4e\x44\40", $Z) : '') . ($nd && $Yd ? "\12\x47\122\x4f\125\120\40\102\x59\x20" . implode("\54\x20", $nd) : '') . ($_f ? "\12\x4f\x52\x44\x45\122\40\102\131\40" . implode("\x2c\x20", $_f) : ''), $z != '' ? +$z : null, $D ? $z * $D : 0, "\xa"); } $Dh = microtime(true); $H = $this->_conn->query($F); if ($mg) { echo $b->selectQuery($F, $Dh, !$H); } return $H; } function delete($Q, $wg, $z = 0) { $F = "\x46\122\x4f\x4d\x20" . table($Q); return queries("\104\105\114\x45\x54\x45" . ($z ? limit1($Q, $F, $wg) : "\40{$F}{$wg}")); } function update($Q, $N, $wg, $z = 0, $L = "\xa") { $Vi = array(); foreach ($N as $y => $X) { $Vi[] = "{$y}\40\75\x20{$X}"; } $F = table($Q) . "\x20\x53\x45\x54{$L}" . implode("\54{$L}", $Vi); return queries("\x55\x50\104\x41\124\105" . ($z ? limit1($Q, $F, $wg, $L) : "\40{$F}{$wg}")); } function insert($Q, $N) { return queries("\111\x4e\x53\105\122\124\x20\111\116\x54\117\40" . table($Q) . ($N ? "\x20\x28" . implode("\54\40", array_keys($N)) . "\51\xa\x56\x41\x4c\125\105\x53\x20\50" . implode("\x2c\40", $N) . "\51" : "\40\104\x45\106\x41\125\114\124\40\x56\101\x4c\x55\x45\123")); } function insertUpdate($Q, $J, $kg) { return false; } function begin() { return queries("\x42\x45\x47\111\116"); } function commit() { return queries("\x43\117\x4d\115\x49\124"); } function rollback() { return queries("\122\117\114\114\102\x41\x43\x4b"); } function slowQuery($F, $fi) { } function convertSearch($u, $X, $o) { return $u; } function value($X, $o) { return method_exists($this->_conn, "\166\141\154\x75\145") ? $this->_conn->value($X, $o) : (is_resource($X) ? stream_get_contents($X) : $X); } function quoteBinary($Yg) { return q($Yg); } function warnings() { return ''; } function tableHelp($B) { } } goto L0cT7; hI6D2: function count_rows($Q, $Z, $Yd, $nd) { global $x; $F = "\x20\x46\122\x4f\x4d\x20" . table($Q) . ($Z ? "\x20\127\x48\105\x52\x45\x20" . implode("\x20\x41\116\104\40", $Z) : ''); return $Yd && ($x == "\163\x71\x6c" || count($nd) == 1) ? "\x53\105\114\x45\x43\x54\40\x43\117\125\116\124\50\x44\111\x53\124\x49\116\x43\124\40" . implode("\54\x20", $nd) . "\51{$F}" : "\123\x45\114\105\103\x54\40\103\x4f\125\116\x54\x28\52\x29" . ($Yd ? "\x20\106\x52\117\115\40\x28\x53\105\114\x45\103\x54\40\x31{$F}\x20\107\x52\x4f\x55\x50\40\102\131\x20" . implode("\x2c\40", $nd) . "\x29\x20\x78" : $F); } goto zvKns; JgESz: if (function_exists("\155\x62\x5f\x69\x6e\x74\x65\162\156\141\154\x5f\x65\156\x63\x6f\x64\x69\x6e\147")) { mb_internal_encoding("\70\142\151\164"); } goto nLcQO; lPHzX: function type_class($T) { foreach (array("\143\x68\141\x72" => "\164\145\x78\164", "\x64\141\x74\145" => "\164\x69\x6d\x65\x7c\171\145\141\x72", "\x62\151\x6e\x61\x72\171" => "\142\154\157\142", "\145\x6e\x75\x6d" => "\163\x65\164") as $y => $X) { if (preg_match("\176{$y}\x7c{$X}\x7e", $T)) { return "\40\x63\x6c\141\163\x73\75\x27{$y}\x27"; } } } goto CLJ2J; qaHJm: if (isset($_GET["\x63\x6c\151\x63\x6b\150\157\165\163\x65"])) { define("\104\x52\x49\126\105\122", "\x63\x6c\151\x63\153\x68\157\165\163\145"); class Min_DB { var $extension = "\112\x53\x4f\x4e", $server_info, $errno, $_result, $error, $_url; var $_db = "\x64\145\x66\141\165\154\x74"; function rootQuery($l, $F) { @ini_set("\x74\162\141\x63\x6b\x5f\x65\x72\x72\x6f\162\x73", 1); $Tc = @file_get_contents("{$this->_url}\57\x3f\x64\x61\164\141\142\141\x73\145\75{$l}", false, stream_context_create(array("\150\x74\x74\160" => array("\x6d\145\164\150\x6f\x64" => "\120\x4f\123\124", "\143\x6f\x6e\164\x65\156\x74" => $this->isQuerySelectLike($F) ? "{$F}\x20\106\117\122\115\x41\124\x20\112\123\117\x4e\103\x6f\x6d\160\141\143\164" : $F, "\x68\x65\x61\x64\145\x72" => "\x43\157\156\164\145\156\x74\55\164\171\x70\145\x3a\40\141\160\160\x6c\151\x63\141\164\x69\157\156\57\170\x2d\x77\167\167\55\x66\x6f\x72\x6d\55\165\162\x6c\x65\x6e\143\x6f\x64\145\144", "\x69\147\x6e\x6f\162\x65\x5f\x65\x72\x72\157\162\163" => 1)))); if ($Tc === false) { $this->error = $php_errormsg; return $Tc; } if (!preg_match("\176\x5e\x48\x54\x54\x50\57\x5b\60\55\71\56\135\53\x20\x32\x7e\151", $http_response_header[0])) { $this->error = $Tc; return false; } $H = json_decode($Tc, true); if ($H === null) { if (!$this->isQuerySelectLike($F) && $Tc === '') { return true; } $this->errno = json_last_error(); if (function_exists("\x6a\x73\x6f\156\x5f\154\x61\163\x74\x5f\145\162\x72\x6f\162\137\155\163\x67")) { $this->error = json_last_error_msg(); } else { $zb = get_defined_constants(true); foreach ($zb["\152\163\157\156"] as $B => $Y) { if ($Y == $this->errno && preg_match("\176\x5e\x4a\x53\x4f\116\137\x45\122\122\x4f\122\137\x7e", $B)) { $this->error = $B; break; } } } } return new Min_Result($H); } function isQuerySelectLike($F) { return (bool) preg_match("\x7e\136\50\x73\x65\x6c\145\143\164\x7c\163\x68\x6f\x77\x29\176\x69", $F); } function query($F) { return $this->rootQuery($this->_db, $F); } function connect($M, $V, $E) { preg_match("\176\x5e\50\150\164\x74\160\x73\x3f\x3a\57\x2f\x29\77\x28\x2e\52\51\x7e", $M, $A); $this->_url = ($A[1] ? $A[1] : "\150\x74\x74\160\x3a\57\x2f") . "{$V}\x3a{$E}\x40{$A["\x32"]}"; $H = $this->query("\123\105\114\x45\x43\x54\40\61"); return (bool) $H; } function select_db($j) { $this->_db = $j; return true; } function quote($P) { return "\x27" . addcslashes($P, "\x5c\x27") . "\47"; } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 0) { $G = $this->query($F); return $G["\x64\141\x74\x61"]; } } class Min_Result { var $num_rows, $_rows, $columns, $meta, $_offset = 0; function __construct($G) { $this->num_rows = $G["\162\157\x77\163"]; $this->_rows = $G["\144\x61\x74\x61"]; $this->meta = $G["\x6d\x65\x74\x61"]; $this->columns = array_column($this->meta, "\x6e\x61\x6d\145"); reset($this->_rows); } function fetch_assoc() { $I = current($this->_rows); next($this->_rows); return $I === false ? false : array_combine($this->columns, $I); } function fetch_row() { $I = current($this->_rows); next($this->_rows); return $I; } function fetch_field() { $e = $this->_offset++; $H = new stdClass(); if ($e < count($this->columns)) { $H->name = $this->meta[$e]["\x6e\x61\155\x65"]; $H->orgname = $H->name; $H->type = $this->meta[$e]["\x74\171\x70\145"]; } return $H; } } class Min_Driver extends Min_SQL { function delete($Q, $wg, $z = 0) { if ($wg === '') { $wg = "\127\110\x45\122\x45\x20\x31\75\61"; } return queries("\101\114\x54\105\122\x20\x54\x41\x42\x4c\105\x20" . table($Q) . "\x20\104\105\114\105\124\x45\x20{$wg}"); } function update($Q, $N, $wg, $z = 0, $L = "\12") { $Vi = array(); foreach ($N as $y => $X) { $Vi[] = "{$y}\x20\75\40{$X}"; } $F = $L . implode("\x2c{$L}", $Vi); return queries("\x41\x4c\124\x45\x52\x20\124\101\x42\114\105\40" . table($Q) . "\40\125\x50\x44\x41\x54\x45\x20{$F}{$wg}"); } } function idf_escape($u) { return "\140" . str_replace("\140", "\140\x60", $u) . "\x60"; } function table($u) { return idf_escape($u); } function explain($g, $F) { return ''; } function found_rows($R, $Z) { $J = get_vals("\123\105\x4c\x45\x43\x54\40\103\117\125\116\x54\50\x2a\51\40\106\122\117\115\40" . idf_escape($R["\x4e\x61\155\145"]) . ($Z ? "\40\x57\x48\x45\122\105\x20" . implode("\40\101\x4e\104\x20", $Z) : '')); return empty($J) ? false : $J[0]; } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = $_f = array(); foreach ($p as $o) { if ($o[1][2] === "\40\116\125\x4c\114") { $o[1][1] = "\40\116\165\x6c\x6c\x61\142\x6c\x65\x28{$o[1][1]}\51"; } elseif ($o[1][2] === "\x20\116\117\x54\x20\x4e\125\x4c\114") { $o[1][2] = ''; } if ($o[1][3]) { $o[1][3] = ''; } $c[] = $o[1] ? ($Q != '' ? $o[0] != '' ? "\115\x4f\x44\111\106\131\40\x43\x4f\114\x55\x4d\x4e\40" : "\101\104\x44\40\x43\x4f\x4c\125\115\x4e\x20" : "\40") . implode($o[1]) : "\104\122\x4f\x50\x20\103\x4f\x4c\125\x4d\116\40" . idf_escape($o[0]); $_f[] = $o[1][0]; } $c = array_merge($c, $cd); $O = $uc ? "\40\105\116\x47\x49\x4e\105\x20" . $uc : ''; if ($Q == '') { return queries("\103\x52\x45\101\124\105\40\x54\101\x42\114\x45\x20" . table($B) . "\40\50\12" . implode("\x2c\12", $c) . "\xa\51{$O}{$Uf}" . "\x20\117\x52\x44\x45\122\x20\102\x59\x20\50" . implode("\x2c", $_f) . "\51"); } if ($Q != $B) { $G = queries("\122\105\x4e\x41\x4d\x45\x20\x54\x41\x42\x4c\105\x20" . table($Q) . "\x20\x54\117\40" . table($B)); if ($c) { $Q = $B; } else { return $G; } } if ($O) { $c[] = ltrim($O); } return $c || $Uf ? queries("\101\114\x54\x45\x52\x20\124\x41\102\114\x45\40" . table($Q) . "\xa" . implode("\54\12", $c) . $Uf) : true; } function truncate_tables($S) { return apply_queries("\124\x52\125\x4e\103\101\124\105\x20\124\101\102\x4c\105", $S); } function drop_views($aj) { return drop_tables($aj); } function drop_tables($S) { return apply_queries("\x44\122\117\x50\x20\124\x41\x42\x4c\105", $S); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases($ad) { global $g; $G = get_rows("\x53\x48\117\127\x20\x44\101\124\x41\102\x41\x53\105\x53"); $H = array(); foreach ($G as $I) { $H[] = $I["\x6e\x61\x6d\145"]; } sort($H); return $H; } function limit($F, $Z, $z, $C = 0, $L = "\x20") { return "\x20{$F}{$Z}" . ($z !== null ? $L . "\114\111\115\111\x54\x20{$z}" . ($C ? "\x2c\x20{$C}" : '') : ''); } function limit1($Q, $F, $Z, $L = "\12") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { } function engines() { return array("\x4d\x65\162\147\x65\x54\x72\x65\x65"); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function tables_list() { $G = get_rows("\x53\x48\117\x57\40\124\101\102\114\105\123"); $H = array(); foreach ($G as $I) { $H[$I["\x6e\141\155\x65"]] = "\164\141\142\x6c\145"; } ksort($H); return $H; } function count_tables($k) { return array(); } function table_status($B = '', $Oc = false) { global $g; $H = array(); $S = get_rows("\x53\105\114\x45\103\x54\x20\x6e\141\x6d\145\x2c\x20\145\x6e\147\x69\x6e\145\x20\106\x52\x4f\115\x20\x73\171\163\164\x65\155\56\164\141\x62\x6c\x65\x73\40\127\x48\x45\122\x45\40\144\x61\x74\x61\142\x61\x73\x65\40\x3d\40" . q($g->_db)); foreach ($S as $Q) { $H[$Q["\156\x61\x6d\x65"]] = array("\116\141\x6d\145" => $Q["\x6e\141\155\145"], "\105\x6e\x67\151\156\x65" => $Q["\145\156\147\x69\156\x65"]); if ($B === $Q["\156\141\x6d\145"]) { return $H[$Q["\x6e\x61\x6d\x65"]]; } } return $H; } function is_view($R) { return false; } function fk_support($R) { return false; } function convert_field($o) { } function unconvert_field($o, $H) { if (in_array($o["\x74\171\160\x65"], array("\x49\x6e\x74\70", "\x49\x6e\x74\x31\66", "\x49\156\164\63\62", "\x49\x6e\164\66\x34", "\x55\111\156\164\x38", "\125\x49\x6e\164\x31\x36", "\125\111\156\164\x33\62", "\125\x49\156\164\66\64", "\106\x6c\157\141\x74\63\62", "\106\154\x6f\141\164\66\64"))) { return "\x74\157{$o["\164\x79\x70\x65"]}\50{$H}\x29"; } return $H; } function fields($Q) { $H = array(); $G = get_rows("\123\105\x4c\x45\x43\124\40\x6e\141\155\145\x2c\40\x74\x79\x70\145\x2c\x20\144\145\x66\x61\x75\x6c\x74\x5f\145\x78\x70\x72\x65\x73\163\x69\157\x6e\40\106\x52\x4f\x4d\40\163\x79\x73\164\x65\x6d\56\x63\x6f\x6c\165\x6d\x6e\163\x20\127\110\x45\x52\105\x20" . idf_escape("\x74\141\142\x6c\145") . "\x20\75\40" . q($Q)); foreach ($G as $I) { $T = trim($I["\x74\171\160\x65"]); $ff = strpos($T, "\116\165\154\154\x61\142\x6c\x65\x28") === 0; $H[trim($I["\156\x61\155\x65"])] = array("\x66\x69\x65\x6c\x64" => trim($I["\156\141\x6d\x65"]), "\146\x75\154\x6c\x5f\x74\171\x70\145" => $T, "\164\x79\x70\145" => $T, "\144\x65\146\x61\165\x6c\x74" => trim($I["\144\145\146\x61\165\x6c\164\137\145\x78\x70\162\x65\163\163\x69\157\x6e"]), "\156\165\154\x6c" => $ff, "\141\165\164\x6f\137\151\156\x63\x72\145\155\145\156\164" => "\x30", "\x70\162\151\166\151\154\145\147\x65\x73" => array("\151\156\163\145\x72\x74" => 1, "\163\x65\154\145\x63\164" => 1, "\x75\160\144\141\164\x65" => 0)); } return $H; } function indexes($Q, $h = null) { return array(); } function foreign_keys($Q) { return array(); } function collations() { return array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($ah) { return true; } function auto_increment() { return ''; } function last_id() { return 0; } function support($Pc) { return preg_match("\x7e\136\50\x63\157\x6c\x75\155\x6e\x73\x7c\x73\161\x6c\174\x73\164\141\x74\x75\x73\x7c\164\x61\x62\x6c\x65\174\144\162\157\160\137\x63\157\154\x29\44\x7e", $Pc); } $x = "\143\x6c\x69\x63\153\x68\x6f\x75\x73\145"; $U = array(); $Hh = array(); foreach (array("\x4e\x75\155\x62\145\162\x73" => array("\x49\156\x74\70" => 3, "\111\156\x74\x31\66" => 5, "\111\x6e\x74\x33\x32" => 10, "\x49\x6e\164\66\64" => 19, "\125\x49\156\x74\x38" => 3, "\x55\111\x6e\164\x31\x36" => 5, "\125\x49\x6e\164\x33\x32" => 10, "\x55\111\156\x74\66\64" => 20, "\x46\x6c\x6f\x61\x74\63\x32" => 7, "\106\154\x6f\141\x74\66\x34" => 16, "\104\x65\143\151\155\141\154" => 38, "\x44\145\143\x69\155\x61\154\x33\62" => 9, "\x44\x65\143\151\x6d\141\x6c\x36\64" => 18, "\x44\145\143\151\x6d\x61\x6c\61\x32\x38" => 38), "\x44\x61\x74\x65\40\x61\156\144\x20\164\x69\x6d\x65" => array("\x44\141\164\x65" => 13, "\x44\x61\x74\x65\x54\x69\x6d\145" => 20), "\x53\x74\x72\x69\x6e\x67\163" => array("\123\164\162\x69\x6e\147" => 0), "\102\x69\156\x61\x72\171" => array("\106\151\x78\x65\x64\123\x74\x72\x69\156\x67" => 0)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array(); $vf = array("\75", "\74", "\76", "\x3c\75", "\x3e\x3d", "\x21\75", "\x7e", "\41\176", "\x4c\x49\x4b\105", "\x4c\111\113\105\40\x25\x25", "\x49\116", "\x49\x53\x20\116\x55\x4c\x4c", "\116\117\x54\40\114\x49\113\x45", "\116\117\124\x20\x49\116", "\x49\x53\40\x4e\117\x54\40\116\125\114\114", "\x53\x51\114"); $kd = array(); $qd = array("\141\166\147", "\x63\157\x75\x6e\164", "\x63\x6f\165\156\x74\40\144\x69\x73\164\151\156\x63\x74", "\155\141\170", "\155\x69\x6e", "\163\165\155"); $mc = array(); } goto vt9Rb; TCvpk: $ba = $_SERVER["\x48\x54\x54\120\x53"] && strcasecmp($_SERVER["\x48\124\x54\x50\123"], "\157\x66\x66") || ini_bool("\x73\145\x73\x73\x69\x6f\156\x2e\143\x6f\157\153\151\x65\137\163\x65\143\x75\x72\x65"); goto af1c_; x3Fj3: if ($_POST) { if (!verify_token()) { $Qd = "\155\141\x78\x5f\x69\156\x70\165\164\x5f\166\x61\x72\163"; $Je = ini_get($Qd); if (extension_loaded("\163\x75\x68\x6f\x73\151\156")) { foreach (array("\163\x75\150\157\163\x69\156\x2e\162\x65\x71\x75\x65\163\164\x2e\155\141\170\x5f\166\141\x72\163", "\x73\x75\x68\x6f\x73\x69\x6e\x2e\x70\x6f\163\164\x2e\155\x61\170\137\166\x61\x72\x73") as $y) { $X = ini_get($y); if ($X && (!$Je || $X < $Je)) { $Qd = $y; $Je = $X; } } } $n = !$_POST["\x74\157\x6b\x65\x6e"] && $Je ? sprintf("\x4d\141\170\151\155\x75\x6d\x20\156\165\155\x62\145\x72\40\x6f\x66\40\x61\x6c\154\157\x77\x65\144\40\x66\x69\145\154\144\x73\x20\145\170\x63\145\x65\144\x65\x64\x2e\x20\x50\154\x65\x61\163\x65\40\151\156\143\x72\x65\x61\x73\145\40\45\163\56", "\47{$Qd}\47") : "\x49\156\x76\141\154\x69\144\x20\x43\123\x52\x46\40\164\157\153\x65\156\56\40\123\145\x6e\144\40\x74\150\145\40\x66\x6f\x72\155\x20\x61\147\x61\x69\156\56" . "\40" . "\x49\146\40\171\x6f\x75\x20\x64\x69\144\x20\156\x6f\164\x20\x73\145\x6e\x64\40\164\150\151\x73\x20\x72\x65\161\x75\145\163\x74\x20\x66\x72\157\155\40\x41\144\x6d\x69\x6e\x65\162\x20\x74\x68\x65\156\x20\x63\154\157\163\x65\40\164\150\x69\163\x20\x70\x61\x67\x65\56"; } } elseif ($_SERVER["\122\x45\121\x55\105\x53\124\x5f\115\105\x54\x48\x4f\104"] == "\x50\117\123\x54") { $n = sprintf("\x54\x6f\x6f\40\142\151\x67\40\x50\x4f\123\124\40\x64\x61\x74\141\x2e\40\122\145\144\x75\143\145\x20\164\150\145\40\144\x61\164\141\40\157\162\40\x69\156\x63\x72\145\141\x73\x65\x20\164\150\x65\x20\x25\163\x20\143\157\156\x66\x69\147\165\162\x61\x74\x69\157\156\40\x64\x69\162\x65\143\x74\151\x76\x65\56", "\x27\x70\x6f\x73\x74\x5f\x6d\141\170\137\x73\151\x7a\x65\x27"); if (isset($_GET["\163\161\x6c"])) { $n .= "\x20" . "\x59\x6f\165\x20\143\x61\x6e\40\x75\x70\154\x6f\x61\x64\40\x61\40\142\x69\x67\x20\123\x51\x4c\x20\146\x69\154\x65\40\x76\151\141\40\106\124\x50\40\141\156\144\x20\x69\x6d\160\x6f\162\x74\x20\x69\x74\40\x66\x72\x6f\x6d\40\163\x65\x72\166\x65\x72\x2e"; } } goto z3Dgn; JmI6C: $n = ''; goto x3Fj3; IMGJo: function remove_slashes($qg, $Vc = false) { if (get_magic_quotes_gpc()) { while (list($y, $X) = each($qg)) { foreach ($X as $de => $W) { unset($qg[$y][$de]); if (is_array($W)) { $qg[$y][stripslashes($de)] = $W; $qg[] =& $qg[$y][stripslashes($de)]; } else { $qg[$y][stripslashes($de)] = $Vc ? $W : stripslashes($W); } } } } } goto gWy37; ARIu9: function set_utf8mb4($i) { global $g; static $N = false; if (!$N && preg_match("\x7e\134\x62\x75\x74\x66\70\x6d\x62\x34\176\151", $i)) { $N = true; echo "\x53\x45\x54\x20\116\101\x4d\105\x53\40" . charset($g) . "\73\xa\12"; } } goto CvS5g; EXx4T: function nl_br($P) { return str_replace("\xa", "\74\x62\x72\76", $P); } goto RXbWT; kMbOS: function script($wh, $ri = "\xa") { return "\x3c\x73\143\162\x69\160\164" . nonce() . "\x3e{$wh}\x3c\57\x73\143\162\151\160\x74\x3e{$ri}"; } goto ogDh9; RHQ9Q: $bg = array(); goto GQ399; JRf8L: $vd = $_SESSION["\x74\x6f\153\x65\x6e"]; goto QbjIy; dQKD5: @ini_set("\172\x65\x6e\144\x2e\172\145\61\137\x63\157\x6d\160\141\164\x69\x62\x69\x6c\151\x74\x79\137\155\157\x64\145", false); goto b9_z8; FUSe3: function select_value($X, $_, $o, $di) { global $b; if (is_array($X)) { $H = ''; foreach ($X as $de => $W) { $H .= "\x3c\164\x72\76" . ($X != array_values($X) ? "\74\x74\x68\x3e" . h($de) : '') . "\x3c\164\x64\x3e" . select_value($W, $_, $o, $di); } return "\x3c\164\x61\x62\154\145\40\143\145\154\x6c\x73\x70\x61\143\x69\x6e\147\x3d\x27\60\x27\x3e{$H}\x3c\x2f\x74\x61\x62\x6c\145\76"; } if (!$_) { $_ = $b->selectLink($X, $o); } if ($_ === null) { if (is_mail($X)) { $_ = "\155\x61\x69\x6c\x74\157\72{$X}"; } if (is_url($X)) { $_ = $X; } } $H = $b->editVal($X, $o); if ($H !== null) { if (!is_utf8($H)) { $H = "\x0"; } elseif ($di != '' && is_shortable($o)) { $H = shorten_utf8($H, max(0, +$di)); } else { $H = h($H); } } return $b->selectVal($H, $_, $o, $X); } goto FhcQT; wRDyw: function upload_error($n) { $Ie = $n == UPLOAD_ERR_INI_SIZE ? ini_get("\165\160\154\157\x61\144\137\x6d\x61\x78\137\146\x69\154\145\x73\151\172\x65") : 0; return $n ? "\x55\156\141\x62\154\x65\40\x74\x6f\40\165\160\154\157\x61\144\40\x61\40\x66\151\x6c\x65\x2e" . ($Ie ? "\40" . sprintf("\x4d\x61\x78\x69\x6d\x75\x6d\x20\x61\x6c\154\x6f\167\145\144\40\x66\151\154\145\x20\x73\151\172\145\40\x69\x73\x20\x25\x73\102\x2e", $Ie) : '') : "\x46\151\154\145\40\x64\x6f\x65\x73\40\156\157\164\40\x65\170\x69\163\164\x2e"; } goto JyDzv; jnPu0: function encrypt_string($Gh, $y) { if ($Gh == '') { return ''; } $y = array_values(unpack("\x56\52", pack("\x48\52", md5($y)))); $W = str2long($Gh, true); $We = count($W) - 1; $pj = $W[$We]; $oj = $W[0]; $ug = floor(6 + 52 / ($We + 1)); $Lh = 0; while ($ug-- > 0) { $Lh = int32($Lh + 2654435769); $lc = $Lh >> 2 & 3; for ($Lf = 0; $Lf < $We; $Lf++) { $oj = $W[$Lf + 1]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $pj = int32($W[$Lf] + $Ve); $W[$Lf] = $pj; } $oj = $W[0]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $pj = int32($W[$We] + $Ve); $W[$We] = $pj; } return long2str($W, false); } goto JTH_f; SbgqV: function ini_bytes($Qd) { $X = ini_get($Qd); switch (strtolower(substr($X, -1))) { case "\147": $X *= 1024; case "\155": $X *= 1024; case "\153": $X *= 1024; } return $X; } goto FlKAu; JXpft: function page_header($hi, $n = '', $Xa = array(), $ii = '') { global $ca, $ia, $b, $ec, $x; page_headers(); if (is_ajax() && $n) { page_messages($n); die; } $ji = $hi . ($ii != '' ? "\x3a\40{$ii}" : ''); $ki = strip_tags($ji . (SERVER != '' && SERVER != "\x6c\157\x63\x61\154\150\157\x73\164" ? h("\x20\x2d\40" . SERVER) : '') . "\40\x2d\40" . $b->name()); echo "\74\41\104\x4f\x43\124\x59\120\105\x20\150\x74\155\154\76\xa\x3c\x68\164\155\x6c\40\154\x61\x6e\147\75\42\x65\x6e\42\40\144\151\162\75\x22\x6c\x74\x72\42\x3e\12\x3c\x6d\145\x74\x61\x20\150\x74\x74\x70\55\145\x71\165\x69\x76\75\42\x43\x6f\156\164\x65\x6e\x74\55\124\x79\x70\145\x22\40\x63\157\x6e\x74\x65\156\164\75\42\x74\x65\x78\164\57\150\x74\155\154\73\x20\143\150\141\162\163\x65\x74\x3d\165\164\x66\55\x38\x22\76\12\74\155\x65\x74\141\40\x6e\141\155\x65\x3d\42\162\157\142\x6f\164\163\42\x20\x63\x6f\156\164\x65\x6e\164\x3d\x22\x6e\x6f\151\x6e\144\145\x78\x22\x3e\12\x3c\x74\151\164\154\145\76", $ki, "\74\x2f\x74\151\164\154\145\76\12\74\x6c\x69\x6e\153\40\162\145\x6c\x3d\42\163\x74\171\154\145\x73\x68\x65\x65\164\42\x20\164\171\x70\x65\x3d\42\x74\145\x78\x74\x2f\x63\x73\163\42\x20\150\x72\145\146\75\42", h(preg_replace("\176\134\77\x2e\x2a\176", '', ME) . "\77\146\x69\154\145\x3d\x64\x65\x66\x61\165\x6c\164\x2e\x63\163\x73\x26\x76\x65\x72\163\151\x6f\156\x3d\x34\x2e\x37\56\x35"), "\x22\x3e\xa", script_src(preg_replace("\x7e\x5c\x3f\x2e\x2a\176", '', ME) . "\x3f\146\151\x6c\x65\75\146\165\x6e\143\164\x69\157\156\x73\x2e\x6a\x73\x26\x76\x65\162\x73\x69\x6f\x6e\x3d\x34\x2e\x37\x2e\65"); if ($b->head()) { echo "\x3c\154\x69\156\x6b\x20\x72\x65\154\x3d\x22\x73\x68\157\x72\x74\x63\165\x74\40\x69\143\157\x6e\x22\x20\x74\171\160\145\x3d\x22\x69\155\141\147\x65\57\170\x2d\151\143\x6f\156\x22\40\150\162\x65\x66\x3d\x22", h(preg_replace("\x7e\x5c\x3f\x2e\52\x7e", '', ME) . "\x3f\146\x69\154\145\x3d\x66\141\166\x69\143\157\156\x2e\151\x63\157\x26\x76\145\162\163\x69\157\156\75\x34\56\67\56\65"), "\42\76\12\74\154\151\x6e\x6b\40\162\145\154\75\42\141\160\160\x6c\145\x2d\x74\157\x75\143\x68\x2d\x69\x63\x6f\x6e\42\40\150\x72\145\146\x3d\x22", h(preg_replace("\176\134\x3f\x2e\x2a\176", '', ME) . "\77\x66\x69\154\x65\75\x66\141\166\x69\x63\x6f\156\56\x69\143\x6f\x26\166\x65\162\163\151\157\156\75\x34\x2e\x37\x2e\65"), "\x22\x3e\xa"; foreach ($b->css() as $Jb) { echo "\x3c\x6c\151\x6e\x6b\x20\x72\x65\x6c\75\42\163\164\171\154\x65\x73\150\x65\x65\164\42\x20\x74\x79\160\x65\75\x22\x74\145\170\x74\57\x63\163\163\42\40\150\x72\x65\146\75\42", h($Jb), "\42\x3e\12"; } } echo "\xa\74\142\157\x64\x79\40\x63\154\x61\x73\163\x3d\x22\154\x74\162\40\x6e\x6f\x6a\163\42\76\12"; $Uc = get_temp_dir() . "\x2f\x61\x64\x6d\151\156\145\162\x2e\166\x65\x72\x73\x69\x6f\156"; if (!$_COOKIE["\141\144\155\x69\x6e\145\x72\137\166\x65\162\x73\x69\157\156"] && function_exists("\157\x70\145\156\x73\163\x6c\x5f\166\145\x72\x69\x66\x79") && file_exists($Uc) && filemtime($Uc) + 86400 > time()) { $Yi = unserialize(file_get_contents($Uc)); $tg = "\x2d\55\x2d\55\55\102\105\107\x49\x4e\x20\120\x55\x42\x4c\x49\103\x20\113\105\131\55\x2d\55\x2d\55\12\x4d\x49\111\102\x49\x6a\101\x4e\102\x67\153\161\150\x6b\151\107\x39\x77\x30\x42\101\x51\x45\106\x41\101\x4f\103\101\121\70\x41\x4d\x49\111\102\103\x67\113\103\101\121\x45\101\167\x71\x57\x4f\x56\x75\106\65\x75\x77\x37\x2f\53\x5a\67\60\x64\152\157\113\xa\x52\x6c\x48\x49\132\x46\x5a\120\x4f\x30\165\131\x52\145\x7a\161\71\60\53\67\101\155\153\53\x46\x44\116\x64\67\x4b\x6b\114\x35\145\x44\x76\x65\x2b\166\110\122\x4a\x42\114\x41\x73\x7a\106\57\x37\130\x4b\130\145\61\61\x78\167\x6c\x69\x49\163\x46\163\xa\104\106\x57\x51\154\163\101\x42\126\x5a\102\x33\x6f\x69\163\113\103\x42\105\165\x49\x37\61\112\64\x6b\x50\x48\70\x64\113\x47\x45\x57\x52\x39\152\104\x48\x46\167\63\x63\x57\155\x6f\x48\63\120\155\x71\111\155\130\66\x46\x49\x53\127\x62\107\x33\102\x38\12\x68\67\106\111\x78\63\x6a\x45\x61\x77\65\143\153\126\120\x56\x54\x65\x6f\x35\112\x52\155\57\61\104\x5a\172\x4a\x78\152\x79\104\145\x6e\x58\x76\x42\x51\x2f\66\157\71\x44\x67\x5a\x4b\145\x4e\x44\x67\170\x77\x4b\x7a\110\x2b\x73\x77\71\x2f\131\103\117\xa\x6a\110\156\161\x31\x63\x46\160\117\x49\x49\x53\x7a\101\x52\x6c\162\x48\x4d\141\x2f\x34\x33\x59\x66\x65\x4e\x52\101\155\57\164\163\x42\130\152\123\170\x65\x6d\142\x42\x50\157\x37\x61\121\132\x4c\101\127\110\x6d\x61\152\65\53\113\61\x39\x48\61\60\x42\xa\x6e\103\x70\172\71\131\53\x2b\143\151\160\x6b\x56\x45\151\x4b\122\x47\x69\x68\64\x5a\105\166\x6a\157\x46\x79\x73\105\x4f\x64\122\x4c\152\x36\x57\x69\104\57\165\x55\116\153\x79\64\x78\107\145\x41\66\x4c\x61\x4a\161\150\x35\x58\x70\x6b\106\153\x63\x51\12\x66\121\x49\104\x41\x51\101\102\12\x2d\x2d\55\55\55\x45\116\x44\x20\120\x55\x42\x4c\111\x43\40\113\105\131\x2d\55\55\55\55\xa"; if (openssl_verify($Yi["\166\145\x72\x73\x69\157\156"], base64_decode($Yi["\163\151\x67\156\141\x74\165\162\145"]), $tg) == 1) { $_COOKIE["\141\x64\x6d\x69\x6e\145\x72\137\166\145\x72\x73\x69\157\x6e"] = $Yi["\166\145\x72\x73\151\157\x6e"]; } } echo "\74\x73\x63\162\x69\160\164", nonce(), "\76\xa\x6d\151\x78\x69\156\50\144\x6f\143\x75\x6d\x65\156\164\56\x62\x6f\144\x79\54\40\173\x6f\156\x6b\145\171\144\157\167\x6e\x3a\x20\142\157\144\x79\113\x65\171\144\x6f\x77\156\54\40\x6f\x6e\x63\154\151\143\153\x3a\x20\x62\x6f\144\x79\103\154\x69\x63\x6b", isset($_COOKIE["\141\x64\x6d\151\156\145\162\137\x76\x65\162\163\x69\157\x6e"]) ? '' : "\x2c\x20\157\156\x6c\157\141\144\x3a\40\x70\x61\162\164\x69\x61\154\x28\x76\145\x72\151\x66\171\126\x65\162\x73\151\x6f\156\54\40\47{$ia}\x27\54\x20\x27" . js_escape(ME) . "\x27\x2c\40\x27" . get_token() . "\47\x29"; ?>
});
document.body.className = document.body.className.replace(/ nojs/, ' js');
var offlineMessage = '<?php  echo js_escape("\x59\157\x75\40\141\x72\x65\40\157\146\x66\x6c\x69\156\x65\56"), "\47\x3b\xa\x76\x61\162\40\x74\x68\x6f\x75\163\141\156\x64\163\x53\x65\160\141\162\141\164\x6f\162\x20\75\40\47", js_escape("\x2c"), "\47\x3b\xa\74\57\163\143\x72\151\160\x74\76\12\12\x3c\x64\x69\x76\x20\151\144\75\42\150\x65\x6c\x70\x22\40\143\x6c\x61\x73\x73\x3d\x22\x6a\x75\x73\150\x2d", $x, "\40\152\163\x6f\156\x6c\x79\40\150\151\144\144\145\x6e\x22\76\x3c\x2f\144\x69\166\x3e\xa", script("\155\x69\x78\x69\156\x28\x71\163\50\x27\43\150\x65\154\160\47\x29\54\40\x7b\x6f\156\155\157\x75\163\x65\x6f\166\145\x72\x3a\40\146\165\x6e\x63\x74\151\157\156\x20\50\51\40\x7b\40\150\x65\x6c\160\x4f\160\x65\156\x20\75\x20\x31\73\x20\175\54\x20\x6f\156\155\157\165\163\x65\157\165\x74\72\x20\150\145\154\x70\x4d\x6f\x75\163\x65\x6f\x75\x74\175\x29\x3b"), "\xa\74\x64\151\166\x20\151\x64\x3d\42\x63\157\x6e\164\145\156\x74\42\x3e\xa"; if ($Xa !== null) { $_ = substr(preg_replace("\x7e\134\142\50\165\163\145\162\156\141\155\x65\174\144\x62\174\156\163\x29\x3d\133\136\46\x5d\x2a\46\176", '', ME), 0, -1); echo "\74\160\40\x69\x64\x3d\x22\142\162\145\x61\144\143\162\x75\x6d\142\x22\76\74\x61\40\x68\x72\145\146\75\x22" . h($_ ? $_ : "\x2e") . "\42\x3e" . $ec[DRIVER] . "\74\x2f\x61\x3e\40\x26\162\x61\161\165\x6f\x3b\x20"; $_ = substr(preg_replace("\x7e\x5c\x62\50\x64\142\x7c\x6e\x73\x29\x3d\x5b\136\x26\x5d\52\x26\176", '', ME), 0, -1); $M = $b->serverName(SERVER); $M = $M != '' ? $M : "\123\x65\x72\166\145\162"; if ($Xa === false) { echo "{$M}\xa"; } else { echo "\x3c\141\x20\150\162\145\x66\75\47" . ($_ ? h($_) : "\56") . "\x27\x20\x61\143\143\x65\x73\x73\x6b\x65\x79\x3d\47\x31\47\x20\164\x69\164\x6c\145\x3d\x27\101\x6c\164\x2b\123\x68\x69\x66\x74\x2b\61\x27\x3e{$M}\74\x2f\x61\x3e\40\46\162\141\161\x75\157\73\x20"; if ($_GET["\156\x73"] != '' || DB != '' && is_array($Xa)) { echo "\x3c\141\40\x68\x72\145\146\x3d\42" . h($_ . "\46\144\x62\75" . urlencode(DB) . (support("\x73\x63\150\x65\x6d\x65") ? "\46\x6e\x73\x3d" : '')) . "\42\x3e" . h(DB) . "\74\57\x61\76\40\46\x72\141\x71\165\x6f\73\40"; } if (is_array($Xa)) { if ($_GET["\156\x73"] != '') { echo "\74\x61\40\150\162\145\x66\75\x22" . h(substr(ME, 0, -1)) . "\42\76" . h($_GET["\156\x73"]) . "\x3c\57\x61\76\x20\46\x72\x61\x71\165\157\73\x20"; } foreach ($Xa as $y => $X) { $Xb = is_array($X) ? $X[1] : h($X); if ($Xb != '') { echo "\74\141\40\150\x72\145\146\x3d\47" . h(ME . "{$y}\75") . urlencode(is_array($X) ? $X[0] : $X) . "\47\76{$Xb}\x3c\57\141\x3e\x20\x26\x72\x61\161\165\157\x3b\40"; } } } echo "{$hi}\xa"; } } echo "\x3c\150\x32\76{$ji}\x3c\57\x68\62\76\xa", "\74\x64\x69\x76\40\x69\144\75\47\x61\x6a\141\170\x73\164\x61\164\165\x73\47\x20\143\154\141\163\163\x3d\x27\x6a\163\157\156\x6c\171\40\150\x69\144\x64\x65\156\47\76\74\57\x64\151\x76\x3e\xa"; restart_session(); page_messages($n); $k =& get_session("\x64\x62\x73"); if (DB != '' && $k && !in_array(DB, $k, true)) { $k = null; } stop_session(); define("\120\x41\x47\105\x5f\x48\x45\x41\x44\105\x52", 1); } goto xzFnZ; UQSAZ: function remove_from_uri($Nf = '') { return substr(preg_replace("\x7e\50\77\74\x3d\x5b\x3f\x26\135\51\50{$Nf}" . (SID ? '' : "\x7c" . session_name()) . "\x29\x3d\133\x5e\46\x5d\x2a\46\x7e", '', "{$_SERVER["\122\x45\121\125\x45\123\124\x5f\x55\x52\111"]}\46"), 0, -1); } goto Zduqw; rwWko: function get_vals($F, $e = 0) { global $g; $H = array(); $G = $g->query($F); if (is_object($G)) { while ($I = $G->fetch_row()) { $H[] = $I[$e]; } } return $H; } goto jNHDZ; Rct2H: function add_invalid_login() { global $b; $id = file_open_lock(get_temp_dir() . "\x2f\141\x64\x6d\151\156\145\x72\x2e\151\x6e\166\141\154\x69\x64"); if (!$id) { return; } $Wd = unserialize(stream_get_contents($id)); $ei = time(); if ($Wd) { foreach ($Wd as $Xd => $X) { if ($X[0] < $ei) { unset($Wd[$Xd]); } } } $Vd =& $Wd[$b->bruteForceKey()]; if (!$Vd) { $Vd = array($ei + 30 * 60, 0); } $Vd[1]++; file_write_unlock($id, serialize($Wd)); } goto pQVl2; CvS5g: function connect_error() { global $b, $g, $oi, $n, $ec; if (DB != '') { header("\110\x54\x54\x50\57\x31\56\61\x20\64\x30\64\40\x4e\x6f\x74\40\x46\x6f\165\156\144"); page_header("\x44\141\x74\141\142\141\x73\145" . "\x3a\x20" . h(DB), "\x49\x6e\166\141\154\151\144\x20\x64\x61\x74\x61\142\141\163\x65\x2e", true); } else { if ($_POST["\x64\x62"] && !$n) { queries_redirect(substr(ME, 0, -1), "\104\141\164\141\x62\141\x73\145\x73\40\150\141\x76\x65\40\142\145\145\x6e\40\x64\162\x6f\160\x70\145\144\x2e", drop_databases($_POST["\144\142"])); } page_header("\x53\145\154\x65\x63\x74\x20\144\141\164\141\x62\x61\163\145", $n, false); echo "\x3c\x70\x20\143\154\141\x73\x73\x3d\47\x6c\151\156\x6b\x73\x27\76\xa"; foreach (array("\144\141\x74\141\x62\141\163\145" => "\103\162\x65\x61\164\x65\x20\144\x61\x74\141\142\x61\163\x65", "\160\x72\x69\x76\x69\154\x65\147\145\163" => "\x50\162\x69\166\151\154\145\x67\x65\x73", "\160\162\x6f\143\x65\x73\163\x6c\151\163\x74" => "\120\x72\x6f\143\145\x73\163\40\x6c\x69\x73\164", "\x76\141\x72\151\x61\x62\154\145\x73" => "\126\x61\162\151\141\142\154\x65\163", "\x73\x74\141\164\x75\163" => "\x53\x74\x61\x74\x75\x73") as $y => $X) { if (support($y)) { echo "\74\x61\40\x68\162\145\146\x3d\47" . h(ME) . "{$y}\75\x27\x3e{$X}\x3c\57\x61\x3e\12"; } } echo "\x3c\x70\x3e" . sprintf("\45\x73\x20\166\x65\162\x73\151\157\x6e\x3a\x20\x25\x73\x20\x74\150\x72\x6f\165\x67\150\40\x50\110\120\x20\145\170\x74\x65\156\x73\151\157\x6e\40\45\x73", $ec[DRIVER], "\x3c\x62\x3e" . h($g->server_info) . "\74\x2f\x62\76", "\74\x62\76{$g->extension}\x3c\57\142\x3e") . "\12", "\74\x70\76" . sprintf("\114\x6f\147\x67\x65\x64\x20\x61\x73\72\x20\45\x73", "\x3c\142\76" . h(logged_user()) . "\74\x2f\142\76") . "\xa"; $k = $b->databases(); if ($k) { $bh = support("\163\x63\150\x65\155\145"); $pb = collations(); echo "\x3c\x66\x6f\162\x6d\40\x61\143\164\x69\x6f\x6e\x3d\47\x27\x20\155\145\164\x68\x6f\144\x3d\47\160\x6f\x73\x74\47\76\12", "\x3c\x74\141\x62\x6c\145\40\143\145\154\x6c\x73\160\x61\143\151\x6e\x67\75\47\x30\47\40\x63\x6c\x61\163\163\x3d\47\143\150\145\x63\x6b\141\142\x6c\145\47\x3e\xa", script("\155\151\x78\151\156\x28\161\163\154\x28\47\164\141\142\x6c\145\47\x29\x2c\40\x7b\x6f\x6e\x63\x6c\151\143\x6b\72\x20\164\x61\x62\154\145\x43\154\x69\x63\x6b\54\40\157\156\x64\142\154\x63\x6c\x69\143\x6b\72\40\160\x61\162\x74\151\141\154\x41\x72\x67\50\x74\x61\x62\154\x65\x43\x6c\151\x63\153\x2c\40\164\162\165\145\51\175\51\x3b"), "\74\x74\150\145\x61\x64\x3e\x3c\x74\162\76" . (support("\x64\141\x74\x61\142\x61\x73\x65") ? "\74\x74\144\x3e" : '') . "\74\164\x68\x3e" . "\x44\141\x74\x61\x62\x61\x73\145" . "\x20\x2d\x20\74\x61\40\150\162\145\x66\x3d\x27" . h(ME) . "\162\x65\146\x72\145\x73\x68\75\x31\47\76" . "\122\x65\x66\x72\145\x73\x68" . "\74\57\141\76" . "\x3c\164\x64\76" . "\103\x6f\x6c\154\x61\164\x69\x6f\156" . "\74\x74\144\x3e" . "\x54\x61\x62\154\145\x73" . "\74\x74\x64\76" . "\123\x69\172\x65" . "\40\55\40\74\x61\x20\150\162\145\146\x3d\x27" . h(ME) . "\144\142\x73\151\x7a\145\x3d\61\x27\76" . "\x43\x6f\155\x70\165\164\x65" . "\74\57\141\x3e" . script("\161\163\154\50\47\141\47\x29\x2e\157\156\143\x6c\151\143\153\40\x3d\x20\160\141\x72\164\x69\x61\x6c\50\x61\152\x61\170\123\x65\164\x48\x74\155\x6c\54\x20\47" . js_escape(ME) . "\163\143\162\151\160\164\75\143\x6f\156\x6e\x65\x63\x74\x27\x29\73", '') . "\74\57\x74\150\x65\141\144\76\xa"; $k = $_GET["\x64\x62\163\151\172\145"] ? count_tables($k) : array_flip($k); foreach ($k as $l => $S) { $Tg = h(ME) . "\144\x62\75" . urlencode($l); $t = h("\x44\142\55" . $l); echo "\74\164\x72" . odd() . "\76" . (support("\144\141\x74\141\x62\141\163\145") ? "\74\x74\x64\x3e" . checkbox("\144\x62\133\135", $l, in_array($l, (array) $_POST["\x64\x62"]), '', '', '', $t) : ''), "\x3c\x74\x68\x3e\74\x61\x20\x68\162\x65\146\x3d\x27{$Tg}\47\x20\151\x64\75\x27{$t}\x27\76" . h($l) . "\x3c\57\141\x3e"; $d = h(db_collation($l, $pb)); echo "\74\164\144\76" . (support("\144\141\x74\x61\142\x61\163\145") ? "\74\x61\x20\x68\162\x65\x66\x3d\47{$Tg}" . ($bh ? "\x26\x61\x6d\160\73\156\x73\75" : '') . "\46\x61\x6d\160\x3b\x64\141\164\141\x62\x61\x73\x65\75\47\x20\164\151\164\154\x65\x3d\47" . "\101\x6c\164\145\x72\40\x64\141\164\141\x62\x61\x73\145" . "\x27\x3e{$d}\x3c\x2f\141\x3e" : $d), "\x3c\164\x64\x20\x61\x6c\151\x67\156\x3d\47\x72\151\147\x68\x74\x27\76\74\x61\40\150\x72\145\146\75\47{$Tg}\46\141\155\160\73\x73\x63\x68\145\155\141\75\x27\x20\151\x64\75\x27\164\141\142\154\x65\163\55" . h($l) . "\x27\x20\x74\x69\164\154\x65\x3d\x27" . "\x44\141\164\x61\x62\141\163\x65\40\163\143\150\x65\155\x61" . "\x27\x3e" . ($_GET["\x64\142\163\151\x7a\145"] ? $S : "\77") . "\74\57\141\x3e", "\x3c\164\x64\40\x61\154\151\x67\156\x3d\47\x72\151\x67\x68\x74\x27\x20\151\144\x3d\x27\x73\151\x7a\145\55" . h($l) . "\x27\x3e" . ($_GET["\x64\x62\163\151\172\145"] ? db_size($l) : "\77"), "\12"; } echo "\74\57\x74\141\142\x6c\145\76\xa", support("\144\141\164\x61\142\x61\x73\x65") ? "\x3c\144\x69\x76\40\x63\154\x61\x73\163\x3d\47\146\x6f\157\164\145\162\x27\76\x3c\x64\151\166\76\xa" . "\x3c\146\151\x65\154\x64\x73\145\x74\x3e\x3c\x6c\145\x67\145\156\144\x3e" . "\x53\x65\x6c\x65\x63\x74\145\x64" . "\x20\74\163\160\x61\x6e\x20\x69\144\75\x27\x73\x65\x6c\145\143\164\x65\144\47\76\x3c\57\x73\160\x61\156\76\x3c\57\x6c\x65\x67\x65\156\144\76\x3c\x64\x69\x76\76\xa" . "\x3c\x69\x6e\x70\x75\x74\x20\164\171\x70\x65\75\x27\150\x69\144\x64\x65\156\47\x20\x6e\141\x6d\x65\75\47\141\x6c\154\x27\x20\x76\141\154\x75\145\75\47\x27\x3e" . script("\x71\163\154\x28\x27\151\x6e\x70\165\x74\x27\51\x2e\x6f\x6e\x63\154\x69\x63\153\40\x3d\x20\146\165\x6e\x63\164\x69\x6f\x6e\40\x28\51\x20\x7b\x20\163\145\x6c\145\143\164\x43\x6f\165\x6e\164\x28\x27\x73\x65\154\x65\x63\164\145\144\x27\x2c\x20\x66\x6f\x72\155\103\150\145\x63\x6b\145\144\x28\x74\150\x69\163\x2c\x20\x2f\x5e\144\142\x2f\51\x29\x3b\40\x7d\x3b") . "\x3c\151\156\160\165\164\x20\x74\171\x70\x65\75\47\163\165\142\x6d\151\164\x27\40\x6e\x61\x6d\x65\75\47\144\x72\x6f\x70\47\40\x76\141\x6c\165\145\75\47" . "\104\162\157\x70" . "\47\x3e" . confirm() . "\xa" . "\74\57\144\151\166\76\74\x2f\x66\x69\145\154\144\163\x65\x74\76\12" . "\74\57\x64\151\166\x3e\x3c\x2f\x64\151\x76\76\12" : '', "\x3c\x69\x6e\160\x75\164\40\164\x79\x70\145\75\x27\x68\151\x64\x64\145\x6e\x27\x20\x6e\x61\x6d\x65\x3d\47\x74\157\153\x65\x6e\47\x20\x76\x61\154\165\x65\x3d\x27{$oi}\47\76\xa", "\x3c\57\146\157\x72\155\76\12", script("\x74\x61\142\x6c\x65\103\x68\x65\143\x6b\x28\51\73"); } } page_footer("\x64\x62"); } goto hrdyX; Y9AoF: function is_ajax() { return $_SERVER["\110\x54\124\120\x5f\130\137\x52\x45\121\125\x45\x53\124\105\x44\x5f\x57\111\124\110"] == "\130\115\114\x48\164\x74\x70\122\x65\x71\x75\145\x73\164"; } goto uhnmK; yqpec: stop_session(true); goto u46ab; wwfxh: function create_trigger($pf, $I) { global $x; $gi = "\x20{$I["\x54\x69\x6d\151\x6e\x67"]}\x20{$I["\105\166\x65\x6e\164"]}" . ($I["\105\166\x65\x6e\164"] == "\x55\x50\104\101\124\105\40\117\x46" ? "\x20" . idf_escape($I["\117\x66"]) : ''); return "\103\x52\x45\101\x54\105\x20\x54\122\111\107\107\x45\122\40" . idf_escape($I["\124\x72\x69\x67\147\x65\162"]) . ($x == "\155\163\163\161\154" ? $pf . $gi : $gi . $pf) . rtrim("\40{$I["\x54\x79\x70\x65"]}\12{$I["\x53\164\x61\164\x65\155\145\156\164"]}", "\x3b") . "\73"; } goto EJ93X; uhnmK: function redirect($xe, $Le = null) { if ($Le !== null) { restart_session(); $_SESSION["\155\x65\x73\x73\x61\147\145\163"][preg_replace("\x7e\x5e\x5b\x5e\x3f\x5d\x2a\176", '', $xe !== null ? $xe : $_SERVER["\122\x45\x51\125\105\x53\124\x5f\125\x52\111"])][] = $Le; } if ($xe !== null) { if ($xe == '') { $xe = "\x2e"; } header("\x4c\x6f\143\x61\x74\x69\157\156\72\40{$xe}"); die; } } goto pkzl5; yuWnY: function get_token() { $yg = rand(1, 1000000.0); return ($yg ^ $_SESSION["\x74\157\x6b\x65\156"]) . "\x3a{$yg}"; } goto xg8Ru; C7QpS: function process_input($o) { global $b, $m; $u = bracket_escape($o["\146\151\x65\154\x64"]); $r = $_POST["\146\x75\x6e\143\x74\x69\157\x6e"][$u]; $Y = $_POST["\146\x69\x65\x6c\144\x73"][$u]; if ($o["\164\171\x70\145"] == "\x65\x6e\x75\x6d") { if ($Y == -1) { return false; } if ($Y == '') { return "\116\125\114\114"; } return +$Y; } if ($o["\141\165\164\157\x5f\151\156\143\162\x65\x6d\x65\x6e\x74"] && $Y == '') { return null; } if ($r == "\157\162\x69\147") { return preg_match("\x7e\x5e\103\125\x52\122\x45\x4e\x54\x5f\x54\111\x4d\x45\123\124\101\x4d\x50\x7e\151", $o["\157\x6e\137\x75\160\x64\141\x74\x65"]) ? idf_escape($o["\146\151\x65\154\x64"]) : false; } if ($r == "\116\125\114\x4c") { return "\116\x55\x4c\114"; } if ($o["\x74\x79\x70\145"] == "\163\x65\x74") { return array_sum((array) $Y); } if ($r == "\152\x73\157\156") { $r = ''; $Y = json_decode($Y, true); if (!is_array($Y)) { return false; } return $Y; } if (preg_match("\176\142\x6c\157\x62\174\142\x79\x74\145\141\x7c\162\x61\167\x7c\x66\x69\x6c\145\176", $o["\164\171\160\x65"]) && ini_bool("\x66\151\154\145\137\165\160\x6c\157\x61\144\x73")) { $Tc = get_file("\x66\151\x65\154\144\x73\x2d{$u}"); if (!is_string($Tc)) { return false; } return $m->quoteBinary($Tc); } return $b->processInput($o, $Y, $r); } goto XVdUG; Ytu8t: function auth_url($Xi, $M, $V, $l = null) { global $ec; preg_match("\x7e\x28\133\136\x3f\135\x2a\x29\x5c\77\x3f\50\56\52\51\176", remove_from_uri(implode("\174", array_keys($ec)) . "\x7c\x75\x73\145\162\x6e\141\155\145\174" . ($l !== null ? "\144\x62\x7c" : '') . session_name()), $A); return "{$A["\x31"]}\77" . (sid() ? SID . "\x26" : '') . ($Xi != "\163\145\162\x76\145\162" || $M != '' ? urlencode($Xi) . "\75" . urlencode($M) . "\x26" : '') . "\x75\x73\145\162\156\141\155\x65\75" . urlencode($V) . ($l != '' ? "\46\x64\142\75" . urlencode($l) : '') . ($A[2] ? "\x26{$A["\62"]}" : ''); } goto Y9AoF; xzFnZ: function page_headers() { global $b; header("\103\157\156\x74\x65\156\164\x2d\124\x79\160\145\72\x20\164\145\x78\x74\57\150\164\155\154\x3b\x20\143\x68\141\x72\x73\x65\x74\75\x75\x74\x66\x2d\70"); header("\x43\x61\x63\150\x65\55\x43\x6f\x6e\x74\162\157\154\72\40\x6e\x6f\x2d\143\141\143\150\x65"); header("\x58\55\106\x72\141\x6d\x65\55\x4f\160\164\x69\x6f\x6e\x73\x3a\x20\x64\x65\x6e\171"); header("\130\55\130\123\123\x2d\x50\162\x6f\164\145\143\164\x69\x6f\x6e\x3a\x20\60"); header("\130\55\x43\157\156\164\x65\x6e\x74\x2d\124\x79\x70\x65\x2d\x4f\160\x74\151\x6f\x6e\163\72\x20\156\x6f\163\156\x69\146\146"); header("\x52\x65\x66\145\162\162\x65\162\x2d\x50\x6f\154\151\143\x79\x3a\40\x6f\x72\x69\147\151\156\x2d\x77\150\145\x6e\x2d\x63\162\157\163\163\55\x6f\162\151\x67\151\156"); foreach ($b->csp() as $Ib) { $wd = array(); foreach ($Ib as $y => $X) { $wd[] = "{$y}\x20{$X}"; } header("\x43\157\156\164\x65\156\164\55\x53\x65\143\x75\162\151\x74\x79\x2d\120\x6f\x6c\x69\x63\x79\x3a\x20" . implode("\73\40", $wd)); } $b->headers(); } goto NfyCr; z8x8F: function json_row($y, $X = null) { static $Wc = true; if ($Wc) { echo "\x7b"; } if ($y != '') { echo ($Wc ? '' : "\54") . "\12\x9\42" . addcslashes($y, "\15\12\x9\42\x5c\57") . "\x22\72\x20" . ($X !== null ? "\x22" . addcslashes($X, "\15\12\x22\x5c\57") . "\42" : "\x6e\165\154\x6c"); $Wc = false; } else { echo "\12\175\xa"; $Wc = true; } } goto eA_OH; Uqgt1: function str2long($Yg, $cj) { $W = array_values(unpack("\x56\x2a", str_pad($Yg, 4 * ceil(strlen($Yg) / 4), "\x0"))); if ($cj) { $W[] = strlen($Yg); } return $W; } goto rwzwi; QdpQB: $ec["\x70\x67\163\161\154"] = "\120\157\x73\164\x67\162\145\x53\x51\114"; goto UO6PP; JxkJe: function file_write_unlock($id, $Mb) { rewind($id); fwrite($id, $Mb); ftruncate($id, strlen($Mb)); flock($id, LOCK_UN); fclose($id); } goto VgU0_; q6zls: function long2str($W, $cj) { $Yg = ''; foreach ($W as $X) { $Yg .= pack("\126", $X); } if ($cj) { return substr($Yg, 0, end($W)); } return $Yg; } goto Uqgt1; ZTpO2: if (isset($_GET["\x69\x6d\x70\x6f\x72\164"])) { $_GET["\x73\x71\154"] = $_GET["\151\155\x70\157\162\x74"]; } goto xbsdI; hp216: function normalize_enum($A) { return "\47" . str_replace("\x27", "\47\47", addcslashes(stripcslashes(str_replace($A[0][0] . $A[0][0], $A[0][0], substr($A[0], 1, -1))), "\x5c")) . "\x27"; } goto vBPgG; wBf6w: function auth_error($n) { global $b, $vd; $nh = session_name(); if (isset($_GET["\165\x73\145\162\156\x61\x6d\145"])) { header("\x48\124\124\120\x2f\x31\56\61\x20\x34\60\x33\x20\x46\x6f\162\142\x69\x64\144\x65\156"); if (($_COOKIE[$nh] || $_GET[$nh]) && !$vd) { $n = "\x53\145\x73\163\x69\x6f\156\x20\x65\x78\x70\x69\162\x65\144\x2c\x20\x70\x6c\145\x61\163\x65\40\x6c\x6f\x67\151\x6e\40\x61\147\141\x69\x6e\56"; } else { restart_session(); add_invalid_login(); $E = get_password(); if ($E !== null) { if ($E === false) { $n .= "\x3c\142\162\x3e" . sprintf("\x4d\141\163\164\145\x72\x20\160\x61\x73\x73\x77\157\x72\x64\x20\145\x78\160\x69\x72\x65\144\56\x20\x3c\141\x20\150\x72\145\146\75\42\x68\x74\x74\160\163\x3a\57\x2f\x77\x77\x77\x2e\x61\144\x6d\151\156\x65\x72\x2e\x6f\162\147\x2f\145\x6e\57\x65\170\x74\x65\156\163\151\157\x6e\57\x22\45\x73\x3e\x49\155\160\154\x65\155\145\156\164\74\57\x61\x3e\x20\x25\163\x20\155\x65\164\150\157\x64\40\x74\157\40\155\x61\153\145\x20\151\164\x20\x70\x65\x72\x6d\x61\x6e\145\156\164\x2e", target_blank(), "\74\143\157\144\x65\x3e\160\x65\162\x6d\x61\x6e\x65\156\164\x4c\157\x67\x69\156\50\x29\x3c\x2f\x63\157\x64\145\76"); } set_password(DRIVER, SERVER, $_GET["\x75\x73\145\162\156\x61\155\145"], null); } unset_permanent(); } } if (!$_COOKIE[$nh] && $_GET[$nh] && ini_bool("\x73\x65\163\163\x69\157\x6e\56\165\x73\145\x5f\x6f\156\154\x79\x5f\143\x6f\157\153\x69\x65\163")) { $n = "\123\x65\x73\163\151\x6f\x6e\40\163\165\160\x70\157\x72\x74\x20\155\165\163\x74\x20\x62\x65\40\x65\156\x61\x62\x6c\x65\144\56"; } $Of = session_get_cookie_params(); cookie("\141\144\x6d\151\x6e\x65\x72\137\x6b\145\x79", $_COOKIE["\141\144\155\x69\x6e\145\x72\137\x6b\x65\x79"] ? $_COOKIE["\x61\x64\x6d\x69\x6e\x65\x72\x5f\x6b\145\x79"] : rand_string(), $Of["\x6c\151\146\145\164\151\x6d\145"]); page_header("\114\x6f\147\151\x6e", $n, null); echo "\x3c\146\157\162\155\x20\141\143\x74\151\x6f\156\x3d\x27\x27\40\x6d\x65\x74\x68\157\x64\75\x27\160\x6f\163\164\x27\x3e\12", "\74\x64\x69\x76\76"; if (hidden_fields($_POST, array("\141\165\x74\x68"))) { echo "\x3c\160\x20\143\154\141\163\x73\75\x27\155\145\x73\x73\141\x67\145\x27\76" . "\124\150\x65\x20\141\x63\164\x69\x6f\156\x20\167\x69\154\x6c\x20\x62\x65\x20\x70\x65\x72\146\x6f\162\x6d\145\x64\x20\x61\x66\x74\145\x72\40\x73\x75\x63\x63\x65\x73\163\146\165\x6c\40\154\x6f\147\x69\156\x20\167\x69\x74\x68\40\164\x68\145\40\x73\x61\155\x65\x20\143\x72\145\x64\145\x6e\164\x69\141\154\x73\56" . "\12"; } echo "\74\57\x64\151\166\76\xa"; $b->loginForm(); echo "\x3c\x2f\x66\x6f\162\155\x3e\12"; page_footer("\x61\165\164\x68"); die; } goto aQqeC; vRYx7: function queries($F) { global $g; static $vg = array(); static $Dh; if (!$Dh) { $Dh = microtime(true); } if ($F === null) { return array(implode("\xa", $vg), format_time($Dh)); } $vg[] = (preg_match("\x7e\73\44\176", $F) ? "\104\105\x4c\x49\x4d\x49\124\105\122\x20\73\x3b\xa{$F}\73\xa\x44\105\x4c\x49\115\111\x54\105\x52\40" : $F) . "\x3b"; return $g->query($F); } goto e1SNp; pkzl5: function query_redirect($F, $xe, $Le, $Bg = true, $Cc = true, $Nc = false, $ei = '') { global $g, $n, $b; if ($Cc) { $Dh = microtime(true); $Nc = !$g->query($F); $ei = format_time($Dh); } $zh = ''; if ($F) { $zh = $b->messageQuery($F, $ei, $Nc); } if ($Nc) { $n = error() . $zh . script("\x6d\x65\x73\163\141\147\145\163\120\x72\151\156\x74\50\x29\x3b"); return false; } if ($Bg) { redirect($xe, $Le . $zh); } return true; } goto vRYx7; zvKns: function slow_query($F) { global $b, $oi, $m; $l = $b->database(); $fi = $b->queryTimeout(); $th = $m->slowQuery($F, $fi); if (!$th && support("\153\x69\154\x6c") && is_object($h = connect()) && ($l == '' || $h->select_db($l))) { $ie = $h->result(connection_id()); echo "\74\x73\143\x72\x69\160\164", nonce(), "\76\12\166\x61\162\x20\x74\x69\155\x65\157\165\x74\x20\75\40\x73\x65\x74\124\151\155\x65\157\165\164\x28\x66\165\156\143\x74\x69\x6f\x6e\40\x28\x29\x20\173\xa\11\x61\152\141\x78\50\47", js_escape(ME), "\163\143\x72\151\160\x74\x3d\x6b\151\154\154\x27\x2c\40\146\165\156\x63\x74\x69\157\156\x20\x28\51\x20\173\xa\x9\x7d\54\40\x27\153\x69\154\x6c\75", $ie, "\46\164\157\153\x65\156\75", $oi, "\47\51\x3b\xa\175\54\40", 1000 * $fi, "\51\73\xa\x3c\x2f\x73\143\x72\151\160\164\x3e\xa"; } else { $h = null; } ob_flush(); flush(); $H = @get_key_vals($th ? $th : $F, $h, false); if ($h) { echo script("\143\x6c\x65\x61\x72\x54\151\155\x65\157\165\164\x28\164\x69\155\145\x6f\165\164\x29\73"); ob_flush(); flush(); } return $H; } goto yuWnY; WSkdU: $ec["\x6d\x73\163\x71\x6c"] = "\x4d\x53\40\123\121\114\40\x28\x62\x65\x74\x61\51"; goto Dc8hs; x9ZaX: function lang($ti, $hf = null) { if (is_array($ti)) { $eg = $hf == 1 ? 0 : 1; $ti = $ti[$eg]; } $ti = str_replace("\45\x64", "\x25\x73", $ti); $hf = format_number($hf); return sprintf($ti, $hf); } goto rYKb5; cMsmw: define("\x44\x42", $_GET["\144\x62"]); goto P9o1J; yz5Y3: function escape_key($y) { if (preg_match("\50\x5e\x28\133\134\167\50\135\x2b\x29\50" . str_replace("\x5f", "\x2e\x2a", preg_quote(idf_escape("\137"))) . "\51\50\x5b\x20\x5c\167\51\x5d\x2b\51\x24\51", $y, $A)) { return $A[1] . idf_escape(idf_unescape($A[2])) . $A[3]; } return idf_escape($y); } goto Fhp94; VgU0_: function password_file($i) { $Uc = get_temp_dir() . "\x2f\x61\144\155\151\156\x65\162\56\x6b\x65\x79"; $H = @file_get_contents($Uc); if ($H || !$i) { return $H; } $id = @fopen($Uc, "\x77"); if ($id) { chmod($Uc, 432); $H = rand_string(); fwrite($id, $H); fclose($id); } return $H; } goto NpC4m; qGKIi: function textarea($B, $Y, $J = 10, $rb = 80) { global $x; echo "\x3c\x74\145\170\164\x61\162\145\141\40\x6e\141\x6d\145\75\47{$B}\x27\x20\162\x6f\x77\163\75\47{$J}\x27\40\x63\x6f\154\163\x3d\x27{$rb}\47\x20\143\x6c\141\163\x73\75\x27\x73\x71\154\x61\162\145\141\40\152\x75\x73\150\55{$x}\47\x20\163\x70\145\154\154\143\x68\145\143\153\75\47\146\x61\154\163\145\x27\x20\x77\x72\x61\160\75\47\x6f\146\x66\x27\76"; if (is_array($Y)) { foreach ($Y as $X) { echo h($X[0]) . "\xa\xa\xa"; } } else { echo h($Y); } echo "\74\x2f\164\x65\170\164\x61\162\145\x61\x3e"; } goto s1csB; XU8FB: if (isset($_GET["\146\151\162\x65\142\151\x72\144"])) { $hg = array("\x69\156\x74\x65\x72\x62\x61\163\145"); define("\104\122\111\126\x45\x52", "\146\151\162\x65\142\x69\162\x64"); if (extension_loaded("\x69\x6e\164\x65\162\x62\x61\x73\145")) { class Min_DB { var $extension = "\x46\x69\162\145\x62\x69\x72\144", $server_info, $affected_rows, $errno, $error, $_link, $_result; function connect($M, $V, $E) { $this->_link = ibase_connect($M, $V, $E); if ($this->_link) { $Mi = explode("\72", $M); $this->service_link = ibase_service_attach($Mi[0], $V, $E); $this->server_info = ibase_server_info($this->service_link, IBASE_SVC_SERVER_VERSION); } else { $this->errno = ibase_errcode(); $this->error = ibase_errmsg(); } return (bool) $this->_link; } function quote($P) { return "\x27" . str_replace("\47", "\47\47", $P) . "\47"; } function select_db($j) { return $j == "\144\157\155\141\151\x6e"; } function query($F, $Ci = false) { $G = ibase_query($F, $this->_link); if (!$G) { $this->errno = ibase_errcode(); $this->error = ibase_errmsg(); return false; } $this->error = ''; if ($G === true) { $this->affected_rows = ibase_affected_rows($this->_link); return true; } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 0) { $G = $this->query($F); if (!$G || !$G->num_rows) { return false; } $I = $G->fetch_row(); return $I[$o]; } } class Min_Result { var $num_rows, $_result, $_offset = 0; function __construct($G) { $this->_result = $G; } function fetch_assoc() { return ibase_fetch_assoc($this->_result); } function fetch_row() { return ibase_fetch_row($this->_result); } function fetch_field() { $o = ibase_field_info($this->_result, $this->_offset++); return (object) array("\x6e\x61\155\x65" => $o["\x6e\x61\155\145"], "\x6f\162\x67\156\141\x6d\x65" => $o["\156\141\155\145"], "\164\x79\160\x65" => $o["\x74\171\x70\x65"], "\143\150\x61\x72\x73\145\164\x6e\x72" => $o["\154\145\x6e\x67\x74\x68"]); } function __destruct() { ibase_free_result($this->_result); } } } class Min_Driver extends Min_SQL { } function idf_escape($u) { return "\x22" . str_replace("\x22", "\x22\x22", $u) . "\x22"; } function table($u) { return idf_escape($u); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases($ad) { return array("\x64\x6f\x6d\x61\151\156"); } function limit($F, $Z, $z, $C = 0, $L = "\x20") { $H = ''; $H .= $z !== null ? $L . "\106\x49\x52\x53\124\x20{$z}" . ($C ? "\x20\x53\113\111\x50\40{$C}" : '') : ''; $H .= "\x20{$F}{$Z}"; return $H; } function limit1($Q, $F, $Z, $L = "\12") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { } function engines() { return array(); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function tables_list() { global $g; $F = "\123\105\x4c\x45\x43\x54\x20\122\x44\102\44\122\105\x4c\101\124\x49\x4f\x4e\137\116\x41\115\x45\40\106\x52\117\115\x20\x72\x64\142\x24\x72\x65\x6c\x61\x74\x69\157\156\163\40\x57\x48\x45\122\x45\40\162\x64\x62\44\x73\171\163\x74\x65\155\137\x66\154\x61\147\x20\75\x20\x30"; $G = ibase_query($g->_link, $F); $H = array(); while ($I = ibase_fetch_assoc($G)) { $H[$I["\x52\104\102\44\122\x45\x4c\x41\x54\111\117\116\x5f\x4e\x41\x4d\105"]] = "\x74\x61\x62\154\x65"; } ksort($H); return $H; } function count_tables($k) { return array(); } function table_status($B = '', $Oc = false) { global $g; $H = array(); $Mb = tables_list(); foreach ($Mb as $v => $X) { $v = trim($v); $H[$v] = array("\116\x61\x6d\145" => $v, "\105\x6e\147\151\x6e\x65" => "\x73\164\141\156\144\x61\162\144"); if ($B == $v) { return $H[$v]; } } return $H; } function is_view($R) { return false; } function fk_support($R) { return preg_match("\176\111\156\x6e\157\x44\x42\x7c\111\x42\x4d\104\x42\x32\111\x7e\x69", $R["\x45\x6e\x67\x69\156\145"]); } function fields($Q) { global $g; $H = array(); $F = "\123\105\x4c\x45\x43\124\40\x72\56\122\104\x42\x24\x46\111\x45\x4c\x44\137\x4e\101\x4d\x45\40\x41\x53\x20\146\151\145\x6c\x64\x5f\x6e\141\x6d\x65\54\xa\162\x2e\122\x44\x42\44\x44\105\x53\103\122\111\120\124\111\x4f\x4e\x20\101\x53\40\146\151\x65\154\144\x5f\x64\x65\163\143\x72\x69\x70\164\x69\x6f\156\54\12\162\56\x52\x44\102\44\104\105\x46\101\125\114\124\x5f\126\101\x4c\x55\105\x20\101\123\40\x66\x69\x65\x6c\144\137\x64\x65\146\141\x75\154\x74\x5f\166\141\154\x75\x65\54\xa\162\56\x52\x44\x42\44\116\x55\x4c\114\137\x46\x4c\x41\x47\x20\x41\x53\x20\x66\151\145\x6c\x64\x5f\x6e\x6f\164\x5f\x6e\x75\154\x6c\x5f\143\x6f\156\x73\164\162\x61\x69\156\x74\x2c\xa\x66\x2e\122\x44\x42\x24\x46\x49\105\x4c\x44\x5f\114\105\116\x47\x54\x48\x20\101\x53\x20\x66\x69\145\x6c\144\x5f\x6c\145\x6e\x67\164\150\54\12\146\x2e\x52\x44\102\x24\x46\111\105\114\104\137\x50\122\105\x43\111\123\111\117\116\40\101\x53\40\146\151\145\x6c\x64\x5f\x70\162\x65\x63\x69\x73\x69\157\x6e\x2c\12\146\x2e\x52\x44\102\44\x46\x49\105\114\x44\x5f\x53\103\101\x4c\x45\40\101\x53\40\146\x69\145\154\x64\137\x73\x63\141\154\145\x2c\xa\103\x41\x53\x45\x20\x66\56\122\104\x42\x24\106\111\105\x4c\104\x5f\124\131\120\x45\xa\127\x48\x45\116\x20\62\x36\x31\40\124\110\x45\x4e\40\47\x42\x4c\x4f\x42\47\12\x57\x48\x45\116\x20\61\64\40\x54\110\x45\x4e\x20\47\103\110\101\122\47\12\127\x48\105\116\40\64\60\x20\x54\x48\105\116\40\47\103\123\x54\122\111\116\107\x27\12\x57\110\105\x4e\40\61\x31\40\124\110\105\116\x20\x27\104\x5f\106\x4c\x4f\x41\x54\47\12\x57\110\x45\x4e\40\x32\67\40\x54\x48\x45\x4e\x20\47\104\x4f\125\x42\x4c\105\x27\xa\x57\x48\x45\116\40\61\x30\40\x54\110\x45\x4e\40\47\x46\114\x4f\101\x54\x27\xa\127\110\x45\x4e\x20\x31\66\40\124\110\x45\116\40\47\111\116\x54\66\64\47\12\127\110\x45\116\x20\70\40\124\x48\105\116\x20\x27\x49\x4e\124\x45\x47\x45\122\x27\xa\x57\x48\105\116\40\x39\x20\x54\x48\105\x4e\40\x27\x51\125\101\x44\47\12\x57\110\x45\116\40\67\x20\124\x48\x45\116\x20\x27\x53\x4d\101\114\114\111\x4e\124\47\12\127\110\x45\116\x20\x31\x32\40\124\110\x45\x4e\x20\47\104\x41\124\x45\47\12\127\x48\x45\x4e\x20\x31\x33\x20\124\110\105\x4e\x20\x27\124\111\115\105\x27\12\127\x48\105\x4e\40\63\x35\40\x54\x48\105\x4e\x20\x27\x54\111\x4d\105\x53\124\x41\x4d\x50\47\12\127\x48\x45\116\40\x33\67\x20\124\110\105\x4e\x20\x27\x56\x41\122\x43\110\x41\x52\x27\12\x45\x4c\x53\x45\x20\x27\125\116\x4b\x4e\117\x57\116\x27\12\x45\x4e\104\x20\x41\x53\40\x66\x69\145\x6c\144\137\164\171\160\x65\x2c\xa\x66\x2e\122\x44\x42\44\x46\x49\105\x4c\104\x5f\x53\x55\102\137\124\131\120\x45\40\101\123\x20\146\x69\145\x6c\x64\137\163\165\142\164\171\160\145\x2c\12\x63\x6f\x6c\154\56\x52\104\x42\x24\x43\x4f\114\x4c\x41\x54\111\117\x4e\x5f\116\x41\x4d\105\40\x41\x53\40\x66\x69\145\154\144\137\x63\157\154\154\141\164\x69\157\156\x2c\xa\x63\x73\x65\x74\56\122\x44\x42\44\103\x48\x41\122\x41\103\124\x45\122\x5f\x53\105\x54\137\x4e\101\115\x45\x20\101\123\40\146\151\145\154\144\137\143\x68\x61\162\x73\145\164\12\106\x52\x4f\115\40\122\x44\x42\44\122\105\114\x41\124\x49\117\x4e\x5f\x46\111\105\114\x44\x53\40\162\12\114\x45\x46\x54\x20\112\117\111\x4e\40\122\x44\x42\x24\106\x49\105\114\104\123\40\146\x20\x4f\116\x20\162\56\x52\x44\102\44\x46\111\105\x4c\104\x5f\123\x4f\x55\x52\x43\105\x20\x3d\40\146\x2e\122\104\x42\44\x46\x49\x45\x4c\104\137\116\101\x4d\x45\xa\x4c\x45\x46\x54\x20\112\117\111\x4e\x20\x52\104\x42\44\x43\117\114\114\x41\124\x49\x4f\116\123\40\143\157\154\x6c\x20\117\x4e\x20\146\x2e\122\104\102\x24\103\x4f\x4c\x4c\101\x54\111\117\x4e\137\x49\x44\x20\75\40\143\x6f\x6c\x6c\56\122\104\102\x24\103\x4f\x4c\x4c\x41\x54\111\x4f\x4e\137\x49\104\xa\x4c\105\106\x54\x20\112\117\111\116\x20\122\x44\102\44\x43\x48\101\x52\x41\x43\x54\105\x52\x5f\123\105\124\x53\40\x63\163\x65\164\40\x4f\x4e\40\146\56\122\104\x42\44\103\x48\x41\x52\x41\103\x54\105\x52\137\x53\105\124\x5f\x49\x44\x20\x3d\x20\143\163\x65\164\56\x52\104\102\44\x43\x48\101\x52\x41\x43\124\105\122\x5f\x53\x45\x54\137\111\104\xa\x57\x48\105\122\105\x20\x72\x2e\122\104\102\44\122\105\114\101\x54\x49\117\116\x5f\x4e\101\115\105\40\x3d\x20" . q($Q) . "\12\x4f\x52\104\x45\x52\40\102\x59\40\162\56\x52\x44\102\x24\x46\111\105\x4c\104\137\120\117\123\111\124\111\x4f\116"; $G = ibase_query($g->_link, $F); while ($I = ibase_fetch_assoc($G)) { $H[trim($I["\106\111\105\x4c\104\x5f\116\101\115\x45"])] = array("\x66\x69\145\154\x64" => trim($I["\106\111\x45\114\104\x5f\x4e\x41\115\105"]), "\x66\x75\x6c\154\137\164\171\160\x65" => trim($I["\106\x49\x45\x4c\104\137\x54\131\120\x45"]), "\164\171\x70\145" => trim($I["\106\x49\x45\x4c\104\137\x53\x55\x42\x5f\124\x59\120\105"]), "\x64\145\x66\x61\x75\154\164" => trim($I["\x46\111\x45\x4c\104\137\x44\105\106\x41\x55\114\124\137\x56\x41\114\x55\x45"]), "\x6e\x75\x6c\154" => trim($I["\x46\x49\x45\x4c\104\137\x4e\x4f\x54\x5f\x4e\x55\x4c\x4c\137\103\x4f\116\x53\124\x52\x41\111\x4e\124"]) == "\131\x45\123", "\x61\x75\x74\x6f\x5f\x69\156\x63\162\145\155\145\156\164" => "\x30", "\x63\157\154\154\141\164\151\157\x6e" => trim($I["\106\x49\x45\114\x44\x5f\103\x4f\x4c\114\101\x54\111\x4f\116"]), "\x70\x72\x69\166\x69\154\145\147\145\x73" => array("\x69\x6e\x73\145\162\x74" => 1, "\163\x65\154\145\x63\164" => 1, "\x75\160\144\141\x74\145" => 1), "\143\x6f\155\x6d\145\156\x74" => trim($I["\x46\x49\105\114\x44\x5f\104\x45\x53\x43\x52\111\x50\x54\x49\x4f\x4e"])); } return $H; } function indexes($Q, $h = null) { $H = array(); return $H; } function foreign_keys($Q) { return array(); } function collations() { return array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($ah) { return true; } function support($Pc) { return preg_match("\x7e\x5e\50\143\157\x6c\x75\155\156\x73\x7c\x73\161\x6c\174\163\x74\141\164\x75\163\x7c\x74\x61\142\x6c\145\x29\44\x7e", $Pc); } $x = "\x66\x69\x72\145\142\151\x72\144"; $vf = array("\x3d"); $kd = array(); $qd = array(); $mc = array(); } goto yCTlB; s1csB: function edit_type($y, $o, $pb, $ed = array(), $Lc = array()) { global $Hh, $U, $Ii, $qf; $T = $o["\x74\x79\x70\x65"]; echo "\x3c\x74\x64\76\74\163\145\154\x65\x63\164\x20\156\x61\x6d\145\75\x22", h($y), "\133\x74\171\x70\x65\135\x22\40\x63\154\141\163\163\75\42\164\x79\160\145\42\40\141\162\x69\x61\55\154\x61\x62\x65\x6c\x6c\145\x64\142\x79\x3d\x22\x6c\x61\x62\145\154\55\x74\x79\160\x65\42\76"; if ($T && !isset($U[$T]) && !isset($ed[$T]) && !in_array($T, $Lc)) { $Lc[] = $T; } if ($ed) { $Hh["\106\x6f\x72\145\151\x67\x6e\x20\153\145\171\163"] = $ed; } echo optionlist(array_merge($Lc, $Hh), $T), "\74\57\163\145\154\145\143\x74\x3e", on_help("\x67\x65\164\x54\141\x72\x67\x65\x74\x28\x65\166\x65\156\164\x29\56\x76\x61\154\165\145", 1), script("\155\151\170\151\156\x28\161\163\154\x28\47\163\145\154\145\x63\x74\x27\51\54\x20\173\157\156\146\x6f\143\165\x73\x3a\40\x66\165\x6e\x63\164\x69\x6f\156\x20\50\51\40\x7b\x20\x6c\x61\x73\x74\x54\171\160\x65\x20\75\x20\x73\x65\x6c\x65\143\x74\126\x61\x6c\165\x65\x28\164\x68\x69\163\51\x3b\40\x7d\54\x20\x6f\x6e\143\x68\x61\x6e\x67\145\x3a\x20\145\144\151\164\151\x6e\x67\124\x79\160\145\x43\150\141\x6e\x67\145\175\51\x3b", ''), "\x3c\x74\144\76\x3c\151\x6e\x70\165\x74\40\156\141\155\145\x3d\x22", h($y), "\x5b\154\x65\x6e\147\164\x68\135\42\40\x76\x61\x6c\x75\x65\x3d\42", h($o["\154\x65\x6e\147\x74\150"]), "\x22\40\x73\151\172\x65\x3d\42\x33\42", !$o["\x6c\145\156\x67\164\150"] && preg_match("\176\x76\141\x72\x28\x63\x68\x61\x72\x7c\142\x69\156\x61\x72\171\51\x24\x7e", $T) ? "\x20\x63\x6c\141\x73\x73\x3d\47\x72\x65\161\x75\151\x72\145\x64\x27" : ''; echo "\40\x61\162\151\x61\55\x6c\x61\142\x65\x6c\154\145\144\x62\171\x3d\x22\x6c\141\x62\x65\154\55\154\x65\156\x67\164\x68\x22\x3e", script("\x6d\151\x78\151\x6e\x28\x71\x73\x6c\50\47\x69\x6e\x70\165\164\47\x29\54\40\173\157\156\x66\x6f\143\x75\163\x3a\x20\x65\144\x69\164\x69\x6e\x67\x4c\145\156\x67\164\150\106\x6f\x63\x75\x73\54\40\157\156\x69\x6e\160\165\164\72\x20\x65\x64\x69\164\151\156\147\x4c\x65\x6e\x67\164\x68\103\150\x61\x6e\147\x65\x7d\51\x3b", ''), "\x3c\x74\x64\40\143\154\141\163\163\x3d\x22\x6f\160\x74\x69\x6f\156\x73\42\x3e", "\x3c\x73\x65\154\145\143\x74\40\156\141\155\145\x3d\47" . h($y) . "\133\x63\x6f\154\154\141\164\x69\157\156\135\x27" . (preg_match("\176\x28\143\150\x61\162\174\x74\x65\170\x74\174\145\156\x75\155\174\x73\145\x74\x29\x24\176", $T) ? '' : "\40\x63\154\141\x73\163\75\x27\x68\x69\x64\x64\x65\x6e\x27") . "\x3e\74\157\x70\164\151\x6f\156\x20\166\x61\x6c\165\145\75\x22\42\76\x28" . "\x63\x6f\x6c\154\141\164\151\157\x6e" . "\51" . optionlist($pb, $o["\143\157\x6c\154\141\x74\x69\157\156"]) . "\x3c\x2f\x73\x65\154\145\143\164\x3e", $Ii ? "\x3c\x73\x65\x6c\x65\143\x74\x20\x6e\x61\x6d\145\x3d\x27" . h($y) . "\133\x75\156\x73\x69\147\156\145\x64\x5d\47" . (!$T || preg_match(number_type(), $T) ? '' : "\x20\143\154\x61\163\x73\75\x27\x68\x69\144\144\x65\156\x27") . "\x3e\74\x6f\160\164\151\157\x6e\x3e" . optionlist($Ii, $o["\x75\156\x73\x69\x67\156\x65\x64"]) . "\x3c\57\x73\145\x6c\x65\x63\164\x3e" : '', isset($o["\x6f\x6e\137\165\160\144\x61\164\x65"]) ? "\x3c\163\145\x6c\145\x63\164\x20\x6e\x61\x6d\145\x3d\x27" . h($y) . "\133\157\156\x5f\165\x70\144\x61\164\145\x5d\x27" . (preg_match("\176\x74\x69\x6d\x65\x73\x74\x61\x6d\160\174\x64\141\x74\145\164\151\155\x65\176", $T) ? '' : "\x20\x63\x6c\x61\x73\x73\x3d\47\150\x69\x64\144\145\156\x27") . "\76" . optionlist(array('' => "\x28" . "\x4f\x4e\x20\125\x50\x44\x41\x54\x45" . "\51", "\103\x55\x52\x52\105\116\x54\137\x54\x49\115\105\x53\124\101\x4d\120"), preg_match("\176\x5e\103\125\122\x52\x45\116\124\x5f\124\111\x4d\105\123\x54\x41\115\x50\176\x69", $o["\x6f\x6e\137\x75\160\x64\141\x74\x65"]) ? "\x43\125\x52\x52\105\x4e\x54\x5f\x54\x49\115\105\123\x54\x41\x4d\120" : $o["\x6f\156\137\165\x70\144\141\x74\145"]) . "\74\x2f\x73\x65\x6c\x65\x63\164\x3e" : '', $ed ? "\x3c\x73\x65\x6c\x65\x63\164\x20\156\x61\x6d\x65\75\47" . h($y) . "\x5b\157\156\137\x64\x65\x6c\145\x74\145\135\x27" . (preg_match("\176\x60\x7e", $T) ? '' : "\x20\143\x6c\x61\x73\x73\x3d\47\150\x69\144\x64\x65\x6e\47") . "\76\x3c\157\x70\x74\151\x6f\x6e\x20\x76\x61\154\x75\x65\75\47\47\76\50" . "\117\x4e\x20\x44\105\x4c\x45\124\105" . "\x29" . optionlist(explode("\174", $qf), $o["\157\156\x5f\144\145\154\145\164\145"]) . "\74\57\163\145\x6c\x65\x63\164\x3e\40" : "\40"; } goto Rhh0P; lUNHA: function confirm($Le = '', $gh = "\x71\x73\154\x28\x27\x69\156\160\165\x74\47\x29") { return script("{$gh}\x2e\x6f\x6e\143\154\x69\x63\x6b\x20\75\40\x66\x75\x6e\x63\164\151\157\x6e\x20\x28\51\40\x7b\40\x72\x65\x74\165\162\x6e\40\x63\x6f\x6e\x66\x69\162\x6d\x28\x27" . ($Le ? js_escape($Le) : "\101\x72\x65\40\x79\x6f\165\40\163\x75\x72\x65\x3f") . "\x27\x29\73\x20\175\x3b", ''); } goto Lcruv; aQqeC: if (isset($_GET["\165\x73\145\162\156\x61\x6d\x65"]) && !class_exists("\115\151\x6e\x5f\104\x42")) { unset($_SESSION["\160\167\x64\x73"][DRIVER]); unset_permanent(); page_header("\x4e\x6f\x20\145\x78\x74\145\x6e\x73\x69\x6f\156", sprintf("\x4e\x6f\x6e\x65\x20\x6f\146\40\x74\x68\145\x20\163\165\x70\160\x6f\x72\x74\145\144\40\120\110\x50\40\x65\170\x74\x65\156\x73\151\157\x6e\163\40\50\45\x73\x29\40\x61\x72\x65\40\x61\166\x61\151\154\x61\x62\x6c\145\56", implode("\54\x20", $hg)), false); page_footer("\x61\x75\x74\150"); die; } goto yqpec; dLZSr: function charset($g) { return min_version("\65\x2e\x35\x2e\63", 0, $g) ? "\165\164\x66\x38\155\142\64" : "\x75\x74\146\x38"; } goto kMbOS; xAo94: if (!$_SERVER["\122\105\x51\x55\105\123\124\137\x55\x52\x49"]) { $_SERVER["\x52\105\x51\x55\105\123\124\x5f\x55\122\x49"] = $_SERVER["\117\122\111\107\137\x50\x41\x54\x48\x5f\x49\x4e\106\x4f"]; } goto XxCTp; mQOC3: if ($Vc || ini_get("\x66\151\154\x74\145\162\x2e\144\145\x66\x61\165\x6c\164\137\x66\154\141\x67\163")) { foreach (array("\x5f\107\105\x54", "\x5f\120\117\123\x54", "\137\103\117\117\x4b\111\x45", "\x5f\x53\105\x52\126\105\122") as $X) { $Gi = filter_input_array(constant("\x49\x4e\120\125\124{$X}"), FILTER_UNSAFE_RAW); if ($Gi) { ${$X} = $Gi; } } } goto JgESz; JTH_f: function decrypt_string($Gh, $y) { if ($Gh == '') { return ''; } if (!$y) { return false; } $y = array_values(unpack("\126\x2a", pack("\x48\x2a", md5($y)))); $W = str2long($Gh, false); $We = count($W) - 1; $pj = $W[$We]; $oj = $W[0]; $ug = floor(6 + 52 / ($We + 1)); $Lh = int32($ug * 2654435769); while ($Lh) { $lc = $Lh >> 2 & 3; for ($Lf = $We; $Lf > 0; $Lf--) { $pj = $W[$Lf - 1]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $oj = int32($W[$Lf] - $Ve); $W[$Lf] = $oj; } $pj = $W[$We]; $Ve = xxtea_mx($pj, $oj, $Lh, $y[$Lf & 3 ^ $lc]); $oj = int32($W[0] - $Ve); $W[0] = $oj; $Lh = int32($Lh - 2654435769); } return long2str($W, true); } goto Qm3Aa; yCTlB: $ec["\x73\151\x6d\160\154\145\x64\x62"] = "\123\151\155\x70\154\x65\x44\102"; goto rdi_o; JWKdn: function enum_input($T, $Ja, $o, $Y, $tc = null) { global $b; preg_match_all("\176\x27\50\50\x3f\72\x5b\136\x27\x5d\x7c\x27\47\51\x2a\x29\x27\176", $o["\x6c\145\x6e\147\x74\150"], $De); $H = $tc !== null ? "\74\x6c\141\x62\145\154\x3e\74\151\156\160\165\164\40\x74\x79\x70\145\x3d\47{$T}\47{$Ja}\x20\x76\141\x6c\165\145\x3d\47{$tc}\x27" . (is_array($Y) ? in_array($tc, $Y) : $Y === 0 ? "\40\143\x68\x65\143\x6b\x65\x64" : '') . "\x3e\74\x69\76" . "\x65\x6d\x70\x74\x79" . "\x3c\57\151\x3e\74\57\154\x61\x62\145\154\76" : ''; foreach ($De[1] as $s => $X) { $X = stripcslashes(str_replace("\x27\47", "\x27", $X)); $fb = is_int($Y) ? $Y == $s + 1 : (is_array($Y) ? in_array($s + 1, $Y) : $Y === $X); $H .= "\x20\x3c\154\x61\x62\x65\x6c\x3e\74\151\156\160\165\164\40\x74\x79\160\x65\75\x27{$T}\47{$Ja}\x20\166\141\154\x75\x65\75\x27" . ($s + 1) . "\x27" . ($fb ? "\40\143\x68\145\143\153\145\144" : '') . "\x3e" . h($b->editVal($X, $o)) . "\x3c\57\154\141\x62\145\154\x3e"; } return $H; } goto Pq3Ua; phxOu: function where_check($X, $p = array()) { parse_str($X, $db); remove_slashes(array(&$db)); return where($db, $p); } goto IoMM1; XxCTp: if (!strpos($_SERVER["\x52\x45\121\x55\x45\123\x54\137\125\x52\111"], "\x3f") && $_SERVER["\121\x55\x45\122\131\137\x53\124\x52\111\x4e\x47"] != '') { $_SERVER["\x52\x45\121\125\x45\x53\x54\x5f\125\x52\111"] .= "\x3f{$_SERVER["\x51\x55\105\x52\x59\137\123\124\x52\111\x4e\107"]}"; } goto mlO2t; O1r8o: function number($X) { return preg_replace("\176\x5b\136\x30\55\x39\x5d\53\176", '', $X); } goto YbbTM; eA_OH: function ini_bool($Qd) { $X = ini_get($Qd); return preg_match("\x7e\136\50\x6f\156\x7c\x74\162\x75\x65\x7c\x79\x65\x73\51\44\x7e\x69", $X) || (int) $X; } goto S2G2v; xg8Ru: function verify_token() { list($oi, $yg) = explode("\72", $_POST["\x74\x6f\x6b\x65\x6e"]); return ($yg ^ $_SESSION["\x74\157\153\145\156"]) == $oi; } goto Fbrrq; ftIeU: if ($_GET["\x73\143\162\151\160\x74"] == "\166\x65\162\163\x69\157\156") { $id = file_open_lock(get_temp_dir() . "\57\x61\144\x6d\x69\x6e\x65\162\56\x76\145\162\x73\x69\157\156"); if ($id) { file_write_unlock($id, serialize(array("\x73\x69\147\156\141\x74\165\162\145" => $_POST["\163\x69\x67\156\x61\164\x75\162\145"], "\x76\x65\x72\x73\x69\157\x6e" => $_POST["\x76\145\162\x73\151\157\x6e"]))); } die; } goto nDYu2; r0uiN: function idf_unescape($u) { $ne = substr($u, -1); return str_replace($ne . $ne, $ne, substr($u, 1, -1)); } goto Cl6fw; gDEmj: function dump_csv($I) { foreach ($I as $y => $X) { if (preg_match("\x7e\x5b\x22\12\54\x3b\11\x5d\x7e", $X) || $X === '') { $I[$y] = "\42" . str_replace("\x22", "\x22\42", $X) . "\x22"; } } echo implode($_POST["\x66\x6f\x72\x6d\x61\x74"] == "\x63\163\166" ? "\x2c" : ($_POST["\146\x6f\162\x6d\x61\x74"] == "\164\x73\x76" ? "\x9" : "\x3b"), $I) . "\xd\12"; } goto EuRDS; RDo24: class Adminer { var $operators; function name() { return "\x3c\x61\40\150\x72\145\x66\x3d\x27\150\164\164\x70\163\x3a\57\x2f\x77\167\x77\x2e\x61\144\x6d\x69\156\x65\x72\56\157\162\x67\x2f\x27" . target_blank() . "\x20\x69\144\x3d\47\x68\61\47\76\x41\144\155\151\x6e\145\162\74\x2f\141\76"; } function credentials() { return array(SERVER, $_GET["\165\x73\x65\162\x6e\141\155\145"], get_password()); } function connectSsl() { } function permanentLogin($i = false) { return password_file($i); } function bruteForceKey() { return $_SERVER["\x52\105\115\x4f\124\x45\x5f\101\104\104\x52"]; } function serverName($M) { return h($M); } function database() { return DB; } function databases($ad = true) { return get_databases($ad); } function schemas() { return schemas(); } function queryTimeout() { return 2; } function headers() { } function csp() { return csp(); } function head() { return true; } function css() { $H = array(); $Uc = "\x61\x64\x6d\x69\156\x65\162\x2e\x63\x73\x73"; if (file_exists($Uc)) { $H[] = "{$Uc}\x3f\166\75" . crc32(file_get_contents($Uc)); } return $H; } function loginForm() { global $ec; echo "\74\x74\x61\142\x6c\x65\40\x63\145\x6c\x6c\163\160\141\143\x69\x6e\147\75\47\x30\47\x20\x63\x6c\141\x73\x73\75\47\154\141\171\x6f\165\164\47\76\12", $this->loginFormField("\144\x72\x69\x76\145\x72", "\74\164\x72\76\x3c\x74\x68\x3e" . "\123\171\163\x74\145\155" . "\74\x74\x64\76", html_select("\x61\165\x74\x68\133\x64\162\151\166\145\x72\135", $ec, DRIVER, "\154\157\147\151\x6e\x44\162\151\166\145\162\x28\164\150\151\x73\51\x3b") . "\xa"), $this->loginFormField("\163\145\162\166\145\x72", "\x3c\164\x72\x3e\x3c\164\150\x3e" . "\x53\145\x72\x76\145\x72" . "\74\164\x64\x3e", "\74\151\x6e\160\165\164\40\x6e\x61\155\145\75\42\x61\x75\x74\x68\133\163\x65\x72\166\x65\x72\135\x22\x20\x76\x61\x6c\165\x65\x3d\x22" . h(SERVER) . "\x22\40\164\151\x74\154\145\75\42\x68\157\x73\x74\156\141\155\x65\x5b\72\x70\157\162\164\135\x22\x20\x70\x6c\x61\143\x65\x68\157\x6c\x64\145\162\75\x22\154\157\143\141\x6c\x68\x6f\163\x74\x22\40\141\165\x74\157\143\x61\160\151\x74\x61\154\151\x7a\145\x3d\42\x6f\146\x66\42\76" . "\xa"), $this->loginFormField("\165\163\x65\162\x6e\x61\x6d\x65", "\x3c\x74\x72\76\x3c\x74\x68\76" . "\x55\x73\x65\x72\x6e\141\x6d\145" . "\74\164\x64\x3e", "\74\151\156\x70\165\x74\x20\156\141\x6d\x65\75\x22\x61\x75\164\x68\133\165\x73\x65\x72\156\141\x6d\x65\x5d\42\40\x69\144\x3d\42\165\x73\145\x72\x6e\141\x6d\145\x22\x20\x76\x61\154\165\x65\75\x22" . h($_GET["\x75\163\145\x72\156\x61\155\x65"]) . "\42\40\141\x75\164\x6f\x63\x6f\155\x70\154\145\164\145\x3d\x22\165\163\145\162\156\x61\x6d\x65\x22\40\141\165\164\157\x63\x61\160\151\164\x61\154\151\x7a\x65\x3d\x22\157\146\x66\x22\x3e" . script("\146\157\143\x75\x73\50\x71\163\50\x27\x23\165\x73\x65\162\156\x61\x6d\145\x27\x29\x29\73\x20\161\163\50\47\43\165\x73\145\x72\x6e\x61\x6d\x65\x27\51\x2e\x66\157\162\x6d\133\47\141\165\164\x68\133\144\x72\151\x76\145\162\x5d\47\135\56\157\156\x63\150\x61\x6e\x67\x65\50\x29\x3b")), $this->loginFormField("\x70\141\x73\x73\x77\x6f\x72\x64", "\x3c\164\162\x3e\x3c\x74\x68\x3e" . "\120\141\163\163\x77\157\x72\x64" . "\x3c\x74\144\x3e", "\74\x69\156\160\165\x74\x20\164\171\x70\145\x3d\x22\160\141\x73\163\x77\x6f\162\x64\42\40\156\x61\x6d\x65\x3d\42\141\x75\x74\x68\x5b\160\x61\x73\163\167\157\162\x64\135\42\40\141\165\x74\157\x63\x6f\155\x70\154\x65\x74\x65\x3d\42\143\165\x72\162\145\x6e\x74\55\160\x61\163\x73\167\157\162\x64\42\x3e" . "\12"), $this->loginFormField("\x64\142", "\x3c\164\x72\76\x3c\x74\150\x3e" . "\104\141\164\x61\142\141\x73\145" . "\74\164\x64\76", "\74\x69\x6e\160\165\164\x20\156\x61\x6d\145\x3d\42\x61\x75\x74\150\133\144\x62\135\x22\x20\x76\x61\154\165\145\x3d\42" . h($_GET["\144\142"]) . "\42\x20\x61\165\x74\157\x63\141\160\151\164\x61\154\x69\x7a\145\x3d\42\x6f\x66\x66\42\x3e" . "\xa"), "\74\57\164\x61\142\154\x65\x3e\xa", "\74\x70\76\74\151\x6e\x70\165\164\40\x74\x79\160\145\x3d\x27\x73\x75\x62\155\151\x74\x27\40\166\141\154\165\x65\75\x27" . "\114\x6f\147\151\x6e" . "\x27\x3e\12", checkbox("\x61\165\164\150\x5b\160\145\x72\155\141\x6e\145\156\x74\135", 1, $_COOKIE["\141\x64\155\x69\156\145\x72\x5f\x70\x65\x72\x6d\141\156\145\156\164"], "\120\x65\162\x6d\141\156\145\x6e\x74\40\154\x6f\x67\151\x6e") . "\12"; } function loginFormField($B, $xd, $Y) { return $xd . $Y; } function login($ye, $E) { if ($E == '') { return sprintf("\101\144\x6d\151\156\145\162\x20\144\157\145\163\x20\156\x6f\164\x20\163\x75\160\x70\x6f\x72\164\x20\141\x63\x63\145\x73\163\x69\x6e\147\40\141\x20\x64\141\x74\x61\x62\x61\x73\x65\40\167\151\x74\150\x6f\x75\164\x20\141\x20\x70\x61\163\x73\167\157\162\144\54\40\x3c\x61\40\150\x72\145\146\75\42\x68\164\x74\x70\x73\72\x2f\x2f\167\x77\167\56\x61\144\x6d\x69\x6e\145\162\56\157\x72\147\x2f\x65\x6e\x2f\x70\141\x73\x73\x77\x6f\162\x64\x2f\42\x25\163\x3e\155\x6f\162\145\40\151\x6e\x66\157\x72\x6d\x61\x74\151\x6f\x6e\74\57\x61\76\56", target_blank()); } return true; } function tableName($Oh) { return h($Oh["\116\141\x6d\x65"]); } function fieldName($o, $_f = 0) { return "\x3c\x73\x70\141\x6e\40\164\x69\x74\x6c\x65\x3d\42" . h($o["\x66\165\154\x6c\x5f\x74\x79\x70\145"]) . "\x22\x3e" . h($o["\x66\151\x65\x6c\144"]) . "\74\x2f\x73\x70\141\156\76"; } function selectLinks($Oh, $N = '') { global $x, $m; echo "\x3c\160\40\143\154\141\x73\x73\x3d\x22\154\151\x6e\153\x73\42\x3e"; $we = array("\163\145\x6c\x65\143\x74" => "\x53\x65\x6c\145\143\164\x20\x64\141\164\141"); if (support("\x74\x61\x62\x6c\x65") || support("\x69\156\x64\x65\170\145\x73")) { $we["\x74\141\x62\154\x65"] = "\123\x68\x6f\167\40\163\x74\x72\165\x63\164\x75\x72\145"; } if (support("\x74\141\142\x6c\145")) { if (is_view($Oh)) { $we["\166\x69\145\167"] = "\x41\154\164\145\162\40\166\151\x65\x77"; } else { $we["\x63\162\x65\x61\164\x65"] = "\x41\154\164\145\162\40\164\141\142\154\145"; } } if ($N !== null) { $we["\x65\x64\x69\x74"] = "\x4e\145\167\40\151\164\145\x6d"; } $B = $Oh["\x4e\x61\155\145"]; foreach ($we as $y => $X) { echo "\x20\74\x61\40\150\x72\145\146\75\x27" . h(ME) . "{$y}\75" . urlencode($B) . ($y == "\x65\x64\151\x74" ? $N : '') . "\47" . bold(isset($_GET[$y])) . "\x3e{$X}\74\57\141\76"; } echo doc_link(array($x => $m->tableHelp($B)), "\77"), "\12"; } function foreignKeys($Q) { return foreign_keys($Q); } function backwardKeys($Q, $Nh) { return array(); } function backwardKeysPrint($Pa, $I) { } function selectQuery($F, $Dh, $Nc = false) { global $x, $m; $H = "\x3c\57\160\76\12"; if (!$Nc && ($dj = $m->warnings())) { $t = "\167\x61\162\x6e\x69\x6e\147\x73"; $H = "\x2c\x20\x3c\141\40\x68\x72\x65\x66\75\47\x23{$t}\47\x3e" . "\127\141\x72\x6e\151\156\147\163" . "\74\x2f\x61\x3e" . script("\x71\163\x6c\x28\47\141\47\x29\56\x6f\156\x63\x6c\x69\143\x6b\40\75\x20\160\x61\x72\164\x69\141\x6c\50\x74\x6f\147\x67\154\145\x2c\40\x27{$t}\47\51\x3b", '') . "{$H}\x3c\x64\x69\166\x20\x69\144\75\47{$t}\x27\x20\x63\154\141\x73\x73\x3d\x27\x68\151\x64\144\145\x6e\x27\x3e\12{$dj}\74\x2f\x64\151\166\x3e\xa"; } return "\x3c\x70\x3e\74\143\x6f\144\x65\x20\x63\x6c\141\x73\x73\x3d\x27\152\165\163\150\55{$x}\47\x3e" . h(str_replace("\xa", "\40", $F)) . "\74\x2f\143\x6f\x64\x65\x3e\40\x3c\163\160\141\156\x20\x63\154\141\x73\x73\75\x27\x74\151\155\145\x27\76\x28" . format_time($Dh) . "\x29\74\57\x73\160\x61\156\x3e" . (support("\x73\161\x6c") ? "\x20\74\141\x20\x68\x72\145\x66\75\x27" . h(ME) . "\x73\x71\x6c\75" . urlencode($F) . "\47\x3e" . "\x45\x64\x69\x74" . "\74\x2f\x61\76" : '') . $H; } function sqlCommandQuery($F) { return shorten_utf8(trim($F), 1000); } function rowDescription($Q) { return ''; } function rowDescriptions($J, $dd) { return $J; } function selectLink($X, $o) { } function selectVal($X, $_, $o, $Hf) { $H = $X === null ? "\x3c\151\76\116\125\114\114\x3c\57\x69\x3e" : (preg_match("\176\x63\x68\x61\x72\x7c\142\151\x6e\141\162\171\174\x62\157\157\154\x65\x61\x6e\x7e", $o["\164\171\160\x65"]) && !preg_match("\176\x76\141\162\176", $o["\164\171\x70\x65"]) ? "\74\x63\x6f\144\x65\76{$X}\74\x2f\x63\157\144\145\x3e" : $X); if (preg_match("\176\142\x6c\x6f\142\x7c\142\x79\164\x65\141\x7c\x72\141\x77\x7c\146\x69\x6c\145\176", $o["\x74\171\x70\x65"]) && !is_utf8($X)) { $H = "\74\151\76" . lang(array("\x25\x64\x20\142\x79\x74\x65", "\45\144\40\142\171\164\145\163"), strlen($Hf)) . "\x3c\x2f\151\x3e"; } if (preg_match("\176\x6a\x73\x6f\x6e\176", $o["\164\171\160\145"])) { $H = "\x3c\143\157\144\x65\40\x63\x6c\141\x73\x73\75\47\x6a\x75\163\x68\55\x6a\163\47\76{$H}\74\x2f\x63\x6f\x64\145\x3e"; } return $_ ? "\74\x61\x20\150\x72\145\x66\x3d\47" . h($_) . "\47" . (is_url($_) ? target_blank() : '') . "\x3e{$H}\x3c\57\x61\x3e" : $H; } function editVal($X, $o) { return $X; } function tableStructurePrint($p) { echo "\x3c\x64\x69\x76\x20\143\x6c\141\163\x73\75\x27\x73\143\162\157\x6c\x6c\141\142\154\x65\x27\x3e\xa", "\74\x74\141\x62\x6c\145\40\143\145\154\x6c\x73\x70\141\x63\151\x6e\147\75\x27\x30\x27\x20\x63\154\x61\163\x73\75\x27\156\157\167\162\141\x70\x27\76\12", "\x3c\164\150\x65\141\x64\x3e\x3c\x74\162\x3e\x3c\x74\150\76" . "\x43\x6f\154\x75\155\x6e" . "\74\x74\x64\x3e" . "\124\171\x70\x65" . (support("\143\157\155\x6d\x65\x6e\164") ? "\x3c\164\x64\76" . "\x43\157\x6d\x6d\x65\156\x74" : '') . "\74\x2f\x74\x68\145\x61\144\x3e\xa"; foreach ($p as $o) { echo "\x3c\164\162" . odd() . "\x3e\74\x74\x68\76" . h($o["\146\x69\x65\x6c\x64"]), "\74\x74\x64\76\74\x73\160\x61\x6e\x20\x74\151\x74\x6c\x65\75\x27" . h($o["\x63\157\x6c\x6c\141\x74\151\x6f\x6e"]) . "\x27\x3e" . h($o["\x66\x75\154\154\x5f\x74\171\160\x65"]) . "\74\x2f\x73\x70\x61\x6e\x3e", $o["\x6e\x75\154\154"] ? "\40\x3c\x69\76\x4e\125\114\x4c\x3c\x2f\151\x3e" : '', $o["\x61\165\x74\157\137\x69\156\x63\162\145\x6d\145\x6e\x74"] ? "\x20\74\151\76" . "\x41\x75\x74\157\40\x49\156\143\x72\x65\155\x65\x6e\x74" . "\74\57\151\x3e" : '', isset($o["\x64\x65\146\x61\165\x6c\164"]) ? "\40\74\163\160\x61\156\x20\x74\151\164\x6c\x65\x3d\x27" . "\x44\145\x66\x61\165\154\x74\x20\x76\141\154\x75\145" . "\x27\x3e\x5b\74\142\76" . h($o["\144\x65\x66\x61\x75\x6c\x74"]) . "\x3c\x2f\142\76\135\74\x2f\163\x70\x61\156\x3e" : '', support("\143\157\x6d\155\x65\x6e\x74") ? "\x3c\164\144\76" . h($o["\x63\157\x6d\x6d\145\156\x74"]) : '', "\xa"; } echo "\x3c\x2f\x74\x61\142\x6c\145\x3e\12", "\x3c\57\144\x69\166\76\12"; } function tableIndexesPrint($w) { echo "\74\x74\141\142\154\145\40\x63\145\x6c\x6c\x73\160\x61\x63\x69\156\147\x3d\x27\60\47\x3e\12"; foreach ($w as $B => $v) { ksort($v["\x63\157\154\x75\155\x6e\x73"]); $mg = array(); foreach ($v["\143\157\154\x75\155\x6e\163"] as $y => $X) { $mg[] = "\74\x69\76" . h($X) . "\x3c\57\x69\x3e" . ($v["\x6c\145\156\x67\164\150\163"][$y] ? "\x28" . $v["\154\x65\156\147\x74\150\x73"][$y] . "\x29" : '') . ($v["\144\x65\x73\x63\x73"][$y] ? "\x20\x44\x45\123\x43" : ''); } echo "\x3c\164\162\40\x74\x69\164\x6c\145\x3d\x27" . h($B) . "\47\x3e\x3c\x74\x68\x3e{$v["\x74\x79\160\145"]}\74\x74\144\76" . implode("\54\40", $mg) . "\12"; } echo "\74\57\x74\141\x62\x6c\145\x3e\xa"; } function selectColumnsPrint($K, $f) { global $kd, $qd; print_fieldset("\x73\x65\154\145\x63\164", "\x53\145\154\x65\x63\164", $K); $s = 0; $K[''] = array(); foreach ($K as $y => $X) { $X = $_GET["\143\157\154\165\x6d\x6e\163"][$y]; $e = select_input("\x20\156\141\x6d\145\75\x27\x63\x6f\x6c\x75\x6d\x6e\x73\133{$s}\x5d\x5b\143\157\154\135\47", $f, $X["\143\x6f\x6c"], $y !== '' ? "\163\145\154\x65\x63\x74\106\151\145\154\144\103\150\x61\x6e\147\145" : "\163\145\x6c\145\143\x74\x41\144\x64\122\157\167"); echo "\x3c\144\151\x76\76" . ($kd || $qd ? "\x3c\x73\145\x6c\x65\x63\164\40\156\x61\155\145\75\47\x63\x6f\154\165\x6d\156\163\x5b{$s}\135\133\146\x75\156\x5d\47\76" . optionlist(array(-1 => '') + array_filter(array("\106\165\x6e\143\164\151\x6f\x6e\163" => $kd, "\101\x67\147\x72\145\147\141\x74\151\x6f\156" => $qd)), $X["\x66\x75\x6e"]) . "\74\x2f\163\x65\x6c\145\143\x74\76" . on_help("\x67\x65\164\124\x61\x72\147\x65\164\50\x65\166\145\156\x74\51\x2e\166\x61\154\165\x65\40\x26\x26\x20\147\x65\x74\x54\141\x72\147\x65\x74\50\x65\x76\x65\x6e\164\x29\56\166\x61\154\165\145\56\x72\x65\x70\154\x61\x63\145\50\x2f\40\174\x24\57\54\x20\x27\50\x27\x29\40\x2b\x20\47\x29\47", 1) . script("\x71\163\154\x28\47\x73\145\x6c\x65\143\x74\47\x29\56\x6f\x6e\x63\150\141\156\x67\x65\x20\75\x20\146\x75\x6e\143\x74\x69\x6f\x6e\x20\x28\x29\40\x7b\40\150\145\x6c\160\x43\x6c\157\x73\x65\x28\51\73" . ($y !== '' ? '' : "\40\161\163\154\50\47\163\x65\x6c\145\143\164\x2c\40\x69\x6e\x70\x75\x74\x27\54\x20\164\150\x69\163\x2e\x70\141\162\145\156\164\x4e\x6f\x64\145\51\56\x6f\x6e\x63\x68\x61\156\147\145\x28\x29\x3b") . "\x20\x7d\73", '') . "\50{$e}\51" : $e) . "\74\x2f\x64\151\166\x3e\12"; $s++; } echo "\x3c\57\144\x69\x76\x3e\x3c\x2f\146\x69\x65\154\144\163\x65\164\x3e\xa"; } function selectSearchPrint($Z, $f, $w) { print_fieldset("\163\145\141\162\x63\150", "\x53\145\x61\x72\143\x68", $Z); foreach ($w as $s => $v) { if ($v["\164\171\x70\145"] == "\x46\125\x4c\x4c\124\x45\130\124") { echo "\x3c\144\151\x76\x3e\50\x3c\151\76" . implode("\74\x2f\151\76\54\x20\74\x69\x3e", array_map("\x68", $v["\x63\x6f\x6c\x75\x6d\156\163"])) . "\74\x2f\151\x3e\51\x20\101\107\x41\x49\116\123\x54", "\40\x3c\151\156\x70\165\164\x20\164\x79\x70\x65\75\x27\x73\x65\x61\162\x63\150\47\40\x6e\141\x6d\145\x3d\47\x66\165\x6c\154\x74\145\170\164\x5b{$s}\x5d\x27\x20\166\x61\154\x75\145\x3d\47" . h($_GET["\x66\x75\x6c\x6c\164\145\170\164"][$s]) . "\47\x3e", script("\161\163\154\50\47\151\x6e\160\165\164\x27\51\x2e\x6f\156\x69\x6e\160\x75\164\x20\x3d\40\163\145\154\x65\143\164\x46\151\145\154\x64\x43\x68\x61\x6e\x67\x65\73", ''), checkbox("\142\x6f\157\x6c\x65\x61\156\133{$s}\135", 1, isset($_GET["\142\x6f\157\x6c\x65\141\x6e"][$s]), "\102\x4f\117\x4c"), "\74\x2f\144\151\166\x3e\xa"; } } $bb = "\164\150\151\163\56\160\141\162\x65\156\x74\x4e\157\x64\x65\56\x66\x69\162\163\164\103\x68\151\x6c\144\56\x6f\156\143\x68\141\156\147\145\50\51\73"; foreach (array_merge((array) $_GET["\x77\150\x65\162\x65"], array(array())) as $s => $X) { if (!$X || "{$X["\x63\x6f\x6c"]}{$X["\166\141\154"]}" != '' && in_array($X["\157\x70"], $this->operators)) { echo "\74\x64\x69\166\76" . select_input("\x20\x6e\x61\x6d\x65\x3d\47\167\150\145\x72\145\x5b{$s}\x5d\x5b\x63\157\x6c\x5d\x27", $f, $X["\x63\x6f\x6c"], $X ? "\163\145\154\145\143\164\106\x69\145\154\x64\x43\x68\x61\156\x67\x65" : "\x73\x65\x6c\x65\143\x74\x41\x64\x64\x52\x6f\167", "\50" . "\x61\x6e\171\167\150\x65\162\x65" . "\x29"), html_select("\x77\150\145\162\145\x5b{$s}\x5d\133\157\x70\135", $this->operators, $X["\157\x70"], $bb), "\74\x69\156\160\165\164\x20\164\x79\x70\x65\75\47\163\145\141\x72\x63\x68\47\40\156\x61\155\145\x3d\x27\167\150\145\x72\x65\133{$s}\135\133\x76\141\154\135\47\40\x76\141\x6c\165\145\75\47" . h($X["\166\141\154"]) . "\x27\76", script("\x6d\151\x78\x69\x6e\x28\161\163\154\x28\x27\151\x6e\x70\165\164\47\51\54\x20\x7b\x6f\x6e\x69\x6e\160\x75\164\72\40\x66\165\156\x63\164\x69\157\x6e\x20\x28\51\x20\x7b\40{$bb}\x20\175\x2c\x20\157\156\x6b\145\x79\x64\x6f\167\x6e\x3a\x20\x73\145\x6c\145\x63\164\x53\x65\x61\162\143\x68\113\145\171\144\x6f\x77\x6e\54\x20\157\156\x73\145\x61\x72\x63\150\72\40\x73\145\154\x65\x63\164\123\x65\x61\x72\143\150\123\x65\141\x72\x63\150\175\x29\73", ''), "\x3c\57\x64\151\x76\x3e\12"; } } echo "\74\x2f\x64\151\166\x3e\x3c\57\x66\151\x65\154\144\x73\x65\x74\x3e\12"; } function selectOrderPrint($_f, $f, $w) { print_fieldset("\163\157\x72\x74", "\x53\157\x72\164", $_f); $s = 0; foreach ((array) $_GET["\157\x72\144\145\162"] as $y => $X) { if ($X != '') { echo "\74\x64\x69\x76\76" . select_input("\x20\156\x61\155\145\x3d\47\157\162\x64\145\x72\x5b{$s}\135\47", $f, $X, "\163\145\x6c\x65\x63\164\106\x69\x65\154\144\103\x68\x61\x6e\147\145"), checkbox("\144\145\163\143\133{$s}\x5d", 1, isset($_GET["\x64\x65\163\x63"][$y]), "\144\145\163\143\x65\156\144\x69\x6e\x67") . "\x3c\57\x64\x69\x76\76\xa"; $s++; } } echo "\74\x64\151\166\76" . select_input("\40\x6e\x61\155\145\x3d\x27\157\x72\144\145\162\x5b{$s}\135\47", $f, '', "\x73\145\x6c\145\143\164\101\144\144\x52\157\x77"), checkbox("\x64\145\x73\x63\133{$s}\x5d", 1, false, "\x64\x65\163\x63\x65\x6e\x64\151\x6e\147") . "\x3c\x2f\144\151\166\x3e\12", "\74\57\x64\x69\x76\76\x3c\57\x66\151\x65\x6c\144\163\x65\164\x3e\xa"; } function selectLimitPrint($z) { echo "\74\146\x69\x65\x6c\144\163\x65\164\x3e\x3c\154\x65\x67\x65\156\144\76" . "\114\x69\155\151\164" . "\74\57\154\x65\x67\x65\x6e\x64\x3e\x3c\x64\x69\x76\76"; echo "\x3c\151\156\160\x75\164\40\x74\171\x70\x65\x3d\x27\156\165\x6d\x62\145\162\x27\x20\156\141\x6d\x65\75\x27\154\151\155\x69\164\47\40\x63\154\141\163\163\75\47\163\x69\172\145\47\x20\166\141\154\165\x65\x3d\47" . h($z) . "\47\76", script("\161\163\154\x28\47\x69\x6e\160\x75\164\47\x29\x2e\x6f\156\151\156\x70\x75\x74\x20\75\40\x73\x65\154\145\143\164\106\x69\x65\x6c\144\103\150\141\x6e\147\145\x3b", ''), "\x3c\x2f\x64\151\x76\x3e\x3c\x2f\x66\151\145\x6c\x64\163\x65\x74\76\12"; } function selectLengthPrint($di) { if ($di !== null) { echo "\74\x66\x69\x65\154\x64\163\145\164\x3e\74\154\x65\147\145\156\144\76" . "\124\x65\x78\164\x20\154\x65\x6e\147\x74\150" . "\x3c\57\154\145\147\145\x6e\144\76\x3c\x64\151\166\x3e", "\x3c\151\156\160\165\x74\x20\164\171\x70\x65\x3d\x27\156\x75\155\x62\x65\x72\47\x20\156\x61\x6d\x65\x3d\x27\164\x65\x78\164\137\x6c\x65\x6e\147\x74\x68\x27\40\143\x6c\141\163\163\75\47\163\151\172\x65\x27\40\166\141\x6c\x75\145\75\x27" . h($di) . "\x27\x3e", "\x3c\57\144\x69\166\x3e\x3c\x2f\x66\x69\x65\x6c\144\x73\x65\164\x3e\xa"; } } function selectActionPrint($w) { echo "\x3c\x66\x69\x65\x6c\144\x73\145\x74\x3e\74\x6c\145\x67\x65\156\x64\x3e" . "\101\x63\164\x69\x6f\156" . "\74\x2f\154\x65\x67\145\x6e\144\x3e\74\x64\x69\x76\76", "\x3c\x69\x6e\x70\x75\x74\40\164\171\x70\145\x3d\47\163\x75\x62\155\151\x74\47\40\166\x61\x6c\165\145\75\x27" . "\123\145\154\145\143\164" . "\x27\x3e", "\40\x3c\163\160\x61\x6e\x20\151\x64\x3d\x27\x6e\157\151\156\x64\145\170\47\x20\164\x69\164\154\x65\75\47" . "\x46\x75\154\x6c\x20\x74\141\142\154\x65\x20\x73\143\x61\x6e" . "\x27\x3e\74\x2f\163\160\141\x6e\x3e", "\x3c\163\143\162\151\x70\x74" . nonce() . "\76\xa", "\166\141\162\x20\x69\x6e\x64\x65\170\x43\157\154\165\155\x6e\x73\40\75\40"; $f = array(); foreach ($w as $v) { $Lb = reset($v["\143\157\154\x75\155\x6e\163"]); if ($v["\164\x79\x70\145"] != "\x46\x55\x4c\x4c\124\x45\130\x54" && $Lb) { $f[$Lb] = 1; } } $f[''] = 1; foreach ($f as $y => $X) { json_row($y); } echo "\73\xa", "\x73\145\x6c\145\x63\164\106\151\x65\x6c\144\x43\150\x61\156\147\x65\56\143\x61\154\154\x28\x71\x73\x28\47\43\146\157\162\x6d\47\x29\133\47\163\x65\154\145\143\x74\47\135\51\x3b\12", "\74\57\x73\x63\162\151\x70\164\x3e\12", "\74\x2f\144\x69\166\x3e\74\57\x66\x69\145\x6c\x64\x73\x65\164\76\12"; } function selectCommandPrint() { return !information_schema(DB); } function selectImportPrint() { return !information_schema(DB); } function selectEmailPrint($rc, $f) { } function selectColumnsProcess($f, $w) { global $kd, $qd; $K = array(); $nd = array(); foreach ((array) $_GET["\x63\157\154\165\155\x6e\x73"] as $y => $X) { if ($X["\146\x75\156"] == "\143\x6f\x75\156\164" || $X["\143\157\x6c"] != '' && (!$X["\146\165\x6e"] || in_array($X["\146\165\156"], $kd) || in_array($X["\146\x75\156"], $qd))) { $K[$y] = apply_sql_function($X["\x66\165\156"], $X["\x63\x6f\x6c"] != '' ? idf_escape($X["\x63\157\154"]) : "\52"); if (!in_array($X["\146\165\156"], $qd)) { $nd[] = $K[$y]; } } } return array($K, $nd); } function selectSearchProcess($p, $w) { global $g, $m; $H = array(); foreach ($w as $s => $v) { if ($v["\164\x79\x70\145"] == "\106\x55\x4c\x4c\x54\105\x58\x54" && $_GET["\x66\x75\x6c\154\164\145\x78\x74"][$s] != '') { $H[] = "\115\x41\x54\103\x48\x20\50" . implode("\54\x20", array_map("\151\144\146\137\x65\163\143\x61\x70\145", $v["\x63\x6f\x6c\x75\155\x6e\163"])) . "\51\x20\x41\107\101\x49\116\123\124\x20\50" . q($_GET["\146\165\154\x6c\164\145\170\164"][$s]) . (isset($_GET["\142\x6f\x6f\x6c\x65\x61\x6e"][$s]) ? "\40\x49\116\x20\102\x4f\x4f\114\x45\101\x4e\40\115\x4f\x44\x45" : '') . "\51"; } } foreach ((array) $_GET["\x77\x68\x65\x72\x65"] as $y => $X) { if ("{$X["\143\157\x6c"]}{$X["\166\x61\x6c"]}" != '' && in_array($X["\x6f\x70"], $this->operators)) { $ig = ''; $wb = "\x20{$X["\157\160"]}"; if (preg_match("\176\x49\x4e\44\x7e", $X["\x6f\x70"])) { $Hd = process_length($X["\166\141\x6c"]); $wb .= "\40" . ($Hd != '' ? $Hd : "\x28\x4e\125\114\x4c\51"); } elseif ($X["\157\x70"] == "\x53\121\114") { $wb = "\40{$X["\166\141\x6c"]}"; } elseif ($X["\x6f\x70"] == "\114\x49\113\105\40\45\45") { $wb = "\x20\114\111\113\x45\x20" . $this->processInput($p[$X["\143\x6f\x6c"]], "\x25{$X["\x76\x61\154"]}\45"); } elseif ($X["\157\x70"] == "\111\x4c\x49\113\105\40\x25\45") { $wb = "\40\x49\114\x49\x4b\105\40" . $this->processInput($p[$X["\143\x6f\154"]], "\x25{$X["\166\x61\x6c"]}\x25"); } elseif ($X["\157\160"] == "\106\x49\x4e\104\x5f\111\116\x5f\x53\x45\x54") { $ig = "{$X["\157\x70"]}\x28" . q($X["\166\141\154"]) . "\54\x20"; $wb = "\x29"; } elseif (!preg_match("\176\116\125\x4c\114\x24\x7e", $X["\x6f\160"])) { $wb .= "\40" . $this->processInput($p[$X["\143\157\154"]], $X["\166\141\154"]); } if ($X["\x63\x6f\x6c"] != '') { $H[] = $ig . $m->convertSearch(idf_escape($X["\143\157\154"]), $X, $p[$X["\143\157\x6c"]]) . $wb; } else { $rb = array(); foreach ($p as $B => $o) { if ((preg_match("\176\136\x5b\x2d\x5c\144\56" . (preg_match("\176\x49\x4e\x24\x7e", $X["\x6f\x70"]) ? "\54" : '') . "\x5d\53\x24\x7e", $X["\166\141\154"]) || !preg_match("\176" . number_type() . "\x7c\142\151\x74\x7e", $o["\164\171\x70\x65"])) && (!preg_match("\x7e\133\x80\x2d\xff\x5d\176", $X["\x76\x61\x6c"]) || preg_match("\x7e\143\150\141\x72\174\164\x65\x78\x74\174\145\x6e\165\x6d\x7c\x73\145\164\176", $o["\164\171\x70\x65"]))) { $rb[] = $ig . $m->convertSearch(idf_escape($B), $X, $o) . $wb; } } $H[] = $rb ? "\x28" . implode("\40\117\122\x20", $rb) . "\51" : "\x31\x20\75\40\60"; } } } return $H; } function selectOrderProcess($p, $w) { $H = array(); foreach ((array) $_GET["\157\x72\144\x65\x72"] as $y => $X) { if ($X != '') { $H[] = (preg_match("\x7e\136\50\x28\103\x4f\x55\x4e\124\134\x28\104\x49\x53\x54\111\x4e\103\124\x20\174\133\101\55\132\60\55\71\137\135\53\134\50\x29\x28\140\50\x3f\x3a\133\x5e\140\135\174\140\140\51\x2b\140\174\42\x28\77\72\133\136\42\135\x7c\42\42\x29\x2b\42\51\x5c\x29\174\103\117\125\x4e\x54\134\x28\134\52\134\51\51\x24\x7e", $X) ? $X : idf_escape($X)) . (isset($_GET["\144\x65\x73\x63"][$y]) ? "\40\104\x45\123\103" : ''); } } return $H; } function selectLimitProcess() { return isset($_GET["\x6c\151\x6d\151\x74"]) ? $_GET["\x6c\x69\155\x69\164"] : "\x35\60"; } function selectLengthProcess() { return isset($_GET["\164\x65\x78\164\137\154\145\156\x67\x74\150"]) ? $_GET["\164\145\x78\164\x5f\x6c\145\156\x67\164\150"] : "\x31\60\60"; } function selectEmailProcess($Z, $dd) { return false; } function selectQueryBuild($K, $Z, $nd, $_f, $z, $D) { return ''; } function messageQuery($F, $ei, $Nc = false) { global $x, $m; restart_session(); $yd =& get_session("\161\x75\145\162\151\x65\x73"); if (!$yd[$_GET["\x64\x62"]]) { $yd[$_GET["\144\x62"]] = array(); } if (strlen($F) > 1000000.0) { $F = preg_replace("\176\133\134\170\x38\60\55\x5c\170\106\106\x5d\x2b\x24\x7e", '', substr($F, 0, 1000000.0)) . "\12\xc3\xa2\xe2\202\xac\302\xa6"; } $yd[$_GET["\144\142"]][] = array($F, time(), $ei); $Ah = "\163\161\x6c\x2d" . count($yd[$_GET["\x64\x62"]]); $H = "\x3c\x61\x20\x68\x72\145\x66\75\47\x23{$Ah}\x27\40\x63\154\141\x73\163\75\47\164\x6f\147\147\x6c\x65\47\x3e" . "\123\x51\114\40\x63\157\155\155\x61\x6e\x64" . "\74\x2f\141\76\12"; if (!$Nc && ($dj = $m->warnings())) { $t = "\x77\x61\162\156\x69\156\147\x73\x2d" . count($yd[$_GET["\x64\142"]]); $H = "\x3c\141\x20\x68\x72\145\146\75\x27\x23{$t}\47\x20\143\x6c\x61\x73\x73\75\x27\164\x6f\x67\147\x6c\x65\x27\76" . "\x57\141\x72\x6e\x69\x6e\147\163" . "\74\57\x61\x3e\x2c\x20{$H}\x3c\x64\151\166\40\151\x64\75\x27{$t}\x27\40\143\x6c\x61\x73\x73\75\47\x68\x69\x64\144\145\156\47\76\12{$dj}\x3c\57\144\x69\166\76\12"; } return "\40\74\163\160\141\156\x20\143\x6c\141\x73\x73\75\47\164\151\x6d\145\x27\x3e" . @date("\x48\72\151\72\163") . "\x3c\x2f\163\160\x61\156\x3e" . "\x20{$H}\74\x64\151\x76\40\151\x64\75\47{$Ah}\x27\x20\143\x6c\x61\163\x73\x3d\47\150\x69\x64\144\x65\156\x27\x3e\x3c\x70\162\145\x3e\74\143\157\144\x65\x20\x63\154\141\x73\x73\x3d\47\152\x75\163\150\x2d{$x}\47\76" . shorten_utf8($F, 1000) . "\74\x2f\x63\x6f\144\145\76\x3c\x2f\160\162\145\x3e" . ($ei ? "\x20\74\x73\x70\141\x6e\x20\x63\x6c\x61\x73\163\x3d\47\164\151\155\x65\x27\76\50{$ei}\x29\74\x2f\163\x70\141\x6e\76" : '') . (support("\163\x71\x6c") ? "\74\x70\76\x3c\x61\40\x68\162\145\146\75\42" . h(str_replace("\144\142\x3d" . urlencode(DB), "\144\x62\x3d" . urlencode($_GET["\x64\x62"]), ME) . "\163\161\x6c\75\46\x68\151\x73\x74\x6f\162\x79\75" . (count($yd[$_GET["\x64\x62"]]) - 1)) . "\x22\x3e" . "\x45\x64\151\x74" . "\74\57\141\76" : '') . "\x3c\57\x64\x69\x76\x3e"; } function editFunctions($o) { global $mc; $H = $o["\156\165\x6c\154"] ? "\x4e\125\x4c\114\x2f" : ''; foreach ($mc as $y => $kd) { if (!$y || !isset($_GET["\x63\x61\154\x6c"]) && (isset($_GET["\x73\x65\154\145\x63\x74"]) || where($_GET))) { foreach ($kd as $ag => $X) { if (!$ag || preg_match("\176{$ag}\x7e", $o["\164\171\x70\x65"])) { $H .= "\x2f{$X}"; } } if ($y && !preg_match("\176\163\145\x74\x7c\x62\x6c\157\x62\x7c\142\x79\164\x65\x61\x7c\x72\141\167\x7c\146\151\154\145\x7e", $o["\164\171\x70\145"])) { $H .= "\57\x53\x51\114"; } } } if ($o["\141\x75\x74\157\x5f\x69\156\143\x72\145\x6d\x65\156\164"] && !isset($_GET["\x73\145\154\145\x63\x74"]) && !where($_GET)) { $H = "\101\165\x74\157\40\111\x6e\x63\162\x65\x6d\x65\x6e\x74"; } return explode("\57", $H); } function editInput($Q, $o, $Ja, $Y) { if ($o["\164\x79\x70\145"] == "\x65\x6e\165\x6d") { return (isset($_GET["\163\x65\154\145\143\164"]) ? "\74\154\x61\x62\x65\154\x3e\x3c\x69\156\x70\165\164\40\x74\x79\x70\145\x3d\47\x72\141\144\151\157\x27{$Ja}\40\166\x61\x6c\x75\x65\x3d\47\x2d\61\47\40\143\150\145\x63\153\x65\x64\76\74\x69\x3e" . "\157\162\x69\x67\x69\x6e\141\154" . "\74\x2f\x69\76\74\57\154\141\142\145\154\76\40" : '') . ($o["\156\x75\x6c\154"] ? "\74\154\x61\142\145\154\x3e\74\151\156\160\x75\x74\x20\x74\x79\x70\145\75\x27\x72\x61\x64\151\157\47{$Ja}\x20\x76\x61\154\165\145\75\47\47" . ($Y !== null || isset($_GET["\x73\x65\x6c\x65\x63\x74"]) ? '' : "\x20\143\150\145\x63\x6b\145\x64") . "\76\x3c\151\x3e\x4e\125\x4c\114\x3c\57\151\x3e\x3c\x2f\x6c\141\x62\x65\154\x3e\x20" : '') . enum_input("\162\141\144\x69\157", $Ja, $o, $Y, 0); } return ''; } function editHint($Q, $o, $Y) { return ''; } function processInput($o, $Y, $r = '') { if ($r == "\x53\x51\114") { return $Y; } $B = $o["\146\x69\x65\x6c\x64"]; $H = q($Y); if (preg_match("\x7e\x5e\x28\x6e\157\x77\x7c\x67\x65\x74\x64\141\164\x65\174\165\165\151\144\x29\x24\x7e", $r)) { $H = "{$r}\50\51"; } elseif (preg_match("\176\x5e\x63\x75\x72\x72\x65\156\164\137\50\144\141\164\x65\174\x74\x69\155\145\163\x74\x61\155\160\x29\x24\176", $r)) { $H = $r; } elseif (preg_match("\x7e\x5e\x28\x5b\x2b\55\x5d\174\x5c\x7c\134\174\51\x24\x7e", $r)) { $H = idf_escape($B) . "\x20{$r}\x20{$H}"; } elseif (preg_match("\x7e\136\133\x2b\x2d\135\40\x69\x6e\x74\x65\x72\x76\x61\x6c\x24\x7e", $r)) { $H = idf_escape($B) . "\x20{$r}\40" . (preg_match("\176\x5e\x28\x5c\x64\x2b\174\47\133\x30\55\71\x2e\72\x20\x2d\135\x27\51\x20\133\101\x2d\132\137\135\x2b\44\176\x69", $Y) ? $Y : $H); } elseif (preg_match("\176\136\x28\141\x64\x64\164\151\155\145\x7c\x73\x75\142\164\x69\x6d\145\x7c\143\157\156\143\141\x74\x29\x24\x7e", $r)) { $H = "{$r}\x28" . idf_escape($B) . "\54\40{$H}\x29"; } elseif (preg_match("\176\x5e\50\x6d\x64\x35\174\163\x68\141\61\x7c\x70\x61\163\x73\x77\157\x72\x64\174\145\156\x63\162\171\x70\x74\x29\44\x7e", $r)) { $H = "{$r}\50{$H}\51"; } return unconvert_field($o, $H); } function dumpOutput() { $H = array("\164\x65\170\x74" => "\x6f\160\145\x6e", "\146\x69\154\145" => "\x73\x61\x76\x65"); if (function_exists("\x67\172\x65\x6e\x63\157\x64\145")) { $H["\x67\172"] = "\x67\x7a\151\x70"; } return $H; } function dumpFormat() { return array("\163\161\154" => "\x53\121\x4c", "\143\163\166" => "\103\123\x56\54", "\x63\x73\166\x3b" => "\x43\x53\126\73", "\164\x73\166" => "\124\123\126"); } function dumpDatabase($l) { } function dumpTable($Q, $Ih, $ae = 0) { if ($_POST["\x66\157\x72\155\141\164"] != "\x73\161\x6c") { echo "\xef\273\xbf"; if ($Ih) { dump_csv(array_keys(fields($Q))); } } else { if ($ae == 2) { $p = array(); foreach (fields($Q) as $B => $o) { $p[] = idf_escape($B) . "\x20{$o["\146\x75\x6c\x6c\137\164\171\x70\x65"]}"; } $i = "\x43\122\x45\x41\x54\x45\40\124\101\x42\x4c\x45\40" . table($Q) . "\x20\50" . implode("\x2c\x20", $p) . "\x29"; } else { $i = create_sql($Q, $_POST["\141\165\x74\157\137\x69\x6e\x63\x72\145\155\145\x6e\164"], $Ih); } set_utf8mb4($i); if ($Ih && $i) { if ($Ih == "\x44\x52\x4f\x50\53\x43\122\105\x41\124\x45" || $ae == 1) { echo "\x44\122\x4f\120\x20" . ($ae == 2 ? "\x56\x49\105\x57" : "\124\101\x42\x4c\105") . "\x20\111\x46\40\x45\x58\111\123\x54\x53\x20" . table($Q) . "\x3b\xa"; } if ($ae == 1) { $i = remove_definer($i); } echo "{$i}\73\12\12"; } } } function dumpData($Q, $Ih, $F) { global $g, $x; $Fe = $x == "\x73\x71\x6c\151\164\145" ? 0 : 1048576; if ($Ih) { if ($_POST["\x66\157\x72\155\x61\x74"] == "\x73\x71\154") { if ($Ih == "\x54\x52\125\x4e\103\x41\x54\x45\x2b\x49\116\123\x45\122\x54") { echo truncate_sql($Q) . "\x3b\12"; } $p = fields($Q); } $G = $g->query($F, 1); if ($G) { $Td = ''; $Ya = ''; $he = array(); $Kh = ''; $Qc = $Q != '' ? "\x66\145\x74\x63\x68\x5f\141\163\x73\x6f\143" : "\146\x65\x74\x63\x68\x5f\162\x6f\167"; while ($I = $G->{$Qc}()) { if (!$he) { $Vi = array(); foreach ($I as $X) { $o = $G->fetch_field(); $he[] = $o->name; $y = idf_escape($o->name); $Vi[] = "{$y}\x20\x3d\x20\126\x41\x4c\x55\x45\x53\x28{$y}\x29"; } $Kh = ($Ih == "\x49\x4e\x53\105\x52\x54\x2b\125\x50\104\101\124\x45" ? "\12\117\116\x20\x44\x55\x50\114\111\103\x41\124\x45\40\x4b\105\x59\40\125\x50\x44\101\124\x45\x20" . implode("\x2c\x20", $Vi) : '') . "\73\xa"; } if ($_POST["\146\157\x72\x6d\x61\164"] != "\163\161\154") { if ($Ih == "\164\141\142\154\145") { dump_csv($he); $Ih = "\111\x4e\123\105\x52\124"; } dump_csv($I); } else { if (!$Td) { $Td = "\x49\x4e\123\x45\x52\124\x20\x49\116\x54\117\x20" . table($Q) . "\x20\50" . implode("\x2c\40", array_map("\x69\x64\x66\137\x65\163\143\x61\x70\145", $he)) . "\51\40\x56\101\x4c\x55\105\123"; } foreach ($I as $y => $X) { $o = $p[$y]; $I[$y] = $X !== null ? unconvert_field($o, preg_match(number_type(), $o["\164\171\x70\x65"]) && !preg_match("\x7e\x5c\133\x7e", $o["\x66\x75\x6c\x6c\137\x74\171\160\145"]) && is_numeric($X) ? $X : q($X === false ? 0 : $X)) : "\x4e\125\x4c\x4c"; } $Yg = ($Fe ? "\12" : "\x20") . "\x28" . implode("\54\x9", $I) . "\x29"; if (!$Ya) { $Ya = $Td . $Yg; } elseif (strlen($Ya) + 4 + strlen($Yg) + strlen($Kh) < $Fe) { $Ya .= "\54{$Yg}"; } else { echo $Ya . $Kh; $Ya = $Td . $Yg; } } } if ($Ya) { echo $Ya . $Kh; } } elseif ($_POST["\x66\157\162\x6d\141\x74"] == "\163\x71\154") { echo "\x2d\x2d\40" . str_replace("\12", "\40", $g->error) . "\xa"; } } } function dumpFilename($Cd) { return friendly_url($Cd != '' ? $Cd : (SERVER != '' ? SERVER : "\x6c\x6f\x63\141\154\x68\157\163\x74")); } function dumpHeaders($Cd, $Ue = false) { $Kf = $_POST["\x6f\x75\x74\x70\x75\164"]; $Ic = preg_match("\x7e\x73\x71\x6c\x7e", $_POST["\146\157\162\155\141\164"]) ? "\163\x71\154" : ($Ue ? "\x74\141\162" : "\143\x73\x76"); header("\x43\157\156\164\145\x6e\x74\55\x54\x79\x70\x65\72\x20" . ($Kf == "\147\x7a" ? "\x61\x70\x70\x6c\x69\x63\141\164\151\x6f\x6e\x2f\170\55\x67\172\x69\x70" : ($Ic == "\164\141\162" ? "\x61\x70\160\154\151\x63\x61\x74\151\157\x6e\57\170\x2d\x74\141\x72" : ($Ic == "\163\x71\154" || $Kf != "\x66\151\x6c\145" ? "\164\x65\x78\x74\57\x70\154\x61\151\156" : "\164\x65\x78\x74\57\x63\163\x76") . "\73\40\x63\150\x61\162\163\145\x74\x3d\x75\164\146\x2d\x38"))); if ($Kf == "\147\172") { ob_start("\x6f\142\137\147\172\x65\x6e\143\x6f\144\145", 1000000.0); } return $Ic; } function importServerPath() { return "\x61\144\x6d\151\x6e\145\162\56\x73\x71\154"; } function homepage() { echo "\x3c\160\x20\143\154\x61\x73\x73\x3d\42\154\151\x6e\x6b\x73\42\x3e" . ($_GET["\156\163"] == '' && support("\x64\141\164\141\x62\141\x73\x65") ? "\74\141\40\150\x72\145\x66\x3d\42" . h(ME) . "\144\x61\x74\x61\142\141\163\145\x3d\x22\x3e" . "\x41\154\x74\x65\x72\40\x64\x61\x74\141\x62\x61\163\x65" . "\x3c\57\x61\x3e\12" : ''), support("\x73\143\150\145\x6d\145") ? "\74\141\40\x68\162\x65\146\75\x27" . h(ME) . "\x73\x63\150\145\155\145\x3d\x27\76" . ($_GET["\156\x73"] != '' ? "\101\x6c\164\x65\162\x20\x73\x63\150\145\155\x61" : "\103\x72\145\141\164\145\40\x73\x63\150\x65\x6d\x61") . "\74\57\x61\76\12" : '', $_GET["\156\163"] !== '' ? "\74\x61\x20\150\x72\145\x66\x3d\x22" . h(ME) . "\163\x63\x68\145\155\x61\x3d\x22\x3e" . "\x44\141\164\141\x62\141\x73\145\40\163\x63\x68\145\x6d\141" . "\x3c\57\141\76\xa" : '', support("\160\x72\x69\x76\x69\x6c\145\147\145\163") ? "\x3c\141\x20\150\x72\145\146\x3d\x27" . h(ME) . "\x70\x72\x69\x76\x69\154\145\x67\145\x73\75\x27\x3e" . "\x50\x72\x69\x76\151\154\145\x67\145\163" . "\x3c\57\x61\x3e\xa" : ''; return true; } function navigation($Te) { global $ia, $x, $ec, $g; echo "\x3c\150\61\x3e\12", $this->name(), "\40\74\163\x70\x61\156\40\x63\x6c\x61\163\x73\75\x22\x76\x65\162\163\x69\157\156\42\76", $ia, "\74\x2f\x73\160\x61\x6e\x3e\12\74\141\x20\x68\162\145\146\75\x22\150\164\x74\160\163\x3a\x2f\x2f\x77\x77\x77\x2e\x61\144\x6d\151\156\x65\162\x2e\x6f\162\x67\x2f\x23\x64\x6f\167\156\x6c\x6f\x61\x64\42", target_blank(), "\x20\x69\144\x3d\42\166\x65\162\x73\x69\x6f\x6e\42\76", version_compare($ia, $_COOKIE["\141\144\x6d\151\156\145\x72\x5f\166\145\x72\x73\x69\x6f\156"]) < 0 ? h($_COOKIE["\141\144\x6d\x69\156\x65\x72\137\166\x65\x72\163\x69\x6f\156"]) : '', "\74\x2f\x61\76\xa\74\x2f\150\x31\x3e\xa"; if ($Te == "\141\x75\x74\x68") { $Kf = ''; foreach ((array) $_SESSION["\x70\167\144\163"] as $Xi => $mh) { foreach ($mh as $M => $Si) { foreach ($Si as $V => $E) { if ($E !== null) { $Rb = $_SESSION["\144\142"][$Xi][$M][$V]; foreach ($Rb ? array_keys($Rb) : array('') as $l) { $Kf .= "\x3c\154\x69\76\74\141\x20\x68\x72\145\x66\75\x27" . h(auth_url($Xi, $M, $V, $l)) . "\x27\76\x28{$ec[$Xi]}\x29\40" . h($V . ($M != '' ? "\x40" . $this->serverName($M) : '') . ($l != '' ? "\x20\x2d\40{$l}" : '')) . "\x3c\57\x61\76\xa"; } } } } } if ($Kf) { echo "\x3c\165\x6c\40\151\144\x3d\x27\154\157\147\151\156\163\x27\76\12{$Kf}\74\x2f\165\x6c\76\xa" . script("\155\151\x78\x69\x6e\x28\161\163\50\x27\43\154\157\x67\x69\x6e\x73\x27\x29\54\40\x7b\157\x6e\155\x6f\x75\x73\x65\x6f\166\145\162\72\40\x6d\x65\156\x75\117\166\145\x72\54\x20\157\x6e\155\x6f\165\163\x65\x6f\x75\164\72\40\155\x65\x6e\x75\117\165\164\x7d\51\x3b"); } } else { if ($_GET["\x6e\x73"] !== '' && !$Te && DB != '') { $g->select_db(DB); $S = table_status('', true); } echo script_src(preg_replace("\x7e\x5c\77\56\52\x7e", '', ME) . "\x3f\146\151\x6c\145\75\x6a\x75\163\150\56\152\x73\x26\166\x65\162\163\151\157\156\75\64\56\x37\x2e\x35"); if (support("\x73\161\154")) { echo "\74\163\143\x72\151\160\164", nonce(), "\76\12"; if ($S) { $we = array(); foreach ($S as $Q => $T) { $we[] = preg_quote($Q, "\x2f"); } echo "\166\x61\x72\x20\x6a\x75\x73\x68\x4c\x69\x6e\153\x73\40\75\40\173\x20{$x}\72\x20\133\40\47" . js_escape(ME) . (support("\x74\141\x62\x6c\145") ? "\164\141\x62\154\x65\75" : "\163\x65\154\x65\x63\x74\75") . "\x24\x26\47\54\40\57\134\142\x28" . implode("\174", $we) . "\x29\x5c\142\57\147\x20\135\40\175\73\12"; foreach (array("\x62\141\x63", "\142\162\141", "\163\161\154\x69\x74\x65\x5f\x71\165\157", "\x6d\x73\x73\x71\x6c\137\x62\162\141") as $X) { echo "\x6a\x75\163\x68\114\151\x6e\153\x73\x2e{$X}\40\75\40\x6a\x75\163\150\x4c\x69\x6e\x6b\x73\x2e{$x}\73\12"; } } $lh = $g->server_info; echo "\142\157\144\x79\x4c\x6f\x61\x64\50\x27", is_object($g) ? preg_replace("\176\136\50\x5c\x64\134\x2e\x3f\134\x64\x29\56\x2a\176\x73", "\134\x31", $lh) : '', "\47", preg_match("\x7e\x4d\x61\162\x69\x61\104\102\176", $lh) ? "\x2c\40\x74\x72\165\x65" : '', "\51\x3b\xa\74\x2f\163\143\162\x69\160\164\76\12"; } $this->databasesPrint($Te); if (DB == '' || !$Te) { echo "\74\160\x20\x63\x6c\141\163\x73\x3d\x27\154\151\156\x6b\x73\47\76" . (support("\163\x71\x6c") ? "\74\x61\40\x68\162\145\146\75\x27" . h(ME) . "\163\161\x6c\x3d\47" . bold(isset($_GET["\x73\161\154"]) && !isset($_GET["\x69\x6d\x70\x6f\x72\x74"])) . "\x3e" . "\123\121\x4c\x20\x63\x6f\x6d\155\x61\156\x64" . "\x3c\57\141\76\12\74\x61\x20\x68\162\145\146\x3d\x27" . h(ME) . "\x69\155\x70\x6f\162\x74\x3d\47" . bold(isset($_GET["\x69\155\160\x6f\162\164"])) . "\76" . "\x49\155\x70\157\x72\x74" . "\74\x2f\141\x3e\xa" : '') . ''; if (support("\144\x75\x6d\x70")) { echo "\74\141\40\150\x72\145\x66\75\47" . h(ME) . "\144\165\x6d\x70\75" . urlencode(isset($_GET["\x74\x61\x62\154\x65"]) ? $_GET["\164\141\x62\x6c\x65"] : $_GET["\x73\x65\154\145\x63\x74"]) . "\x27\40\x69\144\x3d\x27\x64\165\155\x70\x27" . bold(isset($_GET["\x64\x75\155\160"])) . "\x3e" . "\105\x78\x70\157\162\164" . "\74\x2f\x61\76\12"; } } if ($_GET["\x6e\163"] !== '' && !$Te && DB != '') { echo "\74\x61\40\150\x72\x65\x66\x3d\42" . h(ME) . "\x63\162\145\x61\x74\x65\x3d\x22" . bold($_GET["\x63\162\x65\x61\164\145"] === '') . "\x3e" . "\x43\162\145\x61\164\x65\40\164\x61\x62\154\x65" . "\x3c\x2f\141\76\xa"; if (!$S) { echo "\74\x70\x20\143\154\x61\x73\163\75\x27\x6d\x65\x73\163\141\147\x65\x27\76" . "\116\x6f\40\164\x61\x62\x6c\x65\163\56" . "\xa"; } else { $this->tablesPrint($S); } } } } function databasesPrint($Te) { global $b, $g; $k = $this->databases(); if ($k && !in_array(DB, $k)) { array_unshift($k, DB); } echo "\x3c\x66\x6f\162\x6d\x20\141\143\x74\x69\157\156\75\x22\42\76\12\74\160\x20\151\x64\x3d\x22\x64\142\163\x22\x3e\12"; hidden_fields_get(); $Pb = script("\x6d\151\x78\151\x6e\50\161\x73\154\x28\47\163\x65\154\x65\x63\x74\x27\51\54\x20\173\x6f\156\155\x6f\x75\x73\x65\x64\x6f\167\x6e\x3a\40\x64\142\x4d\157\165\x73\x65\x44\x6f\x77\156\54\40\x6f\x6e\x63\x68\141\156\x67\145\72\x20\144\142\103\x68\x61\x6e\147\145\175\51\x3b"); echo "\x3c\163\x70\141\156\40\x74\151\164\x6c\x65\x3d\x27" . "\x64\x61\164\x61\x62\141\163\x65" . "\47\x3e" . "\104\102" . "\x3c\57\x73\x70\x61\156\76\x3a\x20" . ($k ? "\x3c\163\145\x6c\145\x63\x74\40\x6e\x61\x6d\145\75\47\x64\x62\x27\x3e" . optionlist(array('' => '') + $k, DB) . "\74\x2f\x73\145\154\x65\x63\164\76{$Pb}" : "\x3c\x69\156\x70\165\164\x20\156\x61\155\x65\x3d\x27\x64\142\47\40\x76\x61\x6c\165\x65\x3d\47" . h(DB) . "\x27\40\141\165\x74\x6f\143\x61\x70\151\x74\x61\x6c\151\x7a\145\x3d\47\157\146\x66\47\76\12"), "\x3c\151\x6e\x70\x75\x74\40\x74\171\160\x65\x3d\x27\x73\x75\142\155\151\164\47\40\166\141\x6c\x75\145\75\x27" . "\x55\163\145" . "\47" . ($k ? "\x20\143\x6c\141\163\x73\x3d\x27\150\x69\x64\144\x65\x6e\x27" : '') . "\x3e\xa"; if ($Te != "\x64\142" && DB != '' && $g->select_db(DB)) { if (support("\163\143\x68\145\x6d\x65")) { echo "\74\142\162\x3e" . "\123\x63\150\145\155\x61" . "\x3a\40\74\163\145\154\x65\x63\164\x20\156\141\155\145\x3d\x27\156\163\47\x3e" . optionlist(array('' => '') + $b->schemas(), $_GET["\x6e\x73"]) . "\74\57\163\x65\x6c\x65\143\164\76{$Pb}"; if ($_GET["\x6e\x73"] != '') { set_schema($_GET["\x6e\163"]); } } } foreach (array("\x69\x6d\x70\x6f\x72\x74", "\163\161\154", "\x73\143\x68\x65\x6d\x61", "\144\165\x6d\160", "\x70\162\x69\x76\x69\x6c\x65\147\x65\163") as $X) { if (isset($_GET[$X])) { echo "\74\x69\156\160\x75\x74\x20\x74\x79\x70\x65\75\47\x68\151\144\144\x65\156\47\x20\156\141\155\x65\x3d\x27{$X}\47\40\x76\141\154\x75\x65\x3d\47\47\76"; break; } } echo "\x3c\x2f\160\x3e\x3c\x2f\x66\157\162\155\x3e\12"; } function tablesPrint($S) { echo "\74\165\x6c\40\151\144\75\47\164\x61\142\x6c\145\x73\x27\x3e" . script("\155\x69\x78\151\156\x28\161\163\50\47\x23\164\141\x62\154\x65\x73\x27\x29\54\x20\173\157\156\x6d\x6f\165\163\x65\x6f\x76\145\162\72\x20\155\145\156\x75\x4f\166\x65\162\x2c\x20\157\x6e\155\157\165\163\145\157\x75\164\72\x20\155\x65\x6e\x75\117\x75\164\175\x29\x3b"); foreach ($S as $Q => $O) { $B = $this->tableName($O); if ($B != '') { echo "\x3c\154\x69\76\74\141\x20\x68\162\145\x66\x3d\x22" . h(ME) . "\163\x65\x6c\x65\143\x74\x3d" . urlencode($Q) . "\42" . bold($_GET["\163\x65\154\145\x63\x74"] == $Q || $_GET["\x65\x64\151\164"] == $Q, "\x73\x65\154\145\143\164") . "\76" . "\163\x65\154\x65\143\164" . "\x3c\x2f\x61\76\40", (support("\x74\x61\x62\x6c\145") || support("\x69\156\x64\x65\170\x65\x73") ? "\x3c\x61\40\150\x72\x65\x66\x3d\x22" . h(ME) . "\x74\141\142\x6c\x65\x3d" . urlencode($Q) . "\x22" . bold(in_array($Q, array($_GET["\x74\141\x62\154\x65"], $_GET["\x63\162\x65\x61\164\145"], $_GET["\151\x6e\144\x65\170\145\163"], $_GET["\x66\157\x72\x65\x69\x67\x6e"], $_GET["\x74\x72\x69\x67\147\145\162"])), is_view($O) ? "\166\151\x65\x77" : "\163\x74\162\165\x63\164\x75\162\x65") . "\40\x74\x69\x74\x6c\x65\75\x27" . "\x53\x68\x6f\167\40\x73\164\162\165\x63\164\165\x72\x65" . "\47\76{$B}\x3c\57\141\76" : "\74\163\160\141\x6e\76{$B}\x3c\x2f\x73\x70\x61\x6e\76") . "\12"; } } echo "\74\57\165\x6c\76\12"; } } goto CSO6b; FC3fb: function shorten_utf8($P, $te = 80, $Kh = '') { if (!preg_match("\50\x5e\x28" . repeat_pattern("\x5b\11\xd\xa\x20\55\134\x78\173\61\60\106\106\x46\x46\175\x5d", $te) . "\x29\x28\x24\x29\77\51\x75", $P, $A)) { preg_match("\x28\x5e\x28" . repeat_pattern("\133\11\xd\12\40\x2d\176\x5d", $te) . "\x29\50\x24\x29\77\51", $P, $A); } return h($A[1]) . $Kh . (isset($A[2]) ? '' : "\74\x69\76\xc3\xa2\342\202\254\302\xa6\x3c\x2f\151\76"); } goto hv8UT; GQ399: if ($_COOKIE["\x61\x64\155\151\x6e\x65\162\x5f\x70\x65\x72\x6d\x61\156\145\156\x74"]) { foreach (explode("\40", $_COOKIE["\x61\144\x6d\151\x6e\145\162\x5f\x70\145\162\x6d\141\x6e\x65\x6e\164"]) as $X) { list($y) = explode("\x3a", $X); $bg[$y] = $X; } } goto Rct2H; VfLYj: function dump_headers($Cd, $Ue = false) { global $b; $H = $b->dumpHeaders($Cd, $Ue); $Kf = $_POST["\157\x75\x74\x70\165\164"]; if ($Kf != "\x74\145\x78\164") { header("\103\x6f\x6e\x74\x65\156\164\55\x44\x69\x73\x70\157\163\x69\x74\151\x6f\x6e\72\x20\x61\164\x74\141\x63\x68\x6d\145\x6e\164\x3b\40\146\151\x6c\x65\156\x61\155\145\75" . $b->dumpFilename($Cd) . "\56{$H}" . ($Kf != "\x66\x69\154\145" && !preg_match("\176\x5b\136\60\55\71\141\x2d\172\135\x7e", $Kf) ? "\x2e{$Kf}" : '')); } session_write_close(); ob_flush(); flush(); return $H; } goto gDEmj; Pg0y8: $ec["\146\151\x72\145\142\151\x72\x64"] = "\x46\151\162\145\142\x69\162\x64\x20\50\x61\x6c\160\150\x61\x29"; goto XU8FB; dPQQO: function unset_permanent() { global $bg; foreach ($bg as $y => $X) { list($Xi, $M, $V, $l) = array_map("\142\141\x73\145\66\x34\137\x64\145\x63\x6f\144\x65", explode("\x2d", $y)); if ($Xi == DRIVER && $M == SERVER && $V == $_GET["\165\163\145\162\x6e\x61\155\145"] && $l == DB) { unset($bg[$y]); } } cookie("\141\144\155\x69\156\x65\x72\x5f\x70\x65\x72\155\141\156\145\156\164", implode("\x20", $bg)); } goto wBf6w; NfyCr: function csp() { return array(array("\x73\x63\162\151\x70\x74\55\163\162\x63" => "\x27\163\x65\154\x66\47\x20\47\165\x6e\x73\141\x66\x65\x2d\x69\156\x6c\x69\156\x65\47\x20\47\x6e\x6f\156\143\145\55" . get_nonce() . "\x27\40\47\163\x74\x72\x69\143\164\55\144\171\x6e\141\155\x69\143\47", "\x63\157\156\x6e\x65\143\164\x2d\163\162\143" => "\47\x73\145\154\x66\47", "\146\162\x61\155\145\x2d\x73\x72\143" => "\150\164\164\160\163\x3a\x2f\x2f\x77\167\x77\56\141\x64\x6d\x69\x6e\x65\162\56\x6f\x72\147", "\157\x62\x6a\145\143\164\x2d\x73\x72\143" => "\x27\156\x6f\x6e\145\x27", "\x62\141\x73\145\55\x75\162\151" => "\x27\x6e\x6f\x6e\x65\47", "\x66\x6f\162\155\x2d\x61\x63\x74\151\x6f\156" => "\47\x73\145\x6c\146\47")); } goto NS6t5; tpzzL: function search_tables() { global $b, $g; $_GET["\x77\150\x65\x72\145"][0]["\x76\x61\x6c"] = $_POST["\161\165\145\x72\x79"]; $ih = "\x3c\165\x6c\76\12"; foreach (table_status('', true) as $Q => $R) { $B = $b->tableName($R); if (isset($R["\105\156\x67\x69\156\145"]) && $B != '' && (!$_POST["\164\141\x62\154\145\163"] || in_array($Q, $_POST["\164\x61\x62\x6c\145\163"]))) { $G = $g->query("\x53\105\114\x45\103\124" . limit("\61\40\106\x52\117\115\40" . table($Q), "\x20\127\110\x45\122\x45\40" . implode("\x20\101\116\x44\40", $b->selectSearchProcess(fields($Q), array())), 1)); if (!$G || $G->fetch_row()) { $mg = "\x3c\141\40\x68\162\x65\x66\75\x27" . h(ME . "\x73\x65\154\145\143\164\x3d" . urlencode($Q) . "\46\167\x68\145\x72\145\133\60\135\133\x6f\x70\135\x3d" . urlencode($_GET["\167\x68\x65\x72\x65"][0]["\x6f\x70"]) . "\46\167\150\145\162\145\x5b\x30\135\x5b\x76\141\x6c\x5d\x3d" . urlencode($_GET["\x77\150\x65\162\x65"][0]["\166\141\154"])) . "\47\76{$B}\x3c\57\x61\76"; echo "{$ih}\x3c\x6c\151\x3e" . ($G ? $mg : "\x3c\x70\40\143\x6c\141\163\163\x3d\47\145\x72\162\x6f\x72\x27\76{$mg}\x3a\x20" . error()) . "\xa"; $ih = ''; } } } echo ($ih ? "\x3c\160\40\143\x6c\x61\163\x73\x3d\x27\155\x65\163\163\x61\x67\145\47\76" . "\x4e\157\40\164\x61\x62\x6c\145\163\56" : "\x3c\x2f\x75\154\x3e") . "\12"; } goto VfLYj; MS2ZE: $ia = "\64\56\x37\56\x35"; goto RDo24; Rhh0P: function process_length($te) { global $wc; return preg_match("\176\136\x5c\163\52\x5c\50\77\x5c\x73\x2a{$wc}\50\x3f\72\134\163\52\54\x5c\163\52{$wc}\51\52\53\134\x73\52\134\51\x3f\x5c\163\52\x24\x7e", $te) && preg_match_all("\x7e{$wc}\176", $te, $De) ? "\x28" . implode("\54", $De[0]) . "\51" : preg_replace("\176\136\x5b\60\55\x39\x5d\56\x2a\176", "\50\134\60\51", preg_replace("\176\x5b\x5e\55\60\x2d\71\54\53\50\x29\133\x5c\x5d\135\176", '', $te)); } goto tSE5C; Pq3Ua: function input($o, $Y, $r) { global $U, $b, $x; $B = h(bracket_escape($o["\x66\151\x65\154\x64"])); echo "\x3c\x74\x64\40\x63\x6c\141\x73\x73\x3d\x27\146\165\156\143\x74\151\157\x6e\x27\76"; if (is_array($Y) && !$r) { $Ea = array($Y); if (version_compare(PHP_VERSION, 5.4) >= 0) { $Ea[] = JSON_PRETTY_PRINT; } $Y = call_user_func_array("\152\x73\x6f\x6e\x5f\145\x6e\143\157\x64\145", $Ea); $r = "\152\163\x6f\x6e"; } $Lg = $x == "\x6d\163\163\161\154" && $o["\x61\165\164\157\x5f\151\156\143\162\x65\155\x65\x6e\164"]; if ($Lg && !$_POST["\163\x61\166\145"]) { $r = null; } $kd = (isset($_GET["\163\x65\x6c\145\x63\164"]) || $Lg ? array("\157\x72\x69\x67" => "\x6f\162\x69\147\x69\156\x61\x6c") : array()) + $b->editFunctions($o); $Ja = "\x20\156\x61\x6d\145\x3d\x27\x66\x69\145\154\x64\x73\x5b{$B}\x5d\47"; if ($o["\164\171\x70\x65"] == "\145\x6e\x75\155") { echo h($kd['']) . "\74\x74\144\x3e" . $b->editInput($_GET["\145\x64\151\x74"], $o, $Ja, $Y); } else { $ud = in_array($r, $kd) || isset($kd[$r]); echo (count($kd) > 1 ? "\x3c\x73\145\154\145\143\164\40\156\x61\x6d\145\75\47\146\165\x6e\x63\x74\151\157\156\133{$B}\135\x27\x3e" . optionlist($kd, $r === null || $ud ? $r : '') . "\74\57\x73\145\154\x65\143\164\76" . on_help("\147\145\x74\x54\x61\162\147\145\164\50\145\166\145\156\x74\51\56\166\141\154\165\145\56\162\x65\x70\154\x61\x63\x65\50\57\136\123\121\114\44\x2f\x2c\40\47\x27\51", 1) . script("\161\x73\x6c\50\47\163\x65\x6c\145\x63\164\47\51\56\157\x6e\143\150\x61\x6e\x67\145\40\x3d\x20\146\x75\x6e\143\x74\x69\157\x6e\103\150\x61\156\147\145\x3b", '') : h(reset($kd))) . "\74\164\144\76"; $Sd = $b->editInput($_GET["\x65\144\x69\164"], $o, $Ja, $Y); if ($Sd != '') { echo $Sd; } elseif (preg_match("\x7e\x62\157\x6f\154\x7e", $o["\x74\x79\x70\x65"])) { echo "\x3c\151\x6e\160\x75\164\40\x74\171\x70\145\x3d\47\150\151\144\144\145\x6e\x27{$Ja}\40\166\x61\154\165\x65\75\47\60\47\76" . "\x3c\x69\x6e\x70\165\x74\x20\164\x79\x70\145\x3d\47\143\x68\x65\x63\153\x62\157\x78\x27" . (preg_match("\x7e\x5e\x28\x31\x7c\x74\174\x74\162\165\145\x7c\x79\174\171\145\x73\x7c\x6f\x6e\51\x24\176\x69", $Y) ? "\x20\143\150\x65\143\x6b\x65\144\x3d\47\143\x68\x65\x63\153\145\x64\x27" : '') . "{$Ja}\40\166\141\x6c\165\145\x3d\47\61\x27\x3e"; } elseif ($o["\x74\171\160\x65"] == "\163\x65\164") { preg_match_all("\x7e\x27\50\x28\x3f\x3a\x5b\x5e\47\135\x7c\x27\x27\x29\52\51\x27\x7e", $o["\x6c\x65\156\147\x74\150"], $De); foreach ($De[1] as $s => $X) { $X = stripcslashes(str_replace("\47\x27", "\47", $X)); $fb = is_int($Y) ? $Y >> $s & 1 : in_array($X, explode("\54", $Y), true); echo "\40\x3c\x6c\x61\x62\x65\154\76\x3c\x69\x6e\x70\x75\x74\40\x74\x79\x70\x65\75\47\x63\150\145\x63\x6b\142\157\170\47\40\156\x61\x6d\x65\x3d\47\146\151\145\x6c\x64\x73\133{$B}\x5d\133{$s}\135\47\40\x76\141\154\165\x65\x3d\x27" . (1 << $s) . "\47" . ($fb ? "\40\x63\150\145\x63\x6b\x65\x64" : '') . "\76" . h($b->editVal($X, $o)) . "\x3c\57\x6c\x61\x62\x65\x6c\76"; } } elseif (preg_match("\176\x62\x6c\157\x62\x7c\142\x79\164\x65\x61\174\162\x61\x77\x7c\146\x69\x6c\x65\176", $o["\164\x79\160\x65"]) && ini_bool("\146\151\154\x65\137\x75\160\154\x6f\x61\144\x73")) { echo "\74\x69\x6e\x70\x75\x74\x20\x74\x79\160\145\75\x27\146\x69\154\x65\x27\x20\x6e\x61\155\x65\75\47\x66\151\145\x6c\144\x73\x2d{$B}\x27\76"; } elseif (($ci = preg_match("\176\164\145\x78\164\174\x6c\157\142\174\155\145\x6d\157\x7e\151", $o["\x74\x79\x70\145"])) || preg_match("\x7e\12\x7e", $Y)) { if ($ci && $x != "\163\x71\154\151\x74\145") { $Ja .= "\40\x63\x6f\x6c\x73\x3d\47\x35\60\x27\40\162\x6f\167\163\75\47\x31\x32\x27"; } else { $J = min(12, substr_count($Y, "\xa") + 1); $Ja .= "\x20\143\x6f\154\x73\x3d\47\x33\x30\47\x20\162\157\x77\163\x3d\47{$J}\x27" . ($J == 1 ? "\x20\163\x74\171\154\145\x3d\47\150\145\x69\147\150\x74\72\x20\61\x2e\62\145\155\73\x27" : ''); } echo "\x3c\x74\x65\x78\164\x61\x72\x65\x61{$Ja}\76" . h($Y) . "\x3c\57\x74\145\170\164\x61\x72\x65\x61\76"; } elseif ($r == "\152\x73\x6f\156" || preg_match("\176\136\152\x73\157\x6e\142\77\44\176", $o["\164\171\160\145"])) { echo "\74\164\x65\x78\x74\x61\x72\x65\x61{$Ja}\x20\x63\x6f\x6c\x73\75\x27\x35\x30\47\40\x72\157\167\163\75\47\x31\62\47\x20\x63\x6c\141\163\x73\75\x27\x6a\165\163\150\x2d\x6a\x73\47\76" . h($Y) . "\x3c\x2f\164\x65\170\x74\141\x72\x65\141\76"; } else { $Ke = !preg_match("\x7e\x69\156\x74\x7e", $o["\164\x79\160\145"]) && preg_match("\176\x5e\50\x5c\x64\x2b\51\50\54\x28\x5c\144\x2b\x29\x29\x3f\x24\x7e", $o["\154\145\156\147\x74\150"], $A) ? (preg_match("\x7e\x62\x69\x6e\x61\x72\171\x7e", $o["\x74\171\x70\145"]) ? 2 : 1) * $A[1] + ($A[3] ? 1 : 0) + ($A[2] && !$o["\165\156\163\151\x67\156\x65\x64"] ? 1 : 0) : ($U[$o["\x74\x79\160\x65"]] ? $U[$o["\164\x79\x70\145"]] + ($o["\x75\156\x73\151\x67\156\145\x64"] ? 0 : 1) : 0); if ($x == "\163\x71\x6c" && min_version(5.6) && preg_match("\176\x74\151\155\145\176", $o["\x74\171\x70\x65"])) { $Ke += 7; } echo "\x3c\x69\156\x70\165\164" . ((!$ud || $r === '') && preg_match("\x7e\50\77\74\41\157\51\151\156\164\x28\x3f\41\x65\162\x29\x7e", $o["\x74\171\160\145"]) && !preg_match("\176\134\133\134\x5d\176", $o["\x66\x75\154\154\137\164\171\x70\145"]) ? "\40\164\x79\160\145\x3d\x27\156\165\155\x62\145\162\47" : '') . "\40\166\x61\154\165\x65\x3d\47" . h($Y) . "\47" . ($Ke ? "\40\x64\141\x74\x61\x2d\x6d\141\170\x6c\145\156\147\164\x68\75\x27{$Ke}\47" : '') . (preg_match("\176\x63\x68\141\162\x7c\142\151\156\x61\162\x79\x7e", $o["\x74\x79\160\145"]) && $Ke > 20 ? "\x20\x73\x69\172\145\x3d\47\64\60\47" : '') . "{$Ja}\76"; } echo $b->editHint($_GET["\x65\x64\151\164"], $o, $Y); $Wc = 0; foreach ($kd as $y => $X) { if ($y === '' || !$X) { break; } $Wc++; } if ($Wc) { echo script("\x6d\151\x78\151\x6e\50\161\163\x6c\x28\47\x74\144\47\x29\x2c\40\x7b\x6f\x6e\x63\150\141\156\x67\x65\x3a\40\x70\141\162\164\151\141\154\x28\163\153\x69\160\117\162\151\x67\151\156\141\154\54\x20{$Wc}\x29\54\x20\x6f\x6e\x69\x6e\x70\165\164\72\40\146\x75\x6e\x63\164\151\157\156\x20\x28\51\40\x7b\x20\x74\150\x69\x73\x2e\x6f\156\143\150\141\156\x67\145\x28\x29\x3b\x20\x7d\x7d\x29\x3b"); } } } goto C7QpS; duH0c: if (!defined("\104\122\111\126\x45\122")) { $hg = array("\x4d\171\123\121\114\x69", "\115\x79\x53\121\114", "\120\104\x4f\x5f\x4d\x79\123\121\x4c"); define("\x44\122\111\126\105\x52", "\x73\145\x72\x76\145\162"); if (extension_loaded("\155\171\163\161\x6c\x69")) { class Min_DB extends MySQLi { var $extension = "\x4d\x79\123\x51\114\151"; function __construct() { parent::init(); } function connect($M = '', $V = '', $E = '', $j = null, $dg = null, $uh = null) { global $b; mysqli_report(MYSQLI_REPORT_OFF); list($Ad, $dg) = explode("\72", $M, 2); $Ch = $b->connectSsl(); if ($Ch) { $this->ssl_set($Ch["\x6b\145\x79"], $Ch["\x63\145\x72\164"], $Ch["\143\x61"], '', ''); } $H = @$this->real_connect($M != '' ? $Ad : ini_get("\155\171\x73\x71\x6c\151\x2e\x64\145\x66\x61\165\x6c\x74\x5f\x68\x6f\163\164"), $M . $V != '' ? $V : ini_get("\155\171\x73\x71\154\151\56\144\x65\146\x61\165\x6c\x74\x5f\165\163\x65\x72"), $M . $V . $E != '' ? $E : ini_get("\155\171\163\x71\x6c\x69\x2e\144\145\x66\141\x75\154\164\137\160\x77"), $j, is_numeric($dg) ? $dg : ini_get("\155\x79\x73\x71\154\151\56\x64\x65\146\141\x75\x6c\x74\x5f\x70\157\x72\164"), !is_numeric($dg) ? $dg : $uh, $Ch ? 64 : 0); $this->options(MYSQLI_OPT_LOCAL_INFILE, false); return $H; } function set_charset($cb) { if (parent::set_charset($cb)) { return true; } parent::set_charset("\165\164\146\x38"); return $this->query("\x53\105\124\40\116\x41\x4d\105\x53\x20{$cb}"); } function result($F, $o = 0) { $G = $this->query($F); if (!$G) { return false; } $I = $G->fetch_array(); return $I[$o]; } function quote($P) { return "\x27" . $this->escape_string($P) . "\x27"; } } } elseif (extension_loaded("\155\x79\x73\161\x6c") && !((ini_bool("\x73\x71\x6c\x2e\x73\x61\146\145\x5f\155\157\x64\x65") || ini_bool("\x6d\171\163\x71\154\56\x61\x6c\x6c\157\x77\x5f\x6c\157\x63\141\x6c\x5f\151\156\x66\x69\x6c\x65")) && extension_loaded("\x70\144\x6f\x5f\155\x79\x73\161\154"))) { class Min_DB { var $extension = "\x4d\171\123\121\x4c", $server_info, $affected_rows, $errno, $error, $_link, $_result; function connect($M, $V, $E) { if (ini_bool("\x6d\x79\x73\x71\154\x2e\141\154\x6c\157\167\x5f\154\157\143\141\x6c\137\x69\x6e\x66\151\x6c\x65")) { $this->error = sprintf("\104\151\x73\141\142\x6c\145\40\x25\x73\x20\157\162\40\x65\156\141\142\x6c\145\x20\x25\x73\40\x6f\162\x20\45\163\40\x65\x78\x74\145\156\163\151\x6f\x6e\163\x2e", "\x27\155\171\163\x71\x6c\56\x61\154\x6c\157\x77\137\154\x6f\x63\141\154\x5f\151\156\x66\151\154\x65\x27", "\115\171\123\x51\114\x69", "\x50\104\x4f\x5f\x4d\x79\123\x51\114"); return false; } $this->_link = @mysql_connect($M != '' ? $M : ini_get("\155\171\163\x71\x6c\56\144\x65\146\x61\x75\154\164\x5f\150\157\x73\x74"), "{$M}{$V}" != '' ? $V : ini_get("\x6d\x79\163\x71\x6c\56\144\145\x66\x61\165\154\x74\137\165\x73\145\x72"), "{$M}{$V}{$E}" != '' ? $E : ini_get("\155\171\x73\161\x6c\x2e\x64\145\146\x61\x75\x6c\164\x5f\160\141\x73\163\167\x6f\162\x64"), true, 131072); if ($this->_link) { $this->server_info = mysql_get_server_info($this->_link); } else { $this->error = mysql_error(); } return (bool) $this->_link; } function set_charset($cb) { if (function_exists("\x6d\171\x73\161\x6c\137\x73\145\164\137\x63\150\x61\x72\163\x65\x74")) { if (mysql_set_charset($cb, $this->_link)) { return true; } mysql_set_charset("\x75\164\x66\70", $this->_link); } return $this->query("\123\105\124\40\x4e\x41\x4d\x45\x53\x20{$cb}"); } function quote($P) { return "\x27" . mysql_real_escape_string($P, $this->_link) . "\47"; } function select_db($j) { return mysql_select_db($j, $this->_link); } function query($F, $Ci = false) { $G = @($Ci ? mysql_unbuffered_query($F, $this->_link) : mysql_query($F, $this->_link)); $this->error = ''; if (!$G) { $this->errno = mysql_errno($this->_link); $this->error = mysql_error($this->_link); return false; } if ($G === true) { $this->affected_rows = mysql_affected_rows($this->_link); $this->info = mysql_info($this->_link); return true; } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 0) { $G = $this->query($F); if (!$G || !$G->num_rows) { return false; } return mysql_result($G->_result, 0, $o); } } class Min_Result { var $num_rows, $_result, $_offset = 0; function __construct($G) { $this->_result = $G; $this->num_rows = mysql_num_rows($G); } function fetch_assoc() { return mysql_fetch_assoc($this->_result); } function fetch_row() { return mysql_fetch_row($this->_result); } function fetch_field() { $H = mysql_fetch_field($this->_result, $this->_offset++); $H->orgtable = $H->table; $H->orgname = $H->name; $H->charsetnr = $H->blob ? 63 : 0; return $H; } function __destruct() { mysql_free_result($this->_result); } } } elseif (extension_loaded("\x70\x64\x6f\137\x6d\171\x73\161\154")) { class Min_DB extends Min_PDO { var $extension = "\x50\104\x4f\137\115\171\123\x51\114"; function connect($M, $V, $E) { global $b; $yf = array(PDO::MYSQL_ATTR_LOCAL_INFILE => false); $Ch = $b->connectSsl(); if ($Ch) { if (!empty($Ch["\x6b\x65\171"])) { $yf[PDO::MYSQL_ATTR_SSL_KEY] = $Ch["\153\145\x79"]; } if (!empty($Ch["\143\145\162\x74"])) { $yf[PDO::MYSQL_ATTR_SSL_CERT] = $Ch["\x63\145\162\164"]; } if (!empty($Ch["\x63\x61"])) { $yf[PDO::MYSQL_ATTR_SSL_CA] = $Ch["\143\141"]; } } $this->dsn("\155\x79\163\x71\x6c\72\x63\150\141\x72\x73\145\164\75\x75\x74\146\70\73\x68\x6f\x73\x74\75" . str_replace("\x3a", "\73\165\156\151\170\x5f\x73\x6f\x63\x6b\145\164\75", preg_replace("\176\x3a\50\x5c\144\51\176", "\x3b\160\x6f\x72\x74\75\134\x31", $M)), $V, $E, $yf); return true; } function set_charset($cb) { $this->query("\x53\x45\x54\40\116\x41\x4d\x45\123\x20{$cb}"); } function select_db($j) { return $this->query("\x55\x53\105\40" . idf_escape($j)); } function query($F, $Ci = false) { $this->setAttribute(1000, !$Ci); return parent::query($F, $Ci); } } } class Min_Driver extends Min_SQL { function insert($Q, $N) { return $N ? parent::insert($Q, $N) : queries("\x49\116\123\x45\x52\x54\40\111\116\124\x4f\40" . table($Q) . "\x20\x28\x29\xa\x56\101\x4c\125\105\x53\x20\50\x29"); } function insertUpdate($Q, $J, $kg) { $f = array_keys(reset($J)); $ig = "\111\116\x53\x45\x52\x54\x20\x49\x4e\124\117\x20" . table($Q) . "\x20\x28" . implode("\54\40", $f) . "\x29\x20\x56\x41\114\125\x45\x53\xa"; $Vi = array(); foreach ($f as $y) { $Vi[$y] = "{$y}\40\75\x20\x56\x41\x4c\125\x45\123\50{$y}\x29"; } $Kh = "\xa\x4f\x4e\40\104\125\120\x4c\x49\103\101\124\x45\x20\x4b\105\131\40\x55\x50\104\101\124\x45\40" . implode("\54\x20", $Vi); $Vi = array(); $te = 0; foreach ($J as $N) { $Y = "\x28" . implode("\54\x20", $N) . "\51"; if ($Vi && strlen($ig) + $te + strlen($Y) + strlen($Kh) > 1000000.0) { if (!queries($ig . implode("\x2c\xa", $Vi) . $Kh)) { return false; } $Vi = array(); $te = 0; } $Vi[] = $Y; $te += strlen($Y) + 2; } return queries($ig . implode("\x2c\xa", $Vi) . $Kh); } function slowQuery($F, $fi) { if (min_version("\65\x2e\x37\56\70", "\x31\x30\56\x31\56\x32")) { if (preg_match("\x7e\115\x61\162\151\141\x44\102\x7e", $this->_conn->server_info)) { return "\123\105\124\40\123\x54\x41\124\105\x4d\105\116\x54\40\155\141\x78\x5f\163\164\141\x74\x65\x6d\x65\x6e\164\x5f\x74\x69\x6d\145\x3d{$fi}\x20\x46\x4f\122\x20{$F}"; } elseif (preg_match("\x7e\136\50\x53\105\114\105\x43\x54\x5c\142\x29\x28\x2e\53\51\x7e\151\163", $F, $A)) { return "{$A["\x31"]}\x20\x2f\52\53\x20\x4d\x41\x58\x5f\x45\130\x45\x43\125\x54\x49\x4f\116\x5f\124\x49\x4d\105\x28" . $fi * 1000 . "\x29\x20\x2a\x2f\x20{$A["\62"]}"; } } } function convertSearch($u, $X, $o) { return preg_match("\176\143\150\141\162\174\x74\x65\170\x74\174\x65\156\165\x6d\x7c\x73\145\164\176", $o["\x74\x79\160\x65"]) && !preg_match("\176\136\165\164\146\x38\176", $o["\x63\157\154\154\x61\x74\151\157\x6e"]) && preg_match("\x7e\x5b\x5c\x78\x38\x30\x2d\x5c\170\106\x46\135\x7e", $X["\166\141\154"]) ? "\103\x4f\116\x56\105\122\x54\50{$u}\40\125\x53\x49\116\107\40" . charset($this->_conn) . "\x29" : $u; } function warnings() { $G = $this->_conn->query("\x53\x48\117\x57\x20\127\x41\x52\116\111\116\x47\x53"); if ($G && $G->num_rows) { ob_start(); select($G); return ob_get_clean(); } } function tableHelp($B) { $Ae = preg_match("\176\115\x61\162\x69\x61\x44\x42\176", $this->_conn->server_info); if (information_schema(DB)) { return strtolower($Ae ? "\x69\156\x66\x6f\162\x6d\141\x74\151\x6f\x6e\55\163\143\x68\145\155\141\x2d{$B}\x2d\x74\x61\x62\154\x65\57" : str_replace("\137", "\x2d", $B) . "\x2d\164\x61\x62\154\145\x2e\150\164\x6d\154"); } if (DB == "\x6d\171\163\x71\154") { return $Ae ? "\x6d\171\163\161\x6c{$B}\x2d\x74\141\142\154\145\x2f" : "\x73\171\x73\164\x65\x6d\x2d\x64\141\x74\x61\x62\141\163\x65\56\x68\164\155\x6c"; } } } function idf_escape($u) { return "\140" . str_replace("\140", "\x60\x60", $u) . "\x60"; } function table($u) { return idf_escape($u); } function connect() { global $b, $U, $Hh; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { $g->set_charset(charset($g)); $g->query("\x53\x45\x54\x20\x73\161\154\137\161\165\x6f\x74\x65\x5f\x73\150\x6f\167\x5f\x63\x72\x65\x61\164\x65\40\x3d\x20\x31\x2c\40\x61\x75\164\157\x63\x6f\x6d\155\151\x74\x20\75\40\x31"); if (min_version("\65\x2e\x37\x2e\70", 10.2, $g)) { $Hh["\x53\x74\x72\x69\x6e\147\x73"][] = "\x6a\163\x6f\x6e"; $U["\152\163\x6f\156"] = 4294967295; } return $g; } $H = $g->error; if (function_exists("\x69\143\157\156\166") && !is_utf8($H) && strlen($Yg = iconv("\167\151\156\144\x6f\x77\163\55\x31\x32\65\60", "\x75\164\x66\55\x38", $H)) > strlen($H)) { $H = $Yg; } return $H; } function get_databases($ad) { $H = get_session("\144\x62\163"); if ($H === null) { $F = min_version(5) ? "\x53\105\114\x45\103\124\x20\x53\x43\110\105\115\101\137\116\101\x4d\x45\40\106\x52\117\x4d\40\x69\156\x66\x6f\x72\x6d\x61\x74\151\x6f\x6e\137\x73\x63\x68\145\x6d\141\x2e\x53\103\x48\105\115\x41\x54\x41\x20\117\122\104\x45\122\40\102\131\40\123\x43\x48\105\115\x41\137\116\x41\x4d\x45" : "\123\110\117\x57\x20\x44\101\124\x41\x42\x41\123\105\123"; $H = $ad ? slow_query($F) : get_vals($F); restart_session(); set_session("\144\x62\163", $H); stop_session(); } return $H; } function limit($F, $Z, $z, $C = 0, $L = "\x20") { return "\40{$F}{$Z}" . ($z !== null ? $L . "\x4c\111\x4d\111\x54\40{$z}" . ($C ? "\40\117\x46\106\x53\105\x54\x20{$C}" : '') : ''); } function limit1($Q, $F, $Z, $L = "\12") { return limit($F, $Z, 1, 0, $L); } function db_collation($l, $pb) { global $g; $H = null; $i = $g->result("\123\x48\x4f\127\x20\x43\x52\105\101\x54\x45\40\x44\x41\124\x41\102\101\123\x45\x20" . idf_escape($l), 1); if (preg_match("\176\x20\x43\117\x4c\114\x41\x54\105\x20\x28\133\x5e\40\135\53\x29\176", $i, $A)) { $H = $A[1]; } elseif (preg_match("\x7e\x20\103\110\x41\122\x41\103\x54\x45\122\x20\123\105\124\40\50\133\136\x20\x5d\53\x29\x7e", $i, $A)) { $H = $pb[$A[1]][-1]; } return $H; } function engines() { $H = array(); foreach (get_rows("\123\110\x4f\x57\x20\x45\116\107\x49\x4e\105\x53") as $I) { if (preg_match("\x7e\131\x45\x53\x7c\x44\105\x46\x41\x55\114\x54\176", $I["\x53\165\x70\160\157\162\164"])) { $H[] = $I["\x45\156\x67\151\x6e\145"]; } } return $H; } function logged_user() { global $g; return $g->result("\x53\105\114\x45\x43\x54\40\x55\123\105\122\50\x29"); } function tables_list() { return get_key_vals(min_version(5) ? "\x53\x45\114\x45\103\124\40\124\x41\x42\x4c\x45\137\116\101\x4d\105\x2c\x20\x54\x41\x42\114\x45\x5f\x54\x59\120\105\x20\x46\122\x4f\x4d\x20\151\156\x66\x6f\x72\155\x61\164\x69\x6f\x6e\x5f\163\x63\x68\x65\155\x61\56\x54\x41\x42\114\105\x53\x20\127\110\x45\x52\x45\x20\124\x41\x42\114\x45\137\123\x43\110\x45\115\101\40\75\40\104\101\x54\101\102\x41\123\105\x28\51\x20\x4f\x52\104\x45\122\40\102\131\x20\124\101\x42\x4c\x45\137\116\x41\x4d\105" : "\x53\x48\117\127\40\124\101\x42\x4c\105\123"); } function count_tables($k) { $H = array(); foreach ($k as $l) { $H[$l] = count(get_vals("\x53\x48\117\x57\40\x54\x41\102\114\105\x53\40\111\x4e\x20" . idf_escape($l))); } return $H; } function table_status($B = '', $Oc = false) { $H = array(); foreach (get_rows($Oc && min_version(5) ? "\123\x45\x4c\x45\103\x54\40\x54\x41\x42\114\x45\x5f\116\101\x4d\105\x20\x41\123\40\116\141\x6d\145\x2c\x20\x45\x4e\x47\111\116\x45\x20\101\x53\40\105\156\x67\x69\x6e\x65\54\40\x54\101\102\114\x45\137\x43\x4f\115\115\x45\116\x54\40\101\x53\x20\x43\157\x6d\155\x65\x6e\x74\40\106\x52\x4f\x4d\x20\x69\156\146\157\x72\155\x61\x74\151\157\156\137\163\143\150\x65\155\x61\x2e\124\x41\102\114\x45\x53\x20\127\110\105\x52\x45\x20\124\x41\102\x4c\105\x5f\123\x43\110\105\115\x41\40\75\x20\x44\101\x54\x41\x42\x41\123\x45\50\51\x20" . ($B != '' ? "\101\x4e\x44\x20\x54\101\x42\114\x45\137\116\101\x4d\x45\x20\x3d\40" . q($B) : "\117\122\104\x45\122\x20\x42\131\x20\116\141\155\x65") : "\x53\x48\x4f\127\x20\x54\101\102\x4c\x45\x20\123\x54\x41\124\125\x53" . ($B != '' ? "\x20\x4c\111\x4b\x45\x20" . q(addcslashes($B, "\45\137\134")) : '')) as $I) { if ($I["\105\156\x67\x69\x6e\x65"] == "\111\x6e\x6e\157\x44\102") { $I["\103\x6f\155\155\x65\x6e\164"] = preg_replace("\176\x28\x3f\72\50\56\53\x29\73\x20\x29\x3f\111\156\156\157\x44\102\40\x66\162\145\x65\72\x20\x2e\x2a\176", "\x5c\61", $I["\x43\x6f\155\155\145\156\164"]); } if (!isset($I["\x45\156\x67\151\x6e\x65"])) { $I["\x43\157\x6d\x6d\x65\x6e\x74"] = ''; } if ($B != '') { return $I; } $H[$I["\116\x61\155\145"]] = $I; } return $H; } function is_view($R) { return $R["\105\156\x67\x69\156\145"] === null; } function fk_support($R) { return preg_match("\176\x49\156\x6e\x6f\x44\102\x7c\x49\x42\115\x44\102\62\x49\x7e\151", $R["\x45\156\147\151\x6e\145"]) || preg_match("\176\116\x44\x42\x7e\151", $R["\105\x6e\147\x69\156\145"]) && min_version(5.6); } function fields($Q) { $H = array(); foreach (get_rows("\123\110\x4f\127\x20\106\x55\114\114\40\x43\117\x4c\125\x4d\116\123\40\106\x52\117\115\x20" . table($Q)) as $I) { preg_match("\x7e\136\x28\133\136\x28\x20\135\53\x29\50\x3f\72\134\50\50\56\53\x29\x5c\51\x29\x3f\x28\x20\165\x6e\x73\151\x67\156\x65\x64\51\x3f\x28\x20\172\145\x72\157\x66\151\x6c\x6c\x29\x3f\44\176", $I["\x54\171\160\x65"], $A); $H[$I["\x46\x69\x65\154\x64"]] = array("\x66\151\x65\x6c\x64" => $I["\x46\151\145\154\144"], "\x66\x75\x6c\154\x5f\164\x79\160\x65" => $I["\124\171\x70\145"], "\x74\x79\160\145" => $A[1], "\154\145\x6e\147\164\x68" => $A[2], "\165\x6e\x73\x69\x67\156\145\144" => ltrim($A[3] . $A[4]), "\x64\x65\146\x61\x75\154\164" => $I["\x44\x65\146\x61\165\x6c\164"] != '' || preg_match("\x7e\x63\x68\x61\x72\x7c\163\x65\x74\176", $A[1]) ? $I["\x44\145\x66\x61\165\x6c\164"] : null, "\x6e\x75\154\x6c" => $I["\x4e\x75\154\154"] == "\131\x45\x53", "\x61\165\164\x6f\x5f\151\156\x63\x72\145\x6d\x65\x6e\164" => $I["\105\170\164\x72\141"] == "\141\x75\164\157\137\x69\156\143\x72\x65\x6d\145\156\164", "\x6f\156\137\165\x70\144\x61\x74\x65" => preg_match("\x7e\x5e\x6f\156\x20\x75\x70\144\141\x74\145\40\x28\x2e\53\51\x7e\151", $I["\x45\x78\x74\162\x61"], $A) ? $A[1] : '', "\x63\157\154\154\141\x74\x69\157\156" => $I["\x43\x6f\154\154\x61\164\151\x6f\156"], "\x70\x72\x69\x76\151\x6c\x65\x67\145\x73" => array_flip(preg_split("\x7e\x2c\x20\52\176", $I["\x50\162\151\166\151\154\x65\x67\145\x73"])), "\x63\x6f\x6d\x6d\145\156\x74" => $I["\103\157\155\x6d\x65\x6e\164"], "\160\162\151\x6d\x61\162\x79" => $I["\113\145\171"] == "\120\122\x49", "\147\x65\156\x65\162\x61\x74\x65\x64" => preg_match("\x7e\x5e\50\126\x49\122\124\125\x41\x4c\174\120\x45\122\x53\x49\123\x54\105\116\x54\x7c\x53\x54\117\122\105\104\x29\x7e", $I["\105\170\164\162\x61"])); } return $H; } function indexes($Q, $h = null) { $H = array(); foreach (get_rows("\x53\110\x4f\127\x20\111\x4e\x44\x45\x58\40\106\122\117\115\40" . table($Q), $h) as $I) { $B = $I["\x4b\145\x79\x5f\156\141\x6d\x65"]; $H[$B]["\164\171\160\145"] = $B == "\x50\x52\111\x4d\x41\x52\x59" ? "\120\122\111\x4d\x41\x52\x59" : ($I["\x49\x6e\x64\145\170\137\x74\171\x70\x65"] == "\x46\x55\114\114\x54\105\130\124" ? "\x46\125\114\114\x54\105\130\x54" : ($I["\x4e\x6f\156\137\x75\x6e\x69\x71\165\145"] ? $I["\111\156\x64\x65\170\x5f\x74\171\x70\x65"] == "\x53\120\x41\x54\111\101\114" ? "\x53\120\101\x54\x49\101\x4c" : "\x49\116\x44\105\130" : "\125\116\111\121\125\105")); $H[$B]["\x63\157\x6c\165\x6d\156\x73"][] = $I["\103\157\x6c\165\155\x6e\x5f\156\x61\x6d\145"]; $H[$B]["\154\145\156\x67\x74\150\x73"][] = $I["\x49\156\x64\x65\x78\137\x74\171\160\x65"] == "\x53\x50\101\124\111\x41\114" ? null : $I["\123\165\142\137\160\141\x72\x74"]; $H[$B]["\144\145\163\x63\x73"][] = null; } return $H; } function foreign_keys($Q) { global $g, $qf; static $ag = "\x28\77\72\140\50\77\x3a\x5b\136\x60\135\x7c\x60\140\x29\x2b\140\174\x22\50\x3f\72\x5b\x5e\x22\x5d\x7c\x22\42\51\x2b\x22\x29"; $H = array(); $Fb = $g->result("\x53\x48\x4f\x57\x20\x43\x52\105\101\x54\x45\40\x54\101\102\x4c\x45\x20" . table($Q), 1); if ($Fb) { preg_match_all("\176\103\x4f\x4e\123\124\x52\101\111\116\x54\40\50{$ag}\x29\x20\106\117\122\105\x49\x47\x4e\40\x4b\x45\x59\40\77\x5c\50\50\50\x3f\72{$ag}\x2c\77\40\x3f\x29\x2b\x29\x5c\x29\40\122\x45\x46\x45\122\x45\x4e\x43\x45\x53\x20\50{$ag}\51\50\77\x3a\x5c\56\50{$ag}\51\51\77\x20\x5c\x28\x28\50\77\x3a{$ag}\54\x3f\x20\x3f\x29\53\51\134\x29\50\77\72\40\x4f\116\x20\x44\x45\x4c\x45\x54\105\40\50{$qf}\x29\51\x3f\50\77\72\x20\117\x4e\40\x55\120\104\101\x54\x45\x20\x28{$qf}\x29\51\77\176", $Fb, $De, PREG_SET_ORDER); foreach ($De as $A) { preg_match_all("\176{$ag}\176", $A[2], $wh); preg_match_all("\176{$ag}\x7e", $A[5], $Xh); $H[idf_unescape($A[1])] = array("\144\142" => idf_unescape($A[4] != '' ? $A[3] : $A[4]), "\164\x61\x62\x6c\x65" => idf_unescape($A[4] != '' ? $A[4] : $A[3]), "\x73\x6f\x75\162\143\145" => array_map("\x69\x64\x66\x5f\165\156\145\x73\x63\141\160\145", $wh[0]), "\164\x61\162\147\145\164" => array_map("\151\x64\x66\137\x75\156\145\x73\x63\x61\160\145", $Xh[0]), "\x6f\x6e\x5f\144\x65\154\145\164\x65" => $A[6] ? $A[6] : "\122\x45\123\124\x52\111\103\124", "\x6f\x6e\137\x75\160\144\141\x74\145" => $A[7] ? $A[7] : "\x52\105\x53\124\122\111\x43\124"); } } return $H; } function view($B) { global $g; return array("\x73\x65\154\145\143\x74" => preg_replace("\176\136\50\77\72\x5b\x5e\140\x5d\174\140\x5b\136\140\x5d\52\140\51\x2a\134\163\53\101\x53\x5c\163\x2b\176\151\163\x55", '', $g->result("\x53\x48\x4f\127\40\103\x52\x45\x41\x54\105\40\126\111\x45\127\40" . table($B), 1))); } function collations() { $H = array(); foreach (get_rows("\x53\110\117\x57\40\103\117\x4c\114\x41\124\x49\x4f\116") as $I) { if ($I["\x44\145\x66\x61\x75\154\164"]) { $H[$I["\x43\150\141\x72\163\145\164"]][-1] = $I["\103\x6f\154\154\x61\x74\x69\157\156"]; } else { $H[$I["\103\150\141\x72\163\145\x74"]][] = $I["\103\x6f\x6c\154\141\x74\151\157\x6e"]; } } ksort($H); foreach ($H as $y => $X) { asort($H[$y]); } return $H; } function information_schema($l) { return min_version(5) && $l == "\x69\x6e\x66\x6f\162\155\141\164\x69\157\x6e\x5f\x73\x63\x68\x65\x6d\141" || min_version(5.5) && $l == "\x70\x65\162\x66\157\x72\x6d\x61\156\143\x65\137\x73\143\150\x65\155\141"; } function error() { global $g; return h(preg_replace("\x7e\x5e\x59\x6f\x75\x20\150\141\166\x65\x20\x61\x6e\40\x65\x72\x72\x6f\162\56\x2a\163\x79\156\x74\141\x78\x20\164\157\40\x75\x73\x65\x7e\125", "\123\171\x6e\164\141\170\40\x65\x72\162\x6f\x72", $g->error)); } function create_database($l, $d) { return queries("\103\122\105\x41\x54\x45\x20\104\x41\x54\x41\x42\x41\x53\x45\x20" . idf_escape($l) . ($d ? "\x20\x43\x4f\x4c\x4c\x41\124\x45\40" . q($d) : '')); } function drop_databases($k) { $H = apply_queries("\x44\x52\117\120\40\104\101\124\101\102\101\123\x45", $k, "\x69\x64\146\137\x65\163\x63\x61\x70\145"); restart_session(); set_session("\144\142\x73", null); return $H; } function rename_database($B, $d) { $H = false; if (create_database($B, $d)) { $Kg = array(); foreach (tables_list() as $Q => $T) { $Kg[] = table($Q) . "\x20\x54\117\40" . idf_escape($B) . "\x2e" . table($Q); } $H = !$Kg || queries("\x52\x45\116\101\115\x45\40\124\x41\x42\114\105\40" . implode("\54\40", $Kg)); if ($H) { queries("\x44\122\x4f\x50\x20\104\101\x54\101\102\101\123\105\40" . idf_escape(DB)); } restart_session(); set_session("\x64\142\x73", null); } return $H; } function auto_increment() { $Na = "\x20\120\122\111\x4d\x41\122\131\x20\x4b\x45\x59"; if ($_GET["\143\x72\145\x61\x74\x65"] != '' && $_POST["\x61\x75\x74\x6f\137\x69\x6e\143\x72\145\155\x65\156\x74\x5f\143\157\x6c"]) { foreach (indexes($_GET["\143\x72\x65\x61\164\145"]) as $v) { if (in_array($_POST["\146\151\145\154\x64\163"][$_POST["\141\165\164\157\x5f\x69\156\143\x72\145\x6d\145\x6e\x74\137\143\x6f\x6c"]]["\157\162\x69\x67"], $v["\143\x6f\x6c\165\155\156\x73"], true)) { $Na = ''; break; } if ($v["\x74\x79\x70\x65"] == "\x50\x52\111\115\101\122\x59") { $Na = "\40\125\116\111\121\125\105"; } } } return "\40\x41\x55\x54\117\x5f\x49\116\x43\122\x45\115\105\116\x54{$Na}"; } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = array(); foreach ($p as $o) { $c[] = $o[1] ? ($Q != '' ? $o[0] != '' ? "\x43\110\101\116\107\105\40" . idf_escape($o[0]) : "\x41\x44\x44" : "\40") . "\40" . implode($o[1]) . ($Q != '' ? $o[2] : '') : "\x44\x52\117\120\x20" . idf_escape($o[0]); } $c = array_merge($c, $cd); $O = ($ub !== null ? "\40\x43\117\x4d\x4d\105\116\x54\x3d" . q($ub) : '') . ($uc ? "\x20\105\x4e\x47\x49\116\x45\x3d" . q($uc) : '') . ($d ? "\40\103\x4f\114\x4c\x41\124\x45\40" . q($d) : '') . ($Ma != '' ? "\40\101\125\124\x4f\137\x49\116\x43\x52\105\115\105\116\x54\75{$Ma}" : ''); if ($Q == '') { return queries("\x43\122\x45\x41\124\x45\40\x54\101\102\x4c\x45\x20" . table($B) . "\x20\x28\12" . implode("\x2c\12", $c) . "\12\x29{$O}{$Uf}"); } if ($Q != $B) { $c[] = "\x52\105\x4e\x41\x4d\x45\40\124\117\x20" . table($B); } if ($O) { $c[] = ltrim($O); } return $c || $Uf ? queries("\x41\114\124\x45\x52\40\124\101\102\114\105\x20" . table($Q) . "\12" . implode("\x2c\12", $c) . $Uf) : true; } function alter_indexes($Q, $c) { foreach ($c as $y => $X) { $c[$y] = $X[2] == "\104\x52\x4f\x50" ? "\12\x44\122\x4f\120\x20\x49\x4e\x44\x45\x58\40" . idf_escape($X[1]) : "\xa\x41\104\104\x20{$X["\x30"]}\x20" . ($X[0] == "\x50\x52\x49\x4d\101\122\x59" ? "\x4b\105\131\x20" : '') . ($X[1] != '' ? idf_escape($X[1]) . "\40" : '') . "\x28" . implode("\54\40", $X[2]) . "\51"; } return queries("\101\114\x54\x45\x52\40\x54\101\102\114\x45\40" . table($Q) . implode("\x2c", $c)); } function truncate_tables($S) { return apply_queries("\x54\122\x55\116\103\101\124\105\40\x54\101\x42\x4c\105", $S); } function drop_views($aj) { return queries("\104\x52\117\x50\x20\126\111\x45\x57\40" . implode("\x2c\x20", array_map("\164\141\x62\x6c\x65", $aj))); } function drop_tables($S) { return queries("\104\122\117\120\40\x54\x41\x42\x4c\105\40" . implode("\x2c\40", array_map("\164\141\142\x6c\145", $S))); } function move_tables($S, $aj, $Xh) { $Kg = array(); foreach (array_merge($S, $aj) as $Q) { $Kg[] = table($Q) . "\40\x54\x4f\40" . idf_escape($Xh) . "\56" . table($Q); } return queries("\122\105\116\x41\115\x45\40\124\101\x42\114\105\40" . implode("\x2c\40", $Kg)); } function copy_tables($S, $aj, $Xh) { queries("\x53\x45\124\40\x73\161\x6c\137\155\157\144\x65\x20\75\x20\47\116\117\x5f\101\x55\124\x4f\137\x56\101\114\x55\x45\x5f\x4f\x4e\137\132\x45\x52\x4f\47"); foreach ($S as $Q) { $B = $Xh == DB ? table("\x63\157\x70\x79\x5f{$Q}") : idf_escape($Xh) . "\x2e" . table($Q); if ($_POST["\x6f\x76\145\162\167\x72\151\x74\x65"] && !queries("\xa\104\x52\x4f\120\40\x54\x41\x42\x4c\x45\x20\111\x46\40\105\x58\111\x53\x54\123\x20{$B}") || !queries("\103\x52\x45\x41\x54\x45\x20\124\101\x42\x4c\105\x20{$B}\40\114\111\x4b\105\x20" . table($Q)) || !queries("\111\x4e\x53\x45\122\124\x20\x49\116\x54\117\40{$B}\40\x53\105\x4c\x45\x43\x54\40\x2a\x20\x46\x52\117\x4d\40" . table($Q))) { return false; } foreach (get_rows("\123\x48\x4f\x57\x20\124\122\111\107\107\105\122\x53\x20\x4c\x49\x4b\105\x20" . q(addcslashes($Q, "\45\137\x5c"))) as $I) { $xi = $I["\x54\162\x69\147\147\145\162"]; if (!queries("\x43\x52\105\x41\x54\105\40\124\x52\x49\x47\107\x45\x52\40" . ($Xh == DB ? idf_escape("\x63\x6f\160\x79\x5f{$xi}") : idf_escape($Xh) . "\56" . idf_escape($xi)) . "\40{$I["\x54\151\x6d\x69\x6e\147"]}\40{$I["\105\166\x65\x6e\164"]}\x20\117\116\x20{$B}\x20\x46\117\x52\x20\x45\x41\x43\110\40\x52\117\127\xa{$I["\x53\x74\141\164\x65\x6d\x65\x6e\164"]}\x3b")) { return false; } } } foreach ($aj as $Q) { $B = $Xh == DB ? table("\143\x6f\160\171\137{$Q}") : idf_escape($Xh) . "\x2e" . table($Q); $Zi = view($Q); if ($_POST["\x6f\166\145\162\x77\x72\x69\164\145"] && !queries("\x44\122\117\120\40\126\111\105\127\x20\x49\x46\40\x45\x58\111\x53\124\123\x20{$B}") || !queries("\103\122\105\x41\x54\105\x20\x56\x49\x45\127\40{$B}\x20\101\x53\40{$Zi["\x73\145\154\x65\x63\x74"]}")) { return false; } } return true; } function trigger($B) { if ($B == '') { return array(); } $J = get_rows("\123\110\x4f\x57\40\x54\122\x49\107\x47\105\x52\x53\40\x57\110\105\x52\105\40\140\124\x72\151\147\x67\x65\x72\x60\x20\x3d\40" . q($B)); return reset($J); } function triggers($Q) { $H = array(); foreach (get_rows("\123\x48\x4f\127\40\124\x52\x49\x47\x47\x45\x52\x53\x20\114\x49\113\105\40" . q(addcslashes($Q, "\x25\x5f\x5c"))) as $I) { $H[$I["\124\162\151\x67\x67\145\x72"]] = array($I["\x54\x69\155\151\x6e\x67"], $I["\x45\166\x65\156\x74"]); } return $H; } function trigger_options() { return array("\x54\x69\155\x69\x6e\x67" => array("\102\105\106\x4f\122\105", "\101\106\124\105\x52"), "\105\x76\145\156\164" => array("\x49\116\x53\105\122\124", "\125\x50\x44\101\124\x45", "\x44\105\114\105\124\105"), "\x54\171\160\x65" => array("\106\x4f\122\x20\x45\101\x43\x48\40\122\x4f\x57")); } function routine($B, $T) { global $g, $wc, $Rd, $U; $Ca = array("\x62\157\x6f\154", "\x62\x6f\157\x6c\x65\141\x6e", "\151\x6e\x74\145\147\145\x72", "\144\x6f\165\x62\x6c\x65\40\160\x72\x65\x63\x69\163\151\157\156", "\162\x65\141\154", "\144\x65\143", "\x6e\165\x6d\x65\162\151\x63", "\146\x69\x78\145\x64", "\156\x61\x74\151\157\156\141\x6c\x20\143\150\x61\x72", "\x6e\141\x74\151\x6f\156\141\154\x20\x76\x61\x72\x63\150\141\162"); $xh = "\x28\x3f\x3a\x5c\x73\x7c\57\x5c\x2a\133\134\x73\134\x53\135\x2a\77\x5c\52\x2f\x7c\50\x3f\72\43\174\55\55\x20\51\x5b\x5e\xa\135\x2a\12\x3f\x7c\x2d\55\xd\77\xa\x29"; $Bi = "\50\50" . implode("\x7c", array_merge(array_keys($U), $Ca)) . "\51\134\x62\x28\77\x3a\134\x73\x2a\x5c\x28\50\50\77\x3a\x5b\x5e\47\x22\x29\x5d\x7c{$wc}\51\53\53\x29\134\51\x29\77\x5c\x73\x2a\x28\x7a\145\x72\157\x66\151\154\154\x5c\x73\x2a\51\77\50\165\x6e\x73\151\147\156\145\x64\50\77\x3a\134\x73\x2b\x7a\x65\162\x6f\x66\151\x6c\154\51\x3f\51\77\x29\50\x3f\72\134\x73\x2a\x28\77\x3a\x43\110\x41\x52\x53\x45\x54\174\103\x48\x41\x52\x41\x43\124\105\x52\134\163\x2b\x53\105\124\51\134\x73\x2a\x5b\x27\x22\135\77\50\133\136\x27\42\134\163\x2c\135\x2b\x29\x5b\47\x22\x5d\x3f\x29\x3f"; $ag = "{$xh}\x2a\50" . ($T == "\106\x55\116\103\124\111\x4f\116" ? '' : $Rd) . "\x29\x3f\134\x73\52\50\x3f\x3a\140\50\50\x3f\x3a\133\x5e\x60\x5d\x7c\140\x60\51\52\51\140\x5c\x73\52\x7c\x5c\x62\50\x5c\x53\x2b\51\x5c\x73\53\x29{$Bi}"; $i = $g->result("\x53\x48\117\127\x20\103\122\x45\x41\x54\105\40{$T}\x20" . idf_escape($B), 2); preg_match("\176\x5c\50\x28\x28\x3f\x3a{$ag}\x5c\x73\x2a\x2c\x3f\51\52\x29\134\51\x5c\x73\52" . ($T == "\x46\x55\x4e\x43\124\x49\117\116" ? "\x52\105\x54\x55\122\116\123\x5c\x73\x2b{$Bi}\x5c\163\x2b" : '') . "\x28\56\x2a\x29\x7e\x69\163", $i, $A); $p = array(); preg_match_all("\x7e{$ag}\134\163\x2a\54\77\x7e\x69\163", $A[1], $De, PREG_SET_ORDER); foreach ($De as $Nf) { $p[] = array("\146\x69\145\154\x64" => str_replace("\x60\x60", "\140", $Nf[2]) . $Nf[3], "\x74\x79\x70\x65" => strtolower($Nf[5]), "\x6c\145\x6e\x67\x74\x68" => preg_replace_callback("\x7e{$wc}\x7e\163", "\156\157\x72\x6d\141\x6c\151\172\145\137\145\156\165\155", $Nf[6]), "\165\x6e\163\151\147\x6e\145\x64" => strtolower(preg_replace("\x7e\134\x73\53\x7e", "\40", trim("{$Nf["\x38"]}\x20{$Nf["\x37"]}"))), "\x6e\x75\154\x6c" => 1, "\x66\x75\154\154\137\164\x79\x70\145" => $Nf[4], "\x69\156\x6f\165\164" => strtoupper($Nf[1]), "\x63\157\x6c\154\x61\x74\x69\x6f\156" => strtolower($Nf[9])); } if ($T != "\x46\x55\x4e\103\x54\111\117\116") { return array("\146\151\x65\x6c\x64\x73" => $p, "\x64\x65\x66\151\x6e\151\164\151\x6f\156" => $A[11]); } return array("\146\151\145\x6c\x64\163" => $p, "\162\x65\x74\165\162\156\163" => array("\164\x79\x70\145" => $A[12], "\154\x65\x6e\x67\164\150" => $A[13], "\165\x6e\x73\151\147\156\x65\144" => $A[15], "\x63\157\154\x6c\141\164\x69\157\156" => $A[16]), "\x64\x65\146\x69\x6e\x69\x74\151\x6f\x6e" => $A[17], "\x6c\x61\156\x67\x75\x61\x67\x65" => "\x53\x51\114"); } function routines() { return get_rows("\123\x45\114\x45\x43\x54\x20\x52\117\125\124\x49\x4e\x45\x5f\x4e\101\115\105\x20\x41\x53\40\123\x50\105\x43\x49\106\x49\x43\137\116\x41\x4d\105\x2c\40\x52\x4f\125\124\111\116\105\137\x4e\x41\x4d\x45\54\x20\122\117\x55\x54\111\x4e\105\x5f\124\x59\120\105\x2c\40\104\124\104\137\111\104\x45\116\124\111\106\x49\x45\122\x20\x46\122\117\x4d\40\151\156\x66\x6f\x72\x6d\x61\x74\151\157\156\137\163\x63\x68\145\x6d\141\x2e\x52\x4f\125\124\x49\x4e\105\x53\40\x57\110\x45\x52\105\40\122\117\125\x54\111\x4e\x45\137\x53\x43\110\105\115\101\x20\75\x20" . q(DB)); } function routine_languages() { return array(); } function routine_id($B, $I) { return idf_escape($B); } function last_id() { global $g; return $g->result("\123\105\x4c\105\x43\x54\40\x4c\101\x53\124\137\x49\x4e\x53\x45\122\x54\137\111\x44\x28\x29"); } function explain($g, $F) { return $g->query("\x45\130\x50\114\101\x49\x4e\x20" . (min_version(5.1) ? "\120\x41\122\x54\x49\x54\x49\x4f\x4e\123\x20" : '') . $F); } function found_rows($R, $Z) { return $Z || $R["\x45\156\147\151\156\x65"] != "\x49\x6e\x6e\157\x44\x42" ? null : $R["\x52\x6f\167\x73"]; } function types() { return array(); } function schemas() { return array(); } function get_schema() { return ''; } function set_schema($ah, $h = null) { return true; } function create_sql($Q, $Ma, $Ih) { global $g; $H = $g->result("\123\110\117\127\x20\x43\122\105\101\124\105\x20\124\101\x42\114\105\x20" . table($Q), 1); if (!$Ma) { $H = preg_replace("\x7e\40\x41\x55\124\117\137\x49\116\x43\x52\105\115\x45\x4e\124\x3d\x5c\144\x2b\x7e", '', $H); } return $H; } function truncate_sql($Q) { return "\124\x52\125\116\x43\101\x54\105\40" . table($Q); } function use_sql($j) { return "\125\x53\x45\x20" . idf_escape($j); } function trigger_sql($Q) { $H = ''; foreach (get_rows("\123\x48\x4f\127\40\124\x52\111\107\107\x45\x52\123\x20\x4c\111\113\105\40" . q(addcslashes($Q, "\x25\137\134")), null, "\55\55\40") as $I) { $H .= "\12\x43\122\105\x41\124\105\x20\x54\x52\111\x47\107\105\122\x20" . idf_escape($I["\124\x72\151\x67\x67\x65\x72"]) . "\x20{$I["\x54\151\x6d\x69\156\x67"]}\x20{$I["\105\x76\x65\x6e\x74"]}\40\x4f\x4e\40" . table($I["\124\141\142\x6c\145"]) . "\40\106\117\122\x20\x45\x41\x43\x48\40\x52\117\x57\12{$I["\123\164\x61\164\x65\155\x65\156\x74"]}\73\x3b\12"; } return $H; } function show_variables() { return get_key_vals("\123\110\117\x57\x20\x56\x41\x52\x49\101\102\114\x45\x53"); } function process_list() { return get_rows("\x53\110\117\x57\40\x46\125\x4c\x4c\40\x50\122\x4f\x43\x45\x53\x53\114\111\123\x54"); } function show_status() { return get_key_vals("\x53\110\x4f\127\40\123\124\101\x54\125\123"); } function convert_field($o) { if (preg_match("\x7e\142\x69\x6e\x61\x72\x79\176", $o["\164\171\x70\145"])) { return "\110\105\130\x28" . idf_escape($o["\x66\151\x65\154\144"]) . "\51"; } if ($o["\164\171\160\x65"] == "\x62\151\164") { return "\x42\111\116\x28" . idf_escape($o["\x66\151\x65\154\x64"]) . "\40\53\x20\60\x29"; } if (preg_match("\176\147\x65\x6f\x6d\145\164\x72\x79\x7c\160\157\151\x6e\x74\174\x6c\151\x6e\145\163\x74\x72\x69\x6e\147\174\160\x6f\x6c\171\147\157\x6e\x7e", $o["\x74\x79\160\145"])) { return (min_version(8) ? "\x53\x54\137" : '') . "\101\163\127\x4b\x54\x28" . idf_escape($o["\x66\151\145\x6c\144"]) . "\51"; } } function unconvert_field($o, $H) { if (preg_match("\x7e\x62\151\156\141\x72\171\x7e", $o["\x74\171\160\145"])) { $H = "\x55\x4e\110\x45\130\50{$H}\51"; } if ($o["\164\x79\160\145"] == "\142\151\164") { $H = "\x43\117\x4e\x56\50{$H}\x2c\x20\x32\54\40\61\60\x29\40\x2b\x20\60"; } if (preg_match("\176\x67\145\157\155\x65\164\x72\171\x7c\160\157\151\156\164\x7c\x6c\151\156\x65\x73\164\x72\x69\x6e\x67\x7c\160\x6f\x6c\x79\x67\x6f\156\176", $o["\x74\171\x70\x65"])) { $H = (min_version(8) ? "\123\124\137" : '') . "\x47\x65\x6f\x6d\x46\162\x6f\155\124\x65\x78\164\x28{$H}\x2c\40\123\x52\x49\x44\x28{$o["\146\151\x65\x6c\144"]}\x29\51"; } return $H; } function support($Pc) { return !preg_match("\x7e\163\x63\x68\145\155\x65\x7c\x73\145\161\x75\x65\x6e\x63\145\174\x74\171\x70\145\x7c\x76\151\x65\167\137\164\162\151\147\147\x65\162\174\155\x61\164\x65\162\151\141\154\151\x7a\x65\144\166\x69\x65\167" . (min_version(8) ? '' : "\x7c\x64\145\x73\x63\x69\144\170" . (min_version(5.1) ? '' : "\x7c\x65\x76\145\x6e\164\174\160\x61\x72\x74\x69\164\x69\157\x6e\x69\x6e\147" . (min_version(5) ? '' : "\174\x72\x6f\165\164\x69\x6e\x65\174\164\162\151\147\147\x65\x72\174\166\x69\145\167"))) . "\176", $Pc); } function kill_process($X) { return queries("\x4b\111\114\114\40" . number($X)); } function connection_id() { return "\x53\x45\x4c\x45\x43\x54\x20\x43\x4f\x4e\116\105\103\x54\111\117\x4e\x5f\x49\104\50\51"; } function max_connections() { global $g; return $g->result("\123\x45\114\x45\103\x54\40\x40\x40\155\x61\170\x5f\x63\x6f\156\156\x65\x63\x74\x69\x6f\156\163"); } $x = "\163\x71\x6c"; $U = array(); $Hh = array(); foreach (array("\x4e\165\x6d\x62\145\162\x73" => array("\x74\151\x6e\171\x69\156\x74" => 3, "\163\155\141\x6c\x6c\151\x6e\164" => 5, "\x6d\145\144\151\x75\155\151\156\164" => 8, "\151\156\x74" => 10, "\x62\151\x67\x69\156\164" => 20, "\x64\x65\143\x69\x6d\141\x6c" => 66, "\146\x6c\x6f\x61\164" => 12, "\144\x6f\x75\142\x6c\x65" => 21), "\x44\141\164\145\40\x61\x6e\x64\40\x74\151\155\x65" => array("\144\x61\164\x65" => 10, "\144\141\164\145\x74\x69\x6d\145" => 19, "\164\151\x6d\x65\163\164\141\155\x70" => 19, "\164\x69\x6d\145" => 10, "\171\x65\x61\162" => 4), "\123\164\162\151\156\147\163" => array("\143\x68\x61\162" => 255, "\166\x61\162\x63\x68\x61\162" => 65535, "\x74\x69\156\171\164\x65\170\x74" => 255, "\x74\x65\x78\164" => 65535, "\155\x65\x64\151\165\155\x74\145\170\x74" => 16777215, "\x6c\157\156\x67\164\145\x78\164" => 4294967295), "\114\151\x73\164\163" => array("\145\x6e\x75\x6d" => 65535, "\163\x65\164" => 64), "\x42\x69\156\x61\162\x79" => array("\142\x69\164" => 20, "\x62\x69\x6e\x61\x72\171" => 255, "\x76\141\162\x62\151\x6e\141\x72\x79" => 65535, "\x74\x69\x6e\171\142\x6c\x6f\142" => 255, "\142\154\x6f\142" => 65535, "\x6d\145\144\151\x75\x6d\142\154\x6f\142" => 16777215, "\x6c\x6f\x6e\147\x62\x6c\157\x62" => 4294967295), "\x47\145\157\155\145\164\162\171" => array("\147\145\x6f\155\x65\x74\162\171" => 0, "\160\157\151\x6e\164" => 0, "\x6c\151\156\x65\x73\x74\x72\x69\156\x67" => 0, "\x70\x6f\154\x79\147\157\x6e" => 0, "\155\165\154\164\151\x70\157\151\x6e\x74" => 0, "\x6d\165\x6c\x74\x69\x6c\151\x6e\145\163\164\162\151\156\x67" => 0, "\155\165\x6c\164\151\160\x6f\154\x79\147\x6f\x6e" => 0, "\x67\x65\x6f\x6d\x65\x74\162\171\143\157\154\154\145\x63\x74\151\157\156" => 0)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array("\165\156\163\x69\147\156\x65\144", "\x7a\145\162\157\x66\151\154\x6c", "\165\x6e\163\151\x67\156\145\144\x20\x7a\x65\x72\x6f\x66\x69\154\154"); $vf = array("\75", "\x3c", "\76", "\74\x3d", "\76\x3d", "\41\x3d", "\x4c\111\113\x45", "\x4c\x49\113\x45\40\45\x25", "\x52\105\x47\105\x58\x50", "\x49\x4e", "\106\x49\x4e\104\x5f\111\116\137\123\105\x54", "\111\x53\40\x4e\125\114\114", "\116\117\x54\x20\114\x49\113\105", "\116\117\124\40\122\x45\107\105\130\120", "\116\x4f\124\x20\x49\x4e", "\x49\x53\40\x4e\x4f\124\40\116\x55\114\x4c", "\123\121\x4c"); $kd = array("\143\150\141\x72\137\x6c\145\x6e\147\164\x68", "\x64\x61\x74\x65", "\x66\162\157\155\137\x75\156\x69\170\x74\x69\x6d\145", "\154\157\167\145\162", "\162\x6f\165\156\144", "\146\x6c\157\157\162", "\143\145\x69\x6c", "\163\145\x63\x5f\164\157\137\164\x69\155\145", "\x74\x69\155\x65\137\164\x6f\137\x73\145\x63", "\x75\x70\160\145\162"); $qd = array("\141\x76\x67", "\143\x6f\x75\x6e\164", "\143\157\x75\x6e\164\40\x64\x69\163\x74\x69\156\143\164", "\147\x72\157\165\x70\137\x63\157\156\143\141\x74", "\x6d\141\x78", "\x6d\151\x6e", "\x73\x75\155"); $mc = array(array("\x63\150\141\162" => "\x6d\x64\x35\57\x73\x68\x61\x31\57\160\141\x73\163\167\157\162\x64\57\x65\x6e\x63\162\171\160\164\x2f\x75\165\x69\144", "\142\151\x6e\141\x72\171" => "\155\144\x35\57\x73\150\141\x31", "\x64\x61\x74\145\x7c\x74\151\155\x65" => "\156\157\x77"), array(number_type() => "\53\x2f\55", "\x64\141\x74\x65" => "\53\40\151\x6e\164\x65\162\x76\141\154\57\55\x20\151\x6e\164\145\x72\x76\x61\x6c", "\x74\151\x6d\145" => "\141\x64\144\164\x69\x6d\x65\57\x73\165\142\x74\151\155\x65", "\143\x68\141\162\x7c\x74\x65\x78\x74" => "\x63\157\156\143\x61\x74")); } goto LUb8G; u46ab: if (isset($_GET["\x75\x73\x65\x72\156\x61\x6d\x65"]) && is_string(get_password())) { list($Ad, $dg) = explode("\x3a", SERVER, 2); if (is_numeric($dg) && $dg < 1024) { auth_error("\103\157\156\x6e\x65\143\x74\151\156\x67\40\x74\x6f\x20\160\x72\151\166\x69\x6c\x65\x67\145\x64\40\160\157\x72\x74\x73\x20\x69\163\x20\156\157\164\40\141\154\x6c\157\167\145\144\x2e"); } check_invalid_login(); $g = connect(); $m = new Min_Driver($g); } goto RWxgJ; scVB7: if (isset($_GET["\x6d\157\x6e\147\x6f"])) { $hg = array("\x6d\x6f\156\147\157", "\155\x6f\156\x67\x6f\x64\142"); define("\104\122\111\126\x45\122", "\155\x6f\x6e\x67\x6f"); if (class_exists("\115\157\x6e\147\157\x44\102")) { class Min_DB { var $extension = "\x4d\157\x6e\x67\x6f", $server_info = MongoClient::VERSION, $error, $last_id, $_link, $_db; function connect($Ki, $yf) { return @new MongoClient($Ki, $yf); } function query($F) { return false; } function select_db($j) { try { $this->_db = $this->_link->selectDB($j); return true; } catch (Exception $Ac) { $this->error = $Ac->getMessage(); return false; } } function quote($P) { return $P; } } class Min_Result { var $num_rows, $_rows = array(), $_offset = 0, $_charset = array(); function __construct($G) { foreach ($G as $be) { $I = array(); foreach ($be as $y => $X) { if (is_a($X, "\x4d\157\x6e\147\x6f\102\151\156\x44\141\x74\141")) { $this->_charset[$y] = 63; } $I[$y] = is_a($X, "\x4d\157\x6e\x67\x6f\x49\x64") ? "\117\142\x6a\145\143\x74\111\x64\50\42" . strval($X) . "\x22\x29" : (is_a($X, "\x4d\x6f\156\x67\157\x44\x61\x74\x65") ? gmdate("\x59\x2d\x6d\x2d\144\40\x48\x3a\x69\72\x73", $X->sec) . "\x20\x47\x4d\x54" : (is_a($X, "\115\157\156\x67\x6f\102\x69\x6e\104\x61\164\141") ? $X->bin : (is_a($X, "\x4d\157\x6e\x67\157\x52\145\147\145\170") ? strval($X) : (is_object($X) ? get_class($X) : $X)))); } $this->_rows[] = $I; foreach ($I as $y => $X) { if (!isset($this->_rows[0][$y])) { $this->_rows[0][$y] = null; } } } $this->num_rows = count($this->_rows); } function fetch_assoc() { $I = current($this->_rows); if (!$I) { return $I; } $H = array(); foreach ($this->_rows[0] as $y => $X) { $H[$y] = $I[$y]; } next($this->_rows); return $H; } function fetch_row() { $H = $this->fetch_assoc(); if (!$H) { return $H; } return array_values($H); } function fetch_field() { $he = array_keys($this->_rows[0]); $B = $he[$this->_offset++]; return (object) array("\156\x61\155\145" => $B, "\143\x68\x61\162\163\x65\164\156\162" => $this->_charset[$B]); } } class Min_Driver extends Min_SQL { public $kg = "\137\x69\144"; function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { $K = $K == array("\x2a") ? array() : array_fill_keys($K, true); $vh = array(); foreach ($_f as $X) { $X = preg_replace("\176\40\104\105\x53\x43\44\176", '', $X, 1, $Eb); $vh[$X] = $Eb ? -1 : 1; } return new Min_Result($this->_conn->_db->selectCollection($Q)->find(array(), $K)->sort($vh)->limit($z != '' ? +$z : 0)->skip($D * $z)); } function insert($Q, $N) { try { $H = $this->_conn->_db->selectCollection($Q)->insert($N); $this->_conn->errno = $H["\x63\x6f\x64\x65"]; $this->_conn->error = $H["\145\162\162"]; $this->_conn->last_id = $N["\137\x69\x64"]; return !$H["\x65\162\162"]; } catch (Exception $Ac) { $this->_conn->error = $Ac->getMessage(); return false; } } } function get_databases($ad) { global $g; $H = array(); $Rb = $g->_link->listDBs(); foreach ($Rb["\x64\x61\x74\141\x62\141\x73\145\163"] as $l) { $H[] = $l["\x6e\141\155\x65"]; } return $H; } function count_tables($k) { global $g; $H = array(); foreach ($k as $l) { $H[$l] = count($g->_link->selectDB($l)->getCollectionNames(true)); } return $H; } function tables_list() { global $g; return array_fill_keys($g->_db->getCollectionNames(true), "\164\x61\142\x6c\x65"); } function drop_databases($k) { global $g; foreach ($k as $l) { $Mg = $g->_link->selectDB($l)->drop(); if (!$Mg["\157\x6b"]) { return false; } } return true; } function indexes($Q, $h = null) { global $g; $H = array(); foreach ($g->_db->selectCollection($Q)->getIndexInfo() as $v) { $Yb = array(); foreach ($v["\153\145\171"] as $e => $T) { $Yb[] = $T == -1 ? "\61" : null; } $H[$v["\156\141\155\145"]] = array("\x74\x79\160\145" => $v["\156\x61\x6d\x65"] == "\x5f\x69\x64\137" ? "\120\x52\x49\x4d\101\122\131" : ($v["\x75\x6e\x69\161\165\x65"] ? "\125\x4e\111\121\x55\x45" : "\x49\x4e\x44\x45\x58"), "\143\157\x6c\165\x6d\156\x73" => array_keys($v["\153\145\171"]), "\154\x65\x6e\147\164\x68\x73" => array(), "\144\x65\163\x63\x73" => $Yb); } return $H; } function fields($Q) { return fields_from_edit(); } function found_rows($R, $Z) { global $g; return $g->_db->selectCollection($_GET["\163\x65\x6c\145\x63\x74"])->count($Z); } $vf = array("\x3d"); } elseif (class_exists("\115\157\x6e\x67\x6f\x44\x42\x5c\x44\162\x69\x76\145\162\134\x4d\x61\x6e\x61\147\x65\162")) { class Min_DB { var $extension = "\x4d\x6f\156\147\x6f\x44\102", $server_info = MONGODB_VERSION, $error, $last_id; var $_link; var $_db, $_db_name; function connect($Ki, $yf) { $kb = "\115\157\x6e\x67\x6f\104\102\134\x44\162\x69\x76\145\162\x5c\115\141\156\141\x67\145\162"; return new $kb($Ki, $yf); } function query($F) { return false; } function select_db($j) { $this->_db_name = $j; return true; } function quote($P) { return $P; } } class Min_Result { var $num_rows, $_rows = array(), $_offset = 0, $_charset = array(); function __construct($G) { foreach ($G as $be) { $I = array(); foreach ($be as $y => $X) { if (is_a($X, "\115\x6f\x6e\x67\157\x44\x42\x5c\102\123\x4f\x4e\134\x42\x69\156\141\162\171")) { $this->_charset[$y] = 63; } $I[$y] = is_a($X, "\x4d\157\156\x67\157\104\x42\134\102\x53\x4f\116\134\117\142\152\145\x63\164\x49\x44") ? "\x4d\157\156\147\x6f\x44\102\x5c\102\123\117\x4e\134\117\142\x6a\145\x63\164\x49\104\x28\42" . strval($X) . "\x22\51" : (is_a($X, "\115\157\156\147\x6f\104\x42\x5c\102\123\x4f\116\x5c\x55\x54\103\x44\x61\164\145\164\x69\x6d\145") ? $X->toDateTime()->format("\x59\x2d\x6d\x2d\144\40\110\72\x69\x3a\x73") : (is_a($X, "\x4d\x6f\x6e\147\x6f\x44\x42\134\102\123\117\x4e\x5c\102\x69\x6e\141\162\171") ? $X->bin : (is_a($X, "\115\157\x6e\x67\x6f\x44\102\134\102\x53\117\x4e\x5c\x52\145\147\145\170") ? strval($X) : (is_object($X) ? json_encode($X, 256) : $X)))); } $this->_rows[] = $I; foreach ($I as $y => $X) { if (!isset($this->_rows[0][$y])) { $this->_rows[0][$y] = null; } } } $this->num_rows = $G->count; } function fetch_assoc() { $I = current($this->_rows); if (!$I) { return $I; } $H = array(); foreach ($this->_rows[0] as $y => $X) { $H[$y] = $I[$y]; } next($this->_rows); return $H; } function fetch_row() { $H = $this->fetch_assoc(); if (!$H) { return $H; } return array_values($H); } function fetch_field() { $he = array_keys($this->_rows[0]); $B = $he[$this->_offset++]; return (object) array("\156\x61\x6d\145" => $B, "\143\x68\x61\162\163\x65\164\156\x72" => $this->_charset[$B]); } } class Min_Driver extends Min_SQL { public $kg = "\137\151\x64"; function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { global $g; $K = $K == array("\x2a") ? array() : array_fill_keys($K, 1); if (count($K) && !isset($K["\137\151\144"])) { $K["\x5f\151\144"] = 0; } $Z = where_to_query($Z); $vh = array(); foreach ($_f as $X) { $X = preg_replace("\x7e\40\x44\105\123\x43\x24\176", '', $X, 1, $Eb); $vh[$X] = $Eb ? -1 : 1; } if (isset($_GET["\154\151\x6d\x69\x74"]) && is_numeric($_GET["\x6c\x69\155\x69\x74"]) && $_GET["\154\x69\x6d\151\x74"] > 0) { $z = $_GET["\154\x69\155\151\164"]; } $z = min(200, max(1, (int) $z)); $sh = $D * $z; $kb = "\115\x6f\x6e\147\x6f\x44\102\x5c\104\x72\151\x76\145\x72\x5c\x51\165\x65\162\x79"; $F = new $kb($Z, array("\160\162\x6f\x6a\x65\143\x74\x69\x6f\x6e" => $K, "\x6c\x69\x6d\151\164" => $z, "\163\153\151\x70" => $sh, "\163\157\162\164" => $vh)); $Pg = $g->_link->executeQuery("{$g->_db_name}\x2e{$Q}", $F); return new Min_Result($Pg); } function update($Q, $N, $wg, $z = 0, $L = "\xa") { global $g; $l = $g->_db_name; $Z = sql_query_where_parser($wg); $kb = "\115\157\156\147\157\x44\x42\134\104\162\x69\x76\145\x72\x5c\x42\x75\154\153\x57\x72\151\x74\x65"; $Za = new $kb(array()); if (isset($N["\137\x69\144"])) { unset($N["\137\x69\x64"]); } $Jg = array(); foreach ($N as $y => $Y) { if ($Y == "\x4e\125\114\x4c") { $Jg[$y] = 1; unset($N[$y]); } } $Ji = array("\x24\x73\145\164" => $N); if (count($Jg)) { $Ji["\44\x75\x6e\163\x65\x74"] = $Jg; } $Za->update($Z, $Ji, array("\165\x70\x73\145\x72\x74" => false)); $Pg = $g->_link->executeBulkWrite("{$l}\56{$Q}", $Za); $g->affected_rows = $Pg->getModifiedCount(); return true; } function delete($Q, $wg, $z = 0) { global $g; $l = $g->_db_name; $Z = sql_query_where_parser($wg); $kb = "\x4d\x6f\156\147\x6f\x44\x42\x5c\x44\162\151\x76\x65\x72\x5c\102\165\154\x6b\127\x72\151\x74\x65"; $Za = new $kb(array()); $Za->delete($Z, array("\154\151\155\151\164" => $z)); $Pg = $g->_link->executeBulkWrite("{$l}\x2e{$Q}", $Za); $g->affected_rows = $Pg->getDeletedCount(); return true; } function insert($Q, $N) { global $g; $l = $g->_db_name; $kb = "\x4d\x6f\x6e\147\x6f\x44\102\134\x44\162\x69\166\145\x72\134\x42\x75\x6c\153\127\x72\x69\164\145"; $Za = new $kb(array()); if (isset($N["\137\151\x64"]) && empty($N["\x5f\x69\x64"])) { unset($N["\137\151\144"]); } $Za->insert($N); $Pg = $g->_link->executeBulkWrite("{$l}\56{$Q}", $Za); $g->affected_rows = $Pg->getInsertedCount(); return true; } } function get_databases($ad) { global $g; $H = array(); $kb = "\x4d\157\156\147\157\104\102\x5c\x44\162\151\x76\x65\x72\x5c\103\157\155\x6d\141\156\144"; $sb = new $kb(array("\154\x69\x73\164\x44\x61\x74\141\142\141\163\x65\163" => 1)); $Pg = $g->_link->executeCommand("\x61\144\155\x69\x6e", $sb); foreach ($Pg as $Rb) { foreach ($Rb->databases as $l) { $H[] = $l->name; } } return $H; } function count_tables($k) { $H = array(); return $H; } function tables_list() { global $g; $kb = "\115\x6f\x6e\x67\157\x44\x42\x5c\x44\162\x69\166\x65\162\134\x43\157\x6d\155\x61\x6e\x64"; $sb = new $kb(array("\154\x69\163\164\103\157\154\154\x65\143\x74\x69\157\156\163" => 1)); $Pg = $g->_link->executeCommand($g->_db_name, $sb); $qb = array(); foreach ($Pg as $G) { $qb[$G->name] = "\x74\x61\x62\x6c\x65"; } return $qb; } function drop_databases($k) { return false; } function indexes($Q, $h = null) { global $g; $H = array(); $kb = "\x4d\157\x6e\x67\x6f\104\102\x5c\104\x72\151\x76\x65\x72\x5c\x43\157\x6d\155\x61\156\144"; $sb = new $kb(array("\154\151\163\164\111\x6e\144\x65\x78\145\x73" => $Q)); $Pg = $g->_link->executeCommand($g->_db_name, $sb); foreach ($Pg as $v) { $Yb = array(); $f = array(); foreach (get_object_vars($v->key) as $e => $T) { $Yb[] = $T == -1 ? "\61" : null; $f[] = $e; } $H[$v->name] = array("\164\x79\160\x65" => $v->name == "\x5f\151\x64\x5f" ? "\x50\x52\x49\115\x41\x52\x59" : (isset($v->unique) ? "\x55\116\x49\x51\x55\x45" : "\x49\x4e\x44\x45\130"), "\x63\157\154\165\155\156\163" => $f, "\x6c\145\156\147\164\150\x73" => array(), "\144\x65\x73\143\163" => $Yb); } return $H; } function fields($Q) { $p = fields_from_edit(); if (!count($p)) { global $m; $G = $m->select($Q, array("\x2a"), null, null, array(), 10); while ($I = $G->fetch_assoc()) { foreach ($I as $y => $X) { $I[$y] = null; $p[$y] = array("\146\151\x65\154\144" => $y, "\x74\171\x70\145" => "\x73\x74\162\151\156\147", "\156\x75\154\x6c" => $y != $m->primary, "\x61\x75\x74\157\x5f\151\156\143\162\x65\x6d\x65\x6e\x74" => $y == $m->primary, "\160\x72\x69\166\x69\154\x65\x67\145\x73" => array("\x69\156\163\x65\x72\164" => 1, "\163\x65\154\x65\x63\164" => 1, "\165\160\144\x61\x74\145" => 1)); } } } return $p; } function found_rows($R, $Z) { global $g; $Z = where_to_query($Z); $kb = "\x4d\x6f\156\147\157\x44\102\x5c\104\x72\x69\166\x65\x72\x5c\x43\x6f\155\155\x61\x6e\144"; $sb = new $kb(array("\x63\x6f\165\156\x74" => $R["\x4e\141\155\x65"], "\x71\165\x65\162\x79" => $Z)); $Pg = $g->_link->executeCommand($g->_db_name, $sb); $ni = $Pg->toArray(); return $ni[0]->n; } function sql_query_where_parser($wg) { $wg = trim(preg_replace("\x2f\x57\x48\105\x52\x45\133\x5c\163\135\x3f\x5b\50\x5d\x3f\134\50\x3f\57", '', $wg)); $wg = preg_replace("\57\134\51\134\x29\x5c\51\x24\x2f", "\x29", $wg); $kj = explode("\40\101\x4e\x44\x20", $wg); $lj = explode("\x29\40\117\122\x20\50", $wg); $Z = array(); foreach ($kj as $ij) { $Z[] = trim($ij); } if (count($lj) == 1) { $lj = array(); } elseif (count($lj) > 1) { $Z = array(); } return where_to_query($Z, $lj); } function where_to_query($gj = array(), $hj = array()) { global $b; $Mb = array(); foreach (array("\x61\x6e\x64" => $gj, "\x6f\162" => $hj) as $T => $Z) { if (is_array($Z)) { foreach ($Z as $Hc) { list($nb, $tf, $X) = explode("\x20", $Hc, 3); if ($nb == "\x5f\151\144") { $X = str_replace("\x4d\x6f\x6e\x67\x6f\x44\102\134\102\123\x4f\x4e\134\x4f\x62\x6a\145\143\x74\x49\x44\50\42", '', $X); $X = str_replace("\x22\x29", '', $X); $kb = "\115\x6f\x6e\x67\157\104\x42\134\102\123\117\x4e\x5c\x4f\x62\x6a\x65\143\164\111\x44"; $X = new $kb($X); } if (!in_array($tf, $b->operators)) { continue; } if (preg_match("\x7e\136\x5c\50\x66\134\51\x28\56\53\x29\x7e", $tf, $A)) { $X = (double) $X; $tf = $A[1]; } elseif (preg_match("\176\x5e\134\x28\x64\141\x74\145\x5c\x29\50\56\53\51\176", $tf, $A)) { $Ob = new DateTime($X); $kb = "\x4d\x6f\x6e\x67\x6f\x44\x42\x5c\102\x53\x4f\x4e\x5c\x55\124\x43\x44\141\x74\145\164\x69\x6d\145"; $X = new $kb($Ob->getTimestamp() * 1000); $tf = $A[1]; } switch ($tf) { case "\75": $tf = "\44\x65\161"; break; case "\41\x3d": $tf = "\44\x6e\145"; break; case "\x3e": $tf = "\44\x67\164"; break; case "\74": $tf = "\44\154\164"; break; case "\76\75": $tf = "\x24\147\164\145"; break; case "\74\x3d": $tf = "\44\154\164\145"; break; case "\162\145\147\145\170": $tf = "\x24\x72\x65\147\x65\170"; break; default: continue 2; } if ($T == "\x61\156\x64") { $Mb["\x24\141\156\x64"][] = array($nb => array($tf => $X)); } elseif ($T == "\157\x72") { $Mb["\44\157\162"][] = array($nb => array($tf => $X)); } } } } return $Mb; } $vf = array("\x3d", "\41\x3d", "\76", "\x3c", "\76\75", "\74\x3d", "\162\145\147\145\170", "\x28\146\x29\x3d", "\50\x66\51\x21\75", "\x28\x66\x29\x3e", "\x28\146\x29\74", "\50\146\51\76\x3d", "\50\x66\51\74\x3d", "\50\x64\141\x74\x65\51\75", "\50\x64\141\x74\145\x29\41\75", "\x28\x64\x61\164\x65\51\x3e", "\50\144\141\x74\145\51\x3c", "\50\x64\x61\164\x65\51\x3e\75", "\x28\x64\x61\x74\145\51\x3c\75"); } function table($u) { return $u; } function idf_escape($u) { return $u; } function table_status($B = '', $Oc = false) { $H = array(); foreach (tables_list() as $Q => $T) { $H[$Q] = array("\x4e\x61\155\145" => $Q); if ($B == $Q) { return $H[$Q]; } } return $H; } function create_database($l, $d) { return true; } function last_id() { global $g; return $g->last_id; } function error() { global $g; return h($g->error); } function collations() { return array(); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function connect() { global $b; $g = new Min_DB(); list($M, $V, $E) = $b->credentials(); $yf = array(); if ($V . $E != '') { $yf["\x75\163\145\162\156\141\x6d\145"] = $V; $yf["\x70\x61\163\x73\167\157\162\x64"] = $E; } $l = $b->database(); if ($l != '') { $yf["\x64\142"] = $l; } if ($La = getenv("\x4d\117\x4e\x47\117\x5f\x41\x55\x54\x48\137\123\x4f\x55\x52\x43\105")) { $yf["\x61\x75\164\150\x53\x6f\165\x72\143\x65"] = $La; } try { $g->_link = $g->connect("\x6d\x6f\x6e\147\x6f\144\142\x3a\57\57{$M}", $yf); if ($E != '') { $yf["\160\x61\163\163\167\x6f\162\144"] = ''; try { $g->connect("\x6d\157\x6e\x67\157\x64\x62\72\x2f\x2f{$M}", $yf); return "\x44\x61\164\141\142\x61\x73\145\x20\144\x6f\x65\163\40\x6e\157\164\x20\163\165\160\x70\157\x72\x74\x20\160\x61\x73\163\x77\157\x72\144\x2e"; } catch (Exception $Ac) { } } return $g; } catch (Exception $Ac) { return $Ac->getMessage(); } } function alter_indexes($Q, $c) { global $g; foreach ($c as $X) { list($T, $B, $N) = $X; if ($N == "\104\122\117\x50") { $H = $g->_db->command(array("\144\145\x6c\x65\x74\145\x49\x6e\x64\145\x78\145\163" => $Q, "\151\156\144\145\170" => $B)); } else { $f = array(); foreach ($N as $e) { $e = preg_replace("\x7e\40\104\105\x53\103\44\176", '', $e, 1, $Eb); $f[$e] = $Eb ? -1 : 1; } $H = $g->_db->selectCollection($Q)->ensureIndex($f, array("\165\156\x69\161\x75\x65" => $T == "\x55\116\111\x51\x55\105", "\x6e\x61\155\145" => $B)); } if ($H["\x65\162\x72\155\x73\x67"]) { $g->error = $H["\x65\x72\162\x6d\163\x67"]; return false; } } return true; } function support($Pc) { return preg_match("\176\144\x61\164\x61\x62\141\x73\x65\x7c\151\156\x64\145\x78\145\163\x7c\x64\x65\x73\143\151\x64\x78\x7e", $Pc); } function db_collation($l, $pb) { } function information_schema() { } function is_view($R) { } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function foreign_keys($Q) { return array(); } function fk_support($R) { } function engines() { return array(); } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { global $g; if ($Q == '') { $g->_db->createCollection($B); return true; } } function drop_tables($S) { global $g; foreach ($S as $Q) { $Mg = $g->_db->selectCollection($Q)->drop(); if (!$Mg["\157\153"]) { return false; } } return true; } function truncate_tables($S) { global $g; foreach ($S as $Q) { $Mg = $g->_db->selectCollection($Q)->remove(); if (!$Mg["\157\153"]) { return false; } } return true; } $x = "\155\x6f\156\x67\157"; $kd = array(); $qd = array(); $mc = array(array("\x6a\x73\x6f\156")); } goto pRcnJ; AiVu3: function on_help($sb, $qh = 0) { return script("\x6d\x69\170\x69\156\x28\161\163\x6c\50\47\163\145\154\x65\143\x74\54\40\151\x6e\160\x75\x74\x27\x29\x2c\x20\173\x6f\x6e\155\x6f\165\x73\x65\x6f\x76\145\162\72\x20\x66\x75\156\143\x74\151\x6f\156\40\x28\x65\166\145\156\x74\x29\40\x7b\x20\150\145\x6c\160\115\x6f\x75\163\x65\x6f\x76\x65\162\x2e\x63\141\154\154\x28\x74\150\x69\x73\54\x20\x65\166\145\x6e\164\54\x20{$sb}\54\x20{$qh}\x29\x20\175\54\40\x6f\156\155\x6f\165\x73\x65\x6f\165\164\x3a\40\x68\x65\x6c\160\x4d\157\165\163\145\x6f\165\x74\x7d\51\73", ''); } goto G0CT2; pVXc_: if (isset($_GET["\x66\165\x6e\x63\164\151\157\156"])) { $_GET["\160\x72\x6f\143\x65\144\165\x72\145"] = $_GET["\x66\165\156\x63\164\151\x6f\156"]; } goto AYrEe; RX6lf: if (get_magic_quotes_runtime()) { set_magic_quotes_runtime(false); } goto xasIE; TmWkI: if ($Ka && $_POST["\x74\x6f\153\145\x6e"]) { $_POST["\x74\157\153\x65\156"] = $oi; } goto JmI6C; geZPx: $ec["\x6d\x6f\x6e\147\157"] = "\115\x6f\156\147\157\104\x42"; goto scVB7; cAlTG: error_reporting(6135); goto kEVQv; nLcQO: function connection() { global $g; return $g; } goto de3G4; dGFvA: function column_foreign_keys($Q) { global $b; $H = array(); foreach ($b->foreignKeys($Q) as $q) { foreach ($q["\163\x6f\165\162\143\145"] as $X) { $H[$X][] = $q; } } return $H; } goto JWKdn; Lcruv: function print_fieldset($t, $se, $bj = false) { echo "\x3c\x66\151\145\154\x64\x73\145\164\76\x3c\x6c\x65\x67\x65\156\144\x3e", "\x3c\141\x20\150\x72\x65\x66\x3d\x27\43\x66\151\x65\154\x64\163\x65\164\55{$t}\x27\76{$se}\74\57\x61\x3e", script("\161\x73\154\50\x27\141\47\x29\x2e\157\156\143\x6c\151\x63\153\x20\x3d\40\x70\141\162\164\151\x61\x6c\x28\164\157\147\x67\x6c\145\54\x20\x27\x66\x69\145\x6c\x64\x73\145\164\x2d{$t}\x27\51\x3b", ''), "\x3c\57\154\145\147\145\x6e\x64\x3e", "\74\x64\x69\x76\40\151\144\x3d\x27\x66\x69\145\154\144\163\x65\164\55{$t}\47" . ($bj ? '' : "\x20\143\154\x61\163\163\x3d\x27\150\x69\144\144\x65\156\x27") . "\x3e\xa"; } goto S6Tp1; EJ93X: function create_routine($Ug, $I) { global $Rd, $x; $N = array(); $p = (array) $I["\x66\151\145\154\144\x73"]; ksort($p); foreach ($p as $o) { if ($o["\146\151\x65\154\144"] != '') { $N[] = (preg_match("\176\x5e\50{$Rd}\x29\x24\x7e", $o["\151\156\x6f\x75\164"]) ? "{$o["\x69\x6e\x6f\x75\164"]}\x20" : '') . idf_escape($o["\146\151\x65\x6c\144"]) . process_type($o, "\103\x48\101\122\x41\x43\x54\105\x52\x20\123\105\x54"); } } $Ub = rtrim("\12{$I["\144\145\x66\x69\x6e\x69\x74\151\157\156"]}", "\73"); return "\103\122\x45\101\x54\105\40{$Ug}\40" . idf_escape(trim($I["\x6e\141\155\x65"])) . "\40\x28" . implode("\x2c\40", $N) . "\51" . (isset($_GET["\x66\x75\x6e\x63\164\x69\157\x6e"]) ? "\x20\x52\105\x54\x55\122\116\123" . process_type($I["\162\x65\x74\165\162\x6e\163"], "\103\110\101\x52\101\103\x54\105\122\x20\123\105\124") : '') . ($I["\154\x61\x6e\147\165\141\x67\x65"] ? "\40\x4c\101\116\107\x55\101\107\x45\40{$I["\154\x61\x6e\x67\165\x61\147\x65"]}" : '') . ($x == "\160\147\x73\161\x6c" ? "\x20\101\123\x20" . q($Ub) : "{$Ub}\73"); } goto MDkDi; z3Dgn: function select($G, $h = null, $Cf = array(), $z = 0) { global $x; $we = array(); $w = array(); $f = array(); $Ua = array(); $U = array(); $H = array(); odd(''); for ($s = 0; (!$z || $s < $z) && ($I = $G->fetch_row()); $s++) { if (!$s) { echo "\x3c\x64\151\x76\x20\x63\x6c\141\x73\x73\x3d\47\x73\x63\162\157\154\x6c\x61\142\154\x65\x27\x3e\xa", "\x3c\164\x61\x62\x6c\x65\x20\143\145\154\154\x73\160\x61\x63\151\156\x67\x3d\x27\60\x27\40\143\154\141\163\163\75\47\156\x6f\x77\162\141\160\x27\76\12", "\74\164\x68\145\141\x64\x3e\x3c\164\x72\76"; for ($ce = 0; $ce < count($I); $ce++) { $o = $G->fetch_field(); $B = $o->name; $Bf = $o->orgtable; $Af = $o->orgname; $H[$o->table] = $Bf; if ($Cf && $x == "\163\161\154") { $we[$ce] = $B == "\x74\141\142\154\145" ? "\x74\141\x62\x6c\145\x3d" : ($B == "\x70\x6f\163\x73\x69\x62\x6c\145\137\x6b\145\x79\163" ? "\x69\x6e\x64\x65\x78\145\x73\x3d" : null); } elseif ($Bf != '') { if (!isset($w[$Bf])) { $w[$Bf] = array(); foreach (indexes($Bf, $h) as $v) { if ($v["\164\171\x70\x65"] == "\120\x52\111\115\x41\x52\x59") { $w[$Bf] = array_flip($v["\x63\x6f\154\x75\x6d\x6e\x73"]); break; } } $f[$Bf] = $w[$Bf]; } if (isset($f[$Bf][$Af])) { unset($f[$Bf][$Af]); $w[$Bf][$Af] = $ce; $we[$ce] = $Bf; } } if ($o->charsetnr == 63) { $Ua[$ce] = true; } $U[$ce] = $o->type; echo "\x3c\164\150" . ($Bf != '' || $o->name != $Af ? "\40\x74\151\x74\x6c\x65\x3d\47" . h(($Bf != '' ? "{$Bf}\x2e" : '') . $Af) . "\47" : '') . "\x3e" . h($B) . ($Cf ? doc_link(array("\x73\x71\x6c" => "\x65\170\x70\x6c\141\x69\x6e\x2d\157\x75\164\160\x75\164\56\x68\x74\x6d\x6c\x23\x65\x78\160\154\x61\x69\156\137" . strtolower($B), "\x6d\x61\162\151\141\144\142" => "\x65\x78\x70\x6c\141\x69\156\x2f\43\x74\x68\145\55\143\x6f\154\165\x6d\x6e\163\55\x69\156\x2d\145\170\x70\x6c\141\151\x6e\x2d\x73\x65\154\145\143\164")) : ''); } echo "\x3c\57\164\x68\145\x61\144\x3e\xa"; } echo "\74\x74\x72" . odd() . "\x3e"; foreach ($I as $y => $X) { if ($X === null) { $X = "\x3c\x69\76\116\125\114\x4c\74\x2f\x69\76"; } elseif ($Ua[$y] && !is_utf8($X)) { $X = "\x3c\151\76" . lang(array("\x25\x64\40\142\171\164\145", "\x25\x64\x20\142\171\164\x65\x73"), strlen($X)) . "\x3c\57\151\x3e"; } else { $X = h($X); if ($U[$y] == 254) { $X = "\74\x63\x6f\x64\x65\76{$X}\x3c\x2f\x63\x6f\144\145\76"; } } if (isset($we[$y]) && !$f[$we[$y]]) { if ($Cf && $x == "\x73\x71\154") { $Q = $I[array_search("\x74\x61\x62\x6c\145\x3d", $we)]; $_ = $we[$y] . urlencode($Cf[$Q] != '' ? $Cf[$Q] : $Q); } else { $_ = "\145\144\151\x74\x3d" . urlencode($we[$y]); foreach ($w[$we[$y]] as $nb => $ce) { $_ .= "\x26\167\150\x65\162\145" . urlencode("\x5b" . bracket_escape($nb) . "\135") . "\75" . urlencode($I[$ce]); } } $X = "\74\x61\40\x68\x72\145\x66\x3d\x27" . h(ME . $_) . "\x27\x3e{$X}\74\57\x61\x3e"; } echo "\x3c\x74\144\x3e{$X}"; } } echo ($s ? "\74\57\x74\141\142\x6c\145\x3e\xa\74\x2f\x64\151\166\76" : "\x3c\x70\x20\143\x6c\x61\163\x73\x3d\47\155\145\x73\163\141\x67\145\47\x3e" . "\116\157\x20\162\x6f\167\163\x2e") . "\12"; return $H; } goto VBuZg; rdi_o: if (isset($_GET["\163\151\x6d\160\x6c\145\144\x62"])) { $hg = array("\123\x69\155\160\154\x65\x58\x4d\114\40\x2b\40\x61\x6c\154\x6f\167\137\x75\162\154\x5f\146\x6f\160\145\x6e"); define("\104\122\x49\x56\x45\x52", "\x73\x69\155\x70\x6c\145\x64\x62"); if (class_exists("\x53\x69\155\x70\x6c\x65\x58\x4d\x4c\x45\x6c\145\x6d\145\156\x74") && ini_bool("\x61\154\x6c\x6f\167\137\x75\x72\154\x5f\146\x6f\160\145\156")) { class Min_DB { var $extension = "\x53\151\155\160\x6c\145\x58\x4d\x4c", $server_info = "\62\60\60\x39\x2d\x30\64\x2d\x31\65", $error, $timeout, $next, $affected_rows, $_result; function select_db($j) { return $j == "\x64\x6f\155\141\151\156"; } function query($F, $Ci = false) { $Of = array("\x53\145\154\x65\x63\164\105\x78\160\162\x65\x73\x73\151\157\156" => $F, "\103\157\156\163\151\163\164\145\156\x74\122\145\x61\144" => "\x74\162\165\x65"); if ($this->next) { $Of["\x4e\x65\x78\x74\124\x6f\153\145\156"] = $this->next; } $G = sdb_request_all("\x53\x65\x6c\x65\143\164", "\x49\x74\x65\155", $Of, $this->timeout); $this->timeout = 0; if ($G === false) { return $G; } if (preg_match("\176\x5e\x5c\163\52\123\105\x4c\x45\x43\124\x5c\x73\x2b\x43\x4f\x55\x4e\124\134\x28\x7e\x69", $F)) { $Lh = 0; foreach ($G as $be) { $Lh += $be->Attribute->Value; } $G = array((object) array("\101\164\164\162\151\x62\x75\164\145" => array((object) array("\116\x61\155\x65" => "\x43\157\165\x6e\164", "\x56\141\154\165\145" => $Lh)))); } return new Min_Result($G); } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function quote($P) { return "\x27" . str_replace("\47", "\x27\x27", $P) . "\47"; } } class Min_Result { var $num_rows, $_rows = array(), $_offset = 0; function __construct($G) { foreach ($G as $be) { $I = array(); if ($be->Name != '') { $I["\x69\x74\x65\155\116\x61\x6d\145\50\x29"] = (string) $be->Name; } foreach ($be->Attribute as $Ia) { $B = $this->_processValue($Ia->Name); $Y = $this->_processValue($Ia->Value); if (isset($I[$B])) { $I[$B] = (array) $I[$B]; $I[$B][] = $Y; } else { $I[$B] = $Y; } } $this->_rows[] = $I; foreach ($I as $y => $X) { if (!isset($this->_rows[0][$y])) { $this->_rows[0][$y] = null; } } } $this->num_rows = count($this->_rows); } function _processValue($pc) { return is_object($pc) && $pc["\x65\156\143\157\x64\151\x6e\x67"] == "\142\x61\163\145\66\x34" ? base64_decode($pc) : (string) $pc; } function fetch_assoc() { $I = current($this->_rows); if (!$I) { return $I; } $H = array(); foreach ($this->_rows[0] as $y => $X) { $H[$y] = $I[$y]; } next($this->_rows); return $H; } function fetch_row() { $H = $this->fetch_assoc(); if (!$H) { return $H; } return array_values($H); } function fetch_field() { $he = array_keys($this->_rows[0]); return (object) array("\156\x61\x6d\145" => $he[$this->_offset++]); } } } class Min_Driver extends Min_SQL { public $kg = "\151\164\145\155\x4e\141\x6d\145\50\x29"; function _chunkRequest($Ed, $va, $Of, $Ec = array()) { global $g; foreach (array_chunk($Ed, 25) as $ib) { $Pf = $Of; foreach ($ib as $s => $t) { $Pf["\x49\164\145\x6d\x2e{$s}\56\x49\x74\x65\x6d\x4e\141\155\x65"] = $t; foreach ($Ec as $y => $X) { $Pf["\x49\x74\x65\x6d\x2e{$s}\x2e{$y}"] = $X; } } if (!sdb_request($va, $Pf)) { return false; } } $g->affected_rows = count($Ed); return true; } function _extractIds($Q, $wg, $z) { $H = array(); if (preg_match_all("\176\x69\164\145\x6d\116\141\x6d\145\x5c\50\x5c\51\40\75\40\x28\x28\47\x5b\136\x27\x5d\x2a\x2b\47\x29\x2b\x29\176", $wg, $De)) { $H = array_map("\151\x64\146\137\165\x6e\x65\163\x63\x61\x70\x65", $De[1]); } else { foreach (sdb_request_all("\x53\145\154\x65\143\x74", "\x49\x74\145\155", array("\123\x65\154\x65\x63\164\105\170\x70\162\145\163\163\x69\157\x6e" => "\x53\105\x4c\x45\103\x54\x20\151\164\x65\x6d\116\141\x6d\x65\50\x29\40\x46\122\117\115\40" . table($Q) . $wg . ($z ? "\40\x4c\x49\115\111\124\40\x31" : ''))) as $be) { $H[] = $be->Name; } } return $H; } function select($Q, $K, $Z, $nd, $_f = array(), $z = 1, $D = 0, $mg = false) { global $g; $g->next = $_GET["\x6e\145\170\x74"]; $H = parent::select($Q, $K, $Z, $nd, $_f, $z, $D, $mg); $g->next = 0; return $H; } function delete($Q, $wg, $z = 0) { return $this->_chunkRequest($this->_extractIds($Q, $wg, $z), "\102\x61\x74\143\150\x44\x65\x6c\145\164\x65\x41\x74\164\x72\151\142\165\164\145\163", array("\104\157\x6d\141\151\x6e\x4e\141\155\145" => $Q)); } function update($Q, $N, $wg, $z = 0, $L = "\12") { $Vb = array(); $Td = array(); $s = 0; $Ed = $this->_extractIds($Q, $wg, $z); $t = idf_unescape($N["\x60\151\x74\x65\155\116\141\155\145\x28\51\x60"]); unset($N["\140\151\164\x65\155\x4e\x61\155\x65\x28\x29\x60"]); foreach ($N as $y => $X) { $y = idf_unescape($y); if ($X == "\116\125\114\114" || $t != '' && array($t) != $Ed) { $Vb["\101\164\x74\162\x69\142\x75\x74\145\56" . count($Vb) . "\56\116\141\x6d\x65"] = $y; } if ($X != "\x4e\x55\x4c\x4c") { foreach ((array) $X as $de => $W) { $Td["\x41\164\164\x72\151\x62\165\164\x65\x2e{$s}\x2e\116\141\x6d\145"] = $y; $Td["\101\x74\164\x72\151\142\165\x74\145\56{$s}\x2e\x56\141\154\165\145"] = is_array($X) ? $W : idf_unescape($W); if (!$de) { $Td["\x41\x74\164\162\151\x62\x75\164\x65\56{$s}\56\122\x65\160\154\x61\143\145"] = "\x74\x72\165\145"; } $s++; } } } $Of = array("\104\157\x6d\141\x69\x6e\x4e\x61\x6d\x65" => $Q); return (!$Td || $this->_chunkRequest($t != '' ? array($t) : $Ed, "\102\x61\x74\x63\150\x50\x75\x74\x41\x74\x74\162\x69\x62\165\164\x65\163", $Of, $Td)) && (!$Vb || $this->_chunkRequest($Ed, "\102\141\x74\143\150\104\x65\x6c\145\164\145\101\x74\x74\x72\x69\142\x75\164\x65\x73", $Of, $Vb)); } function insert($Q, $N) { $Of = array("\x44\157\x6d\141\151\156\116\x61\155\x65" => $Q); $s = 0; foreach ($N as $B => $Y) { if ($Y != "\116\x55\114\114") { $B = idf_unescape($B); if ($B == "\151\x74\x65\x6d\116\x61\x6d\145\x28\51") { $Of["\x49\x74\145\155\x4e\141\155\x65"] = idf_unescape($Y); } else { foreach ((array) $Y as $X) { $Of["\101\164\x74\x72\151\142\x75\x74\145\x2e{$s}\x2e\116\x61\x6d\x65"] = $B; $Of["\101\x74\164\162\151\x62\165\164\x65\56{$s}\56\x56\141\154\x75\x65"] = is_array($Y) ? $X : idf_unescape($Y); $s++; } } } } return sdb_request("\x50\x75\164\x41\164\x74\162\151\142\x75\164\145\x73", $Of); } function insertUpdate($Q, $J, $kg) { foreach ($J as $N) { if (!$this->update($Q, $N, "\x57\x48\x45\122\x45\40\140\x69\x74\x65\x6d\x4e\x61\x6d\x65\x28\x29\x60\40\x3d\40" . q($N["\x60\x69\164\145\155\116\141\155\x65\x28\x29\140"]))) { return false; } } return true; } function begin() { return false; } function commit() { return false; } function rollback() { return false; } function slowQuery($F, $fi) { $this->_conn->timeout = $fi; return $F; } } function connect() { global $b; list(, , $E) = $b->credentials(); if ($E != '') { return "\x44\x61\x74\x61\x62\x61\163\145\x20\144\157\145\163\x20\x6e\157\164\40\163\165\x70\x70\157\162\x74\x20\160\x61\x73\x73\x77\157\x72\144\x2e"; } return new Min_DB(); } function support($Pc) { return preg_match("\176\x73\161\154\176", $Pc); } function logged_user() { global $b; $Hb = $b->credentials(); return $Hb[1]; } function get_databases() { return array("\144\157\x6d\141\x69\156"); } function collations() { return array(); } function db_collation($l, $pb) { } function tables_list() { global $g; $H = array(); foreach (sdb_request_all("\x4c\x69\163\x74\104\x6f\x6d\141\151\156\x73", "\x44\x6f\x6d\x61\151\156\x4e\x61\x6d\145") as $Q) { $H[(string) $Q] = "\164\141\142\x6c\145"; } if ($g->error && defined("\x50\x41\107\105\137\x48\105\x41\x44\x45\x52")) { echo "\x3c\160\x20\x63\154\141\163\x73\x3d\x27\x65\x72\x72\157\x72\x27\x3e" . error() . "\12"; } return $H; } function table_status($B = '', $Oc = false) { $H = array(); foreach ($B != '' ? array($B => true) : tables_list() as $Q => $T) { $I = array("\116\x61\155\145" => $Q, "\101\x75\164\157\x5f\x69\156\143\x72\145\155\145\x6e\164" => ''); if (!$Oc) { $Qe = sdb_request("\104\x6f\155\x61\x69\156\115\x65\x74\141\x64\x61\x74\x61", array("\104\x6f\x6d\x61\x69\156\116\141\x6d\x65" => $Q)); if ($Qe) { foreach (array("\x52\x6f\167\x73" => "\x49\164\145\x6d\x43\157\165\x6e\x74", "\104\x61\164\x61\x5f\154\x65\x6e\147\164\x68" => "\111\164\145\155\116\x61\x6d\x65\x73\123\151\172\x65\x42\x79\x74\x65\x73", "\x49\156\144\145\x78\137\x6c\145\156\x67\164\x68" => "\x41\x74\x74\162\151\x62\x75\164\145\126\x61\x6c\x75\x65\x73\x53\151\x7a\x65\x42\171\x74\145\163", "\104\x61\164\x61\x5f\x66\162\x65\x65" => "\101\164\164\162\151\x62\x75\164\145\x4e\x61\155\x65\x73\x53\151\172\145\102\171\164\145\x73") as $y => $X) { $I[$y] = (string) $Qe->{$X}; } } } if ($B != '') { return $I; } $H[$Q] = $I; } return $H; } function explain($g, $F) { } function error() { global $g; return h($g->error); } function information_schema() { } function is_view($R) { } function indexes($Q, $h = null) { return array(array("\x74\x79\x70\145" => "\x50\x52\x49\x4d\101\122\x59", "\x63\x6f\x6c\165\x6d\x6e\x73" => array("\x69\164\145\x6d\116\141\155\x65\50\x29"))); } function fields($Q) { return fields_from_edit(); } function foreign_keys($Q) { return array(); } function table($u) { return idf_escape($u); } function idf_escape($u) { return "\140" . str_replace("\x60", "\x60\x60", $u) . "\140"; } function limit($F, $Z, $z, $C = 0, $L = "\40") { return "\40{$F}{$Z}" . ($z !== null ? $L . "\x4c\x49\115\x49\124\40{$z}" : ''); } function unconvert_field($o, $H) { return $H; } function fk_support($R) { } function engines() { return array(); } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { return $Q == '' && sdb_request("\x43\x72\x65\x61\x74\x65\104\157\x6d\141\151\156", array("\x44\157\155\x61\x69\156\116\x61\155\x65" => $B)); } function drop_tables($S) { foreach ($S as $Q) { if (!sdb_request("\104\x65\x6c\x65\164\x65\104\x6f\155\141\x69\156", array("\104\x6f\x6d\141\x69\x6e\x4e\x61\155\x65" => $Q))) { return false; } } return true; } function count_tables($k) { foreach ($k as $l) { return array($l => count(tables_list())); } } function found_rows($R, $Z) { return $Z ? null : $R["\x52\157\x77\x73"]; } function last_id() { } function hmac($Ba, $Mb, $y, $_g = false) { $Va = 64; if (strlen($y) > $Va) { $y = pack("\x48\x2a", $Ba($y)); } $y = str_pad($y, $Va, "\0"); $ee = $y ^ str_repeat("\66", $Va); $fe = $y ^ str_repeat("\134", $Va); $H = $Ba($fe . pack("\x48\x2a", $Ba($ee . $Mb))); if ($_g) { $H = pack("\110\52", $H); } return $H; } function sdb_request($va, $Of = array()) { global $b, $g; list($Ad, $Of["\x41\127\x53\x41\143\143\145\x73\163\113\x65\171\x49\144"], $dh) = $b->credentials(); $Of["\101\x63\x74\151\x6f\156"] = $va; $Of["\x54\151\x6d\145\163\x74\x61\155\x70"] = gmdate("\x59\55\155\55\x64\x5c\124\x48\x3a\x69\x3a\163\x2b\x30\x30\x3a\60\60"); $Of["\x56\x65\x72\x73\x69\157\156"] = "\x32\60\x30\x39\55\x30\64\55\x31\x35"; $Of["\x53\151\x67\156\141\164\x75\x72\x65\126\x65\x72\163\151\x6f\x6e"] = 2; $Of["\123\151\147\x6e\x61\164\x75\162\145\x4d\145\x74\150\157\x64"] = "\110\x6d\141\143\123\110\x41\x31"; ksort($Of); $F = ''; foreach ($Of as $y => $X) { $F .= "\x26" . rawurlencode($y) . "\75" . rawurlencode($X); } $F = str_replace("\x25\67\x45", "\176", substr($F, 1)); $F .= "\46\123\151\x67\x6e\141\164\165\162\145\75" . urlencode(base64_encode(hmac("\x73\x68\141\x31", "\x50\x4f\x53\x54\xa" . preg_replace("\176\136\x68\x74\x74\x70\163\77\x3a\x2f\x2f\x7e", '', $Ad) . "\xa\57\12{$F}", $dh, true))); @ini_set("\x74\162\141\143\x6b\x5f\145\162\x72\157\162\x73", 1); $Tc = @file_get_contents(preg_match("\176\136\x68\x74\x74\160\163\x3f\x3a\57\57\176", $Ad) ? $Ad : "\x68\x74\x74\160\72\x2f\x2f{$Ad}", false, stream_context_create(array("\x68\164\164\160" => array("\155\145\x74\150\157\144" => "\x50\117\x53\x54", "\x63\157\156\x74\145\156\x74" => $F, "\x69\x67\x6e\x6f\162\x65\x5f\x65\x72\162\157\162\163" => 1)))); if (!$Tc) { $g->error = $php_errormsg; return false; } libxml_use_internal_errors(true); $nj = simplexml_load_string($Tc); if (!$nj) { $n = libxml_get_last_error(); $g->error = $n->message; return false; } if ($nj->Errors) { $n = $nj->Errors->Error; $g->error = "{$n->Message}\x20\x28{$n->Code}\51"; return false; } $g->error = ''; $Wh = $va . "\x52\145\163\165\x6c\x74"; return $nj->{$Wh} ? $nj->{$Wh} : true; } function sdb_request_all($va, $Wh, $Of = array(), $fi = 0) { $H = array(); $Dh = $fi ? microtime(true) : 0; $z = preg_match("\176\x4c\x49\115\111\124\x5c\163\x2b\x28\134\144\53\51\134\163\x2a\44\x7e\151", $Of["\123\145\x6c\x65\143\164\105\170\x70\x72\x65\x73\163\x69\157\x6e"], $A) ? $A[1] : 0; do { $nj = sdb_request($va, $Of); if (!$nj) { break; } foreach ($nj->{$Wh} as $pc) { $H[] = $pc; } if ($z && count($H) >= $z) { $_GET["\156\x65\x78\x74"] = $nj->NextToken; break; } if ($fi && microtime(true) - $Dh > $fi) { return false; } $Of["\x4e\x65\x78\x74\x54\x6f\x6b\145\156"] = $nj->NextToken; if ($z) { $Of["\x53\145\154\145\143\164\105\x78\160\162\145\163\x73\151\x6f\x6e"] = preg_replace("\x7e\134\x64\x2b\134\163\52\44\176", $z - count($H), $Of["\123\145\154\145\143\x74\105\170\160\x72\x65\x73\163\x69\157\156"]); } } while ($nj->NextToken); return $H; } $x = "\163\x69\x6d\x70\x6c\145\144\x62"; $vf = array("\x3d", "\74", "\x3e", "\74\x3d", "\x3e\x3d", "\41\x3d", "\x4c\x49\113\105", "\x4c\x49\113\105\x20\45\x25", "\111\116", "\x49\123\x20\x4e\x55\114\x4c", "\x4e\x4f\x54\x20\114\x49\113\105", "\111\123\x20\x4e\x4f\x54\40\116\125\x4c\x4c"); $kd = array(); $qd = array("\143\157\165\x6e\164"); $mc = array(array("\x6a\163\x6f\x6e")); } goto geZPx; Zduqw: function pagination($D, $Kb) { return "\x20" . ($D == $Kb ? $D + 1 : "\x3c\141\40\150\x72\145\146\75\42" . h(remove_from_uri("\160\141\x67\145") . ($D ? "\x26\x70\x61\x67\x65\75{$D}" . ($_GET["\156\145\170\x74"] ? "\x26\x6e\x65\170\164\75" . urlencode($_GET["\x6e\x65\x78\x74"]) : '') : '')) . "\x22\x3e" . ($D + 1) . "\x3c\57\x61\76"); } goto t00RN; KQ53I: function is_utf8($X) { return preg_match("\176\x7e\x75", $X) && !preg_match("\176\x5b\134\60\55\x5c\x78\70\x5c\170\102\134\x78\103\134\170\x45\x2d\x5c\170\x31\x46\135\x7e", $X); } goto FC3fb; prqzq: function odd($H = "\40\x63\154\x61\163\x73\x3d\x22\x6f\144\x64\x22") { static $s = 0; if (!$H) { $s = -1; } return $s++ % 2 ? $H : ''; } goto BN2q6; JyDzv: function repeat_pattern($ag, $te) { return str_repeat("{$ag}\173\60\x2c\66\65\x35\x33\65\175", $te / 65535) . "{$ag}\173\x30\54" . $te % 65535 . "\x7d"; } goto KQ53I; MRnk7: remove_slashes(array(&$_GET, &$_POST, &$_COOKIE), $Vc); goto RX6lf; RWxgJ: $ye = null; goto p4jCj; hv8UT: function format_number($X) { return strtr(number_format($X, 0, "\x2e", "\54"), preg_split("\x7e\x7e\165", "\60\61\x32\x33\64\x35\x36\x37\70\x39", -1, PREG_SPLIT_NO_EMPTY)); } goto sfE5t; FlKAu: function doc_link($Zf, $ci = "\74\163\x75\x70\x3e\x3f\x3c\x2f\x73\165\160\x3e") { global $x, $g; $lh = $g->server_info; $Yi = preg_replace("\176\x5e\50\134\144\134\56\77\134\x64\51\x2e\52\176\163", "\x5c\61", $lh); $Ni = array("\163\x71\x6c" => "\150\x74\164\160\x73\x3a\57\57\144\145\x76\x2e\x6d\171\x73\x71\154\56\143\157\155\x2f\x64\x6f\143\57\x72\145\x66\x6d\141\x6e\x2f{$Yi}\57\x65\156\x2f", "\x73\x71\154\x69\164\145" => "\150\x74\164\x70\x73\72\57\x2f\x77\x77\167\56\x73\161\154\x69\x74\x65\56\157\162\x67\57", "\160\x67\163\x71\x6c" => "\150\x74\164\x70\163\72\57\x2f\167\x77\167\x2e\160\157\163\x74\x67\162\x65\x73\x71\154\x2e\x6f\x72\x67\x2f\144\157\x63\163\x2f{$Yi}\57", "\155\163\163\x71\x6c" => "\x68\164\164\160\x73\x3a\x2f\57\x6d\x73\x64\156\x2e\x6d\151\143\162\x6f\163\x6f\x66\164\x2e\143\x6f\x6d\x2f\154\x69\142\x72\x61\x72\x79\57", "\157\162\x61\143\x6c\145" => "\150\164\164\160\163\x3a\x2f\57\x77\x77\x77\x2e\157\x72\x61\143\154\x65\56\143\157\155\57\x70\x6c\x73\x2f\164\157\x70\151\143\57\x6c\x6f\157\x6b\165\x70\x3f\143\x74\170\x3d\144\x62" . preg_replace("\x7e\136\56\x2a\40\50\134\144\53\51\x5c\56\50\x5c\x64\53\x29\x5c\x2e\x5c\x64\x2b\x5c\x2e\134\144\53\x5c\x2e\134\144\53\x2e\52\176\x73", "\134\61\134\x32", $lh) . "\x26\x69\144\x3d"); if (preg_match("\x7e\115\x61\162\151\141\104\x42\x7e", $lh)) { $Ni["\x73\x71\154"] = "\150\164\x74\x70\163\72\57\x2f\x6d\x61\162\151\141\x64\142\56\143\157\x6d\57\x6b\142\x2f\x65\x6e\x2f\154\x69\142\x72\x61\x72\x79\57"; $Zf["\163\x71\154"] = isset($Zf["\155\x61\x72\151\141\144\x62"]) ? $Zf["\155\x61\x72\151\x61\x64\x62"] : str_replace("\x2e\x68\164\x6d\154", "\x2f", $Zf["\163\161\154"]); } return $Zf[$x] ? "\74\x61\40\x68\x72\145\x66\75\47{$Ni[$x]}{$Zf[$x]}\47" . target_blank() . "\x3e{$ci}\x3c\57\141\76" : ''; } goto W7QUt; de3G4: function adminer() { global $b; return $b; } goto u7zDi; r1Zy_: function q($P) { global $g; return $g->quote($P); } goto rwWko; pz3Oi: $Rd = "\111\116\x7c\117\125\124\x7c\111\x4e\117\125\x54"; goto Au5Hf; SbePJ: function select_input($Ja, $yf, $Y = '', $rf = '', $cg = '') { $Wh = $yf ? "\163\145\x6c\145\143\x74" : "\151\x6e\160\165\x74"; return "\x3c{$Wh}{$Ja}" . ($yf ? "\76\x3c\x6f\160\x74\151\157\156\40\166\141\x6c\165\145\x3d\x27\x27\x3e{$cg}" . optionlist($yf, $Y, true) . "\x3c\57\x73\x65\154\x65\143\164\76" : "\40\163\151\172\x65\x3d\47\x31\x30\47\40\166\141\x6c\165\145\75\47" . h($Y) . "\x27\x20\160\x6c\x61\143\145\x68\x6f\154\144\145\162\x3d\x27{$cg}\47\x3e") . ($rf ? script("\161\x73\x6c\x28\47{$Wh}\47\x29\x2e\x6f\156\143\150\x61\x6e\x67\145\x20\75\40{$rf}\x3b", '') : ''); } goto lUNHA; ogDh9: function script_src($Li) { return "\x3c\163\x63\162\151\x70\x74\x20\163\162\143\75\47" . h($Li) . "\47" . nonce() . "\76\74\57\x73\x63\162\x69\x70\x74\x3e\12"; } goto aDTTC; Wu_3O: function h($P) { return str_replace("\x0", "\46\x23\x30\x3b", htmlspecialchars($P, ENT_QUOTES, "\x75\x74\x66\x2d\70")); } goto EXx4T; aSj1Y: if (isset($_GET["\x6f\162\x61\x63\154\x65"])) { $hg = array("\117\103\x49\x38", "\120\104\x4f\137\x4f\x43\111"); define("\104\122\111\x56\x45\x52", "\x6f\x72\141\143\154\x65"); if (extension_loaded("\157\x63\151\70")) { class Min_DB { var $extension = "\157\x63\x69\x38", $_link, $_result, $server_info, $affected_rows, $errno, $error; function _error($xc, $n) { if (ini_bool("\150\x74\155\x6c\137\x65\162\162\x6f\x72\163")) { $n = html_entity_decode(strip_tags($n)); } $n = preg_replace("\176\x5e\133\x5e\72\x5d\x2a\x3a\x20\x7e", '', $n); $this->error = $n; } function connect($M, $V, $E) { $this->_link = @oci_new_connect($V, $E, $M, "\101\x4c\63\62\125\x54\106\x38"); if ($this->_link) { $this->server_info = oci_server_version($this->_link); return true; } $n = oci_error(); $this->error = $n["\155\145\x73\163\141\147\x65"]; return false; } function quote($P) { return "\x27" . str_replace("\x27", "\x27\x27", $P) . "\x27"; } function select_db($j) { return true; } function query($F, $Ci = false) { $G = oci_parse($this->_link, $F); $this->error = ''; if (!$G) { $n = oci_error($this->_link); $this->errno = $n["\x63\x6f\144\x65"]; $this->error = $n["\x6d\x65\x73\x73\x61\147\x65"]; return false; } set_error_handler(array($this, "\x5f\145\162\162\x6f\162")); $H = @oci_execute($G); restore_error_handler(); if ($H) { if (oci_num_fields($G)) { return new Min_Result($G); } $this->affected_rows = oci_num_rows($G); } return $H; } function multi_query($F) { return $this->_result = $this->query($F); } function store_result() { return $this->_result; } function next_result() { return false; } function result($F, $o = 1) { $G = $this->query($F); if (!is_object($G) || !oci_fetch($G->_result)) { return false; } return oci_result($G->_result, $o); } } class Min_Result { var $_result, $_offset = 1, $num_rows; function __construct($G) { $this->_result = $G; } function _convert($I) { foreach ((array) $I as $y => $X) { if (is_a($X, "\x4f\x43\111\55\x4c\157\142")) { $I[$y] = $X->load(); } } return $I; } function fetch_assoc() { return $this->_convert(oci_fetch_assoc($this->_result)); } function fetch_row() { return $this->_convert(oci_fetch_row($this->_result)); } function fetch_field() { $e = $this->_offset++; $H = new stdClass(); $H->name = oci_field_name($this->_result, $e); $H->orgname = $H->name; $H->type = oci_field_type($this->_result, $e); $H->charsetnr = preg_match("\176\x72\x61\x77\174\x62\x6c\x6f\x62\174\x62\x66\151\154\145\x7e", $H->type) ? 63 : 0; return $H; } function __destruct() { oci_free_statement($this->_result); } } } elseif (extension_loaded("\160\144\x6f\137\x6f\x63\x69")) { class Min_DB extends Min_PDO { var $extension = "\x50\104\117\137\x4f\x43\x49"; function connect($M, $V, $E) { $this->dsn("\157\143\151\72\144\142\156\141\155\145\75\57\57{$M}\73\x63\150\x61\162\163\145\164\x3d\101\x4c\63\62\125\x54\106\x38", $V, $E); return true; } function select_db($j) { return true; } } } class Min_Driver extends Min_SQL { function begin() { return true; } } function idf_escape($u) { return "\42" . str_replace("\42", "\42\x22", $u) . "\x22"; } function table($u) { return idf_escape($u); } function connect() { global $b; $g = new Min_DB(); $Hb = $b->credentials(); if ($g->connect($Hb[0], $Hb[1], $Hb[2])) { return $g; } return $g->error; } function get_databases() { return get_vals("\x53\x45\114\105\x43\x54\x20\x74\141\142\x6c\x65\x73\160\x61\143\145\137\156\141\155\145\x20\106\x52\117\x4d\x20\165\x73\x65\x72\x5f\x74\x61\142\x6c\145\163\160\141\x63\x65\163"); } function limit($F, $Z, $z, $C = 0, $L = "\40") { return $C ? "\x20\52\x20\x46\x52\117\x4d\x20\50\123\105\x4c\x45\103\124\40\x74\56\52\x2c\x20\162\x6f\167\156\165\155\40\x41\x53\x20\162\x6e\x75\155\40\106\x52\x4f\115\40\x28\x53\x45\114\105\103\124\x20{$F}{$Z}\51\x20\164\x20\127\x48\105\122\x45\x20\x72\x6f\x77\x6e\x75\155\x20\x3c\x3d\x20" . ($z + $C) . "\x29\40\127\x48\x45\122\105\x20\162\156\x75\155\40\x3e\x20{$C}" : ($z !== null ? "\40\x2a\x20\x46\x52\117\115\x20\50\x53\x45\x4c\105\103\x54\40{$F}{$Z}\51\40\x57\110\x45\x52\105\x20\x72\x6f\167\156\165\x6d\x20\x3c\75\40" . ($z + $C) : "\x20{$F}{$Z}"); } function limit1($Q, $F, $Z, $L = "\12") { return "\x20{$F}{$Z}"; } function db_collation($l, $pb) { global $g; return $g->result("\x53\105\114\105\x43\x54\x20\166\141\154\165\x65\x20\x46\x52\117\115\40\x6e\154\163\137\144\141\x74\141\142\x61\163\x65\x5f\x70\x61\162\x61\155\x65\164\145\162\163\40\x57\x48\x45\122\105\x20\160\x61\x72\x61\x6d\x65\164\145\162\x20\75\40\x27\116\x4c\123\x5f\x43\110\101\x52\101\103\x54\x45\x52\x53\105\124\x27"); } function engines() { return array(); } function logged_user() { global $g; return $g->result("\x53\105\114\x45\103\x54\x20\x55\x53\105\x52\x20\106\122\x4f\x4d\x20\104\x55\x41\114"); } function tables_list() { return get_key_vals("\x53\105\114\105\103\x54\40\x74\141\x62\154\x65\x5f\156\141\155\145\x2c\40\x27\x74\x61\x62\x6c\x65\x27\x20\106\x52\117\115\40\x61\154\x6c\x5f\164\141\142\x6c\145\163\x20\127\x48\x45\122\105\x20\x74\141\x62\x6c\x65\x73\160\141\x63\x65\x5f\156\141\155\x65\40\x3d\x20" . q(DB) . "\12\x55\x4e\x49\117\116\x20\123\105\114\x45\103\124\x20\166\151\x65\167\137\x6e\x61\x6d\145\x2c\x20\47\166\151\145\x77\47\x20\106\122\117\x4d\40\165\x73\145\x72\137\166\151\145\167\163\12\x4f\x52\104\x45\x52\40\102\x59\40\61"); } function count_tables($k) { return array(); } function table_status($B = '') { $H = array(); $ch = q($B); foreach (get_rows("\123\x45\114\x45\x43\x54\40\164\x61\142\154\x65\137\x6e\x61\x6d\x65\x20\42\x4e\141\x6d\x65\42\54\x20\47\x74\x61\x62\x6c\145\x27\x20\42\x45\x6e\x67\151\156\145\x22\x2c\40\x61\166\147\x5f\162\x6f\x77\137\154\145\x6e\x20\52\40\x6e\165\155\137\162\x6f\x77\x73\x20\42\104\141\x74\141\137\154\x65\156\147\164\x68\x22\x2c\x20\156\165\x6d\137\x72\157\167\x73\40\42\122\157\167\x73\42\40\x46\122\x4f\115\x20\141\x6c\x6c\x5f\x74\x61\x62\154\x65\163\x20\x57\110\105\x52\x45\40\164\x61\x62\x6c\x65\163\x70\x61\x63\x65\137\156\x61\155\145\40\x3d\40" . q(DB) . ($B != '' ? "\x20\101\x4e\x44\40\x74\x61\142\154\145\x5f\x6e\141\x6d\145\40\75\x20{$ch}" : '') . "\xa\x55\116\111\x4f\116\40\123\105\114\x45\x43\x54\40\x76\x69\145\167\137\156\x61\155\145\54\x20\47\x76\x69\145\167\x27\54\x20\x30\54\x20\60\40\106\x52\x4f\x4d\x20\165\163\145\162\x5f\166\151\145\x77\x73" . ($B != '' ? "\x20\127\110\105\x52\105\x20\166\151\145\167\x5f\156\141\155\145\40\75\x20{$ch}" : '') . "\xa\117\122\104\x45\122\40\102\x59\x20\x31") as $I) { if ($B != '') { return $I; } $H[$I["\x4e\x61\x6d\x65"]] = $I; } return $H; } function is_view($R) { return $R["\x45\x6e\147\x69\x6e\x65"] == "\166\x69\145\x77"; } function fk_support($R) { return true; } function fields($Q) { $H = array(); foreach (get_rows("\123\x45\114\x45\x43\124\x20\x2a\x20\x46\122\x4f\x4d\x20\141\x6c\154\x5f\164\141\142\137\x63\x6f\154\165\155\156\163\40\x57\x48\105\x52\x45\40\x74\141\x62\154\145\x5f\156\141\155\145\x20\75\40" . q($Q) . "\x20\117\122\x44\105\122\x20\x42\x59\40\143\x6f\x6c\165\155\156\137\x69\x64") as $I) { $T = $I["\104\x41\124\x41\x5f\124\131\x50\105"]; $te = "{$I["\104\101\x54\101\x5f\x50\122\105\x43\111\x53\x49\117\116"]}\54{$I["\104\101\x54\x41\x5f\123\103\x41\x4c\x45"]}"; if ($te == "\54") { $te = $I["\x44\101\124\101\137\114\x45\x4e\107\x54\x48"]; } $H[$I["\x43\x4f\114\125\x4d\x4e\137\116\x41\115\x45"]] = array("\146\x69\x65\x6c\x64" => $I["\x43\117\114\125\115\x4e\137\116\x41\115\105"], "\146\x75\x6c\x6c\x5f\x74\x79\160\x65" => $T . ($te ? "\x28{$te}\51" : ''), "\x74\171\x70\145" => strtolower($T), "\154\145\x6e\x67\164\150" => $te, "\x64\145\x66\141\165\x6c\x74" => $I["\104\x41\x54\101\137\104\x45\x46\101\125\114\124"], "\156\x75\x6c\154" => $I["\x4e\125\x4c\x4c\101\102\114\x45"] == "\x59", "\x70\162\151\166\x69\x6c\x65\x67\145\x73" => array("\151\156\x73\145\x72\164" => 1, "\163\x65\x6c\x65\143\164" => 1, "\x75\x70\144\x61\x74\x65" => 1)); } return $H; } function indexes($Q, $h = null) { $H = array(); foreach (get_rows("\123\x45\114\x45\x43\x54\x20\165\x69\143\x2e\52\x2c\x20\x75\x63\56\x63\157\x6e\163\164\x72\x61\x69\x6e\164\x5f\x74\171\x70\145\12\x46\122\x4f\115\x20\165\x73\x65\x72\137\x69\156\x64\137\x63\x6f\154\165\x6d\x6e\x73\x20\165\x69\x63\12\114\x45\106\x54\40\112\x4f\x49\116\x20\x75\x73\145\x72\x5f\143\157\156\x73\164\162\x61\151\156\164\163\x20\165\143\x20\117\116\40\165\x69\x63\56\x69\156\x64\x65\x78\x5f\x6e\x61\155\x65\40\75\40\165\143\x2e\143\157\156\163\164\162\141\x69\156\164\137\x6e\141\155\x65\40\x41\x4e\104\x20\165\151\x63\56\x74\x61\x62\x6c\145\137\x6e\x61\x6d\x65\40\x3d\x20\x75\143\x2e\x74\x61\142\154\x65\137\x6e\141\x6d\x65\12\127\x48\105\122\105\40\165\151\143\x2e\x74\x61\142\x6c\145\x5f\156\141\155\145\40\75\x20" . q($Q) . "\12\x4f\x52\x44\x45\122\x20\x42\x59\40\165\x63\x2e\x63\x6f\156\x73\164\x72\141\x69\156\164\x5f\x74\171\x70\x65\x2c\40\x75\x69\143\56\143\x6f\154\x75\155\156\137\160\157\163\151\164\151\x6f\x6e", $h) as $I) { $Id = $I["\111\116\104\105\130\x5f\x4e\x41\x4d\x45"]; $H[$Id]["\x74\171\160\x65"] = $I["\x43\117\x4e\x53\x54\122\101\x49\x4e\124\x5f\124\x59\120\105"] == "\120" ? "\x50\x52\111\x4d\x41\122\131" : ($I["\x43\x4f\116\123\124\122\101\111\x4e\124\137\124\131\120\x45"] == "\125" ? "\125\116\x49\x51\x55\105" : "\x49\x4e\x44\x45\x58"); $H[$Id]["\x63\x6f\x6c\x75\x6d\156\163"][] = $I["\103\x4f\x4c\x55\x4d\116\137\116\101\x4d\105"]; $H[$Id]["\x6c\145\x6e\147\x74\150\163"][] = $I["\103\110\101\x52\137\114\x45\116\x47\124\x48"] && $I["\103\110\x41\122\137\x4c\x45\116\x47\124\110"] != $I["\103\x4f\x4c\125\115\116\x5f\114\x45\116\107\124\110"] ? $I["\x43\110\x41\122\137\x4c\x45\x4e\x47\124\x48"] : null; $H[$Id]["\144\x65\163\x63\x73"][] = $I["\x44\105\x53\x43\x45\x4e\x44"] ? "\x31" : null; } return $H; } function view($B) { $J = get_rows("\x53\105\x4c\x45\x43\x54\40\x74\x65\x78\164\x20\42\x73\x65\154\x65\x63\x74\x22\40\x46\122\117\115\40\165\163\x65\162\x5f\x76\x69\145\x77\163\x20\x57\110\x45\122\105\x20\166\151\145\x77\137\156\x61\155\x65\40\x3d\x20" . q($B)); return reset($J); } function collations() { return array(); } function information_schema($l) { return false; } function error() { global $g; return h($g->error); } function explain($g, $F) { $g->query("\105\130\x50\x4c\x41\111\116\40\x50\114\101\x4e\x20\106\x4f\122\40{$F}"); return $g->query("\x53\x45\114\105\x43\124\40\x2a\40\x46\122\117\115\40\x70\154\x61\x6e\x5f\x74\x61\x62\x6c\145"); } function found_rows($R, $Z) { } function alter_table($Q, $B, $p, $cd, $ub, $uc, $d, $Ma, $Uf) { $c = $fc = array(); foreach ($p as $o) { $X = $o[1]; if ($X && $o[0] != '' && idf_escape($o[0]) != $X[0]) { queries("\x41\x4c\x54\x45\x52\40\124\101\x42\114\x45\x20" . table($Q) . "\40\x52\x45\116\101\115\x45\x20\103\117\114\x55\115\x4e\x20" . idf_escape($o[0]) . "\x20\124\117\x20{$X["\60"]}"); } if ($X) { $c[] = ($Q != '' ? $o[0] != '' ? "\115\x4f\x44\111\106\x59\40\50" : "\101\104\104\40\50" : "\x20\x20") . implode($X) . ($Q != '' ? "\x29" : ''); } else { $fc[] = idf_escape($o[0]); } } if ($Q == '') { return queries("\103\x52\105\x41\124\x45\40\x54\x41\102\x4c\x45\40" . table($B) . "\x20\50\12" . implode("\54\12", $c) . "\12\51"); } return (!$c || queries("\x41\x4c\x54\x45\x52\40\x54\x41\x42\114\x45\x20" . table($Q) . "\xa" . implode("\xa", $c))) && (!$fc || queries("\x41\114\124\105\x52\x20\x54\101\102\x4c\x45\40" . table($Q) . "\40\x44\x52\x4f\x50\40\x28" . implode("\x2c\40", $fc) . "\x29")) && ($Q == $B || queries("\101\x4c\124\x45\x52\40\x54\x41\x42\114\x45\40" . table($Q) . "\40\x52\105\116\101\115\105\40\124\117\40" . table($B))); } function foreign_keys($Q) { $H = array(); $F = "\x53\x45\114\105\x43\124\x20\x63\x5f\154\151\x73\x74\56\103\117\x4e\x53\124\x52\x41\x49\x4e\x54\x5f\116\101\x4d\x45\40\141\x73\x20\x4e\x41\x4d\105\x2c\12\143\137\x73\162\x63\56\x43\117\114\125\x4d\116\137\x4e\101\x4d\105\x20\x61\163\40\x53\122\103\x5f\103\117\x4c\125\115\x4e\x2c\xa\x63\x5f\144\x65\x73\164\56\x4f\127\x4e\x45\122\x20\x61\x73\x20\x44\105\123\124\137\x44\x42\54\xa\x63\137\x64\145\x73\x74\56\124\101\102\x4c\x45\x5f\x4e\x41\115\x45\x20\141\x73\40\x44\x45\123\124\137\x54\101\x42\x4c\105\54\xa\x63\x5f\144\x65\163\164\x2e\x43\x4f\x4c\x55\x4d\x4e\x5f\x4e\101\x4d\105\40\141\x73\x20\104\105\x53\x54\x5f\x43\117\114\125\x4d\x4e\54\xa\x63\137\x6c\151\163\x74\56\x44\105\114\105\x54\105\137\x52\125\114\x45\40\141\163\40\117\x4e\137\x44\105\114\x45\x54\105\xa\106\x52\117\115\40\x41\114\x4c\137\x43\117\x4e\123\x54\x52\101\x49\x4e\x54\x53\x20\143\x5f\154\x69\163\164\54\40\x41\x4c\x4c\x5f\103\117\x4e\123\x5f\x43\117\114\125\x4d\116\123\40\x63\137\x73\162\143\x2c\40\101\x4c\x4c\137\x43\117\x4e\x53\x5f\103\117\x4c\x55\x4d\116\x53\40\x63\x5f\144\145\163\164\12\x57\x48\105\x52\x45\40\x63\x5f\154\151\x73\164\56\x43\x4f\x4e\123\124\122\x41\x49\116\x54\137\x4e\101\115\105\40\x3d\x20\x63\x5f\163\x72\x63\x2e\103\117\116\123\x54\x52\101\x49\116\124\137\116\x41\x4d\105\12\101\116\104\40\143\x5f\x6c\x69\163\164\56\122\137\x43\x4f\116\123\x54\x52\x41\x49\116\x54\137\x4e\101\115\x45\40\75\40\x63\x5f\144\x65\163\164\56\x43\117\116\123\x54\x52\101\x49\116\x54\x5f\116\101\115\x45\xa\x41\116\104\40\143\137\154\x69\163\164\56\103\117\116\x53\x54\x52\101\111\x4e\x54\x5f\124\131\120\105\x20\x3d\40\47\x52\x27\12\x41\x4e\x44\x20\x63\137\163\162\143\x2e\x54\101\102\114\105\x5f\x4e\x41\x4d\105\40\75\40" . q($Q); foreach (get_rows($F) as $I) { $H[$I["\116\101\x4d\105"]] = array("\144\142" => $I["\104\105\x53\x54\x5f\x44\x42"], "\x74\x61\x62\x6c\x65" => $I["\x44\105\123\124\x5f\x54\101\x42\114\105"], "\163\x6f\165\162\x63\145" => array($I["\123\122\103\137\103\x4f\x4c\125\x4d\116"]), "\164\x61\x72\x67\145\x74" => array($I["\x44\x45\123\124\137\x43\117\114\125\115\x4e"]), "\x6f\156\x5f\144\145\154\x65\x74\145" => $I["\117\x4e\137\104\105\x4c\x45\124\105"], "\157\x6e\137\x75\160\144\141\164\x65" => null); } return $H; } function truncate_tables($S) { return apply_queries("\124\x52\x55\x4e\x43\x41\124\x45\x20\x54\101\102\x4c\x45", $S); } function drop_views($aj) { return apply_queries("\104\x52\x4f\120\x20\x56\111\105\x57", $aj); } function drop_tables($S) { return apply_queries("\104\122\x4f\120\x20\124\x41\x42\114\x45", $S); } function last_id() { return 0; } function schemas() { return get_vals("\123\105\114\x45\103\x54\40\104\111\x53\124\x49\x4e\103\124\40\157\167\x6e\145\x72\x20\106\x52\117\x4d\40\144\142\x61\137\x73\x65\147\x6d\x65\x6e\x74\x73\x20\127\x48\105\x52\105\40\x6f\x77\156\145\x72\x20\111\x4e\40\50\123\105\x4c\x45\x43\124\x20\x75\163\x65\x72\x6e\141\155\145\40\x46\122\117\x4d\x20\144\142\141\x5f\165\x73\x65\x72\x73\40\127\x48\105\122\x45\x20\144\145\x66\141\165\x6c\x74\137\164\141\142\154\x65\163\x70\141\x63\145\x20\116\117\x54\40\x49\116\x20\x28\47\123\x59\123\x54\x45\x4d\47\54\47\x53\131\123\x41\x55\x58\47\51\x29"); } function get_schema() { global $g; return $g->result("\123\x45\x4c\105\103\124\x20\x73\171\163\137\143\157\156\164\145\170\164\50\47\x55\123\x45\x52\x45\116\x56\x27\x2c\40\x27\123\105\x53\x53\x49\117\116\x5f\125\123\x45\122\47\x29\x20\106\x52\117\x4d\40\144\165\x61\154"); } function set_schema($bh, $h = null) { global $g; if (!$h) { $h = $g; } return $h->query("\101\x4c\x54\x45\x52\x20\123\105\123\123\x49\117\x4e\40\123\105\x54\40\103\x55\122\x52\x45\x4e\124\x5f\x53\103\110\105\x4d\x41\x20\x3d\40" . idf_escape($bh)); } function show_variables() { return get_key_vals("\123\105\x4c\x45\103\x54\40\x6e\141\x6d\145\54\40\144\151\x73\x70\x6c\x61\x79\x5f\166\141\154\x75\145\40\x46\x52\x4f\115\x20\166\x24\160\141\162\141\x6d\x65\164\x65\162"); } function process_list() { return get_rows("\123\105\114\105\103\124\x20\x73\145\163\x73\x2e\160\162\x6f\143\x65\x73\x73\40\101\123\x20\x22\160\162\x6f\x63\145\x73\163\42\54\x20\x73\145\x73\x73\56\x75\x73\145\x72\156\x61\155\x65\x20\101\x53\40\x22\165\x73\x65\x72\x22\x2c\40\x73\x65\163\x73\x2e\x73\143\x68\145\155\141\x6e\x61\x6d\x65\x20\101\123\40\x22\x73\x63\150\145\155\x61\x22\x2c\x20\x73\x65\x73\163\x2e\163\x74\141\164\x75\x73\40\x41\x53\x20\42\x73\x74\141\x74\x75\163\x22\54\40\163\145\163\x73\56\x77\141\x69\164\x5f\x63\154\141\163\163\40\101\123\x20\x22\167\x61\151\164\137\x63\154\x61\x73\x73\x22\x2c\x20\163\x65\163\x73\56\163\145\x63\157\156\144\x73\137\x69\156\x5f\167\x61\x69\164\40\101\123\40\x22\x73\145\x63\x6f\x6e\144\163\137\151\156\137\x77\x61\151\164\42\54\40\x73\161\154\x2e\163\x71\154\x5f\164\x65\x78\x74\x20\101\123\40\42\163\161\154\137\164\145\x78\164\x22\54\x20\x73\x65\163\x73\x2e\155\x61\x63\x68\151\156\145\40\101\x53\40\42\155\x61\143\x68\151\156\145\42\54\40\163\x65\163\x73\x2e\160\157\162\x74\x20\101\x53\x20\x22\x70\157\x72\x74\42\xa\106\122\x4f\x4d\40\x76\x24\163\145\x73\163\151\x6f\x6e\40\x73\x65\x73\163\40\x4c\105\x46\124\x20\117\125\124\105\x52\40\112\x4f\111\x4e\40\166\44\x73\x71\x6c\40\163\x71\x6c\xa\117\116\40\163\161\x6c\56\163\161\x6c\137\151\x64\40\x3d\40\x73\x65\x73\163\56\x73\x71\154\137\x69\144\12\x57\x48\105\122\105\x20\x73\145\x73\x73\x2e\x74\171\x70\x65\40\75\40\47\125\123\x45\x52\47\12\x4f\122\104\105\122\40\x42\x59\x20\x50\x52\117\103\x45\123\123\xa"); } function show_status() { $J = get_rows("\123\105\x4c\x45\x43\124\x20\x2a\40\x46\122\x4f\115\x20\x76\x24\151\156\x73\x74\141\156\143\145"); return reset($J); } function convert_field($o) { } function unconvert_field($o, $H) { return $H; } function support($Pc) { return preg_match("\176\x5e\50\143\x6f\x6c\165\155\x6e\x73\174\144\x61\164\141\142\x61\163\145\x7c\x64\162\157\x70\137\143\x6f\154\174\151\156\144\145\170\x65\163\174\x64\145\x73\143\x69\144\x78\174\160\x72\157\x63\x65\x73\x73\x6c\x69\163\164\x7c\x73\143\150\x65\x6d\x65\174\163\x71\x6c\174\163\x74\x61\164\165\x73\174\164\x61\142\154\x65\x7c\166\141\x72\x69\141\142\x6c\145\163\174\166\151\145\x77\x7c\x76\151\145\x77\137\164\162\x69\x67\x67\145\162\x29\44\176", $Pc); } $x = "\157\162\x61\x63\x6c\145"; $U = array(); $Hh = array(); foreach (array("\x4e\x75\155\x62\145\x72\x73" => array("\x6e\x75\x6d\142\145\x72" => 38, "\142\x69\156\x61\162\x79\x5f\x66\x6c\157\141\x74" => 12, "\x62\151\x6e\x61\x72\x79\x5f\144\157\x75\x62\154\x65" => 21), "\104\x61\x74\x65\40\x61\156\144\40\x74\151\x6d\145" => array("\x64\141\164\145" => 10, "\164\151\155\x65\x73\x74\141\155\160" => 29, "\151\156\x74\x65\162\x76\141\x6c\40\171\145\x61\162" => 12, "\151\156\x74\145\x72\x76\x61\154\x20\144\x61\171" => 28), "\123\164\x72\x69\x6e\147\x73" => array("\x63\150\141\x72" => 2000, "\166\141\x72\x63\x68\141\x72\62" => 4000, "\x6e\x63\150\141\162" => 2000, "\x6e\166\x61\162\143\150\x61\x72\x32" => 4000, "\143\x6c\157\x62" => 4294967295, "\156\143\x6c\157\142" => 4294967295), "\x42\151\156\x61\x72\171" => array("\162\x61\x77" => 2000, "\x6c\157\156\147\x20\x72\x61\x77" => 2147483648, "\142\x6c\x6f\x62" => 4294967295, "\x62\146\151\154\145" => 4294967296)) as $y => $X) { $U += $X; $Hh[$y] = array_keys($X); } $Ii = array(); $vf = array("\75", "\74", "\x3e", "\74\x3d", "\x3e\75", "\x21\x3d", "\114\x49\x4b\105", "\x4c\x49\113\105\x20\x25\x25", "\x49\x4e", "\x49\x53\x20\116\125\x4c\x4c", "\116\x4f\x54\40\114\111\113\105", "\116\x4f\124\x20\x52\105\107\x45\x58\x50", "\116\x4f\124\x20\111\116", "\111\x53\x20\116\117\x54\x20\116\125\x4c\114", "\x53\121\114"); $kd = array("\x6c\145\156\147\x74\150", "\x6c\157\167\145\162", "\x72\x6f\x75\156\x64", "\x75\x70\x70\x65\x72"); $qd = array("\141\x76\x67", "\x63\157\x75\156\x74", "\143\157\165\x6e\x74\x20\x64\x69\163\x74\x69\x6e\143\x74", "\x6d\141\170", "\x6d\x69\x6e", "\163\165\155"); $mc = array(array("\144\141\164\x65" => "\143\165\x72\162\x65\156\164\137\x64\x61\164\x65", "\164\151\155\x65\163\164\141\x6d\160" => "\143\165\162\162\145\x6e\x74\x5f\x74\151\155\x65\x73\164\141\x6d\x70"), array("\x6e\165\155\x62\145\x72\x7c\x66\154\157\x61\164\x7c\x64\157\x75\142\154\x65" => "\x2b\57\x2d", "\144\x61\164\x65\x7c\x74\x69\x6d\x65\x73\x74\x61\155\160" => "\x2b\x20\x69\156\164\145\162\166\141\x6c\57\x2d\40\x69\x6e\164\145\162\166\x61\154", "\x63\x68\x61\x72\174\x63\154\x6f\142" => "\x7c\x7c")); } goto WSkdU; af1c_: @ini_set("\163\x65\x73\x73\151\x6f\156\56\x75\163\x65\137\x74\x72\141\x6e\163\137\x73\x69\144", false); goto Fg6cl; vBPgG: function grant($ld, $pg, $f, $pf) { if (!$pg) { return true; } if ($pg == array("\101\114\114\40\x50\122\111\126\x49\114\105\x47\x45\x53", "\x47\x52\101\116\124\x20\x4f\x50\x54\x49\x4f\116")) { return $ld == "\x47\122\101\116\x54" ? queries("{$ld}\x20\101\x4c\x4c\40\x50\122\111\x56\x49\114\105\x47\105\x53{$pf}\40\127\x49\x54\110\x20\x47\x52\x41\x4e\124\x20\x4f\x50\x54\x49\x4f\x4e") : queries("{$ld}\x20\101\114\x4c\x20\120\x52\x49\x56\x49\x4c\x45\x47\x45\x53{$pf}") && queries("{$ld}\x20\x47\122\101\x4e\124\x20\117\120\x54\x49\x4f\x4e{$pf}"); } return queries("{$ld}\x20" . preg_replace("\x7e\50\x47\x52\x41\116\x54\40\117\120\124\x49\x4f\116\51\134\x28\133\x5e\x29\x5d\52\134\x29\176", "\134\x31", implode("{$f}\x2c\x20", $pg) . $f) . $pf); } goto YNUkN; EuRDS: function apply_sql_function($r, $e) { return